:root{--bg:#0b1220;--bg-elev:#121a2b;--bg-soft:#182235;--line:#2a364d;--text:#f3f1ea;--muted:#9aa3b5;--gold:#c9a227;--gold-dim:#a6861f;--danger:#e35d6a;--ok:#3dba8a;--warn:#e0a45c;color:var(--text);background:var(--bg);font-family:Manrope,system-ui,sans-serif;line-height:1.45}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:radial-gradient(900px 480px at 10% -10%, #c9a2271f, transparent 55%), radial-gradient(700px 420px at 100% 0%, #3d64ba1a, transparent 50%), var(--bg)}button,input,textarea{font:inherit}button{cursor:pointer}a{color:var(--gold)}.login-shell{place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{border:1px solid var(--line);background:linear-gradient(#182235f2,#121a2bfa);border-radius:16px;gap:12px;width:min(420px,100%);padding:28px 24px 22px;display:grid;box-shadow:0 24px 60px #00000059}.login-card h1,.brand-title{letter-spacing:.02em;margin:0;font-family:Fraunces,Georgia,serif}.login-card h1{font-size:1.8rem}.logo{object-fit:contain;justify-self:center;width:72px;height:72px}.logo-sm{object-fit:contain;width:40px;height:40px}label{color:var(--muted);gap:6px;font-size:.9rem;display:grid}input,textarea{border:1px solid var(--line);background:var(--bg);width:100%;color:var(--text);border-radius:10px;padding:10px 12px}button{background:var(--gold);color:#14110a;border:none;border-radius:10px;padding:10px 14px;font-weight:700}button:disabled{opacity:.55;cursor:not-allowed}button.ghost{color:var(--gold);border:1px solid var(--line);background:0 0}button.danger{background:var(--danger);color:#fff}.muted{color:var(--muted)}.small{font-size:.82rem}.hint{color:var(--muted);margin:4px 0 0;font-size:.8rem}.error,.error-banner{color:var(--danger)}.app-shell{max-width:1200px;margin:0 auto;padding:20px 20px 48px}.topbar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.brand-row{align-items:center;gap:12px;display:flex}.top-actions{gap:8px;display:flex}.tabs{gap:8px;margin-bottom:16px;display:flex}.tabs button{background:var(--bg-soft);color:var(--text);border:1px solid var(--line);font-weight:600}.tabs button.active{background:var(--gold);color:#14110a;border-color:var(--gold)}.panel{border:1px solid var(--line);background:#121a2be6;border-radius:14px;padding:18px}.panel h2{margin:0 0 8px;font-family:Fraunces,Georgia,serif;font-size:1.35rem}.banner{background:#e35d6a1f;border:1px solid #e35d6a59;border-radius:10px;margin-bottom:12px;padding:10px 12px}.table-wrap{margin-top:12px;overflow:auto}table{border-collapse:collapse;width:100%;min-width:760px}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:10px 8px}th{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:.8rem;font-weight:600}.mono{word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.row-actions{grid-template-columns:1fr auto;gap:8px;min-width:260px;display:grid}.ops{white-space:nowrap}.status{text-transform:uppercase;border-radius:999px;padding:2px 8px;font-size:.78rem;font-weight:700;display:inline-block}.status.pending{color:var(--warn);background:#e0a45c2e}.status.approved{color:var(--ok);background:#3dba8a29}.status.executed{color:var(--muted);background:#9aa3b529}.status.confirmed{color:var(--ok);background:#3dba8a29}.status.failed{color:var(--danger);background:#e35d6a29}.modal-backdrop{z-index:50;background:#05080eb8;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:var(--bg-elev);border:1px solid var(--line);border-radius:14px;width:min(560px,100%);padding:20px}.modal h3{margin:0 0 8px;font-family:Fraunces,Georgia,serif}.mnemonic{border:1px solid var(--line);white-space:pre-wrap;word-break:break-word;color:var(--gold);background:#0a0f18;border-radius:10px;margin:12px 0;padding:14px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.modal-actions{justify-content:flex-end;gap:8px;display:flex}.settings-head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.settings-head-actions{flex-shrink:0;align-items:center;gap:10px;display:flex}.notice-banner{color:var(--ok);background:#3dba8a1f;border:1px solid #3dba8a59}.tabs.subtabs{flex-wrap:wrap;margin:14px 0 16px}.tabs.subtabs button{padding:7px 12px;font-size:.85rem}.settings-grid{gap:14px;display:grid}.setting-row{border:1px solid var(--line);background:var(--bg-soft);border-radius:12px;grid-template-columns:minmax(240px,2fr) 3fr;gap:16px;padding:12px;display:grid}.setting-label{align-items:center;gap:8px;font-weight:600;display:flex}.pill{border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:2px 8px;font-size:.7rem;font-weight:600}.pill.secret{color:var(--gold);border-color:var(--gold-dim)}.setting-input select{border:1px solid var(--line);background:var(--bg);width:100%;color:var(--text);border-radius:10px;padding:10px 12px}.setting-input textarea{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem}.draft-box,.change-box{border:1px solid var(--gold-dim);background:#c9a2270f;border-radius:12px;margin-top:18px;padding:14px}.draft-box h3,.change-box h3{align-items:center;gap:10px;margin:0 0 8px;display:flex}.draft-list{color:var(--muted);margin:0 0 10px;padding-left:18px}.provider-editor select{width:100%;margin-bottom:8px}.provider-preview{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.provider-preview button{padding:2px 8px;font-size:12px}.provider-preview button.active{border-color:var(--accent);color:var(--accent)}.draft-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;display:flex}.draft-actions input{flex:220px;width:auto;min-width:220px}.preflight{border:1px solid var(--line);background:var(--bg);border-radius:10px;margin-top:12px;padding:10px 12px}.preflight-head{align-items:center;gap:10px;margin-bottom:8px;display:flex}.check-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.check{align-items:flex-start;gap:8px;display:flex}.check-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:7px}.check-pass .check-dot{background:var(--ok)}.check-warn .check-dot{background:var(--warn)}.check-fail .check-dot{background:var(--danger)}.check-fail>div>div:first-child{color:var(--danger)}.advisory{margin-top:10px}.diff-before{color:var(--muted);overflow-wrap:anywhere;max-width:320px;text-decoration:line-through}.diff-after{color:var(--ok);overflow-wrap:anywhere;max-width:320px}.history-title{margin:22px 0 10px}.status.applied{color:var(--ok)}.status.rejected{color:var(--muted)}
