:root{--paper:#faf9f5;--surface:#fff;--ink:#20262b;--ink-2:#5c6670;--ink-3:#98a1aa;--hairline:#e6e2d9;--hairline-2:#d4cec2;--head-bg:#f4f1ea;--accent:#1d5fbf;--accent-soft:#e8f0fb;--heat-pos:#9fd8ac;--heat-mid:#f6f4ee;--heat-neg:#f2b4a8;--status-paid:#9fd8ac;--status-unpaid:#f2b4a8;--badge-warn-ink:#b4543f;--badge-warn-bg:#fbede9;--leading-ink:#7b5fa8;--leading-bg:#f1ebf8;--depth-1:#f8f6f0;--depth-2:#fbfaf6;--depth-3:#fdfcfa;--font-ui:"Pretendard Variable", Pretendard, -apple-system, sans-serif;--font-num:"IBM Plex Mono", ui-monospace, monospace;--fs-cell:12px;--fs-label:12.5px;--fs-head:11px;--fs-title:15px;--row-h:26px;--cell-px:10px;--indent:16px;--radius:4px;--col-w-month:92px;--col-w-stat:92px;--col-w-rowhead:280px;--col-w-contract:118px;--col-w-as-of-progress:158px;--col-w-contract-from:104px;--col-w-contract-to:104px;--col-w-project-from:104px;--col-w-project-to:104px;--rail-w:172px}*{box-sizing:border-box;margin:0;padding:0}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}html,body{height:100%}body{font-family:var(--font-ui);background:var(--paper);color:var(--ink);flex-direction:column;font-size:13px;display:flex;overflow:hidden}.topbar{border-bottom:1px solid var(--hairline-2);background:var(--paper);white-space:nowrap;flex-wrap:nowrap;flex:none;align-items:center;gap:10px;padding:9px 16px 8px;display:flex}.topbar .brand{flex:none;align-items:center;gap:8px;display:flex}.topbar h1{font-size:var(--fs-title);letter-spacing:-.01em;font-weight:700}.topbar .brand .sub{color:var(--ink-3);font-size:11px;font-family:var(--font-num)}.topbar .spacer{flex:1;min-width:8px}.source-status{border:1px solid var(--hairline-2);color:var(--ink-2);background:var(--surface);font-size:10.5px;font-family:var(--font-num);border-radius:999px;flex:none;align-items:center;gap:5px;padding:3px 7px;display:inline-flex}.source-status:before{content:"";background:#2d9d5b;border-radius:50%;width:6px;height:6px}.source-status.stale{color:var(--badge-warn-ink);background:var(--badge-warn-bg)}.source-status.stale:before{background:var(--badge-warn-ink)}.source-status.disabled:before{background:var(--ink-3)}.source-status.error{color:var(--badge-warn-ink);background:var(--badge-warn-bg)}.source-status.error:before{background:var(--badge-warn-ink)}.info-btn{border:1px solid var(--hairline-2);background:var(--surface);width:17px;height:17px;color:var(--ink-2);cursor:pointer;font-size:10.5px;font-weight:700;line-height:1;font-family:var(--font-ui);border-radius:50%;flex:none;padding:0}.info-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.info-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.legend{color:var(--ink-2);flex:none;align-items:center;gap:5px;font-size:10px;display:flex}.legend[hidden]{display:none}.legend .ramp{border:1px solid var(--hairline-2);background:linear-gradient(to right, var(--heat-neg), var(--heat-mid), var(--heat-pos));border-radius:5px;width:96px;height:10px}.legend .inv-hint{color:var(--badge-warn-ink);font-weight:600}.legend .swatch{border:1px solid var(--hairline-2);border-radius:3px;width:10px;height:10px}.legend .swatch.unpaid{background:var(--status-unpaid)}.legend .swatch.paid{background:var(--status-paid);margin-left:3px}.ctl{color:var(--ink-2);border:1px solid var(--hairline-2);border-radius:var(--radius);background:var(--surface);cursor:pointer;-webkit-user-select:none;user-select:none;font-size:11.5px;font-family:var(--font-ui);white-space:nowrap;flex:none;align-items:center;gap:6px;padding:4px 8px;display:inline-flex}.ctl:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.ctl b{color:var(--ink);font-weight:600}.ctl:hover b{color:var(--accent)}.ctl.on{background:var(--accent);border-color:var(--accent);color:#fff}.ctl.on b{color:#fff}.ctl:disabled{opacity:.45;pointer-events:none}.seg{border:1px solid var(--hairline-2);border-radius:var(--radius);background:var(--surface);flex:none;display:inline-flex;overflow:hidden}.seg button{cursor:pointer;font-family:var(--font-ui);color:var(--ink-2);border:none;border-right:1px solid var(--hairline);white-space:nowrap;background:0 0;flex:none;padding:4px 9px;font-size:11.5px}.seg button:last-child{border-right:none}.seg button:hover{background:var(--accent-soft);color:var(--accent)}.seg button.on{background:var(--accent);color:#fff;font-weight:600}.seg button:disabled{opacity:.35;cursor:not-allowed}.seg button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.scenario-controls{flex:none;align-items:center;gap:5px;display:inline-flex}.scenario-controls label{color:var(--ink-2);align-items:center;gap:4px;font-size:10.5px;display:inline-flex}.scenario-controls select,.scenario-assumptions-trigger{border:1px solid var(--hairline-2);border-radius:var(--radius);background:var(--surface);height:24px;color:var(--ink);font-family:var(--font-num);padding:2px 5px;font-size:10.5px}.scenario-controls select:focus-visible,.scenario-assumptions-trigger:focus-visible{outline:2px solid var(--accent);outline-offset:-1px}.scenario-assumptions-trigger{cursor:pointer;font-family:var(--font-ui);color:var(--ink-2);align-items:center;gap:4px;padding:2px 7px;display:inline-flex}.scenario-assumptions-trigger b{color:var(--ink);font-weight:700}.scenario-assumptions-trigger:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.scenario-assumptions-trigger:hover b{color:var(--accent)}.simulation-legend{color:var(--ink-2);flex:none;align-items:center;gap:7px;font-size:10px;display:inline-flex}.simulation-legend span{align-items:center;gap:3px;display:inline-flex}.simulation-legend i{border:1px solid var(--hairline-2);border-radius:2px;width:9px;height:9px}.simulation-legend i.actual{background:#e8f2fc}.simulation-legend i.archive{background:#d4e4f4}.simulation-legend i.projection{background:repeating-linear-gradient(135deg,#f0eaf8 0 3px,#e5ddf3 3px 5px)}.simulation-legend i.assumption{background:#fff0cc}.simulation-legend i.incomplete{background:repeating-linear-gradient(135deg,#faf9f5 0 3px,#ece9e1 3px 5px)}.assumption-dialog-backdrop{z-index:60;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);background:#191f2461;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.assumption-dialog{background:var(--surface);border:1px solid var(--hairline-2);border-radius:8px;flex-direction:column;width:min(820px,100vw - 48px);height:min(590px,100vh - 48px);min-height:420px;display:flex;overflow:hidden;box-shadow:0 24px 70px #181e2347}.assumption-dialog-head{border-bottom:1px solid var(--hairline);flex:none;align-items:flex-start;gap:16px;padding:17px 20px 15px;display:flex}.assumption-dialog-head>div{flex:1}.assumption-dialog-head h2{font-size:16px;line-height:1.25}.assumption-dialog-head p{color:var(--ink-2);margin-top:4px;font-size:11.5px}.assumption-dialog-close{border:1px solid var(--hairline-2);border-radius:var(--radius);background:var(--surface);width:28px;height:28px;color:var(--ink-2);cursor:pointer;flex:none;font-size:18px;line-height:1}.assumption-dialog-close:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.assumption-dialog-body{flex:1;grid-template-columns:240px minmax(0,1fr);min-height:0;display:grid}.assumption-list{background:var(--paper);border-right:1px solid var(--hairline);min-width:0;padding:13px 10px;overflow-y:auto}.assumption-list-head{color:var(--ink-3);justify-content:space-between;align-items:center;padding:0 7px 8px;font-size:10.5px;display:flex}.assumption-list-head b{color:var(--ink-2);font-family:var(--font-num)}.assumption-list-item{text-align:left;cursor:pointer;width:100%;font-family:var(--font-ui);background:0 0;border:1px solid #0000;border-radius:5px;margin-bottom:4px;padding:10px;display:block}.assumption-list-item:hover{background:var(--surface);border-color:var(--hairline)}.assumption-list-item.selected{background:var(--accent-soft);border-color:#1d5fbf59}.assumption-list-label{color:var(--ink);align-items:center;gap:7px;font-size:12px;font-weight:700;display:flex}.assumption-list-label i{background:var(--accent);border-radius:50%;width:7px;height:7px}.assumption-list-item.invalid .assumption-list-label i{background:var(--badge-warn-ink)}.assumption-list-value{color:var(--ink-2);font-family:var(--font-num);margin:4px 0 0 14px;font-size:10.5px;display:block}.assumption-list-item.invalid .assumption-list-value{color:var(--badge-warn-ink)}.assumption-detail{min-width:0;padding:25px 28px;overflow-y:auto}.assumption-detail-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.assumption-kicker{color:var(--accent);font-family:var(--font-num);letter-spacing:.04em;text-transform:uppercase;font-size:9.5px;font-weight:700}.assumption-detail h3{margin-top:3px;font-size:17px}.assumption-active-badge{color:#247143;background:#e8f5ec;border-radius:999px;padding:2px 6px;font-size:9.5px;font-weight:700}.assumption-description{color:var(--ink-2);margin-top:10px;font-size:12px;line-height:1.55}.assumption-field{margin-top:24px;display:block}.assumption-field>span{color:var(--ink-2);margin-bottom:6px;font-size:11px;font-weight:700;display:block}.assumption-value-input{border:1px solid var(--hairline-2);background:var(--surface);border-radius:5px;align-items:center;width:min(340px,100%);display:flex;overflow:hidden}.assumption-value-input:focus-within{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.assumption-field.invalid .assumption-value-input{border-color:var(--badge-warn-ink)}.assumption-value-input input{min-width:0;height:36px;color:var(--ink);text-align:right;font-family:var(--font-num);background:0 0;border:0;outline:0;flex:1;padding:7px 10px;font-size:13px;font-weight:600}.assumption-value-input span{border-left:1px solid var(--hairline);color:var(--ink-2);background:var(--head-bg);align-self:stretch;align-items:center;padding:0 11px;font-size:11px;display:flex}.assumption-field small{min-height:17px;color:var(--ink-3);margin-top:4px;font-size:10px;display:block}.assumption-field.invalid small{color:var(--badge-warn-ink)}.assumption-month-grid{gap:6px;width:min(400px,100%);display:grid}.assumption-month-row{grid-template-columns:78px minmax(0,1fr);align-items:center;gap:10px;display:grid}.assumption-month-row>span{color:var(--ink-2);font-family:var(--font-num);font-size:11px}.assumption-month-row .assumption-value-input{width:100%}.assumption-metadata{border-top:1px solid var(--hairline);margin-top:24px}.assumption-metadata>div{border-bottom:1px solid var(--hairline);grid-template-columns:92px minmax(0,1fr);gap:12px;padding:11px 0;font-size:11.5px;line-height:1.5;display:grid}.assumption-metadata dt{color:var(--ink-3);font-weight:700}.assumption-metadata dd{color:var(--ink-2)}.assumption-dialog-foot{border-top:1px solid var(--hairline);flex:none;align-items:center;gap:8px;padding:12px 16px;display:flex}.assumption-dialog-foot>span{color:var(--ink-3);flex:1;font-size:10.5px}.assumption-dialog-foot button{border:1px solid var(--hairline-2);border-radius:var(--radius);font-family:var(--font-ui);cursor:pointer;padding:6px 12px;font-size:11.5px}.assumption-cancel{background:var(--surface);color:var(--ink-2)}.assumption-apply{background:var(--accent);color:#fff;border-color:var(--accent)!important}.assumption-dialog-foot button:disabled{opacity:.42;cursor:not-allowed}.assumption-dialog-foot button:focus-visible,.assumption-dialog-close:focus-visible,.assumption-list-item:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.scenario-version-dialog{max-width:560px}.scenario-version-body{flex:1;min-height:0;padding:14px 16px;overflow-y:auto}.scenario-version-save{gap:8px;display:flex}.scenario-version-save input{border:1px solid var(--hairline-2);border-radius:var(--radius);font-family:var(--font-ui);flex:1;padding:7px 10px;font-size:12px}.scenario-version-save input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.scenario-version-save button{border:1px solid var(--accent);border-radius:var(--radius);background:var(--accent);color:#fff;font-family:var(--font-ui);cursor:pointer;white-space:nowrap;padding:7px 12px;font-size:11.5px}.scenario-version-save button:disabled{opacity:.42;cursor:not-allowed}.scenario-version-confirm{border:1px solid var(--accent);border-radius:var(--radius);background:var(--accent-soft);justify-content:space-between;align-items:center;gap:12px;margin-top:10px;padding:10px 12px;display:flex}.scenario-version-confirm>div:first-child{min-width:0}.scenario-version-confirm b{color:var(--ink);font-size:11.5px;display:block}.scenario-version-confirm span{color:var(--ink-2);margin-top:3px;font-size:10.5px;display:block}.scenario-version-confirm>div:last-child{flex-shrink:0;gap:5px;display:flex}.scenario-version-confirm button{border:1px solid var(--hairline-2);border-radius:var(--radius);background:var(--surface);color:var(--ink-2);font-family:var(--font-ui);cursor:pointer;white-space:nowrap;padding:5px 8px;font-size:11px}.scenario-version-confirm button:first-child{border-color:var(--accent);background:var(--accent);color:#fff}.scenario-version-confirm button:disabled{opacity:.42;cursor:not-allowed}.scenario-version-confirm button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.scenario-version-error{color:var(--badge-warn-ink);margin-top:10px;font-size:11.5px}.scenario-version-notice{color:var(--accent);margin-top:10px;font-size:11.5px}.scenario-version-empty{color:var(--ink-3);margin-top:16px;font-size:11.5px}.scenario-version-list{margin:12px 0 0;padding:0;list-style:none}.scenario-version-list li{border-bottom:1px solid var(--hairline);align-items:center;gap:10px;padding:10px 2px;display:flex}.scenario-version-info{flex:1;min-width:0}.scenario-version-info b{color:var(--ink);align-items:center;gap:6px;font-size:12px;display:flex}.scenario-version-info span{color:var(--ink-3);margin-top:2px;font-size:10.5px;display:block}.scenario-version-rename{align-items:center;gap:5px;display:flex}.scenario-version-rename input{border:1px solid var(--hairline-2);border-radius:var(--radius);min-width:0;font-family:var(--font-ui);flex:1;padding:5px 7px;font-size:12px}.scenario-version-rename input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.scenario-version-rename button{border:1px solid var(--hairline-2);border-radius:var(--radius);background:var(--surface);color:var(--ink-2);font-family:var(--font-ui);cursor:pointer;padding:5px 8px;font-size:11px}.scenario-version-rename button:disabled{opacity:.42;cursor:not-allowed}.scenario-version-current{background:var(--accent);color:#fff;border-radius:999px;padding:1px 7px;font-size:9.5px;font-weight:700}.scenario-version-actions{gap:6px;display:flex}.scenario-version-actions button{border:1px solid var(--hairline-2);border-radius:var(--radius);background:var(--surface);color:var(--ink-2);font-family:var(--font-ui);cursor:pointer;padding:5px 10px;font-size:11px}.scenario-version-actions button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.scenario-version-actions button:disabled{opacity:.42;cursor:not-allowed}.scenario-version-actions button.danger:hover:not(:disabled){border-color:var(--badge-warn-ink);color:var(--badge-warn-ink)}.scenario-version-actions button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}@media (max-width:720px){.assumption-dialog-backdrop{padding:10px}.assumption-dialog{width:calc(100vw - 20px);height:calc(100vh - 20px);min-height:0}.assumption-dialog-body{grid-template-rows:auto 1fr;grid-template-columns:1fr}.assumption-list{border-right:0;border-bottom:1px solid var(--hairline);gap:5px;padding:9px;display:flex;overflow-x:auto}.assumption-list-head{display:none}.assumption-list-item{min-width:190px;margin:0}.assumption-detail{padding:20px}.scenario-version-confirm{flex-direction:column;align-items:stretch}}.user-chip{border:1px solid var(--hairline-2);background:var(--surface);color:var(--ink-2);cursor:pointer;font-size:11px;font-family:var(--font-ui);border-radius:999px;flex:none;align-items:center;gap:6px;padding:3px 8px;display:inline-flex}.user-chip:hover{border-color:var(--accent);color:var(--accent)}.user-chip .role{color:var(--accent);background:var(--accent-soft);border-radius:3px;padding:.5px 4px;font-size:9.5px;font-weight:700}.user-chip .role.member{color:var(--ink-2);background:#20262b12}.shell{flex:1;min-height:0;display:flex}.service-rail{border-right:1px solid var(--hairline-2);background:#f7f8fa;flex-direction:column;flex:none;align-items:stretch;gap:4px;width:58px;padding:10px 6px;display:flex}.service-link{min-height:48px;color:var(--ink-2);border-radius:6px;flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:10px;font-weight:700;text-decoration:none;display:flex}.service-link:hover{background:var(--accent-soft);color:var(--accent)}.service-link.active{background:var(--surface);color:var(--ink);box-shadow:inset 0 0 0 1px var(--hairline)}.service-icon{background:var(--surface);border:1px solid var(--hairline-2);width:22px;height:22px;color:inherit;border-radius:5px;justify-content:center;align-items:center;display:inline-flex;overflow:hidden}.service-icon svg{width:16px;height:16px;display:block}.rail{width:var(--rail-w);background:var(--paper);border-right:1px solid var(--hairline-2);flex-direction:column;flex:none;min-width:0;padding:10px 0 8px;display:flex;position:relative}.shell.rail-collapsed .rail{display:none}.rail-head{color:var(--ink-2);letter-spacing:.04em;align-items:center;padding:0 7px 8px 12px;font-size:11px;font-weight:700;display:flex}.rail-head .en{color:var(--ink-3);font-weight:500;font-family:var(--font-num);margin-left:4px;margin-right:auto;font-size:10px}.rail-toggle{cursor:pointer;line-height:1;font-family:var(--font-ui);color:var(--ink-3);background:0 0;border:none;border-radius:3px;flex:none;padding:1px 4px;font-size:12px}.rail-toggle:hover{color:var(--accent);background:var(--accent-soft)}.rail-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.lens-list{min-height:0;overflow-y:auto}.rail-search{padding:0 10px 7px}.rail-search input{box-sizing:border-box;width:100%;font-family:var(--font-ui);color:var(--ink);border:1px solid var(--hairline-2);border-radius:var(--radius);background:var(--surface);padding:4px 7px;font-size:12px}.rail-search input::placeholder{color:var(--ink-3)}.rail-search input:focus-visible{outline:2px solid var(--accent);outline-offset:-1px}.rail-search input::-webkit-search-cancel-button{cursor:pointer}.lgroup{text-align:left;width:100%;font-family:var(--font-ui);color:var(--ink-3);letter-spacing:.04em;background:0 0;border:none;align-items:center;gap:5px;margin-top:2px;padding:7px 12px 4px 10px;font-size:10.5px;font-weight:700;display:flex}.lgroup:hover{color:var(--accent)}.lgroup-toggle{min-width:0;color:inherit;cursor:pointer;font:inherit;letter-spacing:inherit;text-align:left;background:0 0;border:0;flex:1;align-items:center;gap:5px;padding:0;display:flex}.lgroup-toggle:focus-visible,.folder-sort:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.lgroup .car{width:9px;color:var(--ink-3);flex:none;font-size:8px}.lgroup .gnm{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.lgroup .cnt{color:var(--ink-3);font-size:10px;font-family:var(--font-num);flex:none}.folder-sort{color:var(--ink-3);cursor:pointer;font-family:var(--font-ui);letter-spacing:0;background:0 0;border:0;border-radius:3px;flex:none;padding:2px 3px;font-size:9px;font-weight:500}.folder-sort:hover{color:var(--accent);background:var(--accent-soft)}.lgroup.holds-current{color:var(--accent)}.lgroup.holds-current .dot{background:var(--accent);border-radius:50%;flex:none;width:5px;height:5px}.lgroup.fav-head{color:var(--accent);cursor:default}.lgroup.fav-head:hover{color:var(--accent)}.lens .grp{color:var(--ink-3);flex:none;margin-right:2px;font-size:10px}.lens-row{align-items:center;display:flex;position:relative}.lens-row .lens{flex:1;min-width:0}.fav-toggle{visibility:hidden;cursor:pointer;color:var(--ink-3);background:0 0;border:0;flex:none;padding:5px 7px;font-size:10px}.fav-toggle[aria-pressed=true],.lens-row:hover .fav-toggle,.lens-row:focus-within .fav-toggle,.fav-toggle:focus-visible{visibility:visible}.fav-toggle[aria-pressed=true]{color:var(--accent)}.fav-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.lens-row.dragging,[data-group].dragging{opacity:.45}[data-drop=before]{box-shadow:inset 0 2px 0 var(--accent)}[data-drop=after]{box-shadow:inset 0 -2px 0 var(--accent)}.lgroup[draggable=true]{cursor:grab}.rail-empty{color:var(--ink-3);padding:10px 12px;font-size:11px}.lens{text-align:left;cursor:pointer;width:100%;font-family:var(--font-ui);color:var(--ink-2);background:0 0;border:none;border-left:2px solid #0000;align-items:center;gap:7px;padding:7px 12px 7px 10px;font-size:12.5px;text-decoration:none;display:flex}.lens:hover{background:var(--accent-soft);color:var(--accent)}.lens.active{background:var(--surface);color:var(--ink);border-left-color:var(--accent);font-weight:600}.lens .dot{background:var(--ink-3);border-radius:50%;flex:none;width:6px;height:6px}.lens.active .dot{background:var(--accent)}.lens .nm{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.lens .cnt{color:var(--ink-3);font-size:10px;font-family:var(--font-num);flex:none;margin-left:6px}.rail-foot{color:var(--ink-3);border-top:1px solid var(--hairline);margin-top:auto;margin-left:10px;margin-right:10px;padding-top:8px;font-size:11px}.rail-tools{gap:6px;padding:0 10px 6px;display:flex}.rail-tool{cursor:pointer;font-family:var(--font-ui);color:var(--ink-3);background:0 0;border:none;border-radius:3px;padding:2px 4px;font-size:10.5px}.rail-tool:hover{color:var(--accent);background:var(--accent-soft)}.rail-tool:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.rail-grip{z-index:5;cursor:ew-resize;touch-action:none;justify-content:center;align-items:center;width:7px;display:flex;position:absolute;top:0;bottom:0;right:-3px}.rail-grip:before{content:"";background:0 0;border-radius:2px;width:3px;height:44px}.rail-grip:hover:before,body.rail-resizing .rail-grip:before{background:var(--accent)}.rail-grip:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.rail-grip:focus-visible:before{background:var(--accent)}body.rail-resizing{cursor:ew-resize;-webkit-user-select:none;user-select:none}.rail-chip[hidden]{display:none}.rail-chip{max-width:240px;overflow:hidden}.rail-chip b{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.grid-wrap{background:var(--surface);flex:1;overflow:auto}body.sheet-open .grid-wrap{padding-bottom:calc(var(--sheet-h,42vh) + 20px)}table{border-collapse:separate;border-spacing:0}.strategy-main{background:var(--surface);flex:1;min-width:0;overflow:hidden}.strategy-rail{width:180px}.strategy-context{background:var(--surface);grid-template-columns:320px minmax(0,1fr);height:100%;min-height:0;display:grid}.strategy-context.list-collapsed{grid-template-columns:0 minmax(0,1fr)}.strategy-context.focus-mode{z-index:80;background:var(--surface);grid-template-columns:0 minmax(0,1fr);position:fixed;inset:0}.strategy-doc-list{border-right:1px solid var(--hairline-2);background:var(--paper);flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}.strategy-context.list-collapsed .strategy-doc-list,.strategy-context.focus-mode .strategy-doc-list{visibility:hidden;border-right:none}.strategy-list-tools{border-bottom:1px solid var(--hairline);flex:none;justify-content:space-between;align-items:center;gap:10px;padding:12px;display:flex}.strategy-list-tools b{font-size:13px;display:block}.strategy-list-tools span{color:var(--ink-3);margin-top:2px;font-size:10.5px;display:block}.strategy-primary{border:1px solid var(--accent);border-radius:var(--radius);background:var(--accent);color:#fff;cursor:pointer;font-family:var(--font-ui);flex:none;padding:5px 9px;font-size:11.5px;font-weight:700}.strategy-primary:hover{filter:brightness(.95)}.strategy-primary:disabled{opacity:.55;cursor:not-allowed}.strategy-doc-card{text-align:left;cursor:pointer;border:1px solid var(--hairline);background:var(--surface);width:calc(100% - 16px);color:var(--ink);font-family:var(--font-ui);border-radius:6px;margin:8px 8px 0;padding:10px 11px;display:block}.strategy-doc-card:hover{border-color:var(--accent);background:var(--accent-soft)}.strategy-doc-card.active{border-color:var(--ink);box-shadow:inset 2px 0 0 var(--accent)}.strategy-doc-title{text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-weight:700;display:block;overflow:hidden}.strategy-doc-meta{text-overflow:ellipsis;white-space:nowrap;color:var(--ink-3);margin-top:5px;font-size:10.5px;display:block;overflow:hidden}.strategy-empty-list{color:var(--ink-3);padding:18px 12px;font-size:12px}.strategy-viewer{flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}.strategy-viewer-head{border-bottom:1px solid var(--hairline);background:var(--surface);flex-wrap:wrap;flex:none;justify-content:space-between;align-items:flex-start;gap:10px 16px;padding:13px 16px;display:flex}.strategy-title-block{flex:260px;min-width:180px}.strategy-kicker{color:var(--accent);font-family:var(--font-num);margin-bottom:3px;font-size:10px;font-weight:700;display:block}.strategy-title-block h2{text-overflow:ellipsis;white-space:nowrap;font-size:15px;overflow:hidden}.strategy-title-block p{color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-size:11px;overflow:hidden}.strategy-actions{flex-wrap:wrap;flex:340px;justify-content:flex-end;align-items:center;gap:6px;min-width:220px;display:flex}.strategy-rail-tab{border:1px solid var(--hairline-2);border-radius:var(--radius);background:var(--surface);min-width:42px;color:var(--ink-2);cursor:pointer;font-family:var(--font-ui);flex:none;align-self:stretch;font-size:11px;font-weight:700}.strategy-rail-tab:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.strategy-view-state{border:1px solid var(--hairline-2);height:24px;color:var(--ink-3);background:var(--surface);font-family:var(--font-num);border-radius:999px;flex:none;align-items:center;padding:0 7px;font-size:10px;font-weight:700;display:inline-flex}.strategy-message{border:1px solid var(--hairline);border-radius:var(--radius);color:var(--ink-2);background:var(--head-bg);flex:none;margin:8px 12px 0;padding:7px 9px;font-size:11.5px}.strategy-version-row{border-bottom:1px solid var(--hairline);background:var(--paper);flex:none;gap:6px;padding:8px 12px;display:flex;overflow-x:auto}.strategy-version-row button{border:1px solid var(--hairline-2);border-radius:var(--radius);background:var(--surface);min-width:112px;max-width:180px;color:var(--ink-2);cursor:pointer;text-align:left;font-family:var(--font-ui);flex:none;padding:5px 7px;font-size:11px}.strategy-version-row button:hover{border-color:var(--accent);color:var(--accent)}.strategy-version-row button.current{color:var(--ink);border-color:var(--accent);background:var(--accent-soft)}.strategy-version-row span{color:var(--ink-3);font-family:var(--font-num);margin-top:2px;font-size:9.5px;display:block}.strategy-frame-wrap{background-color:#f7f8fa;background-image:linear-gradient(#eceff2 1px,#0000 1px),linear-gradient(90deg,#eceff2 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:24px 24px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;flex:1;min-height:0;padding:14px;overflow:hidden}.strategy-context.focus-mode .strategy-frame-wrap{padding:18px}.strategy-frame-stage{border:1px solid var(--hairline-2);background:#111316;border-radius:6px;height:100%;min-height:0;overflow:hidden;box-shadow:0 10px 34px #181e232e}.strategy-frame{background:#fff;border:none;width:100%;height:100%;display:block}.report-crumb{min-width:0;color:var(--ink-2);align-items:baseline;gap:8px;font-size:12px;display:flex}.report-crumb .k{letter-spacing:.04em;color:var(--ink-3);font-size:10.5px;font-weight:700}.report-crumb .nm{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.report-actions{flex:none;align-items:center;gap:5px;display:inline-flex}.report-actions .ctl{text-decoration:none}.report-main{background:var(--paper);flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.report-frame{background:#fff;border:none;flex:1;width:100%;min-height:0;display:block}.lineage-main{background:var(--paper);flex:1;min-width:0;min-height:0;overflow:auto}.lineage-main-graph{flex-direction:column;display:flex;overflow:hidden}.lineage-page{max-width:960px;margin:0 auto;padding:28px 24px 72px}.lineage-hero{color:#f7f1e8;background:linear-gradient(#2b241f,#3a3129);border-radius:20px;padding:26px 30px}.lineage-hero h1{margin:7px 0;font-size:28px;font-weight:700}.lineage-hero p{color:#d9cfc3;margin:4px 0;font-size:14px;line-height:1.45}.lineage-hero .eyebrow{color:#e2b48a;letter-spacing:.12em;font-size:11px;font-weight:600}.lineage-section{margin-top:28px}.lineage-section h2{color:var(--ink);margin:0 0 10px;font-size:16px}.lineage-note{background:var(--surface);border:1px solid var(--hairline);color:var(--ink-2);border-radius:12px;margin-bottom:12px;padding:13px 15px;font-size:13px;line-height:1.45}.lineage-jobs{border-collapse:collapse;background:var(--surface);border-radius:12px;width:100%;overflow:hidden}.lineage-jobs th,.lineage-jobs td{border-bottom:1px solid var(--hairline);text-align:left;vertical-align:top;padding:9px 10px;font-size:13px}.lineage-jobs th{background:var(--head-bg);color:var(--ink-2);font-size:12px;font-weight:600}.lineage-jobs code{font-family:var(--font-num);font-size:11.5px}.lineage-job-name{color:var(--ink-2);margin-top:3px;font-size:12px}.lineage-job-kind{border:1px solid var(--hairline);background:var(--head-bg);color:var(--ink-2);border-radius:999px;padding:1px 7px;font-size:11.5px;display:inline-block}.lineage-page-wide{max-width:1280px}.lineage-graph{background:var(--surface);flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.lineage-graph-tools{border-bottom:1px solid var(--hairline);background:var(--head-bg);flex-wrap:wrap;gap:6px;padding:10px 12px;display:flex}.lineage-chip{border:1px solid var(--hairline);background:var(--surface);color:var(--ink-2);cursor:pointer;border-radius:999px;padding:3px 10px;font-size:12px}.lineage-chip:before{content:"";background:var(--chip,var(--ink-3));vertical-align:middle;border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.lineage-chip.off{opacity:.4}.lineage-zoom{gap:6px;margin-left:auto;display:inline-flex}.lineage-zoom .lineage-chip:before{display:none}.lineage-graph-body{flex:1;min-height:0;position:relative}.lineage-svg{cursor:grab;touch-action:none;background:#f7f4ee;width:100%;height:100%;display:block}.lineage-svg:active{cursor:grabbing}.lineage-guide{fill:var(--ink-3);font-size:18px;font-weight:600}.lineage-edge{stroke:#c9c2b6;stroke-width:1.1px}.lineage-edge.formula{stroke:#b08968}.lineage-edge.publish{stroke:#7a5c99;stroke-opacity:.5}.lineage-edge.exclude{stroke-dasharray:4 3}.lineage-edge.dim,.lineage-node.dim{opacity:.12}.lineage-node{cursor:pointer}.lineage-node text{fill:var(--ink);pointer-events:none;font-size:11px}.lineage-node.sel circle{stroke:var(--ink);stroke-width:1.6px}.lineage-card{border-left:1px solid var(--hairline);color:var(--ink-2);background:var(--surface);padding:14px 16px;font-size:13px}.lineage-card-overlay{border:1px solid var(--hairline);border-left:3px solid #7a5c99;border-radius:12px;width:min(300px,100% - 24px);max-height:calc(100% - 24px);position:absolute;top:12px;right:12px;overflow:auto;box-shadow:0 10px 28px #20262b1f}.lineage-card h3{color:var(--ink);margin:4px 0 8px;font-size:16px}.lineage-card a{color:var(--accent);margin-right:8px}.lineage-formula{font-family:var(--font-num);color:var(--ink);margin-bottom:8px;font-size:12px}.lineage-card-note{margin:6px 0;font-size:12px;line-height:1.45}.lineage-log-list{background:var(--surface);border:1px solid var(--hairline);border-radius:12px;padding:8px 14px;list-style:none}.lineage-log-list li{border-bottom:1px solid var(--hairline);color:var(--ink-2);padding:6px 0;font-size:13px}.lineage-log-list li:last-child{border-bottom:0}.lineage-log-status{letter-spacing:.02em;border:1px solid var(--hairline);color:var(--ink-2);border-radius:999px;padding:1px 7px;font-size:11px;font-weight:700;display:inline-block}.lineage-log-status.is-success{color:#1f7a4d;background:#eef8f2;border-color:#b7e0c9}.lineage-log-status.is-partial{color:#8a5a00;background:#fdf6e6;border-color:#ecd6a3}.lineage-log-status.is-failed{color:#a32020;background:#fdefef;border-color:#eec0c0}.lineage-log-step{color:var(--ink-3);margin-left:6px;font-size:11px}.lineage-log-error{color:#a32020}.lineage-log-warn{color:#8a5a00}.lineage-log-hash{font-family:var(--font-num);color:var(--ink-3);font-size:11px}@media (max-width:900px){.lineage-card-overlay{width:calc(100% - 24px)}}.strategy-empty{height:100%;color:var(--ink-3);flex-direction:column;justify-content:center;align-items:center;gap:6px;font-size:12px;display:flex}.strategy-empty b{color:var(--ink-2);font-size:13px}.strategy-upload-backdrop{z-index:70;background:#191f2459;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.strategy-upload{border:1px solid var(--hairline-2);background:var(--surface);border-radius:8px;flex-direction:column;gap:12px;width:min(520px,100vw - 48px);padding:18px;display:flex;box-shadow:0 24px 70px #181e233d}.strategy-upload-head{border-bottom:1px solid var(--hairline);justify-content:space-between;gap:12px;padding-bottom:4px;display:flex}.strategy-upload-head h3{font-size:15px}.strategy-upload-head p{color:var(--ink-3);margin-top:4px;font-size:11.5px}.strategy-close{border:1px solid var(--hairline-2);border-radius:var(--radius);background:var(--surface);width:28px;height:28px;color:var(--ink-2);cursor:pointer;flex:none;font-size:18px;line-height:1}.strategy-upload label{color:var(--ink-2);flex-direction:column;gap:5px;font-size:11.5px;font-weight:700;display:flex}.strategy-upload input,.strategy-upload textarea{border:1px solid var(--hairline-2);border-radius:var(--radius);width:100%;color:var(--ink);background:var(--surface);font-family:var(--font-ui);padding:7px 8px;font-size:12px;font-weight:400}.strategy-upload textarea{resize:vertical;min-height:78px}.strategy-upload-actions{justify-content:flex-end;gap:8px;padding-top:4px;display:flex}th,td{height:var(--row-h);border-bottom:1px solid var(--hairline);border-right:1px solid var(--hairline);padding:0 var(--cell-px);white-space:nowrap}thead th{z-index:3;background:var(--head-bg);border-bottom:1px solid var(--hairline-2);font-size:var(--fs-head);color:var(--ink-2);font-weight:500;font-family:var(--font-num);text-align:right;min-width:var(--col-w-month);max-width:var(--col-w-month);width:var(--col-w-month);position:sticky;top:0}thead th.rowhead-col{text-align:left;font-family:var(--font-ui);color:var(--ink);min-width:var(--col-w-rowhead);max-width:var(--col-w-rowhead);width:var(--col-w-rowhead);font-weight:600}thead th.rowhead-col>div{min-width:0;overflow:hidden}thead th.contract-amount-col{min-width:var(--col-w-contract);max-width:var(--col-w-contract);width:var(--col-w-contract);text-align:right;font-family:var(--font-ui);border-right:1px solid var(--hairline-2);font-weight:600}.col-resizer{z-index:8;cursor:col-resize;touch-action:none;width:9px;position:absolute;top:0;bottom:0;right:-4px}.col-resizer:after{content:"";background:0 0;border-radius:2px;width:2px;position:absolute;top:4px;bottom:4px;left:4px}.col-resizer:hover:after,.col-resizer:focus-visible:after,body.column-resizing .col-resizer.active:after{background:var(--accent)}.col-resizer:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}body.column-resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}thead th.sortable-col{cursor:pointer;-webkit-user-select:none;user-select:none}thead th.sortable-col:hover{color:var(--accent)}thead th.sortable-col:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.sort-arrow{color:var(--accent);margin-left:3px;font-size:9px}thead th .yy{color:var(--ink-2)}thead th.latest-col .mm-wrap{align-items:center;gap:5px;display:inline-flex}thead th.latest-col .tag{font-family:var(--font-ui);color:var(--accent);background:var(--accent-soft);letter-spacing:.02em;border-radius:3px;padding:1px 4px;font-size:9.5px;font-weight:700}.sticky-left{z-index:2;position:sticky}thead .sticky-left{z-index:4}tbody td.sticky-left{background-color:var(--surface)}.frozen-edge{border-right:1px solid var(--hairline-2);box-shadow:3px 0 6px -3px #20262b24}.column-drag-label{cursor:grab;-webkit-user-select:none;user-select:none}th.column-dragging{opacity:.48}th.column-drop-target{box-shadow:inset 3px 0 0 var(--accent)}.hidden-columns-chip{background:var(--accent-soft);color:var(--accent);cursor:pointer;font:600 9.5px/1.4 var(--font-ui);border:1px solid #1d5fbf40;border-radius:3px;flex:none;padding:0 4px}.hidden-columns-chip:hover{border-color:var(--accent)}.hidden-columns-chip:focus-visible{outline:2px solid var(--accent);outline-offset:1px}th.rowhead{background:var(--head-bg);font-size:var(--fs-label);text-align:left;cursor:default;min-width:var(--col-w-rowhead);max-width:var(--col-w-rowhead);width:var(--col-w-rowhead);padding:0 8px 0 6px;font-weight:400}th.rowhead .inner{align-items:center;gap:2px;height:100%;display:flex}th.rowhead .guides{flex:none;align-self:stretch;display:flex}th.rowhead .guide{border-left:1px solid var(--hairline-2);width:calc(var(--indent) - 7px);flex:none;align-self:stretch;margin-left:7px}tr[data-depth="1"] th.rowhead{background:var(--depth-1)}tr[data-depth="2"] th.rowhead{background:var(--depth-2)}tr[data-depth="3"] th.rowhead{background:var(--depth-3)}.caret{cursor:pointer;width:16px;height:16px;color:var(--ink-2);background:0 0;border:none;border-radius:3px;flex:none;justify-content:center;align-items:center;margin-right:2px;padding:0;font-size:9px;display:inline-flex}.caret:hover{background:var(--accent-soft);color:var(--accent)}.caret.none{visibility:hidden}.caret svg{transition:transform .12s ease-out}.caret.open svg{transform:rotate(90deg)}th.rowhead .label{text-overflow:ellipsis;font-weight:600;overflow:hidden}tr[data-depth="1"] .label,tr[data-depth="2"] .label,tr[data-depth="3"] .label{font-weight:400}th.rowhead .label.open{font-weight:600}.chip{color:var(--accent);background:var(--accent-soft);border:1px solid #1d5fbf40;border-radius:3px;flex:none;margin-left:6px;padding:.5px 4px;font-size:9.5px;font-weight:600}.aggregation-unit-chip{letter-spacing:-.01em}.linked-contracts-chip{color:var(--ink-2);background:var(--head-bg);border-color:var(--hairline-2);margin-left:4px}.chip.chip-lead{color:var(--leading-ink);background:var(--leading-bg);border-color:#7b5fa84d}.badge-lead{color:var(--leading-ink);background:var(--leading-bg);border-radius:3px;flex:none;margin-left:5px;padding:.5px 4px;font-size:9.5px;font-weight:600}tr.lead-row .guide:last-child{border-left-style:dashed;border-left-color:var(--leading-ink)}.ck{width:12px;height:12px;accent-color:var(--accent);cursor:pointer;flex:none;margin:0 4px 0 0}.path{color:var(--ink-3);flex:none;margin-right:5px;font-size:10px}.badge-unit{color:var(--ink-2);font-size:9.5px;font-family:var(--font-num);flex:none;margin-left:auto}.row-trend-action{width:20px;height:20px;color:var(--ink-3);cursor:pointer;opacity:0;pointer-events:none;background:0 0;border:1px solid #0000;border-radius:4px;flex:none;justify-content:center;align-items:center;margin-left:3px;padding:0;transition:opacity .1s ease-out,transform .1s ease-out,color .1s ease-out,background .1s ease-out;display:inline-flex;transform:scale(.92)}.row-trend-action svg{fill:currentColor}th.rowhead:hover .row-trend-action,th.rowhead:focus-within .row-trend-action{opacity:1;pointer-events:auto;transform:scale(1)}.row-trend-action:hover{color:var(--accent);background:var(--accent-soft);border-color:#1d5fbf3d}.row-trend-action:focus-visible{opacity:1;pointer-events:auto;outline:2px solid var(--accent);outline-offset:1px;transform:scale(1)}.badge-invert{color:var(--badge-warn-ink);background:var(--badge-warn-bg);border-radius:3px;flex:none;margin-left:5px;padding:.5px 4px;font-size:9.5px;font-weight:600}.badge-exception{color:var(--badge-warn-ink);background:var(--badge-warn-bg);border:1px solid #b4543f47;border-radius:3px;flex:none;margin-left:5px;padding:0 4px;font-size:9.5px;font-weight:700}td.num{font-family:var(--font-num);font-size:var(--fs-cell);font-variant-numeric:tabular-nums;text-align:right;color:var(--ink);cursor:cell;font-weight:500}td.num.empty{color:var(--ink-3);background:var(--surface)}td.num.payment-paid{background:var(--status-paid)}td.num.payment-unpaid{background:var(--status-unpaid)}td.num.simulation-actual,td.num.simulation-live{background:#e8f2fc}td.num.simulation-archive{background:#d4e4f4}td.num.simulation-gap{color:var(--ink-3);background:repeating-linear-gradient(135deg,#faf9f5 0 6px,#ece9e1 6px 8px)}td.num.simulation-target,td.num.simulation-projection{background:repeating-linear-gradient(135deg,#f5f1fa 0 6px,#ece5f6 6px 9px)}td.num.simulation-assumption{color:#805a00;background:#fff0cc}td.num.simulation-incomplete{color:var(--ink-3);background:repeating-linear-gradient(135deg,#faf9f5 0 6px,#ece9e1 6px 8px)}thead th.stat-col{text-align:center;font-family:var(--font-ui);color:var(--ink-2);cursor:pointer;-webkit-user-select:none;user-select:none;border-right:1px solid var(--hairline-2);min-width:var(--col-w-stat);max-width:var(--col-w-stat);width:var(--col-w-stat);font-weight:600}thead th.stat-col:hover{color:var(--accent)}td.statcell{cursor:pointer;border-right:1px solid var(--hairline-2);min-width:var(--col-w-stat);max-width:var(--col-w-stat);width:var(--col-w-stat);justify-content:space-between;align-items:center;gap:4px;display:flex;overflow:hidden}td.contract-amount{min-width:var(--col-w-contract);max-width:var(--col-w-contract);width:var(--col-w-contract);background:var(--head-bg);border-right:1px solid var(--hairline-2);font-family:var(--font-num);font-size:var(--fs-cell);text-overflow:ellipsis;overflow:hidden}td.contract-amount.contract-amount-mismatch{background:var(--heat-neg)}td.contract-amount.contract-amount-unavailable{color:var(--ink-3)}thead th.as-of-progress-col{min-width:var(--col-w-as-of-progress);max-width:var(--col-w-as-of-progress);width:var(--col-w-as-of-progress);text-align:center;border-right:1px solid var(--hairline-2);line-height:1.05}thead th.as-of-progress-col small{color:var(--ink-3);font-family:var(--font-num);margin-top:2px;font-size:9px;font-weight:500;display:block}td.as-of-progress-cell{min-width:var(--col-w-as-of-progress);max-width:var(--col-w-as-of-progress);width:var(--col-w-as-of-progress);background:var(--head-bg);border-right:1px solid var(--hairline-2);cursor:help;padding-top:2px;padding-bottom:2px}.as-of-percent{color:var(--ink);font-size:11.5px;font-weight:700;line-height:12px;display:block}.as-of-breakdown{white-space:nowrap;color:var(--ink-3);font-family:var(--font-ui);justify-content:flex-end;gap:7px;font-size:8.5px;line-height:10px;display:flex;overflow:hidden}.as-of-breakdown b{color:var(--ink-2);font-family:var(--font-num);font-weight:600}td.as-of-progress-cell.as-of-overrun{background:var(--heat-neg)}td.as-of-progress-cell.as-of-amount-mismatch{box-shadow:inset 3px 0 0 var(--badge-warn-ink)}td.as-of-progress-cell.as-of-series-unavailable .as-of-percent,td.as-of-progress-cell.as-of-amount-unavailable .as-of-percent,td.as-of-progress-cell.as-of-zero-total .as-of-percent{color:var(--ink-3)}td.statcell>span:last-child{text-overflow:ellipsis;overflow:hidden}.stat-tag{color:var(--ink-2);font-size:9px;font-weight:600;font-family:var(--font-ui);background:#20262b0f;border-radius:3px;flex:none;padding:.5px 3px}td.num:hover{box-shadow:inset 0 0 0 1px #1d5fbf59}td.num.selected{box-shadow:inset 0 0 0 2px var(--accent)}td.num:focus-visible,.caret:focus-visible,.ctl:focus-visible,.mi:focus-visible,.lens:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}tbody tr.subtotal-row th,tbody tr.subtotal-row td{top:var(--row-h);z-index:3;background:var(--depth-1);border-bottom:1px solid var(--hairline-2);font-weight:700;position:sticky;box-shadow:0 3px 7px -5px #20262b59}tbody tr.subtotal-row .sticky-left{z-index:5}tbody th.subtotal-head{text-align:left;background:var(--depth-1);min-width:var(--col-w-rowhead);max-width:var(--col-w-rowhead);width:var(--col-w-rowhead);padding:0 8px}tbody th.subtotal-head .inner{align-items:center;gap:5px;height:100%;display:flex}tbody td.subtotal-cell{cursor:default}tbody td.subtotal-cell:hover{box-shadow:0 3px 7px -5px #20262b59}tbody tr.block-row th{text-align:left;background:var(--depth-1);border-top:1px solid var(--hairline-2);border-bottom:1px solid var(--hairline);z-index:4;padding:7px 8px 5px;position:sticky;left:0}tbody tr.block-row .binner{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}tbody tr.block-row .blabel{font-family:var(--font-ui);letter-spacing:.04em;color:var(--ink-2);white-space:nowrap;font-size:10.5px;font-weight:700}tbody tr.block-row .bkind{background:var(--ink-3);border-radius:50%;flex:none;width:6px;height:6px}tbody tr.block-row .bkind.live{background:var(--accent)}tbody tr.block-row .bnote{font-family:var(--font-num);color:var(--ink-3);font-size:10px}tbody tr.block-row .bwarn{font-family:var(--font-ui);color:var(--badge-warn-ink);background:var(--badge-warn-bg);border-radius:3px;padding:1px 5px;font-size:10px;font-weight:700}thead th.date-dimension-col{text-align:center;font-family:var(--font-ui);border-right:1px solid var(--hairline-2);font-weight:600}td.date-dimension{background:var(--head-bg);border-right:1px solid var(--hairline-2);font-family:var(--font-num);text-align:center;text-overflow:ellipsis;cursor:default;font-size:11px;overflow:hidden}td.date-dimension.empty{color:var(--ink-3)}td.date-dimension.project-end-within-contract{background:var(--heat-pos)}td.date-dimension.project-end-after-contract{background:var(--heat-neg)}tbody .subtotal-message{color:var(--ink-2);font-family:var(--font-ui);text-align:center;font-size:10.5px;font-weight:500}tr.metric-row.entering{animation:.12s ease-out rowIn}@keyframes rowIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){tr.metric-row.entering{animation:none}.caret svg,.row-trend-action{transition:none}.sheet{animation:none}}.trend-dialog-backdrop{z-index:70;-webkit-backdrop-filter:blur(1.5px);backdrop-filter:blur(1.5px);background:#20262b52;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.trend-dialog{border:1px solid var(--hairline-2);background:var(--surface);border-radius:8px;flex-direction:column;width:min(920px,100vw - 48px);max-height:min(720px,100vh - 48px);display:flex;overflow:hidden;box-shadow:0 24px 64px -20px #20262b6b,0 8px 20px -12px #20262b3d}.trend-dialog-head{border-bottom:1px solid var(--hairline);flex:none;justify-content:space-between;align-items:flex-start;gap:20px;padding:18px 20px 14px;display:flex}.trend-dialog-kicker{color:var(--accent);font-family:var(--font-num);letter-spacing:.04em;font-size:9.5px;font-weight:700}.trend-dialog-head h2{margin-top:3px;font-size:18px;line-height:1.3}.trend-dialog-head p{color:var(--ink-2);margin-top:5px;font-size:11.5px}.trend-dialog-head-actions{align-items:center;gap:9px;display:flex}.trend-unit{border:1px solid var(--hairline-2);color:var(--ink-2);background:var(--head-bg);font-family:var(--font-num);border-radius:999px;padding:2px 7px;font-size:10px;font-weight:600}.trend-dialog-close{border:1px solid var(--hairline-2);width:28px;height:28px;color:var(--ink-2);background:var(--surface);font:400 19px/1 var(--font-ui);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;padding:0;display:inline-flex}.trend-dialog-close:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.trend-dialog-close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.trend-dialog-meta{border-bottom:1px solid var(--hairline);min-height:38px;color:var(--ink-3);flex:none;align-items:center;gap:6px;padding:8px 20px;font-size:10.5px;display:flex}.trend-dialog-meta>b{color:var(--ink-2);font-family:var(--font-num);font-size:10.5px}.trend-legend{color:var(--ink-2);align-items:center;gap:11px;margin-left:auto;font-size:10px;display:flex}.trend-legend>span{align-items:center;gap:4px;display:inline-flex}.trend-legend i{background:var(--accent);border:1px solid #20262b1f;border-radius:2px;width:9px;height:9px}.trend-legend-projection i{background:repeating-linear-gradient(135deg,#7b5fa8 0 3px,#ede7f6 3px 6px)}.trend-legend-assumption i{background:#d89b22}.trend-legend-incomplete i{border-style:dashed;border-color:var(--ink-3);background:0 0}.trend-dialog-body{min-height:0;padding:16px 18px 12px;overflow:auto}.trend-chart{min-width:0}.trend-chart-scroll{border:1px solid var(--hairline);background:linear-gradient(#fff,#fcfbf8);border-radius:6px;overflow:auto hidden}.trend-chart-svg{max-width:none;display:block;overflow:visible}.trend-zero-line{stroke:var(--hairline-2);stroke-width:1px}.trend-bar{fill:var(--accent);transition:opacity .1s ease-out}.trend-point-actual .trend-bar{fill:var(--accent)}.trend-point-projection .trend-bar{fill:url(#trend-projection-pattern)}.trend-point-assumption .trend-bar{fill:#d89b22}.trend-point-incomplete .trend-bar{fill:var(--ink-3)}.trend-point-empty rect{fill:#98a1aa09;stroke:var(--hairline-2);stroke-dasharray:3 3}.trend-point:hover .trend-bar{opacity:.82}.trend-point:focus{outline:none}.trend-point:focus .trend-bar,.trend-point-empty:focus rect{stroke:var(--accent);stroke-width:2px}.trend-value-label{fill:var(--ink);font-family:var(--font-num);text-anchor:middle;pointer-events:none;font-size:10.5px;font-weight:700}.trend-period-label{fill:var(--ink-2);font-family:var(--font-num);pointer-events:none;font-size:10px}.trend-latest-label{fill:var(--accent);font-family:var(--font-ui);font-size:9px;font-weight:700}.trend-boundary line{stroke:var(--leading-ink);stroke-width:1px;stroke-dasharray:4 4}.trend-boundary text{fill:var(--leading-ink);font-family:var(--font-ui);font-size:9.5px;font-weight:700}.trend-empty{text-align:center;min-height:320px;color:var(--ink-3);flex-direction:column;justify-content:center;align-items:center;display:flex}.trend-empty>span{font-size:28px}.trend-empty b{color:var(--ink-2);margin-top:10px;font-size:13px}.trend-empty p{margin-top:5px;font-size:11px}@media (hover:none){.row-trend-action{opacity:1;pointer-events:auto;transform:none}}@media (max-width:720px){.trend-dialog-backdrop{padding:10px}.trend-dialog{width:calc(100vw - 20px);max-height:calc(100vh - 20px)}.trend-dialog-head{padding:15px}.trend-dialog-meta{flex-wrap:wrap;align-items:flex-start;padding:8px 15px}.trend-legend{width:100%;margin:2px 0 0}.trend-dialog-body{padding:10px}}.menu{z-index:50;background:var(--surface);border:1px solid var(--hairline-2);border-radius:var(--radius);min-width:190px;padding:4px;font-size:12.5px;animation:90ms ease-out menuIn;position:fixed;box-shadow:0 6px 20px -6px #20262b40,0 2px 6px #20262b14}@keyframes menuIn{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}.menu .mi{cursor:pointer;color:var(--ink);text-align:left;width:100%;font-family:var(--font-ui);background:0 0;border:none;border-radius:3px;align-items:center;gap:8px;padding:6px 9px;font-size:12.5px;display:flex}.menu .mi:hover{background:var(--accent-soft)}.menu .mi.disabled{color:var(--ink-3);pointer-events:none}.menu .mi .ico{text-align:center;width:14px;color:var(--ink-2);flex:none;font-size:11px}.menu .mi .kbd{color:var(--ink-3);font-size:10px;font-family:var(--font-num);margin-left:auto}.menu .sep{background:var(--hairline);height:1px;margin:4px 6px}.menu .mhead{color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em;padding:5px 9px 3px;font-size:10px;font-weight:700}.menu .mi .check{width:14px;color:var(--accent);text-align:center;flex:none}.menu .info-row{color:var(--ink);white-space:normal;max-width:300px;padding:5px 9px;font-size:12px;line-height:1.5}.menu .info-row>b{color:var(--ink-2);margin-right:7px;font-size:11px;font-weight:700}.menu .info-row.dim{color:var(--ink-3);font-size:11px;font-family:var(--font-num)}.menu .info-row .inv-hint{color:var(--badge-warn-ink)}.menu .mi-range{align-items:center;gap:6px;padding:4px 9px 6px;display:flex}.menu .mi-range span{color:var(--ink-3);font-size:11px}.menu .mi-range select{min-width:0;font-family:var(--font-num);color:var(--ink);background:var(--surface);border:1px solid var(--hairline-2);border-radius:3px;flex:1;padding:3px 4px;font-size:11.5px}.menu .mi-range select:focus-visible{outline:2px solid var(--accent);outline-offset:-1px}.menu .month-range-form{width:292px;padding:4px 9px 7px}.menu .month-range-fields{grid-template-columns:minmax(0,1fr) 10px minmax(0,1fr);align-items:start;gap:5px;display:grid}.menu .month-range-field{min-width:0;display:block}.menu .month-range-label{color:var(--ink-2);margin:0 0 3px;font-size:10px;font-weight:700;display:block}.menu .month-range-control{background:var(--surface);border:1px solid var(--hairline-2);border-radius:4px;height:29px;display:flex;overflow:hidden}.menu .month-range-field.invalid .month-range-control{border-color:var(--badge-warn-ink)}.menu .month-range-control:focus-within{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.menu .month-range-control>input[type=text]{width:100%;min-width:0;color:var(--ink);font-family:var(--font-num);background:0 0;border:0;outline:0;padding:5px 4px 5px 7px;font-size:11.5px}.menu .month-range-control>input[type=text]::placeholder{color:var(--ink-3)}.menu .month-range-picker{border:0;border-left:1px solid var(--hairline);color:#0000;background:var(--surface);cursor:pointer;width:28px;min-width:28px;padding:2px}.menu .month-range-picker::-webkit-datetime-edit{display:none}.menu .month-range-picker::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.72;width:16px;height:16px;margin:0;padding:2px}.menu .month-range-separator{color:var(--ink-3);text-align:center;align-self:center;margin-top:15px;font-size:11px}.menu .month-range-error{min-height:14px;color:var(--badge-warn-ink);padding-top:2px;font-size:9.5px;line-height:1.2;display:block}.menu .month-range-actions{align-items:center;gap:8px;display:flex}.menu .month-range-actions>span{color:var(--ink-3);font-family:var(--font-num);flex:1;font-size:9.5px}.menu .mi.month-range-apply{color:#fff;background:var(--accent);flex:none;width:auto;padding:5px 10px}.menu .mi.month-range-apply:hover{background:#174f9f}.menu .mi.month-range-apply:disabled{cursor:not-allowed;opacity:.45}.sheet[hidden]{display:none}.sheet{z-index:40;height:var(--sheet-h,42vh);background:var(--surface);border-top:2px solid var(--hairline-2);flex-direction:column;min-height:240px;max-height:90vh;animation:.14s ease-out sheetIn;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 24px -8px #20262b38}.sheet-grip{cursor:ns-resize;background:var(--head-bg);border-bottom:1px solid var(--hairline);touch-action:none;flex:none;justify-content:center;align-items:center;height:9px;display:flex}.sheet-grip:before{content:"";background:var(--hairline-2);border-radius:2px;width:44px;height:3px}.sheet-grip:hover:before{background:var(--accent)}body.sheet-resizing{cursor:ns-resize;-webkit-user-select:none;user-select:none}body.sheet-resizing .sheet{animation:none}@keyframes sheetIn{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}.sheet-head{border-bottom:1px solid var(--hairline-2);background:var(--head-bg);flex-wrap:wrap;flex:none;align-items:center;gap:8px 10px;padding:8px 46px 8px 14px;display:flex;position:relative}.sheet-head .t{overflow-wrap:anywhere;min-width:0;font-size:13px;font-weight:700}.sheet-head .t .mono{font-family:var(--font-num);color:var(--ink-2);font-weight:500}.sheet-head .crumb{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--ink-3);flex:0 auto;font-size:11px;overflow:hidden}.sheet-head .hint{color:var(--ink-3);margin-left:auto;font-size:11px}.sheet-fresh{color:var(--ink-3);font-size:11px;font-family:var(--font-num);overflow-wrap:anywhere;max-width:100%}.sheet-fresh.unknown{font-style:italic}.sheet-head .sheet-close{position:absolute;top:8px;right:14px}@media (max-width:600px){.sheet-head .hint{flex-basis:100%;margin-left:0}}.sheet-close{border:1px solid var(--hairline-2);border-radius:var(--radius);background:var(--surface);cursor:pointer;width:22px;height:22px;color:var(--ink-2);flex:none;padding:0;font-size:12px;line-height:1}.sheet-close:hover{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.sheet-close:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.sheet-body{flex:1;overflow:auto}.sheet-body table{width:100%}.sheet-body thead th{z-index:2;background:var(--head-bg);border-bottom:1px solid var(--hairline-2);font-size:var(--fs-head);color:var(--ink-2);text-align:left;font-weight:600;font-family:var(--font-ui);width:auto;min-width:0;max-width:none;position:sticky;top:0}.sheet-body th.r,.sheet-body td.r{text-align:right;font-family:var(--font-num);font-variant-numeric:tabular-nums;font-size:var(--fs-cell)}.sheet-body td{font-size:var(--fs-label);color:var(--ink)}.sheet-body td.dim{color:var(--ink-2);font-family:var(--font-num);font-size:11px}.sheet-body tr.subtotal td{top:var(--row-h);z-index:1;background:var(--depth-1);border-bottom:1px solid var(--hairline-2);font-weight:700;position:sticky}.sheet-body tr.subtotal td.r{font-weight:600}.sheet-body .loading{color:var(--ink-3);padding:18px;font-size:12px}.sheet-body thead th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.sheet-body thead th.sortable:hover{color:var(--accent)}.sheet-body thead th .sort-ind{color:var(--accent);margin-left:3px;font-size:9px}.sheet-body .restricted{border-radius:var(--radius);background:var(--badge-warn-bg);color:var(--badge-warn-ink);border:1px solid #b4543f59;margin:14px;padding:12px 14px;font-size:12px;line-height:1.6}.boot-error{background:var(--badge-warn-bg);max-width:520px;color:var(--badge-warn-ink);border:1px solid var(--badge-warn-ink);border-radius:var(--radius);margin:40px auto;padding:16px 20px;font-size:13px;line-height:1.6}.boot-error code{font-family:var(--font-num);background:#b4543f1a;border-radius:3px;padding:1px 4px;font-size:12px}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.cell-skel,.skel-line{background:linear-gradient(90deg, var(--hairline) 25%, var(--surface) 37%, var(--hairline-2) 63%);background-size:200% 100%;border-radius:3px;animation:1.4s ease-in-out infinite shimmer;display:inline-block}.cell-skel{vertical-align:middle;width:46px;height:10px}.berr{background:var(--badge-warn-bg);color:var(--badge-warn-ink);border-radius:999px;margin-left:6px;padding:2px 6px;font-size:10px}.lens-skeleton{background:var(--paper);min-height:100vh}.lens-skel-top{border-bottom:1px solid var(--hairline-2);height:48px;padding:14px 16px}.lens-skel-top .skel-line{width:210px;height:16px}.lens-skel-shell{grid-template-columns:var(--rail-w) 1fr;min-height:calc(100vh - 48px);display:grid}.lens-skel-rail{border-right:1px solid var(--hairline-2);background:var(--head-bg);padding:16px 12px}.lens-skel-rail .skel-line{width:100%;height:22px;margin-bottom:10px;display:block}.lens-skel-grid{background:var(--surface);padding:18px;overflow:hidden}.lens-skel-block{width:280px;height:18px;margin-bottom:14px}.lens-skel-row{border-bottom:1px solid var(--hairline);grid-template-columns:minmax(220px,1fr) repeat(8,72px);align-items:center;gap:18px;height:32px;display:grid}.lens-skel-label{width:min(220px,80%);height:11px}@media (prefers-reduced-motion:reduce){.cell-skel,.skel-line{animation:none}}.grid-wrap::-webkit-scrollbar{width:10px;height:10px}.sheet-body::-webkit-scrollbar{width:10px;height:10px}.grid-wrap::-webkit-scrollbar-thumb{background:var(--hairline-2);border:2px solid var(--surface);border-radius:5px}.sheet-body::-webkit-scrollbar-thumb{background:var(--hairline-2);border:2px solid var(--surface);border-radius:5px}.grid-wrap::-webkit-scrollbar-track{background:var(--surface)}.sheet-body::-webkit-scrollbar-track{background:var(--surface)}.hr-roster{background:var(--surface);flex-direction:column;align-items:stretch;min-height:100%;display:flex}.hr-roster-bar{border-bottom:1px solid var(--hairline);background:var(--head-bg);align-items:center;gap:10px;padding:10px 14px;display:flex}.hr-roster-bar input{border:1px solid var(--hairline-2);border-radius:var(--radius);background:var(--surface);max-width:280px;height:28px;color:var(--ink);font:inherit;flex:1;padding:0 8px;font-size:12.5px}.hr-roster-bar select{border:1px solid var(--hairline-2);border-radius:var(--radius);background:var(--surface);height:28px;color:var(--ink);font:inherit;padding:0 26px 0 8px;font-size:12px}.hr-roster-bar span{color:var(--ink-3);font-family:var(--font-num);font-size:11px}.hr-roster-bar .hr-movement-count{border-left:1px solid var(--hairline);padding-left:8px}.hr-roster table{border-collapse:collapse;table-layout:fixed;width:max-content;max-width:100%}.hr-roster th,.hr-roster td{height:var(--row-h);padding:0 var(--cell-px);border-bottom:1px solid var(--hairline);text-align:left;font-size:var(--fs-label)}.hr-roster th{background:var(--head-bg);font-size:var(--fs-head);color:var(--ink-2);font-weight:600;position:sticky;top:0}.hr-roster th button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:0}.hr-roster td.num{font-family:var(--font-num);font-size:var(--fs-cell)}.hr-roster tr.is-leave td{color:var(--ink-2)}.hr-roster tr.is-left td{color:var(--ink-3)}.hr-roster-subtotal td{background:var(--head-bg);color:var(--ink);font-weight:600}.hr-movement-kind{background:var(--head-bg);min-width:46px;height:20px;color:var(--ink-2);border-radius:10px;justify-content:center;align-items:center;padding:0 6px;font-size:11px;font-weight:600;display:inline-flex}.hr-movement-kind.kind-입사,.hr-movement-kind.kind-재입사,.hr-movement-kind.kind-복직{background:var(--accent-soft);color:var(--accent)}.hr-movement-kind.kind-퇴사{background:var(--badge-warn-bg);color:var(--badge-warn-ink)}.hr-movement-kind.kind-휴직{background:var(--head-bg);color:var(--ink-2)}.hr-movement-empty{color:var(--ink-3);text-align:center!important;height:72px!important}.hr-org-tree-list{margin:0;padding:8px 0 24px;list-style:none;overflow:auto}.hr-org-tree-row{border-bottom:1px solid var(--hairline);padding:8px 14px 10px}.hr-org-tree-main{align-items:center;gap:8px;min-height:24px;display:flex}.hr-org-tree-toggle{width:18px;height:18px;color:var(--ink-3);cursor:pointer;background:0 0;border:0;padding:0;font-size:12px;line-height:1}.hr-org-tree-toggle.is-leaf{cursor:default;color:var(--ink-3)}.hr-org-tree-main strong{color:var(--ink);font-size:13px;font-weight:650}.hr-org-tree-count{color:var(--ink-3);font-family:var(--font-num);font-size:11px}.hr-org-tree-members{flex-wrap:wrap;gap:6px;margin:6px 0 0 26px;display:flex}.hr-org-tree-member{background:var(--head-bg);height:22px;color:var(--ink-2);border-radius:999px;align-items:center;padding:0 8px;font-size:12px;display:inline-flex}.hr-org-tree-member.is-leave{color:var(--ink-3);background:color-mix(in srgb, var(--head-bg) 70%, transparent);border:1px dashed var(--hairline-2)}.hr-org-units th.hr-org-units-asof{z-index:1;vertical-align:top;background:var(--head-bg);font-family:var(--font-num);font-size:var(--fs-cell);color:var(--ink);border-right:1px solid var(--hairline);padding-top:10px;font-weight:650;position:sticky;left:0}.hr-org-units-asof-count{color:var(--ink-3);margin-top:4px;font-size:11px;font-weight:500;display:block}.hr-edit-add{border:1px solid var(--hairline-2);border-radius:var(--radius);background:var(--surface);height:28px;color:var(--ink);font:inherit;cursor:pointer;padding:0 10px;font-size:12px}.hr-edit-error{color:var(--badge-warn-ink);font-size:12px}.hr-row-actions{white-space:nowrap;color:var(--ink-2);align-items:center;gap:6px;font-size:12px;display:inline-flex}.hr-row-actions button{border:1px solid var(--hairline-2);border-radius:var(--radius);background:var(--surface);height:22px;color:var(--ink);font:inherit;cursor:pointer;padding:0 8px;font-size:11px}.hr-edit-backdrop{z-index:40;background:color-mix(in srgb, var(--ink) 28%, transparent);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.hr-edit-dialog{background:var(--surface);border:1px solid var(--hairline);border-radius:8px;width:min(420px,100vw - 32px);max-height:calc(100vh - 48px);padding:16px 16px 12px;overflow:auto;box-shadow:0 12px 32px -16px #20262b66}.hr-edit-dialog h2{margin:0 0 12px;font-size:14px;font-weight:650}.hr-edit-field{color:var(--ink-2);flex-direction:column;gap:4px;margin-bottom:10px;font-size:12px;display:flex}.hr-edit-field input,.hr-edit-field select,.hr-edit-field textarea{border:1px solid var(--hairline-2);border-radius:var(--radius);background:var(--surface);height:28px;color:var(--ink);font:inherit;padding:0 8px}.hr-edit-field textarea{resize:vertical;height:64px;padding:6px 8px}.hr-edit-actions{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.hr-edit-actions button,.hr-edit-members button,.hr-edit-member-add button{border:1px solid var(--hairline-2);border-radius:var(--radius);background:var(--surface);height:28px;color:var(--ink);font:inherit;cursor:pointer;padding:0 10px;font-size:12px}.hr-edit-actions button[type=submit]{background:var(--head-bg);font-weight:600}.hr-edit-members{color:var(--ink-2);margin:8px 0;font-size:12px}.hr-edit-members ul{margin:6px 0;padding:0;list-style:none}.hr-edit-members li{align-items:center;gap:8px;margin-bottom:4px;display:flex}.hr-edit-member-add{align-items:center;gap:6px;display:flex}.hr-edit-member-add input,.hr-edit-member-add select{border:1px solid var(--hairline-2);border-radius:var(--radius);background:var(--surface);height:28px;color:var(--ink);font:inherit;padding:0 8px}.login-shell{flex:1;justify-content:center;align-items:center;padding:24px;display:flex;overflow:auto}.login-card{background:var(--surface);border:1px solid var(--hairline-2);border-radius:8px;width:100%;max-width:380px;padding:30px 28px;box-shadow:0 8px 28px -14px #20262b47}.login-brand{align-items:baseline;gap:8px;display:flex}.login-brand h1{letter-spacing:-.01em;font-size:20px;font-weight:700}.login-brand .sub{color:var(--ink-3);font-size:11px;font-family:var(--font-num)}.login-desc{color:var(--ink-2);margin-top:10px;font-size:12.5px;line-height:1.6}.login-error{border-radius:var(--radius);background:var(--badge-warn-bg);color:var(--badge-warn-ink);border:1px solid #b4543f59;margin-top:16px;padding:10px 12px;font-size:12px;line-height:1.6}.login-btn{border-radius:var(--radius);cursor:pointer;border:1px solid var(--hairline-2);background:var(--surface);width:100%;font-family:var(--font-ui);color:var(--ink);justify-content:center;align-items:center;gap:9px;margin-top:20px;padding:10px 14px;font-size:13px;font-weight:600;display:inline-flex}.login-btn:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.login-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.login-foot{border-top:1px solid var(--hairline);color:var(--ink-3);margin-top:18px;padding-top:14px;font-size:11px;line-height:1.6}.cohort-matrix-note{color:var(--ink-2);padding:10px 16px 8px;font-size:12px;line-height:1.5}.cohort-matrix{min-width:max-content;padding-bottom:32px}.cohort-group{margin:8px 0 20px}.cohort-group-title{letter-spacing:-.01em;margin:0 16px 8px;font-size:13px;font-weight:700}.cohort-panel{margin:0 0 18px}.cohort-panel-title{color:var(--ink-2);margin:0 16px 6px;font-size:12px;font-weight:600}.cohort-matrix table{border-collapse:separate;border-spacing:0;font-size:var(--fs-cell)}.cohort-matrix th,.cohort-matrix td{height:var(--row-h);border-bottom:1px solid var(--hairline);border-right:1px solid var(--hairline);white-space:nowrap;padding:0 4px}.cohort-matrix thead th{background:var(--head-bg);font-size:var(--fs-head);color:var(--ink-2);text-align:right;font-weight:600}.cohort-matrix .cohort-sticky{z-index:1;background:var(--head-bg);text-align:left;min-width:64px;padding:0 8px;position:sticky;left:0}.cohort-matrix tbody th.cohort-sticky{background:var(--surface);font-weight:600}.cohort-matrix td.num{font-family:var(--font-num);text-align:right}.cohort-matrix .cohort-measure{min-width:64px;max-width:80px}.cohort-matrix .cohort-lag{width:48px;min-width:48px;max-width:48px}.cohort-matrix thead th.cohort-lag{text-align:center}.cohort-matrix td.empty{background:var(--paper)}.project-pnl-empty{color:var(--ink-2);padding:24px 16px;font-size:13px}.project-pnl-note{color:var(--ink-2);padding:10px 16px 8px;font-size:12px;line-height:1.5}.project-pnl-matrix{--pp-project-w:220px;--pp-measure-w:132px;--pp-ptd-w:128px;min-width:max-content;padding-bottom:32px}.project-pnl-toolbar{z-index:5;align-items:center;gap:12px;padding:8px 16px 4px;display:flex;position:sticky;left:0}.project-pnl-actual-status{color:var(--ink-2);font-size:12px}.project-pnl-matrix table{border-collapse:separate;border-spacing:0;font-size:var(--fs-cell)}.project-pnl-matrix th,.project-pnl-matrix td{height:var(--row-h);border-bottom:1px solid var(--hairline);border-right:1px solid var(--hairline);white-space:nowrap;padding:0 8px}.project-pnl-matrix thead th{z-index:3;background:var(--head-bg);font-size:var(--fs-head);color:var(--ink-2);text-align:right;font-weight:600;position:sticky;top:0}.project-pnl-matrix thead th.sticky-project,.project-pnl-matrix thead th.sticky-measure{text-align:left;z-index:4}.project-pnl-matrix thead th.sticky-ptd{z-index:4}.project-pnl-matrix .sticky-project,.project-pnl-matrix .sticky-measure,.project-pnl-matrix .sticky-ptd{z-index:2;background:var(--head-bg);white-space:nowrap;text-overflow:ellipsis;position:sticky;overflow:hidden}.project-pnl-matrix .sticky-project,.project-pnl-matrix .sticky-measure{text-align:left}.project-pnl-matrix .sticky-project{width:var(--pp-project-w);min-width:var(--pp-project-w);max-width:var(--pp-project-w);left:0}.project-pnl-matrix .sticky-measure{left:var(--pp-project-w);width:var(--pp-measure-w);min-width:var(--pp-measure-w);max-width:var(--pp-measure-w);font-weight:500}.project-pnl-matrix .sticky-ptd{left:calc(var(--pp-project-w) + var(--pp-measure-w));width:var(--pp-ptd-w);min-width:var(--pp-ptd-w);max-width:var(--pp-ptd-w);border-right:2px solid var(--hairline-2,#c9cdd4);font-weight:600}.project-pnl-matrix tbody th.sticky-project,.project-pnl-matrix tbody th.sticky-measure,.project-pnl-matrix tbody td.sticky-ptd{background:var(--surface)}.project-pnl-matrix tbody th.sticky-project{vertical-align:top;font-weight:600}.project-pnl-matrix .project-pnl-label{align-items:center;gap:8px;min-width:0;max-width:100%;display:inline-flex}.project-pnl-matrix .project-pnl-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.project-pnl-matrix .project-pnl-logo{background:var(--hairline);width:20px;height:20px;color:var(--ink-2);border-radius:4px;flex:none;justify-content:center;align-items:center;display:inline-flex;overflow:hidden}.project-pnl-matrix .project-pnl-logo img{object-fit:contain;width:100%;height:100%;display:block}.project-pnl-matrix .project-pnl-logo.person{border-radius:50%}.project-pnl-matrix .project-pnl-logo.person img{object-fit:cover}.project-pnl-matrix .project-pnl-logo .ini{font-size:10px;font-weight:700;line-height:1}.project-pnl-matrix td.num{font-family:var(--font-num);text-align:right;min-width:88px}.project-pnl-matrix td.empty{color:var(--ink-3)}.project-pnl-matrix tr.residual th,.project-pnl-matrix tr.residual td{color:var(--ink-2);font-style:italic}.project-pnl-matrix tr.project-pnl-group-end th,.project-pnl-matrix tr.project-pnl-group-end td{border-bottom-color:var(--hairline-2,#c9cdd4)}.project-pnl-matrix tr.project-pnl-total th,.project-pnl-matrix tr.project-pnl-total td{background:var(--head-bg);font-weight:600}.project-pnl-matrix tbody tr.project-pnl-total .sticky-project,.project-pnl-matrix tbody tr.project-pnl-total .sticky-measure,.project-pnl-matrix tbody tr.project-pnl-total .sticky-ptd{background:var(--head-bg)}.project-pnl-matrix tr.project-pnl-block th{z-index:3;background:var(--depth-1,#f0ebe3);position:sticky;left:0}.project-pnl-matrix tr.project-pnl-subtotal th,.project-pnl-matrix tr.project-pnl-subtotal td{background:var(--depth-1,#f0ebe3);font-weight:600}.project-pnl-matrix tbody tr.project-pnl-subtotal .sticky-project,.project-pnl-matrix tbody tr.project-pnl-subtotal .sticky-measure,.project-pnl-matrix tbody tr.project-pnl-subtotal .sticky-ptd{background:var(--depth-1,#f0ebe3)}.lineage-graph-tools{flex-wrap:wrap;row-gap:6px}.lineage-chipset{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.lineage-chipset+.lineage-chipset{border-left:1px solid var(--line);margin-left:2px;padding-left:8px}.lineage-chip[aria-pressed=false]{opacity:.4}.lineage-chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.lineage-chip-ws{font-weight:600}.lineage-chip-ws:before{border-radius:2px;width:9px;height:9px}.lineage-chip-plain:before{display:none}.lineage-search{position:relative}.lineage-search-input{width:200px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:4px 8px;font-size:12px}.lineage-search-input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.lineage-search-list{z-index:6;background:var(--surface);border:1px solid var(--line);border-radius:8px;width:320px;max-height:320px;margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;overflow:auto;box-shadow:0 12px 28px #00000059}.lineage-search-list button{text-align:left;width:100%;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:5px;align-items:baseline;gap:8px;padding:5px 8px;font-size:12px;display:flex}.lineage-search-list button.on{background:var(--head-bg)}.lineage-search-list button code{color:var(--ink-3);font-size:11px}.lineage-search-list button .nm{flex:1}.lineage-ws-badges{flex-wrap:wrap;gap:4px;margin:6px 0;display:flex}.lineage-ws-badge{color:var(--ink-2);border:1px solid var(--chip,var(--line));border-radius:999px;padding:1px 7px;font-size:11px}.lineage-card-acts{border-top:1px solid var(--line);flex-wrap:wrap;gap:6px;margin-top:10px;padding-top:8px;display:flex}.lineage-graph-link{color:var(--accent);white-space:nowrap;font-size:13px}.lineage-card p>a[href^="/lineage/"]{white-space:nowrap}.lineage-rail-kind{color:var(--ink-3);border:1px solid var(--line);border-radius:999px;margin-left:6px;padding:0 5px;font-size:10px}.ctl.lineage-entry{white-space:nowrap;text-decoration:none}.lineage-empty-canvas{text-align:center;color:var(--ink-2);pointer-events:none;justify-content:center;align-items:center;margin:0;padding:0 24px;font-size:13px;display:flex;position:absolute;inset:0}.lineage-node-auto{fill:none;stroke:#087f8c;stroke-width:2px;pointer-events:none}.lineage-ops-path{overflow-wrap:anywhere;border-top:1px solid #d5dedf;padding-top:12px}.lineage-ops-path .is-here{background:#edf8f7;border-left:3px solid #087f8c;padding-left:8px}.journal-settings{max-width:1400px;margin:40px auto;padding:24px}.journal-settings nav{margin-bottom:24px}.journal-settings h1,.journal-settings h2{margin:20px 0}.journal-settings p{margin:12px 0}.journal-settings form{flex-wrap:wrap;align-items:end;gap:16px;margin:24px 0;display:flex}.journal-settings label{gap:8px;display:grid}.journal-settings input{border:1px solid #9ca3af;border-radius:6px;min-width:220px;padding:10px}.journal-settings button{color:#172554;cursor:pointer;background:#fff;border:1px solid #9ca3af;border-radius:6px;margin:3px;padding:8px 12px}.journal-settings button:disabled{opacity:.45;cursor:default}.journal-table-wrap{overflow-x:auto}.journal-settings table{border-collapse:collapse;width:100%;font-size:13px}.journal-settings td,.journal-settings th{text-align:left;vertical-align:top;border-bottom:1px solid #d1d5db;padding:12px}.journal-settings th{color:#111827;white-space:nowrap;background:#f3f4f6}.journal-settings [role=alert]{color:#b91c1c}.journal-modal-backdrop{z-index:1000;background:#0008;place-items:center;display:grid;position:fixed;inset:0}.journal-modal{color:#111827;background:#fff;border-radius:12px;width:min(90vw,640px);padding:28px}.journal-secret{overflow-wrap:anywhere;background:#f3f4f6;margin:16px 0;padding:16px;display:block}.admin-shell{color:#243247;background:#f5f7fa;grid-template-columns:224px minmax(0,1fr);min-height:100dvh;display:grid}.admin-rail{background:#fff;border-right:1px solid #e3e8ef;flex-direction:column;gap:36px;padding:32px 20px;display:flex}.admin-rail a{color:#536176;text-decoration:none}.admin-brand{padding:0 12px;font-size:22px;font-weight:700;color:#172b49!important}.admin-brand span{color:#758196;margin-top:8px;font-size:12px;font-weight:400;display:block}.admin-rail nav{gap:8px;display:grid}.admin-rail nav a{border-radius:8px;padding:12px;font-size:14px}.admin-rail nav a[aria-current=page]{color:#2158b0;background:#edf3ff;font-weight:600}.admin-return{margin-top:auto;padding:12px;font-size:13px}.admin-main.journal-settings{background:#fff;border:1px solid #e3e8ef;border-radius:14px;align-self:start;width:auto;min-width:0;max-width:none;margin:32px;padding:32px;box-shadow:0 3px 16px #20305004}.admin-eyebrow{color:#768398;letter-spacing:.12em;font-size:11px;font-weight:600}.admin-heading h1{letter-spacing:-.04em;font-size:28px;margin:10px 0!important}.admin-heading p,.admin-help{color:#66758a;font-size:13px;line-height:1.7}.admin-toolbar{flex-wrap:wrap;align-items:end;gap:16px;margin:30px 0 12px;display:flex}.admin-toolbar label{color:#536176;font-size:12px}.admin-search{flex:1}.admin-main select{font:inherit;color:inherit;background:#fff;border:1px solid #bcc7d5;border-radius:6px;padding:10px}.admin-main button.admin-primary{color:#fff;background:#245eb8;border-color:#245eb8}.admin-main button.admin-danger{color:#fff;background:#b42332;border-color:#b42332}.admin-main .admin-danger-text{color:#b42332}.admin-main :is(button,input,textarea,select,summary,a):focus-visible,.admin-rail a:focus-visible{outline-offset:3px;outline:3px solid #89b4fb}.admin-main .admin-count{color:#68768a;margin:20px 0 12px;font-size:12px}.admin-notice:empty{display:none}.admin-notice{color:#16704e;font-size:13px}.admin-table{border:1px solid #e3e8ef;border-radius:10px}.admin-table table{min-width:860px}.admin-table td{vertical-align:middle;padding:6px 12px}.admin-table th{color:#65748a;background:#f8fafc;font-size:12px;font-weight:500}.admin-date{color:#6c788b;font-size:12px}.admin-badge,.admin-self{color:#68758a;white-space:nowrap;background:#f0f2f5;border-radius:5px;padding:4px 7px;font-size:11px;display:inline-block}.admin-self{margin-left:6px}.admin-active{color:#20724b;background:#e8f7ee}.admin-role{color:#355eaa;background:#edf2ff}.admin-empty{text-align:center;color:#738095;background:#fafbfd;border-radius:10px;padding:64px 16px;font-size:14px}.admin-table .admin-row-menu summary{cursor:pointer;text-align:center;border:1px solid #d7dfe8;border-radius:6px;padding:4px 8px;list-style:none}.admin-row-menu summary::-webkit-details-marker{display:none}.admin-row-menu div{min-width:125px;padding-top:6px;display:grid}.admin-row-menu button{margin:2px 0;font-size:12px}.admin-dialog{border:0;max-height:calc(100dvh - 32px);margin:auto;padding:24px;overflow-y:auto}.admin-dialog::backdrop{background:#14243b66}.admin-dialog form{align-items:stretch;gap:16px;margin:0;display:grid}.admin-dialog label{font-size:13px}.admin-dialog input{box-sizing:border-box;width:100%;min-width:0}.admin-dialog h2{margin:0;font-size:21px}.admin-dialog p{margin:0;font-size:13px;line-height:1.7}.admin-dialog-heading{justify-content:space-between;align-items:center;gap:16px;display:flex}.admin-dialog footer{border-top:1px solid #e4e9f0;justify-content:flex-end;gap:8px;padding-top:16px;display:flex}.admin-target{overflow-wrap:anywhere;background:#f5f7fa;border-radius:8px;padding:16px}@media (max-width:860px){.admin-shell{display:block}.admin-rail{border-bottom:1px solid #e3e8ef;border-right:0;gap:16px;padding:16px}.admin-brand{font-size:18px}.admin-brand span{display:none}.admin-rail nav{gap:4px;display:flex;overflow-x:auto}.admin-rail nav a{white-space:nowrap}.admin-return{margin-top:0;padding:4px 12px}.admin-main.journal-settings{margin:16px;padding:20px}.admin-toolbar{gap:12px}.admin-search{flex-basis:100%}.admin-search input{width:100%;min-width:0}.admin-dialog{box-sizing:border-box;width:calc(100vw - 32px)}}.admin-table .admin-sort{color:inherit;font:inherit;white-space:nowrap;background:0 0;border:0;align-items:center;gap:6px;padding:4px 0;display:inline-flex}.admin-table .admin-sort:hover{color:#1d4ed8}.admin-pagination{color:#68768a;flex-wrap:wrap;align-items:center;gap:6px;margin-top:16px;font-size:12px;display:flex}.admin-pagination button[aria-current=page]{color:#1d4ed8;opacity:1;background:#eaf1ff;border-color:#b5cbf5}.admin-page-gap{padding:0 6px}.admin-chips{flex-wrap:wrap;gap:4px;display:flex}.admin-dialog textarea{border:1px solid var(--hairline-2);background:var(--surface);width:100%;min-height:140px;color:inherit;font:inherit;border-radius:6px;padding:8px 10px;font-family:ui-monospace,monospace}.admin-dialog fieldset{border:0;gap:8px;margin:0;padding:0;display:grid}.admin-dialog .admin-checkbox{align-items:center;gap:8px;display:flex}.admin-dialog .admin-checkbox input{width:auto}.asset-tree{gap:16px;max-width:900px;margin:20px 0;display:grid}.asset-tree fieldset{border:1px solid var(--border,#dce1e8);border-radius:8px;padding:12px}.asset-tree-lens{margin:8px 0 8px 16px}.asset-tree-sections{flex-wrap:wrap;gap:12px;padding-left:24px;display:flex}.admin-form{gap:12px;max-width:900px;display:grid}.admin-form label{gap:4px;display:grid}.admin-form .admin-checkbox{gap:8px;display:flex}.lens-list .lens,.lens-list .lgroup{background-image:repeating-linear-gradient(to right, transparent 0 9px, var(--hairline) 9px 10px);background-size:calc(var(--depth,0) * 10px) 100%;background-position:10px 0;background-repeat:no-repeat}[data-drop=into]{box-shadow:inset 0 0 0 2px var(--accent)}.rail{container-type:inline-size}.lens-row.fav .grp{display:none}@container (min-width:220px){.lens-row.fav .grp{display:inline}}mark.hit{color:var(--ink);background-color:#fdf0b8;border-radius:2px}.lens-list .lens-row .fav-toggle{background-color:var(--surface);position:absolute;right:2px}.lens-list .search-result .lens{flex-wrap:wrap}.lens-list .search-result .grp{text-overflow:ellipsis;white-space:nowrap;order:-1;width:100%;overflow:hidden}
