
:root{
  --bg:#0f1115; --panel:#171a21; --panel2:#1e222b; --border:#2a2f3a;
  --text:#e8eaed; --muted:#9aa3b2; --accent:#e0263b; --accent2:#ff5a6e;
  --good:#2ecc71; --warn:#f5a623; --bad:#e0263b;
  --radius:14px;
  font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);line-height:1.5;padding-bottom:60px;}
header.top{
  background:linear-gradient(135deg,#1a1d24,#101319);
  border-bottom:3px solid var(--accent);
  padding:22px 18px 18px;
  position:sticky; top:0; z-index:10;
}
header.top h1{margin:0 0 4px; font-size:1.5rem; letter-spacing:.5px;}
header.top .sub{color:var(--muted); font-size:.95rem;}
nav.tabs{display:flex; gap:8px; flex-wrap:wrap; margin-top:14px;}
nav.tabs a{
  color:var(--text); text-decoration:none; background:var(--panel2);
  border:1px solid var(--border); padding:8px 14px; border-radius:999px; font-size:.9rem;
}
nav.tabs a.active{background:var(--accent); border-color:var(--accent); color:#fff; font-weight:600;}
main{max-width:900px; margin:0 auto; padding:20px 16px;}
.banner{
  background:var(--panel); border:1px solid var(--border); border-radius:var(--radius);
  padding:16px 18px; margin-bottom:20px; display:flex; gap:18px; flex-wrap:wrap; align-items:center;
}
.banner .stat{min-width:110px;}
.banner .stat .num{font-size:1.6rem; font-weight:700;}
.banner .stat .lbl{color:var(--muted); font-size:.78rem; text-transform:uppercase; letter-spacing:.5px;}
.stat.bad .num{color:var(--bad);}
.stat.good .num{color:var(--good);}
.stat.warn .num{color:var(--warn);}
h2{color:var(--accent2); border-bottom:1px solid var(--border); padding-bottom:8px; margin-top:36px;}
h3{color:var(--text); margin-top:22px;}
p{color:#cfd3da;}
.card{background:var(--panel); border:1px solid var(--border); border-radius:var(--radius); padding:16px 18px; margin-bottom:14px;}
a{color:var(--accent2);}
a:hover{color:#fff;}
ul.res{list-style:none; padding:0; margin:0;}
ul.res li{padding:8px 0; border-bottom:1px dashed var(--border);}
ul.res li:last-child{border-bottom:none;}
table{width:100%; border-collapse:collapse; margin:14px 0; font-size:.92rem;}
th,td{padding:9px 10px; border:1px solid var(--border); text-align:left;}
th{background:var(--panel2); color:var(--muted); text-transform:uppercase; font-size:.75rem; letter-spacing:.4px;}
tr.today{outline:2px solid var(--accent); outline-offset:-2px;}
details{background:var(--panel); border:1px solid var(--border); border-radius:var(--radius); margin-bottom:14px; padding:4px 4px;}
details[open]{border-color:var(--accent);}
summary{cursor:pointer; padding:12px 14px; font-weight:600; color:var(--accent2); list-style:none;}
summary::-webkit-details-marker{display:none;}
summary:before{content:"▸ "; display:inline-block; transition:transform .15s;}
details[open] summary:before{transform:rotate(90deg);}
details .inner{padding:4px 16px 16px;}
.daycard{background:var(--panel); border:1px solid var(--border); border-radius:var(--radius); padding:14px 16px; margin-bottom:10px;}
.daycard.today{border-color:var(--accent); box-shadow:0 0 0 1px var(--accent);}
.daycard .dhead{display:flex; justify-content:space-between; align-items:center; margin-bottom:8px; flex-wrap:wrap; gap:6px;}
.daycard .dhead .d{font-weight:700;}
.badge{font-size:.72rem; padding:3px 9px; border-radius:999px; text-transform:uppercase; letter-spacing:.4px; font-weight:700;}
.badge.pending{background:#2a2f3a; color:var(--muted);}
.badge.today{background:var(--accent); color:#fff;}
.badge.complete{background:var(--good); color:#06210f;}
.badge.missed{background:var(--bad); color:#fff;}
.checks{display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:6px 14px;}
label.chk{display:flex; align-items:center; gap:8px; padding:6px 0; font-size:.92rem; cursor:pointer; color:#dfe3ea;}
label.chk input[type=checkbox]{width:20px; height:20px; accent-color:var(--accent); cursor:pointer; flex-shrink:0;}
label.chk.opt{color:var(--muted); font-style:italic;}
label.chk.parent{border-top:1px dashed var(--border); margin-top:6px; padding-top:10px; color:var(--warn);}
.footnote{color:var(--muted); font-size:.85rem; margin-top:30px;}
.pill{display:inline-block; background:var(--panel2); border:1px solid var(--border); padding:2px 10px; border-radius:999px; font-size:.78rem; color:var(--muted); margin-left:8px;}
.grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:14px; margin:14px 0;}
.item{background:var(--panel); border:1px solid var(--border); border-radius:var(--radius); padding:14px 16px;}
.item h4{margin:0 0 6px; font-size:1rem; color:#fff;}
.item .rating{display:inline-block; font-size:.72rem; font-weight:700; padding:2px 8px; border-radius:6px; background:var(--panel2); color:var(--good); margin-bottom:6px;}
.item .rating.caution{color:var(--warn);}
.item p{margin:6px 0 0; font-size:.9rem; color:#cfd3da;}
.warnbox{background:#2a1a12; border:1px solid var(--warn); border-radius:var(--radius); padding:14px 16px; margin:14px 0; font-size:.9rem;}
.warnbox strong{color:var(--warn);}
