:root { --bg:#0f1419; --panel:#1a2129; --line:#2b3540; --fg:#dbe4ec;
        --dim:#8fa0af; --acc:#4db6ac; --warn:#e57373; --ok:#81c784; }
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--fg);
       font:15px/1.6 "Noto Sans TC", system-ui, sans-serif; }
nav { display:flex; gap:1.2rem; align-items:center; padding:.7rem 1.2rem;
      background:var(--panel); border-bottom:1px solid var(--line); }
nav a { color:var(--dim); text-decoration:none; }
nav a:hover { color:var(--acc); }
nav .brand { font-weight:700; color:var(--acc); letter-spacing:.05em; }
nav .right { margin-left:auto; }
main { max-width:1100px; margin:1.5rem auto; padding:0 1.2rem; }
h1 { font-size:1.3rem; } h2 { font-size:1.05rem; color:var(--dim); }
table { width:100%; border-collapse:collapse; font-size:.9rem; }
th, td { text-align:left; padding:.45rem .6rem; border-bottom:1px solid var(--line); }
th { color:var(--dim); font-weight:600; }
tr:hover td { background:#20293200; }
a { color:var(--acc); }
.cards { display:flex; gap:1rem; flex-wrap:wrap; margin:1rem 0; }
.card { background:var(--panel); border:1px solid var(--line); border-radius:8px;
        padding:.9rem 1.2rem; min-width:160px; }
.card .num { font-size:1.6rem; font-weight:700; color:var(--acc); }
.card .lbl { color:var(--dim); font-size:.8rem; }
pre { background:var(--panel); border:1px solid var(--line); border-radius:8px;
      padding:1rem; overflow-x:auto; font-size:.82rem; }
code { color:var(--acc); }
form.inline { display:flex; gap:.6rem; align-items:center; flex-wrap:wrap; }
input, textarea, select, button {
  background:#11181f; color:var(--fg); border:1px solid var(--line);
  border-radius:6px; padding:.45rem .7rem; font:inherit; }
textarea { width:100%; min-height:8rem; font-family:ui-monospace, monospace; }
button { background:var(--acc); color:#08211e; font-weight:700; cursor:pointer; }
button:hover { filter:brightness(1.1); }
.badge { display:inline-block; padding:.05rem .5rem; border-radius:99px;
         font-size:.75rem; border:1px solid var(--line); color:var(--dim); }
.badge.ok { color:var(--ok); border-color:var(--ok); }
.badge.fail, .badge.blocked, .badge.quarantined { color:var(--warn); border-color:var(--warn); }
.login-box { max-width:340px; margin:14vh auto; background:var(--panel);
             border:1px solid var(--line); border-radius:10px; padding:2rem; }
.login-box input { width:100%; margin:.6rem 0; }
.login-box button { width:100%; }
.err { color:var(--warn); }
.muted { color:var(--dim); font-size:.85rem; }

/* 窄視窗:導覽項目整個換行,不可逐字直排 */
nav{flex-wrap:wrap;row-gap:4px}
nav a{white-space:nowrap}
