:root { color-scheme: dark; --navy:#061b31; --blue:#0e4268; --ink:#f3efe8; --muted:#9fb1c1; --line:rgba(255,255,255,.16); --gold:#b99b67; }
* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; font: 15px/1.5 Arial,sans-serif; color: var(--ink); background: radial-gradient(circle at 75% 8%,#124f77 0,transparent 36%),var(--navy); }
button,input,select { font: inherit; }
button { cursor: pointer; }
.auth-shell { min-height: 100vh; display: grid; place-items: center; padding: 28px; }
.auth-card { width: min(440px,100%); padding: clamp(28px,6vw,54px); border: 1px solid var(--line); background: rgba(4,19,35,.9); box-shadow: 0 24px 80px rgba(0,0,0,.34); }
.auth-brand { display: flex; gap: 14px; align-items: center; color: inherit; text-decoration: none; }
.auth-brand b { display:grid; place-items:center; width:48px; height:48px; color:var(--navy); background:var(--ink); font-size:22px; }
.auth-brand span { font-weight:700; letter-spacing:.09em; }
.auth-brand small { display:block; color:var(--muted); font-size:10px; }
.auth-card h1 { margin: 56px 0 8px; font-size: clamp(38px,8vw,60px); line-height:.95; letter-spacing:-.04em; }
.auth-card > p { color: var(--muted); }
.auth-form { display:grid; gap:18px; margin-top:34px; }
.auth-form label { display:grid; gap:7px; color:var(--muted); font-size:12px; letter-spacing:.08em; text-transform:uppercase; }
.auth-form input { width:100%; padding:13px 0; color:var(--ink); border:0; border-bottom:1px solid var(--line); outline:0; background:transparent; }
.auth-form input:focus { border-color:var(--gold); }
.auth-form button,.admin-button { padding:13px 18px; color:var(--navy); border:0; background:var(--ink); font-weight:700; }
.auth-form button:disabled { opacity:.6; cursor:wait; }
.auth-field { display:grid; gap:7px; }
.password-field { position:relative; }
.password-field input { padding-right:48px; }
.auth-form .password-toggle { position:absolute; right:0; top:50%; transform:translateY(-50%); display:grid; place-items:center; width:44px; height:44px; padding:10px; color:var(--muted); background:transparent; }
.auth-form .password-toggle[hidden] { display:none; }
.password-toggle:hover { color:var(--ink); }
.password-toggle:focus-visible { outline:2px solid var(--gold); outline-offset:2px; }
.password-toggle svg { width:22px; height:22px; }
.password-toggle .eye-hide,.password-toggle[aria-pressed="true"] .eye-show { display:none; }
.password-toggle[aria-pressed="true"] .eye-hide { display:block; }
.auth-feedback { min-height:24px; color:#f0b6ad; }
.admin-page { min-height:100vh; }
.admin-topbar { position:sticky; top:0; z-index:10; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:16px 28px; border-bottom:1px solid var(--line); background:rgba(6,27,49,.96); }
.admin-topbar nav { display:flex; gap:10px; align-items:center; }
.admin-topbar a,.admin-topbar button { padding:9px 12px; color:var(--ink); border:1px solid var(--line); background:transparent; text-decoration:none; }
.admin-main { width:min(1280px,calc(100% - 40px)); margin:0 auto; padding:56px 0 90px; }
.admin-intro { display:flex; justify-content:space-between; gap:28px; align-items:end; margin-bottom:38px; }
.admin-intro h1 { margin:0; font-size:clamp(46px,7vw,88px); line-height:.9; letter-spacing:-.05em; }
.admin-intro p { max-width:550px; color:var(--muted); }
.admin-grid { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(320px,.75fr); gap:24px; }
.admin-panel { padding:24px; border:1px solid var(--line); background:rgba(4,19,35,.7); }
.admin-panel h2 { margin:0 0 6px; font-size:26px; }
.admin-panel > p { color:var(--muted); }
.admin-table-wrap { overflow:auto; margin-top:24px; }
.admin-table { width:100%; min-width:860px; border-collapse:collapse; }
.admin-table th,.admin-table td { padding:14px 10px; border-top:1px solid var(--line); text-align:left; vertical-align:top; }
.admin-table th { color:var(--muted); font-size:10px; letter-spacing:.1em; text-transform:uppercase; }
.admin-table select,.admin-table input,.admin-form input,.admin-form select { width:100%; padding:9px; color:var(--ink); border:1px solid var(--line); background:var(--navy); }
.admin-actions { display:flex; flex-wrap:wrap; gap:7px; }
.admin-actions button { padding:7px 9px; color:var(--ink); border:1px solid var(--line); background:transparent; }
.admin-actions button.danger { color:#f0b6ad; }
.admin-form { display:grid; gap:14px; margin-top:20px; }
.admin-form label { display:grid; gap:6px; color:var(--muted); font-size:12px; }
.publish-review { margin-top:18px; padding:16px; border:1px solid var(--line); }
.publish-review pre { max-height:280px; overflow:auto; white-space:pre-wrap; word-break:break-word; color:#c5d2dc; font-size:11px; }
.review-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; margin:18px 0; background:var(--line); }
.review-summary > div { display:grid; gap:4px; padding:14px; background:var(--navy); }
.review-summary span,.review-inputs h4 { color:var(--muted); font-size:10px; letter-spacing:.1em; }
.review-summary strong { font-size:18px; }
.review-summary small { color:var(--muted); }
.review-inputs { margin:18px 0; }
.review-inputs > div { display:flex; justify-content:space-between; gap:18px; padding:9px 0; border-top:1px solid var(--line); }
.admin-status { min-height:24px; color:var(--muted); }
@media (max-width:900px) { .admin-grid { grid-template-columns:1fr; } .admin-intro { display:block; } .review-summary { grid-template-columns:1fr; } }
