:root{--ink:#0a0a0a;--body:#3a3a3a;--muted:#6a6a6a;--muted-soft:#9a9a9a;--line:#e5e5e5;--line-soft:#f0f0f0;--paper:#fffaf0;--canvas:#fffaf0;--surface-soft:#faf5e8;--surface-card:#f5f0e0;--surface-strong:#ebe6d6;--primary:#0a0a0a;--primary-active:#1f1f1f;--pink:#ff4d8b;--teal:#1a3a3a;--lavender:#b8a4ed;--peach:#ffb084;--ochre:#e8b94a;--mint:#a4d4c5;--coral:#ff6b5a;--green:#18794e;--green-soft:#dff4e7;--amber:#9a5b00;--amber-soft:#fff0c7;--red:#c93f38;--red-soft:#ffe3de}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--canvas)}body{color:var(--ink);background:var(--canvas);margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.site-header{z-index:20;background:color-mix(in srgb, var(--canvas) 94%, transparent);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);grid-template-columns:1fr auto 1fr;align-items:center;height:64px;padding:0 max(24px,50vw - 640px);display:grid;position:sticky;top:0}.brand{letter-spacing:-.02em;align-items:center;gap:10px;width:max-content;font-size:15px;font-weight:650;display:flex}.brand-mark{width:32px;height:32px;color:var(--ink);background:var(--ochre);border-radius:11px 11px 11px 5px;place-items:center;font-size:15px;display:grid;transform:rotate(-2deg)}.main-nav{align-items:center;gap:4px;display:flex}.main-nav a{color:var(--body);border-radius:999px;padding:9px 13px;font-size:14px;font-weight:500}.main-nav a:focus-visible,.main-nav a:hover{background:var(--surface-card);outline:none}.header-actions{justify-content:flex-end;align-items:center;gap:16px;display:flex}.header-note{color:var(--muted);font-size:12px}.header-cta,.primary-button,.success-button,.danger-button,.secondary-button,.outline-danger-button{border:1px solid #0000;border-radius:12px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:0 20px;font-size:14px;font-weight:650;line-height:1;display:inline-flex}.header-cta,.primary-button,.success-button{color:#fff;background:var(--primary)}.header-cta:hover,.primary-button:hover,.success-button:hover{background:var(--primary-active)}.page-shell{width:min(1280px,100% - 48px);margin:0 auto;padding:64px 0 96px}.page-shell.narrow{width:min(1120px,100% - 48px)}.landing-page{padding-top:48px}.eyebrow{letter-spacing:.15em;margin:0;font-weight:650;line-height:1.4;color:var(--ink)!important;font-size:12px!important}.landing-hero{grid-template-columns:minmax(0,7fr) minmax(360px,5fr);align-items:center;gap:clamp(40px,6vw,84px);min-height:600px;margin-bottom:24px;display:grid}.landing-copy{padding:48px 0}.landing-copy h1,.hero h1,.municipality-header h1,.municipalities-header h1{letter-spacing:-.052em;margin:14px 0 24px;font-size:clamp(48px,5.7vw,72px);font-weight:500;line-height:1}.landing-copy>p:not(.eyebrow){max-width:620px;color:var(--body);margin:0;font-size:18px;line-height:1.55}.hero-actions{flex-wrap:wrap;align-items:center;gap:22px;margin-top:32px;display:flex}.hero-cta{min-height:52px;padding:0 24px;font-size:15px}.secondary-link,.back-link{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--muted-soft);text-decoration-color:var(--muted-soft);text-underline-offset:5px;font-size:14px;font-weight:650}.hero-art{background:var(--surface-soft);border-radius:24px;min-height:520px;position:relative;overflow:hidden}.hero-art img{object-fit:cover}.hero-art-badge{background:var(--canvas);border-radius:999px;padding:8px 13px;font-size:13px;font-weight:600;position:absolute;bottom:20px;left:20px}.civic-card{color:#fff;background:var(--teal);border-radius:24px;grid-template-columns:.8fr 2.2fr;gap:48px;margin:0 0 96px;padding:32px;display:grid}.civic-card h2{letter-spacing:-.035em;margin:10px 0 8px;font-size:clamp(28px,3vw,40px);font-weight:500;line-height:1.1}.civic-card>div>p:last-child{color:#d9e5e1;margin:0;font-size:14px;line-height:1.5}.civic-card .eyebrow{color:var(--mint)!important}.civic-card ol{grid-template-columns:repeat(3,1fr);gap:12px;margin:0;padding:0;list-style:none;display:grid}.civic-card li{min-height:174px;color:var(--ink);border-radius:16px;flex-direction:column;justify-content:space-between;padding:20px;display:flex}.civic-card li:first-child{background:var(--lavender)}.civic-card li:nth-child(2){background:var(--peach)}.civic-card li:nth-child(3){background:var(--ochre)}.civic-card li>span{background:#ffffff7a;border-radius:50%;place-items:center;width:34px;height:34px;font-size:13px;font-weight:700;display:grid}.civic-card li div{flex-direction:column;gap:5px;display:flex}.civic-card li strong{font-size:16px;line-height:1.3}.civic-card li small{color:var(--body);font-size:12px;line-height:1.45}.summary-grid{grid-template-columns:repeat(4,1fr);gap:14px;margin:0 0 40px;display:grid}.summary-grid.compact{grid-template-columns:repeat(3,1fr)}.summary-card{background:var(--surface-card);border-radius:24px;flex-direction:column;justify-content:space-between;min-height:132px;padding:24px;display:flex}.summary-card:first-child{background:var(--lavender)}.summary-card.pending{background:var(--peach)}.summary-card.complete{background:var(--mint)}.summary-card.alert{background:var(--coral)}.summary-card strong{letter-spacing:-.04em;font-size:32px;font-weight:600}.summary-card span{color:var(--body);font-size:13px;font-weight:500}.progress-section{padding-top:56px;scroll-margin-top:56px}.section-intro{justify-content:space-between;align-items:end;gap:30px;margin-bottom:28px;display:flex}.section-intro h2{letter-spacing:-.045em;margin:10px 0 0;font-size:clamp(36px,4vw,56px);font-weight:500;line-height:1.05}.section-intro>p{max-width:430px;color:var(--muted);margin:0;font-size:14px;line-height:1.55}.municipalities-header{max-width:760px;margin:32px 0 48px}.municipalities-header h1{font-size:clamp(44px,5vw,64px)}.municipalities-header>p:last-child,.municipality-header p{color:var(--muted);margin:0;font-size:17px;line-height:1.55}.panel{background:var(--surface-soft);border:1px solid var(--line);border-radius:24px;overflow:hidden}.panel-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;padding:24px 28px;display:flex}.panel-heading h2{margin:0 0 5px;font-size:20px;font-weight:600}.panel-heading p{color:var(--muted);margin:0;font-size:13px}.search-field input{width:min(340px,38vw);height:44px;color:var(--ink);background:var(--canvas);border:1px solid var(--line);border-radius:12px;outline:0;padding:0 16px}.search-field input:focus{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}.municipality-list{background:var(--canvas);max-height:650px;overflow-y:auto}.municipality-row{border-bottom:1px solid var(--line-soft);grid-template-columns:minmax(190px,1.5fr) minmax(130px,1fr) repeat(3,90px) 24px;align-items:center;gap:20px;min-height:88px;padding:16px 28px;display:grid}.municipality-row:hover{background:var(--surface-card)}.municipality-name{flex-direction:column;gap:5px;display:flex}.municipality-name strong{font-size:15px}.municipality-name span,.progress-wrap small{color:var(--muted);font-size:11px}.progress-wrap{flex-direction:column;gap:7px;display:flex}.progress-track{background:var(--surface-strong);border-radius:999px;height:6px;overflow:hidden}.progress-track span{background:var(--teal);border-radius:inherit;height:100%;display:block}.row-stat{flex-direction:column;align-items:flex-end;gap:3px;display:flex}.row-stat strong{font-size:15px}.row-stat span{color:var(--muted);font-size:10px}.row-stat.danger strong{color:var(--red)}.row-arrow{color:var(--ink);font-size:20px}.empty-state{text-align:center;color:var(--muted);margin:0;padding:34px}.municipality-header{justify-content:space-between;align-items:flex-end;gap:30px;margin:32px 0 36px;display:flex}.municipality-header h1{font-size:clamp(42px,5vw,56px)}.tabs{border-bottom:1px solid var(--line);gap:6px;padding:12px 16px;display:flex}.tabs a{color:var(--muted);white-space:nowrap;border-radius:999px;padding:9px 14px;font-size:13px;font-weight:600}.tabs a.active{color:var(--ink);background:var(--surface-card)}.acts-table-wrap{background:var(--canvas);overflow-x:auto}.acts-table{border-collapse:collapse;width:100%}.acts-table th,.acts-table td{text-align:left;border-bottom:1px solid var(--line-soft);padding:15px 20px;font-size:13px}.acts-table th{color:var(--muted);background:var(--surface-soft);text-transform:uppercase;letter-spacing:.08em;font-size:11px}.acts-table code{font-size:12px}.acts-table .act-name{min-width:180px}.act-name strong,.act-name code{display:block}.act-name strong{margin-bottom:4px;font-size:14px}.act-name code{color:var(--muted);font-size:10px}.acts-table td:last-child{text-align:right}.small-button{color:#fff;background:var(--primary);border-radius:10px;align-items:center;min-height:36px;padding:0 12px;font-size:12px;font-weight:650;display:inline-flex}.status{white-space:nowrap;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:650;display:inline-block}.status.pending{color:var(--amber);background:var(--amber-soft)}.status.reviewed{color:var(--green);background:var(--green-soft)}.status.discrepancy{color:var(--red);background:var(--red-soft)}.pagination{color:var(--muted);justify-content:space-between;align-items:center;padding:16px 20px;font-size:12px;display:flex}.pagination div{gap:10px;display:flex}.pagination a{color:var(--ink);background:var(--canvas);border:1px solid var(--line);border-radius:10px;padding:9px 12px;font-weight:650}:is(body:has(.review-page) .site-header,body:has(.review-page) .site-footer){display:none}.review-page{background:var(--surface-soft);min-height:100vh;padding:12px 12px 106px}.pdf-grid,.pdf-loading{max-width:1800px;height:calc(100vh - 118px);min-height:540px;margin:auto}.pdf-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.pdf-loading{color:var(--muted);place-items:center;display:grid}.pdf-panel{background:#313b39;border-radius:16px;flex-direction:column;min-width:0;display:flex;overflow:hidden}.pdf-label{color:var(--ink);background:var(--canvas);border-bottom:1px solid var(--line);justify-content:space-between;padding:11px 15px;font-size:12px;display:flex}.pdf-label span{color:var(--muted)}.pdf-scroll{background:#4b5250;flex:1;min-height:0;overflow:auto}.pdf-scroll .react-pdf__Document{width:max-content;min-width:100%;padding:16px}.pdf-page-frame{background:#fff;margin:0 auto 16px;overflow:hidden;box-shadow:0 2px 10px #00000038}.pdf-page-frame .react-pdf__Page{width:100%!important;min-width:0!important;height:100%!important;min-height:0!important}.pdf-page-frame canvas{display:block;width:100%!important;height:100%!important}.pdf-message{color:#fff;text-align:center;width:100%;margin:0;padding:32px}.pdf-message.error{color:#ffd6d6}.decision-bar{z-index:10;background:color-mix(in srgb, var(--canvas) 96%, transparent);border-top:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);justify-content:center;min-height:94px;padding:16px max(24px,50vw - 600px);display:flex;position:fixed;bottom:0;left:0;right:0}.decision-actions{grid-template-columns:1fr auto auto;align-items:center;gap:12px;width:100%;display:grid}.decision-actions>div{flex-direction:column;gap:5px;display:flex}.decision-actions span{color:var(--muted);font-size:12px}.success-button{background:var(--teal)}.outline-danger-button{color:var(--red);background:var(--canvas);border-color:#d99991}.danger-button{color:#fff;background:var(--red)}.secondary-button{color:var(--ink);border-color:var(--line);background:var(--canvas)}.comment-form{grid-template-columns:170px 1fr auto;align-items:center;gap:12px;width:min(900px,100%);display:grid}.comment-form label{font-size:13px;font-weight:650}.comment-form label span,.form-error{color:var(--red)}.comment-form textarea{resize:none;border:1px solid var(--line);background:var(--canvas);border-radius:12px;height:58px;padding:10px 14px}.comment-form textarea:focus{border-color:var(--ink);outline:none}.comment-form>div{gap:8px;display:flex}.form-error{margin:0;font-size:12px}.mobile-scroll-hint{display:none}.site-footer{background:var(--surface-soft);border-top:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:48px;min-height:230px;padding:64px max(24px,50vw - 640px);display:flex}.site-footer p{max-width:430px;color:var(--muted);margin:20px 0 0;font-size:14px;line-height:1.55}.site-footer nav{gap:24px;font-size:14px;font-weight:600;display:flex}@media (max-width:1000px){.header-note{display:none}.landing-hero{grid-template-columns:1fr 1fr;gap:32px;min-height:0}.hero-art{min-height:440px}.civic-card{grid-template-columns:1fr}.summary-grid{grid-template-columns:repeat(2,1fr)}.municipality-row{grid-template-columns:1fr 100px 80px 20px}.progress-wrap,.row-stat.muted,.row-stat.danger{display:none}}@media (max-width:767px){.site-header{grid-template-columns:1fr auto;padding:0 16px}.main-nav{display:none}.header-cta{min-height:40px;padding:0 14px;font-size:12px}.page-shell,.page-shell.narrow{width:min(100% - 24px,1280px);padding:36px 0 72px}.landing-page{padding-top:18px}.landing-hero{grid-template-columns:1fr;gap:8px;margin-bottom:48px}.landing-copy{padding:28px 4px}.landing-copy h1{font-size:42px}.landing-copy>p:not(.eyebrow){font-size:16px}.hero-actions{flex-direction:column;align-items:stretch;gap:16px}.hero-cta{width:100%}.secondary-link{align-self:center}.hero-art{min-height:min(440px,108vw)}.civic-card{gap:28px;margin-bottom:72px;padding:24px 18px}.civic-card ol{grid-template-columns:1fr}.civic-card li{min-height:128px}.summary-grid,.summary-grid.compact{grid-template-columns:1fr 1fr}.summary-card{border-radius:18px;min-height:106px;padding:17px}.summary-card strong{font-size:26px}.progress-section{padding-top:36px}.section-intro{flex-direction:column;align-items:start;gap:12px}.section-intro h2{font-size:38px}.panel{border-radius:18px}.panel-heading,.municipality-header{flex-direction:column;align-items:stretch}.search-field input{width:100%}.municipality-row{grid-template-columns:1fr 74px 18px;gap:10px;padding:14px 16px}.row-stat.muted{display:none}.tabs{overflow-x:auto}.pagination{flex-direction:column;gap:10px}.site-footer{flex-direction:column;padding:48px 24px}.site-footer nav{flex-direction:column;gap:14px}.review-page{height:100dvh;min-height:0;padding:6px;overflow:hidden}.pdf-grid{grid-template-rows:repeat(2,minmax(0,1fr));grid-template-columns:1fr;gap:6px;height:calc(100dvh - 12px);min-height:0}.pdf-panel{border-radius:10px;height:auto;min-height:0}.pdf-label{padding:7px 10px}.pdf-scroll .react-pdf__Document{padding:10px}.pdf-page-frame{margin-bottom:10px}.decision-bar{padding:12px;transition:transform .22s,opacity .22s}.decision-bar.waiting{pointer-events:none;opacity:0;transform:translateY(110%)}.decision-bar.ready{opacity:1;transform:translateY(0)}.mobile-scroll-hint{z-index:5;color:#fff;text-align:center;pointer-events:none;background:#0a1a1ae6;border-radius:999px;width:max-content;max-width:calc(100% - 28px);padding:9px 13px;font-size:11px;display:block;position:fixed;bottom:14px;left:50%;transform:translate(-50%)}.decision-actions{grid-template-columns:1fr 1fr}.decision-actions>div{grid-column:1/-1}.comment-form{grid-template-columns:1fr}.comment-form label{display:none}.comment-form textarea{height:70px}.comment-form>div{grid-template-columns:auto 1fr;display:grid}}@media (max-width:430px){.brand{font-size:13px}.brand-mark{width:29px;height:29px}.header-cta{padding:0 11px}.landing-copy h1{font-size:38px}.summary-grid,.summary-grid.compact{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
