/* OakPulse HQ — RedOak-theme staff dashboard.
   Light content area + dark navy app shell. System fonts only, no external assets.
   Restyles ONLY the markup app.js emits; app.js is not touched. */

:root{
  --navy-900:#07132f;
  --navy-800:#09192e;
  --crimson:#b82135;
  --crimson-hover:#9c1a2c;
  --crimson-bright:#bb1938;
  --gold:#c6a56b;
  --ink:#1c2733;
  --muted:#697286;
  --muted-blue:#aab8cb;
  --line:#dfe5ee;
  --line-dark:#22304a;
  --surface:#ffffff;
  --page:#f4f6f9;
  --panel-dark:#121826;
  --green:#1e7a4c;
  --green-bg:#eaf6ef;
  --green-line:#bfe3cd;
  --amber:#9a6b12;
  --amber-bg:#fdf6e3;
  --amber-line:#ecd9a0;
  --red-bg:#fdecef;
  --red-line:#f3c2c7;
  --red-ink:#8f1520;
  --radius:14px;
  --shadow:0 1px 2px rgba(7,19,47,.06),0 8px 24px rgba(7,19,47,.06);
  --serif:Georgia,'Times New Roman',serif;
  --sans:Inter,system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --sidebar-w:240px;
}

*{box-sizing:border-box}
html,body{overflow-x:clip}
body{
  margin:0;
  background:var(--page);
  color:var(--ink);
  font:15px/1.6 var(--sans);
  -webkit-font-smoothing:antialiased;
}
a{color:var(--crimson)}
code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.86em;background:#eef1f6;border:1px solid var(--line);border-radius:6px;padding:1px 5px}
img{max-width:100%}

/* ---------- App shell: sidebar + topbar + content ---------- */
/* Logged-out state (nav hidden): single column, centred login. */
body{
  display:grid;
  grid-template-columns:1fr;
  grid-template-areas:"top" "main";
  grid-template-rows:auto 1fr;
  min-height:100vh;
}
/* Logged-in state (nav visible): dark sidebar left, topbar + content right. */
body:has(#nav:not([hidden])){
  grid-template-columns:var(--sidebar-w) minmax(0,1fr);
  grid-template-areas:"side top" "side main";
}

header{
  grid-area:top;
  display:flex;flex-wrap:wrap;gap:6px 20px;align-items:center;
  padding:14px 28px;
  background:var(--navy-900);
  color:#fff;
  border-bottom:3px solid var(--gold);
  position:sticky;top:0;z-index:10;
  min-width:0;
}
header h1{
  font-family:var(--serif);
  font-weight:500;
  font-size:24px;
  letter-spacing:-.02em;
  margin:0;
  line-height:1.1;
  white-space:nowrap;
  color:#fff; /* was inheriting navy from the global h1 rule — unreadable on the navy header */
}
header h1 span{color:var(--gold)}
/* Brand badge (P2-8): the real OakPulse badge, inlined as a data URI
   because the HQ server's MIME map has no .png entry (server.mjs is
   Phase 1-owned; a /logo.png file can replace this once '.png' is
   added there). 96px source, shown at 30px. */
.brand-logo{display:inline-block;width:30px;height:30px;vertical-align:-6px;margin-right:8px;
  background:url(data:image/png;base64,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) center/contain no-repeat}
header .sub{
  color:var(--muted-blue);
  font-size:12px;
  letter-spacing:.04em;
}
#who{
  margin-left:auto;
  text-align:right;
  font-size:13px;
  line-height:1.5;
  color:var(--muted-blue);
  min-width:0;
  overflow-wrap:anywhere;
}
#who b{color:#fff;font-weight:700}

/* Cross-app links in the header (Portal / Marketing / RedOak). */
.app-links{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.app-links a{
  color:#fff;border:1px solid rgba(255,255,255,.35);border-radius:999px;
  padding:6px 12px;font-size:12px;font-weight:600;text-decoration:none;white-space:nowrap;
}
.app-links a:hover{background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.6);color:#fff}

nav#nav{
  grid-area:side;
  background:var(--navy-900);
  color:#fff;
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:20px 14px;
  min-width:0;
  z-index:5;
}
nav#nav[hidden]{display:none}
nav#nav::before{
  content:"Rooms";
  display:block;
  font-size:11px;font-weight:700;
  text-transform:uppercase;letter-spacing:.12em;
  color:var(--gold);
  padding:0 12px 10px;
  border-bottom:1px solid var(--line-dark);
  margin-bottom:8px;
}
nav#nav button{
  display:block;width:100%;
  text-align:left;
  background:transparent;
  border:0;border-radius:10px;
  color:var(--muted-blue);
  padding:11px 12px;
  font:inherit;font-size:14px;font-weight:600;
  cursor:pointer;
  transition:background .15s,color .15s;
}
nav#nav button:hover{background:rgba(255,255,255,.07);color:#fff}
nav#nav button.on{
  background:rgba(255,255,255,.10);
  color:#fff;
  box-shadow:inset 3px 0 0 var(--gold);
}
nav#nav button#logoutBtn{
  margin-top:auto;
  border:1px solid var(--line-dark);
  color:#fff;
  text-align:center;
}
nav#nav button#logoutBtn:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.35)}

main{
  grid-area:main;
  padding:28px;
  min-width:0;
  max-width:1120px;
  width:100%;
  margin:0 auto;
}

/* ---------- Headings / text ---------- */
h1,h2,h3,h4{font-family:var(--serif);color:var(--navy-800);font-weight:500;line-height:1.2}
h2{margin:0 0 6px;font-size:30px;letter-spacing:-.02em}
h3{margin:0 0 10px;font-size:21px}
h4{margin:18px 0 8px;font-size:17px}
p{margin:0 0 12px}
.muted{color:var(--muted);font-size:13px;line-height:1.6}
#room > h2{
  padding-bottom:12px;
  border-bottom:1px solid var(--line);
  margin-bottom:10px;
}
#room > h2 + .muted{margin-bottom:4px}
#room > .muted{max-width:72ch}

/* Kicker label above room panels is added by JS copy; keep panel h3s serif. */
section.panel h3 .pill{font-family:var(--sans);vertical-align:middle}

/* ---------- Buttons / inputs / forms ---------- */
button,input,select,textarea{
  font:inherit;
  color:var(--ink);
}
button{
  cursor:pointer;
  background:var(--surface);
  color:var(--navy-800);
  border:1px solid #c9d2de;
  border-radius:10px;
  padding:9px 16px;
  font-weight:700;
  font-size:14px;
  transition:background .15s,border-color .15s,transform .15s,box-shadow .15s;
}
button:hover{border-color:var(--navy-800);transform:translateY(-1px);box-shadow:0 4px 12px rgba(7,19,47,.10)}
button.primary{
  background:var(--crimson);
  border-color:var(--crimson);
  color:#fff;
}
button.primary:hover{background:var(--crimson-hover);border-color:var(--crimson-hover)}
button:active{transform:translateY(0)}
input,select,textarea{
  background:var(--surface);
  border:1px solid #c9d2de;
  border-radius:10px;
  padding:10px 12px;
  width:100%;
  min-width:0;
}
textarea{min-height:96px;resize:vertical}
input[type="checkbox"]{width:auto;accent-color:var(--crimson)}
:focus-visible{
  outline:2px solid var(--crimson);
  outline-offset:2px;
}
nav#nav button:focus-visible,
header :focus-visible{outline-color:var(--gold)}

form.grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:12px;
  margin:16px 0;
  align-items:end;
}
form.grid label{
  display:grid;gap:6px;
  font-size:13px;font-weight:700;color:var(--ink);
}
form.grid label:has(input[type="checkbox"]){
  display:flex;align-items:flex-start;gap:8px;
  font-weight:600;
  padding:10px 0;
}
form.grid button{justify-self:start}
form.grid textarea{grid-column:1/-1}

/* ---------- Stat cards ---------- */
.cards{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
  gap:14px;
  margin:18px 0;
}
.card{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:20px;
  min-width:0;
  position:relative;
  overflow:hidden;
}
.card::before{
  content:"";
  position:absolute;inset:0 0 auto;height:3px;
  background:linear-gradient(90deg,var(--crimson),var(--gold),transparent 85%);
}
.card b{
  display:block;
  font-family:var(--serif);
  font-weight:500;
  font-size:36px;
  line-height:1.1;
  color:var(--navy-800);
  overflow-wrap:anywhere;
}
.card span{
  display:block;
  margin-top:6px;
  color:var(--muted);
  font-size:11px;font-weight:700;
  text-transform:uppercase;letter-spacing:.09em;
  line-height:1.5;
}

/* ---------- Panels / tables ---------- */
section.panel{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:20px 22px;
  margin:16px 0;
}
section.panel > div[style]{margin:0 -6px}
table{
  width:100%;
  border-collapse:collapse;
  font-size:14px;
}
th,td{
  text-align:left;
  padding:10px 12px;
  border-bottom:1px solid var(--line);
  vertical-align:top;
  word-break:break-word;
}
th{
  color:var(--muted);
  font-size:11px;font-weight:700;
  text-transform:uppercase;letter-spacing:.09em;
  white-space:nowrap;
}
tbody tr:last-child td{border-bottom:0}
tbody tr:hover td{background:#f7f9fc}

/* ---------- Status pills / notices ---------- */
.pill{
  display:inline-block;
  padding:3px 10px;
  border-radius:999px;
  font-size:12px;font-weight:700;
  border:1px solid #c9d2de;
  color:var(--navy-800);
  background:var(--surface);
  white-space:nowrap;
}
.pill.ok{color:var(--green);border-color:var(--green);background:var(--green-bg)}
.pill.warn{color:var(--amber);border-color:var(--amber);background:var(--amber-bg)}
.pill.bad{color:var(--crimson);border-color:var(--crimson);background:var(--red-bg)}
.err{
  background:var(--red-bg);
  border:1px solid var(--red-line);
  color:var(--red-ink);
  padding:12px 14px;
  border-radius:10px;
  margin:12px 0;
  font-size:14px;
}
.okbox{
  background:var(--green-bg);
  border:1px solid var(--green-line);
  color:#14532d;
  padding:12px 14px;
  border-radius:10px;
  margin:12px 0;
  font-size:14px;
}
section.panel ul{margin:6px 0 4px;padding-left:20px;line-height:1.7}
section.panel ul li{margin-bottom:6px}
section.panel ul li b{color:var(--navy-800)}

pre{
  background:#f7f9fc;
  border:1px solid var(--line);
  border-radius:10px;
  padding:14px;
  overflow:auto;
  font-size:12px;line-height:1.55;
  max-height:340px;
  color:var(--ink);
}

/* Inline room controls (Evidence / Conference selectors) */
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:6px 0}
#room > label{
  display:inline-grid;gap:6px;
  font-size:13px;font-weight:700;color:var(--ink);
  margin:6px 12px 6px 0;
  vertical-align:middle;
  min-width:220px;max-width:100%;
}
#room > label select{width:100%}
#room > button{margin:6px 8px 6px 0}
#evOut,#mtOut{margin-top:8px}
#mtOut section.panel{margin-top:14px}
#mtOut section.panel p b{color:var(--navy-800)}

/* ---------- Login / register ---------- */
#login{
  max-width:480px;
  margin:48px auto;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:32px;
  position:relative;
  overflow:hidden;
}
#login::before{
  content:"";
  position:absolute;inset:0 0 auto;height:4px;
  background:linear-gradient(90deg,var(--crimson),var(--gold));
}
#login h2{font-size:28px;margin-bottom:8px}
.kicker{
  font-size:12px;font-weight:700;
  text-transform:uppercase;letter-spacing:.12em;
  color:var(--crimson);
  margin:0 0 8px;
}
#login .muted{font-size:14px}
#login label{
  display:grid;gap:6px;
  margin:12px 0;
  font-size:13px;font-weight:700;color:var(--ink);
}
#login input{width:100%}
#loginForm button{width:100%;margin-top:6px;min-height:46px}
#login details{
  margin-top:18px;
  border-top:1px solid var(--line);
  padding-top:14px;
}
#login details summary{
  cursor:pointer;
  font-weight:700;
  color:var(--crimson);
  font-size:14px;
  padding:4px 0;
}
#login details summary:hover{color:var(--crimson-hover)}
#regForm button{width:100%;min-height:44px;margin-top:4px}
#regMsg{margin:10px 0 0}
#loginErr:empty{display:none}

/* ---------- Responsive ---------- */
@media (max-width:1020px){
  :root{--sidebar-w:210px}
  main{padding:22px}
  .card b{font-size:30px}
}
@media (max-width:720px){
  /* Sidebar collapses to a horizontal strip under the topbar. */
  body:has(#nav:not([hidden])){
    grid-template-columns:1fr;
    grid-template-areas:"top" "side" "main";
  }
  header{padding:12px 16px;position:static}
  header h1{font-size:20px}
  #who{margin-left:0;text-align:left;flex-basis:100%}
  .app-links{flex-basis:100%}
  nav#nav{
    flex-direction:row;
    flex-wrap:nowrap;
    overflow-x:auto;
    padding:10px 12px;
    gap:6px;
    -webkit-overflow-scrolling:touch;
  }
  nav#nav::before{display:none}
  nav#nav button{
    width:auto;flex:0 0 auto;
    padding:8px 14px;
    border:1px solid var(--line-dark);
    border-radius:999px;
    white-space:nowrap;
  }
  nav#nav button.on{box-shadow:none;border-color:var(--gold);color:#fff}
  nav#nav button#logoutBtn{margin-top:0;margin-left:auto}
  main{padding:16px}
  h2{font-size:25px}
  .cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .card{padding:16px}
  .card b{font-size:28px}
  section.panel{padding:16px}
  table{font-size:13px}
  th,td{padding:8px}
  form.grid{grid-template-columns:1fr}
  #room > label{display:grid;margin:8px 0;min-width:0}
  #login{margin:24px auto;padding:24px 20px}
}
@media (max-width:380px){
  .cards{grid-template-columns:1fr}
  header .sub{display:none}
  th{white-space:normal}
}
@media (prefers-reduced-motion:reduce){
  *{transition:none!important;scroll-behavior:auto!important}
}
