:root{--ground:#f5f4ed;--surface:#fffefa;--surface-muted:#f8f7f1;--surface-sunken:#efeee7;--surface-accent:#eef6f1;--surface-brand:#12382f;--line-subtle:#17352f0d;--line:#17352f12;--line-strong:#17352f24;--line-inverse:#ffffff1f;--ink:#17352f;--ink-2:#3d5249;--ink-3:#556860;--ink-inverse:#f7f4e8;--ink-inverse-2:#b7ccbf;--forest:#12382f;--accent:#17654f;--accent-strong:#12523f;--accent-soft:#17654f18;--accent-ring:#17654f2c;--brass:#775c20;--brass-soft:#ddc47c35;--gold:#dec57d;--gold-ring:#dec57d20;--forest-shadow:#12382f2f;--surface-brass:#eee7d2;--surface-brass-soft:#fbf7eb;--on-accent:#fff;--map-0:#e4e2d6;--map-1:#dcebe1;--map-2:#b4d5c2;--map-3:#85b9a0;--map-4:#4a9077;--map-5:#17654f;--map-line:#12382f66;--ok:#1d6a4d;--ok-soft:#27805d1a;--warn:#8a5a12;--warn-soft:#ddc47c20;--warn-ring:#c3963215;--warn-line:#a4823455;--danger:#993e31;--danger-soft:#b64d3c15;--danger-line:#b64d3c45;--font-sans:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-display:Georgia, "Times New Roman", serif;--font-mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace;--fs-meta:12px;--fs-sm:13px;--fs-base:15px;--fs-lead:16px;--fs-h4:18px;--fs-h3:22px;--fs-h2:29px;--fs-h1:clamp(32px, 3.4vw, 44px);--fs-display:clamp(40px, 5vw, 68px);--lh-tight:1.15;--lh-body:1.6;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:22px;--space-6:28px;--space-7:40px;--space-8:56px;--gutter:5vw;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-pill:999px;--shadow-card:0 10px 30px #193a3108;--shadow-raised:0 12px 30px #17352f15;--shadow-action:0 9px 20px var(--accent-ring);color:var(--ink);background:var(--ground);font-family:var(--font-sans);font-size:var(--fs-base);font-synthesis:none;text-rendering:optimizelegibility;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}html{scroll-behavior:auto}}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;min-height:100vh;margin:0}a{color:inherit}button,a{-webkit-tap-highlight-color:transparent}main{min-width:0}.session-loading{background:var(--forest);min-height:100vh;color:var(--ink-inverse);text-align:center;place-content:center;justify-items:center;padding:24px;display:grid}.session-loading .brand-mark{margin-bottom:16px}.session-loading h1{font:500 34px var(--font-display);margin:8px 0}.session-loading p{max-width:420px;color:var(--ink-inverse-2)}.session-loading .primary-action{cursor:pointer;border:0;margin-top:10px}.app-shell{grid-template-columns:248px 1fr;min-height:100vh;display:grid}.sidebar{height:100vh;padding:var(--space-6) var(--space-5);background:var(--forest);color:var(--ink-inverse);flex-direction:column;display:flex;position:sticky;top:0}.brand{gap:var(--space-3);align-items:center;text-decoration:none;display:flex}.brand-mark{border:1px solid var(--ink-inverse-2);width:42px;height:42px;color:var(--gold);font:700 var(--fs-sm)/1 var(--font-display);border-radius:13px;place-items:center;display:grid}.brand strong,.brand small{display:block}.brand strong{font:600 var(--fs-h4)/1.1 var(--font-display)}.brand small{color:var(--ink-inverse-2);font-size:var(--fs-meta);letter-spacing:.18em;text-transform:uppercase;margin-top:3px}.nav-toggle{align-items:center;gap:var(--space-2);padding:10px var(--space-3);border:1px solid var(--line-inverse);border-radius:var(--radius-sm);color:var(--ink-inverse);font:600 var(--fs-sm) var(--font-sans);cursor:pointer;background:0 0;display:none}.nav-toggle-bars{gap:3px;width:15px;display:grid}.nav-toggle-bars i{background:currentColor;border-radius:2px;height:2px;display:block}.main-nav{margin-top:var(--space-8);gap:7px;display:grid}.main-nav a{gap:var(--space-3);padding:11px var(--space-3);color:var(--ink-inverse-2);font-size:var(--fs-sm);border-radius:10px;align-items:center;text-decoration:none;display:flex}.main-nav a:hover,.main-nav .active,.main-nav a.active{background:var(--accent-strong);color:var(--on-accent)}.main-nav a:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.nav-dot{border:1px solid;border-radius:50%;flex-shrink:0;width:6px;height:6px}.main-nav .active .nav-dot,.main-nav a.active .nav-dot{border-color:var(--gold);background:var(--gold);box-shadow:0 0 0 4px var(--gold-ring)}.nav-group{gap:var(--space-1);display:grid}.sub-nav{gap:var(--space-1);padding-left:var(--space-3);border-left:1px solid var(--line-inverse);margin-left:18px;display:grid}.sub-nav .sub-nav-link{padding:var(--space-2) var(--space-3);font-size:var(--fs-meta);color:var(--ink-inverse-2)}.data-policy{border:1px solid var(--line-inverse);background:#ffffff0f;border-radius:14px;gap:11px;margin-top:auto;padding:15px;display:flex}.data-policy>span{color:var(--gold)}.data-policy strong{font-size:var(--fs-meta)}.data-policy p{color:var(--ink-inverse-2);font-size:var(--fs-meta);margin:5px 0 0;line-height:1.45}.app-main-shell{flex-direction:column;min-width:0;display:flex}.routed-page-content{flex:1;min-width:0}.topbar-spacer{flex:1}.topbar{height:86px;padding:0 var(--gutter);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;display:flex;position:relative}.topbar p{color:var(--ink-3);font-size:var(--fs-meta);margin:5px 0 0}.topbar-actions{align-items:center;gap:var(--space-3);display:flex}.session-user{padding-left:var(--space-1);align-items:center;gap:9px;display:flex}.session-user>span:nth-child(2){min-width:120px}.session-user strong,.session-user small{display:block}.session-user strong{font-size:var(--fs-meta)}.session-user small{color:var(--ink-3);font-size:var(--fs-meta);margin-top:2px}.user-avatar{background:var(--accent);width:32px;height:32px;color:var(--on-accent);font:600 var(--fs-sm) var(--font-display);border-radius:50%;flex-shrink:0;place-items:center;display:grid}.logout-error{right:var(--gutter);margin:0;position:absolute;top:70px;color:var(--danger)!important}.page-shell{padding:var(--space-7) var(--gutter) var(--space-8)}.page-shell--centered{text-align:center;place-content:center;justify-items:center;min-height:calc(100vh - 86px);display:grid}.page-section{margin-top:var(--space-6)}.page-header{max-width:780px}.page-header__eyebrow{display:block}.page-header__title{margin:var(--space-3) 0 0;color:var(--ink);font:500 var(--fs-h1)/var(--lh-tight) var(--font-display);letter-spacing:-.02em}.page-header__description{max-width:720px;margin:var(--space-3) 0 0;color:var(--ink-2);font-size:var(--fs-base);line-height:var(--lh-body)}.page-header__actions{gap:var(--space-2);margin-top:var(--space-4);flex-wrap:wrap;display:flex}@media (width<=980px){.app-shell{grid-template-columns:200px 1fr}.sidebar{padding:var(--space-5) var(--space-4)}.main-nav{margin-top:var(--space-7)}.main-nav a{padding:10px}.sub-nav{margin-left:var(--space-3);padding-left:var(--space-2)}.data-policy{display:none}.session-user>span:nth-child(2){min-width:90px}}@media (width<=700px){.app-shell{display:block}.sidebar{z-index:20;width:100%;height:auto;padding:var(--space-3) var(--space-4);align-items:center;gap:var(--space-3);grid-template-columns:1fr auto;display:grid;position:sticky;top:0}.brand-mark{width:36px;height:36px}.nav-toggle{display:inline-flex}.main-nav{padding-top:var(--space-3);border-top:1px solid var(--line-inverse);grid-column:1/-1;margin:0}.main-nav.is-collapsed{display:none}.main-nav a{font-size:var(--fs-base);padding:var(--space-3)}.sub-nav{margin-left:var(--space-3)}.topbar{height:74px}.topbar-actions{margin-left:auto}.session-user>span:nth-child(2){display:none}.page-shell{padding:var(--space-6) var(--space-4) var(--space-7)}}.eyebrow,.section-kicker{color:var(--brass);font-size:var(--fs-meta);letter-spacing:.18em;font-weight:700}.primary-action,.secondary-action,.ui-button{font-size:var(--fs-sm);border:1px solid #0000;border-radius:9px;justify-content:center;align-items:center;gap:8px;padding:12px 17px;font-weight:700;line-height:1.2;text-decoration:none;transition:background-color .2s,border-color .2s,color .2s,box-shadow .2s,opacity .2s;display:inline-flex}.primary-action,.ui-button--primary{background:var(--accent);color:var(--on-accent);box-shadow:var(--shadow-action)}.secondary-action,.ui-button--secondary{border-color:var(--line-strong);background:var(--surface);color:var(--ink)}.ui-button--ghost{border-color:var(--line-strong);color:var(--ink-2);background:0 0}.ui-button--compact{font-size:var(--fs-meta);border-radius:8px;padding:8px 10px}.ui-button:disabled{cursor:wait;opacity:.6}.ui-button:hover{box-shadow:0 0 0 3px var(--accent-soft)}.api-status{border:1px solid var(--line);background:var(--on-accent);color:var(--ink-3);font-size:var(--fs-meta);border-radius:999px;align-items:center;gap:8px;padding:9px 12px;font-weight:700;display:flex}.api-status span{background:var(--warn);width:7px;height:7px;box-shadow:0 0 0 4px var(--warn-ring);border-radius:50%}.api-status.connected span{background:var(--ok)}.api-status.disconnected span{background:var(--danger)}.session-user button{border:1px solid var(--line-strong);color:var(--ink-2);cursor:pointer;font-size:var(--fs-meta);background:0 0;border-radius:8px;padding:8px 10px}.session-user button:disabled{cursor:wait;opacity:.65}.hero{grid-template-columns:minmax(0,1.1fr) minmax(280px,.7fr);align-items:center;gap:7vw;min-height:430px;padding:64px 5vw 52px;display:grid;overflow:hidden}.hero h1{max-width:720px;color:var(--forest);font:500 clamp(40px, 5vw, 68px)/.98 var(--font-display);letter-spacing:-.045em;margin:13px 0 20px}.hero p{max-width:610px;color:var(--ink-3);font-size:var(--fs-lead);margin:0;line-height:1.65}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:30px;display:flex}.territory-visual{place-items:center;min-height:300px;display:grid;position:relative}.orbit{border:1px solid var(--accent-soft);border-radius:50%;position:absolute}.orbit-one{width:270px;height:270px}.orbit-two{width:360px;height:180px;transform:rotate(-20deg)}.province-shape{border:1px solid var(--gold);background:linear-gradient(150deg, var(--accent), var(--forest));width:112px;height:220px;color:var(--gold);box-shadow:20px 25px 60px var(--forest-shadow);border-radius:70% 35% 65% 40%/35% 55% 45% 70%;place-items:center;display:grid;position:relative;transform:rotate(10deg)}.province-shape:after{content:"";border:1px dashed var(--line-inverse);border-radius:inherit;position:absolute;inset:13px}.province-shape span{z-index:1;font:italic 15px var(--font-display);transform:rotate(-10deg)}.visual-note{border:1px solid var(--line);background:var(--surface);max-width:180px;box-shadow:var(--shadow-raised);border-radius:11px;padding:12px 14px;position:absolute;bottom:15px;right:0}.visual-note strong,.visual-note small{display:block}.visual-note strong{font-size:var(--fs-meta)}.visual-note small{color:var(--ink-3);font-size:var(--fs-meta);margin-top:4px;line-height:1.4}.metrics,.territory-section,.catalog-section{border-top:1px solid var(--line);padding:48px 5vw}.section-heading{justify-content:space-between;align-items:end;gap:24px;display:flex}.section-heading h2,.territory-section h2{color:var(--ink);font:500 29px/1.15 var(--font-display);margin:8px 0 0}.synthetic-badge,.origin-chip,.status-badge{background:var(--brass-soft);color:var(--brass);font-size:var(--fs-meta);border-radius:999px;align-items:center;padding:5px 8px;font-weight:700;display:inline-flex}.status-badge--info{background:var(--accent-soft);color:var(--accent)}.status-badge--success{background:var(--ok-soft);color:var(--ok)}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:24px;display:grid}.metric-card,.stat-card{border:1px solid var(--line);background:var(--surface);min-height:155px;box-shadow:var(--shadow-card);border-radius:14px;flex-direction:column;padding:20px;display:flex}.metric-card>span,.stat-card>span{color:var(--ink-3);font-size:var(--fs-meta)}.metric-card strong,.stat-card strong{color:var(--ink);font:500 21px var(--font-display);margin-top:18px}.metric-card small,.stat-card small{color:var(--ink-3);font-size:var(--fs-meta);margin-top:auto}.catalog-section{background:var(--surface-sunken)}.catalog-section .section-heading h2{color:var(--ink);font:500 29px/1.15 var(--font-display);margin:8px 0 0}.catalog-provenance{color:var(--brass);font-size:var(--fs-meta);align-items:center;gap:9px;margin:18px 0 0;display:flex}.catalog-provenance span{font-size:var(--fs-lead)}.catalog-grid,.page-placeholder-grid{gap:16px;display:grid}.catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:23px}.panel-card,.page-placeholder-card,.source-management,.official-upload-form,.register-mapping-card,.edition-table-section,.coverage-results{border:1px solid var(--line);background:var(--surface);min-width:0;box-shadow:var(--shadow-card);border-radius:16px;padding:22px}.panel-card span,.page-placeholder-card span,.catalog-panel-heading span{color:var(--brass);font-size:var(--fs-meta);letter-spacing:.16em;font-weight:700}.panel-card strong,.page-placeholder-card strong{color:var(--ink);font:500 24px/1.15 var(--font-display);margin-top:14px;display:block}.panel-card p,.page-placeholder-card p{color:var(--ink-3);font-size:var(--fs-meta);margin:12px 0 0;line-height:1.6}.catalog-panel-heading{justify-content:space-between;align-items:center;gap:20px;display:flex}.catalog-panel-heading h3{font:500 22px var(--font-display);margin:5px 0 0}.catalog-panel-heading>strong{background:var(--accent);width:38px;height:38px;color:var(--on-accent);font:500 16px var(--font-display);border-radius:50%;place-items:center;display:grid}.source-validation-list,.issue-list,.processing-result ul,.coverage-source ul,.comparison-municipalities{margin:19px 0 0;padding:0;list-style:none}.catalog-message{border:1px dashed var(--line-strong);color:var(--ink-3);font-size:var(--fs-meta);border-radius:13px;margin-top:22px;padding:20px}.catalog-warning{border-color:var(--warn-line);background:var(--warn-soft);color:var(--brass)}.catalog-error{border-color:var(--danger-line);background:var(--danger-soft);color:var(--danger)}.page-header__description,.page-intro p{max-width:760px;color:var(--ink-3);font-size:var(--fs-meta);margin:17px 0 0;line-height:1.65}.front-form-actions,.form-actions{flex-wrap:wrap;gap:8px;display:flex}.form-actions--compact{gap:8px}.front-form,.source-form{gap:14px;display:grid}.front-form>div,.source-form>div{gap:7px;display:grid}.front-form label,.source-form label,.official-upload-form label,.mapping-grid label{color:var(--ink-2);font-size:var(--fs-meta);font-weight:700}.front-form input,.front-form select,.source-form input,.source-form select,.official-upload-form input,.official-upload-form select,.mapping-grid input,.mapping-grid select{border:1px solid var(--line-strong);background:var(--on-accent);width:100%;color:var(--ink);font:inherit;border-radius:9px;padding:11px 12px}.front-form input:focus,.front-form select:focus,.source-form input:focus,.source-form select:focus,.official-upload-form input:focus,.official-upload-form select:focus,.mapping-grid input:focus,.mapping-grid select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.import-error,.login-error{background:var(--danger-soft);color:var(--danger);font-size:var(--fs-meta);border-radius:8px;margin:12px 0 0;padding:10px 12px}.source-form{grid-template-columns:minmax(220px,1fr) minmax(260px,2fr) auto;align-items:center}.source-management-groups{gap:16px;margin-top:20px;display:grid}.source-management-block{border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:16px}.source-management-block .empty-state-card{border-radius:12px;margin-top:16px;padding:16px}.source-management-block .comparison-heading h3,.official-upload-form-title h3{color:var(--ink);font:500 18px var(--font-display);margin:0}.official-upload-form{grid-template-columns:repeat(3,minmax(0,1fr)) auto;align-items:end;gap:14px;display:grid}.official-upload-form-title{grid-column:1/-1}.source-management+.official-upload-form{margin-top:16px}.official-upload-form input[type=file]{padding:8px}.official-upload-form input[type=file]::file-selector-button{border:0;border-right:1px solid var(--line-strong);background:var(--surface-muted);color:var(--ink-2);font:inherit;cursor:pointer;margin:-8px 10px -8px -8px;padding:9px 12px;font-weight:700}.source-form button,.official-upload-form button,.register-mapping-card button,.edition-table-section button,.front-form-actions button{cursor:pointer}.source-form .ui-button{min-height:40px}.source-validation-list li{border-top:1px solid var(--line-subtle);justify-content:space-between;align-items:center;gap:15px;padding:11px 0;display:flex}.source-validation-list strong,.source-validation-list small{display:block}.source-validation-list strong{font-size:var(--fs-meta)}.source-validation-list small{color:var(--ink-3);font-size:var(--fs-meta);margin-top:4px}.verified-chip{text-transform:uppercase}.source-form button:disabled,.official-upload-form button:disabled,.register-mapping-card button:disabled,.edition-table-section button:disabled,.session-loading .primary-action:disabled{cursor:wait;opacity:.6}.encrypted-evidence{border-left:3px solid var(--accent);background:var(--surface-accent);border-radius:8px;gap:5px;padding:13px 15px;display:grid}.encrypted-evidence strong{color:var(--accent);font-size:var(--fs-meta);text-transform:uppercase;letter-spacing:.08em}.encrypted-evidence span{font-size:var(--fs-meta);font-weight:700}.encrypted-evidence small{overflow-wrap:anywhere;color:var(--ink-3);font-size:var(--fs-meta)}.mapping-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin:18px 0;display:grid}.processing-result{border-top:1px solid var(--line);margin-top:18px;padding-top:17px}.processing-result>strong,.processing-result>span{display:block}.processing-result>strong{color:var(--accent);font:500 20px var(--font-display)}.processing-result>span{color:var(--ink-3);font-size:var(--fs-meta);margin-top:5px}.processing-result li,.coverage-source li{border-top:1px solid var(--line-subtle);font-size:var(--fs-meta);justify-content:space-between;padding:9px 0;display:flex}.processing-result li span small,.coverage-source li span small{color:var(--ink-3);font-size:var(--fs-meta);margin-top:3px;display:block}.territory-reconciliation{border:1px solid var(--warn-line);background:var(--surface-muted);border-radius:12px;margin:16px 0;padding:16px}.territory-reconciliation>strong{color:var(--danger);font-size:var(--fs-meta)}.territory-reconciliation>p{color:var(--ink-2);font-size:var(--fs-meta);margin:5px 0 0}.territory-reconciliation li{border-color:var(--warn-line);align-items:end;gap:18px}.territory-reconciliation li>span{min-width:180px}.territory-reconciliation li>div{grid-template-columns:minmax(210px,1fr) auto;align-items:end;gap:7px 10px;display:grid}.territory-reconciliation label{color:var(--ink-2);font-size:var(--fs-meta);grid-column:1/-1;font-weight:700}.territory-reconciliation select{border:1px solid var(--line-strong);background:var(--surface);min-width:230px;color:var(--ink);border-radius:8px;padding:8px}.territory-reconciliation button{background:var(--danger);color:var(--on-accent);cursor:pointer;font-size:var(--fs-meta);border:0;border-radius:8px;padding:8px 11px;font-weight:700}.edition-table-section h3,.coverage-results h3,.comparison-heading h3{color:var(--ink);font:500 20px var(--font-display);margin:0 0 14px}.edition-table-section td small,.edition-table-section tbody th small{color:var(--ink-3);font-size:var(--fs-meta);margin-top:4px;display:block}.edition-table-section button{background:var(--accent);color:var(--on-accent);font-size:var(--fs-meta);border-radius:8px;padding:8px 10px;font-weight:700}.coverage-source{border:1px solid var(--line);background:var(--surface-muted);border-radius:12px;margin-top:13px;padding:17px}.coverage-source>summary{cursor:pointer;justify-content:space-between;align-items:center;gap:18px;padding:4px 0;list-style:none;display:flex}.coverage-source>summary::-webkit-details-marker{display:none}.coverage-source>summary strong,.coverage-source>summary small{display:block}.coverage-source>summary small{color:var(--ink-3);font-size:var(--fs-meta);margin-top:4px}.coverage-source-total{color:var(--accent);font:500 var(--fs-lead) var(--font-display);flex-shrink:0}.summary-panel{border:1px solid var(--accent-soft);background:var(--surface-accent);box-shadow:var(--shadow-card);border-radius:16px;margin-top:20px;padding:22px}.summary-grid{grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:12px;margin-top:18px;display:grid}.summary-grid article{border:1px solid var(--line);background:var(--surface);border-radius:11px;flex-direction:column;justify-content:space-between;min-height:92px;padding:15px;display:flex}.summary-grid span{color:var(--ink-3);font-size:var(--fs-meta);line-height:1.35}.summary-grid strong{color:var(--accent);font:500 27px var(--font-display)}.summary-grid small{color:var(--ink-3);font-size:var(--fs-meta);margin-top:6px;line-height:1.4}.front-privacy-note,.info-banner{border-left:3px solid var(--accent);background:var(--surface-accent);color:var(--ink-2);font-size:var(--fs-meta);margin:14px 0;padding:11px 13px;line-height:1.55}.municipality-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px;display:grid}.municipality-detail-grid article{background:var(--surface-muted);border:1px solid var(--line-subtle);border-radius:12px;padding:16px}.comparison-heading,.comparison-controls,.comparison-summary,.comparison-municipalities li{justify-content:space-between;align-items:center;gap:14px;display:flex}.municipality-detail-grid span,.comparison-municipalities small{color:var(--ink-3);font-size:var(--fs-meta)}.municipality-detail-sources h5{color:var(--ink);font:500 18px var(--font-display);margin:0 0 10px}.municipality-detail-grid strong,.comparison-summary strong{color:var(--ink);font:500 14px/1.35 var(--font-mono);word-break:break-word;margin-top:8px;display:block}.municipality-detail,.comparison-results{border:1px solid var(--line);background:var(--surface-muted);border-radius:14px;margin-top:16px;padding:18px}.municipality-detail-grid{margin-top:14px}.municipality-detail-grid small,.comparison-warning{color:var(--ink-3);font-size:var(--fs-meta);margin-top:5px;line-height:1.35;display:block}.municipality-detail-sources{margin-top:14px}.municipality-detail-sources ul{margin:0;padding:0;list-style:none}.municipality-detail-sources li{border-top:1px solid var(--line-subtle);justify-content:space-between;gap:12px;padding:10px 0;display:flex}.municipality-detail-sources li strong,.municipality-detail-sources li small{display:block}.page-placeholder-actions{justify-content:center;margin-top:22px;display:flex}.page-placeholder-actions--start{justify-content:flex-start}.comparison-controls{flex-wrap:wrap;align-items:end;margin-top:16px}.comparison-controls>div{flex:170px;gap:6px;display:grid}.comparison-controls label{color:var(--ink-2);font-size:var(--fs-meta);text-transform:uppercase;font-weight:700}.comparison-controls select{border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);border-radius:8px;padding:9px}.comparison-controls button{cursor:pointer;border:0}.comparison-summary{flex-wrap:wrap;margin:18px 0 12px}.comparison-summary span{min-width:130px;color:var(--ink-3);font-size:var(--fs-meta);gap:2px;display:grid}.comparison-warning{background:var(--warn-soft);color:var(--brass);font-size:var(--fs-meta);border-radius:8px;padding:10px 12px;line-height:1.5}.comparison-municipalities{gap:0;display:grid}.comparison-municipalities li{border-bottom:1px solid var(--line-subtle);align-items:start;padding:11px 0}.comparison-municipalities li>span{gap:3px;display:grid}.municipality-map-path{fill:var(--surface-sunken);stroke:var(--map-line);stroke-width:.6px;cursor:pointer;transition:filter .15s}.municipality-map-path[data-hovered=true]{filter:brightness(.9);stroke:var(--forest);stroke-width:1.4px}.municipality-map-path.is-selected{stroke:var(--forest);stroke-width:2.4px}.municipality-map-path:focus-visible{stroke:var(--forest);stroke-width:3px;stroke-dasharray:3 2;outline:none}.municipality-map-path.is-tier-0{fill:var(--map-0)}.municipality-map-path.is-tier-1{fill:var(--map-1)}.municipality-map-path.is-tier-2{fill:var(--map-2)}.municipality-map-path.is-tier-3{fill:var(--map-3)}.municipality-map-path.is-tier-4{fill:var(--map-4)}.municipality-map-path.is-tier-5{fill:var(--map-5)}.municipality-map-path:focus-visible{outline:2px solid var(--accent);outline-offset:2px;stroke:var(--forest);stroke-width:4px}.login-page{background:var(--ground);grid-template-columns:minmax(420px,1.15fr) minmax(420px,.85fr);min-height:100vh;display:grid}.login-context{background:var(--forest);color:var(--ink-inverse);flex-direction:column;justify-content:space-between;padding:48px 7vw;display:flex;overflow:hidden}.login-context h1{max-width:720px;font:500 clamp(45px, 5vw, 76px)/1 var(--font-display);letter-spacing:-.045em;margin:18px 0 25px}.login-context>div>p{max-width:580px;color:var(--ink-inverse-2);font-size:var(--fs-base);line-height:1.7}.login-brand{width:max-content}.login-security-note{max-width:520px;color:var(--gold);align-items:center;gap:12px;display:flex}.login-security-note p{color:var(--ink-inverse-2);font-size:var(--fs-meta);margin:0;line-height:1.5}.login-panel{place-items:center;padding:48px 7vw;display:grid}.login-card{width:min(100%,410px)}.login-card h2{color:var(--ink);font:500 37px/1.08 var(--font-display);margin:12px 0 9px}.login-card>p{color:var(--ink-3);font-size:var(--fs-sm);margin:0 0 30px;line-height:1.55}.login-card form{display:grid}.login-card label{color:var(--ink-2);font-size:var(--fs-meta);margin:16px 0 7px;font-weight:700}.login-card input{border:1px solid var(--line-strong);background:var(--surface);width:100%;color:var(--ink);font:inherit;border-radius:9px;padding:13px 14px}.login-card input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.login-submit{cursor:pointer;border:0;margin-top:23px}.login-submit:disabled{cursor:wait;opacity:.7}.login-help{color:var(--ink-3);font-size:var(--fs-meta);margin-top:23px;line-height:1.55;display:block}.municipal-territorial-dashboard{min-width:0}.municipal-territorial-dashboard-header{justify-content:flex-end;margin-bottom:4px;display:flex}.municipal-territorial-cards{grid-template-columns:minmax(0,.85fr) minmax(0,1.5fr) minmax(0,.85fr);align-items:start;gap:16px;margin-top:16px;display:grid}.municipal-territorial-cards>section{border:1px solid var(--line);background:var(--surface-muted);border-radius:12px;min-width:0;padding:16px}.municipal-territorial-cards h3{margin-top:0}.municipal-territorial-cards svg{width:100%;max-width:100%;height:auto;display:block}.municipal-territorial-cards dd{overflow-wrap:anywhere;word-break:break-word;min-width:0}@media (width<=980px){.hero{padding:var(--space-7) var(--gutter);gap:var(--space-6);grid-template-columns:1fr}.metric-grid,.summary-grid{grid-template-columns:repeat(2,1fr)}.catalog-grid,.page-placeholder-grid,.municipal-territorial-cards,.municipality-detail-grid{grid-template-columns:1fr}.official-upload-form,.mapping-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.source-form{grid-template-columns:1fr 2fr}.source-form button{grid-column:1/-1}.api-status{display:none}}@media (width<=700px){.hero{grid-template-columns:1fr;padding-top:48px}.territory-visual{min-height:260px}.section-heading{flex-direction:column;align-items:start}.metric-grid,.territory-section,.catalog-grid,.official-upload-form,.mapping-grid,.source-form,.edition-results-toolbar-filters{grid-template-columns:1fr}.front-form-actions,.municipality-detail-sources li{flex-direction:column;align-items:stretch}.metric-card,.stat-card{min-height:135px}.login-page{display:block}.login-context{min-height:42vh;padding:28px 20px}.login-context h1{margin-top:12vh;font-size:42px}.login-security-note{margin-top:45px}.login-panel{padding:45px 20px 60px}}.panorama-page{gap:0}.panorama-hero{border-bottom:1px solid var(--line);padding-top:24px}.panorama-overview-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:24px;display:grid}.panorama-overview-grid .panel-card{gap:12px;display:grid}.panorama-overview-grid .panel-card h3{color:var(--ink);font:500 22px/1.15 var(--font-display);margin:0}.panorama-overview-grid .panel-card p{margin:0}.panorama-card-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:auto;display:flex}@media (width<=980px){.panorama-overview-grid{grid-template-columns:1fr}}.padrones-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}@media (width<=980px){.padrones-summary-grid{grid-template-columns:1fr}}.municipal-party-list{margin:14px 0 0;padding:0;list-style:none}.municipal-party-list li{border-top:1px solid var(--line-subtle);grid-template-columns:auto minmax(0,1fr);align-items:center;gap:11px;min-width:0;padding:12px 0;display:grid}.municipal-party-list li:first-child{border-top:0;padding-top:0}.municipal-party-list li strong,.municipal-party-list li small{display:block}.municipal-party-list li strong{font-size:var(--fs-meta)}.municipal-party-list li small{color:var(--ink-3);font-size:var(--fs-meta);margin-top:4px}.municipal-party-list-item--empty{opacity:.6}.municipal-party-dot{border-radius:50%;flex-shrink:0;width:9px;height:9px;display:block}.municipal-party-dot--high{background:var(--ok);box-shadow:0 0 0 4px var(--ok-soft)}.municipal-party-dot--low{background:var(--warn);box-shadow:0 0 0 4px var(--warn-ring)}.municipal-party-dot--zero{background:var(--ink-3)}.municipal-detail-department{color:var(--ink);font-size:var(--fs-meta);align-items:baseline;gap:6px;margin:10px 0 0;font-weight:700;display:flex}.municipal-detail-department span{color:var(--brass);font-size:var(--fs-meta);letter-spacing:.12em;text-transform:uppercase;font-weight:700}.municipal-detail-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0 0;display:grid}.municipal-stat-tile{border:1px solid var(--line);background:var(--surface);min-width:0;box-shadow:var(--shadow-card);color:var(--ink-2);font-size:var(--fs-meta);border-radius:12px;padding:14px 16px;line-height:1.4}.municipal-stat-tile strong{color:var(--accent);font:500 26px var(--font-display);margin-bottom:4px;display:block}.municipal-map-canvas{border:1px solid var(--line-subtle);background:var(--surface);border-radius:12px;margin-top:10px;padding:16px}.municipal-map-canvas svg{width:100%;max-width:100%;height:auto;display:block}.municipal-electoral-roll{margin-top:18px}.municipal-electoral-roll h4{color:var(--ink);font:500 14px var(--font-display);margin:0}.municipal-electoral-roll dl{grid-template-columns:auto 1fr;gap:6px 14px;margin:10px 0 0;display:grid}.municipal-electoral-roll dt{color:var(--ink-3);font-size:var(--fs-meta);align-self:center}.municipal-electoral-roll dd{overflow-wrap:anywhere;word-break:break-word;font-size:var(--fs-meta);color:var(--ink);margin:0}.municipal-electoral-roll .catalog-message{margin-top:10px}.municipal-map-control{color:var(--ink-2);font-size:var(--fs-meta);flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px;font-weight:700;display:flex}.municipal-map-control select{border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);font:inherit;border-radius:8px;padding:8px 10px;font-weight:600}.municipal-map-control select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.municipal-map-legend{flex-wrap:wrap;align-items:center;gap:16px;margin-top:12px;display:flex}.municipal-map-legend span{color:var(--ink-3);font-size:var(--fs-meta);align-items:center;gap:6px;display:inline-flex}.municipal-map-legend-swatch{background:var(--surface-sunken);border:1px solid var(--ink-2);border-radius:3px;width:10px;height:10px;font-style:normal;display:block}.municipal-map-legend-swatch--selected{border:2px solid var(--forest);background:0 0}.municipal-map-legend-swatch.is-tier-0{background:var(--map-0);border-color:var(--map-line)}.municipal-map-legend-swatch.is-tier-1{background:var(--map-1);border-color:var(--map-line)}.municipal-map-legend-swatch.is-tier-2{background:var(--map-2);border-color:var(--map-line)}.municipal-map-legend-swatch.is-tier-3{background:var(--map-3);border-color:var(--map-line)}.municipal-map-legend-swatch.is-tier-4{background:var(--map-4);border-color:var(--map-line)}.municipal-map-legend-swatch.is-tier-5{background:var(--map-5);border-color:var(--map-line)}.municipal-map-scale{align-items:center;gap:6px;display:inline-flex}.municipal-map-scale .municipal-map-legend-swatch{border-radius:0;width:22px;height:10px;margin:0}.municipal-map-scale .municipal-map-legend-swatch+.municipal-map-legend-swatch{margin-left:-1px}.municipal-map-scale-end{color:var(--ink-3);font-size:var(--fs-meta);font-variant-numeric:tabular-nums}.municipal-map-scale-label{color:var(--ink-3);font-size:var(--fs-meta)}.coverage-map{margin-top:var(--space-4);padding:var(--space-5);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-card)}.coverage-map h3{margin:0 0 var(--space-2);color:var(--ink);font:500 20px var(--font-display)}.coverage-map .municipal-map-canvas{max-width:620px;margin:var(--space-3) auto 0}.coverage-map p{color:var(--ink-3);font-size:var(--fs-sm);margin:0}.municipal-territorial-cards p[role=alert]{background:var(--danger-soft);color:var(--danger);font-size:var(--fs-meta);border-radius:8px;padding:10px 12px}.municipal-territorial-cards p[role=status]{color:var(--ink-3);font-size:var(--fs-meta)}.section-header{max-width:780px;margin-bottom:var(--space-4)}.section-header__eyebrow{color:var(--brass);font-size:var(--fs-meta);letter-spacing:.16em;text-transform:uppercase;font-weight:700;display:block}.section-header__title{margin:var(--space-2) 0 0;color:var(--ink);font:500 var(--fs-h2)/var(--lh-tight) var(--font-display)}.section-header__description{max-width:720px;margin:var(--space-3) 0 0;color:var(--ink-2);font-size:var(--fs-base);line-height:var(--lh-body)}.empty-state-card{margin-top:var(--space-4);padding:var(--space-5);gap:var(--space-2);border:1px dashed var(--line-strong);border-radius:var(--radius-md);background:var(--surface-muted);text-align:left;display:grid}.empty-state-card strong{color:var(--ink);font:500 var(--fs-h4) var(--font-display)}.empty-state-card p{color:var(--ink-2);font-size:var(--fs-sm);line-height:var(--lh-body);margin:0}.upload-progress-summary{align-items:center;gap:var(--space-3);margin-top:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-muted);color:var(--ink-2);font-size:var(--fs-meta);flex-wrap:wrap;display:flex}.next-action-guidance{margin:var(--space-4) 0;padding:var(--space-3) var(--space-4);border-left:3px solid var(--accent);border-radius:var(--radius-sm);background:var(--surface-accent);color:var(--ink-2);font-size:var(--fs-sm);line-height:var(--lh-body)}.locality-totals{margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--line)}.locality-totals h4{margin:0 0 var(--space-3);color:var(--ink);font:500 var(--fs-h4) var(--font-display)}.territory-manual-resolution{gap:var(--space-2);margin-top:var(--space-3);display:grid}.comparison-output{min-width:0;margin-top:var(--space-4)}.zero{color:var(--ink-3)}.results-toolbar{z-index:10;justify-content:space-between;align-items:end;gap:var(--space-3) var(--space-4);margin-top:var(--space-4);padding:var(--space-3) var(--space-4);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-card);flex-wrap:wrap;display:flex;position:sticky;top:0}.results-toolbar-filter{flex:260px;gap:6px;min-width:0;display:grid}.results-toolbar-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.results-toolbar label{color:var(--ink-2);font-size:var(--fs-meta);font-weight:700}.results-toolbar select{width:100%;padding:10px var(--space-3);border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font:inherit}.results-toolbar select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.edition-results-toolbar{box-shadow:none;justify-content:flex-start;position:static}.edition-results-toolbar-filters{gap:var(--space-3) var(--space-4);grid-template-columns:repeat(2,minmax(220px,1fr));width:min(100%,720px);display:grid}.report-footer{margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--line)}.report-footer-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin:0;display:grid}.report-footer-grid>div{min-width:0}.report-footer dt{color:var(--ink-3);font-size:var(--fs-meta);letter-spacing:.08em;text-transform:uppercase;font-weight:700}.report-footer dd{color:var(--ink);font-size:var(--fs-sm);overflow-wrap:anywhere;margin:6px 0 0}.report-footer-hash{font-family:var(--font-mono);font-size:var(--fs-meta);color:var(--ink-2)}.report-footer-note{max-width:70ch;margin:var(--space-4) 0 0;color:var(--ink-3);font-size:var(--fs-meta);line-height:var(--lh-body)}@media (width<=700px){.results-toolbar{position:static}}.coverage-table-section{margin-top:var(--space-4);padding:var(--space-5);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-card)}.table-scroll{margin-top:var(--space-4);border:1px solid var(--line);border-radius:var(--radius-sm);position:relative;overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:var(--fs-sm)}.data-table th,.data-table td{padding:11px var(--space-3);text-align:left;border-bottom:1px solid var(--line-subtle)}.data-table thead th{padding:11px var(--space-3);background:var(--surface-muted);border-bottom:1px solid var(--line-strong);color:var(--ink-3);font:700 var(--fs-meta)/1.4 var(--font-sans);letter-spacing:.06em;text-transform:uppercase}.data-table thead th:has(button){padding:0}.data-table thead button{width:100%;padding:11px var(--space-3);color:var(--ink-3);font:700 var(--fs-meta)/1.4 var(--font-sans);letter-spacing:.06em;text-transform:uppercase;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;display:flex}.data-table thead button:hover{color:var(--ink)}.data-table th.n button{justify-content:flex-end}.data-table th.n,.data-table td.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.data-table tbody th{color:var(--ink);font-weight:600}.data-table tbody tr:nth-child(2n){background:var(--surface-muted)}.data-table tbody tr:last-child th,.data-table tbody tr:last-child td{border-bottom:0}.data-table .sort-mark{color:var(--accent);font-size:10px}.table-pagination{justify-content:space-between;align-items:center;gap:var(--space-3);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.table-pagination p{color:var(--ink-3);font-size:var(--fs-meta);font-variant-numeric:tabular-nums;margin:0}.table-pagination div{gap:var(--space-2);display:flex}.table-pagination .ui-button:disabled{cursor:not-allowed}.coverage-source>summary:after{content:"▾";color:var(--ink-3);font-size:var(--fs-meta);transition:transform .2s}.coverage-source[open]>summary:after{transform:rotate(180deg)}.coverage-source>summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}.board{padding:var(--space-5);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-card)}.board+.board{margin-top:var(--space-4)}.board .comparison-heading{margin-bottom:var(--space-4)}.board .comparison-heading h3{margin:0}.board .table-scroll,.board .empty-state-card{margin-top:0}.board-toolbar{max-width:420px;margin-bottom:var(--space-4);gap:6px;display:grid}.board-toolbar label{color:var(--ink-2);font-size:var(--fs-meta);font-weight:700}.board-toolbar input{width:100%;padding:10px var(--space-3);border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font:inherit}.board-toolbar input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.data-table th.actions,.data-table td.actions{text-align:right;white-space:nowrap;width:1%}.data-table th.actions{padding:0}.row-actions{justify-content:flex-end;gap:var(--space-2);display:flex}.data-table td.code,.data-table th.code{font-family:var(--font-mono);font-size:var(--fs-meta);color:var(--ink-3)}.data-table .muted{color:var(--ink-3)}.data-table .tag-list{flex-wrap:wrap;gap:5px;display:flex}.data-table .tag-list .status-badge{white-space:nowrap}.data-table tbody th .status-badge{margin-left:var(--space-2)}.board--form{background:var(--surface-muted)}.record-form{gap:var(--space-5);display:grid}.record-form fieldset{min-width:0;padding:var(--space-4) var(--space-4) var(--space-5);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);margin:0}.record-form legend{padding:0 var(--space-2);margin-left:calc(var(--space-2) * -1);color:var(--brass);font-size:var(--fs-meta);letter-spacing:.14em;text-transform:uppercase;font-weight:700}.record-form-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.record-form-grid>div{gap:6px;min-width:0;display:grid}.record-form label{color:var(--ink-2);font-size:var(--fs-meta);font-weight:700}.record-form input,.record-form select{width:100%;padding:10px var(--space-3);border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font:inherit}.record-form input:focus,.record-form select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.front-form select,.official-upload-form select{background:var(--on-accent);border-radius:9px;padding:11px 12px}.front-form select:focus,.official-upload-form select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.field-hint{margin:var(--space-3) 0 0;color:var(--ink-3);font-size:var(--fs-meta);line-height:var(--lh-body)}.record-form fieldset>.field-hint:first-of-type{margin-top:0;margin-bottom:var(--space-3)}.checkbox-grid{gap:var(--space-2) var(--space-4);grid-template-columns:repeat(auto-fit,minmax(230px,1fr));display:grid}.checkbox-grid label{align-items:center;gap:var(--space-2);padding:var(--space-2) 0;color:var(--ink);font-size:var(--fs-sm);cursor:pointer;font-weight:400;display:flex}.checkbox-grid input{width:16px;height:16px;accent-color:var(--accent);cursor:pointer;margin:0}@media (width<=700px){.board{padding:var(--space-4)}.record-form fieldset{padding:var(--space-3)}.data-table th.actions,.data-table td.actions{text-align:left}.row-actions{justify-content:flex-start}}.confirm-strip{justify-content:space-between;align-items:center;gap:var(--space-3) var(--space-4);margin-bottom:var(--space-4);padding:var(--space-4);border:1px solid var(--warn-line);border-radius:var(--radius-md);background:var(--warn-soft);flex-wrap:wrap;display:flex}.confirm-strip strong{color:var(--ink);font-size:var(--fs-base);display:block}.confirm-strip p{max-width:60ch;color:var(--ink-2);font-size:var(--fs-sm);line-height:var(--lh-body);margin:5px 0 0}.confirm-strip-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
