:root{--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--fs-xs:11px;--fs-sm:12px;--fs-base:13px;--fs-md:14px;--fs-lg:16px;--fs-xl:20px;--fs-2xl:24px;--fs-3xl:30px;--lh-tight:1.2;--lh-base:1.45;--lh-loose:1.6;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--sp-0:0;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--sp-12:48px;--sp-16:64px;--r-sm:4px;--r-md:6px;--r-lg:8px;--r-xl:12px;--r-2xl:16px;--r-full:9999px;--t-fast:.12s cubic-bezier(.4, 0, .2, 1);--t-base:.18s cubic-bezier(.4, 0, .2, 1);--text-on-accent:#fff;--accent-500:#4338ca;--accent-400:#5b50e0;--accent-300:#8278eb;--accent-600:#372ea8;--accent-700:#2b2388;--stage-1:#3b82f6;--stage-2:#6366f1;--stage-3:#a855f7;--stage-4:#8b5cf6;--stage-5:#f59e0b;--stage-6:#22c55e;--stage-7:#f97316;--stage-8:#10b981;--finance-pending:#f59e0b;--finance-received:#22c55e;--finance-overdue:#ef4444;--priority-high:#ef4444;--priority-med:#f59e0b;--priority-low:#64748b}:root,[data-theme=light]{--bg-app:#f7f8fa;--bg-surface:#fff;--bg-subtle:#f3f4f6;--bg-hover:#f5f5f7;--bg-selected:#eef2ff;--bg-sidebar:#fafafb;--border-subtle:#eceef2;--border-default:#e5e7eb;--border-strong:#d1d5db;--border-focus:var(--accent-500);--text-primary:#111827;--text-secondary:#4b5563;--text-tertiary:#6b7280;--text-muted:#9ca3af;--text-inverse:#fff;--text-accent:var(--accent-500);--shadow-xs:0 1px 2px #1018280a;--shadow-sm:0 1px 3px #1018280f, 0 1px 2px #1018280a;--shadow-md:0 4px 12px #1018280f, 0 2px 4px #1018280a;--shadow-lg:0 12px 32px #10182814, 0 4px 8px #1018280a;--shadow-ring:0 0 0 3px #4338ca1f;--pill-blue-bg:#eff6ff;--pill-blue-fg:#1d4ed8;--pill-indigo-bg:#eef2ff;--pill-indigo-fg:#4338ca;--pill-purple-bg:#faf5ff;--pill-purple-fg:#7e22ce;--pill-violet-bg:#f5f3ff;--pill-violet-fg:#6d28d9;--pill-amber-bg:#fffbeb;--pill-amber-fg:#b45309;--pill-green-bg:#f0fdf4;--pill-green-fg:#15803d;--pill-orange-bg:#fff7ed;--pill-orange-fg:#c2410c;--pill-emerald-bg:#ecfdf5;--pill-emerald-fg:#047857;--pill-red-bg:#fef2f2;--pill-red-fg:#b91c1c;--pill-gray-bg:#f3f4f6;--pill-gray-fg:#374151;--green-text:#15803d;--blue-text:#1d4ed8;--red-text:#b91c1c;--yellow-text:#b45309;--cowork-grad:linear-gradient(135deg, #6d28d9 0%, #8b5cf6 50%, #a78bfa 100%);--cowork-grad-subtle:linear-gradient(135deg, #6d28d914 0%, #a78bfa0a 100%)}[data-theme=dark]{--bg-app:#0a0a0b;--bg-surface:#131315;--bg-subtle:#1a1a1d;--bg-hover:#1f1f23;--bg-selected:#1e1b4b;--bg-sidebar:#0e0e10;--border-subtle:#1d1d20;--border-default:#26262b;--border-strong:#34343a;--border-focus:var(--accent-400);--text-primary:#f3f4f6;--text-secondary:#c7c9d1;--text-tertiary:#8e909a;--text-muted:#6b6d75;--text-inverse:#0a0a0b;--text-accent:#8278eb;--shadow-xs:0 1px 2px #0000004d;--shadow-sm:0 1px 3px #0006;--shadow-md:0 4px 12px #00000080;--shadow-lg:0 12px 32px #0009;--shadow-ring:0 0 0 3px #5b50e040;--pill-blue-bg:#3b82f61f;--pill-blue-fg:#93c5fd;--pill-indigo-bg:#6366f124;--pill-indigo-fg:#a5b4fc;--pill-purple-bg:#a855f71f;--pill-purple-fg:#d8b4fe;--pill-violet-bg:#8b5cf61f;--pill-violet-fg:#c4b5fd;--pill-amber-bg:#f59e0b24;--pill-amber-fg:#fcd34d;--pill-green-bg:#22c55e1f;--pill-green-fg:#86efac;--pill-orange-bg:#f9731624;--pill-orange-fg:#fdba74;--pill-emerald-bg:#10b9811f;--pill-emerald-fg:#6ee7b7;--pill-red-bg:#ef44441f;--pill-red-fg:#fca5a5;--pill-gray-bg:#9ca3af1f;--pill-gray-fg:#d1d5db;--green-text:#86efac;--blue-text:#93c5fd;--red-text:#fca5a5;--yellow-text:#fcd34d;--cowork-grad:linear-gradient(135deg, #4c1d95 0%, #6d28d9 50%, #8b5cf6 100%);--cowork-grad-subtle:linear-gradient(135deg, #6d28d92e 0%, #8b5cf614 100%)}*,:before,:after{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility}body{font-family:var(--font-sans);font-size:var(--fs-base);line-height:var(--lh-base);color:var(--text-primary);background:var(--bg-app);transition:background var(--t-base), color var(--t-base);font-feature-settings:"cv11", "ss01";margin:0}button{cursor:pointer;color:inherit;background:0 0;border:none;padding:0;font-family:inherit}a{color:inherit;text-decoration:none}input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}::selection{background:var(--accent-500);color:#fff}.mono{font-family:var(--font-mono);letter-spacing:-.01em;font-size:.92em}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:var(--r-full);border:2px solid var(--bg-app)}::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}.page{padding:var(--sp-6) var(--sp-8);width:100%;max-width:1440px;margin:0 auto}.page--narrow{max-width:1120px}.page--wide{max-width:none}.page-header{justify-content:space-between;align-items:flex-start;gap:var(--sp-5);margin-bottom:var(--sp-6);display:flex}.page-header__title{font-size:var(--fs-2xl);font-weight:var(--fw-semibold);color:var(--text-primary);letter-spacing:-.02em;margin:0;line-height:1.2}.page-header__desc{font-size:var(--fs-md);color:var(--text-tertiary);margin:4px 0 0}.page-header__actions{align-items:center;gap:var(--sp-2);display:flex}.page-title{font-size:var(--fs-2xl);font-weight:var(--fw-semibold);color:var(--text-primary);letter-spacing:-.02em;margin:0;line-height:1.2}.page-subtitle{font-size:var(--fs-sm);color:var(--text-tertiary);margin:4px 0 0}.card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-xl);overflow:hidden}.card__header{padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:var(--sp-3);display:flex}.card__title{font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--text-primary);letter-spacing:-.01em;align-items:center;gap:var(--sp-2);margin:0;display:flex}.card__body{padding:var(--sp-5)}.card__body--flush{padding:0}.stat-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-xl);padding:var(--sp-4) var(--sp-5);position:relative;overflow:hidden}.stat-card__label{align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);color:var(--text-tertiary);font-weight:var(--fw-medium);margin-bottom:var(--sp-2);display:flex}.stat-card__value{font-size:28px;font-weight:var(--fw-semibold);color:var(--text-primary);letter-spacing:-.02em;align-items:baseline;gap:var(--sp-2);line-height:1.1;display:flex}.stat-card__sub{font-size:var(--fs-xs);color:var(--text-muted);margin-top:var(--sp-2)}.pill{border-radius:var(--r-full);font-size:var(--fs-xs);font-weight:var(--fw-medium);white-space:nowrap;align-items:center;gap:6px;padding:2px 8px;line-height:1.5;display:inline-flex}.pill__dot{background:currentColor;border-radius:50%;flex-shrink:0;width:6px;height:6px}.pill--blue{background:var(--pill-blue-bg);color:var(--pill-blue-fg)}.pill--indigo{background:var(--pill-indigo-bg);color:var(--pill-indigo-fg)}.pill--purple{background:var(--pill-purple-bg);color:var(--pill-purple-fg)}.pill--violet{background:var(--pill-violet-bg);color:var(--pill-violet-fg)}.pill--amber{background:var(--pill-amber-bg);color:var(--pill-amber-fg)}.pill--green{background:var(--pill-green-bg);color:var(--pill-green-fg)}.pill--orange{background:var(--pill-orange-bg);color:var(--pill-orange-fg)}.pill--emerald{background:var(--pill-emerald-bg);color:var(--pill-emerald-fg)}.pill--red{background:var(--pill-red-bg);color:var(--pill-red-fg)}.pill--gray{background:var(--pill-gray-bg);color:var(--pill-gray-fg)}.pill--sm{padding:1px 6px;font-size:10px}.avatar{width:24px;height:24px;font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:#fff;letter-spacing:-.01em;background:linear-gradient(135deg, var(--accent-400), var(--accent-600));border-radius:50%;flex-shrink:0;place-items:center;display:inline-grid}.avatar--xs{width:16px;height:16px;font-size:8px}.avatar--sm{width:20px;height:20px;font-size:9px}.avatar--lg{width:36px;height:36px;font-size:var(--fs-sm)}.avatar--xl{width:48px;height:48px;font-size:var(--fs-md)}.avatar--profile{width:72px;height:72px;font-size:var(--fs-xl)}.avatar--1{background:linear-gradient(135deg,#f472b6,#db2777)}.avatar--2{background:linear-gradient(135deg,#60a5fa,#2563eb)}.avatar--3{background:linear-gradient(135deg,#34d399,#059669)}.avatar--4{background:linear-gradient(135deg,#fbbf24,#d97706)}.avatar--5{background:linear-gradient(135deg,#a78bfa,#7c3aed)}.avatar--6{background:linear-gradient(135deg,#f87171,#dc2626)}.kpi-strip{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:16px;display:grid}@media (max-width:640px){.kpi-strip{grid-template-columns:repeat(2,1fr)}}.stage-bar{background:var(--bg-subtle);border-radius:999px;height:10px;display:flex;overflow:hidden}.stage-bar__seg{height:100%;transition:flex-basis .2s}.stage-legend{grid-template-columns:repeat(4,1fr);gap:10px 20px;margin-top:16px;display:grid}@media (max-width:900px){.stage-legend{grid-template-columns:repeat(2,1fr)}}.stage-legend__item{color:var(--text-tertiary);align-items:center;gap:8px;font-size:12px;display:flex}.stage-legend__dot{border-radius:2px;flex-shrink:0;width:8px;height:8px}.stage-legend__label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.stage-legend__count{color:var(--text-primary);font-weight:600;font-family:var(--font-mono);font-size:11px}.dash-grid{grid-template-columns:1.5fr 1fr;gap:16px;display:grid}@media (max-width:1100px){.dash-grid{grid-template-columns:1fr}}.dash-header{margin-bottom:20px}.dash-header__title{color:var(--text-primary);margin:0;font-size:20px;font-weight:700}.dash-header__sub{color:var(--text-tertiary);margin-top:4px;font-size:13px}.dash-col{flex-direction:column;gap:16px;display:flex}.dash-col>:last-child{flex:1}.financial-rows{flex-direction:column;gap:12px;display:flex}.financial-row{justify-content:space-between;align-items:center;display:flex}.financial-row__label{color:var(--text-secondary);font-size:13px}.financial-row__value{color:var(--text-primary);font-size:14px;font-weight:600;font-family:var(--font-mono)}.financial-row__value--green{color:var(--pill-green-fg)}.financial-row__value--amber{color:var(--pill-amber-fg)}.resource-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.resource-stat{text-align:center;background:var(--bg-subtle);border-radius:var(--r-lg);padding:12px 8px}.resource-stat__label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:600}.resource-stat__value{color:var(--text-primary);margin-top:4px;font-size:24px;font-weight:700}.resource-stat__value--amber{color:var(--pill-amber-fg)}.resource-stat__value--red{color:var(--pill-red-fg)}.milestone-row{border-bottom:1px solid var(--border-subtle);grid-template-columns:1fr auto auto;align-items:center;gap:12px;padding:10px 16px;font-size:13px;display:grid}.milestone-row:last-child{border-bottom:none}.milestone-row--overdue{background:var(--pill-red-bg)}.milestone-row__info{min-width:0}.milestone-row__name{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.milestone-row__project{color:var(--text-tertiary);margin-top:2px;font-size:11px}.milestone-row__amount{font-family:var(--font-mono);color:var(--text-primary);white-space:nowrap;font-size:12px;font-weight:600}.milestone-row__date{color:var(--text-secondary);white-space:nowrap;font-size:12px}.milestone-row__date--overdue{color:var(--pill-red-fg);font-weight:600}.my-project-row{border-bottom:1px solid var(--border-subtle);color:inherit;grid-template-columns:1fr auto auto auto;align-items:center;gap:10px;padding:10px 16px;font-size:13px;text-decoration:none;transition:background .1s;display:grid}.my-project-row:last-child{border-bottom:none}.my-project-row:hover{background:var(--bg-hover)}.my-project-row__info{min-width:0}.my-project-row__name{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:6px;font-weight:500;display:flex;overflow:hidden}.my-project-row__risk{background:var(--pill-red-fg);border-radius:50%;flex-shrink:0;width:8px;height:8px}.my-project-row__client{color:var(--text-tertiary);margin-top:2px;font-size:11px}.my-project-row__role{color:var(--text-secondary);background:var(--bg-subtle);border-radius:var(--r-sm);white-space:nowrap;padding:2px 8px;font-size:11px;font-weight:500}.deliverable-row{border-bottom:1px solid var(--border-subtle);grid-template-columns:1fr auto;align-items:center;gap:12px;padding:10px 16px;font-size:13px;display:grid}.deliverable-row:last-child{border-bottom:none}.deliverable-row--overdue{background:var(--pill-red-bg)}.deliverable-row__info{min-width:0}.deliverable-row__title{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.deliverable-row__project{color:var(--text-tertiary);margin-top:2px;font-size:11px}.deliverable-row__date{color:var(--text-secondary);white-space:nowrap;font-size:12px}.deliverable-row__date--overdue{color:var(--pill-red-fg);font-weight:600}.recognition-row{border-bottom:1px solid var(--border-subtle);grid-template-columns:1fr auto;align-items:start;gap:12px;padding:10px 16px;font-size:13px;display:grid}.recognition-row:last-child{border-bottom:none}.recognition-row__info{min-width:0}.recognition-row__name{color:var(--text-primary);align-items:center;gap:6px;font-weight:500;display:flex}.recognition-row__count{color:var(--pill-green-fg);background:var(--pill-green-bg);border-radius:var(--r-sm);padding:1px 6px;font-size:11px;font-weight:600}.recognition-row__message{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:12px;overflow:hidden}.recognition-row__meta{color:var(--text-muted);white-space:nowrap;font-size:11px}.pm-row{border-bottom:1px solid var(--border-subtle);grid-template-columns:28px 1fr 70px 50px;align-items:center;gap:10px;padding:10px 16px;font-size:13px;display:grid}.pm-row:last-child{border-bottom:none}.pm-row__name{color:var(--text-primary);font-weight:500}.pm-row__count{color:var(--text-tertiary);margin-top:1px;font-size:11px}.pm-row__bar{background:var(--bg-subtle);border-radius:999px;height:4px;overflow:hidden}.pm-row__fill{background:linear-gradient(90deg, var(--accent-400), var(--accent-500));border-radius:999px;height:100%}.pm-row__fill--high{background:linear-gradient(90deg,#f59e0b,#ef4444)}.pm-row__pct{font-family:var(--font-mono);color:var(--text-primary);text-align:right;font-size:11px;font-weight:600}.risk-item{border-bottom:1px solid var(--border-subtle);grid-template-columns:3px 1fr;align-items:center;gap:12px;padding:10px 16px;display:grid}.risk-item:last-child{border-bottom:none}.risk-item__bar{border-radius:2px;width:3px;height:28px}.risk-item__bar--high{background:var(--pill-red-fg)}.risk-item__bar--med{background:var(--pill-amber-fg)}.risk-item__title{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;overflow:hidden}.risk-item__reason{color:var(--text-tertiary);margin-top:2px;font-size:11px}.feed-item{border-bottom:1px solid var(--border-subtle);grid-template-columns:22px 1fr;align-items:start;gap:10px;padding:10px 16px;font-size:12px;display:grid}.feed-item:last-child{border-bottom:none}.feed-item__text{color:var(--text-primary);line-height:1.45}.feed-item__meta{color:var(--text-muted);margin-top:2px;font-size:11px}.feed-dot{border-radius:50%;flex-shrink:0;place-items:center;width:22px;height:22px;display:grid}.feed-dot--green{background:var(--pill-green-bg);color:var(--pill-green-fg)}.feed-dot--amber{background:var(--pill-amber-bg);color:var(--pill-amber-fg)}.feed-dot--blue{background:var(--pill-blue-bg);color:var(--pill-blue-fg)}.feed-dot--purple{background:var(--pill-purple-bg);color:var(--pill-purple-fg)}.feed-dot--indigo{background:var(--pill-indigo-bg);color:var(--pill-indigo-fg)}.feed-dot--cyan{background:var(--pill-blue-bg);color:var(--pill-blue-fg)}.feed-dot--gray{background:var(--bg-subtle);color:var(--text-muted)}.trend-chart{align-items:flex-end;gap:14px;height:140px;display:flex}.trend-col{flex-direction:column;flex:1;align-items:center;gap:6px;height:100%;display:flex}.trend-bars{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:2px;width:100%;display:flex}.trend-bar{border-radius:2px;width:26px}.trend-bar--lost{background:var(--text-muted);opacity:.5}.trend-bar--won{background:linear-gradient(180deg, var(--pill-green-fg), #10b981);border-radius:3px 3px 0 0}.trend-label{color:var(--text-muted);font-size:10px;font-weight:500}@media (max-width:640px){.my-project-row{grid-template-columns:1fr auto}.my-project-row__role{display:none}}.link-btn{color:var(--accent-500);cursor:pointer;font-size:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.link-btn:hover{color:var(--accent-600)}.app{grid-template-columns:240px 1fr;min-height:100vh;transition:grid-template-columns .2s;display:grid}.app--no-sidebar{grid-template-columns:1fr}.app--collapsed{grid-template-columns:56px 1fr}.app--loading{opacity:0}.app--ready{opacity:1;transition:opacity 80ms}.main{background:var(--bg-app);flex-direction:column;min-width:0;height:100vh;display:flex}.sidebar{background:var(--bg-sidebar);border-right:1px solid var(--border-subtle);padding:var(--sp-3) var(--sp-2);z-index:12;flex-direction:column;width:240px;height:100vh;transition:width .2s,padding .2s;display:flex;position:sticky;top:0}.sidebar__scroll{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden auto}.sidebar__toggle{background:var(--bg-surface);border:1px solid var(--border-subtle);width:28px;height:28px;color:var(--text-tertiary);cursor:pointer;z-index:20;transition:background var(--t-fast), color var(--t-fast), box-shadow var(--t-fast);border-radius:50%;place-items:center;display:grid;position:absolute;top:16px;right:-14px;box-shadow:0 1px 4px #00000014}.sidebar__toggle:hover{background:var(--bg-hover);color:var(--text-primary);box-shadow:0 2px 8px #0000001f}.sidebar__toggle:focus-visible{outline:2px solid var(--accent-500);outline-offset:2px}.sidebar__brand{align-items:center;gap:var(--sp-2);padding:var(--sp-2);margin-bottom:var(--sp-3);border-radius:var(--r-md);cursor:pointer;transition:background var(--t-fast);display:flex}.sidebar__brand:hover{background:var(--bg-hover)}.brand-logo{object-fit:contain;border-radius:6px;flex-shrink:0}.brand-name{font-size:var(--fs-md);font-weight:var(--fw-semibold);letter-spacing:-.01em;color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.sidebar__section{margin-top:var(--sp-4);padding:0 var(--sp-2)}.sidebar__section--dev{padding-top:var(--sp-3);border-top:1px solid var(--border-subtle)}.sidebar__section-label{font-size:10px;font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);padding:0 var(--sp-2);margin-bottom:var(--sp-2)}.sidebar__nav{flex-direction:column;gap:1px;margin:0;padding:0;list-style:none;display:flex}.nav-item{align-items:center;gap:var(--sp-2);padding:6px var(--sp-2);border-radius:var(--r-md);font-size:var(--fs-base);color:var(--text-secondary);cursor:pointer;transition:background var(--t-fast), color var(--t-fast);text-decoration:none;display:flex}.nav-item:hover{background:var(--bg-hover);color:var(--text-primary)}.nav-item--active{background:var(--bg-selected);color:var(--text-accent);font-weight:var(--fw-medium)}.nav-item--active .nav-item__icon{color:var(--text-accent)}.nav-item__icon{width:16px;height:16px;color:var(--text-tertiary);flex-shrink:0}.nav-item__label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.nav-item__kbd{font-family:var(--font-mono);color:var(--text-muted);background:var(--bg-subtle);border:1px solid var(--border-subtle);opacity:0;transition:opacity var(--t-fast);border-radius:3px;padding:1px 4px;font-size:10px}.nav-item:hover .nav-item__kbd{opacity:1}.nav-item__badge{font-size:10px;font-weight:var(--fw-semibold);background:var(--bg-subtle);color:var(--text-secondary);border-radius:var(--r-full);text-align:center;min-width:18px;margin-left:auto;padding:1px 6px}.nav-item--active .nav-item__badge{background:var(--accent-500);color:#fff}.sidebar__user{padding:var(--sp-2);border-top:1px solid var(--border-subtle);padding-top:var(--sp-3);margin-top:auto;position:relative}.sidebar__user-inner{align-items:center;gap:var(--sp-2);width:100%;padding:var(--sp-1) var(--sp-2);border-radius:var(--r-md);transition:background var(--t-fast);cursor:pointer;text-align:left;display:flex}.sidebar__user-inner:hover{background:var(--bg-hover)}.sidebar__user-inner:focus-visible{outline:2px solid var(--accent-500);outline-offset:-2px}.sidebar__user-name{font-size:var(--fs-base);font-weight:var(--fw-medium);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;line-height:1.2;overflow:hidden}.sidebar__user-meta{font-size:var(--fs-xs);color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;line-height:1.2;overflow:hidden}.sidebar__user-info{flex:1;min-width:0}.user-menu{bottom:100%;left:var(--sp-2);right:var(--sp-2);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--r-lg);padding:var(--sp-1);margin-bottom:var(--sp-2);box-shadow:var(--shadow-lg);z-index:20;flex-direction:column;gap:1px;animation:.15s user-menu-in;display:flex;position:absolute}@keyframes user-menu-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.user-menu{animation:none}}.user-menu__item{align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);font-size:var(--fs-base);color:var(--text-secondary);transition:background var(--t-fast), color var(--t-fast);cursor:pointer;text-decoration:none;display:flex}.user-menu__item:hover{background:var(--bg-hover);color:var(--text-primary)}.user-menu__item:focus-visible{outline:2px solid var(--accent-500);outline-offset:-2px}.user-menu__item--danger{color:var(--pill-red-fg)}.user-menu__item--danger:hover{background:var(--pill-red-bg);color:var(--pill-red-fg)}.user-menu__icon{width:14px;height:14px;color:var(--text-tertiary);flex-shrink:0}.user-menu__item:hover .user-menu__icon{color:var(--text-primary)}.user-menu__item--danger .user-menu__icon{color:var(--pill-red-fg)}.user-menu__divider{background:var(--border-subtle);height:1px;margin:var(--sp-1) 0}.sidebar--collapsed .user-menu{min-width:180px;left:0;right:auto}.sidebar--collapsed{width:56px;padding:var(--sp-3) var(--sp-1);overflow:visible}.sidebar--collapsed .brand-name,.sidebar--collapsed .sidebar__section-label,.sidebar--collapsed .nav-item__label,.sidebar--collapsed .nav-item__kbd,.sidebar--collapsed .sidebar__user-info{display:none}.sidebar--collapsed .sidebar__brand{align-items:center;gap:var(--sp-1);padding:var(--sp-2) var(--sp-1);flex-direction:column}.sidebar--collapsed .sidebar__section{padding:0}.sidebar--collapsed .nav-item{justify-content:center;align-items:center;gap:0;padding:8px 0;position:relative}.sidebar--collapsed .sidebar__user-inner{padding:var(--sp-1);justify-content:center}.sidebar--collapsed .nav-item:after{content:attr(data-tooltip);background:var(--bg-surface);color:var(--text-primary);font-size:var(--fs-xs);font-weight:var(--fw-medium);border-radius:var(--r-md);border:1px solid var(--border-subtle);box-shadow:var(--shadow-sm);white-space:nowrap;opacity:0;pointer-events:none;z-index:60;padding:4px 8px;transition:opacity .1s;position:absolute;top:50%;left:calc(100% + 8px);transform:translateY(-50%)}.sidebar--collapsed .nav-item:hover:after{opacity:1}.sidebar-backdrop{display:none}.topbar{background:var(--bg-surface);border-bottom:1px solid var(--border-subtle);height:48px;padding:0 var(--sp-5);align-items:center;gap:var(--sp-3);z-index:10;flex-shrink:0;display:flex;position:sticky;top:0}.topbar__breadcrumbs{align-items:center;gap:var(--sp-2);font-size:var(--fs-base);color:var(--text-secondary);flex:1;min-width:0;display:flex}.topbar__breadcrumbs .crumb{align-items:center;gap:var(--sp-2);display:flex}.topbar__breadcrumbs .crumb-sep{color:var(--text-muted);font-size:10px}.topbar__breadcrumbs .crumb--current{color:var(--text-primary);font-weight:var(--fw-medium)}.topbar__actions{align-items:center;gap:var(--sp-2);display:flex}[data-theme=light] .topbar .lp-theme-toggle{--theme-toggle-bg:#0000000f;--theme-toggle-border:#0000001f;--theme-toggle-color:#0006;--theme-toggle-active-bg:var(--bg-surface);--theme-toggle-active-color:var(--text-primary)}.topbar__breadcrumbs .crumb--link{color:var(--text-secondary);transition:color var(--t-fast);text-decoration:none}.topbar__breadcrumbs .crumb--link:hover{color:var(--text-primary)}.icon-btn{border-radius:var(--r-md);width:30px;height:30px;color:var(--text-tertiary);transition:all var(--t-fast);place-items:center;display:grid;position:relative}.icon-btn:hover{background:var(--bg-subtle);color:var(--text-primary)}.icon-btn__dot{background:var(--priority-high);border:1.5px solid var(--bg-surface);border-radius:50%;width:6px;height:6px;position:absolute;top:6px;right:6px}.page-scroll{flex:1;overflow-y:auto}.btn{align-items:center;gap:var(--sp-1);padding:0 var(--sp-3);border-radius:var(--r-md);height:32px;font-size:var(--fs-sm);font-weight:var(--fw-medium);cursor:pointer;transition:background var(--t-fast), color var(--t-fast), border-color var(--t-fast);white-space:nowrap;border:1px solid #0000;flex-shrink:0;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:focus-visible{box-shadow:var(--shadow-ring);border-color:var(--border-focus);outline:none}.btn--primary{background:var(--accent-500);color:var(--text-on-accent);border-color:var(--accent-500)}.btn--primary:hover:not(:disabled){background:var(--accent-600);border-color:var(--accent-600)}.btn--ghost{color:var(--text-secondary);border-color:var(--border-default);background:0 0}.btn--ghost:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-strong)}.btn--danger{color:var(--pill-red-fg);background:0 0;border-color:#0000}.btn--danger:hover:not(:disabled){background:var(--pill-red-bg)}.btn--sm{height:26px;padding:0 var(--sp-2);font-size:var(--fs-xs);border-radius:var(--r-sm)}.input--sm{height:26px;font-size:var(--fs-xs);padding:0 var(--sp-2)}.btn--lg{height:38px;padding:0 var(--sp-4);font-size:var(--fs-base)}.btn--icon{flex-shrink:0;place-items:center;width:26px;height:26px;padding:0;display:inline-grid}.btn--secondary{background:var(--bg-surface);color:var(--text-primary);border-color:var(--border-default)}.btn--secondary:hover{background:var(--bg-hover);border-color:var(--border-strong)}.field-input,.field-select{height:30px;padding:0 var(--sp-2);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--r-sm);font-size:var(--fs-sm);color:var(--text-primary);width:100%;min-width:0;transition:border-color var(--t-fast), box-shadow var(--t-fast)}.field-input:focus,.field-select:focus{border-color:var(--border-focus);box-shadow:var(--shadow-ring);outline:none}.field-input::placeholder{color:var(--text-muted)}.field-input:disabled,.field-select:disabled{opacity:.5;cursor:not-allowed;background:var(--bg-subtle)}.field-select{cursor:pointer}.field-input--textarea{height:auto;min-height:72px;padding:var(--sp-2);resize:vertical;line-height:1.5}.composer{border:1px solid var(--border-default);border-radius:var(--r-lg);background:var(--bg-surface);transition:border-color var(--t-fast), box-shadow var(--t-fast)}.composer:focus-within{border-color:var(--border-focus);box-shadow:var(--shadow-ring)}.composer__input{width:100%;color:var(--text-primary);font-size:var(--fs-sm);padding:var(--sp-3) var(--sp-3) var(--sp-1);resize:none;background:0 0;border:none;outline:none;min-height:44px;max-height:200px;font-family:inherit;line-height:1.6;display:block}.composer__input::placeholder{color:var(--text-muted)}.composer__files{gap:var(--sp-2);padding:0 var(--sp-3) var(--sp-2);flex-wrap:wrap;display:flex}.composer__file-chip{align-items:center;gap:var(--sp-1);padding:2px var(--sp-2);border-radius:var(--r-sm);background:var(--bg-subtle);font-size:var(--fs-xs);color:var(--text-secondary);display:inline-flex}.composer__file-remove{cursor:pointer;color:var(--text-muted);font-size:var(--fs-sm);background:0 0;border:none;padding:0 2px;line-height:1}.composer__file-remove:hover{color:var(--text-primary)}.composer__toolbar{padding:var(--sp-2) var(--sp-3);border-top:1px solid var(--border-subtle);justify-content:space-between;align-items:center;display:flex}.composer__actions{align-items:center;gap:var(--sp-1);display:flex}.composer__toolbar-btn{border-radius:var(--r-sm);width:28px;height:28px;color:var(--text-muted);cursor:pointer;transition:background var(--t-fast), color var(--t-fast);background:0 0;border:none;place-items:center;display:inline-grid}.composer__toolbar-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.composer__toolbar-btn:disabled{opacity:.4;cursor:not-allowed}.composer__toolbar-btn:disabled:hover{color:var(--text-muted);background:0 0}.composer__send{border-radius:var(--r-sm);background:var(--accent-500);color:#fff;cursor:pointer;width:28px;height:28px;transition:opacity var(--t-fast);border:none;place-items:center;display:inline-grid}.composer__send:hover{opacity:.85}.composer__send:disabled{opacity:.35;cursor:not-allowed}.composer__error{padding:var(--sp-1) var(--sp-3);color:var(--pill-red-fg);font-size:var(--fs-xs)}.page--chat,.page--contained{flex-direction:column;max-width:none;height:100%;padding:0;display:flex;overflow:hidden}.page--chat .page-header,.page--contained .page-header{padding:var(--sp-4) var(--sp-5) 0;margin-bottom:var(--sp-3)}.page--chat .tab-nav,.page--contained .tab-nav{padding:0 var(--sp-5);margin:0}.page--chat .chat-search,.page--contained .chat-search{padding:var(--sp-3) var(--sp-5);border-bottom:1px solid var(--border-subtle)}.page--contained .card__toolbar{padding:var(--sp-3) var(--sp-5);border-bottom:1px solid var(--border-subtle);flex-shrink:0}.page--contained .filter-bar{padding:var(--sp-2) var(--sp-5);border-bottom:1px solid var(--border-subtle);flex-shrink:0}.table--sticky-head thead{z-index:1;background:var(--bg-surface);position:sticky;top:0}.tab-content--contained,.chat-container{flex-direction:column;flex:1;min-height:0;display:flex}.chat-feed{padding:var(--sp-4) var(--sp-3);gap:var(--sp-2);flex-direction:column;flex:1;display:flex;overflow-y:auto}.chat-composer{padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--border-subtle);flex-shrink:0}.chat-load-older{padding:var(--sp-3) 0;justify-content:center;display:flex}.chat-empty{color:var(--text-muted);font-size:var(--fs-sm);flex:1;justify-content:center;align-items:center;display:flex}.chat-thread-replies{border-left:2px solid var(--border-subtle);margin-left:var(--sp-5);padding-left:var(--sp-4)}.message{gap:var(--sp-3);padding:var(--sp-3) var(--sp-5);border-bottom:1px solid var(--border-subtle);transition:background var(--t-fast);display:flex}.message:last-child{border-bottom:none}.message:hover{background:var(--bg-hover)}.message__avatar{margin-top:2px}.message__body{flex:1;min-width:0}.message__header{align-items:baseline;gap:var(--sp-2);display:flex}.message__author{font-weight:var(--fw-semibold);font-size:var(--fs-sm);color:var(--text-primary);line-height:1.3}.message__time{font-size:var(--fs-xs);color:var(--text-muted)}.message__content{color:var(--text-primary);font-size:var(--fs-sm);margin:var(--sp-1) 0 0;white-space:pre-wrap;word-break:break-word;line-height:1.6}.message__attachments{gap:var(--sp-2);margin-top:var(--sp-2);flex-wrap:wrap;display:flex}.message__attachment-chip{align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-3);border-radius:var(--r-lg);background:var(--bg-subtle);color:var(--text-secondary);font-size:var(--fs-xs);transition:background var(--t-fast);text-decoration:none;display:inline-flex}.message__attachment-chip:hover{background:var(--bg-hover);color:var(--text-primary)}.message__attachment-icon{border-radius:var(--r-sm);background:var(--accent-500);color:#fff;flex-shrink:0;place-items:center;width:20px;height:20px;font-size:10px;display:inline-grid}.message__attachment-icon--image{background:var(--pill-green-fg)}.message__attachment-icon--pdf{background:var(--pill-red-fg)}.message__attachment-name{font-weight:var(--fw-medium);text-overflow:ellipsis;white-space:nowrap;max-width:160px;overflow:hidden}.message__attachment-type{color:var(--text-muted)}.message__actions{align-items:center;gap:var(--sp-2);margin-top:var(--sp-2);display:flex}.message__reaction{align-items:center;gap:var(--sp-1);padding:2px var(--sp-2);border-radius:var(--r-full);border:1px solid var(--border-subtle);font-size:var(--fs-xs);color:var(--text-muted);cursor:pointer;transition:all var(--t-fast);background:0 0;display:inline-flex}.message__reaction:hover{background:var(--bg-hover);border-color:var(--border-default);color:var(--text-secondary)}.message__reaction--active{background:var(--bg-selected);border-color:var(--accent-500);color:var(--accent-500)}.message__reaction:disabled{opacity:.5;cursor:not-allowed}.message__reaction:focus-visible{outline:2px solid var(--accent-500);outline-offset:-2px}.message__reply-link{align-items:center;gap:var(--sp-1);padding:2px var(--sp-2);border-radius:var(--r-full);border:1px solid var(--border-subtle);font-size:var(--fs-xs);color:var(--text-muted);cursor:pointer;transition:all var(--t-fast);background:0 0;text-decoration:none;display:inline-flex}.message__reply-link:hover{background:var(--bg-hover);border-color:var(--border-default);color:var(--text-secondary)}.message__reply-link:focus-visible,.message__attachment-chip:focus-visible{outline:2px solid var(--accent-500);outline-offset:-2px}.message__priority-picker{display:inline-flex;position:relative}.priority-dropdown{bottom:calc(100% + var(--sp-1));z-index:10;padding:var(--sp-1);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--r-md);box-shadow:var(--shadow-md);flex-direction:column;gap:2px;min-width:100px;display:flex;position:absolute;left:0}.priority-dropdown__item{padding:var(--sp-1) var(--sp-2);cursor:pointer;border-radius:var(--r-sm);transition:background var(--t-fast);background:0 0;border:none;align-items:center;display:flex}.priority-dropdown__item:hover{background:var(--bg-hover)}.priority-dropdown__item--active{background:var(--bg-selected)}.feed-sort{gap:var(--sp-1);padding:var(--sp-2) var(--sp-5);border-bottom:1px solid var(--border-subtle);flex-shrink:0;display:flex}.feed-sort__btn{padding:var(--sp-1) var(--sp-2);border:1px solid var(--border-subtle);border-radius:var(--r-full);font-size:var(--fs-xs);color:var(--text-muted);cursor:pointer;transition:all var(--t-fast);background:0 0}.feed-sort__btn:hover{background:var(--bg-hover);border-color:var(--border-default);color:var(--text-secondary)}.feed-sort__btn--active{background:var(--bg-selected);border-color:var(--accent-500);color:var(--accent-500)}.chat-load-more{padding:var(--sp-3) 0;justify-content:center;display:flex}@media (max-width:640px){.feed-sort,.page--chat .page-header,.page--chat .tab-nav,.page--chat .chat-search,.message,.chat-composer{padding-left:var(--sp-3);padding-right:var(--sp-3)}.chat-thread-replies{margin-left:var(--sp-3);padding-left:var(--sp-3)}.message__attachment-name{max-width:120px}}.add-row{gap:var(--sp-3);padding:var(--sp-4);background:var(--bg-subtle);border-radius:var(--r-md);margin-top:var(--sp-3);flex-wrap:wrap;align-items:flex-end;display:flex}.add-row__field{gap:var(--sp-1);flex-direction:column;flex:1;min-width:90px;display:flex}.add-row__label{font-size:var(--fs-xs);color:var(--text-muted);font-weight:var(--fw-medium);text-transform:uppercase;letter-spacing:.04em}.add-row__actions{gap:var(--sp-1);align-self:flex-end;display:flex}.resource-modal-row{border:1px solid var(--border-primary);border-radius:var(--r-md);padding:var(--sp-4)}.resource-modal-row__header{margin-bottom:var(--sp-3);justify-content:space-between;align-items:center;display:flex}.resource-modal-row__num{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text-secondary)}.resource-modal-row__fields{gap:var(--sp-3);grid-template-columns:1fr 1fr;display:grid}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.table-wrap{overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:var(--fs-base)}.table th{text-align:left;padding:var(--sp-2) var(--sp-3);font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border-subtle);white-space:nowrap;background:var(--bg-surface);position:sticky;top:0}.table td{padding:var(--sp-3);border-bottom:1px solid var(--border-subtle);color:var(--text-primary);vertical-align:middle}.table tbody tr{transition:background var(--t-fast)}.table tbody tr:hover{background:var(--bg-hover)}.table tbody tr:last-child td{border-bottom:none}.table td .cell-muted{color:var(--text-tertiary);font-size:var(--fs-sm)}.table td .cell-strong{font-weight:var(--fw-medium);color:var(--text-primary)}.user-cell{align-items:center;gap:var(--sp-2);display:inline-flex}.user-cell__name{font-size:var(--fs-base);color:var(--text-primary)}.cell-priority{font-size:var(--fs-sm);color:var(--text-secondary);align-items:center;gap:6px;display:inline-flex}.cell-priority:before{content:"";border-radius:2px;width:8px;height:8px}.cell-priority--high:before{background:var(--priority-high)}.cell-priority--med:before{background:var(--priority-med)}.cell-priority--low:before{background:var(--priority-low)}.filter-bar{align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-5);border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;display:flex}.filter-chip{border-radius:var(--r-md);border:1px solid var(--border-default);height:26px;font-size:var(--fs-sm);color:var(--text-secondary);transition:all var(--t-fast);cursor:pointer;background:0 0;align-items:center;gap:6px;padding:0 10px;display:inline-flex}.filter-chip:hover{background:var(--bg-hover);color:var(--text-primary)}.filter-chip--active{background:var(--bg-selected);color:var(--text-accent);border-color:var(--accent-500)}.filter-bar__count{font-size:var(--fs-sm);color:var(--text-muted);margin-right:auto;margin-left:var(--sp-2)}.access-guard{position:relative}.access-guard__content{filter:blur(6px);pointer-events:none;-webkit-user-select:none;user-select:none;opacity:.6}.access-guard__overlay{z-index:10;background:color-mix(in srgb, var(--bg-surface) 40%, transparent);-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.access-guard__message{align-items:center;gap:var(--sp-2);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--r-lg);padding:var(--sp-5) var(--sp-6);box-shadow:var(--shadow-md);color:var(--text-primary);font-size:var(--fs-sm);font-weight:var(--fw-semibold);flex-direction:column;display:flex}.access-guard__sub{font-size:var(--fs-xs);font-weight:var(--fw-regular);color:var(--text-tertiary)}.access-guard--page{min-height:100%}.access-guard--tab{min-height:400px}.access-guard--section{border-radius:var(--r-md);overflow:hidden}.project-header{padding:var(--sp-6) var(--sp-6) 0;background:var(--bg-surface);border-bottom:1px solid var(--border-default)}.project-header__back{margin-bottom:var(--sp-2)}.project-header__top{margin-bottom:var(--sp-3);justify-content:space-between;align-items:flex-start;display:flex}.project-header__title{font-size:var(--fs-xl);font-weight:var(--fw-semibold);color:var(--text-primary);margin:0 0 var(--sp-2) 0}.project-header__meta{align-items:flex-start;gap:var(--sp-5);margin-bottom:var(--sp-4);display:flex}.project-header__field{gap:var(--sp-1);flex-direction:column;display:flex}.project-header__label{font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.tab-nav{margin:0 calc(-1 * var(--sp-6));padding:0 var(--sp-6);gap:0;display:flex}.tab-nav--bordered{border-bottom:1px solid var(--border-subtle)}.tab-nav__item{padding:var(--sp-2) var(--sp-4);font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-tertiary);transition:color var(--t-fast), border-color var(--t-fast);white-space:nowrap;border-bottom:2px solid #0000;text-decoration:none;display:inline-block}.tab-nav__item:hover{color:var(--text-secondary)}.tab-nav__item--active{color:var(--text-primary);border-bottom-color:var(--accent-500)}.tab-content{padding:var(--sp-6);min-width:0;overflow-x:hidden}.section-skeleton{background:var(--bg-subtle);border-radius:var(--r-md);height:120px;animation:1.5s ease-in-out infinite pulse}.timeline{flex-direction:column;gap:0;display:flex}.timeline-item{gap:var(--sp-3);padding:var(--sp-3) 0;display:flex;position:relative}.timeline-item:not(:last-child):after{content:"";left:3px;top:calc(var(--sp-3) + 12px);background:var(--border-subtle);width:1px;position:absolute;bottom:0}.timeline-item__dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:4px}.timeline-item__dot--blue{background:var(--pill-blue-fg)}.timeline-item__dot--green{background:var(--pill-green-fg)}.timeline-item__dot--amber{background:var(--pill-amber-fg)}.timeline-item__dot--red{background:var(--pill-red-fg)}.timeline-item__dot--gray{background:var(--text-muted)}.timeline-item__dot--purple{background:var(--pill-violet-fg)}.timeline-item__dot--indigo{background:var(--pill-indigo-fg)}.timeline-item__body{flex:1;min-width:0}.timeline-item__text{font-size:var(--fs-sm);color:var(--text-secondary);line-height:var(--lh-base)}.timeline-item__meta{font-size:var(--fs-xs);color:var(--text-muted);margin-top:2px}.timeline-item__project{font-size:var(--fs-xs);color:var(--text-accent);margin-top:2px}.comment-list{flex-direction:column;display:flex}.comment{gap:var(--sp-1);padding:var(--sp-3) 0;border-bottom:1px solid var(--border-subtle);flex-direction:column;display:flex}.comment:last-child{border-bottom:none}.comment__head{align-items:center;gap:var(--sp-2);display:flex}.comment__author{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-primary)}.comment__time{font-size:var(--fs-xs);color:var(--text-muted)}.comment__text{font-size:var(--fs-sm);color:var(--text-secondary);line-height:var(--lh-loose);padding-left:calc(24px + var(--sp-2))}.comment-composer{gap:var(--sp-2);margin-top:var(--sp-3);padding-top:var(--sp-3);border-top:1px solid var(--border-subtle);flex-direction:column;display:flex}.comment-composer__input{width:100%;min-height:72px;padding:var(--sp-2) var(--sp-3);font-family:var(--font-sans);font-size:var(--fs-sm);color:var(--text-primary);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--r-md);resize:vertical;transition:border-color var(--t-fast)}.comment-composer__input:focus{border-color:var(--border-focus);box-shadow:var(--shadow-ring);outline:none}.comment-composer__footer{justify-content:flex-end;display:flex}.pipeline{align-items:flex-start;display:flex;position:relative}.pipeline:before{content:"";background:var(--border-default);z-index:0;height:1px;position:absolute;top:14px;left:14px;right:14px}.pipeline-step{align-items:center;gap:var(--sp-2);z-index:1;flex-direction:column;flex:1;display:flex;position:relative}.pipeline-step__icon{width:28px;height:28px;font-size:11px;font-weight:var(--fw-semibold);border:2px solid #0000;border-radius:50%;justify-content:center;align-items:center;display:flex}.pipeline-step--done .pipeline-step__icon{background:var(--pill-green-fg);color:#fff;border-color:var(--pill-green-fg)}.pipeline-step--current .pipeline-step__icon{background:var(--accent-500);color:#fff;border-color:var(--accent-500)}.pipeline-step--future .pipeline-step__icon{background:var(--bg-surface);color:var(--text-muted);border-color:var(--border-default)}.pipeline-step__body{font-size:var(--fs-xs);text-align:center;color:var(--text-muted);max-width:72px}.pipeline-step--current .pipeline-step__body,.pipeline-step--done .pipeline-step__body{color:var(--text-secondary)}.detail-list{gap:var(--sp-3);flex-direction:column;display:flex}.detail-row{gap:var(--sp-3);align-items:baseline;display:flex}.detail-row__label{font-size:var(--fs-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;flex-shrink:0;width:110px}.detail-row__value{font-size:var(--fs-sm);color:var(--text-primary);flex:1}.quick-links{gap:var(--sp-2);flex-direction:column;display:flex}.quick-link{align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border:1px solid var(--border-default);border-radius:var(--r-md);transition:background var(--t-fast), border-color var(--t-fast);text-decoration:none;display:flex}.quick-link:hover{background:var(--bg-hover);border-color:var(--border-strong)}.quick-link__icon{width:18px;height:18px;color:var(--text-tertiary);flex-shrink:0}.quick-link__body{flex:1;min-width:0}.quick-link__label{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-primary)}.quick-link__status{font-size:var(--fs-xs);color:var(--text-muted)}.quick-link__arrow{color:var(--text-muted);flex-shrink:0}.stat-cards{gap:var(--sp-4);margin-bottom:var(--sp-6);grid-template-columns:repeat(4,1fr);display:grid}@media (max-width:900px){.stat-cards{grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.stat-cards{grid-template-columns:1fr}}.stat-cards--five{grid-template-columns:repeat(5,1fr)}@media (max-width:900px){.stat-cards--five{grid-template-columns:repeat(3,1fr)}}@media (max-width:480px){.stat-cards--five{grid-template-columns:1fr}}.deliverable-list{flex-direction:column;display:flex}.deliverable{align-items:center;gap:var(--sp-3);padding:var(--sp-3) 0;border-bottom:1px solid var(--border-subtle);display:flex}.deliverable:last-child{border-bottom:none}.deliverable__icon{border-radius:var(--r-md);background:var(--bg-subtle);width:32px;height:32px;font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--text-secondary);text-transform:uppercase;flex-shrink:0;justify-content:center;align-items:center;display:flex}.deliverable__body{flex:1;min-width:0}.deliverable__name{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-primary)}.deliverable__meta{font-size:var(--fs-xs);color:var(--text-muted);margin-top:2px}.deliverable__actions{gap:var(--sp-1);display:flex}.integration-grid{gap:var(--sp-4);grid-template-columns:repeat(2,1fr);display:grid}@media (max-width:640px){.integration-grid{grid-template-columns:1fr}}.integration-card{padding:var(--sp-4);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--r-lg);gap:var(--sp-2);transition:box-shadow var(--t-fast);flex-direction:column;min-width:0;display:flex;overflow:hidden}.integration-card:hover{box-shadow:var(--shadow-sm)}.integration-card__header{justify-content:space-between;align-items:center;display:flex}.integration-card__name{font-size:var(--fs-base);font-weight:var(--fw-medium);color:var(--text-primary)}.integration-card__url{font-size:var(--fs-xs);color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.integration-card__footer{margin-top:var(--sp-1);justify-content:space-between;align-items:center;display:flex}.integration-card__status{align-items:center;gap:var(--sp-1);font-size:var(--fs-xs);color:var(--text-muted);display:flex}.integration-card__edit{font-size:var(--fs-xs);color:var(--text-accent)}.conn-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px;display:inline-block}.conn-dot--on{background:var(--pill-green-fg)}.conn-dot--off{background:var(--text-muted)}.drive-connector{padding:var(--sp-4);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--r-lg);margin-bottom:var(--sp-4)}.drive-connector__empty,.drive-connector__setup{text-align:center;padding:var(--sp-4) 0}.drive-connector__hint{font-size:var(--fs-sm);color:var(--text-muted);margin:0 0 var(--sp-3) 0}.drive-connector__actions{align-items:center;gap:var(--sp-2);flex-direction:column;display:flex}.drive-connector__connected{gap:var(--sp-3);flex-direction:column;display:flex}.drive-connector__folder{justify-content:space-between;align-items:center;gap:var(--sp-3);flex-wrap:wrap;display:flex}.drive-connector__folder-info{gap:var(--sp-1);flex-direction:column;min-width:0;display:flex}.drive-connector__folder-link{align-items:center;gap:var(--sp-1);font-size:var(--fs-base);font-weight:var(--fw-medium);color:var(--text-accent);text-decoration:none;display:inline-flex}.drive-connector__folder-link:hover{text-decoration:underline}.drive-connector__sync-time{font-size:var(--fs-xs);color:var(--text-muted)}.drive-connector__files{border:1px solid var(--border-default);border-radius:var(--r-md);max-height:400px;overflow-y:auto}.drive-connector__file{padding:var(--sp-2) var(--sp-3);font-size:var(--fs-sm);border-bottom:1px solid var(--border-default);justify-content:space-between;align-items:center;display:flex}.drive-connector__file:last-child{border-bottom:none}.drive-connector__file-name{align-items:center;gap:var(--sp-2);min-width:0;color:var(--text-primary);text-decoration:none;display:flex}.drive-connector__file-name:hover{color:var(--text-accent)}.drive-connector__file-name span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.drive-connector__file-meta{gap:var(--sp-3);font-size:var(--fs-xs);color:var(--text-muted);flex-shrink:0;display:flex}.drive-browser{border:1px solid var(--border);border-radius:var(--radius);padding:var(--sp-3);margin-top:var(--sp-2)}.drive-browser__search{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-2);display:flex}.drive-browser__search-input-wrap{align-items:center;gap:var(--sp-1);flex:1;display:flex}.drive-browser__search-input-wrap .field-input{flex:1}.drive-browser__search-input-wrap svg{color:var(--text-muted);flex-shrink:0}.drive-browser__breadcrumb{align-items:center;gap:var(--sp-1);font-size:var(--fs-sm);color:var(--text-muted);margin-bottom:var(--sp-2);min-height:28px;display:flex}.drive-browser__path{color:var(--text-secondary);font-weight:500}.drive-browser__sep{color:var(--text-muted);opacity:.5}.drive-browser__list{border:1px solid var(--border);border-radius:var(--radius);max-height:260px;margin-bottom:var(--sp-2);overflow-y:auto}.drive-browser__item{align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);cursor:pointer;border-bottom:1px solid var(--border);font-size:var(--fs-sm);transition:background .1s;display:flex}.drive-browser__item:last-child{border-bottom:none}.drive-browser__item:hover{background:var(--bg-hover)}.drive-browser__item--selected{background:var(--bg-active);font-weight:500}.drive-browser__item svg{color:var(--text-muted);flex-shrink:0}.drive-browser__item-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.drive-browser__actions{align-items:center;gap:var(--sp-2);display:flex}.drive-browser__selected-label{font-size:var(--fs-xs);color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;margin-left:auto;overflow:hidden}.drive-browser__hint{font-size:var(--fs-xs);color:var(--text-muted);margin:0 0 var(--sp-2)}.drive-browser__hint kbd{border:1px solid var(--border);font-size:inherit;border-radius:3px;padding:0 4px;font-family:inherit}.grid-2{gap:var(--sp-6);grid-template-columns:1fr 1fr;display:grid}@media (max-width:768px){.grid-2{grid-template-columns:1fr}}.grid-2-3fr{gap:var(--sp-6);grid-template-columns:2fr 1fr;display:grid}@media (max-width:900px){.grid-2-3fr{grid-template-columns:1fr}}.info-box{padding:var(--sp-3) var(--sp-4);background:var(--bg-subtle);border-radius:var(--r-md);font-size:var(--fs-sm);color:var(--text-secondary)}.section-header{margin-bottom:var(--sp-4);justify-content:space-between;align-items:center;display:flex}.section-title{font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--text-primary)}.section-sub{font-size:var(--fs-xs);color:var(--text-muted);margin-top:2px}.budget-sheet{border-collapse:collapse;width:100%;font-size:var(--fs-sm)}.budget-sheet th{text-align:left;font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border-default)}.budget-sheet td{padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border-subtle);color:var(--text-secondary)}.budget-sheet tfoot td{font-weight:var(--fw-semibold);color:var(--text-primary);border-top:1px solid var(--border-default);border-bottom:none}.doc-card{padding:var(--sp-4);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--r-lg);gap:var(--sp-3);flex-direction:column;display:flex}.doc-card__title{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text-primary)}.doc-card__status{align-items:center;gap:var(--sp-1);font-size:var(--fs-xs);display:inline-flex}.milestone-table{border-collapse:collapse;width:100%;font-size:var(--fs-sm)}.milestone-table th{text-align:left;font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border-default)}.milestone-table td{padding:var(--sp-3);border-bottom:1px solid var(--border-subtle);color:var(--text-secondary);vertical-align:middle}.milestone-table tr:last-child td{border-bottom:none}.modal-backdrop{z-index:200;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);padding:var(--sp-4);background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-xl);box-shadow:var(--shadow-lg);flex-direction:column;width:100%;max-width:480px;display:flex}.modal-card__header{padding:var(--sp-5) var(--sp-5) var(--sp-4);border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;display:flex}.modal-card__title{font-size:var(--fs-lg);font-weight:var(--fw-semibold);color:var(--text-primary);margin:0}.modal-card__close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:20px;line-height:1}.modal-card__close:hover{color:var(--text-primary)}.modal-card__body{gap:var(--sp-4);padding:var(--sp-5);flex-direction:column;max-height:calc(100vh - 160px);display:flex;overflow-y:auto}.modal-card__footer{justify-content:flex-end;align-items:center;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5);border-top:1px solid var(--border-subtle);margin-top:var(--sp-2);display:flex}.field-group{gap:var(--sp-1);flex-direction:column;display:flex}.field-hint{font-size:var(--fs-xs);color:var(--text-muted);text-align:right;margin-top:var(--sp-1)}.field-label{font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.error-msg{color:var(--pill-red-fg);font-size:var(--fs-sm);padding:var(--sp-2) 0;margin:0}.success-msg{color:var(--pill-green-fg);font-size:var(--fs-sm);padding:var(--sp-2) 0;margin:0}.login-shell{background:var(--bg-app);grid-template-columns:1fr 1fr;min-height:100vh;display:grid;position:relative}.login-page__theme{z-index:10;position:absolute;top:20px;right:24px}.login-shell__left{padding:var(--sp-8);justify-content:center;align-items:center;display:flex}.login-card{width:100%;max-width:380px}.login-card__brand{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-8);display:flex}.brand-mark{background:linear-gradient(135deg, var(--accent-400), var(--accent-600));color:#fff;width:32px;height:32px;font-weight:var(--fw-bold);letter-spacing:-.02em;border-radius:8px;flex-shrink:0;place-items:center;font-size:13px;display:grid}.login-card__brand-name{letter-spacing:-.01em;color:var(--text-primary);font-size:15px;font-weight:600}.login-card__title{font-size:var(--fs-3xl);font-weight:var(--fw-semibold);letter-spacing:-.03em;color:var(--text-primary);margin:0 0 var(--sp-2) 0;line-height:1.15}.login-card__sub{font-size:var(--fs-md);color:var(--text-tertiary);margin-bottom:var(--sp-6);line-height:1.5}.login-card__error{background:var(--pill-red-bg);width:100%;color:var(--pill-red-fg);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);font-size:var(--fs-sm);line-height:var(--lh-base);margin-bottom:var(--sp-4)}.login-card__footer{margin-top:var(--sp-6);font-size:var(--fs-sm);color:var(--text-muted)}.login-card__footer a{color:var(--text-accent);font-weight:var(--fw-medium)}.login-card__cancel{text-align:center;margin-top:var(--sp-3);font-size:var(--fs-sm);color:var(--text-tertiary);text-decoration:none;transition:color .12s;display:block}.login-card__cancel:hover{color:var(--text-primary)}.btn--signout{height:44px;padding:0 var(--sp-5);border-radius:var(--r-md);color:#ef4444;font-size:var(--fs-sm);font-weight:var(--fw-medium);cursor:pointer;width:100%;margin-bottom:var(--sp-1);background:#ef444414;border:1px solid #ef444466;justify-content:center;align-items:center;font-family:inherit;transition:background .12s,border-color .12s;display:flex}.btn--signout:hover{background:#ef444424;border-color:#ef444499}.btn--google{justify-content:center;align-items:center;gap:var(--sp-2);height:44px;padding:0 var(--sp-5);border-radius:var(--r-md);border:1px solid var(--border-default);background:var(--bg-surface);color:var(--text-primary);font-size:var(--fs-sm);font-weight:var(--fw-medium);cursor:pointer;width:100%;margin-bottom:var(--sp-2);font-family:inherit;text-decoration:none;transition:background .12s,border-color .12s;display:inline-flex}.btn--google:hover{background:var(--bg-subtle);border-color:var(--border-focus)}.login-shell__right{padding:var(--sp-8);color:#fff;background:linear-gradient(155deg,#1e1b4b 0%,#312e81 40%,#4338ca 100%);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.login-shell__right:before{content:"";pointer-events:none;background:radial-gradient(circle at 20% 80%,#8b5cf666 0%,#0000 50%),radial-gradient(circle at 80% 20%,#6366f14d 0%,#0000 50%);position:absolute;inset:0}.login-hero{z-index:1;max-width:460px;position:relative}.login-hero__eyebrow{align-items:center;gap:var(--sp-2);border-radius:var(--r-full);font-size:var(--fs-xs);font-weight:var(--fw-medium);letter-spacing:.02em;margin-bottom:var(--sp-5);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff1f;border:1px solid #ffffff2e;padding:4px 10px;display:inline-flex}.login-hero__eyebrow-dot{background:#86efac;border-radius:50%;width:6px;height:6px;box-shadow:0 0 10px #86efac}.login-hero__title{font-size:36px;font-weight:var(--fw-semibold);letter-spacing:-.03em;margin:0 0 var(--sp-4) 0;line-height:1.15}.login-hero__desc{font-size:var(--fs-md);color:#ffffffbf;margin:0 0 var(--sp-6) 0;line-height:1.6}.login-hero__chips{gap:var(--sp-2);margin-bottom:var(--sp-2);flex-wrap:wrap;display:flex}.hero-chip{border-radius:var(--r-md);font-size:var(--fs-xs);font-weight:var(--fw-medium);color:#ffffffd9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff14;border:1px solid #ffffff1a;align-items:center;gap:6px;padding:6px 10px;display:inline-flex}.hero-chip__icon{width:14px;height:14px}.login-hero__integrations{margin-top:var(--sp-8);padding-top:var(--sp-5);border-top:1px solid #ffffff1a}.login-hero__integrations-label{font-size:var(--fs-xs);color:#ffffff80;text-transform:uppercase;letter-spacing:.1em;margin-bottom:var(--sp-3)}.login-hero__integrations-list{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.login-integration-badge{border-radius:var(--r-md);font-size:var(--fs-xs);font-weight:var(--fw-medium);color:#ffffffe6;background:#ffffff14;border:1px solid #ffffff1a;align-items:center;gap:6px;padding:5px 10px;display:flex}@media (max-width:768px){.login-shell{grid-template-columns:1fr}.login-shell__right{display:none}.login-shell__left{padding:var(--sp-6)}}.theme-toggle-icon{cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px 8px;font-size:1.1rem;line-height:1;transition:background .15s}.theme-toggle-icon:hover{background:#80808026}.lp-theme-toggle{background:var(--theme-toggle-bg,#ffffff1f);border:1px solid var(--theme-toggle-border,#ffffff2e);border-radius:999px;align-items:center;gap:2px;padding:4px;display:flex}.lp-theme-btn{width:30px;height:30px;color:var(--theme-toggle-color,#ffffff73);cursor:pointer;background:0 0;border:none;border-radius:999px;justify-content:center;align-items:center;transition:all .2s;display:flex}.lp-theme-btn--active{background:var(--theme-toggle-active-bg,#ffffffe0);color:var(--theme-toggle-active-color,#2a3a6a)}.form-group{margin-bottom:var(--sp-4)}.form-label{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-secondary);margin-bottom:6px;display:block}.form-help{font-size:var(--fs-xs);color:var(--text-muted);margin-top:4px}.form-error{padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);background:var(--pill-red-bg);color:var(--pill-red-fg);font-size:var(--fs-sm)}.form-input{width:100%;height:34px;padding:0 var(--sp-3);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--r-md);font-size:var(--fs-base);color:var(--text-primary);transition:all var(--t-fast)}.form-input:focus{border-color:var(--accent-500);box-shadow:var(--shadow-ring);outline:none}.form-input::placeholder{color:var(--text-muted)}textarea.form-input{height:auto;min-height:60px;padding:var(--sp-2) var(--sp-3);resize:vertical;line-height:1.5}select.form-input{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239CA3AF' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:28px}.form-row{gap:var(--sp-3);grid-template-columns:1fr 1fr;display:grid}@media (max-width:640px){.form-row{grid-template-columns:1fr}}.input,.select{width:100%;height:34px;padding:0 var(--sp-3);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--r-md);font-size:var(--fs-base);color:var(--text-primary);transition:all var(--t-fast)}.input:focus,.select:focus{border-color:var(--accent-500);box-shadow:var(--shadow-ring);outline:none}.input::placeholder{color:var(--text-muted)}.textarea{min-height:80px;padding:var(--sp-2) var(--sp-3);resize:vertical;line-height:1.5}.select{appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239CA3AF' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:28px}.theme-toggle{background:var(--bg-subtle);border-radius:var(--r-md);gap:2px;padding:2px;display:inline-flex}.theme-toggle__btn{border-radius:calc(var(--r-md) - 2px);width:26px;height:26px;color:var(--text-tertiary);transition:all var(--t-fast);cursor:pointer;background:0 0;border:none;place-items:center;display:grid}.theme-toggle__btn:hover{color:var(--text-primary)}.theme-toggle__btn--active{background:var(--bg-surface);color:var(--text-primary);box-shadow:var(--shadow-xs)}.divider{background:var(--border-subtle);height:1px;margin:var(--sp-4) 0;border:none}.grid-3{gap:var(--sp-3);grid-template-columns:repeat(3,1fr);display:grid}@media (max-width:768px){.grid-3{grid-template-columns:1fr}}.role-badge{border-radius:var(--r-full);font-size:10px;font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.04em;border:1px solid #0000;align-items:center;gap:4px;padding:2px 8px;display:inline-flex}.role-badge--admin{background:var(--pill-indigo-bg);color:var(--pill-indigo-fg)}.role-badge--pm{background:var(--pill-blue-bg);color:var(--pill-blue-fg)}.role-badge--finance{background:var(--pill-emerald-bg);color:var(--pill-emerald-fg)}.role-badge--dev{background:var(--pill-purple-bg);color:var(--pill-purple-fg)}.team-member{align-items:center;gap:var(--sp-4);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border-subtle);transition:background var(--t-fast);cursor:pointer;grid-template-columns:40px minmax(0,1fr) auto 100px auto;display:grid}.team-member .role-badge{justify-self:start}.team-member:last-child{border-bottom:none}.team-member:hover{background:var(--bg-hover)}.team-member:focus-visible{outline:2px solid var(--accent-500);outline-offset:-2px}.team-member__name{font-size:var(--fs-base);font-weight:var(--fw-medium);color:var(--text-primary)}.team-member__email{font-size:var(--fs-sm);color:var(--text-tertiary)}.util-bar{background:var(--bg-subtle);border-radius:var(--r-full);width:100%;height:6px;margin-top:var(--sp-2);overflow:hidden}.util-bar__fill{background:linear-gradient(90deg, var(--accent-400), var(--accent-500));border-radius:var(--r-full);height:100%;transition:width var(--t-base)}.util-bar__fill--over{background:linear-gradient(90deg,#ef4444,#dc2626)}.util-bar__fill--high{background:linear-gradient(90deg,#f59e0b,#ef4444)}.util-bar__fill--ok{background:linear-gradient(90deg,#22c55e,#10b981)}.util-bar__fill--low{background:linear-gradient(90deg,#94a3b8,#64748b)}.util-grid{gap:var(--sp-3);margin-bottom:var(--sp-6);grid-template-columns:repeat(4,1fr);display:grid}.history-row{gap:var(--sp-3);padding:var(--sp-3) var(--sp-5);border-bottom:1px solid var(--border-subtle);font-size:var(--fs-base);cursor:pointer;transition:background var(--t-fast);color:inherit;grid-template-columns:1fr 90px 120px 55px 130px 100px;align-items:center;text-decoration:none;display:grid}.history-row:hover{background:var(--bg-hover)}.history-row:last-child{border-bottom:none}.history-row:focus-visible{outline:2px solid var(--accent-500);outline-offset:-2px}.history-row__name{font-weight:var(--fw-medium);color:var(--text-primary)}.history-row__role{font-size:var(--fs-sm);color:var(--text-secondary)}.history-row__days{font-size:var(--fs-sm);color:var(--text-tertiary);font-variant-numeric:tabular-nums}.history-outcome{font-size:var(--fs-xs);color:var(--text-secondary);align-items:center;gap:6px;display:inline-flex}.history-stats{gap:var(--sp-3);margin-bottom:var(--sp-4);grid-template-columns:repeat(5,1fr);display:grid}.history-stats__item{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-lg);padding:var(--sp-3) var(--sp-4);text-align:center}.history-stats__value{font-size:var(--fs-2xl);font-weight:var(--fw-bold);color:var(--text-primary);display:block}.history-stats__label{font-size:var(--fs-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.rec-badge{border-radius:var(--r-full);font-size:var(--fs-xs);font-weight:var(--fw-semibold);background:var(--bg-muted,#e5e7eb);color:var(--text-primary,#1a1a1a);align-items:center;gap:6px;padding:4px 10px 4px 6px;display:inline-flex}.rec-badge__icon{border-radius:50%;flex-shrink:0;place-items:center;width:18px;height:18px;display:grid}.rec-badge__icon svg{width:11px;height:11px}.rec-badge--mvp{color:#78350f;background:linear-gradient(135deg,#fcd34d,#f59e0b)}.rec-badge--client{color:#1e3a8a;background:linear-gradient(135deg,#93c5fd,#3b82f6)}.rec-badge--mentor{color:#4c1d95;background:linear-gradient(135deg,#c4b5fd,#8b5cf6)}.rec-badge--craft{color:#064e3b;background:linear-gradient(135deg,#6ee7b7,#10b981)}.rec-badge--unsung{color:#831843;background:linear-gradient(135deg,#fda4af,#f43f5e)}.rec-badge--learner{color:#164e63;background:linear-gradient(135deg,#67e8f9,#06b6d4)}.rec-badge--collab{color:#581c87;background:linear-gradient(135deg,#f0abfc,#c026d3)}.settings-layout{gap:var(--sp-6);grid-template-columns:220px 1fr;display:grid}.settings-nav{top:calc(48px + var(--sp-5));flex-direction:column;gap:1px;display:flex;position:sticky}.settings-nav__item{align-items:center;gap:var(--sp-2);padding:8px var(--sp-2);border-radius:var(--r-md);font-size:var(--fs-base);color:var(--text-secondary);cursor:pointer;transition:all var(--t-fast);text-decoration:none;display:flex}.settings-nav__item:hover{background:var(--bg-hover);color:var(--text-primary)}.settings-nav__item--active{background:var(--bg-selected);color:var(--text-accent);font-weight:var(--fw-medium)}.settings-section{padding:var(--sp-5);border-bottom:1px solid var(--border-subtle)}.settings-section:last-child{border-bottom:none}.settings-section__header{margin-bottom:var(--sp-4)}.settings-section__title{font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--text-primary);letter-spacing:-.01em;margin:0}.settings-section__desc{font-size:var(--fs-sm);color:var(--text-tertiary);margin:4px 0 0;line-height:1.5}.settings-row{gap:var(--sp-4);border-bottom:1px solid var(--border-subtle);grid-template-columns:1fr auto;align-items:center;padding:14px 0;display:grid}.settings-row:last-child{border-bottom:none}.settings-row__label{font-size:var(--fs-base);font-weight:var(--fw-medium);color:var(--text-primary);margin-bottom:2px}.settings-row__desc{font-size:var(--fs-xs);color:var(--text-tertiary);line-height:1.5}.session-row{border-bottom:1px solid var(--border-subtle);grid-template-columns:36px 1fr auto;align-items:center;gap:12px;padding:12px 0;display:grid}.session-row:last-child{border-bottom:none}.session-row__icon{background:var(--bg-subtle);width:36px;height:36px;color:var(--text-tertiary);border-radius:8px;place-items:center;display:grid}.session-row__title{color:var(--text-primary);font-size:13px;font-weight:500}.session-row__meta{color:var(--text-tertiary);margin-top:2px;font-size:11px}.avatar-edit{display:inline-block;position:relative}.avatar-edit__btn{background:var(--bg-surface);border:2px solid var(--bg-surface);width:26px;height:26px;box-shadow:var(--shadow-sm);color:var(--text-secondary);cursor:pointer;border-radius:50%;place-items:center;display:grid;position:absolute;bottom:-2px;right:-2px}.avatar-edit__btn:hover{color:var(--text-primary);background:var(--bg-hover)}.integration-settings-row{padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:var(--sp-4);display:flex}.integration-settings-row:last-child{border-bottom:none}.integration-settings-row__left{align-items:center;gap:var(--sp-3);display:flex}.integration-settings-row__icon{border-radius:var(--r-md);background:var(--bg-subtle);flex-shrink:0;place-items:center;width:40px;height:40px;display:grid}.integration-settings-row__title{font-size:var(--fs-base);font-weight:var(--fw-semibold);color:var(--text-primary)}.integration-settings-row__sub{font-size:var(--fs-sm);color:var(--text-tertiary);margin-top:2px}.capacity-grid{border:1px solid var(--border-subtle);border-radius:var(--r-lg);background:var(--bg-surface);font-size:var(--fs-sm);grid-template-columns:220px repeat(8,1fr) 80px;display:grid;overflow:hidden}.capacity-grid__head{background:var(--bg-subtle);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);border-bottom:1px solid var(--border-subtle);text-align:center;padding:8px 10px;font-size:10px;font-weight:600}.capacity-grid__head--name{text-align:left}.capacity-grid__head--total{text-align:right;padding-right:12px}.capacity-row{display:contents}.capacity-row>div{border-bottom:1px solid var(--border-subtle);align-items:center;padding:10px;display:flex}.capacity-row:last-child>div{border-bottom:none}.capacity-row__name{cursor:pointer;gap:8px}.capacity-row__name:hover{background:var(--bg-hover)}.capacity-row__name-text{color:var(--text-primary);font-weight:500}.capacity-row__name-sub{color:var(--text-tertiary);font-size:11px}.cap-cell{font-family:var(--font-mono);cursor:pointer;border-right:1px solid var(--border-subtle);justify-content:center;font-size:11px;font-weight:600;position:relative}.cap-cell:hover{filter:brightness(.95)}[data-theme=dark] .cap-cell:hover{filter:brightness(1.15)}.cap-cell--bench{background:var(--bg-subtle);color:var(--text-muted)}.cap-cell--low{color:var(--pill-blue-fg);background:#3b82f626}.cap-cell--ok{color:var(--pill-green-fg);background:#22c55e26}.cap-cell--high{color:var(--pill-amber-fg);background:#f59e0b2e}.cap-cell--over{color:var(--pill-red-fg);background:#ef44442e}.capacity-row__total{font-family:var(--font-mono);color:var(--text-primary);justify-content:flex-end;padding-right:12px;font-size:12px;font-weight:600}.bench-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-xl);padding:var(--sp-4);gap:var(--sp-3);transition:all var(--t-fast);grid-template-columns:auto 1fr auto;align-items:center;display:grid}.bench-card:hover{border-color:var(--accent-500);box-shadow:var(--shadow-sm)}.bench-card:focus-visible{outline:2px solid var(--accent-500);outline-offset:2px}.bench-card__avatar{position:relative}.bench-card__avatar-status{border:2px solid var(--bg-surface);background:#22c55e;border-radius:50%;width:10px;height:10px;position:absolute;bottom:-1px;right:-1px}.bench-card__name{font-size:var(--fs-base);font-weight:var(--fw-semibold);color:var(--text-primary);margin-bottom:2px}.bench-card__subtitle{font-size:var(--fs-xs);color:var(--text-tertiary)}.bench-card__skills{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.bench-card__skill{background:var(--bg-subtle);color:var(--text-secondary);border-radius:4px;padding:2px 6px;font-size:10px}.bench-card__meta{color:var(--text-muted);margin-top:4px;font-size:11px}.bench-grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.team-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.team-accordion{gap:var(--sp-2);flex-direction:column;display:flex}.team-accordion__header{all:unset;box-sizing:border-box;align-items:center;gap:var(--sp-3);width:100%;padding:var(--sp-3) var(--sp-4);background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-lg);cursor:pointer;transition:all var(--t-fast);display:flex}.team-accordion__header:hover{border-color:var(--accent-500);box-shadow:var(--shadow-sm)}.team-accordion__header:focus-visible{outline:2px solid var(--accent-500);outline-offset:2px}.team-accordion__header[aria-expanded=true]{border-color:var(--border-default);border-bottom-right-radius:0;border-bottom-left-radius:0}.team-accordion__color-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.team-accordion__name{font-size:var(--fs-sm);color:var(--text-primary);white-space:nowrap;font-weight:600}.team-accordion__metrics{align-items:center;gap:var(--sp-3);flex-wrap:wrap;margin-left:auto;display:flex}.team-accordion__metric{font-size:var(--fs-xs);color:var(--text-muted);white-space:nowrap}.team-accordion__metric strong{color:var(--text-secondary);font-weight:600}.team-accordion__chevron{width:16px;height:16px;transition:transform var(--t-fast);color:var(--text-muted);flex-shrink:0}.team-accordion__header[aria-expanded=true] .team-accordion__chevron{transform:rotate(180deg)}.team-accordion__body{border:1px solid var(--border-subtle);border-radius:0 0 var(--r-lg) var(--r-lg);padding:var(--sp-4);background:var(--bg-base);border-top:none}.team-accordion__metrics .util-bar{flex-shrink:0;width:60px}.team-stats{gap:var(--sp-4);margin-bottom:var(--sp-4);flex-wrap:wrap;display:flex}.team-stats .stat-card{padding:var(--sp-3);flex:120px}.team-stats .stat-card__value{font-size:var(--fs-lg)}.bench-card__status-col{gap:var(--sp-1);flex-direction:column;align-items:flex-end;display:flex}.legend-row{color:var(--text-tertiary);flex-wrap:wrap;align-items:center;gap:16px;font-size:11px;display:flex}.legend-swatch{align-items:center;gap:6px;display:inline-flex}.legend-swatch__box{border-radius:3px;width:14px;height:12px}.member-header{background:var(--bg-surface);border-bottom:1px solid var(--border-subtle)}.member-header__top{align-items:center;gap:var(--sp-5);padding:var(--sp-5) var(--sp-8);display:flex}.member-header__avatar-wrap{flex-shrink:0;position:relative}.member-avatar__status{background:var(--pill-green-fg);border:3px solid var(--bg-surface);border-radius:50%;width:14px;height:14px;position:absolute;bottom:2px;right:2px}.member-header__info{min-width:0}.member-header__name{font-size:var(--fs-2xl);font-weight:var(--fw-semibold);letter-spacing:-.02em;color:var(--text-primary);align-items:center;gap:var(--sp-2);margin:0 0 6px;display:flex}.member-header__meta{gap:var(--sp-4);font-size:var(--fs-sm);color:var(--text-tertiary);flex-wrap:wrap;display:flex}.member-header__meta span{align-items:center;gap:6px;display:inline-flex}.member-header__meta .meta-sep{color:var(--text-muted)}.member-kpi-strip{gap:var(--sp-3);margin-bottom:var(--sp-5);grid-template-columns:repeat(3,1fr);display:grid}.stat-card__badges{gap:var(--sp-1);margin-top:var(--sp-1);flex-wrap:wrap;display:flex}.card__header-row{align-items:center;gap:var(--sp-3);display:flex}.stat-card__unit{font-size:var(--fs-md);color:var(--text-muted);font-weight:var(--fw-medium);margin-left:2px}.stat-card--highlight{background:linear-gradient(180deg, var(--pill-amber-bg) 0%, var(--bg-surface) 100%);border-color:color-mix(in srgb, var(--pill-amber-fg) 22%, transparent)}.history-grid-header{gap:var(--sp-3);padding:var(--sp-2) var(--sp-5);border-bottom:1px solid var(--border-subtle);background:var(--bg-subtle);font-size:var(--fs-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-weight:var(--fw-semibold);grid-template-columns:1fr 90px 120px 55px 130px 100px;display:grid}.history-row__period{font-size:var(--fs-sm);color:var(--text-tertiary)}.history-row__client{font-size:var(--fs-xs);color:var(--text-muted);margin-top:2px}.filter-chip__count{opacity:.7}.member-timeline{margin:0;padding:0;list-style:none}.member-timeline-item{gap:var(--sp-3);padding:var(--sp-3) 0;display:flex;position:relative}.member-timeline-item:not(:last-child):before{content:"";left:11px;top:calc(var(--sp-3) + 24px);background:var(--border-subtle);width:2px;position:absolute;bottom:0}.member-timeline-item__dot{background:var(--bg-subtle);width:24px;height:24px;color:var(--text-tertiary);border-radius:50%;flex-shrink:0;place-items:center;display:grid}.member-timeline-item__dot--green{background:var(--pill-green-bg);color:var(--pill-green-fg)}.member-timeline-item__dot--purple{background:var(--pill-violet-bg);color:var(--pill-violet-fg)}.member-timeline-item__dot--amber{background:var(--pill-amber-bg);color:var(--pill-amber-fg)}.member-timeline-item__dot--indigo{background:var(--pill-indigo-bg);color:var(--pill-indigo-fg)}.member-timeline-item__dot--blue{background:var(--pill-blue-bg);color:var(--pill-blue-fg)}.member-timeline-item__body{min-width:0}.member-timeline-item__text{font-size:var(--fs-base);color:var(--text-primary);line-height:1.5}.member-timeline-item__meta{font-size:var(--fs-xs);color:var(--text-muted);margin-top:2px}.member-timeline-period{font-size:var(--fs-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}.rec-card{padding:var(--sp-4);border:1px solid var(--border-subtle);border-radius:var(--r-lg);background:var(--bg-surface)}.rec-card__header{align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-3);display:flex}.rec-card__to-info{flex:1;min-width:0}.rec-card__to-name{font-size:var(--fs-base);font-weight:var(--fw-medium);color:var(--text-primary)}.rec-card__external{font-size:var(--fs-xs);color:var(--text-muted);font-weight:var(--fw-regular)}.rec-card__role{font-size:var(--fs-xs);color:var(--text-tertiary)}.rec-card__source{font-size:var(--fs-xs);font-weight:var(--fw-semibold);border-radius:var(--r-full);white-space:nowrap;align-items:center;gap:4px;padding:2px 8px;display:inline-flex}.rec-card__source--internal{background:var(--pill-blue-bg);color:var(--pill-blue-fg)}.rec-card__source--client{background:var(--pill-amber-bg);color:var(--pill-amber-fg)}.rec-card__source--peer{background:var(--pill-violet-bg);color:var(--pill-violet-fg)}.rec-card__source--spot{background:var(--pill-green-bg);color:var(--pill-green-fg)}.rec-card__date{font-size:var(--fs-xs);color:var(--text-muted);white-space:nowrap}.rec-card__badges{margin-bottom:var(--sp-3);flex-wrap:wrap;gap:6px;display:flex}.rec-card__project{font-size:var(--fs-xs);color:var(--text-tertiary);margin-bottom:var(--sp-2)}.rec-card__project-name{color:var(--text-accent);font-weight:var(--fw-medium)}.rec-card__text{font-size:var(--fs-base);color:var(--text-secondary);margin:0;line-height:1.6}.rec-card__text--quote{padding-left:var(--sp-4);border-left:3px solid var(--border-default);font-style:italic}.rec-card__footer{margin-top:var(--sp-3);padding-top:var(--sp-3);border-top:1px solid var(--border-subtle);justify-content:flex-end;display:flex}.rec-card__given-by{align-items:center;gap:var(--sp-2);font-size:var(--fs-xs);color:var(--text-tertiary);display:inline-flex}.rec-card__given-by strong{color:var(--text-secondary);font-weight:var(--fw-medium)}.rec-summary{gap:var(--sp-3);margin-bottom:var(--sp-5);grid-template-columns:repeat(4,1fr);display:grid}.cell-link{color:var(--text-primary);transition:color var(--t-fast);text-decoration:none}.cell-link:hover{color:var(--text-accent)}.pagination{padding:var(--sp-3) 0;margin-top:var(--sp-3);justify-content:space-between;align-items:center;display:flex}.pagination__info{font-size:var(--fs-sm);color:var(--text-muted)}.pagination__nav{align-items:center;gap:var(--sp-3);display:flex}.pagination__page{font-size:var(--fs-sm);color:var(--text-secondary)}.pagination--embedded{padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--border-subtle);margin-top:0}.pagination__page-btn{border-radius:var(--r-md);min-width:28px;height:28px;font-size:var(--fs-sm);color:var(--text-secondary);cursor:pointer;transition:all var(--t-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:0 4px;display:inline-flex}.pagination__page-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.pagination__page-btn--active{background:var(--bg-selected);color:var(--text-accent);font-weight:var(--fw-medium)}.pagination__ellipsis{min-width:28px;height:28px;font-size:var(--fs-sm);color:var(--text-muted);justify-content:center;align-items:center;display:inline-flex}.page-header--simple{margin-bottom:var(--sp-5)}.error-page{padding-top:var(--sp-16,64px);text-align:center}.error-page__title{font-size:var(--fs-lg);font-weight:var(--fw-semibold);color:var(--text-primary);margin-bottom:var(--sp-2)}.error-page__message{color:var(--text-muted);font-size:var(--fs-sm);margin-bottom:var(--sp-3)}.card__body--empty{text-align:center;padding:var(--sp-8);color:var(--text-muted)}.badge-picker{gap:var(--sp-2);flex-wrap:wrap;display:flex}.badge-picker__item{cursor:pointer;border-radius:var(--r-md);transition:border-color var(--t-fast), opacity var(--t-fast);opacity:.5;border:2px solid #0000;padding:2px}.badge-picker__item:hover{opacity:.8}.badge-picker__item--selected{opacity:1;border-color:var(--accent-500)}.success-banner{align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);background:var(--pill-green-bg);color:var(--pill-green-fg);border:1px solid color-mix(in srgb, var(--pill-green-fg) 20%, transparent);border-radius:var(--r-md);font-size:var(--fs-sm);font-weight:var(--fw-medium);margin-bottom:var(--sp-4);animation:.2s banner-fade-in;display:flex}@keyframes banner-fade-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.toast{top:var(--sp-4);z-index:9999;min-width:280px;max-width:480px;padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);font-size:var(--fs-sm);font-weight:var(--fw-medium);pointer-events:auto;animation:.25s toast-slide-in;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #00000026}.toast--error{background:var(--pill-red-bg);color:var(--pill-red-fg);border:1px solid color-mix(in srgb, var(--pill-red-fg) 20%, transparent)}.toast--success{background:var(--pill-green-bg);color:var(--pill-green-fg);border:1px solid color-mix(in srgb, var(--pill-green-fg) 20%, transparent)}.toast--info{background:var(--pill-blue-bg,#e0f2fe);color:var(--pill-blue-fg,#0c4a6e);border:1px solid color-mix(in srgb, var(--pill-blue-fg,#0c4a6e) 20%, transparent)}@keyframes toast-slide-in{0%{opacity:0;transform:translate(-50%)translateY(-12px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.search-bar{flex:1;position:relative}.search-bar__input{width:100%;height:32px;padding:0 var(--sp-3) 0 var(--sp-8);border:1px solid var(--border-default);border-radius:var(--r-md);background:var(--bg-surface);font-size:var(--fs-sm);color:var(--text-primary);transition:border-color var(--t-fast)}.search-bar__input:focus{border-color:var(--accent-500);box-shadow:var(--shadow-ring);outline:none}.search-bar__input:disabled{opacity:.5;cursor:not-allowed;background:var(--bg-subtle)}.search-bar__input::placeholder{color:var(--text-muted)}.search-bar__icon{left:var(--sp-2);color:var(--text-muted);pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.search{flex:1;min-width:200px;position:relative}.search__input{width:100%;height:32px;padding:0 var(--sp-3) 0 var(--sp-8);background:var(--bg-subtle);border-radius:var(--r-md);font-size:var(--fs-sm);color:var(--text-primary);transition:all var(--t-fast);border:1px solid #0000}.search__input:focus{background:var(--bg-surface);border-color:var(--border-default);box-shadow:var(--shadow-ring);outline:none}.search__input::placeholder{color:var(--text-muted)}.search:has(.search__chips) .search__input{padding-right:calc(var(--sp-2) + 120px)}.search--has-value .search__input{padding-right:var(--sp-8)}.search__clear{right:var(--sp-2);border-radius:var(--r-full);background:var(--bg-subtle);width:20px;height:20px;color:var(--text-muted);cursor:pointer;border:none;justify-content:center;align-items:center;padding:0;font-size:10px;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.search__clear:hover{background:var(--bg-hover);color:var(--text-primary)}.search__icon{left:var(--sp-2);color:var(--text-muted);pointer-events:none;align-items:center;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.search__chips{right:var(--sp-2);gap:var(--sp-1);pointer-events:auto;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.search__chip{height:22px;padding:0 var(--sp-2);border-radius:var(--r-sm);border:1px solid var(--border-subtle);background:var(--bg-surface);font-size:10px;font-weight:var(--fw-medium);color:var(--text-muted);cursor:pointer;transition:all var(--t-fast);white-space:nowrap;align-items:center;display:inline-flex}.search__chip:hover{border-color:var(--border-default);color:var(--text-secondary);background:var(--bg-hover)}.search--has-value .search__chips{display:none}.card__toolbar{align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-5);border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;display:flex}.card__toolbar-left{align-items:center;gap:var(--sp-2);display:flex}.card__toolbar-actions{align-items:center;gap:var(--sp-2);margin-left:auto;display:flex}.modal-card--wide{max-width:560px}.field-row{gap:var(--sp-3);display:flex}.field-row>.field-group{flex:1}@media (max-width:640px){.field-row{flex-direction:column}}.field-check{align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);color:var(--text-secondary);cursor:pointer;display:flex}.field-check input[type=checkbox]{accent-color:var(--accent-500)}.member-skeleton{gap:var(--sp-4);align-items:center;display:flex}.member-skeleton__avatar{border-radius:50%;width:72px;height:72px}.member-skeleton__lines{gap:var(--sp-2);flex-direction:column;display:flex}.audit-row{gap:var(--sp-3);padding:10px var(--sp-5);border-bottom:1px solid var(--border-subtle);font-size:var(--fs-sm);grid-template-columns:120px 120px 1fr 100px;align-items:center;display:grid}.audit-row:last-child{border-bottom:none}.audit-row:hover{background:var(--bg-hover)}.audit-row--header{background:var(--bg-subtle);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border-subtle);font-size:11px;font-weight:600}.audit-row--header:hover{background:var(--bg-subtle)}.audit-row__time{font-family:var(--font-mono,monospace);font-size:var(--fs-xs);color:var(--text-tertiary)}.local-time{flex-direction:column;line-height:1.4;display:flex}.audit-row__actor{color:var(--text-secondary);font-weight:500}.audit-row__action{color:var(--text-primary)}.audit-row__action-project{font-size:var(--fs-xs);color:var(--text-muted);margin-top:2px}.audit-row__source{font-size:var(--fs-xs);color:var(--text-muted)}.audit-row--cols-2{grid-template-columns:140px 1fr}@media (max-width:768px){.member-header__top{gap:var(--sp-3);padding:var(--sp-4);flex-direction:column}.member-header__meta{gap:var(--sp-2)}.member-kpi-strip,.rec-summary{grid-template-columns:repeat(2,1fr)}.history-row{gap:var(--sp-2);padding:var(--sp-4);grid-template-columns:1fr}.history-row__days,.history-grid-header{display:none}.history-stats{grid-template-columns:repeat(2,1fr)}}@media (max-width:1024px){.util-grid{grid-template-columns:repeat(2,1fr)}.settings-layout{grid-template-columns:1fr}.settings-nav{padding-bottom:var(--sp-2);flex-direction:row;position:static;overflow-x:auto}.history-row,.history-grid-header{grid-template-columns:1fr 80px 110px 45px 110px 90px}.history-stats{grid-template-columns:repeat(3,1fr)}}@media (max-width:768px){.team-member{grid-template-columns:32px 1fr auto}.team-member__email{display:none}.capacity-grid{font-size:var(--fs-xs);grid-template-columns:140px repeat(8,1fr) 60px}.capacity-row__name-sub{display:none}.bench-card,.bench-grid,.team-grid{grid-template-columns:1fr}}@media (max-width:600px){.util-grid{grid-template-columns:1fr}}@media (max-width:767px){.app,.app--collapsed{grid-template-columns:1fr}.sidebar{z-index:50;max-width:300px;transition:transform .2s;position:fixed;inset:0;transform:translate(-100%);width:100%!important}.app--mobile-open .sidebar{transform:translate(0)}.sidebar__toggle{display:none}.sidebar--collapsed{width:100%!important}.sidebar-backdrop{z-index:40;opacity:0;background:#00000080;transition:opacity .2s;position:fixed;inset:0}.app--mobile-open .sidebar-backdrop{opacity:1;display:block}}.prose{color:var(--text-primary);line-height:1.7;font-size:var(--fs-base)}.prose h1,.prose h2,.prose h3,.prose h4{font-weight:var(--fw-semibold);color:var(--text-primary);margin:var(--sp-5) 0 var(--sp-2) 0}.prose h1{font-size:var(--fs-xl)}.prose h2{font-size:var(--fs-lg)}.prose h3{font-size:var(--fs-md)}.prose p{margin:0 0 var(--sp-3) 0}.prose ul,.prose ol{margin:0 0 var(--sp-3) 0;padding-left:var(--sp-5)}.prose li{margin-bottom:var(--sp-1)}.prose code{background:var(--bg-subtle);padding:1px var(--sp-1);border-radius:var(--r-sm);font-size:.9em}.prose pre{background:var(--bg-subtle);padding:var(--sp-3);border-radius:var(--r-md);margin:0 0 var(--sp-3) 0;overflow-x:auto}.prose pre code{background:0 0;padding:0}.prose blockquote{border-left:3px solid var(--border-strong);margin:0 0 var(--sp-3) 0;padding:var(--sp-2) var(--sp-4);color:var(--text-secondary)}.prose a{color:var(--accent-500);text-decoration:underline}.prose table{border-collapse:collapse;width:100%;margin:0 0 var(--sp-3) 0}.prose th,.prose td{padding:var(--sp-2) var(--sp-3);border:1px solid var(--border-subtle);text-align:left}.prose th{background:var(--bg-subtle);font-weight:var(--fw-medium)}.prose img{border-radius:var(--r-md);max-width:100%}.prose--chat{font-size:var(--fs-sm);line-height:1.6}.prose--chat p:last-child{margin-bottom:0}.prose--chat h1{font-size:var(--fs-lg)}.prose--chat h2{font-size:var(--fs-md)}.prose--chat h3{font-size:var(--fs-sm);font-weight:var(--fw-semibold)}.prose--chat pre{font-size:var(--fs-xs)}@keyframes drawerFadeIn{0%{opacity:0}to{opacity:1}}@keyframes drawerSlideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-backdrop{z-index:999;background:#00000059;animation:.15s ease-out drawerFadeIn;position:fixed;inset:0}.drawer-panel{background:var(--bg-surface);border-left:1px solid var(--border-default);z-index:1000;flex-direction:column;width:min(460px,90vw);animation:.2s ease-out drawerSlideIn;display:flex;position:fixed;top:0;bottom:0;right:0;overflow-y:auto}.drawer-project-link:hover{text-decoration:underline!important}@media (max-width:1024px){.page{padding:var(--sp-5) var(--sp-6)}}@media (max-width:768px){.page{padding:var(--sp-4) var(--sp-4)}.tab-nav{-webkit-overflow-scrolling:touch;scrollbar-width:none;margin:0 calc(-1 * var(--sp-4));padding:0 var(--sp-4);overflow-x:auto}.tab-nav::-webkit-scrollbar{display:none}.project-header{padding:var(--sp-4) var(--sp-4) 0}.project-header__top{gap:var(--sp-3);flex-direction:column}.project-header__meta{flex-wrap:wrap}.pipeline-step__label{font-size:10px}.stat-card__value{font-size:22px}.resource-grid{grid-template-columns:1fr 1fr;gap:12px}.pm-row{grid-template-columns:28px 1fr 50px}.pm-row__bar{display:none}.settings-row,.session-row{gap:var(--sp-2);grid-template-columns:1fr}.session-row>:first-child{display:none}.capacity-grid{min-width:700px}.audit-row{gap:var(--sp-1);padding:var(--sp-3);grid-template-columns:1fr}.audit-row--cols-2{grid-template-columns:1fr}.detail-row__label{width:80px}.add-row{flex-wrap:wrap}.add-row__field{min-width:calc(50% - var(--sp-3))}.search{min-width:0}.filter-bar{gap:var(--sp-1);flex-wrap:wrap}}@media (max-width:640px){.page{padding:var(--sp-3) var(--sp-3)}.sidebar{max-width:min(280px,85vw)!important}.dash-grid{gap:12px}.dash-header__title{font-size:18px}.stat-card__value{font-size:20px}.resource-grid{grid-template-columns:1fr}.resource-stat__value{font-size:20px}.milestone-row{gap:var(--sp-1);padding:var(--sp-3);grid-template-columns:1fr}.milestone-row__amount,.milestone-row__date{justify-self:start}.deliverable-row{gap:var(--sp-1);padding:var(--sp-3);grid-template-columns:1fr}.deliverable-row__date{justify-self:start;font-size:11px}.recognition-row{gap:var(--sp-1);padding:var(--sp-3);grid-template-columns:1fr}.recognition-row__meta{justify-self:start}.pm-row{gap:var(--sp-2);grid-template-columns:1fr auto}.pm-row>:first-child{display:none}.feed-item{gap:var(--sp-2);padding:var(--sp-2) var(--sp-3)}.feed-dot{width:18px;height:18px}.risk-item{gap:var(--sp-2);padding:var(--sp-2) var(--sp-3)}.trend-bar{width:18px}.trend-chart{gap:8px;height:110px}.tab-nav__item{padding:var(--sp-2) var(--sp-3);font-size:11px}.project-header__title{font-size:17px}.pipeline-step{gap:var(--sp-1)}.add-row{flex-direction:column}.add-row__field{width:100%;min-width:0}.add-row__actions{justify-content:flex-end;width:100%}.detail-row{gap:var(--sp-1);flex-direction:column}.detail-row__label{width:auto}.table td,.table th{padding:var(--sp-2);font-size:var(--fs-xs)}.stage-legend{gap:var(--sp-2);grid-template-columns:1fr}.card__header,.card__body{padding:var(--sp-3)}.modal-card{max-width:calc(100vw - var(--sp-4));margin:var(--sp-4)}.btn--sm{min-height:36px;padding:0 var(--sp-3)}}@media (max-width:480px){.kpi-strip{grid-template-columns:1fr;gap:8px}.stage-bar{height:14px}.my-project-row{gap:var(--sp-2);padding:var(--sp-2) var(--sp-3)}.pipeline-step__label{display:none}.pipeline-step__icon{width:24px;height:24px;font-size:10px}.login-card{max-width:100%;margin:var(--sp-3)}.tab-nav__item{padding:var(--sp-1) var(--sp-2);font-size:11px}.dash-header__title,.project-header__title{font-size:16px}.drawer-panel{width:100vw}}@media (max-width:360px){.page{padding:var(--sp-2) var(--sp-2)}.stat-card__value{font-size:18px}.card__header,.card__body{padding:var(--sp-2)}.tab-nav__item{padding:var(--sp-1) 6px;font-size:10px}}@media (max-width:900px){.capacity-grid-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.capacity-grid-wrap::-webkit-scrollbar{height:4px}.capacity-grid-wrap::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:2px}}.pipeline-grid{gap:var(--sp-4);grid-template-columns:repeat(4,1fr);display:grid}.pipeline-card{background:var(--bg-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--sp-4);border-left:3px solid var(--border-default);gap:var(--sp-2);flex-direction:column;display:flex}.pipeline-card--gray{border-left-color:var(--text-muted)}.pipeline-card--blue{border-left-color:var(--accent)}.pipeline-card--green{border-left-color:var(--success)}.pipeline-card--red{border-left-color:var(--danger)}.pipeline-card--amber{border-left-color:var(--pill-amber-fg,#d97706)}.pipeline-card--orange{border-left-color:var(--pill-orange-fg,#ea580c)}@media (prefers-reduced-motion:no-preference){.pipeline-card--blue{animation:2s ease-in-out infinite pipeline-pulse}}@keyframes pipeline-pulse{0%,to{opacity:1}50%{opacity:.85}}.pipeline-card__header{justify-content:space-between;align-items:center;display:flex}.pipeline-card__stage-num{font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.pipeline-card__title{font-size:var(--fs-md);font-weight:var(--fw-medium);color:var(--text-primary);margin:0}.pipeline-card__meta{font-size:var(--fs-sm);color:var(--text-secondary)}.pipeline-card__error{font-size:var(--fs-sm);color:var(--danger);background:var(--danger-bg,#ef444414);padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-sm)}.pipeline-card__actions{gap:var(--sp-2);padding-top:var(--sp-2);margin-top:auto;display:flex}.pipeline-card__documents{border-top:1px solid var(--border-default);padding-top:var(--sp-2);gap:var(--sp-1);flex-direction:column;display:flex}.pipeline-doc-row{padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-sm);color:var(--text-primary);font-size:var(--fs-sm);justify-content:space-between;align-items:center;text-decoration:none;transition:background .15s;display:flex}.pipeline-doc-row:hover{background:var(--bg-hover)}.pipeline-doc-row__name{font-weight:var(--fw-medium);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.pipeline-doc-row__type{font-size:var(--fs-xs);color:var(--text-muted);margin-left:var(--sp-2);flex-shrink:0}@media (max-width:1100px){.pipeline-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.pipeline-grid{grid-template-columns:1fr}}.pipeline-card__approval{gap:var(--sp-2);display:flex}.pipeline-card__revision-input{border-top:1px solid var(--border-default);padding-top:var(--sp-2)}.pipeline-comment{padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-sm);background:var(--bg-main)}.pipeline-comment__header{align-items:center;gap:var(--sp-2);margin-bottom:2px;display:flex}.pipeline-comment__author{font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--text-primary)}.pipeline-comment__text{font-size:var(--fs-sm);color:var(--text-secondary);margin:0}.draft-review{background:var(--bg-card);border:1px solid var(--pill-amber-fg,#d97706);border-radius:var(--radius-lg);padding:var(--sp-4);gap:var(--sp-3);margin-bottom:var(--sp-4);flex-direction:column;display:flex}.draft-review__header{justify-content:space-between;align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.draft-review__meta{font-size:var(--fs-xs);color:var(--text-muted)}.draft-review__notes{font-size:var(--fs-sm);color:var(--text-secondary);background:var(--pill-amber-bg,#d9770614);padding:var(--sp-2);border-radius:var(--radius-sm)}.draft-review__content{border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:var(--sp-3);background:var(--bg-main);max-height:400px;overflow-y:auto}.draft-review__correction{border-top:1px solid var(--border-default);padding-top:var(--sp-2)}.draft-review__actions{gap:var(--sp-2);border-top:1px solid var(--border-default);padding-top:var(--sp-3);flex-wrap:wrap;display:flex}.chat-page{flex-direction:column;height:calc(100vh - 120px);display:flex}.chat-panel{border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--bg-card);min-height:420px;max-height:600px;display:flex;overflow:hidden}.chat-page .chat-panel{flex:1;max-height:none}.chat-section-divider{background:var(--border-default);height:1px;margin:var(--sp-5) 0}.chat-sidebar{border-right:1px solid var(--border-default);flex-direction:column;flex-shrink:0;width:200px;display:flex}.chat-sidebar__new{margin:var(--sp-3);width:calc(100% - var(--sp-3) * 2)}.chat-sidebar__list{padding:0 var(--sp-2);flex:1;overflow-y:auto}.chat-sidebar__empty{padding:var(--sp-3);font-size:var(--fs-sm);color:var(--text-muted);text-align:center}.chat-session-item{align-items:center;gap:var(--sp-1);width:100%;padding:var(--sp-2);border-radius:var(--radius-sm);cursor:pointer;text-align:left;background:0 0;border:none;transition:background .15s;display:flex}.chat-session-item:hover{background:var(--bg-hover)}.chat-session-item--active{background:var(--accent-muted)}.chat-session-item__title{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.chat-session-item__meta{font-size:var(--fs-xs);color:var(--text-muted);display:block}.chat-session-item__delete{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);opacity:0;background:0 0;border:none;flex-shrink:0;padding:2px 4px;font-size:16px;line-height:1;transition:opacity .15s,color .15s}.chat-session-item:hover .chat-session-item__delete{opacity:1}.chat-session-item__delete:hover{color:var(--pill-red-fg)}.chat-main{flex-direction:column;flex:1;min-width:0;display:flex}.chat-messages{padding:var(--sp-4);gap:var(--sp-3);flex-direction:column;flex:1;display:flex;overflow-y:auto}.chat-empty{justify-content:center;align-items:center;gap:var(--sp-2);color:var(--text-muted);text-align:center;padding:var(--sp-6);flex-direction:column;flex:1;display:flex}.chat-empty__icon{opacity:.4}.chat-empty p{font-size:var(--fs-sm);max-width:300px;margin:0}.chat-message{gap:var(--sp-2);max-width:85%;display:flex}.chat-message--user{flex-direction:row-reverse;align-self:flex-end}.chat-message--assistant{align-self:flex-start}.chat-message__avatar{width:28px;height:28px;font-size:var(--fs-xs);font-weight:var(--fw-semibold);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.chat-message--user .chat-message__avatar{background:var(--accent);color:#fff}.chat-message--assistant .chat-message__avatar{background:var(--bg-muted);color:var(--text-secondary)}.chat-message__content{padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);font-size:var(--fs-sm);line-height:var(--lh-base);white-space:pre-wrap;word-break:break-word}.chat-message--user .chat-message__content{background:var(--accent);color:#fff}.chat-message--assistant .chat-message__content{background:var(--bg-muted);color:var(--text-primary);white-space:normal}.chat-typing{background:var(--text-muted);vertical-align:text-bottom;border-radius:1px;width:6px;height:14px;margin-left:2px;animation:.8s ease-in-out infinite chat-blink;display:inline-block}@keyframes chat-blink{0%,to{opacity:1}50%{opacity:.2}}.chat-input{gap:var(--sp-2);padding:var(--sp-3);border-top:1px solid var(--border-default);align-items:flex-end;display:flex}.chat-input__textarea{resize:none;border:1px solid var(--border-default);border-radius:var(--r-md);padding:var(--sp-2) var(--sp-3);font-size:var(--fs-sm);font-family:var(--font-sans);line-height:var(--lh-base);background:var(--bg-primary);color:var(--text-primary);outline:none;flex:1;min-height:36px;max-height:120px;transition:border-color .15s}.chat-input__textarea:focus{border-color:var(--accent)}.chat-input__textarea:disabled{opacity:.6;cursor:not-allowed}.chat-input__send{flex-shrink:0;min-width:60px;height:36px}.chat-input__wrapper{gap:var(--sp-1);flex-direction:column;flex:1;display:flex;position:relative}.chat-input__skill-badge{align-items:center;gap:var(--sp-1);border-radius:var(--r-full);background:var(--pill-indigo-bg);color:var(--pill-indigo-fg);font-size:var(--fs-xs);font-weight:var(--fw-medium);width:fit-content;padding:2px 8px;display:inline-flex}.chat-input__skill-badge button{color:inherit;cursor:pointer;opacity:.7;background:0 0;border:none;margin-left:2px;padding:0;font-size:14px;line-height:1}.chat-input__skill-badge button:hover{opacity:1}@media (max-width:768px){.chat-sidebar{display:none}.chat-message{max-width:95%}}.slash-menu{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--r-lg);max-height:280px;box-shadow:var(--shadow-lg);z-index:9999;padding:var(--sp-1) 0;overflow-y:auto}.slash-menu__loading,.slash-menu__empty{padding:var(--sp-3) var(--sp-4);font-size:var(--fs-sm);color:var(--text-muted)}.slash-menu__item{width:100%;padding:var(--sp-2) var(--sp-4);cursor:pointer;text-align:left;font-size:var(--fs-sm);color:var(--text-primary);transition:background var(--t-fast);background:0 0;border:none;justify-content:space-between;align-items:center;display:flex}.slash-menu__item:hover,.slash-menu__item--selected{background:var(--bg-hover)}.slash-menu__item-main{align-items:center;gap:var(--sp-2);min-width:0;display:flex}.slash-menu__item-name{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--accent-500);font-weight:var(--fw-medium);white-space:nowrap}.slash-menu__item-label{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.slash-menu__item-meta{gap:var(--sp-1);flex-shrink:0;display:flex}.slash-menu__badge{border-radius:var(--r-full);font-size:10px;font-weight:var(--fw-medium);background:var(--pill-gray-bg);color:var(--pill-gray-fg);padding:1px 6px;display:inline-block}.slash-menu__badge--mode{background:var(--pill-purple-bg);color:var(--pill-purple-fg)}.slash-menu__badge--shared{background:var(--pill-blue-bg);color:var(--pill-blue-fg)}.skills-filters{gap:var(--sp-2);margin-bottom:var(--sp-5);flex-wrap:wrap;display:flex}.skills-filters__search{flex:1;min-width:200px}.skills-filters__select{width:auto;min-width:140px}.skills-grid{gap:var(--sp-4);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));display:grid}.skills-loading{padding:var(--sp-10) 0;color:var(--text-muted);font-size:var(--fs-sm);justify-content:center;align-items:center;display:flex}.skills-empty{justify-content:center;align-items:center;gap:var(--sp-4);padding:var(--sp-12) 0;color:var(--text-muted);font-size:var(--fs-sm);flex-direction:column;display:flex}.skills-empty p{margin:0}.skills-pagination{justify-content:center;align-items:center;gap:var(--sp-3);margin-top:var(--sp-6);padding-top:var(--sp-4);border-top:1px solid var(--border-subtle);display:flex}.skills-pagination__info{font-size:var(--fs-sm);color:var(--text-muted)}.skill-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-xl);transition:border-color var(--t-fast), box-shadow var(--t-fast);position:relative}.skill-card:hover{border-color:var(--border-default);box-shadow:0 1px 4px #0000000f}.skill-card__link{padding:var(--sp-4) var(--sp-5);color:inherit;text-decoration:none;display:block}.skill-card__header{justify-content:space-between;align-items:flex-start;gap:var(--sp-2);margin-bottom:var(--sp-2);display:flex}.skill-card__name{font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--text-primary);line-height:var(--lh-tight);margin:0}.skill-card__badges{flex-wrap:wrap;flex-shrink:0;gap:4px;display:flex}.skill-card__badge{border-radius:var(--r-full);font-size:10px;font-weight:var(--fw-medium);white-space:nowrap;background:var(--pill-gray-bg);color:var(--pill-gray-fg);padding:1px 8px;display:inline-block}.skill-card__badge--category{background:var(--pill-amber-bg);color:var(--pill-amber-fg)}.skill-card__badge--mode{background:var(--pill-purple-bg);color:var(--pill-purple-fg)}.skill-card__badge--shared{background:var(--pill-blue-bg);color:var(--pill-blue-fg)}.skill-card__badge--personal{background:var(--pill-gray-bg);color:var(--pill-gray-fg)}.skill-card__desc{font-size:var(--fs-sm);color:var(--text-secondary);margin:0 0 var(--sp-2);line-height:var(--lh-base)}.skill-card__slug{margin-bottom:var(--sp-3)}.skill-card__slug code{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--accent-500);background:var(--bg-tertiary);border-radius:var(--r-sm);padding:2px 6px}.skill-card__footer{font-size:var(--fs-xs);color:var(--text-muted);justify-content:space-between;align-items:center;display:flex}.skill-card__stats{gap:var(--sp-2);display:flex}.skill-card__delete{top:var(--sp-2);right:var(--sp-2);background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-md);width:24px;height:24px;color:var(--text-muted);cursor:pointer;opacity:0;transition:opacity var(--t-fast), color var(--t-fast), border-color var(--t-fast);justify-content:center;align-items:center;font-size:14px;display:flex;position:absolute}.skill-card:hover .skill-card__delete{opacity:1}.skill-card__delete:hover{color:var(--pill-red-fg);border-color:var(--pill-red-fg)}.skill-detail__meta{align-items:center;gap:var(--sp-2);margin-top:var(--sp-1);flex-wrap:wrap;display:flex}.skill-detail__meta code{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--accent-500);background:var(--bg-tertiary);border-radius:var(--r-sm);padding:2px 6px}.skill-detail__description{font-size:var(--fs-md);color:var(--text-secondary);margin:0 0 var(--sp-4);line-height:var(--lh-loose)}.skill-detail__overview{gap:var(--sp-5);flex-direction:column;display:flex}.skill-detail__section h3{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin:0 0 var(--sp-2)}.skill-detail__triggers{gap:var(--sp-1);flex-wrap:wrap;display:flex}.skill-detail__content{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-lg);padding:var(--sp-5);overflow-x:auto}.badge{border-radius:var(--r-full);font-size:var(--fs-xs);font-weight:var(--fw-medium);white-space:nowrap;text-transform:capitalize;padding:2px 8px;display:inline-block}.badge--neutral{background:var(--pill-gray-bg);color:var(--pill-gray-fg)}.badge--info{background:var(--pill-blue-bg);color:var(--pill-blue-fg)}.badge--success{background:var(--pill-green-bg);color:var(--pill-green-fg)}.badge--danger{background:var(--pill-red-bg);color:var(--pill-red-fg)}.modal-card--lg{max-width:640px}.form-row--3col{gap:var(--sp-3);grid-template-columns:repeat(3,1fr);display:grid}.form-toggle{align-items:center;gap:var(--sp-2);cursor:pointer;font-size:var(--fs-sm);color:var(--text-secondary);display:flex}.form-toggle input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent-500);cursor:pointer}.form-toggle__label{-webkit-user-select:none;user-select:none}@media (max-width:768px){.skills-grid{grid-template-columns:1fr}.skills-filters{flex-direction:column}.skills-filters__search{min-width:unset}.form-row--3col{grid-template-columns:1fr}}.portal-shell{background:var(--bg-base);min-height:100vh;color:var(--text-primary)}.portal-error{text-align:center;justify-content:center;align-items:center;gap:var(--sp-3);flex-direction:column;min-height:60vh;display:flex}.portal-error h1{font-size:var(--fs-xl);font-weight:var(--fw-semibold)}.portal-error p{color:var(--text-muted);font-size:var(--fs-md)}.portal-footer{text-align:center;padding:var(--sp-8) 0 var(--sp-5);font-size:var(--fs-xs);color:var(--text-muted);letter-spacing:.02em}.portal-section{margin-bottom:var(--sp-6)}.portal-section__title{font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--text-primary);margin-bottom:var(--sp-3);align-items:center;gap:var(--sp-2);display:flex}.portal-section__meta{font-size:var(--fs-xs);color:var(--text-muted);font-weight:var(--fw-normal);margin-left:auto}.portal-status-bar{border-radius:var(--r-full);height:8px;margin-bottom:var(--sp-3);display:flex;overflow:hidden}.portal-status-bar__segment{height:100%;transition:width .3s}.portal-deliverable-group{margin-bottom:var(--sp-4)}.portal-deliverable-group__header{padding:var(--sp-2) 0;border-bottom:1px solid var(--border-subtle);margin-bottom:var(--sp-2);justify-content:space-between;align-items:center;display:flex}.portal-deliverable-group__label{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text-secondary)}.portal-deliverable-group__count{font-size:var(--fs-xs);color:var(--text-muted)}.portal-deliverable-item{align-items:center;gap:var(--sp-3);padding:var(--sp-2) 0;font-size:var(--fs-sm);display:flex}.portal-deliverable-item--done{color:var(--text-muted)}.portal-deliverable-item__check{border-radius:var(--r-sm);border:1.5px solid var(--border-default);flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;display:flex}.portal-deliverable-item--done .portal-deliverable-item__check{background:var(--accent);border-color:var(--accent);color:#fff}.portal-deliverable-item__title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.portal-deliverable-item__meta{font-size:var(--fs-xs);color:var(--text-muted);flex-shrink:0}.portal-deliverable-item__prototype{font-size:var(--fs-xs);color:var(--text-accent);background:var(--pill-purple-bg,var(--pill-blue-bg));border-radius:4px;flex-shrink:0;padding:1px 8px;text-decoration:none}.portal-deliverable-item__prototype:hover{opacity:.85}.portal-pipeline-stages{gap:var(--sp-2);flex-wrap:wrap;display:flex}.portal-pipeline-stage{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-lg);min-width:120px;padding:var(--sp-3);text-align:center;flex:1 1 0}.portal-pipeline-stage--completed{border-color:var(--green-border);background:var(--green-bg)}.portal-pipeline-stage--executing{border-color:var(--blue-border);background:var(--blue-bg)}.portal-pipeline-stage__number{border-radius:var(--r-full);background:var(--bg-inset);width:24px;height:24px;font-size:var(--fs-xs);font-weight:var(--fw-semibold);margin-bottom:var(--sp-1);justify-content:center;align-items:center;display:inline-flex}.portal-pipeline-stage--completed .portal-pipeline-stage__number{background:var(--green-text);color:#fff}.portal-pipeline-stage__label{font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--text-secondary)}.portal-pipeline-stage__status{color:var(--text-muted);margin-top:var(--sp-1);font-size:10px}.portal-timeline{padding-left:var(--sp-5);position:relative}.portal-timeline:before{content:"";background:var(--border-subtle);width:2px;position:absolute;top:4px;bottom:4px;left:7px}.portal-timeline-item{padding:var(--sp-2) 0;justify-content:space-between;align-items:center;gap:var(--sp-3);display:flex;position:relative}.portal-timeline-item:before{content:"";left:calc(-1 * var(--sp-5) + 3px);border-radius:var(--r-full);background:var(--bg-surface);border:2px solid var(--border-default);width:10px;height:10px;position:absolute;top:50%;transform:translateY(-50%)}.portal-timeline-item--paid:before{background:var(--green-text);border-color:var(--green-text)}.portal-timeline-item--overdue:before{background:var(--red-text);border-color:var(--red-text)}.portal-timeline-item__name{font-size:var(--fs-sm);font-weight:var(--fw-medium);flex:1;min-width:0}.portal-timeline-item__date{font-size:var(--fs-xs);color:var(--text-muted);flex-shrink:0}.portal-timeline-item--overdue .portal-timeline-item__date{color:var(--red-text)}.portal-files-list{gap:var(--sp-1);flex-direction:column;display:flex}.portal-file-item{align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);font-size:var(--fs-sm);border-radius:var(--r-md);transition:background .15s;display:flex}.portal-file-item:hover{background:var(--bg-hover)}.portal-file-item__name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-primary);flex:1;overflow:hidden}.portal-file-item__name a{color:var(--accent);text-decoration:none}.portal-file-item__name a:hover{text-decoration:underline}.portal-file-item__date{font-size:var(--fs-xs);color:var(--text-muted);flex-shrink:0}.portal-activity-list{gap:var(--sp-2);flex-direction:column;display:flex}.portal-activity-item{align-items:flex-start;gap:var(--sp-3);padding:var(--sp-2) 0;font-size:var(--fs-sm);border-bottom:1px solid var(--border-subtle);display:flex}.portal-activity-item:last-child{border-bottom:none}.portal-activity-item__text{color:var(--text-secondary);flex:1}.portal-activity-item__time{font-size:var(--fs-xs);color:var(--text-muted);white-space:nowrap;flex-shrink:0}.portal-issue-table{width:100%;font-size:var(--fs-sm);border-collapse:collapse}.portal-issue-table th{text-align:left;font-weight:var(--fw-medium);color:var(--text-muted);font-size:var(--fs-xs);padding:var(--sp-2) var(--sp-2);border-bottom:1px solid var(--border-subtle)}.portal-issue-table td{padding:var(--sp-2) var(--sp-2);border-bottom:1px solid var(--border-subtle);color:var(--text-secondary)}.portal-issue-table tr:last-child td{border-bottom:none}.portal-issue-table a{color:var(--accent);text-decoration:none}.portal-issue-table a:hover{text-decoration:underline}.portal-issue-table tbody tr{transition:background .1s}.portal-issue-table tbody tr:hover{background:var(--bg-hover)}.portal-issue-table__date{white-space:nowrap;font-size:var(--fs-xs);color:var(--text-muted)}.portal-issue-row--blocked{background:var(--pill-red-bg)}.portal-issue-row--blocked:hover{background:color-mix(in srgb, var(--pill-red-bg) 80%, var(--bg-hover))}.portal-issue-blocked{align-items:center;gap:6px;margin-top:4px;display:flex}.portal-issue-blocked__reason{font-size:var(--fs-xs);color:var(--pill-red-fg);font-style:italic}.portal-status-cards{gap:var(--sp-3);margin-top:var(--sp-3);grid-template-columns:repeat(auto-fit,minmax(0,1fr));display:grid}.portal-status-card{gap:var(--sp-2);padding:var(--sp-4) var(--sp-5);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--r-md,6px);cursor:pointer;flex-direction:column;transition:background .15s,border-color .15s,box-shadow .15s;display:flex}.portal-status-card:hover{background:var(--bg-hover);border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.portal-status-card--blocked{border-color:var(--pill-red-fg);background:var(--pill-red-bg)}.portal-status-card--blocked:hover{background:color-mix(in srgb, var(--pill-red-bg) 70%, var(--bg-hover))}.portal-status-card__top{align-items:center;gap:var(--sp-2);display:flex}.portal-status-card__dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.portal-status-card__label{font-size:var(--fs-sm);color:var(--text-secondary,var(--text-primary));font-weight:var(--fw-medium)}.portal-status-card__count{font-size:var(--fs-2xl,28px);font-weight:var(--fw-bold);color:var(--text-primary);line-height:1}@media (max-width:768px){.portal-status-cards{grid-template-columns:1fr 1fr}}.share-link-box{align-items:center;gap:var(--sp-2);padding:var(--sp-3);background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-lg);font-size:var(--fs-sm);display:flex}.share-link-box__url{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-secondary);font-family:var(--font-mono);font-size:var(--fs-xs);flex:1;overflow:hidden}.share-link-box__stats{gap:var(--sp-4);font-size:var(--fs-xs);color:var(--text-muted);display:flex}.portal-toolbar{justify-content:space-between;align-items:center;gap:var(--sp-4);padding:var(--sp-2) 0;margin-bottom:var(--sp-4);display:flex}.portal-toolbar__meta{gap:var(--sp-4);display:flex}.portal-toolbar__sync-info{font-size:var(--fs-xs);color:var(--text-muted)}.portal-toolbar__actions{gap:var(--sp-2);display:flex}.portal-toolbar__actions .btn{align-items:center;gap:var(--sp-1);display:inline-flex}.portal-sync-banner{padding:var(--sp-2) var(--sp-3);background:var(--bg-accent-subtle,#3b82f614);border:1px solid var(--border-accent,#3b82f633);border-radius:var(--r-md);font-size:var(--fs-sm);color:var(--text-secondary);margin-bottom:var(--sp-4)}.portal-report-section__summary{margin-bottom:var(--sp-4)}.portal-report-subsection{margin-top:var(--sp-4)}.portal-report-subsection__title{font-size:var(--fs-md);font-weight:var(--fw-semibold);margin-bottom:var(--sp-2)}.portal-report-item{padding:var(--sp-2) var(--sp-3);margin-bottom:var(--sp-2);background:var(--bg-surface);border-radius:var(--r-md);border:1px solid var(--border-subtle)}.portal-report-item__header{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-1);display:flex}.portal-report-item__heading{font-size:var(--fs-sm);font-weight:var(--fw-medium)}.portal-report-risk{border-left:3px solid var(--blue-500,#3b82f6)}.portal-report-footer{margin-top:var(--sp-4);font-size:var(--fs-xs);color:var(--text-muted)}.report-panel{margin-top:var(--sp-2)}.report-panel__meta{gap:var(--sp-3);font-size:var(--fs-xs);color:var(--text-muted);margin-bottom:var(--sp-2);flex-wrap:wrap;display:flex}.report-panel__revision-notes{padding:var(--sp-2) var(--sp-3);background:var(--bg-warning-subtle,#f59e0b14);border:1px solid var(--border-warning,#f59e0b33);border-radius:var(--r-md);font-size:var(--fs-sm);color:var(--text-secondary);margin-bottom:var(--sp-2)}.report-panel__preview{margin-top:var(--sp-3);padding:var(--sp-3);background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-lg);max-height:500px;overflow-y:auto}.report-panel__section{margin-bottom:var(--sp-4)}.report-panel__section h4{font-size:var(--fs-sm);font-weight:var(--fw-semibold);margin-bottom:var(--sp-2)}.report-panel__item{padding:var(--sp-2);margin-bottom:var(--sp-2);border-radius:var(--r-md);border:1px solid var(--border-subtle)}.report-panel__risk--critical{border-left:3px solid var(--red-500,#ef4444)}.report-panel__risk--warning{border-left:3px solid var(--amber-500,#f59e0b)}.report-panel__risk--info{border-left:3px solid var(--blue-500,#3b82f6)}.report-panel__actions{gap:var(--sp-2);margin-top:var(--sp-3);display:flex}.report-panel__revision-form{margin-top:var(--sp-3)}.portal-metrics-kpi-row{gap:var(--sp-3);margin-bottom:var(--sp-4);grid-template-columns:repeat(3,1fr);display:grid}.portal-metrics-card{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--r-md,8px);padding:var(--sp-3)}.portal-metrics-card__label{font-size:var(--fs-xs);color:var(--text-muted);margin-bottom:var(--sp-1);text-transform:uppercase;letter-spacing:.04em}.portal-metrics-card__value{font-size:var(--fs-xl,1.5rem);font-weight:var(--fw-bold,700);color:var(--text-primary);line-height:1.2}.portal-metrics-card__detail{font-size:var(--fs-xs);color:var(--text-muted);margin-top:var(--sp-1)}.portal-metrics-card__secondary{gap:var(--sp-3);font-size:var(--fs-xs);color:var(--text-secondary,var(--text-muted));margin-top:var(--sp-2);display:flex}.portal-metrics-grid{gap:var(--sp-4);grid-template-columns:repeat(2,1fr);display:grid}.portal-chart-container{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--r-md,8px);padding:var(--sp-3);min-height:300px}.portal-chart-title{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text-primary);margin-bottom:var(--sp-2)}.portal-chart-empty{min-height:200px;color:var(--text-muted);font-size:var(--fs-sm);background:var(--surface-1);border:1px solid var(--border);border-radius:var(--r-md,8px);justify-content:center;align-items:center;display:flex}.portal-metrics-kpi-inline{gap:var(--sp-4);margin-bottom:var(--sp-3);display:flex}.portal-metrics-kpi-big{font-size:var(--fs-xl,1.5rem);font-weight:var(--fw-bold,700);color:var(--text-primary)}.portal-metrics-kpi-med{font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--text-secondary,var(--text-muted))}.portal-metrics-kpi-label{font-size:var(--fs-xs);color:var(--text-muted);margin-left:var(--sp-1)}.portal-person-filter{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-3);font-size:var(--fs-sm);display:flex}.portal-person-filter label{color:var(--text-muted);white-space:nowrap}.portal-person-filter select{border:1px solid var(--border-default);border-radius:var(--r-sm,4px);background:var(--bg-surface);font-size:var(--fs-sm);color:var(--text-primary);min-width:160px;padding:4px 8px}.portal-team-grid{gap:var(--sp-2);flex-direction:column;display:flex}.portal-team-person-card{border:1px solid var(--border-default);border-radius:var(--radius-md,6px);overflow:hidden}.portal-team-person-card__header{padding:var(--sp-3) var(--sp-4);cursor:pointer;grid-template-columns:180px 1fr 32px;align-items:center;transition:background .15s;display:grid}.portal-team-person-card__header:hover{background:var(--bg-hover)}.portal-team-person-card__name{font-weight:600;font-size:var(--fs-sm);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.portal-team-person-card__kpis{gap:var(--sp-4);font-size:var(--fs-xs);color:var(--text-muted);align-items:center;display:flex}.portal-team-person-card__toggle{text-align:center;color:var(--text-muted);font-size:10px}.portal-team-completion-bar{align-items:center;gap:6px;min-width:100px;display:inline-flex}.portal-team-completion-bar__fill{border-radius:3px;flex:1;max-width:60px;height:6px}.portal-team-completion-bar__label{font-size:var(--fs-xs);min-width:32px;font-weight:600}.portal-team-sprint-table{border-collapse:collapse;width:100%;font-size:var(--fs-xs);border-top:1px solid var(--border-default)}.portal-team-sprint-table th{text-align:left;background:var(--bg-subtle);color:var(--text-muted);border-bottom:1px solid var(--border-default);padding:6px 12px;font-weight:600}.portal-team-sprint-table td{border-bottom:1px solid var(--border-light,#eee);padding:6px 12px}.portal-team-sprint-table tr:last-child td{border-bottom:none}@media (max-width:768px){.portal-metrics-kpi-row,.portal-metrics-grid{grid-template-columns:1fr}.portal-team-person-card__header{grid-template-columns:1fr 32px}.portal-team-person-card__kpis{margin-top:var(--sp-1);flex-wrap:wrap;grid-column:1/-1}}@media print{.portal-toolbar,.portal-footer,.portal-sync-banner,.portal-shell nav,.portal-shell button,.portal-shell .btn{display:none!important}.portal-shell{color:#000;background:#fff;min-height:auto}.portal-shell .stat-card{background:#fff;border:1px solid #ddd}.portal-shell .pill{color:#000;background:0 0;border:1px solid #999}.portal-section,.portal-deliverable-group,.portal-pipeline-stages,.portal-report-item,.portal-report-subsection{break-inside:avoid}.portal-issue-table{font-size:10px}.portal-issue-table th,.portal-issue-table td{border:1px solid #ccc}.dash-header{margin-bottom:16px}.portal-file-item:hover{background:0 0}.portal-report-item{background:#fff;border:1px solid #ddd}.portal-report-risk{border-left:3px solid #999}.portal-metrics-grid{grid-template-columns:1fr}.portal-metrics-kpi-row{grid-template-columns:repeat(3,1fr)}.portal-chart-container{background:#fff;border:1px solid #ddd;min-height:auto}.portal-metrics-card{background:#fff;border:1px solid #ddd}.portal-metrics-section,.portal-team-section{break-inside:avoid}.portal-team-person-card{border:1px solid #ddd}.portal-team-person-card__toggle,.portal-person-filter{display:none}}
