:root{--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--font-xs:11px;--font-sm:12px;--font-base:14px;--font-md:15px;--font-lg:18px;--font-xl:22px;--font-2xl:28px;--lh-xs:16px;--lh-sm:18px;--lh-base:22px;--lh-lg:26px;--lh-xl:30px;--lh-2xl:36px;--font-family-ui:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-family-mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--gray-50:#fafaf7;--gray-100:#f7f5f2;--gray-200:#e8e4de;--gray-300:#d4cfc6;--gray-400:#b4afa6;--gray-500:#96918a;--gray-600:#6b6760;--gray-700:#4a4741;--gray-800:#2b2925;--gray-900:#1f1d1a;--topbar-height:56px;--sidebar-header-height:48px;--sidebar-footer-height:28px;--sidebar-width-default:500px;--sidebar-width-narrow:430px;--sidebar-width-wide:576px;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--shadow-sm:0 1px 2px #00000040;--shadow-md:0 4px 12px #0000004d}:root,:root[data-theme=dark]{--color-primary:#ff9974;--color-primary-hov:#ffb295;--color-primary-soft:#3a261d;--color-bg:#1a1816;--color-bg-subtle:#232120;--color-bg-sidebar:#1f1d1b;--color-border:#353230;--color-border-strong:#4a4642;--color-text:#f0ede8;--color-text-muted:#a8a39b;--color-text-subtle:#7a756d;--status-planning:#818cf8;--status-active:#38bdf8;--status-testing:#fbbf24;--status-launching:#c084fc;--status-done:#34d399;--status-blocked:#f87171;--signal-overdue:#ef4444;--signal-at-risk:#f97316;--signal-priority-high:#f59e0b;--signal-ok:#22c55e;--signal-flagged:#ff9974;--chat-user-bg:#3a261d;--chat-user-border:#ff9974;--chat-ai-bg:#242220;--chat-ai-border:#353230;--chat-ai-accent:#ff9974;--chat-citation-bg:#1e1b3a;--chat-citation-text:#a5b4fc;--chat-streaming:#ff9974;--chat-banner-bg:#3d2f13;--chat-banner-text:#fde68a}:root[data-theme=light]{--color-primary:#f4845f;--color-primary-hov:#e06d47;--color-primary-soft:#fef1eb;--color-bg:#fff;--color-bg-subtle:#fafaf7;--color-bg-sidebar:#f7f5f2;--color-border:#e8e4de;--color-border-strong:#d4cfc6;--color-text:#1f1d1a;--color-text-muted:#6b6760;--color-text-subtle:#96918a;--status-planning:#6366f1;--status-active:#0ea5e9;--status-testing:#f59e0b;--status-launching:#a855f7;--status-done:#10b981;--status-blocked:#ef4444;--signal-overdue:#dc2626;--signal-at-risk:#ea580c;--signal-priority-high:#d97706;--signal-ok:#16a34a;--signal-flagged:#f4845f;--chat-user-bg:#fef1eb;--chat-user-border:#f4845f;--chat-ai-bg:#fff;--chat-ai-border:#e8e4de;--chat-ai-accent:#f4845f;--chat-citation-bg:#eef2ff;--chat-citation-text:#4338ca;--chat-streaming:#f4845f;--chat-banner-bg:#fef3c7;--chat-banner-text:#78350f}@media (width<=767px){:root{--font-xs:13px;--font-sm:14px;--font-base:16px;--font-md:17px;--font-lg:20px;--font-xl:24px;--font-2xl:30px;--lh-xs:18px;--lh-sm:20px;--lh-base:24px;--lh-lg:28px;--lh-xl:32px;--lh-2xl:38px}}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0}body{font-family:var(--font-family-ui);font-size:var(--font-base);line-height:var(--lh-base);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--color-primary);text-decoration:none}a:hover{color:var(--color-primary-hov);text-decoration:underline}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--color-border-strong)}.app-shell{grid-template-columns:minmax(0, 1fr) var(--sidebar-width-default);grid-template-rows:var(--topbar-height) 1fr;grid-template-areas:"topbar topbar""main sidebar";height:100dvh;display:grid;overflow:hidden}.app-shell--resizable{grid-template-columns:minmax(0, 1fr) var(--dynamic-sidebar-width,var(--sidebar-width-default))}@media (width<=1365px){.app-shell{grid-template-columns:minmax(0, 1fr) var(--sidebar-width-narrow)}.app-shell--resizable{grid-template-columns:minmax(0, 1fr) var(--dynamic-sidebar-width,var(--sidebar-width-narrow))}}@media (width>=1600px){.app-shell{grid-template-columns:minmax(0, 1fr) var(--sidebar-width-wide)}.app-shell--resizable{grid-template-columns:minmax(0, 1fr) var(--dynamic-sidebar-width,var(--sidebar-width-wide))}}.app-shell--sidebar-closed{grid-template-areas:"topbar""main";grid-template-columns:1fr!important}@media (width<=767px){.app-shell,.app-shell--resizable{grid-template-areas:"topbar""main";grid-template-columns:1fr!important}.app-shell__sidebar,.sidebar-resize-handle{display:none!important}.app-shell__main{padding-bottom:140px;padding-left:var(--space-3);padding-right:var(--space-3);box-sizing:border-box;-webkit-overflow-scrolling:touch;min-width:0;max-width:100vw;overflow-x:hidden}.app-shell__main>*{box-sizing:border-box;max-width:100%}.app-shell__topbar{padding:0 var(--space-3);gap:0}.app-shell__topbar-nav,.app-shell__topbar-search,.app-shell__topbar-desktop-only{display:none!important}.app-shell__topbar-mobile-menu{align-items:center;display:flex!important}.ant-typography h1,.ant-typography h2,h1.ant-typography,h2.ant-typography{word-break:keep-all;overflow-wrap:normal;white-space:normal;font-size:var(--font-lg)!important}.ant-tabs{max-width:100%}.ant-tabs-nav-wrap{scrollbar-width:none;-webkit-overflow-scrolling:touch;overflow:auto visible!important}.ant-tabs-nav-wrap::-webkit-scrollbar{display:none}.ant-tabs-nav-list{flex-wrap:nowrap!important}.ant-tabs-tab{padding:8px!important;font-size:13px!important}.ant-tabs-nav-operations{display:none!important}.ant-tabs-tab .ant-badge{vertical-align:middle}.ant-tabs-tab .ant-badge .ant-badge-count{min-width:16px;height:16px;padding:0 4px;line-height:16px;font-size:9px!important}.ant-table-wrapper{-webkit-overflow-scrolling:touch;overflow-x:auto}.ant-input,.ant-input-affix-wrapper input,textarea.ant-input,.composer textarea{font-size:16px!important}body,.app-shell__main,.app-shell__main *{font-size:16px;line-height:1.6}h1.ant-typography,.ant-typography h1{font-size:22px!important}h2.ant-typography,.ant-typography h2{font-size:20px!important}h3.ant-typography,.ant-typography h3{font-size:18px!important}h4.ant-typography,.ant-typography h4{font-size:17px!important}h5.ant-typography,.ant-typography h5{font-size:16px!important;font-weight:600!important}}.app-shell__topbar{height:var(--topbar-height);padding:0 var(--space-4);border-bottom:1px solid var(--color-border);background:var(--color-bg);grid-area:topbar;justify-content:space-between;align-items:center;display:flex}.app-shell__topbar-brand{align-items:center;gap:var(--space-3);font-size:var(--font-lg);color:var(--color-primary);font-weight:600;display:flex}.app-shell__topbar-nav{gap:var(--space-2);margin-left:var(--space-8);flex:1;display:flex}.app-shell__topbar-nav a{padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:var(--font-base);color:var(--color-text-muted);text-decoration:none}.app-shell__topbar-nav a:hover{background:var(--color-bg-subtle);color:var(--color-text);text-decoration:none}.app-shell__topbar-nav a.is-active{background:var(--color-primary-soft);color:var(--color-primary)}.topbar-action{border:1px solid var(--color-border);border-radius:var(--radius-md);min-width:32px;height:32px;color:var(--color-text);font-size:var(--font-sm);cursor:pointer;white-space:nowrap;box-sizing:border-box;background:0 0;justify-content:center;align-items:center;gap:6px;padding:0 10px;line-height:1;transition:background .15s,border-color .15s;display:inline-flex}.topbar-action:hover{background:var(--color-bg-subtle);border-color:var(--color-border-strong,var(--color-border))}.topbar-action--theme .anticon{font-size:14px}.topbar-action--cost{cursor:default;font-size:var(--font-xs);padding:0 8px}.topbar-action--cost:hover{background:0 0}.topbar-actions{align-items:center;gap:8px;display:flex}.app-shell__main{padding:var(--space-6);background:var(--color-bg);grid-area:main;overflow-y:auto}.sidebar-resize-handle{cursor:col-resize;z-index:10;background:0 0;grid-area:sidebar;width:4px;margin-right:-4px;transition:background .15s;position:relative}.sidebar-resize-handle:hover,.sidebar-resize-handle:active{background:var(--color-primary)}.app-shell__sidebar{border-left:1px solid var(--color-border);background:var(--color-bg-sidebar);flex-direction:column;grid-area:sidebar;display:flex;overflow:hidden}.staleness-banner{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);color:#78350f;font-size:var(--font-sm);background:#fef3c7;border-bottom:1px solid #fde68a;grid-column:1/-1;display:flex}:root[data-theme=dark] .staleness-banner{color:#fde68a;background:#3d2f13;border-bottom-color:#5a4318}.staleness-banner__text{flex:1}.mobile-chat-stub,.mobile-chat-sheet,.mobile-chat-fab{display:none}@media (width<=1023px){.mobile-chat-fab{background:var(--color-primary);color:#fff;cursor:pointer;z-index:210;border:none;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;font-size:20px;transition:background .2s,transform .2s;display:flex;position:fixed;bottom:20px;right:20px;box-shadow:0 4px 16px #00000059}.mobile-chat-fab:hover{background:var(--color-primary-hov);transform:scale(1.06)}.mobile-chat-sheet{background:var(--color-bg-sidebar);border-left:1px solid var(--color-border);z-index:200;flex-direction:column;width:100vw;transition:transform .3s;display:flex;position:fixed;top:0;bottom:0;right:0;transform:translate(100%);box-shadow:-4px 0 24px #0006}.mobile-chat-sheet--open{transform:translate(0)}.mobile-chat-backdrop{z-index:199;background:#00000080;display:none;position:fixed;inset:0}.mobile-chat-backdrop--visible{display:block}.mobile-chat-sheet__handle-area{-webkit-user-select:none;user-select:none;padding:var(--space-3) var(--space-4);background:var(--color-bg-sidebar);border-bottom:1px solid var(--color-border);flex-shrink:0}.mobile-chat-sheet__drag-handle{display:none}.mobile-chat-sheet__collapsed-bar{align-items:center;gap:var(--space-3);min-height:28px;display:flex}.mobile-chat-sheet__preview{font-size:var(--font-sm);color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.mobile-chat-sheet__body{flex-direction:column;flex:1;overflow:hidden}.mobile-chat-sheet__messages{padding:var(--space-4);flex:1;overflow-y:auto}.mobile-chat-sheet__footer{border-top:1px solid var(--color-border);padding:var(--space-3) var(--space-4);background:var(--color-bg-sidebar);flex-shrink:0}}.agenda-pm-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.pmo-filters__toggle,.pmo-filters__mobile-panel{display:none}@media (width<=767px){.agenda-pm-grid{grid-template-columns:1fr}.pmo-filters__toggle{display:inline-flex}.pmo-filters__desktop-row{display:none!important}.pmo-filters__mobile-panel{padding:var(--space-3);background:var(--color-bg-subtle);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-direction:column;gap:8px;margin-top:8px;display:flex}.pmo-filters__search{max-width:100%!important}}.rich-text p{margin:0 0 8px}.rich-text p:last-child{margin-bottom:0}.rich-text ul,.rich-text ol{margin:4px 0 8px;padding-left:20px}.rich-text li{margin-bottom:4px}.rich-text strong{color:var(--color-text);font-weight:600}.rich-text h1,.rich-text h2,.rich-text h3{color:var(--color-text);margin:12px 0 6px}:root:not([data-theme=light]) .ant-input,:root:not([data-theme=light]) .ant-input-affix-wrapper,:root:not([data-theme=light]) .ant-input-password,:root:not([data-theme=light]) .ant-select-selector,:root:not([data-theme=light]) .ant-picker{background:var(--color-bg-subtle)!important;color:var(--color-text)!important;border-color:var(--color-border)!important}:root:not([data-theme=light]) .ant-input::placeholder,:root:not([data-theme=light]) .ant-input-affix-wrapper .ant-input::placeholder{color:var(--color-text-subtle)!important}:root:not([data-theme=light]) .ant-input:focus,:root:not([data-theme=light]) .ant-input-affix-wrapper:focus,:root:not([data-theme=light]) .ant-input-affix-wrapper-focused{border-color:var(--color-primary)!important;box-shadow:0 0 0 2px #ff997426!important}.dashboard-layout{grid-template-columns:240px minmax(0,1fr);grid-template-areas:"sidebar main";align-items:start;gap:0;height:100%;display:grid}.dashboard-layout__sidebar{border-right:1px solid var(--color-border);grid-area:sidebar;height:100%;min-height:0;position:sticky;top:0;overflow-y:auto}.dashboard-layout__main{padding:var(--space-4) var(--space-6);grid-area:main;min-width:0;overflow-x:hidden}.dashboard-sidebar{flex-direction:column;height:100%;display:flex}.dashboard-sidebar__inner{height:100%;padding:var(--space-4) var(--space-3);gap:var(--space-2);flex-direction:column;display:flex}.dashboard-sidebar__header{margin-bottom:var(--space-2);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.dashboard-sidebar__filters{gap:var(--space-3);flex-direction:column;flex:1;display:flex;overflow-y:auto}.dashboard-sidebar__footer{margin-top:var(--space-3);padding-top:var(--space-2);border-top:1px solid var(--color-border);flex-shrink:0}.filter-group{flex-direction:column;gap:4px;display:flex}.dashboard-header{align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.dashboard-header__count{background:var(--color-bg-subtle);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-shrink:0;align-items:baseline;gap:6px;padding:6px 14px;display:flex}.dashboard-header__count-value{color:var(--color-primary);font-size:22px;font-weight:700;line-height:1}.dashboard-header__count-label{color:var(--color-text-muted);font-size:12px;font-weight:500}.dashboard-header__mobile-filter-btn{display:none}.dashboard-header__crossfilters{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.crossfilter-pill{background:var(--color-primary-soft);border:1px solid var(--color-primary);color:var(--color-primary);cursor:pointer;border-radius:12px;align-items:center;gap:4px;padding:2px 10px;font-size:11px;font-weight:500;line-height:1.6;transition:background .15s;display:inline-flex}.crossfilter-pill:hover{background:var(--color-primary);color:#fff}.dashboard-grid{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.chart-card{background:var(--color-bg-subtle);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-direction:column;display:flex;overflow:hidden}.chart-card__title{padding:var(--space-3) var(--space-4);font-size:var(--font-sm);color:var(--color-text);border-bottom:1px solid var(--color-border);background:var(--color-bg);flex-shrink:0;font-weight:600}.chart-card__body{padding:var(--space-3);flex:1;min-height:180px;overflow:hidden}.chart-card__empty{justify-content:center;align-items:center;min-height:160px;display:flex}.project-mini-table{max-height:380px;overflow:hidden}.recharts-cartesian-axis-tick text{fill:var(--color-text-muted)!important}.recharts-tooltip-wrapper .recharts-default-tooltip{background:var(--color-bg-subtle)!important;border-color:var(--color-border)!important;color:var(--color-text)!important}@media (width<=1023px){.dashboard-layout{grid-template-columns:1fr;grid-template-areas:"main"}.dashboard-layout__sidebar{display:none}.dashboard-layout__main{padding:var(--space-3) var(--space-4)}.dashboard-header__mobile-filter-btn{display:inline-flex}.dashboard-grid{grid-template-columns:1fr 1fr}}@media (width<=767px){.dashboard-grid{grid-template-columns:1fr}.dashboard-layout__main{padding:var(--space-2) var(--space-3)}}.chat-sidebar{flex-direction:column;height:100%;display:flex}.chat-header{height:var(--sidebar-header-height);min-height:var(--sidebar-header-height);padding:0 var(--space-4);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.rescope-banner{gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--chat-banner-bg);color:var(--chat-banner-text);border-bottom:1px solid var(--color-border);font-size:var(--font-sm);flex-direction:column;display:flex}.rescope-banner__actions{gap:var(--space-2);display:flex}.chat-sidebar__body{padding:var(--space-4);flex:1;overflow-y:auto}.chat-sidebar__footer{border-top:1px solid var(--color-border);padding:var(--space-3) var(--space-4);background:var(--color-bg-sidebar)}.msg-list{gap:var(--space-3);flex-direction:column;display:flex}.msg-list--empty{color:var(--color-text-muted);text-align:center;padding-top:var(--space-12)}.msg-list__hint{font-size:var(--font-sm);color:var(--color-text-subtle);margin-top:var(--space-2)}.msg-bubble{max-width:100%;display:flex}.msg-bubble--user{justify-content:flex-end}.msg-bubble--user .msg-bubble__content{background:var(--chat-user-bg);border:1px solid var(--chat-user-border);max-width:85%}.msg-bubble--ai{justify-content:flex-start}.msg-bubble--ai .msg-bubble__content{background:var(--chat-ai-bg);border:1px solid var(--chat-ai-border);max-width:95%}.msg-bubble__content{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--font-base);line-height:var(--lh-base);word-wrap:break-word}.msg-bubble--user .msg-bubble__content{white-space:pre-wrap}.msg-bubble__cursor{color:var(--chat-streaming);margin-left:2px;animation:1s steps(2,start) infinite blink;display:inline-block}@keyframes blink{to{visibility:hidden}}@media (prefers-reduced-motion:reduce){.msg-bubble__cursor{animation:none}}.composer{gap:var(--space-2);flex-direction:column;display:flex}.composer__footer{font-size:var(--font-xs);color:var(--color-text-subtle);justify-content:space-between;align-items:center;display:flex}.scope-switcher{padding:var(--space-2) var(--space-3);min-width:160px}.proactive-controls{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);background:var(--color-bg-subtle);gap:var(--space-2);flex-direction:column;display:flex}.proactive-controls__header{align-items:center;gap:var(--space-2);margin-bottom:var(--space-1);display:flex}.proactive-controls__title{font-size:var(--font-sm);color:var(--color-text-muted);flex:1;font-weight:600}.proactive-controls__row{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}
