*{box-sizing:border-box}
/* Sitewide zoom - this design system hardcodes font sizes in px throughout
   rather than rem/em, so a uniform zoom is the low-risk way to make everything
   (text, padding, icons) bigger without re-touching every rule. Bumped from
   1.1 to 1.25 - the first pass wasn't enough.
   --page-zoom mirrors this value so any page sized against a viewport unit
   (100vh full-screen centering, etc.) can divide it back out - zoom scales
   the rendered box AFTER layout, so a box sized to exactly fill the real
   viewport renders 1.25x taller than the window and forces a scrollbar
   unless it compensates. See auth/login.blade.php for the one page that hit this. */
html{zoom:1.25}
:root{--page-zoom:1.25;--navy:#0b1f3a;--navy2:#122b4c;--green:#0a9f6e;--blue:#2563eb;--bg:#f5f8fc;--card:#fff;--text:#172b4d;--muted:#7d8da1;--line:#e4ebf3;--red:#dc2626;--amber:#f59e0b;--purple:#7c3aed;--teal:#0891b2;--slate:#64748b}
body{margin:0;background:var(--bg);color:var(--text);font:13px Inter,Arial,sans-serif}
a{text-decoration:none;color:inherit}.app{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:250px;background:var(--navy);color:#b9c7d8;padding:20px 14px;display:flex;flex-direction:column;z-index:20;overflow-y:auto}.sidebar::-webkit-scrollbar{width:6px}.sidebar::-webkit-scrollbar-thumb{background:#264569;border-radius:3px}.brand{display:flex;align-items:center;gap:10px;color:#fff;padding:0 7px 24px}.logo{width:36px;height:36px;border-radius:10px;background:#fff;display:grid;place-items:center;font-weight:800;font-size:18px;padding:4px;overflow:hidden}.brand b{display:block;font-size:14px}.brand small,.election small,.user small{display:block;color:#7186a2;font-size:9px;margin-top:3px}.workspace,nav label{font-size:8px;letter-spacing:1px;font-weight:800;color:#7186a2;padding:9px}.election{position:relative;margin:0 4px 14px;padding:10px;background:var(--navy2);border:1px solid #203b5b;border-radius:10px;font-size:10px;color:#fff}.election i{position:absolute;right:10px;top:11px}nav label{display:block;margin-top:4px}nav a{height:36px;display:flex;align-items:center;gap:10px;padding:0 10px;border-radius:8px;color:#aebdd0;font-size:11px}nav a:hover,nav a.active{background:#143253;color:#fff;border-left:3px solid var(--green);padding-left:7px}.nav-toggle{justify-content:space-between;cursor:pointer}.nav-toggle .chev{margin-left:auto;font-size:9px;transition:transform .15s;flex:none}.nav-group.expanded .nav-toggle .chev{transform:rotate(180deg)}.nav-group.expanded .nav-toggle{color:#fff}.nav-submenu{display:none;padding-left:22px;margin-top:2px}.nav-group.expanded .nav-submenu{display:block}.nav-submenu a{height:30px;font-size:10px;color:#8ea0b8}.nav-submenu a:hover,.nav-submenu a.active{background:#143253;color:#fff;border-left:3px solid var(--green);padding-left:7px}.sidebottom{margin-top:auto}.user{border-top:1px solid #1d3654;padding:13px 6px 0;display:flex;align-items:center;gap:8px}.user>span,.headright>span{width:29px;height:29px;border-radius:50%;background:#dff5ee;color:#087957;display:grid;place-items:center;font-size:8px;font-weight:800}.user b{font-size:9px;color:#fff}
main{margin-left:250px;min-width:0}.topbar{height:60px;background:#fff;border-bottom:1px solid var(--line);padding:0 30px;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:10}.crumb{font-size:10px;color:#95a2b2}.crumb span{margin:0 7px;color:#c7d0db}.crumb b{color:#405671}.headright{display:flex;align-items:center;color:#687b91;gap:14px}
.page{display:none;padding:28px 30px 40px;max-width:1550px;margin:auto}.page.active{display:block}.hero{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:20px}.hero small{font-size:8px;font-weight:800;letter-spacing:1.1px;color:#8c9bad}.hero h1{font-size:25px;letter-spacing:-.8px;margin:7px 0 5px;color:#102846}.hero p{margin:0;color:#74849a;font-size:11px}
.primary,.btn,.toolbar button,.head button{height:36px;border:1px solid #dce4ee;border-radius:8px;background:#fff;color:#435a74;font-size:10px;font-weight:700;padding:0 13px;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}.primary{background:var(--green);border-color:var(--green);color:#fff;box-shadow:0 4px 12px #0a9f6e20}
.card,.table-card{background:#fff;border:1px solid var(--line);border-radius:11px;box-shadow:0 2px 8px #10284608;overflow:hidden}.head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:16px 17px 11px}.head h2{font-size:12px;margin:0 0 4px}.head p{font-size:8px;color:#91a0b2;margin:0}.head a{font-size:9px;color:var(--blue);font-weight:700}
.summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}.summary>div{background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px;min-width:0}.summary span,.summary small{display:block;color:#8d9bad;font-size:8px}.summary b{display:block;font-size:20px;margin:8px 0 2px}.green{color:var(--green)!important}.redtext{color:var(--red)}
.toolbar{display:flex;gap:8px;align-items:center;background:#fff;border:1px solid var(--line);padding:11px;border-radius:10px;margin-bottom:14px}.search{flex:1;min-width:180px;height:34px;border:1px solid #dce4ee;border-radius:7px;display:flex;align-items:center;padding:0 10px;color:#98a6b6;font-size:9px}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}.three-col{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:14px}.kpis article{background:#fff;border:1px solid var(--line);border-left:3px solid var(--navy);border-radius:11px;padding:15px;min-height:130px;position:relative}.kpis article:nth-child(2){border-left-color:var(--green)}.kpis article:nth-child(3){border-left-color:var(--blue)}.kpis article:nth-child(4){border-left-color:var(--amber)}.kpis span,.kpis small{display:block;color:#7b8b9f;font-size:9px}.kpis strong{display:block;font-size:25px;letter-spacing:-1px;margin:12px 0 3px}.kpis strong small{display:inline;font-size:11px}.kpis b{font-size:9px;color:var(--green)}
.progress{height:5px;background:#edf1f6;border-radius:8px;overflow:hidden;margin-top:13px}.progress i{display:block;height:100%;background:var(--green);border-radius:8px}.spark{position:absolute;right:15px;bottom:15px;color:var(--blue);font-size:23px}.bigmini{position:absolute;right:17px;bottom:18px;font-size:18px;font-weight:800;color:var(--blue)}
.pulse{display:flex;align-items:center;gap:30px;padding:4px 20px 20px}.donut{width:135px;height:135px;border-radius:50%;background:conic-gradient(var(--green) 0 53%,var(--blue) 53% 78%,var(--amber) 78% 90%,#e9eef4 90%);display:grid;place-items:center;flex:none}.donut>div{width:91px;height:91px;border-radius:50%;background:#fff;display:grid;place-items:center;align-content:center}.donut b{font-size:23px}.donut small{font-size:7px;letter-spacing:1px;color:#8b99aa;font-weight:800}.readiness{flex:1}.readiness>div{display:flex;justify-content:space-between;margin:9px 0 4px;font-size:9px}.readiness progress{width:100%;height:5px}.readiness progress::-webkit-progress-bar{background:#edf1f6;border-radius:8px}.readiness progress::-webkit-progress-value{background:var(--blue);border-radius:8px}
.chart{height:205px;padding:0 18px 14px}.chart svg{width:100%;height:165px}.chart line{stroke:#edf1f5}.chart polyline{fill:none;stroke:var(--blue);stroke-width:3}.axis{display:flex;justify-content:space-between;color:#a0adbc;font-size:7px}
.insights{padding:3px 17px 12px}.insights>div{display:flex;gap:9px;padding:11px 0;border-bottom:1px solid #eef2f6}.insights>div:last-child{border:0}.insights i{width:27px;height:27px;border-radius:7px;display:grid;place-items:center;font-style:normal;font-weight:800;background:#edf4ff;color:var(--blue);flex:none}.insights i.red{background:#fff0f0;color:var(--red)}.insights i.green{background:#eaf8f2;color:var(--green)}.insights i.amber{background:#fff6df;color:#a86a00}.insights p{margin:0;font-size:9px}.insights small{display:block;color:#94a1b1;font-size:7px;margin-top:3px}.ranks{padding:0 17px 9px}.ranks>div{display:flex;align-items:center;padding:9px 0;border-bottom:1px solid #eef2f6}.ranks>div:last-child{border:0}.ranks>b{font-size:8px;color:#a0adbc;width:22px}.ranks span{flex:1;font-size:9px}.ranks span small{display:block;color:#9aa7b7;font-size:7px;margin-top:2px}.ranks strong{color:var(--green);font-size:10px}
.table-card{overflow-x:auto}.table-card table,.card table{width:100%;border-collapse:collapse}.table-card th,.card th{font-size:7px;color:#5b6b82;text-align:left;background:#fafbfd;padding:10px;white-space:nowrap}.table-card td,.card td{font-size:8px;padding:12px 10px;border-top:1px solid #eef2f6;white-space:nowrap}.table-card td b,.table-card td small,.card td b,.card td small{display:block}.table-card td small,.card td small{font-size:7px;color:#98a5b4;margin-top:3px}.badge{display:inline-block;border-radius:12px;padding:5px 7px;font-size:7px;font-weight:800}.badge.green{background:#eaf8f2;color:#087957}.badge.blue{background:#edf4ff;color:var(--blue)}.badge.amber{background:#fff6df;color:#a86a00}.badge.red{background:#fff0f0;color:#c32626}.badge.gray{background:#f0f3f6;color:#6f7d8e}.pagination{padding:12px;font-size:8px;color:#8d9bad}.pagination span{float:right}
.campaign-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin-bottom:14px}.campaign{background:#fff;border:1px solid var(--line);border-radius:11px;padding:16px;box-shadow:0 2px 8px #10284608}.campaign.featured{border-top:3px solid var(--green)}.campaign-top{display:flex;justify-content:space-between;color:#9aa7b7}.campaign h2{font-size:13px;margin:13px 0 5px}.campaign p{font-size:9px;color:#7e8da0;line-height:1.55;min-height:42px}.meta{display:flex;gap:8px;flex-wrap:wrap;color:#8190a2;font-size:7px;margin:12px 0}.cprogress{border-top:1px solid #edf1f5;padding-top:11px}.cprogress>div{display:flex;justify-content:space-between}.cprogress b{font-size:10px}.cprogress small{font-size:7px;color:#98a5b4}.cprogress>i{display:block;height:5px;background:#edf1f6;border-radius:8px;margin-top:6px}.cprogress em{display:block;height:100%;background:var(--green);border-radius:8px}.campaign-foot{display:flex;justify-content:space-between;align-items:center;margin-top:12px;font-size:7px;color:#9aa7b7}.campaign-foot button{border:0;background:none;color:var(--blue);font-size:8px;font-weight:700}
.poll-grid,.survey-layout,.report-layout{display:grid;grid-template-columns:1.5fr 1fr;gap:14px}.map{height:320px;margin:0 17px;background:#eef4f8;border-radius:8px;position:relative;overflow:hidden}.mapgrid{position:absolute;inset:0;background-image:linear-gradient(30deg,transparent 48%,#d3dee8 49%,transparent 51%),linear-gradient(120deg,transparent 48%,#d3dee8 49%,transparent 51%);background-size:70px 70px}.pin{position:absolute;width:30px;height:30px;border-radius:50%;background:var(--green);color:#fff;display:grid;place-items:center;font-size:8px;font-weight:800}.p1{left:20%;top:25%}.p2{left:55%;top:18%;background:var(--blue)}.p3{left:72%;top:55%}.p4{left:35%;top:67%}.p5{left:78%;top:25%;background:var(--amber)}.maplabel{position:absolute;bottom:10px;left:10px;background:#fff;padding:7px;border-radius:6px;font-size:7px;color:#65778c}.maplegend{padding:10px 17px 13px;display:flex;gap:15px;font-size:7px;color:#728299}.incident{display:flex;gap:9px;align-items:center;padding:13px 17px;border-top:1px solid #eef2f6}.incident>div{flex:1}.incident b,.incident small{display:block}.incident b{font-size:9px}.incident small{font-size:7px;color:#99a6b5;margin-top:3px}
.survey-row{display:flex;align-items:center;gap:10px;padding:12px 17px;border-top:1px solid #eef2f6}.form-icon,.report>i{width:32px;height:32px;border-radius:8px;background:#edf4ff;color:var(--blue);display:grid;place-items:center;font-style:normal;flex:none}.survey-row>div:nth-child(2),.report>div{flex:1;min-width:0}.survey-row b,.survey-row small,.report b,.report small{display:block}.survey-row b,.report b{font-size:9px}.survey-row small,.report small{font-size:7px;color:#99a6b5;margin-top:3px}.survey-row>strong{font-size:10px;color:var(--green)}.fieldchips{display:flex;gap:7px;flex-wrap:wrap;padding:10px 17px}.fieldchips span{padding:7px 9px;background:#f4f7fa;border:1px solid #e5ebf1;border-radius:7px;font-size:8px}.builder-note{margin:12px 17px 17px;background:#f1f8f6;border-radius:8px;padding:13px}.builder-note b,.builder-note small{display:block}.builder-note b{font-size:9px}.builder-note small{font-size:8px;color:#718298;line-height:1.5;margin:5px 0 11px}.builder-note .primary{height:31px}.report{display:flex;align-items:center;gap:10px;padding:13px 17px;border-top:1px solid #eef2f6}.report label{font-size:7px;color:#98a5b4;white-space:nowrap}.report button{border:0;background:none;color:var(--blue);font-size:8px;font-weight:700}.inputlabel{display:block;font-size:8px;color:#74849a;font-weight:700;padding:8px 17px}.inputlabel select{display:block;width:100%;height:35px;border:1px solid #dce4ee;border-radius:7px;margin-top:5px;padding:0 8px;font:10px Inter;color:#405671;background:#fff}.full{margin:13px 17px 17px;width:calc(100% - 34px)}
.form-layout{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:14px}.form-card{background:#fff;border:1px solid var(--line);border-radius:11px;padding:17px;margin-bottom:14px;box-shadow:0 2px 8px #10284608}.form-card h2{font-size:12px;margin:0 0 4px}.form-card>p{font-size:8px;color:#91a0b2;margin:0 0 15px}.form-card-head{display:flex;justify-content:space-between;align-items:center;gap:10px;cursor:pointer}.form-card-head p{font-size:8px;color:#91a0b2;margin:0}.form-card-head .chev{font-size:10px;color:#8d9bad;flex:none;transition:transform .15s}.form-card-body{margin-top:15px}.form-card.collapsed .form-card-head{margin-bottom:0}.form-card.collapsed .form-card-head p{display:none}.form-card.collapsed .form-card-body{display:none}.form-card.collapsed .chev{transform:rotate(-90deg)}.form-card{border-left-width:4px}.form-card.accent-blue{border-left-color:var(--blue)}.form-card.accent-green{border-left-color:var(--green)}.form-card.accent-amber{border-left-color:var(--amber)}.form-card.accent-purple{border-left-color:var(--purple)}.form-card.accent-teal{border-left-color:var(--teal)}.form-card.accent-slate{border-left-color:var(--slate)}.section-icon{width:26px;height:26px;border-radius:7px;display:grid;place-items:center;font-size:13px;flex:none}.accent-blue .section-icon{background:#edf4ff;color:var(--blue)}.accent-green .section-icon{background:#eaf8f2;color:var(--green)}.accent-amber .section-icon{background:#fff6df;color:#a86a00}.accent-purple .section-icon{background:#f3ebfe;color:var(--purple)}.accent-teal .section-icon{background:#e6f6fa;color:var(--teal)}.accent-slate .section-icon{background:#f0f3f6;color:var(--slate)}.form-card-head-text{display:flex;align-items:center;gap:10px;min-width:0}.formgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.formgrid label{font-size:8px;color:#64778d;font-weight:600}.formgrid input,.formgrid select,.formgrid textarea{display:block;width:100%;height:35px;margin-top:5px;border:1px solid #dce4ee;border-radius:7px;padding:0 9px;color:#334c68;background:#fff;font:10px Inter}.formgrid textarea{height:70px;padding-top:9px}.savebox{background:var(--navy);color:#fff;border-radius:11px;padding:17px;margin-bottom:14px}.savebox b,.savebox small{display:block}.savebox b{font-size:10px}.savebox strong{font-size:27px;display:block;margin:8px 0}.savebox small{color:#9eb0c6;font-size:8px;margin-top:7px}.drop{height:120px;border:1px dashed #cfd9e5;border-radius:8px;display:grid;place-items:center;align-content:center;gap:5px;color:var(--blue)}.drop b{font-size:9px;color:#425974}.drop small{font-size:7px;color:#99a6b6}.stepper{display:flex;align-items:center;background:#fff;border:1px solid var(--line);border-radius:10px;margin-bottom:14px;padding:12px 18px;gap:22px}.stepper div{display:flex;align-items:center;gap:7px;color:#9aa7b7;font-size:9px}.stepper .done,.stepper .current{color:#17304f;font-weight:700}.profile-head{display:flex;align-items:center;padding:18px;gap:15px;margin-bottom:12px}.photo{width:66px;height:66px;border-radius:12px;background:#dff5ee;color:#087957;display:grid;place-items:center;font-size:19px;font-weight:800}.identity{flex:1}.identity h2{margin:0;font-size:17px}.identity p{font-size:9px;color:#8d9bad}.chips span{background:#f1f5f9;border-radius:12px;padding:5px 7px;font-size:7px;margin-right:4px}.completion{width:150px}.completion strong{font-size:20px;display:block;color:var(--green)}.completion small{font-size:7px;color:#8d9bad}.tabs{display:flex;gap:23px;border-bottom:1px solid #e2e8f0;margin-bottom:14px}.tabs a{padding:10px 2px;font-size:9px;color:#7c8da0}.tabs .selected{color:var(--green);font-weight:800;border-bottom:2px solid var(--green)}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.detail-grid dl{display:grid;grid-template-columns:1fr 1fr;padding:0 17px;margin:0}.detail-grid dt,.detail-grid dd{padding:8px 0;border-bottom:1px solid #eef2f6;font-size:8px}.detail-grid dt{color:#93a0b0}.detail-grid dd{margin:0;font-weight:600}.family{display:flex;align-items:center;gap:10px;padding:10px 17px}.family>span{width:36px;height:36px;border-radius:9px;background:#eaf4ff;color:var(--blue);display:grid;place-items:center;font-size:9px;font-weight:800}.family b,.family small{display:block}.family b{font-size:9px}.family small{font-size:7px;color:#98a5b4;margin-top:3px}.note{padding:5px 17px}.note b,.note small,.note p{display:block}.note b{font-size:9px}.note small{font-size:7px;color:#98a5b4;margin-top:3px}.note p{font-size:8px;color:#64778d;line-height:1.5}
.launchgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.launch{background:#fff;border:1px solid var(--line);border-radius:11px;padding:18px;box-shadow:0 2px 8px #10284608}.launch b,.launch span{display:block}.launch span{font-size:8px;color:var(--blue);margin-top:8px}
@media(max-width:1100px){.kpis,.summary{grid-template-columns:repeat(2,minmax(0,1fr))}.three-col,.campaign-grid{grid-template-columns:1fr 1fr}.campaign-grid .campaign:last-child{grid-column:span 2}.two-col,.poll-grid,.survey-layout,.report-layout{grid-template-columns:1fr}.form-layout{grid-template-columns:1fr}.launchgrid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:800px){.sidebar{display:none}main{margin-left:0}.topbar{padding:0 14px}.page{padding:20px 14px}.hero{flex-direction:column;align-items:flex-start}.toolbar{flex-wrap:wrap}.toolbar .search{flex-basis:100%}.kpis,.summary,.three-col,.campaign-grid,.detail-grid,.launchgrid{grid-template-columns:1fr}.campaign-grid .campaign:last-child{grid-column:auto}.pulse{flex-direction:column}.formgrid{grid-template-columns:1fr}.form-side{display:block}.map{height:250px}.profile-head{flex-wrap:wrap}.completion{width:100%}.stepper{gap:10px;overflow:auto}.tabs{overflow:auto;gap:18px}.tabs a{white-space:nowrap}.report label{display:none}}
