:root{--bg: #f4f6fb;--bg-mesh: radial-gradient(at 0% 0%, rgba(255, 165, 0, .05) 0px, transparent 50%), radial-gradient(at 100% 0%, rgba(231, 109, 44, .05) 0px, transparent 50%), radial-gradient(at 50% 100%, rgba(255, 165, 0, .04) 0px, transparent 50%);--surface: #ffffff;--surface-2: #f8fafc;--surface-sub: #f8fafc;--surface-inset: #f1f5f9;--surface-hover: #fff9f2;--surface-glass: rgba(255, 255, 255, .82);--surface-glass-subtle: rgba(255, 255, 255, .65);--glass-border: rgba(255, 255, 255, .85);--glass-blur: blur(16px);--line: #e2e8f0;--line-strong: #cbd5e1;--line-glow: rgba(255, 165, 0, .25);--ink: #0f172a;--ink-2: #475569;--ink-3: #94a3b8;--accent: #e76d2c;--accent-secondary: #FFA500;--accent-gradient: linear-gradient(135deg, #FFA500 0%, #e76d2c 100%);--accent-gradient-glow: linear-gradient(135deg, rgba(255, 165, 0, .15) 0%, rgba(231, 109, 44, .15) 100%);--accent-press: #d65b1d;--accent-soft: rgba(255, 165, 0, .09);--accent-ring: rgba(231, 109, 44, .35);--cur: #059669;--cur-text: #047857;--cur-soft: rgba(16, 185, 129, .12);--cur-gradient: linear-gradient(135deg, #10b981 0%, #059669 100%);--tmd: #64748b;--tmd-text: #475569;--tmd-soft: rgba(100, 116, 139, .12);--due: #d97706;--due-text: #b45309;--due-soft: rgba(245, 158, 11, .12);--due-gradient: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);--danger: #e11d48;--danger-text: #be123c;--danger-soft: rgba(225, 29, 72, .12);--chart-grid: #edf2f7;--radius-xl: 24px;--radius-lg: 20px;--radius: 16px;--radius-sm: 10px;--radius-xs: 6px;--radius-pill: 9999px;--shadow-xs: 0 1px 2px rgba(15, 23, 42, .04);--shadow-sm: 0 2px 4px rgba(15, 23, 42, .04), 0 1px 2px rgba(15, 23, 42, .02);--shadow-md: 0 8px 24px -4px rgba(15, 23, 42, .07), 0 4px 8px -2px rgba(15, 23, 42, .03);--shadow-lg: 0 16px 36px -6px rgba(15, 23, 42, .1), 0 6px 12px -3px rgba(15, 23, 42, .04);--shadow-pop: 0 24px 64px -12px rgba(15, 23, 42, .18);--shadow-glow: 0 0 24px rgba(79, 70, 229, .2);--font-display: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-body: "Inter", "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 40px}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #0b0f19;--bg-mesh: radial-gradient(at 0% 0%, rgba(99, 102, 241, .12) 0px, transparent 50%), radial-gradient(at 100% 0%, rgba(6, 182, 212, .09) 0px, transparent 50%), radial-gradient(at 50% 100%, rgba(139, 92, 246, .08) 0px, transparent 50%);--surface: #111827;--surface-2: #172033;--surface-inset: #0e1422;--surface-glass: rgba(17, 24, 39, .82);--surface-glass-subtle: rgba(17, 24, 39, .65);--glass-border: rgba(255, 255, 255, .08);--glass-blur: blur(18px);--line: rgba(255, 255, 255, .08);--line-strong: rgba(255, 255, 255, .14);--line-glow: rgba(129, 140, 248, .35);--ink: #f8fafc;--ink-2: #94a3b8;--ink-3: #64748b;--accent: #818cf8;--accent-secondary: #22d3ee;--accent-gradient: linear-gradient(135deg, #818cf8 0%, #22d3ee 100%);--accent-gradient-glow: linear-gradient(135deg, rgba(129, 140, 248, .22) 0%, rgba(34, 211, 238, .22) 100%);--accent-press: #6366f1;--accent-soft: rgba(129, 140, 248, .16);--accent-ring: rgba(129, 140, 248, .4);--cur: #34d399;--cur-text: #34d399;--cur-soft: rgba(52, 211, 153, .15);--cur-gradient: linear-gradient(135deg, #34d399 0%, #059669 100%);--tmd: #94a3b8;--tmd-text: #94a3b8;--tmd-soft: rgba(148, 163, 184, .14);--due: #fbbf24;--due-text: #fbbf24;--due-soft: rgba(251, 191, 36, .15);--due-gradient: linear-gradient(135deg, #fbbf24 0%, #d97706 100%);--danger: #fb7185;--danger-text: #fb7185;--danger-soft: rgba(251, 113, 133, .15);--chart-grid: rgba(255, 255, 255, .06);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .3);--shadow-sm: 0 2px 4px rgba(0, 0, 0, .35);--shadow-md: 0 8px 24px -4px rgba(0, 0, 0, .45);--shadow-lg: 0 16px 36px -6px rgba(0, 0, 0, .55);--shadow-pop: 0 24px 64px -12px rgba(0, 0, 0, .7);--shadow-glow: 0 0 28px rgba(129, 140, 248, .25)}}:root[data-theme=dark]{--bg: #0b0f19;--bg-mesh: radial-gradient(at 0% 0%, rgba(99, 102, 241, .12) 0px, transparent 50%), radial-gradient(at 100% 0%, rgba(6, 182, 212, .09) 0px, transparent 50%), radial-gradient(at 50% 100%, rgba(139, 92, 246, .08) 0px, transparent 50%);--surface: #111827;--surface-2: #172033;--surface-inset: #0e1422;--surface-glass: rgba(17, 24, 39, .82);--surface-glass-subtle: rgba(17, 24, 39, .65);--glass-border: rgba(255, 255, 255, .08);--glass-blur: blur(18px);--line: rgba(255, 255, 255, .08);--line-strong: rgba(255, 255, 255, .14);--line-glow: rgba(129, 140, 248, .35);--ink: #f8fafc;--ink-2: #94a3b8;--ink-3: #64748b;--accent: #818cf8;--accent-secondary: #22d3ee;--accent-gradient: linear-gradient(135deg, #818cf8 0%, #22d3ee 100%);--accent-gradient-glow: linear-gradient(135deg, rgba(129, 140, 248, .22) 0%, rgba(34, 211, 238, .22) 100%);--accent-press: #6366f1;--accent-soft: rgba(129, 140, 248, .16);--accent-ring: rgba(129, 140, 248, .4);--cur: #34d399;--cur-text: #34d399;--cur-soft: rgba(52, 211, 153, .15);--cur-gradient: linear-gradient(135deg, #34d399 0%, #059669 100%);--tmd: #94a3b8;--tmd-text: #94a3b8;--tmd-soft: rgba(148, 163, 184, .14);--due: #fbbf24;--due-text: #fbbf24;--due-soft: rgba(251, 191, 36, .15);--due-gradient: linear-gradient(135deg, #fbbf24 0%, #d97706 100%);--danger: #fb7185;--danger-text: #fb7185;--danger-soft: rgba(251, 113, 133, .15);--chart-grid: rgba(255, 255, 255, .06);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .3);--shadow-sm: 0 2px 4px rgba(0, 0, 0, .35);--shadow-md: 0 8px 24px -4px rgba(0, 0, 0, .45);--shadow-lg: 0 16px 36px -6px rgba(0, 0, 0, .55);--shadow-pop: 0 24px 64px -12px rgba(0, 0, 0, .7);--shadow-glow: 0 0 28px rgba(129, 140, 248, .25)}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);background-image:var(--bg-mesh);background-attachment:fixed;color:var(--ink);font-family:var(--font-body);font-size:13.5px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-xs)}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}.mobile-topbar,.mobile-scrim,.mobile-drawer-close{display:none}.app{display:flex;flex-direction:row;min-height:100dvh}.sidebar{position:sticky;top:0;align-self:flex-start;z-index:30;flex-shrink:0;width:256px;height:100dvh;display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-4) var(--space-4) var(--space-5);background:var(--surface-glass);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border-right:1px solid var(--line)}.brand-wrap{display:flex;align-items:center;gap:12px;padding:6px 8px 16px;border-bottom:1px solid var(--line)}.brand-badge{width:36px;height:36px;border-radius:var(--radius-sm);background:var(--accent-gradient);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-glow);flex-shrink:0}.brand-text{display:flex;flex-direction:column;min-width:0}.brand-title{font-family:var(--font-display);font-weight:800;font-size:14.5px;letter-spacing:-.02em;color:var(--ink);white-space:nowrap}.brand-sub{font-size:10.5px;font-weight:600;color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em}.sidebar nav{display:flex;flex-direction:column;gap:4px}.nav-item{display:flex;align-items:center;gap:11px;padding:10px 14px;border-radius:var(--radius-sm);font-weight:600;font-size:13.5px;color:var(--ink-2);position:relative;transition:all .16s ease;border:1px solid transparent}.nav-icon{display:flex;align-items:center;justify-content:center;color:var(--ink-3);transition:color .16s,transform .16s}.nav-item:hover{background:var(--surface-inset);color:var(--ink);transform:translate(2px)}.nav-item:hover .nav-icon{color:var(--ink)}.nav-item.active{background:var(--accent-soft);color:var(--accent);border-color:#ffa50029;font-weight:700}.nav-item.active .nav-icon{color:var(--accent)}.nav-indicator{display:none}.nav-item.active .nav-indicator{display:block;position:absolute;right:12px;width:6px;height:6px;border-radius:999px;background:var(--accent);box-shadow:0 0 8px var(--accent)}.sidebar .spacer{margin-top:auto}.sidebar .who{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);font-size:12px;color:var(--ink-2)}.who-avatar{width:32px;height:32px;border-radius:999px;background:var(--accent-gradient);color:#fff;font-weight:700;font-size:11.5px;display:flex;align-items:center;justify-content:center;position:relative;flex-shrink:0;box-shadow:var(--shadow-xs)}.who-status{position:absolute;bottom:0;right:0;width:7px;height:7px;border-radius:999px;background:var(--cur);border:1.5px solid var(--surface)}.who-meta{display:flex;flex-direction:column;min-width:0;flex:1}.who-name{font-weight:600;color:var(--ink);font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.who-role{font-size:10.5px;color:var(--ink-3);font-weight:500}.who-actions{display:flex;align-items:center;gap:4px}.helpdesk-trigger{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;margin-bottom:8px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);font-size:12.5px;font-weight:600;color:var(--ink-2);cursor:pointer;transition:border-color .15s ease,color .15s ease,background .15s ease;font-family:inherit;text-align:left}.helpdesk-trigger:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.helpdesk-trigger .helpdesk-icon{flex-shrink:0;width:26px;height:26px;border-radius:999px;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center}.mobile-topbar-actions .helpdesk-icon-btn{color:var(--accent)}.btn-icon{width:30px;height:30px;border-radius:var(--radius-xs);border:1px solid var(--line);background:var(--surface);color:var(--ink-2);display:inline-flex;align-items:center;justify-content:center;transition:all .15s}.btn-icon:hover{background:var(--surface-inset);color:var(--ink);border-color:var(--line-strong)}.page-wrapper{flex:1;min-width:0;width:100%;display:flex;flex-direction:column}.page{min-width:0;width:100%;max-width:1440px;margin:0 auto;padding:var(--space-5) var(--space-6) var(--space-7);display:flex;flex-direction:column;gap:var(--space-5)}@media (max-width: 860px){.app{flex-direction:column;min-height:100dvh}.mobile-topbar{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:var(--surface-glass);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:35;box-shadow:var(--shadow-xs)}.mobile-topbar .brand-wrap{padding:0;border-bottom:0;gap:10px}.mobile-topbar .brand-badge{width:32px;height:32px}.mobile-topbar .brand-title{font-size:14px}.mobile-topbar .brand-sub{font-size:10px}.mobile-topbar-actions{display:flex;align-items:center;gap:8px}.mobile-scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0b0f1999;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:45;animation:fadeIn .2s ease-out}.sidebar{position:fixed;top:0;left:0;height:100dvh;width:min(300px,85vw);z-index:50;transform:translate(-100%);transition:transform .26s cubic-bezier(.16,1,.3,1);box-shadow:var(--shadow-pop);border-right:1px solid var(--line);background:var(--surface);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-4);overflow-y:auto}.sidebar.mobile-open{transform:translate(0)}.mobile-drawer-close{display:inline-flex;margin-left:auto}.sidebar .brand-wrap{display:flex;align-items:center;gap:10px;padding:2px 4px 14px;border-bottom:1px solid var(--line)}.sidebar nav{display:flex;flex-direction:column;gap:4px}.sidebar .who{margin-top:auto;display:flex;padding:10px 12px}.sidebar .who-meta{display:flex}.page{padding:var(--space-4) var(--space-4) var(--space-6);gap:var(--space-4)}}@media (max-width: 640px){.page{padding:14px 12px 28px;gap:16px}.page-head{flex-direction:column;align-items:flex-start;gap:12px}.page-head>div{width:100%}.page-head h1{font-size:20px}.page-head .btn{width:100%;justify-content:center}.page-head .page-actions{width:100%;margin-left:0;flex-direction:column;align-items:stretch}.kpis{grid-template-columns:repeat(2,1fr);gap:10px}.kpi{padding:12px 14px;gap:4px}.kpi .num{font-size:20px}.kpi .lab{font-size:10px}.kpi .foot{font-size:10.5px}.kpi-icon{width:28px;height:28px}.card{padding:14px;border-radius:var(--radius-sm)}.card>h2{font-size:13.5px;margin-bottom:12px;flex-wrap:wrap;gap:6px}.carto{gap:3px}.carto .cell{font-size:8px;border-radius:4px}.carto .cell small{font-size:7.5px}.carto-legend{font-size:9.5px;gap:5px;flex-wrap:wrap;margin-top:10px;padding-top:8px}.carto-legend i{width:10px;height:10px}.bars .bar{grid-template-columns:46px 1fr 48px;gap:8px;font-size:11px}.bars .track{height:12px}.filter-card{padding:12px}.filters{flex-direction:column;align-items:stretch;gap:10px}.filters .field,.filters .search{width:100%;min-width:0}.filter-actions{width:100%;display:flex;gap:8px}.filter-actions .btn{flex:1;justify-content:center}.table-wrap{-webkit-overflow-scrolling:touch;border-radius:var(--radius-sm)}table.data th,table.data td{padding:9px 10px;font-size:12px}.pager{width:100%;justify-content:space-between}.drawer{width:100vw;max-width:100vw;border-left:0}.drawer-header{padding:12px 14px}.drawer-title-row{flex-wrap:wrap;gap:10px}.drawer-avatar{width:36px;height:36px;font-size:13px}.drawer-header h2{font-size:17px}.drawer-tabs{margin-top:10px;padding:3px;gap:2px;-webkit-overflow-scrolling:touch;scrollbar-width:none}.drawer-tabs::-webkit-scrollbar{display:none}.drawer-tab{padding:5px 10px;font-size:11.5px}.drawer .body{padding:14px;gap:12px}.bento-section{padding:12px}dl.kv{grid-template-columns:105px 1fr;gap:7px 10px;font-size:12px}.drawer-footer-actions{padding:10px 0 0}.drawer-footer-actions .btn{flex:1;justify-content:center}}@media (max-width: 380px){.kpis{grid-template-columns:1fr}.mobile-topbar .brand-title{font-size:13px}.mobile-topbar .brand-sub{font-size:9px}}.page-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}.page-head h1{font-family:var(--font-display);font-weight:800;font-size:24px;letter-spacing:-.03em;margin:0;color:var(--ink)}.page-head .sub{font-size:13px;color:var(--ink-2);margin-top:2px}.page-head .page-actions{display:flex;align-items:center;gap:var(--space-3);margin-left:auto;flex-wrap:wrap}.live-pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:var(--radius-pill);font-size:11px;font-weight:700;background:var(--cur-soft);color:var(--cur-text);border:1px solid rgba(16,185,129,.25);box-shadow:0 1px 4px #10b9811a}.live-dot{width:6px;height:6px;border-radius:999px;background:var(--cur);box-shadow:0 0 8px var(--cur);animation:livePulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes livePulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.8)}}.card{background:var(--surface-glass);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-5);box-shadow:var(--shadow-sm);transition:all .2s cubic-bezier(.16,1,.3,1)}.bento-card{position:relative;overflow:hidden}.bento-card:hover{box-shadow:var(--shadow-md);border-color:var(--line-glow)}.card>h2{font-family:var(--font-display);font-weight:700;font-size:15px;letter-spacing:-.01em;margin:0 0 var(--space-4);display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);color:var(--ink)}.card>h2 .mini{font-family:var(--font-body);font-size:11.5px;font-weight:500;color:var(--ink-3);letter-spacing:normal}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:8px 15px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font-weight:600;font-size:13px;white-space:nowrap;box-shadow:var(--shadow-xs);transition:all .16s cubic-bezier(.16,1,.3,1)}.btn:hover{background:var(--surface-inset);border-color:var(--line-strong);transform:translateY(-1px);box-shadow:0 4px 6px -1px #0000000d}.btn:active{transform:scale(.96) translateY(0);box-shadow:none}.btn.primary{background:var(--accent-gradient);border:1px solid transparent;color:#fff;box-shadow:0 2px 10px #e76d2c47}.btn.primary:hover{box-shadow:0 4px 18px #e76d2c66;transform:translateY(-1px)}.btn.btn-danger-outline{color:var(--danger);border-color:#e11d4840;background:transparent;box-shadow:none}.btn.btn-danger-outline:hover{background:var(--danger-soft);border-color:var(--danger)}.btn.ghost{border-color:transparent;background:transparent;box-shadow:none;color:var(--ink-2)}.btn.ghost:hover{background:var(--surface-inset);color:var(--ink)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important;box-shadow:none!important}.input,.select{width:100%;padding:8px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font:inherit;font-size:13px;transition:all .15s ease}.input:focus,.select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring);outline:none}.input::placeholder{color:var(--ink-3)}.field{display:flex;flex-direction:column;gap:5px}.field label{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2)}.field .help{font-size:11.5px;color:var(--ink-3)}.field .err{font-size:11.5px;color:var(--danger)}.pill{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:var(--radius-pill);font-size:11px;font-weight:700;font-family:var(--font-mono);letter-spacing:.02em;white-space:nowrap}.pill-dot{width:5px;height:5px;border-radius:999px;background:currentColor;display:inline-block}.pill.cur{background:var(--cur-soft);color:var(--cur-text);border:1px solid rgba(16,185,129,.2)}.pill.tmd{background:var(--tmd-soft);color:var(--tmd-text);border:1px solid rgba(100,116,139,.2)}.pill.o{background:#06b6d41f;color:#0891b2;border:1px solid rgba(6,182,212,.2)}.pill.u{background:var(--accent-soft);color:var(--accent);border:1px solid rgba(255,165,0,.2)}.pill.danger{background:var(--danger-soft);color:var(--danger-text);border:1px solid rgba(225,29,72,.2)}.spinner-mini{width:11px;height:11px;border:2px solid currentColor;border-top-color:transparent;border-radius:999px;display:inline-block;vertical-align:middle;animation:spin .7s linear infinite}.pill-code{display:inline-block;background:var(--surface-inset);border:1px solid var(--line);padding:2px 7px;border-radius:var(--radius-xs);font-weight:600;font-family:var(--font-mono);font-size:12px;color:var(--accent)}.pill-date{color:var(--ink-2);font-size:12px;font-family:var(--font-mono)}.avatar-chip{width:26px;height:26px;border-radius:999px;background:var(--accent-soft);border:1px solid rgba(255,165,0,.2);color:var(--accent);font-weight:700;font-size:10.5px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.badge-count{display:inline-flex;align-items:center;padding:3px 9px;border-radius:var(--radius-pill);font-size:11.5px;font-weight:600;background:var(--surface-2);border:1px solid var(--line);color:var(--ink-2)}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.muted{color:var(--ink-2)}.row{display:grid;gap:var(--space-4)}@media (min-width: 900px){.row.cols-2{grid-template-columns:1.15fr 1fr}.row.cols-2b{grid-template-columns:1fr 1fr}}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-4)}@media (min-width: 1024px){.kpis{grid-template-columns:repeat(5,1fr)}}.kpi{background:var(--surface-glass);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;display:flex;flex-direction:column;gap:6px;position:relative;cursor:pointer;text-align:left;box-shadow:var(--shadow-sm);transition:all .2s cubic-bezier(.16,1,.3,1);overflow:hidden}.kpi:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--line-glow)}.kpi:hover .kpi-arrow{opacity:1;transform:translate(2px,-2px);color:var(--accent)}.kpi-header{display:flex;align-items:center;gap:10px;margin-bottom:2px}.kpi-icon{width:32px;height:32px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0}.kpi-icon.indigo{background:#ffa5001f;color:var(--accent)}.kpi-icon.emerald{background:var(--cur-soft);color:var(--cur-text)}.kpi-icon.slate{background:var(--tmd-soft);color:var(--tmd-text)}.kpi-icon.amber{background:var(--due-soft);color:var(--due-text)}.kpi-icon.cyan{background:#06b6d41f;color:#0891b2}.kpi .lab{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-2);flex:1}.kpi-arrow{color:var(--ink-3);opacity:.5;transition:all .16s ease}.kpi .num{font-family:var(--font-display);font-weight:800;font-size:26px;letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:var(--ink)}.kpi-bar-mini{height:4px;border-radius:999px;background:var(--surface-inset);overflow:hidden;margin:3px 0 1px}.kpi-bar-mini .fill{height:100%;border-radius:999px}.kpi .foot{font-size:11.5px;color:var(--ink-3)}.carto{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.carto .cell{aspect-ratio:1;border-radius:var(--radius-xs);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;font-size:9.5px;font-weight:700;color:#fff;border:0;transition:all .15s cubic-bezier(.16,1,.3,1);cursor:pointer}.carto .cell:not(.empty):hover{transform:scale(1.1);z-index:2;box-shadow:var(--shadow-sm)}.carto .cell small{font-family:var(--font-mono);font-weight:600;font-size:9px;opacity:.92}.carto .cell.empty{background:transparent;pointer-events:none}.carto .cell.q1{background:#ffa50026;color:var(--accent)}.carto .cell.q2{background:#ffa50061;color:#fff}.carto .cell.q3{background:#ffa500a6;color:#fff}.carto .cell.q4{background:#e76d2c;color:#fff}.carto .cell.q5{background:#d65b1d;color:#fff;box-shadow:0 0 10px #e76d2c66}.carto-legend{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--ink-2);margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--line)}.carto-legend i{width:14px;height:14px;border-radius:3px;display:inline-block}.carto-legend i.q1{background:#ffa50026}.carto-legend i.q2{background:#ffa50061}.carto-legend i.q3{background:#ffa500a6}.carto-legend i.q4{background:#e76d2c}.carto-legend i.q5{background:#3730a3}.carto-top-label{margin-left:auto;font-weight:600}.bars{display:flex;flex-direction:column;gap:10px}.bars .bar{display:grid;grid-template-columns:56px 1fr 58px;align-items:center;gap:12px;font-size:12px;background:none;border:0;text-align:left;width:100%;padding:2px 0;cursor:pointer}.bars .bar:hover .track{outline:2px solid var(--accent-ring);outline-offset:1px}.bars .code{font-weight:700;color:var(--ink);font-family:var(--font-mono);font-size:12px}.bars .track{height:14px;background:var(--surface-inset);border-radius:999px;overflow:hidden;display:flex}.bars .track i{display:block;height:100%;transition:width .3s ease}.bars .track .seg-cur{background:var(--cur-gradient);border-radius:999px 0 0 999px}.bars .track .seg-tmd{background:var(--tmd-text)}.bars .val{text-align:right;font-variant-numeric:tabular-nums;font-family:var(--font-mono);color:var(--ink-2);font-weight:600;font-size:11.5px}.legend-dot{display:inline-block;width:7px;height:7px;border-radius:999px;margin-right:6px;vertical-align:middle}.legend-dot.cur{background:var(--cur)}.legend-dot.tmd{background:var(--tmd)}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-glass);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);scrollbar-width:thin;scrollbar-color:var(--line-strong) var(--surface-inset)}.table-wrap::-webkit-scrollbar{height:8px;width:8px}.table-wrap::-webkit-scrollbar-track{background:var(--surface-inset);border-radius:4px}.table-wrap::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:4px}.table-wrap::-webkit-scrollbar-thumb:hover{background:var(--ink-3)}table.data{width:100%;border-collapse:collapse;font-size:13px}table.data th{position:sticky;top:0;background:var(--surface-2);text-align:left;font-weight:700;color:var(--ink-2);font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;padding:11px 14px;border-bottom:1px solid var(--line);white-space:nowrap;z-index:10}table.data th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}table.data th.sortable:hover{color:var(--ink)}table.data th .arrow{color:var(--accent);margin-left:4px;font-size:11px}table.data td{padding:11px 14px;border-bottom:1px solid var(--line);white-space:nowrap}table.data tbody tr:last-child td{border-bottom:0}table.data tbody tr{cursor:pointer;transition:background .12s ease}table.data tbody tr:hover{background:var(--accent-soft)}table.data .name{font-weight:600;white-space:normal;color:var(--ink)}.cell-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;word-break:break-word;line-height:1.4;max-height:2.8em;white-space:normal}.filter-card,.filters-card{padding:var(--space-4) var(--space-5);position:relative;z-index:20;overflow:visible!important}.searchable-select-wrap{position:relative;width:100%}.searchable-select-popup{animation:fadeIn .12s cubic-bezier(.16,1,.3,1)}.searchable-select-list{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}.searchable-select-list::-webkit-scrollbar{width:6px;height:6px}.searchable-select-list::-webkit-scrollbar-track{background:transparent}.searchable-select-list::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:4px}.searchable-select-list::-webkit-scrollbar-thumb:hover{background:var(--ink-3)}.filters{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:flex-end;position:relative;z-index:20}.filters .field{min-width:140px}.filters .search{min-width:280px;flex:1}.search-input-wrap{position:relative;display:flex;align-items:center}.search-input{padding-right:32px}.search-clear-btn{position:absolute;right:8px;background:transparent;border:0;color:var(--ink-3);font-size:16px;cursor:pointer;padding:2px 6px;line-height:1}.search-clear-btn:hover{color:var(--ink)}.filter-actions{display:flex;gap:8px;margin-top:auto}.filters-divider{flex-basis:100%;height:1px;background:var(--line);margin:2px 0 4px}.pager{display:flex;align-items:center;gap:var(--space-3);justify-content:flex-end;font-size:13px;color:var(--ink-2)}.pager-info{color:var(--ink-2)}.pager-info strong{color:var(--ink)}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#0b0f198c;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:40;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes dialogIn{0%{opacity:0;transform:translate(-50%,-54%) scale(.96)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.drawer{position:fixed;top:0;right:0;height:100dvh;width:min(580px,100vw);background:var(--surface);border-left:1px solid var(--line);box-shadow:var(--shadow-pop);z-index:41;display:flex;flex-direction:column;overflow:hidden;animation:slideIn .24s cubic-bezier(.16,1,.3,1)}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-header{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--line);background:var(--surface-glass);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur)}.drawer-title-row{display:flex;align-items:center;gap:12px}.drawer-avatar{width:44px;height:44px;border-radius:var(--radius-sm);background:var(--accent-gradient);color:#fff;font-weight:800;font-size:16px;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-glow);flex-shrink:0}.drawer-header h2{font-family:var(--font-display);font-size:19px;font-weight:800;letter-spacing:-.02em;margin:0;color:var(--ink)}.drawer-tabs{display:flex;align-items:center;gap:4px;margin-top:14px;background:var(--surface-inset);padding:4px;border-radius:var(--radius-sm);overflow-x:auto}.drawer-tab{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--radius-xs);border:0;background:transparent;color:var(--ink-2);font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .15s ease}.drawer-tab:hover{color:var(--ink)}.drawer-tab.active{background:var(--surface);color:var(--accent);box-shadow:var(--shadow-xs)}.drawer .body{overflow-y:auto;padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-4);flex:1}.bento-section{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:16px}.section h3{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);margin:0 0 12px;font-weight:700}dl.kv{display:grid;grid-template-columns:128px 1fr;gap:9px 16px;margin:0;font-size:13px}dl.kv dt{color:var(--ink-3);font-weight:500}dl.kv dd{margin:0;font-weight:600;color:var(--ink);overflow-wrap:anywhere}.note{font-size:12.5px;line-height:1.6;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px 14px;white-space:pre-wrap;overflow-wrap:anywhere}.drawer-footer-actions{display:flex;gap:10px;position:sticky;bottom:0;background:var(--surface-glass);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);padding:14px 0 0;border-top:1px solid var(--line);margin-top:auto;z-index:10}.login{min-height:100dvh;display:grid;place-items:center;padding:var(--space-5);position:relative;overflow:hidden;background-color:var(--bg)}.login-bg{position:absolute;top:0;right:0;bottom:0;left:0;background-size:cover;background-position:center;background-repeat:no-repeat;transition:opacity .6s cubic-bezier(.4,0,.2,1);pointer-events:none}.login-bg-light{opacity:1}.login-bg-dark{opacity:0}:root[data-theme=dark] .login-bg-light{opacity:0}:root[data-theme=dark] .login-bg-dark{opacity:1}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .login-bg-light{opacity:0}:root:not([data-theme=light]) .login-bg-dark{opacity:1}}.login-backdrop-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#ffffff59;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);pointer-events:none;transition:background-color .6s ease}:root[data-theme=dark] .login-backdrop-overlay{background:#0b0f1973}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .login-backdrop-overlay{background:#0b0f1973}}.login-theme-toggle{position:absolute;top:var(--space-4);right:var(--space-4);z-index:20}.login .box{width:min(400px,100%);background:var(--surface-glass);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-pop);padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-4);position:relative;z-index:10}.login .box h1{font-family:var(--font-display);font-weight:800;font-size:22px;letter-spacing:-.03em;margin:0;color:var(--ink)}.login .box p.sub{margin:-8px 0 6px;color:var(--ink-2);font-size:13px}.password-input-wrap{position:relative;display:flex;align-items:center;width:100%}.password-input-wrap .input{width:100%;padding-right:40px}.password-toggle-btn{position:absolute;right:6px;background:transparent;border:none;color:var(--ink-3);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:6px;border-radius:var(--radius-xs);transition:color .15s,background-color .15s}.password-toggle-btn:hover{color:var(--ink);background-color:var(--surface-inset)}.login-footer{margin-top:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--line);text-align:center;font-size:12px;color:var(--ink-2);display:flex;align-items:center;justify-content:center;gap:5px}.login-heart{color:#e11d48;display:inline-block;vertical-align:middle;animation:pulse-heart 1.6s ease-in-out infinite}@keyframes pulse-heart{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}.login-surfux-link{color:var(--accent);text-decoration:none;font-weight:700;transition:all .15s}.login-surfux-link:hover{text-decoration:underline;color:var(--accent-press)}.banner{padding:12px 16px;border-radius:var(--radius-sm);font-size:13px;font-weight:500;border:1px solid transparent}.banner.error{background:var(--danger-soft);color:var(--danger-text);border-color:#e11d4840}.banner.ok{background:var(--cur-soft);color:var(--cur-text);border-color:#10b98140}.spinner{width:18px;height:18px;border:2px solid var(--line-strong);border-top-color:var(--accent);border-radius:999px;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.center-state{display:flex;align-items:center;justify-content:center;gap:10px;padding:var(--space-6);color:var(--ink-2)}.chips{display:flex;flex-wrap:wrap;gap:7px}.chip{padding:5px 12px;border-radius:var(--radius-pill);border:1px solid var(--line);background:var(--surface);font-size:12px;font-weight:500;color:var(--ink-2);transition:all .15s ease;cursor:pointer}.chip:hover{border-color:var(--line-strong);color:var(--ink);background:var(--surface-inset)}.chip.on{background:var(--accent-gradient);border-color:transparent;color:#fff;font-weight:600;box-shadow:0 2px 8px #e76d2c4d}.sparkline-wrap{width:100%}.sparkline{width:100%;height:140px;display:block}.report-tree{font-size:13px}.report-tree .rrow{display:grid;grid-template-columns:1fr 90px;align-items:center;padding:9px 10px;border-bottom:1px solid var(--line);transition:background .12s}.report-tree .rrow:hover{background:var(--accent-soft)}.report-tree .rrow .dims{display:flex;gap:10px;align-items:center;overflow:hidden}.report-tree .rrow .count{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--accent);font-weight:700;cursor:pointer}.report-tree .rrow.total{font-weight:800;border-top:2px solid var(--line-strong);border-bottom:0;background:var(--surface-2)}.dropzone{border:2px dashed var(--line-strong);border-radius:var(--radius);padding:var(--space-6);text-align:center;color:var(--ink-2);background:var(--surface-glass);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);transition:all .2s}.dropzone.drag{border-color:var(--accent);background:var(--accent-soft);box-shadow:var(--shadow-glow)}.steps{display:flex;gap:var(--space-3);font-size:12.5px;color:var(--ink-3)}.steps .step.on{color:var(--accent);font-weight:700}.steps .step.done{color:var(--cur);font-weight:600}.app-footer{display:flex;align-items:center;justify-content:space-between;padding:16px 28px;font-size:11.5px;color:var(--ink-3);border-top:1px solid var(--line);margin-top:auto;gap:12px;flex-wrap:wrap}.footer-credit{color:var(--ink-3)}.footer-credit strong{color:var(--ink-2);font-weight:700}.brand-logo-img{width:100%;height:100%;object-fit:cover;border-radius:var(--radius-sm)}@media (max-width: 640px){.app-footer{flex-direction:column;text-align:center;padding:14px 16px;gap:4px}}.login-logo{display:flex;justify-content:center;margin-bottom:var(--space-4)}.login-logo img{width:96px;height:96px;border-radius:50%;object-fit:cover;border:2px solid var(--surface-inset);box-shadow:var(--shadow-sm)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin-anim{animation:spin 1s linear infinite}.login .box h1,.login .box p.sub{text-align:center}.student-detail-page{min-width:0;width:100%;max-width:1100px;margin:0 auto;padding:var(--space-5) var(--space-6) var(--space-7);display:flex;flex-direction:column;gap:var(--space-4)}.student-detail-header{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.back-btn{width:38px;height:38px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface);color:var(--ink-2);display:inline-flex;align-items:center;justify-content:center;transition:all .15s;cursor:pointer;flex-shrink:0}.back-btn:hover{background:var(--surface-inset);color:var(--ink);border-color:var(--line-strong)}.student-detail-info{flex:1;min-width:0}.student-detail-info h1{font-family:var(--font-display);font-weight:800;font-size:22px;letter-spacing:-.02em;margin:0;color:var(--ink)}.student-detail-meta{display:flex;align-items:center;gap:8px;margin-bottom:4px}.student-detail-actions{display:flex;align-items:center;gap:8px}.student-detail-tabs{display:flex;align-items:center;gap:4px;background:var(--surface-inset);padding:4px;border-radius:var(--radius-sm);overflow-x:auto}.student-detail-tabs .drawer-tab{padding:8px 16px;font-size:13px}.student-detail-content{display:flex;flex-direction:column;gap:var(--space-4)}@media (max-width: 640px){.student-detail-page{padding:14px 12px 28px}.student-detail-header{gap:10px}.student-detail-info h1{font-size:18px}.student-detail-actions{width:100%}.student-detail-actions .btn{flex:1;justify-content:center}}.drawer header .btn.ghost,.scrim+aside header .btn.ghost,.btn-icon.mobile-drawer-close{transition:all .3s cubic-bezier(.4,0,.2,1)}.drawer header .btn.ghost:hover,.scrim+aside header .btn.ghost:hover,.btn-icon.mobile-drawer-close:hover{background-color:var(--danger, #ef4444)!important;color:#fff!important;border-radius:50%!important;transform:rotate(90deg)}.btn-icon:active,a.nav-item:active{transform:scale(.92)}.react-datepicker-wrapper,.react-datepicker__input-container{display:block;width:100%}.react-datepicker__input-container input{width:100%}.react-datepicker{font-family:inherit!important;border:1px solid var(--line-strong)!important;border-radius:var(--radius-sm)!important;box-shadow:var(--shadow-sm)!important;background-color:var(--surface)!important}.react-datepicker__header{background-color:var(--surface-inset)!important;border-bottom:1px solid var(--line)!important;border-top-left-radius:var(--radius-sm)!important;border-top-right-radius:var(--radius-sm)!important;padding-top:12px!important}.react-datepicker__current-month,.react-datepicker-time__header,.react-datepicker-year-header{color:var(--ink)!important;font-size:14px!important;font-weight:700!important}.react-datepicker__day-name,.react-datepicker__day,.react-datepicker__time-name{color:var(--ink-2)!important;width:2rem!important;line-height:2rem!important;margin:.2rem!important}.react-datepicker__day:hover{background-color:var(--surface-inset)!important;color:var(--ink)!important;border-radius:var(--radius-sm)!important}.react-datepicker__day--selected,.react-datepicker__day--in-selecting-range,.react-datepicker__day--in-range,.react-datepicker__month-text--selected,.react-datepicker__month-text--in-selecting-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--selected,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--selected,.react-datepicker__year-text--in-selecting-range,.react-datepicker__year-text--in-range{background-color:var(--primary)!important;color:#fff!important;border-radius:var(--radius-sm)!important}.react-datepicker__day--keyboard-selected,.react-datepicker__month-text--keyboard-selected,.react-datepicker__quarter-text--keyboard-selected,.react-datepicker__year-text--keyboard-selected{background-color:var(--primary)!important;color:#fff!important}.react-datepicker__navigation-icon:before{border-color:var(--ink-3)!important}.react-datepicker__navigation:hover *:before{border-color:var(--ink)!important}.custom-datepicker{position:relative;width:100%}.custom-datepicker-input-wrapper{position:relative;display:flex;align-items:center;width:100%}.custom-datepicker-input-wrapper .cdp-input{width:100%;padding-right:64px;cursor:pointer}.custom-datepicker-input-wrapper .cdp-input:focus{cursor:text}.cdp-input-actions{position:absolute;right:8px;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:4px}.cdp-action-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;background:transparent;color:var(--ink-3);border-radius:var(--radius-xs);cursor:pointer;transition:color .15s ease,background-color .15s ease}.cdp-action-btn:hover{color:var(--ink);background:var(--surface-inset)}.cdp-calendar-icon-btn{color:var(--ink-2)}.cdp-calendar-icon-btn:hover{color:var(--accent)}.custom-datepicker-dropdown{position:absolute;top:calc(100% + 6px);left:0;z-index:9999;width:290px;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-sm);box-shadow:var(--shadow-pop);padding:12px;display:flex;flex-direction:column;gap:10px;animation:cdpFadeIn .15s ease-out;-webkit-user-select:none;user-select:none}@keyframes cdpFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.cdp-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:8px;border-bottom:1px solid var(--line)}.cdp-header-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border:1px solid transparent;border-radius:var(--radius-xs);background:transparent;color:var(--ink);font-size:13px;font-weight:600;cursor:pointer;transition:all .15s ease}.cdp-header-btn:hover{background:var(--surface-inset);border-color:var(--line);color:var(--accent)}.cdp-header-nav-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--line);border-radius:var(--radius-xs);background:var(--surface-2);color:var(--ink-2);cursor:pointer;transition:all .15s ease}.cdp-header-nav-btn:hover{background:var(--surface-inset);color:var(--ink);border-color:var(--line-strong)}.cdp-header-title{font-size:13px;font-weight:700;color:var(--ink)}.cdp-back-btn{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;color:var(--ink-2);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-xs);padding:4px 8px;cursor:pointer;transition:all .15s ease}.cdp-back-btn:hover{color:var(--ink);background:var(--surface-inset);border-color:var(--line-strong)}.cdp-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center;font-size:11px;font-weight:600;color:var(--ink-3);padding-bottom:2px}.cdp-days-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.cdp-day-btn{display:flex;align-items:center;justify-content:center;height:32px;font-size:12px;font-weight:500;border:1px solid transparent;border-radius:var(--radius-xs);background:transparent;color:var(--ink);cursor:pointer;transition:all .12s ease}.cdp-day-btn:hover{background:var(--surface-inset);color:var(--accent)}.cdp-day-btn.cdp-other-month{color:var(--ink-3);opacity:.45}.cdp-day-btn.cdp-other-month:hover{opacity:.8;background:var(--surface-inset)}.cdp-day-btn.cdp-today{border-color:var(--accent);font-weight:700;color:var(--accent)}.cdp-day-btn.cdp-selected{background:var(--accent)!important;color:#fff!important;font-weight:700!important;box-shadow:0 2px 6px #e76d2c59}.cdp-years-container{max-height:220px;overflow-y:auto;padding-right:4px}.cdp-years-container::-webkit-scrollbar{width:6px}.cdp-years-container::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:4px}.cdp-years-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.cdp-year-btn{padding:8px 4px;font-size:12px;font-weight:500;border:1px solid var(--line);border-radius:var(--radius-xs);background:var(--surface-2);color:var(--ink);text-align:center;cursor:pointer;transition:all .12s ease}.cdp-year-btn:hover{border-color:var(--accent);background:var(--surface-inset);color:var(--accent)}.cdp-year-btn.cdp-selected{background:var(--accent)!important;border-color:var(--accent)!important;color:#fff!important;font-weight:700}.cdp-months-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:6px 0}.cdp-month-btn{padding:12px 6px;font-size:12px;font-weight:600;border:1px solid var(--line);border-radius:var(--radius-xs);background:var(--surface-2);color:var(--ink);text-align:center;cursor:pointer;transition:all .12s ease}.cdp-month-btn:hover{border-color:var(--accent);background:var(--surface-inset);color:var(--accent)}.cdp-month-btn.cdp-selected{background:var(--accent)!important;border-color:var(--accent)!important;color:#fff!important;font-weight:700}.cdp-footer{display:flex;align-items:center;justify-content:space-between;padding-top:8px;border-top:1px solid var(--line)}.cdp-footer-btn{font-size:11px;font-weight:600;background:transparent;border:none;color:var(--accent);padding:4px 8px;border-radius:var(--radius-xs);cursor:pointer;transition:background-color .12s ease}.cdp-footer-btn:hover{background:var(--surface-inset)}.cdp-footer-btn.cdp-footer-clear{color:var(--ink-3)}.cdp-footer-btn.cdp-footer-clear:hover{color:var(--ink)}.sticky-seq,.sticky-cno,.sticky-name-first{position:sticky;left:0;z-index:6;background:var(--surface)!important}.sticky-eno{position:sticky;left:60px;z-index:6;background:var(--surface)!important}.sticky-name-cno{position:sticky;left:95px;z-index:6;background:var(--surface)!important;box-shadow:3px 0 6px -2px #0000001a}.sticky-name,.sticky-name-first{box-shadow:3px 0 6px -2px #0000001a}.sticky-name{position:sticky;left:155px;z-index:6;background:var(--surface)!important}.sticky-actions{position:sticky;right:0;z-index:6;background:var(--surface)!important;box-shadow:-3px 0 6px -2px #00000014}th.sticky-seq,th.sticky-eno,th.sticky-cno,th.sticky-name,th.sticky-name-cno,th.sticky-name-first,th.sticky-actions{z-index:20!important;background:var(--surface-2)!important}tr:hover td.sticky-seq,tr:hover td.sticky-eno,tr:hover td.sticky-cno,tr:hover td.sticky-name,tr:hover td.sticky-name-cno,tr:hover td.sticky-name-first,tr:hover td.sticky-actions{background:var(--surface-hover, #fff9f2)!important}.table-unpinned .sticky-seq,.table-unpinned .sticky-eno,.table-unpinned .sticky-cno,.table-unpinned .sticky-name,.table-unpinned .sticky-name-cno,.table-unpinned .sticky-name-first,.table-unpinned .sticky-actions{position:static!important;box-shadow:none!important;z-index:auto!important;left:auto!important;right:auto!important}.table-unpinned th.sticky-seq,.table-unpinned th.sticky-eno,.table-unpinned th.sticky-cno,.table-unpinned th.sticky-name,.table-unpinned th.sticky-name-cno,.table-unpinned th.sticky-name-first,.table-unpinned th.sticky-actions{position:sticky!important;top:0!important;z-index:10!important}.student-name-text{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block}.sticky-term-check{position:sticky;left:0;width:48px;min-width:48px;max-width:48px;z-index:9;background:var(--surface)!important;text-align:center;padding:8px 10px!important;vertical-align:middle}th.sticky-term-check{position:sticky;left:0;width:48px;min-width:48px;max-width:48px;z-index:22!important;background:var(--surface-2)!important;text-align:center;padding:11px 10px!important;vertical-align:middle}.sticky-term-seq{position:sticky;left:48px;width:60px;min-width:60px;max-width:60px;z-index:8;background:var(--surface)!important}th.sticky-term-seq{position:sticky;left:48px;width:60px;min-width:60px;max-width:60px;z-index:21!important;background:var(--surface-2)!important}.sticky-term-eno{position:sticky;left:108px;width:95px;min-width:95px;max-width:95px;z-index:8;background:var(--surface)!important}th.sticky-term-eno{position:sticky;left:108px;width:95px;min-width:95px;max-width:95px;z-index:21!important;background:var(--surface-2)!important}.sticky-term-name{position:sticky;left:203px;min-width:200px;z-index:7;background:var(--surface)!important;border-right:1px solid var(--line-strong)!important;box-shadow:4px 0 10px -2px #0000001a}th.sticky-term-name{position:sticky;left:203px;min-width:200px;z-index:20!important;background:var(--surface-2)!important;border-right:1px solid var(--line-strong)!important;box-shadow:4px 0 10px -2px #0000001a}tr:hover td.sticky-term-check,tr:hover td.sticky-term-seq,tr:hover td.sticky-term-eno,tr:hover td.sticky-term-name{background:var(--surface-hover, #fff9f2)!important}tr.is-selected{background:#fee2e266!important}tr.is-selected td{background:#fee2e266}tr.is-selected td.sticky-term-check,tr.is-selected td.sticky-term-seq,tr.is-selected td.sticky-term-eno,tr.is-selected td.sticky-term-name{background:#fee7e7!important}tr.is-selected:hover{background:#fecacaa6!important}tr.is-selected:hover td{background:#fecacaa6}tr.is-selected:hover td.sticky-term-check,tr.is-selected:hover td.sticky-term-seq,tr.is-selected:hover td.sticky-term-eno,tr.is-selected:hover td.sticky-term-name{background:#fdd8d8!important}.table-unpinned .sticky-term-check,.table-unpinned .sticky-term-seq,.table-unpinned .sticky-term-eno,.table-unpinned .sticky-term-name{position:static!important;box-shadow:none!important;border-right:none!important;z-index:auto!important;left:auto!important}.table-unpinned th.sticky-term-check,.table-unpinned th.sticky-term-seq,.table-unpinned th.sticky-term-eno,.table-unpinned th.sticky-term-name{position:sticky!important;top:0!important;z-index:10!important}.table-checkbox{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:17px;height:17px;border:1.5px solid var(--line-strong);border-radius:var(--radius-xs, 4px);background:var(--surface);cursor:pointer;display:inline-grid;place-content:center;margin:0;vertical-align:middle;transition:all .15s ease;position:relative}.table-checkbox:hover{border-color:var(--danger, #e11d48);background:var(--danger-soft, rgba(225, 29, 72, .08))}.table-checkbox:checked{background:var(--danger, #e11d48);border-color:var(--danger, #e11d48)}.table-checkbox:checked:before{content:"";width:9px;height:5px;border-left:2px solid #ffffff;border-bottom:2px solid #ffffff;transform:rotate(-45deg) translate(.5px,-1px)}.table-checkbox:indeterminate{background:var(--danger, #e11d48);border-color:var(--danger, #e11d48)}.table-checkbox:indeterminate:before{content:"";width:8px;height:2px;background:#fff;border-radius:1px}.table-checkbox:focus-visible{outline:none;box-shadow:0 0 0 3px var(--danger-soft, rgba(225, 29, 72, .25))}.table-top-scrollbar{scrollbar-width:thin;scrollbar-color:var(--line-strong) var(--surface-inset)}.table-top-scrollbar::-webkit-scrollbar{height:7px}.table-top-scrollbar::-webkit-scrollbar-track{background:var(--surface-inset);border-radius:4px}.table-top-scrollbar::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:4px}.table-top-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ink-3)}.table-wrap.grab-pan{cursor:grab}.table-wrap.grab-pan.is-dragging{cursor:grabbing;-webkit-user-select:none;user-select:none}.actions-cell{display:flex;align-items:center;gap:6px;white-space:nowrap}.btn-icon-action{width:28px;height:28px;border-radius:var(--radius-xs);display:inline-flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--line);color:var(--ink-2);transition:all .15s ease;cursor:pointer}.btn-icon-action:hover{background:var(--surface-sub);color:var(--ink);border-color:var(--line-strong)}.btn-icon-action.wa:hover{background:#25d366!important;color:#fff!important;border-color:#25d366!important}.btn-icon-action.danger:hover{background:var(--error, #e53e3e)!important;color:#fff!important;border-color:var(--error, #e53e3e)!important}@media print{body{background:#fff!important;background-image:none!important;color:#111!important}.sidebar,.mobile-topbar,.student-detail-actions,.back-btn,.student-detail-tabs,.page-actions,.filter-card,.btn,.theme-toggle,.pager{display:none!important}.app{display:block!important}.student-detail-page,.page{padding:0!important;margin:0!important;max-width:100%!important}.student-detail-content{display:none!important}.print-only-dossier{display:block!important}.section,.bento-section,.card{break-inside:avoid;box-shadow:none!important;border:1px solid #cccccc!important;background:#fff!important}}
