:root{--paper: #FDFDFB;--card: #FFFFFF;--forest: #12442F;--forest-deep: #0D3323;--sage: #93AC9B;--sand: #E4DAC0;--ink: #23261F;--ink-soft: #5B5F55;--gold: #B9852E;--line: rgba(18, 68, 47, .12);--radius: 18px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0;background:var(--paper);color:var(--ink);font-family:Inter,system-ui,sans-serif;font-size:16px;line-height:1.55;min-height:100vh}h1,h2,h3,.serif{font-family:Fraunces,Georgia,serif;font-weight:600}button{font-family:Inter,system-ui,sans-serif}.app{max-width:520px;margin:0 auto;min-height:100vh;background:var(--paper);padding-bottom:calc(84px + env(safe-area-inset-bottom))}.topbar{position:sticky;top:0;z-index:20;background:var(--paper);border-bottom:1px solid var(--line);padding:calc(10px + env(safe-area-inset-top)) 16px 10px;display:flex;align-items:center;gap:12px}.topbar img{height:30px}.topbar .spacer{flex:1}.content{padding:16px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin-bottom:12px}.track-card{cursor:pointer}.track-card h3{margin:0 0 4px;font-size:19px;color:var(--forest)}.meta{color:var(--ink-soft);font-size:13.5px}.golddot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--gold);margin-left:6px;vertical-align:middle}.btn{display:inline-block;border:none;cursor:pointer;border-radius:100px;padding:12px 22px;font-size:14.5px;font-weight:600}.btn-primary{background:var(--forest);color:var(--paper)}.btn-secondary{background:transparent;color:var(--forest);border:1.5px solid var(--forest)}.btn-block{display:block;width:100%;text-align:center}.btn:disabled{opacity:.5;cursor:default}.pill{border:none;cursor:pointer;border-radius:100px;padding:8px 16px;font-size:13.5px;font-weight:600;background:var(--sand);color:var(--forest)}.pill.active{background:var(--forest);color:var(--paper)}.chip{display:inline-flex;align-items:center;gap:6px;background:var(--card);border:1px solid var(--line);border-radius:100px;padding:7px 8px 7px 14px;font-size:14px;margin:0 8px 8px 0}.chip .star{color:var(--gold);cursor:pointer;font-size:15px}.chip .x{cursor:pointer;border:none;background:var(--sand);color:var(--forest);border-radius:50%;width:22px;height:22px;font-size:13px;line-height:1}.field{margin-bottom:14px}.field label{display:block;font-size:13.5px;font-weight:600;color:var(--forest);margin-bottom:6px}.field input[type=text],.field input[type=email],.field input[type=password],.field input[type=time],.field textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:11px 13px;font-size:15.5px;font-family:Inter,system-ui,sans-serif;background:var(--card);color:var(--ink)}.field textarea{min-height:90px;resize:vertical}.hint{font-size:13px;color:var(--ink-soft);margin-top:4px}.stepper{display:flex;align-items:center;gap:14px}.stepper button{width:40px;height:40px;border-radius:50%;border:1.5px solid var(--forest);background:transparent;color:var(--forest);font-size:20px;cursor:pointer}.stepper .val{font-size:18px;font-weight:600;min-width:70px;text-align:center}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0}.toggle{position:relative;width:52px;height:30px;flex-shrink:0;cursor:pointer;border:none;background:none;padding:0}.toggle .track{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:100px;background:#cfd4cc;transition:background .2s}.toggle .knob{position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;transition:left .2s;box-shadow:0 1px 3px #00000040}.toggle.on .track{background:var(--forest)}.toggle.on .knob{left:25px}.tabbar{position:fixed;bottom:0;left:0;right:0;z-index:20;background:var(--card);border-top:1px solid var(--line);padding:8px 4px calc(8px + env(safe-area-inset-bottom));display:flex;max-width:520px;margin:0 auto}.tabbar button{flex:1;border:none;background:none;cursor:pointer;font-size:11.5px;font-weight:600;color:var(--ink-soft);padding:6px 2px;display:flex;flex-direction:column;align-items:center;gap:3px}.tabbar button .ico{font-size:20px}.tabbar button.active{color:var(--forest)}.empty{text-align:center;color:var(--ink-soft);padding:40px 20px}.empty .big{font-size:40px;margin-bottom:10px}.error{background:#fdecea;color:#8f1d1d;border:1px solid #f5c6c2;border-radius:12px;padding:10px 14px;margin-bottom:14px;font-size:14px}.okmsg{background:#e9f5ee;color:var(--forest);border:1px solid #bfe0cd;border-radius:12px;padding:10px 14px;margin-bottom:14px;font-size:14px}.lesson-dark{background:var(--forest-deep);color:var(--paper);min-height:100vh;padding-bottom:calc(100px + env(safe-area-inset-bottom))}.lesson-dark .topbar{background:var(--forest-deep);border-bottom-color:#fdfdfb24}.lesson-hero{padding:20px 20px 8px;max-width:640px;margin:0 auto}.eyebrow{color:var(--sage);font-size:13px;font-weight:600;margin-bottom:6px}.lesson-hero h1{color:var(--paper);margin:0 0 12px;font-size:27px;line-height:1.25}.format-row{display:flex;gap:8px;margin:4px 0 16px}.lesson-body{max-width:640px;margin:0 auto;padding:0 20px;font-size:16px;line-height:1.65}.lesson-body h2,.lesson-body h3{color:var(--paper)}.lesson-body ul{padding-left:20px}.lesson-body li{margin-bottom:8px}.lesson-body strong{color:#fff}.attribution{color:var(--sage);font-size:13.5px;margin:18px 0 6px}.quote-block{border-left:3px solid var(--gold);padding:4px 0 4px 14px;margin:14px 0;font-style:italic}.quote-block .qmeta{font-style:normal;font-size:13px;color:var(--sage);margin-top:4px}.quote-block .qadd{display:inline-block;margin-left:8px;border:1px solid var(--sage);color:var(--paper);background:none;border-radius:50%;width:24px;height:24px;font-size:15px;cursor:pointer;vertical-align:middle}.lesson-footer{position:fixed;bottom:0;left:0;right:0;z-index:20;background:#0d3323f5;border-top:1px solid rgba(253,253,251,.14);padding:10px 16px calc(10px + env(safe-area-inset-bottom));display:flex;justify-content:center;gap:26px;max-width:520px;margin:0 auto}.lesson-footer button{background:none;border:none;cursor:pointer;color:var(--paper);font-size:24px;padding:6px 10px}.lesson-footer button.lit{color:var(--gold)}.section-head{font-size:13px;font-weight:600;color:var(--ink-soft);text-transform:none;margin:20px 0 8px;letter-spacing:.02em}.history-row{display:flex;align-items:center;gap:10px;padding:12px 4px;border-bottom:1px solid var(--line);cursor:pointer}.history-row .t{flex:1;min-width:0}.history-row .t .title{font-weight:600;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-row .t .sub{font-size:13px;color:var(--ink-soft)}.marks{font-size:14px;white-space:nowrap}.tagline{text-transform:uppercase;letter-spacing:.14em;font-size:11px;font-weight:600;color:var(--forest)}.splash{text-align:center;padding:60px 24px 30px}.splash img{width:220px;margin-bottom:18px}.splash .tagline{margin-bottom:30px}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#14191473;display:flex;align-items:flex-end;justify-content:center}.sheet{background:var(--card);border-radius:20px 20px 0 0;padding:20px 20px calc(20px + env(safe-area-inset-bottom));width:100%;max-width:520px}.sheet h3{margin-top:0}.caret{transition:transform .2s;display:inline-block}.caret.open{transform:rotate(90deg)}.sticky-bottom{position:fixed;bottom:0;left:0;right:0;z-index:20;background:var(--card);border-top:1px solid var(--line);padding:10px 16px calc(10px + env(safe-area-inset-bottom));max-width:520px;margin:0 auto}.check-row{display:flex;align-items:flex-start;gap:10px;padding:10px 4px;border-bottom:1px solid var(--line)}.check-row input[type=checkbox]{width:22px;height:22px;margin-top:2px;accent-color:var(--forest)}.badge-new{font-size:11px;font-weight:700;color:var(--forest);background:var(--sand);border-radius:100px;padding:2px 8px;margin-left:6px}.badge-done{font-size:11px;font-weight:700;color:var(--ink-soft);border:1px solid var(--line);border-radius:100px;padding:2px 8px;margin-left:6px}.audiobar{background:#fdfdfb14;border:1px solid rgba(253,253,251,.16);border-radius:14px;padding:14px;margin:12px 0}.audiobar .row{display:flex;align-items:center;gap:12px}.audiobar button.play{width:52px;height:52px;border-radius:50%;background:var(--paper);color:var(--forest-deep);border:none;font-size:20px;cursor:pointer;flex-shrink:0}.scrub{flex:1;height:6px;border-radius:3px;background:#fdfdfb33;position:relative;cursor:pointer}.scrub .fill{position:absolute;left:0;top:0;bottom:0;background:var(--gold);border-radius:3px}.times{display:flex;justify-content:space-between;font-size:12px;color:var(--sage);margin-top:6px}.skipbtn{background:none;border:none;color:var(--paper);font-size:13px;font-weight:600;cursor:pointer}
