@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";:root{--font:"Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--radius:12px;--radius-sm:8px;--radius-lg:16px;--nav-width:240px;--header-height:64px;--ease:cubic-bezier(.22, 1, .36, 1)}:root,[data-theme=dark]{--bg:#0a0a0a;--surface:#111;--surface-raised:#1a1a1a;--border:#1f1f1f;--text:#fff;--text-muted:#666;--text-subtle:#888;--text-faint:#555;--hover:#ffffff0f;--hover-strong:#ffffff1a;--input-bg:#1a1a1a;--accent:#fff;--accent-fg:#0a0a0a;--accent-muted:#ffffff1a;--nav-active-bg:#ffffff14;--nav-active-text:#fff;--shadow-card:0 1px 3px #0006;--shadow-card-hover:0 4px 16px #00000080;--scrollbar:#ffffff2e;--risk-high:#ef4444;--risk-high-bg:#ef444426;--risk-high-border:#ef44444d;--risk-medium:#eab308;--risk-medium-bg:#eab30826;--risk-medium-border:#eab3084d;--risk-low:#22c55e;--risk-low-bg:#22c55e26;--risk-low-border:#22c55e4d;--skeleton-from:#ffffff0d;--skeleton-mid:#ffffff1a;--focus-ring:#fff3;--modal-overlay:#000000a6;--shadow-2xl:0 25px 50px -12px #0000008c;--bg-elevated:var(--surface);--bg-panel:var(--surface);--bg-soft:var(--surface-raised);--bg-hover:var(--hover-strong);--border-strong:#2a2a2a;--text-dim:var(--text-muted);--btn-bg:var(--accent);--btn-text:var(--accent-fg);--btn-hover:#e5e5e5;--nav-bg:var(--surface);--header-bg:var(--bg);--shadow:var(--shadow-card);--shadow-lg:var(--shadow-card-hover);--table-header-bg:transparent;--active-bg:var(--nav-active-bg);--badge-bg:var(--accent-muted);--badge-text:var(--text);--error-bg:var(--surface-raised);--error-text:var(--text);--error-border:var(--border);--font-display:var(--font)}[data-theme=light]{--bg:#f8f8f8;--surface:#fff;--surface-raised:#f3f3f3;--border:#e5e5e5;--text:#0a0a0a;--text-muted:#666;--text-subtle:#888;--text-faint:#aaa;--hover:#0000000a;--hover-strong:#00000012;--input-bg:#fff;--accent:#0a0a0a;--accent-fg:#fff;--accent-muted:#0000000f;--nav-active-bg:#0000000f;--nav-active-text:#0a0a0a;--shadow-card:0 1px 3px #00000014;--shadow-card-hover:0 4px 16px #0000001a;--scrollbar:#00000026;--risk-high:#ef4444;--risk-high-bg:#ef44441a;--risk-high-border:#ef444440;--risk-medium:#d97706;--risk-medium-bg:#d977061a;--risk-medium-border:#d9770640;--risk-low:#16a34a;--risk-low-bg:#16a34a1a;--risk-low-border:#16a34a40;--skeleton-from:#0000000a;--skeleton-mid:#00000014;--focus-ring:#0000001f;--modal-overlay:#00000059;--shadow-2xl:0 25px 50px -12px #0003;--bg-elevated:var(--surface);--bg-panel:var(--surface);--bg-soft:var(--surface-raised);--bg-hover:var(--hover-strong);--border-strong:#d4d4d4;--text-dim:var(--text-muted);--btn-bg:var(--accent);--btn-text:var(--accent-fg);--btn-hover:#333;--nav-bg:var(--surface);--header-bg:var(--bg);--shadow:var(--shadow-card);--shadow-lg:var(--shadow-card-hover);--table-header-bg:transparent;--active-bg:var(--nav-active-bg);--badge-bg:var(--accent-muted);--badge-text:var(--text);--error-bg:var(--surface-raised);--error-text:var(--text);--error-border:var(--border)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes pulseDot{0%,to{opacity:1}50%{opacity:.4}}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-weight:400;transition:background-color .2s,color .2s}h1,h2,h3,h4{font-family:var(--font);letter-spacing:-.01em;color:var(--text);margin:0;font-weight:600}p{margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}img{max-width:100%;display:block}.bg-theme{background:var(--bg)}.bg-surface{background:var(--surface)}.bg-surface-raised{background:var(--surface-raised)}.border-theme{border-color:var(--border)}.text-theme{color:var(--text)}.text-muted{color:var(--text-muted)}.text-subtle{color:var(--text-subtle)}.text-faint{color:var(--text-faint)}.muted{color:var(--text-muted)}.dim{color:var(--text-subtle)}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--scrollbar);border-radius:999px}.page-enter{animation:.25s ease-out both fadeIn}.pulse-dot{animation:2s ease-in-out infinite pulseDot}.app-shell{background:var(--bg);height:100vh;display:flex;overflow:hidden}.app-main{margin-left:var(--nav-width);background:var(--bg);flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.app-main>main{flex:1;overflow:hidden auto}.page{width:100%;max-width:1200px;margin:0 auto;padding:1.5rem;animation:.25s ease-out both fadeIn}.page-wide{max-width:1100px}.page-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;display:flex}.page-header h1{font-size:1rem;font-weight:600;line-height:1.25}.page-header p{color:var(--text-muted);margin-top:.35rem;font-size:.875rem}.page-breadcrumb{color:var(--text-muted);margin-bottom:.25rem;font-size:.75rem}.stack{flex-direction:column;gap:.75rem;display:flex}.stack-sm{flex-direction:column;gap:.5rem;display:flex}.row{align-items:center;gap:.75rem;display:flex}.grid-2{gap:1rem;display:grid}@media (width>=768px){.grid-2{grid-template-columns:1fr 1fr}}.space-y-4>*+*{margin-top:1rem}.space-y-6>*+*{margin-top:1.5rem}.sidebar{border-right:1px solid var(--border);background:var(--surface);flex-direction:column;height:100vh;display:none;overflow:hidden}@media (width>=960px){.sidebar:not(.sidebar-drawer){width:var(--nav-width);z-index:30;height:100vh;display:flex;position:fixed;top:0;left:0}}.sidebar-brand{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;height:7rem;padding:0 1.25rem;display:flex}.sidebar-brand .login-logo-row{align-items:center;gap:.75rem}.sidebar-logo{object-fit:contain;background:var(--surface-raised);border:1px solid var(--border);border-radius:16px;width:40px;height:40px;padding:4px}.sidebar-brand-name{align-items:center;gap:.4rem;font-size:.875rem;font-weight:700;display:flex}.sidebar-beta{text-transform:uppercase;letter-spacing:.06em;background:var(--accent-muted);color:var(--text-subtle);border:1px solid var(--border);border-radius:999px;padding:.1rem .35rem;font-size:9px;font-weight:600}.sidebar-brand-role{color:var(--text-muted);margin-top:2px;font-size:.75rem}.sidebar-nav{flex-direction:column;flex:1;gap:.5rem;min-height:0;padding:1rem .75rem;display:flex;overflow-y:auto}.sidebar-section-label{text-transform:uppercase;letter-spacing:.1em;color:var(--text-faint);padding:0 .75rem .5rem;font-size:10px;font-weight:600}.sidebar-link{border-radius:var(--radius);color:var(--text-muted);align-items:center;gap:.75rem;padding:.625rem .75rem;font-size:.875rem;font-weight:500;transition:background .15s,color .15s;display:flex;position:relative}.sidebar-link svg{flex-shrink:0;width:16px;height:16px}.sidebar-link .nav-chevron{opacity:0;color:var(--text-faint);margin-left:auto;transition:opacity .15s}.sidebar-link:hover{background:var(--hover);color:var(--text)}.sidebar-link:hover .nav-chevron{opacity:1}.sidebar-link.active{background:var(--nav-active-bg);color:var(--nav-active-text);font-weight:600}.sidebar-chat-badge{color:#fff;background:#ef4444;border-radius:999px;flex-shrink:0;place-items:center;min-width:18px;height:18px;padding:0 4px;font-size:11px;font-weight:700;line-height:1;display:inline-grid}.sidebar-footer{border-top:1px solid var(--border);background:var(--surface);flex-shrink:0;gap:8px;margin-top:auto;padding:.75rem;display:grid}.sidebar-user{border-radius:var(--radius-sm);align-items:center;gap:.65rem;padding:.5rem;transition:background .15s;display:flex;position:relative}.sidebar-user:hover{background:var(--hover)}.sidebar-avatar{background:var(--surface-raised);border:1px solid var(--border);width:32px;height:32px;color:var(--text-subtle);border-radius:999px;flex-shrink:0;place-items:center;font-size:.7rem;font-weight:600;display:grid}.sidebar-user-meta{flex:1;min-width:0}.sidebar-user-name{white-space:nowrap;text-overflow:ellipsis;font-size:.8125rem;font-weight:600;overflow:hidden}.sidebar-user-email{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.6875rem;overflow:hidden}.sidebar-logout{opacity:0;flex-shrink:0;transition:opacity .15s}.sidebar-user:hover .sidebar-logout{opacity:1}.app-header{width:100%;height:var(--header-height);min-height:var(--header-height);border-bottom:1px solid var(--border);background:var(--bg);z-index:20;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:0 1.5rem;display:flex;position:sticky;top:0}.app-header-left{flex-direction:column;gap:2px;min-width:0;display:flex}.app-header-title{white-space:nowrap;text-overflow:ellipsis;font-size:1rem;font-weight:600;line-height:1.25;overflow:hidden}.app-header-actions{align-items:center;gap:8px;margin-left:auto;display:flex}.app-header-actions .btn-icon,.notif-wrap{position:relative}.notif-badge{background:var(--accent);min-width:18px;height:18px;color:var(--accent-fg);border-radius:999px;place-items:center;padding:0 4px;font-size:11px;font-weight:700;display:inline-grid;position:absolute;top:-4px;right:-4px}.notif-dropdown{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:min(340px,86vw);max-height:360px;box-shadow:var(--shadow-card-hover);z-index:30;animation:.2s ease-out both slideUp;position:absolute;top:calc(100% + 8px);right:0;overflow:auto}.notif-item{text-align:left;border:none;border-bottom:1px solid var(--border);width:100%;color:var(--text);cursor:pointer;background:0 0;align-items:flex-start;gap:.5rem;padding:.75rem 1rem;transition:background .15s;display:flex}.notif-item:hover{background:var(--hover)}.notif-item.unread{background:var(--nav-active-bg)}.notif-item.unread:hover{background:var(--hover-strong)}.panel,.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card)}.panel{padding:1.5rem}.panel-hover,.card-hover{transition:box-shadow .2s,transform .2s}.panel-hover:hover,.card-hover:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-2px)}.card-header{border-bottom:1px solid var(--border);padding:1rem 1.5rem}.card-header h2,.card-title{font-size:.875rem;font-weight:600}.card-body{padding:1.5rem}.icon-box{border-radius:var(--radius-sm);background:var(--surface-raised);border:1px solid var(--border);width:2rem;height:2rem;color:var(--text-subtle);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.icon-box-lg{width:2.5rem;height:2.5rem}.empty-state{text-align:center;color:var(--text-muted);flex-direction:column;align-items:center;padding:4rem 1rem;display:flex}.empty-state-icon{background:var(--surface-raised);border:1px solid var(--border);width:3rem;height:3rem;color:var(--text-subtle);border-radius:999px;place-items:center;margin-bottom:.75rem;display:grid}.empty-state h3{color:var(--text);margin-bottom:.35rem;font-size:.875rem;font-weight:500}.empty-state p{max-width:20rem;color:var(--text-muted);font-size:.75rem;line-height:1.5}.skeleton{background:linear-gradient(90deg, var(--skeleton-from) 25%, var(--skeleton-mid) 50%, var(--skeleton-from) 75%);background-size:200% 100%;border-radius:6px;height:14px;animation:1.6s linear infinite shimmer}.skeleton-text{flex-direction:column;gap:.5rem;display:flex}.skeleton-text .skeleton{height:1rem}.skeleton-text .skeleton:last-child{width:75%}.stat-card-skeleton{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-card);flex-direction:column;gap:.75rem;padding:1.15rem;display:flex}.stat-card-skeleton .skeleton-icon{border-radius:var(--radius-sm);width:2rem;height:2rem}.stat-card-skeleton .skeleton-value{width:40%;height:2rem}.stat-card-skeleton .skeleton-label{width:55%;height:.75rem}.table-skeleton{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card);overflow:hidden}.table-skeleton-row{border-bottom:1px solid var(--border);align-items:center;gap:1.5rem;padding:1rem 1.5rem;display:flex}.table-skeleton-row:last-child{border-bottom:none}.chart-skeleton{align-items:flex-end;gap:.75rem;height:160px;padding:1rem;display:flex}.chart-skeleton .skeleton{border-radius:6px 6px 0 0;flex:1}.dash-charts{gap:1rem;display:grid}@media (width>=900px){.dash-charts{grid-template-columns:1.2fr 1fr}}.dash-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}@media (width>=640px){.dash-shortcuts{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=960px){.dash-shortcuts{grid-template-columns:repeat(4,minmax(0,1fr))}}.dash-shortcut{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-card);flex-direction:column;gap:.65rem;min-height:108px;padding:1rem 1.1rem;transition:box-shadow .2s,transform .2s,background .15s;display:flex}.dash-shortcut:hover{box-shadow:var(--shadow-card-hover);background:var(--hover);transform:translateY(-2px)}.dash-shortcut-top{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.dash-shortcut-label{color:var(--text);font-size:.8125rem;font-weight:600}.dash-shortcut-meta{color:var(--text-muted);font-size:.6875rem;line-height:1.4}.dash-shortcut-count{font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:1.25rem;font-weight:700}.bar-chart{align-items:flex-end;gap:.65rem;height:180px;padding:.5rem .25rem 0;display:flex}.bar-chart-col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:.5rem;min-width:0;height:100%;display:flex}.bar-chart-track{flex:1;justify-content:center;align-items:flex-end;width:100%;display:flex}.bar-chart-fill{background:var(--accent);opacity:.92;border-radius:6px 6px 2px 2px;width:100%;max-width:36px;min-height:4px;transition:height .45s}.bar-chart-fill.is-muted{background:var(--text-muted);opacity:.45}.bar-chart-fill.is-warn{background:var(--risk-medium)}.bar-chart-fill.is-danger{background:var(--risk-high)}.bar-chart-fill.is-success{background:var(--risk-low)}.bar-chart-value{font-variant-numeric:tabular-nums;color:var(--text-subtle);font-size:.6875rem;font-weight:600}.bar-chart-label{color:var(--text-muted);text-align:center;white-space:nowrap;text-overflow:ellipsis;width:100%;font-size:.625rem;font-weight:500;overflow:hidden}.h-bars{flex-direction:column;gap:.85rem;display:flex}.h-bar-row{grid-template-columns:88px 1fr 28px;align-items:center;gap:.65rem;display:grid}.h-bar-label{color:var(--text-subtle);text-transform:capitalize;white-space:nowrap;text-overflow:ellipsis;font-size:.75rem;font-weight:500;overflow:hidden}.h-bar-track{background:var(--surface-raised);border:1px solid var(--border);border-radius:999px;height:8px;overflow:hidden}.h-bar-fill{background:var(--accent);border-radius:999px;height:100%;transition:width .45s}.h-bar-count{font-variant-numeric:tabular-nums;color:var(--text-muted);text-align:right;font-size:.75rem;font-weight:600}.donut-wrap{flex-wrap:wrap;align-items:center;gap:1.25rem;display:flex}.donut{border-radius:999px;flex-shrink:0;place-items:center;width:132px;height:132px;display:grid;position:relative}.donut-hole{background:var(--surface);text-align:center;z-index:1;border-radius:999px;place-items:center;width:78px;height:78px;display:grid}.donut-hole strong{font-variant-numeric:tabular-nums;font-size:1.25rem;font-weight:700;line-height:1;display:block}.donut-hole span{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:.625rem;font-weight:600}.donut-legend{flex-direction:column;flex:1;gap:.55rem;min-width:140px;display:flex}.donut-legend-item{color:var(--text-subtle);align-items:center;gap:.5rem;font-size:.75rem;display:flex}.donut-swatch{border-radius:999px;flex-shrink:0;width:8px;height:8px}.dash-split{gap:1rem;display:grid}@media (width>=900px){.dash-split{grid-template-columns:1fr 1fr 1fr}}.activity-list{flex-direction:column;display:flex}.activity-item{border-bottom:1px solid var(--border);align-items:flex-start;gap:.75rem;padding:.85rem 1.25rem;transition:background .15s;display:flex}.activity-item:last-child{border-bottom:none}.activity-item:hover{background:var(--hover)}.activity-dot{background:var(--accent);border-radius:999px;flex-shrink:0;width:8px;height:8px;margin-top:5px}.activity-dot.warn{background:var(--risk-medium)}.activity-dot.danger{background:var(--risk-high)}.activity-dot.success{background:var(--risk-low)}.activity-dot.muted{background:var(--text-faint)}.form-grid{gap:1rem;display:grid}.field{flex-direction:column;gap:0;display:flex}.field label{color:var(--text);margin-bottom:.375rem;font-size:.875rem;font-weight:500}.field input,.field select,.field textarea{background:var(--input-bg);border:1px solid var(--border);border-radius:var(--radius-sm);outline:none;padding:.625rem .875rem;font-size:.875rem;transition:border-color .15s,box-shadow .15s}.field input::placeholder,.field textarea::placeholder{color:var(--text-faint)}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--text-muted);box-shadow:0 0 0 3px var(--focus-ring)}.staff-picker{position:relative}.staff-picker-trigger{background:var(--input-bg);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text);text-align:left;cursor:pointer;justify-content:space-between;align-items:center;gap:.5rem;padding:.625rem .875rem;font-size:.875rem;transition:border-color .15s,box-shadow .15s;display:flex}.staff-picker-trigger:hover,.staff-picker-trigger.open,.staff-picker-trigger:focus-visible{border-color:var(--text-muted);box-shadow:0 0 0 3px var(--focus-ring);outline:none}.staff-picker-placeholder{color:var(--text-faint)}.staff-picker-chevron{color:var(--text-muted);flex-shrink:0;transition:transform .15s}.staff-picker-chevron.open{transform:rotate(180deg)}.staff-picker-menu{z-index:40;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);max-height:280px;box-shadow:var(--shadow-card-hover);padding:.35rem;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow:auto}.staff-picker-empty{color:var(--text-muted);padding:.75rem .875rem;font-size:.8125rem}.staff-picker-category{width:100%;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:6px;align-items:center;gap:.45rem;padding:.55rem .65rem;font-size:.8125rem;font-weight:600;display:flex}.staff-picker-category:hover{background:var(--hover)}.staff-picker-count{color:var(--text-muted);margin-left:auto;font-size:.7rem;font-weight:500}.staff-picker-items{padding:0 0 .25rem .35rem}.staff-picker-item{width:100%;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:6px;justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem .65rem .5rem 1.4rem;font-size:.8125rem;display:flex}.staff-picker-item:hover{background:var(--hover)}.staff-picker-item.selected{background:var(--nav-active-bg);font-weight:500}.field textarea{resize:vertical;min-height:96px}.btn{border-radius:var(--radius-sm);height:2.25rem;color:var(--text);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:0 1rem;font-size:.875rem;font-weight:500;transition:all .15s;display:inline-flex}.btn:hover:not(:disabled){opacity:.9}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}.btn-secondary{background:var(--accent-muted);color:var(--text);border-color:var(--border)}.btn-outline{background:var(--surface);color:var(--text);border-color:var(--border);box-shadow:var(--shadow-card)}.btn-ghost{color:var(--text-muted);background:0 0;border-color:#0000}.btn-ghost:hover:not(:disabled){background:var(--hover);color:var(--text);opacity:1}.btn-danger{color:#fff;background:#dc2626;border-color:#dc2626}.btn-sm{height:2rem;padding:0 .75rem;font-size:.75rem}.btn-lg{height:2.5rem;padding:0 1.25rem;font-size:.875rem}.btn-icon{border-radius:var(--radius-sm);border:1px solid var(--border);width:2.25rem;height:2.25rem;color:var(--text-muted);background:0 0;padding:0}.btn-icon:hover{background:var(--hover);color:var(--text);opacity:1}.tag,.badge{border:1px solid var(--border);background:var(--accent-muted);color:var(--text);white-space:nowrap;border-radius:999px;align-items:center;gap:.35rem;padding:.125rem .625rem;font-size:.75rem;font-weight:500;display:inline-flex}.badge-dot{background:currentColor;border-radius:999px;flex-shrink:0;width:6px;height:6px}.badge-default,.tag{background:var(--accent-muted);color:var(--text);border-color:var(--border)}.badge-success,.tag-ON_TIME,.tag-COMPLETED,.tag-approved{background:var(--risk-low-bg);color:var(--risk-low);border-color:var(--risk-low-border)}.badge-warning,.tag-pending{background:var(--risk-medium-bg);color:var(--risk-medium);border-color:var(--risk-medium-border)}.badge-danger,.tag-COMPLETED_LATE,.tag-DELAYED,.tag-rejected{background:var(--risk-high-bg);color:var(--risk-high);border-color:var(--risk-high-border)}.badge-info{background:var(--accent-muted);color:var(--text-subtle);border-color:var(--border)}.badge-purple{color:#a855f7;background:#a855f71f;border-color:#a855f740}.badge-orange{color:#f97316;background:#f973161f;border-color:#f9731640}.tag-NOT_STARTED{color:var(--text-faint);border-color:var(--border);background:0 0}.tag-IN_PROGRESS{color:#60a5fa;background:#3b82f626;border-color:#3b82f659}.tag-WAITING_APPROVAL,.tag-NEEDS_REVIEW{color:#fb923c;background:#f9731624;border-color:#f9731659}.tag-ON_HOLD,.tag-DEFERRED{color:#c084fc;background:#a855f724;border-color:#a855f74d}.tag-BLOCKED,.tag-CANCELLED{background:var(--risk-high-bg);color:var(--risk-high);border-color:var(--risk-high-border)}.milestone-card{background:var(--surface);border:1.5px solid var(--border);transition:border-color .2s var(--ease);position:relative;overflow:hidden}.milestone-card--ON_TIME,.milestone-card--COMPLETED{border-color:var(--risk-low)}.milestone-card--IN_PROGRESS{border-color:#3b82f6}.milestone-card--WAITING_APPROVAL,.milestone-card--NEEDS_REVIEW{border-color:#f97316}.milestone-card--DELAYED,.milestone-card--COMPLETED_LATE,.milestone-card--BLOCKED{border-color:var(--risk-high)}.milestone-card--ON_HOLD,.milestone-card--DEFERRED{border-color:#a855f7}.milestone-card--CANCELLED{opacity:.85;border-color:#737373}.milestone-card--NOT_STARTED{border-color:var(--border-strong)}.milestone-card--due-soon:not(.milestone-card--DELAYED):not(.milestone-card--COMPLETED):not(.milestone-card--ON_TIME):not(.milestone-card--CANCELLED):not(.milestone-card--COMPLETED_LATE):not(.milestone-card--BLOCKED){border-color:var(--risk-medium)}.milestone-due-chip{letter-spacing:.02em;background:0 0;border-radius:999px;align-items:center;gap:.3rem;padding:.15rem .5rem;font-size:.6875rem;font-weight:600;display:inline-flex}.milestone-due-chip--ok{color:var(--risk-low);border:1px solid var(--risk-low)}.milestone-due-chip--soon{color:var(--risk-medium);border:1px solid var(--risk-medium)}.milestone-due-chip--late{color:var(--risk-high);border:1px solid var(--risk-high)}.milestone-status-select{font-weight:500;background:var(--input-bg)!important}.milestone-status-select--pending{color:var(--text-subtle);border-color:var(--border)!important}.milestone-status-select--in_progress{color:#60a5fa;border-color:#3b82f6!important}.milestone-status-select--waiting_for_approval,.milestone-status-select--needs_review{color:#fb923c;border-color:#f97316!important}.milestone-status-select--on_hold,.milestone-status-select--deferred{color:#c084fc;border-color:#a855f7!important}.milestone-status-select--blocked{color:var(--risk-high);border-color:var(--risk-high)!important}.milestone-status-select--completed{color:var(--risk-low);border-color:var(--risk-low)!important}.milestone-status-select--cancelled{color:#a3a3a3;border-color:#737373!important}[data-theme=light] .milestone-status-select--in_progress{color:#2563eb}[data-theme=light] .milestone-status-select--waiting_for_approval,[data-theme=light] .milestone-status-select--needs_review{color:#c2410c}[data-theme=light] .milestone-status-select--on_hold,[data-theme=light] .milestone-status-select--deferred{color:#7e22ce}.error-banner{background:var(--risk-high-bg);border:1px solid var(--risk-high-border);color:var(--risk-high);border-radius:var(--radius-sm);padding:.75rem .9rem;font-size:.875rem}.list-item{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-card);justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.15rem;transition:background .15s,box-shadow .2s,transform .2s;display:flex}.list-item:hover{background:var(--hover);box-shadow:var(--shadow-card-hover)}.list-item.active{background:var(--nav-active-bg);border-color:var(--border)}.chat-unread-badge{color:#fff;background:#ef4444;border-radius:999px;flex-shrink:0;place-items:center;min-width:18px;height:18px;padding:0 5px;font-size:.65rem;font-weight:700;line-height:1;display:inline-grid}.list-item.group .row-actions{opacity:0;transition:opacity .15s}.list-item.group:hover .row-actions{opacity:1}.table-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card);overflow:hidden}.table-scroll{overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:.875rem}.data-table thead th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);border-bottom:1px solid var(--border);white-space:nowrap;background:0 0;padding:.75rem 1.5rem;font-size:.75rem;font-weight:600}.data-table tbody td{border-bottom:1px solid var(--border);color:var(--text);vertical-align:middle;padding:.875rem 1.5rem;font-size:.875rem}.data-table tbody tr{transition:background .15s}.data-table tbody tr:hover{background:var(--hover)}.data-table tbody tr.group .row-actions{opacity:0;transition:opacity .15s}.data-table tbody tr.group:hover .row-actions{opacity:1}.data-table tbody tr:last-child td{border-bottom:none}.table-pagination{border-top:1px solid var(--border);color:var(--text-muted);justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.5rem;font-size:.8125rem;display:flex}.pagination-btns{align-items:center;gap:.35rem;display:flex}.pagination-btn{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);width:32px;height:32px;color:var(--text-muted);place-items:center;font-size:.75rem;font-weight:500;transition:all .15s;display:inline-grid}.pagination-btn:hover:not(:disabled):not(.active){background:var(--hover);color:var(--text)}.pagination-btn.active{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}.pagination-btn:disabled{opacity:.4;cursor:not-allowed}.mono-id{color:var(--text-subtle);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.75rem}.modal-backdrop{background:var(--modal-overlay);-webkit-backdrop-filter:blur(4px);z-index:100;padding:1rem;padding-top:calc(var(--header-height) + 1rem);justify-content:center;align-items:center;animation:.2s ease-out both fadeIn;display:flex;position:fixed;inset:0;overflow:hidden}.modal{width:min(520px,100%);max-height:min(85vh, calc(100vh - var(--header-height) - 2rem));background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-2xl);flex-direction:column;animation:.3s ease-out both slideUp;display:flex;overflow:hidden}.modal-lg{width:min(640px,100%)}.modal-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:1rem;padding:1rem 1.5rem;display:flex}.modal-header h2{font-size:.875rem;font-weight:600}.modal-header p{color:var(--text-muted);margin-top:.25rem;font-size:.75rem}.modal-close{border-radius:var(--radius-sm);width:1.75rem;height:1.75rem;color:var(--text-muted);background:0 0;border:none;flex-shrink:0;place-items:center;transition:background .15s,color .15s;display:inline-grid}.modal-close:hover{background:var(--hover);color:var(--text)}.modal-body{flex:auto;min-height:0;padding:1.5rem;overflow-y:auto}.modal-footer{border-top:1px solid var(--border);flex-shrink:0;justify-content:flex-end;gap:.5rem;padding:1rem 1.5rem;display:flex}.tabs{border-bottom:1px solid var(--border);gap:.25rem;margin:1rem 0;padding-bottom:.35rem;display:flex}.tab{color:var(--text-muted);border-radius:var(--radius-sm);background:0 0;border:none;padding:.5rem .85rem;font-size:.875rem;font-weight:500;transition:background .15s,color .15s}.tab:hover{color:var(--text);background:var(--hover)}.tab.active{color:var(--nav-active-text);background:var(--nav-active-bg);font-weight:600}.three-pane{gap:0;min-height:calc(100vh - 8rem);display:grid}@media (width>=960px){.three-pane{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-card);grid-template-columns:300px 1fr;min-height:calc(100vh - 9rem);overflow:hidden}}.pane-list{border-bottom:1px solid var(--border);max-height:40vh;overflow:auto}@media (width>=960px){.pane-list{border-bottom:none;border-right:1px solid var(--border);max-height:none}}.pane-detail{flex-direction:column;min-height:50vh;display:flex}.stat-grid{grid-template-columns:repeat(1,minmax(0,1fr));gap:1rem;display:grid}@media (width>=640px){.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=768px){.stat-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.stat{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-card);padding:1.25rem;transition:box-shadow .2s,transform .2s}.stat:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-2px)}.stat .label{color:var(--text-muted);align-items:center;gap:.4rem;margin-bottom:.5rem;font-size:.75rem;font-weight:500;display:flex}.stat .value{font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:1.875rem;font-weight:700;line-height:1.1}.section-title{font-size:1.125rem;font-weight:600}.mobile-bottom{border-top:1px solid var(--border);background:var(--surface);z-index:15;display:grid;position:sticky;bottom:0}.mobile-bottom-link{color:var(--text-faint);flex-direction:column;align-items:center;gap:4px;padding:.55rem .2rem;font-size:.65rem;font-weight:500;display:flex}.mobile-bottom-link.active{color:var(--text);font-weight:600}.sidebar-drawer{z-index:41;width:240px;height:100%;position:fixed;top:0;left:0;display:flex!important}@media (width>=960px){.mobile-only,.mobile-bottom,.sidebar-drawer{display:none!important}}@media (width<=959px){.app-main{margin-left:0}.sidebar:not(.sidebar-drawer){display:none}}.login-page{background:var(--bg);grid-template-columns:1fr;min-height:100vh;display:grid}@media (width>=900px){.login-page{grid-template-columns:1fr 1fr;min-height:100vh}}.login-brand{background:var(--bg);border-right:1px solid var(--border);justify-content:center;align-items:center;min-height:100vh;padding:2.5rem 3rem;display:none}@media (width>=900px){.login-brand{display:flex}}.login-brand-inner{flex-direction:column;gap:2.5rem;width:min(480px,100%);display:flex}.login-logo-row{align-items:center;gap:12px;display:flex}.login-logo{object-fit:contain;border-radius:0;width:auto;height:48px}.login-brand-title{font-size:.875rem;font-weight:700}.login-brand-sub{color:var(--text-muted);font-size:.75rem}.login-hero h1{margin-bottom:.75rem;font-size:clamp(1.75rem,3vw,2.25rem);font-weight:600;line-height:1.2}.login-hero p{color:var(--text-muted);font-size:.95rem;line-height:1.65}.login-features{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.login-feature-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-card);align-items:flex-start;gap:.75rem;padding:1rem 1.1rem;transition:box-shadow .2s,transform .2s;display:flex}.login-feature-card:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-2px)}.login-feature-icon{border-radius:var(--radius-sm);background:var(--surface-raised);border:1px solid var(--border);width:36px;height:36px;color:var(--text-muted);flex-shrink:0;justify-content:center;align-items:center;display:flex}.login-feature-card strong{margin-bottom:2px;font-size:.875rem;font-weight:600;display:block}.login-feature-card span{color:var(--text-muted);font-size:.75rem;line-height:1.4}.login-form-side{background:var(--bg);flex-direction:column;justify-content:center;align-items:center;width:100%;min-height:100vh;padding:2rem 1.5rem;display:flex;position:relative}.login-theme-toggle{position:absolute;top:1.25rem;right:1.25rem}.login-form-wrap{width:min(420px,100%)}.login-mobile-brand{align-items:center;gap:12px;margin-bottom:1.75rem;display:flex}@media (width>=900px){.login-mobile-brand{display:none}}.login-form-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-card-hover);padding:2rem}.login-form-header{margin-bottom:1.75rem}.login-form-header h2{margin-bottom:.35rem;font-size:1.125rem;font-weight:600}.login-form-header p{color:var(--text-muted);font-size:.875rem}.login-form-footer{text-align:center;border-top:1px solid var(--border);color:var(--text-faint);margin-top:1.75rem;padding-top:1.25rem;font-size:.75rem}.login-input-wrap{position:relative}.login-input-wrap input{background:var(--input-bg);border:1px solid var(--border);border-radius:var(--radius-sm);outline:none;width:100%;padding:.625rem 2.5rem;font-size:.875rem;transition:border-color .15s,box-shadow .15s}.login-input-wrap input::placeholder{color:var(--text-faint)}.login-input-wrap input:focus{border-color:var(--text-muted);box-shadow:0 0 0 3px var(--focus-ring)}.login-input-icon{color:var(--text-faint);pointer-events:none;position:absolute;top:50%;left:.85rem;transform:translateY(-50%)}.login-password-toggle{width:28px;height:28px;color:var(--text-faint);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:0;transition:color .15s,background .15s;display:flex;position:absolute;top:50%;right:.65rem;transform:translateY(-50%)}.login-password-toggle:hover{color:var(--text);background:var(--hover)}.login-submit{width:100%;height:2.5rem;margin-top:.25rem}
