/* Financing Quality Infrastructure in Africa, prototype. Mobile-first, low-bandwidth, RTL-ready. */
:root{
  --navy:#14486B; --navy-d:#0E3550; --teal:#1F7A8C; --accent:#008300; --accent-d:#005C1F; --ink:#222; --grey:#5A6B76;
  --light:#F2F6F9; --band:#E8EEF3; --line:#D5DEE5; --white:#fff;
  /* tier colors: CVD-validated trio (dataviz validator, light surface, all checks pass) */
  --t1:#eb6834; --t2:#2a78d6; --t3:#008300; --red:#B3261E;
  --radius:10px; --shadow:0 1px 3px rgba(20,72,107,.10);
  --sans:"Segoe UI",system-ui,-apple-system,"Noto Sans","Noto Sans Arabic",Tahoma,Arial,sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--sans);color:var(--ink);background:var(--white);line-height:1.55;font-size:16px}
[dir="rtl"] body{line-height:1.7}
img{max-width:100%}
a{color:var(--teal)}
.wrap{max-width:1080px;margin:0 auto;padding:0 16px}
.skip{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.skip:focus{position:fixed;inset-inline-start:8px;top:8px;width:auto;height:auto;overflow:visible;clip-path:none;background:var(--navy);color:#fff;padding:8px 14px;border-radius:6px;z-index:99}

/* header */
header.site{background:var(--navy);color:#fff}
.topbar{display:flex;align-items:center;gap:10px;padding:10px 0;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:#fff;min-inline-size:0}
.brand .mark{width:34px;height:34px;border-radius:8px;background:linear-gradient(135deg,var(--accent),var(--accent-d));display:grid;place-items:center;font-weight:800;color:#fff;font-size:15px;flex:none}
.brand .name{font-weight:700;font-size:15px;line-height:1.25}
.badge-proto{font-size:10px;font-weight:800;letter-spacing:.12em;background:var(--accent);color:#fff;border-radius:4px;padding:2px 6px;flex:none}
nav.main{display:flex;gap:2px;flex-wrap:wrap;margin-inline-start:auto}
nav.main a{color:#DCE8F0;text-decoration:none;padding:7px 10px;border-radius:6px;font-size:14px}
nav.main a[aria-current="page"],nav.main a:hover{background:rgba(255,255,255,.12);color:#fff}
.langs{display:flex;gap:4px;margin-inline-start:8px}
.langs button{background:transparent;border:1px solid rgba(255,255,255,.35);color:#fff;border-radius:6px;padding:4px 9px;font-size:13px;cursor:pointer;font-family:inherit}
.langs button[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:700}
.partnerline{background:var(--navy-d);color:#B9CBD8;font-size:11px;padding:6px 0;text-align:center}

/* hero */
.hero{background:linear-gradient(180deg,var(--navy) 0%,#175077 100%);color:#fff;padding:42px 0 48px}
.hero .kicker{color:#8FE0A8;font-weight:700;letter-spacing:.14em;font-size:12px;text-transform:uppercase}
.hero h1{font-size:clamp(24px,4.5vw,38px);line-height:1.2;margin:.4em 0 .4em;max-width:22em}
.hero p.lead{color:#D7E4EE;max-width:46em;font-size:17px}
.btn{display:inline-block;border:0;border-radius:8px;padding:12px 22px;font-size:16px;font-weight:700;cursor:pointer;text-decoration:none;font-family:inherit}
.btn.primary{background:var(--accent);color:#fff}
.btn.primary:hover{background:var(--accent-d)}
.btn.ghost{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.5);margin-inline-start:10px}
.btn.ghost:hover{border-color:#fff}
.btn.small{padding:8px 14px;font-size:14px}
.btn[disabled]{opacity:.55;cursor:not-allowed}

/* sections */
section.pad{padding:40px 0}
h2.sec{color:var(--navy);font-size:clamp(20px,3vw,27px);margin:0 0 6px}
p.sub{color:var(--grey);margin-top:0;max-width:52em}
.grid4{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));margin-top:18px}
.card{background:var(--light);border:1px solid var(--line);border-radius:var(--radius);padding:16px}
.card h3{margin:.2em 0 .3em;color:var(--navy);font-size:16px}
.card p{margin:0;color:var(--grey);font-size:14px}
.stepnum{width:30px;height:30px;border-radius:50%;background:var(--teal);color:#fff;display:grid;place-items:center;font-weight:800;font-size:14px;margin-bottom:8px}

/* country grid */
.cfilter{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}
.cfilter input{flex:1;min-width:210px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;font-size:15px;font-family:inherit}
.cgrid{display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}
.cc{border:1px solid var(--line);border-radius:8px;padding:9px 10px;background:#fff;font-size:13px;position:relative}
.cc.off{background:#FAFBFC;color:var(--grey)}
.cc b{display:block;font-size:13.5px;color:var(--ink);margin-bottom:3px}
.cc.off b{color:var(--grey)}
.cc .tt{display:inline-block;width:10px;height:10px;border-radius:50%;margin-inline-end:5px;vertical-align:baseline}
.tt.t1{background:var(--t1)}.tt.t2{background:var(--t2)}.tt.t3{background:var(--t3)}
.cc .st{font-size:11px;color:var(--grey)}
.cc .w1tag{position:absolute;top:7px;inset-inline-end:8px;font-size:9.5px;font-weight:800;color:var(--t3);letter-spacing:.05em}

/* survey */
.spanel{max-width:760px;margin:26px auto 60px;padding:0 16px}
.scard{background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:22px}
.progress{height:8px;background:var(--band);border-radius:99px;margin:14px 0 4px;overflow:hidden}
.progress>div{height:100%;background:linear-gradient(90deg,var(--teal),var(--navy));border-radius:99px;transition:width .3s}
.pmeta{display:flex;justify-content:space-between;font-size:12.5px;color:var(--grey);margin-bottom:14px}
.qb{border-inline-start:4px solid var(--teal);padding:10px 14px;margin:18px 0;background:var(--light);border-radius:0 8px 8px 0}
[dir="rtl"] .qb{border-radius:8px 0 0 8px}
.qb .qid{font-weight:800;color:var(--teal);font-size:13px;margin-inline-end:8px}
.qb .qtag{font-size:10.5px;font-weight:800;color:var(--accent);letter-spacing:.06em;margin-inline-end:8px}
.qb .qtext{font-weight:600;font-size:15.5px}
.qb .err{color:var(--red);font-size:13px;margin-top:8px;font-weight:600;display:none}
.qb.invalid{border-inline-start-color:var(--red)}
.qb.invalid .err{display:block}
.opts{margin-top:10px;display:grid;gap:7px}
.opt{display:flex;gap:9px;align-items:flex-start;background:#fff;border:1.5px solid var(--line);border-radius:8px;padding:9px 11px;cursor:pointer;font-size:14.5px}
.opt:hover{border-color:var(--teal)}
.opt input{margin-top:3px;accent-color:var(--teal);flex:none}
.opt.sel{border-color:var(--teal);background:#EDF6F8}
.miss{display:flex;gap:8px;flex-wrap:wrap;margin-top:11px}
.miss button{font-size:13px;font-weight:600;border:1.5px solid #9FB8C6;background:#fff;color:var(--navy);border-radius:99px;padding:7px 14px;cursor:pointer;font-family:inherit}
.miss button:hover{border-color:var(--teal);background:#EDF6F8}
.miss button.sel{background:var(--navy);color:#fff;border-color:var(--navy)}
.fu{margin-top:8px;padding-inline-start:26px}
.fu input,.fu textarea,.txt textarea,.txt input,.contact input{width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:8px;font-size:14.5px;font-family:inherit}
.matrix{margin-top:10px;display:grid;gap:10px}
.mrow{background:#fff;border:1px solid var(--line);border-radius:8px;padding:9px 11px}
.mrow .rlab{font-size:14px;font-weight:600;margin-bottom:7px}
.mopts{display:flex;gap:6px;flex-wrap:wrap}
.mopts button{border:1.5px solid var(--line);background:#fff;border-radius:99px;padding:5px 11px;font-size:12.5px;cursor:pointer;font-family:inherit}
.mopts button.sel{background:var(--teal);border-color:var(--teal);color:#fff}
.comp .mrow{display:flex;align-items:center;gap:10px;justify-content:space-between}
.comp .rlab{margin:0;flex:1}
.comp input{width:86px;padding:7px 9px;border:1px solid var(--line);border-radius:8px;font-size:15px;text-align:center;font-family:inherit}
.comp .sumline{font-weight:700;font-size:14px;margin-top:8px}
.comp .sumline.bad{color:var(--red)}
.comp .sumline.ok{color:var(--t3)}
.rank .opt{position:relative}
.rank .opt .rk{position:absolute;inset-inline-end:10px;top:50%;transform:translateY(-50%);width:26px;height:26px;border-radius:50%;background:var(--accent);color:#fff;font-weight:800;display:grid;place-items:center;font-size:13px}
.hint{font-size:12.5px;color:var(--grey);margin-top:6px}
.loc{display:block;font-size:12px;color:var(--teal);font-weight:700;margin-top:2px}
.mopts small{font-weight:400;opacity:.85}
.legendbox{background:#fff;border:1px dashed #B9C8D2;border-radius:8px;padding:9px 12px;margin-top:9px;font-size:12.5px;color:var(--grey);display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center}
.legendbox b{color:var(--navy);font-size:12.5px;width:100%}
.legendbox i{font-style:normal;display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--teal);color:#fff;font-weight:800;font-size:11.5px;margin-inline-end:5px;vertical-align:middle}
@keyframes qipulse{0%{box-shadow:0 0 0 0 rgba(0,131,0,.55)}100%{box-shadow:0 0 0 16px rgba(0,131,0,0)}}
.btn.pulse{animation:qipulse 1s ease-out 2}
.qb{scroll-margin-top:84px}
.navrow{display:flex;justify-content:space-between;gap:10px;margin-top:22px}
.btn.nav{background:var(--navy);color:#fff}
.btn.nav.sec{background:#fff;color:var(--navy);border:1.5px solid var(--line)}
.pathchips{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}
.pathchips span{font-size:11.5px;background:var(--band);border-radius:99px;padding:4px 10px;color:var(--navy);font-weight:600}
.notice{background:#FFF8E6;border:1px solid #EAD48A;border-radius:8px;padding:10px 13px;font-size:13.5px;color:#6b5200;margin:12px 0}
.okbox{background:#EDF7EE;border:1px solid #BFDFC3;border-radius:8px;padding:10px 13px;font-size:13.5px;color:#1D5622;margin:12px 0}

/* review */
.review dl{display:grid;grid-template-columns:1fr;gap:2px;font-size:13.5px}
.review dt{color:var(--grey);margin-top:9px;font-size:12px}
.review dd{margin:0;font-weight:600}

/* insights */
.badge{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.1em;border-radius:4px;padding:3px 8px;vertical-align:middle;margin-inline-start:8px}
.badge.real{background:#E3F1E4;color:#1D5622;border:1px solid #BFDFC3}
.badge.demo{background:#FDECEC;color:#8f1d16;border:1px solid #F2C2BE}
.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:10px;margin-top:12px}
table.data{border-collapse:collapse;width:100%;font-size:13px;min-width:760px}
table.data th{background:var(--navy);color:#fff;text-align:start;padding:8px 10px;font-size:12px;position:sticky;top:0}
table.data td{padding:7px 10px;border-top:1px solid var(--band)}
table.data tr:nth-child(even) td{background:var(--light)}
.tierpill{font-size:11px;font-weight:800;border-radius:99px;padding:2px 9px;color:#fff;white-space:nowrap}
.tierpill.t1{background:var(--t1)}.tierpill.t2{background:var(--t2)}.tierpill.t3{background:var(--t3)}
.chartbox{background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px;margin-top:14px;position:relative}
.chartbox h3{margin:0 0 4px;color:var(--navy);font-size:15.5px}
.chartbox .src{font-size:11px;color:var(--grey);margin-top:8px}
.demo-wm{position:absolute;inset-inline-end:10px;top:10px;opacity:.9}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--grey);margin-top:8px}
.legend i{display:inline-block;width:11px;height:11px;border-radius:3px;margin-inline-end:5px;vertical-align:-1px}
.kpis{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-top:14px}
.kpi{background:var(--light);border:1px solid var(--line);border-radius:10px;padding:12px 14px}
.kpi b{display:block;font-size:26px;color:var(--navy)}
.kpi span{font-size:12px;color:var(--grey)}

/* admin */
.adminbanner{background:var(--red);color:#fff;font-weight:700;font-size:13px;text-align:center;padding:8px 12px}

/* footer */
footer.site{background:var(--navy-d);color:#B9CBD8;margin-top:50px;padding:26px 0;font-size:12.5px}
footer.site .cols{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
footer.site b{color:#fff}

/* utilities */
.mt0{margin-top:0}.tc{text-align:center}
@media (max-width:640px){
  nav.main{order:3;width:100%;justify-content:flex-start}
  .hero{padding:30px 0 34px}
  .btn.ghost{margin-inline-start:0;margin-top:10px}
  .comp .mrow{flex-wrap:wrap}
}
@media print{ header.site,footer.site,.navrow,.langs{display:none} }
:focus-visible{outline:3px solid #35B85C;outline-offset:2px}

/* ---- access gateway (index) : clean, green and blue only ---- */
.gate{min-height:100svh;display:flex;flex-direction:column;background:#fff}
.gatetop{display:flex;align-items:center;justify-content:space-between;padding:14px 18px}
.gatetop .mark{width:38px;height:38px;border-radius:9px;background:linear-gradient(135deg,var(--accent),var(--accent-d));color:#fff;font-weight:800;display:grid;place-items:center;font-size:16px}
.gatemain{flex:1;display:grid;place-items:center;padding:24px 16px 60px}
.gatecard{width:100%;max-width:440px;text-align:center}
.gatecard h1{color:var(--navy);font-size:clamp(21px,4.2vw,27px);line-height:1.3;margin:18px 0 6px}
.gatecard .rule{width:64px;height:4px;border-radius:2px;background:linear-gradient(90deg,var(--accent),var(--teal));margin:14px auto}
.gatecard .partners{color:var(--grey);font-size:12.5px;line-height:1.6;margin:0 0 22px}
.gatebox{border:1px solid var(--line);border-radius:14px;padding:22px;box-shadow:var(--shadow);text-align:start;background:#fff}
.gatetabs{display:flex;gap:6px;margin-bottom:16px}
.gatetabs button{flex:1;border:1px solid var(--line);background:var(--light);color:var(--navy);border-radius:8px;padding:10px;font-size:15px;font-weight:700;cursor:pointer;font-family:inherit}
.gatetabs button[aria-selected="true"]{background:var(--navy);border-color:var(--navy);color:#fff}
.gate label{display:block;font-size:13.5px;font-weight:600;color:var(--navy);margin:12px 0 4px}
.gate input,.gate select{width:100%;padding:12px;border:1px solid var(--line);border-radius:8px;font-size:16px;font-family:inherit;background:#fff}
.gate input:focus,.gate select:focus{border-color:var(--teal)}
.gatebtn{width:100%;margin-top:18px;border:0;border-radius:8px;padding:13px;font-size:16px;font-weight:700;cursor:pointer;font-family:inherit;background:var(--accent);color:#fff}
.gatebtn:hover{background:var(--accent-d)}
.gatemsg{margin-top:12px;font-size:13.5px;border-radius:8px;padding:10px 12px;display:none}
.gatemsg.err{display:block;background:#FBEDEC;color:var(--red)}
.gatemsg.ok{display:block;background:#E9F5EC;color:var(--accent-d)}
.gatehint{color:var(--grey);font-size:12px;margin-top:10px}
.gatecred{margin-top:10px;background:var(--light);border:1px dashed var(--line);border-radius:8px;padding:10px 12px;font-size:13px;color:var(--navy)}
.gatecred code{background:#fff;border:1px solid var(--line);border-radius:4px;padding:1px 6px;font-size:13px}
.gatefoot{color:var(--grey);font-size:11.5px;text-align:center;padding:14px}
.gate2col{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(max-width:480px){.gate2col{grid-template-columns:1fr}}
.issued{margin-top:14px;border:1px solid var(--accent);border-radius:10px;padding:14px;background:#E9F5EC}
.issued b{color:var(--accent-d)}
.issued .big{font-size:22px;letter-spacing:.04em;color:var(--navy);font-weight:800;margin:6px 0}

/* session chip in the site header */
.who{display:flex;align-items:center;gap:8px;margin-inline-start:8px}
.who .wid{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.3);color:#fff;border-radius:6px;padding:4px 9px;font-size:12.5px;font-weight:700;letter-spacing:.03em}
.who button{background:transparent;border:1px solid rgba(255,255,255,.35);color:#fff;border-radius:6px;padding:4px 9px;font-size:12.5px;cursor:pointer;font-family:inherit}
.who button:hover{background:rgba(255,255,255,.12)}

/* locked P2 row for signed-in respondents */
.lockrow{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:8px;background:var(--light);padding:11px 13px;margin-top:10px;font-size:14.5px}
.lockrow .lk{flex:none;color:var(--accent-d);font-weight:800}

/* ---- access control console (admin) ---- */
.console{border:2px solid var(--navy);border-radius:12px;padding:18px;margin:18px 0;background:#fff}
.console h3{margin:0 0 4px;color:var(--navy)}
.rolebar{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0}
.rolebar button{border:1px solid var(--line);background:var(--light);color:var(--navy);border-radius:8px;padding:8px 13px;font-size:13.5px;font-weight:700;cursor:pointer;font-family:inherit}
.rolebar button[aria-pressed="true"]{background:var(--navy);border-color:var(--navy);color:#fff}
.rolebar .super[aria-pressed="true"]{background:var(--accent);border-color:var(--accent)}
.cbox{border:1px solid var(--line);border-radius:10px;padding:14px;margin-top:14px}
.cbox h4{margin:0 0 8px;color:var(--navy);font-size:15px}
.cbox .note{color:var(--grey);font-size:12.5px;margin:2px 0 10px}
.cgrid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}
.cbox label{display:block;font-size:12.5px;font-weight:600;color:var(--navy);margin:6px 0 3px}
.cbox input,.cbox select{width:100%;padding:9px 10px;border:1px solid var(--line);border-radius:7px;font-size:14px;font-family:inherit;background:#fff}
.cbtn{border:0;border-radius:7px;padding:9px 14px;font-size:13.5px;font-weight:700;cursor:pointer;font-family:inherit;background:var(--accent);color:#fff}
.cbtn.sec{background:var(--light);color:var(--navy);border:1px solid var(--line)}
.cbtn.warn{background:#FBEDEC;color:var(--red);border:1px solid #E7C4C1}
.cbtn:disabled{opacity:.45;cursor:not-allowed}
.locknote{display:inline-block;font-size:11.5px;color:var(--grey);border:1px dashed var(--line);border-radius:6px;padding:2px 8px;margin-inline-start:6px}
.pitem{border:1px solid var(--line);border-radius:8px;padding:10px 12px;margin-top:8px;display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:13.5px}
.pitem .grow{flex:1;min-width:200px}
.pitem .why{font-size:11px;font-weight:800;border-radius:4px;padding:2px 7px}
.why.quota{background:#FBEDEC;color:var(--red)}
.why.wave{background:var(--band);color:var(--navy)}
.why.manual{background:#E9F5EC;color:var(--accent-d)}
.qmx{border-collapse:collapse;width:100%;font-size:12.5px}
.qmx th,.qmx td{border:1px solid var(--line);padding:6px 8px;text-align:center}
.qmx th{background:var(--light);color:var(--navy)}
.qmx td.full{background:#FBEDEC;color:var(--red);font-weight:700}
.qmx td.free{background:#E9F5EC}
.qmx td:first-child,.qmx th:first-child{text-align:start}
.roster{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.roster .org{border:1px solid var(--line);border-radius:9px;padding:12px}
.roster .org b{color:var(--navy)}
.roster .cap{font-size:11.5px;color:var(--grey)}
.roster ul{list-style:none;margin:8px 0;padding:0}
.roster li{display:flex;justify-content:space-between;align-items:center;gap:6px;font-size:13px;border-bottom:1px dashed var(--line);padding:5px 0}
.roster li .rm{background:none;border:0;color:var(--red);cursor:pointer;font-size:12px;font-family:inherit}
.alog{list-style:none;margin:6px 0 0;padding:0;font-size:12.5px}
.alog li{border-bottom:1px dashed var(--line);padding:5px 0;color:var(--ink)}
.alog li time{color:var(--grey);margin-inline-end:8px;font-size:11.5px}
.mailprev{white-space:pre-wrap;background:var(--light);border:1px solid var(--line);border-radius:8px;padding:12px;font-size:12.5px;margin-top:10px;display:none}
.statuschip{font-size:11px;font-weight:800;border-radius:4px;padding:2px 7px}
.statuschip.active{background:#E9F5EC;color:var(--accent-d)}
.statuschip.invited{background:var(--band);color:var(--navy)}
.statuschip.revoked{background:#FBEDEC;color:var(--red)}

/* role chooser on the gateway */
.rolepick{display:grid;gap:8px;margin-top:6px}
.rolecard{border:1.5px solid var(--line);border-radius:10px;padding:11px 13px;cursor:pointer;background:#fff}
.rolecard b{display:block;color:var(--navy);font-size:14.5px;margin-bottom:2px}
.rolecard span{font-size:12.5px;color:var(--grey);line-height:1.45}
.rolecard:hover{border-color:var(--teal)}
.rolecard.sel{border-color:var(--accent);background:#E9F5EC;box-shadow:inset 3px 0 0 var(--accent)}
[dir="rtl"] .rolecard.sel{box-shadow:inset -3px 0 0 var(--accent)}

/* africa map (home) */
.afmap{background:linear-gradient(180deg,#F4F8FB,#EAF1F6);border:1px solid var(--line);border-radius:12px;padding:8px;margin-top:14px}
.afmap svg{width:100%;height:auto;display:block}
.afmap circle.cn{cursor:pointer;stroke:#fff;stroke-width:1.4;transition:opacity .15s}
.afmap circle.cn:hover{stroke:var(--navy);stroke-width:2}
.afmap circle.sel{stroke:var(--navy);stroke-width:2.5}
.afmap .w1ring{fill:none;stroke:var(--navy);stroke-width:1.3;opacity:.55;pointer-events:none}
.mapdetail{border:1px solid var(--line);border-radius:10px;background:#fff;padding:12px 14px;margin-top:10px;font-size:13.5px;display:flex;gap:12px;flex-wrap:wrap;align-items:center;min-height:48px}
.mapdetail b{color:var(--navy);font-size:15px}
.mapdetail .dim{color:var(--grey)}

/* report builder (insights) */
.rb{border:2px solid var(--accent);border-radius:12px;padding:16px;margin-top:22px;background:#fff}
.rb h3{margin:0 0 4px;color:var(--navy)}
.rbgrid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));margin-top:10px}
.rb fieldset{border:1px solid var(--line);border-radius:9px;padding:10px 12px;margin:0}
.rb legend{font-size:12.5px;font-weight:700;color:var(--navy);padding:0 5px}
.rb label.ck{display:flex;gap:8px;align-items:flex-start;font-size:13px;margin:6px 0;cursor:pointer}
.rb label.ck input{margin-top:2px;accent-color:var(--accent)}
.rb select{width:100%;padding:8px 9px;border:1px solid var(--line);border-radius:7px;font-size:13.5px;font-family:inherit;background:#fff}
.rb select[multiple]{min-height:132px}
.rbbtns{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.rbbtn{border:0;border-radius:8px;padding:10px 16px;font-size:13.5px;font-weight:700;cursor:pointer;font-family:inherit;color:#fff}
.rbbtn.csv{background:var(--teal)}
.rbbtn.xls{background:var(--accent)}
.rbbtn.doc{background:var(--navy)}
.rbbtn.ppt{background:#B3541E}
.rbbtn:hover{opacity:.92}
.rbmeta{font-size:12px;color:var(--grey);margin-top:8px}

/* ---- QIF Survey Master v3: three spaces, logos, objectives ---- */
.gatecard.wide{max-width:860px}
.mastername{font-size:12px;font-weight:800;letter-spacing:.22em;color:var(--accent-d);text-transform:uppercase;margin-top:6px}
.plogos{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin:2px 0 18px}
.plogo{display:inline-flex;align-items:center;justify-content:center;min-width:120px;height:52px;border:1px solid var(--line);border-radius:9px;background:#fff;padding:6px 14px}
.plogo img{max-height:38px;max-width:150px;width:auto}
.plogo i{display:none;font-style:normal;font-size:12px;font-weight:800;color:var(--navy);letter-spacing:.04em;text-align:center}
.plogo.txt i{display:block}
.spaces{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin:6px 0 18px;text-align:start}
.space{border:1.5px solid var(--line);border-radius:12px;padding:14px 15px;background:#fff;position:relative;overflow:hidden}
.space::before{content:"";position:absolute;inset-inline-start:0;top:0;bottom:0;width:5px}
.space.africa::before{background:var(--accent)}
.space.caribbean::before{background:var(--teal)}
.space.pacific::before{background:#2a78d6}
.space b{display:block;color:var(--navy);font-size:16.5px}
.space .cnt{display:inline-block;margin:6px 0;font-size:12px;font-weight:800;border-radius:99px;padding:3px 10px;background:#E9F5EC;color:var(--accent-d)}
.space.caribbean .cnt{background:#E6F2F5;color:#155E6E}
.space.pacific .cnt{background:#E8F0FB;color:#1D4F8C}
.space .sub{display:block;font-size:12.5px;color:var(--grey);line-height:1.5}
.objbox{border:1px solid var(--line);border-inline-start:4px solid var(--accent);border-radius:10px;background:var(--light);padding:14px 16px;margin:0 0 18px;text-align:start}
.objbox h2{margin:0 0 6px;color:var(--navy);font-size:16px}
.objbox p{margin:0;font-size:13.5px;color:var(--ink);line-height:1.65}

/* region tabs (home + insights + admin) */
.regtabs{display:flex;gap:6px;flex-wrap:wrap;margin:14px 0}
.regtabs button{border:1.5px solid var(--line);background:#fff;color:var(--navy);border-radius:99px;padding:8px 16px;font-size:13.5px;font-weight:700;cursor:pointer;font-family:inherit}
.regtabs button[aria-pressed="true"]{color:#fff}
.regtabs button.africa[aria-pressed="true"]{background:var(--accent);border-color:var(--accent)}
.regtabs button.caribbean[aria-pressed="true"]{background:var(--teal);border-color:var(--teal)}
.regtabs button.pacific[aria-pressed="true"]{background:#2a78d6;border-color:#2a78d6}
.regboxes{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-top:16px}
.regbox{border:1.5px solid var(--line);border-radius:12px;background:#fff;padding:16px;cursor:pointer;text-align:start;font-family:inherit}
.regbox:hover{border-color:var(--navy)}
.regbox b{display:block;color:var(--navy);font-size:17px}
.regbox .cnt{font-size:12.5px;color:var(--grey)}

/* admin v3 */
.modechip{display:inline-block;font-size:11px;font-weight:800;border-radius:5px;padding:3px 9px;letter-spacing:.05em}
.modechip.live{background:#E9F5EC;color:var(--accent-d);border:1px solid #BFDFC3}
.modechip.demo{background:var(--band);color:var(--navy);border:1px solid var(--line)}
.rights{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.rights label.ck{display:flex;gap:7px;align-items:flex-start;font-size:12.5px;margin:2px 0;cursor:pointer}
.dlgrid{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-top:10px}
.pwmodal{border:2px solid var(--accent);border-radius:10px;background:#E9F5EC;padding:14px;margin-top:12px}
.pwmodal code{background:#fff;border:1px solid var(--line);border-radius:5px;padding:2px 8px;font-size:15px;font-weight:700}
.ctoggle{display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:8px 11px;font-size:13px}
.ctoggle button{border:1px solid var(--line);border-radius:99px;background:var(--light);color:var(--grey);font-size:11.5px;font-weight:800;padding:4px 11px;cursor:pointer;font-family:inherit}
.ctoggle button.on{background:var(--accent);border-color:var(--accent);color:#fff}
.cgridt{display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));margin-top:10px}

