.shell{max-width:960px;margin:0 auto;padding:2rem 1.25rem 3rem}.shell.unlock{place-items:center;min-height:100vh;display:grid}.unlock-panel{width:min(420px,100%)}.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--accent);margin:0 0 .35rem;font-size:.75rem;font-weight:600}h1{letter-spacing:-.02em;margin:0 0 .5rem;font-size:clamp(1.75rem,4vw,2.25rem);font-weight:700}h2{margin:0 0 .5rem;font-size:1.25rem}.lede{color:var(--muted);margin:0 0 1.5rem}.lede.small{margin-bottom:1.25rem;font-size:.95rem}.panel{background:var(--bg-panel);border:1px solid var(--line);border-radius:var(--radius);padding:1.25rem 1.35rem}.stack{flex-direction:column;gap:.85rem;display:flex}label{color:var(--muted);flex-direction:column;gap:.35rem;font-size:.9rem;font-weight:500;display:flex}input{background:var(--bg-elev);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:.65rem .75rem}input:focus{outline:2px solid color-mix(in srgb, var(--accent) 55%, transparent);border-color:var(--accent)}button{background:var(--accent);color:var(--accent-text);cursor:pointer;border:none;border-radius:8px;padding:.7rem 1rem;font-weight:600}button:disabled{opacity:.55;cursor:not-allowed}button.ghost{color:var(--text);border:1px solid var(--line);background:0 0}button.ghost:hover{border-color:var(--muted)}.top{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1.25rem;display:flex}.top-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.pill{border:1px solid var(--line);border-radius:999px;padding:.35rem .65rem;font-size:.8rem;font-weight:600}.pill.ok{color:var(--ok);border-color:color-mix(in srgb, var(--ok) 45%, var(--line))}.pill.bad{color:var(--bad)}.tabs{gap:.35rem;margin-bottom:1rem;display:flex}.tabs button{color:var(--muted);background:0 0;border:1px solid #0000;padding:.5rem .85rem}.tabs button.active{color:var(--text);border-color:var(--line);background:var(--bg-elev)}.error{color:var(--danger);margin:0}.banner{border-radius:var(--radius);border:1px solid var(--line);background:var(--bg-elev);margin-bottom:1rem;padding:.85rem 1rem}.banner.success{border-color:color-mix(in srgb, var(--ok) 40%, var(--line))}.banner.success p{color:var(--muted);margin:.4rem 0 .75rem}table{border-collapse:collapse;width:100%;font-size:.95rem}th,td{text-align:left;border-bottom:1px solid var(--line);padding:.65rem .4rem}th{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:.8rem;font-weight:500}.empty{color:var(--muted);margin:0}.grid-form{grid-template-columns:1fr 1fr;gap:.9rem 1rem;display:grid}.span-2{grid-column:1/-1}.actions{justify-content:flex-end;display:flex}.meta{color:var(--muted);font-size:.8rem;font-family:var(--mono);margin-top:1rem}.footer{margin-top:2rem}.row-actions{text-align:right;white-space:nowrap}.row-actions .compact{margin-left:.35rem;padding:.35rem .6rem;font-size:.85rem}.stack-lg{flex-direction:column;gap:1.5rem;display:flex}.edit-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}h3{margin:0 0 .75rem;font-size:1.05rem}@media (width<=640px){.grid-form{grid-template-columns:1fr}.span-2{grid-column:auto}}:root{--bg:#12151a;--bg-elev:#1a1f27;--bg-panel:#222933;--line:#343c48;--text:#e8ecef;--muted:#9aa3ad;--accent:#d4a017;--accent-text:#1a1404;--ok:#3d9a6a;--bad:#c45c5c;--danger:#e07070;--radius:10px;--font:"IBM Plex Sans", system-ui, sans-serif;--mono:"IBM Plex Mono", ui-monospace, monospace}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%}body{font-family:var(--font);color:var(--text);background:radial-gradient(ellipse 80% 50% at 10% -10%, #2a3340 0%, transparent 55%), radial-gradient(ellipse 60% 40% at 100% 0%, #1e2a22 0%, transparent 45%), var(--bg);margin:0;line-height:1.45}button,input,select{font:inherit}code{font-family:var(--mono);font-size:.92em}
