@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=IBM+Plex+Sans:wght@400;500;600;700&display=swap";:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}}:root{--bg: #e5f4f0;--bg-2: #ffffff;--text: #0b1220;--muted: #6b7280;--line: #e5e7eb;--accent: #16a34a;--accent-hover: #15803d;--tab-active: #059669;--surface: #ffffff;--surface-2: #f8fafc;--surface-3: #f1f5f9;--surface-muted: #f9fafb;--text-strong: #111827;--text-secondary: #374151;--text-soft: #9ca3af;--border-strong: #d1d5db;--shadow-color: rgba(15, 23, 42, .08);--overlay: rgba(15, 23, 42, .2);--surface-alert-border: #fecaca;--badge-gray-text: #334155;--badge-gray-bg: #e2e8f0;--badge-gray-border: #cbd5e1;--badge-green-text: #15803d;--badge-green-bg: #ecfdf5;--badge-green-border: #6ee7b7;--badge-amber-text: #b45309;--badge-amber-bg: #fef3c7;--badge-amber-border: #fcd34d;--badge-orange-text: #c2410c;--badge-orange-bg: #ffedd5;--badge-orange-border: #fdba74;--badge-red-text: #dc2626;--badge-red-bg: #fee2e2;--badge-red-border: #fca5a5;--badge-blue-text: #1d4ed8;--badge-blue-bg: #dbeafe;--badge-blue-border: #60a5fa;--badge-purple-text: #6d28d9;--badge-purple-bg: #ede9fe;--badge-purple-border: #a78bfa;--icon-green: #16a34a;--icon-amber: #d97706;--icon-blue: #2563eb;--icon-purple: #7c3aed;--icon-red: #dc2626;--scrollbar-thumb: #cbd5e1;--scrollbar-track: #f1f5f9}[data-theme=dark]{--bg: #0f141b;--bg-2: #161b24;--text: #e6eaf2;--muted: #94a3b8;--line: #2a3340;--accent: #22c55e;--accent-hover: #16a34a;--tab-active: #059669;--surface: #161b24;--surface-2: #1d242f;--surface-3: #232b38;--surface-muted: #1b212b;--text-strong: #f3f6fb;--text-secondary: #c4ccd8;--text-soft: #8b97a8;--border-strong: #3a4555;--shadow-color: rgba(0, 0, 0, .45);--overlay: rgba(0, 0, 0, .55);--surface-alert-border: #6c2939;--badge-gray-text: #a8b3c7;--badge-gray-bg: #1e2430;--badge-gray-border: #2d3542;--badge-green-text: #6ee7b7;--badge-green-bg: #1a3d2e;--badge-green-border: #2d6b4a;--badge-amber-text: #fbbf24;--badge-amber-bg: #2c1f0f;--badge-amber-border: #854d0e;--badge-orange-text: #f59e0b;--badge-orange-bg: #2a1410;--badge-orange-border: #b45309;--badge-red-text: #f87171;--badge-red-bg: #2a1010;--badge-red-border: #b91c1c;--badge-blue-text: #60a5fa;--badge-blue-bg: #0f1e30;--badge-blue-border: #1e40af;--badge-purple-text: #c084fc;--badge-purple-bg: #1e1533;--badge-purple-border: #7c3aed;--icon-green: #22c55e;--icon-amber: #fbbf24;--icon-blue: #3b82f6;--icon-purple: #a855f7;--icon-red: #ef4444;--scrollbar-thumb: #3a4555;--scrollbar-track: #1d242f;color-scheme:dark}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:Roboto,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial}.app-shell{display:grid;grid-template-columns:var(--sidebar-width, 240px) 1fr;height:100vh;gap:0}.app-shell.narrow .sidebar{width:var(--sidebar-width, 240px)}.sidebar{--sidebar-bg: var(--bg-2);--sidebar-text: var(--muted);--sidebar-text-hover: var(--text);--sidebar-brand-muted: var(--muted);background:var(--sidebar-bg);border-right:1px solid var(--line);display:flex;flex-direction:column;align-items:stretch;gap:0;overflow-y:auto;overflow-x:hidden;z-index:3000}.sidebar-content{display:flex;flex-direction:column;align-items:stretch;padding:0;flex:1;min-height:0}.sidebar-brand{display:flex;align-items:center;gap:10px;padding:18px 14px 16px;flex-shrink:0;border-bottom:1px solid var(--line);min-width:0}.sidebar-brand-logo{width:46px;height:46px;object-fit:contain;flex-shrink:0}.sidebar-brand-logo--fallback{width:50px;height:auto;max-height:46px}.sidebar-brand-text{display:flex;align-items:baseline;gap:6px;min-width:0;flex:1}.sidebar-brand-name{display:inline-flex;align-items:baseline;gap:.2rem;min-width:0;flex-shrink:1}.sidebar-brand-initial{color:var(--text);font-size:.88rem;font-weight:600;white-space:nowrap}.sidebar-brand-lastname{color:var(--text);font-size:.88rem;font-weight:700;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-brand-sep{color:var(--sidebar-brand-muted);font-size:.82rem;font-weight:500;flex-shrink:0}.sidebar-brand-entity{color:var(--sidebar-brand-muted);font-size:.72rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:1;min-width:0}.nav.column{display:flex;flex-direction:column;gap:4px;padding:12px 10px;width:100%;box-sizing:border-box}.sidebar-nav{flex:1;overflow-y:auto}.nav-item{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:12px;color:var(--sidebar-text);text-decoration:none;padding:10px 12px;border-radius:10px;position:relative;transition:box-shadow .15s ease,transform .15s ease,color .15s ease;overflow:hidden}.nav-item .label{flex:1;font-size:13px;line-height:1.2;color:inherit;font-weight:600;position:relative;z-index:1;text-align:left}.nav-item:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#3b82f6,#16a34a);opacity:0;transition:opacity .2s ease;z-index:0}.nav-item:hover:before{opacity:.08}.nav-item:hover{color:var(--sidebar-text-hover);box-shadow:0 4px 12px #3b82f61a,0 1px 4px #16a34a1f;transform:translateY(-1px)}.nav-item.active{background:linear-gradient(135deg,#3b82f6,#16a34a);color:#fff;box-shadow:0 4px 16px #3b82f640,inset 0 0 0 1px #ffffff26;transform:translateY(-1px)}.nav-item.active:before{opacity:0}.sidebar-nav-icon{width:18px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;position:relative;z-index:1}.sidebar-nav-icon i{font-size:16px;line-height:1;color:inherit}.nav-item.active .label,.nav-item.active .sidebar-nav-icon i{color:#fff}.sidebar-nav-group{display:flex;flex-direction:column;gap:2px;min-width:0}.nav-item--group{display:flex;align-items:stretch;padding:0;gap:0;width:100%;box-sizing:border-box}.nav-item--group .nav-item__link{flex:1;min-width:0;display:flex;align-items:center;gap:12px;padding:10px .35rem 10px 12px;text-decoration:none;color:inherit;position:relative;z-index:1}.nav-item--group .nav-item__link .label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-item--group .nav-item__chevron{flex-shrink:0;width:1.85rem;border:none;background:transparent;cursor:pointer;color:inherit;display:grid;place-items:center;padding:0 .55rem 0 0;position:relative;z-index:1}.nav-item--group .nav-item__chevron i{font-size:14px;line-height:1}.nav-item--group.active .nav-item__link,.nav-item--group.active .nav-item__chevron,.nav-item--group.active .sidebar-nav-icon i{color:#fff}.nav-item--group:not(.active) .nav-item__chevron:hover{color:var(--text)}.sidebar-nav-group__children{display:flex;flex-direction:column;gap:2px;padding:2px 0 4px}.sidebar-nav-subitem{display:flex;align-items:center;margin-left:.65rem;padding:.42rem .75rem .42rem 2.15rem;border-radius:8px;font-size:.78rem;font-weight:600;color:var(--sidebar-text);text-decoration:none;position:relative;transition:background .15s ease,color .15s ease}.sidebar-nav-subitem:before{content:"";position:absolute;left:1.15rem;top:50%;width:4px;height:4px;border-radius:999px;background:#cbd5e1;transform:translateY(-50%)}.sidebar-nav-subitem:hover{background:var(--surface-2);color:var(--text)}.sidebar-nav-subitem.active{background:linear-gradient(135deg,#3b82f61f,#16a34a1f);color:#15803d}.sidebar-nav-subitem.active:before{background:#16a34a}[data-theme=dark] .sidebar-nav-subitem.active{color:#fff}[data-theme=dark] .sidebar-nav-subitem.active:before{background:#fff}.icon-circle{width:40px;height:40px;border-radius:9999px;display:grid;place-items:center;background:transparent;margin-bottom:10px;position:relative;z-index:1}.icon-circle i{font-size:18px;line-height:1;color:var(--text);transition:color .3s ease}.nav-item:hover .icon-circle i{color:#14b8a6}.nav-item.active .icon-circle i,.nav-item.active .label{color:#fff}.sidebar-footer{margin-top:auto;width:100%;min-height:3.35rem;display:flex;flex-direction:row;align-items:center;gap:12px;padding:1rem 16px;flex-shrink:0;border:none;border-top:1px solid var(--line);border-radius:0;background:transparent;cursor:pointer;color:var(--sidebar-text);font-size:13px;font-weight:600;font-family:inherit;text-align:left;box-sizing:border-box;transition:background .15s ease,color .15s ease}.sidebar-footer:hover{background:var(--surface-2);color:var(--text)}.sidebar-footer .label{color:inherit}.guard-loader{min-height:100vh;display:grid;place-items:center;color:var(--muted);font-size:14px}.lang-wrapper{position:relative;width:100%}.lang-wrapper .lang-dropdown{position:absolute;left:110px;top:0;background:linear-gradient(135deg,#0f172af2,#1f2937f2);border:1px solid rgba(148,163,184,.25);box-shadow:0 18px 36px #00000073;border-radius:12px;padding:8px;display:flex;flex-direction:column;gap:6px;min-width:160px;z-index:9999;-webkit-backdrop-filter:saturate(140%) blur(2px);backdrop-filter:saturate(140%) blur(2px)}.lang-item{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--surface-2);border:1px solid var(--line);border-radius:8px;cursor:pointer;font-size:12px;font-family:inherit;font-weight:500;color:var(--text);width:100%;text-align:left;transition:background .15s ease,border-color .15s ease}.lang-item i{color:var(--muted);flex-shrink:0}.lang-item:hover{background:var(--surface-3);border-color:var(--border-strong)}.pill{cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 8px;border:none;font-size:11px;font-weight:600;transition:all .2s ease;width:100%}.pill:first-child{background:linear-gradient(135deg,#0f172a,#1f2937);color:#f8fafc}.pill:last-child{background:var(--surface-2);color:#475569;border:1px solid var(--line)}.pill i{font-size:16px}.lang-wrapper>.pill{background:linear-gradient(135deg,#0f172a,#1f2937);color:#f8fafc;border:1px solid rgba(148,163,184,.2)}.lang-wrapper>.pill i{color:#f1f5f9}.lang-wrapper>.pill:hover{filter:brightness(1.05)}.content{padding:10px;overflow:hidden;box-sizing:border-box}.page-frame{height:100%;border:1px solid var(--line);border-radius:10px;background:var(--surface);display:grid;grid-template-rows:52px 1fr;padding:20px;overflow:hidden;box-sizing:border-box}.page-frame>:nth-child(2){min-height:0}.page-header{display:flex;align-items:center;justify-content:space-between;padding:0 14px;border-bottom:1px solid var(--line);background:var(--surface);font-size:12px;letter-spacing:.1em;color:var(--muted);margin-bottom:20px}.header-actions{display:flex;align-items:center;gap:6px;position:relative}.header-release-notes{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:32px;margin-bottom:20px}.header-release-notes .icon-btn{margin-bottom:0;margin-left:0}.ocpp-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;align-self:center}.ocpp-status-dot--connected{background-color:#16a34a}.ocpp-status-dot--connecting{background-color:#d97706;animation:ocpp-status-pulse 2s cubic-bezier(.4,0,.6,1) infinite}.ocpp-status-dot--disconnected,.ocpp-status-dot--error{background-color:#dc2626}@keyframes ocpp-status-pulse{0%,to{opacity:1}50%{opacity:.45}}.header-tenant{position:relative;margin-right:6px;margin-bottom:18px}.tenant-btn{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);font-size:12px;font-weight:600;cursor:pointer}.tenant-btn:hover{background:var(--surface-2)}.tenant-btn--unknown{border-color:var(--badge-amber-border);background:var(--badge-amber-bg);color:var(--badge-amber-text)}.tenant-btn--unknown:hover{background:var(--badge-amber-bg);filter:brightness(.97)}.lang-dropdown{position:absolute;top:calc(100% + 8px);right:0;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:8px;display:flex;flex-direction:column;gap:6px;z-index:9999;min-width:220px;box-shadow:0 10px 24px var(--shadow-color)}.header-tenant .lang-dropdown{left:0;right:auto}.header-lang{position:relative}.icon-btn.lang-btn{width:32px;height:32px;border-radius:8px;border:none;background:transparent;color:var(--text)}.icon-btn.lang-btn:hover{background:var(--surface-3)}.lang-in-header{top:calc(100% + 8px);left:auto;right:0}.icon-btn{width:32px;height:32px;border-radius:8px;border:none;background:transparent;color:var(--text);cursor:pointer;margin-bottom:20px;margin-left:10px;display:flex;align-items:center;justify-content:center;transition:background-color .2s ease}.header-notifications .icon-btn{position:relative}.icon-btn:hover{background:var(--surface-3)}.icon-btn i{font-size:16px}.header-theme-toggle{position:relative;overflow:hidden;flex-shrink:0}.header-theme-toggle__icon{position:absolute;inset:0;display:grid;place-items:center;font-size:16px;line-height:1;transition:opacity .22s ease,transform .22s ease;opacity:0;transform:scale(.55) rotate(-25deg);pointer-events:none}.header-theme-toggle__icon.is-active{opacity:1;transform:scale(1) rotate(0)}.header-theme-toggle__icon--sun.is-active{color:#d97706}[data-theme=dark] .header-theme-toggle__icon--sun.is-active{color:#fbbf24}.header-theme-toggle__icon--moon.is-active{color:#64748b}[data-theme=dark] .header-theme-toggle__icon--moon.is-active{color:#93c5fd}.header-theme-toggle:hover .header-theme-toggle__icon.is-active{transform:scale(1.08) rotate(0)}.icon-btn.icon-muted,.icon-btn.icon-muted i{color:#94a3b8}.icon-btn.icon-muted:hover{background:transparent}.header-notifications{position:relative}.notifications-badge{position:absolute;top:-6px;right:-6px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:#ef4444;color:#fff;font-size:10px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 2px 6px #ef444459}.notifications-dropdown{position:absolute;top:calc(100% + 8px);right:0;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 24px #0000001f;min-width:240px;max-width:280px;padding:12px;z-index:9999}.notifications-title{font-size:12px;font-weight:700;color:var(--text);margin-bottom:8px}.notifications-list{display:flex;flex-direction:column;gap:10px}.notification-item{border:1px solid var(--line);border-radius:10px;padding:10px;background:var(--surface-2)}.notification-item-title{font-size:12px;font-weight:700;color:var(--text);margin-bottom:4px}.notification-item-message{font-size:12px;color:var(--muted);line-height:1.4}.notifications-empty{font-size:12px;color:var(--muted)}.dashboard-container{display:grid;grid-template-columns:1fr 1fr;gap:20px;height:100%;min-height:0}.map-section{background:#f8f9fa;border:1px solid var(--line);border-radius:8px;overflow:hidden;min-height:0;height:100%;position:relative}.map-section:focus-within{outline:none}.map-section .leaflet-container:focus{outline:none}.data-section{display:flex;flex-direction:column;gap:20px;overflow-y:auto;min-height:0}.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.admin-kpi-section{display:flex;flex-direction:column;gap:12px}.admin-kpi-section-title{margin:0;font-size:.95rem;font-weight:700;color:var(--text-strong)}.admin-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.admin-kpi-card{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:14px 16px;display:flex;flex-direction:column;gap:4px;min-width:0}.admin-kpi-label{font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.admin-kpi-value{margin:0;font-size:1.35rem;font-weight:700;color:var(--text-strong);font-variant-numeric:tabular-nums}.admin-kpi-value--alert{color:#b91c1c}.admin-dashboard{display:grid;grid-template-rows:auto auto minmax(0,1fr) minmax(9.5rem,11.5rem);height:100%;min-height:0;max-height:100%;overflow:hidden;gap:.65rem;box-sizing:border-box}.admin-dashboard>*{min-height:0;min-width:0}.admin-dashboard__header{overflow:hidden}.admin-dashboard__kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem}.admin-dashboard__row-main{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);gap:.65rem;overflow:hidden;min-height:0}.admin-dashboard__row-bottom{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;overflow:hidden;min-height:0}.admin-dashboard__row-main>*,.admin-dashboard__row-bottom>*{min-height:0;min-width:0}.admin-dashboard__panel{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden;background:var(--surface);border-radius:12px;border:1px solid #eef0f3;box-shadow:0 1px 3px #0f172a0a,0 1px 2px #0f172a08}.admin-dashboard__panel-head{flex:0 0 auto;padding:.5rem .85rem;border-bottom:1px solid #f1f5f9;background:linear-gradient(180deg,#fbfcfd,#fff);display:flex;align-items:center;justify-content:space-between;gap:.5rem;min-width:0}.admin-dashboard__panel-footer{flex:0 0 auto;padding:.45rem .85rem;background-color:#f8fafc;border-top:1px solid #f1f5f9;display:flex;gap:.75rem}.admin-dashboard__panel-title{margin:0;font-size:.88rem;font-weight:700;color:var(--text);display:flex;align-items:center;gap:.4rem;min-width:0;line-height:1.25}.admin-dashboard__panel-title>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-dashboard__panel-body{flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.admin-dashboard__billing-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));flex-shrink:0;border-bottom:1px solid var(--line)}.admin-dashboard__billing-summary>div{padding:.4rem .75rem;border-bottom:1px solid var(--line);border-right:1px solid var(--line);min-width:0}.admin-dashboard__billing-summary>div:nth-child(2n){border-right:none}.admin-dashboard__billing-summary>div:nth-last-child(-n+2){border-bottom:none}.admin-dashboard__compact-head{padding:.45rem .85rem}.admin-dashboard__compact-head .admin-dashboard__panel-title{font-size:.86rem;flex-wrap:wrap;row-gap:.15rem}.admin-dashboard__pill{display:inline-flex;align-items:center;justify-content:center;line-height:1;box-sizing:border-box;text-align:center}.admin-dashboard__quality-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.45rem .85rem}.admin-dashboard__quality-left{display:flex;align-items:center;gap:.45rem;min-width:0;flex:1}.admin-dashboard__quality-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:1rem;height:1rem;font-size:.86rem;line-height:1}.admin-dashboard__action-btn{display:inline-flex;align-items:center;gap:.25rem;padding:.3rem .7rem;border-radius:7px;font-size:.88rem;font-weight:600;cursor:pointer;white-space:nowrap;font-family:inherit;transition:background-color .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,transform .12s ease}.admin-dashboard__action-btn--primary{background-color:#52a876;color:#fff;border:1px solid #449a6a}.admin-dashboard__action-btn--primary:hover{background-color:#449a6a;border-color:#3a8560;box-shadow:0 2px 8px #52a87652}.admin-dashboard__action-btn--secondary{background-color:var(--surface-2);color:var(--text-secondary);border:1px solid var(--border-strong)}.admin-dashboard__action-btn--secondary:hover{background-color:var(--surface-3);border-color:var(--muted);color:var(--text-strong);box-shadow:0 1px 4px var(--shadow-color)}.admin-dashboard__action-btn--danger{background-color:var(--badge-red-bg);color:var(--badge-red-text);border:1px solid var(--badge-red-border)}.admin-dashboard__action-btn--danger:hover{background-color:var(--surface-3);border-color:var(--badge-red-border);color:var(--badge-red-text);box-shadow:0 1px 4px var(--shadow-color)}.admin-dashboard__action-btn--ghost{background-color:var(--surface-2);color:var(--muted);border:1px solid var(--line)}.admin-dashboard__action-btn--ghost:hover{background-color:var(--surface-3);border-color:var(--border-strong);color:var(--text-secondary)}.admin-dashboard__action-btn:active{transform:translateY(1px)}.admin-dashboard__action-btn:focus-visible{outline:2px solid #52a876;outline-offset:2px}.admin-kpi-hint{margin:0;font-size:.72rem;color:var(--text-soft);line-height:1.35}@media(max-width:1200px){.admin-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.admin-kpi-grid{grid-template-columns:1fr}}.stat-card{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:16px}.stat-card h4{margin:0 0 12px;font-size:11px;font-weight:700;color:var(--muted);letter-spacing:.5px}.stat-numbers{display:flex;justify-content:space-between}.stat-item{text-align:center;display:flex;flex-direction:column;gap:4px}.stat-item .number{font-size:20px;font-weight:700;color:var(--text)}.stat-item .label{font-size:10px;color:var(--muted);font-weight:600}.stat-item.available .number{color:#16a34a}.stat-item.occupied .number{color:#3b82f6}.stat-item.error .number{color:#dc2626}.create-station-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;background:linear-gradient(135deg,#3b82f6,#16a34a);color:#fff;border:none;border-radius:8px;font-size:12px;font-weight:700;letter-spacing:.3px;cursor:pointer;box-shadow:0 4px 12px #3b82f633}.create-station-btn:hover{transform:translateY(-1px);box-shadow:0 8px 16px #3b82f640}.status-legend{display:flex;gap:20px;padding:12px;background:#f8f9fa;border-radius:6px;border:1px solid var(--line)}.legend-item{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--muted)}.legend-dot{width:12px;height:12px;border-radius:50%}.legend-dot.available{background:#16a34a}.legend-dot.charging{background:#3b82f6}.legend-dot.error{background:#dc2626}.legend-dot.unknown{background:#6b7280}.stations-table{background:var(--surface);border:1px solid var(--line);border-radius:8px;display:flex;flex-direction:column;overflow:hidden}.table-header{flex-shrink:0;padding:16px;border-bottom:1px solid var(--line);background:#f8f9fa}.table-header h4{margin:0;font-size:14px;font-weight:600;color:var(--text)}.stations-filters-row{flex-shrink:0}.table-content{flex:1;min-height:0;height:400px;overflow-y:auto}.stations-filters{display:flex;align-items:center}.history-search-icon,.administration-search-icon,.payment-history-search-icon,.gestion-search-icon,.tickets-search>i,.events-search i,.stations-search i,.badges-search i{position:absolute;top:50%;transform:translateY(calc(-50% + 1px));display:inline-flex;align-items:center;justify-content:center;width:1em;height:1em;line-height:1;pointer-events:none}.history-search-icon:before,.payment-history-search-icon:before,.gestion-search-icon:before,.tickets-search>i:before,.events-search i:before,.stations-search i:before,.badges-search i:before{display:block;line-height:1}.stations-search{position:relative;width:100%}.stations-search i{position:absolute;left:10px;color:var(--muted);font-size:12px}.stations-search input{width:100%;padding:10px 10px 10px 32px;border:1px solid var(--line);border-radius:8px;font-size:13px;background:var(--surface)}.stations-filters-row{display:grid;grid-template-columns:1.2fr 1.5fr 1fr .8fr;gap:8px;padding:8px 12px;border-bottom:1px solid var(--line);background:var(--surface-2)}.table-filter-input{padding:8px 10px;border:1px solid var(--line);border-radius:6px;font-size:12px;background:var(--surface);color:var(--text);box-sizing:border-box}.table-filter-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #16a34a1f}.table-filter-input::placeholder{color:var(--muted)}.table-filter-select{padding:8px 10px;border:1px solid var(--line);border-radius:6px;font-size:12px;background:var(--surface)}.table-row{display:grid;grid-template-columns:1.2fr 1.5fr 1fr .8fr auto;gap:8px;padding:12px 16px;border-bottom:1px solid #f1f5f9;align-items:center;font-size:12px}.table-row:hover{background:#f8f9fa}.station-container{border-bottom:1px solid var(--line)}.station-row{transition:background-color .2s ease}.station-row:hover{background:#f8f9fa!important}.expand-icon{margin-right:8px;font-size:10px;color:var(--muted);transition:transform .2s ease}.station-name{display:flex;align-items:center;font-weight:600;color:var(--text)}.station-address,.station-entity,.station-state{color:var(--muted);font-size:11px}.status-dots{display:flex;gap:4px}.status-dots .dot{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:600;color:#fff}.status-dots .dot.available{background:#16a34a}.status-dots .dot.charging{background:#3b82f6}.status-dots .dot.error{background:#dc2626}.status-dots .dot.unknown{background:#6b7280}.status-dots .dot.blinking,.connector-dots .dot.blinking{animation:blink 1.5s ease-in-out infinite}.action-btn{width:24px;height:24px;border:none;background:transparent;cursor:pointer;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:16px;color:var(--text-secondary);transition:all .2s ease}.action-btn:hover{background:var(--surface-3);color:var(--text)}.terminals-container{background:#f8f9fa;border-top:1px solid var(--line);padding:0}.terminal-row{display:grid;grid-template-columns:1.2fr 1.5fr 1fr .8fr auto;gap:8px;padding:12px 16px;border-bottom:1px solid var(--line);align-items:center;font-size:12px;background:var(--surface);margin-left:20px;border-left:2px solid var(--line)}.terminal-row:last-child{border-bottom:none}.terminal-row:hover{background:#f8f9fa}.terminal-status{display:flex;align-items:center}.terminal-dot{width:12px;height:12px;border-radius:50%}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.terminal-dot.blinking{animation:blink 1.5s ease-in-out infinite}.terminal-serial{font-weight:600;color:var(--text);font-size:11px}.terminal-connection{display:flex;align-items:center;gap:6px;font-size:11px}.connection-icon{font-weight:700;font-size:10px}.connection-text{color:var(--muted)}.terminal-state{color:var(--muted);font-size:11px;font-weight:500}.terminal-actions{display:flex;align-items:center}.map-container{border-radius:8px;overflow:hidden;height:100%;width:100%;position:relative}.map-container .leaflet-container{height:100%;width:100%;position:absolute;top:0;left:0}.map-container .leaflet-container:focus{outline:none}.custom-station-icon{background:transparent!important;border:none!important}.leaflet-control-zoom{border:none!important;box-shadow:0 2px 8px #00000026!important}.leaflet-control-zoom a{background:var(--surface)!important;border:none!important;color:var(--text)!important;font-weight:600!important}.leaflet-control-zoom a:hover{background:var(--accent)!important;color:#fff!important}.leaflet-popup-content-wrapper{border-radius:8px!important;box-shadow:0 4px 12px #00000026!important}.leaflet-popup-tip{background:var(--surface)!important}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-overlay.modal-overlay--portal,.modal-overlay.modal-overlay--admin{z-index:32000;padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));box-sizing:border-box;align-items:flex-start;overflow-y:auto}.modal-content.modal-content--dialog,.modal-content.modal-content--admin-dialog{height:auto;max-height:min(90vh,900px);margin:auto;flex-shrink:0}.modal-content.modal-content--admin-log{height:auto;max-height:min(92vh,960px);margin:auto;flex-shrink:0}.row-action-menu-dropdown,.action-menu-dropdown{position:fixed;z-index:31000;background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:0 10px 20px var(--shadow-color);min-width:180px;overflow:hidden}.row-action-menu-dropdown button,.action-menu-dropdown button{width:100%;padding:8px 12px;text-align:left;background:transparent;border:none;cursor:pointer;display:flex;align-items:center;gap:8px;font-size:14px;color:var(--text)!important;border-radius:4px;transition:background .15s ease}.row-action-menu-dropdown button:hover:not(:disabled),.action-menu-dropdown button:hover:not(:disabled){background:var(--surface-2)}.row-action-menu-dropdown button:disabled,.action-menu-dropdown button:disabled{opacity:.5;cursor:not-allowed}.row-action-menu-dropdown button.row-action-menu-item--danger,.action-menu-dropdown button.row-action-menu-item--danger{color:var(--badge-red-text)!important}.modal-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.modal-detail-card{background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:12px}.modal-detail-card__label{color:var(--muted);font-size:13px}.modal-detail-card__value{color:var(--text);font-weight:600}.modal-section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.modal-section-title strong{color:var(--text)}.modal-empty-hint{margin-top:16px;text-align:center;color:var(--muted)}.modal-alert-error{margin-top:16px;padding:12px;background:var(--badge-red-bg);border:1px solid var(--badge-red-border);border-radius:6px;color:var(--badge-red-text)}.modal-back-btn,.modal-secondary-btn,.modal-close-btn{display:inline-flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:8px 12px;font-size:14px;cursor:pointer;transition:background .15s ease,border-color .15s ease}.modal-close-btn{padding:6px 10px;color:var(--muted)}.modal-back-btn:hover,.modal-secondary-btn:hover,.modal-close-btn:hover{background:var(--surface-2);border-color:var(--border-strong);color:var(--text)}.creation-form{display:grid;grid-template-columns:1fr;gap:16px;max-width:480px}.creation-form--wide{max-width:560px}.creation-form__section-title{font-weight:600;color:var(--text);font-size:13px;margin-top:4px}.creation-form__label{display:block;font-size:12px;color:var(--muted)}.creation-form__input,.creation-form__select,.creation-form__textarea{width:100%;max-width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid var(--line);border-radius:6px;margin-top:6px;background:var(--surface);color:var(--text);font-size:14px;transition:border-color .15s ease,box-shadow .15s ease}.creation-form__input:focus,.creation-form__select:focus,.creation-form__textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #22c55e26}.creation-form__input::placeholder,.creation-form__textarea::placeholder{color:var(--text-soft)}.creation-form__dropzone{border:2px dashed var(--line);border-radius:8px;padding:24px;text-align:center;color:var(--muted);cursor:pointer;margin-top:6px;transition:border-color .15s ease,background .15s ease}.creation-form__dropzone:hover{border-color:var(--border-strong);background:var(--surface-2)}.creation-form__dropzone-title{font-size:18px;color:var(--text-soft);margin-bottom:6px}.creation-form__dropzone-hint{font-size:12px;color:var(--muted)}.creation-form__help{color:var(--muted);font-size:12px;margin-top:6px}.creation-form__required{color:var(--badge-red-text)}.creation-form__preview{max-width:280px;border:1px solid var(--line);border-radius:8px}.modal-form-note{margin-bottom:12px;color:var(--text-secondary)}.modal-primary-btn{background:linear-gradient(135deg,#3b82f6,#16a34a);color:#fff;border:none;padding:10px 18px;border-radius:8px;font-weight:600;cursor:pointer}.modal-primary-btn:disabled{opacity:.7;cursor:not-allowed}.modal-content input[type=text],.modal-content input[type=email],.modal-content input[type=tel],.modal-content input[type=password],.modal-content input[type=number],.modal-content input[type=search],.modal-content select,.modal-content textarea{background-color:var(--surface)!important;color:var(--text)!important;border-color:var(--line)!important}.modal-content input::placeholder,.modal-content textarea::placeholder{color:var(--text-soft)!important;opacity:1}.modal-content label{color:var(--muted)!important}.modal-content .modal-body div[style*="64748b"],.modal-content .modal-body span[style*="64748b"],.modal-content .modal-body div[style*="475569"],.modal-content div[style*="64748b"]:not(.station-model){color:var(--muted)!important}.modal-content .modal-body div[style*="1e293b"],.modal-content .modal-body div[style*="0f172a"],.modal-content div[style*="0f172a"]{color:var(--text)!important}.modal-content label[style*="1e293b"]{color:var(--muted)!important}.modal-content div[style*=dashed]{border-color:var(--line)!important}.modal-content .modal-header button:not(.close-button):not(.modal-back-btn):not(.modal-close-btn),.modal-content .modal-footer button:not([style*=gradient]):not([style*=linear-gradient]):not(.modal-primary-btn){background:var(--surface)!important;border-color:var(--line)!important;color:var(--text)!important}.modal-content .modal-header button:not(.close-button):hover,.modal-content .modal-footer button:not([style*=gradient]):not([style*=linear-gradient]):not(.modal-primary-btn):hover{background:var(--surface-2)!important}.page-frame .history-table{overflow:visible}.modal-overlay.release-notes-overlay{z-index:32000;padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}.release-notes-version-chip{display:inline-flex;align-items:center;font-size:13px;font-weight:700;letter-spacing:.02em;padding:4px 10px;border-radius:999px;background:linear-gradient(135deg,#ecfdf5,#e0f2fe);color:#0f766e;border:1px solid rgba(14,116,144,.25)}.modal-content{background:var(--surface)!important;color:var(--text);border-radius:12px;width:90%;max-width:1200px;max-height:90vh;height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 40px var(--shadow-color)}.modal-content.modal-content--release-notes{width:min(520px,calc(100vw - 24px));max-width:560px;height:auto;max-height:min(88vh,720px)}.modal-content.modal-content--release-notes .modal-header{flex-shrink:0;padding:16px 18px 14px;align-items:flex-start}.modal-content.modal-content--release-notes .modal-header .close-button{align-self:center}.modal-content.modal-content--release-notes .modal-body{padding:18px 20px 22px;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0;flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;box-sizing:border-box}.release-notes-stack{display:flex;flex-direction:column;gap:12px;width:100%;box-sizing:border-box}.release-notes-entry{background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:14px 16px;box-sizing:border-box}.release-notes-entry-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px}.release-notes-entry-title{margin:0;font-size:14px;font-weight:700;color:var(--text)}.release-notes-entry-date{flex-shrink:0;color:var(--muted);font-size:12px}.release-notes-entry-list{margin:10px 0 0;padding-left:1.25rem}.release-notes-entry-list li{font-size:13px;line-height:1.45;color:#334155}.release-notes-entry-list li+li{margin-top:.35rem}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px;border-bottom:1px solid var(--line);background:var(--surface-2)}.modal-title-section{flex:1}.station-selector{font-size:18px;font-weight:600;border:none;background:transparent;color:var(--text);margin-bottom:4px}.station-model{font-size:14px;color:var(--muted);margin-bottom:4px}.station-address{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}.modal-tabs{display:flex;gap:8px;margin:0 20px}.tab-button{padding:8px 16px;border:1px solid var(--line);background:var(--surface);border-radius:6px;font-size:12px;cursor:pointer;transition:all .2s ease}.tab-button:hover{background:var(--surface-2)}.tab-button.active{background:linear-gradient(135deg,#3b82f6,#16a34a);color:#fff;border-color:transparent}.tab-button.disabled{background:var(--surface-3);color:var(--text-soft);border-color:var(--line);cursor:not-allowed;opacity:.6}.tab-button.disabled:hover{background:var(--surface-3);color:var(--text-soft);border-color:var(--line);transform:none;box-shadow:none}.close-button{width:32px;height:32px;border:none;background:transparent;font-size:20px;cursor:pointer;border-radius:4px;display:flex;align-items:center;justify-content:center;color:var(--text)}.close-button:hover{background:var(--surface-3)}.modal-body{padding:20px;display:flex;justify-content:center;gap:40px;align-items:flex-start;min-height:0;flex:1;overflow-y:auto;overflow-x:hidden}.modal-body--no-scroll{overflow:hidden;padding:0;max-height:none;flex:1;min-height:0}.modal-body::-webkit-scrollbar{width:8px}.modal-body::-webkit-scrollbar-track{background:var(--surface-3);border-radius:4px}.modal-body::-webkit-scrollbar-thumb{background:#94a3b8;border-radius:4px}.modal-body::-webkit-scrollbar-thumb:hover{background:#64748b}.charging-controls{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;width:100%;flex:1}.charging-point-card{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:16px;width:100%;display:flex;flex-direction:column;box-sizing:border-box}.point-header{display:flex;align-items:center;gap:8px;margin-bottom:12px}.point-name{font-weight:600;color:var(--text)}.point-type{font-size:11px;color:var(--muted);background:var(--surface-3);padding:2px 6px;border-radius:4px}.point-status{font-size:11px;font-weight:600}.point-content{display:flex;align-items:center;justify-content:space-between;gap:16px}.point-actions{display:flex;flex-direction:column;gap:8px;flex:1}.point-actions.compact .action-button{padding:8px 12px;font-size:11px;min-width:120px}.connector-dots{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;flex:1}.dots-row{display:flex;gap:6px}.dot{width:10px;height:10px;border-radius:50%;background:var(--line);display:inline-block}.dot.green{background:#16a34a}.action-button{display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--line);background:var(--surface);border-radius:6px;font-size:11px;cursor:pointer;transition:all .2s ease;text-align:left}.action-button:hover{background:#f8f9fa}.action-button.start{color:#16a34a;border-color:#16a34a}.action-button.stop{color:#dc2626;border-color:#dc2626}.action-button.change{color:#3b82f6;border-color:#3b82f6}.action-button.adjust{color:#f59e0b;border-color:#f59e0b}.action-button.confirm{background-color:#16a34a;color:#fff;border-color:#16a34a}.action-button.confirm:hover{background-color:#15803d}.action-button.cancel{background-color:#dc2626;color:#fff;border-color:#dc2626}.action-button.cancel:hover{background-color:#b91c1c}.action-button:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.start-transaction-form{display:flex;gap:8px;align-items:center;width:100%;flex-wrap:wrap}.idtag-input{flex:1;min-width:150px;padding:8px 12px;border:1px solid var(--border-strong);border-radius:6px;font-size:14px;outline:none;transition:border-color .2s ease}.idtag-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.station-visual{display:flex;flex-direction:column;align-items:center;gap:16px}.station-unit{background:linear-gradient(145deg,#fff,#f8fafc);border:2px solid var(--line);border-radius:12px;padding:24px;width:220px;height:220px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;position:relative;box-shadow:0 4px 12px #00000014;transition:all .3s ease}.station-unit:hover{transform:translateY(-2px);box-shadow:0 8px 20px #0000001f}.wifi-indicator{position:absolute;top:12px;right:12px;font-size:18px;background:#ffffffe6;padding:4px;border-radius:4px}.station-screen{background:linear-gradient(135deg,#1e293b,#334155);color:#fff;padding:10px 14px;border-radius:6px;display:flex;align-items:center;justify-content:space-between;width:85%;margin-top:20px;box-shadow:inset 0 2px 4px #0003}.screen-logo{font-weight:700;font-size:12px}.screen-wifi{font-size:10px}.status-indicators{display:flex;gap:10px;margin:20px 0}.status-bar{width:24px;height:48px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:14px;box-shadow:0 2px 4px #0000001a;transition:all .2s ease;color:#fff}.status-bar:hover{transform:scale(1.05)}.station-keyhole{width:14px;height:14px;background:linear-gradient(135deg,#374151,#4b5563);border-radius:50%;margin-bottom:8px;box-shadow:inset 0 2px 4px #0003}.station-controls{display:flex;gap:12px;margin-top:20px}.control-button{display:flex;align-items:center;gap:6px;padding:8px 16px;border:1px solid var(--line);background:var(--surface);border-radius:6px;font-size:12px;cursor:pointer;transition:all .2s ease}.control-button:hover{background:#f8f9fa}.control-button.restart{color:#dc2626;border-color:#dc2626}.control-button.open-door{color:#3b82f6;border-color:#3b82f6}.auto-refresh{display:flex;align-items:center;gap:6px;font-size:10px;color:var(--muted);margin-top:16px;justify-content:center}.badges-modal-content{background:var(--surface);border-radius:12px;width:80%;max-width:800px;max-height:80vh;overflow:hidden;box-shadow:0 20px 40px #00000026}.badges-modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px;border-bottom:1px solid var(--line);background:#f8f9fa}.badges-modal-header h3{margin:0;font-size:18px;font-weight:600;color:var(--text)}.badges-modal-actions{display:flex;gap:8px}.badges-modal-maximize,.badges-modal-close{width:32px;height:32px;border:none;background:transparent;font-size:16px;cursor:pointer;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:background .2s ease}.badges-modal-maximize:hover,.badges-modal-close:hover{background:var(--surface-3)}.badges-modal-body{padding:20px;max-height:60vh;overflow-y:auto}.badges-legend{margin-bottom:20px;padding:16px;background:var(--surface-2);border-radius:8px;border:1px solid var(--line)}.badges-legend h4{margin:0 0 12px;font-size:14px;font-weight:600;color:var(--text)}.legend-items{display:flex;flex-direction:column;gap:8px}.legend-item{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.legend-dot{font-size:12px;font-weight:700}.badges-search{position:relative;margin-bottom:20px}.badges-search i{position:absolute;left:10px;color:var(--muted);font-size:12px}.badges-search input{width:300px;max-width:100%;padding:10px 10px 10px 32px;border:1px solid var(--line);border-radius:6px;font-size:13px;background:var(--surface);transition:all .2s ease}.badges-search input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #3b82f61a}.badges-table{border:1px solid var(--line);border-radius:8px;overflow:hidden}.badges-table table{width:100%;border-collapse:collapse}.badges-table th{background:#f8f9fa;padding:12px 16px;text-align:left;font-size:12px;font-weight:600;color:var(--text);border-bottom:1px solid var(--line)}.badges-table td{padding:12px 16px;font-size:12px;color:var(--text);border-bottom:1px solid #f1f5f9}.badges-table tr:last-child td{border-bottom:none}.badge-id{font-family:monospace;font-weight:600;color:var(--text)}.badge-status{display:flex;align-items:center;gap:8px}.status-dot{font-size:12px;font-weight:700}.badge-date{color:var(--muted);font-size:11px}.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;left:0;top:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:transparent}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{width:1600px;height:1600px;-webkit-transform-origin:0 0}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{max-width:none!important;max-height:none!important;width:auto;padding:0}.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter}.leaflet-container.leaflet-touch-zoom{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{-ms-touch-action:pinch-zoom;touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{-ms-touch-action:none;touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:rgba(51,181,229,.4)}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{width:0;height:0;-moz-box-sizing:border-box;box-sizing:border-box;z-index:800}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{position:relative;z-index:800;pointer-events:visiblePainted;pointer-events:auto}.leaflet-top,.leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{-webkit-transition:none;-moz-transition:none;transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-popup-pane,.leaflet-control{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{background:#ddd;outline-offset:1px}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{border:2px dotted #38f;background:#ffffff80}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:12px;font-size:.75rem;line-height:1.5}.leaflet-bar{box-shadow:0 1px 5px #000000a6;border-radius:4px}.leaflet-bar a{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:#000}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover,.leaflet-bar a:focus{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:700 18px Lucida Console,Monaco,monospace;text-indent:1px}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{box-shadow:0 1px 5px #0006;background:#fff;border-radius:5px}.leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAQAAAADQ4RFAAACf0lEQVR4AY1UM3gkARTePdvdoTxXKc+qTl3aU5U6b2Kbkz3Gtq3Zw6ziLGNPzrYx7946Tr6/ee/XeCQ4D3ykPtL5tHno4n0d/h3+xfuWHGLX81cn7r0iTNzjr7LrlxCqPtkbTQEHeqOrTy4Yyt3VCi/IOB0v7rVC7q45Q3Gr5K6jt+3Gl5nCoDD4MtO+j96Wu8atmhGqcNGHObuf8OM/x3AMx38+4Z2sPqzCxRFK2aF2e5Jol56XTLyggAMTL56XOMoS1W4pOyjUcGGQdZxU6qRh7B9Zp+PfpOFlqt0zyDZckPi1ttmIp03jX8gyJ8a/PG2yutpS/Vol7peZIbZcKBAEEheEIAgFbDkz5H6Zrkm2hVWGiXKiF4Ycw0RWKdtC16Q7qe3X4iOMxruonzegJzWaXFrU9utOSsLUmrc0YjeWYjCW4PDMADElpJSSQ0vQvA1Tm6/JlKnqFs1EGyZiFCqnRZTEJJJiKRYzVYzJck2Rm6P4iH+cmSY0YzimYa8l0EtTODFWhcMIMVqdsI2uiTvKmTisIDHJ3od5GILVhBCarCfVRmo4uTjkhrhzkiBV7SsaqS+TzrzM1qpGGUFt28pIySQHR6h7F6KSwGWm97ay+Z+ZqMcEjEWebE7wxCSQwpkhJqoZA5ivCdZDjJepuJ9IQjGGUmuXJdBFUygxVqVsxFsLMbDe8ZbDYVCGKxs+W080max1hFCarCfV+C1KATwcnvE9gRRuMP2prdbWGowm1KB1y+zwMMENkM755cJ2yPDtqhTI6ED1M/82yIDtC/4j4BijjeObflpO9I9MwXTCsSX8jWAFeHr05WoLTJ5G8IQVS/7vwR6ohirYM7f6HzYpogfS3R2OAAAAAElFTkSuQmCC);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAQAAABvcdNgAAAEsklEQVR4AWL4TydIhpZK1kpWOlg0w3ZXP6D2soBtG42jeI6ZmQTHzAxiTbSJsYLjO9HhP+WOmcuhciVnmHVQcJnp7DFvScowZorad/+V/fVzMdMT2g9Cv9guXGv/7pYOrXh2U+RRR3dSd9JRx6bIFc/ekqHI29JC6pJ5ZEh1yWkhkbcFeSjxgx3L2m1cb1C7bceyxA+CNjT/Ifff+/kDk2u/w/33/IeCMOSaWZ4glosqT3DNnNZQ7Cs58/3Ce5HL78iZH/vKVIaYlqzfdLu8Vi7dnvUbEza5Idt36tquZFldl6N5Z/POLof0XLK61mZCmJSWjVF9tEjUluu74IUXvgttuVIHE7YxSkaYhJZam7yiM9Pv82JYfl9nptxZaxMJE4YSPty+vF0+Y2up9d3wwijfjZbabqm/3bZ9ecKHsiGmRflnn1MW4pjHf9oLufyn2z3y1D6n8g8TZhxyzipLNPnAUpsOiuWimg52psrTZYnOWYNDTMuWBWa0tJb4rgq1UvmutpaYEbZlwU3CLJm/ayYjHW5/h7xWLn9Hh1vepDkyf7dE7MtT5LR4e7yYpHrkhOUpEfssBLq2pPhAqoSWKUkk7EDqkmK6RrCEzqDjhNDWNE+XSMvkJRDWlZTmCW0l0PHQGRZY5t1L83kT0Y3l2SItk5JAWHl2dCOBm+fPu3fo5/3v61RMCO9Jx2EEYYhb0rmNQMX/vm7gqOEJLcXTGw3CAuRNeyaPWwjR8PRqKQ1PDA/dpv+on9Shox52WFnx0KY8onHayrJzm87i5h9xGw/tfkev0jGsQizqezUKjk12hBMKJ4kbCqGPVNXudyyrShovGw5CgxsRICxF6aRmSjlBnHRzg7Gx8fKqEubI2rahQYdR1YgDIRQO7JvQyD52hoIQx0mxa0ODtW2Iozn1le2iIRdzwWewedyZzewidueOGqlsn1MvcnQpuVwLGG3/IR1hIKxCjelIDZ8ldqWz25jWAsnldEnK0Zxro19TGVb2ffIZEsIO89EIEDvKMPrzmBOQcKQ+rroye6NgRRxqR4U8EAkz0CL6uSGOm6KQCdWjvjRiSP1BPalCRS5iQYiEIvxuBMJEWgzSoHADcVMuN7IuqqTeyUPq22qFimFtxDyBBJEwNyt6TM88blFHao/6tWWhuuOM4SAK4EI4QmFHA+SEyWlp4EQoJ13cYGzMu7yszEIBOm2rVmHUNqwAIQabISNMRstmdhNWcFLsSm+0tjJH1MdRxO5Nx0WDMhCtgD6OKgZeljJqJKc9po8juskR9XN0Y1lZ3mWjLR9JCO1jRDMd0fpYC2VnvjBSEFg7wBENc0R9HFlb0xvF1+TBEpF68d+DHR6IOWVv2BECtxo46hOFUBd/APU57WIoEwJhIi2CdpyZX0m93BZicktMj1AS9dClteUFAUNUIEygRZCtik5zSxI9MubTBH1GOiHsiLJ3OCoSZkILa9PxiN0EbvhsAo8tdAf9Seepd36lGWHmtNANTv5Jd0z4QYyeo/UEJqxKRpg5LZx6btLPsOaEmdMyxYdlc8LMaJnikDlhclqmPiQnTEpLUIZEwkRagjYkEibQErwhkTAKCLQEbUgkzJQWc/0PstHHcfEdQ+UAAAAASUVORK5CYII=);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff}.leaflet-control-layers-scrollbar{overflow-y:scroll;overflow-x:hidden;padding-right:5px}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{display:block;font-size:13px;font-size:1.08333em}.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=)}.leaflet-container .leaflet-control-attribution{background:#fff;background:#fffc;margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{padding:0 5px;color:#333;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover,.leaflet-control-attribution a:focus{text-decoration:underline}.leaflet-attribution-flag{display:inline!important;vertical-align:baseline!important;width:1em;height:.6669em}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;white-space:nowrap;-moz-box-sizing:border-box;box-sizing:border-box;background:#fffc;text-shadow:1px 1px #fff}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}.leaflet-popup-content{margin:13px 24px 13px 20px;line-height:1.3;font-size:13px;font-size:1.08333em;min-height:1px}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-top:-1px;margin-left:-20px;overflow:hidden;pointer-events:none}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;pointer-events:auto;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;color:#333;box-shadow:0 3px 14px #0006}.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;border:none;text-align:center;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;color:#757575;text-decoration:none;background:transparent}.leaflet-container a.leaflet-popup-close-button:hover,.leaflet-container a.leaflet-popup-close-button:focus{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto;-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=.70710678,M12=.70710678,M21=-.70710678,M22=.70710678)}.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{position:absolute;padding:6px;background-color:#fff;border:1px solid #fff;border-radius:3px;color:#222;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;box-shadow:0 1px 3px #0006}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{position:absolute;pointer-events:none;border:6px solid transparent;background:transparent;content:""}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{left:50%;margin-left:-6px}.leaflet-tooltip-top:before{bottom:0;margin-bottom:-12px;border-top-color:#fff}.leaflet-tooltip-bottom:before{top:0;margin-top:-12px;margin-left:-6px;border-bottom-color:#fff}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{top:50%;margin-top:-6px}.leaflet-tooltip-left:before{right:0;margin-right:-12px;border-left-color:#fff}.leaflet-tooltip-right:before{left:0;margin-left:-12px;border-right-color:#fff}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.ocpp-panel{--bg0: #0d0f14;--bg1: #13161e;--bg2: #1a1e28;--bg3: #222636;--border: #2a2f3d;--border-active: #3d4560;--accent: #00e5a0;--accent-dim: rgba(0, 229, 160, .12);--accent-glow: rgba(0, 229, 160, .25);--amber: #f59e0b;--amber-dim: rgba(245, 158, 11, .12);--danger: #f43f5e;--danger-dim: rgba(244, 63, 94, .12);--blue: #60a5fa;--blue-dim: rgba(96, 165, 250, .12);--text: #e2e8f0;--text-muted: #64748b;--text-dim: #94a3b8;--mono: "IBM Plex Mono", monospace;--sans: "IBM Plex Sans", sans-serif;font-family:var(--sans);background:var(--bg0);color:var(--text);border-radius:0;overflow:hidden;display:grid;grid-template-rows:auto 1fr auto;height:100%;border:none;box-shadow:none}.ocpp-header{background:var(--bg1);border-bottom:1px solid var(--border);padding:16px 20px;display:flex;align-items:center;justify-content:space-between;gap:16px}.ocpp-header-left{display:flex;align-items:center;gap:12px}.ocpp-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;background:var(--accent-dim);border:1px solid rgba(0,229,160,.3);border-radius:4px;font-family:var(--mono);font-size:10px;font-weight:600;color:var(--accent);letter-spacing:.08em;text-transform:uppercase}.ocpp-badge:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 6px var(--accent);animation:pulse-dot 2s ease-in-out infinite}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}.ocpp-title{font-family:var(--sans);font-size:15px;font-weight:700;color:var(--text);letter-spacing:-.01em;margin:0}.ocpp-station-id{font-family:var(--mono);font-size:12px;color:var(--accent);background:var(--accent-dim);padding:3px 8px;border-radius:3px;border:1px solid rgba(0,229,160,.2)}.ocpp-connector-bar{display:flex;align-items:center;gap:10px}.connector-label{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}.connector-segmented{display:flex;background:var(--bg2);border:1px solid var(--border);border-radius:6px;padding:2px;gap:2px}.connector-opt{padding:4px 10px;border:none;background:transparent;color:var(--text-dim);font-family:var(--mono);font-size:12px;font-weight:500;border-radius:4px;cursor:pointer;transition:all .15s ease;min-width:32px}.connector-opt:hover{color:var(--text);background:var(--bg3)}.connector-opt.active{background:var(--accent);color:#000;font-weight:700}.ocpp-body{display:grid;grid-template-columns:180px 1fr;overflow:hidden;min-height:0}.ocpp-sidebar{background:var(--bg1);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:8px 0;overflow-y:auto}.sidebar-section-label{font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);padding:12px 16px 6px}.sidebar-btn{display:flex;align-items:center;gap:10px;padding:9px 16px;border:none;background:transparent;color:var(--text-dim);font-family:var(--sans);font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease;text-align:left;width:100%;position:relative}.sidebar-btn:hover{color:var(--text);background:var(--bg2)}.sidebar-btn.active{color:var(--accent);background:var(--accent-dim)}.sidebar-btn.active:before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:2px;background:var(--accent);border-radius:0 2px 2px 0}.sidebar-icon{width:16px;text-align:center;font-size:14px;flex-shrink:0}.ocpp-content{overflow-y:auto;padding:16px;background:var(--bg0);display:flex;flex-direction:column;gap:10px}.cmd-card{background:var(--bg1);border:1px solid var(--border);border-radius:8px;padding:14px 16px;display:grid;gap:10px;animation:slide-in .2s ease}@keyframes slide-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.cmd-card:hover{border-color:var(--border-active)}.cmd-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.cmd-card-info{flex:1;min-width:0}.cmd-card-title{font-family:var(--mono);font-size:12px;font-weight:600;color:var(--text);letter-spacing:.02em;margin:0 0 3px}.cmd-card-desc{font-size:11px;color:var(--text-muted);margin:0;line-height:1.5}.cmd-card-fields{display:grid;gap:8px}.cmd-field{display:flex;flex-direction:column;gap:4px}.cmd-field label{font-family:var(--mono);font-size:10px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}.cmd-field input,.cmd-field select,.cmd-field textarea{padding:7px 10px;background:var(--bg0);border:1px solid var(--border);border-radius:5px;color:var(--text);font-family:var(--mono);font-size:12px;transition:border-color .15s;outline:none}.cmd-field input:focus,.cmd-field select:focus,.cmd-field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.cmd-field textarea{min-height:70px;resize:vertical}.cmd-field select option{background:var(--bg1)}.exec-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border:1px solid transparent;border-radius:6px;font-family:var(--mono);font-size:12px;font-weight:600;cursor:pointer;transition:all .15s ease;letter-spacing:.02em;white-space:nowrap;align-self:flex-start}.exec-btn:active{transform:scale(.97)}.exec-btn.default{background:var(--accent-dim);border-color:#00e5a04d;color:var(--accent)}.exec-btn.default:hover{background:var(--accent);color:#000;box-shadow:0 0 16px var(--accent-glow)}.exec-btn.danger{background:var(--danger-dim);border-color:#f43f5e4d;color:var(--danger)}.exec-btn.danger:hover{background:var(--danger);color:#fff;box-shadow:0 0 16px #f43f5e4d}.exec-btn.warning{background:var(--amber-dim);border-color:#f59e0b4d;color:var(--amber)}.exec-btn.warning:hover{background:var(--amber);color:#000;box-shadow:0 0 16px #f59e0b4d}.exec-btn.info{background:var(--blue-dim);border-color:#60a5fa4d;color:var(--blue)}.exec-btn.info:hover{background:var(--blue);color:#000;box-shadow:0 0 16px #60a5fa4d}.exec-btn.ghost{background:transparent;border-color:var(--border);color:var(--text-dim)}.exec-btn.ghost:hover{background:var(--bg3);border-color:var(--border-active);color:var(--text)}.cmd-actions{display:flex;gap:8px;flex-wrap:wrap}.cmd-card--unsupported{opacity:.45;pointer-events:none;position:relative}.cmd-card--unsupported .exec-btn{cursor:not-allowed}.unsupported-badge{display:inline-block;font-family:var(--sans);font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--danger);background:var(--danger-dim);border:1px solid rgba(244,63,94,.3);border-radius:3px;padding:2px 6px;margin-left:8px;vertical-align:middle}.exec-btn:disabled{opacity:.4;cursor:not-allowed}.exec-btn:disabled:hover{transform:none;box-shadow:none}.cmd-note{font-size:11px;color:var(--text-muted);font-style:italic;padding:6px 0 0;border-top:1px solid var(--border)}.ocpp-log{background:var(--bg1);border-top:1px solid var(--border);padding:0;display:flex;flex-direction:column;max-height:120px}.ocpp-log-header{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;border-bottom:1px solid var(--border)}.ocpp-log-title{font-family:var(--mono);font-size:10px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em}.log-clear-btn{padding:2px 8px;background:transparent;border:1px solid var(--border);border-radius:3px;color:var(--text-muted);font-family:var(--mono);font-size:10px;cursor:pointer;transition:all .15s}.log-clear-btn:hover{border-color:var(--border-active);color:var(--text)}.ocpp-log-entries{flex:1;overflow-y:auto;padding:6px 16px;display:flex;flex-direction:column;gap:3px}.log-empty{font-family:var(--mono);font-size:11px;color:var(--text-muted);padding:4px 0}.log-entry{display:flex;align-items:baseline;gap:10px;font-family:var(--mono);font-size:11px;animation:log-appear .2s ease}@keyframes log-appear{0%{opacity:0;transform:translate(-4px)}to{opacity:1;transform:translate(0)}}.log-entry .log-time{color:var(--text-muted);flex-shrink:0;font-size:10px}.log-entry .log-cmd{color:var(--accent);font-weight:600}.log-entry .log-args{color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ocpp-content::-webkit-scrollbar,.ocpp-sidebar::-webkit-scrollbar,.ocpp-log-entries::-webkit-scrollbar{width:4px}.ocpp-content::-webkit-scrollbar-track,.ocpp-sidebar::-webkit-scrollbar-track,.ocpp-log-entries::-webkit-scrollbar-track{background:transparent}.ocpp-content::-webkit-scrollbar-thumb,.ocpp-sidebar::-webkit-scrollbar-thumb,.ocpp-log-entries::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}@media(max-width:600px){.ocpp-body{grid-template-columns:1fr;grid-template-rows:auto 1fr}.ocpp-sidebar{flex-direction:row;overflow-x:auto;padding:4px 8px;border-right:none;border-bottom:1px solid var(--border)}.sidebar-section-label{display:none}.sidebar-btn{flex-direction:column;padding:8px 10px;font-size:10px;gap:4px}.sidebar-btn.active:before{inset:0 4px auto;width:auto;height:2px}.ocpp-connector-bar{display:none}}.station-form-container{display:flex;flex-direction:column;gap:16px;height:100%;overflow-y:auto;padding-bottom:16px}.station-form-header{display:flex;align-items:center;justify-content:space-between}.station-form-title{margin:0;font-size:24px;font-weight:700;color:var(--text)}.sf-back-btn{border:1px solid var(--line);background:var(--surface);color:var(--text-secondary);border-radius:8px;padding:8px 12px;cursor:pointer;transition:background .15s ease,border-color .15s ease}.sf-back-btn:hover{background:var(--surface-2);border-color:var(--border-strong);color:var(--text)}.station-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.sf-col{display:flex;flex-direction:column;gap:16px}.section-card{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:16px}.section-title{font-weight:700;color:var(--text);margin-bottom:12px;position:relative}.section-title:before{content:"—";color:var(--text-soft);margin-right:8px}.sf-label{display:block;font-size:13px;color:var(--text-secondary);margin:10px 0 6px}.sf-input,.sf-select,.sf-textarea{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-size:14px;background:var(--surface);color:var(--text);transition:all .2s ease}.sf-input:hover,.sf-select:hover,.sf-textarea:hover{border-color:var(--border-strong)}.sf-input:focus,.sf-select:focus,.sf-textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #22c55e26}.sf-input::placeholder,.sf-textarea::placeholder{color:var(--text-soft)}.sf-textarea{min-height:94px;resize:vertical}.sf-row{display:flex;gap:10px;align-items:center}.sf-col-half{flex:1}.sf-chips{display:flex;flex-wrap:wrap;gap:8px}.sf-chip{border:1px solid var(--line);background:var(--surface-2);color:var(--text-secondary);padding:6px 10px;border-radius:9999px;font-size:12px;cursor:pointer}.sf-chip.active{background:linear-gradient(135deg,#3b82f6,#16a34a);color:#fff;border-color:transparent}.sf-disabled-input{position:relative}.sf-disabled-input .sf-input{padding-right:36px}.sf-lock{position:absolute;right:10px;top:50%;transform:translateY(-50%);color:var(--text-soft)}.sf-checkbox{display:flex;align-items:center;gap:8px;margin-top:8px;color:var(--text-secondary);font-size:13px}.sf-add-btn{border:1px solid var(--line);background:var(--surface);color:var(--text-secondary);border-radius:8px;padding:8px 10px;cursor:pointer}.sf-add-btn:hover{background:var(--surface-2);border-color:var(--border-strong)}.sf-help{color:var(--muted);font-size:12px;margin-top:6px}.sf-actions{grid-column:1 / span 2;display:flex;justify-content:flex-end;margin-top:8px}.sf-save-btn{background:linear-gradient(135deg,#3b82f6,#16a34a);color:#fff;border:none;border-radius:8px;padding:12px 16px;font-weight:700;cursor:pointer}@media(max-width:960px){.station-form-grid{grid-template-columns:1fr}.sf-actions{grid-column:1}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes espaceClientDashboardBlockIn{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}.espace-client-dashboard-block-in{animation:espaceClientDashboardBlockIn .44s cubic-bezier(.22,1,.36,1) both;min-width:0}@media(prefers-reduced-motion:reduce){.espace-client-dashboard-block-in{animation:none!important;opacity:1!important;transform:none!important}}.history-container{height:100%;display:flex;flex-direction:column;background:var(--surface);overflow-y:auto;padding-bottom:0}.history-header{display:flex;flex-direction:column;gap:16px;padding:20px 0;border-bottom:1px solid var(--line);margin-bottom:20px}.history-breadcrumb{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.history-tabs{display:flex;padding:0 24px;border-bottom:1px solid var(--line);background:var(--surface)}.history-tab{padding:16px 24px;border:none;background:transparent;font-size:14px;font-weight:500;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;transition:all .2s ease;border-top-left-radius:8px;border-top-right-radius:8px;text-decoration:none}.history-tab:hover{color:var(--text-secondary);background:var(--surface-2)}.history-tab.active{color:#fff;background:linear-gradient(135deg,#3b82f6,#16a34a);border-bottom-color:transparent}.history-tab span{position:relative;z-index:1}.history-header-top{display:flex;align-items:center;justify-content:space-between}.history-title{font-size:24px;font-weight:600;color:var(--text);margin:0}.history-controls{display:flex;align-items:center;gap:12px}.history-search{position:relative;display:flex;align-items:center}.history-search input{padding:8px 12px 8px 36px;border:1px solid var(--line);border-radius:6px;font-size:14px;width:250px;background:var(--surface)}.history-search input:focus{outline:none;border-color:#16a34a;box-shadow:0 0 0 3px #16a34a1a}.history-search-icon{position:absolute;left:12px;color:var(--muted);font-size:16px}.history-actions{display:flex;align-items:center;gap:8px}.history-action-btn{display:flex;align-items:center;gap:6px;padding:8px 12px;border:1px solid var(--line);background:var(--surface);border-radius:6px;font-size:12px;color:var(--muted);cursor:pointer;transition:all .3s ease;position:relative;overflow:hidden}.history-action-btn:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#3b82f6,#16a34a);opacity:0;transition:opacity .3s ease;z-index:0}.history-action-btn:hover:before{opacity:.1}.history-action-btn:hover{color:var(--text);border-color:#3b82f6;transform:translateY(-1px);box-shadow:0 4px 12px #3b82f626}.history-action-btn span,.history-action-btn i{position:relative;z-index:1}.icon-lock,.icon-arrow-down,.icon-download,.icon-fullscreen,.icon-filter,.icon-menu,.icon-first,.icon-prev,.icon-next,.icon-last{font-style:normal;font-weight:300;font-size:14px;color:inherit}.icon-filter{font-size:10px;margin-left:4px;color:var(--text-soft)}.history-loading{flex:1;display:flex;align-items:center;justify-content:center;font-size:14px;color:var(--muted);padding:40px 0}.history-container::-webkit-scrollbar{width:8px}.history-container::-webkit-scrollbar-track{background:var(--surface-3);border-radius:4px}.history-container::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:4px}.history-container::-webkit-scrollbar-button{width:0;height:0;display:none}.history-container{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}.history-table th .sort-icon{margin-left:4px;font-size:10px;color:var(--text-soft)}.history-table th .filter-icon{position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:10px;color:var(--text-soft)}.history-station{font-weight:600;color:var(--text)}.history-consumption{font-weight:500;color:var(--text)}.history-dates{display:flex;flex-direction:column;gap:2px}.history-start-date{font-weight:500;color:var(--text)}.history-end-date,.history-connector{font-size:11px;color:var(--muted)}.history-badge{font-weight:500;color:var(--text)}.history-amount{font-weight:600;color:var(--text)}.history-actions-cell{text-align:center}.history-action-menu{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;background:transparent;cursor:pointer;border-radius:4px;color:var(--text-secondary);transition:all .2s ease}.history-action-menu:hover{background:var(--surface-3);color:var(--text)}.history-pagination{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:16px 0;border-top:1px solid var(--line);margin-top:0;background:var(--surface);position:sticky;bottom:0;z-index:10}.history-pagination-left{display:flex;align-items:center;gap:12px}.history-pagination-select{padding:6px 8px;border:1px solid var(--line);border-radius:4px;font-size:12px;background:var(--surface)}.history-pagination-center{display:flex;align-items:center;gap:8px}.history-pagination-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--line);background:var(--surface);border-radius:4px;cursor:pointer;transition:all .2s ease;font-size:12px;color:var(--muted)}.history-pagination-btn:hover{background:var(--surface-3);color:var(--text)}.history-pagination-btn.active{background:linear-gradient(135deg,#3b82f6,#16a34a);color:#fff;border-color:transparent}.history-pagination-info{font-size:12px;color:var(--muted);margin-left:16px}@media(max-width:1200px){.history-table{font-size:11px}.history-table th,.history-table td{padding:8px 12px}}@media(max-width:768px){.history-controls{flex-direction:column;align-items:stretch;gap:8px}.history-search input{width:100%}.history-table-container{overflow-x:auto}.history-table{min-width:800px}}.events-timeline{padding:24px}.event-card{margin-bottom:20px;padding:20px;border:1px solid var(--line);border-radius:12px;background:var(--surface);transition:all .2s ease}.event-card:hover{border-color:#3b82f6;box-shadow:0 4px 12px #3b82f61a}.event-card:last-child{margin-bottom:0}.event-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.event-tags{display:flex;gap:8px;align-items:center}.event-type-tag{padding:4px 12px;border-radius:16px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.event-identifier-tag{padding:4px 12px;background:var(--surface-3);color:#475569;border-radius:16px;font-size:12px;font-weight:500}.event-timestamp{font-size:14px;color:var(--muted);font-weight:500}.event-title{font-size:16px;font-weight:600;color:var(--text);margin-bottom:16px;line-height:1.4}.event-details{display:flex;flex-wrap:wrap;gap:12px}.event-detail-card{flex:1;min-width:200px;padding:12px 16px;background:var(--surface-2);border-radius:8px;border:1px solid var(--line)}.event-detail-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.event-detail-label{font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.event-detail-value{font-size:14px;color:var(--text);font-weight:500}.event-detail-header i{font-size:14px}.history-container .badge{display:inline-block;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:500;text-align:center}.history-container .badge-success{background-color:var(--badge-green-bg);color:var(--badge-green-text);border:1px solid var(--badge-green-border)}.history-container .badge-warning{background-color:var(--badge-amber-bg);color:var(--badge-amber-text);border:1px solid var(--badge-amber-border)}.history-container .badge-error{background-color:var(--badge-red-bg);color:var(--badge-red-text);border:1px solid var(--badge-red-border)}.history-container .badge-default{background-color:var(--surface-3);color:var(--muted)}.history-container .action-btn{padding:6px 12px;display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);border-radius:6px;font-size:12px;color:var(--muted);cursor:pointer;transition:all .2s ease;text-decoration:none;outline:none;box-shadow:none}.history-container .action-btn:focus{outline:none;box-shadow:none}.history-container .action-btn:hover{background-color:var(--surface-3);border-color:#16a34a;color:#059669;transform:translateY(-1px);box-shadow:0 2px 8px #16a34a1a}.payment-history-container{height:100%;display:flex;flex-direction:column;flex:1;min-height:0;background:var(--surface);overflow-y:auto}.payment-history-header{display:flex;align-items:center;justify-content:space-between;padding:20px 0;border-bottom:1px solid var(--line);margin-bottom:20px}.payment-history-title{font-size:24px;font-weight:600;color:var(--text);margin:0}.payment-history-controls{display:flex;align-items:center;gap:12px}.payment-history-search{position:relative;display:flex;align-items:center}.payment-history-search input{padding:8px 12px 8px 36px;border:1px solid var(--line);border-radius:6px;font-size:14px;width:250px;background:var(--surface)}.payment-history-search input:focus{outline:none;border-color:#16a34a;box-shadow:0 0 0 3px #16a34a1a}.payment-history-search-icon{position:absolute;left:12px;color:var(--muted);font-size:16px}.payment-history-actions{display:flex;align-items:center;gap:8px}.payment-history-action-btn{display:flex;align-items:center;gap:6px;padding:8px 12px;border:1px solid var(--line);background:var(--surface);border-radius:6px;font-size:12px;color:var(--muted);cursor:pointer;transition:all .2s ease}.payment-history-action-btn:hover{background:var(--surface-2);color:var(--text)}.payment-history-table-container{flex:1;overflow:visible;display:flex;flex-direction:column;padding-bottom:72px}.payment-history-container::-webkit-scrollbar{width:8px}.payment-history-container::-webkit-scrollbar-track{background:var(--surface-3);border-radius:4px}.payment-history-container::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:4px}.payment-history-container::-webkit-scrollbar-button{width:0;height:0;display:none}.payment-history-container{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}.payment-history-table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--line);border-radius:8px;overflow:hidden}.payment-history-table thead{background:var(--surface-2);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:1}.payment-history-table th{padding:12px 16px;text-align:left;font-size:12px;font-weight:600;color:var(--muted);border-right:1px solid var(--line);position:relative}.payment-history-table th:last-child{border-right:none}.payment-history-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.payment-history-table th.sortable:hover{background:var(--surface-3)}.filter-input{width:100%;padding:4px 0;border:1px solid var(--line);border-radius:4px;font-size:11px;background:var(--surface);transition:all .2s ease;text-align:center}.filter-input::placeholder{color:#9ca3af;font-size:10px}.payment-history-table tbody tr{border-bottom:1px solid var(--line);transition:background-color .2s ease}.payment-history-table tbody tr:hover{background:var(--surface-2)}.payment-history-table tbody tr:last-child{border-bottom:none}.payment-history-table td{padding:12px 16px;font-size:12px;color:var(--text);border-right:1px solid var(--line)}.payment-history-table td:last-child{border-right:none}.payment-amount{font-weight:600;color:var(--text)}.payment-date{font-weight:500;color:var(--text)}.payment-terminal{font-weight:600;color:var(--text)}.payment-connector{font-weight:500;color:var(--text)}.payment-actions-cell{text-align:center}.payment-action-menu{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;background:transparent;cursor:pointer;border-radius:4px;color:var(--text-secondary);transition:all .2s ease}.payment-action-menu:hover{background:var(--surface-3);color:var(--text)}.payment-history-pagination{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:16px 0;border-top:1px solid var(--line);margin-top:0;background:var(--surface);position:sticky;bottom:0;z-index:10}.payment-history-pagination-left{justify-self:start}.payment-history-pagination-center{grid-column:2;justify-self:center}.payment-history-pagination-info{grid-column:3;justify-self:end}.payment-history-pagination-left{display:flex;align-items:center;gap:12px}.payment-history-pagination-select{padding:6px 8px;border:1px solid var(--line);border-radius:4px;font-size:12px;background:var(--surface)}.payment-history-pagination-center{display:flex;align-items:center;gap:8px}.payment-history-pagination-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--line);background:var(--surface);border-radius:4px;cursor:pointer;transition:all .2s ease;font-size:12px;color:var(--muted)}.payment-history-pagination-btn:hover{background:var(--surface-2);color:var(--text)}.payment-history-pagination-btn.active{background:#16a34a;color:#fff;border-color:#16a34a}.payment-history-pagination-btn:disabled{opacity:.5;cursor:not-allowed}.payment-history-pagination-info{font-size:12px;color:var(--muted);margin-left:16px}.icon-lock,.icon-arrow-down,.icon-download,.icon-fullscreen,.icon-menu,.icon-first,.icon-prev,.icon-next,.icon-last{font-style:normal;font-weight:300;font-size:14px;color:inherit}.icon-lock{font-size:12px}.icon-arrow-down{font-size:10px;margin-left:4px}.icon-download,.icon-fullscreen{font-size:16px}.icon-menu{font-size:16px;font-weight:400}.icon-first,.icon-last{font-size:14px}.icon-prev,.icon-next{font-size:16px;font-weight:300}@media(max-width:1200px){.payment-history-table{font-size:11px}.payment-history-table th,.payment-history-table td{padding:8px 12px}}@media(max-width:768px){.payment-history-controls{flex-direction:column;align-items:stretch;gap:8px}.payment-history-search input{width:100%}.payment-history-table-container{overflow-x:auto}.payment-history-table{min-width:600px}}.chart-card{background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:0 2px 4px #0000001a;transition:all .3s ease;cursor:move;-webkit-user-select:none;user-select:none;position:relative;overflow:hidden}.chart-card:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.chart-card:active{cursor:grabbing;box-shadow:0 8px 20px #0003}.chart-card-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid var(--line);cursor:grab;-webkit-user-select:none;user-select:none}.chart-card-header:active{cursor:grabbing;background:var(--surface-2)}.chart-card-title{font-size:14px;font-weight:600;color:var(--text);margin:0}.chart-card-actions{display:flex;align-items:center;gap:8px}.chart-card-refresh{background:none;border:none;color:var(--muted);cursor:pointer;padding:4px;border-radius:4px;transition:all .2s ease;display:flex;align-items:center;justify-content:center;width:28px;height:28px}.chart-card-refresh:hover{background:#3b82f61a;color:#3b82f6}.chart-card-refresh i{font-size:12px}.chart-card-favorite{width:28px;height:28px;border:none;background:transparent;cursor:pointer;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all .2s ease;color:var(--muted)}.chart-card-favorite:hover{background:var(--surface-3);color:#f59e0b}.chart-card-favorite i.favorited{color:#f59e0b}.chart-card-content{padding:20px;height:240px;position:relative;overflow:hidden}.chart-container{width:100%;height:100%;position:relative}.monitoring-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;padding:20px;min-height:auto;max-height:none;grid-auto-rows:300px;overflow:visible}.monitoring-grid .chart-card{height:100%;max-height:100%;min-height:300px;display:flex;flex-direction:column}.chart-card-wrapper.size-small,.chart-card-wrapper.size-medium{grid-column:span 1;grid-row:span 1;height:300px}.chart-card-wrapper.size-large{grid-column:span 2;grid-row:span 1;height:300px}.chart-card-wrapper.size-tall{grid-column:span 1;grid-row:span 2;height:620px}.monitoring-grid:has(.chart-card-wrapper:nth-child(5)){grid-template-columns:repeat(3,1fr)}.monitoring-grid:has(.chart-card-wrapper:nth-child(7)){grid-template-columns:repeat(4,1fr)}.chart-card-wrapper{transition:none;height:auto;min-height:300px}.chart-card-wrapper.dragging{opacity:.8;transform:scale(1.01);z-index:1000;box-shadow:0 8px 25px #0000004d;transition:opacity .2s ease,transform .2s ease,box-shadow .2s ease}.chart-card-wrapper.dragging .chart-card-header{background:#f973161a;border:2px solid rgba(249,115,22,.5);border-radius:8px}.chart-card-wrapper.drag-over{background:#16a34a0d;transition:background .2s ease}.chart-card-wrapper.drag-over .chart-card{background:#16a34a0d}.monitoring-grid:has(.chart-card-wrapper.dragging) .chart-card-wrapper:not(.dragging) .chart-card-header{background:#3b82f61a;border:2px solid rgba(59,130,246,.3);border-radius:8px;transition:all .2s ease}.monitoring-grid:has(.chart-card-wrapper.dragging) .chart-card-wrapper:not(.dragging) .chart-card-header:hover{background:#3b82f633;border-color:#3b82f680;transform:scale(1.02)}.chart-card-wrapper:hover{transform:translateY(-2px)}.chart-card-wrapper.dragging:hover{transform:scale(1.05)}.monitoring-container{height:100%;display:flex;flex-direction:column;background:var(--surface);overflow-y:auto;padding-bottom:16px}.monitoring-header{background:var(--surface);border-bottom:1px solid var(--line);padding:20px 0;display:flex;flex-direction:column;gap:16px}.monitoring-title{font-size:24px;font-weight:600;color:var(--text);margin:0}.monitoring-tabs{display:flex;padding:0 24px;border-bottom:1px solid var(--line)}.monitoring-tab{padding:16px 24px;border:none;background:transparent;font-size:14px;font-weight:500;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;text-decoration:none;border-top-left-radius:8px;border-top-right-radius:8px}.monitoring-tab.active{color:#fff;background:linear-gradient(135deg,#3b82f6,#16a34a);border-bottom-color:transparent;cursor:default}.monitoring-tab:hover{color:var(--text-secondary);background:var(--surface-2)}.monitoring-tab.active:hover{color:#fff;background:linear-gradient(135deg,#3b82f6,#16a34a)}.monitoring-breadcrumb{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.monitoring-filters{display:flex;gap:20px;align-items:end}.filter-group{display:flex;flex-direction:column;gap:4px}.filter-group label{font-size:12px;font-weight:500;color:var(--muted)}.filter-select{padding:8px 12px;border:1px solid var(--line);border-radius:6px;font-size:14px;background:var(--surface);color:var(--text);min-width:150px;cursor:pointer;transition:all .2s ease}.filter-select:focus{outline:none;border-color:#16a34a;box-shadow:0 0 0 3px #16a34a1a}@media(max-width:1200px){.monitoring-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:280px;min-height:auto;max-height:none}.monitoring-grid .chart-card{height:100%;max-height:100%;min-height:280px}.chart-card-wrapper{height:280px}.chart-card-wrapper.size-tall{height:580px}.chart-card-content{height:220px}}@media(max-width:768px){.monitoring-grid{grid-template-columns:1fr;grid-auto-rows:300px;padding:10px;gap:15px}.chart-card-content{height:240px}.chart-card{height:100%;max-height:100%;min-height:300px}.chart-card-wrapper,.chart-card-wrapper.size-tall{height:300px}.monitoring-filters{flex-direction:column;align-items:stretch;gap:12px}.filter-select{min-width:auto}}@media(max-width:480px){.monitoring-grid{grid-auto-rows:250px;padding:8px;gap:12px}.chart-card-content{height:190px}.chart-card{height:100%;max-height:100%;min-height:250px}.chart-card-wrapper,.chart-card-wrapper.size-tall{height:250px}}.gestion-container{height:100%;min-height:0;display:flex;flex-direction:column;background:var(--surface);overflow-y:auto;overflow-x:hidden;padding-bottom:0;box-sizing:border-box}.gestion-header{display:flex;flex-direction:column;gap:16px;padding:20px 0;border-bottom:1px solid var(--line);margin-bottom:20px;flex-shrink:0}.gestion-breadcrumb{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.gestion-title{font-size:24px;font-weight:600;color:var(--text);margin:0}.gestion-tabs{display:flex;padding:0 24px;border-bottom:1px solid var(--line)}.gestion-tab{padding:16px 24px;border:none;background:transparent;font-size:14px;font-weight:500;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;transition:all .2s ease;border-top-left-radius:8px;border-top-right-radius:8px}.gestion-tab:hover{color:var(--text-secondary);background:var(--surface-2)}.gestion-tab.active{color:#fff;background:linear-gradient(135deg,#3b82f6,#16a34a);border-bottom-color:transparent}.gestion-vehicules-embedded{flex:1;min-height:0;display:flex;flex-direction:column;overflow:visible}.gestion-vehicules-embedded .history-table-container{flex:1;min-height:0}.gestion-controls{display:flex;align-items:center;justify-content:space-between;gap:12px}.gestion-controls-left{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.gestion-table-count{font-size:13px;color:var(--muted);white-space:nowrap;padding:6px 10px;border-radius:6px;background:var(--surface-2);border:1px solid var(--line)}.gestion-search{position:relative;display:flex;align-items:center}.gestion-search-icon{position:absolute;left:12px;color:var(--muted);font-size:16px}.gestion-search input{padding:8px 12px 8px 36px;border:1px solid var(--line);border-radius:6px;font-size:14px;width:250px;background:var(--surface)}.gestion-search input:focus{outline:none;border-color:#16a34a;box-shadow:0 0 0 3px #16a34a1a}.gestion-actions{display:flex;gap:8px}.gestion-action-btn{display:flex;align-items:center;gap:6px;padding:8px 12px;border:1px solid var(--line);background:var(--surface);border-radius:6px;font-size:12px;color:var(--muted);cursor:pointer;transition:all .3s ease;position:relative;overflow:hidden}.gestion-action-btn:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#3b82f6,#16a34a);opacity:0;transition:opacity .3s ease;z-index:0}.gestion-action-btn:hover:before{opacity:1}.gestion-action-btn:hover{color:#fff;border-color:transparent}.gestion-action-btn i{font-size:12px;position:relative;z-index:1}.gestion-content{flex:1;display:flex;flex-direction:column;overflow:visible}.history-status-dot.green{background:#16a34a}.history-status-dot.blue{background:#3b82f6}.history-status-dot.red{background:#dc2626}.history-status-dot.orange{background:#f59e0b}.history-status-text{font-weight:500}.history-connector,.history-badge{color:var(--muted)}.history-table-container{flex:1;overflow:visible;display:flex;flex-direction:column;padding-bottom:72px}.history-table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--line);border-radius:8px;overflow:hidden}.history-table thead{background:var(--surface-2);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:1}.history-table th{padding:12px 16px;text-align:left;font-size:12px;font-weight:600;color:var(--muted);border-right:1px solid var(--line);position:relative}.history-table th:last-child{border-right:none}.history-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.history-table th.sortable:hover{background:var(--surface-3)}.sort-indicator{font-size:12px;font-weight:600;color:#16a34a;margin-left:6px;min-width:12px;display:inline-block;text-align:center;line-height:1}.active-sort{background:#16a34a1a!important;border-left:3px solid #16a34a}.active-filter{background:#3b82f61a!important;border-left:3px solid #3b82f6}.active-sort.active-filter{background:#16a34a26!important;border-left:3px solid #16a34a}.filter-input{width:100%;padding:6px 8px;border:1px solid var(--line);border-radius:4px;font-size:11px;background:var(--surface);transition:all .2s ease;text-align:center;box-sizing:border-box}.filter-input:focus{outline:none;border-color:#16a34a;box-shadow:0 0 0 2px #16a34a1a}.filter-input::placeholder{color:var(--text-soft);font-size:10px}.history-table tbody tr{border-bottom:1px solid var(--line);transition:background-color .2s ease}.history-table tbody tr:hover{background:var(--surface-2)}.history-table tbody tr:last-child{border-bottom:none}.history-table td{padding:12px 16px;font-size:12px;color:var(--text);border-right:1px solid var(--line)}.history-table td:last-child{border-right:none}.history-pagination{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:16px 24px;background:var(--surface);border-top:1px solid var(--line);margin-top:0;position:sticky;bottom:0;z-index:10;flex-shrink:0}.history-pagination-info{font-size:14px;color:var(--muted)}.history-pagination-controls{display:flex;align-items:center;gap:12px}.history-pagination-select{padding:6px 12px;border:1px solid var(--border-strong);border-radius:6px;font-size:14px;background:var(--surface);color:var(--text-secondary)}.history-pagination-center{display:flex;align-items:center;gap:4px}.history-pagination-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--border-strong);background:var(--surface);border-radius:6px;font-size:14px;color:var(--muted);cursor:pointer;transition:all .2s ease}.history-pagination-btn:hover:not(:disabled){background:var(--surface-3);border-color:var(--text-soft)}.history-pagination-btn:disabled{opacity:.5;cursor:not-allowed}.history-pagination-btn.active{background:#3b82f6;border-color:#3b82f6;color:#fff}.icon-first,.icon-prev,.icon-next,.icon-last{font-size:14px;font-weight:300}.gestion-container::-webkit-scrollbar{width:8px}.gestion-container::-webkit-scrollbar-track{background:var(--surface-3);border-radius:4px}.gestion-container::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:4px}.gestion-container::-webkit-scrollbar-button{width:0;height:0;display:none}.gestion-container{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}@media(max-width:768px){.gestion-header{flex-direction:column;gap:16px;align-items:stretch}.gestion-controls{flex-direction:column;gap:12px}.gestion-search input{width:100%}.history-table-container{overflow-x:auto}.history-table{min-width:800px}}.gestion-contrats{display:flex;flex-direction:column;gap:16px;flex:1;min-height:0}.gestion-controls .history-search input{width:250px}.gestion-controls .history-search-input--wide{width:min(420px,100%)}.gestion-contrats-muted{margin:0;color:var(--muted);font-size:.9rem}.gestion-contrats-field-hint{margin-top:6px;font-size:.78rem;color:var(--muted);font-weight:500}.gestion-contrats-field-hint--warn{color:var(--badge-amber-text)}.gestion-contrats-error{margin:0;color:var(--badge-red-text);font-size:.9rem}.gestion-contrats-empty{text-align:center;color:var(--muted);padding:24px!important}.gestion-contrats-sub{font-size:.75rem;color:var(--text-soft)}.gestion-contrats-status{display:inline-flex;padding:.2rem .55rem;border-radius:999px;font-size:.72rem;font-weight:700;background:var(--badge-gray-bg);color:var(--badge-gray-text);border:1px solid var(--badge-gray-border)}.gestion-contrats-status--actif{background:var(--badge-green-bg);color:var(--badge-green-text);border-color:var(--badge-green-border)}.gestion-contrats-status--en_attente{background:var(--badge-amber-bg);color:var(--badge-amber-text);border-color:var(--badge-amber-border)}.gestion-contrats-status--suspendu,.gestion-contrats-status--expire{background:var(--badge-red-bg);color:var(--badge-red-text);border-color:var(--badge-red-border)}.gestion-contrats-row--highlight{background:var(--badge-green-bg)}.gestion-contrats-row--highlight td{box-shadow:inset 3px 0 0 var(--accent)}.gestion-contrats-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem 1.25rem}.gestion-contrats-detail-grid div{display:flex;flex-direction:column;gap:.15rem}.gestion-contrats-detail-grid>div>span{font-size:.72rem;color:var(--muted)}.gestion-contrats-detail-grid strong{font-size:.86rem;color:var(--text-strong)}.gestion-contrats-detail-grid .gestion-contrats-status{font-size:.72rem;font-weight:700}.gestion-contrats-detail-grid .gestion-contrats-status--actif{color:var(--badge-green-text);background:var(--badge-green-bg);border-color:var(--badge-green-border)}.gestion-contrats-detail-grid .gestion-contrats-status--en_attente{color:var(--badge-amber-text);background:var(--badge-amber-bg);border-color:var(--badge-amber-border)}.gestion-contrats-detail-grid .gestion-contrats-status--suspendu,.gestion-contrats-detail-grid .gestion-contrats-status--expire{color:var(--badge-red-text);background:var(--badge-red-bg);border-color:var(--badge-red-border)}.contract-detail-modal{width:min(760px,100%);max-height:calc(100vh - 2rem)}.contract-detail-modal .gestion-contrats-modal-header,.contract-detail-modal .gestion-contrats-modal-footer{padding:.85rem 1.25rem;flex-shrink:0}.contract-detail-modal .gestion-contrats-modal-header h2{font-size:1.1rem}.contract-detail-modal .gestion-contrats-modal-header p{margin-top:.15rem;font-size:.82rem}.contract-detail-body{display:flex;flex-direction:column;gap:.75rem;padding:1rem 1.25rem;overflow-y:auto;flex:1;min-height:0}.contract-detail-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.contract-detail-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:.85rem 1rem;border-radius:12px;background:linear-gradient(135deg,var(--surface-2) 0%,var(--surface) 100%);border:1px solid var(--line);flex-shrink:0}.contract-detail-hero-main{min-width:0;flex:1}.contract-detail-hero-title{margin:0;font-size:1rem;font-weight:700;color:var(--text-strong);line-height:1.35}.contract-detail-hero-meta{display:flex;align-items:center;flex-wrap:wrap;gap:.35rem;margin:.35rem 0 0;font-size:.84rem;color:var(--text)}.contract-detail-hero-meta i{color:var(--accent);font-size:.82rem}.contract-detail-hero-sep{opacity:.5}.contract-detail-hero-aside{display:flex;flex-direction:column;align-items:flex-end;gap:.5rem;flex-shrink:0}.contract-detail-amount-card{display:flex;flex-direction:column;align-items:flex-end;gap:.1rem;padding:.55rem .75rem;border-radius:10px;background:var(--surface);border:1px solid var(--line);min-width:6.5rem}.contract-detail-amount-card span{font-size:.68rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.contract-detail-amount-card strong{font-size:1.05rem;color:var(--accent);font-weight:700;line-height:1.2}.contract-detail-amount-card small{font-size:.72rem;color:var(--text-soft)}.contract-detail-section{padding:.7rem .85rem;border-radius:10px;border:1px solid var(--line);background:var(--surface)}.contract-detail-section-title{display:flex;align-items:center;gap:.4rem;margin:0 0 .55rem;font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.contract-detail-section-title i{color:var(--accent);font-size:.85rem}.contract-detail-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem .85rem}.contract-detail-field{display:flex;flex-direction:column;gap:.1rem;min-width:0}.contract-detail-field>span{font-size:.72rem;color:var(--muted);line-height:1.3}.contract-detail-field>strong{font-size:.86rem;color:var(--text-strong);font-weight:600;line-height:1.35;word-break:break-word}.contract-detail-field--highlight>strong{color:var(--accent)}.contract-detail-borne-list{grid-column:1 / -1;display:flex;flex-direction:column;gap:.2rem;min-width:0}.contract-detail-borne-list>span{font-size:.72rem;color:var(--muted)}.contract-detail-borne-ids-inline{margin:0;font-size:.8rem;color:var(--text);line-height:1.4;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;word-break:break-all}.contract-detail-edit .gestion-contrats-form-grid{margin-top:0;gap:.6rem .85rem}.contract-detail-edit .gestion-contrats-form-grid input,.contract-detail-edit .gestion-contrats-form-grid select,.contract-detail-edit .gestion-contrats-form-grid textarea{padding:.45rem .6rem;font-size:.86rem}.contract-detail-edit .gestion-contrats-field-label{font-size:.74rem;margin-bottom:.2rem}.contract-detail-checkbox-label{display:flex!important;flex-direction:row!important;align-items:center;gap:.45rem;font-size:.84rem;color:var(--text);padding-top:.75rem}.contract-detail-checkbox-label input[type=checkbox]{width:auto;margin:0}.contract-detail-borne-ids{grid-column:1 / -1}.contract-detail-ttc-preview{display:flex;flex-direction:column;gap:.15rem;padding-top:.6rem}.contract-detail-ttc-preview strong{font-size:.95rem;color:var(--accent)}.contract-detail-footer{justify-content:flex-end}.contract-detail-footer .history-action-btn+.history-action-btn{margin-left:.5rem}.contract-detail-modal .gestion-contrats-status{font-size:.72rem;padding:.18rem .55rem}@media(max-width:640px){.contract-detail-hero{flex-direction:column;align-items:flex-start}.contract-detail-hero-aside{width:100%;justify-content:space-between}.contract-detail-sections,.contract-detail-fields,.gestion-contrats-form-grid{grid-template-columns:1fr}}.gestion-contrats-modal-overlay{position:fixed;inset:0;z-index:10050;display:flex;align-items:center;justify-content:center;background:var(--overlay);padding:1rem}.gestion-contrats-modal{width:min(920px,100%);max-height:calc(100vh - 2rem);background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:0 25px 50px -12px var(--shadow-color);display:flex;flex-direction:column;overflow:hidden}.gestion-contrats-modal-header,.gestion-contrats-modal-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:1.1rem 1.5rem;border-bottom:1px solid var(--line)}.gestion-contrats-modal-footer{border-bottom:none;border-top:1px solid var(--line)}.gestion-contrats-modal-header h2,.gestion-contrats-panel h3{margin:0;font-size:1.15rem;color:var(--text-strong)}.gestion-contrats-modal-header p,.gestion-contrats-panel-hint{margin:.25rem 0 0;color:var(--muted);font-size:.85rem}.gestion-contrats-close{border:none;background:transparent;font-size:1.5rem;line-height:1;color:var(--muted);cursor:pointer;transition:color .15s ease}.gestion-contrats-close:hover{color:var(--text)}.gestion-contrats-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:.85rem 1.5rem;background:var(--surface-2);border-bottom:1px solid var(--line)}.gestion-contrats-step{display:flex;align-items:center;gap:8px;font-size:.78rem;color:var(--text-soft);font-weight:600}.gestion-contrats-step-index{width:24px;height:24px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:var(--surface-3);color:var(--muted);font-size:.72rem;border:1px solid var(--line)}.gestion-contrats-step.is-active{color:var(--badge-green-text)}.gestion-contrats-step.is-active .gestion-contrats-step-index{background:var(--accent);border-color:var(--accent);color:#fff}.gestion-contrats-step.is-done{color:var(--text-secondary)}.gestion-contrats-step.is-done .gestion-contrats-step-index{background:var(--badge-blue-bg);border-color:var(--badge-blue-border);color:var(--badge-blue-text)}.gestion-contrats-modal-body{padding:1.25rem 1.5rem;overflow-y:auto;display:flex;flex-direction:column;gap:12px}.gestion-contrats-panel{display:flex;flex-direction:column;gap:14px}.gestion-contrats-product-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.gestion-contrats-product-card{text-align:left;border:1px solid var(--line);border-radius:12px;padding:.9rem 1rem;background:var(--surface);cursor:pointer;display:flex;flex-direction:column;gap:4px}.gestion-contrats-product-card strong{color:var(--text-strong)}.gestion-contrats-product-card span{color:var(--muted);font-size:.82rem}.gestion-contrats-product-card em{color:var(--badge-green-text);font-style:normal;font-size:.75rem;font-weight:700}.gestion-contrats-product-card.is-selected{border-color:var(--badge-green-border);background:var(--badge-green-bg);box-shadow:inset 0 0 0 1px var(--badge-green-border)}.gestion-contrats-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.gestion-contrats-form-grid label{display:flex;flex-direction:column;gap:6px;font-size:.78rem;font-weight:700;color:var(--muted)}.gestion-contrats-field-label{margin:0 0 8px;font-size:.78rem;font-weight:700;color:var(--muted)}.gestion-contrats-form-grid input,.gestion-contrats-form-grid select,.gestion-contrats-form-grid textarea,.gestion-contrats-form-grid .searchable-select__input{width:100%;box-sizing:border-box;padding:.65rem .75rem;border:1px solid var(--line);border-radius:10px;font:inherit;background:var(--surface);color:var(--text)}.gestion-contrats-form-grid input::placeholder,.gestion-contrats-form-grid textarea::placeholder,.gestion-contrats-form-grid .searchable-select__input::placeholder{color:var(--text-soft)}.gestion-contrats-form-grid input:focus,.gestion-contrats-form-grid select:focus,.gestion-contrats-form-grid textarea:focus,.gestion-contrats-form-grid .searchable-select__input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #22c55e26}.gestion-contrats-input-muted{background:var(--surface-3);border-color:var(--line);color:var(--text-soft);cursor:not-allowed}.searchable-select{position:relative;width:100%}.searchable-select__list{list-style:none;margin:6px 0 0;padding:4px;max-height:220px;overflow-y:auto;border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:0 10px 28px var(--shadow-color)}.searchable-select__option{width:100%;display:block;text-align:left;border:none;border-radius:8px;padding:.55rem .65rem;background:transparent;color:var(--text);font:inherit;font-size:.84rem;cursor:pointer}.searchable-select__option:hover,.searchable-select__option.is-highlighted{background:var(--surface-2)}.searchable-select__option.is-selected{background:var(--badge-green-bg);color:var(--badge-green-text)}.searchable-select__empty{padding:.65rem .75rem;font-size:.82rem;color:var(--muted)}.gestion-contrats-span-2{grid-column:span 2}.gestion-contrats-bornes-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:220px;overflow-y:auto;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}.gestion-contrats-borne-item{display:flex;align-items:flex-start;gap:8px;padding:8px;border-radius:8px;background:var(--surface);border:1px solid var(--line);cursor:pointer}.gestion-contrats-borne-item strong{display:block;font-size:.85rem}.gestion-contrats-borne-item em{display:block;font-style:normal;font-size:.72rem;color:var(--text-soft)}.gestion-contrats-schedule{padding:12px;border-radius:12px;background:var(--badge-blue-bg);border:1px solid var(--badge-blue-border);color:var(--text-secondary)}.gestion-contrats-schedule-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.gestion-contrats-schedule-tags span{padding:.2rem .55rem;border-radius:999px;background:var(--surface);border:1px solid var(--badge-blue-border);font-size:.72rem;color:var(--badge-blue-text);font-weight:600}.gestion-contrats-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.gestion-contrats-summary div{padding:10px 12px;border-radius:10px;background:var(--surface-2);border:1px solid var(--line)}.gestion-contrats-summary span{display:block;font-size:.72rem;color:var(--muted);font-weight:700;text-transform:uppercase}.gestion-contrats-summary strong{display:block;margin-top:4px;color:var(--text-strong)}.gestion-contrats-checkbox{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:var(--text-secondary)}.gestion-contrats-automations ul,.gestion-contrats-blocking ul{margin:8px 0 0;padding-left:1.1rem;color:var(--text-secondary)}.gestion-contrats-blocking{padding:12px;border-radius:12px;background:var(--badge-red-bg);border:1px solid var(--badge-red-border);color:var(--badge-red-text)}.gestion-contrats-blocking--inline{font-size:.85rem}.gestion-contrats-modal-footer-right{display:flex;gap:8px;flex-wrap:wrap}.gestion-contrats-modal-footer .history-action-btn{background:var(--surface);border:1px solid var(--line);color:var(--text-secondary)}.gestion-contrats-modal-footer .history-action-btn:hover{background:var(--surface-2);color:var(--text);border-color:var(--border-strong)}.gestion-contrats-success-overlay{position:fixed;inset:0;z-index:10060;display:flex;align-items:center;justify-content:center;background:var(--overlay);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:gestionContratsSuccessOverlayIn .22s ease forwards}.gestion-contrats-success-overlay.is-leaving{animation:gestionContratsSuccessOverlayOut .35s ease forwards}.gestion-contrats-success-card{min-width:min(360px,calc(100vw - 2rem));padding:2rem 2.25rem;border-radius:20px;background:var(--surface);border:1px solid var(--line);text-align:center;box-shadow:0 25px 50px -12px var(--shadow-color),0 0 0 1px var(--badge-green-border);animation:gestionContratsSuccessCardIn .42s cubic-bezier(.34,1.56,.64,1) forwards}.gestion-contrats-success-overlay.is-leaving .gestion-contrats-success-card{animation:gestionContratsSuccessCardOut .35s ease forwards}.gestion-contrats-success-icon{position:relative;width:76px;height:76px;margin:0 auto 1rem;display:flex;align-items:center;justify-content:center;border-radius:999px;background:var(--badge-green-bg);border:3px solid var(--badge-green-border);animation:gestionContratsSuccessIconPop .5s cubic-bezier(.34,1.56,.64,1) forwards}.gestion-contrats-success-ring{position:absolute;inset:-8px;border-radius:inherit;border:2px solid var(--badge-green-border);opacity:.45;animation:gestionContratsSuccessRing .8s ease-out .1s forwards}.gestion-contrats-success-check{width:38px;height:38px;color:var(--badge-green-text);stroke-dasharray:24;stroke-dashoffset:24;animation:gestionContratsSuccessDraw .45s ease .18s forwards}.gestion-contrats-success-title{display:block;font-size:1.25rem;color:var(--text-strong);margin-bottom:.35rem}.gestion-contrats-success-sub{margin:0;color:var(--badge-green-text);font-weight:700;font-size:.95rem}.gestion-contrats-success-meta{margin:.65rem 0 0;color:var(--muted);font-size:.82rem}@keyframes gestionContratsSuccessOverlayIn{0%{opacity:0}to{opacity:1}}@keyframes gestionContratsSuccessOverlayOut{0%{opacity:1}to{opacity:0}}@keyframes gestionContratsSuccessCardIn{0%{opacity:0;transform:scale(.88) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes gestionContratsSuccessCardOut{0%{opacity:1;transform:scale(1) translateY(0)}to{opacity:0;transform:scale(.96) translateY(-8px)}}@keyframes gestionContratsSuccessIconPop{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}@keyframes gestionContratsSuccessRing{0%{transform:scale(.75);opacity:.8}to{transform:scale(1.15);opacity:0}}@keyframes gestionContratsSuccessDraw{to{stroke-dashoffset:0}}@media(max-width:768px){.gestion-contrats-steps,.gestion-contrats-product-grid,.gestion-contrats-form-grid,.gestion-contrats-bornes-list,.gestion-contrats-summary{grid-template-columns:1fr}.gestion-contrats-span-2{grid-column:span 1}}.tickets-container{display:flex;flex-direction:column;height:100%;background:var(--bg);overflow:hidden}.tickets-header{background:var(--bg-2);padding:16px;border-bottom:1px solid var(--line);flex-shrink:0}.tickets-breadcrumb{display:none}.tickets-header-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.tickets-title{font-size:20px;font-weight:700;color:var(--text);margin:0;display:flex;align-items:center;gap:10px}.tickets-title i{font-size:22px;color:var(--accent)}.tickets-filter-toggle{width:40px;height:40px;border-radius:10px;border:1px solid var(--line);background:var(--bg-2);color:var(--text);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease}.tickets-filter-toggle:hover{background:var(--bg);border-color:var(--accent);color:var(--accent)}.tickets-search{position:relative;margin-bottom:12px}.tickets-search i{position:absolute;left:14px;color:var(--muted);font-size:16px}.tickets-search input{width:100%;height:44px;padding:0 40px 0 44px;border:1px solid var(--line);border-radius:10px;font-size:15px;background:var(--bg);color:var(--text);transition:border-color .2s ease;box-sizing:border-box}.tickets-search input:focus{outline:none;border-color:var(--accent)}.tickets-search input::placeholder{color:var(--muted)}.tickets-search-clear{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:24px;height:24px;border:none;background:var(--line);border-radius:50%;color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center}.tickets-filters{background:var(--bg);border-radius:10px;padding:12px;margin-bottom:12px;animation:slideDown .2s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.tickets-filter-group{margin-bottom:12px}.tickets-filter-group:last-child{margin-bottom:0}.tickets-filter-group label,.tickets-filter-label{display:block;font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.tickets-view-modes{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.tickets-view-btn{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 8px;border:1px solid var(--line);border-radius:8px;background:var(--bg-2);color:var(--muted);font-size:11px;font-weight:500;cursor:pointer;transition:all .2s ease}.tickets-view-btn i{font-size:18px}.tickets-view-btn:hover{border-color:var(--accent);color:var(--accent)}.tickets-view-btn.active{background:linear-gradient(135deg,#3b82f6,#16a34a);border-color:transparent;color:#fff}.tickets-filter-group select{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--bg-2);color:var(--text);font-size:14px;cursor:pointer}.tickets-filter-group select:focus{outline:none;border-color:var(--accent)}.tickets-tabs{display:flex;gap:4px;overflow-x:auto;padding-bottom:4px;-webkit-overflow-scrolling:touch;scrollbar-width:none}.tickets-main-tabs{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;margin-bottom:12px;-webkit-overflow-scrolling:touch;scrollbar-width:none}.tickets-main-tabs::-webkit-scrollbar{display:none}.tickets-tabs::-webkit-scrollbar{display:none}.tickets-tab{display:flex;align-items:center;gap:6px;padding:8px 14px;border:none;border-radius:20px;background:var(--bg);color:var(--muted);font-size:13px;font-weight:500;white-space:nowrap;cursor:pointer;transition:all .2s ease}.tickets-tab:hover{background:var(--line);color:var(--text)}.tickets-tab.active{background:linear-gradient(135deg,#3b82f6,#16a34a);color:#fff;box-shadow:0 6px 16px #3b82f62e,0 3px 10px #16a34a24}.tickets-tab-count{background:#0000001a;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600}.tickets-tab.active .tickets-tab-count{background:#fff3}.tickets-content{flex:1;overflow:hidden;position:relative}.tickets-support{height:100%;overflow-y:auto;padding:12px}.tickets-support-card{background:var(--bg-2);border:1px solid var(--line);border-radius:12px;padding:14px}.tickets-support-title h2{margin:0 0 6px;font-size:16px;font-weight:700;color:var(--text);display:flex;align-items:center;gap:10px}.tickets-support-title p{margin:0 0 12px;color:var(--muted);font-size:13px;line-height:1.4}.tickets-support-alert{padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:var(--surface-2);color:var(--text);font-size:13px;margin-bottom:12px}.tickets-support-alert.is-error{border-color:#dc262659;background:#dc26260f}.tickets-support-grid{display:grid;grid-template-columns:1fr;gap:12px}.tickets-support-field label{display:block;font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.tickets-support-field select,.tickets-support-field input,.tickets-support-field textarea{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--text);font-size:14px;font-family:inherit;box-sizing:border-box}.tickets-support-field select{appearance:none;background-color:var(--surface);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px}.tickets-support-field textarea{resize:vertical;min-height:110px}.tickets-support-field select:focus,.tickets-support-field input:focus,.tickets-support-field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent)}.tickets-support-actions{display:flex;justify-content:flex-end;margin-top:12px}.tickets-support-submit{padding:10px 18px;border:none;border-radius:10px;background:linear-gradient(135deg,#3b82f6,#16a34a);color:#fff;font-weight:700;cursor:pointer;transition:opacity .15s ease,transform .15s ease}.tickets-support-submit:hover:not(:disabled){transform:translateY(-1px)}.tickets-support-submit:disabled{opacity:.6;cursor:not-allowed}.tickets-list{height:100%;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:10px}.tickets-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:200px;color:var(--muted);gap:12px}.tickets-spinner{width:32px;height:32px;border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.tickets-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:200px;color:var(--muted);text-align:center;padding:20px}.tickets-empty i{font-size:48px;margin-bottom:12px;opacity:.5}.tickets-empty p{font-size:16px;font-weight:600;margin:0 0 4px;color:var(--text)}.tickets-empty span{font-size:13px}.ticket-card{background:var(--bg-2);border-radius:12px;padding:14px;border:1px solid var(--line);cursor:pointer;transition:all .2s ease;width:100%;text-align:left;font-family:inherit}.ticket-card:hover{border-color:var(--accent);box-shadow:0 4px 12px #00000014;transform:translateY(-1px)}.ticket-card.selected{border-color:var(--accent);background:linear-gradient(135deg,#3b82f60d,#16a34a0d)}.ticket-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.ticket-priority,.ticket-status{font-size:11px;font-weight:600;padding:4px 10px;border-radius:12px;text-transform:uppercase;letter-spacing:.3px}.priority-low{background:var(--badge-blue-bg);color:var(--badge-blue-text)}.priority-medium{background:var(--badge-amber-bg);color:var(--badge-amber-text)}.priority-high{background:var(--badge-red-bg);color:var(--badge-red-text)}.priority-urgent{background:var(--badge-red-bg);color:var(--badge-red-text);border:1px solid var(--badge-red-border);animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.status-open{background:var(--badge-blue-bg);color:var(--badge-blue-text)}.status-progress{background:var(--badge-amber-bg);color:var(--badge-amber-text)}.status-resolved{background:var(--badge-green-bg);color:var(--badge-green-text)}.status-closed{background:var(--badge-gray-bg);color:var(--badge-gray-text)}.ticket-card-body{margin-bottom:10px}.ticket-category{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);margin-bottom:6px}.ticket-category i{font-size:14px}.ticket-title{font-size:15px;font-weight:600;color:var(--text);margin:0 0 6px;line-height:1.3}.ticket-description{font-size:13px;color:var(--muted);margin:0;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ticket-card-footer{display:flex;align-items:center;justify-content:space-between;padding-top:10px;border-top:1px solid var(--line)}.ticket-meta{display:flex;flex-wrap:wrap;gap:10px}.ticket-meta-item{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--muted)}.ticket-meta-item i{font-size:12px}.ticket-time{font-size:11px;color:var(--muted);white-space:nowrap}.ticket-detail{position:fixed;inset:0;background:var(--bg);z-index:5000;display:flex;flex-direction:column;animation:slideIn .25s ease}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.ticket-detail-header{display:flex;align-items:center;gap:12px;padding:16px;border-bottom:1px solid var(--line);background:var(--bg-2);flex-shrink:0}.ticket-detail-back{width:40px;height:40px;border-radius:10px;border:1px solid var(--line);background:var(--bg-2);color:var(--text);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}.ticket-detail-back:hover{background:var(--bg)}.ticket-detail-title-wrap{flex:1;min-width:0}.ticket-number{font-size:12px;color:var(--muted);font-weight:500}.ticket-detail-title-wrap h2{font-size:16px;font-weight:600;margin:2px 0 0;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ticket-status-badge{font-size:11px;font-weight:600;padding:6px 12px;border-radius:14px;text-transform:uppercase;flex-shrink:0}.ticket-detail-content{flex:1;overflow-y:auto;padding:16px}.ticket-detail-section{background:var(--surface-2);border:1px solid var(--border-strong);border-radius:12px;padding:16px;margin-bottom:12px}.ticket-detail-section h3{font-size:14px;font-weight:600;color:var(--text);margin:0 0 12px}.ticket-detail-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}.ticket-detail-row:last-child{border-bottom:none}.ticket-detail-label{font-size:13px;color:var(--muted)}.ticket-detail-value{font-size:13px;font-weight:500;color:var(--text);display:flex;align-items:center;gap:6px}.ticket-detail-value i{font-size:14px;color:var(--muted)}.ticket-detail-description{font-size:14px;color:var(--text);line-height:1.6;margin:0;white-space:pre-wrap}.ticket-claim-btn{width:100%;padding:12px 14px;border:none;border-radius:12px;background:linear-gradient(135deg,#3b82f6,#16a34a);color:#fff;font-weight:700;font-size:14px;cursor:pointer;box-shadow:0 10px 24px #3b82f62e,0 6px 16px #16a34a1f;transition:transform .15s ease,opacity .15s ease}.ticket-claim-btn:hover:not(:disabled){transform:translateY(-1px)}.ticket-claim-btn:disabled{opacity:.65;cursor:not-allowed;transform:none}.ticket-claim-btn.is-mine{background:var(--surface-3);color:var(--text);border:1px solid var(--border-strong);box-shadow:none}.ticket-status-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.ticket-status-btn{padding:10px 12px;border:2px solid transparent;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease;opacity:.7}.ticket-status-btn:hover:not(:disabled){opacity:1;transform:scale(1.02)}.ticket-status-btn.active{opacity:1;border-color:var(--text)}.ticket-status-btn:disabled{cursor:not-allowed}.ticket-comments{max-height:300px;overflow-y:auto;margin-bottom:12px}.ticket-comment{background:var(--bg-2);border-radius:10px;padding:12px;margin-bottom:8px;border:1px solid var(--line)}.ticket-comment:last-child{margin-bottom:0}.ticket-comment-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.ticket-comment-author{font-size:13px;font-weight:600;color:var(--text)}.ticket-comment-time{font-size:11px;color:var(--muted)}.ticket-comment-content{font-size:13px;color:var(--text);line-height:1.5;margin:0}.ticket-no-comments{font-size:13px;color:var(--muted);text-align:center;padding:20px;margin:0}.ticket-add-comment{display:flex;flex-direction:column;gap:10px}.ticket-add-comment textarea{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;font-size:14px;font-family:inherit;background:var(--bg-2);color:var(--text);resize:none;transition:border-color .2s ease;min-height:44px;max-height:120px;line-height:1.35;box-sizing:border-box}.ticket-add-comment textarea:focus{outline:none;border-color:var(--accent)}.ticket-comment-submit{align-self:flex-end;padding:10px 20px;border:none;border-radius:8px;background:var(--accent);color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.ticket-comment-submit:hover:not(:disabled){background:var(--accent-hover)}.ticket-comment-submit:disabled{opacity:.5;cursor:not-allowed}@media(min-width:768px){.tickets-header{padding:20px 24px}.tickets-title{font-size:24px}.tickets-search input{font-size:16px}.tickets-view-modes{grid-template-columns:repeat(4,auto);justify-content:flex-start}.tickets-view-btn{flex-direction:row;padding:10px 16px;font-size:13px}.tickets-tabs{gap:8px}.tickets-tab{padding:10px 18px;font-size:14px}.tickets-content{display:flex}.tickets-support{padding:16px;width:100%}.tickets-support-card{padding:18px;max-width:900px}.tickets-support-grid{grid-template-columns:repeat(2,1fr)}.tickets-support-field-full{grid-column:1 / -1}.tickets-content.has-detail .tickets-list{width:400px;flex-shrink:0;border-right:1px solid var(--line)}.tickets-list{flex:1;min-width:0;padding:16px;gap:12px}.ticket-card{padding:16px}.ticket-title{font-size:16px}.ticket-detail{position:relative;flex:1;animation:none}.ticket-detail-back{display:none}.ticket-detail-header{padding:20px 24px}.ticket-detail-title-wrap h2{font-size:18px}.ticket-detail-content{padding:24px}.ticket-detail-section{padding:20px;margin-bottom:16px}.ticket-status-actions{grid-template-columns:repeat(4,1fr)}}@media(min-width:768px){.tickets-container.is-admin{background:var(--surface);overflow-y:auto}.tickets-container.is-admin .tickets-header{background:var(--surface);border-bottom:1px solid #e5e7eb;padding:20px 0;display:flex;flex-direction:column;gap:16px;margin-bottom:20px}.tickets-container.is-admin .tickets-breadcrumb{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);padding:0 24px;order:0}.tickets-container.is-admin .breadcrumb-separator{color:#9ca3af}.tickets-container.is-admin .breadcrumb-current{color:#0b1220;font-weight:600}.tickets-container.is-admin .tickets-header-top{margin-bottom:0;padding:0 24px;order:1}.tickets-container.is-admin .tickets-title{font-size:24px;font-weight:600;color:#0b1220}.tickets-container.is-admin .tickets-title i{color:#16a34a}.tickets-container.is-admin .tickets-filter-toggle{display:none}.tickets-container.is-admin .tickets-search{margin:0 24px;padding:0;order:4}.tickets-container.is-admin .tickets-search input{height:36px;padding:8px 40px 8px 36px;background:var(--surface);border:1px solid #e5e7eb;border-radius:6px;font-size:14px}.tickets-container.is-admin .tickets-search i{left:12px;font-size:16px;color:#64748b}.tickets-container.is-admin .tickets-search input:focus{border-color:#16a34a;box-shadow:0 0 0 3px #16a34a1a}.tickets-container.is-admin .tickets-search-clear{right:12px;background:#e5e7eb;color:#64748b}.tickets-container.is-admin .tickets-main-tabs{padding:0 24px;border-bottom:1px solid #e2e8f0;margin-bottom:0;gap:0;order:2}.tickets-container.is-admin .tickets-main-tabs .tickets-tab{padding:16px 24px;border:none;background:transparent;font-size:14px;font-weight:500;color:#64748b;cursor:pointer;border-bottom:2px solid transparent;border-radius:8px 8px 0 0}.tickets-container.is-admin .tickets-main-tabs .tickets-tab:hover{color:var(--text-secondary);background:var(--surface-2)}.tickets-container.is-admin .tickets-main-tabs .tickets-tab.active{color:#fff;background:linear-gradient(135deg,#3b82f6,#16a34a);border-bottom-color:transparent;box-shadow:none}.tickets-container.is-admin .tickets-main-tabs .tickets-tab.active:hover{color:#fff;background:linear-gradient(135deg,#3b82f6,#16a34a)}.tickets-container.is-admin .tickets-tabs{padding:0 24px;order:3}.tickets-container.is-admin .tickets-filters{background:var(--surface);border:1px solid #e5e7eb;margin:0 24px;order:5}.tickets-container.is-admin .tickets-filter-group select{background:var(--surface);border:1px solid #e5e7eb;border-radius:6px}.tickets-container.is-admin .tickets-filter-group select:focus{border-color:#16a34a;box-shadow:0 0 0 3px #16a34a1a}.tickets-container.is-admin .tickets-list{padding:16px 24px}.tickets-container.is-admin .ticket-detail{background:var(--surface)}}@media(min-width:1200px){.tickets-content.has-detail .tickets-list{width:450px}.ticket-detail-content{max-width:800px}}.tickets-container.sav-admin{height:100%;min-height:0;display:flex;flex-direction:column;background:var(--surface);overflow-y:auto;overflow-x:hidden;box-sizing:border-box;gap:20px;padding:0}.sav-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:20px 0;border-bottom:1px solid var(--line);margin-bottom:0;flex-shrink:0}.sav-breadcrumb{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.sav-breadcrumb .breadcrumb-separator{color:var(--text-soft)}.sav-breadcrumb .breadcrumb-current{color:var(--text);font-weight:600}.sav-header-main{display:flex;flex-direction:column;gap:16px;min-width:0}.sav-title{margin:0;font-size:24px;font-weight:600;color:var(--text)}.sav-subtitle{margin:0;font-size:13px;color:var(--muted)}.sav-header-actions{display:flex;align-items:center;gap:8px}.sav-btn-primary,.sav-btn-ghost{display:inline-flex;align-items:center;gap:8px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;padding:9px 16px;transition:all .15s ease;font-family:inherit;white-space:nowrap}.sav-btn-primary{border:none;background:linear-gradient(135deg,#3b82f6,#16a34a);color:#fff;box-shadow:0 6px 16px #16a34a2e}.sav-btn-primary:hover:not(:disabled){transform:translateY(-1px)}.sav-btn-primary:disabled{opacity:.6;cursor:not-allowed}.sav-btn-ghost{border:1px solid var(--line);background:var(--surface);color:var(--text)}.sav-btn-ghost:hover{border-color:var(--accent);color:var(--accent)}.sav-btn-sm{padding:7px 12px;font-size:12px;border-radius:7px}.sav-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.sav-kpi{display:flex;flex-direction:column;gap:6px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px 18px;box-shadow:0 1px 3px var(--shadow-color)}.sav-kpi-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--muted)}.sav-kpi-value{font-size:28px;font-weight:700;color:var(--text-strong);line-height:1.1}.sav-kpi-hint{font-size:12px;color:var(--muted)}.sav-kpi--accent{border-color:var(--badge-green-border);background:var(--badge-green-bg)}.sav-kpi--accent .sav-kpi-value,.sav-kpi--accent .sav-kpi-label,.sav-kpi--accent .sav-kpi-hint{color:var(--badge-green-text)}.sav-panel{display:flex;flex-direction:column;min-height:0;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 1px 3px var(--shadow-color);overflow:hidden}.sav-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line);flex-wrap:wrap}.sav-panel-title{margin:0;font-size:16px;font-weight:700;color:var(--text-strong);display:flex;align-items:center;gap:8px}.sav-panel-title i{color:var(--accent)}.sav-filter-tabs{display:flex;gap:4px;background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:3px}.sav-filter-tabs.gestion-hub-tabs{margin-top:.25rem;flex-wrap:wrap;width:fit-content;max-width:100%;align-self:flex-start}.sav-filter-tab{display:inline-flex;align-items:center;gap:6px;border:none;background:transparent;color:var(--muted);font-size:13px;font-weight:500;padding:6px 12px;border-radius:6px;cursor:pointer;font-family:inherit;transition:all .15s ease}.sav-filter-tab:hover{color:var(--text)}.sav-filter-tab.active{background:var(--surface);color:var(--text-strong);box-shadow:0 1px 3px var(--shadow-color)}.sav-filter-count{font-size:11px;font-weight:600;padding:1px 7px;border-radius:10px;background:var(--surface-3);color:var(--muted)}.sav-filter-tab.active .sav-filter-count{background:var(--badge-green-bg);color:var(--badge-green-text)}.sav-table-wrap{width:100%;flex:1 1 auto;min-height:200px;max-height:min(520px,calc(100vh - 380px));overflow:auto;-webkit-overflow-scrolling:touch}.sav-table-wrap .tickets-loading,.sav-table-wrap .tickets-empty{min-height:200px}.sav-table{width:100%;border-collapse:collapse;font-size:13px}.sav-table thead th{position:sticky;top:0;z-index:2;text-align:left;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);padding:12px 16px;border-bottom:1px solid var(--line);white-space:nowrap;background:var(--surface-2);box-shadow:0 1px 0 var(--line)}.sav-table tbody td{padding:14px 16px;border-bottom:1px solid var(--line);vertical-align:middle;color:var(--text)}.sav-row{cursor:pointer;transition:background .15s ease}.sav-row:hover{background:var(--surface-2)}.sav-row:last-child td{border-bottom:none}.sav-ref{font-weight:600;color:var(--text);white-space:nowrap}.sav-client{font-weight:600;color:var(--text-strong)}.sav-borne{font-size:12px;color:var(--muted);margin-top:2px}.sav-objet-cell{max-width:280px}.sav-objet{font-weight:500;color:var(--text)}.sav-objet-desc{font-size:12px;color:var(--muted);margin-top:2px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical}.sav-assignee{white-space:nowrap;color:var(--text)}.sav-muted{color:var(--muted)}.sav-action-cell{text-align:right;white-space:nowrap}.sav-sla{display:inline-block;font-size:12px;font-weight:600;padding:4px 10px;border-radius:8px;white-space:nowrap;border:1px solid transparent}.sav-sla--ok{background:var(--badge-green-bg);color:var(--badge-green-text);border-color:var(--badge-green-border)}.sav-sla--warn{background:var(--badge-amber-bg);color:var(--badge-amber-text);border-color:var(--badge-amber-border)}.sav-sla--danger,.sav-sla--overdue{background:var(--badge-red-bg);color:var(--badge-red-text);border-color:var(--badge-red-border)}.sav-sla--none{background:transparent;color:var(--muted);border:none;padding-left:0}.sav-origin{display:inline-block;font-size:12px;font-weight:500;padding:3px 10px;border-radius:12px;white-space:nowrap}.sav-origin--client{background:var(--badge-blue-bg);color:var(--badge-blue-text)}.sav-origin--auto{background:var(--surface-3);color:var(--text-secondary)}.sav-status{display:inline-block;font-size:12px;font-weight:600;padding:4px 10px;border-radius:12px;white-space:nowrap}.sav-status--open{background:var(--badge-amber-bg);color:var(--badge-amber-text)}.sav-status--progress{background:var(--badge-blue-bg);color:var(--badge-blue-text)}.sav-status--resolved{background:var(--badge-green-bg);color:var(--badge-green-text)}.sav-status--closed{background:var(--badge-gray-bg);color:var(--badge-gray-text)}.sav-panel-foot{display:flex;flex-direction:column;gap:4px;padding:12px 20px;border-top:1px solid var(--line);background:var(--surface-2);font-size:12px;color:var(--muted)}.sav-bottom{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.sav-info-card{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px 18px;box-shadow:0 1px 3px var(--shadow-color)}.sav-info-icon{flex-shrink:0;width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:18px;background:var(--badge-blue-bg);color:var(--badge-blue-text)}.sav-info-icon--warn{background:var(--badge-amber-bg);color:var(--badge-amber-text)}.sav-info-text{flex:1;min-width:0}.sav-info-text h3{margin:0 0 2px;font-size:14px;font-weight:600;color:var(--text-strong)}.sav-info-text p{margin:0;font-size:12px;color:var(--muted)}.sav-create .tickets-support{padding:0}.sav-create .tickets-support-card{max-width:920px}.sav-ticket-modal-overlay{position:fixed;inset:0;z-index:32000;background:var(--overlay);display:flex;align-items:flex-start;justify-content:center;padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));box-sizing:border-box;overflow-y:auto;animation:savModalFade .18s ease}@keyframes savModalFade{0%{opacity:0}to{opacity:1}}.sav-ticket-modal{width:min(960px,100%);max-height:min(92vh,880px);margin:auto;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:0 24px 48px var(--shadow-color);overflow:hidden;animation:savModalPop .22s ease}@keyframes savModalPop{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.sav-ticket-modal--sla-danger,.sav-ticket-modal--sla-overdue{border-top:4px solid var(--badge-red-border)}.sav-ticket-modal--sla-warn{border-top:4px solid var(--badge-amber-border)}.sav-ticket-modal--sla-ok{border-top:4px solid var(--badge-green-border)}.sav-ticket-modal--sla-none{border-top:4px solid var(--line)}.sav-ticket-modal__hero{padding:20px 24px;border-bottom:1px solid var(--line);background:var(--surface-2);flex-shrink:0}.sav-ticket-modal__hero-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.sav-ticket-modal__badges{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.sav-ticket-modal__ref{font-size:13px;font-weight:700;color:var(--text-strong);letter-spacing:.02em}.sav-ticket-modal__close{flex-shrink:0;width:36px;height:36px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.sav-ticket-modal__close:hover{color:var(--text);border-color:var(--border-strong);background:var(--surface-3)}.sav-ticket-modal__title{margin:0 0 10px;font-size:20px;font-weight:700;color:var(--text-strong);line-height:1.35}.sav-ticket-modal__meta{display:flex;flex-wrap:wrap;gap:14px;font-size:13px;color:var(--muted)}.sav-ticket-modal__meta span{display:inline-flex;align-items:center;gap:6px}.sav-ticket-modal__meta i{font-size:14px;color:var(--accent)}.sav-ticket-modal__body{display:grid;grid-template-columns:minmax(240px,280px) minmax(0,1fr);gap:0;min-height:0;flex:1;overflow:hidden}.sav-ticket-modal__aside{display:flex;flex-direction:column;gap:0;border-right:1px solid var(--line);background:var(--surface);overflow-y:auto}.sav-ticket-modal__main{display:flex;flex-direction:column;gap:0;min-width:0;overflow-y:auto;background:var(--surface-2)}.sav-ticket-modal__panel{padding:18px 20px;border-bottom:1px solid var(--line)}.sav-ticket-modal__panel:last-child{border-bottom:none}.sav-ticket-modal__panel h3{margin:0 0 12px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--muted)}.sav-ticket-modal__facts{margin:0;display:flex;flex-direction:column;gap:12px}.sav-ticket-modal__facts div{display:flex;flex-direction:column;gap:4px}.sav-ticket-modal__facts dt{margin:0;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--muted)}.sav-ticket-modal__facts dd{margin:0;font-size:14px;font-weight:500;color:var(--text);display:flex;align-items:center;gap:6px}.sav-ticket-modal__panel-label{margin:14px 0 8px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--muted)}.sav-ticket-modal__claim{width:100%;padding:11px 14px;border:none;border-radius:10px;background:linear-gradient(135deg,#3b82f6,#16a34a);color:#fff;font-size:13px;font-weight:700;cursor:pointer;transition:transform .15s ease,opacity .15s ease}.sav-ticket-modal__claim:hover:not(:disabled){transform:translateY(-1px)}.sav-ticket-modal__claim:disabled{opacity:.65;cursor:not-allowed}.sav-ticket-modal__claim.is-mine{background:var(--surface-3);color:var(--text);border:1px solid var(--border-strong)}.sav-ticket-modal__status-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.sav-ticket-modal__status-btn{padding:8px 10px;border:1px solid transparent;border-radius:8px;font-size:12px;font-weight:600;cursor:pointer;opacity:.85;transition:all .15s ease;font-family:inherit}.sav-ticket-modal__status-btn:hover:not(:disabled){opacity:1;transform:translateY(-1px)}.sav-ticket-modal__status-btn.is-active{opacity:1;border-color:var(--border-strong);box-shadow:inset 0 0 0 1px var(--border-strong)}.sav-ticket-modal__status-btn:disabled{cursor:not-allowed;opacity:.5}.sav-ticket-modal__description{margin:0;font-size:14px;line-height:1.65;color:var(--text);white-space:pre-wrap}.sav-ticket-modal__panel--comments{flex:1;display:flex;flex-direction:column;min-height:220px}.sav-ticket-modal__comments{flex:1;max-height:260px;overflow-y:auto;display:flex;flex-direction:column;gap:10px;margin-bottom:14px}.sav-ticket-modal__comment{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:12px 14px}.sav-ticket-modal__comment-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;font-size:12px}.sav-ticket-modal__comment-head span{font-weight:600;color:var(--text-strong)}.sav-ticket-modal__comment-head time{color:var(--muted);white-space:nowrap}.sav-ticket-modal__comment p{margin:0;font-size:13px;line-height:1.5;color:var(--text)}.sav-ticket-modal__no-comments{margin:0 0 14px;font-size:13px;color:var(--muted);text-align:center;padding:20px;border:1px dashed var(--line);border-radius:10px;background:var(--surface)}.sav-ticket-modal__add-comment{display:flex;flex-direction:column;gap:10px}.sav-ticket-modal__add-comment textarea{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--text);font-size:14px;font-family:inherit;resize:vertical;min-height:72px;box-sizing:border-box}.sav-ticket-modal__add-comment textarea:focus{outline:none;border-color:var(--accent)}.sav-ticket-modal__add-comment .sav-btn-primary{align-self:flex-end}@media(max-width:768px){.sav-ticket-modal{max-height:none;margin:0}.sav-ticket-modal__body{grid-template-columns:1fr}.sav-ticket-modal__aside{border-right:none;border-bottom:1px solid var(--line)}.sav-ticket-modal__status-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:1100px){.sav-kpis{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.sav-kpis,.sav-bottom{grid-template-columns:1fr}.sav-panel-head{flex-direction:column;align-items:stretch}.sav-filter-tabs{overflow-x:auto}}.confirm-by-name-modal{max-width:520px;width:min(95vw,520px);display:flex;flex-direction:column;overflow:hidden}.confirm-by-name-modal .modal-header{align-items:flex-start;gap:12px;padding:24px 24px 0;margin-bottom:0}.confirm-by-name-modal .modal-title-section{flex:1;min-width:0}.confirm-by-name-modal .station-selector{font-size:1.125rem;line-height:1.35}.confirm-by-name-modal .station-model{margin-top:8px;line-height:1.55}.confirm-by-name-modal__body{display:flex;flex-direction:column;gap:16px;padding:20px 24px 4px}.confirm-by-name-modal__hint{margin:0;font-size:14px;color:var(--muted);line-height:1.55}.confirm-by-name-modal__expected{margin:0;padding:12px 14px;border-radius:10px;background:var(--surface-muted, #f8fafc);border:1px solid var(--line);font-size:15px;line-height:1.4;word-break:break-word}.confirm-by-name-modal__expected strong{color:var(--text);font-weight:700;letter-spacing:.01em}.confirm-by-name-modal__field{display:flex;flex-direction:column;gap:8px}.confirm-by-name-modal__field .creation-form__label{margin:0}.confirm-by-name-modal__field .creation-form__input{width:100%;box-sizing:border-box}.confirm-by-name-modal__footer{display:flex;justify-content:flex-end;align-items:center;flex-wrap:wrap;gap:10px;padding:16px 24px 24px;margin-top:8px;border-top:1px solid var(--line)}.confirm-by-name-modal__danger-btn{background:#dc2626;color:#fff;border:1px solid #b91c1c;padding:10px 18px;border-radius:8px;font-weight:600;font-size:14px;cursor:pointer;box-shadow:0 4px 12px #dc262638;transition:background .15s ease,box-shadow .15s ease,opacity .15s ease}.confirm-by-name-modal__danger-btn:hover:not(:disabled){background:#b91c1c;box-shadow:0 6px 14px #dc262647}.confirm-by-name-modal__danger-btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.administration-container{height:100%;display:flex;flex-direction:column;background:var(--surface);overflow-y:auto;padding-bottom:0}.administration-header{display:flex;flex-direction:column;gap:16px;padding:20px 0;border-bottom:1px solid var(--line);margin-bottom:20px}.administration-breadcrumb{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.breadcrumb-separator{color:var(--text-soft);font-weight:500}.administration-title{margin:0;font-size:24px;font-weight:700;color:var(--text)}.administration-tabs{display:flex;padding:0 24px;border-bottom:1px solid var(--line)}.administration-tab{padding:16px 24px;border:none;background:transparent;font-size:14px;font-weight:500;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;transition:all .2s ease;border-top-left-radius:8px;border-top-right-radius:8px}.administration-tab:hover{color:var(--text-secondary);background:var(--surface-2)}.administration-tab.active{color:#fff;background:linear-gradient(135deg,#3b82f6,#16a34a);border-bottom-color:transparent}.administration-controls{display:flex;align-items:center;justify-content:space-between;gap:12px}.administration-search{position:relative;display:flex;align-items:center}.administration-search-icon{position:absolute;left:12px;color:var(--muted);font-size:16px}.administration-search input{padding:8px 12px 8px 36px;border:1px solid var(--line);border-radius:6px;font-size:14px;width:250px;background:var(--surface);color:var(--text)}.administration-search input::placeholder{color:var(--text-soft)}.administration-search input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #22c55e26}.administration-actions{display:flex;gap:8px}.administration-action-btn{display:flex;align-items:center;gap:6px;padding:8px 12px;border:1px solid var(--line);background:var(--surface);border-radius:6px;font-size:12px;color:var(--muted);cursor:pointer;transition:all .3s ease;position:relative;overflow:hidden}.administration-action-btn:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#3b82f6,#16a34a);opacity:0;transition:opacity .3s ease;z-index:0}.administration-action-btn:hover:before{opacity:1}.administration-action-btn:hover{color:#fff;border-color:transparent}.administration-action-btn i{font-size:12px;position:relative;z-index:1}.administration-content{flex:1;display:flex;flex-direction:column}.administration-table-container{flex:1;overflow:visible;display:flex;flex-direction:column;padding-bottom:72px}.administration-table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--line);border-radius:8px;overflow:hidden}.administration-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.administration-table th.sortable:hover{background:var(--surface-3)}.sort-indicator{font-size:12px;font-weight:600;color:var(--accent);margin-left:6px;min-width:12px;display:inline-block}.active-sort{background:var(--badge-green-bg)!important;border-left:3px solid var(--accent)}.active-filter{background:var(--badge-blue-bg)!important;border-left:3px solid var(--badge-blue-border)}.active-sort.active-filter{background:var(--badge-green-bg)!important;border-left:3px solid var(--accent)}.filter-header{display:flex;align-items:center;gap:4px;margin-bottom:8px}.filter-header span{font-size:12px;font-weight:600;color:var(--muted)}.filter-input{width:100%;padding:6px 8px;border:1px solid var(--line);border-radius:4px;font-size:11px;background:var(--surface);color:var(--text);transition:all .2s ease;text-align:center;box-sizing:border-box}.administration-table thead{background:var(--surface-2);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:1}.administration-table th{padding:12px 16px;text-align:left;font-size:12px;font-weight:600;color:var(--muted);border-right:1px solid var(--line);position:relative}.administration-table th:last-child{border-right:none}.administration-table th:hover{background:var(--surface-3)}.administration-table tbody tr{border-bottom:1px solid var(--line);transition:background-color .2s ease}.administration-table tbody tr:hover{background:var(--surface-2)}.administration-table tbody tr:last-child{border-bottom:none}.administration-table td{padding:12px 16px;font-size:12px;color:var(--text);border-right:1px solid var(--line)}.administration-table td:last-child{border-right:none}.action-btn{background:none;border:none;cursor:pointer;padding:4px 8px;border-radius:4px;transition:background-color .2s ease;display:flex;align-items:center;justify-content:center}.action-btn:hover{background:var(--surface-3)}.icon-menu{font-size:16px;font-weight:400;color:var(--text-secondary)}.history-status{display:flex;align-items:center;gap:6px}.history-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.history-status-dot.green{background:var(--icon-green)}.history-status-dot.blue{background:var(--icon-blue)}.history-status-dot.red{background:var(--icon-red)}.history-status-dot.orange{background:var(--icon-amber)}.history-status-text{font-weight:500;color:var(--text-secondary)}.history-station{font-weight:500;color:var(--text)}.history-connector{color:var(--muted)}.history-badge{color:var(--text-secondary);font-weight:600}.history-dates{color:var(--muted);font-size:11px}.filter-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.sort-indicator{font-size:12px;font-weight:600;color:var(--badge-blue-text);margin-left:8px;min-width:16px;display:flex;text-align:center;line-height:1}.filter-input{width:100%;padding:6px 8px;border:1px solid var(--line);border-radius:4px;font-size:12px;background:var(--surface);color:var(--text);text-align:center;transition:all .2s ease}.filter-input::placeholder{color:var(--text-soft)}.filter-input:focus{outline:none;border-color:var(--badge-blue-border);box-shadow:0 0 0 2px #3b82f626}.user-info{display:flex;flex-direction:column;gap:2px}.user-name{font-weight:600;color:var(--text)}.user-email{color:var(--muted);font-size:13px}.user-role,.user-status{font-weight:600;font-size:13px;color:var(--text-secondary)}.user-dates{color:var(--muted);font-size:13px}.badge-id{font-family:monospace;font-weight:600;color:var(--text);font-size:13px}.badge-holder{display:flex;flex-direction:column;gap:2px}.holder-name{font-weight:600;color:var(--text);font-size:13px}.holder-email{color:var(--muted);font-size:12px}.badge-type,.badge-status{font-weight:600;font-size:13px;color:var(--text-secondary)}.badge-dates{color:var(--muted);font-size:13px}.action-btn{padding:6px 12px;background:var(--surface-2);border:1px solid var(--line);border-radius:4px;font-size:12px;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.action-btn:hover{background:var(--surface-3);border-color:var(--border-strong)}.administration-pagination{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;margin-top:24px;padding:16px 0}.history-pagination-left,.history-pagination-controls{grid-column:1;justify-self:start}.history-pagination-center{grid-column:2;justify-self:center}.history-pagination-info{grid-column:3;justify-self:end}.administration-pagination-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid var(--border-strong);background:var(--surface);border-radius:6px;font-size:14px;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.administration-pagination-btn:hover:not(:disabled){background:var(--surface-muted);border-color:var(--text-soft)}.administration-pagination-btn:disabled{opacity:.5;cursor:not-allowed}.administration-pagination-btn.active{background:linear-gradient(135deg,#3b82f6,#16a34a);color:#fff;border-color:transparent}.administration-pagination-btn i{font-size:12px}.administration-container::-webkit-scrollbar{width:8px}.administration-container::-webkit-scrollbar-track{background:var(--surface-3);border-radius:4px}.administration-container::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:4px}.administration-container::-webkit-scrollbar-button{width:0;height:0;display:none}.administration-container{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}.admin-role-text--user{color:var(--badge-green-text)}.admin-role-text--admin{color:var(--badge-blue-text)}.admin-role-text--super-admin{color:var(--badge-red-text)}.admin-type-text--rfid{color:var(--badge-blue-text)}.admin-type-text--app{color:var(--badge-purple-text)}.admin-type-text--virtual{color:var(--badge-amber-text)}.admin-log-type--application{color:var(--badge-blue-text)}.admin-log-type--error{color:var(--badge-red-text)}.admin-log-type--http{color:var(--badge-green-text)}.admin-log-type--default{color:var(--muted)}.admin-log-filename{color:var(--text);text-decoration:underline;cursor:pointer}.admin-log-filename--muted{color:var(--text-soft);text-decoration:none;cursor:default}.administration-table tbody tr.admin-log-row:hover{background:var(--surface-2)}.admin-refresh-toast{position:absolute;top:0;right:0;padding:8px 16px;background:var(--badge-blue-bg);border:1px solid var(--badge-blue-border);border-radius:6px;font-size:12px;color:var(--badge-blue-text);z-index:10}.admin-form-section-title{font-weight:600;color:var(--text);font-size:13px;margin-top:4px}.admin-form-label{font-size:12px;color:var(--muted);display:block}.admin-state-message{padding:40px;text-align:center;color:var(--muted)}.admin-state-message--error{color:var(--badge-red-text)}.modal-content--admin-dialog .modal-body input,.modal-content--admin-dialog .modal-body select,.modal-content--admin-dialog .modal-body textarea{background:var(--surface);color:var(--text);border-color:var(--line)}.modal-content--admin-dialog .modal-body input::placeholder,.modal-content--admin-dialog .modal-body textarea::placeholder{color:var(--text-soft)}.modal-content--admin-dialog .creation-form__section-title{color:var(--text-strong);margin-top:.25rem}.modal-content--admin-dialog .creation-form__section-title:first-child{margin-top:0}.modal-content--admin-dialog .creation-form__label{color:var(--muted)}.modal-content--admin-dialog .creation-form__input,.modal-content--admin-dialog .creation-form__select,.modal-content--admin-dialog .creation-form__textarea{background:var(--surface);color:var(--text);border-color:var(--line)}.creation-form__entity-row{display:flex;align-items:stretch;gap:8px}.creation-form__entity-row .creation-form__select{flex:1;min-width:0}.creation-form__entity-add-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;flex-shrink:0;padding:0 14px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--text);font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .15s ease,border-color .15s ease}.creation-form__entity-add-btn:hover{background:var(--surface-muted, #f8fafc);border-color:var(--text-soft)}@media(max-width:768px){.administration-header{flex-direction:column;gap:16px;align-items:stretch}.administration-controls{flex-direction:column;gap:12px}.administration-search input{width:100%}.administration-table-container{overflow-x:auto}.administration-table{min-width:800px}}.gr-page{padding-bottom:2rem;width:100%;box-sizing:border-box}.gr-kpi-grid,.gr-reversements-panel,.gr-bottom-grid{width:100%}.gr-header-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.gr-header-copy{min-width:0;flex:1}.gr-title{margin-bottom:.35rem}.gr-subtitle{margin:0;font-size:.875rem;color:var(--muted);line-height:1.45;max-width:52rem}.gr-header-actions{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap;flex-shrink:0}.gr-period-filters{display:flex;align-items:center;gap:.5rem}.gr-period-select{padding:.5rem .75rem;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--text-secondary);font-size:.8125rem;font-weight:600}.gr-btn{padding:.55rem .95rem;border-radius:8px;font-size:.8125rem;font-weight:700;cursor:pointer;border:1px solid transparent;white-space:nowrap}.gr-btn:disabled{opacity:.55;cursor:not-allowed}.gr-btn--ghost{background:var(--surface);border-color:var(--line);color:var(--text-secondary)}.gr-btn--primary{background:var(--accent);color:#fff}.gr-loading,.gr-error{padding:1rem 0;color:var(--muted)}.gr-error{color:var(--badge-red-text)}.gr-kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.75rem;margin-bottom:1rem}@media(max-width:1200px){.gr-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.gr-kpi-grid{grid-template-columns:1fr}}.gr-kpi-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:1rem 1.1rem;display:flex;flex-direction:column;gap:.35rem;min-width:0}.gr-kpi-label{font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);line-height:1.3}.gr-kpi-value{font-size:1.375rem;font-weight:800;color:var(--text-strong);line-height:1.15}.gr-kpi-value--accent{color:var(--accent)}.gr-kpi-value--success{color:var(--badge-green-text)}.gr-kpi-value--danger{color:var(--badge-red-text)}.gr-kpi-meta{font-size:.75rem;color:var(--text-soft);line-height:1.35}.gr-panel{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:1.15rem 1.25rem;margin-bottom:1rem}.gr-reversements-panel{padding:0;overflow:visible}.gr-reversements-panel .sav-panel-head{margin-bottom:0}.gr-reversements-panel .gr-table-wrap{padding:0 1.25rem 1.15rem}.gr-reversements-panel .gr-footnotes{padding:0 1.25rem 1.15rem;margin-top:0}.gr-panel__header h2,.gr-panel__title{margin:0;font-size:1rem;font-weight:800;color:var(--text-strong)}.gr-table-wrap{overflow-x:auto}.gr-table{width:100%;border-collapse:collapse;min-width:960px}.gr-table th{text-align:left;padding:.65rem .75rem;font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border-bottom:1px solid var(--line);white-space:nowrap}.gr-table td{padding:.85rem .75rem;font-size:.875rem;color:var(--text-secondary);border-bottom:1px solid var(--line);vertical-align:top}.gr-table tbody tr:last-child td{border-bottom:none}.gr-table--compact td,.gr-table--compact th{padding-top:.7rem;padding-bottom:.7rem}.gr-table__empty{text-align:center;color:var(--muted)!important;padding:2rem!important}.gr-row--danger{background:var(--badge-red-bg)}.gr-row--warning{background:var(--badge-orange-bg)}.gr-cell-sub{font-size:.75rem;color:var(--muted);margin-top:.15rem}.gr-cell-muted{color:var(--muted)!important}.gr-cell-danger{color:var(--badge-red-text)!important;font-weight:700}.gr-cell-action{text-align:right;white-space:nowrap}.gr-client-link{border:none;background:none;padding:0;cursor:pointer;text-align:left;color:inherit}.gr-client-link strong{color:var(--text-strong)}.gr-client-link:hover strong{color:var(--accent)}.gr-link-btn{border:none;background:none;padding:0;color:var(--accent);font-size:.8125rem;font-weight:700;cursor:pointer}.gr-link-btn:hover{text-decoration:underline}.gr-status-pill{display:inline-flex;align-items:center;padding:.2rem .55rem;border-radius:999px;font-size:.75rem;font-weight:700;border:1px solid var(--line);background:var(--surface-3);color:var(--text-secondary);white-space:nowrap}.gr-status-pill--success{background:var(--badge-green-bg);border-color:var(--badge-green-border);color:var(--badge-green-text)}.gr-status-pill--danger{background:var(--badge-red-bg);border-color:var(--badge-red-border);color:var(--badge-red-text)}.gr-status-pill--warning{background:var(--badge-orange-bg);border-color:var(--badge-orange-border);color:var(--badge-orange-text)}.gr-status-pill--neutral{background:var(--surface-3);color:var(--muted)}.gr-footnotes{margin-top:1rem;display:flex;flex-direction:column;gap:.45rem}.gr-footnotes p{margin:0;font-size:.75rem;color:var(--text-soft);line-height:1.45}.gr-bottom-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:1rem;align-items:stretch}.gr-bottom-grid>.gr-panel{min-width:0}.gr-bottom-grid .gr-table-wrap{width:100%}.gr-bottom-grid .gr-table{min-width:0;width:100%}@media(max-width:1000px){.gr-bottom-grid{grid-template-columns:1fr}}.gr-process-list{margin:0;margin-top:.5rem;padding-left:1.15rem;display:flex;flex-direction:column;gap:.85rem;color:var(--text-secondary);font-size:.875rem;line-height:1.45}.gr-process-list strong{color:var(--text-strong)}.gc-list{display:flex;flex-direction:column;gap:16px;flex:1;min-height:0}.gc-table-row{cursor:pointer}.gc-table-row:hover td{background:var(--surface-2)}.gc-table-client{display:flex;flex-direction:column;gap:2px}.gc-table-client strong{color:var(--text-strong);font-weight:600}.gc-table-client span{font-size:12px;color:var(--muted)}.gc-table-action{text-align:right;white-space:nowrap}.gc-status-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:600;border:1px solid transparent}.gc-status-badge--active{background:var(--badge-green-bg);color:var(--badge-green-text);border-color:var(--badge-green-border)}.gc-status-badge--idle{background:var(--badge-gray-bg);color:var(--badge-gray-text);border-color:var(--badge-gray-border)}.gc-btn-ghost,.gc-btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:8px 14px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;text-decoration:none;transition:all .15s ease}.gc-btn-ghost{border:1px solid var(--line);background:var(--surface);color:var(--text)}.gc-btn-ghost:hover{border-color:var(--accent);color:var(--accent)}.gc-toggle-admin{flex-shrink:0;white-space:nowrap}.gc-toggle-admin--active{border-color:var(--tab-active);color:var(--tab-active);background:var(--surface);box-shadow:0 1px 3px var(--shadow-color)}.gc-toggle-admin--active:hover{border-color:var(--tab-active);color:var(--tab-active)}.gc-btn-primary{border:none;background:linear-gradient(135deg,#3b82f6,#16a34a);color:#fff}.gc-btn-primary:hover{transform:translateY(-1px)}.gc-detail{gap:0}.gc-detail-header{display:flex;flex-direction:column;gap:20px;padding:20px 0;border-bottom:1px solid var(--line);margin-bottom:20px}.gc-detail-header-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.gc-detail-title-row{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:8px 0}.gc-detail-title{margin:0;font-size:24px;font-weight:700;color:var(--text-strong)}.gc-detail-badges{display:flex;flex-wrap:wrap;gap:8px}.gc-detail-badge{display:inline-flex;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:600}.gc-detail-badge--blue{background:var(--badge-blue-bg);color:var(--badge-blue-text);border:1px solid var(--badge-blue-border)}.gc-detail-subline{margin:0;font-size:13px;color:var(--muted);line-height:1.5}.gc-detail-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.gc-kpi-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.gc-kpi-card{display:flex;flex-direction:column;gap:4px;padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 1px 2px var(--shadow-color)}.gc-kpi-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--muted)}.gc-kpi-card strong{font-size:18px;font-weight:700;color:var(--text-strong);line-height:1.2}.gc-kpi-card span:last-child{font-size:12px;color:var(--muted)}.gc-detail-tabs.sav-filter-tabs{border-bottom:none;margin:0;width:100%;max-width:100%;flex-wrap:wrap}.gc-detail-tab{border:none;background:transparent;padding:12px 16px;font-size:14px;font-weight:500;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;font-family:inherit;transition:color .15s ease,border-color .15s ease}.gc-detail-tab:hover{color:var(--text)}.gc-detail-tab.is-active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.gc-detail-body{flex:1;min-height:0;padding-bottom:24px}.gc-panel{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:18px 20px;box-shadow:0 1px 2px var(--shadow-color)}.gc-panel h2{margin:0 0 14px;font-size:15px;font-weight:700;color:var(--text-strong);display:flex;align-items:center;gap:8px}.gc-panel h2 i{color:var(--accent)}.gc-panel-foot{margin-top:16px}.gc-synthese-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.9fr);gap:16px;align-items:start}.gc-synthese-side{display:flex;flex-direction:column;gap:16px}.gc-activity-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.gc-activity-list li{display:grid;grid-template-columns:100px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line);font-size:13px}.gc-activity-list li:last-child{border-bottom:none}.gc-activity-date{color:var(--muted);white-space:nowrap}.gc-activity-label{color:var(--text)}.gc-activity-badge{display:inline-flex;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:600;white-space:nowrap}.gc-activity-badge--green{background:var(--badge-green-bg);color:var(--badge-green-text)}.gc-activity-badge--amber{background:var(--badge-amber-bg);color:var(--badge-amber-text)}.gc-activity-badge--blue{background:var(--badge-blue-bg);color:var(--badge-blue-text)}.gc-activity-badge--gray{background:var(--badge-gray-bg);color:var(--badge-gray-text)}.gc-reco{border-radius:10px;padding:12px 14px;margin-bottom:10px;display:flex;align-items:center;justify-content:space-between;gap:12px}.gc-reco:last-child{margin-bottom:0}.gc-reco p{margin:0;font-size:13px;color:var(--text);flex:1}.gc-reco--amber{background:var(--badge-amber-bg);border:1px solid var(--badge-amber-border)}.gc-reco--blue{background:var(--badge-blue-bg);border:1px solid var(--badge-blue-border)}.gc-reco--muted{background:var(--surface-2);border:1px dashed var(--line)}.gc-relation-list{margin:0;display:flex;flex-direction:column;gap:12px}.gc-relation-list div{display:flex;justify-content:space-between;gap:12px;font-size:13px}.gc-relation-list dt{margin:0;color:var(--muted)}.gc-relation-list dd{margin:0;font-weight:600;color:var(--text);text-align:right}.gc-health-score{color:var(--badge-green-text)!important}.gestion-breadcrumb a{color:var(--muted);text-decoration:none}.gestion-breadcrumb a:hover{color:var(--accent)}@media(max-width:1100px){.gc-kpi-row{grid-template-columns:repeat(2,minmax(0,1fr))}.gc-synthese-grid{grid-template-columns:1fr}}@media(max-width:640px){.gc-kpi-row{grid-template-columns:1fr}.gc-activity-list li{grid-template-columns:1fr;gap:6px}}.history-container.espace-client{color:var(--text);background:var(--surface);scrollbar-color:var(--scrollbar-thumb) transparent}.history-container.espace-client::-webkit-scrollbar-track{background:transparent}.history-container.espace-client .ec-surface-card{box-shadow:0 1px 2px var(--shadow-color)!important}[data-theme=dark] .history-container.espace-client .ec-surface-card,.history-container.espace-client .ec-filter-bar{box-shadow:none!important}.history-container.espace-client .ec-filter-bar input,.history-container.espace-client .ec-filter-bar select{background-color:var(--surface)!important;color:var(--text-secondary)!important;border-color:var(--line)!important}[data-theme=dark] .history-container.espace-client .ec-filter-bar input,[data-theme=dark] .history-container.espace-client .ec-filter-bar select{color-scheme:dark}.history-container.espace-client h2[style*="111827"],.history-container.espace-client h3[style*="111827"],.history-container.espace-client p[style*="111827"],.history-container.espace-client span[style*="111827"],.history-container.espace-client td[style*="111827"]{color:var(--text-strong)!important}.history-container.espace-client p[style*="6b7280"],.history-container.espace-client span[style*="6b7280"],.history-container.espace-client td[style*="64748b"],.history-container.espace-client td[style*="475569"],.history-container.espace-client span[style*="64748b"],.history-container.espace-client span[style*="475569"]{color:var(--muted)!important}.history-container.espace-client span[style*="9ca3af"],.history-container.espace-client p[style*="9ca3af"]{color:var(--text-soft)!important}.history-container.espace-client p[style*="374151"],.history-container.espace-client span[style*="374151"],.history-container.espace-client td[style*="374151"],.history-container.espace-client button[style*="374151"]{color:var(--text-secondary)!important}.history-container.espace-client div[style*="backgroundColor: white"],.history-container.espace-client div[style*="background-color: white"],.history-container.espace-client div[style*="backgroundColor: #fff"],.history-container.espace-client div[style*="background-color: #fff"]{background-color:var(--surface)!important}.history-container.espace-client button[style*="backgroundColor: white"],.history-container.espace-client button[style*="background-color: white"]{background-color:var(--surface)!important;border-color:var(--line)!important}.history-container.espace-client select[style*="backgroundColor: white"],.history-container.espace-client select[style*="background-color: white"]{background-color:var(--surface)!important;border-color:var(--line)!important;color:var(--text)!important}.history-container.espace-client input[style*=e5e7eb],.history-container.espace-client textarea[style*=e5e7eb],.history-container.espace-client select[style*=e5e7eb]{border-color:var(--line)!important;background-color:var(--surface)!important;color:var(--text)!important}.history-container.espace-client tr[style*=fff7ed]{background-color:var(--badge-orange-bg)!important}.history-container.espace-client div[style*=fafafa],.history-container.espace-client div[style*=f9fafb]{background-color:var(--surface-muted)!important}.history-container.espace-client div[style*=f8fafc]{background-color:var(--surface-2)!important}.history-container.espace-client div[style*=f3f4f6]{background-color:var(--surface-3)!important}.ec-dropbox-overlay{background-color:var(--overlay)!important}.ec-dropbox-dialog{background-color:var(--surface)!important;color:var(--text);box-shadow:0 25px 50px -12px var(--shadow-color)!important}.ec-dropbox-dialog h2{color:var(--text-strong)}.ec-dropbox-dialog__header{border-bottom:1px solid var(--line)}.ec-dropbox-dialog__close{background-color:var(--surface-3)!important;color:var(--muted)!important}.ec-dropbox-dialog__browse{border-color:var(--line)!important;background:var(--surface)!important;color:var(--text-secondary)!important}.ec-dropbox-dialog__list{border-color:var(--line)!important;background-color:var(--surface-muted)!important}.ec-dropbox-dialog__entry{border-bottom-color:var(--line)!important}.ec-dropbox-dialog__entry-name{color:var(--text-strong)!important}.ec-dropbox-dialog__entry-meta{color:var(--text-soft)!important}.ec-dropbox-success{background-color:var(--badge-green-bg)!important;color:var(--badge-green-text)!important}.ec-dropbox-error{background-color:var(--badge-red-bg)!important;color:var(--badge-red-text)!important}.ec-dropbox-connected{background-color:var(--badge-green-bg)!important;border-color:var(--badge-green-border)!important;color:var(--badge-green-text)!important}.ec-dropbox-disconnect{border-color:var(--badge-red-border)!important;color:var(--badge-red-text)!important}.ec-fc-page{display:flex;flex-direction:column;gap:1.25rem;margin-bottom:2rem;width:100%;min-width:0;box-sizing:border-box}.ec-fc-page__header{margin-bottom:.25rem}.ec-fc-page__title{margin:0;font-size:1.625rem;font-weight:800;color:var(--text-strong);line-height:1.2}.ec-fc-page__subtitle{margin:.35rem 0 0;font-size:.9375rem;color:var(--muted)}.ec-fc-contracts{display:flex;flex-direction:column;gap:1rem;width:100%;min-width:0;box-sizing:border-box}.ec-fc-contracts--duo{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem;align-items:stretch}.ec-fc-contracts__cell{min-width:0;max-width:100%;display:flex;box-sizing:border-box}.ec-fc-contracts__cell.espace-client-dashboard-block-in{width:100%;max-width:100%}.ec-fc-contracts__cell .ec-fc-contract-card{flex:1 1 auto;width:100%;min-width:0;max-width:100%;box-sizing:border-box}.ec-fc-contract-card--compact{padding:1rem;gap:.75rem;overflow:hidden}.ec-fc-contract-card__title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.ec-fc-contract-card__title-row .ec-fc-contract-card__title{flex:1 1 0;min-width:0}.ec-fc-contract-card__badges-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-top:.5rem;min-width:0}.ec-fc-contract-card__badges-row .ec-fc-contract-card__badges{margin-top:0;min-width:0;flex:1 1 auto}.ec-fc-contract-card--compact .ec-fc-contract-card__title{font-size:.9375rem;line-height:1.3;word-break:break-word;overflow-wrap:anywhere}.ec-fc-contract-card--compact .ec-fc-contract-card__badges{gap:.35rem}.ec-fc-contract-card--compact .ec-fc-badge{font-size:.6875rem;padding:.15rem .5rem}.ec-fc-contract-card--compact .ec-fc-contract-card__subtitle{margin-top:.45rem;font-size:.75rem;line-height:1.4;word-break:break-word;overflow-wrap:anywhere}.ec-fc-contract-card--compact .ec-fc-link-btn{font-size:.8125rem;flex-shrink:0;white-space:nowrap}.ec-fc-contract-card--compact .ec-fc-meta-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.ec-fc-contract-card--compact .ec-fc-meta-cell{padding:.55rem .6rem;border-radius:8px;min-width:0}.ec-fc-contract-card--compact .ec-fc-meta-cell__label{font-size:.625rem;margin-bottom:.2rem;letter-spacing:.03em;line-height:1.2}.ec-fc-contract-card--compact .ec-fc-meta-cell__value{font-size:.8125rem;line-height:1.25;word-break:break-word;overflow-wrap:anywhere}.ec-fc-contract-card--compact .ec-fc-renewal-banner{padding:.6rem .7rem;gap:.45rem}.ec-fc-contract-card--compact .ec-fc-renewal-banner i{font-size:.875rem}.ec-fc-contract-card--compact .ec-fc-renewal-banner p{font-size:.6875rem;line-height:1.45;min-width:0}.ec-fc-contract-card--compact .ec-fc-contract-card__footer{margin-top:auto;flex-direction:column;align-items:stretch;padding-top:.55rem;gap:.45rem}.ec-fc-contract-card--compact .ec-fc-mandate{font-size:.6875rem;line-height:1.4;width:100%}.ec-fc-contract-card--compact .ec-fc-mandate span{word-break:break-word;overflow-wrap:anywhere}.ec-fc-contract-card--compact .ec-fc-contract-card__footer .ec-fc-link-btn{align-self:flex-end}@media(max-width:900px){.ec-fc-contracts--duo{grid-template-columns:1fr}}.ec-fc-contract-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:1.35rem 1.5rem;display:flex;flex-direction:column;gap:1.1rem;box-sizing:border-box;min-width:0}.ec-fc-contract-card__header{display:block}.ec-fc-contract-card__title-block{min-width:0}.ec-fc-contract-card__title{margin:0;font-size:1.125rem;font-weight:800;color:var(--text-strong);line-height:1.35}.ec-fc-contract-card__badges{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;margin-top:.55rem}.ec-fc-contract-card__subtitle{margin:.5rem 0 0;font-size:.8125rem;color:var(--muted);line-height:1.45}.ec-fc-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .65rem;border-radius:999px;font-size:.75rem;font-weight:700;line-height:1.2}.ec-fc-badge--active{background:var(--badge-green-bg);color:var(--badge-green-text);border:1px solid var(--badge-green-border)}.ec-fc-badge--neutral{background:var(--surface-3);color:var(--text-secondary);border:1px solid var(--line)}.ec-fc-badge--outline{background:var(--surface-2);color:var(--text-secondary);border:1px solid var(--line)}.ec-fc-badge__dot{width:7px;height:7px;border-radius:50%;background:var(--accent);flex-shrink:0}.ec-fc-link-btn{border:none;background:none;padding:0;color:var(--accent);font-size:.875rem;font-weight:700;cursor:pointer;text-decoration:none;flex-shrink:0}.ec-fc-link-btn:hover{text-decoration:underline}.ec-fc-meta-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem}@media(max-width:900px){.ec-fc-meta-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.ec-fc-meta-cell{background:var(--surface-muted);border:1px solid var(--line);border-radius:10px;padding:.75rem .85rem;min-width:0}.ec-fc-meta-cell__label{display:block;font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:.35rem}.ec-fc-meta-cell__value{display:block;font-size:.9375rem;font-weight:700;color:var(--text-strong);line-height:1.3}.ec-fc-renewal-banner{display:flex;align-items:flex-start;gap:.65rem;padding:.85rem 1rem;border-radius:10px;background:var(--badge-green-bg);border:1px solid var(--badge-green-border);color:var(--badge-green-text)}.ec-fc-renewal-banner i{font-size:1rem;margin-top:.1rem;flex-shrink:0}.ec-fc-renewal-banner p{margin:0;font-size:.8125rem;line-height:1.5}.ec-fc-contract-card__footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-top:.35rem;border-top:1px solid var(--line)}.ec-fc-mandate{display:flex;align-items:flex-start;gap:.5rem;font-size:.8125rem;color:var(--muted);line-height:1.45;min-width:0;flex:1}.ec-fc-mandate i{color:var(--text-soft);margin-top:.1rem;flex-shrink:0}.ec-fc-invoices{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:1.35rem 1.5rem}.ec-fc-invoices__header{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.ec-fc-invoices__title{margin:0;font-size:1.125rem;font-weight:800;color:var(--text-strong)}.ec-fc-invoices__meta{font-size:.75rem;color:var(--text-soft)}.ec-fc-invoices__table-wrap{overflow-x:auto}.ec-fc-invoices__table{width:100%;border-collapse:collapse;min-width:640px}.ec-fc-invoices__table th{text-align:left;padding:.65rem .75rem;font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);border-bottom:1px solid var(--line)}.ec-fc-invoices__table td{padding:.9rem .75rem;font-size:.875rem;color:var(--text-secondary);border-bottom:1px solid var(--line);vertical-align:middle}.ec-fc-invoices__table tbody tr:last-child td{border-bottom:none}.ec-fc-invoices__ref,.ec-fc-invoices__amount{font-weight:700;color:var(--text-strong)!important}.ec-fc-invoices__action{text-align:right;white-space:nowrap}.ec-fc-invoices__actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:.75rem;flex-wrap:wrap}.ec-fc-invoices__empty{text-align:center;color:var(--muted)!important;padding:2rem!important}.ec-fc-payment-pill{display:inline-flex;align-items:center;padding:.25rem .65rem;border-radius:999px;font-size:.75rem;font-weight:700;background:var(--surface-3);color:var(--text-secondary);border:1px solid var(--line)}.ec-fc-payment-pill--paid{background:var(--badge-green-bg);color:var(--badge-green-text);border-color:var(--badge-green-border)}.ec-fc-invoices__footnote{margin:1rem 0 0;font-size:.8125rem;color:var(--muted);line-height:1.5}.ec-fc-inline-link{border:none;background:none;padding:0;color:var(--accent);font-size:inherit;font-weight:600;cursor:pointer;text-decoration:underline}.ec-fc-empty{padding:1.5rem;text-align:center;color:var(--muted);border-radius:14px;border:1px solid var(--line)}.ec-fc-modal-overlay{position:fixed;inset:0;z-index:10050;display:flex;align-items:center;justify-content:center;background:var(--overlay);padding:1rem}.ec-fc-modal{width:100%;max-width:720px;max-height:calc(100vh - 2rem);background:var(--surface);border-radius:16px;border:1px solid var(--line);box-shadow:0 25px 50px -12px var(--shadow-color);display:flex;flex-direction:column;overflow:hidden}.ec-fc-modal--compact{max-width:520px}.ec-fc-modal__header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.15rem 1.35rem;border-bottom:1px solid var(--line)}.ec-fc-modal__header h3{margin:0;font-size:1.125rem;font-weight:800;color:var(--text-strong)}.ec-fc-modal__header p{margin:.25rem 0 0;font-size:.8125rem;color:var(--muted)}.ec-fc-modal__actions{display:flex;align-items:center;gap:.45rem;flex-shrink:0}.ec-fc-modal__actions button{padding:.4rem .7rem;border-radius:8px;border:1px solid var(--line);background:var(--surface-muted);color:var(--text-secondary);font-size:.8125rem;font-weight:600;cursor:pointer}.ec-fc-modal__close{border:none;background:none;font-size:1.5rem;line-height:1;color:var(--text-soft);cursor:pointer;padding:.25rem .5rem}.ec-fc-modal__body{padding:1.25rem 1.35rem;overflow-y:auto;color:var(--text-secondary);font-size:.875rem;line-height:1.5}.ec-fc-modal__hint{margin-top:.85rem;color:var(--muted);font-size:.8125rem}.ec-fc-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem 1.25rem;margin:0}.ec-fc-detail-grid div{display:flex;flex-direction:column;gap:.2rem}.ec-fc-detail-grid dt{font-size:.75rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}.ec-fc-detail-grid dd{margin:0;font-weight:700;color:var(--text-strong)}.ec-fc-detail-grid__wide{grid-column:1 / -1}@media(max-width:640px){.ec-fc-detail-grid{grid-template-columns:1fr}}[data-theme=dark] .ec-fc-contract-card,[data-theme=dark] .ec-fc-invoices{background:var(--surface)}[data-theme=dark] .ec-fc-meta-cell{background:var(--surface-2)}.profil-container{height:100%;display:flex;flex-direction:column;background:var(--surface);overflow-y:auto;padding-bottom:16px}.profil-header{display:flex;flex-direction:column;gap:16px;padding:20px 0;border-bottom:1px solid var(--line);margin-bottom:20px}.profil-breadcrumb{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.breadcrumb-separator{color:var(--text-soft)}.breadcrumb-current{color:var(--text);font-weight:600}.profil-title{font-size:32px;font-weight:700;color:var(--text);margin:0}.profil-description{font-size:16px;color:var(--muted);margin:0;line-height:1.5}.profil-tabs{display:flex;border-bottom:1px solid var(--line);margin-top:8px}.profil-tab{display:flex;align-items:center;gap:8px;padding:16px 24px;border:none;background:transparent;font-size:14px;font-weight:500;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;transition:all .2s ease}.profil-tab:hover{color:var(--text-secondary);background:var(--surface-2)}.profil-tab.active{color:#16a34a;border-bottom-color:#16a34a;background:transparent}.profil-tab i{font-size:16px}.profil-content{flex:1;max-width:800px}.profil-sections{display:flex;flex-direction:column;gap:32px}.profil-section{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:24px}.profil-section-title{font-size:18px;font-weight:600;color:var(--text);margin:0 0 24px}.profil-security-block{display:flex;flex-direction:column;gap:16px;margin-bottom:24px;padding:16px;border-radius:8px;border:1px solid var(--line);background:var(--surface-muted)}.profil-security-row{display:flex;justify-content:space-between;align-items:center;gap:16px}.profil-security-title{font-size:16px;font-weight:600;margin:0 0 4px;color:var(--text)}.profil-security-subtitle{font-size:13px;color:var(--muted);margin:0}.profil-toggle{position:relative;display:inline-flex;align-items:center;cursor:pointer}.profil-toggle input{opacity:0;width:0;height:0}.profil-toggle-slider{width:44px;height:24px;background:var(--border-strong);border-radius:999px;position:relative;transition:background .2s ease}.profil-toggle-slider:after{content:"";width:18px;height:18px;background:var(--surface);border-radius:50%;position:absolute;top:3px;left:3px;transition:transform .2s ease;box-shadow:0 2px 6px #00000026}.profil-toggle input:checked+.profil-toggle-slider{background:#16a34a}.profil-toggle input:checked+.profil-toggle-slider:after{transform:translate(20px)}.profil-2fa-setup,.profil-2fa-disable{display:flex;flex-direction:column;gap:12px}.profil-qr-wrap{display:flex;justify-content:center;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px;width:fit-content}.profil-code-block{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:13px;padding:10px 12px;border-radius:6px;border:1px solid var(--line);background:var(--surface);color:var(--text);word-break:break-all}.profil-2fa-link{font-size:13px;color:#2563eb;font-weight:600}.profil-form-group{margin-bottom:24px}.profil-label{display:block;font-size:14px;font-weight:500;color:var(--text-secondary);margin-bottom:8px}.profil-input{width:100%;padding:12px 16px;border:1px solid var(--border-strong);border-radius:6px;font-size:14px;color:var(--text);background:var(--surface);transition:all .2s ease;box-sizing:border-box}.profil-input:focus{outline:none;border-color:#16a34a;box-shadow:0 0 0 3px #16a34a1a}.profil-input::placeholder{color:var(--text-soft)}.profil-input-container{position:relative;display:flex;align-items:center}.profil-password-toggle{position:absolute;right:12px;background:none;border:none;cursor:pointer;padding:4px;color:var(--muted);transition:color .2s ease}.profil-password-toggle:hover{color:var(--text-secondary)}.profil-password-toggle i{font-size:16px}.profil-help-text{font-size:12px;color:var(--muted);margin-top:8px;line-height:1.4}.profil-info-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-top:.75rem}.profil-info-grid--compact{gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.profil-info-card{padding:1rem;border:1px solid var(--line);border-radius:12px;background:var(--surface-muted)}.profil-info-card-label{margin-bottom:.25rem}.profil-info-card-value{font-weight:700;color:var(--text-strong)}.profil-info-card-value.is-success{color:var(--badge-green-text)}.profil-info-card-value.is-warn{color:var(--badge-amber-text)}.profil-detail-stack{display:grid;gap:1rem;margin-top:.75rem}.profil-detail-card{padding:1rem;border-radius:12px;border:1px solid var(--line);background:var(--surface-muted)}.profil-detail-card p{margin:.35rem 0 0;font-weight:600;color:var(--text)}.profil-detail-card ul{margin:.35rem 0 0;padding-left:1.25rem;color:var(--text-secondary)}.profil-info-banner{background:var(--badge-blue-bg);border:1px solid var(--badge-blue-border);color:var(--badge-blue-text)}.profil-mini-table{width:100%;border-collapse:collapse;margin-top:.5rem;font-size:.875rem;color:var(--text-secondary)}.profil-mini-table thead tr{text-align:left;border-bottom:1px solid var(--line)}.profil-mini-table th{padding:.5rem 0;color:var(--muted);font-weight:600}.profil-mini-table tbody tr{border-bottom:1px solid var(--line)}.profil-mini-table td{padding:.5rem}.profil-mini-table td:first-child{padding-left:0}.profil-save-btn{background:linear-gradient(135deg,#3b82f6,#16a34a);color:#fff;border:none;padding:12px 24px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.profil-save-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #16a34a4d}.profil-password-requirements{margin-top:12px;padding:16px;background:var(--surface-2);border:1px solid var(--line);border-radius:6px}.profil-requirements-title{font-size:14px;font-weight:500;color:var(--text-secondary);margin:0 0 12px}.profil-requirements-list{list-style:none;padding:0;margin:0}.profil-requirement{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);margin-bottom:6px}.profil-requirement:last-child{margin-bottom:0}.profil-requirement-icon{font-size:12px;width:16px;text-align:center}.profil-change-password-btn{background:linear-gradient(135deg,#3b82f6,#16a34a);color:#fff;border:none;padding:12px 24px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.profil-change-password-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #16a34a4d}.profil-change-password-btn:disabled{background:#9ca3af;cursor:not-allowed;transform:none;box-shadow:none}.profil-requirement.valid{color:#16a34a}.profil-error-text{font-size:12px;color:#ef4444;margin-top:8px}.profil-message{padding:12px 16px;border-radius:6px;font-size:14px;margin-bottom:16px}.profil-message-error{background:var(--badge-red-bg);border:1px solid var(--badge-red-border);color:var(--badge-red-text)}.profil-message-success{background:var(--badge-green-bg);border:1px solid var(--badge-green-border);color:var(--badge-green-text)}.profil-message-warning{background:var(--badge-amber-bg);border:1px solid var(--badge-amber-border);color:var(--badge-amber-text)}.profil-choice-group{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.35rem}.profil-choice-btn{padding:.45rem 1rem;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;border:1px solid var(--line);background:var(--surface-2);color:var(--text-secondary);font-family:inherit;transition:background .15s ease,border-color .15s ease,color .15s ease}.profil-choice-btn:hover{background:var(--surface-3);border-color:var(--border-strong)}.profil-choice-btn.is-active{background:linear-gradient(135deg,#3b82f6,#16a34a);color:#fff;border-color:transparent}.profil-choice-btn.is-active:hover{transform:translateY(-1px);box-shadow:0 4px 12px #16a34a4d}.profil-notifications{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:24px}.profil-logout-btn{background:#ef4444;color:#fff;border:none;padding:12px 24px;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}.profil-logout-btn:hover{background:#dc2626;transform:translateY(-1px);box-shadow:0 4px 12px #ef444459}.parametres-dropbox-block{display:flex;flex-direction:column;gap:1rem}.parametres-dropbox-linked,.parametres-dropbox-unlinked{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem}.parametres-dropbox-connect{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.65rem 1.1rem;border:none;border-radius:10px;background:#0061ff;color:#fff;font-size:.875rem;font-weight:600;cursor:pointer;transition:opacity .2s ease,transform .2s ease}.parametres-dropbox-connect:hover:not(:disabled){opacity:.92;transform:translateY(-1px)}.parametres-dropbox-connect:disabled{opacity:.7;cursor:wait}.parametres-dropbox-connect i{display:flex;font-size:.9rem}.parametres-dropbox-disconnect{padding:.45rem .85rem;border-radius:8px;border:1px solid var(--badge-red-border);background:var(--surface);color:var(--badge-red-text);font-size:.8125rem;font-weight:600;cursor:pointer}.parametres-dropbox-disconnect:hover:not(:disabled){background:var(--badge-red-bg)}.parametres-dropbox-disconnect:disabled{opacity:.7;cursor:wait}@media(max-width:768px){.profil-container{padding:16px}.profil-title{font-size:24px}.profil-section{padding:16px}.profil-tabs{flex-direction:column}.profil-tab{justify-content:center}}.parametres-collapse{border:1px solid var(--line);border-radius:12px;background:var(--surface)}.parametres-collapse-summary{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:1rem 1.25rem;cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none}.parametres-collapse-summary::-webkit-details-marker{display:none}.parametres-collapse-title{margin:0;font-size:1.125rem;font-weight:700;color:var(--text)}.parametres-collapse-chevron{flex-shrink:0;color:var(--muted);transition:transform .2s ease}.parametres-circuit-key{font-size:.78rem;font-weight:700;color:var(--muted);justify-self:end}.parametres-collapse[open] .parametres-collapse-chevron{transform:rotate(180deg)}.parametres-collapse-body{padding:0 1.25rem 1.25rem;border-top:1px solid var(--line)}.theme-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.75rem}.theme-option{display:flex;align-items:center;gap:.75rem;padding:.85rem 1rem;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--text);cursor:pointer;text-align:left;font-family:inherit;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.theme-option:hover{background:var(--surface-2);border-color:var(--border-strong)}.theme-option.is-active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);background:var(--surface)}.theme-option-icon{display:grid;place-items:center;width:2.25rem;height:2.25rem;flex-shrink:0;border-radius:8px;background:var(--surface-2);color:var(--accent);font-size:1.05rem}.theme-option.is-active .theme-option-icon{background:var(--accent);color:#fff}.theme-option-text{display:flex;flex-direction:column;min-width:0}.theme-option-label{font-weight:600;font-size:.92rem;color:var(--text)}.theme-option-desc{font-size:.78rem;color:var(--muted)}.theme-option-check{margin-left:auto;color:var(--accent);display:grid;place-items:center}.operator-shell{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh;background:var(--bg);overflow:visible}.operator-header{background:var(--bg-2);border-bottom:1px solid var(--line);padding:16px 20px;flex-shrink:0;position:relative;z-index:100}.operator-header:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#3b82f6,#16a34a)}.operator-header-content{display:flex;align-items:center;gap:14px;max-width:600px;margin:0 auto}.operator-logo{width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,#3b82f6,#16a34a);display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 4px 12px #3b82f640}.operator-logo img{width:28px;height:28px;filter:brightness(0) invert(1)}.operator-header-info{flex:1;min-width:0}.operator-greeting{font-size:12px;color:var(--muted);font-weight:500;text-transform:uppercase;letter-spacing:.5px}.operator-page-title{font-size:20px;font-weight:700;color:var(--text);margin:2px 0 0;line-height:1.2}.operator-content{flex:1;overflow-y:visible;overflow-x:hidden}.operator-content>*{padding-bottom:80px}.operator-bottom-nav{position:fixed;bottom:0;left:0;right:0;background:var(--bg-2);border-top:1px solid var(--line);display:flex;justify-content:space-around;align-items:stretch;padding:8px 16px;padding-bottom:calc(8px + env(safe-area-inset-bottom,0px));z-index:1000;box-shadow:0 -4px 20px #00000014}.operator-nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:10px 24px;border-radius:16px;text-decoration:none;color:var(--muted);font-size:12px;font-weight:600;transition:all .25s ease;position:relative;min-width:80px}.operator-nav-item i{font-size:22px;transition:transform .25s ease}.operator-nav-item span{transition:color .25s ease}.operator-nav-item:hover{color:var(--accent);background:#16a34a14}.operator-nav-item:hover i{transform:scale(1.1)}.operator-nav-item.active{color:#fff;background:linear-gradient(135deg,#3b82f6,#16a34a);box-shadow:0 4px 16px #3b82f64d}.operator-nav-item.active i{transform:scale(1.15)}.operator-nav-item.active:before{content:"";position:absolute;top:-8px;left:50%;transform:translate(-50%);width:24px;height:3px;background:linear-gradient(90deg,#3b82f6,#16a34a);border-radius:0 0 3px 3px}.operator-shell .tickets-container{height:100%}.operator-shell .tickets-header{position:sticky;top:0;z-index:50}.operator-shell .profil-container{padding-bottom:100px}@media(min-width:768px){.operator-header{padding:20px 24px}.operator-header-content{max-width:800px}.operator-logo{width:52px;height:52px}.operator-logo img{width:32px;height:32px}.operator-page-title{font-size:24px}.operator-greeting{font-size:13px}.operator-bottom-nav{padding:12px 24px;justify-content:center;gap:16px}.operator-nav-item{padding:12px 32px;min-width:120px;flex-direction:row;gap:10px;font-size:14px}.operator-nav-item i{font-size:20px}}@media(min-width:1024px){.operator-shell{max-width:100%}.operator-header-content{max-width:1000px}.operator-content{max-width:1200px;margin:0 auto;width:100%}.operator-bottom-nav{max-width:600px;margin:0 auto;left:50%;transform:translate(-50%);border-radius:20px 20px 0 0;border-left:1px solid var(--line);border-right:1px solid var(--line)}}@media(prefers-color-scheme:dark){.operator-bottom-nav{box-shadow:0 -4px 20px #0000004d}}@keyframes slideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.operator-bottom-nav{animation:slideUp .3s ease}@supports (padding-bottom: env(safe-area-inset-bottom)){.operator-bottom-nav{padding-bottom:calc(8px + env(safe-area-inset-bottom))}.operator-content>*{padding-bottom:calc(80px + env(safe-area-inset-bottom))}}.auth-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:48px 24px;background:radial-gradient(circle at 10% 10%,rgba(59,130,246,.35),transparent 55%),radial-gradient(circle at 85% 15%,rgba(22,163,74,.45),transparent 60%),var(--bg)}.auth-wrapper{width:min(960px,100%);display:flex;border-radius:24px;background:var(--bg-2);overflow:hidden;box-shadow:0 32px 70px #0f172a2e,0 18px 34px #0f172a1f;border:1px solid rgba(148,163,184,.25)}.auth-hero{flex:1;background:linear-gradient(135deg,#2563eb,#16a34a);color:#fff;display:flex;flex-direction:column;justify-content:space-between;gap:40px;padding:48px 40px}.auth-hero-top{display:flex;flex-direction:column;gap:24px}.auth-brand-block{display:flex;align-items:center}.auth-logo{max-width:200px;max-height:72px;width:auto;height:auto;object-fit:contain}.auth-logo-text{width:auto;max-width:160px;height:auto;max-height:72px;object-fit:contain}.auth-logo-text-white{filter:brightness(0) invert(1)}.auth-hero-title{margin:0;font-size:28px;line-height:1.2;font-weight:700}.auth-hero-subtitle{margin:0;font-size:15px;line-height:1.5;color:#f8fafcd9}.auth-feature-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:14px}.auth-feature-item{display:flex;align-items:center;gap:12px;font-size:14px;font-weight:500;color:#f8fafce6}.auth-feature-icon{width:34px;height:34px;border-radius:9999px;background:#ffffff26;display:grid;place-items:center;color:#fff}.auth-hero-footer{display:flex;flex-direction:column;gap:12px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#e2e8f0e6}.auth-panel{flex:1;background:var(--bg-2);display:flex;flex-direction:column;gap:24px;padding:48px 56px;box-sizing:border-box}.auth-header{display:flex;flex-direction:column;gap:8px}.auth-kicker{font-size:12px;text-transform:uppercase;letter-spacing:.2em;color:var(--muted)}.auth-title{color:var(--text);font-size:28px;margin:0;font-weight:700}.auth-subtitle{color:var(--muted);margin:0;font-size:14px;line-height:1.5}.auth-links{margin-top:auto;display:flex;justify-content:center;align-items:center;gap:16px;font-size:13px;color:var(--muted)}.auth-link{color:#2563eb;font-weight:600;font-size:12px}.auth-sep{width:6px;height:6px;border-radius:9999px;background:var(--line)}.auth-form{display:flex;flex-direction:column;gap:12px}.auth-field{display:flex;flex-direction:column;gap:6px}.auth-label{color:var(--muted);font-size:13px}.auth-input{background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:10px 12px;outline:none;width:100%;box-sizing:border-box}.auth-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f626}.auth-primary-btn{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:10px 12px;cursor:not-allowed;margin-top:4px}.auth-primary-btn:enabled{cursor:pointer}.auth-primary-btn:enabled:hover{background:var(--accent-hover)}.auth-note{color:var(--muted);font-size:12px;text-align:center}.auth-error{color:#dc2626;font-size:12px}.auth-notice{font-size:13px;text-align:center}.auth-notice.info{color:var(--muted)}.auth-notice.success{color:#16a34a}.auth-notice.error{color:#dc2626}.auth-forgot{display:flex;flex-direction:column;gap:20px}.auth-back-link,.auth-alt-action{text-align:center}.auth-password-wrapper{position:relative}.auth-password-wrapper .auth-input{padding-right:44px}.auth-eye{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:none;background:transparent;cursor:pointer;display:grid;place-items:center;width:32px;height:32px;color:var(--muted);transition:color .2s ease}.auth-eye:hover,.auth-eye:focus{color:var(--text);outline:none}.auth-card{background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:12px}.auth-code{display:block;background:var(--surface-2);color:var(--text-secondary);border:1px solid var(--line);border-radius:6px;padding:8px 10px;margin-top:6px;word-break:break-all}@media(max-width:960px){.auth-shell{padding:32px 16px}.auth-wrapper{flex-direction:column}.auth-hero{padding:36px 28px;align-items:center;text-align:center}.auth-brand-block{justify-content:center}.auth-feature-list{align-items:center}.auth-feature-item{justify-content:center}.auth-panel{padding:36px 28px}.auth-links{flex-direction:column;align-items:stretch;gap:16px}.auth-sep{display:none}}@media(max-width:600px){.auth-hero{display:none}.auth-panel{padding:32px 24px}.auth-wrapper{box-shadow:none;background:transparent}}
