*,:after,:before,::backdrop,::file-selector-button{box-sizing:border-box;margin:0;padding:0;border:0 solid}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;tab-size:4;font-family:--theme(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:--theme(--default-font-feature-settings,normal);font-variation-settings:--theme(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:--theme(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:--theme(--default-mono-font-feature-settings,normal);font-variation-settings:--theme(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea,::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;border-radius:0;background-color:transparent;opacity:1}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]),::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}@tailwind utilities;:root{--color-primary: #123163;--color-secondary: #4169E1;--color-accent: #4CAF50;--color-text: #333333;--color-background: #F5F5F5;--color-border: #DDDDDD;--color-alliance: #E8F5E9;--color-no-usar: #F5F5F5;--font-family: "Roboto", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-size-small: .875rem;--font-size-base: 1rem;--font-size-large: 1.125rem;--font-size-xl: 1.25rem;--spacing-xs: .25rem;--spacing-sm: 1px 2px;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--border-radius: 4px;--shadow: 0 2px 4px rgba(0, 0, 0, .1)}*{box-sizing:border-box;margin:0;padding:0}html,body{font-family:var(--font-family);background-color:var(--color-background);color:var(--color-text);line-height:1.5;width:100%;height:100%}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.2;margin-bottom:var(--spacing-md)}h1{font-size:2rem;color:#fff}.container{width:100%;max-width:1200px;margin:0 auto;padding:var(--spacing-lg)}.app-header{background-color:var(--color-primary);color:#fff;padding:var(--spacing-lg) var(--spacing-md);margin-bottom:var(--spacing-xl)}.app-title{font-size:1.75rem;margin:0;text-align:center}.card{background-color:#fff;border-radius:var(--border-radius);box-shadow:var(--shadow);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.btn{background-color:var(--color-primary);color:#fff;border:none;border-radius:var(--border-radius);padding:var(--spacing-sm) var(--spacing-md);cursor:pointer;font-size:var(--font-size-base);transition:background-color .2s}.btn:hover{background-color:var(--color-secondary)}.btn-secondary{background-color:#6c757d}.btn-secondary:hover{background-color:#5a6268}.button-link{transition:background .2s,filter .1s,box-shadow .2s;box-shadow:none;border:none;outline:none;cursor:pointer}.button-link:hover{filter:brightness(1.1);box-shadow:0 2px 8px #0002}.button-link:active{filter:brightness(.95);box-shadow:0 1px 4px #0003}.totals-container{display:flex;gap:24px;margin-top:24px;flex-wrap:wrap}.totals-card{background:#fff;border-radius:14px;box-shadow:0 2px 12px #0001;padding:20px 20px 14px;min-width:260px;flex:1 1 320px;max-width:350px;margin-bottom:16px;display:flex;flex-direction:column;align-items:stretch;overflow:hidden}.totals-card .totals-table-wrapper{width:100%;overflow-x:auto}.totals-table{width:100%;min-width:320px;border-collapse:separate;border-spacing:0;margin-top:8px;table-layout:fixed}.totals-table th,.totals-table td{padding:8px 10px;font-size:14px;text-align:center;vertical-align:middle;word-break:break-word}.totals-table th{background:#f5f6fa;color:#123163;font-weight:700;border-bottom:2px solid #e0e0e0;letter-spacing:.5px}.totals-table tr:not(:last-child) td{border-bottom:1px solid #f0f0f0}.totals-table td{background:transparent;min-width:40px}.totals-table tr td:first-child{text-align:left;font-weight:700;border-radius:6px;min-width:120px;max-width:180px;white-space:pre-line;word-break:break-word}.totals-table tr td[style*=background]{border-radius:6px;box-shadow:0 1px 4px #0001}.totals-table th,.totals-table td{padding:4px 6px;font-size:12px;text-align:center;vertical-align:middle;word-break:break-word}.totals-table th{font-size:12.5px}.totals-table tr td:first-child{min-width:90px;max-width:120px;padding:4px 6px}input.vote-input{background:#e7ebee!important;color:#222;border:1.5px solid #d1d5db;border-radius:6px;box-shadow:0 1px 4px #0001;padding:4px 6px;font-size:13px;width:60px;min-width:40px;max-width:80px;outline:none;transition:border-color .2s,box-shadow .2s,background .2s;text-align:center}input.vote-input:focus{border-color:#4f8cff;box-shadow:0 2px 8px #4f8cff22;background:#f0f4fa!important}@media (max-width: 1100px){.totals-container{flex-direction:column;gap:12px}.totals-card{max-width:100%;min-width:0}}@media (max-width: 768px){.container{padding:var(--spacing-md)}h1{font-size:1.75rem}}.electoral-grid{width:100%;border-collapse:collapse;font-size:var(--font-size-base);margin-bottom:var(--spacing-xl);box-shadow:var(--shadow);background-color:#fff}.electoral-grid th,.electoral-grid td{border:1px solid var(--color-border);padding:var(--spacing-sm);text-align:center}.electoral-grid th{background-color:red;color:#000;position:sticky;top:0;z-index:10;font-weight:600}.electoral-grid thead th{height:30px;vertical-align:middle}.electoral-grid th.position-header{background-color:var(--color-secondary)}.electoral-grid th.party-header,.electoral-grid td.party-cell{text-align:left;max-width:300px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.electoral-grid th.list-number,.electoral-grid td.order-number{width:60px;text-align:center;font-weight:600}.electoral-grid td.party-name{text-align:left;height:5vh}.electoral-grid tr.alliance-row{background-color:var(--color-alliance)}.electoral-grid tr.alliance-row td.party-cell{background-color:var(--color-accent);color:#fff;font-weight:500}.electoral-grid td.input-cell{padding:0;position:relative}.electoral-grid input.vote-input{width:100%;height:100%;padding:var(--spacing-sm);border:none;text-align:center;font-size:var(--font-size-base);background-color:transparent}.electoral-grid input.vote-input:focus{outline:2px solid var(--color-secondary)}.electoral-grid td.no-usar{background-color:var(--color-no-usar);font-weight:700;color:#222}.electoral-grid tr.totals-row{background-color:#f0f0f0;font-weight:600}.electoral-grid tr.totals-row td{border-top:2px solid var(--color-primary)}.electoral-grid tr.alliance-totals-row{background-color:#e3f2fd}.electoral-grid tr.non-alliance-totals-row{background-color:#fafafa}.electoral-grid .multi-header{border-bottom:1px solid rgba(255,255,255,.3)}.grid-container{overflow-x:auto;max-width:100%;margin-bottom:var(--spacing-lg)}.buttons-container{display:flex;gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.totals-container{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-lg);margin-top:var(--spacing-xl)}.totals-card{background-color:#fff;border-radius:var(--border-radius);box-shadow:var(--shadow);padding:var(--spacing-lg)}.totals-card h3{color:var(--color-primary);margin-bottom:var(--spacing-md);border-bottom:1px solid var(--color-border);padding-bottom:var(--spacing-sm)}.loading-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#ffffffb3;display:flex;align-items:center;justify-content:center;z-index:1000}.loading-spinner{width:50px;height:50px;border:5px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.error-message{color:#d32f2f;background-color:#ffebee;border-radius:var(--border-radius);padding:var(--spacing-md);margin-bottom:var(--spacing-lg);border-left:4px solid #d32f2f}.success-message{color:#2e7d32;background-color:#e8f5e9;border-radius:var(--border-radius);padding:var(--spacing-md);margin-bottom:var(--spacing-lg);border-left:4px solid #2e7d32}@media (max-width: 768px){.electoral-grid th,.electoral-grid td{padding:var(--spacing-xs);font-size:var(--font-size-small)}.electoral-grid th.party-header,.electoral-grid td.party-cell{max-width:150px}.electoral-grid th.list-number,.electoral-grid td.order-number{width:40px}.buttons-container{flex-direction:column}}.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}html,body{margin:0;width:100%;height:100%}
