:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--primary:#3b5bdb;--primary-strong:#2f49b8;--primary-soft:#eaeffd;--primary-ring:#3b5bdb52;--accent:#c98a2b;--accent-soft:#fbf1dd;--bg:#f4f6fb;--bg-tint-1:#5e81e91f;--bg-tint-2:#c98a2b14;--surface:#fff;--surface-2:#f7f9fe;--surface-inset:#f1f4fb;--surface-translucent:#ffffffd1;--text-strong:#101828;--text:#3d4a63;--text-muted:#64708a;--text-faint:#8a95ac;--border:#e2e7f1;--border-strong:#d0d7e6;--border-field:#cbd3e3;--success:#067647;--success-soft:#e7f6ee;--danger:#b42318;--danger-soft:#fef3f2;--danger-border:#fbd2cd;--shadow-xs:0 1px 2px #1018280f;--shadow-sm:0 2px 8px #1422460f;--shadow-md:0 10px 28px -8px #14224624, 0 2px 6px #1422460d;--shadow-lg:0 24px 60px -18px #1422463d, 0 4px 12px #1422460f;--shadow-focus:0 0 0 4px var(--primary-ring);--radius-xs:8px;--radius-sm:10px;--radius-md:14px;--radius-lg:18px;--radius-xl:24px;--radius-pill:999px;--ease:cubic-bezier(.4, 0, .2, 1);--ease-out:cubic-bezier(.16, 1, .3, 1);--sans:"Plus Jakarta Sans", "Segoe UI", -apple-system, BlinkMacSystemFont, sans-serif;--mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace;font:400 16px/1.6 var(--sans);color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--primary:#7b98ff;--primary-strong:#94abff;--primary-soft:#5b7ae829;--primary-ring:#7b98ff66;--accent:#e0ad5c;--accent-soft:#e0ad5c24;--bg:#0a0f1c;--bg-tint-1:#5b7ae824;--bg-tint-2:#e0ad5c12;--surface:#141b2d;--surface-2:#182036;--surface-inset:#1c2540;--surface-translucent:#141b2dc7;--text-strong:#f3f6fc;--text:#c4cddf;--text-muted:#97a2ba;--text-faint:#737f99;--border:#24304b;--border-strong:#2e3b59;--border-field:#32405f;--success:#4ade80;--success-soft:#4ade8024;--danger:#ff9a90;--danger-soft:#f05c4e24;--danger-border:#f05c4e57;--shadow-xs:0 1px 2px #0006;--shadow-sm:0 2px 10px #0006;--shadow-md:0 12px 32px -10px #0009, 0 2px 6px #0006;--shadow-lg:0 28px 70px -20px #000000b8, 0 6px 16px #0006;--shadow-focus:0 0 0 4px var(--primary-ring)}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--primary:#7b98ff;--primary-strong:#94abff;--primary-soft:#5b7ae829;--primary-ring:#7b98ff66;--accent:#e0ad5c;--accent-soft:#e0ad5c24;--bg:#0a0f1c;--bg-tint-1:#5b7ae824;--bg-tint-2:#e0ad5c12;--surface:#141b2d;--surface-2:#182036;--surface-inset:#1c2540;--surface-translucent:#141b2dc7;--text-strong:#f3f6fc;--text:#c4cddf;--text-muted:#97a2ba;--text-faint:#737f99;--border:#24304b;--border-strong:#2e3b59;--border-field:#32405f;--success:#4ade80;--success-soft:#4ade8024;--danger:#ff9a90;--danger-soft:#f05c4e24;--danger-border:#f05c4e57;--shadow-xs:0 1px 2px #0006;--shadow-sm:0 2px 10px #0006;--shadow-md:0 12px 32px -10px #0009, 0 2px 6px #0006;--shadow-lg:0 28px 70px -20px #000000b8, 0 6px 16px #0006;--shadow-focus:0 0 0 4px var(--primary-ring)}*{box-sizing:border-box}body{min-width:320px;color:var(--text);background:radial-gradient(1100px 620px at 12% -12%, var(--bg-tint-1), transparent 62%), radial-gradient(820px 520px at 92% -8%, var(--bg-tint-2), transparent 66%), var(--bg);transition:background-color .24s var(--ease), color .24s var(--ease);background-attachment:fixed;margin:0}#root{width:min(1240px,100% - 40px);min-height:100svh;margin:0 auto;padding:26px 0 56px}h1,h2,h3{color:var(--text-strong);letter-spacing:-.02em;margin:0 0 14px;font-weight:700;line-height:1.14}h1{letter-spacing:-.032em;font-size:clamp(1.9rem,4vw,2.55rem);font-weight:800}h2{font-size:1.24rem}h3{margin-bottom:6px;font-size:1.02rem}p{margin:0}strong{color:var(--text-strong);font-weight:600}a{color:var(--primary)}::selection{background:var(--primary-ring);color:var(--text-strong)}code{background:var(--surface-inset);font-family:var(--mono);color:var(--text-strong);border-radius:.35rem;padding:.15rem .45rem}@media (width<=900px){#root{width:min(100% - 20px,1240px);padding-top:18px}}.app-shell{gap:26px;display:grid}.page-body,.forms-layout{gap:20px;display:grid}.forms-setup{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));align-items:start;gap:20px;display:grid}.icon{stroke:currentColor;stroke-width:1.9px;stroke-linecap:round;stroke-linejoin:round;fill:none;flex:none;width:18px;height:18px}.icon-sm{width:15px;height:15px}.top-nav{z-index:30;border:1px solid var(--border);background:var(--surface-translucent);-webkit-backdrop-filter:saturate(160%)blur(18px);width:100vw;box-shadow:var(--shadow-md);border-left:none;border-right:none;border-radius:0;margin-left:calc(50% - 50vw);position:sticky;top:0}.top-nav-inner{justify-content:space-between;align-items:center;gap:16px;width:min(1240px,100% - 48px);margin:0 auto;padding:12px 0;display:flex}.brand-mark{align-items:center;gap:12px;min-width:0;display:flex}.brand-logo{object-fit:contain;background:var(--surface);border:1px solid var(--border);width:40px;height:40px;box-shadow:var(--shadow-xs);border-radius:11px;padding:4px}.brand-mark strong{letter-spacing:-.015em;color:var(--text-strong);font-size:1.02rem;font-weight:700;display:block}.brand-mark .brand-sub{letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint);font-size:.72rem;font-weight:600;display:block}.nav-tabs{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-inset);align-items:center;gap:4px;margin:0 auto;padding:4px;display:flex}.nav-tab{border-radius:var(--radius-xs);min-height:38px;color:var(--text-muted);font:inherit;cursor:pointer;transition:background-color .18s var(--ease), color .18s var(--ease), box-shadow .18s var(--ease);background:0 0;border:1px solid #0000;align-items:center;gap:8px;padding:0 .95rem;font-size:.92rem;font-weight:600;text-decoration:none;display:inline-flex}.nav-tab:hover{color:var(--text-strong);background:var(--surface)}.nav-tab.active{background:var(--surface);color:var(--primary);border-color:var(--border);box-shadow:var(--shadow-xs)}.nav-meta{align-items:center;gap:10px;display:flex}.nav-role{border-radius:var(--radius-pill);background:var(--surface-inset);border:1px solid var(--border);align-items:center;gap:8px;padding:.34rem .7rem .34rem .4rem;display:inline-flex}.brand-avatar{background:linear-gradient(150deg, var(--primary), var(--primary-strong));color:#fff;text-transform:uppercase;border-radius:50%;place-items:center;width:26px;height:26px;font-size:.76rem;font-weight:700;display:inline-grid}.nav-role-label{text-transform:capitalize;color:var(--text-strong);font-size:.82rem;font-weight:650}.icon-button{border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);width:40px;height:40px;color:var(--text-muted);cursor:pointer;transition:color .16s var(--ease), border-color .16s var(--ease), background-color .16s var(--ease), transform .16s var(--ease);place-items:center;display:inline-grid}.icon-button:hover{color:var(--primary);border-color:var(--primary);background:var(--primary-soft)}.icon-button:active{transform:scale(.94)}.card,.hero-panel{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm);animation:rise-in .42s var(--ease-out) both;position:relative}.card{text-align:left;transition:box-shadow .22s var(--ease), border-color .22s var(--ease), transform .22s var(--ease);padding:24px}.card:hover{box-shadow:var(--shadow-md);border-color:var(--border-strong)}.card-spotlight{border-color:color-mix(in srgb, var(--primary) 26%, var(--border));background:linear-gradient(180deg, var(--primary-soft), transparent 42%), var(--surface)}.card>h2{align-items:center;gap:9px;display:flex}.card>h2 .icon{color:var(--primary)}.hero-panel{background:radial-gradient(120% 140% at 100% 0%, var(--primary-soft), transparent 55%), var(--surface);padding:30px 32px;overflow:hidden}.eyebrow{text-transform:uppercase;letter-spacing:.15em;color:var(--primary);align-items:center;gap:7px;margin:0 0 12px;font-size:.72rem;font-weight:700;display:inline-flex}.eyebrow:before{content:"";background:var(--accent);border-radius:2px;width:18px;height:2px}.intro{max-width:60ch;color:var(--text-muted);font-size:1.02rem}.helper-copy{color:var(--text-muted);font-size:.9rem;line-height:1.5}.section-heading{justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:20px;display:flex}.section-heading h2{margin-bottom:4px}.card h2{align-items:center;gap:9px;display:flex}.card h2 .icon{color:var(--primary);width:19px;height:19px}.status-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;display:grid}.dashboard-grid{grid-template-columns:minmax(280px,320px) repeat(2,minmax(0,1fr))}.student-grid{grid-template-columns:minmax(280px,340px) minmax(0,1fr)}.wide-card{grid-column:span 2}.dashboard-grid>.wide-card{grid-column:2/-1}.student-grid>.wide-card{grid-column:1/-1}.feedback-card{border-color:var(--danger-border);background:var(--danger-soft);padding:14px 20px;animation-duration:.26s}.feedback-card .error{align-items:center;gap:8px;font-weight:600;display:flex}.pill{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--surface-inset);color:var(--text);align-items:center;gap:7px;padding:.4rem .8rem;font-size:.86rem;font-weight:600;display:inline-flex}.subtle-pill{background:var(--primary-soft);border-color:color-mix(in srgb, var(--primary) 24%, transparent);color:var(--primary)}.report-pill{background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent) 34%, transparent);color:var(--accent)}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-bottom:22px;display:grid}.hero-stats{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));margin-top:24px;margin-bottom:0}.hero-stats .stat-tile{background:var(--surface-translucent)}.stat-tile{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-2);transition:border-color .2s var(--ease), box-shadow .2s var(--ease), transform .2s var(--ease);grid-template-columns:auto 1fr;align-items:center;gap:14px;padding:16px 18px;display:grid}.stat-tile:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.stat-tile-icon{background:var(--primary-soft);width:42px;height:42px;color:var(--primary);border-radius:12px;place-items:center;display:grid}.stat-tile-icon .icon{width:20px;height:20px}.stat-tile.accent .stat-tile-icon{background:var(--accent-soft);color:var(--accent)}.stat-tile-body{min-width:0}.stat-tile-value{letter-spacing:-.02em;color:var(--text-strong);font-feature-settings:"tnum" 1;font-size:1.5rem;font-weight:800;line-height:1.1;display:block}.stat-tile-label{color:var(--text-muted);margin-top:2px;font-size:.8rem;font-weight:600;line-height:1.3;display:block}.form-grid{gap:16px;display:grid}.two-column{grid-template-columns:repeat(2,minmax(0,1fr))}.session-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.full-width{grid-column:1/-1}.form-grid label,.form-grid>div{gap:7px;min-width:0;display:grid}.form-grid label>span,.form-grid>div>span{color:var(--text-strong);font-size:.84rem;font-weight:650}.form-grid input,.form-grid select{border-radius:var(--radius-sm);border:1px solid var(--border-field);background:var(--surface);width:100%;min-height:46px;color:var(--text-strong);font:inherit;transition:border-color .15s var(--ease), box-shadow .15s var(--ease), background-color .15s var(--ease);padding:.7rem .9rem}.form-grid input::placeholder{color:var(--text-faint)}.form-grid select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364708a' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right .85rem center;background-repeat:no-repeat;padding-right:2.4rem}.form-grid input:hover,.form-grid select:hover{border-color:var(--border-strong)}.form-grid input:focus,.form-grid select:focus{border-color:var(--primary);box-shadow:var(--shadow-focus);outline:none}.form-grid>button{border-radius:var(--radius-sm);background:linear-gradient(180deg, var(--primary), var(--primary-strong));color:#fff;width:100%;min-height:48px;font:inherit;letter-spacing:.01em;cursor:pointer;box-shadow:0 8px 18px -8px var(--primary-ring);transition:transform .16s var(--ease), box-shadow .16s var(--ease), filter .16s var(--ease);border:1px solid #0000;margin-top:4px;padding:.75rem 1rem;font-weight:700}.form-grid>button:hover:not(:disabled){filter:brightness(1.05);box-shadow:0 14px 26px -10px var(--primary-ring);transform:translateY(-1px)}.form-grid>button:active:not(:disabled){transform:translateY(0)}.form-grid>button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.secondary-button{border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);min-height:40px;color:var(--text-strong);font:inherit;cursor:pointer;transition:background-color .15s var(--ease), border-color .15s var(--ease), color .15s var(--ease);align-items:center;gap:8px;padding:0 1rem;font-size:.92rem;font-weight:600;display:inline-flex}.secondary-button:hover{background:var(--danger-soft);border-color:var(--danger-border);color:var(--danger)}.nav-tab:focus-visible,.secondary-button:focus-visible,.icon-button:focus-visible,.teacher-switch:focus-visible,.attendee-chip:focus-visible,.form-grid>button:focus-visible{box-shadow:var(--shadow-focus);outline:none}.checkbox-list{border:1px solid var(--border-field);border-radius:var(--radius-md);background:var(--surface-2);align-content:start;gap:6px;min-height:64px;padding:10px;display:grid}.checkbox-row{cursor:pointer;border-radius:var(--radius-sm);transition:background-color .14s var(--ease), border-color .14s var(--ease);border:1px solid #0000;padding:10px 12px}.checkbox-row:hover{background:var(--surface);border-color:var(--border)}.checkbox-row>span{gap:2px;display:grid}.checkbox-main{justify-content:space-between;align-items:center;gap:10px;display:flex}.checkbox-main input[type=checkbox]{width:18px;height:18px;accent-color:var(--primary);cursor:pointer;margin:0}.checkbox-row small{color:var(--text-muted);font-size:.84rem}.checkbox-list>.helper-copy{text-align:center;place-self:center;padding:10px}.attendance{gap:10px;display:grid}.attendance-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.attendance-head>span:first-child{color:var(--text-strong);font-size:.84rem;font-weight:650}.attendance-actions{align-items:center;gap:12px;display:flex}.attendance-count{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.82rem;font-weight:650}.link-button{font:inherit;color:var(--primary);cursor:pointer;background:0 0;border:none;padding:0;font-size:.85rem;font-weight:700}.link-button:hover{text-decoration:underline}.attendance-list{border:1px solid var(--border-field);border-radius:var(--radius-sm);background:var(--surface-2);flex-wrap:wrap;align-content:center;align-items:center;gap:8px;min-height:56px;padding:12px;display:flex}.attendee-chip{border-radius:var(--radius-pill);border:1px solid var(--border-strong);background:var(--surface);min-height:36px;color:var(--text-muted);font:inherit;cursor:pointer;transition:color .15s var(--ease), border-color .15s var(--ease), background-color .15s var(--ease);align-items:center;gap:7px;padding:.3rem .8rem .3rem .55rem;font-size:.88rem;font-weight:600;display:inline-flex}.attendee-chip:hover{border-color:var(--primary);color:var(--text-strong)}.attendee-check{border:1.5px solid var(--border-strong);color:#fff;width:20px;height:20px;transition:background-color .15s var(--ease), border-color .15s var(--ease);border-radius:50%;place-items:center;display:grid}.attendee-chip.present{background:var(--primary-soft);color:var(--primary);border-color:#0000}.attendee-chip.present .attendee-check{background:var(--primary);border-color:var(--primary)}.attendance-list>.helper-copy{padding:6px 4px}.teacher-switcher{flex-wrap:wrap;gap:8px;margin-bottom:20px;display:flex}.teacher-switch{border:1px solid var(--border-strong);border-radius:var(--radius-pill);background:var(--surface);min-height:38px;color:var(--text-muted);font:inherit;cursor:pointer;transition:color .16s var(--ease), border-color .16s var(--ease), background-color .16s var(--ease);padding:0 .9rem;font-size:.9rem;font-weight:600}.teacher-switch:hover{color:var(--text-strong);border-color:var(--primary)}.teacher-switch.active{background:linear-gradient(180deg, var(--primary), var(--primary-strong));color:#fff;box-shadow:0 8px 16px -8px var(--primary-ring);border-color:#0000}.report-context{color:var(--text-muted);align-items:center;gap:7px;margin-bottom:14px;font-size:.9rem;display:flex}.report-context .icon{color:var(--primary)}.report-context strong{color:var(--text-strong)}.report-loading{color:var(--primary);margin-left:8px;font-size:.82rem;font-weight:600}.report-error{border:1px solid var(--danger,#dc2626);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--danger,#dc2626) 10%, transparent);color:var(--danger,#dc2626);margin:0 0 14px;padding:10px 14px;font-size:.88rem}.report-filters{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:16px;padding:14px 16px;display:flex}.report-filter-field{flex-direction:column;gap:6px;display:flex}.report-filter-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.78rem;font-weight:600}.report-filter-field input{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);min-height:38px;color:var(--text-strong);font:inherit;padding:0 .7rem;font-size:.9rem}.report-filter-field input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-ring);outline:none}.report-filter-search{flex:200px}.report-filter-search input{width:100%}.report-filter-clear{border:1px solid var(--border-strong);border-radius:var(--radius-pill);background:var(--surface);min-height:38px;color:var(--text-muted);font:inherit;cursor:pointer;transition:color .16s var(--ease), border-color .16s var(--ease);padding:0 .9rem;font-size:.85rem;font-weight:600}.report-filter-clear:hover{color:var(--text-strong);border-color:var(--primary)}.report-pagination{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;display:flex}.report-pagination-info{color:var(--text-muted);font-size:.88rem}.report-pagination-controls{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.report-page-size{color:var(--text-muted);align-items:center;gap:8px;font-size:.88rem;font-weight:600;display:flex}.report-page-size select{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);min-height:36px;color:var(--text-strong);font:inherit;cursor:pointer;padding:0 .5rem;font-size:.9rem}.report-pager{align-items:center;gap:10px;display:flex}.report-pager-btn{border:1px solid var(--border-strong);border-radius:var(--radius-pill);background:var(--surface);min-height:36px;color:var(--text-strong);font:inherit;cursor:pointer;transition:color .16s var(--ease), border-color .16s var(--ease), background-color .16s var(--ease);padding:0 .9rem;font-size:.85rem;font-weight:600}.report-pager-btn:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.report-pager-btn:disabled{opacity:.5;cursor:not-allowed}.report-pager-status{color:var(--text-muted);font-size:.88rem;font-weight:600}.report-table-wrap{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);overflow-x:auto}.report-table{border-collapse:collapse;width:100%;min-width:860px}.report-table th,.report-table td{border-bottom:1px solid var(--border);vertical-align:top;text-align:left;padding:14px 16px}.report-table th{z-index:1;background:var(--surface-inset);color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;font-size:.73rem;font-weight:700;position:sticky;top:0}.report-table tbody tr{transition:background-color .14s var(--ease)}.report-table tbody tr:hover{background:var(--surface-2)}.report-primary{color:var(--text-strong);font-weight:600}.report-note{color:var(--text-muted);margin-top:8px;font-size:.84rem}.attendee-toggle{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);min-height:34px;color:var(--text-strong);font:inherit;cursor:pointer;transition:color .15s var(--ease), border-color .15s var(--ease), background-color .15s var(--ease);align-items:center;gap:10px;padding:.28rem .5rem .28rem .65rem;font-size:.88rem;font-weight:600;display:inline-flex}.attendee-toggle:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.attendee-toggle.open{border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}.attendee-toggle:disabled{opacity:.6;cursor:default}.attendee-toggle:focus-visible{box-shadow:var(--shadow-focus);outline:none}.attendee-toggle-count{font-variant-numeric:tabular-nums;align-items:center;gap:7px;display:inline-flex}.attendee-caret{color:var(--text-muted);transition:transform .2s var(--ease), color .2s var(--ease)}.attendee-toggle.open .attendee-caret{color:var(--primary);transform:rotate(180deg)}.attendee-dropdown{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);min-width:180px;max-width:280px;box-shadow:var(--shadow-md);animation:rise-in .16s var(--ease-out) both;gap:2px;margin:8px 0 0;padding:6px;list-style:none;display:grid}.attendee-dropdown li{border-radius:var(--radius-xs);color:var(--text-strong);align-items:center;gap:9px;padding:7px 9px;font-size:.88rem;font-weight:500;display:flex}.attendee-dropdown li:before{content:"";background:var(--primary);border-radius:50%;flex:none;width:6px;height:6px}.report-stamp{color:var(--text);white-space:nowrap;font-variant-numeric:tabular-nums}.report-total{color:var(--text-strong);font-variant-numeric:tabular-nums;font-weight:700}.report-empty{text-align:center;color:var(--text-muted);padding:40px 16px!important}.report-table tfoot td{background:var(--surface-inset);color:var(--text-strong);border-bottom:none;font-weight:700}.report-foot-value{white-space:nowrap;font-variant-numeric:tabular-nums}.plain-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.plain-list-item{border-radius:var(--radius-md);background:var(--surface-2);border:1px solid var(--border);border-left:3px solid var(--primary);transition:transform .16s var(--ease), box-shadow .16s var(--ease);gap:3px;padding:15px 16px;display:grid}.plain-list-item:hover{box-shadow:var(--shadow-xs);transform:translate(2px)}.plain-list-item strong{font-size:.98rem}.plain-list-item span{color:var(--text-muted);font-size:.88rem}.track-list{gap:12px;display:grid}.track-row{border-radius:var(--radius-md);background:var(--surface-2);border:1px solid var(--border);transition:border-color .16s var(--ease), box-shadow .16s var(--ease);justify-content:space-between;gap:20px;padding:18px;display:flex}.track-row:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.track-row h3{margin:0 0 5px}.track-row>div:first-child p{color:var(--text-muted);font-size:.88rem}.track-meta{text-align:right;justify-items:end;gap:5px;display:grid}.track-meta strong{color:var(--primary);font-variant-numeric:tabular-nums;font-size:1.15rem;font-weight:800}.track-meta span{color:var(--text-muted);font-size:.84rem}.login-shell{place-items:center;min-height:100svh;padding:32px 0;display:grid}.login-panel{width:min(440px,100%);animation:rise-in .48s var(--ease-out) both;gap:22px;display:grid}.login-brand{text-align:center;justify-items:center;gap:14px;display:grid}.login-logo{object-fit:contain;background:var(--surface);border:1px solid var(--border);width:68px;height:68px;box-shadow:var(--shadow-md);border-radius:18px;padding:8px}.login-brand h1{margin:0;font-size:1.7rem}.login-brand .login-tagline{color:var(--text-muted);max-width:34ch;font-size:.98rem}.login-card{width:100%;padding:28px}.login-card h2{margin-bottom:6px}.login-card .login-subtitle{color:var(--text-muted);margin-bottom:22px;font-size:.92rem}.setup-toggle{flex-wrap:wrap;gap:12px;display:flex}.setup-toggle-button{border-radius:var(--radius-md);border:1px solid var(--border-strong);background:var(--surface);min-height:48px;color:var(--text-strong);font:inherit;cursor:pointer;transition:background-color .15s var(--ease), border-color .15s var(--ease), color .15s var(--ease), box-shadow .15s var(--ease);flex:220px;justify-content:center;align-items:center;gap:9px;padding:0 1.1rem;font-weight:600;display:inline-flex}.setup-toggle-button .icon{color:var(--primary)}.setup-toggle-button:hover{border-color:color-mix(in srgb, var(--primary) 40%, var(--border));background:var(--primary-soft)}.setup-toggle-button.active{border-color:color-mix(in srgb, var(--primary) 55%, var(--border));background:var(--primary-soft);box-shadow:var(--shadow-xs)}.setup-toggle-button:focus-visible{box-shadow:var(--shadow-focus);outline:none}.login-topbar{z-index:40;position:fixed;top:22px;right:22px}.feedback-inline{border-radius:var(--radius-sm);align-items:center;gap:8px;margin-top:16px;padding:10px 12px;font-size:.9rem;font-weight:600;display:flex}.feedback-inline.error{background:var(--danger-soft);border:1px solid var(--danger-border)}.feedback-inline.success{background:var(--success-soft);border:1px solid color-mix(in srgb, var(--success) 32%, transparent)}.error{color:var(--danger)}.success{color:var(--success)}.centered-card{text-align:center;max-width:420px;margin:0 auto;padding:28px}.loading-dots{gap:6px;margin-top:16px;display:inline-flex}.loading-dots span{background:var(--primary);width:9px;height:9px;animation:pulse-dot 1.1s var(--ease) infinite both;border-radius:50%}.loading-dots span:nth-child(2){animation-delay:.15s}.loading-dots span:nth-child(3){animation-delay:.3s}@keyframes rise-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-dot{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}@media (width<=1080px){.dashboard-grid{grid-template-columns:1fr}.dashboard-grid>.wide-card{grid-column:span 1}.session-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.student-grid{grid-template-columns:1fr}}@media (width<=900px){.top-nav{top:0}.top-nav-inner{flex-wrap:wrap;gap:12px;width:min(1240px,100% - 32px)}.nav-tabs{order:3;justify-content:stretch;width:100%;margin:0}.nav-tab{flex:1;justify-content:center}.status-grid,.student-grid,.two-column,.session-grid{grid-template-columns:1fr}.wide-card{grid-column:span 1}.hero-panel,.card{padding:20px}.section-heading,.track-row{flex-direction:column}.track-meta{text-align:left;justify-items:start}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
