: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;--surface-brass:#eee7d2;--surface-brass-soft:#fbf7eb;--on-accent:#fff;--ok:#1d6a4d;--ok-soft:#27805d1a;--warn:#8a5a12;--warn-soft:#ddc47c20;--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)15;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)2f;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,.front-management-section,.import-section,.official-registers{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,.import-section .section-heading h2,.official-registers .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,.front-management-layout,.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,.catalog-panel,.front-management-card,.source-management,.official-upload-form,.register-mapping-card,.edition-list,.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}.catalog-panel ul,.front-management-list,.source-validation-list,.issue-list,.processing-result ul,.coverage-source ul,.front-municipality-list,.comparison-municipalities{margin:19px 0 0;padding:0;list-style:none}.catalog-panel li,.front-management-list li{border-top:1px solid var(--line-subtle);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;min-width:0;padding:13px 0;display:grid}.catalog-panel li>span:nth-child(2),.front-management-list li>span{min-width:0}.catalog-panel li strong,.catalog-panel li small,.front-management-list strong,.front-management-list small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.catalog-panel li strong,.front-management-list strong{font-size:var(--fs-meta)}.catalog-panel li small,.front-management-list small{color:var(--ink-3);font-size:var(--fs-meta);margin-top:4px}.catalog-monogram{background:var(--surface-accent);width:33px;height:33px;color:var(--accent);font-size:var(--fs-meta);border-radius:9px;place-items:center;font-weight:700;display:grid}.catalog-monogram.territory{background:var(--surface-brass);color:var(--brass)}.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)}.front-management-section{background:var(--surface-muted)}.front-management-intro,.import-intro,.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-management-warning{border:1px solid var(--warn-line);border-radius:12px;margin-top:16px;padding:14px 16px}.front-management-layout{grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);margin-top:24px}.front-management-actions,.front-form-actions,.form-actions{flex-wrap:wrap;gap:8px;display:flex}.form-actions--compact{gap:8px}.front-form,.source-form,.import-form{gap:14px;display:grid}.front-form>div,.import-form>div{gap:7px;display:grid}.front-form label,.import-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,.import-form select,.import-form input,.source-form input,.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,.import-form select:focus,.import-form input:focus,.source-form input: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 .comparison-heading h3,.official-upload-form-title h3{color:var(--ink);font:500 18px var(--font-display);margin:0}.source-validation-empty{color:var(--ink-3);font-size:var(--fs-meta);border-top:1px solid var(--line-subtle);padding:11px 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-form button,.official-upload-form button,.register-mapping-card button,.edition-list button,.front-form-actions button,.front-management-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-list 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-list h3,.coverage-results h3,.comparison-heading h3{color:var(--ink);font:500 20px var(--font-display);margin:0 0 14px}.edition-list article{border-top:1px solid var(--line-subtle);grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:15px;padding:12px 0;display:grid}.edition-list article strong,.edition-list article small{display:block}.edition-list article small{color:var(--ink-3);font-size:var(--fs-meta);margin-top:4px}.edition-list article>span{color:var(--accent);font-size:var(--fs-meta);font-weight:700}.edition-list 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 header{justify-content:space-between;align-items:center;gap:18px;display:flex}.coverage-source header strong,.coverage-source header small{display:block}.coverage-source header small{color:var(--ink-3);font-size:var(--fs-meta);margin-top:4px}.coverage-source header>span{color:var(--accent);font:500 16px var(--font-display)}.front-coverage{border:1px solid var(--accent-soft);background:var(--surface-accent);box-shadow:var(--shadow-card);border-radius:16px;margin-top:20px;padding:22px}.front-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:18px;display:grid}.front-summary-grid article{border:1px solid var(--line);background:var(--surface);border-radius:11px;flex-direction:column;justify-content:space-between;min-height:105px;padding:15px;display:flex}.front-summary-grid span{color:var(--ink-3);font-size:var(--fs-meta);line-height:1.35}.front-summary-grid strong{color:var(--accent);font:500 27px var(--font-display)}.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}.front-filter{grid-template-columns:minmax(180px,260px) minmax(220px,1fr);align-items:center;gap:7px 14px;display:grid}.front-filter label{color:var(--ink-2);font-size:var(--fs-meta);font-weight:700}.front-filter select{border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);border-radius:8px;padding:9px}.front-filter small{color:var(--ink-3);font-size:var(--fs-meta);grid-column:2}.territory-map,.territorial-report{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-card);border-radius:16px;margin-top:20px;padding:22px}.territory-map-grid,.report-summary-grid,.municipality-detail-grid,.presentation-final-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px;display:grid}.territory-map-card,.report-summary-grid article,.municipality-detail-grid article,.presentation-final-grid article{background:var(--surface-muted);border:1px solid var(--line-subtle);border-radius:12px;padding:16px}.territory-map-card.con_datos{border-color:var(--accent-soft);background:var(--surface-accent)}.territory-map-card.sin_informacion{border-color:var(--warn-line);background:var(--surface-brass-soft)}.territory-map-card-heading,.territory-map-card li,.territory-ranking li,.comparison-heading,.comparison-controls,.comparison-summary,.comparison-municipalities li{justify-content:space-between;align-items:center;gap:14px;display:flex}.territory-map-card-heading strong,.territory-map-card-heading small,.territory-ranking li strong,.territory-ranking li small{display:block}.territory-map-card-heading small,.territory-ranking li small,.report-summary-grid article span,.municipality-detail-grid span,.presentation-final-grid span,.comparison-municipalities small{color:var(--ink-3);font-size:var(--fs-meta)}.territory-map-card ul,.territory-ranking ol{margin:12px 0 0;padding:0;list-style:none}.territory-map-card li,.territory-ranking li{border-top:1px solid var(--line-subtle);font-size:var(--fs-meta);padding:8px 0}.territory-map-card li span{color:var(--ink-3);flex-shrink:0}.territory-map-card li>strong,.territory-map-card li .status-badge{text-align:right}.territory-ranking h4,.municipality-detail-sources h5{color:var(--ink);font:500 18px var(--font-display);margin:0 0 10px}.territory-ranking ol{gap:8px;display:grid}.report-summary-grid article strong,.municipality-detail-grid strong,.presentation-final-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,.presentation-final,.comparison-results{border:1px solid var(--ink)0f;background:var(--surface-muted);border-radius:14px;margin-top:16px;padding:18px}.municipality-detail-grid,.presentation-final-grid{margin-top:14px}.municipality-detail-grid small,.presentation-final-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}.presentation-final-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;display:flex}.presentation-final-note{color:var(--ink-3);font-size:var(--fs-meta)}.page-placeholder-actions{justify-content:center;margin-top:22px;display:flex}.page-placeholder-actions--start{justify-content:flex-start}.report-actions{flex-wrap:wrap;gap:8px;display:flex}.front-municipality-list{margin:15px 0 0}.front-municipality-list li{border-top:1px solid var(--line);grid-template-columns:minmax(160px,1.5fr) repeat(3,minmax(90px,1fr));align-items:center;gap:12px;padding:11px 0;display:grid}.front-municipality-list li>span{gap:3px;display:grid}.front-municipality-list li>span:not(:first-child){text-align:right}.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(--ink-2);stroke-width:1px;cursor:pointer;outline:none}.municipality-map-path[data-hovered=true]{fill:var(--line-strong)}.municipality-map-path.is-selected{fill:var(--surface-accent);stroke:var(--forest);stroke-width:3px;stroke-dasharray:5 2}.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,.front-summary-grid{grid-template-columns:repeat(2,1fr)}.catalog-grid,.import-layout,.front-management-layout,.page-placeholder-grid,.municipal-territorial-cards,.territory-map-grid,.report-summary-grid,.municipality-detail-grid,.presentation-final-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,.front-management-list li,.official-upload-form,.mapping-grid,.source-form,.front-summary-grid,.front-filter,.front-municipality-list li{grid-template-columns:1fr}.front-filter small{grid-column:auto}.territory-map-card-heading,.territory-ranking li,.front-management-actions,.front-form-actions,.municipality-detail-sources li,.presentation-final-actions{flex-direction:column;align-items:stretch}.front-municipality-list li>span:not(:first-child){text-align:left;grid-template-columns:auto 1fr}.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}}.catalog-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.catalog-page-grid .catalog-panel li{grid-template-columns:auto minmax(0,1fr) auto}.catalog-row-meta{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}@media (width<=980px){.catalog-summary-grid{grid-template-columns:1fr}}.padrones-summary-grid,.front-summary-grid-page{grid-template-columns:repeat(3,minmax(0,1fr))}.front-management-section--page{background:0 0;border-top:0;padding:0}@media (width<=980px){.padrones-summary-grid,.front-summary-grid-page{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)15}.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{background:var(--surface-accent);border-color:var(--forest)}.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}.import-layout{gap:var(--space-4);margin-top:var(--space-5);grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}.import-result{min-width:0;padding:var(--space-5);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-card)}.import-result-heading{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.import-empty{color:var(--ink-3);font-size:var(--fs-sm);line-height:var(--lh-body)}.import-file-evidence{margin:var(--space-3) 0 0;overflow-wrap:anywhere;color:var(--ink-2);font-family:var(--font-mono);font-size:var(--fs-meta)}.import-counts{gap:var(--space-2);margin-top:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(120px,1fr));display:grid}.import-counts>*{padding:var(--space-3);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-muted);font-size:var(--fs-meta)}.import-safe-note{margin:var(--space-3) 0 0;color:var(--ink-3);font-size:var(--fs-meta);line-height:var(--lh-body)}.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)}@media (width<=980px){.import-layout{grid-template-columns:1fr}}.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}
