/* Shared look for login, registration and admin pages (same tokens as the catalog). */
:root{
  --bg:#F3F5F3; --surface:#FFFFFF; --sunk:#E9EDEA; --ink:#14211F; --muted:#5A6966; --line:#D5DDD9;
  --accent:#0E4A44; --accent-ink:#FFFFFF; --accent-soft:#DCEBE7; --signal:#A3141B; --signal-soft:#F7E1E1;
  --ok:#1F6E3A; --ok-soft:#DDEFE2; --warn:#8A5A00; --warn-soft:#F6EBD3;
  --f-body:"Golos Text","Segoe UI",Roboto,Arial,sans-serif; --f-mono:"IBM Plex Mono",ui-monospace,Consolas,monospace;
  color-scheme:light;
}
@media (prefers-color-scheme: dark){:root{
  --bg:#0E1514; --surface:#152120; --sunk:#1B2927; --ink:#E3EBE8; --muted:#93A5A0; --line:#2A3A37;
  --accent:#5FB3A6; --accent-ink:#0B1413; --accent-soft:#1E3633; --signal:#E2626A; --signal-soft:#3A1E21;
  --ok:#6CC28A; --ok-soft:#1C3324; --warn:#E3B45C; --warn-soft:#3A2F17; color-scheme:dark }}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:14.5px/1.45 var(--f-body)}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
a{color:var(--accent)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
h1,h2,h3{margin:0;text-wrap:balance}
.muted{color:var(--muted)} .small{font-size:12.5px}
.num{font-family:var(--f-mono);font-variant-numeric:tabular-nums}
.btn{border:1px solid var(--line);background:var(--surface);border-radius:6px;padding:7px 12px;font-weight:500;display:inline-flex;gap:6px;align-items:center;white-space:nowrap;text-decoration:none;color:var(--ink)}
.btn:hover{border-color:var(--muted)}
.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.btn.danger{color:var(--signal);border-color:var(--signal)}
.btn.ghost{border-color:transparent;background:none}
.btn:disabled{opacity:.5;cursor:default}
.btn.sm{padding:4px 9px;font-size:13px}
.field{display:flex;flex-direction:column;gap:4px;min-width:0}
.field label{font-size:12px;color:var(--muted)}
.inp{border:1px solid var(--line);background:var(--surface);border-radius:6px;padding:8px 10px;width:100%;min-width:0}
.inp:focus{border-color:var(--accent);outline:none}
@media (max-width:640px){.inp{font-size:16px}}

/* auth pages */
.auth{min-height:100vh;display:grid;place-items:center;padding:24px 16px}
.card{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:26px 24px;display:grid;gap:14px}
.brand{display:flex;flex-direction:column;line-height:1.1;margin-bottom:4px}
.brand b{font-weight:700;letter-spacing:.06em;font-size:16px}
.brand span{font-size:12px;color:var(--muted)}
.msg{border-radius:6px;padding:10px 12px;font-size:13.5px}
.msg.err{background:var(--signal-soft)}
.msg.ok{background:var(--ok-soft)}
.msg[hidden]{display:none}

/* admin */
.top{position:sticky;top:0;z-index:5;background:var(--surface);border-bottom:1px solid var(--line)}
.wrap{max-width:1180px;margin:0 auto;padding-inline:16px}
.top .wrap{display:flex;align-items:center;gap:18px;padding-block:10px;flex-wrap:wrap}
.tabs{display:flex;gap:4px;flex-wrap:wrap}
.tab{border:0;background:none;padding:8px 12px;border-radius:6px;color:var(--muted);font-weight:500;display:flex;gap:6px;align-items:center}
.tab:hover{background:var(--sunk);color:var(--ink)}
.tab[aria-selected="true"]{background:var(--accent-soft);color:var(--ink)}
.pill{font-family:var(--f-mono);font-size:11.5px;background:var(--signal);color:#fff;border-radius:10px;padding:0 6px;min-width:18px;text-align:center}
.pill[hidden]{display:none}
.spacer{flex:1}
main{padding-block:20px 60px}
section[hidden]{display:none}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:16px;display:grid;gap:12px;margin-bottom:16px;min-width:0}
.panel h2{font-size:16px;font-weight:600}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:end}
.list{display:grid}
.li{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}
.li:first-child{border-top:0}
.li .acts{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.badge{display:inline-block;font-size:11.5px;font-weight:600;border-radius:4px;padding:1px 6px}
.badge.pending{color:var(--warn);background:var(--warn-soft)}
.badge.active{color:var(--ok);background:var(--ok-soft)}
.badge.blocked,.badge.rejected{color:var(--signal);background:var(--signal-soft)}
.badge.used{color:var(--muted);background:var(--sunk)}
.link{font-family:var(--f-mono);font-size:12px;background:var(--sunk);border-radius:6px;padding:8px 10px;overflow-wrap:anywhere;user-select:all}
.empty{padding:20px;text-align:center;color:var(--muted)}
table.diff{width:100%;border-collapse:collapse;font-size:13px}
table.diff td,table.diff th{border-bottom:1px solid var(--line);padding:5px 6px;text-align:left;vertical-align:top}
table.diff td.r,table.diff th.r{text-align:right}
details summary{cursor:pointer;font-weight:500}
.stats{display:flex;gap:18px;flex-wrap:wrap}
.stats div{display:flex;flex-direction:column}
.stats b{font-family:var(--f-mono);font-size:18px}
.toast{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:9px 16px;border-radius:6px;font-size:13.5px;z-index:20;max-width:calc(100% - 32px)}
.toast[hidden]{display:none}
@media (max-width:700px){.li{grid-template-columns:1fr}.li .acts{justify-content:flex-start}}
