.modal{z-index:60;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal__scrim{background:var(--scrim);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:modalFade .2s var(--ease) both;cursor:default;border:0;padding:0;position:absolute;inset:0}@keyframes modalFade{0%{opacity:0}to{opacity:1}}.modal__card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);max-width:100%;max-height:min(680px,100vh - 48px);box-shadow:var(--sh-xl);animation:modalIn .26s var(--ease) both;flex-direction:column;display:flex;position:relative;overflow:hidden}@keyframes modalIn{0%{opacity:0;transform:translateY(14px)scale(.985)}to{opacity:1;transform:none}}.modal__head{border-bottom:1px solid var(--border);align-items:flex-start;gap:16px;padding:20px 22px;display:flex}.modal__titles{flex:1;min-width:0}.modal__titles h2{font-size:var(--fs-2xl);font-weight:var(--fw-bold);color:var(--navy-900);letter-spacing:-.015em}.modal__titles p{font-size:var(--fs-sm);color:var(--text-3);margin-top:4px}.modal__close{border:1px solid var(--border);background:var(--surface);width:34px;height:34px;color:var(--text-2);transition:color var(--dur), border-color var(--dur), background var(--dur);border-radius:10px;flex:0 0 34px;place-items:center;display:grid}.modal__close:hover{color:var(--rose);border-color:var(--neg-line);background:var(--neg-soft)}.modal__body{flex:1;min-height:0;display:flex}.modal__foot{border-top:1px solid var(--border);background:var(--surface-2);justify-content:flex-end;align-items:center;gap:10px;padding:14px 22px;display:flex}@media (width<=720px){.modal{padding:0}.modal__card{border:0;border-radius:0;max-height:100vh;width:100%!important}}.confirm{border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface-2);align-items:flex-start;gap:12px;padding:14px;display:flex}.confirm p{font-size:var(--fs-md);line-height:var(--lh-body);color:var(--text-2)}.confirm__icon{border-radius:50%;flex:0 0 30px;place-items:center;width:30px;height:30px;display:grid}.confirm--warn{background:var(--warn-soft);border-color:var(--warn-line)}.confirm--warn .confirm__icon{background:var(--surface);color:var(--warn)}.confirm--danger{background:var(--neg-soft);border-color:var(--neg-line)}.confirm--danger .confirm__icon{background:var(--surface);color:var(--neg)}.confirm--info{background:var(--brand-050);border-color:var(--brand-200)}.confirm--info .confirm__icon{background:var(--surface);color:var(--brand-600)}.btn{border-radius:var(--r-md);height:36px;font-size:var(--fs-md);font-weight:var(--fw-semibold);white-space:nowrap;transition:background var(--dur), border-color var(--dur), color var(--dur), box-shadow var(--dur), filter var(--dur), transform var(--dur);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:0 14px;display:inline-flex}.btn:active{transform:translateY(.5px)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn--primary{background-image:var(--grad-brand);background-color:var(--brand-600);color:var(--on-brand);box-shadow:0 1px 2px rgba(var(--shadow-ink), .16), inset 0 1px 0 #ffffff1a;border-color:#0000}.btn--primary:hover:not(:disabled){filter:brightness(1.05);box-shadow:var(--sh-md), inset 0 1px 0 #ffffff1f}.btn--dark{background:var(--navy-900);color:var(--text-invert);border-color:var(--navy-900);box-shadow:var(--sh-xs)}.btn--dark:hover:not(:disabled){background:var(--navy-700);border-color:var(--navy-700)}.btn--ghost{background:var(--surface);color:var(--text-2);border-color:var(--border-str);box-shadow:var(--sh-xs)}.btn--ghost:hover:not(:disabled){color:var(--text);background:var(--surface-2)}.btn--subtle{background:var(--surface-2);color:var(--text-3);border-color:var(--border)}.btn--subtle:hover:not(:disabled){color:var(--text-2);background:var(--bg-2)}.btn--sm{height:30px;font-size:var(--fs-sm);padding:0 11px}.field{align-items:center;min-width:0;display:inline-flex;position:relative}.field__control{appearance:none;border-radius:var(--r-md);border:1px solid var(--border-str);background:var(--surface);width:100%;height:36px;color:var(--text);font-size:var(--fs-md);font-weight:var(--fw-medium);box-shadow:var(--sh-xs);transition:border-color var(--dur), box-shadow var(--dur);text-overflow:ellipsis;padding:0 32px 0 12px}.field__control::placeholder{color:var(--text-3);font-weight:var(--fw-medium)}.field__control:hover{border-color:var(--border-hover)}.field__control:focus{border-color:var(--brand-500);box-shadow:var(--ring-brand);outline:none}.field__control:disabled{background:var(--surface-2);color:var(--text-3)}.field__icon{color:var(--text-3);pointer-events:none;place-items:center;display:grid;position:absolute;right:12px}.field--lead .field__control{padding-left:38px;padding-right:14px}.field--lead .field__icon{left:13px;right:auto}.field--dark .field__control{background:var(--navy-900);color:var(--text-invert);border-color:var(--navy-900);font-weight:var(--fw-semibold)}.field--dark .field__icon{color:var(--text-invert);opacity:.75}.field--search{width:100%;max-width:280px}.field--search .field__control{padding-right:42px}.field__submit{border-radius:var(--r-sm);background:var(--brand-600);width:30px;height:30px;color:var(--text-invert);transition:background var(--dur);border:0;place-items:center;display:grid;position:absolute;right:4px}.field__submit:hover{background:var(--brand-700)}.badge{border-radius:var(--r-pill);min-height:24px;font-size:var(--fs-xs);font-weight:var(--fw-medium);white-space:nowrap;justify-content:center;align-items:center;gap:6px;padding:3px 12px;line-height:1.25;display:inline-flex}.badge--capex{background:var(--brand-050);color:var(--brand-700)}.badge--opex{background:var(--pos-soft);color:var(--pos)}.badge--both{background:var(--warn-soft);color:var(--warn)}.badge--neutral{background:var(--surface-3);color:var(--text-2)}.badge--pending{background:var(--warn-soft);color:var(--warn)}.badge--in-review{background:var(--brand-050);color:var(--brand-700)}.badge--approved{background:var(--pos-soft);color:var(--pos)}.badge--overdue{background:var(--neg-soft);color:var(--neg)}.segmented{border-radius:var(--r-md);background:var(--surface-2);border:1px solid var(--border);gap:2px;padding:3px;display:inline-flex}.segmented__option{border-radius:var(--r-sm);height:28px;color:var(--text-2);font-size:var(--fs-sm);font-weight:var(--fw-medium);transition:color var(--dur), background var(--dur), box-shadow var(--dur);background:0 0;border:0;padding:0 14px;position:relative}.segmented__option:hover{color:var(--text)}.segmented__option.is-active{color:var(--text);background:var(--surface);font-weight:var(--fw-semibold);box-shadow:var(--sh-xs)}.segmented--accent .segmented__option.is-active{color:var(--brand-700)}.pagination{align-items:center;gap:6px;display:flex}.pagination__btn{border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface);min-width:34px;height:32px;color:var(--text-2);font-size:var(--fs-sm);font-weight:var(--fw-semibold);transition:color var(--dur), border-color var(--dur), background var(--dur);padding:0 11px}.pagination__btn:hover:not(:disabled){color:var(--text);background:var(--surface-2)}.pagination__btn:disabled{opacity:.45;cursor:not-allowed}.pagination__btn.is-active{background:var(--brand-600);border-color:var(--brand-600);color:var(--text-invert)}.pagination__ellipsis{color:var(--text-3);padding:0 4px}.tip{display:inline-flex;position:relative}.tip__bubble{background:var(--navy-900);width:max-content;max-width:230px;color:var(--text-invert);font-size:var(--fs-xs);font-weight:var(--fw-medium);box-shadow:var(--sh-md);opacity:0;pointer-events:none;transition:opacity var(--dur), transform var(--dur) var(--ease);z-index:40;border-radius:10px;padding:8px 11px;line-height:1.45;position:absolute;bottom:calc(100% + 9px);left:50%;transform:translate(-50%)translateY(4px)}.tip__bubble:after{content:"";border:5px solid #0000;border-top-color:var(--navy-900);position:absolute;top:100%;left:50%;transform:translate(-50%)}.tip:hover .tip__bubble,.tip:focus-within .tip__bubble{opacity:1;transform:translate(-50%)translateY(0)}.status{border-radius:var(--r-pill);min-height:24px;font-size:var(--fs-xs);font-weight:var(--fw-medium);white-space:nowrap;justify-content:center;align-items:center;padding:3px 12px;line-height:1.25;display:inline-flex}.status i{display:none}.status--sm{min-height:22px;padding:2px 10px}.status--flagged{background:var(--neg-soft);color:var(--neg)}.status--awaiting{background:var(--warn-soft);color:var(--warn)}.status--submitted{background:var(--brand-050);color:var(--brand-700)}.status--ai{background:var(--violet-soft);color:var(--violet)}.status--review{background:var(--info-soft);color:var(--info)}.status--more-info{background:var(--neg-soft);color:var(--neg)}.status--approved{background:var(--pos-soft);color:var(--pos)}.status--closed{background:var(--surface-3);color:var(--text-2)}.status--overdue{background:var(--neg-soft);color:var(--neg)}.sev{border-radius:var(--r-sm);font-size:var(--fs-xs);font-weight:var(--fw-semibold);white-space:nowrap;border:1px solid #0000;align-items:center;padding:3px 10px;display:inline-flex}.sev--critical{background:var(--neg-soft);color:var(--neg);border-color:var(--neg-line)}.sev--attention,.sev--warning{background:var(--warn-soft);color:var(--warn);border-color:var(--warn-line)}.sev--ok{background:var(--pos-soft);color:var(--pos);border-color:var(--pos-line)}.person{align-items:center;gap:9px;min-width:0;display:inline-flex}.person__avatar{background:var(--navy-700);width:30px;height:30px;color:var(--text-invert);font-size:var(--fs-xs);font-weight:var(--fw-bold);border-radius:50%;flex:0 0 30px;place-items:center;display:grid}.person__meta{flex-direction:column;min-width:0;line-height:1.25;display:flex}.person__meta strong{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.person__meta small{font-size:var(--fs-2xs);color:var(--text-3)}.person--compact .person__avatar{width:26px;height:26px;font-size:var(--fs-2xs);flex-basis:26px}.person--compact .person__meta strong{font-size:var(--fs-sm)}.dropzone{border-radius:var(--r-md);border:1.5px dashed var(--border-str);background:var(--surface-2);width:100%;color:var(--text-3);text-align:left;transition:border-color var(--dur), background var(--dur), color var(--dur);align-items:center;gap:12px;padding:16px;display:flex}.dropzone:hover{border-color:var(--brand-400);background:var(--brand-050);color:var(--brand-600)}.dropzone strong{color:var(--navy-900);font-weight:var(--fw-semibold)}.dropzone span{font-size:var(--fs-sm)}.tabs{scrollbar-width:none;flex:none;align-items:center;gap:4px;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tabs__tab{height:40px;color:var(--text-2);font-size:var(--fs-md);font-weight:var(--fw-semibold);white-space:nowrap;transition:color var(--dur), background var(--dur);background:0 0;border:0;flex:none;align-items:center;gap:8px;padding:0 14px;display:inline-flex;position:relative}.tabs__tab:hover,.tabs__tab.is-active{color:var(--brand-600)}.tabs__count{border-radius:var(--r-pill);background:var(--surface-2);border:1px solid var(--border);min-width:20px;height:19px;font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--text-3);place-items:center;padding:0 6px;display:grid}.tabs__tab.is-active .tabs__count{background:var(--brand-050);border-color:var(--brand-100);color:var(--brand-600)}.tabs--line{border-bottom:1px solid var(--border)}.tabs--line .tabs__tab:after{content:"";background:var(--brand-600);height:2px;transition:transform var(--dur) var(--ease);border-radius:2px 2px 0 0;position:absolute;bottom:-1px;left:10px;right:10px;transform:scaleX(0)}.tabs--line .tabs__tab.is-active:after{transform:scaleX(1)}.tabs--pill{border-radius:var(--r-md);background:var(--surface-2);border:1px solid var(--border);gap:6px;padding:4px}.tabs--pill .tabs__tab{height:32px;font-size:var(--fs-sm);border-radius:8px;flex:none}.tabs--pill .tabs__tab:hover{background:var(--surface)}.tabs--pill .tabs__tab.is-active{background:var(--surface);color:var(--brand-600);box-shadow:var(--sh-xs)}.drawer{z-index:60;justify-content:flex-end;display:flex;position:fixed;inset:0}.drawer__scrim{background:var(--scrim);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:drawerFade .2s var(--ease) both;cursor:default;border:0;padding:0;position:absolute;inset:0}@keyframes drawerFade{0%{opacity:0}to{opacity:1}}.drawer__panel{background:var(--bg);border-left:1px solid var(--border);max-width:94vw;height:100%;box-shadow:var(--sh-xl);animation:drawerIn .28s var(--ease) both;flex-direction:column;display:flex;position:relative}@keyframes drawerIn{0%{opacity:0;transform:translate(28px)}to{opacity:1;transform:none}}.drawer__head{background:var(--surface);border-bottom:1px solid var(--border);align-items:flex-start;gap:16px;padding:18px 22px;display:flex}.drawer__titles{flex:1;min-width:0}.drawer__title-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.drawer__title-row h2{font-size:var(--fs-2xl);font-weight:var(--fw-semibold);color:var(--navy-900);letter-spacing:-.015em}.drawer__subtitle{font-size:var(--fs-sm);color:var(--text-3);margin-top:4px}.drawer__close{border:1px solid var(--border);background:var(--surface);width:34px;height:34px;color:var(--text-2);transition:color var(--dur), border-color var(--dur), background var(--dur);border-radius:10px;flex:0 0 34px;place-items:center;display:grid}.drawer__close:hover{color:var(--rose);border-color:var(--neg-line);background:var(--neg-soft)}.drawer__body{overscroll-behavior:contain;scrollbar-gutter:stable;flex-direction:column;flex:1;gap:16px;min-height:0;padding:20px 22px;display:flex;overflow-y:auto}.drawer__body>*{flex-shrink:0}.drawer__body::-webkit-scrollbar{width:12px}.drawer__body::-webkit-scrollbar-track{background:var(--surface-2);border-left:1px solid var(--border)}.drawer__body::-webkit-scrollbar-thumb{background:var(--chart-plan);border-radius:var(--r-pill);border:3px solid var(--surface-2);background-clip:content-box}.drawer__body::-webkit-scrollbar-thumb:hover{background:var(--text-3);border:3px solid var(--surface-2);background-clip:content-box}.drawer__body{scrollbar-width:thin;scrollbar-color:var(--chart-plan) var(--surface-2)}.drawer__foot{background:var(--surface);border-top:1px solid var(--border);justify-content:flex-end;align-items:center;gap:10px;padding:14px 22px;display:flex}@media (width<=720px){.drawer__panel{max-width:100%;width:100%!important}.drawer__body{padding:16px 14px}.drawer__foot{flex-wrap:wrap}}.score{flex-direction:column;flex:none;align-items:center;display:flex;position:relative}.score--good{--score-ink:var(--pos)}.score--fair{--score-ink:var(--warn)}.score--weak{--score-ink:var(--neg)}.score__track{stroke:var(--surface-2)}.score__value{stroke:var(--score-ink);transition:stroke-dasharray .9s var(--ease);animation:scoreSweep .9s var(--ease) both}@keyframes scoreSweep{0%{stroke-dasharray:0 9999}}.score__center{pointer-events:none;justify-content:center;align-items:center;gap:1px;height:108px;display:flex;position:absolute;top:0;left:0;right:0}.score__center strong{font-size:var(--fs-5xl);font-weight:var(--fw-semibold);letter-spacing:-.03em;color:var(--navy-900);font-variant-numeric:tabular-nums}.score__center span{font-size:var(--fs-lg);font-weight:var(--fw-semibold);color:var(--text-3)}.score__caption{font-size:var(--fs-xs);color:var(--text-3);text-align:center;flex-direction:column;align-items:center;gap:2px;margin-top:10px;display:flex}.score__caption b{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--score-ink)}
