:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--danger:#b42318;--danger-bg:#b4231814;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;font:16px/145% var(--sans);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;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{--lightningcss-light: ;--lightningcss-dark:initial;--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--danger:#fca5a5;--danger-bg:#fca5a51f;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}}*{box-sizing:border-box}body{margin:0}#root{min-height:100svh}h1,h2{color:var(--text-h);font-weight:600}h1{letter-spacing:-.04em;margin:0 0 8px;font-size:2rem}p{margin:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.app-shell{flex-direction:column;min-height:100svh;display:flex}.app-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding:16px 24px;display:flex}.brand{color:var(--text-h);letter-spacing:-.03em;font-size:1.15rem;font-weight:700}.brand:hover{text-decoration:none}.app-nav{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.app-nav a{color:var(--text)}.app-nav a.active{color:var(--text-h);font-weight:600}.nav-user{color:var(--text-h)}.profile-facts{gap:12px;margin:0 0 28px;display:grid}.profile-facts div{gap:4px;display:grid}.profile-facts dt{color:var(--text);font-size:.85rem}.profile-facts dd{color:var(--text-h);margin:0}.app-main{flex:1;width:min(800px,100% - 32px);margin:0 auto;padding:40px 0 64px}.page,.auth-card{text-align:left}.lede{margin-bottom:24px}.form{gap:16px;display:grid}.field{color:var(--text-h);gap:6px;font-size:.95rem;display:grid}.field input,.field select,.field textarea{font:inherit;color:var(--text-h);background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:10px 12px}.field textarea{resize:vertical;min-height:80px}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:#0000}.field-grid{gap:16px;display:grid}@media (width>=640px){.field-grid{grid-template-columns:repeat(3,1fr)}}.button{font:inherit;color:#fff;background:var(--accent);cursor:pointer;text-align:center;border:0;border-radius:8px;padding:10px 16px;font-weight:600;text-decoration:none;display:inline-block}a.button:hover{text-decoration:none}.button:disabled{opacity:.65;cursor:default}.button-ghost{color:var(--text-h);border:1px solid var(--border);background:0 0}.button-danger{background:var(--danger)}.studio-create{margin-bottom:8px}.option-editor{gap:8px;margin:0;padding:12px 0;list-style:none;display:grid}.option-editor li{grid-template-columns:auto 1fr auto;align-items:center;gap:8px;display:grid}.option-editor input[type=text]{font:inherit;color:var(--text-h);background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:10px 12px}.form-error{color:var(--danger);background:var(--danger-bg);border-radius:8px;padding:10px 12px}.form-success{color:var(--text-h);background:#16a34a1f;border-radius:8px;padding:10px 12px}.auth-footer{margin-top:20px}.auth-footer+.auth-footer{margin-top:8px}.page-status{text-align:center;margin:48px 0}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.search-field{margin-bottom:24px}.breadcrumb{margin-bottom:16px;font-size:.95rem}.section-title{margin:28px 0 12px;font-size:1.15rem}.card-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.card-link{color:inherit;border:1px solid var(--border);background:var(--bg);border-radius:12px;padding:16px 18px;text-decoration:none;display:block}.card-link:hover{box-shadow:var(--shadow);border-color:var(--accent-border);text-decoration:none}.card-link h2{margin:0 0 6px;font-size:1.15rem}.card-link p{color:var(--text)}.meta{flex-wrap:wrap;gap:8px;margin:10px 0 0;padding:0;font-size:.85rem;list-style:none;display:flex}.meta li{background:var(--accent-bg);color:var(--text-h);border-radius:999px;padding:4px 10px}.empty{color:var(--text)}.attempt-summary{margin:16px 0}.banner{background:var(--accent-bg);color:var(--text-h);border-radius:8px;margin:0 0 16px;padding:12px 14px}.actions{gap:12px;margin:16px 0 8px;display:flex}.question-preview{gap:18px;padding-left:20px;display:grid}.question-text{color:var(--text-h);margin-bottom:8px}.question-meta{color:var(--text);font-size:.9rem;font-weight:400}.option-list{color:var(--text);margin:0;padding-left:18px}.banner-success{background:#16a34a1f}.banner-danger{background:var(--danger-bg);color:var(--danger)}.quiz-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.quiz-toolbar h1{margin-bottom:0}.quiz-toolbar-meta{text-align:right}.timer{font-variant-numeric:tabular-nums;color:var(--text-h);font-weight:600}.timer-warn{color:var(--danger)}.quiz-list{gap:20px;margin:0 0 24px;padding:0;list-style:none;display:grid}.quiz-question{border:1px solid var(--border);border-radius:12px;margin:0;padding:16px 18px}.quiz-question legend{padding:0}.choice-list{gap:8px;margin:0;padding:12px 0 0;list-style:none;display:grid}.choice{color:var(--text-h);cursor:pointer;align-items:flex-start;gap:10px;display:flex}.choice:has(input:disabled){opacity:.55;cursor:default}.attempt-card{border:1px solid var(--border);border-radius:12px;padding:16px 18px}.attempt-card h2{margin:0 0 6px;font-size:1.15rem}.result-list{gap:16px;margin:0 0 24px;padding:0;list-style:none;display:grid}.result-item{border:1px solid var(--border);border-radius:12px;gap:6px;padding:16px 18px;display:grid}.result-item.correct{border-color:#16a34a73}.result-item.wrong{border-color:var(--danger)}.explanation{color:var(--text);font-style:italic}.table-wrap{margin:0 0 28px;overflow-x:auto}.data-table{border-collapse:collapse;width:100%}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:10px 12px}.data-table th{color:var(--text);font-size:.85rem;font-weight:600}.data-table td{color:var(--text-h)}.users-table th,.users-table td{vertical-align:middle}.users-table th:nth-child(4),.users-table th:nth-child(5),.users-table .user-check{text-align:center;width:1%}.users-table .user-check .choice{justify-content:center;align-items:center}.role-pill{background:var(--accent-bg);color:var(--text-h);border-radius:999px;padding:4px 10px;font-size:.85rem;display:inline-block}.attendance-page{text-align:center}.attendance-qr{border:1px solid var(--border);background:#fff;border-radius:16px;margin:16px 0 12px;padding:20px;display:inline-flex}.attendance-countdown{color:var(--text);font-size:.95rem}.attendance-cal-nav{justify-content:space-between;align-items:center;gap:12px;margin:8px 0 16px;display:flex}.attendance-cal-nav .section-title{text-align:center;margin:0}.attendance-cal{grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin:0 0 32px;display:grid}.attendance-cal-dow{text-align:center;color:var(--text);font-size:.8rem;font-weight:600}.attendance-cal-day{border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:6px;min-height:72px;padding:8px;display:flex}.attendance-cal-day.is-empty{border-color:#0000}.attendance-cal-day.has-count{background:var(--accent-bg);border-color:var(--accent-border)}.attendance-cal-num{color:var(--text);font-size:.85rem}.attendance-cal-count{color:var(--text-h);font-size:1.15rem;font-weight:600}
