.plan-page{display:flex;flex-direction:column;gap:var(--sp-3)}.plan-page .grow{flex:1;min-width:0}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.plan-head{padding:var(--sp-3) var(--sp-4) var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-2)}.plan-head-top{margin-left:-8px}.plan-title-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--sp-3) var(--sp-5)}.plan-title{margin:0;font-size:20px;font-weight:600;display:flex;align-items:center;gap:8px;color:var(--text);text-wrap:balance}.plan-stats{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-left:auto;align-items:stretch}.plan-stat{display:flex;flex-direction:column;padding:6px 12px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2);min-width:92px}.plan-stat-label{font-size:11px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em}.plan-stat-value{font-size:14px;font-weight:600;color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap}.plan-stat.bad .plan-stat-value{color:var(--stale-fg)}.plan-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2)}.plan-tool-group{display:flex;gap:6px;flex-wrap:wrap}.plan-toggle{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--text);cursor:pointer;padding:0 6px;min-height:32px}.plan-toggle input{accent-color:var(--accent);width:16px;height:16px}.plan-seg{display:inline-flex;gap:2px;padding:3px;border-radius:var(--r-md);background:var(--surface-2);border:1px solid var(--border)}.plan-seg button{font:inherit;font-size:12.5px;border:0;background:none;color:var(--text-dim);padding:5px 11px;border-radius:var(--r-sm);cursor:pointer;min-height:28px}.plan-seg button.on{background:var(--surface);color:var(--text);font-weight:600;box-shadow:var(--shadow-sm)}.plan-seg button:focus-visible{outline:2px solid var(--accent-ring)}.plan-body{display:flex;gap:var(--sp-3);align-items:flex-start;min-width:0}.plan-scroll{flex:1;min-width:0;overflow:auto;max-height:calc(100vh - 290px);min-height:320px;position:relative}.gantt{display:flex;width:max-content;min-width:100%}.gantt-left{position:sticky;left:0;z-index:3;background:var(--surface);border-right:1px solid var(--border);flex-shrink:0;width:calc(48px + var(--name-w, 250px) + var(--sheet-w, 290px) + 26px)}.gantt-lhead,.gantt-row{display:grid;grid-template-columns:48px var(--name-w, 250px) var(--sheet-cols, 44px 64px 64px 96px);align-items:center;column-gap:6px;padding:0 10px}.gantt-lhead{box-sizing:border-box;position:sticky;top:0;z-index:4;height:var(--head);background:var(--surface-2);border-bottom:1px solid var(--border);font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim)}.gantt-row{height:var(--row);border-bottom:1px solid var(--border);font-size:13px;color:var(--text);box-sizing:border-box}.gantt-row.sel{background:var(--accent-soft)}.gantt-row.kind-PHASE{font-weight:600}.gantt-row.done .gantt-name{color:var(--text-dim)}.gantt-row .c-wbs{font-size:11.5px;color:var(--text-faint)}.gantt-row .c-date{font-size:12px;color:var(--text-dim);white-space:nowrap}.gantt-row .c-dur{font-size:12px;color:var(--text-dim);text-align:right}.gantt-row .c-name{display:flex;align-items:center;gap:4px;min-width:0}.gantt-name{all:unset;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:0 1 auto;border-radius:3px}.gantt-name:hover{color:var(--link);text-decoration:underline}.gantt-name:focus-visible{outline:2px solid var(--accent-ring);outline-offset:2px}.gantt-caret{all:unset;cursor:pointer;width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;color:var(--text-dim);border-radius:4px;flex-shrink:0;transform:rotate(90deg);transition:transform .15s}.gantt-caret[aria-expanded=false]{transform:none}.gantt-caret:focus-visible{outline:2px solid var(--accent-ring)}.gantt-caret-sp{width:18px;flex-shrink:0}.gantt-jira{font-size:10.5px;color:var(--link);background:var(--accent-soft);padding:1px 5px;border-radius:4px;flex-shrink:0;margin-left:4px}.mini-mile{width:8px;height:8px;background:var(--border-strong);transform:rotate(45deg);flex-shrink:0;margin:0 3px}.gantt-empty{padding:var(--sp-5);font-size:13px}.plan-status{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:500;padding:2px 8px;border-radius:var(--r-pill);white-space:nowrap}.plan-status.NOT_STARTED{background:var(--never-bg);color:var(--never-fg)}.plan-status.IN_PROGRESS{background:var(--accent-soft);color:var(--ev-violet-700)}.plan-status.AT_RISK{background:var(--aging-bg);color:var(--aging-fg)}.plan-status.BLOCKED{background:var(--stale-bg);color:var(--stale-fg)}.plan-status.DONE{background:var(--fresh-bg);color:var(--fresh-fg)}.gantt-chart{display:block;flex-shrink:0;font-family:var(--font)}.g-head-bg{fill:var(--surface-2)}.gantt-right{flex-shrink:0}.gantt-headsvg{display:block;position:sticky;top:0;z-index:2}.g-head-rule{stroke:var(--border)}.g-month{font-size:11.5px;font-weight:600;fill:var(--text)}.g-mline{stroke:var(--border-strong)}.g-tick{font-size:10.5px;fill:var(--text-dim);font-variant-numeric:tabular-nums}.g-tick.we{fill:var(--text-faint)}.g-weekend{fill:var(--surface-2)}.g-holiday{fill:var(--aging-bg);opacity:.75}.g-holiday-mark{fill:var(--aging-fg)}.g-grid{stroke:var(--border);stroke-width:1}.g-sel{fill:var(--accent-soft);opacity:.7}.g-today{stroke:var(--ev-magenta);stroke-width:2}.g-link{fill:none;stroke:var(--text-faint);stroke-width:1.3}.g-link.crit{stroke:var(--stale-fg)}.g-arrow{fill:var(--text-faint)}.g-arrow.crit{fill:var(--stale-fg)}.g-task,.g-mile,.g-phase{cursor:pointer}.g-bar{fill:var(--accent-soft);stroke:var(--accent);stroke-width:1}.g-prog{fill:var(--accent)}.g-task.done .g-bar{fill:var(--fresh-bg);stroke:var(--fresh-fg)}.g-task.done .g-prog{fill:var(--fresh-fg)}.g-task.st-AT_RISK .g-bar{stroke:var(--aging-fg)}.g-task.st-BLOCKED .g-bar{stroke:var(--stale-fg);stroke-dasharray:4 3}.g-task.crit .g-bar{stroke:var(--stale-fg);stroke-width:2.5}.g-bar-text{font-size:10.5px;font-weight:600;fill:var(--accent-fg);pointer-events:none}.g-phase rect{fill:var(--text-dim)}.g-phase .g-phase-prog{fill:var(--text)}.g-mile rect{fill:var(--aging-fg)}.g-mile.crit rect{stroke:var(--stale-fg);stroke-width:2.5}.g-mile.ms-done rect{fill:var(--fresh-fg)}.g-mile.ms-prog rect{fill:var(--ev-violet-700)}.g-mile.ms-late rect{fill:var(--stale-fg)}.g-mile.ms-pend rect{fill:var(--surface);stroke:var(--text-dim);stroke-width:2}.g-mile.ms-pend.crit rect{stroke:var(--stale-fg)}.g-label{font-size:11.5px;fill:var(--text-dim);pointer-events:none}.g-task:hover .g-bar,.g-mile:hover rect{filter:brightness(.95)}.plan-legend{display:flex;flex-wrap:wrap;gap:var(--sp-4);font-size:12px;color:var(--text-dim)}.plan-legend span{display:inline-flex;align-items:center;gap:6px}.plan-legend i{display:inline-block}.lg-bar{width:22px;height:10px;border-radius:3px;background:var(--accent-soft);border:1px solid var(--accent)}.lg-bar.done{background:var(--fresh-fg);border-color:var(--fresh-fg)}.lg-bar.crit{border:2px solid var(--stale-fg)}.lg-phase{width:22px;height:6px;border-radius:2px;background:var(--text-dim)}.lg-mile{width:9px;height:9px;background:var(--surface);box-shadow:inset 0 0 0 1.5px var(--text-dim);transform:rotate(45deg)}.lg-holiday{width:12px;height:12px;background:var(--aging-bg);border-bottom:3px solid var(--aging-fg)}.lg-today{width:2px;height:14px;background:var(--ev-magenta)}.plan-danger{display:flex;justify-content:flex-end}.plan-drawer{width:380px;flex-shrink:0;max-height:calc(100vh - 290px);overflow:auto;position:sticky;top:calc(58px + var(--sp-3))}.plan-drawer-head{display:flex;align-items:center;gap:8px;padding:10px 12px 10px 16px;border-bottom:1px solid var(--border)}.plan-drawer-dates{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:12px 16px 0}.plan-drawer-dates div{display:flex;flex-direction:column;gap:2px;font-size:13px}.plan-form .modal-foot{padding-top:8px}.plan-deps{padding:12px 16px 16px;display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--border)}.plan-deps h3{margin:4px 0 0;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim)}.plan-dep{display:flex;align-items:center;gap:6px;font-size:13px;min-height:32px}.plan-dep select,.plan-dep input{font:inherit;font-size:12.5px;padding:4px 6px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2);color:var(--text)}.plan-dep input[type=number]{width:56px}.plan-dep-add select.grow{min-width:0;flex:1}.plan-create{width:100%}.plan-tpl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--sp-2)}.plan-tpl{all:unset;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;gap:4px;padding:12px 14px;border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface);color:var(--text)}.plan-tpl:hover{border-color:var(--accent)}.plan-tpl.on{border:2px solid var(--accent);background:var(--accent-soft);padding:11px 13px}.plan-tpl:focus-visible{outline:2px solid var(--accent-ring);outline-offset:2px}.plans-head{display:flex;align-items:center;gap:var(--sp-2)}.plans-table{width:100%;border-collapse:collapse;font-size:13px}.plans-table th{text-align:left;font-size:11px;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;padding:10px 12px;border-bottom:1px solid var(--border);background:var(--surface-2);white-space:nowrap}.plans-table td{padding:10px 12px;border-bottom:1px solid var(--border);vertical-align:top;color:var(--text)}.plans-row{cursor:pointer}.plans-row:hover td{background:var(--surface-2)}.plans-prog{display:flex;align-items:center;gap:8px;min-width:120px}.meter-track{flex:1;height:6px;border-radius:3px;background:var(--border);overflow:hidden;display:block}.meter-track span{display:block;height:100%;background:var(--accent)}.plan-health{font-size:12px;font-weight:500;padding:2px 8px;border-radius:var(--r-pill);white-space:nowrap}.plan-health.ok{background:var(--fresh-bg);color:var(--fresh-fg)}.plan-health.late{background:var(--stale-bg);color:var(--stale-fg)}.plan-health.done{background:var(--never-bg);color:var(--never-fg)}.plans-empty{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;padding:var(--sp-6);color:var(--text)}.plan-tpl-card{display:flex;flex-direction:column;gap:8px;align-items:flex-start}.plan-tpl-card.retired{opacity:.65}.plan-tpl-card p{margin:0}.plan-tpl-card-head{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.plan-tpl-outline{margin:0;padding-left:18px;font-size:12.5px;color:var(--text-dim);display:grid;gap:2px}.plan-tpl-outline .k-PHASE{font-weight:600;color:var(--text)}.plan-tpl-outline .k-MILESTONE{color:var(--aging-fg)}.plans-search{display:flex;align-items:center;gap:8px;padding:0 10px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2);color:var(--text-dim)}.plans-search input{flex:1;border:0;background:none;font:inherit;font-size:14px;padding:9px 0;color:var(--text);outline:none}.plans-pick-list{display:flex;flex-direction:column;max-height:50vh;overflow:auto;gap:2px}.plans-pick{all:unset;box-sizing:border-box;display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:var(--r-sm);cursor:pointer;font-size:13.5px;color:var(--text);min-height:40px}.plans-pick:hover:not(:disabled){background:var(--accent-soft)}.plans-pick:disabled{cursor:default;opacity:.55}.plans-pick:focus-visible{outline:2px solid var(--accent-ring)}.plan-body.has-drawer .gantt-left{width:280px}.plan-body.has-drawer .gantt-lhead,.plan-body.has-drawer .gantt-row{grid-template-columns:40px minmax(0,1fr)}.plan-body.has-drawer .gantt-left .sh-cell,.plan-body.has-drawer .gantt-left .sh-addrow select{display:none}@media (max-width: 1100px){.plan-body{flex-direction:column}.plan-drawer{width:100%;position:static;max-height:none}}@media (max-width: 860px){.gantt-left{width:210px}.gantt-lhead,.gantt-row{grid-template-columns:minmax(0,1fr)}.gantt-lhead>:not(.c-name),.gantt-row>:not(.c-name){display:none}.gantt-jira{display:none}.plan-stats{margin-left:0}.plan-scroll{max-height:70vh;align-self:stretch;width:100%}.plans-list th:nth-child(2),.plans-list td:nth-child(2),.plans-list th:nth-child(3),.plans-list td:nth-child(3){display:none}}.modal-box.plans-modal{background:var(--surface);max-width:560px;max-height:calc(100vh - 32px);overflow:auto}.plan-cal-checks{display:flex;flex-wrap:wrap;gap:4px 14px}.plan-cal-picker{position:relative}.plan-cal-pop{position:absolute;z-index:20;top:22px;left:0;min-width:280px;padding:12px;display:flex;flex-direction:column;gap:10px;box-shadow:var(--shadow-lg);background:var(--surface)}.plan-cal-pop-foot{display:flex;justify-content:flex-end;gap:6px}.plan-cals{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--sp-3)}.plan-cal-card{display:flex;flex-direction:column;gap:10px}.plan-cal-card-head{display:flex;align-items:center;gap:8px}.plan-hol-list{display:flex;flex-direction:column;max-height:360px;overflow:auto;border-top:1px solid var(--border)}.plan-hol{display:flex;align-items:center;gap:10px;padding:6px 0;border-bottom:1px solid var(--border);font-size:13px;color:var(--text)}.plan-hol .mono{width:96px;flex-shrink:0}.plan-hol-year{font-size:11px;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;padding:10px 0 4px}.plan-hol-add{display:flex;gap:6px;flex-wrap:wrap}.plan-hol-add input{font:inherit;font-size:13px;padding:6px 8px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2);color:var(--text)}.plan-hol-add input[type=text]{flex:1;min-width:140px}.plan-cal-card.retired{opacity:.65}.g-task.can-drag,.g-mile.can-drag{cursor:grab;touch-action:none}.gantt-chart.dragging,.gantt-chart.dragging .can-drag{cursor:grabbing;-webkit-user-select:none;user-select:none}.g-task.live .g-bar{stroke-dasharray:4 2}.g-resize{fill:transparent;cursor:ew-resize}.g-task:hover .g-resize{fill:var(--accent);opacity:.35}.g-tip rect{fill:var(--text)}.g-tip text{fill:var(--surface);font-size:11px;font-weight:500}.plan-cal-card>.btn{align-self:flex-start}.ms-health{display:flex;align-items:center;gap:14px;padding:8px 14px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2)}.ms-health.empty{padding:12px 14px}.ms-track{fill:none;stroke:var(--border);stroke-width:4}.ms-arc{fill:none;stroke-width:4}.ms-arc.ms-done{stroke:var(--fresh-fg)}.ms-arc.ms-prog{stroke:var(--ev-violet-700)}.ms-arc.ms-late{stroke:var(--stale-fg)}.ms-num{font-size:8.5px;font-weight:600;fill:var(--text);font-family:var(--font)}.ms-cap{font-size:5px;fill:var(--text-dim);font-family:var(--font)}.ms-legend{display:grid;grid-template-columns:auto;gap:2px;font-size:12px;color:var(--text-dim);min-width:132px}.ms-title{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim);margin-bottom:2px}.ms-row{display:flex;align-items:center;gap:6px}.ms-row strong{margin-left:auto;color:var(--text);font-variant-numeric:tabular-nums;font-weight:600}.ms-row.bad,.ms-row.bad strong{color:var(--stale-fg)}.ms-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.ms-dot.ms-done{background:var(--fresh-fg)}.ms-dot.ms-prog{background:var(--ev-violet-700)}.ms-dot.ms-late{background:var(--stale-fg)}.ms-dot.ms-pend{background:var(--border-strong)}.mini-mile.ms-done{background:var(--fresh-fg)}.mini-mile.ms-prog{background:var(--ev-violet-700)}.mini-mile.ms-late{background:var(--stale-fg)}.mini-mile.ms-pend{background:var(--surface);box-shadow:inset 0 0 0 1.5px var(--text-dim)}.plan-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:none}.plan-tabs button{font:inherit;font-size:13.5px;border:0;background:none;color:var(--text-dim);padding:9px 14px;border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;gap:6px;min-height:40px}.plan-tabs button.on{color:var(--text);font-weight:600;border-bottom-color:var(--accent)}.plan-tabs button:focus-visible{outline:2px solid var(--accent-ring);outline-offset:-2px}.plan-tab-count{font-size:11px;font-weight:600;background:var(--never-bg);color:var(--never-fg);border-radius:var(--r-pill);padding:1px 7px}.plan-tab-count.bad{background:var(--stale-bg);color:var(--stale-fg)}.plan-stat-btn{font:inherit;text-align:left;cursor:pointer}.plan-stat-btn:hover{border-color:var(--accent)}.plan-head-top{display:flex;align-items:center;gap:8px}.plan-risk-bad{color:var(--stale-fg);font-weight:600}.gantt-risk{color:var(--stale-fg);display:inline-flex;flex-shrink:0;margin-left:4px}.gantt-cmt{font-size:10px;font-weight:600;color:var(--text-dim);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-pill);padding:0 5px;flex-shrink:0;margin-left:4px}.g-baseline{fill:var(--text-faint);opacity:.8}.g-baseline-mile{fill:none;stroke:var(--text-faint);stroke-width:1.5;stroke-dasharray:2 2}.lg-baseline{width:22px;height:3px;border-radius:2px;background:var(--text-faint)}.plan-drawer-actions{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:12px 16px 0}.plan-closed-note{padding:6px 16px 0}.plan-drawer-comments{border-top:1px solid var(--border);padding:12px 16px 16px}.pc-comments{display:flex;flex-direction:column;gap:10px}.pc-comments h3{margin:0;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim)}.pc-comment{display:flex;gap:10px;font-size:13px;color:var(--text)}.pc-avatar{width:26px;height:26px;border-radius:50%;background:var(--accent-soft);color:var(--ev-violet-700);font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.pc-comment-head{display:flex;align-items:center;gap:8px}.pc-del{margin-left:auto;opacity:.6}.pc-comment-body{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.45}.pc-mention{color:var(--link);font-weight:600;background:var(--accent-soft);border-radius:4px;padding:0 2px}.pc-compose{display:flex;flex-direction:column;gap:6px}.pc-compose-box{position:relative}.pc-compose textarea{width:100%;box-sizing:border-box;font:inherit;font-size:13px;padding:8px 10px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2);color:var(--text);resize:vertical}.pc-compose textarea:focus{outline:none;border-color:var(--accent)}.pc-compose-foot{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.pc-compose-foot select{font:inherit;font-size:12.5px;padding:4px 6px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2);color:var(--text);max-width:200px}.pc-mention-pop{position:absolute;left:8px;bottom:calc(100% + 4px);z-index:30;min-width:240px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-lg);padding:4px;display:flex;flex-direction:column}.pc-mention-pop button{all:unset;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;padding:6px 8px;border-radius:var(--r-sm);font-size:13px;color:var(--text)}.pc-mention-pop button:hover,.pc-mention-pop button[aria-selected=true]{background:var(--accent-soft)}.pc-risks{display:flex;flex-direction:column;gap:var(--sp-3)}.pc-risk-top{display:flex;flex-wrap:wrap;gap:var(--sp-3);align-items:stretch}.pc-heat{display:flex;flex-direction:column;gap:8px}.pc-heat-title{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim)}.pc-heat-grid{display:grid;grid-template-columns:18px repeat(5,30px);grid-auto-rows:30px;gap:3px;position:relative}.pc-heat-axis-y{grid-row:1 / span 5;writing-mode:vertical-rl;transform:rotate(180deg);font-size:10.5px;color:var(--text-dim);text-align:center}.pc-heat-axis-x{grid-column:2 / span 5;font-size:10.5px;color:var(--text-dim)}.pc-heat-cell{border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}.pc-heat-cell.lv-LOW{background:var(--fresh-bg);color:var(--fresh-fg)}.pc-heat-cell.lv-MEDIUM{background:var(--aging-bg);color:var(--aging-fg)}.pc-heat-cell.lv-HIGH{background:var(--stale-bg);color:var(--stale-fg)}.pc-heat-cell.lv-CRITICAL{background:var(--stale-fg);color:#fff}.pc-risk-counts{display:grid;grid-template-columns:repeat(2,minmax(110px,1fr));gap:var(--sp-2);align-content:start}.pc-risk-count.lv-CRITICAL .plan-stat-value,.pc-risk-count.lv-HIGH .plan-stat-value{color:var(--stale-fg)}.pc-level{font-size:11.5px;font-weight:600;padding:2px 8px;border-radius:var(--r-pill);white-space:nowrap}.pc-level.lv-LOW{background:var(--fresh-bg);color:var(--fresh-fg)}.pc-level.lv-MEDIUM{background:var(--aging-bg);color:var(--aging-fg)}.pc-level.lv-HIGH{background:var(--stale-bg);color:var(--stale-fg)}.pc-level.lv-CRITICAL{background:var(--stale-fg);color:#fff}.pc-panel{display:flex;flex-direction:column;gap:var(--sp-3)}.pc-inline-form{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.pc-inline-form input,.pc-inline-form select{font:inherit;font-size:13px;padding:7px 9px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2);color:var(--text);flex:1;min-width:180px}.pc-inline-form select{flex:0 1 auto}.pc-inline-label{font-size:13px;font-weight:600;color:var(--text);width:100%}.pc-row-actions{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}.pc-share-sec{display:flex;flex-direction:column;gap:10px}.pc-share-sec h3{margin:0;font-size:15px;color:var(--text)}.pc-share-sec p{margin:0}.pc-list{display:flex;flex-direction:column}.pc-list-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--border);font-size:13px;color:var(--text);flex-wrap:wrap}.pc-warn{display:flex;gap:6px;align-items:center;padding:8px 10px;border-radius:var(--r-sm);background:var(--aging-bg);color:var(--aging-fg)}.pc-fresh{display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:var(--r-md);border:1px solid var(--accent);background:var(--accent-soft);font-size:13px;color:var(--text)}.pc-fresh-url{display:flex;gap:8px;align-items:center}.pc-fresh-url code{flex:1;min-width:0;overflow-wrap:anywhere;font-size:12px;background:var(--surface);padding:6px 8px;border-radius:var(--r-sm)}.pc-fresh .btn{align-self:flex-start}.pc-link-state{font-size:12px;font-weight:500;padding:2px 8px;border-radius:var(--r-pill)}.pc-link-state.st-ACTIVE{background:var(--fresh-bg);color:var(--fresh-fg)}.pc-link-state.st-EXPIRED,.pc-link-state.st-REVOKED{background:var(--never-bg);color:var(--never-fg)}.guest-wrap{max-width:1400px;margin:0 auto;padding:16px clamp(12px,3vw,28px) 40px;background:var(--bg);min-height:100vh;box-sizing:border-box}.guest-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:4px 0 8px;color:var(--text)}.guest-error{max-width:480px;margin:12vh auto 0;text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px}.guest-error h1{font-size:20px;margin:0;color:var(--text)}.pv-main{flex:1;min-width:0}.pv-grid-wrap{max-height:calc(100vh - 290px);overflow:auto}.pv-grid{width:100%;border-collapse:collapse;font-size:13px}.pv-grid th{position:sticky;top:0;z-index:1;text-align:left;font-size:11px;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;padding:8px 6px;background:var(--surface-2);border-bottom:1px solid var(--border);white-space:nowrap}.pv-grid td{padding:3px 6px;border-bottom:1px solid var(--border);color:var(--text);white-space:nowrap}.pv-grid tr.kind-PHASE td{background:var(--surface-2);font-weight:600}.pv-grid tr.sel td{background:var(--accent-soft)}.pv-grid tr.drop td{box-shadow:inset 0 2px 0 var(--accent)}.pv-handle{cursor:grab;color:var(--text-faint);-webkit-user-select:none;user-select:none;letter-spacing:-2px}.pv-cell{font:inherit;font-size:13px;padding:4px 6px;border:1px solid transparent;border-radius:var(--r-sm);background:transparent;color:var(--text)}.pv-cell:hover:not([readonly]):not(:disabled){border-color:var(--border)}.pv-cell:focus{outline:none;border-color:var(--accent);background:var(--surface)}.pv-name{width:min(280px,40vw);font-weight:inherit}.pv-num{width:58px}.pv-open{all:unset;cursor:pointer;font-size:11px;color:var(--link);margin-left:4px}.pv-open:focus-visible{outline:2px solid var(--accent-ring)}.pv-move{display:flex;gap:2px}.pv-board{display:grid;grid-template-columns:repeat(5,minmax(200px,1fr));gap:var(--sp-2);overflow-x:auto;padding-bottom:6px}.pv-col{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);padding:8px;display:flex;flex-direction:column;gap:8px;min-height:200px}.pv-col.drop{border-color:var(--accent);background:var(--accent-soft)}.pv-col header{display:flex;justify-content:space-between;align-items:center}.pv-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md)}.pv-card[draggable=true]{cursor:grab}.pv-card.crit{border-left:3px solid var(--stale-fg)}.pv-card-open{all:unset;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;gap:3px;padding:10px;width:100%;font-size:13px;color:var(--text)}.pv-card-open:focus-visible{outline:2px solid var(--accent-ring);border-radius:var(--r-md)}.pv-card-top{display:flex;gap:6px;align-items:center}.pv-card-foot{display:flex;align-items:center;gap:8px;margin-top:4px}.pv-mile{color:var(--aging-fg);font-weight:600}.pv-late{color:var(--stale-fg);font-weight:600}.pv-empty{text-align:center;padding:12px 0}.pv-cal{display:flex;flex-direction:column;gap:10px}.pv-cal-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.pv-cal-head h3{margin:0;font-size:16px;color:var(--text);min-width:150px;text-align:center}.pv-cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--border);border-left:1px solid var(--border)}.pv-dow{font-size:11px;font-weight:600;color:var(--text-dim);text-transform:uppercase;padding:6px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--surface-2)}.pv-day{min-height:96px;padding:4px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:2px;min-width:0}.pv-day.out{background:var(--surface-2);opacity:.6}.pv-day.we{background:var(--surface-2)}.pv-day.hol{background:var(--aging-bg)}.pv-day.today .pv-daynum{background:var(--ev-magenta);color:#fff;border-radius:var(--r-pill);padding:0 6px}.pv-daynum{font-size:12px;font-weight:600;color:var(--text-dim);align-self:flex-start}.pv-hol{color:var(--aging-fg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pv-ev{all:unset;cursor:pointer;font-size:11.5px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:4px;padding:1px 3px}.pv-ev:hover,.pv-ev:focus-visible{background:var(--accent-soft);outline:none}.pv-ev.done{color:var(--text-faint);text-decoration:line-through}.pv-k{margin-right:4px;font-size:10px}.pv-k.start{color:var(--accent)}.pv-k.end{color:var(--text-dim)}.pv-k.mile{color:var(--aging-fg)}.pc-vis{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--sp-2)}.pc-vis-opt{all:unset;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;gap:4px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);color:var(--text);font-size:13.5px}.pc-vis-opt.on{border:2px solid var(--accent);background:var(--accent-soft);padding:11px 13px}.pc-vis-opt:disabled{cursor:default}.pc-vis-opt:not(.on):disabled{opacity:.7}.pc-vis-opt:focus-visible{outline:2px solid var(--accent-ring)}.pc-list-row select{font:inherit;font-size:12.5px;padding:4px 6px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2);color:var(--text)}.pc-roles-help{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:6px 16px;margin:4px 0 0;font-size:12px;color:var(--text-dim)}.pc-roles-help dt{font-weight:600;color:var(--text)}.pc-roles-help dd{margin:0}.pc-share-actions{display:flex;gap:8px}.pc-activity{display:flex;flex-direction:column;gap:2px}.pc-act-day{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);padding:12px 0 4px}.pc-act-row{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text);padding:5px 0;border-bottom:1px solid var(--border)}.pc-act-time{color:var(--text-faint);width:44px;flex-shrink:0}.pc-act-diff{font-size:12px;margin:4px 0 8px 54px;border-collapse:collapse;color:var(--text)}.pc-act-diff th{text-align:left;color:var(--text-dim);font-weight:500;padding:2px 10px 2px 0}.pc-act-diff td{padding:2px 6px;overflow-wrap:anywhere}.pc-raid-tabs{align-self:flex-start;flex-wrap:wrap}.mt-section .card-head{display:flex;justify-content:space-between}.mt-list{display:flex;flex-direction:column}.mt-row{display:flex;align-items:center;gap:12px;padding:10px 16px;border-top:1px solid var(--border);flex-wrap:wrap}.mt-main{display:flex;flex-direction:column;gap:2px;min-width:200px}.mt-name{font-weight:600;font-size:14px}.mt-date{white-space:nowrap}.mt-pct{display:inline-flex;align-items:center;gap:2px;font-size:12.5px;color:var(--text-dim)}.mt-pct input{width:52px;font:inherit;font-size:12.5px;padding:4px 6px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2);color:var(--text)}.plans-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.plans-filters select{font:inherit;font-size:13px;padding:7px 8px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);color:var(--text)}.plans-filters .plans-search{flex:1 1 220px;min-width:180px;background:var(--surface)}.plans-private{margin-left:6px;font-size:10.5px}.guest-preview-bar{display:flex;justify-content:center;gap:12px;padding:8px 12px;margin-bottom:8px;border-radius:var(--r-md);background:var(--accent);color:var(--accent-fg);font-size:13.5px}.guest-preview-bar a{color:var(--accent-fg);font-weight:600;text-decoration:underline}.modal-box.plans-modal.te-modal{width:min(1000px,calc(100vw - 32px));max-width:none}.te-modal .modal-form{min-width:0}.te-table-wrap{max-width:100%}.te-table-wrap{max-height:55vh;overflow:auto;border:1px solid var(--border);border-radius:var(--r-md)}.te-table{width:100%;border-collapse:collapse;font-size:13px}.te-table th{position:sticky;top:0;background:var(--surface-2);text-align:left;font-size:11px;color:var(--text-dim);text-transform:uppercase;padding:6px;border-bottom:1px solid var(--border)}.te-table td{padding:4px 6px;border-bottom:1px solid var(--border);vertical-align:top}.te-table tr.k-PHASE td{background:var(--surface-2)}.te-table input,.te-table select{font:inherit;font-size:12.5px;padding:4px 6px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--text);max-width:100%}.te-table td:first-child input{width:220px}.te-actions{white-space:nowrap}@media (max-width: 860px){.plan-body.has-drawer .gantt-left{width:180px}.plan-body.has-drawer .gantt-lhead,.plan-body.has-drawer .gantt-row{grid-template-columns:minmax(0,1fr)}.plan-body.has-drawer .c-wbs{display:none}.pv-board{grid-template-columns:repeat(5,minmax(240px,80vw));scroll-snap-type:x mandatory}.pv-col{scroll-snap-align:start}.pv-day{min-height:64px}.pv-ev{font-size:10.5px}}.te-deps{display:flex;flex-wrap:wrap;gap:4px;align-items:center;max-width:360px}.te-dep{display:inline-flex;align-items:center;gap:3px;padding:2px 2px 2px 8px;border-radius:var(--r-pill);background:var(--accent-soft);color:var(--ev-violet-700);font-size:12px;max-width:100%}.te-dep-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:160px}.te-dep select{font-size:11px!important;padding:1px 2px!important;border:none!important;background:transparent!important;color:inherit!important}.te-dep-x{all:unset;cursor:pointer;width:18px;height:18px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:14px}.te-dep-x:hover,.te-dep-x:focus-visible{background:var(--surface)}.swa-add{display:inline-flex;gap:4px;align-items:center}.swa-add input{width:150px}.lbl-picker{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.lbl-picker select{font:inherit;font-size:12.5px;padding:4px 6px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2);color:var(--text)}.lbl-chip{display:inline-flex;align-items:center;gap:2px;padding:1px 4px 1px 8px;border-radius:var(--r-pill);background:var(--never-bg);color:var(--never-fg);font-size:11.5px;font-weight:500;white-space:nowrap}.pv-labels .lbl-chip,.pv-card-labels .lbl-chip{padding-right:8px}.pv-card-labels{display:flex;flex-wrap:wrap;gap:3px}.gantt-label{font-size:10.5px;color:var(--never-fg);background:var(--never-bg);padding:1px 6px;border-radius:var(--r-pill);flex-shrink:0;margin-left:4px;white-space:nowrap}.pl-filter{font:inherit;font-size:12.5px;padding:5px 8px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);color:var(--text)}.pl-filter.on{border-color:var(--accent);background:var(--accent-soft)}.pc-names-off{margin-left:6px;font-size:10.5px}.modal-box.plans-modal.pi-wide{width:min(860px,calc(100vw - 32px));max-width:none}.pi-file{display:flex;flex-direction:column;gap:12px;min-width:0}.pi-preview{display:flex;flex-direction:column;gap:10px;min-width:0}.pi-counts{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13px}.pi-warnings{font-size:12.5px;background:var(--aging-bg);color:var(--aging-fg);border-radius:8px;padding:8px 10px}.pi-warnings summary{cursor:pointer;display:inline-flex;align-items:center;gap:6px;font-weight:600}.pi-warnings ul{margin:6px 0 0 18px;padding:0}.pi-table{max-height:320px;overflow:auto}.pi-table table{font-size:12.5px}.pi-table .pi-phase td{font-weight:600}.pi-more{padding:6px 8px}.pi-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.pi-chip{display:inline-flex;gap:6px;align-items:center;font-size:11.5px;padding:2px 8px;border-radius:999px;border:1px solid var(--border);color:var(--text);text-decoration:none;background:var(--surface)}.pi-chip.new{border-color:var(--border)}.pi-chip.prog{background:var(--accent-soft);border-color:transparent}.pi-chip.done{background:var(--fresh-bg);color:var(--fresh-fg);border-color:transparent}.pi-chip.err{background:var(--stale-bg);color:var(--stale-fg);border-color:transparent}.pv-project-edit{display:inline-flex;gap:6px;align-items:center;flex-wrap:wrap;margin:4px 0}.plans-scope{margin:-4px 0 10px}.pp-panel{display:flex;flex-direction:column;gap:10px;min-width:0}.pp-table{width:100%;font-size:13px}.pp-actions{display:flex;gap:8px;flex-wrap:wrap}.ru-card{display:flex;flex-direction:column;gap:10px;margin-bottom:12px;min-width:0}.ru-card.compact{box-shadow:none;border:1px solid var(--border);margin:0}.ru-stats{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:13px}.ru-timeline{width:100%;height:auto;max-width:1400px}.ru-label{font-size:12px;fill:var(--text-dim)}.ru-bar{fill:var(--accent-soft);stroke:var(--accent);stroke-width:1}.ru-diamond{fill:var(--text-faint)}.ru-diamond.done{fill:var(--fresh-fg)}.ru-diamond.prog{fill:var(--accent)}.ru-diamond.late{fill:var(--stale-fg)}.ru-today{stroke:var(--stale-fg);stroke-dasharray:3 3}.ru-next{display:flex;flex-wrap:wrap;gap:4px 14px}.ru-ms.late{color:var(--stale-fg)}.wl-card{display:flex;flex-direction:column;gap:10px;min-width:0;position:relative}.wl-head{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.wl-head input{min-width:0;flex:0 1 180px}.wl-table{border-collapse:collapse;font-size:12.5px}.wl-table th,.wl-table td{padding:3px 4px;text-align:center;white-space:nowrap}.wl-table .wl-person{text-align:left;padding-right:12px;position:sticky;left:0;background:var(--surface)}.wl-cell{width:34px;height:26px;border-radius:5px;border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer}.wl-cell:disabled{cursor:default;opacity:.5}.wl-cell.some{background:var(--fresh-bg);color:var(--fresh-fg);border-color:transparent}.wl-cell.full{background:var(--aging-bg);color:var(--aging-fg);border-color:transparent}.wl-cell.over{background:var(--stale-bg);color:var(--stale-fg);border-color:transparent;font-weight:700}.wl-detail{border:1px solid var(--border)}.wl-detail-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.wl-detail ul{margin:6px 0 0 18px;padding:0;font-size:13px}.vr-card{display:flex;flex-direction:column;gap:10px;min-width:0}.vr-row{cursor:pointer}.vr-early{color:var(--fresh-fg)}.xd-box{border-top:1px solid var(--border);padding-top:10px;margin-top:10px;display:flex;flex-direction:column;gap:6px}.xd-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.xd-row{display:flex;gap:6px;align-items:center}.xd-form{display:flex;flex-wrap:wrap;gap:6px}.xd-form select{min-width:0;flex:1 1 160px}.xd-form input{width:70px}.ws-card{display:flex;flex-direction:column;gap:10px;margin-top:14px}.ws-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.ws-preview pre{white-space:pre-wrap;font-size:12px;background:var(--surface-2);padding:10px;border-radius:8px;max-height:360px;overflow:auto}.ar-banner{display:flex;gap:8px;align-items:center;background:var(--aging-bg);color:var(--aging-fg);margin-bottom:10px}.pc-grid{display:grid;grid-template-columns:1fr;gap:var(--sp-3) var(--sp-5)}.pc-col{display:flex;flex-direction:column;gap:var(--sp-3);min-width:0}@media (min-width: 1180px){.pc-grid{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:start}.pc-grid .plan-tpl-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}}.pv-combo{position:relative;min-width:0}.pv-combo input{width:100%;padding-right:32px}.pv-combo-clear{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:0;background:none;color:var(--text-dim);font-size:18px;line-height:1;cursor:pointer;padding:2px 6px;border-radius:6px}.pv-combo-clear:hover{background:var(--surface-2);color:var(--text)}.pv-combo-list{position:absolute;z-index:30;left:0;right:0;top:calc(100% + 4px);margin:0;padding:4px;list-style:none;max-height:300px;overflow:auto;background:var(--surface);box-shadow:var(--shadow-md)}.pv-combo-list li{padding:7px 10px;border-radius:6px;cursor:pointer;font-size:13.5px}.pv-combo-list li.active{background:var(--accent-soft)}.pv-combo-list li.none{color:var(--text-dim);border-bottom:1px solid var(--border);border-radius:6px 6px 0 0;margin-bottom:2px}.pv-combo-list li[aria-selected=true]{font-weight:600}.pv-combo-empty{cursor:default!important}.pv-project-edit .pv-combo{width:min(420px,100%)}.sh-cell{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;color:var(--text-dim);border-radius:5px}.sh-cell.num{text-align:right;font-variant-numeric:tabular-nums}.sh-cell.mono{font-family:var(--mono);font-size:11.5px}.sh-head{font-size:11px;color:var(--text-dim)}.sh-cell.editable{cursor:text}.sh-cell.editable:hover{background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--border)}.sh-cell.editable:focus-visible{outline:2px solid var(--accent-ring)}.sh-cell.editing{overflow:visible}.sh-cell.editing input,.sh-cell.editing select{width:100%;min-width:0;height:26px;font-size:12.5px;padding:2px 6px;box-sizing:border-box}td.sh-cell{padding:4px 6px}.gantt-rename{flex:1;min-width:0;height:26px;font:inherit;padding:2px 6px}.sh-addrow{display:flex;align-items:center;gap:6px;padding:6px 10px;border-top:1px dashed var(--border);color:var(--text-dim);background:var(--surface)}.sh-addrow input{flex:1;min-width:0;border:0;background:transparent;font:inherit;font-size:13px;padding:6px 4px}.sh-addrow input:focus{outline:none;background:var(--surface-2);border-radius:6px}.sh-addrow select{font-size:12px}.cm-modal{width:min(720px,calc(100vw - 32px));max-width:none}.cm-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;max-height:46vh;overflow:auto}.cm-list li{display:flex;align-items:center;gap:6px;padding:4px 6px;border-radius:8px;flex-wrap:wrap}.cm-list li:hover{background:var(--surface-2)}.cm-list li.dragging{opacity:.5}.cm-handle{cursor:grab;color:var(--text-faint);letter-spacing:-2px}.cm-edit{display:inline-flex;gap:4px;align-items:center;flex-wrap:wrap}.cm-edit input{width:140px}.cm-add{display:flex;flex-direction:column;gap:6px;border-top:1px solid var(--border);padding-top:10px}.cm-add-row{display:flex;gap:6px;flex-wrap:wrap}.cm-add-row input{flex:1 1 160px;min-width:0}.plan-head{gap:var(--sp-3)}.ph-title{display:flex;flex-direction:column;gap:4px;min-width:0}.ph-title .plan-title{font-size:24px}.ph-meta{line-height:1.6}.ph-line{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:26px 16px calc(20px + var(--lanes, 1) * 24px);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2)}.ph-end{font-size:12px;font-weight:600;color:var(--text-dim);white-space:nowrap}.ph-track{position:relative;height:8px;border-radius:99px;background:var(--border)}.ph-elapsed{position:absolute;inset:0 auto 0 0;border-radius:99px;background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}.ph-today{position:absolute;top:-10px;bottom:-10px;width:2px;margin-left:-1px;background:var(--stale-fg)}.ph-today em{position:absolute;top:-16px;left:50%;transform:translate(-50%);font-size:10px;font-style:normal;font-weight:600;color:var(--stale-fg);white-space:nowrap}.ph-ms{position:absolute;top:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center}.ph-ms i{width:12px;height:12px;transform:rotate(45deg);border-radius:2px;background:var(--surface);border:2px solid var(--text-faint)}.ph-ms.ms-done i{background:var(--fresh-fg);border-color:var(--fresh-fg)}.ph-ms.ms-prog i{border-color:var(--accent);background:var(--accent-soft)}.ph-ms.ms-late i{border-color:var(--stale-fg);background:var(--stale-bg)}.ph-ms b{position:absolute;left:50%;transform:translate(-50%);top:calc(13px + var(--lane, 0) * 24px);font-size:11px;font-weight:500;color:var(--text);white-space:nowrap;max-width:140px;overflow:hidden;text-overflow:ellipsis;text-align:center;line-height:1.2;padding:0 3px;background:var(--surface-2);border-radius:3px}.ph-ms b small{display:block;font-size:10px;color:var(--text-faint)}.ph-ms.ms-late b{color:var(--stale-fg)}.ph-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:var(--sp-2)}.ph-tiles .plan-stat{min-width:0;padding:10px 14px;gap:2px}.ph-tiles .plan-stat-value{font-size:18px;overflow:hidden;text-overflow:ellipsis}.plan-stat-sub{font-size:11.5px;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ph-bars{display:flex;flex-direction:column;gap:3px;margin:3px 0 1px}.ph-bar{height:5px;border-radius:99px;background:var(--border);overflow:hidden}.ph-bar-done{display:block;height:100%;background:var(--fresh-fg)}.ph-bar-time{display:block;height:100%;background:var(--text-faint)}.ph-progress.warn .plan-stat-sub{color:var(--aging-fg);font-weight:600}.ms-health.compact{flex-direction:row;align-items:center;gap:10px}.ms-health.compact .ms-legend{display:grid;grid-template-columns:auto auto;gap:0 12px;font-size:11px}.ms-health.compact .ms-title{grid-column:1 / -1}.ms-health.compact .ms-row{gap:4px}.ms-health.compact.empty{justify-content:center}@media (max-width: 700px){.ph-line{padding:22px 10px 14px;gap:8px}.ph-ms b{display:none}.ph-end{font-size:11px}}.ms-health.compact .ms-legend{min-width:0}@media (min-width: 1100px){.ph-tiles .ms-health.compact{grid-column:span 2}}.ms-health.compact .ms-row{white-space:nowrap}.ms-health.compact .ms-legend{grid-template-columns:repeat(2,minmax(0,max-content))}.so-badge{display:inline-block;font-size:10.5px;font-weight:600;padding:1px 7px;border-radius:99px;margin-left:4px;white-space:nowrap;background:var(--surface-2);color:var(--text-dim);border:1px solid var(--border)}.so-badge.so-REQUESTED{background:var(--aging-bg);color:var(--aging-fg);border-color:transparent}.so-badge.so-APPROVED{background:var(--fresh-bg);color:var(--fresh-fg);border-color:transparent}.so-badge.so-REJECTED,.so-badge.so-EXPIRED{background:var(--stale-bg);color:var(--stale-fg);border-color:transparent}.so-box{border-top:1px solid var(--border);padding-top:10px;margin-top:10px;display:flex;flex-direction:column;gap:6px}.so-state{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.so-link{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.so-link input{flex:1 1 220px;min-width:0;font-family:var(--mono);font-size:11.5px}.so-form{display:flex;flex-direction:column;gap:6px}.so-days{width:56px}.so-page{min-height:100vh;background:var(--bg);display:flex;flex-direction:column;align-items:center;padding:32px 16px;box-sizing:border-box}.so-card{width:min(720px,100%);display:flex;flex-direction:column;gap:10px}.so-card h1{margin:0;font-size:22px}.so-note{margin:0;padding:10px 14px;border-left:3px solid var(--accent);background:var(--surface-2);border-radius:6px}.so-work{width:100%;font-size:13px}.so-decide{display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--border);padding-top:12px}.so-decide textarea,.so-decide input{width:100%;box-sizing:border-box}.so-error{color:var(--stale-fg);font-size:13px;margin:0;display:flex;gap:6px;align-items:center}.so-result{padding:14px;border-radius:10px;background:var(--surface-2)}.so-result.so-APPROVED{background:var(--fresh-bg);color:var(--fresh-fg)}.so-result.so-REJECTED,.so-result.so-EXPIRED{background:var(--stale-bg);color:var(--stale-fg)}.so-foot{margin-top:14px}.plans-prog-pill{font-size:10.5px;padding:0 7px}.ru-groups{display:flex;flex-direction:column;gap:12px}.ru-title{font-size:14px}.xc-card{margin-bottom:10px}.xc-chain{margin:6px 0 0;padding-left:22px;display:flex;flex-wrap:wrap;gap:4px 20px;font-size:13px}.xc-chain li.here{font-weight:600}.sh-headcell{position:relative;overflow:visible!important}.sh-resize{position:absolute;top:-6px;bottom:-6px;right:-5px;width:9px;cursor:col-resize;z-index:2;touch-action:none}.sh-resize:after{content:"";position:absolute;top:25%;bottom:25%;left:4px;width:1px;background:var(--border)}.sh-resize:hover:after,.sh-resize:focus-visible:after{background:var(--accent);width:2px}.gantt-row .c-name{position:relative}.gantt-rowtools{display:none;margin-left:auto;align-items:center;gap:0;background:var(--surface);border-radius:6px;box-shadow:var(--shadow-sm)}.gantt-row:hover .gantt-rowtools,.gantt-row:focus-within .gantt-rowtools{display:inline-flex}.gantt-rowtools .btn.small{padding:0 5px;min-height:22px;font-size:12px}.gantt-rowtools .pv-handle{cursor:grab;padding:0 4px;color:var(--text-faint)}.gantt-row.drop{box-shadow:inset 0 2px 0 var(--accent)}.cm-short{width:90px}.cm-formula{display:flex;flex-direction:column;gap:2px;flex:1 1 100%}.cm-formula input{width:100%;font-family:var(--mono);font-size:12px}.so-approver{display:flex;gap:6px;flex-wrap:wrap}.so-approver input{flex:1 1 150px;min-width:0}.so-links{display:flex;flex-direction:column;gap:6px}.so-who{min-width:90px;font-weight:600}.so-appr{padding:1px 6px;border-radius:6px;background:var(--surface-2)}.so-appr.so-APPROVED{background:var(--fresh-bg);color:var(--fresh-fg)}.so-appr.so-REJECTED{background:var(--stale-bg);color:var(--stale-fg)}.cf-red{--cf: var(--stale-fg)}.cf-amber{--cf: var(--aging-fg)}.cf-green{--cf: var(--fresh-fg)}.cf-blue{--cf: #2f80ed}.cf-purple{--cf: var(--accent)}.cf-grey{--cf: var(--text-faint)}.gantt-row.cf-row,.pv-grid tr.cf-row>td{background:color-mix(in srgb,var(--cf) 14%,var(--surface))}.gantt-row.cf-row{box-shadow:inset 3px 0 0 var(--cf)}.sh-cell.cf-cell,.c-name.cf-cell,td.cf-cell{background:color-mix(in srgb,var(--cf) 22%,var(--surface));color:color-mix(in srgb,var(--cf) 70%,var(--text));font-weight:600;border-radius:4px}.gantt-files{display:inline-flex;align-items:center;gap:2px;font-size:10.5px;color:var(--text-dim);margin-left:4px}.fx-files{display:flex;flex-direction:column;gap:8px}.fx-files.compact{padding:10px 0;border-top:1px solid var(--border)}.fx-files.over{outline:2px dashed var(--accent);outline-offset:4px;border-radius:10px}.fx-head{display:flex;align-items:center;gap:8px}.fx-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.fx-list li{display:flex;align-items:center;gap:8px;min-width:0;padding:4px 0;border-bottom:1px dashed var(--border)}.fx-list li:last-child{border-bottom:0}.fx-name{display:inline-flex;align-items:center;gap:5px;min-width:0;max-width:55%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}.fx-meta{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fx-history{border-top:1px solid var(--border);padding-top:8px;margin-top:4px}.fx-toggle{font:inherit;font-weight:600;background:none;border:0;padding:4px 0;cursor:pointer;color:var(--text);display:flex;gap:8px;align-items:baseline}.fx-hist{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:12.5px}.fx-hist li{display:flex;flex-direction:column;gap:1px;padding-left:10px;border-left:2px solid var(--border)}.fx-modal{width:min(860px,calc(100vw - 32px))}.fx-rules{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.fx-rule{border:1px solid var(--border);border-left:4px solid var(--cf);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:8px;background:var(--surface)}.fx-conds{display:flex;flex-direction:column;gap:6px}.fx-cond,.fx-then,.fx-sumrow{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.fx-cond select,.fx-cond input,.fx-then select,.fx-sumrow input{font:inherit;font-size:13px;padding:5px 8px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);color:var(--text)}.fx-and{width:36px;text-align:right}.fx-addcond{align-self:flex-start;margin-left:42px}.fx-swatches{display:inline-flex;gap:4px}.fx-swatch{width:22px;height:22px;border-radius:6px;border:2px solid transparent;background:color-mix(in srgb,var(--cf) 55%,var(--surface));cursor:pointer;padding:0}.fx-swatch.on{border-color:var(--text)}.fx-sumrow input[aria-label=Formula]{flex:1;min-width:200px}.fx-total .plan-stat-sub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:180px}.fx-total-add .plan-stat-value{display:inline-flex;align-items:center;gap:4px;color:var(--link);font-size:14px}@media (max-width: 640px){.fx-and{width:auto}.fx-addcond{margin-left:0}.fx-name{max-width:100%}}.rq-panel{display:flex;flex-direction:column;gap:14px}.pc-h{margin:0;font-size:15px}.rq-list{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}.rq-item{border:1px solid var(--border);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:4px}.rq-item p{margin:0}.rq-actions{display:flex;gap:8px;margin-top:4px;flex-wrap:wrap}.rq-done summary{cursor:pointer;margin-top:10px;color:var(--text-dim)}.rq-table td{vertical-align:top}.share-url{display:flex;gap:6px;align-items:center}.share-url input{flex:1;min-width:0;font-family:var(--mono);font-size:12px;padding:7px 9px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface-2);color:var(--text)}.ur-pick{border:1px solid var(--border);border-radius:10px;padding:8px 10px}.ur-rows{list-style:none;margin:6px 0 0;padding:0;max-height:220px;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.ur-rows .plan-toggle{gap:8px;font-size:13px}.ur-fields{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center}.ur-days span{display:inline-flex;gap:6px;align-items:center}.au-rule.off{opacity:.55}.up-table td{vertical-align:top}.up-table select,.up-table input,.up-table textarea{font:inherit;font-size:13px;padding:4px 6px;border:1px solid var(--border-strong);border-radius:6px;background:var(--surface);color:var(--text)}.up-table textarea{width:220px}.up-done{color:var(--fresh-fg);display:flex;gap:6px;align-items:center;margin:0}.hp{position:absolute;left:-10000px;width:1px;height:1px;opacity:0}:root{--lane-1: #7c3aed;--lane-2: #0891b2;--lane-3: #d97706;--lane-4: #059669;--lane-5: #db2777;--lane-6: #2563eb}.tl-wrap{padding:0 0 10px;overflow-x:auto}.tl-head,.tl-lane{display:grid;grid-template-columns:200px minmax(640px,1fr)}.tl-head{position:sticky;top:0;z-index:2;background:var(--surface);border-bottom:1px solid var(--border);height:30px}.tl-scale,.tl-track{position:relative}.tl-month{position:absolute;top:8px;font-size:11px;font-weight:600;color:var(--text-dim);padding-left:4px;white-space:nowrap}.tl-lane{border-bottom:1px solid var(--border)}.tl-gutter{padding:10px 12px;display:flex;flex-direction:column;gap:2px;border-right:1px solid var(--border);box-shadow:inset 4px 0 0 var(--lane, transparent)}.tl-lane-name{font:inherit;font-weight:600;font-size:13px;text-align:left;background:none;border:0;padding:0;color:var(--text);cursor:pointer}.tl-lane-name:disabled{cursor:default;color:var(--text-dim)}.tl-track{padding:8px 0;background:color-mix(in srgb,var(--lane) 5%,transparent);min-height:40px}.tl-grid{position:absolute;top:0;bottom:0;width:1px;background:var(--border)}.tl-today{position:absolute;top:0;bottom:0;width:2px;background:var(--today);z-index:1}.tl-row{position:relative;height:30px}.tl-empty{position:absolute;left:12px;top:12px}.tl-bar{position:absolute;top:3px;height:24px;border-radius:7px;border:1px solid color-mix(in srgb,var(--lane) 60%,transparent);background:color-mix(in srgb,var(--lane) 16%,var(--surface));padding:0;cursor:pointer;overflow:hidden;text-align:left;font:inherit;color:var(--text);min-width:6px}.tl-fill{position:absolute;inset:0 auto 0 0;width:var(--pct);background:color-mix(in srgb,var(--lane) 38%,var(--surface))}.tl-text{position:relative;display:block;padding:0 7px;font-size:12px;line-height:22px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tl-bar.st-DONE{opacity:.6}.tl-bar.st-AT_RISK,.tl-bar.st-BLOCKED{border:2px solid var(--aging-fg)}.tl-bar.st-BLOCKED{border-style:dashed;border-color:var(--stale-fg)}.tl-bar.crit{box-shadow:0 0 0 2px var(--stale-fg)}.tl-bar.sel,.tl-ms.sel i{outline:2px solid var(--accent);outline-offset:2px}.tl-bar:hover,.tl-bar:focus-visible{z-index:3;overflow:visible}.tl-bar:hover .tl-text,.tl-bar:focus-visible .tl-text{background:var(--surface);width:max-content;border-radius:6px;box-shadow:var(--shadow-md)}.tl-ms{position:absolute;top:4px;display:inline-flex;align-items:center;gap:4px;background:none;border:0;padding:0;cursor:pointer;font:inherit;color:var(--text);transform:translate(-8px);white-space:nowrap}.tl-ms i{width:14px;height:14px;transform:rotate(45deg);border-radius:3px;background:var(--surface);box-shadow:inset 0 0 0 2px var(--lane)}.tl-ms.done i{background:var(--lane)}.tl-ms span{font-size:11.5px;font-weight:600}.tl-legend{display:flex;flex-wrap:wrap;gap:16px;padding:10px 14px 0}.tl-key{display:inline-block;width:18px;height:9px;border-radius:3px;background:color-mix(in srgb,var(--lane-1) 30%,var(--surface));margin-right:5px;vertical-align:middle}.tl-key.ms{width:9px;transform:rotate(45deg)}.tl-key.crit{box-shadow:0 0 0 2px var(--stale-fg)}.tl-key.risk{border:2px solid var(--aging-fg)}.ch-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:14px}.ch-card{display:flex;flex-direction:column;gap:10px;min-width:0}.ch-wide{grid-column:span 2}.ch-title{margin:0;font-size:13.5px;font-weight:600;display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}.ch-health{display:flex;align-items:center;gap:16px}.ch-donut{width:120px;height:120px;flex-shrink:0}.ch-track{fill:none;stroke:var(--surface-3, var(--surface-2));stroke-width:6}.ch-arc{fill:none;stroke-width:6}.ch-big{font-size:9px;font-weight:700;fill:var(--text);font-family:var(--font)}.h-ok{stroke:var(--fresh-fg);background:var(--fresh-fg)}.h-behind{stroke:var(--aging-fg);background:var(--aging-fg)}.h-late{stroke:var(--stale-fg);background:var(--stale-fg)}.h-done{stroke:var(--accent);background:var(--accent)}.ch-legend{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:13px;flex:1}.ch-legend li{display:flex;align-items:center;gap:8px}.ch-legend b{margin-left:auto;font-variant-numeric:tabular-nums}.ch-dot{width:10px;height:10px;border-radius:3px;display:inline-block;flex-shrink:0;margin-right:4px}.ch-bars,.ch-stack{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}.ch-bars li{display:grid;grid-template-columns:minmax(0,170px) minmax(0,1fr) 40px 56px;gap:10px;align-items:center}.ch-stack li{display:grid;grid-template-columns:minmax(0,130px) minmax(0,1fr) 30px;gap:10px;align-items:center}.ch-name{font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}.ch-track-h{position:relative;display:flex;height:12px;border-radius:6px;background:var(--surface-3, var(--surface-2));overflow:hidden}.ch-fill{display:block;height:100%;border-radius:6px}.ch-mark{position:absolute;top:-2px;bottom:-2px;width:2px;background:var(--text)}.ch-num{font-family:var(--mono);font-size:12px;text-align:right;color:var(--text-dim)}.ch-seg{display:block;height:100%}.ch-seg.ms-done,.ch-dot.ms-done{background:var(--fresh-fg)}.ch-seg.ms-prog,.ch-dot.ms-prog{background:var(--accent)}.ch-seg.ms-late,.ch-dot.ms-late{background:var(--stale-fg)}.ch-seg.ms-pend,.ch-dot.ms-pend{background:var(--text-faint)}.ch-seg.risk-high{background:var(--stale-fg)}.ch-seg.risk-other{background:var(--aging-fg)}.ch-legend-row{display:flex;gap:12px;flex-wrap:wrap}.ch-cols{width:100%;height:130px}.ch-col{fill:var(--accent)}.ch-val{font-size:10px;font-weight:600;fill:var(--text);font-family:var(--font)}.ch-axis{font-size:9.5px;fill:var(--text-faint);font-family:var(--font)}@media (max-width: 1100px){.ch-grid{grid-template-columns:1fr 1fr}}@media (max-width: 720px){.ch-grid{grid-template-columns:1fr}.ch-wide{grid-column:auto}.ch-bars li{grid-template-columns:minmax(0,110px) minmax(0,1fr) 36px}.ch-date{display:none}.tl-head,.tl-lane{grid-template-columns:130px minmax(520px,1fr)}}.ts-banner{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 14px;border-left:4px solid var(--accent)}.ts-banner span{flex:1;min-width:220px;font-size:13.5px}.ts-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.ts-list li{display:flex;flex-direction:column;gap:1px;padding:6px 10px;border:1px solid var(--border);border-radius:8px}.ts-list li.ts-conflict{border-color:color-mix(in srgb,var(--aging-fg) 50%,var(--border))}.ts-list li.ts-unknown{border-style:dashed}.mt-page{display:flex;flex-direction:column;gap:12px}.mt-table th.num,.mt-table td.num{text-align:right}.mt-table .we{background:var(--surface-2)}.mt-cell{width:64px;text-align:right;font:inherit;font-size:13px;padding:4px 6px;border:1px solid var(--border-strong);border-radius:6px;background:var(--surface);color:var(--text);font-variant-numeric:tabular-nums}.tp-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media (max-width: 860px){.tp-grid{grid-template-columns:1fr}}.wl-mode{margin-bottom:10px}.cap-table td.num,.cap-table th.num{text-align:right;white-space:nowrap}.cap-cell.cap-ok{background:color-mix(in srgb,var(--fresh-fg) 10%,transparent)}.cap-cell.cap-high{background:color-mix(in srgb,var(--aging-fg) 16%,transparent)}.cap-cell.cap-over{background:color-mix(in srgb,var(--stale-fg) 18%,transparent);font-weight:600}.cap-cell.cap-none{background:repeating-linear-gradient(45deg,transparent 0 4px,color-mix(in srgb,var(--text-faint) 12%,transparent) 4px 8px)}.cap-detail td{background:var(--surface-2)}.cap-detail ul{margin:4px 0 0;padding-left:18px}.tc-wrap{max-height:50vh;overflow:auto}.mt-add{display:inline-flex;gap:6px;align-items:center}.lt-form{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:10px 0;border-top:1px solid var(--border)}.lt-form input{font:inherit;font-size:13px;padding:4px 6px;border:1px solid var(--border-strong);border-radius:6px;background:var(--surface);color:var(--text)}.c-wbs,.pv-wbs,.sh-headcell{position:relative}.ins-row,.ins-col{position:absolute;z-index:4;width:18px;height:18px;padding:0;border-radius:50%;border:1px solid var(--accent);background:var(--surface);color:var(--accent);font:600 13px/16px var(--font);cursor:pointer;opacity:0;transition:opacity .12s}.ins-row{left:2px;top:-9px}.ins-col{left:-9px;top:50%;transform:translateY(-50%)}.ins-col.end{left:auto;right:-9px}.ins-col.end:hover:after{left:8px}.gantt-row:hover .ins-row,.pv-grid tr:hover .ins-row,.ins-row:focus-visible,.gantt-lhead:hover .ins-col,.pv-grid thead:hover .ins-col,.ins-col:focus-visible{opacity:1}.ins-row:hover,.ins-col:hover{background:var(--accent);color:var(--accent-fg)}.ins-row:after,.ins-col:after{content:"";position:absolute;pointer-events:none;background:var(--accent);opacity:0}.ins-row:hover:after{left:18px;top:8px;width:600px;height:2px;opacity:.5}.ins-col:hover:after{left:8px;top:18px;width:2px;height:600px;opacity:.5}.ic-modal{width:min(720px,calc(100vw - 32px))}.ir-modal{width:min(420px,calc(100vw - 32px))}.ir-count{display:flex;align-items:center;gap:10px}.ir-count input{width:80px}.ic-hidden{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}@media (hover: none){.ins-row,.ins-col{opacity:.7}}.ks-modal{width:min(640px,calc(100vw - 32px))}.ks-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px 28px;padding:4px 18px 8px}.ks-group h3{margin:0 0 8px;font-size:12px;font-weight:600;color:var(--text-muted, var(--muted));text-transform:uppercase;letter-spacing:.04em}.ks-group dl{margin:0;display:grid;gap:6px}.ks-row{display:grid;grid-template-columns:128px 1fr;gap:10px;align-items:baseline}.ks-row dt,.ks-row dd{margin:0;font-size:13px}.ks-mouse{font-size:12px;color:var(--text-muted, var(--muted))}.kbd-keys{display:inline-flex;gap:3px}.kbd-keys kbd,.ks-foot kbd{font:500 11px/1 var(--font-mono, ui-monospace, monospace);padding:3px 6px;min-width:20px;text-align:center;border:1px solid var(--border);border-bottom-width:2px;border-radius:5px;background:var(--surface-2, var(--surface));color:var(--text)}.ks-foot{padding:0 18px 14px;margin:0}.plan-status-pill{background:var(--surface-2, var(--surface));border:1px solid var(--border);color:var(--text)}.plan-status-pill.st-at_risk{border-color:var(--warn, #c98a00);color:var(--warn, #c98a00)}.plan-status-pill.st-on_hold{border-color:var(--text-muted, #888);color:var(--text-muted, #888)}.plan-status-pill.st-cancelled{text-decoration:line-through;color:var(--text-muted, #888)}.plan-status-pill.st-active{border-color:var(--good, #2f9e5b);color:var(--good, #2f9e5b)}.plan-status-note{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ps-view{display:inline-flex;align-items:center;gap:6px}.ps-edit{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.ps-edit input{width:240px}.pz,.pz-setup{--pz-navy: #0E2742;--pz-gold: #C29A4B;--pz-grey: #5B6B7E;--pz-faint: #6E7B8A;--pz-line: #D9DEE5;--pz-soft: #E8ECF2;--pz-good: #1F7A55;--pz-bad: #B4233F;--pz-warn: #8A6100;--pz-serif: Georgia, "Times New Roman", serif;--pz-sans: Calibri, Carlito, "Segoe UI", sans-serif}.pz-setup{width:min(780px,calc(100vw - 32px));max-height:calc(100vh - 48px);display:flex;flex-direction:column}.pz-setup-head{display:flex;align-items:center;gap:14px;padding:16px 20px 12px;border-bottom:1px solid var(--border)}.pz-setup-head>div{flex:1}.pz-setup-title{font-family:var(--pz-serif);font-size:22px;font-weight:700;color:var(--text)}.pz-kicker{font-family:var(--pz-sans);font-size:12.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--pz-gold)}.pz-logo{height:34px;width:auto}.pz-setup-body{padding:14px 20px;overflow:auto;display:flex;flex-direction:column;gap:14px}.pz-setup-body>*{flex-shrink:0}.pz-views{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.pz-views button{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;padding:12px 14px;border-radius:12px;border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer}.pz-views button strong{font-family:var(--pz-serif);font-size:17px}.pz-views button.on{border-color:var(--pz-navy);box-shadow:0 0 0 2px var(--pz-navy) inset}:root[data-theme=dark] .pz-views button.on{border-color:var(--pz-gold);box-shadow:0 0 0 2px var(--pz-gold) inset}.pz-period{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.pz-label{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--pz-grey)}.pz-sections{list-style:none;margin:0;padding:0;border:1px solid var(--border);border-radius:12px;overflow:hidden}.pz-sections li{display:flex;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--border)}.pz-sections li:last-child{border-bottom:0}.pz-sections li.off{opacity:.65;background:var(--surface-2)}.pz-sections label{flex:1;display:flex;flex-direction:column;cursor:pointer}.pz-sections input[type=checkbox]{width:18px;height:18px}.pz-src{width:100px;text-align:right}.pz-notes{border:1px solid var(--border);border-radius:12px;padding:10px 14px 12px;display:grid;gap:8px;margin:0}.pz-notes legend{font-weight:600;padding:0 4px}.pz-note{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:600}.pz-note textarea{font:inherit;font-weight:400;resize:vertical}.pz-setup-opts{display:flex;flex-wrap:wrap;gap:8px 22px;font-size:13.5px}.pz-setup-opts label{display:inline-flex;align-items:center;gap:8px}.pz-setup-foot{display:flex;align-items:center;gap:10px;padding:12px 20px;border-top:1px solid var(--border);background:var(--surface-2);font-size:13px;color:var(--text-dim)}.pz{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;background:#1a2230;display:flex;flex-direction:column;outline:none}.pz-stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:16px;container-type:size}.pz-slide{width:min(100cqw,calc(100cqh * 16 / 9));aspect-ratio:16 / 9;background:#fff;color:var(--pz-navy);font-family:var(--pz-sans);display:flex;flex-direction:column;box-shadow:0 20px 60px #00000059;container-type:inline-size;font-size:1.35cqw;overflow:hidden}.pz-body{flex:1;min-height:0;display:flex;flex-direction:column;gap:1.6cqw;padding:3.2cqw 4.6cqw 0}.pz-head{display:flex;flex-direction:column;gap:.5cqw}.pz-head .pz-kicker{font-size:1.1cqw}.pz-head h2{margin:0;font-family:var(--pz-serif);font-size:3.3cqw;line-height:1.12;font-weight:700}.pz-sub{font-size:1.45cqw;color:var(--pz-grey)}.pz-footer{display:flex;align-items:center;gap:1.4cqw;margin:0 4.6cqw;height:4.4cqw;border-top:1px solid var(--pz-line);font-size:.95cqw;color:var(--pz-faint)}.pz-footer .pz-count{flex:1;text-align:center;font-weight:700;color:var(--pz-navy)}.pz-footer .pz-logo{height:2.6cqw}.pz-controls{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px;color:#c9d3e0;font:14px var(--pz-sans);flex-wrap:wrap}.pz-controls button{min-height:40px;min-width:44px;padding:0 14px;border-radius:10px;border:1px solid #3a4558;background:#243042;color:#eef1f7;font:600 14px var(--pz-sans);cursor:pointer}.pz-controls button:disabled{opacity:.4;cursor:default}.pz-controls .pz-save{background:var(--pz-gold);border-color:var(--pz-gold);color:var(--pz-navy)}.pz-controls>span{min-width:160px;text-align:center}.pz-row{display:flex;gap:1.4cqw}.pz-band{flex:1.4;display:flex;flex-direction:column;gap:.7cqw;border-radius:1.1cqw;padding:1.6cqw 2cqw;border:1px solid var(--pz-line);background:#f7f9fb}.pz-band.warn{background:#fdf6e8;border-color:#ebd9b0}.pz-band.good{background:#eef7f2;border-color:#bfe0cf}.pz-band.muted{background:#f1f3f6}.pz-pill{align-self:flex-start;padding:.35cqw 1cqw;border-radius:999px;background:var(--pz-navy);color:#fff;font-weight:700;font-size:1.15cqw}.pz-band.warn .pz-pill{background:var(--pz-warn)}.pz-band.good .pz-pill{background:var(--pz-good)}.pz-band-note{font-family:var(--pz-serif);font-size:1.9cqw;font-weight:700;line-height:1.3}.pz-navy{flex:1;display:flex;flex-direction:column;gap:.6cqw;border-radius:1.1cqw;padding:1.6cqw 2cqw;background:var(--pz-navy);color:#fff}.pz-navy.small{flex:0 0 auto;padding:1.1cqw 1.4cqw}.pz-navy .pz-small{color:#c9d3e0}.pz-label.gold{color:var(--pz-gold)}.pz-big{font-family:var(--pz-serif);font-size:3.1cqw;font-weight:700}.pz-grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.4cqw}.pz-grid3{flex:1;min-height:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2cqw}.pz-cols2{flex:1;min-height:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.8cqw}.pz-stack{display:flex;flex-direction:column;gap:1.1cqw;min-height:0}.pz-stack .grow,.pz-card.grow{flex:1}.pz-kpi,.pz-card{border:1px solid var(--pz-line);border-radius:1.1cqw;padding:1.3cqw 1.6cqw;display:flex;flex-direction:column;gap:.6cqw;min-height:0;overflow:hidden}.pz-card.good{border-color:#bfe0cf}.pz-card.good>.pz-label{color:var(--pz-good)}.pz-card.bad{border-color:#efc4cd;background:#fcf3f5}.pz-card.bad>.pz-label{color:var(--pz-bad)}.pz-card.warn{border-color:#ebd9b0;background:#fdf6e8}.pz-num{font-family:var(--pz-serif);font-size:2.8cqw;font-weight:700}.pz .bad{color:var(--pz-bad)}.pz .good{color:var(--pz-good)}.pz-small{font-size:1.2cqw;color:var(--pz-grey)}.pz-bars{display:flex;flex-direction:column;gap:.4cqw}.pz-bars>span{height:.55cqw;border-radius:1cqw;background:var(--pz-soft);overflow:hidden}.pz-bars i{display:block;height:100%;background:var(--pz-navy)}.pz-bars .time i{background:var(--pz-gold)}.pz-empty{margin:0;color:var(--pz-faint);font-size:1.2cqw}.pz-note-text{margin:0;font-size:1.6cqw;line-height:1.45;white-space:pre-line}.pz-mini{margin:0;font-size:1.15cqw;line-height:1.4}.pz-line-item{display:flex;justify-content:space-between;gap:1cqw;font-size:1.2cqw}.pz-changes{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.pz-changes li{display:flex;gap:1.2cqw;align-items:baseline;padding:.75cqw 0;border-bottom:1px solid var(--pz-soft);font-size:1.35cqw}.pz-changes li:last-child{border-bottom:0}.pz-tag{flex-shrink:0;min-width:7cqw;font-size:.9cqw;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--pz-grey)}.pz-tag.good{color:var(--pz-good)}.pz-tag.bad{color:var(--pz-bad)}.pz-tag.warn{color:var(--pz-warn)}.pz-line{position:relative;height:.8cqw;border-radius:1cqw;background:var(--pz-soft);margin:2.2cqw 0 1cqw}.pz-line-fill{position:absolute;left:0;top:0;bottom:0;border-radius:1cqw;background:var(--pz-navy)}.pz-line-today{position:absolute;top:-1.2cqw;width:2px;height:3.2cqw;background:var(--pz-gold)}.pz-line-dot{position:absolute;top:50%;width:1.5cqw;height:1.5cqw;margin:-.75cqw 0 0 -.75cqw;transform:rotate(45deg);background:#fff;border:2px solid var(--pz-navy)}.pz-line-dot.done{background:var(--pz-good);border-color:var(--pz-good)}.pz-ms{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9cqw 2.4cqw;font-size:1.45cqw}.pz-ms li{display:flex;align-items:baseline;gap:1cqw}.pz-ms li .pz-small{margin-left:auto}.pz-table{width:100%;border-collapse:collapse;font-size:1.35cqw}.pz-table th{text-align:left;font-size:.95cqw;letter-spacing:.08em;text-transform:uppercase;color:var(--pz-grey);padding:.6cqw .8cqw;border-bottom:2px solid var(--pz-line)}.pz-table td{padding:.8cqw;border-bottom:1px solid var(--pz-soft)}.pz-table tr.late td{color:var(--pz-bad)}.pz-drift,.pz-team{display:flex;flex-direction:column;gap:1.3cqw;font-size:1.45cqw}.pz-drift-row,.pz-team-row{display:grid;grid-template-columns:18cqw minmax(0,1fr) 6cqw;gap:1.4cqw;align-items:center}.pz-drift-track{height:1cqw;border-radius:1cqw;background:var(--pz-soft);overflow:hidden}.pz-drift-track i{display:block;height:100%}.pz-drift-track i.bad{background:var(--pz-bad)}.pz-drift-track i.good{background:var(--pz-good)}.pz-team-cells{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:.3cqw}.pz-team-cells i{height:1.8cqw;border-radius:.3cqw;background:var(--pz-soft)}.pz-team-cells i.ok{background:#bfe0cf}.pz-team-cells i.hi{background:#f2d58e}.pz-team-cells i.over{background:#e9a3b1}.pz-team-cells i.off{background:repeating-linear-gradient(45deg,var(--pz-soft) 0 3px,#fff 3px 6px)}.pz-risk-title{font-family:var(--pz-serif);font-size:1.7cqw;line-height:1.25}.pz-asks ol{margin:0;padding-left:2cqw;display:flex;flex-direction:column;gap:1.2cqw;font-family:var(--pz-serif);font-size:1.8cqw;font-weight:700;line-height:1.3}.pz-asks ol li::marker{color:var(--pz-gold)}@media (max-width: 700px){.pz-src{display:none}}:root{--ev-violet: #b648ff;--ev-violet-600: #9d2ff0;--ev-violet-700: #8420d6;--ev-deep: #320f4a;--ev-navy: #021d59;--ev-cyan: #15bdff;--ev-magenta: #cc3366;--ev-lavender: #f4e4ff;--ev-pale: #e6edff;--bg: #f6f7fa;--surface: #ffffff;--surface-2: #f8f9fc;--surface-3: #f1f3f7;--sidebar: #ffffff;--sidebar-fg: #667085;--sidebar-fg-dim: #98a1b3;--sidebar-active-bg: #f1f3f7;--sidebar-active-fg: #0f1420;--sidebar-strong: #0f1420;--sidebar-hover: rgba(15, 20, 32, .045);--sidebar-border: #e6e9ef;--border: #e6e9ef;--border-strong: #d5dae4;--text: #0f1420;--text-dim: #4b5568;--text-faint: #8a93a6;--ev-violet: #7c3aed;--ev-violet-600: #6d28d9;--ev-violet-700: #6d28d9;--accent: #7c3aed;--accent-hover: #6d28d9;--accent-fg: #ffffff;--accent-soft: #ede9fe;--accent-ring: rgba(124, 58, 237, .3);--accent-glow: 0 6px 18px rgba(124, 58, 237, .22);--link: #6d28d9;--today: #06b6d4;--fresh-bg: #e4f7ec;--fresh-fg: #12784a;--aging-bg: #fef2d9;--aging-fg: #8a6100;--stale-bg: #fde5e8;--stale-fg: #c0264a;--never-bg: #ecebf2;--never-fg: #6a6580;--hold-bg: #eae6f7;--hold-fg: #6b4bb0;--r-sm: 7px;--r-md: 10px;--r-lg: 14px;--r-xl: 18px;--r-pill: 999px;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 24px;--sp-6: 32px;--shadow-sm: 0 1px 2px rgba(15, 20, 32, .05);--shadow-md: 0 6px 16px rgba(15, 20, 32, .07), 0 1px 3px rgba(15, 20, 32, .04);--shadow-lg: 0 18px 44px rgba(15, 20, 32, .16);--font: "Geist", "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--mono: "Geist Mono", "Roboto Mono", ui-monospace, SFMono-Regular, Menlo, monospace}:root[data-theme=light]{color-scheme:light}:root[data-theme=soft]{color-scheme:light;--bg: #f6f2ee;--surface: #fffdfb;--surface-2: #faf5ef;--sidebar: #2a2036;--sidebar-fg: #d6c8e2;--border: #ece2d8;--border-strong: #ddd0c4;--text: #2a2333;--text-dim: #6f6578;--text-faint: #9c92a2;--accent-soft: #f3e8ff;--sidebar-strong: #ffffff;--sidebar-hover: rgba(255,255,255,.05);--sidebar-active-fg: #ffffff;--sidebar-active-bg: rgba(182, 72, 255, .18);--sidebar-border: transparent;--sidebar-fg-dim: #8b7aa5}:root[data-theme=slate]{color-scheme:light;--bg: #eef1f5;--surface: #ffffff;--surface-2: #f6f8fb;--sidebar: #1e293b;--sidebar-fg: #b6c2d4;--sidebar-fg-dim: #7688a0;--border: #e1e6ee;--border-strong: #cfd6e2;--text: #1e293b;--text-dim: #5a6a80;--text-faint: #94a1b5;--sidebar-strong: #ffffff;--sidebar-hover: rgba(255,255,255,.05);--sidebar-active-fg: #ffffff;--sidebar-active-bg: rgba(182, 72, 255, .18);--sidebar-border: transparent}:root[data-theme=dark],:root[data-theme=midnight]{color-scheme:dark;--bg: #0a0c11;--surface: #10131b;--surface-2: #151924;--surface-3: #11141c;--sidebar: #0d1017;--sidebar-fg: #7c8396;--sidebar-fg-dim: #5a6175;--sidebar-active-bg: #1a1f2c;--sidebar-active-fg: #e7e9ef;--sidebar-strong: #e7e9ef;--sidebar-hover: rgba(255, 255, 255, .04);--sidebar-border: #1b1f2a;--border: #1e2330;--border-strong: #2a3142;--text: #e7e9ef;--text-dim: #aeb5c6;--text-faint: #6b7285;--ev-violet: #a78bfa;--ev-violet-600: #c4b5fd;--ev-violet-700: #c4b5fd;--accent: #a78bfa;--accent-hover: #c4b5fd;--accent-fg: #0a0c11;--accent-soft: #231c3d;--accent-ring: rgba(167, 139, 250, .4);--accent-glow: 0 0 18px rgba(167, 139, 250, .45);--link: #c4b5fd;--today: #22d3ee;--fresh-bg: #0f2a20;--fresh-fg: #34d399;--aging-bg: #2e2410;--aging-fg: #f5b84a;--stale-bg: #34151b;--stale-fg: #f87171;--never-bg: #1a1f2c;--never-fg: #aeb5c6;--hold-bg: #211a3a;--hold-fg: #c4b5fd;--shadow-sm: 0 1px 2px rgba(0,0,0,.4);--shadow-md: 0 6px 18px rgba(0,0,0,.45);--shadow-lg: 0 18px 48px rgba(0,0,0,.6)}@media (prefers-color-scheme: dark){:root[data-theme=auto]{color-scheme:dark;--bg: #0a0c11;--surface: #10131b;--surface-2: #151924;--surface-3: #11141c;--sidebar: #0d1017;--sidebar-fg: #7c8396;--sidebar-fg-dim: #5a6175;--sidebar-active-bg: #1a1f2c;--sidebar-active-fg: #e7e9ef;--sidebar-strong: #e7e9ef;--sidebar-hover: rgba(255, 255, 255, .04);--sidebar-border: #1b1f2a;--border: #1e2330;--border-strong: #2a3142;--text: #e7e9ef;--text-dim: #aeb5c6;--text-faint: #6b7285;--ev-violet: #a78bfa;--ev-violet-600: #c4b5fd;--ev-violet-700: #c4b5fd;--accent: #a78bfa;--accent-hover: #c4b5fd;--accent-fg: #0a0c11;--accent-soft: #231c3d;--accent-ring: rgba(167, 139, 250, .4);--accent-glow: 0 0 18px rgba(167, 139, 250, .45);--link: #c4b5fd;--today: #22d3ee;--fresh-bg: #0f2a20;--fresh-fg: #34d399;--aging-bg: #2e2410;--aging-fg: #f5b84a;--stale-bg: #34151b;--stale-fg: #f87171;--never-bg: #1a1f2c;--never-fg: #aeb5c6;--hold-bg: #211a3a;--hold-fg: #c4b5fd;--shadow-sm: 0 1px 2px rgba(0,0,0,.4);--shadow-md: 0 6px 18px rgba(0,0,0,.45);--shadow-lg: 0 18px 48px rgba(0,0,0,.6)}}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}::selection{background:var(--accent-soft)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.app{display:grid;grid-template-columns:clamp(216px,18vw,264px) minmax(0,1fr);min-height:100vh}.sidebar{background:var(--sidebar);color:var(--sidebar-fg);display:flex;flex-direction:column;padding:var(--sp-4) var(--sp-3);position:sticky;top:0;height:100vh;overflow-y:auto}.nav-backdrop,.hamburger{display:none}@media (max-width: 860px){.app{grid-template-columns:1fr}.sidebar{position:fixed;z-index:60;left:0;top:0;width:264px;transform:translate(-100%);transition:transform .22s ease;box-shadow:var(--shadow-lg)}.app.nav-open .sidebar{transform:translate(0)}.app.nav-open .nav-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#0a081280}.hamburger{display:inline-grid}}.brand{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-2) var(--sp-5)}.brand-text{display:flex;flex-direction:column;line-height:1.15}.brand-name{font-size:17px;font-weight:700;letter-spacing:-.02em;color:#fff}.brand-tag{font-size:10.5px;color:var(--sidebar-fg-dim);letter-spacing:.01em}.nav{display:flex;flex-direction:column;gap:2px}.nav-item{display:flex;align-items:center;gap:var(--sp-3);padding:9px var(--sp-3);border-radius:var(--r-md);background:none;border:0;cursor:pointer;color:var(--sidebar-fg);font-size:13.5px;font-weight:500;text-align:left;transition:background .12s,color .12s}.nav-item:hover{background:#ffffff0d;color:#fff}.nav-item.active{background:var(--sidebar-active-bg);color:var(--sidebar-active-fg)}.nav-item.active svg{color:var(--ev-violet)}.sidebar-foot{margin-top:auto;padding-top:var(--sp-4)}.user-card{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3);border-radius:var(--r-md);background:#ffffff0a}.avatar{width:30px;height:30px;border-radius:50%;flex-shrink:0;background:linear-gradient(135deg,var(--ev-violet),var(--ev-violet-700));color:#fff;display:grid;place-items:center;font-size:12px;font-weight:700}.user-meta{min-width:0;flex:1}.user-email{font-size:12px;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-role{font-size:10.5px;color:var(--sidebar-fg-dim);text-transform:capitalize}.icon-btn{background:none;border:0;color:var(--sidebar-fg-dim);cursor:pointer;padding:4px;border-radius:var(--r-sm);display:grid;place-items:center}.icon-btn:hover{color:#fff;background:#ffffff0f}.main{display:flex;flex-direction:column;min-width:0}.nudge-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px clamp(var(--sp-3),3vw,var(--sp-5));background:color-mix(in srgb,var(--accent) 12%,var(--surface));border-bottom:1px solid color-mix(in srgb,var(--accent) 30%,transparent);font-size:13px;flex-wrap:wrap}.nudge-banner-msg{flex:1;min-width:0}.nudge-banner-actions{display:flex;align-items:center;gap:12px;flex-shrink:0}.nudge-link{font-weight:600;font-size:13px}.nudge-dismiss{background:none;border:none;cursor:pointer;color:var(--text-dim);font-size:14px;padding:0 2px;line-height:1}.nudge-dismiss:hover{color:var(--text)}.nudge-banner-preview{display:flex;align-items:center;gap:12px;padding:8px 12px;border-radius:var(--radius);background:color-mix(in srgb,var(--accent) 12%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);font-size:13px;margin-top:4px}.topbar{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) clamp(var(--sp-3),3vw,var(--sp-5));background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:20}.page-title{font-size:18px;font-weight:650;letter-spacing:-.02em;margin:0}.topbar-search{flex:1;max-width:520px;position:relative;margin-left:auto}.topbar-search svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-faint)}.topbar-search input{width:100%;padding:9px 12px 9px 38px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2);color:var(--text)}.topbar-search input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring);background:var(--surface)}.content{padding:clamp(var(--sp-3),3vw,var(--sp-5));flex:1;min-width:0}.content-narrow{max-width:2100px;margin:0 auto;width:100%;min-width:0}.hamburger{place-items:center;width:36px;height:36px;border-radius:var(--r-md);background:none;border:1px solid var(--border);color:var(--text);cursor:pointer}.hamburger:hover{border-color:var(--accent);color:var(--accent)}.list-layout{display:grid;grid-template-columns:var(--panel-w, 236px) 16px 1fr;column-gap:0;row-gap:var(--sp-5);align-items:start}@media (max-width: 980px){.list-layout{grid-template-columns:1fr}.panel-resizer{display:none}}.facet-panel{position:sticky;top:60px;max-height:calc(100vh - 76px);overflow-y:auto}.panel-resizer{display:flex;align-items:flex-start;justify-content:center;padding-top:24px;cursor:ew-resize;-webkit-user-select:none;user-select:none}.panel-resizer:after{content:"";width:3px;height:36px;background:var(--border);border-radius:2px;transition:background .15s}.panel-resizer:hover:after,.panel-resizer.dragging:after{background:var(--accent)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}.card-pad{padding:var(--sp-4)}.card-head{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border);font-size:12.5px;color:var(--text-dim)}.col-picker{position:relative}.col-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40}.col-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:41;width:240px;max-height:60vh;overflow-y:auto;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-md);box-shadow:var(--shadow-lg);padding:var(--sp-2)}.export-menu{position:relative;display:inline-block}.export-pop{position:absolute;right:0;top:calc(100% + 6px);z-index:41;min-width:200px;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-md);box-shadow:var(--shadow-lg);padding:4px}.export-opt{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;background:none;border:0;border-radius:var(--r-sm);cursor:pointer;text-align:left;color:var(--text);font-size:13px}.export-opt:hover{background:var(--accent-soft);color:var(--ev-violet-700)}.export-opt svg{color:var(--accent)}.export-opt-text{display:flex;flex-direction:column;gap:1px}.export-opt-desc{font-size:11px;color:var(--text-dim);line-height:1.3}.col-menu-head{display:flex;align-items:center;justify-content:space-between;padding:4px 8px 8px;border-bottom:1px solid var(--border);margin-bottom:6px;font-size:13px}.col-group-title{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);font-weight:700;padding:8px 8px 4px}.col-opt{display:flex;align-items:center;gap:9px;padding:6px 8px;border-radius:var(--r-sm);cursor:pointer;font-size:13px}.col-opt:hover{background:var(--surface-2)}.col-opt.fixed{opacity:.6;cursor:default}.col-opt span:first-of-type{flex:1}.col-opt input{accent-color:var(--accent);width:15px;height:15px;cursor:pointer}.col-opt.fixed input{cursor:default}.facet-header{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border)}.facet-header-title{font-size:13px;font-weight:700;letter-spacing:-.01em}.facet-clear{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;background:none;border:0;color:var(--accent);cursor:pointer;padding:2px 4px;border-radius:var(--r-sm)}.facet-clear:hover{background:var(--accent-soft)}.facet-clear-count{background:var(--accent);color:var(--accent-fg);border-radius:var(--r-pill);min-width:16px;height:16px;display:grid;place-items:center;font-size:10px;padding:0 4px}.facet-group{padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border)}.facet-group:last-child{border-bottom:0}.facet-title{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);font-weight:700;margin-bottom:4px;display:flex;align-items:center;gap:6px}.facet-toggle{width:100%;background:none;border:0;cursor:pointer;padding:6px 5px;text-align:left}.facet-toggle .grow{flex:1}.facet-toggle:hover{color:var(--text-dim)}.facet-chev{transition:transform .15s;color:var(--text-faint)}.facet-chev.open{transform:rotate(90deg)}.facet-item{display:grid;grid-template-columns:minmax(0,1fr) 56px 32px;align-items:center;gap:10px;width:100%;background:none;border:0;border-left:2px solid transparent;border-bottom:1px dashed var(--border);padding:7px 8px 7px 10px;border-radius:0;cursor:pointer;text-align:left;font-size:13px;color:var(--text)}.facet-item:last-of-type{border-bottom:0}.facet-label{display:flex;align-items:center;gap:7px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.facet-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.facet-bar{height:6px;width:100%;background:var(--surface-2);border-radius:999px;overflow:hidden;position:relative}.facet-bar:after{content:"";display:block;height:100%;width:var(--bar, 0%);background:linear-gradient(90deg,var(--accent),#c58bff);border-radius:999px;transition:width .25s}.facet-count{font-variant-numeric:tabular-nums;font:600 11.5px/1 var(--mono);color:var(--text-faint);text-align:right;padding:2px 6px;border-radius:var(--r-sm);background:transparent;min-width:28px}.facet-item:hover{background:var(--surface-2)}.facet-item.active{border-left-color:var(--accent);color:var(--ev-violet-700);font-weight:600}.facet-item.active .facet-count{background:var(--accent);color:var(--accent-fg)}.facet-item.active .facet-bar:after{background:var(--ev-violet-600)}.facet-more{background:none;border:0;cursor:pointer;color:var(--accent);font-size:11.5px;font-weight:600;padding:7px 10px;width:100%;text-align:left;border-radius:var(--r-sm)}.facet-more:hover{background:var(--accent-soft)}.cf-filter-body{padding:0 var(--sp-3) var(--sp-2);display:flex;flex-direction:column;gap:var(--sp-2)}.cf-filter-field{display:flex;flex-direction:column;gap:3px}.cf-filter-label{font-size:11px;font-weight:600;color:var(--text-faint);text-transform:uppercase;letter-spacing:.04em}.cf-filter-select,.cf-filter-input{width:100%;font-size:12.5px;padding:5px 8px;border-radius:var(--r-sm);border:1px solid var(--border);background:var(--bg);color:var(--text);outline:none}.cf-filter-select:focus,.cf-filter-input:focus{border-color:var(--accent)}.chips{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-bottom:var(--sp-3)}.chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;background:var(--accent-soft);color:var(--ev-violet-700);border:1px solid transparent;border-radius:var(--r-pill);padding:4px 6px 4px 11px;cursor:pointer}.chip:hover{border-color:var(--accent)}.chip svg{opacity:.7}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}thead th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint);font-weight:700;padding:10px var(--sp-4);border-bottom:1px solid var(--border);white-space:nowrap;position:sticky;top:0;background:var(--surface)}tbody td{padding:11px var(--sp-4);border-bottom:1px solid var(--border);vertical-align:middle}tbody tr:last-child td{border-bottom:0}tbody tr{transition:background .1s}tbody tr.clickable{cursor:pointer}tbody tr.clickable:hover{background:var(--surface-2)}.code-cell{font-family:var(--mono);font-size:12px;font-weight:500;color:var(--ev-violet-700);white-space:nowrap}.slug-cell{font-family:var(--mono);font-size:11px;color:var(--text-faint)}.copyable{display:inline-flex;align-items:center;gap:4px}.copyable .copy-btn{opacity:0;transition:opacity .1s}.copyable:hover .copy-btn,tr:hover .copyable .copy-btn{opacity:1}.copy-btn{background:none;border:0;cursor:pointer;color:var(--text-faint);padding:2px;border-radius:4px;display:inline-grid;place-items:center;flex-shrink:0}.copy-btn:hover{color:var(--accent);background:var(--accent-soft)}.copy-btn.copied{color:var(--fresh-fg)}.badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;padding:3px 9px;border-radius:var(--r-pill);letter-spacing:.01em;white-space:nowrap}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.badge.FRESH{background:var(--fresh-bg);color:var(--fresh-fg)}.badge.AGING{background:var(--aging-bg);color:var(--aging-fg)}.badge.STALE{background:var(--stale-bg);color:var(--stale-fg)}.badge.NEVER{background:var(--never-bg);color:var(--never-fg)}.status-pill{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;padding:2px 9px;border-radius:var(--r-pill);background:var(--bg);color:var(--text-dim);text-transform:capitalize;white-space:nowrap}.status-pill:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.status-pill.ACTIVE{background:var(--fresh-bg);color:var(--fresh-fg)}.status-pill.ON_HOLD{background:var(--hold-bg);color:var(--hold-fg)}.status-pill.ONBOARDING{background:var(--aging-bg);color:var(--aging-fg)}.status-pill.SUNSET{background:var(--stale-bg);color:var(--stale-fg)}.status-pill.ARCHIVED{background:var(--never-bg);color:var(--never-fg)}.pill{font-size:10.5px;font-weight:600;padding:2px 8px;border-radius:var(--r-sm);background:var(--bg);border:1px solid var(--border);color:var(--text-dim);white-space:nowrap;letter-spacing:.02em}.pill.violet{background:var(--accent-soft);border-color:transparent;color:var(--ev-violet-700)}.muted{color:var(--text-dim)}.faint{color:var(--text-faint)}.tiny{font-size:12px}.mono{font-family:var(--mono)}.right{text-align:right}.btn{display:inline-flex;align-items:center;gap:7px;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-md);padding:8px 14px;cursor:pointer;font-weight:500;color:var(--text);transition:all .12s}.btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}.btn.primary:hover:not(:disabled){background:var(--ev-violet-600);border-color:var(--ev-violet-600);color:#fff}.btn.small{padding:5px 10px;font-size:12.5px;border-radius:var(--r-sm)}.btn.ghost{background:none;border-color:transparent}.btn.ghost:hover:not(:disabled){background:var(--accent-soft)}.btn.danger:hover:not(:disabled){border-color:var(--stale-fg);color:var(--stale-fg);background:var(--stale-bg)}.detail-head{display:flex;align-items:flex-start;gap:var(--sp-4);flex-wrap:wrap;padding:var(--sp-5)}.detail-title-row{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}.detail-head h1{margin:0;font-size:22px;letter-spacing:-.025em}.detail-sub{display:flex;align-items:center;gap:var(--sp-2);margin-top:6px;color:var(--text-dim);font-size:13px}.detail-actions{margin-left:auto;display:flex;gap:var(--sp-2);align-items:center}.detail-layout{display:grid;grid-template-columns:208px minmax(0,1fr);gap:var(--sp-4);align-items:start}.sec-nav{position:sticky;top:calc(58px + var(--sp-3));min-width:0}.sec-nav-inner{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-3);box-shadow:var(--shadow-sm)}.sec-nav-head{display:flex;align-items:baseline;gap:var(--sp-2);font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--text-faint);padding:2px 6px var(--sp-2)}.sec-nav-all{margin-left:auto;background:none;border:0;cursor:pointer;font:inherit;font-size:9.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--link);padding:0;white-space:nowrap}.sec-nav-all:hover{text-decoration:underline}.sec-nav-list{list-style:none;margin:0;padding:0}.sec-nav-item{display:flex;align-items:center;gap:8px;width:100%;padding:7px 8px;margin-bottom:1px;background:none;border:0;border-left:2px solid transparent;border-radius:var(--r-sm);cursor:pointer;font:inherit;font-size:12.5px;text-align:left;color:var(--text-dim)}.sec-nav-item:hover{background:var(--surface-2);color:var(--text)}.sec-nav-item[aria-current=true]{background:var(--accent-soft);color:var(--ev-violet-700);font-weight:600;border-left-color:var(--accent)}.sec-nav-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sec-nav-count{margin-left:auto;font-family:var(--mono);font-size:10.5px;font-weight:400;color:var(--text-faint)}.sec-nav-item[aria-current=true] .sec-nav-count{color:var(--ev-violet-700)}.section{border-top:1px solid var(--border)}.section-header-row{display:flex;align-items:center}.section-header-action{padding-right:var(--sp-4);flex-shrink:0}.section-toggle{display:flex;align-items:center;gap:7px;flex:1;min-width:0;padding:var(--sp-4) var(--sp-5);background:none;border:0;cursor:pointer;text-align:left;font:inherit;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint)}.section-toggle:hover{background:var(--surface-2);color:var(--text-dim)}.section-title{letter-spacing:inherit}.section-chevron{transition:transform .18s ease;flex-shrink:0}.section-toggle[aria-expanded=true] .section-chevron{transform:rotate(90deg)}@media (prefers-reduced-motion: reduce){.section-chevron{transition:none}}.section-count{margin-left:auto;font-family:var(--mono);font-size:11px;font-weight:400;letter-spacing:0;color:var(--text-faint);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-pill);padding:1px 8px}.section-body{padding:0 var(--sp-5) var(--sp-5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;background:#00000073;display:flex;align-items:center;justify-content:center;padding:16px}.modal-box{background:var(--surface);border:1px solid var(--border);border-radius:12px;width:100%;max-width:500px;box-shadow:0 8px 32px #0000002e;display:flex;flex-direction:column}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border)}.modal-title{font-size:14px;font-weight:600;color:var(--text)}.modal-form{padding:16px;display:flex;flex-direction:column;gap:12px}.modal-two-col{display:grid;grid-template-columns:1fr 1fr;gap:10px}.form-field{display:flex;flex-direction:column;gap:4px}.form-field label{font-size:11px;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em}.form-field input,.form-field select,.form-field textarea{font:inherit;font-size:13px;padding:6px 9px;border:1px solid var(--border);border-radius:6px;background:var(--surface-2);color:var(--text);outline:none;transition:border-color .15s}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--accent)}.form-field textarea{resize:vertical}.field-hint{font-size:11px;color:var(--text-faint)}.req{color:var(--accent)}.form-error{font-size:12px;color:var(--danger, #e05);padding:6px 10px;background:#dc323214;border-radius:6px}.modal-foot{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding-top:4px}.section{scroll-margin-top:calc(58px + var(--sp-3))}.detail-tail{height:60vh;pointer-events:none}@media (max-width: 860px){.detail-layout{grid-template-columns:minmax(0,1fr)}.sec-nav{position:sticky;top:58px;z-index:8;margin-bottom:2px}.sec-nav-inner{border-radius:var(--r-md);padding:var(--sp-2)}.sec-nav-head{display:none}.sec-nav-list{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.sec-nav-list::-webkit-scrollbar{display:none}.sec-nav-item{flex-shrink:0;margin-bottom:0;padding:5px 11px;border-left:0;border:1px solid var(--border);border-radius:var(--r-pill);font-size:12px}.sec-nav-item[aria-current=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}.sec-nav-item[aria-current=true] .sec-nav-count{color:var(--accent-fg);opacity:.8}.section-toggle{padding:var(--sp-3) var(--sp-4)}.section-body{padding:0 var(--sp-4) var(--sp-4)}}.fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:var(--sp-4)}.field label{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-faint);margin-bottom:4px;font-weight:600}.field-value{display:flex;align-items:center;gap:6px}.field input,.field select{width:100%;padding:7px 10px;border:1px solid transparent;border-radius:var(--r-sm);background:transparent;color:var(--text)}.field input:hover,.field select:hover{border-color:var(--border);background:var(--surface-2)}.field input:focus,.field select:focus{outline:none;border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px var(--accent-ring)}.field .readonly{padding:7px 10px;color:var(--text)}.row-list{display:flex;flex-direction:column;gap:6px}.row-item{display:flex;align-items:center;gap:var(--sp-3);padding:10px 12px;border:1px solid var(--border);border-radius:var(--r-md);font-size:13px;background:var(--surface-2)}.row-item .grow{flex:1;min-width:0}.row-item a.grow{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layer-group{margin-bottom:var(--sp-4)}.layer-label{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ev-violet-700);font-weight:700;margin-bottom:6px}.clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.crit{color:var(--aging-fg);display:flex;align-items:flex-start;gap:5px;margin-top:3px}.inline-form{display:flex;gap:var(--sp-2);margin-top:var(--sp-3);flex-wrap:wrap}.inline-form input,.inline-form select{padding:7px 10px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface)}.inline-form input{flex:1;min-width:160px}.meter{height:7px;background:var(--never-bg);border-radius:var(--r-pill);overflow:hidden;min-width:100px}.meter>div{height:100%;background:linear-gradient(90deg,var(--ev-violet),var(--ev-cyan));border-radius:var(--r-pill)}.dropzone{border:2px dashed var(--border-strong);border-radius:var(--r-lg);padding:var(--sp-6);text-align:center;color:var(--text-dim);cursor:pointer;transition:all .12s}.dropzone:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}pre.diff{background:var(--bg);border:1px solid var(--border);border-radius:var(--r-sm);padding:10px;font-size:12px;overflow-x:auto;margin:0;font-family:var(--mono)}.empty{padding:var(--sp-6);text-align:center;color:var(--text-dim)}.empty svg{color:var(--text-faint);margin-bottom:var(--sp-3)}.skeleton{background:linear-gradient(90deg,var(--surface-2) 25%,var(--bg) 50%,var(--surface-2) 75%);background-size:200% 100%;animation:sk 1.3s infinite;border-radius:var(--r-sm)}@keyframes sk{0%{background-position:200% 0}to{background-position:-200% 0}}.toast{position:fixed;bottom:var(--sp-5);left:50%;transform:translate(-50%);background:var(--sidebar);color:#fff;padding:11px 18px;border-radius:var(--r-md);font-size:13px;z-index:100;box-shadow:var(--shadow-lg);display:flex;align-items:center;gap:var(--sp-2)}.toast.error{background:var(--stale-fg)}.kpi-row{display:grid;grid-template-columns:repeat(3,minmax(0,280px));gap:var(--sp-3);margin-bottom:var(--sp-4)}@media (max-width: 760px){.kpi-row{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 520px){.kpi-row{grid-template-columns:1fr}}.kpi{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-4)}.kpi-icon{width:38px;height:38px;border-radius:var(--r-md);flex-shrink:0;display:grid;place-items:center;color:var(--accent);background:var(--accent-soft)}.kpi-value{font-size:22px;font-weight:700;letter-spacing:-.02em;line-height:1.1}.kpi-label{font-size:11px;color:var(--text-faint);text-transform:uppercase;letter-spacing:.04em}.kpi-click{cursor:pointer;transition:border-color .12s,box-shadow .12s}.kpi-click:hover{border-color:var(--accent);box-shadow:var(--shadow-md)}.dash-bar{display:grid;grid-template-columns:minmax(90px,130px) 1fr 34px;align-items:center;gap:10px;width:100%;background:none;border:0;padding:5px 6px;border-radius:var(--r-sm);cursor:pointer;text-align:left;color:var(--text)}.dash-bar:hover{background:var(--surface-2)}.dash-bar-label{font-size:12.5px;display:flex;align-items:center;gap:7px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-legend{display:flex;align-items:center;gap:8px;width:100%;font-size:13px;background:none;border:0;padding:5px 8px;border-radius:var(--r-sm);cursor:pointer;text-align:left;color:var(--text)}.dash-legend:hover{background:var(--surface-2)}.dash-legend .grow{flex:1}.dash-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-4);align-items:start}@media (max-width: 900px){.dash-grid{grid-template-columns:minmax(0,1fr)}}@media (min-width: 1500px){.dash-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.dash-h{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint);font-weight:700;margin:0 0 var(--sp-3);display:flex;align-items:center;gap:7px}.dash-card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-2)}.dash-card-head .dash-h{margin:0}.dash-list{display:flex;flex-direction:column}.dash-row{display:flex;align-items:center;gap:var(--sp-3);width:100%;text-align:left;padding:10px var(--sp-4);border:0;border-top:1px solid var(--border);background:none;cursor:pointer;color:var(--text);font-size:13px}.dash-row:first-child{border-top:0}.dash-row:hover{background:var(--surface-2)}.dash-row .grow{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-row-more{justify-content:center;font-size:12px;color:var(--ev-violet-600);font-weight:500}.dash-row-more:hover{color:var(--ev-violet-700)}.to-owner{border-top:1px solid var(--border);padding:var(--sp-3) var(--sp-4)}.to-owner:first-of-type{border-top:0}.to-owner-head{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-2)}.to-avatar{width:30px;height:30px;font-size:11px}.to-count{font-size:11px;font-weight:600;color:var(--text-dim);white-space:nowrap;background:var(--bg);border-radius:var(--r-pill);padding:3px 10px}.to-prows{display:flex;flex-direction:column;margin-left:42px}.to-prow{display:grid;grid-template-columns:12px 84px minmax(0,1fr) auto 16px;align-items:center;gap:12px;width:100%;background:none;border:0;border-radius:var(--r-sm);padding:7px 10px;cursor:pointer;text-align:left;color:var(--text)}.to-prow:hover{background:var(--surface-2)}.to-code{font-size:12px;font-weight:500;color:var(--ev-violet-700)}.to-name{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.to-status{justify-self:end}.to-status .status-pill{padding:1px 8px;font-size:10px}.theme-picker{display:flex;gap:6px;padding:0 4px;margin-bottom:var(--sp-3);flex-wrap:wrap}.swatch{width:22px;height:22px;border-radius:var(--r-sm);cursor:pointer;border:2px solid transparent;position:relative;padding:0}.swatch.active{border-color:var(--ev-violet);box-shadow:0 0 0 2px #b648ff40}.sw-light{background:linear-gradient(135deg,#fff 50%,#b648ff 50%)}.sw-soft{background:linear-gradient(135deg,#fffdfb 50%,#b648ff 50%)}.sw-slate{background:linear-gradient(135deg,#eef1f5 50%,#1e293b 50%)}.sw-dark{background:linear-gradient(135deg,#1b1526 50%,#c06bff 50%)}.sw-midnight{background:linear-gradient(135deg,#111827 50%,#15bdff 50%)}.sw-auto{background:linear-gradient(135deg,#fff 50%,#1b1526 50%)}.admin-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-4);margin-bottom:var(--sp-4);flex-wrap:wrap}.admin-lead{color:var(--text-dim);font-size:14px;max-width:640px;line-height:1.55}.admin-note{display:flex;align-items:flex-start;gap:8px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);padding:10px 12px;margin-top:14px;font-size:12.5px;color:var(--text-dim)}.admin-note svg{color:var(--text-faint);flex-shrink:0;margin-top:2px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1c18308c;display:grid;place-items:center;padding:20px;z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal{width:640px;max-width:100%;max-height:90vh;overflow:hidden;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);display:flex;flex-direction:column}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border);font-size:15px}.modal-body{padding:var(--sp-4);overflow-y:auto}.modal-foot{display:flex;justify-content:flex-end;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--border);background:var(--surface-2)}.modal .field input,.modal .field select{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--text)}.modal .field input:disabled,.modal .field select:disabled{color:var(--text-faint);background:var(--surface-2);cursor:not-allowed}.modal .field input.mono{font-family:var(--mono);font-size:12.5px}.onb-modal{width:min(900px,96vw);max-height:92vh}.onb-body{display:flex;flex-direction:column;gap:0;padding:var(--sp-4);overflow-y:auto}.onb-section-title{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);border-bottom:1px solid var(--border);padding-bottom:var(--sp-1);margin-bottom:var(--sp-3);margin-top:var(--sp-4)}.onb-section-title:first-child{margin-top:0}.onb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--sp-3) var(--sp-4);margin-bottom:var(--sp-2)}.onb-grid .field{margin:0}.onb-grid .field input,.onb-grid .field select{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--text);font-size:13px}.onb-grid .field input:focus,.onb-grid .field select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.field-error input,.field-error select{border-color:var(--stale-fg)!important}.field-err-msg{font-size:11px;color:var(--stale-fg);margin-top:3px}.onb-role-list{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}.onb-role-row{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:var(--r-sm);background:var(--surface-2);border:1px solid var(--border)}.onb-role-person{flex:1;font-size:13px;color:var(--text)}.icon-btn.danger{color:var(--stale-fg)}.icon-btn.danger:hover{background:#cc33661a}.onb-role-add{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:var(--sp-2)}.onb-role-add select,.onb-role-add input{padding:7px 10px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--text);font-size:13px}.onb-role-add select{min-width:150px}.onb-role-add input{flex:1;min-width:160px}.onb-role-add select:focus,.onb-role-add input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.onb-hint{font-size:11.5px;color:var(--text-faint);background:var(--surface-2);border-radius:var(--r-sm);padding:10px 14px;margin-top:var(--sp-4);border-left:3px solid var(--accent)}.checks{display:flex;gap:var(--sp-4);flex-wrap:wrap}.check{display:inline-flex;align-items:center;gap:8px;font-size:13px;cursor:pointer}.check input{accent-color:var(--accent);width:15px;height:15px;cursor:pointer}.tag-input{display:flex;flex-wrap:wrap;gap:6px;padding:6px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);min-height:40px}.tag-input input{flex:1;min-width:140px;border:0;outline:none;background:none;padding:4px 6px;color:var(--text)}.tag{display:inline-flex;align-items:center;gap:5px;background:var(--accent-soft);color:var(--ev-violet-700);border-radius:var(--r-pill);padding:2px 4px 2px 10px;font-size:12px;font-weight:500}.tag button{background:none;border:0;cursor:pointer;color:var(--ev-violet-700);padding:2px;border-radius:50%;display:grid;place-items:center}.tag button:hover{background:#fff6}.login-wrap{display:grid;place-items:center;min-height:100vh;padding:var(--sp-5);background:radial-gradient(1200px 600px at 50% -10%,var(--ev-lavender),transparent),var(--bg)}.login-card{max-width:400px;width:100%;text-align:center;padding:var(--sp-6)}.pager{display:flex;align-items:center;gap:var(--sp-4);flex-wrap:wrap;padding:var(--sp-3) var(--sp-4);margin-top:var(--sp-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);font-size:13px;color:var(--text-dim)}.pager-range{flex:1 1 auto;min-width:0}.pager-range strong{color:var(--text);font-variant-numeric:tabular-nums;font-weight:600}.pager-size{display:flex;align-items:center;gap:var(--sp-2);flex-shrink:0}.pager-size>span{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint)}.pager-size select{padding:4px 8px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2);color:var(--text);font:inherit;font-size:12.5px}.pager-nav{display:flex;align-items:center;gap:var(--sp-2);flex-shrink:0}.pager-pos{font-size:12.5px;white-space:nowrap;font-variant-numeric:tabular-nums}.pager-btn{display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--text);cursor:pointer}.pager-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.pager-btn:disabled{opacity:.4;cursor:default}@media (max-width: 560px){.pager{gap:var(--sp-3)}.pager-range{flex-basis:100%}}.email-cfg-row{display:flex;align-items:center;gap:12px;margin-bottom:10px}.email-cfg-label{width:130px;flex-shrink:0;font-size:12.5px;color:var(--text-dim)}.email-cfg-section{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim);padding:10px 0 4px;border-top:1px solid var(--border);margin:8px 0 6px}.ecfg-form{border:1px solid var(--border);border-top:none;border-radius:0 0 var(--radius) var(--radius);overflow:hidden;padding:16px;background:var(--surface);display:flex;flex-direction:column;gap:12px}.ecfg-card{border:1px solid var(--border);border-radius:var(--radius);padding:16px;background:var(--bg);display:flex;flex-direction:column;gap:14px}.ecfg-section-title{font-size:12px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--text-dim);margin-bottom:2px}.ecfg-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width: 640px){.ecfg-row{grid-template-columns:1fr}}.ecfg-field{display:flex;flex-direction:column;gap:4px}.ecfg-label{font-size:12.5px;font-weight:600;color:var(--text-dim)}.ecfg-hint{font-size:11.5px;color:var(--text-dim);opacity:.75;line-height:1.5;margin-top:2px}.ecfg-pw-set{display:flex;align-items:center;gap:10px;height:36px}.ecfg-pw-dots{font-size:14px;letter-spacing:.05em;color:var(--text)}.btn-link{background:none;border:none;padding:0;font-size:13px;color:var(--accent);cursor:pointer;text-decoration:underline}.btn-link:hover{opacity:.75}.toggle-label{display:flex;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none}.toggle-label input[type=checkbox]{display:none}.toggle-track{width:36px;height:20px;background:var(--border);border-radius:10px;position:relative;transition:background .2s;flex-shrink:0}.toggle-label input:checked~.toggle-track{background:var(--accent)}.toggle-thumb{position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:#fff;transition:transform .2s}.toggle-label input:checked~.toggle-track .toggle-thumb{transform:translate(16px)}.nav-section-label{font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#ffffff4d;padding:16px var(--sp-4) 4px}.role-add-form{display:flex;flex-wrap:wrap;gap:var(--sp-2);padding:var(--sp-3) 0 var(--sp-2);border-bottom:1px solid var(--border);margin-bottom:var(--sp-3)}.role-add-form .field-input{flex:1 1 180px}.role-select{background:transparent;border:none;font:inherit;font-size:13px;cursor:pointer;padding:0}.role-select:focus{outline:2px solid var(--accent);border-radius:3px}.dp-wrap{position:relative;display:inline-block;width:100%}.dp-trigger{display:flex;align-items:center;gap:6px;width:100%;padding:5px 8px;background:var(--input-bg, rgba(255,255,255,.06));border:1px solid var(--border);border-radius:var(--radius, 7px);font:inherit;font-size:13px;color:var(--text);cursor:pointer;text-align:left;transition:border-color .15s}.dp-trigger:hover:not(:disabled){border-color:var(--accent)}.dp-trigger:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.dp-trigger.dp-readonly{cursor:default;opacity:.7}.dp-trigger.dp-empty .dp-display{color:var(--text-faint)}.dp-cal-icon{flex-shrink:0;color:var(--text-faint)}.dp-display{flex:1}.dp-clear{font-size:15px;line-height:1;color:var(--text-faint);cursor:pointer;padding:0 2px;border-radius:3px}.dp-clear:hover{color:var(--text);background:#00000014}.dp-popup{position:absolute;top:calc(100% + 4px);left:0;z-index:200;background:var(--card-bg, #fff);border:1px solid var(--border);border-radius:10px;box-shadow:0 6px 24px #00000021;padding:12px;width:240px;-webkit-user-select:none;user-select:none}.dp-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.dp-nav{background:none;border:none;font-size:18px;cursor:pointer;color:var(--text-faint);padding:2px 6px;border-radius:5px;line-height:1}.dp-nav:hover{background:var(--hover, rgba(0,0,0,.05));color:var(--text)}.dp-month-label{font-size:13px;font-weight:600;color:var(--text)}.dp-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.dp-dow{font-size:10px;font-weight:600;text-align:center;color:var(--text-faint);padding:2px 0 6px;letter-spacing:.02em}.dp-day{aspect-ratio:1;width:100%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:400;color:var(--text);background:none;border:none;border-radius:6px;cursor:pointer;transition:background .1s,color .1s}.dp-day:hover:not(.dp-ghost){background:var(--accent-bg, rgba(182,72,255,.12));color:var(--accent)}.dp-day.dp-ghost{color:var(--text-faint);opacity:.35;cursor:default}.dp-day.dp-today{outline:1.5px solid var(--accent);outline-offset:-1px;color:var(--accent);font-weight:600}.dp-day.dp-sel{background:var(--accent);color:var(--accent-fg);font-weight:600}.dp-day.dp-sel:hover{background:var(--accent)}.audit-feed{display:flex;flex-direction:column}.audit-day-group{margin-bottom:4px}.audit-day-label{font-size:11px;font-weight:600;color:var(--text-faint);letter-spacing:.04em;text-transform:uppercase;padding:10px 0 4px;border-bottom:1px solid var(--border);margin-bottom:2px}.audit-row{display:flex;align-items:center;gap:10px;width:100%;background:none;border:none;border-bottom:.5px solid var(--border);padding:7px 2px;cursor:pointer;text-align:left;font:inherit;color:inherit;border-radius:0;transition:background .1s}.audit-row:hover,.audit-row.open{background:var(--row-hover, rgba(0,0,0,.03))}.audit-row.no-expand{cursor:default}.audit-av{width:26px;height:26px;border-radius:50%;background:#b648ff1f;color:var(--accent);font-size:9px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.audit-av-sys{background:#8c8c8c1a;color:var(--text-faint)}.audit-row-body{flex:1;font-size:12px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.audit-row-who{font-weight:600;color:var(--text)}.audit-row-summary{color:var(--text-faint)}.audit-row-badge{font-size:10px;font-weight:500;background:#b648ff1a;color:var(--accent);padding:2px 7px;border-radius:4px;flex-shrink:0;white-space:nowrap}.audit-row-time{font-size:11px;color:var(--text-faint);white-space:nowrap;font-variant-numeric:tabular-nums}.audit-chevron{font-size:16px;color:var(--text-faint);display:inline-block;transition:transform .15s;line-height:1}.audit-chevron.open{transform:rotate(90deg)}.audit-diff{margin:0 0 2px 36px;background:var(--surface, rgba(0,0,0,.025));border-radius:6px;padding:8px 12px;border-bottom:.5px solid var(--border)}.audit-diff-tbl{border-collapse:collapse;width:100%;font-size:12px}.audit-diff-tbl td{padding:2px 6px 2px 0;vertical-align:top}.ad-field{color:var(--text-faint);white-space:nowrap;min-width:130px;font-weight:500}.ad-old{color:var(--stale-fg, #C0492F);max-width:200px;word-break:break-all}.ad-new{color:var(--fresh-fg, #2F9E7E);max-width:200px;word-break:break-all}.ad-arr{padding:2px 6px;color:var(--text-faint)}.audit-pagination{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;padding:12px 0;border-top:1px solid var(--border);margin-top:8px}.pill.fresh{background:var(--fresh-bg);border-color:transparent;color:var(--fresh-fg)}.pill.aging{background:var(--aging-bg);border-color:transparent;color:var(--aging-fg)}.pill.stale{background:var(--stale-bg);border-color:transparent;color:var(--stale-fg)}.pill.never{background:var(--surface-2);border-color:transparent;color:var(--text-faint)}.dot.upload{background:var(--ev-violet)}.dot.fresh{background:var(--fresh-fg)}.dot.aging,.dot.update{background:var(--aging-fg)}.dot.download{background:var(--fresh-fg)}.dot.stale,.dot.supersede,.dot.delete{background:var(--stale-fg)}.filter-select{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-md);padding:7px 12px;font-size:13px;color:var(--text);cursor:pointer;transition:border-color .12s}.filter-select:focus{outline:none;border-color:var(--accent)}.drop-zone{border:2px dashed var(--border-strong);border-radius:var(--r-lg);padding:28px 20px;text-align:center;cursor:pointer;transition:border-color .15s,background .15s;margin-bottom:14px}.drop-zone:hover{border-color:var(--accent);background:var(--accent-soft)}.hist-btn{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:var(--r-sm);background:var(--surface);border:1px solid var(--border);font-size:11.5px;font-weight:500;color:var(--text-dim);cursor:pointer;transition:all .12s}.hist-btn:hover,.hist-btn.open{background:var(--accent-soft);border-color:transparent;color:var(--ev-violet-700)}.version-chip{display:flex;align-items:center;gap:8px;width:100%;margin:0 0 12px;padding:7px 10px;background:#ffffff0a;border:1px solid rgba(255,255,255,.14);border-radius:8px;color:inherit;cursor:pointer;text-align:left;font:inherit;font-size:12.5px}.version-chip:hover{background:#ffffff17}.version-chip.active{border-color:var(--violet, #6d3df0)}.version-chip-text small{display:block;opacity:.55;font-size:10.5px}.version-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:var(--violet, #8b5cf6);box-shadow:0 0 0 3px color-mix(in srgb,var(--violet, #8b5cf6) 30%,transparent)}.release-notes .rel-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap;padding-bottom:14px;border-bottom:1px solid var(--border)}.rel-filters{display:flex;gap:6px;flex-wrap:wrap}.rel-chip{border:1px solid var(--border);background:none;color:var(--muted);border-radius:99px;padding:3px 12px;font:inherit;font-size:12px;cursor:pointer}.rel-chip.on{background:var(--violet-soft, #efe9ff);color:var(--violet, #6d3df0);border-color:transparent;font-weight:600}.rel-entry{display:grid;grid-template-columns:130px 1fr;gap:0 20px;padding:18px 2px;border-bottom:1px solid var(--border)}.rel-entry:last-child{border-bottom:none}.rel-meta{font-size:12.5px}.rel-version{font-weight:700;font-size:15px;font-family:ui-monospace,monospace}.rel-live{display:inline-block;margin-top:6px;font-size:10.5px;font-weight:700;padding:2px 8px;border-radius:99px;color:var(--fresh-fg, #0f8a4d);background:var(--fresh-bg, #e2f5ea)}.rel-list{margin:0;padding:0;list-style:none}.rel-item{display:flex;gap:10px;align-items:baseline;padding:4px 0}.rel-badge{flex-shrink:0;width:60px;text-align:center;font-size:10px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;padding:2px 0;border-radius:99px}.rel-feature{background:var(--violet-soft, #efe9ff);color:var(--violet, #6d3df0)}.rel-fix{background:var(--fresh-bg, #e2f5ea);color:var(--fresh-fg, #0f8a4d)}.rel-change{background:var(--stale-bg, #fde8ec);color:var(--stale-fg, #c22f4d)}.rel-ops{background:var(--aging-bg, #fdf0dc);color:var(--aging-fg, #a05a00)}.rel-text{min-width:0}.rel-more{border:none;background:none;color:var(--violet, #6d3df0);font:inherit;font-size:12px;cursor:pointer;padding:0}@media (max-width: 700px){.rel-entry{grid-template-columns:1fr;gap:6px}}.cert-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.cert-issuer{font-size:13px;font-weight:500}.cert-chip{display:inline-flex;align-items:center;font-size:11px;font-weight:600;border-radius:99px;padding:1px 9px;border:none;white-space:nowrap}.cert-valid{background:var(--fresh-bg, #e2f5ea);color:var(--fresh-fg, #0f8a4d)}.cert-expiring{background:var(--aging-bg, #fdf0dc);color:var(--aging-fg, #a05a00)}.cert-expired{background:var(--stale-bg, #fde8ec);color:var(--stale-fg, #c22f4d)}.cert-warn{background:var(--stale-bg, #fde8ec);color:var(--stale-fg, #c22f4d);font-weight:500}.cert-info{background:var(--violet-soft, #efe9ff);color:var(--violet, #6d3df0);font-weight:500}.mono-faint{background:var(--surface-2, rgba(128,128,128,.12));color:var(--muted, #6d6884)}.cert-meta{display:flex;align-items:center;flex-wrap:wrap;margin-top:5px}.cert-meta>span+span:before,.cert-meta>span+button:before,.cert-meta>button+span:before{content:"·";margin:0 7px;opacity:.55}.cert-san{background:var(--surface-2, rgba(128,128,128,.12));color:var(--muted, #6d6884);cursor:pointer;font:inherit;font-size:11px;font-weight:500}.cert-san.open{background:var(--violet-soft, #efe9ff);color:var(--violet, #6d3df0)}.cert-sanlist{margin-top:8px;padding:8px 11px;border-radius:8px;max-height:120px;overflow-y:auto;background:var(--surface-2, rgba(128,128,128,.08));font-family:ui-monospace,monospace;font-size:11.5px;line-height:1.9}.cert-sanlist span+span:before{content:" · ";opacity:.5}.cert-sanlist .covers{font-weight:700}.cert-alert-banner{display:flex;align-items:center;gap:8px 12px;flex-wrap:wrap;padding:8px 16px;font-size:13px;background:var(--stale-bg, #fde8ec);color:var(--stale-fg, #c22f4d);border-bottom:1px solid var(--border, #e6e3ef);position:sticky;left:0;max-width:100%;box-sizing:border-box}.cert-alert-msg{flex:1 1 240px;min-width:0;overflow-wrap:anywhere}.cert-alert-banner .nudge-link{color:inherit;font-weight:600}.cert-alert-banner>.nudge-link{flex-shrink:0;white-space:nowrap;margin-left:auto}.cert-alert-list{flex:1 0 100%;list-style:none;margin:2px 0;padding:6px 0 0;border-top:1px solid currentColor;border-top-color:color-mix(in srgb,currentColor 25%,transparent);display:grid;gap:4px;max-height:40vh;overflow:auto}.cert-alert-list li{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;overflow-wrap:anywhere}.cert-alert-days{font-size:12px;opacity:.85;white-space:nowrap}.cert-alert-days.expired{font-weight:700;opacity:1}.cert-alert-more{font-size:12px;opacity:.85}.rl-box{display:flex;flex-direction:column;gap:8px;padding-top:8px;border-top:1px solid var(--border)}.rl-grid{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:12.5px}.rl-grid label{display:inline-flex;align-items:center;gap:6px}.rl-grid input[type=number]{width:70px}.cert-type{background:var(--violet-soft, #efe9ff);color:var(--violet, #6d3df0);font-weight:500}.cert-auto{background:color-mix(in srgb,var(--fresh-fg, #0f8a4d) 12%,transparent);color:var(--fresh-fg, #0f8a4d);font-weight:500}.cert-manual{background:var(--surface-2, rgba(128,128,128,.12));color:var(--muted, #6d6884);font-weight:500}.auth-badges{display:inline-flex;flex-wrap:wrap;gap:4px}.auth-badge{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;font-size:11px;font-weight:600;border:1px solid var(--border);border-radius:6px;padding:1px 7px;color:var(--text)}.auth-badge i{width:7px;height:7px;border-radius:2px;background:var(--violet, #6d3df0);display:inline-block}.auth-certificate i,.auth-mtls i{background:var(--fresh-fg, #0f8a4d)}.auth-password i{background:var(--aging-fg, #a05a00)}.auth-pgp_key i,.auth-ssh_key i{background:var(--stale-fg, #c22f4d)}.auth-none i{background:var(--border)}.auth-edit{flex-basis:100%;display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:2px}.auth-picker,.cred-types,.cred-mode{display:flex;flex-wrap:wrap;gap:5px;align-items:center}.auth-pick{font:inherit;font-size:11.5px;border:1px solid var(--border);background:none;color:var(--text);border-radius:99px;padding:2px 10px;cursor:pointer}.auth-pick.on{background:var(--violet-soft, #efe9ff);color:var(--violet, #6d3df0);border-color:transparent;font-weight:600}.auth-pick:disabled{opacity:.45;cursor:default}.auth-pick:focus-visible{outline:2px solid var(--violet, #6d3df0);outline-offset:2px}.cred-form{display:flex;flex-direction:column;gap:10px;margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}.cred-fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}.cred-field{display:flex;flex-direction:column;gap:3px;min-width:0;font-size:11.5px;color:var(--text-dim)}.cred-field input,.cred-field select{width:100%;min-width:0}.cred-field small{font-size:10.5px;color:var(--text-faint, #8a98a8)}.cred-guard{font-size:12px;border-radius:8px;padding:7px 11px;background:var(--stale-bg, #fde8ec);color:var(--stale-fg, #c22f4d)}.cred-error{font-size:12.5px;color:var(--stale-fg, #c22f4d);font-weight:500}.cred-newep{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border:1px dashed var(--border);border-radius:8px;background:var(--surface-2, rgba(128,128,128,.05))}.cred-notes{width:100%;min-width:0;box-sizing:border-box}.cert-usernote{color:var(--text)}body{font-feature-settings:"ss01","cv11";letter-spacing:-.003em}.grow{flex:1}.sidebar{border-right:1px solid var(--sidebar-border);transition:width .18s ease}.brand-name,.user-email{color:var(--sidebar-strong)}.nav-item:hover{background:var(--sidebar-hover);color:var(--sidebar-strong)}.nav-item.active{box-shadow:inset 0 0 0 1px var(--border-strong)}.nav-item.active svg{color:var(--accent)}.nav-section-label{color:var(--sidebar-fg-dim)}.user-card{background:var(--sidebar-hover)}.icon-btn:hover{color:var(--sidebar-strong);background:var(--sidebar-hover)}.rail-toggle{width:100%;margin-bottom:var(--sp-2);color:var(--sidebar-fg-dim)}.avatar{background:linear-gradient(135deg,var(--accent),var(--accent-hover));color:var(--accent-fg)}.swatch.active{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-ring)}.sw-light{background:linear-gradient(135deg,#fff 50%,#7c3aed 50%)}.sw-dark{background:linear-gradient(135deg,#0a0c11 50%,#a78bfa 50%)}.sw-auto{background:linear-gradient(135deg,#fff 50%,#0a0c11 50%)}@media (min-width: 861px){.app.rail{grid-template-columns:68px minmax(0,1fr)}.app.rail .sidebar{padding:var(--sp-4) 10px;align-items:center;overflow-x:hidden}.app.rail .brand{padding:2px 0 var(--sp-4);justify-content:center}.app.rail .brand-text,.app.rail .nav-label,.app.rail .rail-hide,.app.rail .user-meta,.app.rail .version-chip-text{display:none}.app.rail .nav{align-items:center;gap:4px}.app.rail .nav-item{width:44px;height:44px;padding:0;justify-content:center;border-radius:12px}.app.rail .nav-section-label{font-size:0;padding:0;margin:10px auto;width:22px;height:1px;background:var(--sidebar-border)}.app.rail .sidebar-foot{display:flex;flex-direction:column;align-items:center;gap:6px}.app.rail .rail-toggle{width:44px;margin:0}.app.rail .version-chip{width:44px;justify-content:center;padding:8px 0}.app.rail .version-chip:before{content:"v";font-size:12px;font-weight:600;color:var(--sidebar-fg)}.app.rail .user-card{background:none;padding:4px;justify-content:center}.app.rail .user-card .icon-btn{display:none}}.topbar{min-height:60px;padding-top:10px;padding-bottom:10px;background:color-mix(in srgb,var(--surface) 86%,transparent);-webkit-backdrop-filter:saturate(1.4) blur(10px);backdrop-filter:saturate(1.4) blur(10px)}.page-title{font-size:17px;font-weight:600}.cmdk-pill{display:inline-flex;align-items:center;gap:10px;width:min(360px,42vw);height:36px;padding:0 8px 0 12px;border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface-3);color:var(--text-faint);font-size:13px;cursor:pointer;transition:border-color .12s,background .12s}.cmdk-pill:hover{border-color:var(--border-strong);background:var(--surface);color:var(--text-dim)}.cmdk-pill-text{flex:1;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}kbd{font-family:var(--mono);font-size:11px;line-height:1;padding:3px 6px;border-radius:6px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text-dim)}.theme-toggle{width:36px;height:36px;display:inline-grid;place-items:center;border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface);color:var(--text-dim);cursor:pointer}.theme-toggle:hover{color:var(--accent);border-color:var(--accent)}@media (max-width: 860px){.cmdk-pill{width:36px;padding:0;justify-content:center}.cmdk-pill-text,.cmdk-pill kbd{display:none}}.cmdk-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;display:flex;justify-content:center;align-items:flex-start;padding:12vh 16px 16px;background:color-mix(in srgb,var(--bg) 55%,rgba(0,0,0,.35));-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.cmdk{width:min(640px,100%);max-height:70vh;display:flex;flex-direction:column;overflow:hidden;background:var(--surface);border:1px solid var(--border-strong);border-radius:16px;box-shadow:var(--shadow-lg)}.cmdk-input{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border);color:var(--text-faint)}.cmdk-input input{flex:1;border:0;outline:none;background:none;font-size:15px;color:var(--text)}.cmdk-list{overflow-y:auto;padding:6px}.cmdk-group{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);padding:10px 10px 4px}.cmdk-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:10px;cursor:pointer;color:var(--text-dim);font-size:13.5px}.cmdk-item.on{background:var(--accent-soft);color:var(--text)}.cmdk-item.on svg{color:var(--accent)}.cmdk-label{color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cmdk-hint{margin-left:auto;font-size:12px;color:var(--text-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:45%}.cmdk-empty{padding:22px;text-align:center;color:var(--text-faint);font-size:13px}.cmdk-foot{display:flex;gap:16px;padding:9px 14px;border-top:1px solid var(--border);font-size:11.5px;color:var(--text-faint)}.cmdk-foot kbd{margin-right:3px}.card{border-radius:var(--r-xl)}.btn{border-radius:var(--r-md);transition:background .12s,border-color .12s,color .12s,box-shadow .12s}.btn.small{border-radius:8px}.btn.primary{font-weight:600;box-shadow:var(--accent-glow)}.btn.primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);color:var(--accent-fg)}.pill.violet{color:var(--link)}.toast{background:var(--text);color:var(--bg)}thead th{letter-spacing:.05em}input,select,textarea{accent-color:var(--accent)}.plan-title{font-size:26px;font-weight:650;letter-spacing:-.025em}.plan-stat{border-radius:var(--r-lg);background:var(--surface);padding:10px 14px}.plan-stat-value{font-size:18px;letter-spacing:-.01em}.ph-bar-done{background:var(--accent);box-shadow:var(--accent-glow)}.ph-bar-time{background:var(--today)}.ph-today{background:var(--today);box-shadow:0 0 8px var(--today)}.ph-today em{color:var(--text-dim)}.plan-tabs{display:inline-flex;align-self:flex-start;max-width:100%;gap:2px;padding:3px;border:1px solid var(--border);border-radius:12px;background:var(--surface-3)}.plan-tabs button{min-height:32px;padding:0 14px;border:0;border-radius:9px;font-size:13px}.plan-tabs button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm),inset 0 0 0 1px var(--border)}.plan-seg{border-radius:11px;background:var(--surface-3)}.plan-seg button{border-radius:8px}.g-today{stroke:var(--today);stroke-width:2;filter:drop-shadow(0 0 4px var(--today))}.g-bar{rx:5px}.g-mile.ms-prog rect{fill:var(--accent)}.ov-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px}.ov-tile{grid-column:span var(--span, 4);min-width:0;padding:18px 20px;border-radius:var(--r-xl);background:var(--surface);border:1px solid var(--border);display:flex;flex-direction:column;gap:12px}.ov-head{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:var(--text-faint)}.ov-head button{font:inherit;border:0;background:none;color:var(--link);cursor:pointer;padding:0}.ov-big{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.ov-big strong{font-size:52px;line-height:1;font-weight:700;letter-spacing:-.04em;color:var(--text);font-variant-numeric:tabular-nums}.ov-big span{font-size:13px}.ov-bad{color:var(--stale-fg)}.ov-warn{color:var(--aging-fg)}.ov-good{color:var(--fresh-fg)}.ov-bars{display:flex;flex-direction:column;gap:8px}.ov-barrow{display:grid;grid-template-columns:38px minmax(0,1fr) 40px;gap:10px;align-items:center;font-size:11.5px;color:var(--text-faint)}.ov-track{height:8px;border-radius:8px;background:var(--surface-3);overflow:hidden}.ov-track>span{display:block;height:100%;border-radius:8px}.ov-fill-work{background:var(--accent);box-shadow:var(--accent-glow)}.ov-fill-time{background:var(--today)}.ov-num{font-family:var(--mono);font-size:12px;text-align:right;color:var(--text-dim)}.ov-next{background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 16%,var(--surface)),var(--surface) 70%);border-color:color-mix(in srgb,var(--accent) 35%,var(--border))}.ov-next-name{font-size:20px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:none;border:0;padding:0;text-align:left;cursor:pointer;font-family:inherit}.ov-next-name:hover{color:var(--link)}.ov-count{display:flex;gap:8px}.ov-count>div{padding:8px 12px;border-radius:12px;background:color-mix(in srgb,var(--surface) 60%,transparent);border:1px solid var(--border);text-align:center;min-width:64px}.ov-count b{display:block;font-family:var(--mono);font-size:26px;font-weight:500;color:var(--text)}.ov-count small{font-size:10.5px;color:var(--text-faint)}.ov-sub{font-size:12px;color:var(--text-dim)}.ov-var{display:grid;grid-template-columns:minmax(0,120px) minmax(0,1fr) 46px;gap:10px;align-items:center;font-size:12.5px;color:var(--text-dim)}.ov-var-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ov-var-track{position:relative;height:14px}.ov-var-track:before{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:var(--border-strong)}.ov-var-track>span{position:absolute;top:2px;height:10px;border-radius:4px}.ov-runway{position:relative;display:flex;gap:0;padding-top:4px;overflow-x:auto}.ov-ms{flex:1 0 150px;display:flex;flex-direction:column;gap:6px;position:relative;padding-right:12px;min-width:0;background:none;border:0;text-align:left;font:inherit;color:inherit;cursor:pointer}.ov-ms:before{content:"";position:absolute;left:0;right:0;top:30px;height:2px;background:var(--surface-3)}.ov-ms.passed:before{background:var(--accent)}.ov-ms-when{font-family:var(--mono);font-size:11px;color:var(--text-faint)}.ov-ms-dia{position:relative;width:15px;height:15px;transform:rotate(45deg);border-radius:4px;margin:6px 0 8px 2px;background:var(--surface);box-shadow:inset 0 0 0 2px var(--text-faint)}.ov-ms.done .ov-ms-dia{background:var(--fresh-fg);box-shadow:none}.ov-ms.prog .ov-ms-dia,.ov-ms.next .ov-ms-dia{background:var(--accent);box-shadow:var(--accent-glow)}.ov-ms.late .ov-ms-dia{box-shadow:inset 0 0 0 2px var(--stale-fg)}.ov-ms.late .ov-ms-when{color:var(--stale-fg)}.ov-ms.next .ov-ms-when{color:var(--accent)}.ov-ms-name{font-size:14px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ov-ms:hover .ov-ms-name{color:var(--link)}.ov-ms-note{font-size:12px;color:var(--text-faint)}.ov-risk{display:grid;grid-template-columns:150px minmax(0,1fr);gap:18px}.ov-heat{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:3px}.ov-heat span{aspect-ratio:1;border-radius:5px;display:grid;place-items:center;font-size:11px;font-weight:700;color:var(--text)}.ov-heat .lv-LOW{background:color-mix(in srgb,var(--fresh-fg) 16%,var(--surface))}.ov-heat .lv-MEDIUM{background:color-mix(in srgb,var(--aging-fg) 20%,var(--surface))}.ov-heat .lv-HIGH{background:color-mix(in srgb,var(--stale-fg) 24%,var(--surface))}.ov-heat .lv-CRITICAL{background:color-mix(in srgb,var(--stale-fg) 42%,var(--surface))}.ov-heat .has{box-shadow:inset 0 0 0 2px var(--text)}.ov-risk-list{display:flex;flex-direction:column;gap:8px;min-width:0}.ov-risk-item{padding:9px 12px;border-radius:12px;border:1px solid var(--border);background:var(--surface-2);text-align:left;font:inherit;color:inherit;cursor:pointer}.ov-risk-item b{display:block;font-size:13px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ov-risk-item small{font-size:11.5px}.ov-risk-item.lv-HIGH,.ov-risk-item.lv-CRITICAL{border-color:color-mix(in srgb,var(--stale-fg) 40%,var(--border))}.ov-people{display:flex;flex-direction:column;gap:10px}.ov-person{display:grid;grid-template-columns:26px minmax(0,110px) minmax(0,1fr) 44px;gap:10px;align-items:center;font-size:12.5px;color:var(--text-dim)}.ov-av{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:10px;font-weight:700;background:var(--accent-soft);color:var(--link)}.ov-days{display:flex;gap:3px}.ov-days span{flex:1;height:16px;border-radius:4px;background:var(--surface-3)}.ov-days .ok{background:var(--accent);opacity:.8}.ov-days .hi{background:var(--aging-fg)}.ov-days .over{background:var(--stale-fg)}.ov-days .off{background:repeating-linear-gradient(45deg,var(--surface-3) 0 3px,transparent 3px 6px);box-shadow:inset 0 0 0 1px var(--border)}.ov-list{display:flex;flex-direction:column;gap:9px}.ov-line{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text);min-width:0}.ov-line>.grow{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ov-line small{font-size:11.5px;color:var(--text-faint);white-space:nowrap}.ov-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;background:var(--border-strong)}.ov-dot.APPROVED{background:var(--fresh-fg)}.ov-dot.REQUESTED{background:var(--aging-fg);box-shadow:0 0 0 4px color-mix(in srgb,var(--aging-fg) 18%,transparent)}.ov-dot.REJECTED{background:var(--stale-fg)}.ov-act{display:flex;gap:10px;align-items:flex-start;font-size:12.5px;color:var(--text-dim);line-height:1.4}.ov-act>span:nth-child(2){flex:1;min-width:0}.ov-act small{color:var(--text-faint);white-space:nowrap}.ov-empty{font-size:12.5px;color:var(--text-faint)}@media (max-width: 1180px){.ov-tile{grid-column:span 6}.ov-tile.ov-wide{grid-column:span 12}}@media (max-width: 720px){.ov-tile,.ov-tile.ov-wide{grid-column:span 12}.ov-risk{grid-template-columns:1fr}.ov-big strong{font-size:42px}}.btn-reset{background:none;border:0;padding:0;margin:0;font:inherit;color:inherit;text-align:left;cursor:pointer;width:100%}.btn-reset:hover .grow{color:var(--link)}.version-chip{background:var(--sidebar-hover);border-color:var(--sidebar-border);color:var(--sidebar-fg)}.version-chip:hover{background:var(--sidebar-active-bg);color:var(--sidebar-strong)}.version-chip.active{border-color:var(--accent)}.version-dot{background:var(--accent)}.skip-link{position:fixed;left:12px;top:-60px;z-index:200;padding:10px 14px;border-radius:10px;border:0;background:var(--accent);color:var(--accent-fg);font:inherit;font-weight:600;cursor:pointer}.skip-link:focus{top:12px}.content:focus{outline:none}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
