:root{
  /* Light theme — University of Kentucky blue on a clean field.
     Kentucky Blue #0033A0 accent, Columbia-blue tints for panels. */
  --bg:#f4f7fb;            /* page: soft blue-white */
  --panel:#ffffff;         /* cards */
  --panel-2:#e9f0f9;       /* hover / secondary fill (columbia tint) */
  --line:#d3ddec;          /* hairlines */
  --ink:#16233a;           /* primary text: deep slate-navy */
  --ink-dim:#5a6b84;       /* secondary text */
  --uk-blue:#0033A0;       /* Kentucky Blue — primary accent */
  --uk-blue-dk:#00246e;    /* darker blue for hovers */
  --columbia:#6ca0dc;      /* columbia blue — highlights */
  --phosphor:#1f8a5b;      /* good-data / node green (readable on light) */
  --node:#1f8a5b;
  --warn:#c0491f;          /* over-max / low-stock / retire */
  --radius:5px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:'Inter',system-ui,sans-serif;font-size:15px;line-height:1.5;
}
a{color:var(--uk-blue);text-decoration:none}
.mono{font-family:'Spline Sans Mono',ui-monospace,monospace}

/* ---- top bar ---- */
.topbar{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:.75rem 1.25rem;border-bottom:2px solid var(--uk-blue);
  background:#ffffff;flex-wrap:wrap;
}
.brand{display:flex;align-items:center;gap:.6rem}
.brand a{font-family:'Archivo',sans-serif;font-weight:700;letter-spacing:.06em;font-size:1rem;color:var(--uk-blue)}
.brand .amp{color:var(--columbia);margin:0 .15em}
.reticle{width:18px;height:18px;border:1.5px solid var(--uk-blue);border-radius:50%;position:relative;display:inline-block}
.reticle::before,.reticle::after{content:"";position:absolute;background:var(--uk-blue)}
.reticle::before{left:50%;top:-4px;bottom:-4px;width:1.5px;transform:translateX(-50%)}
.reticle::after{top:50%;left:-4px;right:-4px;height:1.5px;transform:translateY(-50%)}
nav{display:flex;gap:1.1rem;flex-wrap:wrap}
nav a{font-size:.82rem;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-dim)}
nav a:hover{color:var(--uk-blue)}

.wrap{max-width:1080px;margin:0 auto;padding:1.5rem 1.25rem 3rem}

/* ---- flashes ---- */
.flashwrap{max-width:1080px;margin:1rem auto 0;padding:0 1.25rem}
.flash{background:var(--panel-2);border-left:3px solid var(--uk-blue);
  padding:.6rem .9rem;border-radius:var(--radius);margin-bottom:.5rem;font-size:.9rem}

/* ---- headings ---- */
h1{font-family:'Archivo',sans-serif;font-weight:700;font-size:1.5rem;letter-spacing:.01em;margin:.2rem 0 1rem;color:var(--ink)}
h2{font-family:'Archivo',sans-serif;font-weight:600;font-size:1.05rem;letter-spacing:.03em;
  text-transform:uppercase;color:var(--uk-blue);margin:1.8rem 0 .8rem;
  padding-bottom:.35rem;border-bottom:2px solid var(--line)}
h3{font-family:'Archivo',sans-serif;font-weight:600;font-size:.95rem;margin:.2rem 0}
.eyebrow{font-family:'Spline Sans Mono',monospace;font-size:.72rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--ink-dim)}

/* ---- panels / cards ---- */
.grid{display:grid;gap:1rem}
.grid.cols-2{grid-template-columns:repeat(2,1fr)}
.grid.cols-3{grid-template-columns:repeat(3,1fr)}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:1rem 1.1rem;
  box-shadow:0 1px 2px rgba(22,35,58,.04)}
.card h3 a:hover{color:var(--uk-blue)}
.stat{font-family:'Spline Sans Mono',monospace;font-size:1.6rem;font-weight:600;color:var(--uk-blue);line-height:1.1}
.stat .unit{font-size:.7rem;color:var(--ink-dim);margin-left:.25em}
.muted{color:var(--ink-dim);font-size:.85rem}

/* ---- tables ---- */
table{width:100%;border-collapse:collapse;font-family:'Spline Sans Mono',monospace;font-size:.86rem}
th,td{text-align:right;padding:.42rem .55rem;border-bottom:1px solid var(--line)}
th:first-child,td:first-child{text-align:left}
thead th{color:var(--ink-dim);font-weight:600;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;
  border-bottom:2px solid var(--line)}
tbody tr:hover{background:var(--panel-2)}
tr.node td{background:rgba(31,138,91,.10)}
tr.node td:first-child{border-left:3px solid var(--node)}
.tag-node{color:var(--node);font-size:.72rem;letter-spacing:.05em;font-weight:600}
.tag-warn{color:var(--warn);font-size:.72rem;letter-spacing:.05em;font-weight:600}

/* ---- forms ---- */
form.inline{display:flex;gap:.5rem;flex-wrap:wrap;align-items:end}
label{display:block;font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:.25rem}
input,select,textarea{
  background:#fff;border:1px solid var(--line);color:var(--ink);
  padding:.45rem .55rem;border-radius:var(--radius);font:inherit;font-size:.88rem;width:100%}
input:focus,select:focus,textarea:focus{outline:2px solid var(--uk-blue);outline-offset:0;border-color:var(--uk-blue)}
.field{min-width:120px}
.field.sm{max-width:110px}
button,.btn{
  background:var(--uk-blue);color:#fff;border:none;padding:.5rem .9rem;border-radius:var(--radius);
  font-family:'Archivo',sans-serif;font-weight:600;font-size:.82rem;letter-spacing:.03em;
  text-transform:uppercase;cursor:pointer;white-space:nowrap}
button:hover,.btn:hover{background:var(--uk-blue-dk)}
.btn.ghost{background:transparent;color:var(--uk-blue);border:1px solid var(--line)}
.btn.ghost:hover{color:#fff;background:var(--uk-blue);border-color:var(--uk-blue)}

details{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:.6rem .9rem;margin:.6rem 0}
details summary{cursor:pointer;font-family:'Archivo',sans-serif;font-weight:600;font-size:.85rem;letter-spacing:.02em;color:var(--uk-blue)}
details[open] summary{color:var(--uk-blue-dk);margin-bottom:.6rem}

.pill{display:inline-block;padding:.12rem .5rem;border-radius:999px;font-size:.7rem;
  font-family:'Spline Sans Mono',monospace;border:1px solid var(--line);color:var(--ink-dim)}
.pill.warn{border-color:var(--warn);color:var(--warn)}
.pill.node{border-color:var(--node);color:var(--node)}

.foot{max-width:1080px;margin:0 auto;padding:1.5rem 1.25rem;border-top:2px solid var(--line);
  display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;color:var(--ink-dim);font-size:.78rem}

.qr{background:#fff;padding:.75rem;border-radius:var(--radius);display:inline-block;border:1px solid var(--line)}
.qr img{display:block;width:180px;height:180px;image-rendering:pixelated}

.rowgap>*+*{margin-top:.5rem}
.spread{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}

@media(max-width:720px){
  .grid.cols-2,.grid.cols-3{grid-template-columns:1fr}
  .wrap{padding:1rem}
  nav{gap:.7rem}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
