@font-face{font-family:Manrope;src:url(/admin/manrope.woff2) format("woff2");font-weight:200 800;font-display:swap}
:root{color-scheme:light;
  --bg:#f6f5f1;--surface:#fff;--surface-2:#efede7;--ink:#1b1b20;--muted:#6b6a73;--line:#e4e1d9;
  --accent:#3346d3;--accent-ink:#fff;--accent-soft:#e9ebfc;
  --ok:#1d7f48;--ok-soft:#e2f3e8;--warn:#a65308;--warn-soft:#fcefdb;--danger:#c0362c;--danger-soft:#fbe8e5;
  --shadow:0 1px 2px rgb(27 27 32/.05),0 4px 16px rgb(27 27 32/.04);
  --radius:14px;--tabs-h:64px;
  --sans:Manrope,ui-sans-serif,system-ui,"Segoe UI",sans-serif;--mono:ui-monospace,"Cascadia Mono",Consolas,monospace}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){color-scheme:dark;
  --bg:#111216;--surface:#1a1b21;--surface-2:#24252d;--ink:#ececf1;--muted:#9c9ca8;--line:#2d2f38;
  --accent:#8e9dff;--accent-ink:#11132a;--accent-soft:#252a4f;
  --ok:#62d394;--ok-soft:#163323;--warn:#f1b660;--warn-soft:#3a2a13;--danger:#ff8f85;--danger-soft:#3e1f1c;
  --shadow:0 1px 2px rgb(0 0 0/.3)}}
:root[data-theme="dark"]{color-scheme:dark;
  --bg:#111216;--surface:#1a1b21;--surface-2:#24252d;--ink:#ececf1;--muted:#9c9ca8;--line:#2d2f38;
  --accent:#8e9dff;--accent-ink:#11132a;--accent-soft:#252a4f;
  --ok:#62d394;--ok-soft:#163323;--warn:#f1b660;--warn-soft:#3a2a13;--danger:#ff8f85;--danger-soft:#3e1f1c;
  --shadow:0 1px 2px rgb(0 0 0/.3)}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 var(--sans);font-feature-settings:"tnum" 1}
[hidden]{display:none!important}
.sprite{display:none}
svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
h1,h2{margin:0;letter-spacing:-.02em}h1{font-size:26px;font-weight:750}h2{font-size:17px;font-weight:700}
p{margin:0}a{color:var(--accent)}code,.mono{font-family:var(--mono);font-size:.92em}
.muted{color:var(--muted)}.caption{color:var(--muted);font-size:13px}.center{text-align:center}
.empty{color:var(--muted);text-align:center;padding:28px 12px}

/* Controls */
button{font:inherit;font-weight:650;font-size:14px;min-height:44px;padding:0 16px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;touch-action:manipulation}
button:hover{background:var(--surface-2)}button:disabled{opacity:.55;cursor:progress}
button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}button.primary:hover{filter:brightness(1.07)}
button.ghost{background:transparent;border-color:transparent;color:var(--muted)}button.ghost:hover{background:var(--surface-2);color:var(--ink)}
button.danger{color:var(--danger);border-color:var(--line)}button.danger:hover{background:var(--danger-soft)}
button.small{min-height:36px;padding:0 12px;font-size:13px}
.wide{width:100%}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:650}
label small{font-weight:500;color:var(--muted);font-size:12px}
input,textarea,select{font:inherit;font-size:16px;font-weight:500;width:100%;min-height:46px;padding:10px 13px;border-radius:10px;border:1px solid var(--line);background:var(--bg);color:var(--ink)}
textarea{resize:vertical;min-height:96px}
input:focus,textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-soft)}
input[readonly]{background:var(--surface-2)}
.check{flex-direction:row;align-items:center;gap:10px;font-weight:550;color:var(--muted);margin:14px 2px}
.check input{width:18px;min-height:18px;height:18px;accent-color:var(--accent);margin:0}
.stack{display:flex;flex-direction:column;gap:16px}
.inline{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin:16px 0}
.inline .grow{flex:1 1 220px}.inline .narrow{flex:0 0 100px}
.actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.actions.end{justify-content:flex-end}
.form-error{color:var(--danger);font-size:14px;min-height:1px}

/* Brand */
.brand{display:flex;align-items:center;gap:10px;font-size:17px;font-weight:600;letter-spacing:-.01em}
.brand b{font-weight:800}
.logo{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:var(--accent);color:var(--accent-ink);font-weight:800;font-size:17px}

/* Login */
.login{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:24px 16px}
.login-card{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:28px 24px;box-shadow:var(--shadow)}
.login-card .brand{margin-bottom:28px}.login-card h1{font-size:24px;margin-bottom:4px}.login-card .muted{font-size:14px}

/* Shell: mobile first */
.app{min-height:100vh}
.side{display:none}
.main{padding:0 16px calc(var(--tabs-h) + 24px + env(safe-area-inset-bottom));max-width:1040px;margin:0 auto}
.top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 0 12px;position:sticky;top:0;z-index:5;background:var(--bg)}
.desktop-only{display:none}
.pill{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border-radius:999px;font-size:12px;font-weight:750;letter-spacing:.04em;text-decoration:none;text-transform:uppercase;background:var(--surface-2);color:var(--muted)}
.pill::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}
.pill.live{background:var(--warn-soft);color:var(--warn)}.pill.test{background:var(--accent-soft);color:var(--accent)}
.tabs{position:fixed;inset:auto 0 0 0;z-index:10;display:grid;grid-template-columns:repeat(4,1fr);height:calc(var(--tabs-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid var(--line)}
.tabs a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:11px;font-weight:650;color:var(--muted);text-decoration:none}
.tabs a svg{width:23px;height:23px}
.tabs a.active{color:var(--accent)}
.view{display:flex;flex-direction:column;gap:14px;padding-top:4px}
.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}
.toolbar>:only-child{margin-left:auto}

/* Cards */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow);min-width:0}
.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.card>.card-head:only-child{margin:0}
.link{font-size:14px;font-weight:650;text-decoration:none}
.status-card{display:flex;align-items:center;gap:16px;padding:20px}
.status-card h2{font-size:19px}.status-card p{font-size:14px;margin-top:2px}
.status-dot{width:14px;height:14px;border-radius:50%;flex-shrink:0;background:var(--muted);box-shadow:0 0 0 6px var(--surface-2)}
.status-card.ok .status-dot{background:var(--ok);box-shadow:0 0 0 6px var(--ok-soft)}
.status-card.warn .status-dot{background:var(--warn);box-shadow:0 0 0 6px var(--warn-soft)}
.status-card.bad{border-color:var(--danger)}.status-card.bad .status-dot{background:var(--danger);box-shadow:0 0 0 6px var(--danger-soft)}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow)}
.stat span{display:block;font-size:12px;font-weight:650;color:var(--muted)}
.stat strong{display:block;font-size:28px;font-weight:750;letter-spacing:-.03em;margin-top:4px}
.alert{padding:12px 14px;border-radius:12px;font-size:14px;font-weight:550;background:var(--danger-soft);color:var(--danger);margin-bottom:10px}
.alert.warn{background:var(--warn-soft);color:var(--warn)}

/* Lists */
.rows{list-style:none;margin:0;padding:0}
.rows li{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--line);min-width:0}
.rows li:first-child{border-top:0;padding-top:2px}.rows li:last-child{padding-bottom:2px}
.rows .grow{flex:1;min-width:0}
.rows .title{font-weight:650;overflow-wrap:anywhere}
.rows .sub{font-size:13px;color:var(--muted);overflow-wrap:anywhere}
.rows .when{font-size:12px;color:var(--muted);white-space:nowrap}
.rows.compact li{padding:9px 0;font-size:14px}
.rows .empty-row{color:var(--muted);justify-content:center}
.badge{display:inline-flex;align-items:center;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap;background:var(--surface-2);color:var(--muted)}
.badge.ok{background:var(--ok-soft);color:var(--ok)}.badge.warn{background:var(--warn-soft);color:var(--warn)}
.badge.bad{background:var(--danger-soft);color:var(--danger)}.badge.info{background:var(--accent-soft);color:var(--accent)}

/* Phones */
.cards{display:grid;gap:12px}
.phone{display:flex;flex-direction:column;gap:12px}
.phone-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.phone-head h3{margin:0;font-size:16px;font-weight:700;overflow-wrap:anywhere}
.facts{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 16px;margin:0}
.facts div{min-width:0}.facts dt{font-size:12px;color:var(--muted);font-weight:600}.facts dd{margin:2px 0 0;font-weight:650;overflow-wrap:anywhere}
.meter{height:6px;border-radius:3px;background:var(--surface-2);overflow:hidden;margin-top:6px}
.meter i{display:block;height:100%;background:var(--accent);border-radius:3px}
.phone.revoked{opacity:.6}
.steps{margin:0 0 4px;padding-left:20px;color:var(--muted);font-size:14px}.steps li{margin:4px 0}.steps b{color:var(--ink)}
.download{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin:4px 0 12px}.download>div:last-child{flex:1 1 200px}.download .qr-card{flex:0 0 auto}
.qr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;margin:12px 0}
.qr-card{background:#fff;color:#1b1b20;border-radius:12px;padding:12px;text-align:center;border:1px solid var(--line)}
.qr-card strong{display:block;font-size:14px;margin-bottom:6px}.qr-card canvas{width:160px;height:160px;max-width:100%}
.qr-card p{font-size:12px;color:#6b6a73}
details summary{cursor:pointer;font-weight:650;font-size:14px;padding:10px 0;color:var(--accent)}
details textarea{font-family:var(--mono);font-size:12px}
.fold{border-top:1px solid var(--line);margin-top:10px}.fold[open]{padding-bottom:6px}

/* Settings */
.segmented{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.segmented.small{grid-template-columns:repeat(3,1fr)}
.segmented label{position:relative;display:block}
.segmented input{position:absolute;opacity:0;pointer-events:none}
.segmented span{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border:1.5px solid var(--line);border-radius:12px;cursor:pointer;min-height:48px;justify-content:center}
.segmented.small span{align-items:center}
.segmented b{font-size:15px}.segmented small{font-weight:500;color:var(--muted);font-size:12px}
.segmented input:checked+span{border-color:var(--accent);background:var(--accent-soft)}
.segmented input[value="live"]:checked+span{border-color:var(--warn);background:var(--warn-soft)}
.segmented input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
.confirm-box{padding:14px;border-radius:12px;background:var(--warn-soft);color:var(--warn)}
.secret{margin:12px 0;padding:14px;border-radius:12px;background:var(--ok-soft)}.secret p{font-size:14px;font-weight:600;color:var(--ok);margin-bottom:8px}
.who{font-size:14px;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Toast and dialog */
.toast{position:fixed;left:16px;right:16px;bottom:calc(var(--tabs-h) + 14px + env(safe-area-inset-bottom));z-index:20;margin:0 auto;max-width:480px;padding:13px 16px;border-radius:12px;background:var(--ink);color:var(--bg);font-size:14px;font-weight:600;box-shadow:0 8px 30px rgb(0 0 0/.2)}
.toast.error{background:var(--danger);color:#fff}
.dialog{border:0;border-radius:18px;padding:22px;width:min(420px,calc(100vw - 32px));background:var(--surface);color:var(--ink);box-shadow:0 20px 60px rgb(0 0 0/.3)}
.dialog::backdrop{background:rgb(17 18 22/.45)}
.dialog h2{margin-bottom:8px}.dialog .actions{margin-top:20px}

/* Desktop */
@media(min-width:900px){
  .side{display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;width:232px;padding:24px 16px;background:var(--surface);border-right:1px solid var(--line)}
  .side .brand{padding:0 8px 28px}
  .nav{display:flex;flex-direction:column;gap:2px}
  .nav a{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:10px;color:var(--muted);text-decoration:none;font-weight:650}
  .nav a:hover{background:var(--surface-2);color:var(--ink)}
  .nav a.active{background:var(--accent-soft);color:var(--accent)}
  .side-foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 8px 0;border-top:1px solid var(--line)}
  .icon-btn{min-height:38px;width:38px;padding:0;border-color:transparent;background:transparent;color:var(--muted)}
  .tabs,.mobile-only{display:none!important}
  .desktop-only{display:block}
  .main{margin-left:232px;padding:8px 40px 48px;max-width:none}
  .main>*{max-width:1000px}
  .top{padding:24px 0 18px}
  .view{gap:18px}
  .stat strong{font-size:34px}
  .stat{padding:18px 20px}
  .card{padding:22px 24px}
  .cards{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
  .toast{bottom:24px;left:auto;right:24px}
  .view[data-view="settings"]{display:grid;grid-template-columns:1fr 1fr;align-items:start}
  .view[data-view="settings"][hidden]{display:none}
  .view[data-view="settings"]>.card:first-child,.view[data-view="settings"]>.card:nth-child(3),.view[data-view="settings"]>.card:nth-child(4){grid-column:span 1}
  .view[data-view="settings"]>button,.view[data-view="settings"]>p{grid-column:1/-1}
  .view[data-view="settings"]>button{justify-self:start;width:auto}
  .view[data-view="home"]>button[data-compose]{justify-self:start;width:auto;align-self:flex-start}
}
@media(max-width:380px){.stat strong{font-size:23px}.stat{padding:12px}.facts{grid-template-columns:1fr 1fr}}
