:root{color-scheme:light;--bg:#f6f4ea;--panel:#fffdf6;--ink:#24203a;--dim:#5f5a75;--accent:#2f4fbf;--good:#1d7a3a;--bad:#b3261e;--warn:#8a5a00;--rule:#cfc9b8;--glow:none;
  --mono:ui-monospace,"Cascadia Mono","JetBrains Mono","SF Mono",Menlo,Consolas,"Liberation Mono",monospace;box-sizing:border-box}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){color-scheme:dark;--bg:#140e07;--panel:#1c140a;--ink:#ffb547;--dim:#c4975a;--accent:#ffe08a;--good:#8fe39b;--bad:#ff8a80;--warn:#ffd36b;--rule:#4a3412;--glow:0 0 6px rgba(255,170,40,.3)}}
:root[data-theme="dark"]{color-scheme:dark;--bg:#140e07;--panel:#1c140a;--ink:#ffb547;--dim:#c4975a;--accent:#ffe08a;--good:#8fe39b;--bad:#ff8a80;--warn:#ffd36b;--rule:#4a3412;--glow:0 0 6px rgba(255,170,40,.3)}
*,*::before,*::after{box-sizing:inherit}
html,body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.55 var(--mono);text-shadow:var(--glow)}
a{color:var(--accent)} button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px dashed var(--accent);outline-offset:3px}
[hidden]{display:none!important}
.skip{position:absolute;left:-999px;top:0;background:var(--panel);padding:.4rem .8rem;z-index:50}.skip:focus{left:1rem}
.shell{display:grid;grid-template-columns:13rem 1fr;grid-template-rows:auto 1fr;min-height:100vh}
.top{grid-column:1/-1;display:flex;align-items:center;gap:1rem;padding:.7rem 1.2rem calc(.7rem) 1.2rem;padding-top:calc(.7rem + env(safe-area-inset-top,0px));border-bottom:1px solid var(--rule);position:sticky;top:0;background:var(--bg);z-index:5}
.brand{font-weight:700;letter-spacing:.04em}.cur{display:inline-block;width:.55em;height:1em;background:var(--ink);vertical-align:-.15em;margin-left:.2em;animation:b 1.1s steps(1) infinite}@keyframes b{50%{opacity:0}}
.who{margin-left:auto;color:var(--dim);font-size:.85rem}
.menu{display:none}
nav{border-right:1px solid var(--rule);padding:1rem .8rem;display:flex;flex-direction:column;gap:.15rem}
nav a,.linkish{display:block;text-align:left;text-decoration:none;color:var(--ink);padding:.45rem .7rem;border-radius:6px;border:1px solid transparent;background:none;cursor:pointer;width:100%}
nav a:hover,.linkish:hover{border-color:var(--rule)} nav a[aria-current="page"]{background:var(--ink);color:var(--bg);text-shadow:none}
nav .linkish{margin-top:auto;color:var(--dim)}
main{padding:1.2rem 1.4rem 3rem;min-width:0;outline:none}
h1{font-size:1.3rem;margin:0 0 .2rem} h2{font-size:1rem;margin:1.6rem 0 .6rem} .lead{color:var(--dim);margin:0 0 1.2rem}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));gap:.8rem}
.card{background:var(--panel);border:1px solid var(--rule);border-radius:8px;padding:.85rem 1rem;min-width:0}
.card .k{color:var(--dim);font-size:.78rem;letter-spacing:.06em;text-transform:uppercase}
.card .v{font-size:1.5rem;font-weight:700;margin:.15rem 0}
.card .s{color:var(--dim);font-size:.82rem}
.bar{height:.5rem;border:1px solid var(--ink);border-radius:99px;overflow:hidden;margin-top:.4rem}.bar i{display:block;height:100%;background:var(--ink)}
.bar.warn i{background:var(--warn)}.bar.bad i{background:var(--bad)}
svg.spark{width:100%;height:46px;display:block;margin-top:.4rem}
.list{display:flex;flex-direction:column;gap:.55rem}
.row{display:flex;flex-wrap:wrap;gap:.4rem 1rem;align-items:center;justify-content:space-between;background:var(--panel);border:1px solid var(--rule);border-radius:8px;padding:.7rem .9rem}
.row .meta{color:var(--dim);font-size:.82rem}
.dot{display:inline-block;width:.65em;height:.65em;border-radius:50%;margin-right:.45em;vertical-align:.05em;background:var(--dim)}
.dot.up{background:var(--good)}.dot.down{background:var(--bad)}.dot.warn{background:var(--warn)}
.pill{font-size:.75rem;border:1px solid var(--rule);border-radius:99px;padding:.05rem .5rem;color:var(--dim)}
.btn{text-decoration:none;display:inline-flex;align-items:center;border:1px solid var(--ink);background:transparent;border-radius:6px;padding:.4rem .8rem;cursor:pointer;min-height:2.4rem}
.btn:hover:not(:disabled){background:var(--ink);color:var(--bg);text-shadow:none}.btn:disabled{opacity:.45;cursor:not-allowed}
.btn.danger{border-color:var(--bad);color:var(--bad)}.btn.danger:hover:not(:disabled){background:var(--bad);color:var(--bg)}
.btn.small{min-height:2rem;padding:.2rem .6rem;font-size:.82rem}
.actions{display:flex;gap:.4rem;flex-wrap:wrap}
form.stack{display:flex;flex-direction:column;gap:.75rem;max-width:26rem}
label{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem;color:var(--dim)}
input[type=text],input[type=password],input[type=number],select,textarea{background:var(--bg);border:1px solid var(--rule);border-radius:6px;padding:.5rem .6rem;color:var(--ink);min-height:2.4rem}
input:focus-visible,select:focus-visible{border-color:var(--ink)}
.check{flex-direction:row;align-items:center;gap:.5rem;color:var(--ink)}
.msg{font-size:.85rem;min-height:1.2em}.msg.err{color:var(--bad)}.msg.ok{color:var(--good)}
pre.log{background:var(--panel);border:1px solid var(--rule);border-radius:8px;padding:.8rem;overflow:auto;max-height:65vh;font-size:.78rem;line-height:1.45;white-space:pre;text-shadow:none}
.tablewrap{overflow-x:auto;border:1px solid var(--rule);border-radius:8px}
table{border-collapse:collapse;width:100%;font-size:.84rem;background:var(--panel)}
th,td{text-align:left;padding:.5rem .7rem;border-bottom:1px solid var(--rule);vertical-align:top}th{color:var(--dim);font-weight:400}
.empty,.loading,.error{padding:1rem;border:1px dashed var(--rule);border-radius:8px;color:var(--dim)}.error{border-color:var(--bad);color:var(--bad)}
.loading::after{content:"…";animation:b 1.1s steps(1) infinite}
.toolbar{display:flex;gap:.6rem;flex-wrap:wrap;align-items:end;margin-bottom:.8rem}
.gate{min-height:100vh;display:grid;place-items:center;padding:1.2rem}
.gate main{width:min(100%,24rem);background:var(--panel);border:1px solid var(--rule);border-radius:10px;padding:1.4rem}
.code{word-break:break-all;background:var(--bg);border:1px solid var(--rule);border-radius:6px;padding:.5rem;font-size:.8rem;user-select:all}
#toasts{position:fixed;right:1rem;bottom:calc(1rem + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:.5rem;z-index:40;max-width:min(22rem,calc(100vw - 2rem))}
.toast{background:var(--panel);border:2px solid var(--ink);border-radius:8px;padding:.5rem .8rem;font-size:.85rem}.toast.err{border-color:var(--bad)}
dialog{background:var(--panel);color:var(--ink);border:2px solid var(--ink);border-radius:10px;max-width:min(30rem,calc(100vw - 2rem));padding:1.2rem}
dialog::backdrop{background:rgba(0,0,0,.55)}
.perms{display:grid;grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));gap:.3rem .8rem}
/* boot loader (same as the rest of the site) */
#loader{display:none}
.js #loader{position:fixed; inset:0; z-index:60; background:var(--bg); display:flex; flex-direction:column; align-items:center; justify-content:center; padding:1.5rem; transition:opacity .45s ease; cursor:pointer}
#loader.done{opacity:0; pointer-events:none}
#loader pre{margin:0; line-height:1.15; font-size:clamp(.42rem, 1.8vw, 1rem); white-space:pre; max-width:100%; overflow:hidden}
#loader .lbar{margin-top:1.75rem; font-size:.95rem; white-space:pre; min-height:1.4em}
#loader .skip{position:absolute; bottom:calc(1.25rem + env(safe-area-inset-bottom,0px)); color:var(--dim); font-size:.85rem; margin:0}
@media (max-width:760px){
  .shell{grid-template-columns:1fr}
  .menu{display:inline-block;border:1px solid var(--ink);background:none;border-radius:6px;padding:.25rem .6rem;cursor:pointer}
  nav{display:none;border-right:0;border-bottom:1px solid var(--rule)} nav.open{display:flex}
  main{padding:1rem}
  .who{font-size:.75rem}
}
@media (prefers-reduced-motion:reduce){#loader{display:none!important}.cur,.loading::after{animation:none}*{transition:none!important}}
