.os{--os-bg:#0c1117;--os-panel:#151b24;--os-panel-2:#1b2330;--os-line:#2c3646;--os-text:#eef3f8;--os-muted:#8b98a8;--os-accent:#3de0ff;--os-good:#3dd68c;--os-warn:#f5a524;--os-bad:#ff5c6a;--os-font:"IBM Plex Sans","Manrope",system-ui,sans-serif;min-height:100dvh;background:var(--os-bg);color:var(--os-text);font-family:var(--os-font);font-size:15px;line-height:1.45}.os *{box-sizing:border-box}.os a{color:var(--os-accent);text-decoration:none}.os a:hover{text-decoration:underline}.os h1,.os h2,.os h3{margin:0 0 .35em;font-weight:650;letter-spacing:-.02em;color:#fff}.os h1{font-size:1.45rem}.os h2{font-size:1.12rem}.os p{margin:0 0 .8rem}.os-shell{display:grid;grid-template-columns:220px 1fr;min-height:100dvh}.os-side{background:#0a0e13;border-right:1px solid var(--os-line);padding:18px 14px 24px;gap:18px}.os-brand,.os-side{display:flex;flex-direction:column}.os-brand{gap:2px;padding:0 6px}.os-brand strong{font-size:.92rem;letter-spacing:.08em}.os-brand span{color:var(--os-muted);font-size:.75rem}.os-nav{display:grid;gap:4px}.os-nav .os-nav-label,.os-nav a{display:block;padding:8px 10px;border-radius:6px;color:var(--os-text);font-size:.88rem}.os-nav a:hover{background:var(--os-panel);text-decoration:none}.os-nav a.is-on{background:var(--os-panel-2);color:var(--os-accent)}.os-nav-label{color:var(--os-muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;margin-top:8px}.os-user{margin-top:auto;padding:10px;border-top:1px solid var(--os-line);font-size:.82rem;color:var(--os-muted)}.os-main{padding:22px 26px 48px;overflow:auto}.os-kicker{margin:0 0 6px;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase}.os-kicker,.os-lead{color:var(--os-muted)}.os-lead{max-width:46rem}.os-grid{display:grid;gap:12px}.os-grid.kpi{grid-template-columns:repeat(4,1fr);margin:16px 0 20px}.os-grid.two{grid-template-columns:1.2fr .8fr}.os-grid.three{grid-template-columns:1fr 1fr 1fr}.os-card{background:var(--os-panel);border:1px solid var(--os-line);border-radius:8px;padding:14px 16px}.os-card h2{font-size:.95rem}.os-metric{font-size:1.7rem;font-weight:700;color:#fff}.os-metric small{display:block;color:var(--os-muted);font-size:.75rem;font-weight:500;margin-top:4px}.os-table{width:100%;border-collapse:collapse;font-size:.88rem}.os-table th{text-align:left;color:var(--os-muted);font-weight:600;padding:6px 8px}.os-table td,.os-table th{border-bottom:1px solid var(--os-line)}.os-table td{padding:8px;vertical-align:top}.os-pill{display:inline-block;padding:2px 8px;border-radius:999px;font-size:.72rem;font-weight:650;text-transform:uppercase;letter-spacing:.04em}.os-pill.Online,.os-pill.Running,.os-pill.open{background:#16324a;color:var(--os-accent)}.os-pill.clear,.os-pill.done,.os-pill.good{background:#143328;color:var(--os-good)}.os-pill.Idle,.os-pill.Queued,.os-pill.hold,.os-pill.med{background:#3a2a12;color:var(--os-warn)}.os-pill.Busy,.os-pill.Hold,.os-pill.blocked,.os-pill.high,.os-pill.risk{background:#3a1520;color:var(--os-bad)}.os-heat{display:inline-block;min-width:42px;text-align:center;padding:2px 6px;border-radius:4px;font-variant-numeric:tabular-nums}.os-tree{list-style:none;margin:0;padding:0}.os-tree ul{list-style:none;margin:6px 0 0;padding:0 0 0 16px;border-left:1px solid var(--os-line)}.os-tree>li{margin:0 0 8px}.os-gate{display:grid;grid-template-columns:auto 1fr auto auto;gap:10px;align-items:center;padding:8px 10px;background:var(--os-panel-2);border:1px solid var(--os-line);border-radius:6px}.os-gate code{color:var(--os-accent);font-size:.78rem}.os-gantt{display:grid;gap:6px}.os-gantt-row{display:grid;grid-template-columns:180px 1fr;gap:10px;align-items:center}.os-gantt-bar{height:18px;border-radius:4px;background:#1d4e63;position:relative}.os-bar{height:8px;background:var(--os-line);border-radius:99px;overflow:hidden}.os-bar>i{display:block;height:100%;background:var(--os-accent)}.os-actions{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.os-btn{appearance:none;border:1px solid var(--os-line);background:var(--os-panel-2);color:var(--os-text);padding:7px 12px;border-radius:6px;cursor:pointer;font:inherit}.os-btn.primary,.os-btn:hover{border-color:var(--os-accent)}.os-btn.primary{background:var(--os-accent);color:#061018;font-weight:700}.os-field{display:grid;gap:4px;font-size:.82rem;color:var(--os-muted)}.os-field input,.os-field select,.os-field textarea{font:inherit;color:var(--os-text);background:#0c1117;border:1px solid var(--os-line);border-radius:6px;padding:8px 10px}.os-palette{display:flex;flex-wrap:wrap;gap:6px}.os-chip{padding:6px 10px;border:1px dashed var(--os-line);border-radius:6px;cursor:grab;background:var(--os-panel-2);color:var(--os-text);font-size:.8rem}.os-canvas{min-height:120px;border:1px solid var(--os-line);border-radius:8px;padding:8px;display:grid;gap:6px}.os-canvas li{list-style:none;padding:8px;background:var(--os-panel-2);border-radius:6px;display:flex;justify-content:space-between;gap:8px}.os-login--scene{padding:32px 16px;align-content:center}.os-login-veil{position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,12,18,.82),rgba(8,12,18,.42) 55%,rgba(8,12,18,.28))}.os-login-panel{position:relative;z-index:2;width:min(400px,92vw);padding:28px 26px 22px;background:rgba(12,17,23,.88);border:1px solid rgba(255,255,255,.16);border-radius:12px;backdrop-filter:blur(12px)}.os-login-form{display:grid;gap:12px;margin-top:8px}.os-login-error{color:#ffb4b8;font-size:.85rem;margin:0}.os-login-back{margin:16px 0 0;font-size:.85rem}.os-login-stage{position:relative;z-index:2;width:min(1120px,94vw)}.os-login-head{margin-bottom:22px}.os-login-head h1{font-size:clamp(1.8rem,4vw,2.6rem)}.os-desk-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.os-desk-card{position:relative;min-height:280px;border-radius:12px;overflow:hidden;display:flex;align-items:flex-end;padding:16px;color:#fff;background:#111 50%/cover no-repeat;border:1px solid rgba(255,255,255,.16);text-decoration:none}.os-desk-card:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.05),rgba(0,0,0,.78))}.os-desk-card span{position:relative;z-index:1}.os-desk-card strong{display:block;font-size:1.05rem}.os-desk-card em{display:block;font-style:normal;color:rgba(255,255,255,.78);font-size:.82rem;margin-top:4px}.os-desk-card:hover{border-color:var(--os-accent);text-decoration:none}.os-pre{white-space:pre-wrap;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.82rem;color:#d5dde6;background:#0a0e13;padding:12px;border-radius:6px}.os-stub{max-width:36rem}@media (max-width:980px){.os-shell{grid-template-columns:1fr}.os-side{flex-direction:row;flex-wrap:wrap}.os-nav{display:flex;flex-wrap:wrap}.os-grid.kpi,.os-grid.three,.os-grid.two{grid-template-columns:1fr}.os-user{margin-top:0;border:0}.os-desk-grid{grid-template-columns:1fr 1fr}}@media (max-width:560px){.os-desk-grid{grid-template-columns:1fr}}.os-steps{list-style:none;margin:0;padding:0;display:grid;gap:18px}.os-steps li{display:grid;grid-template-columns:1fr 220px;gap:16px;align-items:start;padding-bottom:16px;border-bottom:1px solid var(--os-line)}.os-steps p{color:var(--os-muted);margin:6px 0 0}.os-shot{margin:0}.os-shot-win{background:#0a0e13;border:1px solid var(--os-line);border-radius:8px;padding:12px;min-height:88px;display:grid;gap:8px;color:#d5dde6;font-size:.78rem}.os-shot-win--row{grid-template-columns:1fr auto;align-items:center}.os-shot-win--card{position:relative}.os-shot-bar{background:#151b24;padding:6px 8px;border-radius:4px;color:var(--os-muted)}.os-shot-file{display:block}.os-shot-btn,.os-shot-file.is-on{color:var(--os-accent)}.os-shot-btn{display:inline-block;background:var(--os-panel-2);border:1px solid var(--os-accent);padding:6px 10px;border-radius:4px}.os-toggle{width:36px;height:20px;border-radius:99px;background:#2c3646;position:relative}.os-toggle.is-on{background:var(--os-accent)}.os-toggle:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff}.os-toggle.is-on:after{left:18px}.os-shot figcaption{color:var(--os-muted);font-size:.75rem;margin-top:6px}@media (max-width:720px){.os-steps li{grid-template-columns:1fr}}.os-same{max-width:46rem;margin:0 0 16px;padding:10px 12px;border:1px solid var(--os-line);border-left:3px solid var(--os-accent);background:#10161e;color:var(--os-muted)}.os-verify .os-checklist{margin:8px 0 12px;padding:0 0 0 1.1rem;color:var(--os-text,#eef3f8)}.os-verify .os-checklist li{margin:6px 0}.os-verify p{color:var(--os-muted)}.os-howto{list-style:none;margin:0 0 16px;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.os-howto li{background:var(--os-panel);border:1px solid var(--os-line);border-radius:8px;padding:10px 12px;color:var(--os-muted);font-size:.88rem}.os-howto strong{display:block;color:var(--os-accent);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;margin-bottom:4px}.os-builder-wrap{margin-top:4px}.os-builder-meta{display:grid;grid-template-columns:1.2fr 1fr 1.2fr;gap:12px;margin-bottom:12px}.os-builder-meta-wide{grid-column:1/-1}.os-builder{display:grid;grid-template-columns:220px minmax(0,1fr) 260px;gap:12px;align-items:start}.os-builder-inspect,.os-builder-palette{position:sticky;top:12px}.os-builder-note{color:var(--os-muted);font-size:.82rem;margin:0 0 10px}.os-palette-item{display:grid;gap:2px;width:100%;text-align:left;margin:0 0 6px;padding:8px 10px;border:1px dashed var(--os-line);border-radius:8px;background:var(--os-panel-2);color:var(--os-text);cursor:grab;font:inherit}.os-palette-item.is-overlay,.os-palette-item:hover{border-color:var(--os-accent)}.os-palette-item.is-dragging{opacity:.4}.os-palette-item strong{font-size:.88rem}.os-palette-item span{color:var(--os-muted);font-size:.75rem}.os-builder-main{display:grid;gap:12px}.os-builder-canvas{min-height:280px;border-style:dashed;background:#10161e}.os-builder-canvas.is-over{border-color:var(--os-accent);box-shadow:inset 0 0 0 1px rgba(61,224,255,.35)}.os-builder-empty{min-height:180px;display:grid;place-content:center;text-align:center;color:#fff;font-weight:650;gap:4px}.os-builder-empty span{color:var(--os-muted);font-weight:500;font-size:.85rem}.os-builder-item{display:grid;grid-template-columns:28px 1fr auto;gap:8px;align-items:center;padding:10px;margin:0 0 8px;background:var(--os-panel-2);border:1px solid var(--os-line);border-radius:8px;cursor:pointer}.os-builder-item.is-selected{border-color:var(--os-accent)}.os-builder-item.is-overlay{box-shadow:0 12px 30px rgba(0,0,0,.45);cursor:grabbing;width:min(420px,80vw)}.os-builder-item strong{display:block}.os-builder-item em{display:block;color:var(--os-muted);font-style:normal;font-size:.75rem}.os-handle{appearance:none;letter-spacing:-2px;font-size:14px;padding:4px 0}.os-handle:active{cursor:grabbing}.os-btn-quiet{padding:5px 8px;font-size:.75rem;color:var(--os-muted)}.os-inspect-form{display:grid;gap:10px}.os-check{display:flex;align-items:center;gap:8px;color:var(--os-text);font-size:.88rem}.os-preview-form{display:grid;gap:10px}.os-preview-table{display:grid;grid-auto-flow:column;gap:6px}.os-preview-table span{background:#0c1117;border:1px solid var(--os-line);border-radius:6px;padding:8px;color:var(--os-muted);font-size:.78rem}.os-builder-status{margin:10px 0 0;color:var(--os-muted);font-size:.8rem}.os-new-form{display:grid;gap:10px;max-width:420px}@media (max-width:1100px){.os-builder{grid-template-columns:1fr}.os-builder-inspect,.os-builder-palette{position:static}.os-builder-meta,.os-howto{grid-template-columns:1fr}}.os-login{min-height:100dvh;display:grid;place-items:center;background-color:#0c1117;background-image:none;color:var(--os-text);font-family:var(--os-font);position:relative;overflow:hidden}.os-login-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;pointer-events:none;z-index:0}.os-login-tools{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:baseline;margin:12px 0 0;font-size:.92rem}.os-login-note{color:var(--os-muted);font-size:.82rem;margin:0}.os-login-panel--wide{width:min(560px,94vw)}.os-desk-grid--register{grid-template-columns:repeat(5,1fr);margin:12px 0 16px}.os-desk-card--mini{min-height:92px;cursor:default}.os-desk-card.is-locked{filter:grayscale(.75);opacity:.62;pointer-events:none}@media (max-width:720px){.os-desk-grid--register{grid-template-columns:repeat(2,1fr)}}.os-builder-item.is-on{border-color:var(--os-accent)}.os-builder-main.is-over{outline:1px dashed var(--os-accent)}.os-handle{border:0;background:transparent;color:var(--os-muted);cursor:grab;padding:0 6px}