:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color:#213547;background-color:#fff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}#root{max-width:1280px;margin:0 auto;padding:.5rem 2rem 2rem;text-align:center}@media (max-width: 768px){#root{padding:.5rem 1rem 2rem}}.filters{margin:0;padding:1.5rem;border-radius:16px;background:transparent;border:2px solid #e2e8f0;box-shadow:0 0 0 1px #0000000d;display:flex;flex-direction:column;gap:1rem;align-items:stretch;position:relative}.filters:before{content:"";position:absolute;top:-1px;left:-1px;right:-1px;bottom:-1px;border-radius:16px;padding:1px;background:linear-gradient(135deg,#f1f5f9,#e2e8f0,#f8fafc);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;-webkit-mask-composite:xor;pointer-events:none}.filters-title{margin:0 0 1rem;font-size:1.2em;font-weight:700;color:#1a1a1a;text-align:center}.filter-section{background:#00000008;border:1px solid rgba(0,0,0,.08);border-radius:12px;padding:1rem}.filter-group{display:flex;flex-direction:column;gap:1rem;align-items:center}.filter-label{font-weight:600;font-size:1.1em;color:#4a5568;text-align:center;margin-bottom:.5rem;letter-spacing:.025em}.municipi-select-container{display:flex;justify-content:center;width:100%}.municipi-select{padding:.75rem 1rem;border-radius:8px;border:1px solid rgba(0,0,0,.2);background:#0000000d;color:inherit;font-size:1rem;font-family:inherit;cursor:pointer;transition:all .2s ease;width:100%}.municipi-select:hover{border-color:#667eea;background:#667eea1a}.municipi-select:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 2px #667eea33}.municipi-select option{background:#fff;color:#000;padding:.5rem}.year-buttons{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr 1fr;gap:.75rem;width:100%}.year-button{padding:.6rem .8rem;border-radius:6px;border:1px solid rgba(0,0,0,.2);background:#0000000d;color:inherit;font-size:.9rem;font-family:inherit;font-weight:500;cursor:pointer;transition:all .2s ease;text-align:center}.year-button:hover{border-color:#667eea;background:#667eea1a;transform:translateY(-1px)}.year-button.active{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#667eea;color:#fff;box-shadow:0 4px 12px #667eea4d}.year-button:focus{outline:none;box-shadow:0 0 0 2px #667eea33}.unit-buttons{display:flex;flex-direction:column;gap:.75rem;width:100%}.unit-button{padding:.6rem 1rem;border-radius:6px;border:1px solid rgba(0,0,0,.2);background:#0000000d;color:inherit;font-size:.9rem;font-family:inherit;font-weight:500;cursor:pointer;transition:all .2s ease;text-align:center}.unit-button:hover{border-color:#667eea;background:#667eea1a;transform:translateY(-1px)}.unit-button.active{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#667eea;color:#fff;box-shadow:0 4px 12px #667eea4d}.unit-button:focus{outline:none;box-shadow:0 0 0 2px #667eea33}.municipi-select-react{width:100%}.municipi-select-react .react-select__control{border:1px solid rgba(0,0,0,.2);border-radius:8px;background:#fff;box-shadow:none;min-height:40px;transition:all .2s ease;width:100%}.municipi-select-react .react-select__control:hover{border-color:#667eea;background:#fff}.municipi-select-react .react-select__control--is-focused{border-color:#667eea;background:#fff;box-shadow:0 0 0 2px #667eea33}.municipi-select-react .react-select__control--is-focused:hover{border-color:#667eea}.municipi-select-react .react-select__placeholder{color:#718096;font-size:1rem}.municipi-select-react .react-select__single-value,.municipi-select-react .react-select__input-container{color:inherit;font-size:1rem}.municipi-select-react .react-select__menu{border-radius:8px;box-shadow:0 4px 12px #00000026;border:1px solid rgba(0,0,0,.1);width:100%;min-width:250px}.municipi-select-react .react-select__option{background:#fff;color:#1a1a1a;padding:8px 12px;cursor:pointer}.municipi-select-react .react-select__option:hover,.municipi-select-react .react-select__option--is-focused{background:#667eea1a;color:#1a1a1a}.municipi-select-react .react-select__option--is-selected{background:#667eea;color:#fff}.municipi-select-react .react-select__clear-indicator{color:#718096;cursor:pointer}.municipi-select-react .react-select__clear-indicator:hover{color:#e53e3e}.municipi-select-react .react-select__dropdown-indicator{color:#718096;cursor:pointer}.municipi-select-react .react-select__dropdown-indicator:hover{color:#667eea}.chart-section{margin-top:0;padding:1.5rem;border-radius:16px;background:transparent;border:2px solid #e2e8f0;box-shadow:0 0 0 1px #0000000d;position:relative}.chart-section:before{content:"";position:absolute;top:-1px;left:-1px;right:-1px;bottom:-1px;border-radius:16px;padding:1px;background:linear-gradient(135deg,#f1f5f9,#e2e8f0,#f8fafc);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;-webkit-mask-composite:xor;pointer-events:none}.chart-section h3{margin-top:0;margin-bottom:1rem;color:#1a1a1a;font-size:1.4em;text-align:center}.debug-notice{background:#ffc10726;border:1px solid rgba(255,193,7,.4);padding:.75rem;border-radius:6px;margin-bottom:1rem;font-size:.9em;font-weight:500;color:#856404}.debug-info{margin-top:1.5rem;padding:1rem;background:#0000001a;border-radius:6px;border:1px solid rgba(0,0,0,.1)}.debug-info h4{margin:0 0 .5rem;color:#667eea;font-size:1em}.debug-info pre{margin:0;font-size:.8em;color:#333;background:#0003;padding:.5rem;border-radius:4px;overflow-x:auto;white-space:pre-wrap}.no-data{text-align:center;padding:3rem 1rem;opacity:.7}.no-data p{margin:.5rem 0}.no-data-help{font-size:.9em;opacity:.6}.custom-tooltip{background:#fffffff2;border:1px solid rgba(0,0,0,.2);border-radius:8px;padding:.75rem;box-shadow:0 4px 12px #0000004d;color:#333}.tooltip-label{font-weight:700;margin:0 0 .5rem;color:#333;border-bottom:1px solid rgba(0,0,0,.2);padding-bottom:.25rem}.tooltip-item{margin:.25rem 0;font-size:.9em}.tooltip-total{margin:.5rem 0 0;font-weight:700;border-top:1px solid rgba(0,0,0,.2);padding-top:.25rem;color:#333}.external-legend{margin-top:.375rem}.chart-source{margin-top:1rem;text-align:center;font-size:.8em;color:#666;opacity:.8;line-height:1.3}.chart-source a{color:#667eea;text-decoration:none;transition:color .2s ease}.chart-source a:hover{color:#4c63d2;text-decoration:underline}.custom-legend{display:flex;flex-direction:column;align-items:center;gap:.25rem;margin:0}.legend-title{font-size:1em;font-weight:600;color:#333;margin-bottom:.1rem}.legend-items{display:flex;justify-content:center;align-items:center;gap:1.5rem;flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:.5rem;font-size:.9em;font-weight:500;color:#333}.legend-color-box{width:12px;height:12px;border-radius:2px;display:inline-block;border:1px solid rgba(0,0,0,.1)}@media (max-width: 768px){.chart-section{padding:1rem;margin-top:0}.chart-section h3{font-size:1.2em;margin-bottom:1rem}.external-legend{margin-top:1rem}.chart-source{margin-top:1.5rem;font-size:.75em}.custom-legend{gap:.75rem;flex-direction:column;align-items:center}.legend-items{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto;gap:.75rem .5rem;justify-items:center;align-items:center;width:100%;max-width:300px;padding:0 2rem}.legend-item{font-size:.85em;margin:0}.legend-item:nth-child(3){grid-column:1 / -1;justify-self:center}.legend-color-box{width:12px;height:12px}}@media (max-width: 375px){.external-legend{margin-top:.75rem}.chart-source{margin-top:1rem;font-size:.7em}.custom-legend{gap:.5rem}.legend-items{gap:.75rem .25rem;padding:0 1rem}.legend-item{font-size:.8em}}.app{width:100%}.app-header{padding:.5rem 1rem 1rem}.banner-image{width:100%;max-width:100%;height:auto;margin-bottom:1.5rem;border-radius:8px;object-fit:contain;display:block}.content-layout{display:flex;gap:2rem;align-items:flex-start}.filters-container{flex:0 0 auto;min-width:320px;max-width:400px}.chart-container{flex:1;min-width:0}@media (max-width: 768px){.app-header{padding:.25rem .25rem .5rem}.banner-image{margin-bottom:1rem}.content-layout{flex-direction:column;gap:1rem}.filters-container{max-width:100%;width:100%;order:1}.chart-container{width:100%;order:2;min-width:0;overflow-x:auto}}.app-header h1{font-size:3.2em;line-height:1.1;margin-bottom:1rem;color:#1a1a1a;font-weight:600}.app-header p{font-size:1.2em;margin:.5rem 0}.error{background:#dc35451a;border:1px solid rgba(220,53,69,.3);padding:1rem;border-radius:8px;color:#dc3545}.error-help{font-size:.9em;opacity:.8;margin-top:.5rem}
