:root{
  --page:#F4F7F1; --panel:#FFFFFF; --panel-soft:#F8FBF6; --ink:#14231B; --muted:#647166;
  --nav:#0B2B1E; --nav-2:#103C2C; --accent:#08795B; --accent-2:#2FA37D; --accent-3:#A7DEC7;
  --amber:#F4A51C; --red:#C2410C; --line:#DCE4D6; --border:#CFD9C9;
  --shadow:0 18px 44px rgba(15,38,27,.10); --soft-shadow:0 8px 22px rgba(15,38,27,.08);
  --rail-w:260px;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;min-height:100%;}
body{background:var(--page);color:var(--ink);font-family:'Inter',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
.display{font-family:'Fraunces',Georgia,serif;} a{color:inherit;}

/* Fixed left navigation. The rest of the page is offset once, not twice. */
.rail{position:fixed;inset:0 auto 0 0;width:var(--rail-w);background:linear-gradient(180deg,var(--nav) 0%,var(--nav-2) 100%);color:#DCECE3;padding:30px 18px;z-index:20;box-shadow:14px 0 36px rgba(12,43,31,.20);overflow-y:auto;}
.rail-logo{font-size:25px;font-weight:750;line-height:1.02;letter-spacing:-.03em;margin:0 0 8px;padding:0 8px;}
.rail-sub{font-size:12.5px;color:#B6CABF;line-height:1.45;padding:0 8px 26px;}
.rail .group{margin:18px 0 28px;}.group-label{font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:#8FA99C;padding:0 10px 10px;font-weight:800;}
.tab{display:flex;align-items:center;gap:11px;width:100%;border:none;border-radius:14px;background:transparent;color:#C8DBD0;font-size:15px;padding:11px 13px;margin:4px 0;text-decoration:none;transition:.15s ease;}
.tab:hover{background:rgba(255,255,255,.08);color:#fff;}.tab.active{background:#E8F8EF;color:#103E2F;font-weight:800;box-shadow:0 10px 22px rgba(0,0,0,.16);}.tab.locked{color:#91AB9E;}
.tab-icon{width:24px;height:24px;border-radius:9px;background:rgba(255,255,255,.10);display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;}.tab.active .tab-icon{background:#CFF0DE;color:var(--accent);}

.masthead{margin-left:var(--rail-w);display:flex;align-items:center;justify-content:space-between;padding:26px 42px 22px;background:rgba(255,255,255,.88);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:12;backdrop-filter:blur(12px);}
.brand h1{font-size:29px;font-weight:750;margin:0;letter-spacing:-.04em;}.brand .sub{color:var(--muted);font-size:14px;margin-top:6px;}.who{font-size:13.5px;color:var(--muted);text-align:right;line-height:1.35;}.who a{color:var(--accent);text-decoration:none;font-weight:800;}
.status-bar{margin-left:var(--rail-w);background:var(--nav);color:#ECFDF5;font-size:14px;padding:12px 42px;display:flex;gap:22px;flex-wrap:wrap;align-items:center;box-shadow:0 12px 28px rgba(15,38,27,.14);position:sticky;top:82px;z-index:11;}
.status-bar.stale{background:#5A3A09;}.status-pill{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;font-weight:700;}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;}.dot.ok{background:#69E8A6}.dot.warn{background:#FBBF24}.dot.bad{background:#FB7185}

.shell{display:block;min-height:calc(100vh - 130px);} 
main{margin-left:var(--rail-w);padding:34px 42px 70px;max-width:none;width:calc(100% - var(--rail-w));}
.page-hero{background:linear-gradient(135deg,#FFFFFF 0%,#F7FAF4 62%,#EAF7F0 100%);border:1px solid var(--border);border-radius:26px;padding:30px 34px;margin-bottom:24px;box-shadow:var(--shadow);position:relative;overflow:hidden;}
.page-hero:after{content:"";position:absolute;right:-80px;top:-120px;width:320px;height:320px;background:radial-gradient(circle,rgba(47,163,125,.17),rgba(47,163,125,0) 66%);} 
.eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.14em;color:var(--accent);font-weight:900;margin-bottom:10px;}.section-title{font-size:34px;font-weight:800;margin:0 0 10px;letter-spacing:-.045em;}.lede{color:var(--muted);font-size:15.5px;max-width:850px;margin:0;line-height:1.62;}.hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px;}.chip{display:inline-flex;align-items:center;gap:7px;padding:8px 12px;border-radius:999px;background:#EEF8F2;border:1px solid #D3E7D9;color:#27563F;font-size:12px;font-weight:800;}.chip.warn{background:#FFF7E6;border-color:#F5D491;color:#8A5600}.chip.dark{background:#143326;color:#ECFDF5;border-color:#143326}

.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:16px;margin-bottom:24px;}.metric-card{background:var(--panel);border:1px solid var(--border);border-radius:22px;padding:18px 18px 16px;box-shadow:var(--soft-shadow);position:relative;overflow:hidden;min-height:126px;}.metric-card:before{content:"";position:absolute;inset:0 0 auto;height:5px;background:linear-gradient(90deg,var(--accent),var(--accent-3));}.metric-card.warm:before{background:linear-gradient(90deg,var(--amber),#FDE68A)}.metric-label{font-size:12px;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);font-weight:900}.metric-value{font-size:40px;line-height:1;margin:10px 0 4px;font-weight:800;letter-spacing:-.05em}.metric-meta{font-size:12.5px;color:var(--muted);line-height:1.45}
.dashboard-grid{display:grid;grid-template-columns:minmax(0,3fr) minmax(260px,1fr);gap:22px;margin-bottom:24px;align-items:start;}.panel{background:var(--panel);border:1px solid var(--border);border-radius:24px;padding:24px;box-shadow:var(--soft-shadow);min-width:0;}.panel h3,.block h3{font-size:18px;font-weight:900;margin:0 0 8px;letter-spacing:-.01em}.note{font-size:13.5px;color:var(--muted);margin:0 0 16px;line-height:1.55}.insight-stack{display:grid;gap:12px}.insight-card{border-radius:18px;background:var(--panel-soft);border:1px solid var(--line);padding:15px}.insight-card .label{font-size:12px;font-weight:900;color:var(--accent);text-transform:uppercase;letter-spacing:.09em}.insight-card .text{font-size:14px;color:var(--ink);line-height:1.55;margin-top:5px}.legend{display:flex;gap:14px;flex-wrap:wrap;margin:10px 0 16px;font-size:13px;color:var(--muted)}.legend .swatch{display:inline-block;width:11px;height:11px;border-radius:4px;margin-right:6px;position:relative;top:1px}
.chart-wrap{overflow-x:auto;padding:8px 2px;max-width:100%;}.chart-wrap svg{width:100%;min-width:720px;height:auto;display:block;}svg text{font-family:'Inter',sans-serif}.axis-label{font-size:12px;fill:#7A857B;font-weight:800}.bar-label{font-size:12px;fill:#59655D;font-weight:800}
.filter-bar{border:1px solid var(--border);background:var(--panel);border-radius:22px;padding:16px 18px;margin-bottom:20px;box-shadow:var(--soft-shadow)}.filter-bar form{display:flex;flex-wrap:wrap;gap:14px;align-items:end}.filter-bar label{display:block;font-size:11px;color:var(--muted);margin-bottom:5px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.filter-bar select{font-size:14px;padding:10px 12px;border:1px solid var(--border);background:#fff;color:var(--ink);font-family:'Inter',sans-serif;min-width:190px;border-radius:12px}.filter-bar button,.button{font-size:14px;padding:11px 18px;border:none;border-radius:12px;background:var(--accent);color:#fff;cursor:pointer;font-family:'Inter',sans-serif;text-decoration:none;font-weight:900}.filter-bar a.clear{font-size:12px;color:var(--muted);align-self:center;text-decoration:none;border-bottom:1px solid var(--border)}
table.ledger{width:100%;border-collapse:separate;border-spacing:0;font-size:14px;background:var(--panel);border:1px solid var(--border);border-radius:20px;overflow:hidden;box-shadow:var(--soft-shadow)}table.ledger th{text-align:left;font-weight:900;color:var(--muted);font-size:12px;padding:14px 16px;border-bottom:1px solid var(--line);background:#F7FAF4;text-transform:uppercase;letter-spacing:.06em}table.ledger td{padding:14px 16px;border-bottom:1px solid var(--line);vertical-align:middle;}table.ledger tr:last-child td{border-bottom:none}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px}.status-dot.ok{background:var(--accent)}.status-dot.flag{background:var(--amber)}.status-dot.pending{background:#A0A99C}.type-tag{color:var(--muted);font-size:12.5px}.rate-cell{transition:background .15s}.download{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--accent);text-decoration:none;font-weight:900;margin-top:14px}.download:after{content:"";width:28px;height:1px;background:var(--accent);display:inline-block}
.locked-box{border:1px solid var(--border);background:linear-gradient(135deg,#FFFFFF,#F8FAF6);padding:24px;border-radius:24px;max-width:860px;box-shadow:var(--soft-shadow)}.locked-box h3{margin:0 0 10px;font-size:18px}.locked-box p{font-size:14px;color:var(--muted);line-height:1.65;margin:0}.roadmap{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:18px}.roadmap .step{background:#fff;border:1px solid var(--line);border-radius:18px;padding:14px}.step strong{display:block;margin-bottom:6px}.step span{font-size:12.5px;color:var(--muted);line-height:1.45}
.login-wrap{max-width:420px;margin:80px auto;padding:32px;background:var(--panel);border:1px solid var(--border);border-radius:28px;box-shadow:var(--shadow)}.login-wrap h1{font-size:30px;margin:0 0 4px}.login-wrap p{color:var(--muted);font-size:14px;margin-top:0}.login-wrap form{margin-top:24px}.login-wrap label{display:block;font-size:12px;color:var(--muted);margin-bottom:6px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.login-wrap input{width:100%;padding:12px;border:1px solid var(--border);background:#fff;color:var(--ink);border-radius:14px;font-family:'Inter',sans-serif;font-size:14px;margin-bottom:16px}.login-wrap button{width:100%;padding:12px;border-radius:14px;background:var(--accent);color:#fff;border:none;font-size:14px;font-weight:900;cursor:pointer}.flash{color:var(--red);font-size:13px;margin-bottom:12px}
@media (max-width:1050px){:root{--rail-w:0px}.rail{display:none}.masthead,.status-bar,main{margin-left:0;width:100%;}.masthead{padding:18px 22px}.status-bar{top:73px;padding:10px 22px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.dashboard-grid{grid-template-columns:1fr}.roadmap{grid-template-columns:1fr}.chart-wrap svg{min-width:620px}}
@media (max-width:640px){.metric-grid{grid-template-columns:1fr}.section-title{font-size:28px}main{padding:24px 18px 60px}.page-hero,.panel{border-radius:20px;padding:20px}.masthead{display:block}.who{text-align:left;margin-top:12px}.status-bar{position:relative;top:auto}}

/* v12 production polish: module pages and public-facing readiness */
.mini-bars{display:grid;gap:12px;margin-top:16px;}
.mini-row{display:grid;grid-template-columns:140px minmax(140px,1fr) 80px;gap:14px;align-items:center;font-size:14px;}
.mini-row span{font-weight:700;color:var(--muted);}
.mini-row strong{text-align:right;font-size:14px;}
.mini-track{height:14px;background:#EEF3EA;border-radius:999px;overflow:hidden;border:1px solid var(--line);}
.mini-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-3));border-radius:999px;}
.wide-panel{margin-top:22px;max-width:100%;}
table.ledger.compact td, table.ledger.compact th{padding:11px 14px;}
@media (max-width:760px){.mini-row{grid-template-columns:1fr;gap:5px}.mini-row strong{text-align:left}.metric-grid{grid-template-columns:1fr}.dashboard-grid{grid-template-columns:1fr}}


/* v13 module inventory and variable explorer */
.section-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;margin-top:12px;}
.section-card{border:1px solid var(--border);border-radius:18px;background:#fff;box-shadow:var(--soft-shadow);overflow:hidden;}
.section-card summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 18px;font-weight:900;color:var(--ink);}
.section-card summary::-webkit-details-marker{display:none;}
.section-card summary strong{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);background:#E9F8F0;border-radius:999px;padding:6px 10px;white-space:nowrap;}
.variable-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px;padding:14px 18px 18px;}
.variable-chip{border:1px solid var(--line);background:#FAFCF8;border-radius:14px;padding:11px 12px;}
.v-label{font-weight:700;line-height:1.35;color:var(--ink);font-size:13.5px;}
.v-meta{margin-top:6px;color:var(--muted);font-size:11.5px;line-height:1.35;}
.v-meta code{font-family:ui-monospace,Menlo,Consolas,monospace;background:#EFF7F1;border:1px solid #D9E7DD;border-radius:6px;padding:1px 5px;color:#075A43;}
.module-filter form{align-items:end;}
.module-filter select{min-width:min(760px,80vw);}
.variable-result{margin-top:14px;}
.muted-box{border:1px dashed var(--border);border-radius:18px;background:#FBFDF8;color:var(--muted);padding:18px;}
.variable-two-col{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start;}
.variable-two-col h4{margin:12px 0 8px;}
@media(max-width:900px){.variable-two-col{grid-template-columns:1fr}.module-filter select{min-width:100%;}}

/* v14 real-module dashboard visual layer */
.compact-hero {padding: 36px 42px;}
.chart-svg{width:100%; min-height:260px; display:block;}
.domain-tabs{display:flex; flex-wrap:wrap; gap:10px; margin:18px 0 24px;}
.domain-tab{border:1px solid var(--line); background:#fff; border-radius:999px; padding:10px 14px; font-weight:800; color:var(--muted); cursor:pointer;}
.domain-tab.active{background:var(--accent); color:#fff; border-color:var(--accent);}
.domain-section{animation:fadeIn .18s ease-out;}
.domain-head{display:flex; justify-content:space-between; gap:24px; align-items:flex-start; margin-bottom:18px;}
.domain-head h3{margin:4px 0 0; font-size:1.55rem;}
.domain-score{min-width:150px; border-radius:22px; background:linear-gradient(135deg,#ecfdf5,#fff7ed); border:1px solid var(--line); padding:16px 18px; text-align:center;}
.domain-score strong{display:block; font-family:var(--display); font-size:2.1rem; color:var(--ink);}
.domain-score span{font-size:.8rem; color:var(--muted); text-transform:uppercase; letter-spacing:.08em; font-weight:800;}
.question-viz-grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px;}
.question-viz-card{border:1px solid var(--line); border-radius:24px; padding:18px; background:#fff; box-shadow:0 16px 40px rgba(8,43,31,.06);}
.q-label{font-weight:900; color:var(--ink); line-height:1.25; min-height:44px;}
.q-meta{font-size:.8rem; color:var(--muted); margin:6px 0 14px;}
.viz-list{display:grid; gap:10px;}
.viz-row{display:grid; grid-template-columns:minmax(170px,220px) minmax(180px,1fr) auto; align-items:center; gap:8px; font-size:.9rem;}
.viz-row span{white-space:nowrap; overflow:hidden; text-overflow:ellipsis; color:var(--muted);}
.viz-track{height:12px; border-radius:999px; background:#eef4ee; overflow:hidden;}
.viz-track i{display:block; height:100%; border-radius:999px; background:linear-gradient(90deg,var(--accent),var(--accent-2));}
.spark-strip{display:flex; flex-wrap:wrap; gap:6px; margin-top:14px;}
.spark-strip span{font-size:.72rem; font-weight:800; padding:5px 7px; border-radius:999px; background:#eef8f2; color:var(--accent);}
.big-mini{font-family:var(--display); font-size:2.3rem; line-height:1; color:var(--ink); margin:4px 0 8px;}
.accent-card{border-top-color:var(--warning)!important;}
@keyframes fadeIn{from{opacity:.4; transform:translateY(3px)}to{opacity:1; transform:none}}
@media(max-width:1000px){.question-viz-grid{grid-template-columns:1fr}.domain-head{display:block}.domain-score{margin-top:12px}}

.round-chip-strip{display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin-top:14px;}
.round-chip-strip small{font-size:.72rem; color:var(--muted); font-weight:800; letter-spacing:.08em; text-transform:uppercase; margin-right:4px;}
.round-chip-strip span{font-size:.72rem; font-weight:800; padding:5px 8px; border-radius:999px; background:#eef8f2; color:var(--accent);}

/* v17: full domain visuals and aligned round trend bars */
.question-viz-grid.all-vars-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:stretch}
.question-viz-card{min-height:260px}
.round-trend{margin-top:16px;border-top:1px solid var(--line);padding-top:12px}
.round-trend-title{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;font-weight:800;color:var(--muted);margin-bottom:8px}
.round-trend-grid{display:grid;grid-template-columns:repeat(8,minmax(42px,1fr));gap:6px;align-items:end}
.round-trend-cell{display:grid;grid-template-rows:auto 8px auto;gap:4px;text-align:center;min-width:0}
.round-trend-cell span{font-size:.72rem;font-weight:800;color:var(--muted)}
.round-trend-cell i{display:block;height:8px;border-radius:999px;background:#e8f1ea;overflow:hidden}
.round-trend-cell i b{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--accent),var(--accent-2))}
.round-trend-cell em{font-style:normal;font-size:.68rem;font-weight:800;color:var(--accent)}
@media(max-width:1100px){.question-viz-grid.all-vars-grid{grid-template-columns:1fr}.round-trend-grid{grid-template-columns:repeat(4,minmax(52px,1fr))}}

.module-filter-panel{margin-top:22px;margin-bottom:22px;}
.filter-hint{align-self:end;color:var(--muted);font-size:14px;max-width:560px;line-height:1.4;}
.question-viz-card .q-meta{font-size:14px;color:var(--muted);margin:8px 0 12px;}
.domain-head .note{max-width:760px;}

/* v19 drill-down filters and response visual refinements */
.wide-filter-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;align-items:end}
.wide-filter-form label{display:flex;flex-direction:column;gap:7px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;font-size:.74rem;color:var(--muted)}
.wide-filter-form select{min-height:44px;border-radius:12px;border:1px solid var(--line);background:#fff;padding:0 12px;font-size:.96rem;color:var(--ink)}
.btn.secondary{background:var(--accent);color:#fff;border:0;border-radius:12px;min-height:44px;padding:0 18px;font-weight:800;cursor:pointer;align-self:end}
.viz-footnote{font-size:.8rem;color:var(--muted);margin:8px 0 0;font-style:italic}
.question-viz-card .q-meta{white-space:normal}
.viz-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px}

/* v20 chart spacing: keep labels close to bars and preserve legibility */
@media(max-width:1200px){.viz-row{grid-template-columns:minmax(140px,180px) minmax(150px,1fr) auto}.viz-row span{max-width:180px}}
@media(max-width:800px){.viz-row{grid-template-columns:1fr;gap:5px}.viz-row strong{justify-self:start}.viz-track{width:100%}}


/* v21: compact distribution rows and integer-friendly labels */
.question-viz-card{padding:18px 20px;}
.viz-row{grid-template-columns:minmax(92px,150px) minmax(160px,1fr) minmax(34px,max-content);column-gap:10px;}
.viz-row span{max-width:150px;white-space:normal;line-height:1.25;}
.viz-track{min-width:160px;}
@media(min-width:1350px){.viz-row{grid-template-columns:minmax(110px,175px) minmax(180px,1fr) minmax(38px,max-content)}.viz-row span{max-width:175px}}
@media(max-width:900px){.viz-row{grid-template-columns:1fr;gap:6px}.viz-track{width:100%;min-width:0}.viz-row span{max-width:none}.viz-row strong{justify-self:start}}


/* v22 executive frontend polish: move away from decorative prototype styling */
:root{
  --page:#f3f6f8; --panel:#ffffff; --panel-soft:#f7faf9; --ink:#0f1f1a; --muted:#586b63;
  --nav:#08291d; --nav-2:#0b3627; --accent:#087f63; --accent-2:#27a582; --accent-3:#9edcc5;
  --amber:#b7791f; --red:#b42318; --line:#e4ebe7; --border:#d8e2dc;
  --shadow:0 16px 32px rgba(15,38,27,.08); --soft-shadow:0 6px 18px rgba(15,38,27,.06);
}
body{background:linear-gradient(180deg,#f8faf9 0,#eef5ef 100%);}
.rail{background:linear-gradient(180deg,#05251a 0%,#0c3b2b 100%);box-shadow:8px 0 24px rgba(7,37,26,.20)}
.rail-logo{font-size:24px;letter-spacing:-.04em}.rail-sub{font-size:12px}.tab{border-radius:12px;padding:10px 12px}.tab.active{box-shadow:none;background:#e2f5eb}.tab-icon{border-radius:8px}
.masthead{padding:24px 42px;background:#fff;box-shadow:0 1px 0 var(--line);position:sticky;}
.brand h1{font-family:Inter,system-ui,sans-serif;font-size:26px;font-weight:900;letter-spacing:-.035em}.brand .sub{font-size:13px}.status-bar{top:82px;padding:10px 42px;background:#073b2b;border-top:1px solid #0f5a43;border-bottom:1px solid #0f5a43;box-shadow:none}.status-bar.stale{background:#604107;border-color:#7a550b}
main{padding:30px 42px 70px}.page-hero{border-radius:18px;padding:26px 30px;background:linear-gradient(135deg,#ffffff 0%,#f8fbf9 70%,#edf8f4 100%);box-shadow:0 8px 24px rgba(15,38,27,.06)}.page-hero:after{display:none}.eyebrow{font-size:11px;letter-spacing:.16em}.section-title{font-family:Inter,system-ui,sans-serif;font-size:32px;font-weight:900}.lede{font-size:15px;line-height:1.55}.chip{border-radius:8px;padding:7px 10px}.chip.dark{background:#073b2b}.chip.warn{background:#fff7e5;color:#7a4a00}
.metric-grid{grid-template-columns:repeat(4,minmax(160px,1fr));gap:14px}.metric-card{border-radius:16px;min-height:112px;padding:16px 18px;box-shadow:0 5px 16px rgba(15,38,27,.06)}.metric-card:before{height:4px}.metric-value{font-family:Inter,system-ui,sans-serif;font-weight:900;font-size:36px}.metric-label{font-size:11px}.metric-meta{font-size:12px}
.dashboard-grid{grid-template-columns:minmax(0,2.8fr) minmax(260px,.9fr);gap:18px}.panel{border-radius:16px;padding:22px;box-shadow:0 6px 18px rgba(15,38,27,.06)}.panel h3,.block h3{font-size:18px}.insight-card{border-radius:14px;background:#fbfdfb}.filter-bar{border-radius:16px;padding:14px 16px}.filter-bar select{border-radius:8px}.filter-bar button,.button,.btn.secondary{border-radius:8px}
.domain-tabs{gap:8px;margin:16px 0 20px}.domain-tab{border-radius:10px;padding:9px 12px;background:#fff}.domain-tab.active{background:#087f63}.domain-head{border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:18px}.domain-score{display:none}.question-viz-grid.all-vars-grid{gap:14px}.question-viz-card{min-height:0;border-radius:16px;padding:16px 18px;box-shadow:0 6px 18px rgba(15,38,27,.045)}.q-label{font-weight:850;line-height:1.25}.q-meta{font-size:12.5px!important;margin:8px 0 10px!important;color:#65756e!important}
.viz-list{display:grid;gap:7px}.viz-row{grid-template-columns:minmax(62px,126px) minmax(150px,1fr) minmax(34px,max-content)!important;column-gap:8px!important;align-items:center}.viz-row span{max-width:126px!important;white-space:normal!important;line-height:1.15;color:#465951}.viz-track{height:11px!important;min-width:120px!important;background:#edf3ef}.viz-track i{height:11px!important;background:linear-gradient(90deg,#087f63,#2da987)}.viz-row strong{font-size:.93rem}.viz-footnote{font-size:12px;margin-top:8px}.chart-wrap svg{min-width:680px}.chart-svg{width:100%;height:auto;min-height:230px}
@media(min-width:1350px){.viz-row{grid-template-columns:minmax(72px,136px) minmax(160px,1fr) minmax(36px,max-content)!important}.viz-row span{max-width:136px!important}}
@media(max-width:1100px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid{grid-template-columns:1fr}.question-viz-grid.all-vars-grid{grid-template-columns:1fr}}
@media(max-width:900px){.viz-row{grid-template-columns:1fr!important}.viz-row span{max-width:none!important}.viz-track{width:100%;min-width:0!important}}

/* v24 institutional branding */
.rail-brand-lockup{display:flex;align-items:center;gap:10px;padding:0 8px 14px;margin-bottom:8px;border-bottom:1px solid rgba(255,255,255,.08)}
.rail-org-logo{width:38px;height:38px;object-fit:contain;flex:0 0 auto;background:#fff;border-radius:10px;padding:4px}
.rail-org-text{font-size:11px;line-height:1.25;color:#d8e8e0;font-weight:700}
.brand-with-org{display:flex;flex-direction:column;gap:12px}
.org-line{display:flex;align-items:flex-start;gap:14px}
.org-logo{width:54px;height:54px;object-fit:contain;border-radius:12px;background:#fff;padding:4px;border:1px solid var(--line);box-shadow:0 4px 10px rgba(15,38,27,.06)}
.org-kicker{font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.14em;color:var(--accent);margin:2px 0 6px}
.partner-strip{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding-top:6px}
.partner-label{font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-right:2px}
.partner-strip img{height:34px;max-width:140px;object-fit:contain;background:#fff;border:1px solid var(--line);border-radius:10px;padding:5px 8px;box-shadow:0 4px 10px rgba(15,38,27,.04)}
.partner-strip img:last-child{max-width:160px}
.site-footer{margin-left:var(--rail-w);padding:0 42px 30px;color:var(--muted);font-size:12.5px;line-height:1.5}

@media(max-width:1100px){
  .org-line{align-items:center}
  .partner-strip img{height:30px;max-width:120px}
}
@media(max-width:900px){
  .partner-strip{gap:8px}
  .partner-label{width:100%;margin-bottom:2px}
  .org-line{display:block}
  .org-logo{margin-bottom:10px}
  .site-footer{margin-left:0;padding:0 22px 26px}
}

/* v24b logo visibility patch: enlarge institutional and collaborator logos */

/* Left sidebar MakSPH lockup */
.rail-brand-lockup{
  gap:14px !important;
  padding:0 10px 18px !important;
  margin-bottom:14px !important;
}

.rail-org-logo{
  width:62px !important;
  height:62px !important;
  border-radius:14px !important;
  padding:6px !important;
}

.rail-org-text{
  font-size:13px !important;
  line-height:1.25 !important;
  font-weight:800 !important;
}

/* Main header MakSPH logo */
.org-line{
  gap:18px !important;
  align-items:center !important;
}

.org-logo{
  width:76px !important;
  height:76px !important;
  border-radius:14px !important;
  padding:6px !important;
}

.org-kicker{
  font-size:12px !important;
  letter-spacing:.16em !important;
}

/* Collaborator logo row */
.partner-strip{
  gap:14px !important;
  margin-top:10px !important;
  align-items:center !important;
}

.partner-label{
  font-size:12px !important;
  letter-spacing:.13em !important;
  margin-right:6px !important;
}

/* Logo cards */
.partner-strip img{
  height:56px !important;
  max-width:190px !important;
  padding:8px 12px !important;
  border-radius:12px !important;
  background:#ffffff !important;
  object-fit:contain !important;
}

/* University of Bergen is square, so allow it to appear larger */
.partner-strip img[src*="uib_logo"]{
  height:58px !important;
  max-width:90px !important;
}

/* NTNU is wider */
.partner-strip img[src*="ntnu_logo"]{
  height:56px !important;
  max-width:190px !important;
}

/* NKVTS is very horizontal, so give it more width */
.partner-strip img[src*="nkvts_logo"]{
  height:52px !important;
  max-width:260px !important;
}

/* Give the masthead more breathing room for the larger logos */
.masthead{
  padding-top:26px !important;
  padding-bottom:24px !important;
}

.status-bar{
  top:142px !important;
}

/* Prevent content from hiding under taller masthead/status bar */
main{
  padding-top:38px !important;
}

/* Mobile/tablet handling */
@media(max-width:1100px){
  .org-logo{
    width:62px !important;
    height:62px !important;
  }

  .partner-strip img{
    height:44px !important;
    max-width:160px !important;
  }

  .partner-strip img[src*="nkvts_logo"]{
    height:42px !important;
    max-width:220px !important;
  }

  .status-bar{
    top:120px !important;
  }
}


/* v25 logo visibility and screen-fit patch
   Keeps institutional branding visible while reducing vertical header pressure. */

.masthead{
  padding:18px 36px 16px !important;
  align-items:flex-start !important;
  gap:24px !important;
}

.brand-with-org{
  gap:8px !important;
  min-width:0 !important;
}

.org-line{
  gap:14px !important;
  align-items:center !important;
}

.org-logo{
  width:72px !important;
  height:72px !important;
  padding:5px !important;
  border-radius:14px !important;
  flex:0 0 auto !important;
}

.org-kicker{
  font-size:12px !important;
  letter-spacing:.14em !important;
  line-height:1.2 !important;
}

.brand h1,
.brand-with-org h1{
  font-size:28px !important;
  line-height:1.08 !important;
  margin:0 !important;
}

.brand .sub{
  font-size:13px !important;
  margin-top:6px !important;
}

/* Collaborator logos: bigger, clearer, and cropped asset-friendly */
.partner-strip{
  display:flex !important;
  align-items:center !important;
  gap:12px !important;
  flex-wrap:wrap !important;
  margin-top:8px !important;
  padding-top:4px !important;
}

.partner-label{
  flex:0 0 auto !important;
  font-size:11.5px !important;
  letter-spacing:.13em !important;
  margin-right:4px !important;
}

.partner-strip img{
  background:#ffffff !important;
  border:1px solid #d8e2dc !important;
  border-radius:12px !important;
  padding:7px 10px !important;
  object-fit:contain !important;
  box-shadow:0 3px 10px rgba(15,38,27,.06) !important;
}

/* The source files are now cropped, so these sizes are actually visible. */
.partner-strip img[src*="uib_logo"]{
  height:62px !important;
  width:62px !important;
  max-width:62px !important;
  padding:5px !important;
}

.partner-strip img[src*="ntnu_logo"]{
  height:62px !important;
  width:170px !important;
  max-width:170px !important;
}

.partner-strip img[src*="nkvts_logo"]{
  height:62px !important;
  width:260px !important;
  max-width:260px !important;
}

/* Left rail logo visibility */
.rail{
  width:260px !important;
}

.rail-brand-lockup{
  gap:12px !important;
  padding:0 6px 16px !important;
}

.rail-org-logo{
  width:64px !important;
  height:64px !important;
  padding:5px !important;
  border-radius:14px !important;
}

.rail-org-text{
  font-size:13px !important;
  line-height:1.2 !important;
  font-weight:850 !important;
}

/* Screen-fit: avoid pushing the first dashboard card too far down. */
.status-bar{
  top:154px !important;
  padding:9px 36px !important;
}

main{
  padding:28px 36px 64px !important;
}

.page-hero{
  padding:24px 28px !important;
  margin-bottom:22px !important;
}

.metric-grid{
  gap:12px !important;
}

.metric-card{
  min-height:106px !important;
  padding:14px 16px !important;
}

.metric-value{
  font-size:34px !important;
}

@media(max-width:1250px){
  .partner-strip img[src*="nkvts_logo"]{width:220px !important;max-width:220px !important;}
  .partner-strip img[src*="ntnu_logo"]{width:145px !important;max-width:145px !important;}
  .brand h1,.brand-with-org h1{font-size:25px !important;}
  .status-bar{top:152px !important;}
}

@media(max-width:1050px){
  .rail{display:none !important;}
  .masthead,.status-bar,main,.site-footer{margin-left:0 !important;width:100% !important;}
  .masthead{padding:16px 22px !important;}
  .partner-strip img[src*="uib_logo"]{height:50px !important;width:50px !important;}
  .partner-strip img[src*="ntnu_logo"]{height:50px !important;width:140px !important;}
  .partner-strip img[src*="nkvts_logo"]{height:50px !important;width:210px !important;}
  .status-bar{top:154px !important;padding:9px 22px !important;}
  main{padding:24px 22px 54px !important;}
}

/* v26 collaborator logo correction
   Restores the full NKVTS logo and keeps partner marks readable without cropping damage. */

.partner-strip{
  gap:12px !important;
  align-items:center !important;
}

.partner-strip img{
  background:#ffffff !important;
  border:1px solid #d8e2dc !important;
  border-radius:12px !important;
  padding:8px 12px !important;
  object-fit:contain !important;
  box-shadow:0 3px 10px rgba(15,38,27,.06) !important;
}

/* University of Bergen: square logo */
.partner-strip img[src*="uib_logo"]{
  height:62px !important;
  width:62px !important;
  max-width:62px !important;
  padding:5px !important;
}

/* NTNU: horizontal logo */
.partner-strip img[src*="ntnu_logo"]{
  height:62px !important;
  width:170px !important;
  max-width:170px !important;
}

/* NKVTS: use the original full logo; do not crop it into a red bar */
.partner-strip img[src*="nkvts_logo"]{
  height:62px !important;
  width:330px !important;
  max-width:330px !important;
  padding:8px 14px !important;
  object-fit:contain !important;
  object-position:center center !important;
  background:#ffffff !important;
}

/* Give the header enough room for the full NKVTS mark */
.partner-strip{
  max-width:860px !important;
}

@media(max-width:1250px){
  .partner-strip img[src*="nkvts_logo"]{
    width:280px !important;
    max-width:280px !important;
    height:58px !important;
  }
}

@media(max-width:1050px){
  .partner-strip img[src*="uib_logo"]{height:50px !important;width:50px !important;}
  .partner-strip img[src*="ntnu_logo"]{height:50px !important;width:140px !important;}
  .partner-strip img[src*="nkvts_logo"]{height:50px !important;width:230px !important;max-width:230px !important;}
}

/* v27 responsive screen-fit polish
   Keeps logos readable but reduces vertical pressure and improves laptop fit. */

/* Slightly more compact institutional header */
.masthead{
  padding:14px 34px 12px !important;
  min-height:auto !important;
  align-items:flex-start !important;
}

.org-line{
  gap:12px !important;
}

.org-logo{
  width:62px !important;
  height:62px !important;
  padding:5px !important;
}

.org-kicker{
  font-size:11px !important;
  letter-spacing:.13em !important;
  margin-bottom:4px !important;
}

.brand h1,
.brand-with-org h1{
  font-size:26px !important;
  line-height:1.06 !important;
}

.brand .sub{
  font-size:12.8px !important;
  margin-top:5px !important;
}

/* Compact collaborator row without making logos unreadable */
.partner-strip{
  gap:10px !important;
  margin-top:4px !important;
  padding-top:2px !important;
}

.partner-label{
  font-size:10.8px !important;
  letter-spacing:.12em !important;
  margin-right:2px !important;
}

.partner-strip img{
  border-radius:10px !important;
  padding:6px 10px !important;
}

.partner-strip img[src*="uib_logo"]{
  width:54px !important;
  height:54px !important;
  max-width:54px !important;
  padding:4px !important;
}

.partner-strip img[src*="ntnu_logo"]{
  width:150px !important;
  height:54px !important;
  max-width:150px !important;
}

.partner-strip img[src*="nkvts_logo"]{
  width:285px !important;
  height:54px !important;
  max-width:285px !important;
}

/* Thinner status bar */
.status-bar{
  top:126px !important;
  min-height:34px !important;
  padding:7px 34px !important;
  font-size:13.5px !important;
  gap:18px !important;
}

.status-pill{
  gap:7px !important;
}

/* Bring content upward and tighten first-screen layout */
main{
  padding:22px 34px 58px !important;
}

.page-hero{
  padding:22px 26px !important;
  margin-bottom:18px !important;
  border-radius:16px !important;
}

.eyebrow{
  font-size:10.8px !important;
  margin-bottom:8px !important;
}

.section-title{
  font-size:30px !important;
  margin-bottom:8px !important;
}

.lede{
  font-size:14.5px !important;
  line-height:1.48 !important;
}

.hero-actions{
  margin-top:16px !important;
}

.chip{
  padding:6px 9px !important;
  font-size:11.5px !important;
}

/* KPI cards: keep readable but less tall */
.metric-grid{
  gap:12px !important;
  margin-bottom:18px !important;
}

.metric-card{
  min-height:96px !important;
  padding:13px 15px 12px !important;
  border-radius:14px !important;
}

.metric-label{
  font-size:10.5px !important;
  letter-spacing:.08em !important;
}

.metric-value{
  font-size:32px !important;
  margin:8px 0 3px !important;
}

.metric-meta{
  font-size:11.8px !important;
}

/* Panels and chart sections */
.dashboard-grid{
  gap:16px !important;
  margin-bottom:18px !important;
}

.panel{
  padding:20px !important;
  border-radius:14px !important;
}

.chart-wrap{
  padding-top:4px !important;
}

.chart-wrap svg{
  min-width:640px !important;
}

/* Sidebar also slightly tighter, while keeping MakSPH logo visible */
.rail{
  padding:22px 18px !important;
}

.rail-brand-lockup{
  margin-bottom:10px !important;
  padding-bottom:12px !important;
}

.rail-org-logo{
  width:58px !important;
  height:58px !important;
}

.rail-org-text{
  font-size:12.2px !important;
}

.rail-logo{
  font-size:23px !important;
  margin-top:4px !important;
}

.rail-sub{
  padding-bottom:20px !important;
  font-size:12px !important;
}

.rail .group{
  margin:16px 0 22px !important;
}

.tab{
  padding:9px 12px !important;
  margin:3px 0 !important;
}

/* Module pages: reduce excess vertical spacing */
.module-filter-panel,
.filter-bar{
  margin-bottom:16px !important;
}

.domain-tabs{
  margin:12px 0 16px !important;
}

.domain-head{
  margin-bottom:14px !important;
}

.question-viz-grid.all-vars-grid{
  gap:12px !important;
}

.question-viz-card{
  padding:15px 16px !important;
}

/* Desktop/laptop tuning */
@media(max-width:1400px){
  .partner-strip img[src*="nkvts_logo"]{
    width:255px !important;
    max-width:255px !important;
  }
  .partner-strip img[src*="ntnu_logo"]{
    width:135px !important;
    max-width:135px !important;
  }
  .brand h1,
  .brand-with-org h1{
    font-size:24px !important;
  }
  .status-bar{
    top:122px !important;
  }
  main{
    padding-top:20px !important;
  }
}

@media(max-width:1180px){
  .masthead{
    padding:12px 24px 10px !important;
  }
  .org-logo{
    width:54px !important;
    height:54px !important;
  }
  .partner-strip img[src*="uib_logo"]{
    width:46px !important;
    height:46px !important;
  }
  .partner-strip img[src*="ntnu_logo"]{
    width:118px !important;
    height:46px !important;
  }
  .partner-strip img[src*="nkvts_logo"]{
    width:210px !important;
    height:46px !important;
    max-width:210px !important;
  }
  .status-bar{
    top:114px !important;
  }
  main{
    padding:18px 24px 50px !important;
  }
}

@media(max-width:1050px){
  .status-bar{
    top:132px !important;
  }
}

@media(max-width:850px){
  .masthead{
    display:block !important;
  }
  .who{
    text-align:left !important;
    margin-top:8px !important;
  }
  .partner-strip{
    margin-top:8px !important;
  }
  .status-bar{
    position:static !important;
  }
  main{
    padding-top:18px !important;
  }
}



/* Makerere/MakSPH institutional navigation */
.rail{
  background:linear-gradient(180deg,#231F20 0%,#151313 100%) !important;
  border-right:5px solid var(--mak-red) !important;
}

.rail-brand-lockup{
  border-bottom:1px solid rgba(210,171,103,.22) !important;
}

.rail-logo{
  color:#ffffff !important;
}

.rail-sub{
  color:#d9d4ca !important;
}

.group-label{
  color:#d2ab67 !important;
}

.tab{
  color:#ebe7df !important;
}

.tab:hover{
  background:rgba(237,28,36,.12) !important;
  color:#ffffff !important;
}

.tab.active{
  background:#fff4f4 !important;
  color:#231F20 !important;
  border-left:5px solid var(--mak-red) !important;
}

.tab.active .tab-icon{
  background:#ffe0e2 !important;
  color:var(--mak-red) !important;
}

.tab-icon{
  background:rgba(255,255,255,.10) !important;
  color:#ffffff !important;
}

/* Header: MakSPH green for institutional identity, red used as accent only */
.org-kicker{
  color:var(--mak-green) !important;
}

.brand h1,
.brand-with-org h1{
  color:var(--mak-black) !important;
}

.who a{
  color:var(--mak-green) !important;
}

/* Status bar should feel institutional, not brown */
.status-bar,
.status-bar.stale{
  background:var(--mak-black) !important;
  border-top:3px solid var(--mak-red) !important;
  border-bottom:1px solid #3a3636 !important;
  color:#ffffff !important;
}

.dot.ok{
  background:var(--mak-green) !important;
}

.dot.warn{
  background:var(--mak-gold) !important;
}

/* Executive cards: cleaner MakSPH accenting */
.page-hero{
  background:linear-gradient(135deg,#ffffff 0%,#fbfaf7 70%,#f3efe7 100%) !important;
  border-color:#ded8cc !important;
}

.eyebrow{
  color:var(--mak-green) !important;
}

.chip.dark{
  background:var(--mak-black) !important;
  border-color:var(--mak-black) !important;
  color:#ffffff !important;
}

.chip.warn{
  background:#fff8eb !important;
  border-color:var(--mak-gold) !important;
  color:#6f4a10 !important;
}

/* Red/gold/green accents in KPI cards */
.metric-card:before{
  background:linear-gradient(90deg,var(--mak-green),#69c99a) !important;
}

.metric-card.warm:before{
  background:linear-gradient(90deg,var(--mak-red),var(--mak-gold)) !important;
}

.metric-value{
  color:var(--mak-black) !important;
}

.metric-label{
  color:#55514f !important;
}

/* Charts and module visuals */
.viz-track i,
.round-trend-cell i b{
  background:linear-gradient(90deg,var(--mak-green),#49bc7b) !important;
}

.domain-tab.active,
.filter-bar button,
.button,
.btn.secondary{
  background:var(--mak-green) !important;
  color:#ffffff !important;
}

.download{
  color:var(--mak-green) !important;
}

.download:after{
  background:var(--mak-green) !important;
}

/* Keep partner logos clean against MakSPH theme */
.partner-strip img,
.org-logo,
.rail-org-logo{
  background:#ffffff !important;
  border-color:#ded8cc !important;
}

/* Footer */
.site-footer{
  border-top:1px solid var(--line) !important;
  padding-top:14px !important;
  color:#625f5c !important;
}

/* v28 MakSPH colour theme + sidebar wording polish
   Uses Makerere/MakSPH-inspired institutional colours:
   Mak Red #ed1c24, Mak Black #231F20, Mak Green #00a651,
   Mak Gold #d2ab67, Mak Silver #cdcccb.
*/

:root{
  --mak-red:#ed1c24;
  --mak-black:#231F20;
  --mak-green:#00a651;
  --mak-gold:#d2ab67;
  --mak-silver:#cdcccb;

  --page:#f7f7f6 !important;
  --panel:#ffffff !important;
  --panel-soft:#faf9f6 !important;
  --ink:#231F20 !important;
  --muted:#5f6261 !important;

  --nav:#231F20 !important;
  --nav-2:#161414 !important;
  --accent:#00a651 !important;
  --accent-2:#07894a !important;
  --accent-3:#d9f2e5 !important;
  --amber:#d2ab67 !important;
  --line:#e5e2dc !important;
  --border:#d8d4cc !important;
}

/* Makerere/MakSPH institutional navigation */
.rail{
  background:linear-gradient(180deg,#231F20 0%,#151313 100%) !important;
  border-right:5px solid var(--mak-red) !important;
}

.rail-brand-lockup{
  border-bottom:1px solid rgba(210,171,103,.22) !important;
}

.rail-logo{
  color:#ffffff !important;
}

.rail-sub{
  color:#d9d4ca !important;
}

.group-label{
  color:#d2ab67 !important;
}

.tab{
  color:#ebe7df !important;
}

.tab:hover{
  background:rgba(237,28,36,.12) !important;
  color:#ffffff !important;
}

.tab.active{
  background:#fff4f4 !important;
  color:#231F20 !important;
  border-left:5px solid var(--mak-red) !important;
}

.tab.active .tab-icon{
  background:#ffe0e2 !important;
  color:var(--mak-red) !important;
}

.tab-icon{
  background:rgba(255,255,255,.10) !important;
  color:#ffffff !important;
}

/* Header: MakSPH green for institutional identity, red used as accent only */
.org-kicker{
  color:var(--mak-green) !important;
}

.brand h1,
.brand-with-org h1{
  color:var(--mak-black) !important;
}

.who a{
  color:var(--mak-green) !important;
}

/* Status bar should feel institutional, not brown */
.status-bar,
.status-bar.stale{
  background:var(--mak-black) !important;
  border-top:3px solid var(--mak-red) !important;
  border-bottom:1px solid #3a3636 !important;
  color:#ffffff !important;
}

.dot.ok{
  background:var(--mak-green) !important;
}

.dot.warn{
  background:var(--mak-gold) !important;
}

/* Executive cards: cleaner MakSPH accenting */
.page-hero{
  background:linear-gradient(135deg,#ffffff 0%,#fbfaf7 70%,#f3efe7 100%) !important;
  border-color:#ded8cc !important;
}

.eyebrow{
  color:var(--mak-green) !important;
}

.chip.dark{
  background:var(--mak-black) !important;
  border-color:var(--mak-black) !important;
  color:#ffffff !important;
}

.chip.warn{
  background:#fff8eb !important;
  border-color:var(--mak-gold) !important;
  color:#6f4a10 !important;
}

/* Red/gold/green accents in KPI cards */
.metric-card:before{
  background:linear-gradient(90deg,var(--mak-green),#69c99a) !important;
}

.metric-card.warm:before{
  background:linear-gradient(90deg,var(--mak-red),var(--mak-gold)) !important;
}

.metric-value{
  color:var(--mak-black) !important;
}

.metric-label{
  color:#55514f !important;
}

/* Charts and module visuals */
.viz-track i,
.round-trend-cell i b{
  background:linear-gradient(90deg,var(--mak-green),#49bc7b) !important;
}

.domain-tab.active,
.filter-bar button,
.button,
.btn.secondary{
  background:var(--mak-green) !important;
  color:#ffffff !important;
}

.download{
  color:var(--mak-green) !important;
}

.download:after{
  background:var(--mak-green) !important;
}

/* Keep partner logos clean against MakSPH theme */
.partner-strip img,
.org-logo,
.rail-org-logo{
  background:#ffffff !important;
  border-color:#ded8cc !important;
}

/* Footer */
.site-footer{
  border-top:1px solid var(--line) !important;
  padding-top:14px !important;
  color:#625f5c !important;
}

/* v29 percentages and implementation bar containment */

/* Keep school coverage bars inside the implementation panel */
.school-coverage-panel{
  overflow:hidden !important;
}

.school-coverage-panel .mini-bars{
  display:grid !important;
  gap:10px !important;
  width:100% !important;
  overflow:hidden !important;
}

.school-coverage-panel .mini-row{
  display:grid !important;
  grid-template-columns:minmax(92px,128px) minmax(0,1fr) minmax(28px,42px) !important;
  gap:10px !important;
  align-items:center !important;
  width:100% !important;
  min-width:0 !important;
}

.school-coverage-panel .mini-row span{
  min-width:0 !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
}

.school-coverage-panel .mini-track{
  min-width:0 !important;
  width:100% !important;
  max-width:100% !important;
}

.school-coverage-panel .mini-row strong{
  min-width:0 !important;
  text-align:right !important;
}

/* Module response rows now show both counts and percentages */
.viz-row{
  grid-template-columns:minmax(120px,185px) minmax(150px,1fr) minmax(54px,auto) minmax(54px,auto) !important;
  column-gap:8px !important;
}

.viz-row span{
  max-width:185px !important;
}

.viz-row strong{
  text-align:right !important;
  color:var(--ink) !important;
  font-weight:850 !important;
}

.viz-row em{
  font-style:normal !important;
  font-weight:850 !important;
  color:var(--accent) !important;
  font-size:.86rem !important;
  text-align:right !important;
  background:#eef8f2 !important;
  border-radius:999px !important;
  padding:2px 7px !important;
  white-space:nowrap !important;
}

.q-meta{
  color:#56615b !important;
}

@media(max-width:900px){
  .viz-row{
    grid-template-columns:minmax(100px,150px) minmax(100px,1fr) auto auto !important;
  }
  .viz-row span{
    max-width:150px !important;
  }
}

/* v30 public-copy and visual cleanup */
.q-meta{
  font-size:13px !important;
  line-height:1.35 !important;
  max-width:96% !important;
}

.viz-row{
  grid-template-columns:minmax(135px,190px) minmax(120px,1fr) minmax(52px,auto) minmax(52px,auto) !important;
}

.viz-row span{
  white-space:normal !important;
  overflow:visible !important;
  text-overflow:clip !important;
  line-height:1.18 !important;
}

.domain-tabs .domain-tab,
.domain-tab{
  text-transform:none !important;
}

.module-filter-panel .note{
  max-width:900px !important;
}

@media(min-width:1200px){
  .question-viz-card{min-height:220px !important;}
}

/* v31 cleanup: three-filter layout and response label polish */
.wide-filter-form{
  grid-template-columns:repeat(3,minmax(180px,1fr)) auto !important;
}
@media(max-width:1100px){
  .wide-filter-form{grid-template-columns:1fr 1fr !important;}
}
@media(max-width:700px){
  .wide-filter-form{grid-template-columns:1fr !important;}
}
.q-meta{font-size:12.5px !important;}
.viz-row{
  grid-template-columns:minmax(150px,210px) minmax(100px,1fr) minmax(54px,auto) minmax(54px,auto) !important;
}
.viz-row span{
  max-width:210px !important;
}

.top-user {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  margin-left: auto;
}

.top-user-main {
  display: flex;
  align-items: center;
  gap: 10px;
  text-align: left;
}

.top-user-avatar,
.top-user-avatar-img {
  width: 42px;
  height: 42px;
  border-radius: 999px;
  flex: 0 0 auto;
}

.top-user-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #06351f;
  color: #ffffff;
  font-size: 0.9rem;
  font-weight: 900;
  letter-spacing: 0.04em;
  border: 2px solid #d9efe2;
}

.top-user-avatar-img {
  object-fit: cover;
  border: 2px solid #d9efe2;
}

.top-user-name {
  color: #4c5b53;
  font-size: 0.96rem;
  font-weight: 700;
  line-height: 1.25;
}

.top-user-name span {
  color: #69766d;
  font-weight: 600;
}

.top-user-links {
  margin-top: 2px;
  color: #00843d;
  font-weight: 800;
}

.top-user-links a {
  color: #00843d;
  text-decoration: none;
}

.top-user-links a:hover {
  text-decoration: underline;
}
