/* Dark theme, mobile-first; no external assets (CSP allows self only). */
:root{--bg:#0f141b;--panel:#18202b;--line:#263243;--text:#e6edf5;--muted:#8a9bb0;--accent:#3b9cff;--danger:#e5484d;--ok:#30a46c}
*{box-sizing:border-box}body{margin:0;font:16px system-ui,sans-serif;background:var(--bg);color:var(--text)}
a{color:var(--accent)}h1,h2{font-weight:600}h2{margin-top:1.6rem;color:var(--muted);font-size:1rem;text-transform:uppercase;letter-spacing:.06em}
header{display:flex;justify-content:space-between;align-items:center;padding:.8rem 1rem;background:var(--panel);border-bottom:1px solid var(--line)}
header a{color:var(--text);text-decoration:none;margin-left:1rem}.brand{font-weight:700;margin:0}
nav{display:flex;align-items:center;gap:.2rem;font-size:.9rem;color:var(--muted)}nav form{display:inline}
main{max-width:820px;margin:1rem auto;padding:0 1rem}
.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:1.2rem;display:block;color:inherit}
.narrow{max-width:360px;margin:3rem auto}
label{display:block;margin:.6rem 0;font-size:.9rem;color:var(--muted)}
input{display:block;width:100%;padding:.65rem;margin-top:.2rem;background:#0b1017;color:var(--text);border:1px solid var(--line);border-radius:8px;font-size:1rem}
input:focus{outline:2px solid var(--accent);border-color:transparent}
button,.btn{background:var(--accent);color:#fff;border:0;border-radius:8px;padding:.6rem 1rem;font-size:1rem;cursor:pointer;text-decoration:none;display:inline-block}
button:hover,.btn:hover{filter:brightness(1.1)}button:disabled{background:#3a4658;color:#8a9bb0;cursor:not-allowed}
button.danger{background:var(--danger)}button.link{background:none;color:var(--muted);padding:0 0 0 1rem;text-decoration:underline}
form.inline{display:inline}
table{width:100%;border-collapse:separate;border-spacing:0;background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden}
th{text-align:left;padding:.7rem .8rem;font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);background:#141b25;border-bottom:1px solid var(--line)}
td{padding:.75rem .8rem;border-bottom:1px solid var(--line);vertical-align:middle;font-size:.95rem}tr:last-child td{border-bottom:0}
tbody tr:hover{background:#1c2633}tr.dim{opacity:.5}
.badge{font-size:.72rem;padding:.2rem .6rem;border-radius:99px;color:#fff;white-space:nowrap}.on{background:var(--ok)}.off{background:#4a5668}
.err{color:#ff8083}.note{background:#14283f;border:1px solid #1f4670;padding:.6rem;border-radius:8px}.warn{background:#3a2f12;border:1px solid #6b5518;padding:.6rem;border-radius:8px}
.qr{max-width:100%;image-rendering:pixelated;background:#fff;padding:10px;border-radius:10px}
pre{background:#0b1017;border:1px solid var(--line);padding:.6rem;overflow:auto;font-size:.75rem;border-radius:8px}code{background:#0b1017;padding:.1rem .4rem;border-radius:4px}
small{color:var(--muted)}

/* Server table: each row is a separated card-like row so server names stand out */
table.servers{background:none;border:0;border-spacing:0 .7rem}
table.servers th{background:none;border:0;padding:.2rem 1.1rem}
table.servers td{background:var(--panel);padding:1.15rem 1.1rem;border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
table.servers td:first-child{border-left:1px solid var(--line);border-radius:12px 0 0 12px}
table.servers td:last-child{border-right:1px solid var(--line);border-radius:0 12px 12px 0}
table.servers tbody tr:hover td{background:#1c2633}
.srv{font-size:1.2rem;font-weight:700;text-decoration:none}a.srv:hover{text-decoration:underline}
.type{font-size:.8rem;color:var(--muted);border:1px solid var(--line);padding:.15rem .55rem;border-radius:6px}
table.rows td{padding:.9rem 1rem}.right{text-align:right}
.small-btn{padding:.4rem .8rem;font-size:.85rem}input.mini{display:inline-block;width:11rem;padding:.4rem;margin:0}
h3{color:var(--muted);font-size:.95rem;margin-top:1.4rem}
/* App-store badges */
.stores{display:flex;flex-wrap:wrap;gap:.8rem;margin:1rem 0 1.4rem}
.store{display:flex;align-items:center;gap:.7rem;background:#000;color:#fff;border:1px solid #a6a6a6;border-radius:10px;padding:.5rem 1.1rem .5rem .8rem;text-decoration:none;min-width:165px}
.store:hover{background:#111;border-color:#fff}
.store span{display:flex;flex-direction:column;line-height:1.1}.store small{font-size:.65rem;color:#fff;letter-spacing:.03em}.store b{font-size:1.2rem;font-weight:600}

/* ---- Round 3 additions ---- */
/* Header: language flags + larger, lighter user name */
.langs{display:inline-flex;gap:.35rem;margin-right:.9rem}
button.flag{background:none;padding:.2rem;border-radius:6px;line-height:0;border:2px solid transparent;opacity:.55}
button.flag.active{opacity:1;border-color:var(--accent)}button.flag:hover{opacity:1}
.user{font-size:1.35rem;font-weight:300;color:var(--text);margin-right:.8rem;letter-spacing:.02em}
/* Animal icons next to server names */
.animal{font-size:1.5em;margin-right:.45rem;vertical-align:middle}
/* QR page and confirm page: buttons side by side with generous space */
.actions{display:flex;flex-wrap:wrap;gap:2.5rem;align-items:center;margin:1.2rem 0}
.btn.ok,button.ok{background:var(--ok)}.btn.grey{background:#3a4658}.btn.danger{background:var(--danger)}
.welcome{background:var(--panel);border:1px dashed var(--line);border-radius:12px;padding:1.2rem;color:var(--muted);font-size:1.05rem}
/* App notice + store buttons at the bottom of the home page */
.appbox{margin-top:3.5rem;padding:1.4rem;border-top:1px solid var(--line)}
.applogo{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.applogo b{font-size:1.3rem}.applogo span{color:var(--text)}
/* Admin: per-server tables tinted by theme (shades of one colour per server), audit window */
.srvhead{font-size:1.15rem;color:var(--text);margin:1.6rem 0 .5rem}
table.theme-blue td{background:#14263d}table.theme-blue tbody tr:nth-child(even) td{background:#193050}table.theme-blue th{background:#0f1d30}
table.theme-green td{background:#13302a}table.theme-green tbody tr:nth-child(even) td{background:#173b33}table.theme-green th{background:#0f2420}
table.theme-amber td{background:#38300f}table.theme-amber tbody tr:nth-child(even) td{background:#433913}table.theme-amber th{background:#2a2409}
.codewin{max-height:22rem;overflow:auto;border:1px solid var(--line);border-radius:10px;background:#0b1017}
table.audit{border:0;background:none;font:12px ui-monospace,Menlo,Consolas,monospace}
table.audit th{position:sticky;top:0}table.audit td{padding:.35rem .7rem;white-space:nowrap}
/* Admin live dashboard: one card per server; heat1 (hottest, handshake < 3 min) .. heat5 (oldest live, < 24 h); same hue, darker = staler */
.dash{display:grid;grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:1.4rem;margin:1.2rem 0}
.dcard{border:1px solid var(--line);border-left:6px solid #4a5668;border-radius:12px;background:#10161f;padding:1rem 1.2rem}
.dcard.up{border-left-color:var(--ok)}.dcard.down{opacity:.55}
.dhead{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap}.dhead h2{margin:0;font-size:1.3rem}
.dcount{margin-left:auto;font-size:1.8rem;font-weight:600;color:#5eead4;line-height:1}.dcount small{font-size:.75rem;color:var(--muted);display:block;text-align:right}
table.live{width:100%;border-collapse:separate;border-spacing:0 4px;margin-top:.8rem;font-size:.9rem}
table.live th{text-align:left;color:var(--muted);font-weight:500;padding:.2rem .6rem}
table.live td{padding:.45rem .6rem}table.live td:first-child{border-radius:8px 0 0 8px}table.live td:last-child{border-radius:0 8px 8px 0}
.heat1 td{background:#0f766e;color:#fff}.heat2 td{background:#0d6159}.heat3 td{background:#0b4d47}.heat4 td{background:#173a3a}.heat5 td{background:#1c2b2e;color:#9fb0b4}
.legend{display:flex;gap:.4rem;align-items:center;font-size:.8rem;color:var(--muted)}.legend i{width:1.6rem;height:.8rem;border-radius:3px;display:inline-block}
.legend .h1{background:#0f766e}.legend .h2{background:#0d6159}.legend .h3{background:#0b4d47}.legend .h4{background:#173a3a}.legend .h5{background:#1c2b2e}
.logoimg{border-radius:14px}
table.theme-red td{background:#3a1a1d}table.theme-red tbody tr:nth-child(even) td{background:#462025}table.theme-red th{background:#2b1215}
