/* NZHRM Command Centre — themes: Moana (default), Lagoon, Midnight. Print-ready A4. */

:root, html[data-theme=moana]{
  --bg:#061a22; --bg2:#08222c; --card:#0c2c38; --card2:#113744; --line:rgba(217,184,92,.18); --line2:#1b4654;
  --gold:#d9b85c; --gold2:#f0d99a; --accent:#4fc3c7; --accent2:#7fe0e3;
  --text:#e8f3f5; --muted:#9fc0c9; --ok:#5fd38d; --warn:#f2b84b; --bad:#ff7d6b;
  --side1:#082630; --side2:#04141b; --top:rgba(8,34,44,.96); --land1:#0d3d4e; --land2:#061a22;
  --input:#07202a; --track:#143644; --navgrp:#79a3b0; --tint:rgba(79,195,199,.08);
}
html[data-theme=lagoon]{
  --bg:#07242b; --bg2:#0a2f38; --card:#0e3b46; --card2:#145060; --line:rgba(217,184,92,.22); --line2:#1d5767;
  --gold:#e0c36c; --gold2:#f6e3ad; --accent:#5fd9c8; --accent2:#93ece0;
  --text:#eefafa; --muted:#a9ccd2; --ok:#63dc96; --warn:#f5c35e; --bad:#ff8c7a;
  --side1:#0b3240; --side2:#06202a; --top:rgba(10,47,56,.96); --land1:#12566a; --land2:#0a2f38;
  --input:#092b35; --track:#17475a; --navgrp:#88b4c0; --tint:rgba(95,217,200,.09);
}
html[data-theme=midnight]{
  --bg:#0a0d1c; --bg2:#0e1226; --card:#121833; --card2:#18203f; --line:rgba(201,170,90,.16); --line2:#26304f;
  --gold:#d9b85c; --gold2:#ecd28e; --accent:#8ea2e8; --accent2:#b3c2f3;
  --text:#e9e7f2; --muted:#aab3d4; --ok:#5fd38d; --warn:#f2b84b; --bad:#ff7d6b;
  --side1:#111633; --side2:#090c1a; --top:rgba(14,18,38,.96); --land1:#1e2552; --land2:#0e1226;
  --input:#0d1229; --track:#222b4a; --navgrp:#7f8bb8; --tint:rgba(142,162,232,.08);
}
html[data-theme=navy]{
  --bg:#050b1a; --bg2:#081226; --card:#0c1830; --card2:#11213f; --line:rgba(212,175,55,.2); --line2:#1d2f52;
  --gold:#d4af37; --gold2:#f0d27a; --accent:#6f9bff; --accent2:#9ab8ff;
  --text:#f6ebc8; --muted:#c9d6ea; --ok:#5fd38d; --warn:#f2b84b; --bad:#ff7d6b;
  --side1:#0b1a36; --side2:#050b1a; --top:rgba(8,18,38,.96); --land1:#12306b; --land2:#081226;
  --input:#071226; --track:#1a2a4a; --navgrp:#8aa2c8; --tint:rgba(111,155,255,.08);
}
html[data-theme=aubergine]{
  --bg:#11081d; --bg2:#170c27; --card:#1b102f; --card2:#24173d; --line:rgba(212,175,55,.18); --line2:#3a2a5a;
  --gold:#d4af37; --gold2:#f0d27a; --accent:#b48cff; --accent2:#cbb0ff;
  --text:#f6ebc8; --muted:#d5c4ef; --ok:#5fd38d; --warn:#f2b84b; --bad:#ff7d6b;
  --side1:#1f1238; --side2:#120a21; --top:rgba(23,12,39,.95); --land1:#3a1f63; --land2:#1a0f2d;
  --input:#160c27; --track:#2e2148; --navgrp:#a993cf; --tint:rgba(180,140,255,.08);
}
html[data-theme=black]{
  --bg:#000000; --bg2:#0a0a0a; --card:#111111; --card2:#1a1a1a; --line:rgba(212,175,55,.22); --line2:#2a2a2a;
  --gold:#d4af37; --gold2:#f0d27a; --accent:#9fb4c8; --accent2:#c4d2df;
  --text:#f2f2f2; --muted:#b8b8b8; --ok:#5fd38d; --warn:#f2b84b; --bad:#ff7d6b;
  --side1:#0d0d0d; --side2:#000000; --top:rgba(8,8,8,.96); --land1:#1c1c1c; --land2:#050505;
  --input:#0a0a0a; --track:#262626; --navgrp:#8f8f8f; --tint:rgba(255,255,255,.05);
}
html[data-theme=darkred]{
  --bg:#1a0506; --bg2:#22080a; --card:#2a0b0e; --card2:#361015; --line:rgba(212,175,55,.22); --line2:#4a1a20;
  --gold:#d4af37; --gold2:#f0d27a; --accent:#ff8a8a; --accent2:#ffb3b3;
  --text:#f8ece4; --muted:#e0c2c2; --ok:#5fd38d; --warn:#f2b84b; --bad:#ff9e8a;
  --side1:#2e0a0e; --side2:#150405; --top:rgba(34,8,10,.96); --land1:#5a1219; --land2:#22080a;
  --input:#1f0608; --track:#4a1a20; --navgrp:#d09a9a; --tint:rgba(255,138,138,.08);
}

:root,[data-bs-theme=dark]{
  --bs-body-bg:var(--bg); --bs-body-color:var(--text); --bs-border-color:var(--line);
  --bs-secondary-color:var(--muted); --bs-tertiary-bg:var(--card);
  --bs-link-color:var(--gold2); --bs-link-hover-color:#fff6d6; --bs-heading-color:var(--text); --bs-emphasis-color:#fff;
}
html,body{background:var(--bg);color:var(--text);font-family:'Manrope','Segoe UI',system-ui,Arial,sans-serif}
h1,h2,.h1,.h2,.h3,.brand-title,.hero h1{font-family:'Cormorant Garamond',Georgia,serif;letter-spacing:.2px}
.text-muted{color:var(--muted)!important;opacity:.9}
.gold{color:var(--gold)} .accent{color:var(--accent)}
a{text-decoration:none} a:hover{text-decoration:underline}
:focus-visible{outline:2px solid var(--gold2);outline-offset:2px;border-radius:4px}

/* ---------------------------------------------------------------- landing */
body.landing{background:radial-gradient(1200px 620px at 50% -10%,var(--land1) 0%,var(--land2) 48%,var(--bg) 100%);min-height:100vh}
.landing .kick{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);font-weight:700}
.landing .hero h1{font-weight:700;font-size:clamp(1.55rem,3.6vw,2.7rem);margin-top:.6rem}
.hero-logo{filter:drop-shadow(0 6px 24px rgba(217,184,92,.32))}
.landing .accent-line{color:var(--gold2);font-weight:600;font-size:1.02rem;max-width:900px;margin:.6rem auto}
.landing .sub{color:var(--muted);max-width:820px}
.hero-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem;max-width:960px;margin:1.6rem auto 0}
.hero-stats div{background:var(--tint);border:1px solid var(--line);border-radius:.8rem;padding:.8rem}
.hero-stats b{display:block;font-size:1.55rem;color:var(--gold);font-family:'Cormorant Garamond',serif}
.hero-stats span{font-size:.72rem;color:var(--muted);line-height:1.25;display:block}
@media(max-width:700px){.hero-stats{grid-template-columns:repeat(2,1fr)}}
.pillars{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-top:1.2rem}
.pillars span{border:1px solid var(--line);border-radius:999px;padding:.25rem .7rem;font-size:.78rem;color:var(--muted);background:var(--card)}
.grp-label{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);margin:1.3rem 0 .5rem;font-weight:700;border-bottom:1px solid var(--line);padding-bottom:.3rem}
.role-card{background:var(--card);border:1px solid var(--line);border-radius:1rem;padding:1rem;display:flex;flex-direction:column;gap:.55rem;height:100%;transition:transform .14s,border-color .14s}
.role-card:hover{transform:translateY(-2px);border-color:var(--gold)}
.role-card .rc-top{display:flex;gap:.6rem;align-items:flex-start}
.role-card .rc-ic{font-size:1.5rem;line-height:1}
.role-card .rc-name{font-weight:700;font-size:.95rem;line-height:1.25}
.role-card .rc-org{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--accent)}
.role-card .rc-den{font-size:.82rem;color:var(--muted);flex:1}
.role-card.feature{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold) inset,0 8px 28px rgba(0,0,0,.35)}

/* ---------------------------------------------------------------- shell */
.cc{display:flex;min-height:100vh}
.sidebar{width:252px;flex:0 0 252px;background:linear-gradient(180deg,var(--side1),var(--side2));border-right:1px solid var(--line);
  display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto}
.brand{display:flex;gap:.6rem;align-items:center;padding:.9rem .8rem;border-bottom:1px solid var(--line)}
.brand-title{font-weight:700;font-size:1.05rem;color:var(--gold)}
.brand-sub{font-size:.68rem;color:var(--muted);line-height:1.2}
.sidebar nav{padding:.5rem .4rem;flex:1}
.nav-grp{font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:var(--navgrp);margin:.85rem .55rem .3rem;font-weight:700}
.nav-item-cc{display:flex;align-items:center;gap:.5rem;padding:.42rem .55rem;border-radius:.5rem;color:var(--text);font-size:.85rem;min-height:38px}
.nav-item-cc:hover{background:var(--tint);text-decoration:none}
.nav-item-cc.active{background:var(--card2);color:var(--gold2);box-shadow:inset 2px 0 0 var(--gold)}
.nav-item-cc .ic{width:1.3rem;text-align:center}
.nav-item-cc .pill{margin-left:auto;background:var(--bad);color:#fff;border-radius:999px;font-size:.66rem;padding:0 .4rem;font-weight:700}
.nav-item-cc .pill-warn{background:var(--warn);color:#222}
.side-foot{font-size:.65rem;color:var(--muted);padding:.7rem .8rem;border-top:1px solid var(--line)}
.main{flex:1;min-width:0;display:flex;flex-direction:column}

.topbar{position:sticky;top:0;z-index:20;background:var(--top);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);
  display:flex;gap:.45rem;align-items:center;padding:.5rem .7rem;flex-wrap:wrap}
.role-chip{background:var(--card);border:1px solid var(--line);border-radius:999px;padding:.2rem .7rem;font-size:.76rem;display:flex;gap:.4rem;align-items:center;max-width:46ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.role-chip .org{color:var(--accent);font-size:.66rem;text-transform:uppercase;letter-spacing:.06em}
.search-wrap{position:relative;flex:1;min-width:180px}
.search-results{position:absolute;top:100%;left:0;right:0;background:var(--card);border:1px solid var(--line);border-radius:.6rem;margin-top:.25rem;max-height:60vh;overflow:auto;display:none;z-index:40}
.search-results a{display:block;padding:.4rem .6rem;border-bottom:1px solid var(--line2);font-size:.84rem;color:var(--text)}
.search-results a small{display:block;color:var(--muted);font-size:.7rem}
.search-results a:hover,.search-results a.sel{background:var(--card2);text-decoration:none}
.btn-gold{background:var(--gold);border-color:var(--gold);color:#11222a;font-weight:600}
.btn-gold:hover{background:var(--gold2);border-color:var(--gold2);color:#11222a}
.btn-outline-gold{border-color:var(--line);color:var(--gold2)}
.btn-outline-gold:hover{background:var(--tint);border-color:var(--gold);color:var(--gold2)}
.theme-sel,.lang-toggle .btn{font-size:.74rem}
.content{padding:1rem;flex:1}
@media(min-width:1500px){.content{padding:1.2rem 2rem}}

/* alerts banner */
.alert-top{background:linear-gradient(90deg,rgba(255,125,107,.16),transparent);border-bottom:1px solid var(--line)}
.at-head{padding:.4rem .8rem;font-size:.78rem;display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}
.at-link{margin-left:auto;color:var(--gold2)}
.at-row{display:flex;gap:.5rem;align-items:center;padding:.3rem .8rem;font-size:.8rem;border-top:1px solid var(--line2);flex-wrap:wrap}
.at-sev{font-size:.62rem;font-weight:800;letter-spacing:.07em;padding:.08rem .4rem;border-radius:.3rem;background:var(--warn);color:#201a06}
.sev-critical .at-sev{background:var(--bad);color:#fff}
.sev-high .at-sev{background:var(--warn);color:#201a06}
.sev-medium .at-sev{background:var(--accent);color:#06232a}
.sev-info .at-sev{background:var(--card2);color:var(--text)}
.at-msg{flex:1;min-width:200px}
.at-more{padding:.25rem .8rem .45rem;font-size:.76rem}
.status-strip{background:var(--card);border-bottom:1px solid var(--line);padding:.3rem .8rem;font-size:.72rem;color:var(--muted)}
.mt-banner{background:rgba(79,195,199,.1);border-bottom:1px solid var(--line);padding:.3rem .8rem;font-size:.74rem}

/* ---------------------------------------------------------------- content */
.page-head h1{color:var(--gold2)}
.lead-sm{font-size:.92rem;color:var(--muted);max-width:90ch}
.tor-ref{font-size:.74rem;color:var(--accent)}
.cc-card{background:var(--card);border:1px solid var(--line);border-radius:.85rem;overflow:hidden}
.cc-card>.card-header{background:var(--card2);border-bottom:1px solid var(--line);font-size:.9rem;padding:.5rem .8rem}
.cc-card>.card-body{padding:.85rem}
.cc-table{--bs-table-bg:transparent;--bs-table-color:var(--text);font-size:.85rem}
.cc-table th{color:var(--gold);font-weight:600;font-size:.74rem;text-transform:uppercase;letter-spacing:.05em;border-bottom-color:var(--line)!important;white-space:nowrap}
.cc-table td{border-color:var(--line2)!important;vertical-align:top}
.cc-table tbody tr:hover{background:var(--tint)}
.table-responsive{scrollbar-width:thin}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:.8rem;padding:.7rem .8rem;height:100%}
.kpi .v{font-family:'Cormorant Garamond',serif;font-size:1.6rem;font-weight:700;color:var(--gold);line-height:1.1}
.kpi .l{font-size:.74rem;color:var(--muted);line-height:1.25;margin-top:.15rem}
.kpi.ok .v{color:var(--ok)} .kpi.warn .v{color:var(--warn)} .kpi.bad .v{color:var(--bad)} .kpi.acc .v{color:var(--accent)}
a:hover .kpi{border-color:var(--gold)}
.bar{background:var(--track);border-radius:999px;height:7px;overflow:hidden}
.bar span{display:block;height:100%;background:var(--accent);border-radius:999px}
.bar span.ok{background:var(--ok)} .bar span.warn{background:var(--warn)} .bar span.bad{background:var(--bad)} .bar span.gold{background:var(--gold)}
.rag{display:inline-block;width:.65rem;height:.65rem;border-radius:3px;margin-right:.25rem;vertical-align:baseline}
.dbadge{font-size:.6rem;letter-spacing:.05em}
.badge{font-weight:600}
.chart{overflow-x:auto;color:var(--text)}
.chart svg{max-width:100%;height:auto;min-width:300px}
.spark{vertical-align:middle}
.dep-map svg{min-width:640px}
.gate-grid svg{min-width:560px}

.box-note{background:rgba(242,184,75,.1);border:1px solid rgba(242,184,75,.4);border-radius:.6rem;padding:.6rem .8rem;font-size:.86rem}
.box-ok{background:rgba(95,211,141,.09);border:1px solid rgba(95,211,141,.35);border-radius:.6rem;padding:.6rem .8rem}
.box-gap{background:rgba(255,125,107,.09);border:1px solid rgba(255,125,107,.35);border-radius:.6rem;padding:.6rem .8rem}
.withheld{background:repeating-linear-gradient(45deg,var(--card),var(--card) 8px,var(--card2) 8px,var(--card2) 16px);
  border:1px dashed var(--line);border-radius:.6rem;padding:.8rem;color:var(--muted);font-size:.85rem}

/* breadcrumbs + return */
.crumbs{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;margin-bottom:.7rem;font-size:.78rem}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:.35rem;margin:0;padding:0}
.crumbs li:not(:last-child)::after{content:'›';margin-left:.35rem;color:var(--muted)}
.crumbs a{color:var(--accent)} .crumbs span{color:var(--muted)}
.back-btn{white-space:nowrap}

/* citations and provenance links */
sup.fn a{color:var(--gold2);font-weight:700;padding:0 .12rem}
.footnotes{margin-top:1.5rem;border-top:1px solid var(--line);padding-top:.6rem;font-size:.78rem;color:var(--muted)}
.footnotes ol{padding-left:1.2rem} .footnotes li{margin-bottom:.2rem}
.fn-back{color:var(--accent)}
a.dp{color:var(--gold2);border-bottom:1px dotted var(--gold);padding-bottom:1px}
a.dp:hover{text-decoration:none;background:var(--tint)}
a.asm{color:var(--accent);font-size:.78rem;border-bottom:1px dotted var(--accent)}
a.cite-src{color:var(--gold2)}

/* tree */
.tree details{border-left:2px solid var(--line2);margin-left:.4rem;padding-left:.7rem}
.tree summary{cursor:pointer;padding:.3rem 0;font-size:.9rem;min-height:38px;display:flex;align-items:center;gap:.4rem}
.tree summary::marker{color:var(--gold)}
.tree .node{font-size:.84rem;padding:.3rem 0 .3rem .4rem;border-left:1px solid var(--line2);margin-left:.3rem}
.flash-target{animation:flashrow 2.4s ease-out}
@keyframes flashrow{0%{background:rgba(217,184,92,.3)}100%{background:transparent}}

/* comments */
.cmt{background:var(--card2);border:1px solid var(--line2);border-radius:.5rem;padding:.4rem .6rem;margin-bottom:.35rem;font-size:.84rem}

/* interview studio */
.q-card{background:var(--card);border:1px solid var(--line);border-radius:.7rem;margin-bottom:.7rem}
.q-card summary{padding:.6rem .8rem;font-weight:600;font-size:.92rem;cursor:pointer;display:flex;gap:.5rem;align-items:flex-start;min-height:44px}
.q-card .q-body{padding:0 .8rem .8rem;font-size:.88rem;border-top:1px solid var(--line2)}
.q-card .q-body h6{color:var(--gold);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;margin:.7rem 0 .25rem}
.q-ans{white-space:pre-line;line-height:1.55}
.q-trap{background:rgba(255,125,107,.1);border-left:3px solid var(--bad);padding:.4rem .6rem;border-radius:.3rem}
.q-press{background:rgba(79,195,199,.09);border-left:3px solid var(--accent);padding:.4rem .6rem;border-radius:.3rem}

/* forms */
.form-control,.form-select{background:var(--input);border-color:var(--line2);color:var(--text)}
.form-control:focus,.form-select:focus{background:var(--input);color:var(--text);border-color:var(--gold);box-shadow:0 0 0 .2rem rgba(217,184,92,.18)}
.form-control::placeholder{color:var(--muted);opacity:.7}
.nav-tabs{border-bottom-color:var(--line)}
.nav-tabs .nav-link{color:var(--muted);border:0;border-bottom:2px solid transparent;font-size:.86rem;padding:.4rem .7rem;min-height:40px}
.nav-tabs .nav-link:hover{color:var(--text);border-bottom-color:var(--line)}
.nav-tabs .nav-link.active{background:transparent;color:var(--gold2);border-bottom-color:var(--gold)}

.foot{border-top:1px solid var(--line);padding:.8rem 1rem;font-size:.75rem;color:var(--muted);background:var(--bg2)}

/* ------------------------------------------------------------ responsive */
.print-header{display:none}
@media(max-width:991.98px){
  .sidebar{position:fixed;left:-260px;top:0;z-index:60;transition:left .18s;box-shadow:0 0 40px rgba(0,0,0,.5)}
  .sidebar.open{left:0}
  .cc{display:block}
  .role-chip{max-width:18ch}
  .content{padding:.75rem}
  .hero-stats{gap:.5rem}
}
@media(max-width:575.98px){
  .topbar{padding:.4rem .5rem;gap:.3rem}
  .search-wrap{order:10;flex-basis:100%}
  .kpi .v{font-size:1.35rem}
  .cc-table{font-size:.8rem}
  .cc-table td,.cc-table th{padding:.3rem .35rem}
  .crumbs{font-size:.72rem}
}
/* tap targets */
.btn,.nav-link,.nav-item-cc,summary,.form-control,.form-select{min-height:38px}
.btn-sm{min-height:34px}

/* ---------------------------------------------------------------- print */
@media print{
  @page{size:A4;margin:14mm}
  html,body{background:#fff!important;color:#111!important}
  .sidebar,.topbar,.no-print,.alert-top,.status-strip,.mt-banner,.foot,.crumbs{display:none!important}
  .cc,.main{display:block}
  .content{padding:0}
  .print-header{display:flex;justify-content:space-between;border-bottom:1px solid #999;padding-bottom:4pt;margin-bottom:8pt;font-size:9pt}
  .cc-card{border:1px solid #bbb;break-inside:avoid;background:#fff}
  .cc-card>.card-header{background:#f0f4f6;color:#111}
  .cc-table{color:#111;font-size:9pt} .cc-table th{color:#444} .cc-table td,.cc-table th{border-color:#bbb!important}
  .kpi{border:1px solid #bbb;background:#fff} .kpi .v{color:#0c3a4a}
  h1,h2,h3,h4,.gold,.page-head h1{color:#0c3a4a!important}
  .chart svg{max-width:100%} .table-responsive{overflow:visible}
  a{color:#0c3a4a!important;text-decoration:none}
  details{open:true} details>summary{list-style:none}
  details:not([open])>*:not(summary){display:block!important}
  .box-note,.box-ok,.box-gap,.withheld{border:1px solid #bbb;background:#fafafa}
}

/* ---------------------------------------------------- alerts bell + panel */
.bell-wrap{position:relative}
.bell-btn{position:relative;font-size:1rem;line-height:1;padding:.3rem .55rem}
.bell-count{position:absolute;top:-.35rem;right:-.35rem;background:var(--warn);color:#201a06;
  border-radius:999px;font-size:.62rem;font-weight:800;padding:0 .3rem;min-width:1.1rem;text-align:center}
.bell-count.crit{background:var(--bad);color:#fff}
.bell-panel{display:none;position:absolute;right:0;top:calc(100% + .4rem);width:min(44rem,92vw);
  background:var(--card);border:1px solid var(--line);border-radius:.7rem;box-shadow:0 18px 50px rgba(0,0,0,.55);
  z-index:60;max-height:70vh;overflow:auto}
.bell-wrap.open .bell-panel{display:block}
.bp-head{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;padding:.5rem .7rem;
  border-bottom:1px solid var(--line);font-size:.8rem;background:var(--card2);position:sticky;top:0}
.bp-row{display:flex;gap:.5rem;align-items:flex-start;padding:.45rem .7rem;border-bottom:1px solid var(--line2);font-size:.82rem}
.bp-row:last-child{border-bottom:0}
.bp-row .at-msg{flex:1;min-width:10rem}
.bp-act{display:flex;gap:.3rem;align-items:center;flex-wrap:wrap}
@media(max-width:575.98px){.bell-panel{position:fixed;left:.5rem;right:.5rem;width:auto;top:3.4rem}}

/* ---------------------------------------------------- report drafts */
.rep-doc{background:var(--card);border:1px solid var(--line);border-radius:.8rem;padding:1.1rem 1.3rem}
.rep-doc h1{font-size:1.45rem;color:var(--gold2);margin-bottom:.2rem}
.rep-doc h2{font-size:1.05rem;border-bottom:1px solid var(--line);padding-bottom:.25rem}
.rep-doc p,.rep-doc li{font-size:.9rem;line-height:1.55}
.rep-doc table{font-size:.84rem}
.rep-need{background:rgba(242,184,75,.12);border-left:3px solid var(--warn);border-radius:.3rem;
  padding:.45rem .7rem;margin:.6rem 0;font-size:.85rem}
@media print{.rep-doc{border:0;padding:0;background:#fff}.rep-need{background:#fafafa;border-left:3px solid #999}}

/* -------------------------------------------- sidebar sub-navigation */
.nav-sub{margin:.1rem 0 .4rem .9rem;border-left:1px solid var(--line2);padding-left:.5rem}
.nav-sub-item{display:block;padding:.3rem .45rem;border-radius:.4rem;color:var(--muted);
  font-size:.78rem;line-height:1.25;min-height:32px}
.nav-sub-item:hover{background:var(--tint);color:var(--text);text-decoration:none}
.nav-sub-item.active{color:var(--gold2);background:var(--card2);font-weight:600}

/* ------------------------------------------------------- page instructions */
.help-box{background:var(--card);border:1px solid var(--line);border-left:3px solid var(--accent);
  border-radius:.6rem;margin:-.4rem 0 1rem;overflow:hidden}
.help-box summary{cursor:pointer;padding:.5rem .8rem;font-size:.88rem;display:flex;gap:.5rem;
  align-items:center;flex-wrap:wrap;min-height:40px}
.help-box summary::marker{color:var(--accent)}
.help-ic{font-size:1rem}
.help-hint{font-size:.74rem;color:var(--muted);margin-left:auto}
.help-body{padding:0 .9rem .8rem;border-top:1px solid var(--line2);font-size:.86rem;line-height:1.55}
.help-body h6{color:var(--gold);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;margin:.7rem 0 .3rem}
.help-body ol,.help-body ul{padding-left:1.15rem}
.help-body li{margin-bottom:.25rem}
.help-say{background:var(--tint);border-radius:.4rem;padding:.45rem .6rem;margin-top:.6rem;font-size:.85rem}
@media print{.help-box{display:none}}

/* ============================================================ THE DECK
   Two modes from one set of markup: ".review" stacks every slide as a card so the deck can
   be read and printed, ".present" shows one slide at a time, full screen. */
.deck { --sl-pad: clamp(18px, 3.2vw, 46px); }
.deck .slide {
  position: relative; background: var(--card); border: 1px solid var(--line);
  border-radius: 14px; overflow: hidden; color: var(--text);
}
.deck .slide::before {
  content: ''; position: absolute; inset: 0 0 auto 0; height: 3px;
  background: linear-gradient(90deg, var(--gold), var(--accent) 55%, transparent);
}
.deck .slide-inner { padding: var(--sl-pad) var(--sl-pad) calc(var(--sl-pad) * .6); }
.deck .slide h2 {
  font-family: "Cormorant Garamond", Georgia, serif; font-weight: 700;
  font-size: clamp(1.45rem, 2.7vw, 2.3rem); line-height: 1.15; color: var(--gold);
  margin: 0 0 .5rem;
}
.deck .s-lead { font-size: clamp(.95rem, 1.35vw, 1.12rem); color: var(--text); opacity: .9; max-width: 72ch; margin: 0 0 1rem; }
.deck .slide p { font-size: clamp(.88rem, 1.2vw, 1rem); line-height: 1.58; }
.deck .slide p.hi {
  border-left: 3px solid var(--gold); background: rgba(217,184,92,.08);
  padding: .6rem .85rem; border-radius: 0 8px 8px 0; margin-top: .9rem;
}
.deck .slide-foot {
  display: flex; justify-content: space-between; gap: 1rem; align-items: center;
  padding: .5rem var(--sl-pad); border-top: 1px solid var(--line);
  font-size: .72rem; letter-spacing: .04em; text-transform: uppercase;
  color: var(--muted); background: rgba(0,0,0,.14);
}

/* title slide */
.deck .s-title { text-align: center; padding: clamp(1rem, 5vh, 3.5rem) 0; }
.deck .s-title img { margin-bottom: 1.1rem; }
.deck .s-title h1 {
  font-family: "Cormorant Garamond", Georgia, serif; font-weight: 700; color: var(--gold);
  font-size: clamp(1.8rem, 4.6vw, 3.4rem); line-height: 1.08; margin: 0 0 .7rem;
}
.deck .s-sub { font-size: clamp(.95rem, 1.5vw, 1.2rem); color: var(--accent); margin: 0 0 .5rem; }
.deck .s-by  { font-size: clamp(.8rem, 1.1vw, .95rem); color: var(--muted); margin: 0; }

/* figure tiles */
.deck .s-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .7rem; margin-bottom: 1rem; }
.deck .s-tiles > div {
  background: rgba(79,195,199,.07); border: 1px solid var(--line); border-radius: 10px;
  padding: .7rem .8rem; text-align: center;
}
.deck .s-tiles b { display: block; font-size: clamp(1.1rem, 2.3vw, 1.75rem); color: var(--accent); line-height: 1.1; }
.deck .s-tiles span { display: block; font-size: .74rem; color: var(--muted); margin-top: .2rem; line-height: 1.3; }

/* quote slide */
.deck .s-quote {
  border-left: 4px solid var(--gold); padding: .3rem 0 .3rem 1.1rem; margin: 0 0 1.1rem;
  font-family: "Cormorant Garamond", Georgia, serif; font-size: clamp(1.1rem, 2.2vw, 1.7rem);
  line-height: 1.35; color: var(--text);
}
.deck .s-quote cite { display: block; font-family: Manrope, system-ui, sans-serif; font-style: normal;
  font-size: .76rem; color: var(--muted); margin-top: .6rem; letter-spacing: .03em; }

/* the five gates */
.deck .s-gates { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: .65rem; margin-bottom: 1rem; }
.deck .s-gate { background: rgba(0,0,0,.18); border: 1px solid var(--line); border-top: 3px solid var(--accent);
  border-radius: 0 0 10px 10px; padding: .65rem .7rem; }
.deck .s-gate .gi { font-size: 1.25rem; line-height: 1; margin-bottom: .35rem; }
.deck .s-gate b { display: block; font-size: .85rem; color: var(--gold); line-height: 1.25; }
.deck .s-gate span { display: block; font-size: .74rem; color: var(--text); opacity: .85; margin-top: .3rem; line-height: 1.35; }
.deck .s-gate em { display: block; font-size: .68rem; color: var(--muted); font-style: normal; margin-top: .35rem; }

/* coverage bars */
.deck .s-bars { display: grid; gap: .4rem; margin-bottom: 1rem; }
.deck .s-bar { display: grid; grid-template-columns: 9.5rem 1fr 2.2rem; align-items: center; gap: .6rem; }
.deck .s-bar .sb-l { font-size: .78rem; color: var(--muted); }
.deck .s-bar .sb-t { height: 12px; border-radius: 6px; background: rgba(255,255,255,.07); overflow: hidden; }
.deck .s-bar .sb-t i { display: block; height: 100%; border-radius: 6px; }
.deck .s-bar .sb-n { font-size: .82rem; font-weight: 700; text-align: right; color: var(--text); }

/* live panels */
.deck .s-live { margin-bottom: .6rem; }
.deck .s-live .chart svg { width: 100%; height: auto; }
.deck .s-legend { display: flex; flex-wrap: wrap; gap: .9rem; font-size: .72rem; color: var(--muted); margin-bottom: .8rem; }
.deck .s-legend i { display: inline-block; width: 11px; height: 11px; border-radius: 3px; margin-right: .3rem; vertical-align: -1px; }
.deck .s-table { width: 100%; border-collapse: collapse; margin-bottom: .9rem; font-size: .8rem; }
.deck .s-table td { border-bottom: 1px solid var(--line); padding: .34rem .5rem; }
.deck .s-table td.ok { width: 4.5rem; text-align: right; color: var(--ok); font-weight: 700; font-size: .72rem; letter-spacing: .05em; }

/* the one-problem chain */
.deck .s-chain { display: flex; flex-wrap: wrap; align-items: stretch; gap: .5rem; margin-bottom: 1rem; }
.deck .s-chain .ch { flex: 1 1 210px; background: rgba(255,125,107,.08); border: 1px solid rgba(255,125,107,.3);
  border-radius: 10px; padding: .7rem .8rem; }
.deck .s-chain .ch b { display: inline-grid; place-items: center; width: 1.5rem; height: 1.5rem; border-radius: 50%;
  background: var(--bad); color: #1b1008; font-size: .78rem; margin-bottom: .4rem; }
.deck .s-chain .ch span { display: block; font-size: .82rem; line-height: 1.45; }
.deck .s-chain .ar { align-self: center; color: var(--muted); font-size: 1.3rem; }

/* report grid */
.deck .s-grid4 { display: grid; grid-template-columns: repeat(auto-fit, minmax(165px, 1fr)); gap: .6rem; margin-bottom: 1rem; }
.deck .s-grid4 .rg { background: rgba(0,0,0,.18); border: 1px solid var(--line); border-radius: 10px; padding: .6rem .7rem; }
.deck .s-grid4 .rg .ic { font-size: 1.1rem; }
.deck .s-grid4 .rg b { display: block; font-size: .8rem; color: var(--text); line-height: 1.3; margin-top: .25rem; }
.deck .s-grid4 .rg em { display: block; font-style: normal; font-size: .68rem; color: var(--accent); margin-top: .3rem; }

/* what I would need to be successful */
.deck .s-needs { display: grid; grid-template-columns: repeat(auto-fit, minmax(255px, 1fr)); gap: .9rem; }
.deck .nd-group h4 { font-size: .74rem; letter-spacing: .1em; text-transform: uppercase; color: var(--accent);
  margin: 0 0 .5rem; padding-bottom: .3rem; border-bottom: 1px solid var(--line); }
.deck .nd { background: rgba(0,0,0,.18); border: 1px solid var(--line); border-left: 3px solid var(--gold);
  border-radius: 0 8px 8px 0; padding: .55rem .7rem; margin-bottom: .5rem; }
.deck .nd b { display: block; font-size: .83rem; color: var(--gold); line-height: 1.3; }
.deck .nd span { display: block; font-size: .76rem; color: var(--text); opacity: .88; margin-top: .25rem; line-height: 1.45; }

/* questions for them */
.deck .s-asks { display: grid; gap: .55rem; }
.deck .s-asks .ask { background: rgba(142,162,232,.08); border: 1px solid var(--line);
  border-left: 3px solid #8ea2e8; border-radius: 0 8px 8px 0; padding: .6rem .8rem; }
.deck .s-asks .ask b { display: block; font-size: .88rem; line-height: 1.35; color: var(--text); }
.deck .s-asks .ask span { display: block; font-size: .76rem; color: var(--muted); margin-top: .25rem; line-height: 1.45; }

/* generic column layouts used by the plain slides */
.deck .two-col { display: grid; grid-template-columns: repeat(auto-fit, minmax(430px, 1fr)); gap: .9rem; }
.deck .three-col { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: .9rem; }
.deck .two-col > div, .deck .three-col > div {
  background: rgba(0,0,0,.18); border: 1px solid var(--line); border-radius: 10px; padding: .7rem .8rem;
}
.deck .two-col h4, .deck .three-col h4 { font-size: .85rem; color: var(--gold); margin: 0 0 .35rem; line-height: 1.3; }
.deck .two-col p, .deck .three-col p { font-size: .8rem; line-height: 1.5; margin: 0; opacity: .9; }
.deck .three-col ul { margin: 0; padding-left: 1.05rem; }
.deck .three-col li { font-size: .78rem; line-height: 1.45; margin-bottom: .3rem; opacity: .9; }

/* review mode */
.deck.review { display: grid; gap: 1.6rem; }
.s-note { background: rgba(79,195,199,.07); border: 1px dashed var(--line); border-radius: 10px;
  padding: .6rem .85rem; font-size: .8rem; line-height: 1.5; color: var(--text); opacity: .9; margin-top: -1.15rem; }
.s-note b { color: var(--accent); }

/* ------------------------------------------------- present mode */
/* Present mode is a standalone document and does not load Bootstrap, so it gets its own
   box-sizing reset. Without it, width:100% plus the slide padding pushed content off the
   right-hand edge of every slide. */
body.present, body.present *, body.present *::before, body.present *::after { box-sizing: border-box; }
body.present { margin: 0; background: var(--bg); color: var(--text); overflow: hidden;
  font-family: Manrope, system-ui, -apple-system, Segoe UI, sans-serif; }
body.present .deck-wrap { position: fixed; inset: 0; }
body.present .slide {
  position: absolute; inset: 0; display: none; border: 0; border-radius: 0;
  flex-direction: column; justify-content: center; background: var(--bg);
}
body.present .slide.on { display: flex; animation: slfade .22s ease-out; }
@keyframes slfade { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
body.present .slide-inner { flex: 0 1 auto; overflow-x: hidden; overflow-y: auto;
  max-width: 1240px; margin: 0 auto; width: 100%; max-height: calc(100vh - 3.4rem);
  padding-bottom: 3.2rem; }
/* Nothing inside a slide may be wider than the slide. */
body.present .slide-inner > *, body.present .slide-inner table { max-width: 100%; }
body.present .slide-inner img, body.present .slide-inner svg { max-width: 100%; height: auto; }
body.present .slide-foot { position: absolute; inset: auto 0 0 0; }
.deck-notes {
  position: fixed; inset: auto 0 0 0; z-index: 30; display: none;
  background: #081620; border-top: 2px solid var(--gold); color: var(--text);
  padding: .8rem 1.3rem 1.1rem; font-size: .9rem; line-height: 1.55; max-height: 34vh; overflow: auto;
}
body.notes-on .deck-notes { display: block; }
body.notes-on .slide-foot { display: none; }
.deck-notes::before { content: 'Speaker note'; display: block; font-size: .66rem; letter-spacing: .12em;
  text-transform: uppercase; color: var(--gold); margin-bottom: .3rem; }
.deck-bar {
  position: fixed; z-index: 40; bottom: 14px; right: 14px; display: flex; align-items: center; gap: .3rem;
  background: rgba(8,22,30,.92); border: 1px solid var(--line); border-radius: 999px; padding: .3rem .45rem;
  backdrop-filter: blur(6px); opacity: .4; transition: opacity .18s;
}
.deck-bar:hover, .deck-bar:focus-within { opacity: 1; }
.deck-bar button, .deck-bar a {
  background: none; border: 0; color: var(--text); font-size: 1rem; line-height: 1;
  padding: .3rem .5rem; border-radius: 999px; text-decoration: none; cursor: pointer;
}
.deck-bar button:hover, .deck-bar a:hover { background: rgba(255,255,255,.12); color: var(--gold); }
.deck-bar #dk-pos { font-size: .74rem; color: var(--muted); padding: 0 .35rem; min-width: 3.6rem; text-align: center; }

/* slide overview, opened with O */
.deck-map { position: fixed; inset: 0; z-index: 50; display: none; background: rgba(4,14,20,.97);
  padding: 2.2rem 1.4rem; overflow: auto; }
body.map-on .deck-map { display: block; }
.deck-map ol { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: .5rem;
  max-width: 1100px; margin: 0 auto; padding: 0; list-style: none; }
.deck-map button { width: 100%; height: 100%; text-align: left; background: rgba(255,255,255,.04);
  border: 1px solid var(--line); border-radius: 10px; padding: .6rem .75rem; color: var(--text);
  font-size: .82rem; line-height: 1.35; cursor: pointer; }
.deck-map button:hover, .deck-map button.on { border-color: var(--gold); color: var(--gold); }
.deck-map button em { display: block; font-style: normal; font-size: .66rem; color: var(--muted); margin-bottom: .2rem; }

@media print {
  .deck { display: block; }
  .deck .slide { break-inside: avoid; page-break-inside: avoid; page-break-after: always;
    border: 0; background: #fff; color: #111; }
  .deck .slide h2, .deck .s-title h1 { color: #0c3a4a; }
  .deck .slide p.hi { background: #f6f1e2; }
  .s-note, .deck-bar, .deck-notes, .deck-map { display: none !important; }
}

/* ------------------------------------------- deliverables: the traceability chain
   One row per deliverable, read left to right: clause → module → tool → deliverable →
   acceptor. It wraps rather than scrolling sideways, so nothing is hidden off the edge. */
.chain-row .card-body { padding: .55rem .75rem; }
.ch-step {
  display: inline-flex; flex-direction: column; gap: .1rem;
  background: rgba(255,255,255,.035); border: 1px solid var(--line);
  border-radius: .5rem; padding: .3rem .55rem; min-width: 0; max-width: 100%;
}
.ch-step > b {
  font-size: .62rem; letter-spacing: .09em; text-transform: uppercase;
  color: var(--muted); font-weight: 700;
}
.ch-step a { color: var(--gold2); }
.ch-step.ch-end { border-color: rgba(212,175,55,.55); background: rgba(212,175,55,.09); }
.ch-ar { color: var(--muted); opacity: .65; flex: 0 0 auto; }
@media (max-width: 575.98px) { .ch-ar { display: none; } .ch-step { width: 100%; } }

/* ---------------------------------------------------------------- NZHRM additions */
.brand-logo{border-radius:50%;background:#fff;object-fit:contain}
.hero-logo{border-radius:50%;background:#fff;object-fit:contain;padding:4px}
.help-ai,.help-human{border:1px solid var(--line);border-radius:.5rem;padding:.45rem .6rem;height:100%}
.help-ai{border-left:3px solid #b48cff;background:rgba(180,140,255,.07)}
.help-human{border-left:3px solid var(--gold);background:rgba(217,184,92,.07)}
.text-bg-ai{background:#6d4bd1!important;color:#fff!important}
.dbadge{font-size:.62rem;letter-spacing:.04em;vertical-align:middle}
a.cite{color:var(--gold2)} a.cite:hover{text-decoration:underline}
.dot{display:inline-block;width:.7rem;height:.7rem;border-radius:2px;vertical-align:middle;margin-right:.2rem}
.flag{font-size:.76rem;display:block;line-height:1.3}
.flag.critical{color:var(--bad)} .flag.high{color:#ff9e7a} .flag.medium{color:var(--warn)} .flag.low{color:var(--ok)}
.calc-steps{font-family:ui-monospace,Consolas,monospace;font-size:.78rem;background:var(--input);border:1px solid var(--line2);border-radius:.4rem;padding:.5rem .7rem;white-space:pre-wrap}
.prop{border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:.6rem;padding:.7rem .8rem;margin-bottom:.6rem;background:var(--card)}
.prop.sev-critical{border-left-color:var(--bad)} .prop.sev-high{border-left-color:#ff9e7a} .prop.sev-medium{border-left-color:var(--warn)} .prop.sev-low{border-left-color:var(--ok)} .prop.sev-info{border-left-color:var(--accent)}
.tree details{margin-left:.2rem} .tree summary{cursor:pointer;padding:.2rem 0}
.tree .lvl1>summary{font-weight:700;font-size:1rem} .tree .lvl2{margin-left:1.1rem} .tree .lvl3{margin-left:1.1rem} .tree ul{margin:.1rem 0 .4rem 1.6rem;padding:0}
.tree li{font-size:.84rem;list-style:'▸ '}
.gate{border:1px dashed var(--gold);border-radius:.5rem;padding:.5rem .7rem;background:rgba(217,184,92,.06)}
.step-flow{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}
.step-flow .st{border:1px solid var(--line);border-radius:999px;padding:.2rem .7rem;font-size:.78rem;background:var(--card)}
.step-flow .st.done{border-color:var(--ok);color:var(--ok)} .step-flow .st.now{border-color:var(--gold);color:var(--gold);font-weight:700}
.step-flow .ar{opacity:.5}
.mono{font-family:ui-monospace,Consolas,monospace;font-size:.8rem}
.heat td{text-align:center;font-weight:700;font-size:.8rem}
.heat .h0{background:rgba(95,211,141,.22)} .heat .h1{background:rgba(242,184,75,.25)} .heat .h2{background:rgba(255,125,107,.3)}
.bp-row.text-decoration-none{color:var(--text)} .bp-row.text-decoration-none:hover{background:var(--tint)}
@media(max-width:575.98px){.content{padding-left:12px!important;padding-right:12px!important}.topbar{flex-wrap:wrap}.search-wrap{order:9;flex-basis:100%}}
