/* Shares the main site's vanta-black / monospace visual language, kept as
   a standalone stylesheet so this dashboard can be deployed as its own
   Cloudflare Pages project on its own subdomain. */

:root{
  --bg:#000; --raise:#0b0b0b; --panel:#111; --line:#1c1c1c; --line2:#2a2a2a;
  --fg:#e7e7e7; --mut:#8a8a8a; --dim:#4a4a4a;
  --accent:#4c8dff; --ok:#3ddc84; --warn:#e8b339; --danger:#ff5c4d;
  --mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,"Cascadia Mono",Consolas,monospace;
  --ease:cubic-bezier(.22,.61,.36,1);
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{margin:0;min-height:100%}
body{
  background:var(--bg);color:var(--fg);font:13px/1.55 var(--mono);
  -webkit-font-smoothing:antialiased;
  scroll-behavior:smooth;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;
}
button,input{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0}
code{background:var(--panel);padding:1px 5px;border-radius:2px}
.mut{color:var(--mut)}
.small{font-size:11px}
.grow{flex:1}

#setup,#login{min-height:100vh;display:grid;place-items:center;padding:24px}
.card{width:100%;max-width:360px;border:1px solid var(--line2);background:var(--raise);padding:24px}
.card h1{margin:0 0 8px;font:600 16px/1.3 var(--mono)}
.card p{margin:0 0 16px;font-size:12.5px;line-height:1.6}

.in{
  width:100%;height:38px;padding:0 10px;margin-bottom:10px;
  border:1px solid var(--line2);background:var(--bg);color:var(--fg);font:13px/1 var(--mono);
}
.in:focus{outline:0;border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.in.sm{height:30px;width:220px;margin:0}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;height:32px;padding:0 12px;
  border:1px solid var(--line2);background:var(--raise);color:var(--fg);font:500 12px/1 var(--mono);
  transition:background .15s var(--ease),border-color .15s var(--ease);
}
.btn:hover{background:var(--panel);border-color:var(--mut)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}
.btn.primary:hover{filter:brightness(1.12)}
.btn.danger{border-color:var(--danger);color:var(--danger);background:transparent}
.btn.danger:hover{background:var(--danger);color:#fff}
.btn.block{width:100%}
.btn.xs{height:24px;padding:0 8px;font-size:11px}
.lnk{margin-top:12px;color:var(--accent);font-size:11px;text-decoration:underline;text-underline-offset:2px;display:block;text-align:center}
.errline{color:var(--danger);font-size:12px;margin:0 0 10px}

#dash{max-width:1100px;margin:0 auto;padding:20px 20px 60px}
#top{display:flex;align-items:center;gap:10px;height:44px;border-bottom:1px solid var(--line);margin-bottom:20px}
.logo{font:600 13px/1 var(--mono);display:flex;align-items:center;gap:6px}
.caret{color:var(--accent)}

#banner{padding:8px 12px;margin-bottom:16px;border:1px solid var(--warn);color:var(--warn);font-size:12px}
#banner.bad{border-color:var(--danger);color:var(--danger)}

.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:24px}
.mcard{background:var(--bg);padding:16px;display:flex;flex-direction:column;gap:4px}
.mcard b{font-size:22px}
.mcard span{color:var(--mut);font-size:11px;text-transform:uppercase;letter-spacing:.08em}

.panel{border:1px solid var(--line2);background:var(--raise);padding:16px;margin-bottom:20px}
.phead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.phead h2{margin:0;font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--mut)}

.tablewrap{overflow:auto;-webkit-overflow-scrolling:touch}
table{width:100%;border-collapse:collapse;font-size:12.5px}
th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line)}
th{color:var(--mut);font-weight:500;text-transform:uppercase;font-size:10.5px;letter-spacing:.06em}
td.code{font-weight:600;letter-spacing:.1em}
.tag{padding:1px 6px;border:1px solid var(--line2);font-size:10px;text-transform:uppercase}
.tag.warn{border-color:var(--warn);color:var(--warn)}
.tag.danger{border-color:var(--danger);color:var(--danger)}
.tag.ok{border-color:var(--ok);color:var(--ok)}
.rowactions{display:flex;gap:6px;flex-wrap:wrap}

.configform{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:14px}
.cfield label{display:block;margin-bottom:6px;color:var(--mut);font-size:11px;text-transform:uppercase;letter-spacing:.06em}
.mrow{display:flex;align-items:center;gap:12px}

#footNote{margin-top:30px;line-height:1.7}

@media(max-width:720px){
  .metrics{grid-template-columns:repeat(2,1fr)}
  #top{flex-wrap:wrap;height:auto;padding-bottom:10px}
}
