@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;min-height:100%;margin:0;overflow-x:hidden}body{min-height:100dvh;margin:0;overflow-x:hidden}img,video,canvas,svg{max-width:100%;height:auto}#root{text-align:left;border:none;width:100%;max-width:none;min-height:100dvh;margin:0;padding:0;display:block}:root,[data-theme=light]{--brand-primary:#2563eb;--brand-primary-hover:#1d4ed8;--brand-accent:#3b82f6;--dash-page-bg:#f3f4f6;--dash-sidebar-bg:#f9fafb;--dash-border:#e5e7eb;--dash-text:#4b5563;--dash-text-muted:#6b7280;--dash-text-strong:#111827;--dash-surface:#fff;--dash-search-bg:#f3f4f6;--dash-nav-hover:#eef2ff;--dash-blue-soft:#eff6ff;--login-gradient-start:#eff6ff;--login-gradient-mid:#f3f4f6;--login-gradient-end:#fff;--att-row-alt:#f8fafc;--att-thead-bg:#f9fafb;--shadow-lg:0 20px 50px #0f172a1a;--success:#16a34a;--warning:#d97706;--danger:#dc2626}[data-theme=dark]{--brand-primary:#3b82f6;--brand-primary-hover:#2563eb;--brand-accent:#60a5fa;--dash-page-bg:#0b1220;--dash-sidebar-bg:#111827;--dash-border:#1f2937;--dash-text:#9ca3af;--dash-text-muted:#94a3b8;--dash-text-strong:#f1f5f9;--dash-surface:#1e293b;--dash-search-bg:#0f172a;--dash-nav-hover:#1e3a5f;--dash-blue-soft:#2563eb38;--login-gradient-start:#0f172a;--login-gradient-mid:#111827;--login-gradient-end:#1e293b;--att-row-alt:#1e293b;--att-thead-bg:#0f172a;--shadow-lg:0 20px 50px #00000073;--success:#22c55e;--warning:#fbbf24;--danger:#f87171}body{background:var(--dash-page-bg);color:var(--dash-text);font-family:Inter,system-ui,Segoe UI,Roboto,sans-serif;transition:background .2s,color .2s}[data-theme=dark] .att-card{background:var(--dash-surface);border-color:var(--dash-border)}[data-theme=dark] .att-title{color:var(--dash-text-strong)}[data-theme=dark] .att-sub,[data-theme=dark] .att-breadcrumb{color:var(--dash-text-muted)}[data-theme=dark] .att-table thead th{background:var(--att-thead-bg);color:var(--dash-text-muted)}[data-theme=dark] .att-table tbody tr:nth-child(2n){background:var(--att-row-alt)}[data-theme=dark] .att-table-wrap{border-color:var(--dash-border)}[data-theme=dark] .att-kpi{background:var(--dash-surface);border-color:var(--dash-border)}[data-theme=dark] .att-chart-box{border-color:var(--dash-border);background:#0f172a}[data-theme=dark],[data-theme=dark] .table,[data-theme=dark] .card,[data-theme=dark] .att-card,[data-theme=dark] .att-table{color:#fff}[data-theme=dark] .att-card-head,[data-theme=dark] .att-field label{color:#e5e7eb}[data-theme=dark] .att-table td{border-top-color:var(--dash-border);color:#f1f5f9}[data-theme=dark] input,[data-theme=dark] select,[data-theme=dark] textarea{color:#fff;background-color:#1e1e1e}[data-theme=dark] .att-field input,[data-theme=dark] .att-field select,[data-theme=dark] .att-field textarea{color:#fff;border-color:var(--dash-border);background-color:#1e1e1e}[data-theme=dark] ::placeholder{color:#ccc}[data-theme=dark] .btn-outline{color:#93c5fd;background:0 0;border-color:#60a5fa}[data-theme=dark] .btn-outline:hover:not(:disabled){background:#60a5fa1f}[data-theme=dark] .dash-menu-btn{background:var(--dash-surface,#1e293b);border-color:var(--dash-border,#334155)}[data-theme=dark] .dash-menu-btn-bar{background:var(--dash-text-strong,#f1f5f9)}[data-theme=dark] .login-error{color:#fca5a5;background:#dc262626}:root{--ui-space-1:4px;--ui-space-2:8px;--ui-space-3:12px;--ui-space-4:16px;--ui-space-5:20px;--ui-space-6:24px;--ui-radius-sm:6px;--ui-radius:8px;--ui-radius-lg:10px;--ui-radius-xl:12px;--ui-text-xs:11px;--ui-text-sm:12px;--ui-text-base:13px;--ui-text-md:14px;--ui-text-lg:16px;--ui-text-xl:18px;--ui-page-max:1280px;--ui-control-h:34px}.ui-page,.att-page{max-width:var(--ui-page-max);box-sizing:border-box;width:100%;margin:0 auto}.ui-page-intro,.att-sub{font-size:var(--ui-text-base);color:var(--dash-text-muted);margin:0 0 var(--ui-space-4);text-align:left;line-height:1.45}.ui-section-head,.att-section-head{margin-bottom:var(--ui-space-3)}.ui-section-title,.att-section-title{margin:0 0 var(--ui-space-1);font-size:var(--ui-text-lg);color:var(--dash-text-strong);font-weight:600}.ui-section-hint,.att-section-hint{font-size:var(--ui-text-sm);color:var(--dash-text-muted);margin:0;line-height:1.4}.ui-card,.att-card{background:var(--dash-surface);border-radius:var(--ui-radius-lg);border:1px solid var(--dash-border);padding:var(--ui-space-3) var(--ui-space-4);margin-bottom:var(--ui-space-3);text-align:left;box-shadow:0 1px 2px #0f172a0a}.ui-card-head,.att-card-head{justify-content:space-between;align-items:center;gap:var(--ui-space-2);margin-bottom:var(--ui-space-3);font-weight:600;font-size:var(--ui-text-md);color:var(--dash-text-strong);display:flex}.ui-card-table,.att-card-table{margin-bottom:var(--ui-space-3)}.ui-field,.att-field label{font-size:var(--ui-text-sm);color:var(--dash-text);margin-bottom:var(--ui-space-1);font-weight:600;display:block}.ui-field input,.ui-field select,.ui-field textarea,.att-field input,.att-field select,.att-field textarea{box-sizing:border-box;width:100%;min-height:var(--ui-control-h);border-radius:var(--ui-radius);border:1px solid var(--dash-border);font-size:var(--ui-text-base);background:var(--dash-surface);color:var(--dash-text-strong);padding:6px 10px}.ui-field textarea,.att-field textarea{resize:vertical;min-height:72px}.ui-field input:focus,.ui-field select:focus,.ui-field textarea:focus,.att-field input:focus,.att-field select:focus,.att-field textarea:focus{border-color:var(--brand-primary);outline:none;box-shadow:0 0 0 2px #2563eb1f}.ui-grid,.att-grid,.ui-filter-grid,.att-filter-grid,.att-top-filters{gap:var(--ui-space-3);grid-template-columns:repeat(auto-fill,minmax(180px,1fr));align-items:end;display:grid}.ui-actions,.att-actions{gap:var(--ui-space-2);margin-top:var(--ui-space-3);flex-wrap:wrap;display:flex}.ui-toolbar,.stu-toolbar,.fee-toolbar,.fee-period-bar{gap:var(--ui-space-2);margin-bottom:var(--ui-space-3);flex-wrap:wrap;align-items:flex-end;display:flex}.ui-toolbar .att-field,.stu-toolbar .att-field,.fee-toolbar .att-field{flex:1;min-width:140px;margin-bottom:0}.ui-toolbar .att-field.ui-grow,.stu-toolbar .att-field.stu-search,.fee-toolbar .fee-search{flex:2;min-width:200px}.btn,.ui-btn{min-height:var(--ui-control-h);border-radius:var(--ui-radius);font-size:var(--ui-text-base);cursor:pointer;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:6px 12px;font-weight:600;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.btn:disabled,.ui-btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary,.ui-btn-primary{background:var(--brand-primary);color:#fff}.btn-primary:hover:not(:disabled),.ui-btn-primary:hover:not(:disabled){background:var(--brand-primary-hover)}.btn-outline,.ui-btn-outline{background:var(--dash-surface);color:var(--brand-primary);border-color:var(--brand-primary)}.btn-outline:hover:not(:disabled),.ui-btn-outline:hover:not(:disabled){background:var(--dash-blue-soft)}.btn-danger,.ui-btn-danger{background:var(--dash-surface);color:var(--danger);border-color:#fecaca}.btn-danger:hover:not(:disabled),.ui-btn-danger:hover:not(:disabled){background:#fef2f2}.btn-sm,.ui-btn-sm,.btn-compact{min-height:28px;font-size:var(--ui-text-sm);padding:4px 10px}.ui-alert,.att-banner{align-items:center;gap:var(--ui-space-2);border-radius:var(--ui-radius);font-size:var(--ui-text-base);margin-bottom:var(--ui-space-3);border:1px solid #0000;padding:8px 12px;display:flex}.ui-alert--ok,.att-banner.ok{color:#065f46;background:#ecfdf5;border-color:#a7f3d0}.ui-alert--err,.att-banner.err{color:#991b1b;background:#fef2f2;border-color:#fecaca}.ui-table-wrap,.att-table-wrap,.dash-table-wrap{border-radius:var(--ui-radius-lg);border:1px solid var(--dash-border);overflow-x:auto}.ui-table,.att-table,.dash-table{border-collapse:collapse;width:100%;font-size:var(--ui-text-base)}.ui-table thead th,.att-table thead th,.dash-table thead th{text-align:left;background:var(--att-thead-bg,#f9fafb);color:var(--dash-text-muted);font-weight:600;font-size:var(--ui-text-xs);text-transform:uppercase;letter-spacing:.04em;padding:8px 12px}.ui-table tbody tr:nth-child(2n),.att-table tbody tr:nth-child(2n),.dash-table tbody tr:nth-child(2n){background:var(--att-row-alt,#f8fafc)}.ui-table td,.att-table td,.dash-table td{border-top:1px solid var(--dash-border);vertical-align:middle;padding:9px 12px}.ui-table-compact td,.ui-table-compact th,.att-table-compact td,.att-table-compact th{padding:7px 10px}.ui-empty,.att-empty{padding:var(--ui-space-5);text-align:center;color:var(--dash-text-muted);font-size:var(--ui-text-base)}.ui-stat-row,.att-kpi-row{gap:var(--ui-space-2);margin-bottom:var(--ui-space-3);grid-template-columns:repeat(auto-fill,minmax(min(100%,120px),1fr));display:grid}.ui-stat,.att-kpi,.dash-quick-card,.fee-summary-card,.fee-yearly-stat{background:var(--dash-surface);border:1px solid var(--dash-border);border-radius:var(--ui-radius-lg);padding:var(--ui-space-3)}.ui-stat h4,.att-kpi h4,.dash-quick-card h4,.fee-summary-card h4,.fee-yearly-stat h4{font-size:var(--ui-text-xs);color:var(--dash-text-muted);text-transform:uppercase;letter-spacing:.04em;margin:0 0 6px;font-weight:600}.ui-stat .val,.att-kpi .val,.dash-quick-card .val,.fee-summary-card .val,.fee-yearly-stat .val{font-size:var(--ui-text-xl);color:var(--dash-text-strong);font-weight:700;line-height:1.1}.att-kpi-foot{font-size:var(--ui-text-xs);color:var(--dash-text-muted);margin:6px 0 0}.att-kpi-green .val{color:var(--success)}.att-kpi-red .val{color:var(--danger)}.att-kpi-blue .val{color:var(--brand-primary)}.ui-charts,.att-charts,.att-charts-grid,.dash-chart-grid{gap:var(--ui-space-3);margin-bottom:var(--ui-space-3);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));display:grid}.ui-chart,.att-chart-box,.dash-chart-box{background:var(--dash-page-bg);border:1px solid var(--dash-border);border-radius:var(--ui-radius-lg);padding:var(--ui-space-3);min-height:220px}.ui-chart h4,.att-chart-box h4,.dash-chart-box h4{margin:0 0 var(--ui-space-2);font-size:var(--ui-text-md);color:var(--dash-text);font-weight:600}.att-chart-wide{margin-bottom:0}.att-chart-empty{padding:var(--ui-space-5);text-align:center;color:var(--dash-text-muted);font-size:var(--ui-text-base);margin:0}.ui-modal-backdrop,.stu-modal-backdrop,.fee-modal-backdrop,.exam-modal-overlay{padding:var(--ui-space-5) var(--ui-space-3);z-index:1000;background:#0f172a73;justify-content:center;align-items:flex-start;display:flex;position:fixed;inset:0;overflow-y:auto}.ui-modal,.stu-modal,.fee-modal,.exam-modal{background:var(--dash-surface);border-radius:var(--ui-radius-xl);width:100%;max-width:480px;box-shadow:var(--shadow-lg);border:1px solid var(--dash-border)}.exam-modal{max-width:720px}.fee-modal-xl{max-width:min(980px,96vw)}.ui-modal-head,.stu-modal-head,.fee-modal-head,.exam-modal-head{justify-content:space-between;align-items:center;gap:var(--ui-space-2);padding:var(--ui-space-3) var(--ui-space-4);border-bottom:1px solid var(--dash-border);font-weight:600;font-size:var(--ui-text-md);color:var(--dash-text-strong);display:flex}.exam-modal-head h2{font-size:var(--ui-text-md);margin:0;font-weight:600}.ui-modal-body,.stu-modal-body,.fee-modal-body,.exam-modal-body{padding:var(--ui-space-4)}.ui-modal-foot,.stu-modal-actions,.exam-modal-foot{gap:var(--ui-space-2);margin-top:var(--ui-space-3);padding:var(--ui-space-3) var(--ui-space-4);border-top:1px solid var(--dash-border);justify-content:flex-end;display:flex}.stu-modal-actions{margin-top:0}.stu-modal .att-grid,.ui-modal .ui-grid{gap:var(--ui-space-3);grid-template-columns:1fr 1fr;display:grid}.stu-modal .att-field.stu-full,.ui-modal .ui-field--full{grid-column:1/-1}.ui-pagination,.stu-pagination{align-items:center;gap:var(--ui-space-2);margin-top:var(--ui-space-3);color:var(--dash-text-muted);font-size:var(--ui-text-sm);display:flex}.ui-badge,.att-badge{font-size:var(--ui-text-xs);border-radius:999px;padding:2px 8px;font-weight:600;display:inline-flex}.att-badge.present{color:#166534;background:#dcfce7}.att-badge.absent{color:#991b1b;background:#fee2e2}@media (width<=768px){.ui-grid,.att-grid,.att-filter-grid,.stu-modal .att-grid{grid-template-columns:1fr}.ui-toolbar,.stu-toolbar{flex-direction:column;align-items:stretch}}@media (width<=640px){.ui-modal-backdrop,.stu-modal-backdrop,.fee-modal-backdrop,.exam-modal-overlay{align-items:stretch;padding:0}.ui-modal,.stu-modal,.fee-modal,.exam-modal{border-radius:0;max-width:none;min-height:100dvh}}[data-theme=dark] .ui-modal-backdrop,[data-theme=dark] .stu-modal-backdrop,[data-theme=dark] .fee-modal-backdrop,[data-theme=dark] .exam-modal-overlay{background:#000000a6}[data-theme=dark] .ui-alert--ok,[data-theme=dark] .att-banner.ok{color:#86efac;background:#16a34a26;border-color:#16a34a59}[data-theme=dark] .btn-danger,[data-theme=dark] .ui-btn-danger{color:#fca5a5;border-color:#f8717166}.dash{--blue:#2563eb;--blue-hover:#1d4ed8;--blue-soft:var(--dash-blue-soft,#eff6ff);--border:var(--dash-border,#e5e7eb);--sidebar-bg:var(--dash-sidebar-bg,#f9fafb);--text:var(--dash-text,#4b5563);--text-strong:var(--dash-text-strong,#111827);--surface:var(--dash-surface,#fff);--radius:12px;background:var(--dash-page-bg,#f3f4f6);min-height:100vh;color:var(--text);grid-template-columns:260px 1fr;font-family:Inter,system-ui,Segoe UI,Roboto,sans-serif;display:grid}.dash-sidebar{background:var(--sidebar-bg);border-right:1px solid var(--border);flex-direction:column;gap:.5rem;min-height:100vh;padding:1.25rem 1rem;display:flex}.dash-sidebar .dash-nav{flex:1}.dash-brand{border-bottom:1px solid var(--border);align-items:center;gap:.65rem;margin-bottom:.5rem;padding:.5rem .75rem 1.25rem;display:flex}.dash-brand-mark{background:var(--blue);color:#fff;border-radius:8px;place-items:center;width:36px;height:36px;font-size:14px;font-weight:700;display:grid}.dash-brand-logo{object-fit:contain;border-radius:8px;flex-shrink:0;width:55px;height:55px}.dash-brand-title{color:var(--text-strong);text-align:left;letter-spacing:-.01em;font-size:14px;font-weight:700;line-height:1.2}.dash-brand-sub{color:var(--dash-text-muted,#6b7280);margin-top:2px;font-size:11px;font-weight:500;line-height:1.3}.dash-nav{flex-direction:column;gap:4px;display:flex}.dash-nav a{color:var(--text);border-radius:8px;align-items:center;gap:10px;padding:10px 12px;font-size:14px;font-weight:500;text-decoration:none;transition:background .15s,color .15s;display:flex}.dash-nav a:hover{background:var(--dash-nav-hover,#eef2ff);color:var(--blue)}.dash-nav a.active{background:var(--blue-soft);color:var(--blue);box-shadow:inset 3px 0 0 var(--blue)}.dash-main{flex-direction:column;min-width:0;display:flex}.dash-topbar{background:var(--surface);border-bottom:1px solid var(--border);padding:clamp(10px,2.5vw,12px) clamp(12px,4vw,24px);padding-top:calc(clamp(10px, 2.5vw, 12px) + env(safe-area-inset-top,0px));padding-left:calc(clamp(12px, 4vw, 24px) + env(safe-area-inset-left,0px));padding-right:calc(clamp(12px, 4vw, 24px) + env(safe-area-inset-right,0px));z-index:20;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 14px;display:flex;position:sticky;top:0}.dash-topbar-lead{flex:auto;align-items:center;gap:10px;min-width:0;display:flex}.dash-menu-btn{border:1px solid var(--dash-border,#e5e7eb);background:var(--dash-surface,#fff);cursor:pointer;border-radius:10px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:5px;width:44px;height:44px;padding:0;transition:background .15s,border-color .15s;display:none}.dash-menu-btn:hover{background:var(--dash-nav-hover,#eef2ff)}.dash-menu-btn-bar{background:var(--text-strong);border-radius:1px;width:18px;height:2px;transition:transform .2s,opacity .2s;display:block}.dash--nav-open .dash-menu-btn-bar:first-child{transform:translateY(7px)rotate(45deg)}.dash--nav-open .dash-menu-btn-bar:nth-child(2){opacity:0}.dash--nav-open .dash-menu-btn-bar:nth-child(3){transform:translateY(-7px)rotate(-45deg)}.dash-nav-backdrop{display:none}.dash-topbar h1{color:var(--text-strong);text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0;font-size:clamp(15px,3.8vw,18px);font-weight:600;line-height:1.25;overflow:hidden}.dash-search{display:none}.dash-content{padding:var(--ui-space-3) var(--ui-space-4);padding-bottom:calc(var(--ui-space-3) + env(safe-area-inset-bottom,0px));box-sizing:border-box;flex:1;width:100%;min-width:0}.dash-user{text-align:right;flex-shrink:0;align-items:center;gap:10px;min-width:0;font-size:clamp(12px,2.8vw,13px);display:flex}.dash-user>div:first-child{min-width:0}.dash-user-sub{color:var(--dash-text-muted,#6b7280)}.dash-user strong{color:var(--text-strong);text-overflow:ellipsis;white-space:nowrap;max-width:min(160px,38vw);display:block;overflow:hidden}@media (width<=380px){.dash-search{flex-basis:100%;order:1;max-width:none}.dash-user,.dash-theme-toggle{order:0}}.dash-theme-toggle{border:1px solid var(--dash-border,#e5e7eb);background:var(--dash-surface,#fff);cursor:pointer;width:44px;height:44px;color:var(--text-strong);border-radius:10px;flex-shrink:0;place-items:center;transition:background .15s,border-color .15s;display:grid}.dash-theme-toggle:hover{background:var(--dash-nav-hover,#eef2ff)}.ui-icon{flex-shrink:0;display:block}.dash-logout-btn{background:var(--dash-surface,#fff);color:#2563eb;cursor:pointer;border:1px solid #2563eb;border-radius:8px;width:100%;margin-top:auto;padding:10px 14px;font-weight:600}.dash-logout-btn:hover{background:var(--dash-blue-soft,#eff6ff)}.dash-avatar{background:linear-gradient(135deg, #93c5fd, var(--blue));color:#fff;border-radius:50%;place-items:center;width:40px;height:40px;font-size:14px;font-weight:600;display:grid}@media (width<=1023px){.dash{grid-template-columns:1fr}.dash-sidebar{z-index:210;-webkit-overflow-scrolling:touch;width:min(280px,88vw);height:100dvh;min-height:100dvh;padding-top:calc(1.25rem + env(safe-area-inset-top,0px));padding-bottom:env(safe-area-inset-bottom,0px);padding-left:calc(1rem + env(safe-area-inset-left,0px));transition:transform .22s,box-shadow .22s;position:fixed;top:0;left:0;overflow-y:auto;transform:translate(-100%)}.dash--nav-open .dash-sidebar{transform:translate(0);box-shadow:8px 0 40px #0003}.dash-nav-backdrop{z-index:205;opacity:0;pointer-events:none;background:#0f172a80;transition:opacity .2s;display:block;position:fixed;inset:0}.dash--nav-open .dash-nav-backdrop{opacity:1;pointer-events:auto}.dash-menu-btn{display:inline-flex}}@media (width>=1024px){.dash-nav-backdrop{display:none!important}.dash-sidebar{transform:none!important}}.login-page{background:linear-gradient(160deg, var(--login-gradient-start) 0%, var(--login-gradient-mid) 50%, var(--login-gradient-end) 100%);place-items:center;min-height:100dvh;padding:24px;display:grid;position:relative}.login-toolbar{z-index:2;align-items:center;gap:10px;display:flex;position:absolute;top:20px;right:20px}.login-theme-toggle{border:1px solid var(--dash-border,#e5e7eb);background:var(--dash-surface,#fff);cursor:pointer;width:44px;height:44px;color:var(--dash-text-strong,#111827);border-radius:12px;place-items:center;display:grid}.login-theme-toggle:hover{background:var(--dash-nav-hover,#eef2ff)}.login-card{background:var(--dash-surface,#fff);width:100%;max-width:420px;box-shadow:var(--shadow-lg,0 20px 50px #0f172a1a);border:1px solid var(--dash-border,#e5e7eb);border-radius:20px;padding:36px}.login-brand-row{align-items:center;gap:14px;margin-bottom:20px;display:flex}.login-logo{border-radius:14px;flex-shrink:0;width:52px;height:52px}.login-brand{color:var(--brand-primary,#2563eb);letter-spacing:-.02em;font-size:18px;font-weight:700}.login-card h1{color:var(--dash-text-strong,#111827);text-align:left;margin:0 0 20px;font-size:22px;font-weight:600}.login-hint{color:var(--dash-text-muted,#6b7280);text-align:left;margin:4px 0 0;font-size:13px}.login-card form{flex-direction:column;gap:16px;display:flex}.login-card label{color:var(--dash-text,#374151);text-align:left;flex-direction:column;gap:6px;font-size:13px;font-weight:600;display:flex}.login-card input{border:1px solid var(--dash-border,#d1d5db);background:var(--dash-surface,#fff);color:var(--dash-text-strong,#111827);border-radius:10px;padding:11px 13px;font-size:15px}.login-card input:focus{border-color:var(--brand-primary,#2563eb);outline:none;box-shadow:0 0 0 3px #2563eb26}.login-card button[type=submit]{background:var(--brand-primary,#2563eb);color:#fff;cursor:pointer;border:none;border-radius:10px;margin-top:8px;padding:12px;font-size:15px;font-weight:600;transition:background .15s}.login-card button[type=submit]:hover:not(:disabled){background:var(--brand-primary-hover,#1d4ed8)}.login-card button:disabled{opacity:.6;cursor:not-allowed}.login-error{color:#b91c1c;text-align:left;background:#fef2f2;border-radius:8px;padding:10px 12px;font-size:14px}.login-demo{color:#6b7280;text-align:left;margin-top:20px;font-size:12px;line-height:1.5}.login-footer{text-align:center;color:var(--dash-text-muted,#6b7280);font-size:12px;position:absolute;bottom:16px;left:0;right:0}
