:root{--bg:#0c1118;--bg-elev:#141c27;--bg-soft:#1b2635;--line:#2a384c;--text:#e8eef7;--muted:#93a4b8;--accent:#2fbfa5;--accent-2:#f0b429;--danger:#e35d6a;--ok:#5dca8a;--radius:12px;--shadow:0 12px 40px #00000059;color:var(--text);background:var(--bg);font-family:IBM Plex Sans,Segoe UI,sans-serif}*{box-sizing:border-box}html,body{background:radial-gradient(900px 480px at 0% -10%, #2fbfa529, transparent 60%), radial-gradient(700px 420px at 100% 0%, #f0b4291a, transparent 55%), var(--bg);min-height:100%;margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.app-shell{max-width:1180px;margin:0 auto;padding:1.25rem 1.25rem 3rem}.topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.75rem;padding-bottom:1rem;display:flex}.brand{flex-direction:column;gap:.15rem;display:flex}.brand strong{letter-spacing:-.03em;font-size:1.35rem}.brand span{color:var(--muted);font-size:.85rem}.nav{flex-wrap:wrap;gap:.5rem;display:flex}.nav a{color:var(--muted);border:1px solid #0000;border-radius:999px;padding:.45rem .8rem}.nav a:hover,.nav a.active{color:var(--text);border-color:var(--line);background:var(--bg-elev)}.hero-title{letter-spacing:-.03em;margin:0 0 .4rem;font-size:clamp(1.6rem,3vw,2.1rem)}.muted{color:var(--muted)}.grid{gap:1rem;display:grid}.grid.stats{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));margin:1.25rem 0 1.5rem}.card{background:linear-gradient(180deg, #ffffff05, transparent), var(--bg-elev);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem 1.1rem}.card h3{color:var(--muted);margin:0 0 .35rem;font-size:.9rem;font-weight:500}.card .value{letter-spacing:-.03em;font-size:1.6rem;font-weight:650}.table{border-collapse:collapse;width:100%}.table th,.table td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:.7rem .45rem}.table th{color:var(--muted);font-size:.82rem;font-weight:500}.badge{border:1px solid var(--line);background:var(--bg-soft);white-space:nowrap;border-radius:999px;align-items:center;padding:.15rem .55rem;font-size:.75rem;display:inline-flex}.badge.live,.badge.approved,.badge.demo_ready,.badge.release_ready{color:var(--ok);border-color:#5dca8a73}.badge.blocked,.badge.rejected{color:var(--danger);border-color:#e35d6a73}.badge.developing,.badge.verifying{color:var(--accent-2);border-color:#f0b42973}.row-actions{flex-wrap:wrap;gap:.45rem;display:flex}.btn{appearance:none;border:1px solid var(--line);background:var(--bg-soft);color:var(--text);cursor:pointer;border-radius:9px;padding:.5rem .8rem}.btn:hover{border-color:var(--accent)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#062a27;font-weight:650}.btn.ghost{background:0 0}.form{gap:.85rem;display:grid}.form label{color:var(--muted);gap:.35rem;font-size:.88rem;display:grid}.form input,.form select,.form textarea{border:1px solid var(--line);width:100%;color:var(--text);background:#0f1621;border-radius:9px;padding:.65rem .75rem}.form textarea{resize:vertical;min-height:110px}.stack{gap:1rem;display:grid}.split{grid-template-columns:1.2fr .8fr;gap:1rem;display:grid}@media (width<=900px){.split{grid-template-columns:1fr}}.list-plain{margin:0;padding:0;list-style:none}.list-plain li{border-bottom:1px solid var(--line);padding:.65rem 0}.list-plain li:last-child{border-bottom:0}.notice{border:1px dashed var(--line);border-radius:var(--radius);color:var(--muted);background:#f0b4290d;padding:.8rem 1rem;font-size:.92rem}.error{color:var(--danger);font-size:.9rem}.mono{font-family:IBM Plex Mono,Consolas,monospace;font-size:.85rem}
