@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-cyrillic-ext-wght-normal-DjL33-gN.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-cyrillic-wght-normal-BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-vietnamese-wght-normal-6IgcOCM7.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-latin-ext-wght-normal-DC-KSUi6.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-latin-wght-normal-BgDaEnEv.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#f5f6f8;--surface:#fff;--surface-sunken:#f2f4f7;--surface-hover:#eceff3;--surface-raised:#fff;--surface-recessed:#f8f9fb;--border:#e4e7ec;--border-strong:#cfd4dc;--text:#14171d;--text-muted:#4f5766;--text-faint:#667080;--text-disabled:#a1a8b4;--accent:#3558d0;--accent-hover:#2b4bbd;--accent-soft:#ebf0fd;--accent-ink:#fff;--danger:#b42318;--danger-soft:#fdecea;--danger-ink:#fff;--warn:#8a5600;--warn-soft:#fdf2df;--ok:#237a48;--track:#dde1e8;--seg-past:#b1b8c4;--font:"Geist Variable", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--fs-2xs:11px;--fs-xs:12px;--fs-sm:13px;--fs-md:14px;--fs-lg:16px;--fs-xl:20px;--fs-num:22px;--radius-xs:6px;--radius-sm:8px;--radius:10px;--radius-lg:14px;--radius-pill:999px;--control-sm:32px;--control:40px;--control-lg:48px;--shadow-xs:0 1px 2px #1018280d;--shadow-sm:0 1px 3px #1018280f, 0 1px 2px #1018280a;--shadow:0 4px 12px -2px #10182814, 0 2px 4px -2px #1018280a;--shadow-lg:0 16px 40px -8px #10182838, 0 4px 10px -4px #10182814;--ease:cubic-bezier(.2, .7, .2, 1);--ember-blend:normal;--cal-px:2px;--cal-notch:polygon(var(--cal-px) 0, calc(100% - var(--cal-px)) 0, calc(100% - var(--cal-px)) var(--cal-px), 100% var(--cal-px), 100% calc(100% - var(--cal-px)), calc(100% - var(--cal-px)) calc(100% - var(--cal-px)), calc(100% - var(--cal-px)) 100%, var(--cal-px) 100%, var(--cal-px) calc(100% - var(--cal-px)), 0 calc(100% - var(--cal-px)), 0 var(--cal-px), var(--cal-px) var(--cal-px));--coal-frame:#c4541f;--coal-seam:#f6d6c4;--header-h:56px;--content:1120px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#0f1115;--surface:#171a21;--surface-sunken:#1f232b;--surface-hover:#232832;--surface-raised:#2a2f39;--surface-recessed:#13161b;--border:#272c35;--border-strong:#363c47;--text:#eceef2;--text-muted:#aab2bf;--text-faint:#8d96a4;--text-disabled:#5a6270;--accent:#7d9bff;--accent-hover:#96afff;--accent-soft:#1e2742;--accent-ink:#0f1115;--danger:#ff9189;--danger-soft:#3b1d1b;--danger-ink:#2a1210;--warn:#f0b766;--warn-soft:#33260f;--ok:#7fd19e;--track:#323945;--seg-past:#5a6272;--shadow-xs:0 1px 2px #0000004d;--shadow-sm:0 1px 3px #00000059;--shadow:0 4px 14px -2px #00000073;--shadow-lg:0 18px 44px -8px #0009;--ember-blend:screen;--coal-frame:#8f3514;--coal-seam:#2a1109;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:var(--fs-md);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;margin:0;line-height:1.5}h1,h2,h3,p,figure{margin:0}button,input,textarea,select{font:inherit;color:inherit}::selection{background:var(--accent-soft);color:var(--text)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.btn{min-height:var(--control);border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);color:var(--text);font-size:var(--fs-md);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;box-shadow:var(--shadow-xs);transition:background .15s, border-color .15s, color .15s, box-shadow .15s, transform .12s var(--ease);justify-content:center;align-items:center;gap:6px;padding:0 14px;font-weight:600;line-height:1;display:inline-flex}.btn:hover:not(:disabled){background:var(--surface-hover)}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.btn--primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn--primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn--ghost{color:var(--text-muted);box-shadow:none;background:0 0;border-color:#0000}.btn--ghost:hover:not(:disabled){background:var(--surface-hover);color:var(--text)}.btn--danger{background:var(--danger);border-color:var(--danger);color:var(--danger-ink)}.btn--danger:hover:not(:disabled){filter:brightness(1.06)}.btn--sm{min-height:var(--control-sm);font-size:var(--fs-sm);border-radius:var(--radius-sm);padding:0 11px}.btn--block{width:100%}.icon-btn{border-radius:var(--radius-sm);width:34px;height:34px;color:var(--text-faint);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;transition:background .15s,color .15s;display:inline-flex}.icon-btn:hover{background:var(--surface-hover);color:var(--text)}.menu{flex:none;position:relative}.menu__list{z-index:45;background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius);min-width:180px;box-shadow:var(--shadow-lg);animation:menu-in .14s var(--ease);padding:4px;position:fixed}.menu__item{border-radius:var(--radius-xs);text-align:left;width:100%;font-size:var(--fs-md);cursor:pointer;background:0 0;border:none;padding:8px 10px;font-weight:500;display:block}.menu__item:hover{background:var(--surface-hover)}.menu__item--danger{color:var(--danger)}.app{flex-direction:column;min-height:100%;display:flex;overflow-x:clip}.burning{position:relative}.burning__fire{z-index:-1;pointer-events:none;image-rendering:pixelated;image-rendering:crisp-edges;opacity:0;transition:opacity .6s var(--ease);position:absolute}.burning__fire--lit{opacity:1}.header{z-index:20;height:var(--header-h);padding:0 max(20px, calc((100% - var(--content)) / 2 + 20px));background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:16px;display:flex;position:sticky;top:0}.header__brand{font-size:var(--fs-lg);letter-spacing:-.01em;align-items:center;gap:10px;font-weight:600;display:flex}.header__mark{object-fit:cover;border-radius:7px;flex:none;width:24px;height:24px;display:block}.header__spacer{flex:1}.header__account{font-size:var(--fs-sm);color:var(--text-muted);align-items:center;gap:8px;display:flex}.header__email{text-overflow:ellipsis;white-space:nowrap;max-width:200px;overflow:hidden}.tabs{background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--radius);gap:2px;padding:3px;display:inline-flex}.tab{appearance:none;color:var(--text-muted);min-height:32px;font-size:var(--fs-md);cursor:pointer;background:0 0;border:none;border-radius:7px;padding:0 16px;font-weight:500;transition:background .15s,color .15s,box-shadow .15s}.tab:hover{color:var(--text)}.tab[aria-selected=true]{background:var(--surface-raised);color:var(--text);box-shadow:var(--shadow-sm)}.main{width:100%;max-width:var(--content);flex:1;margin:0 auto;padding:28px 20px 64px}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:20px;display:flex}.toolbar__spacer{flex:1}.select{min-height:var(--control);border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%237a8391' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E") no-repeat right 11px center / 14px;appearance:none;color:var(--text);font-size:var(--fs-md);cursor:pointer;max-width:100%;box-shadow:var(--shadow-xs);padding:0 34px 0 12px;font-weight:500;transition:border-color .15s,box-shadow .15s}.select:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.focus,.subject,.tcal,.dpanel,.calendar,.spanel,.auth__card,.reading-form,.reading-queue,.review-card,.lesson-list{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.section-title{font-size:var(--fs-2xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);margin-bottom:10px;font-weight:600}.empty{text-align:center;background:var(--surface);border:1px dashed var(--border-strong);border-radius:var(--radius-lg);padding:48px 24px}.empty__title{font-size:var(--fs-lg);margin-bottom:4px;font-weight:600}.empty__text{max-width:42ch;color:var(--text-muted);font-size:var(--fs-md);margin:0 auto 20px}.notice{border-radius:var(--radius);background:var(--danger-soft);color:var(--danger);box-shadow:inset 3px 0 0 var(--danger);font-size:var(--fs-md);flex-wrap:wrap;align-items:center;gap:12px;padding:12px 14px;display:flex}.loading{text-align:center;color:var(--text-faint);font-size:var(--fs-md);padding:64px 0}.toast{z-index:60;border-radius:var(--radius);background:var(--surface-raised);border:1px solid var(--border);max-width:min(520px,100vw - 32px);box-shadow:var(--shadow-lg), inset 3px 0 0 var(--danger);font-size:var(--fs-md);animation:toast-in .22s var(--ease);align-items:center;gap:12px;padding:8px 8px 8px 16px;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.toast__text{color:var(--text)}.focus{margin-bottom:24px;padding:14px 16px 6px}.focus__list{flex-direction:column;display:flex}.focus-row{grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;column-gap:10px;min-height:44px;padding:2px 0;display:grid}.focus-row .task__complete{margin-left:-8px}.focus-row+.focus-row{border-top:1px solid var(--border)}.focus-row__dot{border-radius:50%;flex:none;width:8px;height:8px}.focus-row__title{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:500;overflow:hidden}.focus-row__subject{color:var(--text-faint);font-size:var(--fs-sm);font-weight:400}.subject-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));align-items:start;gap:16px;display:grid}.subject{overflow:hidden}.subject__band{height:3px;margin:calc(var(--cal-px) + 1px) calc(var(--cal-px) + 1px) 0;background:var(--subject-color,var(--accent))}.subject__header{align-items:center;gap:10px;padding:14px 10px 10px 16px;display:flex}.subject__swatch{background:var(--subject-color,var(--accent));border-radius:50%;flex:none;width:10px;height:10px}.subject__name{min-width:0;font-size:var(--fs-lg);letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:600;overflow:hidden}.subject__count{border-radius:var(--radius-pill);background:var(--surface-sunken);min-width:22px;color:var(--text-muted);font-size:var(--fs-xs);text-align:center;font-variant-numeric:tabular-nums;flex:none;padding:1px 8px;font-weight:600}.subject__tasks{padding:0 8px}.subject__empty{color:var(--text-faint);font-size:var(--fs-md);padding:2px 16px 14px}.subject__footer{padding:2px 8px 10px}.task{border-radius:var(--radius);align-items:flex-start;gap:2px;padding:8px 6px 8px 0;transition:background .15s;display:flex}.task+.task{border-top:1px solid var(--border)}.task:hover{background:var(--surface-sunken)}.task__complete{cursor:pointer;background:0 0;border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;width:40px;height:40px;display:inline-flex}.task__circle{border:1.5px solid var(--border-strong);color:#0000;width:18px;height:18px;transition:border-color .15s, background .15s, color .15s, transform .15s var(--ease);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.task__complete:hover .task__circle,.task__complete:focus-visible .task__circle{border-color:var(--accent);background:var(--accent);color:var(--accent-ink)}.task__complete:active .task__circle{transform:scale(.9)}.task__body{flex:1;min-width:0;padding-top:10px}.task__title{overflow-wrap:anywhere;font-weight:500;line-height:1.4}.task__desc{color:var(--text-muted);font-size:var(--fs-sm);overflow-wrap:anywhere;margin-top:2px;line-height:1.45}.task__meta{flex-wrap:wrap;align-items:center;gap:4px 14px;margin-top:6px;display:flex}.task__edit{flex:none;margin-top:3px}.chip{font-size:var(--fs-xs);color:var(--text-muted);white-space:nowrap;font-variant-numeric:tabular-nums;align-items:center;gap:5px;font-weight:500;line-height:20px;display:inline-flex}.chip__label{color:var(--text-faint)}.chip--overdue,.chip--today{border-radius:var(--radius-pill);padding:0 8px;font-weight:600}.chip--overdue{background:var(--danger-soft);color:var(--danger)}.chip--today{background:var(--warn-soft);color:var(--warn)}.chip--soon{color:var(--accent)}.chip--overdue .chip__label,.chip--today .chip__label,.chip--soon .chip__label{color:inherit;font-weight:500}.chip__dot{border-radius:50%;flex:none;width:7px;height:7px}.picker{flex-wrap:wrap;align-items:flex-start;gap:16px;display:flex}.picker__wheel{touch-action:none;flex:none;position:relative}.picker__ring{cursor:pointer;touch-action:none;background:conic-gradient(red,#ff0 60deg,#0f0 120deg,#0ff 180deg,#00f 240deg,#f0f 300deg,red 360deg);border-radius:50%;position:absolute;inset:0}.picker__hole{background:var(--surface);pointer-events:none;border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.picker__square{border-radius:var(--radius-sm);cursor:crosshair;touch-action:none;background-image:linear-gradient(#0000,#000),linear-gradient(90deg,#fff,#fff0);position:absolute;box-shadow:inset 0 0 0 1px #00000029}.picker__thumb{pointer-events:none;border:2px solid #fff;border-radius:50%;width:16px;height:16px;margin:-8px 0 0 -8px;position:absolute;box-shadow:0 0 0 1px #0006,0 1px 4px #00000059}.picker__taken{width:9px;height:9px;box-shadow:0 0 0 1.5px var(--surface), 0 0 0 2.5px #00000040;pointer-events:none;border-radius:50%;margin:-4.5px 0 0 -4.5px;position:absolute}.picker__side{flex-direction:column;flex:1;gap:10px;min-width:150px;display:flex}.picker__preview{border-radius:var(--radius);min-height:64px;font-size:var(--fs-md);text-align:center;overflow-wrap:anywhere;justify-content:center;align-items:center;padding:10px 12px;font-weight:600;display:flex;box-shadow:inset 0 0 0 1px #0000001f}.picker__hex .input{font-family:var(--font-mono);font-size:var(--fs-sm);text-transform:lowercase}.picker__status{color:var(--text-muted);font-size:var(--fs-sm);margin-top:12px;line-height:1.45}.picker__status--blocked{color:var(--danger);font-weight:600}.subject__swatch,.chip__dot,.focus-row__dot,.cmark--planned{box-shadow:inset 0 0 0 1px #00000038}.subject__band{box-shadow:inset 0 0 0 1px #0000001f}.cmark--due{filter:drop-shadow(0 0 .5px #00000080)}@media (prefers-color-scheme:dark){.subject__swatch,.chip__dot,.focus-row__dot,.cmark--planned{box-shadow:inset 0 0 0 1px #ffffff47}.subject__band{box-shadow:inset 0 0 0 1px #ffffff29}.cmark--due{filter:drop-shadow(0 0 .5px #ffffff8c)}}.cal-layout{grid-template-columns:minmax(0,1.9fr) minmax(0,1fr);align-items:start;gap:16px;display:grid}.tcal{padding:16px 16px 14px}.cal-layout .tcal,.cal-layout .dpanel,.focus,.subject{--frame:var(--border-strong);--seam:transparent;clip-path:var(--cal-notch);box-shadow:inset 0 0 0 var(--cal-px) var(--frame), inset 0 0 0 calc(var(--cal-px) + 1px) var(--seam);border:0;border-radius:0}.cal-layout .tcal,.focus,.subject{--frame:var(--coal-frame);--seam:var(--coal-seam)}.tcal__header{align-items:center;gap:4px;margin-bottom:12px;display:flex}.tcal__month{font-size:var(--fs-lg);letter-spacing:-.01em;flex:1;font-weight:600}.tcal__grid{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.tcal__weekday{text-align:left;font-size:var(--fs-2xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);padding:0 8px 8px;font-weight:600}.tcal__weekday-short{display:none}.cday{border:0;border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--surface);min-width:0;min-height:104px;color:var(--text);font:inherit;text-align:left;cursor:pointer;flex-direction:column;align-items:stretch;gap:3px;padding:6px;transition:background .12s;display:flex;position:relative;overflow:hidden}.tcal__grid>.cday:nth-child(7n+1){border-left:1px solid var(--border)}.tcal__grid>.cday:nth-child(n+8):nth-child(-n+14){border-top:1px solid var(--border)}.cday:hover{background:var(--surface-sunken)}.cday--outside{background:var(--surface-recessed)}.cday--outside .cday__num{color:var(--text-disabled)}.cday__num{border-radius:var(--radius-pill);min-width:24px;height:22px;font-size:var(--fs-xs);color:var(--text-muted);font-variant-numeric:tabular-nums;flex:none;justify-content:center;align-self:flex-start;align-items:center;padding:0 6px;font-weight:600;display:inline-flex}.cday--today .cday__num{background:var(--accent);color:var(--accent-ink)}.cday--selected,.cday--selected:hover{z-index:1;background:var(--accent-soft);box-shadow:inset 0 0 0 2px var(--accent)}.cday__list{flex-direction:column;gap:2px;min-width:0;display:flex}.centry{border-radius:var(--radius-xs);min-width:0;font-size:var(--fs-xs);align-items:center;gap:5px;padding:2px 5px;line-height:1.3;display:flex}.centry__title{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-muted);overflow:hidden}.centry--due{background:var(--surface);box-shadow:inset 0 0 0 1px var(--border-strong)}.centry--due .centry__title{color:var(--text);font-weight:600}.cday__more{font-size:var(--fs-2xs);color:var(--text-faint);padding-left:5px;font-weight:600}.cday__marks{flex-wrap:wrap;align-items:center;gap:3px;display:none}.cmark{color:var(--accent);flex:none}.cmark--planned{background:currentColor;border-radius:50%;width:6px;height:6px}.cmark--due{border-bottom:6px solid;border-left:3.5px solid #0000;border-right:3.5px solid #0000;border-radius:1px;width:0;height:0}.cday__more-mark{font-size:var(--fs-2xs);color:var(--text-faint);font-weight:600;line-height:1}.tcal__legend{font-size:var(--fs-xs);color:var(--text-muted);gap:16px;margin-top:12px;display:flex}.tcal__legend span{align-items:center;gap:6px;display:inline-flex}.tcal__legend .cmark{color:var(--text-faint)}.dpanel{scroll-margin-top:calc(var(--header-h) + 12px);padding:16px 12px 10px}.dpanel__head{flex-wrap:wrap;align-items:baseline;gap:10px;margin-bottom:14px;padding:0 6px;display:flex}.dpanel__date{min-width:0;font-size:var(--fs-lg);letter-spacing:-.01em;flex:1;font-weight:600}.dpanel__relative{font-size:var(--fs-sm);color:var(--text-faint)}.dpanel__empty{color:var(--text-faint);font-size:var(--fs-md);padding:2px 6px 12px}.dpanel__group+.dpanel__group{margin-top:18px}.dpanel__group .section-title{padding-left:6px}.dpanel__group--due{border-radius:var(--radius);background:var(--warn-soft);box-shadow:inset 3px 0 0 var(--warn);padding:12px 6px 4px}.dpanel__due-head{font-size:var(--fs-2xs);letter-spacing:.06em;text-transform:uppercase;color:var(--warn);align-items:center;gap:7px;padding:0 8px 4px;font-weight:700;display:flex}.dpanel__due-head .cmark--due{color:var(--warn);filter:none}.dpanel__group--due .task+.task{border-top-color:var(--border);border-top-color:color-mix(in srgb, var(--warn) 22%, transparent)}.dpanel__group--due .task:hover{background:0 0;background:color-mix(in srgb, var(--warn) 10%, transparent)}.dpanel__foot{padding:8px 0 2px}@media (width<=860px){.cal-layout{grid-template-columns:1fr}}@media (width<=700px){.tcal{padding:12px}.tcal__weekday{text-align:center;padding:0 0 6px}.tcal__weekday-long{display:none}.tcal__weekday-short{display:inline}.cday{align-items:center;gap:4px;min-height:54px;padding:5px 2px}.cday__num{align-self:center}.cday__list{display:none}.cday__marks{justify-content:center;display:flex}.tcal__legend{justify-content:center}}.overlay{z-index:50;background:#0a0c107a;justify-content:center;align-items:center;padding:24px;animation:.16s ease-out overlay-in;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--border);width:100%;max-width:460px;max-height:calc(100dvh - 48px);box-shadow:var(--shadow-lg);animation:modal-in .2s var(--ease);border-radius:16px;flex-direction:column;display:flex}.modal__header{align-items:center;gap:10px;padding:18px 14px 14px 20px;display:flex}.modal__title{font-size:var(--fs-lg);letter-spacing:-.01em;flex:1;font-weight:600}.modal__body{padding:0 20px;overflow-y:auto}.modal__footer{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;margin-top:4px;padding:14px 20px 18px;display:flex}.field{margin-bottom:16px}.field__label{color:var(--text);font-size:var(--fs-sm);margin-bottom:6px;font-weight:500;display:block}.field__hint{color:var(--text-faint);font-weight:400}.input,.textarea{width:100%;min-height:var(--control);border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);color:var(--text);font-size:var(--fs-md);box-shadow:var(--shadow-xs);padding:9px 12px;transition:border-color .15s,box-shadow .15s}.input::placeholder,.textarea::placeholder{color:var(--text-faint);opacity:1}.input:focus,.textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.textarea{resize:vertical;min-height:80px;line-height:1.45}.field-pair{grid-template-columns:1.35fr 1fr;gap:8px;display:grid}.field__notice{font-size:var(--fs-sm);overflow-wrap:anywhere;align-items:baseline;gap:7px;margin-top:6px;line-height:1.4;display:flex}.field__notice:before{content:"";background:currentColor;flex:none;width:6px;height:6px;transform:translateY(-1px)}.field__notice--error{color:var(--danger)}.field__notice--warning{color:var(--warn)}.field__notice--info{color:var(--text-muted)}.field__notice--info:before{opacity:.6}.input[aria-invalid=true],.textarea[aria-invalid=true],.select[aria-invalid=true]{border-color:var(--danger)}.form-error{border-radius:var(--radius);background:var(--danger-soft);color:var(--danger);box-shadow:inset 3px 0 0 var(--danger);font-size:var(--fs-sm);margin-bottom:14px;padding:10px 12px}.streak-layout{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:start;gap:16px;display:grid}.streak-layout__calendar{grid-area:1/1/span 2}.streak-layout__today{grid-area:1/2}.streak-layout__details{grid-area:2/2}.app--streaks{--cal-tile:#1c2029;--cal-tile-hover:#242935;--cal-tile-future:#15181e;--cal-void:#0b0d11;--cal-void-hover:#12151b;--cal-num-future:#6f7785;--cal-num-void:#363c47;--cal-ember:#ff8a3c;--cal-ember-hot:#ffcb74;--cal-slot:#2a2f39;--cal-frame:#ffe1b5;--cal-rule:repeating-linear-gradient(90deg, #ff8a3c4d 0 4px, transparent 4px 8px) bottom / 100% var(--cal-px) no-repeat}.app--streaks .calendar,.app--streaks .spanel{--frame:#2d313a;--seam:transparent;clip-path:var(--cal-notch);box-shadow:inset 0 0 0 var(--cal-px) var(--frame), inset 0 0 0 calc(var(--cal-px) + 1px) var(--seam);border:0;border-radius:0}.app--streaks .calendar{--frame:#8f3514;--seam:#2a1109}.app--streaks .spanel__head{background:var(--cal-rule);margin-bottom:10px;padding-bottom:10px}.app--streaks .spanel__rows{gap:4px}.app--streaks .srow{clip-path:var(--cal-notch);background:var(--cal-tile);box-shadow:inset 0 var(--cal-px) 0 #ffffff0d, inset 0 calc(-1 * var(--cal-px)) 0 #00000059;border-top:0;border-radius:0}.app--streaks .srow--done{background:linear-gradient(to top, #ff6e2821, transparent 70%), var(--cal-tile)}.app--streaks .srow--celebrate:before{border-radius:0}.calendar{padding:16px}.calendar__header{background:var(--cal-rule);align-items:center;gap:4px;margin-bottom:8px;padding-bottom:10px;display:flex}.calendar__month{font-size:var(--fs-lg);letter-spacing:-.01em;flex:1;font-weight:600}.calendar__grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.calendar__weekday{text-align:center;font-size:var(--fs-2xs);letter-spacing:.08em;color:var(--text-faint);padding:2px 0 4px;font-weight:700}.day{isolation:isolate;aspect-ratio:1;min-height:44px;color:var(--text);font-size:var(--fs-md);font-variant-numeric:tabular-nums;cursor:pointer;animation:cal-day-in .18s steps(3) calc(var(--row,0) * 24ms) backwards;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:0;font-weight:600;display:flex;position:relative}.day:disabled{cursor:default}.day:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.day:not(:disabled):active{transform:translateY(1px)}.day:before{content:"";z-index:-1;clip-path:var(--cal-notch);background:var(--cal-tile);box-shadow:inset 0 var(--cal-px) 0 #ffffff0d, inset 0 calc(-1 * var(--cal-px)) 0 #00000059;transition:background-color .12s;position:absolute;inset:0}.day:not(:disabled):hover:before,.day--selected:before{background-color:var(--cal-tile-hover)}.day--in.day--future{color:var(--cal-num-future);font-weight:500}.day--in.day--future:before{background:var(--cal-tile-future);box-shadow:inset 0 var(--cal-px) 0 #ffffff08}.day--full:before{background:linear-gradient(to top, #ff6e282b, transparent 65%), var(--cal-tile)}.day--today:before{background:linear-gradient(to top, #ff78281a, transparent 70%), var(--cal-tile)}.day--today.day--full:before{background:linear-gradient(to top, #ff78283d, transparent 75%), var(--cal-tile)}.day--today{color:var(--cal-ember-hot);font-weight:700}.day.day--outside{color:var(--cal-num-void);font-weight:500}.day.day--outside:before{background:var(--cal-void);box-shadow:none}.day--outside .day__track{opacity:.35}.day.day--outside:not(:disabled):hover{color:var(--text-disabled)}.day.day--outside:not(:disabled):hover:before{background:var(--cal-void-hover)}.day--selected:after{content:"";clip-path:var(--cal-notch);box-shadow:inset 0 0 0 var(--cal-px) var(--cal-frame);pointer-events:none;animation:.15s steps(3,end) cal-frame-in;position:absolute;inset:0}.day--selected.day--outside:after{box-shadow:inset 0 0 0 var(--cal-px) var(--cal-num-future)}.day__track{gap:var(--cal-px);width:26px;height:4px;display:flex}.day__seg{background:var(--cal-slot);flex:1;min-width:2px;position:relative;overflow:hidden}.day__seg:after{content:"";background:var(--cal-ember);box-shadow:inset 0 1px 0 var(--cal-ember-hot);opacity:.78;transform-origin:0;transition:opacity .18s;position:absolute;inset:0;transform:scaleX(0)}.day__seg--active:after{transform:scaleX(1)}.day__seg--past:after{background:var(--seg-past);box-shadow:none;opacity:1;transform:scaleX(1)}.day--full .day__seg--active:after,.day--today .day__seg--active:after{opacity:1}.day--today .day__seg:after{transition:transform .26s var(--ease) .18s, opacity .18s}.calendar--focus .day__seg--dim:after{opacity:.14}.calendar--focus .day__seg--dim{opacity:.55}.calendar--focus .day__seg--focus.day__seg--active:after{opacity:1}.day__flame{--flame:#3d434e;--core:#535a67;z-index:1;width:var(--cal-px);height:var(--cal-px);transform-origin:4px 10px;box-shadow: 4px 0 0 var(--flame),  2px 2px 0 var(--flame), 4px 2px 0 var(--flame),  2px 4px 0 var(--flame), 4px 4px 0 var(--core), 6px 4px 0 var(--flame),  0 6px 0 var(--flame), 2px 6px 0 var(--core), 4px 6px 0 var(--core), 6px 6px 0 var(--flame),  2px 8px 0 var(--flame), 4px 8px 0 var(--flame), 6px 8px 0 var(--flame);position:absolute;top:4px;right:10px}.day--lit .day__flame{--flame:var(--cal-ember);--core:var(--cal-ember-hot);animation:.9s step-end 6 cal-flame}.day__embers{pointer-events:none;position:absolute;inset:0}.day__embers i{width:var(--cal-px);height:var(--cal-px);background:var(--cal-ember-hot);opacity:0;animation:2.9s linear 3 cal-ember;position:absolute;bottom:8px;left:16%}.day__embers i:nth-child(2){background:var(--cal-ember);animation-duration:3.3s;animation-delay:.8s;left:80%}.day__embers i:nth-child(3){background:var(--cal-ember);animation-duration:3.1s;animation-delay:1.7s;left:26%}.day__embers i:nth-child(4){animation-duration:2.7s;animation-delay:2.3s;left:70%}.day__ring{box-shadow:0 0 0 var(--cal-px) var(--cal-ember-hot);opacity:0;pointer-events:none;animation:.55s ease-out .5s forwards day-pulse;position:absolute;inset:-1px}.spanel{padding:16px 12px 8px}.spanel__head{align-items:baseline;gap:10px;margin-bottom:8px;padding:0 8px;display:flex}.spanel__title{min-width:0;font-size:var(--fs-lg);letter-spacing:-.01em;flex:1;font-weight:600}.spanel__status{color:var(--text-muted);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;animation:.2s ease-out fade-in}.spanel__status--secured{color:var(--ok);font-weight:600}.spanel__close{align-self:center;margin:-6px -6px -6px 0}.spanel__rows{flex-direction:column;gap:2px;display:flex}.spanel__foot{padding:6px 0 2px}.spanel__empty{color:var(--text-faint);font-size:var(--fs-md);padding:4px 8px 12px}.spanel .empty{background:0 0;border:none;padding:24px 8px 20px}.srow{border-top:1px solid var(--border);border-radius:var(--radius);grid-template-columns:22px minmax(72px,1fr) auto;grid-template-areas:"mark name side"".note note"".error error";align-items:center;gap:4px 12px;padding:10px 8px;transition:background .3s .1s;display:grid;position:relative}.srow:first-child{border-top-color:#0000}.srow--done{background:var(--surface-sunken);border-top-color:#0000}.srow--done+.srow{border-top-color:#0000}.srow--missed{opacity:.8}.srow__mark{border:1.5px solid var(--border-strong);width:22px;height:22px;color:var(--accent-ink);border-radius:50%;grid-area:mark;place-items:center;transition:background .2s,border-color .2s;display:grid;position:relative}.srow__mark svg{transition:transform .22s cubic-bezier(.34,1.4,.64,1) 60ms;transform:scale(0)}.srow__mark--done{background:var(--accent);border-color:var(--accent)}.srow__mark--done svg{transform:scale(1)}.srow__mark--restart:after,.srow__mark--missed:after{content:"";background:var(--text-faint);border-radius:1px;width:8px;height:1.5px;position:absolute}.srow__name{min-width:0;font-size:var(--fs-md);text-overflow:ellipsis;white-space:nowrap;grid-area:name;font-weight:600;overflow:hidden}.srow__name--button{appearance:none;text-align:left;font:inherit;color:inherit;cursor:pointer;border-radius:var(--radius-xs);background:0 0;border:none;margin:0;padding:0;font-weight:600;transition:color .15s}.srow__name--button:hover,.srow--focused .srow__name--button{color:var(--accent)}.srow__side{flex-wrap:wrap;grid-area:side;justify-content:flex-end;align-items:center;gap:8px 10px;display:flex}.srow__count{font-variant-numeric:tabular-nums;align-items:baseline;gap:5px;display:inline-flex}.srow__count .num{font-size:var(--fs-num);letter-spacing:-.02em;font-weight:700}.srow__unit{font-size:var(--fs-xs);color:var(--text-muted)}.srow__count--last{color:var(--text-muted)}.srow__count--last .num{font-size:var(--fs-lg);font-weight:600}.srow__count-label{font-size:var(--fs-xs);color:var(--text-faint);margin-right:2px}.srow__quiet{font-size:var(--fs-sm);color:var(--text-faint)}.srow__lastday{font-size:var(--fs-xs);color:var(--warn);white-space:nowrap;font-weight:600}.srow__error{font-size:var(--fs-sm);color:var(--danger);grid-area:error;margin:0}.srow__note{grid-area:note;min-width:0}.srow__note-form{align-items:center;gap:6px;display:flex}.srow__note-form .input{min-height:var(--control-sm);font-size:var(--fs-sm);padding:5px 10px}.srow__note-view{align-items:baseline;gap:8px;min-width:0;display:flex}.srow__note-text{font-size:var(--fs-sm);white-space:pre-wrap;overflow-wrap:anywhere}.srow__note-text--empty{color:var(--text-faint);font-style:italic}.srow__note-edit{color:var(--text-faint);font-size:var(--fs-xs);cursor:pointer;background:0 0;border:none;flex:none;padding:0;font-weight:500}.srow__note-edit:hover{color:var(--text)}.srow--celebrate:before{content:"";border-radius:var(--radius);pointer-events:none;background:linear-gradient(90deg,#0000,#7d9bff29,#0000);animation:.6s ease-out .2s forwards srow-sweep;position:absolute;inset:0;transform:translate(-100%)}.num{vertical-align:bottom;height:1em;line-height:1;display:inline-block;overflow:hidden}.num__in{flex-direction:column;line-height:1;display:flex}.num__in>span{height:1em;display:block}.num__in--up{animation:num-up .32s var(--ease) .12s both}.num__in--down{animation:.2s ease-out both num-down}.num__in--long{animation-duration:.48s}.hearth{z-index:-1;width:100%;height:100%;image-rendering:pixelated;image-rendering:crisp-edges;pointer-events:none;background:#000;display:block;position:fixed;inset:0}.app--streaks{isolation:isolate;background:var(--bg);color:var(--text);--bg:#0f1115;--surface:#171a21;--surface-sunken:#1f232b;--surface-hover:#232832;--surface-raised:#2a2f39;--surface-recessed:#13161b;--border:#272c35;--border-strong:#363c47;--text:#eceef2;--text-muted:#aab2bf;--text-faint:#8d96a4;--text-disabled:#5a6270;--accent:#7d9bff;--accent-hover:#96afff;--accent-soft:#1e2742;--accent-ink:#0f1115;--danger:#ff9189;--danger-soft:#3b1d1b;--danger-ink:#2a1210;--warn:#f0b766;--warn-soft:#33260f;--ok:#7fd19e;--track:#323945;--seg-past:#5a6272;--shadow-xs:0 1px 2px #0000004d;--shadow-sm:0 1px 3px #00000059;--shadow:0 4px 14px -2px #00000073;--shadow-lg:0 18px 44px -8px #0009;--ember-blend:screen;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;position:relative}html:has(.app--streaks){background:#0f1115}.ember{z-index:900;pointer-events:none;image-rendering:pixelated;image-rendering:crisp-edges;mix-blend-mode:screen;position:fixed;top:0;left:0}.ember--light{mix-blend-mode:normal}.app--hearth .main{padding-bottom:42vh}.app--hearth .mobile-action .btn{box-shadow:0 14px 40px #00000080}.auth{justify-content:center;align-items:center;min-height:100dvh;padding:24px;display:flex}.auth__card{width:100%;max-width:380px;box-shadow:var(--shadow);padding:28px 24px 24px}.auth__brand{font-size:var(--fs-lg);letter-spacing:-.01em;align-items:center;gap:10px;margin-bottom:24px;font-weight:600;display:flex}.auth__brand .header__mark{border-radius:8px;width:28px;height:28px}.auth__title{font-size:var(--fs-xl);letter-spacing:-.02em;font-weight:700}.auth__subtitle{color:var(--text-muted);font-size:var(--fs-md);margin:6px 0 24px}.auth__switch{text-align:center;color:var(--text-muted);font-size:var(--fs-md);margin-top:20px}.auth__link{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-weight:600}.auth__link:hover{text-decoration:underline}.auth__info{border-radius:var(--radius);background:var(--accent-soft);color:var(--accent);font-size:var(--fs-sm);margin-bottom:14px;padding:10px 12px}.tab__count{border-radius:var(--radius-pill);background:var(--accent);min-width:18px;height:18px;color:var(--accent-ink);font-size:var(--fs-2xs);font-variant-numeric:tabular-nums;place-items:center;margin-left:6px;padding:0 5px;font-weight:600;display:inline-grid}.reading-capture{grid-template-columns:minmax(0,1fr);gap:24px;max-width:760px;display:grid}.reading-form{padding:20px}.reading-form__title{font-size:var(--fs-lg);margin-bottom:16px;font-weight:600}.reading-pair{grid-template-columns:1fr 1fr;gap:12px;display:grid}.reading-form__notes{min-height:160px}.reading-form__location{max-width:240px}.reading-form__foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.reading-form__hint{color:var(--text-faint);font-size:var(--fs-sm)}.reading-queue{padding:2px 16px}.queue-row{align-items:center;gap:12px;padding:12px 0;display:flex}.queue-row+.queue-row{border-top:1px solid var(--border)}.queue-row__body{flex:1;min-width:0}.queue-row__book{font-weight:600}.queue-row__author{color:var(--text-muted);font-weight:400}.queue-row__preview{color:var(--text-muted);font-size:var(--fs-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.queue-row__error{color:var(--danger);font-size:var(--fs-sm);margin-top:4px}.queue-row__side{flex:none;align-items:center;gap:8px;display:flex}.queue-row__status{color:var(--text-muted);font-size:var(--fs-sm);align-items:center;gap:8px;display:inline-flex}.queue-row__pulse{background:var(--accent);border-radius:50%;width:8px;height:8px;animation:1.2s ease-in-out infinite queue-pulse}.handoff__book{color:var(--text-muted);font-size:var(--fs-sm);margin-bottom:14px}.handoff{gap:18px;margin:0;padding-left:20px;display:grid}.handoff__step::marker{color:var(--text-faint);font-weight:600}.handoff__step{padding-left:4px}.handoff__label{margin-bottom:8px;font-weight:600;display:block}.handoff__row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.handoff__toggle{color:var(--text-muted);font:inherit;font-size:var(--fs-sm);cursor:pointer;background:0 0;border:none;padding:0}.handoff__toggle:hover{color:var(--text)}.handoff__prompt{min-height:140px;font-family:var(--font-mono);font-size:var(--fs-xs);margin-top:10px}.handoff__link{color:var(--accent);font-weight:500}.handoff__reply{min-height:140px;font-family:var(--font-mono);font-size:var(--fs-xs)}.review-list{grid-template-columns:minmax(0,1fr);gap:20px;max-width:760px;display:grid}.review-card{padding:20px}.review-card__head{margin-bottom:8px}.review-card__book{font-size:var(--fs-lg);font-weight:600}.review-card__meta{color:var(--text-muted);font-size:var(--fs-sm)}.review-card__notes{font-size:var(--fs-sm);margin-bottom:16px}.review-card__notes summary{width:fit-content;color:var(--accent);cursor:pointer;font-weight:500}.review-card__notes-text{color:var(--text-muted);white-space:pre-wrap;overflow-wrap:anywhere;margin-top:8px}.review-card__passage{border-left:2px solid var(--border-strong);color:var(--text-muted);white-space:pre-wrap;overflow-wrap:anywhere;margin:8px 0 0;padding-left:12px}.review-card__none{color:var(--text-muted);margin-bottom:16px}.review-card__foot{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding-top:16px;display:flex}.review-card__foot .form-error{flex:100%;margin-bottom:0}.review-card__progress{color:var(--text-muted);font-size:var(--fs-sm)}.proposals{gap:12px;margin:0 0 16px;padding:0;list-style:none;display:grid}.proposal{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-recessed);gap:6px;padding:14px;display:grid}.proposal--skipped{opacity:.6}.proposal--skipped .proposal__lesson{text-decoration:line-through}.proposal__lesson{font-size:var(--fs-lg);overflow-wrap:anywhere;font-weight:600;line-height:1.4}.proposal__origin{color:var(--text-faint);font-size:var(--fs-xs);font-weight:500}.proposal__detail{color:var(--text-muted);font-size:var(--fs-sm);overflow-wrap:anywhere}.proposal__label,.lesson__label{color:var(--text);margin-right:4px;font-weight:600}.proposal__flags{gap:4px;margin:2px 0 0;padding:0;list-style:none;display:grid}.proposal__flag{border-radius:var(--radius-sm);background:var(--warn-soft);color:var(--warn);font-size:var(--fs-sm);padding:6px 10px}.proposal__flag-type{font-weight:600}.proposal__actions{flex-wrap:wrap;gap:8px;margin-top:6px;display:flex}.proposal__edit{gap:8px;display:grid}.proposal__decided{font-size:var(--fs-sm);align-items:center;gap:10px;margin-top:4px;display:flex}.proposal__choice{color:var(--ok);font-weight:600}.proposal--skipped .proposal__choice{color:var(--text-muted)}.proposal__change{color:var(--accent);font:inherit;font-size:var(--fs-sm);cursor:pointer;background:0 0;border:none;padding:0}.library{grid-template-columns:minmax(0,1fr);gap:16px;max-width:860px;display:grid}.library__filters{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.library__search{flex:260px;width:auto}.library__book{flex:0 280px;min-width:0}.library__retired-toggle{color:var(--text-muted);font-size:var(--fs-sm);cursor:pointer;align-items:center;gap:6px;display:inline-flex}.library__matches{color:var(--text-faint);font-size:var(--fs-sm)}.lesson-list{margin:0;padding:2px 16px;list-style:none}.lesson{align-items:flex-start;gap:12px;padding:14px 0;display:flex}.lesson+.lesson{border-top:1px solid var(--border)}.lesson__body{flex:1;gap:4px;min-width:0;display:grid}.lesson__text{overflow-wrap:anywhere;font-weight:500;line-height:1.45}.lesson__detail{color:var(--text-muted);font-size:var(--fs-sm);overflow-wrap:anywhere}.lesson__detail--flag{color:var(--warn)}.lesson__meta{color:var(--text-faint);font-size:var(--fs-xs);flex-wrap:wrap;gap:4px 12px;display:flex}.lesson--retired .lesson__text{color:var(--text-muted)}.lesson__retired{font-weight:600}@media (width<=700px){.reading-pair{grid-template-columns:1fr;gap:0}.reading-form,.review-card{padding:16px}.reading-form__location{max-width:none}.reading-form__foot .btn,.review-card__foot .btn{width:100%}.queue-row{flex-wrap:wrap}.queue-row__side{justify-content:flex-end;width:100%}.library__book{flex:100%}}@keyframes queue-pulse{50%{opacity:.3}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes overlay-in{0%{opacity:0}}@keyframes modal-in{0%{opacity:0;transform:translateY(8px)scale(.985)}}@keyframes sheet-in{0%{opacity:0;transform:translateY(32px)}}@keyframes menu-in{0%{opacity:0;transform:translateY(-4px)}}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}@keyframes num-up{0%{transform:translateY(0)}to{transform:translateY(-1em)}}@keyframes num-down{0%{transform:translateY(-1em)}to{transform:translateY(0)}}@keyframes cal-day-in{0%{opacity:0;transform:translateY(3px)}}@keyframes cal-frame-in{0%{opacity:0;transform:scale(1.12)}}@keyframes cal-flame{50%{transform:scaleY(.84)}}@keyframes cal-ember{0%{opacity:0;transform:translate(0)}12%{opacity:1}60%{opacity:.85;transform:translate(2px,-18px)}to{opacity:0;transform:translate(-1px,-30px)}}@keyframes day-pulse{0%{opacity:.55;transform:scale(1)}to{opacity:0;transform:scale(1.22)}}@keyframes srow-sweep{to{transform:translate(100%)}}.mobile-action{display:none}@media (width<=860px){.streak-layout{flex-direction:column;display:flex}.streak-layout__today{order:1}.streak-layout__calendar{order:2}.streak-layout__details{order:3}}@media (width<=700px){:root{--fs-md:15px;--fs-sm:14px}.header{gap:10px;padding:0 14px}.header__brand span,.header__email{display:none}.header .tabs{flex:1}.header .tab{flex:1;padding:0 10px}.main{padding:16px 14px 104px}.toolbar{gap:8px;margin-bottom:16px}.toolbar .tabs{flex:100%}.toolbar .tab{flex:1}.toolbar .select{flex:1;min-width:0}.toolbar .toolbar__spacer{display:none}.subject-grid{grid-template-columns:1fr;gap:12px}.input,.textarea,.select{font-size:16px}.field-pair{grid-template-columns:1fr 1fr}.focus{padding:12px 12px 4px}.focus-row{grid-template-columns:auto auto minmax(0,1fr);padding:4px 0 8px}.focus-row__title{white-space:normal;grid-area:1/3}.focus-row>.chip{grid-area:2/3;justify-self:start;margin-top:-6px}.overlay{align-items:flex-end;padding:0}.modal{max-width:none;max-height:92dvh;padding-bottom:env(safe-area-inset-bottom);animation:sheet-in .26s var(--ease);border-bottom:0;border-radius:18px 18px 0 0}.day{min-height:40px;font-size:var(--fs-sm);gap:4px}.calendar{padding:12px}.calendar__grid{gap:3px}.day__track{width:22px}.day__flame{top:1px;right:8px;scale:.75}.srow__count-label{display:none}.srow{column-gap:10px;padding-left:4px;padding-right:4px}.desktop-action{display:none}.mobile-action{left:14px;right:14px;bottom:calc(14px + env(safe-area-inset-bottom));z-index:30;display:block;position:fixed}.mobile-action .btn{min-height:var(--control-lg);box-shadow:var(--shadow-lg);border-radius:12px;font-size:15px}.toast{bottom:calc(78px + env(safe-area-inset-bottom))}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.gean-meter{display:block}.gean-loader{transition:opacity var(--gean-fade,.24s) ease}.gean-loader .gean-art{transition:transform var(--gean-fade,.24s) var(--ease)}.gean-loader--leaving{opacity:0;pointer-events:none}.gean-loader--leaving .gean-art{transform:scale(1.015)}.gean-loader .gean-center{transition:transform .45s var(--ease)}.gean-loader--error .gean-center{transform:translateY(clamp(-72px,-9vh,-36px))}.gean-loader[data-flat]{background:0 0}.gean-loader[data-flat] .gean-art{visibility:hidden}.gean-below{text-align:center;width:min(88vw,400px);position:absolute;top:calc(100% + clamp(22px,4.5vh,44px));left:50%;transform:translate(-50%)}.gean-caption{letter-spacing:.18em;text-transform:uppercase;color:#8a8e98;margin:0;font-size:11px;font-weight:500;animation:.5s ease-out both gean-rise-in}.gean-error{justify-items:center;gap:6px;animation:.35s ease-out both gean-rise-in;display:grid}.gean-error__title{color:#eceef2;margin:0;font-size:16px;font-weight:600}.gean-error__body{color:#a3a8b3;max-width:36ch;margin:0;font-size:14px;line-height:1.5}.gean-error__retry{color:#170a04;min-height:40px;font:inherit;cursor:pointer;transition:filter .15s, transform .12s var(--ease);background:#e2672d;border:0;border-radius:10px;margin-top:12px;padding:0 20px;font-size:14px;font-weight:600}.gean-error__retry:hover{filter:brightness(1.08)}.gean-error__retry:active{transform:scale(.98)}.gean-error__retry:focus-visible{outline-offset:3px;outline:2px solid #f0b766}@keyframes gean-rise-in{0%{opacity:0;transform:translateY(4px)}}
