@import"https://fonts.googleapis.com/css2?family=Raleway:wght@400;500;600;700&family=Montserrat:wght@400;500;600;700&display=swap";:root{--ds-bg: #f5f7fa;--ds-surface: #ffffff;--ds-primary: #0c1b3a;--ds-primary-light: #132d5e;--ds-accent: #42D3EC;--ds-accent-hover: #2bc4dd;--ds-text: #1a1a2e;--ds-text-muted: #6b7280;--ds-border: #e5e7eb;--ds-border-light: #f0f1f3;--ds-success: #10b981;--ds-success-bg: #ecfdf5;--ds-danger: #ef4444;--ds-danger-bg: #fef2f2;--ds-warning: #f59e0b;--ds-info: #3b82f6;--ds-info-bg: #eff6ff;--ds-radius: 8px;--ds-radius-sm: 6px;--ds-radius-lg: 12px;--ds-shadow-sm: 0 1px 3px rgba(0,0,0,.06);--ds-shadow-md: 0 4px 12px rgba(0,0,0,.08);--ds-shadow-lg: 0 10px 30px rgba(0,0,0,.12);--ds-font: "Raleway", -apple-system, sans-serif;--ds-transition: .2s ease}.epci-header,.interloc-header,.admin-enums-header,.ref-header,.agents-header,.audit-header,.communes-epci-header,.export-panel h2{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;gap:16px;flex-wrap:wrap}.epci-header h2,.interloc-header h2,.admin-enums-header h2,.ref-header h2,.agents-header h2,.audit-header h2{display:flex;align-items:center;gap:10px;font-family:var(--ds-font);font-size:20px;font-weight:700;color:var(--ds-primary);margin:0}.epci-table-container,.interloc-table-container,.enum-table-container,.ref-table-container,.agents-table-container,.audit-table-container,.communes-epci-table-container{background:var(--ds-surface);border-radius:var(--ds-radius-lg);box-shadow:var(--ds-shadow-sm);overflow:hidden}.users-table,.epci-table,.interloc-table,.enum-table,.ref-table,.agents-table,.audit-table,.communes-epci-table{width:100%;border-collapse:collapse;font-size:13.5px;font-family:var(--ds-font)}.users-table thead tr,.epci-table thead tr,.interloc-table thead tr,.enum-table thead tr,.ref-table thead tr,.agents-table thead tr,.audit-table thead tr,.communes-epci-table thead tr{background:var(--ds-primary);color:#fff}.users-table th,.epci-table th,.interloc-table th,.enum-table th,.ref-table th,.agents-table th,.audit-table th,.communes-epci-table th{padding:11px 16px;text-align:left;font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.users-table td,.epci-table td,.interloc-table td,.enum-table td,.ref-table td,.agents-table td,.audit-table td,.communes-epci-table td{padding:10px 16px;border-bottom:1px solid var(--ds-border-light);color:var(--ds-text)}.users-table tbody tr:hover,.epci-table tbody tr:hover,.interloc-table tbody tr:hover,.enum-table tbody tr:hover,.ref-table tbody tr:hover,.agents-table tbody tr:hover,.audit-table tbody tr:hover,.communes-epci-table tbody tr:hover{background:#f8fafc}.modal-overlay{position:fixed;inset:0;background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:2000;padding:20px}.modal-content{background:var(--ds-surface);border-radius:var(--ds-radius-lg);box-shadow:var(--ds-shadow-lg);width:100%;max-width:640px;max-height:85vh;display:flex;flex-direction:column;animation:modalIn .25s ease-out}@keyframes modalIn{0%{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{display:flex;align-items:center;gap:12px;padding:14px 20px;border-bottom:1px solid var(--ds-border);background:var(--ds-surface);border-radius:var(--ds-radius-lg) var(--ds-radius-lg) 0 0;flex-shrink:0;position:sticky;top:0;z-index:1;box-shadow:0 2px 6px #0000000a}.modal-header h3{margin:0;font-family:var(--ds-font);font-size:15px;font-weight:700;color:var(--ds-primary);flex:1}.modal-header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.modal-content form,.modal-content>div:not(.modal-header):not(.modal-actions){overflow-y:auto;flex:1;padding:0}.btn-close-modal{background:none;border:none;cursor:pointer;color:var(--ds-text-muted);padding:4px;border-radius:var(--ds-radius-sm);transition:all var(--ds-transition)}.btn-close-modal:hover{background:var(--ds-border-light);color:var(--ds-danger)}.modal-actions{display:none!important}.modal-header-actions .btn-cancel{padding:7px 14px!important;font-size:12.5px!important;gap:5px!important}.modal-header-actions button[type=submit],.modal-header-actions .btn-save-epci,.modal-header-actions .btn-save-interloc,.modal-header-actions .btn-save-user,.modal-header-actions .btn-save-ref,.modal-header-actions .btn-save-agent{padding:7px 16px!important;font-size:12.5px!important;gap:5px!important}.modal-content form{padding:20px 24px;overflow-y:auto;flex:1}.btn-add-epci,.btn-add-interloc,.btn-add-user,.btn-add-ref,.btn-add-agent,.btn-add-enum-row{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;background:var(--ds-primary);color:#fff;border:none;border-radius:var(--ds-radius);font-family:var(--ds-font);font-size:13px;font-weight:600;cursor:pointer;transition:all var(--ds-transition)}.btn-add-epci:hover,.btn-add-interloc:hover,.btn-add-user:hover,.btn-add-ref:hover,.btn-add-agent:hover,.btn-add-enum-row:hover{background:var(--ds-primary-light);transform:translateY(-1px);box-shadow:var(--ds-shadow-md)}.btn-save-epci,.btn-save-interloc,.btn-save-user,.btn-save-ref,.btn-save-agent{display:inline-flex;align-items:center;gap:6px;padding:9px 22px;background:var(--ds-accent);color:var(--ds-primary);border:none;border-radius:var(--ds-radius);font-family:var(--ds-font);font-size:13.5px;font-weight:700;cursor:pointer;transition:all var(--ds-transition)}.btn-save-epci:hover,.btn-save-interloc:hover,.btn-save-user:hover,.btn-save-ref:hover,.btn-save-agent:hover{background:var(--ds-accent-hover);transform:translateY(-1px);box-shadow:0 4px 12px #42d3ec4d}.btn-cancel{display:inline-flex;align-items:center;gap:6px;padding:9px 22px;background:transparent;color:var(--ds-text-muted);border:1.5px solid var(--ds-border);border-radius:var(--ds-radius);font-family:var(--ds-font);font-size:13.5px;font-weight:600;cursor:pointer;transition:all var(--ds-transition)}.btn-cancel:hover{background:#f9fafb;border-color:#c0c5cc;color:var(--ds-text)}.action-buttons{display:flex;gap:4px}.btn-edit,.btn-delete-epci,.btn-delete-interloc,.btn-delete-user,.btn-delete-ref,.btn-delete-agent,.btn-enum-edit,.btn-enum-delete,.btn-enum-save,.btn-enum-cancel{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:var(--ds-radius-sm);cursor:pointer;transition:all var(--ds-transition);background:transparent;color:var(--ds-text-muted)}.btn-edit:hover,.btn-enum-edit:hover{background:var(--ds-info-bg);color:var(--ds-info)}.btn-delete-epci:hover,.btn-delete-interloc:hover,.btn-delete-user:hover,.btn-delete-ref:hover,.btn-delete-agent:hover,.btn-enum-delete:hover{background:var(--ds-danger-bg);color:var(--ds-danger)}.btn-enum-save:hover{background:var(--ds-success-bg);color:var(--ds-success)}.btn-enum-cancel:hover{background:var(--ds-danger-bg);color:var(--ds-danger)}.modal-content input[type=text],.modal-content input[type=email],.modal-content input[type=password],.modal-content input[type=number],.modal-content input[type=date],.modal-content input[type=tel],.modal-content select,.modal-content textarea,.commune-form input[type=text],.commune-form input[type=email],.commune-form input[type=number],.commune-form input[type=date],.commune-form select{width:100%;padding:9px 12px;border:1.5px solid var(--ds-border);border-radius:var(--ds-radius-sm);font-family:var(--ds-font);font-size:13.5px;color:var(--ds-text);background:var(--ds-surface);transition:border-color var(--ds-transition),box-shadow var(--ds-transition);box-sizing:border-box}.modal-content input:focus,.modal-content select:focus,.modal-content textarea:focus,.commune-form input:focus,.commune-form select:focus{outline:none;border-color:var(--ds-accent);box-shadow:0 0 0 3px #42d3ec26}.modal-content input:invalid:not(:focus):not(:placeholder-shown),.modal-content select:invalid:not(:focus),.commune-form input:invalid:not(:focus):not(:placeholder-shown),.commune-form select:invalid:not(:focus){border-color:var(--ds-danger);box-shadow:0 0 0 2px #ef44441a}.modal-content label .required-star,.commune-form label .required-star{color:var(--ds-danger);margin-left:2px}.input-formatted{position:relative}.input-formatted .input-hint{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:10px;color:#b0b8c4;font-family:var(--ds-font);pointer-events:none}.modal-content label,.commune-form label{display:block;font-family:var(--ds-font);font-size:12px;font-weight:600;color:var(--ds-text-muted);margin-bottom:5px;text-transform:uppercase;letter-spacing:.3px}.modal-content input[type=checkbox]{accent-color:var(--ds-accent)}.form-section{padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid var(--ds-border-light)}.form-section:last-of-type{border-bottom:none;margin-bottom:0}.form-section-title{font-family:var(--ds-font);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--ds-text-muted);margin:0 0 12px}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}.form-group{margin-bottom:12px}.badge-oui,.enum-badge-actif,.badge-creation{display:inline-block;padding:3px 10px;border-radius:99px;font-size:11px;font-weight:600;font-family:var(--ds-font);background:var(--ds-success-bg);color:#059669}.badge-non,.enum-badge-inactif,.row-inactive td:first-child:before{display:inline-block;padding:3px 10px;border-radius:99px;font-size:11px;font-weight:600;font-family:var(--ds-font);background:#f3f4f6;color:#9ca3af}.badge-modification{display:inline-block;padding:3px 10px;border-radius:99px;font-size:11px;font-weight:600;font-family:var(--ds-font);background:var(--ds-info-bg);color:#2563eb}.role-badge{display:inline-block;padding:3px 10px;border-radius:99px;font-size:11px;font-weight:600;font-family:var(--ds-font)}.role-admin{background:#fef3c7;color:#d97706}.role-user{background:var(--ds-info-bg);color:#2563eb}.role-lecteur{background:#f3f4f6;color:#6b7280}.role-none{background:#f9fafb;color:#d1d5db}.commune-count-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;background:var(--ds-success-bg);color:#059669;border-radius:99px;font-size:12px;font-weight:600}.enum-tabs,.ref-tabs{display:flex;gap:4px;margin-bottom:20px;flex-wrap:wrap;background:var(--ds-surface);padding:4px;border-radius:var(--ds-radius);box-shadow:var(--ds-shadow-sm)}.enum-tab,.ref-tab{padding:8px 16px;border:none;border-radius:var(--ds-radius-sm);background:transparent;font-family:var(--ds-font);font-size:12.5px;font-weight:600;color:var(--ds-text-muted);cursor:pointer;transition:all var(--ds-transition)}.enum-tab:hover,.ref-tab:hover{background:#f1f5f9;color:var(--ds-primary)}.enum-tab-active,.ref-tab-active,.enum-tab.enum-tab-active,.ref-tab.ref-tab-active{background:var(--ds-primary)!important;color:#fff!important}.multi-select-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:6px}.multi-select-item{display:flex!important;align-items:center;gap:8px;padding:8px 12px;background:var(--ds-surface);border:1.5px solid var(--ds-border);border-radius:var(--ds-radius-sm);cursor:pointer;transition:all var(--ds-transition);font-size:13px!important;font-weight:500!important;font-family:var(--ds-font)}.multi-select-item:hover{border-color:var(--ds-accent);background:#42d3ec0d}.multi-select-item input[type=checkbox]{width:15px;height:15px;cursor:pointer;accent-color:var(--ds-accent);flex-shrink:0}.multi-select-item input[type=checkbox]:checked+span{color:var(--ds-primary);font-weight:600}.epci-error,.interloc-error,.admin-enums-error,.ref-error,.agents-error,.audit-error,.form-error,.communes-epci-error{background:var(--ds-danger-bg);color:var(--ds-danger);padding:12px 16px;border-radius:var(--ds-radius);border-left:4px solid var(--ds-danger);margin-bottom:16px;font-size:13px;font-family:var(--ds-font)}.success-message{background:var(--ds-success-bg);color:#059669;padding:12px 16px;border-radius:var(--ds-radius);border-left:4px solid var(--ds-success);margin-bottom:16px;font-size:13px;font-family:var(--ds-font);font-weight:600;animation:fadeIn .3s ease-out}.epci-loading,.interloc-loading,.admin-enums-loading,.ref-loading,.agents-loading,.audit-loading,.communes-epci-loading{text-align:center;padding:60px 20px;font-size:15px;color:var(--ds-text-muted);font-family:var(--ds-font)}.interloc-placeholder,.audit-empty,.communes-epci-empty,.epci-empty{text-align:center;padding:48px 20px;color:var(--ds-text-muted);font-family:var(--ds-font)}.input-readonly{background:#f8f9fa!important;color:#9ca3af!important;cursor:not-allowed!important;border-color:var(--ds-border-light)!important}.input-readonly:focus{box-shadow:none!important;border-color:var(--ds-border-light)!important}.audit-section{background:#fafbfc;border-top:1px dashed var(--ds-border);margin-top:16px;padding-top:12px}.audit-section h3,.audit-section h4{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:#b0b8c4;margin-bottom:8px}.interloc-filters,.audit-filters{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.btn-filter{padding:6px 14px;border:1.5px solid var(--ds-border);border-radius:var(--ds-radius-sm);background:var(--ds-surface);font-family:var(--ds-font);font-size:12.5px;font-weight:600;color:var(--ds-text-muted);cursor:pointer;transition:all var(--ds-transition)}.btn-filter:hover{border-color:var(--ds-accent);color:var(--ds-primary)}.btn-filter.active{background:var(--ds-primary);color:#fff;border-color:var(--ds-primary)}.interloc-pagination,.audit-load-more{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:20px;padding:12px 0}.btn-page,.btn-load-more{padding:7px 18px;background:var(--ds-surface);color:var(--ds-primary);border:1.5px solid var(--ds-border);border-radius:var(--ds-radius-sm);font-family:var(--ds-font);font-size:13px;font-weight:600;cursor:pointer;transition:all var(--ds-transition)}.btn-page:hover,.btn-load-more:hover{background:var(--ds-primary);color:#fff;border-color:var(--ds-primary)}.btn-page:disabled{opacity:.35;cursor:not-allowed}.btn-page:disabled:hover{background:var(--ds-surface);color:var(--ds-primary)}.page-info{font-size:13px;color:var(--ds-text-muted);font-weight:600;font-family:var(--ds-font)}.interloc-search-bar{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--ds-surface);border:1.5px solid var(--ds-border);border-radius:var(--ds-radius);min-width:280px;transition:border-color var(--ds-transition)}.interloc-search-bar:focus-within{border-color:var(--ds-accent);box-shadow:0 0 0 3px #42d3ec1f}.interloc-search-bar input{border:none!important;padding:0!important;font-size:14px;width:100%;outline:none;box-shadow:none!important;background:transparent;font-family:var(--ds-font)}.commune-row-clickable,.commune-count-link{cursor:pointer;transition:background var(--ds-transition)}.commune-count-link:hover{background:#d1fae5;transform:scale(1.05)}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.epci-page,.interloc-page,.admin-enums-page,.ref-page,.agents-page,.audit-page,.communes-epci-page,.export-panel{animation:fadeIn .3s ease-out}@media(max-width:768px){.modal-overlay{padding:0}.modal-content{width:100%;max-width:100%;height:100vh;max-height:100vh;margin:0;border-radius:0}.modal-header{border-radius:0}.users-table th:last-child,.users-table td:last-child,.interloc-table th:last-child,.interloc-table td:last-child,.epci-table th:last-child,.epci-table td:last-child,.ref-table th:last-child,.ref-table td:last-child,.enum-table th:last-child,.enum-table td:last-child,.agents-table th:last-child,.agents-table td:last-child{position:sticky;right:0;z-index:2;box-shadow:-6px 0 8px -4px #0000001f}.users-table thead th:last-child,.interloc-table thead th:last-child,.epci-table thead th:last-child,.ref-table thead th:last-child,.enum-table thead th:last-child,.agents-table thead th:last-child{background:var(--ds-surface, #fff)}.users-table tbody td:last-child,.interloc-table tbody td:last-child,.epci-table tbody td:last-child,.ref-table tbody td:last-child,.enum-table tbody td:last-child,.agents-table tbody td:last-child{background:var(--ds-surface, #fff)}.users-table tbody tr:hover td:last-child,.interloc-table tbody tr:hover td:last-child,.epci-table tbody tr:hover td:last-child,.ref-table tbody tr:hover td:last-child,.enum-table tbody tr:hover td:last-child,.agents-table tbody tr:hover td:last-child{background:#f8fafc}.form-row,.multi-select-grid{grid-template-columns:1fr}.enum-tabs,.ref-tabs{flex-wrap:wrap}.interloc-search-bar{min-width:unset;width:100%}}.enum-inline-input{padding:6px 10px;border:1.5px solid var(--ds-accent);border-radius:var(--ds-radius-sm);font-size:13px;font-family:var(--ds-font);width:100%;box-sizing:border-box}.enum-cell-clickable{cursor:pointer;padding:2px 4px;border-radius:4px;transition:background var(--ds-transition)}.enum-cell-clickable:hover{background:#42d3ec1a}.enum-checkbox{accent-color:var(--ds-accent);width:16px;height:16px}.enum-new-row{background:#42d3ec0a}.enum-new-id{color:var(--ds-text-muted);font-style:italic}.no-data-text{color:var(--ds-text-muted);font-size:13px;font-style:italic}.spinner-icon{animation:spin 1s linear infinite;display:inline-block}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.toggle-switch{position:relative;display:inline-block;width:36px;height:20px;cursor:pointer;flex-shrink:0}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;inset:0;background:#ccc;border-radius:20px;transition:.2s}.toggle-slider:before{content:"";position:absolute;width:16px;height:16px;left:2px;bottom:2px;background:#fff;border-radius:50%;transition:.2s}.toggle-switch input:checked+.toggle-slider{background:var(--ds-primary, #3b82f6)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(16px)}@media(max-width:768px){input,select,textarea{font-size:16px}}:root{--primary-blue: #0c1b3a;--accent-blue: #3b82f6;--accent-cyan: #42D3EC;--dark-gray: #1a1a2e;--medium-gray: #6b7280;--light-gray: #e5e7eb;--text-primary: #1a1a2e;--text-secondary: #6b7280;--background-white: #f5f7fa;font-family:Raleway,Sen,system-ui,sans-serif;line-height:1.5;font-weight:400;font-size:16px;color-scheme:light;color:var(--text-primary);background-color:var(--background-white);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}#root{width:100%;min-height:100vh}a{font-weight:500;color:var(--accent-blue);text-decoration:inherit;transition:color .25s}a:hover{color:var(--primary-blue)}body{margin:0;padding:0;min-width:320px;min-height:100vh;width:100%;overflow-x:hidden;background-color:var(--background-white);color:var(--text-primary)}h1{font-size:2.625em;line-height:1.2;font-weight:700;color:var(--primary-blue);margin:0}h2{font-size:2.25em;font-weight:600;color:var(--primary-blue);margin:0}h3{font-size:1.25em;font-weight:600;color:var(--dark-gray);margin:0}button{border-radius:8px;border:none;padding:0;font-size:inherit;font-weight:500;font-family:inherit;background:transparent;color:inherit;cursor:pointer;transition:all .2s}button:hover{background-color:var(--primary-blue);transform:translateY(-1px);box-shadow:0 4px 8px #0000001a}button:focus,button:focus-visible{outline:2px solid var(--accent-blue);outline-offset:2px}button:disabled{opacity:.6;cursor:not-allowed}.sidebar-app-selector{padding:12px;border-bottom:1px solid rgba(255,255,255,.08)}.app-selector{position:relative}.app-selector-btn{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:8px;cursor:pointer;font-family:Raleway,sans-serif;font-size:13px;font-weight:600;color:#ffffffbf;transition:all .2s}.app-selector-btn:hover{background:#ffffff1f;color:#fff;border-color:#fff3}.app-selector-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:#42d3ec33;border-radius:6px;color:#42d3ec;flex-shrink:0}.app-selector-label{flex:1;text-align:left}.app-selector-popup{position:absolute;top:calc(100% + 6px);left:0;right:0;background:#fff;border-radius:10px;box-shadow:0 12px 40px #00000040;padding:6px;z-index:1500;animation:appPopIn .15s ease-out}@keyframes appPopIn{0%{opacity:0;transform:translateY(-6px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.app-card{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;text-decoration:none;color:#1a1a2e;transition:all .15s;cursor:pointer}.app-card:hover{background:#f0f7ff}.app-card.active{background:#42d3ec1f;cursor:default}.app-card.active .app-card-name{color:#0c1b3a}.app-card.active .app-card-icon{background:#42d3ec33;color:#0c1b3a}.app-card.disabled{opacity:.35;cursor:not-allowed;pointer-events:none}.app-card-icon{width:34px;height:34px;display:flex;align-items:center;justify-content:center;background:#f1f5f9;border-radius:8px;flex-shrink:0;color:#6b7280}.app-card:hover .app-card-icon{background:#e0ecff;color:#2563eb}.app-card-info{display:flex;flex-direction:column;gap:1px;overflow:hidden}.app-card-name{font-family:Raleway,sans-serif;font-size:13px;font-weight:700;color:#0c1b3a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-card-desc{font-family:Raleway,sans-serif;font-size:11px;color:#9ca3af}@media(max-width:768px){.sidebar-app-selector{padding:8px 6px}.app-selector-btn{justify-content:center;padding:8px}.app-selector-label{display:none}.app-selector-popup{left:-4px;right:auto;width:220px}}.sidebar{width:240px;min-width:240px;height:calc(100vh - 64px);background:linear-gradient(180deg,#0c1b3a,#132d5e);display:flex;flex-direction:column;position:sticky;top:64px;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.15) transparent}.sidebar::-webkit-scrollbar{width:4px}.sidebar::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:4px}.sidebar-nav{flex:1;padding:16px 0;display:flex;flex-direction:column;gap:4px}.sidebar-section{padding:0 12px;margin-bottom:8px}.sidebar-section-label{display:flex;align-items:center;gap:6px;padding:8px 12px 6px;font-family:Raleway,sans-serif;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:#ffffff59}.sidebar-link{display:flex;align-items:center;gap:12px;padding:10px 14px;margin:1px 0;border-radius:8px;color:#ffffffa6;text-decoration:none;font-family:Raleway,sans-serif;font-size:13.5px;font-weight:500;transition:all .2s ease;position:relative}.sidebar-link:hover{color:#fff;background:#ffffff14}.sidebar-link.active{color:#fff;background:#42d3ec26;font-weight:600}.sidebar-link.active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:20px;background:#42d3ec;border-radius:0 4px 4px 0}.sidebar-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:6px;background:#ffffff0f;flex-shrink:0;transition:background .2s}.sidebar-link:hover .sidebar-icon,.sidebar-link.active .sidebar-icon{background:#42d3ec33}.sidebar-text{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-footer{padding:12px;border-top:1px solid rgba(255,255,255,.08)}.sidebar-user-badge{display:flex;align-items:center;gap:10px;padding:10px;border-radius:8px;background:#ffffff0d}.sidebar-user-avatar{width:34px;height:34px;border-radius:8px;background:linear-gradient(135deg,#42d3ec,#1e88e5);color:#fff;display:flex;align-items:center;justify-content:center;font-family:Raleway,sans-serif;font-size:14px;font-weight:700;flex-shrink:0}.sidebar-user-info{display:flex;flex-direction:column;overflow:hidden}.sidebar-user-name{font-family:Raleway,sans-serif;font-size:12.5px;font-weight:600;color:#ffffffd9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user-role{font-family:Raleway,sans-serif;font-size:11px;font-weight:500;color:#42d3eccc}.sidebar-backdrop{display:none}@media(max-width:768px){.sidebar{position:fixed;top:58px;left:0;width:240px;min-width:240px;height:calc(100vh - 58px);transform:translate(-100%);transition:transform .25s ease;z-index:1300;box-shadow:2px 0 16px #00000040}.sidebar.open{transform:translate(0)}.sidebar-backdrop{display:block;position:fixed;inset:58px 0 0;background:#0006;z-index:1299}}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#42D3EC 0%,var(--primary-blue) 100%);padding:20px}.login-container{background:#fff;border-radius:12px;box-shadow:0 10px 40px #00000026;width:100%;max-width:450px;padding:40px;animation:fadeInUp .5s ease-out}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.login-header{text-align:center;margin-bottom:40px}.login-logo{width:150px;height:auto;margin-bottom:20px}.login-header h1{font-family:Raleway,sans-serif;font-size:2em;font-weight:700;color:var(--primary-blue);margin:0 0 10px}.login-subtitle{font-family:Raleway,sans-serif;font-size:1em;color:var(--text-secondary);margin:0}.login-form{display:flex;flex-direction:column;gap:20px}.login-error{background:#fee;border:1px solid #fcc;border-left:4px solid #d32f2f;color:#d32f2f;padding:12px 15px;border-radius:6px;display:flex;align-items:center;gap:10px;font-size:14px}.error-icon{font-size:18px;font-weight:700;width:24px;height:24px;border-radius:50%;background:#d32f2f;color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0}.login-form .form-group{display:flex;flex-direction:column;gap:8px}.login-form label{font-family:Raleway,sans-serif;font-size:14px;font-weight:600;color:var(--dark-gray)}.login-form input{padding:12px 16px;border:2px solid var(--light-gray);border-radius:8px;font-size:15px;font-family:Raleway,sans-serif;transition:all .3s;background:#fff}.login-form input:focus{outline:none;border-color:var(--accent-blue);box-shadow:0 0 0 3px #4a8eff1a}.login-form input:disabled{background:#f5f5f5;cursor:not-allowed}.btn-login{padding:14px 20px;background:var(--accent-blue);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;font-family:Raleway,sans-serif;cursor:pointer;transition:all .3s;margin-top:10px;box-shadow:0 4px 12px #4a8eff4d}.btn-login:hover:not(:disabled){background:var(--primary-blue);transform:translateY(-2px);box-shadow:0 6px 20px #4a8eff66}.btn-login:disabled{background:var(--light-gray);cursor:not-allowed;box-shadow:none}.login-footer{text-align:center;margin-top:30px;padding-top:20px;border-top:1px solid #e9ecef}.login-footer p{font-family:Raleway,sans-serif;font-size:13px;color:var(--text-secondary);margin:0}.price-card{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000000f;border-top:4px solid var(--accent-blue);text-align:center;transition:all .2s;min-width:180px;flex:1}.price-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #0000001a}.price-card-label{font-size:14px;font-weight:600;color:var(--dark-gray);margin-bottom:12px;text-transform:uppercase;letter-spacing:.5px}.price-card-value{font-size:2.2em;font-weight:700;margin-bottom:4px}.price-card-unit{font-size:13px;color:var(--text-secondary);margin-bottom:8px}.price-card-diff{font-size:15px;font-weight:700;margin-bottom:8px}.price-card-date{font-size:12px;color:var(--text-secondary)}.dashboard{animation:fadeIn .4s ease-out}.dashboard h2{margin-bottom:4px}.dashboard-subtitle{color:var(--text-secondary);margin:0 0 24px}.dashboard-cards{display:flex;gap:20px;margin-bottom:24px;flex-wrap:wrap}.dashboard-filters{margin-bottom:24px}.dashboard-chart{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000000f}.loading-placeholder{text-align:center;padding:80px 20px;color:var(--text-secondary);font-size:16px}.price-table-wrapper{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f;overflow:hidden}.price-table-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #e9ecef}.price-table-header h3{margin:0}.btn-export{padding:8px 16px;background:var(--accent-blue);color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s}.btn-export:hover{background:var(--primary-blue);transform:translateY(-1px)}.price-table-scroll{overflow-x:auto}.price-table{width:100%;border-collapse:collapse;font-size:14px}.price-table thead th{padding:12px 16px;text-align:left;font-weight:600;color:var(--primary-blue);border-bottom:2px solid var(--accent-cyan);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.price-table thead th:hover{background:#f8f9fa}.price-table tbody td{padding:10px 16px;border-bottom:1px solid #f0f0f0}.price-table tbody tr:hover{background:#f8f9fa}.price-cell{font-weight:600;color:var(--primary-blue)}.empty-row{text-align:center;color:var(--text-secondary);padding:40px 16px!important}.badge{padding:3px 10px;border-radius:12px;font-size:12px;font-weight:600}.badge-power{background:#e8f0fe;color:#1a73e8}.badge-naturalgas{background:#fef3e0;color:#e65100}.maturity-cell{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:var(--primary-blue);white-space:nowrap}.maturity-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;display:inline-block}.date-range-picker{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:16px 20px;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f}.date-presets{display:flex;gap:8px}.btn-preset{padding:6px 14px;background:#f0f0f0;color:var(--dark-gray);border:1px solid #e0e0e0;border-radius:20px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s}.btn-preset:hover{background:var(--accent-cyan);color:var(--primary-blue);border-color:var(--accent-cyan);transform:none;box-shadow:none}.date-inputs{display:flex;align-items:center;gap:8px}.date-inputs input{padding:8px 12px;border:2px solid var(--light-gray);border-radius:8px;font-family:Raleway,sans-serif;font-size:14px}.date-inputs input:focus{outline:none;border-color:var(--accent-blue)}.date-sep{color:var(--text-secondary);font-weight:600}.energy-page{animation:fadeIn .4s ease-out}.energy-page h2{margin-bottom:4px}.page-subtitle{color:var(--text-secondary);margin:0 0 24px}.page-header-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;gap:20px;flex-wrap:wrap}.page-header-row h2{margin-bottom:4px}.page-header-row .page-subtitle{margin-bottom:0}.page-header-cards{display:flex;gap:12px;flex-shrink:0}.page-header-cards .price-card{padding:10px 18px;min-width:auto;border-radius:10px;border-top-width:3px}.page-header-cards .price-card-label{font-size:12px;margin-bottom:4px}.page-header-cards .price-card-value{font-size:1.4em;margin-bottom:2px}.page-header-cards .price-card-unit{font-size:11px;margin-bottom:4px}.page-header-cards .price-card-diff{font-size:13px;margin-bottom:4px}.page-header-cards .price-card-date{font-size:11px}.page-header-cards .price-card:hover{transform:none}.controls-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.controls-row-label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--text-secondary);margin-right:4px}.toggle-group{display:flex;gap:0;border-radius:8px;overflow:hidden;border:1.5px solid #d0d7de}.toggle-btn{padding:7px 16px;background:#fff;color:var(--primary-blue);border:none;border-right:1px solid #d0d7de;border-radius:0;font-size:13px;font-weight:600;font-family:Raleway,sans-serif;cursor:pointer;transition:all .2s}.toggle-btn:last-child{border-right:none}.toggle-btn:hover{background:#f0f4f8;transform:none;box-shadow:none}.toggle-btn.active{background:var(--primary-blue);color:#fff}.chip-group{display:flex;gap:6px;flex-wrap:wrap}.chip{padding:6px 14px;background:#fff;color:var(--primary-blue);border:1.5px solid #d0d7de;border-radius:999px;font-size:12.5px;font-weight:600;font-family:Raleway,sans-serif;cursor:pointer;transition:all .15s}.chip:hover{background:#f0f4f8;transform:none;box-shadow:none}.chip.active{background:var(--primary-blue);color:#fff;border-color:var(--primary-blue)}.maturity-checkboxes{display:flex;gap:8px;flex-wrap:wrap}.maturity-check{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;background:#fff;border:1.5px solid #d0d7de;border-radius:8px;cursor:pointer;transition:all .15s;font-family:Raleway,sans-serif;font-size:13px;font-weight:600;color:var(--primary-blue);-webkit-user-select:none;user-select:none}.maturity-check:hover{background:#f0f4f8}.maturity-check.checked{background:#42d3ec1f;border-color:var(--accent-cyan)}.maturity-check.disabled{opacity:.45;cursor:not-allowed}.maturity-check input{accent-color:var(--accent-cyan);width:14px;height:14px;cursor:pointer}.maturity-check .maturity-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.delivery-select{padding:7px 14px;border:1.5px solid #d0d7de;border-radius:8px;font-size:13px;font-weight:600;color:var(--primary-blue);background:#fff;cursor:pointer;font-family:Raleway,sans-serif}.delivery-select:focus{outline:none;border-color:var(--accent-cyan)}.page-chart{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000000f;margin:16px 0 24px}.loading-placeholder,.chart-empty{text-align:center;padding:80px 20px;color:var(--text-secondary)}.admin-page{animation:fadeIn .4s ease-out}.admin-page h2{margin-bottom:4px}.admin-subtitle{color:var(--text-secondary);margin:0 0 24px}.admin-actions{display:flex;gap:12px;margin-bottom:20px}.btn-trigger{padding:12px 24px;background:var(--accent-blue);color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s}.btn-trigger:hover:not(:disabled){background:var(--primary-blue);transform:translateY(-1px)}.btn-trigger:disabled{opacity:.6}.btn-refresh{padding:12px 24px;background:transparent;color:var(--dark-gray);border:2px solid var(--light-gray);border-radius:8px;font-size:15px;font-weight:600;cursor:pointer}.btn-refresh:hover{border-color:var(--accent-blue);color:var(--accent-blue);transform:none;box-shadow:none}.admin-message{padding:12px 16px;background:#e8f5e9;border-radius:8px;color:#2e7d32;font-size:14px;margin-bottom:20px}.admin-table-wrapper{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f;overflow:hidden}.admin-table-wrapper h3{padding:16px 20px;margin:0;border-bottom:1px solid #e9ecef}.admin-table{width:100%;border-collapse:collapse;font-size:14px}.admin-table thead th{padding:12px 16px;text-align:left;font-weight:600;color:var(--primary-blue);border-bottom:2px solid var(--accent-cyan)}.admin-table tbody td{padding:10px 16px;border-bottom:1px solid #f0f0f0}.admin-table tbody tr:hover{background:#f8f9fa}.status-badge{padding:3px 10px;border-radius:12px;color:#fff;font-size:12px;font-weight:600}.error-cell{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#f44336;font-size:12px}.app{min-height:100vh;width:100%;display:flex;flex-direction:column;background:#f5f7fa}.app-header{background:#fff;height:64px;display:flex;align-items:center;padding:0 24px;box-shadow:0 1px 3px #00000014;border-bottom:2px solid #42D3EC;position:sticky;top:0;z-index:1200}.header-content{width:100%;display:flex;align-items:center;gap:20px}.header-menu-toggle{display:none;align-items:center;justify-content:center;width:40px;height:40px;padding:0;background:transparent;border:1.5px solid #d0d7de;border-radius:6px;color:#0c1b3a;cursor:pointer;transition:all .2s}.header-menu-toggle:hover{background:#0c1b3a;color:#fff;border-color:#0c1b3a}.app-logo{height:42px;width:auto;object-fit:contain}.header-text{flex:1;display:flex;align-items:baseline;gap:12px}.app-header h1{margin:0;color:#0c1b3a;font-family:Raleway,sans-serif;font-size:1.15em;font-weight:700;white-space:nowrap}.header-subtitle{margin:0;color:#8896a6;font-family:Raleway,sans-serif;font-size:.8em;font-weight:400;display:none}.header-user{display:flex;align-items:center;gap:12px;flex-shrink:0}.user-info{display:flex;align-items:center;gap:6px;font-family:Raleway,sans-serif;font-size:13px;font-weight:600;color:#0c1b3a;white-space:nowrap}.btn-logout{padding:6px 16px;background:transparent;color:#0c1b3a;border:1.5px solid #d0d7de;border-radius:6px;font-family:Raleway,sans-serif;font-size:12.5px;font-weight:600;cursor:pointer;transition:all .2s}.btn-logout:hover{background:#0c1b3a;color:#fff;border-color:#0c1b3a}.app-body{display:flex;flex:1}.app-main{flex:1;min-width:0;padding:28px 32px;background:#f5f7fa;overflow-x:hidden;overflow-y:auto;min-height:calc(100vh - 64px)}.app-footer{background:linear-gradient(135deg,#0c1b3a,#132d5e);color:#fff;padding:40px 32px 20px}.footer-content{max-width:1200px;margin:0 auto}.footer-columns{display:flex;gap:48px;align-items:flex-start}.footer-column{display:flex;flex-direction:column}.footer-logo-section{flex-shrink:0}.footer-logo{height:50px;width:auto;object-fit:contain;filter:brightness(0) invert(1)}.footer-contact{flex:1}.footer-contact p{margin:0 0 4px;font-family:Raleway,sans-serif;font-size:13px;font-weight:400;line-height:1.6;color:#ffffffb3}.footer-contact p strong{color:#fff;font-weight:600}.footer-links{flex:1}.footer-links nav ul,.footer-links-secondary nav ul{list-style:none;padding:0;margin:0}.footer-links nav ul li,.footer-links-secondary nav ul li{padding:4px 0}.footer-links nav ul li a,.footer-links-secondary nav ul li a{font-family:Raleway,sans-serif;font-size:13px;font-weight:500;color:#fff9;text-decoration:none;transition:color .2s}.footer-links nav ul li a:hover,.footer-links-secondary nav ul li a:hover{color:#42d3ec}.footer-links-secondary{flex-shrink:0}.footer-bottom{margin-top:24px;padding-top:16px;border-top:1px solid rgba(255,255,255,.1);text-align:center}.footer-bottom p{margin:0;font-family:Raleway,sans-serif;font-size:12px;font-weight:500;color:#fff6}.search-section{margin-bottom:30px}.form-section{animation:fadeIn .3s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media(min-width:1024px){.header-subtitle{display:block}}@media(max-width:768px){.app-header{height:56px;padding:0 12px}.header-menu-toggle{display:inline-flex;width:36px;height:36px}.app-logo{height:32px}.app-header h1{font-size:.95em}.user-info{display:none}.btn-logout{padding:5px 12px;font-size:11px}.app-main{padding:16px 12px;min-height:calc(100vh - 56px)}.app-footer{padding:24px 16px 16px}.footer-columns{flex-direction:column;gap:20px}.footer-logo{height:36px}}
