:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#e9eef5;background:#0c1119;--muted:#9aa9b9;--line:#263242;--card:#141d29;--panel:#101823;--accent:#69e9bd;--blue:#9dbdff;--danger:#ffb2b1}
*{box-sizing:border-box}[hidden]{display:none!important}
body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.48;cursor:not-allowed}button,input,select,textarea{border:1px solid var(--line);border-radius:8px}button{padding:.65rem .9rem;background:#1c2a39;color:#edf4ff;white-space:nowrap;font-weight:600}button:hover:not(:disabled){border-color:#647d92}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.primary{background:var(--accent);color:#071b16;border-color:var(--accent)}.ghost{background:transparent}.danger{color:var(--danger)}
input,select,textarea{background:#0d1520;color:#edf4ff;padding:.65rem .75rem;min-width:0;width:100%}input::placeholder{color:#8192a6}label{display:grid;gap:.42rem;font-size:.82rem;color:#c0ccd9;font-weight:550}code,pre,textarea{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
h1,h2,p{margin:0}h1{font-size:clamp(1.9rem,4vw,2.8rem);letter-spacing:-.045em;line-height:1.1}h2{font-size:1.06rem;letter-spacing:-.02em}.eyebrow,.nav-caption,.metric span{font-size:.68rem;font-weight:800;letter-spacing:.15em;color:var(--accent)}.eyebrow{margin-bottom:.65rem}
.brand{display:flex;align-items:center;gap:.65rem;font-size:1.05rem;font-weight:760;letter-spacing:-.025em}.brand small{display:block;color:var(--muted);font-size:.57rem;letter-spacing:.16em;margin-top:.2rem}.mark{display:grid;place-items:center;width:2.4rem;height:2.4rem;border-radius:.7rem;background:#153b35;border:1px solid #267162;color:var(--accent);font-size:1.3rem}
.gate{min-height:100dvh;display:grid;place-items:center;padding:1rem;background:radial-gradient(ellipse at 52% 20%,#172e37 0%,#0c1119 62%)}.login-card{background:var(--panel);border:1px solid var(--line);padding:clamp(1.5rem,5vw,2.4rem);width:min(100%,430px);border-radius:17px;box-shadow:0 18px 60px #0006}.login-card .brand{margin-bottom:2rem}.login-card h1{font-size:2rem}.login-card p:not(.eyebrow){color:var(--muted);line-height:1.55;margin:.65rem 0 1.3rem}.login-card input{margin:.45rem 0 .8rem}.login-card button{display:flex;justify-content:space-between;width:100%}.login-foot{display:flex;align-items:center;gap:.5rem;margin-top:1.6rem;color:var(--muted)}#login-status:not(:empty){color:var(--danger);margin-top:.6rem;font-size:.85rem}
.shell{display:grid;grid-template-columns:225px minmax(0,1fr);min-height:100dvh}.sidebar{background:#101823;border-right:1px solid var(--line);padding:1.5rem 1rem;display:flex;flex-direction:column;gap:1.1rem;position:sticky;top:0;height:100dvh}.sidebar .brand,.nav-caption{margin-left:.55rem}.nav-caption{margin-top:1rem;color:var(--muted)}nav{display:grid;gap:.3rem}nav button{text-align:left;display:flex;gap:.7rem;align-items:center;background:none;border-color:transparent;color:var(--muted)}nav span{display:inline-block;min-width:1.15rem;color:var(--blue);font-family:monospace}nav button[aria-current=page]{background:#19312e;border-color:#2b5148;color:var(--accent)}.side-foot{margin-top:auto;display:grid;gap:.8rem}.side-foot div{display:flex;align-items:center;gap:.55rem;color:var(--muted);font-size:.77rem}.side-foot i,.login-foot i{width:.45rem;height:.45rem;background:var(--accent);border-radius:50%;display:inline-block}
.main{width:min(100%,1220px);padding:2.2rem clamp(1rem,4vw,3.5rem);margin:0 auto}.top{display:flex;justify-content:space-between;align-items:end;gap:1rem;padding-bottom:1.3rem;border-bottom:1px solid var(--line)}.project-picker{min-width:10rem}.intro{color:var(--muted);margin:1rem 0 1.2rem;line-height:1.5}.notice{padding:.7rem .85rem;border:1px solid #2b5148;border-radius:8px;background:#122f29;color:var(--accent);margin:.85rem 0}.notice.error{border-color:#693941;color:var(--danger);background:#331f29}
.metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem}.card{border:1px solid var(--line);border-radius:12px;background:var(--card);margin-bottom:1rem;overflow:hidden}.metric{padding:1rem 1.15rem}.metric strong{display:block;font-size:2rem;margin:.25rem 0}.metric small,.card-head p{color:var(--muted)}.card-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:1rem 1.1rem;border-bottom:1px solid var(--line)}.card-head p{margin-top:.3rem;font-size:.83rem;overflow-wrap:anywhere}.rows{display:grid}.row{padding:.7rem 1.1rem;display:flex;align-items:center;justify-content:space-between;gap:.7rem;border-bottom:1px solid var(--line);min-width:0}.row>div:first-child{min-width:0}.row-title{font-weight:650;overflow-wrap:anywhere}.row small{display:block;color:var(--muted);margin-top:.2rem}.empty{padding:1rem 1.1rem;color:var(--muted)}.badge{display:inline-block;padding:.3rem .55rem;font-size:.68rem;border-radius:6px;background:#233145;color:#bbccdf;white-space:nowrap}.badge.live{background:#143c34;color:var(--accent)}.form-row,.actions,.buttons{display:flex;gap:.55rem;align-items:end;flex-wrap:wrap}.form-row,.actions{padding:.85rem 1.1rem}.form-row+.form-row{padding-top:0}.form-row label{flex:1 1 8rem}.form-row label:has(input[type=file]){flex-basis:12rem}.console{background:#0a1017;color:#b4e4d6;padding:.85rem 1rem;margin:.85rem 1.1rem;border:1px solid var(--line);border-radius:8px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.4;max-height:24rem;font-size:.84rem}.console.terminal{min-height:14rem}.editor textarea{width:calc(100% - 2.2rem);margin:1rem 1.1rem 0;resize:vertical;display:block}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
@media(max-width:720px){.shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;padding:.8rem;gap:.55rem;border-right:0;border-bottom:1px solid var(--line)}.sidebar .brand{margin-left:0}.nav-caption,.side-foot div{display:none}.sidebar nav{display:flex;overflow-x:auto}.sidebar nav button{padding:.5rem .55rem;font-size:.84rem;gap:.3rem}.side-foot{position:absolute;right:.8rem;top:.85rem}.main{padding-top:1.25rem}.card-head,.row{padding-left:.8rem;padding-right:.8rem}.top{align-items:center}.project-picker{min-width:0;max-width:48%}.form-row button{flex-grow:1}}
