:root{--ink: #0b0f14;--ink-2: #0e1319;--ink-3: #131921;--ink-4: #1a2230;--cream: #f4eee2;--cream-2: #e8e0cf;--gold: #c8a971;--gold-2: #d9bc84;--live: #7fb38a;--warn: #d9a25a;--danger: #c97a6d;--border-faint: rgba(244, 238, 226, .06);--border-soft: rgba(244, 238, 226, .12);--border-strong: rgba(244, 238, 226, .22);--font-display: "Instrument Serif", Georgia, "Times New Roman", serif;--font-ui: "Geist", "Segoe UI", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", "Cascadia Mono", "Consolas", monospace;--radius: 6px;--pad-page: clamp(20px, 3vw, 48px)}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100vh}body{background:var(--ink);color:var(--cream);font-family:var(--font-ui);font-size:15px;line-height:1.5}h1,h2{font-family:var(--font-display);font-weight:400;letter-spacing:.01em;margin:0 0 .5rem}h1{font-size:clamp(1.6rem,3vw,2.2rem)}.mono,.status-pill,.eyebrow{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em}.eyebrow{color:var(--gold);text-transform:uppercase;display:inline-flex;align-items:center;gap:.5em}.eyebrow:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--live)}.portal-shell{min-height:100vh;display:flex;flex-direction:column}.portal-nav{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem var(--pad-page);border-bottom:1px solid var(--border-soft);background:var(--ink-2);position:sticky;top:0;z-index:10}.portal-nav .brand{font-family:var(--font-display);font-size:1.15rem;color:var(--cream);text-decoration:none}.portal-nav .who{font-family:var(--font-mono);font-size:.7rem;color:var(--cream-2);opacity:.8}.portal-main{flex:1;width:100%;max-width:1280px;margin:0 auto;padding:1.6rem var(--pad-page) 3rem}.op-card{background:var(--ink-3);border:1px solid var(--border-soft);border-radius:var(--radius);overflow:hidden}.op-card+.op-card{margin-top:1rem}.op-card-chrome{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.6rem 1rem;border-bottom:1px solid var(--border-faint);background:var(--ink-4)}.op-card-body{padding:1rem}.status-pill{display:inline-block;padding:.15rem .55rem;border-radius:3px;border:1px solid var(--border-strong);text-transform:uppercase}.status-pill.live{color:var(--live);border-color:#7fb38a73}.status-pill.pending{color:var(--warn);border-color:#d9a25a73}.status-pill.approved{color:var(--gold-2);border-color:#d9bc8473}label{display:block;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--cream-2);margin-bottom:.35rem}input,select,textarea{width:100%;background:var(--ink-2);color:var(--cream);border:1px solid var(--border-strong);border-radius:var(--radius);padding:.6rem .75rem;font:inherit;margin-bottom:1rem}input:focus,select:focus,textarea:focus{outline:1px solid var(--gold);outline-offset:1px}button{font:inherit;cursor:pointer;border-radius:var(--radius);padding:.6rem 1.2rem;border:1px solid var(--gold);background:transparent;color:var(--gold-2);transition:background .12s ease}button:hover{background:#c8a9711f}button.primary{background:var(--gold);color:var(--ink);font-weight:600}button.primary:hover{background:var(--gold-2)}button:disabled{opacity:.5;cursor:not-allowed}.error-text{color:var(--danger);font-size:.9rem;margin:.25rem 0 1rem}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:var(--pad-page)}.login-card{width:min(380px,100%);background:var(--ink-3);border:1px solid var(--border-soft);border-radius:var(--radius);padding:2rem}.login-card h1{margin-bottom:.25rem}.login-card .tagline{color:var(--cream-2);opacity:.75;font-size:.85rem;margin-bottom:1.5rem}table.op-table{width:100%;border-collapse:collapse;font-size:.9rem}table.op-table th{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;text-align:left;color:var(--cream-2);opacity:.8;padding:.5rem .75rem;border-bottom:1px solid var(--border-strong)}table.op-table td{padding:.55rem .75rem;border-bottom:1px solid var(--border-faint)}@media (max-width: 640px){.portal-main{padding:1rem 16px 2rem}table.op-table{font-size:.8rem}}
