:root {
  --bg:#eef1ee; --panel:#fff; --ink:#17231d; --muted:#5f6f66; --line:#d5dcd7;
  --sage:#2e7d5b; --sage-deep:#1f5a41; --sage-soft:#e3f0e9; --amber:#b7791f; --amber-soft:#fbf0d9; --red:#b3382c;
  --mono:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace; --sans:"Segoe UI","Helvetica Neue",Arial,sans-serif;
}
*{box-sizing:border-box} body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 var(--sans)} a{color:var(--sage-deep)}
header.top{background:var(--sage-deep);color:#fff;padding:0 28px;height:52px;display:flex;align-items:center;justify-content:space-between}
header.top .brand{font-weight:600;color:#fff;text-decoration:none;font-size:16px} header.top .brand small{font-weight:400;opacity:.7;margin-left:10px}
header.top a.out{color:#cfe3d8;font-size:13px;text-decoration:none}
main{max-width:1040px;margin:0 auto;padding:28px 20px 60px}
h1{font-size:24px;font-weight:600;margin:0 0 4px} h2{font-size:16px;font-weight:600;margin:0 0 12px} .sub{color:var(--muted);margin:0 0 24px}
.grid{display:grid;grid-template-columns:1fr;gap:20px} @media(min-width:820px){.grid.two{grid-template-columns:1fr 1fr}}
section.panel{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:18px 20px}
table{width:100%;border-collapse:collapse;font-size:14px} th{text-align:left;color:var(--muted);font-weight:500;padding:6px 8px;border-bottom:1px solid var(--line)}
td{padding:9px 8px;border-bottom:1px solid #edf0ee;vertical-align:top} tr:last-child td{border-bottom:0}
code,.mono{font-family:var(--mono);font-size:13px}
.status{display:inline-flex;align-items:center;gap:6px;font-size:13px} .status::before{content:"";width:9px;height:9px;border-radius:50%;background:#b9c2bc}
.status.online::before,.status.done::before{background:var(--sage)} .status.offline::before,.status.pending::before,.status.running::before{background:var(--amber)}
.status.error::before{background:var(--red)} .status.revoked::before{background:#c6cdc9}
form.inline{display:inline}
input[type=text],input[type=password],select{font:inherit;padding:8px 10px;border:1px solid var(--line);border-radius:4px;background:#fff;min-width:220px}
input:focus,button:focus,select:focus{outline:2px solid var(--sage);outline-offset:1px}
button{font:inherit;font-size:14px;padding:8px 14px;border-radius:4px;cursor:pointer;border:1px solid var(--sage-deep);background:var(--sage-deep);color:#fff}
button.quiet{background:#fff;color:var(--ink);border-color:var(--line)} button.danger{background:#fff;color:var(--red);border-color:var(--line);padding:4px 10px;font-size:13px}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.secret{background:var(--amber-soft);border:1px solid #ead9b3;border-radius:6px;padding:14px 16px;margin-bottom:20px} .secret strong{display:block;margin-bottom:6px}
.secret code{display:block;background:#fff;padding:10px 12px;border-radius:4px;word-break:break-all;margin:8px 0;user-select:all} .secret p{margin:0;color:var(--muted);font-size:13px}
.secret p code{display:inline;padding:1px 4px}
.empty,.muted{color:var(--muted)} .empty{padding:12px 0} .small{font-size:13px}
.site-list a.card{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:14px 18px;text-decoration:none;color:inherit;margin-bottom:10px}
.site-list a.card:hover{border-color:var(--sage)} .site-list .name{font-weight:600}
.login{max-width:360px;margin:80px auto} .err{color:var(--red);margin:8px 0 0;font-size:14px}
.endpoint{background:var(--sage-soft);border-radius:4px;padding:10px 12px;font-family:var(--mono);font-size:13px;word-break:break-all}
