:root{--bg: #0a0f1e;--panel: #111a34;--panel-2: #0f172a;--muted: #93a4c8;--text: #eaf0ff;--accent: #6c8cff;--accent-2: #3b82f6;--ok: #22c55e;--warn: #ea580c;--bad: #ef4444}body{margin:0;background:radial-gradient(1200px 700px at 20% 0%,#121b3c,#0a0f1e 65%);color:var(--text);font-family:Inter,system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.app{display:flex;min-height:100vh}.main{flex:1;display:flex;flex-direction:column;min-width:0}.topbar{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#0000000a;border-bottom:1px solid var(--border);position:sticky;top:0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:20}.theme-toggle{background:transparent;border:1px solid rgba(255,255,255,.25);padding:8px 10px;border-radius:10px;cursor:pointer}.card{background:linear-gradient(180deg,var(--border),rgba(0,0,0,.02));border:1px solid var(--border);border-radius:16px;padding:16px;min-height:130px;box-shadow:0 12px 30px #00000047;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.card h3{margin:0 0 8px;font-size:13px;color:var(--muted);font-weight:600;letter-spacing:.3px}.table{width:100%;border-collapse:collapse}.table th,.table td{border-bottom:1px solid var(--border);padding:10px 8px;text-align:left;font-size:14px}.table th{color:var(--muted);font-weight:600}.table tbody tr:hover{background:var(--surface)}.row-actions{display:flex;gap:8px}.tabs{display:flex;gap:10px;position:relative;margin-bottom:12px;border-bottom:1px solid rgba(0,0,0,.1)}.tab{padding:10px 14px;border-radius:10px;cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--muted)}.tab.active{background:var(--border);color:var(--text)}.tab-ind{position:absolute;bottom:-1px;height:2px;background:var(--accent-2);transition:all .25s ease;left:0;width:0}.skeleton{background:linear-gradient(90deg,var(--border),rgba(0,0,0,.02),var(--border));background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:8px;height:18px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.login-panel{width:min(480px,92vw);padding:24px;border-radius:22px;background:linear-gradient(180deg,rgba(255,255,255,.07),var(--surface));border:1px solid rgba(0,0,0,.1);box-shadow:0 10px 35px #00000059}.input{width:100%;padding:12px 14px;border-radius:12px;border:1px solid rgba(255,255,255,.18);background:#ffffff0d;color:var(--text);margin-bottom:12px}.btn{background:var(--accent-2);color:#fff;border:none;border-radius:10px;padding:10px 14px;font-weight:700;cursor:pointer}.btn.secondary{background:transparent;border:1px solid rgba(255,255,255,.2)}.btn:disabled{opacity:.6;cursor:not-allowed}.sidebar{width:240px;background:var(--panel-2);border-right:1px solid var(--border);padding:16px;display:flex;flex-direction:column;gap:10px}.sidebar .logo{font-weight:800;letter-spacing:.4px;margin-bottom:8px}.link{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;color:var(--text);opacity:.85}.link:hover{background:var(--border)}.link.active{background:#ffffff1a;box-shadow:inset 0 0 0 1px #ffffff1f;opacity:1}.link:focus-visible{outline:2px solid var(--accent-2);outline-offset:2px}.dark body{background:#0a0f1e}.table-wrap{max-height:66vh;overflow:auto;border-radius:12px}.table-advanced thead th{position:sticky;top:0;background:#0f172aeb;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:1}.table-advanced tbody tr:hover{background:var(--surface)}.th-sort{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.th-sort .sort-ind{display:inline-block;margin-left:8px;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;opacity:.35}.th-sort .sort-ind.asc{border-bottom:6px solid var(--muted)}.th-sort .sort-ind.desc{border-top:6px solid var(--muted)}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;flex-wrap:wrap}.toolbar-left{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.toolbar-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.search{display:flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:10px;padding:8px 10px;background:var(--panel)}.search input{background:transparent;border:none;outline:none;color:var(--text);min-width:260px}.segmented{display:inline-flex;border:1px solid rgba(255,255,255,.15);border-radius:10px;overflow:hidden}.segmented button{background:transparent;color:var(--text);padding:8px 12px;border:none;cursor:pointer}.segmented button.on{background:#ffffff1f}.page-size{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:13px}.page-size select{background:#ffffff0d;color:var(--text);border:1px solid rgba(255,255,255,.15);border-radius:8px;padding:6px 8px}.pager{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:10px}.chip{display:inline-block;padding:3px 8px;border-radius:999px;font-size:12px;border:1px solid rgba(255,255,255,.15);color:var(--muted);background:var(--border)}.chip-ok{color:#0f5132;background:#22c55e2e;border-color:#22c55e59}.chip-bad{color:#58151c;background:#ef444433;border-color:#ef444459}:root{--bg: #0b0f1a;--bg-2:#0a0e1a;--surface:#0f172a;--surface-2:#111a34;--line: var(--border);--text:#eaf0ff;--muted:#93a4c8;--accent:#6c8cff;--accent-2:#3b82f6;--accent-3:#7c3aed;--ok:#22c55e;--warn:#ea580c;--bad:#ef4444;--blur: 12px;--shadow-1: 0 10px 25px rgba(0,0,0,.35);--glow: 0 0 0 1px rgba(0,0,0,.04) inset, 0 0 60px rgba(59,130,246,.07)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;color:var(--text);font-family:Inter,system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:radial-gradient(1200px 700px at 10% -10%,#162347 0%,transparent 60%),radial-gradient(900px 600px at 85% -5%,#1e2b57 0%,transparent 55%),linear-gradient(180deg,#0b0f1a,#0b0f1a);animation:bg-pan 26s linear infinite alternate;position:relative}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;background:radial-gradient(2px 2px at 20px 20px,rgba(255,255,255,.05),transparent 60%),radial-gradient(2px 2px at 80px 60px,rgba(0,0,0,.04),transparent 60%);background-size:120px 120px,140px 140px;mix-blend-mode:overlay;opacity:.35}@keyframes bg-pan{0%{background-position:0 0,0 0,0 0}to{background-position:-120px -60px,90px -40px,0 0}}a{color:inherit;text-decoration:none}.app{display:flex;min-height:100%}.main{flex:1;display:flex;flex-direction:column;min-width:0;position:relative;z-index:1}.container{max-width:1440px;margin:0 auto;padding:20px;width:100%}.topbar{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#1118278c;border-bottom:1px solid var(--line);position:sticky;top:0;-webkit-backdrop-filter:blur(var(--blur));backdrop-filter:blur(var(--blur));z-index:20;box-shadow:var(--shadow-1)}.topbar .spacer{flex:1}.theme-toggle{background:transparent;border:1px solid rgba(255,255,255,.25);padding:8px 10px;border-radius:10px;cursor:pointer;color:var(--text)}.grid{display:grid;gap:16px}.grid.kpis{grid-template-columns:repeat(2,1fr)}@media (min-width:992px){.grid.kpis{grid-template-columns:repeat(4,1fr)}}.card{background:linear-gradient(180deg,#111827bf,#0f172a8c);border:1px solid var(--line);border-radius:16px;padding:16px;min-height:130px;-webkit-backdrop-filter:blur(var(--blur));backdrop-filter:blur(var(--blur));box-shadow:var(--shadow-1),var(--glow);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.card:hover{transform:translateY(-2px);border-color:#6366f140;box-shadow:var(--shadow-1),0 0 0 1px #6366f126 inset,0 0 80px #6366f11a}.card h3{margin:0 0 10px;font-size:13px;color:var(--muted);font-weight:700;letter-spacing:.35px}.kpi{font-size:28px;font-weight:800;letter-spacing:.3px}.sub{font-size:12px;color:var(--muted)}.badge{font-size:11px;padding:2px 6px;border-radius:6px;border:1px solid rgba(255,255,255,.15)}.tabs{display:flex;gap:10px;position:relative;margin:0 0 14px;border-bottom:1px solid var(--border)}.tab{padding:10px 14px;border-radius:12px;cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--muted);position:relative;transition:color .2s ease,background .2s ease,box-shadow .2s ease}.tab:hover{color:var(--text);background:var(--border)}.tab.active{color:#fff;background:linear-gradient(135deg,var(--accent-2),var(--accent-3));box-shadow:0 6px 18px #3b82f640}.tab-ind{display:none}.table{width:100%;border-collapse:separate;border-spacing:0;overflow:hidden}.table thead th{position:sticky;top:0;z-index:1;background:#111827bf;-webkit-backdrop-filter:blur(var(--blur));backdrop-filter:blur(var(--blur));color:var(--muted);font-weight:700;font-size:13px;border-bottom:1px solid var(--line)}.table th,.table td{padding:12px 10px;text-align:left;font-size:14px}.table tbody tr{border-bottom:1px solid var(--border);transition:background .15s ease,box-shadow .15s ease,transform .15s ease}.table tbody tr:nth-child(odd){background:#00000005}.table tbody tr:hover{background:#6366f114;box-shadow:inset 0 0 0 1px #6366f126}.card .table thead tr:first-child th:first-child{border-top-left-radius:12px}.card .table thead tr:first-child th:last-child{border-top-right-radius:12px}.btn{background:linear-gradient(135deg,var(--accent-2),var(--accent-3));color:#fff;border:none;border-radius:10px;padding:10px 14px;font-weight:700;cursor:pointer;box-shadow:0 10px 22px #3b82f640;transition:transform .12s ease,box-shadow .12s ease,opacity .12s ease}.btn:hover{transform:translateY(-1px);box-shadow:0 12px 26px #7c3aed47}.btn:active{transform:translateY(0)}.btn.secondary{background:var(--border);border:1px solid rgba(255,255,255,.18);box-shadow:none;color:var(--text)}.input{width:100%;padding:12px 14px;border-radius:12px;border:1px solid rgba(255,255,255,.18);background:var(--border);color:var(--text);margin-bottom:12px}.error{background:#6b2a2a;border:1px solid #8a3434;color:#ffecec;padding:10px 12px;border-radius:12px;margin:8px 0}.small{color:var(--muted);font-size:13px}.sidebar{width:240px;background:linear-gradient(180deg,#0f172ad9,#0f172a99);border-right:1px solid var(--line);padding:16px;display:flex;flex-direction:column;gap:10px;-webkit-backdrop-filter:blur(var(--blur));backdrop-filter:blur(var(--blur));position:sticky;top:0;height:100vh;box-shadow:var(--shadow-1)}.sidebar .logo{font-weight:900;letter-spacing:.4px}.sidebar .link{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;color:var(--text);opacity:.85;transition:background .15s ease,opacity .15s ease,box-shadow .15s ease}.sidebar .link:hover{background:var(--border);opacity:1}.sidebar .link.active{background:linear-gradient(135deg,#3b82f640,#7c3aed38);box-shadow:inset 0 0 0 1px #6366f140,0 8px 20px #3b82f62e;opacity:1}.sidebar .footer{margin-top:auto;font-size:12px;color:var(--muted)}.sidebar.collapsed{width:72px}.sidebar.collapsed .label{display:none}.login-shell{display:grid;place-items:center;height:100%}.login-panel{width:min(480px,92vw);padding:24px;border-radius:22px;background:linear-gradient(180deg,var(--border),var(--surface));border:1px solid rgba(255,255,255,.12);box-shadow:var(--shadow-1),var(--glow)}*::-webkit-scrollbar{height:10px;width:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:linear-gradient(180deg,rgba(255,255,255,.2),var(--border));border-radius:10px;border:1px solid rgba(255,255,255,.18)}*::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#6366f173,#7c3aed59)}.dark body{background:#0b0f1a}.overview-toolbar{display:flex;gap:8px;align-items:center}.input.sm{padding:8px 12px;font-size:13px;margin:0;height:36px}.badge-pill{display:inline-block;padding:4px 10px;border-radius:999px;background:#22c55e2e;border:1px solid rgba(34,197,94,.35);font-weight:800;letter-spacing:.3px}.bar{height:8px;border-radius:999px;overflow:hidden;background:var(--border);box-shadow:inset 0 0 0 1px var(--border)}.bar>span{display:block;height:100%;background:linear-gradient(90deg,#22c55e,#16a34a);border-radius:inherit;transition:width .35s ease}.table-advanced .chip{display:inline-flex;align-items:center;justify-content:center;padding:6px 12px;border-radius:999px;font-weight:700;letter-spacing:.2px;line-height:1;min-width:84px;border:1px solid transparent;opacity:1!important;filter:none!important}body.dark .chip-ok,html[data-theme=dark] .chip-ok{background:#16a34a;color:#fff;border-color:#22c55e}body.dark .chip-bad,html[data-theme=dark] .chip-bad{background:#ef4444;color:#fff;border-color:#f87171}body.light .chip-ok,html[data-theme=light] .chip-ok{background:#dcfce7;color:#166534;border-color:#86efac}body.light .chip-bad,html[data-theme=light] .chip-bad{background:#fee2e2;color:#7f1d1d;border-color:#fecaca}.chip-ok{background:#16a34a;color:#fff;border-color:#22c55e}.chip-bad{background:#ef4444;color:#fff;border-color:#f87171}:root{--bg: #ecf5ff;--panel: #ffffff;--panel-2: #f5f9ff;--muted: #4a5a7a;--text: #0b1a33;--accent: #3b82f6}html.dark{--surface:#0f172a;--surface-2:#111a34;--border: rgba(148,163,184,.16);--grid-light: rgba(148,163,184,.12);--grid-light-2: rgba(148,163,184,.08);--bg: #0a0f1e;--panel: #111a34;--panel-2: #0f172a;--muted: #93a4c8;--text: #eaf0ff;--accent: #6c8cff}html:not(.dark) body{background:linear-gradient(180deg,#ecf5ff,#d8ecff)!important;color:var(--text)!important}html.dark body{background:var(--bg)!important;color:var(--text)!important}html:not(.dark) .card{background:#fff!important;border:1px solid rgba(0,0,0,.08)!important;box-shadow:0 10px 20px #02519714!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}html:not(.dark) .topbar{background:#ffffffbf;border-bottom:1px solid rgba(0,0,0,.08);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}html:not(.dark) .sidebar{background:#fffc;border-right:1px solid rgba(0,0,0,.08)}html:not(.dark) h1,html:not(.dark) h2,html:not(.dark) h3{color:var(--text)}html:not(.dark) .muted,html:not(.dark) .text-muted{color:var(--muted)}html:not(.dark) .link{color:var(--text)}html:not(.dark) .link.active,html:not(.dark) .link:hover{background:#3b82f61f;border-color:#3b82f640}html:not(.dark) .theme-toggle{color:var(--text);background:#ffffffb3;border:1px solid rgba(0,0,0,.2)}html:not(.dark) .panel,html:not(.dark) .panel-2{background:var(--panel-2);color:var(--text)}:root{--bg-start:#e8fbff;--bg-end:#d9faff;--surface:#f0fdff;--surface-2:#eafefd;--border:rgba(20,184,166,.22);--shadow:rgba(20,184,166,.12);--text:#083c40;--muted:#497d80;--accent:#14b8a6;--grid-light: rgba(8,60,64,.14);--grid-light-2: rgba(8,60,64,.1)}html:not(.dark) body{background:radial-gradient(1100px 600px at 12% -12%,rgba(20,184,166,.1),transparent 55%),linear-gradient(180deg,var(--bg-start),var(--bg-end))!important;color:var(--text)!important}html:not(.dark) .card{background:linear-gradient(180deg,#f0fdfff0,#e8fbffdb)!important;border:1px solid var(--border)!important;box-shadow:0 10px 24px var(--shadow)!important;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}html:not(.dark) .sidebar{background:linear-gradient(180deg,var(--surface-2),var(--surface))!important;border-right:1px solid var(--border)!important}html:not(.dark) .topbar{background:linear-gradient(180deg,var(--surface),var(--surface-2))!important;border-bottom:1px solid var(--border)!important;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}html:not(.dark) table thead{background:var(--surface-2)!important;color:var(--text)!important}html:not(.dark) table tbody{background:transparent!important;color:var(--text)!important}html:not(.dark) .table-wrap{background:linear-gradient(180deg,var(--surface),var(--surface-2));border:1px solid var(--border);border-radius:16px}html:not(.dark) .panel,html:not(.dark) .panel-2,html:not(.dark) .container,html:not(.dark) .stats,html:not(.dark) .filters{background:linear-gradient(180deg,var(--surface),var(--surface-2))!important;color:var(--text)!important;border:1px solid var(--border)!important}html:not(.dark) .search{background:linear-gradient(180deg,var(--surface),var(--surface-2))!important;border:1px solid var(--border)!important}html:not(.dark) .table-advanced thead th{background:#eafefdf2!important;color:var(--text)!important;border-bottom:1px solid var(--border)!important}.calendar-card .fc{--fc-text-color: var(--text);--fc-neutral-bg-color: rgba(0,0,0,.03);--fc-today-bg-color: rgba(20,184,166,.2)}html:not(.dark) .ipm-card,html:not(.dark) .ipm-next-item,html:not(.dark) .chart-card,html:not(.dark) .table-wrap{background:linear-gradient(180deg,var(--surface),var(--surface-2))!important;border:1px solid var(--border)!important;color:var(--text)!important}:root{--app-overlay: rgba(241,245,249,.85)}html.light{--app-overlay: rgba(241,245,249,.85)}html.dark{--app-overlay: rgba(2,6,23,.85)}
