@import url("https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css") layer(bootstrap);.roadmap-gantt-wrapper{background:var(--surface-card);color:var(--ink-2);position:relative}.roadmap-gantt-wrapper [class*=Tooltip],.roadmap-gantt-wrapper [class*=tooltip]{z-index:100!important;pointer-events:none}.roadmap-gantt-wrapper [class*=barProgressHandle],.roadmap-gantt-wrapper [class*=barWrapper],.roadmap-gantt-wrapper g[class*=bar]{cursor:pointer}.roadmap-gantt-wrapper,.roadmap-gantt-wrapper>*,.roadmap-gantt-wrapper>*>*,.roadmap-gantt-wrapper>*>*>*{background-color:transparent}.roadmap-gantt-wrapper svg,.roadmap-gantt-wrapper>div:first-child{background:var(--surface-card)!important}.roadmap-gantt-wrapper svg>g>rect:not([style*=fill]),.roadmap-gantt-wrapper svg>rect{fill:var(--surface-card)!important}.roadmap-gantt-wrapper svg g[class*=calendar] rect{fill:var(--surface-subtle)!important}.roadmap-gantt-wrapper svg g[class*=calendar] text{fill:var(--text-body)!important}.roadmap-gantt-wrapper svg line{stroke:var(--line)!important}.roadmap-gantt-wrapper text{fill:var(--ink-2)}.roadmap-gantt-wrapper ._3zRJQ{font-weight:700!important;fill:var(--surface-card)!important}.roadmap-gantt-wrapper ._3KcaM{font-weight:600!important;fill:var(--ink-2)!important}.roadmap-gantt-wrapper svg g[class*=gridRow] rect{fill:var(--surface-card)!important}.roadmap-gantt-wrapper svg g[class*=gridRowLine] line{stroke:var(--surface-muted)!important}.roadmap-gantt-wrapper svg g.rows rect{fill:var(--surface-card)!important}.roadmap-gantt-wrapper svg rect._31ERP[fill^="rgb("]{stroke:var(--danger);stroke-width:2px}:root{--ink:#0f172a;--ink-2:#1e293b;--ink-3:#334155;--text-body:#475569;--text-muted:#64748b;--text-faint:#94a3b8;--surface-card:#fff;--surface-subtle:#f8fafc;--surface-muted:#f1f5f9;--line:#e2e8f0;--line-strong:#cbd5e1;--brand-strong:#4338ca;--accent:#4f46e5;--accent-2:#6366f1;--brand-bg:#eef2ff;--brand-bg-2:#e0e7ff;--info:#2563eb;--info-2:#0ea5e9;--info-bg:#eff6ff;--info-line:#bfdbfe;--danger:#dc2626;--danger-2:#ef4444;--danger-strong:#b91c1c;--danger-bg:#fee2e2;--danger-bg-soft:#fef2f2;--danger-line:#fecaca;--success:#16a34a;--success-2:#059669;--success-3:#10b981;--success-strong:#15803d;--success-bg:#dcfce7;--success-bg-2:#d1fae5;--success-line:#bbf7d0;--warning:#f59e0b;--warning-2:#d97706;--warning-strong:#92400e;--warning-bg:#fef3c7;--warning-line:#fde68a;--orange:#ea580c;--violet:#7c3aed;--risk-low:#30a46c;--risk-low-text:#1d7a4e;--risk-low-bg:#ebf8f1;--risk-med:#d9a21b;--risk-med-text:#8a5a00;--risk-med-bg:#fff6e5;--risk-high:#f07a3a;--risk-high-text:#b4471a;--risk-high-bg:#fff1e8;--risk-crit:#e5484d;--risk-crit-text:#c2292e;--risk-crit-bg:#fff0f0;--op-status-progress-fill:#9775fa;--op-status-progress-chip-bg:#f3eefe;--op-status-progress-chip-text:#7359be;--op-status-progress-dot:#9775fa;--op-status-progress-label-text:var(--ink);--op-status-progress-progress:hsla(0,0%,100%,.35);--op-status-progress-progress-selected:hsla(0,0%,100%,.4);--op-status-done-fill:#12b886;--op-status-done-chip-bg:#e3f6f0;--op-status-done-chip-text:#0c7b5a;--op-status-done-dot:#12b886;--op-status-done-label-text:var(--ink);--op-status-done-progress:hsla(0,0%,100%,.35);--op-status-done-progress-selected:hsla(0,0%,100%,.4);--op-status-pending-fill:#faa2c1;--op-status-pending-chip-bg:#fef4f8;--op-status-pending-chip-text:#915e70;--op-status-pending-dot:#eb98b5;--op-status-pending-label-text:var(--ink);--op-status-pending-progress:rgba(0,0,0,.18);--op-status-pending-progress-selected:rgba(0,0,0,.22);--op-status-approved-fill:#35c53f;--op-status-approved-chip-bg:#e7f8e8;--op-status-approved-chip-text:#227e28;--op-status-approved-dot:#35c53f;--op-status-approved-label-text:var(--ink);--op-status-approved-progress:hsla(0,0%,100%,.35);--op-status-approved-progress-selected:hsla(0,0%,100%,.4);--op-status-open-fill:#1098ad;--op-status-open-chip-bg:#e2f3f5;--op-status-open-chip-text:#0d7889;--op-status-open-dot:#1098ad;--op-status-open-label-text:var(--ink);--op-status-open-progress:hsla(0,0%,100%,.35);--op-status-open-progress-selected:hsla(0,0%,100%,.4);--op-status-not-started-fill:#a5d8ff;--op-status-not-started-chip-bg:#f4faff;--op-status-not-started-chip-text:#567085;--op-status-not-started-dot:#8cb8d9;--op-status-not-started-label-text:var(--ink);--op-status-not-started-progress:rgba(0,0,0,.18);--op-status-not-started-progress-selected:rgba(0,0,0,.22);--op-status-blocked-fill:#fc0;--op-status-blocked-chip-bg:#fff9e0;--op-status-blocked-chip-text:#856a00;--op-status-blocked-dot:#d9ad00;--op-status-blocked-label-text:var(--ink);--op-status-blocked-progress:rgba(0,0,0,.18);--op-status-blocked-progress-selected:rgba(0,0,0,.22);--op-status-closed-fill:#dee2e6;--op-status-closed-chip-bg:#fbfcfc;--op-status-closed-chip-text:#6d6f71;--op-status-closed-dot:#afb3b6;--op-status-closed-label-text:var(--ink);--op-status-closed-progress:rgba(0,0,0,.18);--op-status-closed-progress-selected:rgba(0,0,0,.22);--op-status-on-hold-fill:#ffc078;--op-status-on-hold-chip-bg:#fff7ef;--op-status-on-hold-chip-text:#8c6a42;--op-status-on-hold-dot:#d9a366;--op-status-on-hold-label-text:var(--ink);--op-status-on-hold-progress:rgba(0,0,0,.18);--op-status-on-hold-progress-selected:rgba(0,0,0,.22);--op-status-rejected-fill:#ffa8a8;--op-status-rejected-chip-bg:#fff5f5;--op-status-rejected-chip-text:#946161;--op-status-rejected-dot:#e89999;--op-status-rejected-label-text:var(--ink);--op-status-rejected-progress:rgba(0,0,0,.18);--op-status-rejected-progress-selected:rgba(0,0,0,.22);--op-status-testing-fill:#63e6be;--op-status-testing-chip-bg:#ecfcf7;--op-status-testing-chip-text:#367e68;--op-status-testing-dot:#54c3a1;--op-status-testing-label-text:var(--ink);--op-status-testing-progress:rgba(0,0,0,.18);--op-status-testing-progress-selected:rgba(0,0,0,.22);--op-status-planning-fill:#ffec99;--op-status-planning-chip-bg:#fffdf3;--op-status-planning-chip-text:#7d744b;--op-status-planning-dot:#c2b374;--op-status-planning-label-text:var(--ink);--op-status-planning-progress:rgba(0,0,0,.18);--op-status-planning-progress-selected:rgba(0,0,0,.22);--op-status-assignment-fill:#ffd43b;--op-status-assignment-chip-bg:#fffae7;--op-status-assignment-chip-text:#856e1f;--op-status-assignment-dot:#d1ae30;--op-status-assignment-label-text:var(--ink);--op-status-assignment-progress:rgba(0,0,0,.18);--op-status-assignment-progress-selected:rgba(0,0,0,.22);--op-status-review-fill:#cc5de8;--op-status-review-chip-bg:#f9ecfc;--op-status-review-chip-text:#9b47b0;--op-status-review-dot:#cc5de8;--op-status-review-label-text:var(--ink);--op-status-review-progress:hsla(0,0%,100%,.35);--op-status-review-progress-selected:hsla(0,0%,100%,.4);--op-status-failed-fill:#ff6b6b;--op-status-failed-chip-bg:#ffeded;--op-status-failed-chip-text:#b24b4b;--op-status-failed-dot:#ff6b6b;--op-status-failed-label-text:var(--ink);--op-status-failed-progress:rgba(0,0,0,.18);--op-status-failed-progress-selected:rgba(0,0,0,.22);--op-status-neutral-fill:#94a3b8;--op-status-neutral-chip-bg:#f2f4f6;--op-status-neutral-chip-text:#636d7b;--op-status-neutral-dot:#94a3b8;--op-status-neutral-label-text:var(--ink);--op-status-neutral-progress:rgba(0,0,0,.18);--op-status-neutral-progress-selected:rgba(0,0,0,.22);--op-status-unknown-fill:#6366f1;--op-status-unknown-chip-bg:#ecedfd;--op-status-unknown-chip-text:#575ad4;--op-status-unknown-dot:#6366f1;--op-status-unknown-label-text:#000;--op-status-unknown-progress:hsla(0,0%,100%,.35);--op-status-unknown-progress-selected:hsla(0,0%,100%,.4);--brand-50:#eef1fe;--brand-100:#dfe4fd;--brand-200:#bfc9fb;--brand-400:#6c83f2;--brand-500:#4361ee;--brand-600:#3651d4;--brand-700:#2b3fb0;--brand:var(--brand-500);--spark:#7c5cff;--person-1:#5b6cff;--person-2:#2bb3e6;--person-3:#1fb5a5;--person-4:#9b6bff;--person-5:#e862b0;--person-6:#8aa63a;--person-7:#c08457;--person-8:#6b7a99;--r-sm:6px;--r-md:8px;--r-lg:12px;--r-xl:16px;--r-full:999px;--e1:0 1px 2px rgba(17,22,51,.06);--e2:0 4px 12px -2px rgba(17,22,51,.08);--e3:0 16px 40px -8px rgba(17,22,51,.2);--fs-xs:.75rem;--fs-sm:.8125rem;--fs-base:.875rem;--fs-md:1rem;--fs-lg:1.25rem;--fs-xl:1.5rem;--fs-2xl:2rem;--font-ui:"Playpen Sans Thai","Segoe UI",sans-serif;--font-display:"Playpen Sans Thai","Segoe UI",sans-serif;--font-sans:var(--font-ui);--ease-out:cubic-bezier(.22,1,.36,1);--ease-in:cubic-bezier(.4,0,1,1);--ease-in-out:cubic-bezier(.65,0,.35,1);--ease-spring:cubic-bezier(.34,1.36,.64,1);--dur-instant:60ms;--dur-fast:120ms;--dur-base:200ms;--dur-enter:250ms;--dur-exit:150ms;--dur-emph:500ms;--sidebar-bg:#f7f8fc;--sidebar-line:var(--line);--sidebar-ink:var(--ink-3);--sidebar-muted:#5f6b7f;--sidebar-hover-bg:var(--surface-muted);--sidebar-active-bg:var(--brand-50);--sidebar-active-ink:var(--brand-600);--surface:#f1f5f9;--body-bg:#f1f5f9;--text-default:#0f172a;--topbar-bg:#fff;--topbar-border:#e2e8f0;--card-shadow:0 0 0 1px var(--line),var(--e1);--bs-font-sans-serif:var(--font-ui);--bs-body-font-family:var(--font-ui);--sidebar-w:240px;--sidebar-w-collapsed:64px;--modal-open-dur:250ms;--modal-scale:0.96;--modal-ease:cubic-bezier(0.22,1,0.36,1);--tab-fade-dur:200ms;--tab-fade-ease:cubic-bezier(0.22,1,0.36,1);--on-accent:#fff;--card-shadow-raised:0 0 0 1px var(--line),var(--e2);--lift-dur:180ms;--press-dur:80ms}html body{--bs-body-font-family:var(--font-ui);--bs-font-sans-serif:var(--font-ui);font-family:var(--font-ui)}button,input,optgroup,select,textarea{font-family:inherit}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Consolas,Menlo,monospace}.badge,.tab-badge,.table td{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}[style*="font-family: system-ui"]{font-family:var(--font-ui)!important}.btn.btn-primary{--bs-btn-bg:var(--brand-500);--bs-btn-border-color:var(--brand-500);--bs-btn-color:var(--on-accent);--bs-btn-hover-bg:var(--brand-600);--bs-btn-hover-border-color:var(--brand-600);--bs-btn-hover-color:var(--on-accent);--bs-btn-active-bg:var(--brand-700);--bs-btn-active-border-color:var(--brand-700);--bs-btn-active-color:var(--on-accent);--bs-btn-disabled-bg:var(--brand-500);--bs-btn-disabled-border-color:var(--brand-500);--bs-btn-focus-shadow-rgb:67,97,238}.btn-solid-brand{background:var(--brand-500);color:var(--on-accent)}.btn-solid-brand:not(:disabled):hover{background:var(--brand-600)}.btn-solid-brand:not(:disabled):active{background:var(--brand-700)}.modal-resp{animation:t-modal-in var(--modal-open-dur) var(--modal-ease)}@keyframes t-modal-in{0%{transform:scale(var(--modal-scale));opacity:0}to{transform:scale(1);opacity:1}}.it-tab-pane.active{animation:t-tab-fade-in var(--tab-fade-dur) var(--tab-fade-ease)}@keyframes t-tab-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.it-tab-pane.active,.modal-resp{animation:none!important}}.app-shell{display:flex;min-height:100vh}.app-sidebar{width:var(--sidebar-w);background:var(--sidebar-bg);color:var(--sidebar-ink);display:flex;flex-direction:column;flex-shrink:0;position:-webkit-sticky;position:sticky;top:0;height:100vh;border-right:1px solid var(--sidebar-line);z-index:100;transition:width var(--dur-base) var(--ease-out);overflow-x:hidden}@media (prefers-reduced-motion:reduce){.app-sidebar{transition:none}}.app-shell.collapsed .app-sidebar{width:var(--sidebar-w-collapsed)}.app-shell.collapsed .app-brand-text,.app-shell.collapsed .app-nav-lb,.app-shell.collapsed .app-nav-section,.app-shell.collapsed .app-user-meta{display:none}.app-shell.collapsed .app-nav{padding:.75rem .4rem}.app-shell.collapsed .app-nav-item{justify-content:center;padding:.6rem 0;gap:0}.app-shell.collapsed .app-logout{justify-content:center}.app-shell.collapsed .app-user-card{justify-content:center;padding:.5rem}.app-brand{gap:.65rem;padding:1.05rem 1.1rem;border-bottom:1px solid var(--sidebar-line)}.app-brand,.app-brand-icon{display:flex;align-items:center}.app-brand-icon{width:36px;height:36px;background:linear-gradient(135deg,var(--brand-500),var(--spark));color:var(--on-accent);border-radius:var(--r-md);justify-content:center;font-size:var(--fs-lg);flex-shrink:0}.app-brand-text{min-width:0}.app-brand-name{font-size:var(--fs-md);font-weight:700;color:var(--ink);line-height:1.15}.app-brand-sub{font-size:var(--fs-xs);color:var(--sidebar-muted);white-space:nowrap}.app-nav{flex:1 1;padding:.85rem .6rem;display:flex;flex-direction:column;gap:.125rem;overflow-y:auto}.app-nav::-webkit-scrollbar{width:6px}.app-nav::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:3px}.app-nav::-webkit-scrollbar-track{background:transparent}.app-nav-section{font-size:var(--fs-xs);font-weight:600;color:var(--sidebar-muted);padding:.9rem .75rem .3rem;white-space:nowrap}.app-nav-item{display:flex;align-items:center;gap:.6rem;padding:.5rem .75rem;border-radius:var(--r-md);color:var(--sidebar-ink);text-decoration:none;font-size:var(--fs-base);font-weight:500;white-space:nowrap;position:relative;transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.app-nav-item:hover{background:var(--sidebar-hover-bg);color:var(--ink)}.app-nav-item:active{background:var(--line)}.app-nav-item.active{background:var(--sidebar-active-bg);color:var(--sidebar-active-ink)}.app-nav-item.active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:2px;height:60%;background:var(--brand-500);border-radius:0 2px 2px 0}.app-nav-ic{width:20px;height:20px;display:flex;align-items:center;justify-content:center;color:var(--sidebar-muted);flex-shrink:0;transition:color var(--dur-fast) var(--ease-out)}.app-nav-item:hover .app-nav-ic{color:var(--ink-3)}.app-nav-item.active .app-nav-ic{color:var(--sidebar-active-ink)}.app-nav-lb{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis}.app-sidebar-footer{padding:.7rem .6rem .8rem;border-top:1px solid var(--sidebar-line);display:flex;flex-direction:column;gap:.4rem;position:relative}.app-user-card{display:flex;gap:.6rem;padding:.5rem .6rem;background:var(--surface-card);border:1px solid var(--sidebar-line);border-radius:var(--r-md);margin-bottom:.25rem}.app-user-avatar{width:32px;height:32px;background:var(--brand-100);color:var(--brand-700);border-radius:var(--r-full);display:flex;align-items:center;justify-content:center;font-size:var(--fs-sm);font-weight:700;flex-shrink:0}.app-user-meta{min-width:0;flex:1 1}.app-user-name{font-size:var(--fs-sm);font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-user-tags{display:flex;gap:.25rem;margin-top:.15rem;flex-wrap:wrap}.app-user-dept,.app-user-role{background:var(--surface-muted);color:var(--ink-3);font-size:var(--fs-xs);font-weight:600;padding:.05rem .4rem;border-radius:var(--r-sm)}.app-lang-toggle{display:flex;gap:0;background:var(--surface-muted);border:1px solid var(--sidebar-line);border-radius:var(--r-md);padding:2px;margin-bottom:.15rem}.app-lang-btn{flex:1 1;padding:.25rem 0;font-size:var(--fs-xs);font-weight:600;border:none;border-radius:var(--r-sm);background:transparent;color:var(--sidebar-muted);cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.app-lang-btn:hover{color:var(--ink)}.app-lang-btn.active{background:var(--surface-card);color:var(--ink);box-shadow:var(--e1),0 0 0 1px var(--line)}.app-lang-btn{min-height:32px;min-width:32px;display:inline-flex;align-items:center;justify-content:center}@media (pointer:coarse){.app-lang-btn{min-height:44px;min-width:44px}}.app-shell.collapsed .app-lang-toggle{flex-direction:column;margin-inline:-.35rem}@media (max-width:768px){.app-shell:not(.drawer-open) .app-lang-toggle{flex-direction:column;margin-inline:-.35rem}}.app-logout{display:flex;align-items:center;gap:.6rem;padding:.5rem .75rem;background:transparent;border:1px solid transparent;color:var(--sidebar-ink);border-radius:var(--r-md);font-size:var(--fs-sm);font-weight:500;text-align:left;cursor:pointer;white-space:nowrap;transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out);font-family:inherit}.app-logout:hover{background:var(--danger-bg-soft);border-color:var(--danger-line)}.app-logout:hover,.app-logout:hover .app-nav-ic{color:var(--danger-strong)}.app-collapse-toggle{position:absolute;top:-14px;right:-14px;width:28px;height:28px;background:var(--surface-card);border:1px solid var(--line-strong);color:var(--sidebar-muted);border-radius:var(--r-full);cursor:pointer;font-size:var(--fs-xs);display:flex;align-items:center;justify-content:center;z-index:10;box-shadow:var(--e1);transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.app-collapse-toggle:hover{color:var(--brand-600);border-color:var(--brand-200);background:var(--brand-50)}.app-collapse-toggle:active{transform:scale(.94)}.app-main{flex:1 1;min-width:0;display:flex;flex-direction:column}@media (max-width:991.98px){.activity-feed-card{position:static!important;max-height:none!important;height:auto!important}}@media (max-width:768px){.app-sidebar{width:var(--sidebar-w-collapsed)}.app-shell .app-brand-text,.app-shell .app-nav-lb,.app-shell .app-nav-section,.app-shell .app-user-meta{display:none}.app-shell .app-nav{padding:.75rem .4rem}.app-shell .app-nav-item{justify-content:center;padding:.6rem 0;gap:0}.app-shell .app-logout{justify-content:center}.resp-2col{grid-template-columns:1fr!important}.pd-subtabs{flex-wrap:nowrap!important;overflow-x:auto;-webkit-overflow-scrolling:touch}.pd-subtabs::-webkit-scrollbar{height:0}.roadmap-controls button,.roadmap-controls input:not([type=date]),.roadmap-controls select{min-height:44px}.cycle-sort button{min-height:36px}}.page-topbar{gap:1rem;padding:.7rem 1rem;min-height:calc(36px + 2.1rem + 1px);background:var(--surface-card);border-bottom:1px solid var(--line);position:-webkit-sticky;position:sticky;top:0;z-index:50;box-shadow:var(--e1)}.page-title,.page-topbar{display:flex;align-items:center}.page-title{font-size:var(--fs-md);font-weight:700;color:var(--ink);gap:.5rem;white-space:nowrap}.page-title small{font-size:var(--fs-xs);font-weight:400;color:var(--text-muted)}.page-topbar-spacer{flex:1 1}.page-topbar-countdown{flex:1 1;display:flex;align-items:center;gap:.55rem;min-width:0;font-size:var(--fs-xs);color:var(--text-muted);font-weight:600;white-space:nowrap}.page-topbar-countdown-bar{flex:1 1;height:4px;background:var(--line);border-radius:2px;overflow:hidden;max-width:220px}.page-topbar-countdown-fill{height:100%;background:#fbbf24;border-radius:2px;transform-origin:left center;transition:transform 1s linear}@media (prefers-reduced-motion:reduce){.page-topbar-countdown-fill{transition:none}}.page-topbar-btn{border:1px solid var(--line-strong);background:var(--surface-card);color:var(--text-body);border-radius:var(--r-md);padding:.4rem .9rem;font-size:var(--fs-sm);font-weight:600;cursor:pointer;white-space:nowrap;font-family:inherit;transition:background .15s,border-color .15s,color .15s}.page-topbar-btn:hover:not(:disabled){background:var(--surface-subtle);border-color:var(--text-faint);color:var(--ink)}.page-topbar-btn:disabled{opacity:.55;cursor:wait}.page-topbar-btn.yellow{border-color:#fbbf24;color:var(--warning-2);background:#fffbeb}.page-topbar-dash{flex-wrap:wrap;gap:.5rem .75rem;background:linear-gradient(105deg,color-mix(in srgb,var(--page-acc,var(--brand-500)) 12%,var(--surface-card)) 0,color-mix(in srgb,var(--page-acc,var(--brand-500)) 6%,var(--surface-card)) 52%,var(--surface-card) 100%);border-bottom:0;box-shadow:none}.page-topbar-lead{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:.2rem}.page-topbar-lead .page-title{min-width:0}.page-topbar-h1{margin:0;font:inherit;color:inherit;min-width:0;overflow:hidden;text-overflow:ellipsis}.page-topbar-lead>.page-topbar-countdown{flex:none;gap:.45rem;font-weight:500;overflow:hidden}.page-topbar-lead .page-topbar-countdown-bar{flex:0 0 56px}.page-topbar-countdown-text{min-width:0;overflow:hidden;text-overflow:ellipsis}.page-topbar-countdown-chip svg,.page-topbar-countdown-text svg{vertical-align:-2px}.page-topbar-countdown-chip{flex:none;background:var(--info-bg);color:var(--info);border-radius:var(--r-sm);padding:0 7px;font-weight:600}.page-topbar-countdown-chip.is-busy{background:var(--warning-bg);color:var(--warning-strong)}.page-topbar-dash>.page-topbar-select{flex:1 1 9rem;min-width:7.5rem;max-width:14rem;text-overflow:ellipsis}.page-topbar-actions{display:flex;align-items:center;gap:.5rem;flex:0 0 auto;margin-left:auto}.page-topbar-kbd{margin-left:6px;font-size:var(--fs-xs);opacity:.6;background:rgba(0,0,0,.08);padding:1px 5px;border-radius:var(--r-sm)}.page-topbar-split{display:inline-flex}.page-topbar-split>.page-topbar-btn:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.page-topbar-split>.page-topbar-btn+.page-topbar-btn{margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0;padding-left:.7rem;padding-right:.75rem;color:var(--text-muted)}.page-topbar-split>.page-topbar-btn:focus-visible,.page-topbar-split>.page-topbar-btn:hover{position:relative;z-index:1}@media (max-width:1499.98px){.page-topbar-kbd{display:none}}@media (max-width:1439.98px){.page-topbar-dash>.page-topbar-actions{order:1}.page-topbar-dash>.page-topbar-select{order:2;flex:0 1 16rem;max-width:none}}@media (max-width:768px){.page-topbar-dash>.page-topbar-lead{flex-basis:100%}.page-topbar-dash>.page-topbar-select{flex-basis:100%;min-width:0;min-height:36px}.page-topbar-dash>.page-topbar-actions{flex:1 1 100%;min-width:0;flex-wrap:wrap;margin-left:0}.page-topbar-lead>.page-topbar-countdown{flex-wrap:wrap;row-gap:.2rem}}.report-page{--rp-ink:var(--ink);--rp-ink-2:var(--text-body);--rp-ink-3:var(--text-muted);--rp-rule:var(--line);--rp-soft:var(--surface-subtle);--rp-on:#047857;--rp-late:#b45309;--rp-late-bg:#fff7ed;--rp-alert:var(--danger-strong);max-width:1040px;margin:0 auto;padding:1.5rem 1.5rem 3rem;color:var(--rp-ink);width:100%;min-width:0}.report-filters{display:flex;flex-wrap:wrap;align-items:stretch;background:var(--surface-card);border-radius:var(--r-lg);box-shadow:var(--card-shadow);padding:.35rem;margin-bottom:1.25rem}.report-filter{display:flex;flex-direction:column;justify-content:center;gap:.05rem;padding:.35rem .85rem;border-radius:var(--r-md);min-width:150px;position:relative;cursor:pointer;transition:background .15s}.report-filter+.report-filter:before{content:"";position:absolute;left:0;top:22%;bottom:22%;width:1px;background:var(--rp-rule)}.report-filter:focus-within,.report-filter:hover{background:#f1f5ff}.report-filter-wide{flex:1 1 260px}.report-filter>span{font-size:var(--fs-xs);font-weight:700;color:var(--rp-ink-3)}.report-filter input,.report-filter select{border:0;background:transparent;padding:0;margin:0;font:inherit;font-size:var(--fs-base);font-weight:600;color:var(--rp-ink);outline:none;min-height:26px;cursor:pointer;width:100%}.report-filter select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:1.1rem;background:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 12 12%22%3E%3Cpath fill=%22%2364748b%22 d=%22M2.5 4.5 6 8l3.5-3.5%22/%3E%3C/svg%3E") 100% /12px no-repeat}.report-filter:has(:focus-visible){box-shadow:inset 0 0 0 2px var(--brand)}.report-filter input[aria-invalid=true]{color:var(--rp-alert)}.report-print{margin-left:auto;align-self:center;display:inline-flex;align-items:center;gap:.45rem;min-height:44px;padding:0 1.1rem;border:0;border-radius:var(--r-md);background:var(--brand);color:var(--surface-card);font:inherit;font-size:var(--fs-base);font-weight:700;cursor:pointer;box-shadow:0 1px 2px rgba(67,97,238,.3),0 4px 12px rgba(67,97,238,.22);transition:background .15s,transform .15s}.report-print:hover:not(:disabled){background:#3651d4;transform:translateY(-1px)}.report-print:focus-visible{outline:2px solid var(--brand);outline-offset:3px}.report-print:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.report-error{flex-basis:100%;margin:.35rem .85rem .2rem;font-size:var(--fs-xs);font-weight:600;color:var(--rp-alert)}.report-sheet{background:var(--surface-card);border-radius:var(--r-xl);box-shadow:var(--e2);padding:2.25rem 2.5rem 1.75rem;display:flex;flex-direction:column;gap:1.75rem;transition:opacity .2s}.report-sheet.is-refreshing{opacity:.55}.report-head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;grid-gap:1.1rem;gap:1.1rem}.report-avatar{width:60px;height:60px;border-radius:50%;display:grid;place-items:center;font-size:var(--fs-lg);font-weight:700;color:var(--rp-ink);letter-spacing:.02em}.report-kicker{margin:0 0 .1rem;font-size:var(--fs-xs);font-weight:700;color:var(--brand)}.report-id{min-width:0}.report-id h1{margin:0;font-size:var(--fs-xl);font-weight:700;line-height:1.25;letter-spacing:-.01em;text-wrap:balance;overflow-wrap:anywhere}.report-id p{margin:.15rem 0 0;font-size:var(--fs-base);color:var(--rp-ink-2)}.report-period{margin:0;text-align:right;display:grid;grid-gap:.05rem;gap:.05rem}.report-period dt{font-size:var(--fs-xs);font-weight:700;color:var(--rp-ink-3)}.report-period dd{margin:0 0 .35rem;font-size:var(--fs-sm);color:var(--rp-ink-2)}.report-period .report-period-range{font-size:var(--fs-md);font-weight:700;color:var(--rp-ink)}.report-lede{margin:-.5rem 0 0;padding:.9rem 1.1rem;border-radius:var(--r-lg);background:var(--rp-soft);font-size:var(--fs-md);line-height:1.7;color:var(--rp-ink)}.report-figures{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid var(--rp-rule);border-bottom:1px solid var(--rp-rule)}.report-figure{display:flex;flex-direction:column;gap:.2rem;padding:1rem 1.1rem;min-width:0}.report-figure+.report-figure{border-left:1px solid var(--rp-rule)}.report-figure:first-child{padding-left:0}.report-figure-label{font-size:var(--fs-xs);font-weight:700;color:var(--rp-ink-2)}.report-figure strong{font-size:var(--fs-2xl);font-weight:700;line-height:1.15;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.02em}.report-figure strong small{font-size:var(--fs-md);font-weight:600;color:var(--rp-ink-2);letter-spacing:0}.report-figure-note{font-size:var(--fs-xs);color:var(--rp-ink-3);line-height:1.45}.report-meter{display:flex;gap:2px;height:6px;margin:.15rem 0 .1rem;border-radius:3px;overflow:hidden}.report-meter i{display:block;min-width:2px}.report-meter .is-on{background:var(--success-3)}.report-meter .is-late{background:var(--warning)}.report-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:2rem;gap:2rem}.report-section{min-width:0;page-break-inside:avoid;break-inside:avoid}.report-section-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.25rem 1rem;margin-bottom:.75rem}.report-legend>span,.report-section h2{white-space:nowrap}.report-section h2{margin:0;font-size:var(--fs-md);font-weight:700}.report-section-meta{font-size:var(--fs-xs);color:var(--rp-ink-3)}.report-legend{display:inline-flex;gap:.9rem;font-size:var(--fs-xs);color:var(--rp-ink-2)}.report-legend i{display:inline-block;width:14px;height:3px;border-radius:2px;margin-right:.35rem;vertical-align:middle}.report-note{margin:.4rem 0 0;font-size:var(--fs-xs);color:var(--rp-ink-3)}.report-chart-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;min-height:170px;border:1px dashed var(--rp-rule);border-radius:var(--r-lg);font-size:var(--fs-base);color:var(--rp-ink-2);text-align:center;padding:1rem}.report-chart-placeholder small{color:var(--rp-ink-3);font-size:var(--fs-xs)}.report-projects{list-style:none;margin:.75rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.35rem}.report-projects li{display:inline-flex;align-items:center;gap:.45rem;padding:.2rem .35rem .2rem .6rem;border:1px solid var(--rp-rule);border-radius:var(--r-full);font-size:var(--fs-xs);color:var(--rp-ink-2)}.report-projects b{font-weight:700;color:var(--rp-ink);background:var(--rp-soft);border-radius:var(--r-full);padding:0 .45rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.report-details{margin-top:.5rem;font-size:var(--fs-xs)}.report-details summary{cursor:pointer;color:var(--brand);font-weight:600;width:-moz-fit-content;width:fit-content}.report-details table{width:100%;margin-top:.5rem;border-collapse:collapse;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.report-details td,.report-details th{padding:.3rem .4rem;border-bottom:1px solid var(--rp-rule);text-align:right}.report-details td:first-child,.report-details th:first-child{text-align:left}.report-details th{font-size:var(--fs-xs);color:var(--rp-ink-3);font-weight:700}.report-now{margin:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-gap:.5rem;gap:.5rem}.report-now>div{padding:.7rem .8rem;border-radius:var(--r-md);background:var(--rp-soft)}.report-now dt{font-size:var(--fs-xs);font-weight:600;color:var(--rp-ink-2)}.report-now dd{margin:.1rem 0 0;font-size:var(--fs-lg);font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.report-now .is-alert dd{color:var(--rp-alert)}.report-table-wrap{overflow-x:auto}.report-table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}.report-table thead th{text-align:left;font-size:var(--fs-xs);font-weight:700;color:var(--rp-ink-3);padding:0 .6rem .45rem;border-bottom:1px solid var(--rp-ink);white-space:nowrap}.report-table td{padding:.5rem .6rem;vertical-align:top}.report-month-row th,.report-table td{border-bottom:1px solid var(--rp-rule)}.report-month-row th{text-align:left;padding:.9rem .6rem .35rem;font-size:var(--fs-sm);font-weight:700;color:var(--rp-ink)}.report-month-row th span{font-weight:500;color:var(--rp-ink-3);margin-left:.35rem;font-size:var(--fs-xs)}.report-td-date{white-space:nowrap;color:var(--rp-ink-2);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.report-td-task{line-height:1.5}.report-td-task a,.report-td-task>span:first-child{font-weight:700;color:var(--brand);text-decoration:none;margin-right:.15rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.report-td-task a:hover{text-decoration:underline}.report-tag,.report-td-project{color:var(--rp-ink-2);white-space:nowrap}.report-tag{display:inline-block;padding:.05rem .5rem;border-radius:var(--r-full);font-size:var(--fs-xs);font-weight:700;background:var(--surface-muted)}.report-tag.is-qa{background:var(--brand-bg);color:#3730a3}.report-result{font-size:var(--fs-xs);font-weight:700;white-space:nowrap;color:var(--rp-ink-3)}.report-result.is-on{color:var(--rp-on)}.report-result.is-late{color:var(--rp-late);background:var(--rp-late-bg);border-radius:var(--r-sm);padding:.05rem .4rem}.report-foot{font-size:var(--fs-xs);color:var(--rp-ink-3);border-top:1px solid var(--rp-rule);padding-top:.9rem;line-height:1.7}.report-foot a{color:var(--brand)}.report-skeleton{gap:1rem;min-height:420px}.report-skeleton span{display:block;border-radius:var(--r-md);background:linear-gradient(90deg,var(--surface-muted) 25%,#e8edf3 50%,var(--surface-muted) 75%);background-size:200% 100%;animation:rp-shimmer 1.4s ease-in-out infinite}.report-skeleton span:first-child{height:64px;width:55%}.report-skeleton span:nth-child(2){height:96px}.report-skeleton span:nth-child(3){height:220px}@keyframes rp-shimmer{to{background-position:-200% 0}}.dash-skeleton{display:flex;flex-direction:column;gap:1rem}.dash-skel-block{display:block;border-radius:var(--r-lg);background:linear-gradient(90deg,var(--surface-muted) 25%,#e8edf3 50%,var(--surface-muted) 75%);background-size:200% 100%;animation:rp-shimmer 1.4s ease-in-out infinite}.dash-skel-row{display:grid;grid-gap:1rem;gap:1rem}.dash-skel-stats{grid-template-columns:repeat(5,minmax(0,1fr))}.dash-skel-stats .dash-skel-block{height:112px}.dash-skel-people{grid-template-columns:repeat(6,minmax(0,1fr))}.dash-skel-people .dash-skel-block{height:150px}.dash-skel-tabs{display:flex;gap:.75rem;flex-wrap:wrap}.dash-skel-tabs .dash-skel-block{height:30px;width:96px;border-radius:var(--r-md)}.dash-skel-panel{height:360px}.dash-skel-caption{text-align:center;font-size:var(--fs-sm);color:var(--text-muted)}@media (max-width:768px){.dash-skel-people,.dash-skel-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){.dash-skel-block,.report-skeleton span{animation:none}.report-print,.report-sheet{transition:none}}.rc-wrap{position:relative}.rc-svg{width:100%;height:auto;display:block;overflow:visible}.rc-tooltip{position:absolute;transform:translate(-50%,-115%);pointer-events:none;z-index:5;max-width:min(360px,calc(100vw - 24px));white-space:normal;padding:8px 11px 9px;font-size:var(--fs-sm);line-height:1.5}.rc-tooltip-title{font-weight:700;margin-bottom:.1rem}.rc-tooltip-muted{color:var(--text-muted)}.rc-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:.35rem}@media (max-width:1100px){.report-figures{grid-template-columns:repeat(3,minmax(0,1fr))}.report-figure:nth-child(4){border-left:0;padding-left:0}.report-figure:nth-child(n+4){border-top:1px solid var(--rp-rule)}.report-now{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:860px){.report-grid{grid-template-columns:1fr}}@media (max-width:768px){.report-page{padding:.85rem .85rem 2rem}.report-sheet{padding:1.25rem 1rem;gap:1.35rem;border-radius:var(--r-lg)}.report-head{grid-template-columns:auto 1fr}.report-period{grid-column:1/-1;text-align:left;grid-template-columns:auto 1fr;column-gap:.75rem;align-items:baseline}.report-period dd{margin:0}.report-id h1{font-size:var(--fs-lg)}.report-figures{grid-template-columns:repeat(2,minmax(0,1fr))}.report-figure,.report-figure:nth-child(n){padding:.85rem .75rem;border-top:0;border-left:0}.report-figure:nth-child(odd){padding-left:0}.report-figure:nth-child(2n){border-left:1px solid var(--rp-rule)}.report-figure:nth-child(n+3){border-top:1px solid var(--rp-rule)}.report-figure strong{font-size:var(--fs-xl)}.report-now{grid-template-columns:repeat(2,minmax(0,1fr))}.report-filter{flex:1 1 45%;min-width:0;min-height:52px}.report-filter+.report-filter:before{display:none}.report-print{margin:.35rem;flex:1 1 100%;justify-content:center}.report-td-project{white-space:normal}}@media print{@page{size:A4;margin:12mm}body{background:var(--surface-card)!important}.app-sidebar,.no-print,.rc-tooltip{display:none!important}.app-shell{display:block!important}.app-content,.app-main{margin:0!important;padding:0!important;width:100%!important}.report-page{max-width:none;padding:0}.report-sheet{box-shadow:none;border-radius:0;padding:0;gap:1.1rem;opacity:1!important}.report-figures{grid-template-columns:repeat(5,minmax(0,1fr))}.report-figure,.report-figure:nth-child(n){border-top:0;padding:.7rem}.report-figure:first-child{padding-left:0}.report-figure+.report-figure{border-left:1px solid var(--rp-rule)}.report-figure strong{font-size:var(--fs-xl)}.report-grid{grid-template-columns:1fr 1fr;gap:1.25rem}.report-now{grid-template-columns:repeat(6,minmax(0,1fr))}.report-lede,.report-meter,.report-now>div,.report-result.is-late,.report-tag{-webkit-print-color-adjust:exact;print-color-adjust:exact}.report-table{font-size:var(--fs-xs)}.report-table thead{display:table-header-group}.report-table tr{page-break-inside:avoid;break-inside:avoid}.report-table a{color:inherit}.report-sheet{padding-right:6px}.report-sheet svg{overflow:visible!important}.report-section .rc-wrap{padding-right:1.75rem}.report-section-head{flex-wrap:wrap}.rc-dot,.report-legend i{-webkit-print-color-adjust:exact;print-color-adjust:exact}.report-print-stamp{display:block!important;margin:.4rem 0 0;font-size:var(--fs-xs);color:var(--rp-ink-3);text-align:right}}@media screen{.report-print-stamp{display:none}}.dq-intro{font-size:var(--fs-sm);color:var(--text-body);margin-bottom:.75rem;line-height:1.6}.dq-table td,.dq-table th{vertical-align:middle}.dq-rate{display:inline-flex;align-items:baseline;gap:.35rem;justify-content:flex-end}.dq-pct{font-size:var(--fs-xs);font-weight:700;padding:0 .35rem;border-radius:var(--r-sm)}.dq-ok .dq-pct{background:var(--surface-muted);color:var(--text-body)}.dq-warn .dq-pct{background:var(--warning-bg);color:var(--warning-strong)}.dq-bad .dq-pct{background:var(--danger-bg)}.dq-bad .dq-pct,.dq-bad strong{color:var(--danger-strong)}.dq-expand{width:32px;height:32px;border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--surface-card);color:var(--text-body);cursor:pointer;line-height:1}.dq-expand:hover{border-color:var(--text-faint);color:var(--ink)}.dq-expand:focus-visible{outline:2px solid var(--info);outline-offset:2px}.dq-people-row>td{background:var(--surface-subtle)}.dq-people{background:var(--surface-card);font-size:var(--fs-sm)}.export-menu{position:relative}.page-topbar:has(.export-menu-panel){z-index:110}.export-menu-backdrop{display:none}.export-menu-panel{position:absolute;top:calc(100% + 6px);right:0;z-index:60;width:min(330px,calc(100vw - 24px));background:var(--surface-card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--e2);padding:1rem;display:flex;flex-direction:column;gap:.7rem;color:var(--ink);white-space:normal}.export-menu-fieldset{border:0;margin:0;padding:0;min-width:0}.export-menu-title{font-size:var(--fs-sm);font-weight:700;margin-bottom:.5rem;padding:0;float:none;width:auto}.export-menu-chips{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:.4rem;gap:.4rem}.export-chip{position:relative;display:flex;align-items:center;justify-content:center;min-height:40px;padding:.3rem .4rem;border:1px solid var(--line-strong);border-radius:var(--r-md);font-size:var(--fs-xs);font-weight:600;color:var(--text-body);text-align:center;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.export-chip input{position:absolute;opacity:0;pointer-events:none}.export-chip:hover:not(.is-disabled){border-color:var(--text-faint);color:var(--ink)}.export-chip.is-selected{background:var(--info-bg);border-color:var(--info);color:#1d4ed8}.export-chip.is-disabled{opacity:.45;cursor:not-allowed;text-decoration:line-through}.export-chip:has(input:focus-visible){outline:2px solid var(--info);outline-offset:2px}.export-menu-dates{display:grid;grid-template-columns:1fr 1fr;grid-gap:.5rem;gap:.5rem}.export-menu-dates label{display:block;font-size:var(--fs-xs);font-weight:600;color:var(--text-body);margin-bottom:.2rem}.export-menu-dates .form-control{min-height:40px}.export-menu-dates .export-menu-error{grid-column:1/-1}.export-menu-error{margin:0;font-size:var(--fs-xs);color:var(--danger-strong);font-weight:600}.export-menu-summary{margin:0;font-size:var(--fs-sm);color:var(--ink)}.export-menu-hint{margin:0;font-size:var(--fs-xs);color:var(--text-muted);line-height:1.5}.export-menu-actions{display:flex;justify-content:flex-end;gap:.5rem}.export-menu-actions .btn{min-height:40px;padding-inline:.9rem;font-weight:600}@media (max-width:768px){.export-menu-backdrop{display:block;position:fixed;inset:0;z-index:59;background:rgba(15,23,42,.45)}.export-menu-panel{position:fixed;top:auto;left:12px;right:12px;bottom:12px;width:auto;max-height:80dvh;overflow-y:auto}.export-chip,.export-menu-actions .btn,.export-menu-dates .form-control{min-height:44px}}@media (prefers-reduced-motion:reduce){.export-chip{transition:none}}.page-topbar-select{border:1px solid var(--line-strong);background:var(--surface-card);border-radius:var(--r-md);padding:.35rem .65rem;font-size:var(--fs-xs);font-weight:600;font-family:inherit;cursor:pointer}*{box-sizing:border-box}body{background:var(--surface);font-family:var(--font-ui);color:var(--ink-2);font-size:var(--fs-base)}.it-nav{background:linear-gradient(135deg,var(--ink) 0,#1d3461 100%);padding:.6rem 1.75rem;gap:1rem;box-shadow:0 2px 16px rgba(0,0,0,.25);position:-webkit-sticky;position:sticky;top:0;z-index:100}.it-nav,.it-nav .brand{display:flex;align-items:center}.it-nav .brand{font-size:var(--fs-md);font-weight:700;color:var(--surface-card);gap:.5rem;white-space:nowrap}.it-nav .brand-icon{background:var(--brand-500);width:28px;height:28px;border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;font-size:var(--fs-base);flex-shrink:0}.it-nav .brand-sub{color:hsla(0,0%,100%,.45);font-size:var(--fs-xs);font-weight:400;margin-left:.25rem}.nav-countdown{flex:1 1;display:flex;align-items:center;gap:.6rem;min-width:0}.nav-countdown-bar{flex:1 1;height:4px;background:hsla(0,0%,100%,.15);border-radius:2px;overflow:hidden;max-width:200px}.nav-countdown-fill{height:100%;background:#fbbf24;border-radius:2px;transition:width 1s linear}.nav-countdown-text{color:hsla(0,0%,100%,.55)}.it-nav .btn-nav,.nav-countdown-text{font-size:var(--fs-xs);white-space:nowrap}.it-nav .btn-nav{border:1px solid hsla(0,0%,100%,.2);color:hsla(0,0%,100%,.8);background:hsla(0,0%,100%,.07);border-radius:var(--r-sm);padding:.28rem .7rem;cursor:pointer;transition:background .15s}.it-nav .btn-nav:hover{background:hsla(0,0%,100%,.16);color:var(--surface-card)}.it-nav .btn-nav.yellow{border-color:#fbbf24;color:#fbbf24}.stat-card{background:var(--surface-card);border-radius:var(--r-lg);box-shadow:var(--card-shadow);padding:.85rem 1rem;display:flex;flex-direction:column;align-items:flex-start;gap:.4rem;height:100%;border:none;border-top:3px solid var(--line)}.card-interactive,.stat-card[role=button]{transition:transform var(--lift-dur) var(--modal-ease),box-shadow var(--lift-dur) var(--modal-ease)}.card-interactive:focus-visible,.card-interactive:hover,.stat-card[role=button]:focus-visible,.stat-card[role=button]:hover{transform:translateY(-2px);box-shadow:var(--card-shadow-raised)}.card-interactive:active,.stat-card[role=button]:active{transform:scale(.99);transition-duration:var(--press-dur)}@media (prefers-reduced-motion:reduce){.card-interactive,.stat-card[role=button]{transition:none}.card-interactive:active,.card-interactive:focus-visible,.card-interactive:hover,.stat-card[role=button]:active,.stat-card[role=button]:focus-visible,.stat-card[role=button]:hover{transform:none}}.stat-icon{width:32px;height:32px;border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;font-size:var(--fs-md);flex-shrink:0}.stat-val{font-size:var(--fs-xl);font-weight:700;line-height:1.1;color:var(--ink-2);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stat-label{font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em}.it-tabs{display:flex;gap:.25rem;flex-wrap:wrap;border-bottom:2px solid var(--line);background:var(--surface-card);border-radius:var(--r-xl) var(--r-xl) 0 0;padding:.6rem .75rem 0}.it-tabs .tab-btn{background:none;cursor:pointer;padding:.45rem .85rem;font-size:var(--fs-sm);font-weight:500;color:var(--text-muted);border-radius:var(--r-md) var(--r-md) 0 0;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .15s,background .15s;white-space:nowrap}.it-tabs .tab-btn:hover{color:var(--brand);background:rgba(67,97,238,.06)}.it-tabs .tab-btn,.page-topbar-btn{display:inline-flex;align-items:center;gap:.35rem}.icon-spin{animation:icon-spin 1s linear infinite}@keyframes icon-spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.icon-spin{animation:none}}.it-tabs{align-items:flex-end;column-gap:0}.it-tabs .tab-group{display:flex;flex-direction:column;padding:0 .5rem;border-left:1px solid var(--line)}.it-tabs .tab-group:first-child{border-left:none;padding-left:0}.it-tabs .tab-group-label{font-size:var(--fs-xs);font-weight:700;color:var(--text-muted);letter-spacing:.04em;padding:0 .85rem .1rem;white-space:nowrap}.it-tabs .tab-group-btns{display:flex;gap:.15rem}.it-tabs .tab-badge{margin-left:.4rem;background:var(--danger);color:var(--on-accent);border-radius:var(--r-full);padding:0 6px;font-size:var(--fs-xs);font-weight:700}.it-tabs .tab-btn.active{color:var(--brand);border-bottom-color:var(--brand);background:rgba(67,97,238,.06)}.it-tab-content{background:var(--surface-card);border-radius:0 0 var(--r-xl) var(--r-xl);box-shadow:var(--card-shadow);padding:.75rem;margin-bottom:1rem}.it-tab-pane{display:none}.it-tab-pane.active{display:block}.card{border:none;border-radius:var(--r-lg);box-shadow:var(--e1)}.card-header{background:var(--surface-subtle);border-bottom:1px solid var(--line);border-radius:var(--r-lg) var(--r-lg) 0 0!important;padding:.6rem .8rem;font-size:var(--fs-base)}.table{font-size:var(--fs-sm)}.table thead th{background:var(--surface-subtle);color:var(--text-muted);font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;border-bottom:2px solid var(--line)}.table-hover tbody tr:hover td{background:rgba(67,97,238,.04)}.table-responsive-wrap{overflow-x:auto}.org-tree-row{margin-left:calc(var(--depth, 0) * 18px)}.action-list{padding:.25rem 0}.action-row{padding:.7rem 1rem;border-bottom:1px solid var(--surface-muted);border-left:1px solid var(--line)}.action-row:last-child{border-bottom:none}.action-row-header{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.action-icon{font-size:var(--fs-md);flex-shrink:0}.action-msg{font-size:var(--fs-sm);color:var(--ink-3);flex:1 1;min-width:0}.action-tasks{padding-left:1.75rem;margin-top:.4rem}.action-task-row{font-size:var(--fs-sm);padding:.2rem 0;display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem;border-bottom:1px dotted var(--surface-muted)}.action-task-row:last-of-type{border-bottom:none}.action-task-link{font-weight:600;text-decoration:none;color:var(--ink-2)}.action-task-link:focus-visible,.action-task-link:hover{color:var(--brand);text-decoration:underline}.action-task-proj{color:var(--text-muted);font-size:var(--fs-xs);width:100%}.action-more-btn{background:none;border:none;color:var(--brand);font-size:var(--fs-xs);cursor:pointer;padding:.2rem 0;margin-top:.2rem}.action-more-btn:focus-visible,.action-more-btn:hover{text-decoration:underline}.sub-btn{background:none;border:1px solid var(--line);border-radius:var(--r-sm);padding:.3rem .75rem;font-size:var(--fs-xs);color:var(--text-muted);cursor:pointer;transition:background-color .15s,color .15s,border-color .15s}.sub-btn:focus-visible,.sub-btn:hover{background:rgba(67,97,238,.06);color:var(--brand);border-color:var(--brand)}.sub-btn.active{background:var(--brand);color:var(--surface-card);border-color:var(--brand);font-weight:600}.alert{border-radius:var(--r-lg);font-size:var(--fs-base)}.date-header{font-size:var(--fs-sm);color:var(--text-muted);font-weight:500;margin-bottom:1.25rem;display:flex;align-items:center;gap:.4rem}@media print{.no-print{display:none!important}}@media (max-width:768px){.brand-sub{display:none}.nav-countdown-bar{max-width:80px}.container-fluid{padding-left:.7rem!important;padding-right:.7rem!important}.action-tasks{padding-left:.75rem}table[style*="table-layout:fixed"]{table-layout:auto!important;min-width:560px}}.line-clamp-1{-webkit-line-clamp:1}.line-clamp-1,.line-clamp-2{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.line-clamp-2{-webkit-line-clamp:2}@media (max-width:768px){.it-nav{padding:.5rem 1rem;gap:.6rem}.it-tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.it-tabs::-webkit-scrollbar{display:none}.it-tabs .tab-btn{flex-shrink:0}:root{--sidebar-w:var(--sidebar-w-collapsed)}.app-brand-text,.app-nav-lb,.app-nav-section,.app-user-meta{display:none}.app-nav-item{padding:.6rem 0;gap:0}.app-logout,.app-nav-item,.app-user-card{justify-content:center}.app-user-card{padding:.5rem}.app-collapse-toggle{display:none}.page-topbar{flex-wrap:wrap;gap:.5rem;padding:.6rem .75rem}.page-title{font-size:var(--fs-base)}.page-title small{display:none}.page-topbar>.page-topbar-countdown{order:99;width:100%;flex-basis:100%;font-size:var(--fs-xs);overflow:hidden}.page-topbar-countdown>span{min-width:0;overflow:hidden;text-overflow:ellipsis}.page-topbar-countdown-bar{max-width:none}.page-topbar-btn{padding:.35rem .65rem;font-size:var(--fs-xs)}.page-topbar-select{font-size:var(--fs-xs);padding:.35rem .55rem;max-width:140px}.container-fluid{padding-left:.7rem!important;padding-right:.7rem!important}}@media (max-width:1199px) and (min-width:769px){.page-topbar{flex-wrap:wrap;gap:.55rem;row-gap:.5rem;padding:.65rem 1rem}.page-topbar-btn{padding:.35rem .7rem;font-size:var(--fs-xs);flex:0 0 auto}.page-topbar>.page-topbar-countdown{order:99;flex-basis:100%;width:100%;overflow:hidden}.page-topbar-countdown>span{overflow:hidden;text-overflow:ellipsis;min-width:0}.page-topbar-countdown-bar{max-width:none}.page-topbar-select{flex-basis:100%;max-width:none}.it-tabs .tab-btn{padding:.4rem .7rem;font-size:var(--fs-sm)}.it-tab-pane .table-responsive,.it-tab-pane>.card .table-responsive{overflow-x:auto}.modal-resp{max-width:92vw!important}.risk-forecast-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))!important}.stat-card-col{min-width:100px!important}}@media (max-width:768px){.it-tabs .tab-btn{padding:.45rem .65rem;min-height:38px}.modal-resp{max-width:100vw!important;max-height:100vh!important;height:100vh!important;border-radius:0!important}.risk-forecast-grid{grid-template-columns:1fr!important}.stat-card-col{min-width:0!important;flex:0 0 50%;max-width:50%}.roadmap-gantt-wrapper{-webkit-overflow-scrolling:touch}.perf-kpi-svg-wrap,.perf-kpi-table-wrap,.velocity-chart-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.blocker-row{flex-wrap:wrap!important}.blocker-row .blocker-due{min-width:0!important}.help-page-outer{padding:1rem .75rem!important}.help-page-grid{flex-direction:column!important;gap:.75rem!important}.help-sidebar{width:100%!important;position:relative!important;top:0!important}.help-sidebar-inner{display:grid!important;grid-template-columns:1fr 1fr;grid-gap:0;gap:0}.help-sidebar-inner>button{padding:.6rem .75rem!important;font-size:var(--fs-xs)!important;border-right:1px solid var(--surface-muted)}.help-sidebar-inner>button:nth-child(2n){border-right:none}.org-tree-row{margin-left:calc(var(--depth, 0) * 8px)}.org-tree-row-inner{flex-wrap:wrap}.org-tree-badge,.org-tree-meta{min-width:0!important}.org-tree-meta{text-align:left!important;flex-basis:100%;margin-left:28px}.it-tabs .tab-btn{padding:.4rem .55rem;font-size:var(--fs-xs)}}.app-drawer-backdrop,.app-drawer-toggle{display:none}@media (max-width:768px){.app-drawer-toggle{display:flex;align-items:center;justify-content:center;width:44px;height:44px;margin:.5rem auto .25rem;background:transparent;color:var(--sidebar-ink);border:1px solid var(--sidebar-line);border-radius:var(--r-md);cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out)}.app-drawer-toggle:hover{background:var(--sidebar-hover-bg)}.app-drawer-toggle:active{background:var(--line)}.app-shell.drawer-open .app-brand{display:none}.app-shell.drawer-open .app-sidebar{position:fixed;z-index:1050;top:0;bottom:0;left:0;width:240px;box-shadow:var(--e3);animation:drawer-in var(--dur-enter) var(--ease-out)}.app-shell.drawer-open .app-nav-lb,.app-shell.drawer-open .app-nav-section,.app-shell.drawer-open .app-user-meta{display:block}.app-shell.drawer-open .app-nav-item{justify-content:flex-start;padding:.6rem .75rem;gap:.65rem}.app-shell.drawer-open .app-logout{justify-content:flex-start}.app-shell.drawer-open .app-drawer-toggle{margin-left:.6rem}.app-drawer-backdrop{display:block;position:fixed;inset:0;z-index:1040;background:rgba(17,22,51,.32)}.app-shell.drawer-open .app-main{margin-left:var(--sidebar-w-collapsed)}.app-collapse-toggle{display:none!important}}@keyframes drawer-in{0%{transform:translateX(-24px);opacity:.6}to{transform:none;opacity:1}}@media (prefers-reduced-motion:reduce){.app-shell.drawer-open .app-sidebar{animation:none}}.roadmap-filter-toggle{display:none}@media (max-width:768px){.roadmap-filter-toggle{display:inline-flex;align-items:center;gap:.35rem;position:relative;min-height:44px;padding:0 .75rem;margin-left:auto;font-size:var(--fs-sm);font-weight:600;color:var(--ink-3);background:var(--surface-card);border:1px solid var(--line-strong);border-radius:var(--r-sm);cursor:pointer}.roadmap-filter-dot{width:7px;height:7px;border-radius:50%;background:var(--brand)}.roadmap-filters{display:none!important;width:100%;margin-left:0!important}.roadmap-filters.open{display:flex!important}.roadmap-controls select{min-height:44px}.page-topbar>select{flex:1 1 100%;max-width:100%;min-height:36px}.it-tabs{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);padding-right:1.5rem}.it-tabs .tab-group-label{font-size:var(--fs-xs);padding-bottom:0}}@media (max-width:480px){.page-topbar{padding:.5rem .6rem}.page-title{font-size:var(--fs-sm)}.page-topbar-btn{padding:.3rem .55rem;font-size:var(--fs-xs)}.page-topbar-btn span{display:none}.card-body{padding:.65rem .7rem}.container-fluid{padding-left:.5rem!important;padding-right:.5rem!important}.stat-card-col{flex:0 0 100%!important;max-width:100%!important}.org-tree-row{margin-left:calc(var(--depth, 0) * 6px)}.org-tree-row-inner{font-size:var(--fs-sm)!important}.help-page-outer{padding:.75rem .5rem!important}}[role=button]:focus-visible,[role=tab]:focus-visible,[tabindex]:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,textarea:focus-visible{outline:2px solid var(--brand);outline-offset:2px}[role=alertdialog][tabindex="-1"]:focus-visible,[role=dialog][tabindex="-1"]:focus-visible{outline:none}.btn:focus-visible{outline:2px solid var(--brand);outline-offset:2px;box-shadow:none}input:where(:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file])):focus,select:focus-visible,textarea:focus{outline:2px solid var(--brand);outline-offset:-1px;border-color:var(--brand);box-shadow:0 0 0 3px rgba(67,97,238,.18)}.report-filter select:focus-visible{outline:none;box-shadow:none}.sort-th-btn{display:inline-flex;align-items:baseline;gap:.15em;width:100%;justify-content:inherit;background:none;border:0;padding:0;margin:0;font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit;text-align:inherit;cursor:pointer;white-space:nowrap}th.text-end>.sort-th-btn{justify-content:flex-end}.sort-th-btn:focus-visible{outline-offset:1px;border-radius:.2rem}.row-link-btn{display:block;max-width:100%;background:none;border:0;padding:0;margin:0;font:inherit;color:inherit;text-align:left;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-link-btn.row-link-wrap{white-space:normal}.row-link-btn:focus-visible{outline-offset:-2px;border-radius:.2rem}tr:has(>td>.row-link-btn:focus-visible)>td{background-color:var(--brand-bg)}.page-title>h1{font-size:inherit;font-weight:inherit;line-height:inherit;color:inherit;letter-spacing:inherit;margin:0}@media (max-width:768px){.modal-resp.modal-compact{max-width:92vw!important;height:auto!important;max-height:90vh!important;border-radius:var(--r-lg)!important;overflow-y:auto}}.gantt-preset-btn{min-height:32px}.gantt-date-clear{min-width:32px}@media (pointer:coarse){.gantt-preset-btn{min-height:44px}.gantt-date-clear{min-width:44px}}@keyframes t-fade-only{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){*,:after,:before{transition-duration:.01ms!important;transition-delay:0s!important;scroll-behavior:auto!important}.app-collapse-toggle:hover,.app-nav-item:hover,.report-print:hover:not(:disabled),.stat-card:hover,[style*="translateY(-1px)"],[style*="translateY(-2px)"]{transform:none!important}.it-tab-pane.active,.modal-resp{animation:t-fade-only .15s ease-out!important}}.stat-card{border:1px solid var(--line)}.stat-card.is-alert{background-color:var(--surface-card)}.stat-label{font-size:var(--fs-sm);font-weight:500;color:var(--text-muted);text-transform:none;letter-spacing:0}.num,.stat-val{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stat-sub{font-size:var(--fs-xs)}.stat-sub,.stat-unit{color:var(--text-muted);font-weight:500}.stat-unit{font-size:var(--fs-sm);margin-left:1px}.status-pill{display:inline-flex;align-items:center;gap:5px;max-width:160px;padding:1px 8px;border-radius:var(--r-sm);font-size:var(--fs-xs);font-weight:500;line-height:1.5;white-space:nowrap;vertical-align:middle}.status-pill-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.status-pill-text{overflow:hidden;text-overflow:ellipsis;min-width:0}.it-tabs .tab-badge.is-neutral{background:var(--surface-muted);color:var(--ink-3);font-weight:600}.risk-card{border:1px solid var(--line)!important;box-shadow:none}.risk-card.is-alert{border-color:var(--danger-line)!important;background:var(--danger-bg-soft)}.risk-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0;vertical-align:.05em}.risk-track{background:var(--surface-muted);overflow:hidden}.risk-chip,.risk-track{border-radius:var(--r-sm)}.risk-chip{display:inline-flex;align-items:center;gap:5px;padding:1px 8px;font-size:var(--fs-xs);font-weight:500;white-space:nowrap}.risk-stats{font-size:var(--fs-xs);display:grid;grid-template-columns:1fr;grid-gap:2px;gap:2px;margin-bottom:.6rem;color:var(--text-body)}.risk-stats>div{display:flex;justify-content:space-between;gap:6px;white-space:nowrap}.num-cell,.risk-stats strong{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.num-cell{color:var(--ink);text-align:right}.trend-caption{font-size:var(--fs-xs);color:var(--text-muted);font-weight:400}:root{--z-sticky:40;--z-modal:9999;--z-confirm:10000;--z-toast:10050;--z-tip:10100;--page-max:1600px;--page-max-read:1280px}.ui-sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.ui-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;height:36px;padding:0 14px;max-width:100%;border:1px solid transparent;border-radius:var(--r-md);font:inherit;font-size:var(--fs-base);font-weight:500;line-height:1;white-space:nowrap;text-decoration:none;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),transform var(--dur-instant) var(--ease-out)}.ui-btn:active:not(:disabled):not(.is-loading){transform:scale(.97)}.ui-btn:disabled{opacity:.5;cursor:not-allowed}.ui-btn.is-loading{cursor:progress}.ui-btn-label{display:inline-flex;align-items:center;gap:6px;min-width:0}.ui-btn-text{overflow:hidden;text-overflow:ellipsis;min-width:0}.ui-btn-icon{display:inline-flex;flex-shrink:0}.ui-btn-icon svg{width:16px;height:16px;vertical-align:0!important}.ui-btn-sm{height:32px;padding:0 10px;font-size:var(--fs-sm)}.ui-btn-sm .ui-btn-icon svg{width:14px;height:14px}.ui-btn-block{display:flex;width:100%}.ui-btn-primary{background:var(--brand-500);border-color:var(--brand-500);color:var(--on-accent)}.ui-btn-primary:hover:not(:disabled){background:var(--brand-600);border-color:var(--brand-600)}.ui-btn-primary:active:not(:disabled){background:var(--brand-700);border-color:var(--brand-700)}.ui-btn-secondary{background:var(--surface-card);border-color:var(--line-strong);color:var(--ink-2)}.ui-btn-secondary:hover:not(:disabled){background:var(--surface-subtle);border-color:var(--text-faint)}.ui-btn-secondary:active:not(:disabled){background:var(--surface-muted)}.ui-btn-ghost{background:transparent;color:var(--ink-3)}.ui-btn-ghost:hover:not(:disabled){background:var(--surface-muted);color:var(--ink)}.ui-btn-ghost:active:not(:disabled){background:var(--line)}.ui-btn-danger{background:var(--danger);border-color:var(--danger);color:var(--on-accent)}.ui-btn-danger:hover:not(:disabled){background:var(--danger-strong);border-color:var(--danger-strong)}.ui-btn-danger:active:not(:disabled){background:#991b1b;border-color:#991b1b}.ui-btn-icononly{width:36px;padding:0}.ui-btn-icononly.ui-btn-sm{width:32px}.ui-btn-icononly.ui-btn-ghost{color:var(--text-muted)}.ui-btn-icononly.ui-btn-ghost:hover:not(:disabled){color:var(--ink)}.is-loading>.ui-btn-label{visibility:hidden}.ui-spinner{position:absolute;top:50%;left:50%;width:16px;height:16px;margin:-8px 0 0 -8px;border:2px solid;border-right:2px solid transparent;border-radius:50%;animation:ui-spin .7s linear infinite}@keyframes ui-spin{to{transform:rotate(1turn)}}@media (pointer:coarse){.ui-btn{min-height:44px}.ui-btn-icononly{min-width:44px}}@media (prefers-reduced-motion:reduce){.ui-btn:active:not(:disabled){transform:none}.ui-spinner{animation-duration:1.6s}}.ui-modal-backdrop{position:fixed;inset:0;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(17,22,51,.45);animation:ui-fade-in var(--dur-base) var(--ease-out)}.ui-modal-backdrop.ui-layer-confirm{z-index:var(--z-confirm)}.ui-modal-backdrop.is-closing{animation:ui-fade-out var(--dur-exit) var(--ease-in) forwards}@keyframes ui-fade-in{0%{opacity:0}to{opacity:1}}@keyframes ui-fade-out{0%{opacity:1}to{opacity:0}}.ui-modal{position:relative;display:flex;flex-direction:column;width:100%;max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);background:var(--surface-card);border-radius:var(--r-lg);box-shadow:var(--e3);outline:none;animation:t-modal-in var(--modal-open-dur) var(--modal-ease)}.ui-modal.is-closing{animation:ui-modal-out var(--dur-exit) var(--ease-in) forwards}@keyframes ui-modal-out{to{opacity:0;transform:scale(var(--modal-scale))}}.ui-modal-sm{max-width:400px}.ui-modal-md{max-width:560px}.ui-modal-lg{max-width:760px}.ui-modal-xl{max-width:1040px}.ui-modal-full{max-width:calc(100vw - 32px);height:calc(100vh - 32px);height:calc(100dvh - 32px)}.ui-modal-header{display:flex;align-items:flex-start;gap:12px;padding:16px 16px 12px 20px;border-bottom:1px solid var(--line)}.ui-modal-heading{flex:1 1 auto;min-width:0}.ui-modal-title{margin:0;font-size:var(--fs-md);font-weight:600;line-height:1.4;color:var(--ink);overflow-wrap:anywhere}.ui-modal-subtitle{margin:2px 0 0;font-size:var(--fs-sm);color:var(--text-muted)}.ui-modal-close{margin:-4px -4px 0 0;flex-shrink:0}.ui-modal-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:16px 20px;font-size:var(--fs-base);color:var(--text-body)}.ui-modal-footer{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:12px 20px;border-top:1px solid var(--line);background:var(--surface-subtle);border-radius:0 0 var(--r-lg) var(--r-lg)}@media (max-width:768px){.ui-modal-backdrop:has(>.ui-modal:not(.ui-modal-sm)){align-items:flex-end;padding:0}.ui-modal:not(.ui-modal-sm){max-width:100%;max-height:92vh;max-height:92dvh;border-radius:var(--r-xl) var(--r-xl) 0 0;animation:ui-sheet-in var(--dur-enter) var(--ease-out)}.ui-modal-full:not(.ui-modal-sm){height:94vh;height:94dvh;max-height:none}.ui-modal:not(.ui-modal-sm).is-closing{animation:ui-sheet-out var(--dur-exit) var(--ease-in) forwards}.ui-modal:not(.ui-modal-sm) .ui-modal-footer{border-radius:0;padding-bottom:calc(12px + env(safe-area-inset-bottom))}.ui-modal-sm{max-width:92vw}.ui-modal-header{padding:14px 12px 10px 16px}.ui-modal-body{padding:14px 16px}.ui-modal-footer{padding:10px 16px}}@keyframes ui-sheet-in{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes ui-sheet-out{0%{transform:translateY(0)}to{transform:translateY(100%)}}@media (prefers-reduced-motion:reduce){.ui-modal,.ui-modal-backdrop,.ui-modal:not(.ui-modal-sm){animation:t-fade-only .15s ease-out!important}.ui-modal-backdrop.is-closing,.ui-modal.is-closing,.ui-modal:not(.ui-modal-sm).is-closing{animation:ui-fade-out var(--dur-exit) ease-in forwards!important}}.ui-page-header{gap:12px}.ui-page-header-lead{display:flex;gap:12px;flex:1 1 auto}.ui-page-header .page-title,.ui-page-header-lead{align-items:center;min-width:0}.ui-page-header .page-title>h1{display:flex;align-items:center;min-width:0;overflow:hidden}.ui-page-header-title-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-page-header-icon{display:inline-flex;flex:none;margin-right:6px;color:var(--text-muted)}.ui-page-header-meta{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-xs);color:var(--text-muted)}.ui-page-header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;margin-left:auto}.ui-page-body{background:var(--surface-muted);flex:1 1 auto;min-height:0}.ui-page-pad-none{padding:0}.ui-page-pad-sm{padding:10px 12px}.ui-page-pad-md{padding:12px 16px}.ui-page-pad-lg{padding:16px 20px}.ui-page-inner{width:100%;max-width:var(--page-max);margin:0 auto}.ui-page-inner.is-read{max-width:var(--page-max-read)}@media (max-width:768px){.ui-page-pad-lg,.ui-page-pad-md{padding:10px 12px}.ui-page-header-meta{display:none}}.ui-card{display:flex;flex-direction:column;min-width:0;background:var(--surface-card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--e1)}.ui-card-header{display:flex;align-items:flex-start;gap:12px;padding:12px 12px 0}.ui-card-heading{flex:1 1 auto;min-width:0}.ui-card-title{display:flex;align-items:center;gap:6px;margin:0;font-weight:600;line-height:1.4;color:var(--ink)}h2.ui-card-title{font-size:var(--fs-md)}h3.ui-card-title{font-size:var(--fs-base)}.ui-card-icon{display:inline-flex;color:var(--text-muted);flex-shrink:0}.ui-card-desc{margin:2px 0 0;font-size:var(--fs-sm);color:var(--text-muted)}.ui-card-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;margin-left:auto}.ui-card-body{flex:1 1 auto;min-width:0;padding:12px}.ui-card-header+.ui-card-body{padding-top:10px}.ui-card-body.is-flush,.ui-card-header+.ui-card-body.is-flush{padding:0}.ui-card-header+.ui-card-body.is-flush{margin-top:12px;border-top:1px solid var(--line)}.ui-card-body.is-flush{overflow:hidden}.ui-card-body.is-flush,.ui-card-footer{border-radius:0 0 calc(var(--r-lg) - 1px) calc(var(--r-lg) - 1px)}.ui-card-footer{position:-webkit-sticky;position:sticky;bottom:0;display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;padding:10px 12px;border-top:1px solid var(--line);background:var(--surface-subtle)}.ui-card-body.is-flush:has(+.ui-card-footer){border-radius:0}@media (max-width:768px){.ui-card-header{padding:10px 10px 0;flex-wrap:wrap}.ui-card-body{padding:10px}}.ui-tabs{position:relative;border-bottom:1px solid var(--line)}.ui-tabs,.ui-tabs.is-sticky{background:var(--surface-card)}.ui-tabs.is-sticky{position:-webkit-sticky;position:sticky;top:0;z-index:var(--z-sticky)}.ui-tabs-list{position:relative;display:flex;gap:2px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;white-space:nowrap}.ui-tabs-list::-webkit-scrollbar{display:none}.ui-tabs.fade-end .ui-tabs-list{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 32px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 32px),transparent)}.ui-tabs.fade-start .ui-tabs-list{-webkit-mask-image:linear-gradient(90deg,transparent,#000 32px);mask-image:linear-gradient(90deg,transparent,#000 32px)}.ui-tabs.fade-start.fade-end .ui-tabs-list{-webkit-mask-image:linear-gradient(90deg,transparent,#000 32px,#000 calc(100% - 32px),transparent);mask-image:linear-gradient(90deg,transparent,#000 32px,#000 calc(100% - 32px),transparent)}.ui-tab{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;height:40px;padding:0 12px;margin:0;border:0;border-radius:var(--r-sm) var(--r-sm) 0 0;background:none;font:inherit;font-size:var(--fs-base);font-weight:500;color:var(--text-muted);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:color var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out)}.ui-tab:hover:not(:disabled){color:var(--ink);background:var(--surface-subtle)}.ui-tab.is-active{color:var(--brand-600)}.ui-tab:disabled{opacity:.45;cursor:not-allowed}.ui-tab:focus-visible{outline-offset:-2px}.ui-tab-icon{display:inline-flex}.ui-tab-icon svg{width:16px;height:16px}.ui-tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 6px;border-radius:var(--r-full);background:var(--surface-muted);color:var(--ink-3);font-size:11px;font-weight:600;line-height:1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ui-tab-badge.is-danger{background:var(--danger);color:var(--on-accent)}.ui-tabs-indicator{position:absolute;left:0;bottom:0;height:2px;background:var(--brand-500);transform-origin:0 0;pointer-events:none;transition:transform var(--dur-enter) var(--ease-out)}.ui-tabpanel{animation:t-tab-fade-in var(--tab-fade-dur) var(--tab-fade-ease)}.ui-tabpanel:focus-visible{outline-offset:4px;border-radius:var(--r-sm)}@media (pointer:coarse){.ui-tab{min-height:44px}}@media (prefers-reduced-motion:reduce){.ui-seg-thumb,.ui-tabs-indicator{transition:none!important}.ui-tabpanel{animation:none}}.ui-seg{position:relative;isolation:isolate;display:inline-flex;gap:2px;padding:2px;max-width:100%;overflow-x:auto;scrollbar-width:none;background:var(--surface-muted);border-radius:var(--r-md)}.ui-seg::-webkit-scrollbar{display:none}.ui-seg-thumb{position:absolute;top:2px;bottom:2px;left:0;z-index:0;background:var(--surface-card);border-radius:var(--r-sm);box-shadow:0 1px 2px rgba(17,22,51,.1),0 0 0 1px var(--line);transition:transform var(--dur-enter) var(--ease-out),width var(--dur-enter) var(--ease-out)}.ui-seg-btn{position:relative;z-index:1;display:inline-flex;align-items:center;gap:6px;flex-shrink:0;height:30px;padding:0 12px;margin:0;border:0;border-radius:var(--r-sm);background:transparent;font:inherit;font-size:var(--fs-sm);font-weight:500;color:var(--text-body);white-space:nowrap;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:color var(--dur-fast) var(--ease-out),transform var(--dur-instant) var(--ease-out)}.ui-seg-btn.is-active,.ui-seg-btn:hover:not(:disabled){color:var(--ink)}.ui-seg-btn:active:not(:disabled){transform:scale(.97)}.ui-seg-btn:disabled{opacity:.45;cursor:not-allowed}.ui-seg-btn:focus-visible{outline-offset:0}.ui-seg-icon{display:inline-flex}.ui-seg-icon svg{width:14px;height:14px}.ui-seg-sm .ui-seg-btn{height:24px;padding:0 10px;font-size:var(--fs-xs)}@media (pointer:coarse){.ui-seg-btn,.ui-seg-sm .ui-seg-btn{min-height:40px}}.ui-table-root{min-width:0}.ui-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.ui-table{width:100%;margin:0;border-collapse:separate;border-spacing:0;font-size:var(--fs-sm);color:var(--text-body);background:var(--surface-card)}.ui-table th{position:-webkit-sticky;position:sticky;top:0;z-index:1;height:36px;padding:0 12px;background:var(--surface-subtle);font-size:var(--fs-xs);font-weight:500;color:var(--text-muted);text-align:left;white-space:nowrap}.ui-table td,.ui-table th{border-bottom:1px solid var(--line);vertical-align:middle}.ui-table td{height:40px;padding:6px 12px}.ui-table tbody tr:last-child td{border-bottom:0}.ui-table-compact th{height:32px;padding:0 8px}.ui-table-compact td{height:32px;padding:3px 8px}.ui-table .is-right{text-align:right}.ui-table .is-center{text-align:center}.ui-table .is-num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ui-table td.is-num{color:var(--ink)}.ui-sort-btn{align-items:center;gap:4px}.ui-sort-btn:hover{color:var(--ink)}.ui-sort-btn.is-active{color:var(--ink-2)}.ui-sort-arrow{flex-shrink:0;color:var(--line-strong)}.ui-sort-btn:hover .ui-sort-arrow{color:var(--text-muted)}.ui-sort-btn.is-active .ui-sort-arrow{color:var(--brand-500)}th.is-right>.ui-sort-btn{justify-content:flex-end}th.is-center>.ui-sort-btn{justify-content:center}.ui-table.is-clickable tbody tr:not(.ui-table-empty-row){cursor:pointer}.ui-table.is-clickable tbody tr:not(.ui-table-empty-row):hover>td{background:var(--surface-subtle)}.ui-table-empty-row>td{height:auto;padding:0}@media (max-width:768px){.ui-table-cards{background:transparent;padding:8px}.ui-table-cards td.is-center,.ui-table-cards td.is-right{text-align:left}.ui-table-cards thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.ui-table-cards,.ui-table-cards tbody,.ui-table-cards td,.ui-table-cards tr{display:block}.ui-table-cards colgroup{display:none}.ui-table-cards tbody tr{margin:0 0 8px;padding:8px 12px;background:var(--surface-card);border:1px solid var(--line);border-radius:var(--r-md)}.ui-table-cards tbody tr:last-child{margin-bottom:0}.ui-table-cards td,.ui-table-cards.ui-table-compact td{display:grid;grid-template-columns:minmax(88px,38%) minmax(0,1fr);grid-gap:8px;gap:8px;align-items:baseline;justify-items:start;height:auto;padding:4px 0;border:0;text-align:left}.ui-table-cards td:before{content:attr(data-label);font-size:var(--fs-xs);color:var(--text-muted)}.ui-table-cards td:first-child{grid-template-columns:minmax(0,1fr);padding:2px 0 8px;margin-bottom:4px;border-bottom:1px solid var(--line);font-weight:600;color:var(--ink)}.ui-table-cards td.is-mobile-hidden,.ui-table-cards td:first-child:before{display:none}.ui-table-cards .ui-table-empty-row{padding:0}.ui-table-cards .ui-table-empty-row>td{display:block;border:0;margin:0;padding:0}.ui-table-cards .ui-table-empty-row>td:before{display:none}.ui-table.ui-table-cards.is-clickable tbody tr:hover>td{background:none}.ui-table.ui-table-cards.is-clickable tbody tr:not(.ui-table-empty-row):hover{background:var(--surface-subtle)}}.ui-field{display:flex;flex-direction:column;gap:4px;min-width:0}.ui-field.is-inline{flex-direction:row;flex-wrap:wrap;align-items:center;gap:4px 8px}.ui-field.is-inline>.ui-field-control{order:-1}.ui-field.is-inline>.ui-field-error,.ui-field.is-inline>.ui-field-hint{flex-basis:100%}.ui-field-label{margin:0;font-size:var(--fs-sm);font-weight:500;color:var(--ink-2)}.ui-field-req{color:var(--danger)}.ui-field-control{min-width:0}.ui-field-hint{color:var(--text-muted)}.ui-field-error,.ui-field-hint{margin:0;font-size:var(--fs-xs)}.ui-field-error{font-weight:500;color:var(--danger-strong)}.ui-input{display:block;width:100%;height:36px;padding:0 10px;margin:0;border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--surface-card);color:var(--ink);font:inherit;font-size:var(--fs-base);transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.ui-input::placeholder{color:var(--text-muted);opacity:1}.ui-input:hover:not(:disabled):not(:focus){border-color:var(--text-faint)}.ui-input:disabled{background:var(--surface-subtle);color:var(--text-muted);cursor:not-allowed}.ui-input-sm{height:32px;font-size:var(--fs-sm)}.ui-select{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:32px;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;background-size:14px}.has-error .ui-input{border-color:var(--danger)}.has-error .ui-input:focus,.has-error .ui-input:focus-visible{outline-color:var(--danger);border-color:var(--danger);box-shadow:0 0 0 3px rgba(220,38,38,.15)}.ui-input-affix{position:relative}.ui-input.has-suffix{padding-right:40px}.ui-input-suffix{position:absolute;top:50%;right:2px;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:0;border-radius:var(--r-sm);background:none;color:var(--text-muted);cursor:pointer}.ui-input-suffix:hover{color:var(--ink);background:var(--surface-muted)}.ui-input-suffix:focus-visible{outline-offset:-2px}@media (pointer:coarse){.ui-input,.ui-input-sm{min-height:44px;font-size:16px}.ui-input-suffix{width:40px;height:40px}}.ui-chip{display:inline-flex;align-items:center;gap:5px;min-width:0;padding:1px 8px;border-radius:var(--r-sm);font-size:var(--fs-xs);font-weight:500;line-height:1.5;white-space:nowrap;vertical-align:middle}.ui-chip-text{overflow:hidden;text-overflow:ellipsis;min-width:0}.ui-chip-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;background:currentColor}.ui-chip-icon{display:inline-flex;flex-shrink:0}.ui-chip-icon svg{width:12px;height:12px;vertical-align:0!important}.ui-tone-neutral{background:var(--surface-muted);color:var(--ink-3)}.ui-tone-neutral .ui-chip-dot{background:var(--text-faint)}.ui-tone-brand{background:var(--brand-50);color:var(--brand-700)}.ui-tone-brand .ui-chip-dot{background:var(--brand-500)}.ui-tone-success{background:var(--success-bg);color:var(--success-strong)}.ui-tone-success .ui-chip-dot{background:var(--success)}.ui-tone-warning{background:var(--warning-bg);color:var(--warning-strong)}.ui-tone-warning .ui-chip-dot{background:var(--warning-2)}.ui-tone-danger{background:var(--danger-bg-soft);color:var(--danger-strong)}.ui-tone-danger .ui-chip-dot{background:var(--danger)}.ui-tag{border-radius:var(--r-full);padding:2px 10px}.ui-tag.has-remove{padding-right:3px}.ui-tag .ui-chip-text{display:inline-flex;align-items:center;gap:2px;overflow:visible}.ui-btn.ui-tag-remove{width:18px;height:18px;min-width:0;min-height:0;padding:0;border-radius:var(--r-full);color:inherit}.ui-btn.ui-tag-remove:after{content:"";position:absolute;inset:-4px}.ui-btn.ui-tag-remove .ui-btn-icon svg{width:12px;height:12px}.ui-btn.ui-tag-remove:hover:not(:disabled){background:rgba(17,22,51,.08);color:inherit}.ui-empty{display:flex;flex-direction:column;align-items:center;gap:4px;padding:32px 16px;text-align:center}.ui-empty.is-compact{padding:20px 12px}.ui-empty-icon{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;margin-bottom:8px;border-radius:var(--r-full);background:var(--brand-50);color:var(--spark)}.ui-empty-icon svg{width:24px;height:24px;vertical-align:0!important}.ui-empty-title{margin:0;font-size:var(--fs-base);font-weight:600;color:var(--ink)}.ui-empty-hint{margin:0;max-width:44ch;font-size:var(--fs-sm);color:var(--text-muted)}.ui-empty-action{margin-top:12px}.ui-alert{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid;border-radius:var(--r-md);font-size:var(--fs-sm);line-height:1.5;color:var(--ink-2)}.ui-alert-info{background:var(--info-bg);border-color:var(--info-line)}.ui-alert-info .ui-alert-icon{color:var(--info)}.ui-alert-success{background:#f0fdf4;border-color:var(--success-line)}.ui-alert-success .ui-alert-icon{color:var(--success)}.ui-alert-warning{background:#fffbeb;border-color:var(--warning-line)}.ui-alert-warning .ui-alert-icon{color:var(--warning-2)}.ui-alert-danger{background:var(--danger-bg-soft);border-color:var(--danger-line)}.ui-alert-danger .ui-alert-icon{color:var(--danger)}.ui-alert-icon{display:inline-flex;flex-shrink:0;padding-top:2px}.ui-alert-icon svg{width:16px;height:16px;vertical-align:0!important}.ui-alert-content{flex:1 1 auto;min-width:0;overflow-wrap:anywhere}.ui-alert-title{margin:0;font-weight:600;color:var(--ink)}.ui-alert-text{color:var(--text-body)}.ui-alert-title+.ui-alert-text{margin-top:2px}.ui-alert-action{flex-shrink:0;align-self:center}.ui-alert-close{margin:-6px -6px -6px 0;flex-shrink:0}@media (max-width:768px){.ui-alert{flex-wrap:wrap}.ui-alert-content{flex-basis:0}.ui-alert-close{order:2}.ui-alert-action{order:3;flex-basis:100%;padding-left:26px}}.ui-toasts{position:fixed;right:16px;bottom:16px;z-index:var(--z-toast);width:min(380px,calc(100vw - 32px));pointer-events:none}.ui-toasts-stack{display:flex;flex-direction:column;gap:8px}.ui-toast{pointer-events:auto;display:flex;align-items:flex-start;gap:10px;padding:10px 6px 10px 12px;background:var(--surface-card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--e3);animation:ui-toast-in var(--dur-enter) var(--ease-out)}.ui-toast.is-leaving{animation:ui-toast-out var(--dur-exit) var(--ease-in) forwards}@keyframes ui-toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes ui-toast-out{to{opacity:0;transform:translateY(4px) scale(.98)}}.ui-toast-icon{display:inline-flex;flex-shrink:0;padding-top:7px}.ui-toast-icon svg{width:16px;height:16px;vertical-align:0!important}.ui-toast-success .ui-toast-icon{color:var(--success)}.ui-toast-error .ui-toast-icon{color:var(--danger)}.ui-toast-info .ui-toast-icon{color:var(--brand-500)}.ui-toast-warning .ui-toast-icon{color:var(--warning-2)}.ui-toast-content{flex:1 1 auto;min-width:0;padding:5px 0;overflow-wrap:anywhere}.ui-toast-title{font-weight:600;color:var(--ink)}.ui-toast-text,.ui-toast-title{margin:0;font-size:var(--fs-sm)}.ui-toast-text{color:var(--text-body)}.ui-toast-title+.ui-toast-text{margin-top:1px}.ui-toast-action{flex-shrink:0;align-self:center;padding:4px 8px;margin:0;border:0;border-radius:var(--r-sm);background:none;font:inherit;font-size:var(--fs-sm);font-weight:600;color:var(--brand-600);cursor:pointer}.ui-toast-action:hover{background:var(--brand-50)}.ui-toast-close{flex-shrink:0}@media (max-width:768px){.ui-toasts{left:50%;right:auto;transform:translateX(-50%);bottom:calc(12px + env(safe-area-inset-bottom))}}@media (prefers-reduced-motion:reduce){.ui-toast{animation:t-fade-only .15s ease-out}.ui-toast.is-leaving{animation:ui-fade-out var(--dur-exit) ease-in forwards}}.ui-tip-anchor{display:contents}.ui-tip,.ui-tooltip-surface{--tip-accent:var(--page-acc,var(--brand-500));border:1px solid color-mix(in srgb,var(--tip-accent) 28%,var(--line));background:linear-gradient(135deg,color-mix(in srgb,var(--tip-accent) 7%,var(--surface-card)),var(--surface-card) 72%);color:var(--ink);font-size:var(--fs-sm);font-weight:500;line-height:1.5;overflow-wrap:anywhere;white-space:pre-line;box-shadow:0 14px 30px -14px rgba(17,22,51,.38),0 3px 9px -4px rgba(17,22,51,.16)}.ui-tip,.ui-tooltip-surface{padding:8px 11px 9px;border-radius:var(--r-md)}.ui-tip{position:fixed;z-index:var(--z-tip);max-width:min(360px,calc(100vw - 24px));pointer-events:none;visibility:hidden}.ui-tip:before,.ui-tooltip-surface:before{content:"";display:block;width:18px;height:3px;margin-bottom:6px;border-radius:var(--r-full);background:var(--tip-accent)}.rc-tooltip.ui-tooltip-surface{white-space:normal}.roadmap-gantt-tooltip.ui-tooltip-surface{max-width:min(360px,calc(100vw - 24px))}.roadmap-gantt-tooltip [style*=opacity]{opacity:1!important;color:var(--text-muted)!important}.roadmap-gantt-tooltip [style*="#fca5a5"]{color:var(--danger-strong)!important}.roadmap-gantt-tooltip [style*="#86efac"]{color:var(--success-strong,var(--success))!important}.ui-tip.is-placed{visibility:visible;animation:ui-tip-in var(--dur-fast) var(--ease-out)}.ui-tip.is-placed.is-below{animation-name:ui-tip-in-below}@keyframes ui-tip-in{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:none}}@keyframes ui-tip-in-below{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.ui-tip.is-placed{animation:t-fade-only var(--dur-fast) ease-out}}@media print{.ui-tip,.ui-toasts{display:none!important}}.stat-card-col{min-width:0}.stat-card,.stat-val{min-width:0;max-width:100%}.stat-val{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.work-task-row{transition:background-color var(--dur-fast) var(--ease-out)}.work-task-row:not(.is-selected):focus-within,.work-task-row:not(.is-selected):hover{background-color:var(--surface-subtle)}.work-task-row.is-selected{background-color:var(--info-bg)}.work-task-link{text-decoration:none;color:var(--ink-2);transition:color var(--dur-fast) var(--ease-out)}.work-task-link:focus-visible,.work-task-link:hover{color:var(--brand);text-decoration:underline}.work-filter-clear{color:var(--text-muted)}.work-filter-clear:focus-visible,.work-filter-clear:hover{color:var(--danger-strong)}.app-lang-btn:active,.app-logout:active,.it-tabs .tab-btn:active,.page-topbar-btn:not(:disabled):active,.work-filter-clear:active{transform:scale(.97);transition-duration:var(--dur-instant)}.app-lang-btn,.app-logout,.it-tabs .tab-btn,.page-topbar-btn{transition-property:background-color,border-color,color,box-shadow,transform;transition-timing-function:var(--ease-spring),var(--ease-spring),var(--ease-spring),var(--ease-spring),var(--ease-spring)}.num-pop{display:inline-block;animation:num-pop var(--dur-emph) var(--ease-spring) both}@keyframes num-pop{0%{opacity:0;transform:translateY(8px);filter:blur(2px)}to{opacity:1;transform:none;filter:none}}.badge-pop{animation:badge-pop var(--dur-emph) var(--ease-spring) both,badge-ring 1.2s var(--ease-out) 1 both}@keyframes badge-pop{0%{transform:scale(.6);opacity:.4}to{transform:scale(1);opacity:1}}@keyframes badge-ring{0%{box-shadow:0 0 0 0 rgba(220,38,38,.35)}to{box-shadow:0 0 0 7px rgba(220,38,38,0)}}.badge-dim{animation:t-fade-only var(--dur-exit) var(--ease-out) both}.risk-track>*{transform-origin:left center;animation:risk-fill .6s var(--ease-out) both}@keyframes risk-fill{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.row>:nth-child(2) .risk-track>*{animation-delay:30ms}.row>:nth-child(3) .risk-track>*{animation-delay:60ms}.row>:nth-child(4) .risk-track>*{animation-delay:90ms}.row>:nth-child(5) .risk-track>*{animation-delay:.12s}.row>:nth-child(6) .risk-track>*{animation-delay:.15s}.row>:nth-child(n+7) .risk-track>*{animation-delay:.18s}.stat-card-col{animation:dash-enter var(--dur-enter) var(--ease-out) both}.stat-card-col:nth-child(2){animation-delay:40ms}.stat-card-col:nth-child(3){animation-delay:80ms}.stat-card-col:nth-child(4){animation-delay:.12s}.stat-card-col:nth-child(5){animation-delay:.16s}.stat-card-col:nth-child(6){animation-delay:.2s}@keyframes dash-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.stat-card{position:relative}.stat-spark{position:absolute;right:.85rem;bottom:.8rem;line-height:0;opacity:.9;pointer-events:none}@media (max-width:575.98px){.stat-spark{display:none}}.success-check-ring{stroke-dasharray:63;stroke-dashoffset:63;animation:check-draw .45s var(--ease-out) 40ms forwards;opacity:.35}.success-check-path{stroke-dasharray:20;stroke-dashoffset:20;animation:check-draw .45s var(--ease-out) .14s forwards}@keyframes check-draw{to{stroke-dashoffset:0}}.ui-field-control.is-shaking{animation:field-shake .4s var(--ease-out)}@keyframes field-shake{0%,to{transform:none}20%{transform:translateX(-6px)}45%{transform:translateX(5px)}70%{transform:translateX(-3px)}88%{transform:translateX(1px)}}@media (prefers-reduced-motion:reduce){.app-lang-btn:active,.app-logout:active,.it-tabs .tab-btn:active,.page-topbar-btn:not(:disabled):active,.work-filter-clear:active{transform:none}.badge-pop,.num-pop,.stat-card-col{animation:t-fade-only .15s linear both}.badge-pop{box-shadow:none}.risk-track>*{animation:none}.success-check-path,.success-check-ring{animation:none;stroke-dashoffset:0;opacity:1}.ui-field-control.is-shaking{animation:none}}.stat-open{--stat-accent:var(--brand-500)}.stat-overdue{--stat-accent:var(--danger-2)}.stat-in_progress{--stat-accent:var(--violet)}.stat-done{--stat-accent:var(--success-3)}.stat-risk{--stat-accent:var(--warning)}.stat-departments{--stat-accent:var(--violet)}.stat-at_risk{--stat-accent:var(--risk-high)}.risk-card[data-level=low]{--risk-edge:var(--risk-low)}.risk-card[data-level=med]{--risk-edge:var(--risk-med)}.risk-card[data-level=high]{--risk-edge:var(--risk-high)}.risk-card[data-level=crit]{--risk-edge:var(--risk-crit)}.ui-avatar{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:50%;font-weight:700;line-height:1;letter-spacing:0;box-shadow:0 0 0 2px var(--surface-card),0 1px 3px rgba(17,22,51,.18)}.it-tabs .tab-group[data-group=plan]{--grp:var(--brand-500);--grp-text:var(--brand-600)}.it-tabs .tab-group[data-group=todo]{--grp:var(--risk-high);--grp-text:var(--risk-high-text)}.it-tabs .tab-group[data-group=team]{--grp:var(--violet);--grp-text:var(--violet)}.it-tabs .tab-group[data-group=history]{--grp:var(--success-2);--grp-text:var(--success-strong)}.it-tabs .tab-group-label{color:var(--grp-text,var(--text-muted))}.it-tabs .tab-btn svg{color:var(--grp,currentColor)}.it-tabs .tab-btn.active{background:var(--grp,var(--brand-500));color:var(--on-accent);border-bottom-color:transparent;font-weight:600;border-radius:var(--r-md) var(--r-md) 0 0}.it-tabs .tab-group[data-group=todo] .tab-btn.active{background:var(--risk-high-text)}.it-tabs .tab-group[data-group=team] .tab-btn.active{background:var(--violet)}.it-tabs .tab-group[data-group=history] .tab-btn.active{background:var(--success-strong)}.it-tabs .tab-btn.active svg,.it-tabs .tab-btn.active:hover{color:var(--on-accent)}.app-nav-item.active{color:var(--brand-700);font-weight:600}.app-nav-item.active .app-nav-ic{color:var(--brand-700)!important}.app-nav-item:not(.active):hover .app-nav-ic{filter:saturate(1.2)}.card-header>*>.lucide:first-child,.card-header>.lucide{color:var(--brand-500)}.page-topbar-split>.page-topbar-btn:first-child{background:var(--brand-50);border-color:var(--brand-200);color:var(--brand-700)}.page-topbar-split>.page-topbar-btn:first-child:not(:disabled):hover{background:var(--brand-100)}.app-main{background:radial-gradient(1100px 360px at 88% -140px,rgba(67,97,238,.1),transparent 70%),radial-gradient(760px 300px at 4% -120px,rgba(124,92,255,.07),transparent 70%),var(--body-bg)}.risk-card .ui-avatar{margin-right:5px;vertical-align:middle}.risk-card,.stat-card{--acc:var(--stat-accent,var(--risk-edge,var(--line-strong)));border-top:1px solid var(--line)!important}.risk-card{background-color:var(--surface-card)}.risk-card,.stat-card{background-image:radial-gradient(130% 95% at 0 0,color-mix(in srgb,var(--acc) 13%,transparent) 0,transparent 62%);border-color:color-mix(in srgb,var(--acc) 38%,var(--line))!important;box-shadow:0 1px 2px color-mix(in srgb,var(--acc) 18%,transparent),0 6px 16px -8px color-mix(in srgb,var(--acc) 38%,transparent)}.dq-chip{display:inline-flex;align-items:center;justify-content:center;flex:none;width:18px;height:18px;border-radius:var(--r-full);background:var(--warning-bg);color:var(--warning-strong)}.risk-track{background:color-mix(in srgb,var(--line-strong) 45%,var(--surface-muted))}.risk-track>*{box-shadow:inset 0 -1px 0 rgba(0,0,0,.08)}.app-sidebar{background:radial-gradient(260px 220px at 0 0,rgba(67,97,238,.1),transparent 75%),radial-gradient(220px 200px at 100% 100%,rgba(124,92,255,.08),transparent 75%),var(--sidebar-bg)}.app-nav-section{color:var(--brand-600);display:flex;align-items:center;gap:.45rem}.app-nav-section:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--brand-400);flex:none}.app-nav-ic{width:28px;height:28px;border-radius:var(--r-sm);background:color-mix(in srgb,currentColor 13%,transparent)}.app-nav-item:hover{background:color-mix(in srgb,var(--brand-500) 7%,transparent)}.app-nav-item:not(.active):hover .app-nav-ic{background:color-mix(in srgb,currentColor 20%,transparent)}.app-nav-item.active{background:var(--brand-100);box-shadow:inset 0 0 0 1px var(--brand-200)}.app-nav-item.active .app-nav-ic{background:var(--brand-500);color:var(--on-accent)!important}.app-nav-item.active:before{display:none}.app-logout .app-nav-ic{background:transparent}.app-user-card{background:linear-gradient(135deg,var(--brand-50),var(--surface-card) 70%);border-color:var(--brand-200)}.app-user-avatar{background:linear-gradient(135deg,var(--brand-500),var(--spark));color:var(--on-accent)}.app-user-role{background:var(--brand-100);color:var(--brand-700)}.app-user-dept{background:color-mix(in srgb,var(--violet) 12%,#fff);color:var(--violet)}.app-user-card{position:relative;overflow:hidden;align-items:center;gap:.7rem;padding:.7rem .75rem;border-radius:var(--r-lg);background:radial-gradient(120px 90px at 100% 0,rgba(124,92,255,.16),transparent 70%),linear-gradient(135deg,var(--brand-50),var(--surface-card) 75%);border:1px solid var(--brand-200);box-shadow:var(--e1)}.app-user-avatar{position:relative;width:40px;height:40px;font-size:var(--fs-md);box-shadow:0 0 0 2px var(--surface-card),0 2px 6px rgba(67,97,238,.35)}.app-user-dot{position:absolute;right:-1px;bottom:-1px;width:11px;height:11px;border-radius:50%;background:var(--success-3);box-shadow:0 0 0 2px var(--surface-card)}.app-user-name{font-size:var(--fs-base);font-weight:700;line-height:1.2}.app-user-email{font-size:var(--fs-xs);color:var(--text-muted);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-user-tags{margin-top:.3rem}.app-user-dept,.app-user-role{border-radius:var(--r-full);padding:.05rem .5rem}.app-user-role.executive{background:color-mix(in srgb,var(--violet) 14%,#fff);color:var(--violet)}.app-user-role.manager{background:var(--brand-100);color:var(--brand-700)}.app-shell.collapsed .app-user-card{padding:.45rem;background:var(--brand-50)}.app-shell.collapsed .app-user-avatar{width:34px;height:34px}.app-sidebar-footer{border-top:0;background:linear-gradient(180deg,transparent,rgba(67,97,238,.06))}:root{--teal:#0d9488}.app-main{--page-acc:var(--brand-500);--page-acc-ink:color-mix(in srgb,var(--page-acc) 72%,#111633);background:radial-gradient(1100px 360px at 88% -140px,color-mix(in srgb,var(--page-acc) 12%,transparent),transparent 70%),radial-gradient(760px 300px at 4% -120px,color-mix(in srgb,var(--page-acc) 7%,transparent),transparent 70%),var(--body-bg)}.ui-page-header{background:linear-gradient(90deg,color-mix(in srgb,var(--page-acc) 9%,var(--topbar-bg)),var(--topbar-bg) 50%)}.ui-page-header-icon{width:30px;height:30px;align-items:center;justify-content:center;margin-right:10px;border-radius:var(--r-md);background:color-mix(in srgb,var(--page-acc) 14%,#fff);color:var(--page-acc-ink)}.ui-card{background-image:radial-gradient(120% 70% at 0 0,color-mix(in srgb,var(--page-acc) 7%,transparent),transparent 60%);border-color:color-mix(in srgb,var(--page-acc) 22%,var(--line))}.ui-card-icon{width:26px;height:26px;align-items:center;justify-content:center;border-radius:var(--r-sm);background:color-mix(in srgb,var(--page-acc) 13%,#fff);color:var(--page-acc-ink)}.ui-table th{background:color-mix(in srgb,var(--page-acc) 7%,var(--surface-subtle));color:var(--ink-3);font-weight:600}.ui-table tbody tr:hover>td{background:color-mix(in srgb,var(--page-acc) 5%,transparent)}.ui-tab.is-active{color:var(--page-acc-ink)}.ui-tab.is-active .ui-tab-badge{background:color-mix(in srgb,var(--page-acc) 16%,#fff);color:var(--page-acc-ink)}.ui-tabs-indicator{background:var(--page-acc)}.ui-tab:hover:not(:disabled){background:color-mix(in srgb,var(--page-acc) 6%,transparent)}.help-mini{--acc:var(--brand-500);background:color-mix(in srgb,var(--acc) 8%,var(--surface-card));border:1px solid color-mix(in srgb,var(--acc) 22%,var(--line))}.help-mini:nth-child(2){--acc:var(--success-3)}.help-mini:nth-child(3){--acc:var(--warning)}.help-mini:nth-child(4){--acc:var(--violet)}@media screen{.report-lede{background:color-mix(in srgb,var(--page-acc) 8%,var(--surface-card));border:1px solid color-mix(in srgb,var(--page-acc) 20%,var(--line))}}.ui-tone-neutral{background:color-mix(in srgb,var(--brand-500) 9%,#fff);color:var(--brand-700)}.report-sheet,.report-sheet *{-webkit-print-color-adjust:exact;print-color-adjust:exact}.report-sheet{background-image:radial-gradient(520px 220px at 0 0,color-mix(in srgb,var(--page-acc,var(--brand-500)) 10%,transparent),transparent 70%),radial-gradient(420px 200px at 100% 0,color-mix(in srgb,var(--violet) 7%,transparent),transparent 70%)}.report-kicker{color:var(--brand-600)}.report-lede{background:color-mix(in srgb,var(--brand-500) 8%,#fff);border:1px solid var(--brand-100)}.report-period .report-period-range{color:var(--brand-700)}.report-figures{border-color:var(--brand-100);background:color-mix(in srgb,var(--brand-500) 3%,#fff);border-radius:var(--r-md)}.report-figure strong{color:var(--brand-600)}.report-figure:nth-child(2) strong{color:var(--success-strong)}.report-figure:nth-child(3) strong{color:var(--violet)}.report-figure:nth-child(5) strong{color:var(--danger-strong)}.report-figure-label{color:var(--ink-3)}.report-table thead th{background:color-mix(in srgb,var(--brand-500) 8%,#fff);color:var(--brand-700);border-bottom:2px solid var(--brand-200)}.report-table tbody tr:nth-child(2n)>td,.report-table tbody tr:nth-child(2n)>th{background:color-mix(in srgb,var(--brand-500) 3%,#fff)}.report-table tfoot td,.report-table tfoot th{background:var(--brand-50);color:var(--brand-700)}.report-result.is-on{background:var(--success-bg-2);border-radius:var(--r-sm);padding:.05rem .4rem}.report-section h2{color:var(--brand-700)}.report-foot{background:color-mix(in srgb,var(--brand-500) 4%,#fff);border-radius:var(--r-md);padding:.8rem 1rem;border-top:0}.report-now>div{background:color-mix(in srgb,var(--brand-500) 6%,#fff)}.report-now>div:nth-child(2) dd{color:var(--danger-strong)}.report-now>div:nth-child(3) dd{color:var(--violet)}.report-now>div:nth-child(4) dd{color:var(--warning-strong)}.report-now>div:first-child dd{color:var(--brand-600)}.attn-chip,.report-now .is-alert{background:var(--danger-bg-soft)}.attn-chip{display:inline-flex;align-items:center;gap:3px;margin-left:8px;padding:0 7px;vertical-align:1px;border-radius:var(--r-full);color:var(--danger-strong);border:1px solid var(--danger-line);font-size:var(--fs-xs);font-weight:600;line-height:17px;white-space:nowrap}.ui-tip.ui-tip-rich{max-width:300px;padding:10px 12px 11px;background:var(--surface-card);color:var(--ink);border:1px solid var(--brand-200);border-radius:var(--r-md);font-size:var(--fs-sm);box-shadow:0 14px 32px -10px rgba(17,22,51,.3),0 2px 6px rgba(17,22,51,.08)}.tip-rich{--tr:var(--brand-600);--tr-bg:var(--brand-100);display:grid;grid-gap:6px;gap:6px;text-align:left}.tip-rich[data-tone=warning]{--tr:var(--warning-strong);--tr-bg:var(--warning-bg)}.tip-rich[data-tone=danger]{--tr:var(--danger-strong);--tr-bg:var(--danger-bg)}.tip-rich p{margin:0}.tip-rich-title{display:flex;align-items:center;gap:7px;font-weight:700;color:var(--ink)}.tip-rich-icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:var(--r-full);background:var(--tr-bg);color:var(--tr);flex:none}.tip-rich ul{margin:0;padding:0;list-style:none;display:grid;grid-gap:3px;gap:3px}.tip-rich li{position:relative;padding-left:14px;line-height:1.4;color:var(--ink-2,var(--ink))}.tip-rich li:before{content:"";position:absolute;left:3px;top:.55em;width:6px;height:6px;border-radius:50%;background:var(--tr)}.tip-rich-hint{padding-top:6px;border-top:1px solid var(--line);font-size:var(--fs-xs);color:var(--text-muted);line-height:1.45}.kanban-board-scroll{overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;scrollbar-color:var(--line-strong,#cbd5e1) transparent;scroll-behavior:smooth;-webkit-overflow-scrolling:touch}.kanban-board-scroll::-webkit-scrollbar{height:8px}.kanban-board-scroll::-webkit-scrollbar-track{background:var(--surface-muted,#f1f5f9);border-radius:999px;margin:0 1rem}.kanban-board-scroll::-webkit-scrollbar-thumb{background:var(--line-strong,#cbd5e1);border-radius:999px;border:2px solid var(--surface-muted,#f1f5f9)}.kanban-board-scroll::-webkit-scrollbar-thumb:hover{background:var(--text-muted,#94a3b8)}.rc-tooltip,.roadmap-gantt-tooltip,.ui-tip,.ui-tooltip-surface,[class*=-tooltip],[class*=tooltip]{display:none!important;visibility:hidden!important;opacity:0!important;pointer-events:none!important}