:root {
  --ink:#193b40; --muted:#56696c; --blue:#116260; --accent:#116260;
  --line:#dce5e2; --light:#edf3ef; --white:#fff; --radius:20px;
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--ink); background:#f7f7f2; font-synthesis:none;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;scroll-padding-top:24px}
body{margin:0;font-size:1rem;line-height:1.6}
a{color:var(--blue);text-underline-offset:.22em}
a:hover{text-decoration-thickness:2px}
:where(a,button,input,select,summary):focus-visible{outline:3px solid #a06430;outline-offset:4px}
button,input,select,textarea{font:inherit}
button,a,summary{-webkit-tap-highlight-color:transparent}
button{cursor:pointer}
h1,h2,h3,p{margin-top:0}
h1,h2,h3{line-height:1.15;letter-spacing:-.035em}
h2{font-size:clamp(1.7rem,2.7vw,2.2rem);font-weight:700;margin-bottom:.65rem}
.wrap{width:min(1200px,calc(100% - 64px));margin-inline:auto}
.skip-link{position:absolute;top:-100px;left:1rem;z-index:10;background:white;padding:.8rem}
.skip-link:focus{top:1rem}
.site-header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px 0}
.brand{display:flex;align-items:center;gap:12px;font-weight:750;font-size:1rem;line-height:1.15;letter-spacing:-.025em;text-decoration:none;color:var(--ink)}
.brand-mark{display:grid;place-items:center;width:46px;height:46px;flex-shrink:0;border-radius:15px;background:#fff;border:1px solid var(--line);overflow:hidden}
.brand-mark img{display:block;width:100%;height:100%;object-fit:contain;transform:scale(1.28)}
nav{display:flex;align-items:center;gap:28px}
nav a{color:var(--ink);font-size:.9rem;font-weight:600;text-decoration:none;padding-block:10px}
nav a:hover,nav a[aria-current]{text-decoration:underline}
.eyebrow{color:var(--accent);font-size:.8rem;font-weight:750;letter-spacing:.12em;text-transform:uppercase;margin-bottom:10px}
.hero{position:relative;isolation:isolate;overflow:hidden;border-radius:28px;background:#244957;background-image:linear-gradient(90deg,rgba(12,41,49,.91) 0%,rgba(12,41,49,.78) 38%,rgba(12,41,49,.18) 100%),url("assets/siracusa-piazza-duomo.png");background-size:cover;background-position:center 59%;color:white;padding:48px 52px 38px;min-height:432px}
.hero-content{position:relative;max-width:640px}
.hero .eyebrow{color:#d8eee7;font-size:.8rem;letter-spacing:.13em}
.hero h1{font-size:clamp(2.5rem,4.5vw,3.65rem);font-weight:750;margin-bottom:18px;letter-spacing:-.045em;line-height:1.06}
.hero-copy{max-width:530px;color:#f0f5f3;font-size:1.04rem;line-height:1.65;margin-bottom:24px}
.hero-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:492px}
.hero-button{display:inline-flex;align-items:center;justify-content:flex-start;gap:12px;min-width:0;min-height:58px;padding:12px 16px;border:1px solid #dce9e1;border-radius:14px;color:var(--ink);background:#f8fbf6;text-decoration:none;font-weight:700;font-size:.95rem;line-height:1.3;box-shadow:0 4px 14px rgba(6,29,33,.16);transition:background-color .16s ease,box-shadow .16s ease,transform .16s ease}
.hero-button-icon{display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;border-radius:9px;background:#e6efe8;color:#215d55}
.hero-button-icon svg{display:block}
.hero-button:hover{background:#eaf3ed;box-shadow:0 7px 20px rgba(6,29,33,.23);transform:translateY(-2px)}
.hero-button:active{transform:translateY(0);box-shadow:0 2px 7px rgba(6,29,33,.16)}
.hero a:focus-visible{outline-color:white}
.hero-meta{display:flex;gap:16px;flex-wrap:wrap;align-items:center;color:#e3eeea;font-size:.875rem;margin:26px 0 0}
.hero-meta span+span{border-left:1px solid #8ea7a5;padding-left:16px}
.hero-place{position:absolute;right:26px;bottom:20px;margin:0;color:#fff;background:rgba(16,42,47,.68);padding:5px 10px;border-radius:7px;font-size:.8rem}
.public-note{display:flex;align-items:flex-start;gap:12px;padding:20px 4px;color:var(--muted)}
.public-note p{font-size:.875rem;line-height:1.65;margin:0}
.public-note strong{color:var(--ink);font-weight:650}
.note-icon{flex-shrink:0;display:grid;place-items:center;width:21px;height:21px;margin-top:2px;border:1px solid #80918d;border-radius:50%;font-size:.8rem;font-weight:650}
.explorer{margin-top:23px;margin-bottom:48px}
.section-heading{display:flex;align-items:end;justify-content:space-between;gap:20px}
.section-heading h2{margin-bottom:8px}
.metadata{font-size:.875rem;color:var(--muted);margin-bottom:11px;white-space:nowrap}
.section-description{color:var(--muted);font-size:.95rem;margin-bottom:22px}
.filters{display:grid;grid-template-columns:minmax(220px,1.35fr) minmax(180px,1fr) minmax(200px,1fr) auto;align-items:end;gap:14px;padding:20px;background:white;border:1px solid var(--line);border-radius:16px;box-shadow:0 4px 18px rgba(26,56,48,.035)}
.filter-field{min-width:0}
.filter-field label{display:block;font-size:.875rem;font-weight:650;margin-bottom:7px}
.filter-field input,.filter-field select{width:100%;min-height:48px;border:1px solid #b8ccc5;border-radius:9px;background:#fff;color:var(--ink);font-size:.9rem}
.filter-field select{padding:10px 8px}
.search-input{position:relative}
.search-input>span{position:absolute;left:13px;top:50%;transform:translateY(-54%);pointer-events:none;font-size:1.55rem;color:#557d72;line-height:1}
.search-input input{padding:11px 10px 11px 38px}
.search-input input::placeholder{color:#687a76;opacity:1}
.reset-button{min-height:48px;border:1px solid var(--line);border-radius:9px;background:var(--light);color:var(--ink);font-size:.875rem;font-weight:650;padding:10px 14px;white-space:nowrap}
.reset-button:hover{background:#dceae2}
.reset-button:disabled{opacity:.55;cursor:default}
.list-toolbar{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:22px 2px 16px}
.people-count{font-weight:650;font-size:.95rem;margin:0}
.sort-note{display:flex;align-items:center;gap:8px;font-size:.875rem;color:var(--muted)}
.sort-note>span{font-size:.8rem;font-weight:750;border:1px solid var(--line);border-radius:5px;padding:1px 5px;color:var(--ink)}
.people-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:stretch}
.person-card{display:flex;flex-direction:column;min-width:0;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:0 3px 9px rgba(34,63,53,.025)}
.person-card:hover{border-color:#aabfb7}
.person-overview{flex:1;padding:24px 24px 18px}
.person-top{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:18px;margin-bottom:16px}
.person-top.has-party-logo{grid-template-columns:auto minmax(0,1fr) 48px}
.person-heading{min-width:0}
.person-name{font-size:1.3rem;font-weight:700;margin:2px 0 6px;line-height:1.18}
.person-role{font-size:.875rem;color:var(--muted);line-height:1.55;margin:0}
.political-affiliation{font-size:.875rem;line-height:1.55;color:var(--muted);margin:10px 0 0}
.political-affiliation strong{color:var(--ink);font-weight:650}
.affiliation-text{min-width:0;overflow-wrap:anywhere}
.party-logo-frame{display:grid;place-items:center;width:48px;height:48px;flex-shrink:0;padding:3px;border:1px solid var(--line);border-radius:9px;background:#fff}
.party-logo{display:block;width:100%;height:100%;object-fit:contain}
.person-portrait{display:block;width:88px;height:104px;flex-shrink:0;background:var(--light);border-radius:13px;overflow:hidden}
.person-photo{display:block;width:100%;height:100%;object-fit:cover;object-position:center 25%}
.portrait-medium .person-photo{transform:scale(1.45);transform-origin:center 20%}
.portrait-narrow .person-photo{transform:scale(1.7);transform-origin:center 20%}
.portrait-close .person-photo{transform:scale(2.5);transform-origin:center 65%}
.person-initials{display:grid;place-items:center;width:88px;height:104px;flex-shrink:0;color:var(--accent);background:var(--light);border-radius:13px;font-weight:750}
.person-status{display:flex;align-items:start;flex-direction:column;gap:7px;margin-bottom:12px}
.badge{display:inline-block;font-size:.875rem;line-height:1.5;font-weight:650;padding:4px 9px;border-radius:6px}
.suggested{color:#624c7c;background:#f0ebf5}
.proposed{color:#6b552f;background:#f5f0e3}
.announced{color:#26517a;background:#e7eef9}
.person-status p{color:var(--muted);margin:0;font-size:.875rem;line-height:1.5}
.person-summary{font-size:.94rem;color:var(--muted);margin:0;line-height:1.65}
.person-card>details{flex-shrink:0;border-top:1px solid var(--line)}
.person-card summary{list-style:none;padding:14px 24px;min-height:48px;cursor:pointer;color:var(--accent);font-size:.9rem;font-weight:700;display:flex;align-items:center;justify-content:space-between;gap:10px;background:#fbfcf9}
.person-card summary::-webkit-details-marker{display:none}
.person-card summary::after{content:"+";font-size:1.4rem;font-weight:400;line-height:1}
.person-card details[open]>summary::after{content:"−"}
.person-card summary:hover{background:var(--light)}
.person-details{padding:0 24px 22px}
.person-details h3{font-size:1rem;margin:22px 0 8px;letter-spacing:-.015em}
.person-details p,.person-details li{font-size:.9rem;line-height:1.7}
.person-details ul{padding-left:20px;margin:0}
.person-details li{margin-bottom:10px}
.source-list li{color:var(--muted);font-size:.875rem}
.source-list a,.photo-source a{overflow-wrap:anywhere}
.cv-note{background:var(--light);padding:12px 14px;border-radius:9px;color:var(--muted)}
.photo-source{margin:18px 0 0;color:var(--muted);font-size:.875rem!important}
.empty-state{text-align:center;padding:48px 22px;border:1px dashed #b1c7bf;border-radius:var(--radius);background:#fff}
.empty-symbol{display:block;color:#77998b;font-size:3rem;line-height:1;margin-bottom:18px}
.empty-state h3{font-size:1.4rem;margin-bottom:10px}
.empty-state p{color:var(--muted);font-size:.95rem}
.secondary-button{border:1px solid #a9c3b8;border-radius:9px;background:#edf5ef;color:var(--accent);min-height:46px;padding:10px 17px;font-size:.9rem;font-weight:650}
.legend-details{margin-top:22px;border-top:1px solid var(--line);color:var(--muted)}
.legend-details>summary{cursor:pointer;padding:15px 0;min-height:48px;font-size:.875rem;font-weight:650;list-style-position:inside}
.legend{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.legend-content p{font-size:.875rem;margin-bottom:0;max-width:1000px}
.participation{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px 42px;background:#153f42;color:#fff;border-radius:24px;padding:32px 36px 0;margin-bottom:54px}
.participation .eyebrow{color:#b5dfce}
.participation h2{font-size:1.75rem}
.participation-copy>p:not(.eyebrow){color:#dfebe6;font-size:.95rem;max-width:660px;margin-bottom:16px}
.participation-facts{display:flex;flex-wrap:wrap;gap:12px 26px;margin:0 0 4px;font-size:.875rem}
.participation-facts dt{color:#b9d7cb;font-size:.8rem}
.participation-facts dd{margin:1px 0 0;font-weight:600}
.participation-action{align-self:center}
.primary-button{display:block;width:100%;min-height:49px;padding:12px 18px;border:0;border-radius:10px;color:#153f42;background:#cae8cc;font-size:.95rem;line-height:1.5;font-weight:700;text-align:center;text-decoration:none}
.primary-button:disabled{color:#e2ebe6;background:#3e6464;cursor:not-allowed}
.primary-button:not(:disabled):hover{background:#d9f2d9}
.small{font-size:.875rem;line-height:1.65;color:var(--muted)}
.participation-action .small{color:#cbded6;margin:10px 0 4px}
.participation a{color:#ddf1d7;font-size:.875rem}
.participation .primary-button{color:#153f42;font-size:.95rem}
.participation .primary-button:disabled{color:#e2ebe6}
.participation-details{grid-column:1/-1;border-top:1px solid #497170;margin-top:4px}
.participation-details>summary{cursor:pointer;padding:15px 0;font-size:.875rem;color:#d7e8df;min-height:48px;list-style-position:inside}
.participation-details>div{padding-bottom:18px;max-width:900px}
.participation-details p{font-size:.875rem;color:#d7e8df;margin-bottom:10px}
.participation-details h3{font-size:1rem;margin:16px 0 8px}
.method{display:grid;grid-template-columns:minmax(250px,.75fr) minmax(0,1.25fr);gap:70px;padding:0 0 46px}
.method h2{font-size:1.8rem;line-height:1.2}
.context-note{color:var(--muted);font-size:.875rem;line-height:1.7;margin:18px 0 0;padding-left:14px;border-left:2px solid #a9c3b8}
.method-copy{color:var(--muted);font-size:.95rem}
.method-copy p:last-child{margin-bottom:0}
.site-footer{display:flex;justify-content:space-between;gap:30px;border-top:1px solid var(--line);padding:27px 0;font-size:.875rem}
.site-footer strong{font-size:.95rem}
.site-footer p{color:var(--muted);margin:5px 0 0}
.site-footer a{font-weight:600}
.privacy-content{max-width:840px;padding:35px 0 55px}
.privacy-content h1{font-size:clamp(2rem,4vw,3rem)}
.privacy-content h2{font-size:1.35rem;margin-bottom:12px}
.privacy-content section{margin-top:32px}
.privacy-content p{color:var(--muted)}
.privacy-summary{border:1px solid var(--line);border-radius:16px;background:#eef4ed;padding:20px 24px}
.privacy-summary p{margin:0}
@media(max-width:1080px){
.wrap{width:calc(100% - 40px)}
.hero{padding:40px;min-height:410px}
.hero h1{font-size:3rem}
.hero-content{max-width:600px}
.filters{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}
.reset-button{width:fit-content}
.person-overview{padding:20px 20px 16px}
.person-top{gap:14px}
.person-card summary{padding-inline:20px}
.person-details{padding-inline:20px}
.person-portrait,.person-initials{width:76px;height:90px}
.participation{grid-template-columns:minmax(0,1fr) 300px;gap:22px;padding-inline:28px}
.method{gap:40px}
}
@media(max-width:760px){
.wrap{width:calc(100% - 32px)}
.site-header{gap:16px;padding:18px 0}
.brand{font-size:.9rem;gap:9px}
.brand-mark{width:40px;height:40px;border-radius:12px}
nav{gap:8px 15px;flex-wrap:wrap;justify-content:flex-end;max-width:210px}
nav a{display:inline-flex;align-items:center;min-height:44px;font-size:.875rem;padding:8px 0}
nav a[href$="#partecipazione"]{display:none}
.hero{border-radius:20px;padding:32px 26px 44px;min-height:380px;background-image:linear-gradient(90deg,rgba(12,41,49,.91),rgba(12,41,49,.52)),url("assets/siracusa-piazza-duomo.png");background-position:36% center}
.hero h1{font-size:clamp(2.15rem,6vw,2.8rem);max-width:550px}
.hero .eyebrow{font-size:.75rem;letter-spacing:.09em}
.hero-copy{font-size:.98rem;margin-bottom:21px}
.hero-button{padding:12px 15px;font-size:.9rem}
.hero-meta{font-size:.8rem;gap:8px 14px;margin-top:22px}
.hero-meta span+span{padding-left:14px}
.hero-place{right:15px;bottom:12px;font-size:.75rem}
.public-note{padding:18px 1px;gap:10px}
.public-note p{font-size:.875rem}
.explorer{margin-top:16px;margin-bottom:34px}
.section-heading{display:block}
.section-heading .metadata{margin-bottom:14px}
.section-heading h2{font-size:1.7rem}
.section-description{font-size:.9rem;margin-bottom:18px}
.filters{gap:14px 12px;padding:16px}
.search-field{grid-column:1/-1}
.filter-field label{font-size:.8rem;line-height:1.45;min-height:23px}
.filter-field input,.filter-field select{font-size:1rem;min-height:46px}
.reset-button{grid-column:1/-1;min-height:40px;background:transparent;border:0;padding:4px 0;text-decoration:underline;text-underline-offset:.2em}
.reset-button:hover{background:transparent}
.list-toolbar{padding-top:20px}
.people-list{grid-template-columns:1fr;gap:16px}
.person-name{font-size:1.3rem}
.person-portrait,.person-initials{width:80px;height:94px}
.person-top{gap:15px}
.person-top.has-party-logo{grid-template-columns:auto minmax(0,1fr) 40px}
.party-logo-frame{width:40px;height:40px;padding:2px}
.person-status{gap:8px}
.person-overview{padding:21px 20px 17px}
.person-summary{font-size:.94rem}
.badge{font-size:.875rem}
.participation{grid-template-columns:1fr;border-radius:20px;padding:26px 23px 0;gap:20px;margin-bottom:38px}
.participation h2{font-size:1.6rem}
.participation-facts{gap:14px 24px}
.participation-details{margin-top:0}
.method{display:block;padding-bottom:32px}
.method-copy{margin-top:24px;font-size:.9rem}
.site-footer{display:block;padding:24px 0}
.site-footer>div+div{margin-top:18px}
}
@media(max-width:600px){
.hero-actions{grid-template-columns:minmax(0,1fr);max-width:340px}
}
@media(max-width:400px){
.hero{padding:29px 22px 42px}
.hero h1{font-size:2.15rem}
.hero-meta{display:none}
.hero-meta span{display:block}
.hero-meta span+span{border:0;padding:3px 0 0}
.filter-field:not(.search-field){grid-column:1/-1}
.filter-field label{min-height:auto}
nav{gap:7px 12px;max-width:145px}
.person-overview{padding:18px 17px 16px}
.person-portrait,.person-initials{width:68px;height:82px}
.person-top{gap:10px}
.person-name{font-size:1.15rem}
.person-card summary{padding-inline:17px}
.person-details{padding-inline:17px}
.people-count,.sort-note{font-size:.875rem}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-button{transition:none}.hero-button:hover,.hero-button:active{transform:none}}

.profile-vote-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:9px 14px;margin-top:18px;border:1px solid #a9c3b8;border-radius:9px;background:#edf5ef;color:var(--accent);font-size:.875rem;font-weight:700}
.local-voting-demo{grid-column:1/-1;margin:0;padding:12px 16px;border-left:3px solid #f2c79c;border-radius:8px;background:#365a58;color:#fff0df;font-size:.875rem}
.profile-vote-button:disabled{opacity:.55;cursor:default}
.voting-panel{grid-column:1/-1;background:#214e50;border:1px solid #527773;border-radius:14px;padding:22px}
.vote-field label{display:block;font-size:1rem;font-weight:700;margin-bottom:9px}
.vote-field select{width:100%;max-width:620px;min-height:50px;padding:10px 12px;border:1px solid #98bfb3;border-radius:9px;background:#fff;color:var(--ink)}
.consent-field{display:flex;align-items:start;gap:11px;font-size:.9rem;line-height:1.65;margin:20px 0;max-width:760px}
.consent-field input,.admin-checkbox input{width:19px;height:19px;flex-shrink:0;accent-color:var(--accent);margin:4px 0 0}
.voting-panel .primary-button{max-width:310px}
.voting-panel .small{color:#d7e8df;max-width:780px;margin:13px 0 0}
.vote-message{grid-column:1/-1;margin:0;font-size:.95rem;line-height:1.6;color:#e0f1e4}
.vote-message:not(:empty){padding:14px 16px;background:#214e50;border-radius:10px;border-left:3px solid #cae8cc}
.vote-message.is-error{color:#fff0df;border-color:#f2c79c}
.manage-preference{display:block;min-height:44px;border:0;padding:10px 0 0;background:transparent;color:#ddf1d7;font-size:.875rem;text-decoration:underline;text-underline-offset:.2em;text-align:left}
.manage-preference:disabled{opacity:.55;cursor:default}
.withdraw-panel{grid-column:1/-1;border:1px solid #527773;border-radius:12px;padding:18px 20px;background:#214e50}
.withdraw-panel p{color:#d7e8df;font-size:.9rem;line-height:1.65;margin-bottom:13px}
.results-section{margin-bottom:48px}
.results-section>.context-note{margin-top:15px;margin-bottom:20px}
.results-metadata{display:flex;flex-wrap:wrap;gap:18px 32px;padding:20px 24px;background:#fff;border:1px solid var(--line);border-radius:14px;margin-bottom:18px}
.results-metadata dt{font-size:.8rem;color:var(--muted);margin-bottom:4px}
.results-metadata dd{margin:0;font-size:.9rem;font-weight:650}
.results-notice{background:#f5f0e3;border-left:3px solid #a58c55;padding:15px 18px;font-size:.9rem;line-height:1.7;color:#675631}
.results-list{list-style:none;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;margin:0}
.results-list li{display:flex;gap:12px;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:13px 2px;font-size:.9rem}
.results-list strong{white-space:nowrap;font-size:.875rem}
.admin-main{padding-block:28px 50px;max-width:1100px}
.admin-heading h1{font-size:clamp(2rem,4vw,2.9rem);margin-bottom:14px}
.admin-heading>p:last-child{color:var(--muted);max-width:760px;margin-bottom:24px}
.admin-box{background:#fff;border:1px solid var(--line);border-radius:18px;padding:26px;margin-bottom:24px}
.admin-box h2{font-size:1.5rem;margin-bottom:14px}
.admin-login{max-width:520px;margin-top:24px}
.admin-login>p{color:var(--muted);font-size:.95rem}
.admin-login .primary-button{margin-top:20px}
.admin-field label{display:block;font-size:.875rem;font-weight:650;margin-bottom:7px}
.admin-field input,.moderation-form select,.moderation-form textarea{width:100%;min-height:48px;padding:10px 12px;border:1px solid #b8ccc5;border-radius:9px;color:var(--ink);background:#fff}
.admin-field input{min-width:0}
.admin-field input:disabled,.moderation-form select:disabled,.moderation-form textarea:disabled{background:#f3f5f3;color:#60706b}
.admin-message{margin:0}
.admin-message:not(:empty){margin-bottom:22px;padding:13px 16px;border:1px solid #bfd6c6;border-left:3px solid var(--accent);border-radius:9px;background:#edf5ef;color:var(--ink)}
.admin-message.is-error{background:#fbf0e4;border-color:#d7b58d;color:#754621}
.admin-section-heading{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:14px}
.admin-section-heading h2{margin-bottom:0}
.admin-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0 0 16px}
.admin-summary>div{background:var(--light);border-radius:12px;padding:18px 20px}
.admin-summary dt{font-size:.9rem;color:var(--muted)}
.admin-summary dd{font-size:2rem;line-height:1.2;font-weight:750;margin:6px 0 0}
.admin-gate{font-size:.9rem;line-height:1.7;background:#f5f0e3;color:#675631;border-left:3px solid #a58c55;padding:14px 17px;border-radius:8px;margin-bottom:20px}
.admin-gate.is-ready{background:#edf5ef;color:#2b5743;border-color:#71a28b}
.admin-toggles{display:flex;flex-wrap:wrap;gap:16px 32px;margin-bottom:18px}
.admin-checkbox{display:flex;align-items:start;gap:10px;font-size:.95rem;font-weight:600}
.admin-dates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 22px;margin:18px 0}
#admin-save-settings{width:fit-content;min-width:220px}
.admin-ballots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.admin-ballot{min-width:0;border:1px solid var(--line);border-radius:12px;padding:18px}
.ballot-id{font-size:.95rem;letter-spacing:0;line-height:1.6;overflow-wrap:anywhere;margin-bottom:12px}
.ballot-facts{display:flex;flex-wrap:wrap;gap:10px 24px;font-size:.85rem;margin:0 0 14px}
.ballot-facts dt{color:var(--muted);font-size:.8rem}
.ballot-facts dd{margin:1px 0 0}
.ballot-signals{font-size:.875rem;line-height:1.65;color:var(--muted);padding:11px 13px;background:#f5f6f2;border-radius:8px;overflow-wrap:anywhere}
.moderation-form{display:grid;gap:12px}
.moderation-form label{font-size:.875rem;font-weight:600}
.moderation-form select,.moderation-form textarea{display:block;margin-top:6px;font-size:.9rem;line-height:1.6}
.moderation-form textarea{resize:vertical}
.moderation-form button{justify-self:start}
.admin-pagination{display:flex;justify-content:space-between;gap:16px;margin-top:20px}
.secondary-button:disabled{opacity:.55;cursor:default}
.admin-events{list-style:none;padding:0;margin:0}
.admin-events li{padding:15px 0;border-bottom:1px solid var(--line);font-size:.875rem;overflow-wrap:anywhere}
.admin-events li:last-child{border:0;padding-bottom:0}
.admin-events strong{display:block;font-weight:650}
.admin-events .event-date{display:block;color:var(--muted);font-size:.8rem;margin-top:3px}
.admin-events p{margin:7px 0 0;color:var(--muted)}
@media(max-width:760px){
  .voting-panel{padding:18px 16px}
  .voting-panel .primary-button{max-width:none}
  .results-section{margin-bottom:34px}
  .results-list{grid-template-columns:1fr}
  .results-metadata{padding:18px;gap:16px 24px}
  .admin-main{padding-top:22px}
  .admin-box{padding:20px 18px;border-radius:14px}
  .admin-box h2{font-size:1.35rem}
  .admin-section-heading{align-items:start}
  .admin-summary{gap:10px}
  .admin-summary>div{padding:14px 12px}
  .admin-summary dt{font-size:.8rem}
  .admin-summary dd{font-size:1.65rem}
  .admin-ballots{grid-template-columns:1fr}
  .admin-dates{grid-template-columns:1fr}
  .admin-toggles{flex-direction:column;gap:14px}
  #admin-save-settings{width:100%}
}
@media(max-width:400px){
  .admin-pagination{flex-direction:column;gap:10px}
  .admin-summary{gap:7px}
  .admin-summary>div{padding:12px 9px}
  .admin-summary dt{font-size:.75rem}
  .admin-section-heading{flex-wrap:wrap}
  .results-list li{align-items:start}
}

.voting-step{font-size:.8rem;font-weight:750;letter-spacing:.07em;text-transform:uppercase;color:#bfe4cf;margin-bottom:17px}
.vote-field input{display:block;width:100%;max-width:620px;min-height:50px;padding:10px 12px;border:1px solid #98bfb3;border-radius:9px;background:#fff;color:var(--ink)}
.vote-field input:disabled{background:#e5eeea;color:#60706b}
.vote-field .otp-input{max-width:260px;font-size:1.45rem;font-weight:650;letter-spacing:.22em}
.email-form .primary-button{margin-top:20px;max-width:330px}
.verified-email{display:inline-block;border:1px solid #83b599;border-radius:8px;padding:9px 13px;color:#ddf1d7;background:#2a5c54;font-size:.9rem;margin-bottom:22px;overflow-wrap:anywhere}
.results-list li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 16px;align-items:start;padding-block:15px}
.results-list progress{grid-column:1/-1;display:block;width:100%;height:8px;border:0;border-radius:6px;background:#e1eae4;overflow:hidden;appearance:none;color:var(--accent);accent-color:var(--accent)}
.results-list progress::-webkit-progress-bar{background:#e1eae4;border-radius:6px}
.results-list progress::-webkit-progress-value{background:var(--accent);border-radius:6px}
.results-list progress::-moz-progress-bar{background:var(--accent);border-radius:6px}
.admin-summary{grid-template-columns:repeat(4,minmax(0,1fr))}
.admin-table-wrap{max-width:100%;overflow:auto;border:1px solid var(--line);border-radius:10px}
.admin-statistics{width:100%;border-collapse:collapse;font-size:.875rem;line-height:1.6}
.admin-statistics caption{text-align:left;padding:14px 16px;background:var(--light);font-weight:650}
.admin-statistics th,.admin-statistics td{padding:11px 14px;text-align:right;white-space:nowrap;border-bottom:1px solid var(--line)}
.admin-statistics thead th{font-size:.8rem;color:var(--muted);font-weight:650}
.admin-statistics th:first-child{text-align:left;white-space:normal;min-width:180px}
.admin-statistics tbody th{font-weight:600}
.admin-statistics tbody tr:last-child>*{border-bottom:0}
.admin-statistics tbody tr:nth-child(even){background:#fafbf8}
.ballot-original{font-size:.85rem;line-height:1.6;background:#eef4ed;border-left:3px solid #83b599;padding:10px 12px;overflow-wrap:anywhere}
.moderation-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:4px}
.danger-button{min-height:46px;padding:10px 15px;border:1px solid #cfb5aa;border-radius:9px;background:#fbf0e9;color:#85462d;font-size:.875rem;font-weight:650}
.danger-button:hover{background:#f6e4d7}
.danger-button:disabled{opacity:.55;cursor:default}
@media(max-width:760px){
  .email-form .primary-button{max-width:none}
  .admin-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  .admin-statistics th,.admin-statistics td{padding:9px 11px}
}

.voting-status{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 22px;padding:17px 20px;border:1px solid #d5e3dc;border-radius:14px;background:#eef4ed}
.voting-status-copy{min-width:0}
.poll-status-badge{display:inline-flex;align-items:center;gap:7px;padding:3px 9px;border-radius:6px;background:#e1e7e2;color:#536761;font-size:.8rem;font-weight:750}
.poll-status-badge::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.poll-status-badge.is-open{background:#d6ebdc;color:#235d41}
.poll-status-badge.is-paused{background:#f5e8cc;color:#705b2d}
.voting-status p{font-size:.875rem;line-height:1.6;margin:7px 0 0;color:var(--muted)}
.voting-status .poll-countdown{font-variant-numeric:tabular-nums;font-weight:650;color:var(--ink)}
.voting-status .manage-preference{flex-shrink:0;min-height:44px;padding:8px 0;color:var(--accent);white-space:nowrap}
.local-voting-demo{background:#f5e9d9;color:#654527;border-color:#ad7947;margin-bottom:20px}
.local-voting-demo a{color:inherit}
.overall-results-note{padding:0 2px 16px;margin-bottom:4px;color:var(--muted);font-size:.8rem;line-height:1.55}
.overall-results-note p{margin:0 0 5px}
.overall-results-note p:first-child{font-weight:650;color:var(--ink)}
.person-voting{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;gap:18px;border-top:1px solid var(--line);padding:16px 24px;background:#fff}
.person-result{display:flex;flex-direction:column;gap:2px;margin:0;min-width:0}
.person-percentage{font-size:.875rem;font-weight:650;line-height:1.4;color:var(--muted)}
.person-percentage.has-percentage{font-size:1.55rem;font-variant-numeric:tabular-nums;font-weight:750;color:var(--accent)}
.person-result-label{font-size:.75rem;line-height:1.5;color:var(--muted)}
.person-voting .profile-vote-button{min-width:100px;margin:0;background:var(--accent);color:#fff;border-color:var(--accent);font-size:.9rem}
.person-voting .profile-vote-button:not(:disabled):hover{background:#174b49}
.person-voting .profile-vote-button:disabled{opacity:1;background:#edf1ed;border-color:#d6e1da;color:#718179;cursor:not-allowed}
.ranking-filters{display:flex;align-items:end;flex-wrap:wrap;gap:16px;padding:20px 22px;background:#fff;border:1px solid var(--line);border-radius:15px}
.ranking-filters .filter-field{flex:1;min-width:170px}
.ranking-filters .filter-field:first-child{flex:1.3;min-width:210px}
.ranking-filters input{padding:10px 12px}
.ranking-filters .secondary-button{min-height:48px}
.ranking-day-navigation{flex-basis:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid var(--line);padding-top:10px}
.ranking-day-button{min-height:44px;border:0;background:transparent;color:var(--accent);font-size:.875rem;font-weight:650;padding:5px 0}
.ranking-day-button:disabled{color:#75827b;cursor:not-allowed}
.ranking-timezone{margin:12px 2px 0;color:var(--muted);font-size:.8rem}
.results-list{display:block;max-width:none;border:1px solid var(--line);border-radius:14px;padding:0 22px;background:#fff}
.results-list li{padding-block:16px;gap:9px 18px}
.results-list li:last-child{border-bottom:0}
.results-list strong{font-variant-numeric:tabular-nums;color:var(--accent);font-size:1rem}
.ranking-name{display:flex;align-items:center;gap:14px}
.ranking-position{display:grid;place-items:center;flex-shrink:0;width:28px;height:28px;border-radius:8px;background:var(--light);color:var(--muted);font-size:.8rem;font-weight:700;font-variant-numeric:tabular-nums}
.results-list li:first-child .ranking-position{background:#dceadc;color:#2b6045}
.results-list progress{margin-left:42px;width:calc(100% - 42px)}
.consultation-details{margin-top:24px;border-top:1px solid var(--line);color:var(--muted);font-size:.875rem}
.consultation-details>summary{min-height:48px;padding:14px 0;cursor:pointer;font-weight:650}
.consultation-details>div{max-width:900px}
.footer-manage-preference{display:block;padding:8px 0;border:0;background:transparent;color:var(--accent);font-size:.875rem;font-weight:600;min-height:44px;text-align:left;text-decoration:underline;text-underline-offset:.22em}
.vote-dialog{position:fixed;width:min(660px,calc(100% - 32px));max-height:calc(100dvh - 32px);margin:auto;border:1px solid #a7c0b4;border-radius:20px;padding:28px;color:var(--ink);background:#fff;box-shadow:0 24px 70px rgba(16,42,37,.25);overflow:auto;overscroll-behavior:contain}
.vote-dialog::backdrop{background:rgba(10,34,37,.64)}
.vote-dialog-header{display:flex;align-items:start;justify-content:space-between;gap:20px}
.vote-dialog-header h2{font-size:1.6rem;line-height:1.22;margin-bottom:12px}
.vote-dialog-header .eyebrow{margin-bottom:8px}
.dialog-close{display:grid;place-items:center;min-width:42px;min-height:42px;padding:0;border:1px solid var(--line);border-radius:10px;background:var(--light);color:var(--ink);font-size:1.65rem;line-height:1}
.dialog-close:hover{background:#dfeae2}
.vote-dialog .voting-panel{border:0;border-radius:0;padding:16px 0 0;background:transparent}
.vote-dialog .voting-step{color:var(--accent)}
.vote-dialog .small{color:var(--muted)}
.vote-dialog .manage-preference{color:var(--accent)}
.vote-dialog .verified-email{color:#2c5c45;background:#edf5ef;border-color:#bdd5c5;margin-bottom:20px}
.vote-dialog .vote-message{color:var(--ink)}
.vote-dialog .vote-message:not(:empty){padding:14px 16px;background:#edf5ef;border-color:#7aa387}
.vote-dialog .vote-message.is-error{color:#754621;background:#fbf0e4;border-color:#c09a68}
.vote-dialog .withdraw-panel{padding:16px 18px;background:#f4f7f2;border-color:var(--line);margin:18px 0 0}
.vote-dialog .withdraw-panel p{color:var(--muted)}
.vote-dialog .primary-button{background:var(--accent);color:white;max-width:none}
.vote-dialog .primary-button:not(:disabled):hover{background:#174b49}
.vote-dialog .primary-button:disabled{background:#dde7e0;color:#61756b}
.vote-dialog .email-form .primary-button{max-width:none}
.vote-dialog .vote-field input,.vote-dialog .vote-field select{max-width:none}
.vote-dialog .vote-field .otp-input{max-width:260px}
@media(max-width:760px){
  .voting-status{display:block;padding:16px 18px}
  .voting-status .manage-preference{margin-top:6px}
  .person-voting{padding:15px 20px}
  .ranking-filters{padding:16px;gap:14px}
  .ranking-filters .filter-field{flex-basis:calc(50% - 7px);min-width:130px}
  .ranking-filters .filter-field:first-child{flex-basis:100%}
  .ranking-filters .secondary-button{width:100%}
  .results-list{padding-inline:16px}
  .results-list li{gap:9px 12px}
  .vote-dialog{padding:22px 20px;border-radius:16px}
  .vote-dialog-header h2{font-size:1.4rem}
}
@media(max-width:400px){
  .person-voting{padding-inline:17px;gap:12px}
  .person-voting .profile-vote-button{min-width:86px}
  .ranking-filters .filter-field{flex-basis:100%}
  .ranking-day-button{font-size:.8rem}
  .ranking-day-navigation{gap:8px}
}

.admin-profile-filters{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:16px;padding:18px;background:var(--light);border:1px solid var(--line);border-radius:12px;margin-top:22px}
.admin-field select,.admin-field textarea{width:100%;min-width:0;min-height:48px;padding:10px 12px;border:1px solid #b8ccc5;border-radius:9px;color:var(--ink);background:#fff;font:inherit;font-size:.9rem}
.admin-field textarea{resize:vertical;line-height:1.6}
.admin-field input:focus-visible,.admin-field textarea:focus-visible,.admin-field select:focus-visible{outline:3px solid #8ac4b3;outline-offset:2px}
.admin-field select:disabled,.admin-field textarea:disabled{background:#f3f5f3;color:#60706b}
.admin-profile-filters .admin-field{margin:0}
#admin-profile-count{margin:16px 0}
.admin-profiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.admin-profile-card{display:flex;align-items:center;gap:14px;border:1px solid var(--line);border-radius:12px;padding:15px;min-width:0;background:#fff}
.admin-profile-avatar{display:grid;place-items:center;flex-shrink:0;width:58px;height:68px;border-radius:10px;background:var(--light);color:var(--accent);font-weight:700;overflow:hidden}
.admin-profile-avatar img{width:100%;height:100%;object-fit:cover;object-position:center 25%}
.admin-profile-card-content{min-width:0;flex:1}
.admin-profile-card h3{font-size:1rem;line-height:1.35;margin:0 0 5px;overflow-wrap:anywhere}
.admin-profile-party-label{font-size:.8rem;line-height:1.5;margin:0 0 7px;color:var(--muted);overflow-wrap:anywhere}
.admin-profile-badge{display:inline-block;padding:3px 8px;border-radius:6px;font-size:.7rem;line-height:1.5;font-weight:650}
.admin-profile-badge.is-enabled{background:#e4f2e7;color:#2e6045}
.admin-profile-badge.is-disabled{background:#f7efd9;color:#795d2d}
.admin-profile-badge.is-archived{background:#eceeed;color:#69726d}
.admin-profile-card-actions{display:flex;flex-direction:column;gap:6px;flex-shrink:0}
.admin-profile-card-actions button{padding:7px 10px;min-height:38px;font-size:.75rem;border-radius:8px}
.admin-profile-editor{margin-top:28px;padding:24px;border:1px solid #a5c7b7;border-top:4px solid var(--accent);border-radius:14px;background:#f9fbf8;scroll-margin-top:24px}
.admin-profile-editor .admin-section-heading{align-items:flex-start}
.admin-profile-editor .admin-section-heading h3{font-size:1.35rem;line-height:1.4;margin:0}
.admin-profile-form{display:grid;gap:22px;margin-top:24px}
.admin-profile-fieldset{margin:0;min-width:0;border:0;border-top:1px solid var(--line);padding:16px 0 0}
.admin-profile-fieldset legend{padding:0 14px 0 0;font-size:1.08rem;line-height:1.4;font-weight:700;color:var(--ink)}
.admin-profile-fieldset>.small{margin:0 0 16px}
.admin-profile-fieldset>.admin-field{margin-bottom:18px}
.admin-profile-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.admin-profile-fields>.is-wide{grid-column:1/-1}
.admin-profile-fields+.admin-checkbox{margin-top:20px}
.admin-profile-fieldset .admin-checkbox+.small{margin:9px 0 0}
.admin-profile-fieldset .admin-field .small{font-size:.75rem;line-height:1.5;margin:6px 0 0}
.admin-profile-photo-layout{display:grid;grid-template-columns:145px minmax(0,1fr);gap:22px;align-items:start}
.admin-profile-photo-preview{display:grid;place-items:center;min-height:170px;aspect-ratio:4/5;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#edf2eb;color:var(--muted);font-size:.8rem;text-align:center}
.admin-profile-photo-preview img{width:100%;height:100%;object-fit:cover;object-position:center 25%}
.admin-profile-photo-layout .admin-field input[type=file]{min-height:48px;font-size:.8rem;padding:10px}
.admin-profile-repeat-list{display:grid;gap:12px;margin-bottom:14px}
.admin-profile-repeat-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;padding:16px;border:1px solid var(--line);border-radius:10px;background:#fff;align-items:start}
.admin-profile-repeat-row>.admin-field:first-child{grid-column:1/-1}
.admin-profile-repeat-row>.secondary-button{align-self:end;justify-self:start;min-height:42px;padding:8px 12px;font-size:.8rem}
.admin-profile-editor-message:not(:empty){padding:13px 15px;border:1px solid #d0ba94;border-radius:9px;background:#fff5e4;font-size:.875rem;line-height:1.6;color:#705325;margin:0 0 16px}
.admin-profile-editor-message button{display:block;margin-top:12px}
.admin-profile-dialog{width:min(570px,calc(100% - 32px));max-height:calc(100dvh - 32px);margin:auto;padding:28px;border:1px solid #a5c7b7;border-radius:18px;background:#fff;color:var(--ink);box-shadow:0 24px 70px rgba(16,42,37,.25);overflow:auto}
.admin-profile-dialog::backdrop{background:rgba(10,34,37,.64)}
.admin-profile-dialog h2{font-size:1.5rem;line-height:1.4;margin:0 0 14px}
.admin-profile-dialog>.small{margin:0 0 22px}
.admin-profile-dialog .admin-field{display:block;font-size:.875rem;font-weight:650}
.admin-profile-dialog .admin-field textarea{display:block;margin-top:8px}
.admin-profile-editor-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}
.admin-profile-dialog button:disabled{opacity:.6;cursor:wait}
@media(max-width:950px){
  .admin-profiles{grid-template-columns:1fr}
}
@media(max-width:760px){
  .admin-profile-filters{grid-template-columns:repeat(2,minmax(0,1fr));padding:14px;gap:12px}
  .admin-profile-filters>.admin-field:first-child{grid-column:1/-1}
  .admin-profile-editor{padding:20px 16px}
  .admin-profile-editor .admin-section-heading h3{font-size:1.2rem}
  .admin-profile-fields{grid-template-columns:1fr;gap:16px}
  .admin-profile-fields>.is-wide{grid-column:auto}
  .admin-profile-photo-layout{grid-template-columns:1fr;gap:18px}
  .admin-profile-photo-preview{width:145px;min-height:0}
  .admin-profile-repeat-row{grid-template-columns:1fr;padding:14px}
  .admin-profile-repeat-row>.admin-field:first-child{grid-column:auto}
  .admin-profile-dialog{padding:23px 20px}
}
@media(max-width:400px){
  .admin-profile-filters{grid-template-columns:1fr}
  .admin-profile-filters>.admin-field:first-child{grid-column:auto}
  .admin-profile-card{gap:10px;padding:12px}
  .admin-profile-avatar{width:44px;height:56px}
  .admin-profile-card h3{font-size:.9rem}
  .admin-profile-card-actions button{padding:7px 8px;font-size:.7rem}
  .admin-profile-editor-actions{flex-direction:column}
}

