:root{--page:#fff;--surface:#fafaf9;--surface-raised:#fff;--ink:#111827;--ink-soft:#374151;--ink-muted:#6b7280;--border:#e5e7eb;--border-accent:#fde68a;--accent:#d97706;--accent-hover:#b45309;--accent-soft:#fef3c7;--accent-band:#78350f;--dark-section:#1c1917;--good:#15803d;--good-soft:#dcfce7;--candle-unlit:#d1d5db;--candle-glow:var(--accent);--candle-flame:#f59e0b;--radius-sm:10px;--radius:16px;--radius-lg:24px;--radius-full:999px;--shadow:0 1px 2px #1c19170f;--shadow-raised:0 10px 15px -3px #1c19171a, 0 4px 6px -4px #1c19171a;--font:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif}@media (prefers-color-scheme:dark){:root{--page:#1c1917;--surface:#292524;--surface-raised:#2f2a26;--ink:#fafaf9;--ink-soft:#d6d3d1;--ink-muted:#a8a29e;--border:#44403c;--border-accent:#78350f;--accent:#f59e0b;--accent-hover:#fbbf24;--accent-soft:#d9770629;--accent-band:#451a03;--dark-section:#0c0a09;--good:#4ade80;--good-soft:#4ade8024;--candle-unlit:#57534e;--candle-flame:#fbbf24;--shadow:0 1px 2px #0006;--shadow-raised:0 10px 20px #00000080}}*{box-sizing:border-box}html{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){html{--lightningcss-light: ;--lightningcss-dark:initial}}body{font:16px/1.55 var(--font);color:var(--ink);background:var(--page);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0}#root{flex-direction:column;min-height:100svh;display:flex}h1,h2,h3{letter-spacing:-.01em;color:var(--ink);margin:0 0 .4em;font-weight:800}h1{font-size:2.1rem}p{color:var(--ink-soft);margin:0 0 1em}a{color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.candle-row{align-items:center;gap:.6rem;display:flex}.candle-row-flames{gap:.15rem;display:flex}.candle-row--sm .candle{width:14px;height:20px}.candle-row-count{color:var(--ink-muted);font-variant-numeric:tabular-nums;font-size:.8rem}.candle-body{fill:var(--surface-raised);stroke:var(--border);stroke-width:1px}.candle-glow{opacity:0;fill:var(--candle-flame);filter:blur(6px);transition:opacity .3s}.candle-flame{transform-origin:50% 100%;transition:fill .3s,transform .3s}.candle--unlit .candle-flame{fill:none;stroke:var(--candle-unlit);stroke-width:1.2px}.candle--partial .candle-flame{fill:var(--candle-glow);transform:scale(.62)translateY(5.5px)}.candle--partial .candle-glow{opacity:.2;transform-origin:50% 55%;transform:scale(.75)}.candle--complete .candle-flame{fill:var(--candle-flame)}.candle--complete .candle-glow{opacity:.45}@media (prefers-reduced-motion:no-preference){.candle--complete .candle-flame{transform-origin:50% 90%;animation:3.2s ease-in-out infinite flicker}}@keyframes flicker{0%,to{transform:scale(1)rotate(0)}25%{transform:scale(1.03,.97)rotate(-1deg)}60%{transform:scale(.98,1.02)rotate(1deg)}}.app-shell{flex-direction:column;min-height:100vh;display:flex}.app-header{background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:2rem;padding:.85rem 1.5rem;display:flex}.brand{color:var(--ink);letter-spacing:-.01em;align-items:center;gap:.5rem;font-size:1.05rem;font-weight:800;text-decoration:none;display:flex}.brand-mark{border-radius:var(--radius-full);background:var(--accent-soft);border:1px solid var(--border-accent);flex:none;justify-content:center;align-items:center;width:30px;height:30px;display:flex}.app-header nav{flex:1;gap:1.5rem;display:flex}.app-header nav a{color:var(--ink-soft);font-size:.92rem;font-weight:600;text-decoration:none}.app-header nav a:hover{color:var(--ink)}.auth-status{align-items:center;gap:1rem;font-size:.88rem;display:flex}.auth-status .who{text-align:right;flex-direction:column;line-height:1.2;display:flex}.auth-status .who .role{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem}.auth-status a,.auth-status button.link{color:var(--ink-soft);cursor:pointer;background:0 0;border:none;padding:0;font-size:.88rem;font-weight:600;text-decoration:none}.auth-status a:hover,.auth-status button.link:hover{color:var(--ink)}.auth-status.signed-out a{color:var(--accent);border:1px solid var(--border-accent);background:var(--accent-soft);border-radius:var(--radius-full);padding:.4rem .9rem}.auth-status.signed-out a:hover{color:#fff;background:var(--accent);border-color:var(--accent)}.app-main{flex:1;width:100%;max-width:780px;margin:0 auto;padding:2.5rem 1.5rem 4rem}.page-header{justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:1.75rem;display:flex}.eyebrow{text-transform:uppercase;letter-spacing:.06em;color:var(--accent);margin-bottom:.3rem;font-size:.78rem;font-weight:700;display:block}.empty-state{border:1px dashed var(--border);border-radius:var(--radius);text-align:center;color:var(--ink-muted);padding:2.5rem 1.5rem}.grade-section{margin-bottom:2.5rem}.grade-section:last-child{margin-bottom:0}.grade-heading{color:var(--accent);border-bottom:2px solid var(--border-accent);margin-bottom:.85rem;padding-bottom:.4rem;font-size:1.05rem}.course-list{gap:1rem;margin:0;padding:0;list-style:none;display:grid}.course-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-raised);box-shadow:var(--shadow);padding:1.4rem 1.6rem;transition:box-shadow .2s,transform .2s}.course-card:has(a:hover){box-shadow:var(--shadow-raised);transform:translateY(-1px)}.course-card h2{margin:0 0 .35rem;font-size:1.08rem}.course-card h2 a{color:var(--ink);text-decoration:none}.course-card h2 a:hover{color:var(--accent)}.course-card p{margin:0 0 .75rem;font-size:.92rem}.card-footer{justify-content:space-between;align-items:center;gap:1rem;margin-top:.9rem;display:flex}.meta{color:var(--ink-muted);font-size:.82rem}.badge{background:var(--good-soft);color:var(--good);border-radius:var(--radius-full);align-items:center;gap:.3rem;padding:.2rem .65rem;font-size:.78rem;font-weight:700;display:inline-flex}.course-detail-head{margin-bottom:1.5rem}.progress-panel{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);justify-content:space-between;align-items:center;gap:1rem;margin:1.25rem 0 2rem;padding:1.1rem 1.4rem;display:flex}.progress-panel .status{font-size:.92rem;font-weight:700}.progress-panel .status .pct{color:var(--accent)}.module-block{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-raised);box-shadow:var(--shadow);margin:1rem 0;padding:1.4rem 1.6rem}.module-header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.5rem;display:flex}.module-header h3{align-items:center;gap:.6rem;margin:0;font-size:1rem;display:flex}.module-number{color:var(--ink-muted);font-variant-numeric:tabular-nums;font-weight:700}.lesson-list{margin:0;padding:0;list-style:none}.lesson-list li{border-top:1px solid var(--border);padding:.7rem 0}.lesson-list li:first-child{border-top:none}.lesson-row{cursor:pointer;align-items:center;gap:.6rem;font-weight:600;display:flex}.lesson-row input[type=checkbox]{width:1.05rem;height:1.05rem;accent-color:var(--accent);flex:none}.lesson-type{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.03em;font-size:.78rem;font-weight:500}.lesson-content{color:var(--ink-soft);white-space:pre-wrap;margin:.5rem 0 0 1.7rem;font-size:.92rem}.field{color:var(--ink-soft);margin-bottom:1.1rem;font-size:.88rem;font-weight:600;display:block}.field.checkbox-field{align-items:center;gap:.5rem;display:flex}.field input[type=text],.field input:not([type]),.field select,.field textarea{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-raised);width:100%;color:var(--ink);font:inherit;margin-top:.35rem;padding:.55rem .7rem;display:block}.field textarea{resize:vertical;min-height:4.5rem}fieldset.field{border:1px solid var(--border);border-radius:var(--radius);padding:.9rem 1rem}fieldset.field legend{padding:0 .4rem;font-size:.82rem}.checkbox-inline{color:var(--ink);align-items:center;gap:.35rem;margin-right:1.1rem;font-weight:500;display:inline-flex}.inline-form{flex-wrap:wrap;gap:.5rem;margin:1rem 0 .5rem;display:flex}.inline-form input,.inline-form select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-raised);color:var(--ink);font:inherit;padding:.5rem .65rem;font-size:.9rem}.inline-form input[placeholder=Lesson\ title]{flex:140px}.inline-form input[placeholder="Content / URL"]{flex:2 200px}button{cursor:pointer;border:1px solid var(--accent);background:var(--accent);color:#fff;border-radius:var(--radius-full);font:inherit;padding:.5rem 1.1rem;font-size:.88rem;font-weight:700;transition:background .15s,border-color .15s}button:hover{background:var(--accent-hover);border-color:var(--accent-hover)}button:disabled{opacity:.55;cursor:default;background:var(--accent);border-color:var(--accent)}button.quiet,button.destructive{color:var(--ink-soft);border-color:var(--border);background:0 0;font-weight:600}button.destructive:hover{color:#b91c1c;background:0 0;border-color:#b91c1c}@media (width<=640px){.app-header{gap:.75rem}.app-header nav{flex-basis:100%;order:3}.app-main{padding:1.5rem 1rem 3rem}}
