*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}:root{--primary:#4a3ffc;--primary-dark:#372edb;--primary-light:#6b63ff;--primary-bg:#eef0ff;--success:#22c55e;--danger:#ef4444;--warning:#f59e0b;--gray-50:#f9fafb;--gray-100:#f3f4f6;--gray-200:#e5e7eb;--gray-300:#d1d5db;--gray-400:#9ca3af;--gray-500:#6b7280;--gray-600:#4b5563;--gray-700:#374151;--gray-800:#1f2937;--gray-900:#111827;--shadow:0 2px 12px #00000014;--shadow-lg:0 8px 30px #0000001f;--radius:16px;--radius-sm:10px;--radius-xs:6px;--nav-height:68px;--header-height:56px;--footer-height:32px;--transition:.2s ease}[data-theme=dark]{--primary:#6366f1;--primary-dark:#4f46e5;--primary-light:#818cf8;--primary-bg:#6366f12e;--success:#34d399;--danger:#f87171;--warning:#fbbf24;--gray-50:#0f172a;--gray-100:#1e293b;--gray-200:#334155;--gray-300:#475569;--gray-400:#64748b;--gray-500:#94a3b8;--gray-600:#cbd5e1;--gray-700:#e2e8f0;--gray-800:#f1f5f9;--gray-900:#f8fafc;--shadow:0 2px 12px #00000040;--shadow-lg:0 8px 30px #00000059}html,body{background:var(--gray-50);color:var(--gray-800);height:100%;font-family:Segoe UI,system-ui,-apple-system,sans-serif}#root{min-height:100vh}a{color:var(--primary);text-decoration:none}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:8px}.app-shell{background:var(--gray-50);max-width:480px;min-height:100vh;box-shadow:var(--shadow);flex-direction:column;margin:0 auto;display:flex}.app-main{padding:16px 16px calc(var(--nav-height) + 24px);flex:1;overflow-y:auto}.app-header{height:var(--header-height);background:var(--gray-50);border-bottom:1px solid var(--gray-200);z-index:5;align-items:center;gap:10px;padding:0 16px;display:flex;position:sticky;top:0}.app-header h1{flex:1;font-size:18px;font-weight:700}.app-header .icon-btn{color:var(--gray-600);cursor:pointer;background:0 0;border:none;padding:6px;font-size:18px}.pending-banner{cursor:pointer;background:var(--warning);color:#fff;text-align:left;width:100%;top:var(--header-height);z-index:4;border:none;align-items:center;gap:10px;padding:10px 16px;font-size:13px;display:flex;position:sticky;box-shadow:0 2px 8px #f59e0b40}.pending-banner i{font-size:15px}.pending-banner strong{font-weight:700}.bottom-nav{width:100%;max-width:480px;height:var(--nav-height);background:var(--gray-50);border-top:1px solid var(--gray-200);z-index:10;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.bottom-nav .nav-item{color:var(--gray-500);cursor:pointer;transition:color var(--transition);background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;padding:6px 0;font-size:11px;display:flex}.bottom-nav .nav-item i{transition:transform var(--transition), filter var(--transition);filter:grayscale(.55);font-size:18px}.bottom-nav .nav-item.active{color:var(--gray-800);font-weight:600}.bottom-nav .nav-item.active i{filter:grayscale(0);transform:scale(1.12)translateY(-2px)}.card{background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:14px;padding:16px}.card-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.card-header h2,.card-header h3{font-size:15px;font-weight:700}.list{flex-direction:column;gap:8px;display:flex}.list-item{background:var(--gray-100);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.list-item .li-main{flex:1}.list-item .li-title{font-size:14px;font-weight:600}.list-item .li-sub{color:var(--gray-500);font-size:12px}.list-item .actions{gap:6px;display:flex}.list-item .actions button{cursor:pointer;color:var(--gray-500);border-radius:var(--radius-xs);background:0 0;border:none;padding:4px 6px}.list-item .actions button:hover{background:var(--gray-200);color:var(--gray-800)}.list-item .actions button.danger:hover{color:var(--danger)}.profile-rows{flex-direction:column;gap:2px;display:flex}.profile-row{border-bottom:1px solid var(--gray-200);justify-content:space-between;gap:12px;padding:10px 2px;font-size:14px;display:flex}.profile-row:last-child{border-bottom:none}.profile-row span:last-child{text-align:right;word-break:break-word;font-weight:600}.btn{border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition);border:none;justify-content:center;align-items:center;gap:6px;padding:10px 16px;font-size:14px;font-weight:600;display:inline-flex}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.btn-outline{color:var(--primary);border:1.5px solid var(--primary);background:0 0}.btn-ghost{background:var(--gray-200);color:var(--gray-700)}.btn-danger{background:var(--danger);color:#fff}.btn-sm{padding:6px 12px;font-size:12px}.btn-block{width:100%}.btn:disabled{opacity:.6;cursor:not-allowed}.fab{right:24px;bottom:calc(var(--nav-height) + 16px);background:var(--primary);color:#fff;width:52px;height:52px;box-shadow:var(--shadow-lg);cursor:pointer;z-index:8;border:none;border-radius:50%;font-size:22px;position:fixed}.field{margin-bottom:12px}.field label{color:var(--gray-700);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.field input,.field select,.field textarea{border:1.5px solid var(--gray-300);border-radius:var(--radius-sm);background:var(--gray-50);width:100%;color:var(--gray-800);padding:10px 12px;font-size:14px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--primary);outline:none}.field .hint{color:var(--gray-500);margin-top:4px;font-size:11px}.field-error{border-color:var(--danger)!important}.error-text{color:var(--danger);margin-top:6px;font-size:12px}.auth-page{background:linear-gradient(135deg, var(--primary), var(--primary-dark));justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.auth-card{background:var(--gray-50);border-radius:var(--radius);width:100%;max-width:380px;box-shadow:var(--shadow-lg);padding:28px 22px}.auth-card .logo{background:var(--primary);color:#fff;border-radius:14px;justify-content:center;align-items:center;width:56px;height:56px;margin:0 auto 16px;font-size:26px;font-weight:700;display:flex}.auth-card h1{text-align:center;margin-bottom:4px;font-size:20px}.auth-card .subtitle{text-align:center;color:var(--gray-500);margin-bottom:22px;font-size:13px}.auth-card .alt-link{text-align:center;color:var(--gray-600);margin-top:16px;font-size:13px}.modal-overlay{padding-top:var(--header-height);z-index:50;background:#00000073;justify-content:center;align-items:flex-start;display:flex;position:fixed;inset:0}.modal{background:var(--gray-50);border-radius:0 0 var(--radius) var(--radius);width:100%;max-width:480px;max-height:calc(100vh - var(--header-height));max-height:calc(100dvh - var(--header-height));padding:18px;overflow-y:auto}.modal-header{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.modal-header h3{font-size:16px;font-weight:700}.modal-actions{gap:10px;margin-top:18px;display:flex}.stat-grid{grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:14px;display:grid}.stat-card{background:var(--gray-100);border-radius:var(--radius-sm);padding:14px}.stat-card .stat-value{color:var(--primary);font-size:24px;font-weight:700}.stat-card .stat-label{color:var(--gray-500);font-size:12px}.stat-item{background:var(--gray-200);border-radius:var(--radius-sm);text-align:center;padding:14px 12px}.stat-item .number{color:var(--gray-900);font-size:26px;font-weight:700;line-height:1.2}.stat-item .label{color:var(--gray-500);margin-top:2px;font-size:12px}.stat-item .stat-icon{color:var(--primary);margin-bottom:4px;font-size:18px}.card-header .action-link{color:var(--primary);cursor:pointer;background:0 0;border:none;padding:0;font-size:13px;font-weight:600}.card-header .action-link:active{opacity:.7}.schedule-item{border-bottom:1px solid var(--gray-200);align-items:center;gap:12px;padding:10px 0;display:flex}.schedule-item:last-child{border-bottom:none}.schedule-item .time{color:var(--gray-700);min-width:64px;font-size:14px;font-weight:600}.schedule-item .info{flex:1;min-width:0}.schedule-item .info .title{font-size:14px;font-weight:500}.schedule-item .info .sub{color:var(--gray-500);font-size:12px}.schedule-item .tag{background:var(--primary-bg);color:var(--primary);white-space:nowrap;border-radius:20px;padding:2px 10px;font-size:11px;font-weight:500}.schedule-item .tag.hoy{color:#16a34a;background:#dcfce7}[data-theme=dark] .schedule-item .tag.hoy{color:#34d399;background:#34d39933}.search-box{background:var(--gray-100);border-radius:var(--radius-sm);border:2px solid var(--gray-200);transition:border var(--transition), background var(--transition);align-items:center;margin-bottom:14px;padding:0 14px;display:flex}.search-box:focus-within{border-color:var(--primary)}.search-box>i{color:var(--gray-400);margin-right:10px;font-size:16px}.search-box input{color:var(--gray-800);background:0 0;border:none;outline:none;flex:1;min-width:0;padding:12px 0;font-size:15px}.search-box input::placeholder{color:var(--gray-400)}.search-box .clear-btn{color:var(--gray-400);cursor:pointer;background:0 0;border:none;padding:4px 6px;font-size:16px;display:none}.search-box .clear-btn.visible{display:block}.student-list{margin:0;padding:0;list-style:none}.student-list li{background:var(--gray-100);border-radius:var(--radius-sm);transition:background var(--transition);cursor:pointer;border:1px solid #0000;justify-content:space-between;align-items:center;margin-bottom:6px;padding:12px 14px;display:flex;box-shadow:0 1px 4px #0000000a}.student-list li:active{transform:scale(.99)}.student-list li .name{font-size:15px;font-weight:500}.student-list li .meta{color:var(--gray-400);font-size:12px}.student-list li .actions{gap:6px;display:flex}.student-list li .actions button{color:var(--gray-400);cursor:pointer;transition:background var(--transition);background:0 0;border:none;border-radius:6px;padding:4px 6px;font-size:16px}.student-list li .actions button:active{background:var(--gray-200)}.student-list li .actions button.edit{color:var(--primary)}.student-list li .actions button.del{color:var(--danger)}.empty-state{text-align:center;color:var(--gray-400);padding:30px 0}.empty-state i{margin-bottom:8px;font-size:32px;display:block}.context-bar{background:var(--primary-bg);border-radius:var(--radius-sm);align-items:center;gap:8px;margin-bottom:14px;padding:8px 12px;font-size:13px;display:flex}.context-bar .ctx-label{color:var(--gray-600)}.context-bar .ctx-value{color:var(--primary);font-weight:600}.badge{border-radius:10px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.badge-approved{color:var(--success);background:#22c55e26}.badge-pending{color:var(--warning);background:#f59e0b26}.badge-not-approved{color:var(--danger);background:#ef444426}.spinner{border:2px solid var(--gray-300);border-top-color:var(--primary);border-radius:50%;width:18px;height:18px;animation:.6s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.text-muted{color:var(--gray-500)}.section-title{color:var(--gray-600);text-transform:uppercase;letter-spacing:.04em;margin:14px 0 8px;font-size:13px;font-weight:700}.grade-item{background:var(--gray-200);border-radius:var(--radius-xs);border-left:3px solid var(--primary);justify-content:space-between;align-items:center;margin-bottom:6px;padding:10px 12px;display:flex}.grade-item .g-left{flex-direction:column;gap:2px;min-width:0;display:flex}.grade-item .g-left .g-name{font-size:14px;font-weight:500}.grade-item .g-left .g-meta{color:var(--gray-500);flex-wrap:wrap;align-items:center;gap:4px;font-size:12px;display:flex}.grade-item .g-right{align-items:center;gap:10px;display:flex}.grade-item .g-right .score{color:var(--gray-800);text-align:right;min-width:32px;font-size:18px;font-weight:700}.grade-item .g-right .del-grade{color:var(--gray-400);cursor:pointer;background:0 0;border:none;padding:4px;font-size:14px}.grade-item .g-right .del-grade:active{color:var(--danger)}.grade-type-badge{background:var(--primary-bg);color:var(--primary);border-radius:20px;padding:2px 12px;font-size:11px;font-weight:600;display:inline-block}.grade-type-badge.examen{color:#d97706;background:#fef3c7}.grade-type-badge.trabajo{color:#16a34a;background:#dcfce7}.grade-type-badge.participacion{color:#2563eb;background:#dbeafe}.grade-type-badge.otro{background:var(--gray-300);color:var(--gray-700)}[data-theme=dark] .grade-type-badge.examen{color:#fbbf24;background:#fbbf2433}[data-theme=dark] .grade-type-badge.trabajo{color:#34d399;background:#34d39933}[data-theme=dark] .grade-type-badge.participacion{color:#60a5fa;background:#60a5fa33}.btn-success{background:var(--success);color:#fff}.btn-success:hover{filter:brightness(.95)}.muted-link{color:var(--gray-500);cursor:pointer;background:0 0;border:none;padding:4px;font-size:13px}.attendance-summary{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px;display:grid}.attendance-summary .att-stat{background:var(--gray-200);border-radius:var(--radius-sm);text-align:center;cursor:pointer;-webkit-user-select:none;user-select:none;padding:12px 8px;transition:transform .15s,box-shadow .15s,background .15s}.attendance-summary .att-stat .number{color:var(--gray-900);font-size:22px;font-weight:700}.attendance-summary .att-stat .label{color:var(--gray-500);margin-top:2px;font-size:11px}.attendance-summary .att-stat:active{transform:scale(.97)}.attendance-summary .att-stat.active{background:var(--primary-bg);box-shadow:inset 0 0 0 2px var(--primary)}.attendance-summary .att-stat.active .label{color:var(--primary);font-weight:600}.attendance-filter-bar{background:var(--primary-bg);border-radius:var(--radius-sm);color:var(--gray-700);border:1px solid #4a3ffc26;justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;padding:8px 12px;font-size:13px;display:flex}.attendance-filter-bar button{color:var(--primary);cursor:pointer;background:#4a3ffc1a;border:none;border-radius:20px;padding:4px 10px;font-size:12px;font-weight:500}.attendance-filter-bar button:active{background:#4a3ffc33}.attendance-list{margin:0;padding:0;list-style:none}.attendance-list li{background:var(--gray-100);border-radius:var(--radius-sm);border:1px solid #0000;justify-content:space-between;align-items:center;margin-bottom:6px;padding:12px 14px;display:flex;box-shadow:0 1px 4px #0000000a}.attendance-list li .att-info{flex:1;min-width:0}.attendance-list li .att-info .name{font-size:15px;font-weight:500}.attendance-list li .att-info .meta{color:var(--gray-500);font-size:12px}.attendance-list li .att-badge{white-space:nowrap;border-radius:20px;margin-left:8px;padding:3px 10px;font-size:11px;font-weight:600}.att-badge.baja{color:#991b1b;background:#fee2e2}.att-badge.media{color:#b45309;background:#fef3c7}.att-badge.alta{color:#166534;background:#dcfce7}[data-theme=dark] .att-badge.baja{color:#fca5a5;background:#f8717133}[data-theme=dark] .att-badge.media{color:#fcd34d;background:#fbbf2433}[data-theme=dark] .att-badge.alta{color:#6ee7b7;background:#34d39933}.attendance-empty{text-align:center;color:var(--gray-400);padding:24px 16px}.attendance-checkbox{cursor:pointer;flex:1;align-items:center;gap:10px;min-width:0;display:flex}.attendance-checkbox input[type=checkbox]{width:22px;height:22px;accent-color:var(--primary);cursor:pointer;flex-shrink:0}.attendance-checkbox .att-label{color:var(--gray-800);font-size:15px;font-weight:500}.reports-hero{background:linear-gradient(135deg, var(--primary) 0%, var(--primary-light) 100%);color:#fff;border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:16px;padding:20px}.reports-hero h2{align-items:center;gap:10px;margin-bottom:4px;font-size:20px;font-weight:700;display:flex}.reports-hero p{opacity:.92;font-size:13px;line-height:1.4}.reports-grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.report-card{background:var(--gray-100);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--gray-200);cursor:pointer;transition:all var(--transition);text-align:left;flex-direction:column;justify-content:space-between;min-height:132px;padding:16px;display:flex;position:relative;overflow:hidden}.report-card:hover{border-color:var(--primary)}.report-card:active{box-shadow:var(--shadow-lg);transform:scale(.97)}.report-card .rc-icon{border-radius:var(--radius-sm);color:#fff;justify-content:center;align-items:center;width:44px;height:44px;margin-bottom:10px;font-size:20px;display:flex}.report-card .rc-icon.asistencia{background:linear-gradient(135deg,#22c55e,#16a34a)}.report-card .rc-icon.alumnos{background:linear-gradient(135deg,#3b82f6,#2563eb)}.report-card .rc-icon.cursos{background:linear-gradient(135deg,#f59e0b,#d97706)}.report-card .rc-icon.notas{background:linear-gradient(135deg,#8b5cf6,#7c3aed)}.report-card .rc-icon.colegios{background:linear-gradient(135deg,#ec4899,#db2777)}.report-card .rc-icon.horarios{background:linear-gradient(135deg,#14b8a6,#0d9488)}.report-card .rc-icon.carga{background:linear-gradient(135deg,#0ea5e9,#0284c7)}.report-card .rc-title{color:var(--gray-800);margin-bottom:2px;font-size:15px;font-weight:700}.report-card .rc-desc{color:var(--gray-500);font-size:12px;line-height:1.3}.report-card .rc-arrow{color:var(--gray-300);font-size:14px;position:absolute;top:12px;right:12px}.report-detail{background:var(--gray-100);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--gray-200);margin-bottom:12px;padding:16px}.report-detail h3{color:var(--gray-700);align-items:center;gap:8px;margin-bottom:12px;font-size:15px;font-weight:600;display:flex}.report-row{border-bottom:1px solid var(--gray-200);justify-content:space-between;align-items:center;gap:8px;padding:8px 0;font-size:14px;display:flex}.report-row:last-child{border-bottom:none}.report-row .rr-name{color:var(--gray-800);min-width:0;font-weight:500}.report-row .rr-value{color:var(--primary);text-align:right;white-space:nowrap;font-weight:700}.report-row .rr-value.ok{color:var(--success)}.report-row .rr-value.bad{color:var(--danger)}.report-filters{background:var(--gray-100);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--gray-200);grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px;padding:14px;display:grid}.report-filters .filter-group{flex-direction:column;min-width:0;display:flex}.report-filters .filter-group label{color:var(--gray-500);text-transform:uppercase;letter-spacing:.4px;margin-bottom:4px;font-size:11px;font-weight:700}.report-filters .filter-group select,.report-filters .filter-group input{border:1.5px solid var(--gray-300);border-radius:var(--radius-sm);background:var(--gray-50);width:100%;min-height:38px;color:var(--gray-800);padding:9px 10px;font-size:14px}.report-filters .filter-group select:focus,.report-filters .filter-group input:focus{border-color:var(--primary);outline:none}.report-filters .filter-clear{grid-column:1/-1;justify-content:flex-end;margin-top:2px;display:flex}.report-filters .filter-summary{color:var(--gray-500);border-top:1px dashed var(--gray-200);grid-column:1/-1;padding:6px 0 0;font-size:12px}.filter-active-tag{background:var(--primary-bg);color:var(--primary);border-radius:20px;margin-bottom:4px;margin-right:6px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.report-empty{color:var(--gray-400);font-size:13px}.report-back{align-items:center;gap:8px;margin-bottom:12px;display:flex}.carga-table-wrap{-webkit-overflow-scrolling:touch;margin:0 -4px;padding:0 4px;overflow-x:auto}.carga-table{border-collapse:collapse;width:100%;min-width:460px;font-size:12.5px}.carga-table thead th{background:var(--gray-100);color:var(--gray-500);text-transform:uppercase;letter-spacing:.3px;border-bottom:1.5px solid var(--gray-300);white-space:nowrap;text-align:right;padding:8px 6px;font-size:10.5px;font-weight:700;position:sticky;top:0}.carga-table thead th.ct-course{text-align:left}.carga-table tbody tr{border-bottom:1px solid var(--gray-200)}.carga-table tbody tr:last-child{border-bottom:none}.carga-table td{color:var(--gray-800);vertical-align:middle;padding:9px 6px}.carga-table td.ct-num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.carga-table td.ct-course{text-align:left}.carga-table .ct-name{color:var(--gray-800);white-space:nowrap;font-weight:600}.carga-table .ct-hours{color:var(--gray-500);margin-top:1px;font-size:11px}.carga-table .ct-ok{color:var(--success)}.carga-table .ct-bad{color:var(--danger)}.carga-table .ct-muted{color:var(--gray-400)}.carga-table td.ct-pct{min-width:92px}.carga-bar{background:var(--gray-200);border-radius:99px;height:6px;margin-bottom:3px;overflow:hidden}.carga-bar-fill{height:100%;transition:width var(--transition);border-radius:99px}.carga-bar-fill.ok{background:var(--success)}.carga-bar-fill.warn{background:var(--warning)}.carga-bar-fill.bad{background:var(--danger)}.carga-bar-fill.none{background:var(--gray-300);opacity:.5;width:100%!important}.carga-pct{text-align:right;font-size:11.5px;font-weight:700;display:block}.carga-pct.ok{color:var(--success)}.carga-pct.warn{color:var(--warning)}.carga-pct.bad{color:var(--danger)}.carga-pct.none{color:var(--gray-400)}.side-nav,.app-footer,.side-toggle{display:none}@media (width>=1024px){.app-shell{--sidebar-w:220px}.app-shell.side-collapsed{--sidebar-w:64px}.app-shell{grid-template-areas:"header header""sidebar banner""sidebar main""footer footer";grid-template-rows:var(--header-height) auto 1fr var(--footer-height);grid-template-columns:var(--sidebar-w) 1fr;max-width:none;height:100vh;min-height:100vh;margin:0;display:grid}.app-header{grid-area:header}.side-toggle{display:inline-flex}.pending-banner{grid-area:banner;position:static;top:0}.side-nav{width:var(--sidebar-w);background:var(--gray-50);border-right:1px solid var(--gray-200);transition:width var(--transition);flex-direction:column;grid-area:sidebar;gap:2px;padding:8px 0;display:flex;overflow-y:auto}.side-nav .nav-item{color:var(--gray-500);cursor:pointer;white-space:nowrap;transition:background var(--transition), color var(--transition);background:0 0;border:none;align-items:center;gap:12px;padding:10px 18px;font-size:13px;display:flex}.side-nav .nav-item:hover{background:var(--gray-100)}.side-nav .nav-item i{text-align:center;filter:grayscale(.55);width:20px;transition:filter var(--transition), transform var(--transition);font-size:18px}.side-nav .nav-item.active{color:var(--gray-800);background:var(--gray-100);font-weight:600}.side-nav .nav-item.active i{filter:grayscale(0);transform:scale(1.12)}.app-shell.side-collapsed .nav-label{display:none}.app-shell.side-collapsed .side-nav .nav-item{justify-content:center;padding:12px 0}.app-main{grid-area:main;padding:16px;overflow-y:auto}.app-footer{border-top:1px solid var(--gray-200);background:var(--gray-50);color:var(--gray-500);grid-area:footer;align-items:center;gap:8px;padding:0 16px;font-size:12px;display:flex}.bottom-nav{display:none}.fab{bottom:calc(var(--footer-height) + 16px)}.modal{border-radius:var(--radius);max-width:640px}}
