:root{--color-primary:#0071e3;--color-primary-hover:#0077ed;--color-primary-light:#0071e314;--color-primary-lighter:#0071e30a;--color-success:#008439;--color-success-light:#00843914;--color-warning:#ff9500;--color-warning-light:#ff950014;--color-danger:#ff3b30;--color-danger-light:#ff3b3014;--color-information:#0071e3;--color-information-light:#0071e314;--color-gray-50:#fafafa;--color-gray-100:#f5f5f7;--color-gray-200:#e8e8ed;--color-gray-300:#d2d2d7;--color-gray-400:#86868b;--color-gray-500:#6e6e73;--color-gray-600:#424245;--color-gray-700:#313132;--color-gray-800:#1d1d1f;--color-gray-900:#000;--background:#fff;--background-secondary:#f5f5f7;--background-tertiary:#fafafa;--foreground:#1d1d1f;--foreground-secondary:#6e6e73;--foreground-tertiary:#86868b;--card:#fff;--card-border:#00000014;--card-shadow:0 2px 8px #0000000a;--card-shadow-hover:0 4px 16px #00000014;--muted:#86868b;--accent:#f5f5f7;--primary-foreground:#fff;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:18px;--radius-full:9999px;--space-xs:4px;--space-sm:8px;--space-md:12px;--space-lg:16px;--space-xl:24px;--space-2xl:32px;--space-3xl:48px;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-base:.2s cubic-bezier(.4, 0, .2, 1);--transition-slow:.3s cubic-bezier(.4, 0, .2, 1);--font-sans:-apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Helvetica Neue", Helvetica, Arial, sans-serif;--font-mono:"SF Mono", SFMono-Regular, ui-monospace, Menlo, Monaco, Consolas, monospace;--edge-color:#d2d2d7;--edge-active:#0071e3;--background-color:#f5f5f7;--panel-bg:#fffc;--node-bg:#fff;--node-border:#00000014;--node-selected-ring:#0071e333;--hover-overlay:#00000005}[data-theme=dark]{--color-primary:#0a84ff;--color-primary-hover:#409cff;--color-primary-light:#0a84ff26;--color-primary-lighter:#0a84ff14;--color-success:#30d158;--color-success-light:#30d15826;--color-warning:#ffd60a;--color-warning-light:#ffd60a26;--color-danger:#ff453a;--color-danger-light:#ff453a26;--color-information:#0a84ff;--color-information-light:#0a84ff26;--color-gray-50:#1c1c1e;--color-gray-100:#2c2c2e;--color-gray-200:#3a3a3c;--color-gray-300:#48484a;--color-gray-400:#6d6d70;--color-gray-500:#8e8e93;--color-gray-600:#aeaeb2;--color-gray-700:#d1d1d6;--color-gray-800:#ebebf0;--color-gray-900:#f5f5f7;--background:#000;--background-secondary:#1c1c1e;--background-tertiary:#2c2c2e;--foreground:#f5f5f7;--foreground-secondary:#aeaeb2;--foreground-tertiary:#8e8e93;--card:#1c1c1e;--card-border:#ffffff14;--card-shadow:0 2px 8px #0000004d;--card-shadow-hover:0 4px 16px #0006;--muted:#8e8e93;--accent:#1c1c1e;--primary-foreground:#fff;--edge-color:#48484a;--edge-active:#0a84ff;--background-color:#1c1c1e;--panel-bg:#1c1c1ecc;--node-bg:#1c1c1e;--node-border:#ffffff14;--node-selected-ring:#0a84ff4d;--hover-overlay:#ffffff08}
.react-flow__edge-path{stroke:var(--edge-color);stroke-width:1.5px;fill:none;transition:stroke var(--transition-base), stroke-width var(--transition-base)}.react-flow__edge.selected .react-flow__edge-path{stroke:var(--edge-active);stroke-width:2.5px}.react-flow__edge:hover .react-flow__edge-path{stroke:var(--edge-active);stroke-width:2px}.react-flow__node{transition:transform var(--transition-fast)}.react-flow__node:hover{z-index:10}.react-flow__node-selected{z-index:11}.react-flow__controls{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-md);box-shadow:var(--card-shadow);display:flex;overflow:hidden}.react-flow__controls-button{border:none;border-right:1px solid var(--card-border);width:32px;height:32px;color:var(--foreground-secondary);cursor:pointer;transition:all var(--transition-fast);background:0 0;justify-content:center;align-items:center;display:flex}.react-flow__controls-button:hover{background:var(--accent);color:var(--foreground)}.react-flow__controls-button:last-child{border-right:none}.react-flow__attribution{background:0 0}.react-flow__attribution a{color:var(--foreground-tertiary);padding:2px 4px;font-size:10px}.react-flow__attribution a:hover{color:var(--color-primary)}.react-flow__pane{cursor:grab}.react-flow__pane:active{cursor:grabbing}.react-flow__background{transition:all var(--transition-base)}.react-flow__connectionline{stroke:var(--edge-color);stroke-width:1.5px}.react-flow__panel{opacity:.8}
::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{transition:background-color var(--transition-base);background-color:#00000026;border-radius:3px}::-webkit-scrollbar-thumb:hover{background-color:#00000040}[data-theme=dark] ::-webkit-scrollbar-thumb{background-color:#ffffff26}[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background-color:#ffffff40}*{scrollbar-width:thin;scrollbar-color:#00000026 transparent}[data-theme=dark] *{scrollbar-color:#ffffff26 transparent}.scrollable{overflow:hidden auto}.scrollable::-webkit-scrollbar{width:4px}.scrollable::-webkit-scrollbar-track{background:0 0}.scrollable::-webkit-scrollbar-thumb{background-color:#0000001a;border-radius:2px}.scrollable::-webkit-scrollbar-thumb:hover{background-color:#0003}[data-theme=dark] .scrollable::-webkit-scrollbar-thumb{background-color:#ffffff1a}[data-theme=dark] .scrollable::-webkit-scrollbar-thumb:hover{background-color:#fff3}
body{transition:background-color var(--transition-base), color var(--transition-base)}.transition-shadow-fast{transition:box-shadow var(--transition-fast)}.theme-toggle{transition:all var(--transition-base)}.node-action-btn{opacity:0;transition:opacity var(--transition-fast), transform var(--transition-fast)}.custom-node-wrapper:hover .node-action-btn,.node-action-btn.node-selected{opacity:1}.container{width:100%;max-width:1200px;padding:0 var(--space-lg);margin:0 auto}.flex-center{justify-content:center;align-items:center;display:flex}.flex-between{justify-content:space-between;align-items:center;display:flex}.text-center{text-align:center}.text-muted{color:var(--foreground-tertiary)}.text-primary{color:var(--color-primary)}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}.gap-lg{gap:var(--space-lg)}.gap-xl{gap:var(--space-xl)}.card{background-color:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-lg);box-shadow:var(--card-shadow);transition:box-shadow var(--transition-base), border-color var(--transition-base)}.card:hover{box-shadow:var(--card-shadow-hover)}.btn{justify-content:center;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-md);transition:all var(--transition-fast);cursor:pointer;-webkit-user-select:none;user-select:none;font-size:14px;font-weight:500;line-height:1;display:inline-flex}.btn-primary{background-color:var(--color-primary);color:#fff}.btn-primary:hover{background-color:var(--color-primary-hover)}.btn-secondary{background-color:var(--accent);color:var(--foreground)}.btn-secondary:hover{background-color:var(--card-border)}.btn-ghost{color:var(--foreground-secondary);background-color:#0000}.btn-ghost:hover{background-color:var(--accent);color:var(--foreground)}.btn-sm{padding:var(--space-xs) var(--space-md);border-radius:var(--radius-sm);font-size:13px}.btn-lg{padding:var(--space-md) var(--space-xl);border-radius:var(--radius-md);font-size:15px}.badge{align-items:center;gap:var(--space-xs);padding:2px var(--space-sm);border-radius:var(--radius-full);white-space:nowrap;font-size:11px;font-weight:500;line-height:1.4;display:inline-flex}.badge-primary{background-color:var(--color-primary-light);color:var(--color-primary)}.badge-success{background-color:var(--color-success-light);color:var(--color-success)}.badge-warning{background-color:var(--color-warning-light);color:var(--color-warning)}.badge-danger{background-color:var(--color-danger-light);color:var(--color-danger)}.badge-muted{background-color:var(--accent);color:var(--muted)}
.auth-form{width:100%}.auth-form__title{color:#fff;text-align:center;margin:0 0 .5rem;font-size:1.5rem;font-weight:700}.auth-form__subtitle{color:#bfdbffcc;text-align:center;margin:0 0 1.5rem;font-size:.875rem}.auth-form__type-toggle{background:#ffffff0d;border-radius:.5rem;gap:.5rem;margin-bottom:1.25rem;padding:.25rem;display:flex}.auth-form__toggle-btn{color:#bfdbffb3;cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;border-radius:.375rem;flex:1;padding:.5rem 1rem;font-size:.875rem;font-weight:500}.auth-form__toggle-btn:hover:not(.auth-form__toggle-btn--active){color:#bfdbff;background:#ffffff0d}.auth-form__toggle-btn--active{color:#fff;background:#3b82f64d}.auth-form__group{margin-bottom:1rem}.auth-form__label{color:#bfdbffe6;margin-bottom:.375rem;font-size:.8125rem;font-weight:500;display:block}.auth-form__optional{color:#bfdbff80;font-weight:400}.auth-form__input{color:#fff;width:100%;transition:all var(--transition-fast);background:#ffffff0d;border:1px solid #ffffff26;border-radius:.5rem;outline:none;padding:.75rem 1rem;font-size:.9375rem}.auth-form__input::placeholder{color:#bfdbff66}.auth-form__input:focus{background:#ffffff14;border-color:#3b82f699;box-shadow:0 0 0 3px #3b82f626}.auth-form__input:disabled{opacity:.5;cursor:not-allowed}.auth-form__other-methods{margin-bottom:1rem}.auth-form__other-methods-toggle{color:#bfdbff99;cursor:pointer;width:100%;transition:all var(--transition-fast);text-align:center;background:0 0;border:1px dashed #fff3;border-radius:.5rem;padding:.5rem 1rem;font-size:.8125rem}.auth-form__other-methods-toggle:hover:not(:disabled){color:#bfdbffe6;background:#3b82f60d;border-color:#3b82f666}.auth-form__other-methods-toggle:disabled{opacity:.5;cursor:not-allowed}.auth-form__other-methods-content{background:#ffffff08;border:1px solid #ffffff14;border-radius:.5rem;margin-top:.75rem;padding:1rem}.auth-form__method-option{margin-bottom:.75rem}.auth-form__method-option:last-child{margin-bottom:0}.auth-form__method-btn{color:#bfdbffcc;cursor:pointer;width:100%;transition:all var(--transition-fast);text-align:left;background:#ffffff0d;border:1px solid #ffffff26;border-radius:.5rem;padding:.625rem 1rem;font-size:.875rem}.auth-form__method-btn:hover:not(:disabled){color:#fff;background:#3b82f626;border-color:#3b82f666}.auth-form__method-btn--active{color:#fff;background:#3b82f640;border-color:#3b82f699}.auth-form__code-group--compact{margin-top:.5rem;margin-bottom:.75rem}.auth-form__divider{background:#ffffff1a;height:1px;margin:1rem 0}.auth-form__or-divider{color:#bfdbff66;align-items:center;margin:1.25rem 0;font-size:.8125rem;display:flex}.auth-form__or-divider:before,.auth-form__or-divider:after{content:"";background:#ffffff1a;flex:1;height:1px}.auth-form__or-divider span{padding:0 1rem}.auth-form__code-section{margin-top:.5rem;margin-bottom:.5rem}.auth-form__code-section-toggle{color:#bfdbff80;cursor:pointer;width:100%;transition:all var(--transition-fast);text-align:center;background:0 0;border:1px dashed #ffffff26;border-radius:.5rem;padding:.625rem 1rem;font-size:.8125rem}.auth-form__code-section-toggle:hover:not(:disabled){color:#bfdbffb3;background:#3b82f60d;border-color:#3b82f64d}.auth-form__code-section-content{background:#ffffff05;border-radius:.5rem;margin-top:.75rem;padding:.75rem}.auth-form__code-type-toggle{background:#ffffff08;border-radius:.375rem;gap:.5rem;margin-bottom:.75rem;padding:.25rem;display:flex}.auth-form__code-type-btn{color:#bfdbff99;cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;border-radius:.25rem;flex:1;padding:.375rem .75rem;font-size:.8125rem;font-weight:500}.auth-form__code-type-btn:hover:not(.auth-form__code-type-btn--active){color:#bfdbffe6}.auth-form__code-type-btn--active{color:#fff;background:#3b82f640}.auth-form__code-group{margin-bottom:0}.auth-form__code-row{align-items:center;gap:.5rem;display:flex}.auth-form__code-input{flex:1}.auth-form__send-btn{color:#bfdbff;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;background:#3b82f633;border:1px solid #3b82f666;border-radius:.5rem;flex-shrink:0;padding:.75rem 1rem;font-size:.8125rem;font-weight:500}.auth-form__send-btn:hover:not(.auth-form__send-btn--disabled){background:#3b82f64d;border-color:#3b82f699}.auth-form__send-btn--disabled{opacity:.5;cursor:not-allowed}.auth-form__password-strength{align-items:center;gap:.5rem;margin-top:.5rem;display:flex}.auth-form__strength-bar{flex:1;gap:2px;height:3px;display:flex}.auth-form__strength-segment{transition:background-color var(--transition-fast);background:#ffffff1a;border-radius:1px;flex:1}.auth-form__strength-segment--weak{background:#ef4444}.auth-form__strength-segment--medium{background:#f59e0b}.auth-form__strength-segment--strong{background:#22c55e}.auth-form__strength-segment--very-strong{background:#10b981}.auth-form__strength-text{text-align:right;min-width:2rem;font-size:.75rem;font-weight:500}.auth-form__options{justify-content:space-between;align-items:center;margin-bottom:1.25rem;display:flex}.auth-form__checkbox-label{cursor:pointer;color:#bfdbffcc;align-items:center;gap:.5rem;font-size:.8125rem;display:flex}.auth-form__checkbox-label input{accent-color:#3b82f699;cursor:pointer;width:1rem;height:1rem}.auth-form__checkbox-label input:disabled{cursor:not-allowed;opacity:.5}.auth-form__link-btn{color:#60a5fa;cursor:pointer;transition:color var(--transition-fast);background:0 0;border:none;padding:0;font-size:.8125rem;text-decoration:none}.auth-form__link-btn:hover:not(:disabled){color:#fff;text-decoration:underline}.auth-form__link-btn:disabled{opacity:.5;cursor:not-allowed}.auth-form__submit-btn{color:#fff;cursor:pointer;width:100%;transition:all var(--transition-fast);background:linear-gradient(135deg,#3b82f6cc,#6366f1cc);border:none;border-radius:.5rem;margin-bottom:1rem;padding:.875rem 1.5rem;font-size:1rem;font-weight:600}.auth-form__submit-btn:hover:not(:disabled){background:linear-gradient(135deg,#3b82f6,#6366f1);transform:translateY(-1px);box-shadow:0 4px 12px #3b82f64d}.auth-form__submit-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.auth-form__secondary-btn{color:#bfdbffe6;cursor:pointer;width:100%;transition:all var(--transition-fast);background:#ffffff0d;border:1px solid #ffffff26;border-radius:.5rem;margin-bottom:.75rem;padding:.75rem 1.5rem;font-size:.875rem;font-weight:500}.auth-form__secondary-btn:hover:not(:disabled){background:#ffffff1a;border-color:#ffffff4d}.auth-form__secondary-btn:disabled{opacity:.5;cursor:not-allowed}.auth-form__error{color:#f87171;background:#f871711a;border:1px solid #f8717133;border-radius:.5rem;margin-bottom:1rem;padding:.625rem 1rem;font-size:.8125rem}.auth-form__switch{text-align:center;color:#bfdbffb3;border-top:1px solid #ffffff1a;padding-top:.5rem;font-size:.8125rem}.auth-form__success{text-align:center;padding:2rem 1rem}.auth-form__success-icon{color:#22c55e;background:#22c55e33;border:2px solid #22c55e80;border-radius:50%;justify-content:center;align-items:center;width:4rem;height:4rem;margin:0 auto 1.25rem;font-size:2rem;display:flex}.auth-form__success-text{color:#bfdbffe6;margin:0;font-size:1rem}.auth-form__steps{justify-content:center;align-items:center;gap:.5rem;margin-bottom:1.5rem;display:flex}.auth-form__step{align-items:center;gap:.375rem;display:flex}.auth-form__step--active .auth-form__step-number{color:#fff;background:#3b82f699}.auth-form__step:not(.auth-form__step--active) .auth-form__step-number{color:#bfdbff80;background:#ffffff1a}.auth-form__step-number{border-radius:50%;justify-content:center;align-items:center;width:1.75rem;height:1.75rem;font-size:.8125rem;font-weight:600;display:flex}.auth-form__step-label{color:#bfdbffb3;font-size:.75rem}.auth-form__step--active .auth-form__step-label{color:#bfdbff}.auth-form__step-line{background:#ffffff26;width:2rem;height:1px}
.context-navigation{background-color:#0f172a80;border:1px solid #334155;border-radius:.5rem;align-items:center;gap:.25rem;padding:.25rem;display:flex}.context-navigation__item{color:#94a3b8;border-radius:.375rem;align-items:center;gap:.5rem;padding:.375rem .75rem;font-size:.875rem;font-weight:500;text-decoration:none;transition:color .2s,background-color .2s;display:flex}.context-navigation__item:hover{color:#e2e8f0;background-color:#1e293b}.context-navigation__item--active{color:#f1f5f9;background-color:#334155}.context-navigation__icon{flex-shrink:0;width:1rem;height:1rem}.context-navigation__badge{color:#fff;background-color:#ef4444;border-radius:9999px;justify-content:center;align-items:center;min-width:1.125rem;height:1.125rem;padding:0 .25rem;font-size:.625rem;font-weight:700;display:flex;position:absolute;top:-.25rem;right:-.25rem}@media (max-width:640px){.context-navigation__label{display:none}.context-navigation__short-label{display:inline}}.role-aware-navigation{align-items:center;gap:1rem;display:flex}.role-aware-navigation__item{color:#94a3b8;border-radius:.375rem;align-items:center;gap:.5rem;padding:.375rem .75rem;font-size:.875rem;font-weight:500;text-decoration:none;transition:color .2s,background-color .2s;display:flex}.role-aware-navigation__item:hover{color:#e2e8f0;background-color:#1e293b}
.role-context-banner{border-width:1px;border-radius:.5rem;padding:.75rem;transition:opacity .2s}.role-context-banner--client{background-color:#10b9811a;border-color:#10b98133}.role-context-banner--developer{background-color:#3b82f61a;border-color:#3b82f633}.role-context-banner__content{justify-content:space-between;align-items:flex-start;display:flex}.role-context-banner__left{align-items:flex-start;gap:.75rem;display:flex}.role-context-banner__icon{border-radius:9999px;justify-content:center;align-items:center;padding:.5rem;display:flex}.role-context-banner__icon--client{color:#34d399;background-color:#10b9811a;border-color:#10b98133}.role-context-banner__icon--developer{color:#60a5fa;background-color:#3b82f61a;border-color:#3b82f633}.role-context-banner__title{align-items:center;gap:.5rem;font-size:.875rem;font-weight:500;display:flex}.role-context-banner__title--client{color:#34d399}.role-context-banner__title--developer{color:#60a5fa}.role-context-banner__description{color:#94a3b8;margin-top:.125rem;font-size:.75rem}.role-context-banner__pending-badge{color:#fbbf24;background-color:#f59e0b1a;border-color:#f59e0b33;border-radius:9999px;align-items:center;gap:.25rem;padding:.125rem .5rem;font-size:.75rem;display:flex}.role-context-banner__capabilities{flex-wrap:wrap;gap:.5rem;margin-top:.5rem;display:flex}.role-context-banner__capability{color:#94a3b8;background-color:#1e293b;border-radius:.125rem;padding:.125rem .375rem;font-size:.625rem}.role-context-banner__action{opacity:.9;border-width:1px;border-radius:.375rem;padding:.375rem .75rem;font-size:.875rem;font-weight:500;transition:opacity .2s}.role-context-banner__action:hover{opacity:.8}.role-context-banner__action--client{color:#34d399;background-color:#10b9811a;border-color:#10b98133}.role-context-banner__action--developer{color:#60a5fa;background-color:#3b82f61a;border-color:#3b82f633}.role-mismatch-hint{background-color:#f59e0b0d;border-color:#f59e0b33;border-radius:.5rem;padding:1rem}.role-mismatch-hint__icon{color:#fbbf24;flex-shrink:0}.role-mismatch-hint__message{color:#fbbf24;font-size:.875rem;font-weight:500}.role-mismatch-hint__detail{color:#94a3b8;margin-top:.125rem;font-size:.75rem}.role-switch-hint{background-color:#1e293b4d;border-color:#334155;border-radius:.5rem;padding:.75rem}.role-switch-hint__title{color:#94a3b8;margin-bottom:.5rem;font-size:.75rem}.role-switch-hint__buttons{flex-wrap:wrap;gap:.5rem;display:flex}.role-switch-hint__button{color:#cbd5e1;background-color:#334155;border-radius:.25rem;padding:.25rem .5rem;font-size:.75rem;transition:background-color .2s}.role-switch-hint__button:hover{background-color:#475569}
.permission-gate-loading{color:#94a3b8;font-size:.75rem}.permission-denied-hint{color:#fbbf24;background-color:#f59e0b0d;border-width:1px;border-color:#f59e0b33;border-radius:.375rem;padding:.75rem;font-size:.75rem}.node-lock-message{color:#d97706;margin-top:.5rem;font-size:.875rem}
.status-badge{border-radius:9999px;align-items:center;font-weight:500;display:inline-flex}.status-badge--sm{padding:.125rem .5rem;font-size:.75rem}.status-badge--md{padding:.25rem .75rem;font-size:.875rem}.status-badge__dot{border-radius:9999px;margin-right:.375rem}.status-badge__dot--sm{width:.15rem;height:.15rem}.status-badge__dot--md{width:.25rem;height:.25rem}.status-badge--idea{color:#94a3b8;background-color:#64748b33;border-color:#64748b66}.status-badge--submitted{color:#f59e0b;background-color:#f59e0b33;border-color:#f59e0b66}.status-badge--confirmed{color:#10b981;background-color:#10b98133;border-color:#10b98166}.status-badge--rejected{color:#ef4444;background-color:#ef444433;border-color:#ef444466}.status-badge--developing{color:#3b82f6;background-color:#3b82f633;border-color:#3b82f666}.status-badge--testing{color:#d97706;background-color:#f59e0b33;border-color:#f59e0b66}.status-badge--released{color:#8b5cf6;background-color:#8b5cf633;border-color:#8b5cf666}.status-badge--approval-approved{color:#10b981;background-color:#10b98133;border-color:#10b98166}.status-badge--approval-rejected{color:#ef4444;background-color:#ef444433;border-color:#ef444466}.status-badge--approval-pending{color:#f59e0b;background-color:#f59e0b33;border-color:#f59e0b66}.priority-badge{color:#fff;border-radius:.125rem;padding:.125rem .5rem;font-size:.75rem}.priority-badge--low{background-color:#64748b}.priority-badge--medium{background-color:#2563eb}.priority-badge--high{background-color:#ea580c}.priority-badge--critical{background-color:#dc2626}
.view-toggle{border-width:1px;border-radius:.5rem;padding:.125rem;display:inline-flex}.view-toggle--dark{background-color:#1f2937;border-color:#374151}.view-toggle--light{background-color:#fff;border-color:#e5e7eb}.view-toggle__button{border-radius:.375rem;align-items:center;gap:.375rem;padding:.375rem .75rem;font-size:.875rem;font-weight:500;transition:color .2s,background-color .2s;display:flex}.view-toggle__button:hover:not(.view-toggle__button--active):not(:disabled){color:#374151}.view-toggle--dark .view-toggle__button:hover:not(.view-toggle__button--active):not(:disabled){color:#e5e7eb}.view-toggle__button--active{color:#fff}.view-toggle--dark .view-toggle__button--active{background-color:#3b82f6}.view-toggle--light .view-toggle__button--active{background-color:#2563eb}.view-toggle__button:disabled{opacity:.5;cursor:not-allowed}.view-toggle__button[title]{cursor:pointer}
.project-dashboard-card{border-width:1px;border-radius:.75rem;flex-direction:column;min-height:280px;transition:border-color .2s,transform .2s;display:flex;overflow:hidden}.project-dashboard-card:hover{transform:translateY(-2px)}.project-dashboard-card--dark{background-color:#0f172a;border-color:#1e293b}.project-dashboard-card--dark:hover{border-color:#334155}.project-dashboard-card--light{background-color:#fff;border-color:#e5e7eb}.project-dashboard-card__header{background-color:#1e293b80;border-bottom-width:1px;justify-content:space-between;align-items:center;padding:.75rem 1rem;display:flex}.project-dashboard-card__header--light{background-color:#f8fafc;border-color:#e2e8f0}.project-dashboard-card__link{color:#e2e8f0;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.875rem;font-weight:500;text-decoration:none;transition:color .2s;overflow:hidden}.project-dashboard-card__link:hover{color:#60a5fa}.project-dashboard-card__status{color:#fff;border-radius:.125rem;padding:.125rem .5rem;font-size:.75rem;font-weight:500}.project-dashboard-card__type-badge{border-radius:.125rem;padding:.125rem .5rem;font-size:.75rem;font-weight:500}.project-dashboard-card__role-badge{letter-spacing:.025em;border-radius:9999px;flex-shrink:0;padding:.2rem .5rem;font-size:.7rem;font-weight:600;transition:all .2s}.project-dashboard-card__role-badge:hover{transform:scale(1.05)}.project-dashboard-card__role-badge--client{color:#f5a623;background:linear-gradient(135deg,#f59e0b33,#f59e0b1a);border:1px solid #f59e0b66;box-shadow:0 0 8px #f59e0b26}.project-dashboard-card__role-badge--client:hover{background:linear-gradient(135deg,#f59e0b4d,#f59e0b26);box-shadow:0 0 12px #f59e0b40}.project-dashboard-card__role-badge--developer{color:#60a5fa;background:linear-gradient(135deg,#3b82f633,#3b82f61a);border:1px solid #3b82f666;box-shadow:0 0 8px #3b82f626}.project-dashboard-card__role-badge--developer:hover{background:linear-gradient(135deg,#3b82f64d,#3b82f626);box-shadow:0 0 12px #3b82f640}.project-dashboard-card__role-badge--both{color:#c084fc;background:linear-gradient(135deg,#a855f733,#a855f71a);border:1px solid #a855f766;box-shadow:0 0 8px #a855f726}.project-dashboard-card__role-badge--both:hover{background:linear-gradient(135deg,#a855f74d,#a855f726);box-shadow:0 0 12px #a855f740}.project-dashboard-card__meta-badge{background-color:#64748b26;border:1px solid #64748b40;border-radius:.25rem;flex-shrink:0;padding:.15rem .45rem;font-size:.7rem;transition:all .2s}.project-dashboard-card__meta-badge:hover{background-color:#64748b40;border-color:#64748b66}.project-dashboard-card__type-badge--self{color:#34d399;background-color:#10b98133;border-color:#10b9814d}.project-dashboard-card__type-badge--external{color:#60a5fa;background-color:#3b82f633;border-color:#3b82f64d}.project-dashboard-card__progress-section{background-color:#1e293b4d;padding:.5rem 1rem}.project-dashboard-card__progress-label{color:#94a3b8;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.25rem;margin-bottom:.25rem;font-size:.75rem;display:flex}.project-dashboard-card__progress-alert{white-space:nowrap;border-radius:9999px;padding:.1rem .4rem;font-size:.65rem;font-weight:500}.project-dashboard-card__progress-alert--amber{color:#fbbf24;background-color:#f59e0b26;border:1px solid #f59e0b4d}.project-dashboard-card__progress-alert--blue{color:#60a5fa;background-color:#3b82f626;border:1px solid #3b82f64d}.project-dashboard-card__progress-alert--emerald{color:#34d399;background-color:#10b98126;border:1px solid #10b9814d}.project-dashboard-card__progress-bar{background-color:#334155;border-radius:9999px;height:.375rem}.project-dashboard-card__progress-fill{background:linear-gradient(90deg,#3b82f6,#10b981);border-radius:9999px;height:.375rem;transition:width .3s}.project-dashboard-card__content{flex-direction:column;flex:1;gap:.75rem;padding:1rem;display:flex}.project-dashboard-card__pending{border-radius:.5rem;padding:.75rem}.project-dashboard-card__pending--dark,.project-dashboard-card__pending--light{background-color:#ef44440d;border-color:#ef444433}.project-dashboard-card__section-header{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.project-dashboard-card__section-title{align-items:center;gap:.375rem;font-size:.875rem;font-weight:500;display:flex}.project-dashboard-card__count-badge{border-radius:9999px;padding:.125rem .5rem;font-size:.75rem}.project-dashboard-card__review-item{justify-content:space-between;align-items:center;font-size:.75rem;display:flex}.project-dashboard-card__review-info{flex:1;align-items:center;gap:.5rem;min-width:0;display:flex}.project-dashboard-card__review-indicator{border-radius:9999px;flex-shrink:0}.project-dashboard-card__review-indicator--overdue{background-color:#ef4444;animation:2s infinite pulse}.project-dashboard-card__review-indicator--pending{background-color:#f59e0b}.project-dashboard-card__stats-grid{grid-template-columns:repeat(4,1fr);gap:.5rem;display:grid}.project-dashboard-card__stat-mini{text-align:center;border-radius:.375rem;padding:.5rem}.project-dashboard-card__stat-value{font-size:1.125rem;font-weight:600}.project-dashboard-card__stat-label{opacity:.7;font-size:.625rem}.project-dashboard-card__tasks-grid{grid-template-columns:repeat(2,1fr);gap:.5rem;display:grid}.project-dashboard-card__task-link{border-radius:.5rem;padding:.625rem;text-decoration:none;transition:background-color .2s}.project-dashboard-card__task-link:hover{opacity:.9}.project-dashboard-card__task-link--pending{background-color:#3b82f61a;border-color:#3b82f633}.project-dashboard-card__task-link--developing{background-color:#10b9811a;border-color:#10b98133}.project-dashboard-card__hours-summary{background-color:#1e293b80;border-radius:.5rem;padding:.625rem}.project-dashboard-card__hours-label{color:#64748b;margin-bottom:.375rem;font-size:.75rem}.project-dashboard-card__hours-row{justify-content:space-between;align-items:center;font-size:.75rem;display:flex}.project-dashboard-card__distribution-grid{grid-template-columns:repeat(7,1fr);gap:.25rem;display:grid}.project-dashboard-card__distribution-item{text-align:center}.project-dashboard-card__distribution-bar{border-radius:9999px;height:.125rem;transition:opacity .2s}.project-dashboard-card__distribution-label{color:#64748b;margin-top:.125rem;font-size:.625rem}.project-dashboard-card__distribution-value{color:#cbd5e1;font-size:.625rem;font-weight:500}.project-dashboard-card__footer{background-color:#1e293b4d;border-top-width:1px;justify-content:space-between;align-items:center;padding:.625rem 1rem;display:flex}.project-dashboard-card__footer-link{color:#94a3b8;align-items:center;gap:.25rem;font-size:.75rem;text-decoration:none;transition:color .2s;display:flex}.project-dashboard-card__footer-link:hover{color:#60a5fa}.project-dashboard-card__footer-time{color:#64748b;white-space:nowrap;font-size:.65rem;transition:color .2s}.project-dashboard-card__footer-time:hover{color:#94a3b8}.project-dashboard-card__priority{border-radius:.25rem;flex-shrink:0;padding:.1rem .35rem;font-size:.6rem;font-weight:600}.project-dashboard-card__priority--low{color:#94a3b8;background-color:#64748b4d}.project-dashboard-card__priority--medium{color:#fbbf24;background-color:#f59e0b4d}.project-dashboard-card__priority--high{color:#f87171;background-color:#ef44444d}.project-dashboard-card__priority--critical{color:#fecaca;background-color:#ef444466;animation:2s infinite pulse-critical}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes pulse-critical{0%,to{opacity:1;box-shadow:0 0 #ef444466}50%{opacity:.8;box-shadow:0 0 8px 2px #ef444433}}
.base-modal{z-index:50;justify-content:center;align-items:center;padding:24px;animation:.25s modalFadeIn;display:flex;position:fixed;inset:0}.base-modal__overlay{-webkit-backdrop-filter:blur(8px);background-color:#0009;position:absolute;inset:0}.base-modal__container{z-index:1;background-color:#282828fa;border:1px solid #ffffff1a;border-radius:20px;width:100%;animation:.3s modalSlideIn;position:relative}.base-modal__header{justify-content:space-between;align-items:flex-start;gap:12px;padding:20px 20px 0;display:flex}.base-modal__title-section{flex:1;min-width:0}.base-modal__title{color:#fffffff5;letter-spacing:-.3px;margin:0;font-size:17px;font-weight:600}.base-modal__subtitle{color:#ffffff7a;margin:4px 0 0;font-size:13px}.base-modal__close{color:#fff6;cursor:pointer;background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;padding:4px;transition:all .2s;display:flex}.base-modal__close:hover{color:#fffc;background-color:#ffffff14}.base-modal__close svg{width:18px;height:18px}.base-modal__body{padding:16px 20px 20px}.base-modal__actions{gap:8px;padding:16px 20px 20px;display:flex}.base-modal__btn{cursor:pointer;letter-spacing:-.1px;border:none;border-radius:10px;flex:1;justify-content:center;align-items:center;gap:6px;padding:10px 16px;font-family:inherit;font-size:13px;font-weight:500;transition:all .2s;display:flex}.base-modal__btn svg{width:14px;height:14px}.base-modal__btn--cancel{color:#ffffffb8;background-color:#ffffff14}.base-modal__btn--cancel:hover{color:#fffffff5;background-color:#ffffff1f}.base-modal__btn--confirm{color:#fff}.base-modal__btn:disabled{opacity:.5;cursor:not-allowed}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalSlideIn{0%{opacity:0;transform:scale(.96)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}.create-project-type-btn{cursor:pointer;background-color:#ffffff0a;border:1px solid #ffffff1a;border-radius:12px;flex-direction:column;flex:1;align-items:center;gap:2px;padding:12px;transition:all .2s;display:flex}.create-project-type-btn__label{color:#ffffffb8;font-size:13px;font-weight:500}.create-project-type-btn__desc{color:#fff6;font-size:11px}.create-project-type-btn--active{background-color:#34c7591f;border-color:#34c7594d}.create-project-type-btn--active .create-project-type-btn__label{color:#34c759f2}.create-project-type-btn--active .create-project-type-btn__desc{color:#34c759b3}.create-project-type-btn:hover{background-color:#ffffff14}.create-project__input{color:#fffffff5;background-color:#ffffff0a;border:1px solid #ffffff1a;border-radius:10px;width:100%;padding:10px 12px;font-family:inherit;font-size:14px;transition:all .2s}.create-project__input:focus{background-color:#ffffff0f;border-color:#007aff80;outline:none}.create-project__input::placeholder{color:#ffffff52}.create-project__error{color:#ff6961;margin:8px 0 0;font-size:12px}.create-project-role-btn{cursor:pointer;background-color:#ffffff0a;border:1px solid #ffffff1a;border-radius:12px;flex-direction:column;flex:1;align-items:center;gap:2px;padding:12px;transition:all .2s;display:flex}.create-project-role-btn__icon{font-size:16px}.create-project-role-btn__label{color:#ffffffb8;font-size:13px;font-weight:500}.create-project-role-btn__desc{color:#fff6;font-size:11px}.create-project-role-btn--active{background-color:#007aff1f;border-color:#007aff4d}.create-project-role-btn--active .create-project-role-btn__label{color:#50a0fff2}.create-project-role-btn--active .create-project-role-btn__desc{color:#007affb3}.create-project-role-btn:hover{background-color:#ffffff14}.approval-modal{z-index:50;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.approval-modal__overlay{-webkit-backdrop-filter:blur(8px);background-color:#0009;position:absolute;inset:0}.approval-modal__container{z-index:1;background-color:#282828fa;border:1px solid #ffffff1a;border-radius:20px;width:100%;max-width:440px;animation:.3s modalSlideIn;position:relative}.approval-modal__header{justify-content:space-between;align-items:flex-start;gap:12px;padding:20px 20px 0;display:flex}.approval-modal__title-section{flex:1;min-width:0}.approval-modal__title{color:#fffffff5;letter-spacing:-.3px;margin:0;font-size:17px;font-weight:600}.approval-modal__subtitle{color:#ffffff7a;margin:4px 0 0;font-size:13px}.approval-modal__close{color:#fff6;cursor:pointer;background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;padding:4px;transition:all .2s;display:flex}.approval-modal__close:hover{color:#fffc;background-color:#ffffff14}.approval-modal__close svg{width:18px;height:18px}.approval-modal__body{padding:16px 20px 20px}.approval-modal__action-select{gap:12px;margin-bottom:16px;display:flex}.approval-modal__action-btn{cursor:pointer;border:none;border-radius:12px;flex:1;justify-content:center;align-items:center;gap:8px;padding:12px;font-family:inherit;font-size:14px;font-weight:500;transition:all .2s;display:flex}.approval-modal__action-btn svg{width:16px;height:16px}.approval-modal__action-btn--approve{color:#34c759;background-color:#34c75926;border:1px solid #34c75940}.approval-modal__action-btn--approve:hover{background-color:#34c75940}.approval-modal__action-btn--reject{color:#ff6961;background-color:#ff3b3026;border:1px solid #ff3b3040}.approval-modal__action-btn--reject:hover{background-color:#ff3b3040}.approval-modal__textarea{resize:none;color:#fffffff5;background-color:#ffffff0a;border:1px solid #ffffff1a;border-radius:12px;width:100%;padding:12px;font-family:inherit;font-size:13px;line-height:1.5;transition:all .2s}.approval-modal__textarea:focus{background-color:#ffffff0f;border-color:#007aff80;outline:none}.approval-modal__textarea::placeholder{color:#ffffff52}.approval-modal__preview{background-color:#ffffff0a;border-radius:8px;margin-top:12px;padding:10px 12px;font-size:13px}.approval-modal__preview-label{color:#ffffff7a}.approval-modal__preview-action{margin-left:8px;font-weight:500}.approval-modal__preview--approve{color:#34c759}.approval-modal__preview--reject{color:#ff6961}.approval-modal__actions{gap:8px;margin-top:16px;display:flex}.approval-modal__btn{cursor:pointer;letter-spacing:-.1px;border:none;border-radius:10px;flex:1;padding:10px 16px;font-family:inherit;font-size:13px;font-weight:500;transition:all .2s}.approval-modal__btn--back{color:#ffffff7a;background-color:#ffffff0a}.approval-modal__btn--back:hover{background-color:#ffffff14}.approval-modal__btn--cancel{color:#ffffffb8;background-color:#ffffff14}.approval-modal__btn--cancel:hover{color:#fffffff5;background-color:#ffffff1f}.approval-modal__btn--confirm{color:#fff}.approval-modal__btn--success{background-color:#34c759}.approval-modal__btn--success:hover{background-color:#2db84e}.approval-modal__btn--danger{background-color:#ff3b30}.approval-modal__btn--danger:hover{background-color:#e0342c}.approval-modal__btn:disabled{opacity:.5;cursor:not-allowed}.add-modal{z-index:50;justify-content:center;align-items:center;padding:24px;animation:.25s modalFadeIn;display:flex;position:fixed;inset:0}.add-modal__overlay{-webkit-backdrop-filter:blur(8px);background-color:#0009;position:absolute;inset:0}.add-modal__container{z-index:1;background-color:#282828fa;border:1px solid #ffffff1a;border-radius:20px;width:100%;max-width:480px;animation:.3s modalSlideIn;position:relative}.add-modal__header{justify-content:space-between;align-items:center;padding:20px 20px 0;display:flex}.add-modal__title{color:#fffffff5;letter-spacing:-.3px;margin:0;font-size:17px;font-weight:600}.add-modal__close{color:#fff6;cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:4px;transition:all .2s;display:flex}.add-modal__close:hover{color:#fffc;background-color:#ffffff14}.add-modal__close svg{width:18px;height:18px}.add-modal__body{padding:16px 20px}.add-modal__field{margin-bottom:12px}.add-modal__label{color:#ffffff7a;margin-bottom:6px;font-size:12px;font-weight:500;display:block}.add-modal__input,.add-modal__textarea,.add-modal__select{color:#fffffff5;background-color:#ffffff0a;border:1px solid #ffffff1a;border-radius:10px;width:100%;padding:10px 12px;font-family:inherit;font-size:14px;transition:all .2s}.add-modal__input:focus,.add-modal__textarea:focus,.add-modal__select:focus{background-color:#ffffff0f;border-color:#007aff80;outline:none}.add-modal__input::placeholder,.add-modal__textarea::placeholder{color:#ffffff52}.add-modal__input--small{padding:8px 10px}.add-modal__textarea{resize:none;min-height:60px}.add-modal__actions{border-top:1px solid #ffffff0f;gap:8px;margin-top:16px;padding-top:16px;display:flex}.add-modal__btn{cursor:pointer;letter-spacing:-.1px;border:none;border-radius:10px;flex:1;justify-content:center;align-items:center;gap:6px;padding:10px 16px;font-family:inherit;font-size:13px;font-weight:500;transition:all .2s;display:flex}.add-modal__btn svg{width:14px;height:14px}.add-modal__btn--cancel{color:#ffffffb8;background-color:#ffffff14}.add-modal__btn--cancel:hover{background-color:#ffffff1f}.add-modal__btn--create{color:#fff;background-color:#007aff}.add-modal__btn--create:hover{background-color:#0066d6}.add-modal__btn:disabled{opacity:.5;cursor:not-allowed}.delete-modal{z-index:50;justify-content:center;align-items:center;padding:24px;animation:.25s modalFadeIn;display:flex;position:fixed;inset:0}.delete-modal__overlay{-webkit-backdrop-filter:blur(8px);background-color:#0009;position:absolute;inset:0}.delete-modal__container{z-index:1;background-color:#282828fa;border:1px solid #ffffff1a;border-radius:20px;width:100%;max-width:440px;animation:.3s modalSlideIn;position:relative}.delete-modal__header{align-items:flex-start;gap:12px;padding:20px 20px 0;display:flex}.delete-modal__icon-section{align-items:flex-start;gap:12px;width:100%;display:flex}.delete-modal__icon{background-color:#ff3b301f;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.delete-modal__icon svg{color:#ff6961;width:20px;height:20px}.delete-modal__title{color:#fffffff5;letter-spacing:-.3px;margin:0;font-size:17px;font-weight:600}.delete-modal__subtitle{color:#ffffff7a;margin:0;font-size:13px}.delete-modal__close{color:#fff6;cursor:pointer;background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;padding:4px;transition:all .2s;display:flex}.delete-modal__close:hover{color:#fffc;background-color:#ffffff14}.delete-modal__close svg{width:18px;height:18px}.delete-modal__body{padding:16px 20px}.delete-modal__message{color:#ffffffb8;margin:0;font-size:13px;line-height:1.5}.delete-modal__node-name{color:#fffffff5;font-weight:600}.delete-modal__actions{gap:8px;padding:16px 20px 20px;display:flex}.delete-modal__btn{cursor:pointer;letter-spacing:-.1px;border:none;border-radius:10px;flex:1;justify-content:center;align-items:center;gap:6px;padding:10px 16px;font-family:inherit;font-size:13px;font-weight:500;transition:all .2s;display:flex}.delete-modal__btn svg{width:14px;height:14px}.delete-modal__btn--cancel{color:#ffffffb8;background-color:#ffffff14}.delete-modal__btn--cancel:hover{background-color:#ffffff1f}.delete-modal__btn--confirm{color:#fff;background-color:#ff3b30}.delete-modal__btn--confirm:hover{background-color:#e0342c}.delete-modal__btn:disabled{opacity:.5;cursor:not-allowed}.submit-modal{z-index:50;justify-content:center;align-items:center;padding:24px;animation:.25s modalFadeIn;display:flex;position:fixed;inset:0}.submit-modal__overlay{-webkit-backdrop-filter:blur(8px);background-color:#0009;position:absolute;inset:0}.submit-modal__container{z-index:1;background-color:#282828fa;border:1px solid #ffffff1a;border-radius:20px;width:100%;max-width:520px;max-height:90vh;animation:.3s modalSlideIn;position:relative;overflow-y:auto}.submit-modal__header{z-index:2;background-color:#282828fa;justify-content:space-between;align-items:flex-start;gap:12px;padding:20px 20px 12px;display:flex;position:sticky;top:0}.submit-modal__header-left{flex:1;align-items:flex-start;gap:12px;min-width:0;display:flex}.submit-modal__icon{background-color:#ff95001f;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.submit-modal__icon svg{color:#ff9500;width:20px;height:20px}.submit-modal__title{color:#fffffff5;letter-spacing:-.3px;margin:0;font-size:17px;font-weight:600}.submit-modal__subtitle{color:#ffffff7a;margin:0;font-size:13px}.submit-modal__close{color:#fff6;cursor:pointer;background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;padding:4px;transition:all .2s;display:flex}.submit-modal__close:hover{color:#fffc;background-color:#ffffff14}.submit-modal__close svg{width:18px;height:18px}.submit-modal__not-submittable{color:#ff6961;text-align:center;background-color:#ff3b301a;border:1px solid #ff3b3033;border-radius:10px;margin:0 20px;padding:12px;font-size:13px}.submit-modal__body{padding:0 20px 20px}.submit-modal__field{margin-bottom:16px}.submit-modal__label{color:#ffffffb8;margin-bottom:6px;font-size:13px;font-weight:500;display:block}.submit-modal__label-hint{color:#ffffff7a;margin-left:4px;font-weight:400}.submit-modal__warning{background-color:#ff950014;border:1px solid #ff950033;border-radius:12px;margin-bottom:16px;padding:12px 16px}.submit-modal__warning-text{color:#ffb432e6;margin:0;font-size:13px}.submit-modal__approvers{flex-direction:column;gap:8px;display:flex}.submit-modal__approver{cursor:pointer;background-color:#ffffff0a;border:1px solid #ffffff1a;border-radius:10px;align-items:center;gap:8px;padding:10px 12px;transition:all .2s;display:flex}.submit-modal__approver--selected{background-color:#ff95001f;border-color:#ff95004d}.submit-modal__approver-name{color:#fffffff5;font-size:13px}.submit-modal__approver-count{color:#ffb432e6;margin-top:4px;font-size:12px}.submit-modal__empty{text-align:center;color:#ffffff7a;background-color:#ffffff0a;border-radius:10px;padding:12px;font-size:13px}.submit-modal__textarea{resize:none;color:#fffffff5;background-color:#ffffff0a;border-width:1px;border-color:#ffffff1a;border-radius:12px;width:100%;padding:12px;font-family:inherit;font-size:13px;transition:all .2s}.submit-modal__textarea:focus{background-color:#ffffff0f;border-color:#ff950080;outline:none}.submit-modal__textarea--mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.submit-modal__actions{border-top:1px solid #ffffff0f;gap:8px;margin-top:8px;padding:16px 20px 20px;display:flex}.submit-modal__btn{cursor:pointer;letter-spacing:-.1px;border:none;border-radius:10px;flex:1;justify-content:center;align-items:center;gap:6px;padding:10px 16px;font-family:inherit;font-size:13px;font-weight:500;transition:all .2s;display:flex}.submit-modal__btn svg{width:14px;height:14px}.submit-modal__btn--cancel{color:#ffffffb8;background-color:#ffffff14}.submit-modal__btn--cancel:hover{background-color:#ffffff1f}.submit-modal__btn--submit{color:#fff;background-color:#ff9500}.submit-modal__btn--submit:hover{background-color:#e08600}.submit-modal__btn--disabled,.submit-modal__btn:disabled{opacity:.5;cursor:not-allowed}.edit-panel-overlay{z-index:50;-webkit-backdrop-filter:blur(4px);background-color:#0006;justify-content:flex-end;align-items:flex-start;display:flex;position:fixed;inset:0}.edit-panel{background-color:#1c1c1e;border-color:#ffffff1a;border-left-style:solid;border-left-width:1px;width:100%;max-width:400px;height:100vh;overflow-y:auto}.edit-panel__header{z-index:10;background-color:#1c1c1e;border-color:#ffffff1a;border-bottom-style:solid;border-bottom-width:1px;justify-content:space-between;align-items:center;padding:20px;display:flex;position:sticky;top:0}.edit-panel__title{color:#fffffff5;letter-spacing:-.3px;margin:0;font-size:17px;font-weight:600}.edit-panel__close{cursor:pointer;color:#fff6;border:none;border-radius:8px;justify-content:center;align-items:center;padding:6px;transition:background-color .2s;display:flex}.edit-panel__close:hover{background-color:#ffffff14}.edit-panel__close svg{width:18px;height:18px}.edit-panel__body{padding:20px}.edit-panel__field{margin-bottom:16px}.edit-panel__label{text-transform:uppercase;letter-spacing:.5px;color:#ffffff7a;margin-bottom:6px;font-size:12px;font-weight:500;display:block}.edit-panel__input,.edit-panel__select,.edit-panel__textarea{color:#fffffff5;background-color:#ffffff0a;border-width:1px;border-color:#ffffff1a;border-radius:10px;width:100%;padding:10px 12px;font-family:inherit;font-size:14px;transition:all .2s}.edit-panel__input:focus,.edit-panel__select:focus,.edit-panel__textarea:focus{outline:none;box-shadow:0 0 0 2px #007aff4d}.edit-panel__textarea{resize:vertical;min-height:80px}.edit-panel__hint{color:#ffffff5c;margin-top:4px;font-size:11px}.edit-panel__grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.edit-panel__actions{background-color:#1c1c1e;border-color:#ffffff1a;border-top-style:solid;border-top-width:1px;gap:8px;padding:16px 20px;display:flex;position:sticky;bottom:0}.edit-panel__btn{cursor:pointer;letter-spacing:-.1px;border:none;border-radius:10px;flex:1;justify-content:center;align-items:center;gap:6px;padding:10px 16px;font-family:inherit;font-size:13px;font-weight:500;transition:all .2s;display:flex}.edit-panel__btn svg{width:14px;height:14px}.edit-panel__btn--cancel{color:#ffffffb8;background-color:#ffffff14}.edit-panel__btn--cancel:hover{background-color:#ffffff1f}.edit-panel__btn--save{color:#fff;background-color:#007aff}.edit-panel__btn--save:hover{background-color:#0066d6}.edit-panel__btn:disabled{opacity:.5;cursor:not-allowed}.hours-input__wrapper{align-items:center;display:flex}.hours-input__controls{background-color:#1e293bcc;border:1px solid #334155cc;border-radius:8px;align-items:center;display:flex;overflow:hidden}.hours-input__control-btn{cursor:pointer;color:#cbd5e1;background-color:#1e293bcc;border:none;justify-content:center;align-items:center;width:32px;height:36px;transition:background-color .2s;display:flex}.hours-input__control-btn:hover{background-color:#334155cc}.hours-input__field{text-align:center;color:#f1f5f9;background:0 0;border-color:#334155;border-left-width:1px;border-right-width:1px;width:64px;padding:6px 8px;font-size:14px}.hours-input__label{color:#cbd5e1;margin-bottom:6px;font-size:14px;font-weight:500;display:block}.approval-record{background-color:#1e293b80;border-radius:8px;padding:12px}.approval-record__title{color:#94a3b8;align-items:center;gap:4px;margin-bottom:8px;font-size:14px;display:flex}.approval-record__item{font-size:12px}.approval-record__item-header{align-items:center;gap:8px;display:flex}.approval-record__approver{color:#cbd5e1}.approval-record__badge{border-radius:2px;padding:2px 6px;font-size:12px}.approval-record__badge--approved{color:#34d399;background-color:#10b98133}.approval-record__badge--rejected{color:#f87171;background-color:#ef444433}.approval-record__comment{color:#fff9;border-left:2px solid #ffffff1a;margin-top:4px;padding-left:8px;font-size:12px}
.invite-link-modal{z-index:50;justify-content:center;align-items:center;padding:24px;animation:.25s modalFadeIn;display:flex;position:fixed;inset:0}.invite-link-modal__overlay{-webkit-backdrop-filter:blur(8px);background-color:#0009;position:absolute;inset:0}.invite-link-modal__container{z-index:1;background-color:#282828fa;border:1px solid #ffffff1a;border-radius:20px;width:100%;max-width:440px;animation:.3s modalSlideIn;position:relative}.invite-link-modal__header{justify-content:space-between;align-items:flex-start;gap:12px;padding:20px 20px 0;display:flex}.invite-link-modal__title{color:#fffffff5;letter-spacing:-.3px;margin:0;font-size:17px;font-weight:600}.invite-link-modal__close{color:#fff6;cursor:pointer;background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;padding:4px;transition:all .2s;display:flex}.invite-link-modal__close:hover{color:#fffc;background-color:#ffffff14}.invite-link-modal__close svg{width:18px;height:18px}.invite-link-modal__body{padding:16px 20px 20px}.invite-link-modal__description{color:#ffffff7a;margin:0 0 12px;font-size:13px}.invite-link-modal__input-wrapper{margin-bottom:16px}.invite-link-modal__input{color:#fffffff5;word-break:break-all;background-color:#ffffff0a;border:1px solid #ffffff1a;border-radius:10px;width:100%;padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:13px;transition:all .2s}.invite-link-modal__input:focus{background-color:#ffffff0f;border-color:#007aff80;outline:none}.invite-link-modal__actions{gap:8px;display:flex}.invite-link-modal__btn{cursor:pointer;letter-spacing:-.1px;border:none;border-radius:10px;flex:1;justify-content:center;align-items:center;gap:6px;padding:10px 16px;font-family:inherit;font-size:13px;font-weight:500;transition:all .2s;display:flex}.invite-link-modal__btn svg{width:14px;height:14px}.invite-link-modal__btn--copy{color:#fff;background-color:#007aff}.invite-link-modal__btn--copy:hover{background-color:#0066d6}.invite-link-modal__btn--secondary{color:#ffffffb8;background-color:#ffffff14}.invite-link-modal__btn--secondary:hover{color:#fffffff5;background-color:#ffffff1f}.invite-link-modal__btn:disabled{opacity:.5;cursor:not-allowed}.missing-party-banner{border-style:solid;border-width:1px;border-radius:10px;margin:16px;padding:16px;animation:.3s bannerFadeIn}.missing-party-banner--dark{background-color:#78500026;border-color:#b4821e66}.missing-party-banner--light{background-color:#fffbeb;border-color:#f59e0b}.missing-party-banner__content{align-items:flex-start;gap:12px;display:flex}.missing-party-banner__icon{flex-shrink:0;margin-top:2px}.missing-party-banner__icon--dark svg{color:#fbbf24}.missing-party-banner__icon--light svg{color:#b45309}.missing-party-banner__icon svg{width:20px;height:20px}.missing-party-banner__text{flex:1;min-width:0}.missing-party-banner__title{margin:0;font-size:14px;font-weight:500}.missing-party-banner__title--dark{color:#fde68ae6}.missing-party-banner__title--light{color:#92400e}.missing-party-banner__message{margin:4px 0 0;font-size:13px;line-height:1.5}.missing-party-banner__message--dark{color:#fcd34db3}.missing-party-banner__message--light{color:#a16207}.missing-party-banner__actions{align-items:flex-start;gap:8px;display:flex}.missing-party-banner__dismiss{cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:4px;transition:all .2s;display:flex}.missing-party-banner__dismiss--dark{color:#fde68a99}.missing-party-banner__dismiss--light{color:#b4821e99}.missing-party-banner__dismiss:hover{background-color:#ffffff14}.missing-party-banner__dismiss svg{width:16px;height:16px}.missing-party-banner__invite-btn{color:#fff;cursor:pointer;background-color:#d97706;border:none;border-radius:8px;align-items:center;gap:6px;margin-top:8px;padding:8px 16px;font-family:inherit;font-size:13px;font-weight:500;transition:all .2s;display:inline-flex}.missing-party-banner__invite-btn:hover{background-color:#b45309}.missing-party-banner__invite-btn:disabled{opacity:.5;cursor:not-allowed}.missing-party-banner__invite-btn svg{width:14px;height:14px}@keyframes bannerFadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
