/* Port OS view (portos.html) on top of admin.css tokens */
body.pos{overflow:auto}
.pos .app{display:block;height:auto;min-height:100vh}
.pos .topbar{position:sticky;top:0;z-index:30;height:58px}
.po-tabs{display:flex;gap:4px;margin:0 auto 0 18px}
.po-tabs button{font:inherit;font-size:13.5px;font-weight:600;padding:7px 14px;border-radius:999px;border:1px solid var(--cp-border);background:var(--cp-surface);color:var(--cp-text-soft);cursor:pointer}
.po-tabs button[aria-selected="true"]{background:var(--cp-accent);border-color:var(--cp-accent);color:var(--cp-accent-fg,#fff)}
.po-whatif{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:8px 16px 0;padding:8px 12px;border:1px dashed var(--cp-border);border-radius:10px;font-size:12.5px}
.po-whatif .wi-t{font-weight:700}.po-whatif label{display:flex;gap:6px;align-items:center}
.po-whatif select,.cp select,.cp input,.cp textarea,.mx-bar select{font:inherit;font-size:12.5px;padding:4px 7px;border:1px solid var(--cp-border);border-radius:7px;background:var(--cp-surface);color:var(--cp-text)}
.po-whatif .wi-note{color:var(--cp-text-soft);font-size:11.5px}.po-whatif .wi-n{color:var(--cp-text-soft)}
.po-view{padding:12px 16px 40px}
/* maturity chips */
.lv{display:inline-block;font:700 10.5px var(--mono,monospace);padding:1px 5px;border-radius:5px;border:1px solid transparent}
.lv.l0{background:#e5e7eb;color:#4b5563}.lv.l1{background:#fde68a;color:#78350f}.lv.l2{background:#bfdbfe;color:#1e3a8a}.lv.l3{background:#c7d2fe;color:#312e81}.lv.l4{background:#bbf7d0;color:#14532d}
html[data-theme="dark"] .lv.l0{background:#374151;color:#d1d5db}
/* stack */
.po-stack{display:grid;gap:8px}
.ly{display:grid;grid-template-columns:200px minmax(0,1fr);gap:12px;padding:10px 12px;border:1px solid var(--cp-border);border-radius:12px;background:var(--cp-surface)}
.ly-h b{display:block;font-size:14px}.ly-h small{color:var(--cp-text-soft);font-size:11.5px;line-height:1.35;display:block;margin-top:2px}
.ly-b{display:flex;flex-wrap:wrap;gap:6px;align-items:flex-start;min-width:0}
.ly.shells{background:color-mix(in srgb,#64748b 7%,var(--cp-surface))}.ly.seasons{background:color-mix(in srgb,#f59e0b 8%,var(--cp-surface))}.ly.scens{background:color-mix(in srgb,#ec4899 6%,var(--cp-surface))}.ly.kernel{background:color-mix(in srgb,#0ea5e9 8%,var(--cp-surface))}
.shell,.kn{padding:6px 10px;border-radius:9px;border:1px solid var(--cp-border);background:var(--cp-surface);font-size:12.5px}
.kn{flex:1 1 220px}.kn b{display:block}.kn small{color:var(--cp-text-soft);font-size:11.5px}
.season{font:inherit;text-align:left;padding:8px 12px;border-radius:10px;border:2px solid #f59e0b;background:var(--cp-surface);cursor:pointer;display:grid;gap:2px;font-size:12.5px;color:var(--cp-text)}
.season small{color:var(--cp-text-soft)}.season span{font-weight:700;color:#b45309}.season.ghost{border-style:dashed;border-width:1px;opacity:.65;cursor:default}
.scn{font:inherit;font-size:12px;padding:4px 9px;border-radius:999px;border:1px solid var(--cp-border);background:var(--cp-surface);color:var(--cp-text);cursor:pointer}
.scn i{font-style:normal;font-weight:700;margin-left:3px}.scn .ok{color:#16a34a}.scn .gap{color:#b45309}
.scn.on{border-color:var(--cp-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--cp-accent) 40%,transparent)}.scn.dim,.tile.dim{opacity:.35}.scn.dup{opacity:.6;border-style:dashed}
.bk{flex:1 1 100%}.bk h4{margin:2px 0 6px;font-size:12.5px}.bk h4 small{font-weight:400;color:var(--cp-text-soft)}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px}
.tile{font:inherit;text-align:left;position:relative;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:2px 6px;align-items:center;padding:7px 9px;border-radius:9px;border:1px solid var(--cp-border);background:var(--cp-surface);color:var(--cp-text);cursor:pointer;min-height:50px;border-left-width:5px}
.tile .id{font:700 11px var(--mono,monospace);color:var(--cp-text-soft)}.tile .nm{grid-column:1/-1;font-size:12.5px;font-weight:600;line-height:1.25}
.tile .lv{position:absolute;right:6px;top:6px}.tile .use{position:absolute;right:6px;bottom:5px;font-size:10.5px;font-weight:700;color:var(--cp-text-soft)}
.tile.l0{border-left-color:#9ca3af}.tile.l1{border-left-color:#f59e0b}.tile.l2{border-left-color:#3b82f6}.tile.l3{border-left-color:#6366f1}.tile.l4{border-left-color:#16a34a}
.tile.kP{background:color-mix(in srgb,#a855f7 5%,var(--cp-surface))}.tile.kF{background:color-mix(in srgb,#22c55e 5%,var(--cp-surface))}
.tile.def{border-style:dashed;border-left-style:solid}
.tile.on{border-color:var(--cp-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--cp-accent) 45%,transparent)}
.po-legend{margin-top:10px;font-size:12px;color:var(--cp-text-soft)}.po-legend .def-l{border:1px dashed var(--cp-text-soft);padding:0 5px;border-radius:4px}
/* side panel */
.po-side{position:fixed;right:12px;top:70px;bottom:12px;width:min(360px,calc(100vw - 24px));overflow:auto;z-index:40;padding:14px 16px;border:1px solid var(--cp-border);border-radius:14px;background:var(--cp-bg-elevated);box-shadow:0 18px 50px rgba(0,0,0,.18);font-size:13px}
.po-side .x{position:absolute;right:10px;top:10px;background:none;border:0;font-size:16px;cursor:pointer;color:var(--cp-text-soft)}
.po-side .ty{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--cp-text-soft)}.po-side h3{margin:4px 0 6px;font-size:16px}.po-side h3 a{color:inherit}
.po-side h4{margin:12px 0 5px;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--cp-text-soft)}.po-side h4 small{text-transform:none;letter-spacing:0;font-weight:400}
.po-side dl{display:grid;grid-template-columns:110px 1fr;gap:3px 10px;margin:8px 0}.po-side dt{color:var(--cp-text-soft)}.po-side dd{margin:0}
.po-side .row{display:flex;gap:6px;align-items:center;width:100%;text-align:left;font:inherit;font-size:12.5px;padding:5px 6px;border:0;border-bottom:1px solid var(--cp-border);background:none;color:var(--cp-text);cursor:pointer}
.po-side .lvset{display:flex;gap:4px}.po-side .lvset .lv{font-size:12px;padding:4px 8px;cursor:pointer;border:1px solid var(--cp-border)}.po-side .lvset .lv.cur{outline:2px solid var(--cp-accent)}
.po-side .warn{padding:6px 9px;border-radius:8px;background:color-mix(in srgb,#f59e0b 14%,transparent);font-size:12.5px}
.po-side .chips{display:flex;flex-wrap:wrap;gap:4px}.po-side .chip{padding:2px 8px;border-radius:999px;border:1px solid var(--cp-border);font-size:12px;text-decoration:none;color:var(--cp-text)}
.po-side .mini,.pos .mini{font-size:12px;color:var(--cp-text-soft)}
/* matrix */
.mx-bar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:8px;font-size:12.5px}
.mx-t{font-weight:700}.wave{display:flex;gap:5px;align-items:center;padding:4px 8px;border:1px solid var(--cp-border);border-radius:8px;background:var(--cp-surface)}.wave small{color:var(--cp-text-soft);font-family:var(--mono,monospace)}
.mx-score{margin-left:auto;font-size:13.5px}.mx-score b{font-size:20px;color:var(--cp-accent)}
.mx-wrap{overflow:auto;border:1px solid var(--cp-border);border-radius:10px;background:var(--cp-surface);max-height:calc(100vh - 260px)}
.mx{border-collapse:separate;border-spacing:0;font-size:12px}
.mx th,.mx td{border-bottom:1px solid color-mix(in srgb,var(--cp-border) 60%,transparent);padding:0}
.mx thead th{position:sticky;top:0;z-index:2;background:var(--cp-bg-elevated)}
.mx th.sc{position:sticky;left:0;z-index:1;background:var(--cp-surface);text-align:left;padding:6px 10px;min-width:220px;font-weight:600}.mx thead th.sc{z-index:3;background:var(--cp-bg-elevated)}
.mx th.sc a{color:inherit;text-decoration:none}.mx th.sc a:hover{text-decoration:underline}
.mx th.b{width:56px;min-width:56px;padding:6px 2px;cursor:pointer;vertical-align:bottom;text-align:center;font-weight:600}
.mx th.b span{display:block;font:700 11px var(--mono,monospace)}.mx th.b small{display:block;font-weight:400;font-size:10px;line-height:1.15;color:var(--cp-text-soft);max-height:3.5em;overflow:hidden;margin:2px 0}.mx th.b i{display:block;font-style:normal;font-size:10.5px;color:var(--cp-text-soft)}
.mx th.b.srt{background:color-mix(in srgb,var(--cp-accent) 12%,var(--cp-bg-elevated))}
.mx td.rd,.mx th.rd{width:52px;text-align:center;font-weight:700}.mx td.rd .ok{color:#16a34a}.mx td.rd .gap{color:#b45309}
.mx td.c{text-align:center}.mx td.c button{width:100%;height:28px;border:0;font:700 11px var(--mono,monospace);cursor:pointer;color:inherit;background:transparent}
.mx td.c.l0{background:#e5e7eb;color:#4b5563}.mx td.c.l1{background:#fde68a;color:#78350f}.mx td.c.l2{background:#bfdbfe;color:#1e3a8a}.mx td.c.l3{background:#c7d2fe;color:#312e81}.mx td.c.l4{background:#bbf7d0;color:#14532d}
html[data-theme="dark"] .mx td.c.l0{background:#374151;color:#d1d5db}
.mx tr.dup{opacity:.5}
/* compile */
.cp{display:grid;grid-template-columns:minmax(280px,380px) minmax(0,1fr);gap:16px;align-items:start}
.cp-man{display:grid;gap:8px;padding:12px 14px;border:1px solid var(--cp-border);border-radius:12px;background:var(--cp-surface);font-size:12.5px}
.cp-man h3{margin:0;font-size:15px}.cp-man label{display:grid;gap:3px;color:var(--cp-text-soft)}.cp-man input,.cp-man textarea,.cp-man select{color:var(--cp-text)}
.cp-man .two{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.cp-man fieldset{border:1px solid var(--cp-border);border-radius:9px;padding:6px 10px;display:grid;gap:3px;max-height:220px;overflow:auto}.cp-man legend{font-weight:700;color:var(--cp-text)}
.cp-man .ck{display:flex;gap:6px;align-items:center;color:var(--cp-text)}.cp-man .ck.dup{opacity:.6}
.cp-act{display:flex;gap:8px;justify-content:flex-end;margin-top:6px;flex-wrap:wrap}
.cp-out{padding:12px 14px;border:1px solid var(--cp-border);border-radius:12px;background:var(--cp-surface);min-height:300px}
.cp-out h3{margin:0 0 8px;font-size:15px}.cp-out h3 small{font-weight:400;color:var(--cp-text-soft)}
.phases{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.ph{border:1px solid var(--cp-border);border-left-width:5px;border-radius:10px;padding:8px 10px;font-size:12.5px}
.ph-h{display:flex;gap:8px;align-items:baseline}.ph-h small{color:var(--cp-text-soft)}.ph .st{font-weight:800;width:16px}
.ph.run{border-left-color:#9ca3af}.ph.s-i{border-left-color:#16a34a}.ph.s-w{border-left-color:#f59e0b}.ph.s-x{border-left-color:#dc2626}.ph.parked{opacity:.55;border-style:dashed}
.ph ul{margin:6px 0 0;padding-left:22px}.ph li{margin:2px 0}.ph .f-x{color:#b91c1c}.ph .f-w{color:#b45309}
html[data-theme="dark"] .ph .f-x{color:#fca5a5}html[data-theme="dark"] .ph .f-w{color:#fcd34d}
.verdict{margin-top:12px;padding:10px 12px;border-radius:10px;font-size:13px}.verdict>b{font-size:15px}
.verdict.ok{background:color-mix(in srgb,#16a34a 12%,transparent)}.verdict.no{background:color-mix(in srgb,#f59e0b 12%,transparent)}
.verdict ul{margin:6px 0 0;padding-left:20px}
.toast{z-index:1000}
@media (max-width:980px){.ly{grid-template-columns:minmax(0,1fr)}.cp{grid-template-columns:minmax(0,1fr)}}
@media (max-width:760px){.pos .topbar{height:auto;flex-wrap:wrap;padding:6px 10px;gap:6px}.po-tabs{order:3;margin:0;width:100%}.pos .brand .bt{font-size:13px}.po-view{padding:10px 8px 40px}.po-whatif{margin-left:8px;margin-right:8px}.mx-score{margin-left:0}}
