/* SpecOps3 V1b shared styles (match cover card vibe) */
:root{
  --bg:#05070d; --bg2:#0b1224; --card: rgba(255,255,255,.06);
  --text:#eef2ff; --muted:#b8c0dd; --line: rgba(255,255,255,.14);
  --accent:#34d399; --accent2:#60a5fa;
  --bad:#ef4444; --ok:#22c55e; --warn:#f59e0b;
  --shadow: 0 18px 55px rgba(0,0,0,.55);
}
html[data-theme="light"]{
  --bg:#f6f8fb; --bg2:#ffffff; --card:#ffffff;
  --text:#0b1224; --muted:#475569; --line: rgba(15,23,42,.14);
  --accent:#0ea5e9; --accent2:#22c55e;
  --shadow: 0 18px 55px rgba(2,6,23,.12);
}
*{box-sizing:border-box}
body{
  margin:0;
  font-family: system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  color: var(--text);
  background:
    radial-gradient(1100px 600px at 20% 10%, rgba(96,165,250,.18), transparent 60%),
    radial-gradient(900px 500px at 85% 30%, rgba(52,211,153,.16), transparent 60%),
    linear-gradient(180deg, var(--bg), var(--bg2));
  min-height:100vh;
}
.page{width:min(1320px, 100%); margin:0 auto; padding: 18px 14px 44px;}
.topbar{display:flex; align-items:center; justify-content:space-between; gap:14px; padding: 10px 0 18px; flex-wrap:wrap;}
.brand{display:flex; align-items:center; gap:14px; min-width: 260px;}
.brand-logo{width: 300px; max-width: 70vw; height:auto; display:block; filter: drop-shadow(0 10px 22px rgba(0,0,0,.35));}
.brand-title{font-weight:950; letter-spacing:.3px; font-size: 20px;}
.brand-sub{color:var(--muted); font-size: 14px; margin-top:2px;}
.top-actions{display:flex; gap:10px; align-items:center; flex-wrap:wrap; justify-content:flex-end;}
.grid{display:grid; gap:14px;}
.card{
  background: linear-gradient(180deg, var(--card), rgba(255,255,255,.03));
  border:1px solid var(--line);
  box-shadow: var(--shadow);
  border-radius: 20px;
  padding: 18px;
  backdrop-filter: blur(10px);
}
.h2{font-size: 24px; font-weight: 950; letter-spacing:.2px;}
.h3{font-size: 18px; font-weight: 900; letter-spacing:.2px;}
.muted{color:var(--muted);}
.tiny{font-size: 12px;}
.hr{height:1px; background:var(--line); margin: 12px 0;}
.row2{display:grid; grid-template-columns: 1fr 1fr; gap:10px;}
.row3{display:grid; grid-template-columns: 1fr; gap:10px;}
@media (min-width: 980px){ .row3{grid-template-columns: 1fr 1fr 1fr;} }
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding: 11px 13px; border-radius: 14px;
  text-decoration:none; border:1px solid transparent;
  font-weight: 900; font-size: 15px; cursor:pointer; user-select:none;
}
.btn.primary{background: linear-gradient(90deg, var(--accent), var(--accent2)); color:#061019;}
.btn.ghost{background: rgba(255,255,255,.05); border-color: var(--line); color: var(--text);}
.btn.ghost:hover{ background: rgba(255,255,255,.08); }
.in{
  width:100%; padding: 11px 12px; border-radius: 14px;
  border:1px solid var(--line); background: rgba(255,255,255,.04);
  color: var(--text); outline:none;
}
.select{cursor:pointer;}
.lbl{display:block; font-size: 12px; color: var(--muted); margin: 8px 0 6px;}
code{background: rgba(255,255,255,.06); padding:2px 6px; border-radius: 10px; border:1px solid var(--line);}
.alert{padding:10px 12px; border-radius: 14px; border:1px solid var(--line); margin-bottom:12px;}
.alert.ok{border-color: rgba(34,197,94,.35); background: rgba(34,197,94,.12);}
.alert.bad{border-color: rgba(239,68,68,.35); background: rgba(239,68,68,.12);}
.tabs{display:flex; gap:10px; flex-wrap:wrap; margin-bottom: 10px;}
.tab{
  padding: 10px 12px; border-radius: 999px; border:1px solid var(--line);
  background: rgba(255,255,255,.04); color: var(--text);
  font-weight: 950; cursor:pointer;
}
.tab.active{background: linear-gradient(90deg, rgba(52,211,153,.22), rgba(96,165,250,.22));}
.tabpane.hidden{display:none;}
.panegrid{display:grid; gap:12px;}
@media (min-width: 980px){ .panegrid{grid-template-columns: 1.55fr .85fr;} }
.chartbox,.sidebox{border:1px solid var(--line); border-radius: 18px; padding: 14px; background: rgba(255,255,255,.03);}
.boxhead{display:flex; justify-content:space-between; align-items:flex-end; gap:10px; margin-bottom:10px; flex-wrap:wrap;}
.tv{width:100%; height: 560px; border-radius: 16px; overflow:hidden; background: rgba(0,0,0,.18); border:1px dashed rgba(255,255,255,.10);}
@media (max-width: 520px){ .tv{height: 470px;} }
.kv{border:1px solid var(--line); border-radius: 16px; padding: 12px; background: rgba(255,255,255,.03);}
.k{font-size: 12px; color: var(--muted); font-weight: 900; letter-spacing:.2px;}
.v{font-size: 26px; font-weight: 950; margin-top: 6px;}
.statuswrap{display:flex; gap:10px; align-items:center; margin-top: 10px;}
.statuslight{width:14px; height:14px; border-radius: 50%; border:1px solid var(--line); box-shadow: 0 0 14px rgba(255,255,255,.12);}
.statuslight.green{background: var(--ok); box-shadow: 0 0 18px rgba(34,197,94,.45);}
.statuslight.yellow{background: var(--warn); box-shadow: 0 0 18px rgba(245,158,11,.45);}
.statuslight.red{background: var(--bad); box-shadow: 0 0 18px rgba(239,68,68,.45);}
.statustext{font-weight: 950; font-size: 16px;}
.checklist{display:grid; gap:8px; margin-top: 12px;}
.checklist label{display:flex; gap:10px; align-items:flex-start; font-size: 15px; color: var(--text); line-height:1.35;}
.checklist input{margin-top: 3px;}
.tiles{display:grid; grid-template-columns: 1fr; gap:10px; margin-top: 10px;}
@media (min-width: 520px){ .tiles{grid-template-columns: 1fr 1fr 1fr;} }
.tile{border:1px solid var(--line); border-radius: 16px; padding: 12px; background: rgba(255,255,255,.03);}
.notes{
  width:100%; min-height: 170px; padding: 14px;
  border-radius: 16px; border:1px solid var(--line);
  background: rgba(255,255,255,.04); color: var(--text);
  outline:none; resize: vertical;
}
.badge{display:inline-flex; align-items:center; gap:8px; padding: 7px 10px; border-radius: 999px; border:1px solid var(--line); background: rgba(255,255,255,.04); font-weight: 950; font-size: 12px;}
.dot{width:10px;height:10px;border-radius:50%;}
.dot.green{background: var(--ok);} .dot.yellow{background: var(--warn);} .dot.red{background: var(--bad);}
.list{display:grid; gap:8px; margin-top:10px;}
.item{border:1px solid var(--line); border-radius: 14px; padding: 10px 12px; background: rgba(255,255,255,.03);}
.scripture{opacity:.92;}