.bottom-nav{width:100%;height:calc(var(--nav-height) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--color-bg-primary);border-top:1px solid var(--color-border-subtle);transition:background-color var(--transition-theme)}.bottom-nav[data-surface=scroll]{background:var(--color-bg-elevated)}.bottom-nav__list{height:calc(var(--nav-height) - 1px);grid-template-columns:repeat(3,1fr);margin:0;padding:0;list-style:none;display:grid}.bottom-nav__cell{display:flex}.bottom-nav__item{min-height:var(--touch-target);color:var(--color-text-secondary);font-family:var(--font-sans);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:color var(--transition-ui);background:0 0;border:0;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;padding:0;display:flex;position:relative}.bottom-nav__item[aria-current=page]{color:var(--color-text-primary)}.bottom-nav__label{font-size:var(--font-caption-size);line-height:var(--font-caption-line);font-weight:var(--font-caption-weight)}.bottom-nav__item[aria-current=page] .bottom-nav__label{font-weight:700}.bottom-nav__indicator{border-radius:var(--radius-pill);background:var(--color-accent-primary);opacity:0;width:24px;height:3px;transition:opacity var(--transition-ui);position:absolute;top:0}.bottom-nav__item[aria-current=page] .bottom-nav__indicator{opacity:1}.bottom-nav__item:focus-visible{outline:var(--focus-ring-width) solid var(--color-text-primary);outline-offset:-4px;border-radius:var(--radius-input)}.preparation{align-items:center;gap:var(--space-1);font-family:var(--font-sans);flex-direction:column;display:flex}.preparation__label{color:var(--color-text-secondary);font-size:var(--font-body-size);line-height:var(--font-body-line);text-align:center;margin:0}.preparation__bar{border-radius:var(--radius-pill);background:var(--color-bg-surface);width:100%;max-width:240px;height:4px;overflow:hidden}.preparation__fill{border-radius:var(--radius-pill);background:var(--color-accent-secondary);height:100%;transition:width var(--transition-ui)}.preparation__percent{color:var(--color-text-secondary);font-size:var(--font-caption-size);line-height:var(--font-caption-line);margin:0}@media (prefers-reduced-motion:reduce){.preparation__fill{transition:none}}.zen-btn{justify-content:center;align-items:center;gap:var(--space-1);padding:0 var(--space-3);border-radius:var(--radius-pill);font-family:var(--font-sans);font-size:var(--font-body-size);line-height:var(--font-body-line);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color var(--transition-ui), border-color var(--transition-ui), color var(--transition-ui), transform var(--transition-ui);border:1px solid #0000;display:inline-flex}.zen-btn--primary{min-height:var(--button-height);min-width:var(--button-min-width);background:var(--color-accent-primary);color:var(--color-derived-text-on-accent);font-weight:700}.zen-btn--secondary{min-height:var(--button-secondary-height);border-color:var(--color-border-subtle);color:var(--color-text-secondary);background:0 0;font-weight:500}.zen-btn--primary:active,.zen-btn--primary[data-forced-state=pressed]{background:var(--color-derived-accent-pressed);transform:scale(.98)}.zen-btn--secondary:active,.zen-btn--secondary[data-forced-state=pressed]{background:var(--color-bg-surface);transform:scale(.98)}.zen-btn:focus-visible,.zen-btn[data-forced-state=focus]{outline:var(--focus-ring-width) solid var(--color-text-primary);outline-offset:var(--focus-offset)}.zen-btn:disabled{background:var(--color-bg-surface);color:var(--color-text-secondary);cursor:not-allowed;border-color:#0000;transform:none}.zen-sheet-backdrop{z-index:10;background:var(--color-derived-overlay);align-items:flex-end;display:flex;position:fixed;inset:0}.zen-sheet{width:100%;max-height:92dvh;padding:var(--space-3) var(--screen-margin) calc(var(--space-3) + env(safe-area-inset-bottom));border-radius:var(--radius-sheet) var(--radius-sheet) 0 0;background:var(--color-bg-elevated);color:var(--color-text-primary);font-family:var(--font-sans);box-shadow:var(--shadow-modal);overflow-y:auto}.zen-sheet__header{margin-bottom:var(--space-2);justify-content:space-between;align-items:center;display:flex}.zen-sheet__title{font-family:var(--font-h1-family);font-size:var(--font-h1-size);line-height:var(--font-h1-line);font-weight:var(--font-h1-weight);margin:0}.zen-sheet__title:focus{outline:none}.zen-sheet__close{width:var(--touch-target);height:var(--touch-target);border-radius:var(--radius-pill);color:var(--color-text-secondary);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.zen-sheet__close:disabled{opacity:.4;cursor:not-allowed}.zen-sheet__close:focus-visible{outline:var(--focus-ring-width) solid var(--color-text-primary);outline-offset:var(--focus-offset)}.companion{gap:var(--space-2);min-height:0;padding:calc(var(--space-2) + env(safe-area-inset-top)) var(--screen-margin) calc(var(--space-2) + env(safe-area-inset-bottom));color:var(--color-text-primary);font-family:var(--font-sans);flex-direction:column;flex:1;display:flex}.companion__context{flex-direction:column;gap:4px;display:flex}.companion__book{flex-direction:column;margin:0;display:flex}.companion__book-title{font-family:var(--font-h2-family);font-size:var(--font-h2-size);line-height:var(--font-h2-line);font-weight:var(--font-h2-weight)}.companion__book-author,.companion__turns{color:var(--color-text-secondary);font-size:var(--font-caption-size);line-height:var(--font-caption-line);margin:0}.companion__conversation{gap:var(--space-2);flex-direction:column;flex:1;min-height:0;display:flex;overflow-y:auto}.companion__messages{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.companion__message{flex-direction:column;gap:4px;max-width:88%;display:flex}.companion__message[data-sender=USER]{align-self:flex-end;align-items:flex-end}.companion__who{color:var(--color-text-secondary);font-size:var(--font-caption-size);line-height:var(--font-caption-line);font-weight:700}.companion__bubble{padding:var(--space-2);border-radius:var(--radius-card);background:var(--color-bg-surface);font-size:var(--font-body-size);line-height:var(--font-body-line);white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.companion__message[data-sender=KOMI_AI] .companion__bubble{font-family:var(--font-serif)}.companion__message[data-sender=USER] .companion__bubble{background:var(--color-bg-elevated);border:1px solid var(--color-border-subtle)}.companion__status{color:var(--color-text-secondary);font-size:var(--font-body-size);line-height:var(--font-body-line);margin:0}.companion__typing{align-items:center;gap:var(--space-1);color:var(--color-text-secondary);font-size:var(--font-caption-size);line-height:var(--font-caption-line);margin:0;display:flex}.companion__dots{gap:4px;display:inline-flex}.companion__dots span{border-radius:var(--radius-pill);background:var(--color-accent-secondary);width:6px;height:6px;animation:1.2s ease-in-out infinite companion-dot}.companion__dots span:nth-child(2){animation-delay:.2s}.companion__dots span:nth-child(3){animation-delay:.4s}@keyframes companion-dot{0%,80%,to{opacity:.3}40%{opacity:1}}@media (prefers-reduced-motion:reduce){.companion__dots span{opacity:.7;animation:none}}.companion__composer{gap:var(--space-1);flex-direction:column;display:flex}.companion__label{color:var(--color-text-secondary);font-size:var(--font-caption-size);line-height:var(--font-caption-line);font-weight:700}.companion__field{min-height:var(--touch-target);padding:var(--space-1) var(--space-2);border:1px solid var(--color-border-subtle);border-radius:var(--radius-input);background:var(--color-bg-surface);color:var(--color-text-primary);font-family:var(--font-sans);resize:none;font-size:16px;line-height:24px}.companion__field:focus-visible{outline:var(--focus-ring-width) solid var(--color-text-primary);outline-offset:var(--focus-offset)}.companion__counter{color:var(--color-text-secondary);font-size:var(--font-caption-size);line-height:var(--font-caption-line);margin:0}.companion__counter--over,.companion__notice{color:var(--color-state-warning)}.companion__notice{font-size:var(--font-caption-size);line-height:var(--font-caption-line);margin:0}.companion__seed{font-family:var(--font-serif);font-size:var(--font-body-size);line-height:var(--font-body-line);flex-direction:column;gap:4px;margin:0;display:flex}.companion__confirm{gap:var(--space-2);flex-direction:column;display:flex}.streak-badge{border-radius:var(--radius-pill);background:var(--color-bg-surface);color:var(--color-text-primary);font-family:var(--font-sans);font-size:var(--font-caption-size);line-height:var(--font-caption-line);font-weight:var(--font-caption-weight);font-variant-numeric:tabular-nums;transition:background-color var(--transition-theme);align-items:center;gap:6px;padding:6px 12px;display:inline-flex}.streak-badge__icon{color:var(--color-accent-primary);flex:none}.timer-stepper{width:var(--touch-target);height:var(--touch-target);border-radius:var(--radius-pill);background:var(--color-bg-surface);color:var(--color-text-primary);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color var(--transition-ui), color var(--transition-ui), transform var(--transition-ui);border:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.timer-stepper:active,.timer-stepper[data-forced-state=pressed]{background:var(--color-border-subtle);transform:scale(.96)}.timer-stepper:focus-visible,.timer-stepper[data-forced-state=focus]{outline:var(--focus-ring-width) solid var(--color-text-primary);outline-offset:var(--focus-offset)}.timer-stepper:disabled{color:var(--color-text-secondary);cursor:not-allowed;transform:none}.dashboard{gap:var(--space-2);min-height:0;padding:calc(var(--space-2) + env(safe-area-inset-top)) var(--screen-margin) var(--space-3);color:var(--color-text-primary);font-family:var(--font-sans);flex-direction:column;flex:1;display:flex}.dashboard__header{justify-content:space-between;align-items:center;display:flex}.dashboard__settings{width:var(--touch-target);height:var(--touch-target);border-radius:var(--radius-pill);color:var(--color-text-secondary);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.dashboard__settings:focus-visible{outline:var(--focus-ring-width) solid var(--color-text-primary);outline-offset:var(--focus-offset)}.dashboard__canvas{justify-content:center;align-items:center;gap:var(--space-1);text-align:center;flex-direction:column;flex:1;min-height:0;display:flex}.dashboard__book-title{margin:var(--space-1) 0 0;font-family:var(--font-h1-family);font-size:var(--font-h1-size);line-height:var(--font-h1-line);font-weight:var(--font-h1-weight)}.dashboard__book-author{color:var(--color-text-secondary);font-size:var(--font-caption-size);line-height:var(--font-caption-line);margin:0}.dashboard__progress{width:100%;max-width:240px;height:4px;margin-top:var(--space-1);border-radius:var(--radius-pill);background:var(--color-bg-surface);overflow:hidden}.dashboard__progress-fill{border-radius:var(--radius-pill);background:var(--color-accent-secondary);height:100%;transition:width var(--transition-ui)}.dashboard__progress-text{color:var(--color-text-secondary);font-size:var(--font-caption-size);line-height:var(--font-caption-line);margin:0}.dashboard__controls{align-items:center;gap:var(--space-2);flex-direction:column;display:flex}.dashboard__timer{justify-content:center;align-items:center;gap:var(--space-3);display:flex}.dashboard__time{min-width:4ch;font-size:var(--font-display-timer-size);line-height:var(--font-display-timer-line);font-weight:var(--font-display-timer-weight);text-align:center}@media (prefers-reduced-motion:reduce){.dashboard__progress-fill{transition:none}}.settings-backdrop{z-index:10;background:var(--color-derived-overlay);align-items:flex-end;display:flex;position:fixed;inset:0}.settings-panel{width:100%;padding:var(--space-3) var(--screen-margin) calc(var(--space-3) + env(safe-area-inset-bottom));border-radius:var(--radius-sheet) var(--radius-sheet) 0 0;background:var(--color-bg-elevated);color:var(--color-text-primary);font-family:var(--font-sans)}.settings-panel__header{margin-bottom:var(--space-3);justify-content:space-between;align-items:center;display:flex}.settings-panel__title{font-family:var(--font-h1-family);font-size:var(--font-h1-size);line-height:var(--font-h1-line);font-weight:var(--font-h1-weight);margin:0}.settings-panel__title:focus{outline:none}.settings-panel__close{width:var(--touch-target);height:var(--touch-target);border-radius:var(--radius-pill);color:var(--color-text-secondary);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.settings-panel__row{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.settings-panel__label{font-size:var(--font-body-size);line-height:var(--font-body-line);margin:0;font-weight:700}.settings-panel__hint{color:var(--color-text-secondary);font-size:var(--font-caption-size);line-height:var(--font-caption-line);margin:0}.settings-switch{border-radius:var(--radius-pill);background:var(--color-border-subtle);cursor:pointer;-webkit-tap-highlight-color:transparent;width:52px;height:32px;transition:background-color var(--transition-ui);border:0;flex:none;padding:0;position:relative}.settings-switch[data-on=true]{background:var(--color-accent-secondary)}.settings-switch__thumb{background:var(--color-bg-primary);width:24px;height:24px;transition:transform var(--transition-ui);border-radius:50%;position:absolute;top:4px;left:4px}.settings-switch[data-on=true] .settings-switch__thumb{transform:translate(20px)}.settings-panel__close:focus-visible,.settings-switch:focus-visible{outline:var(--focus-ring-width) solid var(--color-text-primary);outline-offset:var(--focus-offset)}@media (prefers-reduced-motion:reduce){.settings-switch,.settings-switch__thumb{transition:none}}.sunflower{-webkit-user-select:none;user-select:none;flex:none;justify-content:center;align-items:center;display:inline-flex;position:relative}.sunflower__halo{background:var(--color-derived-bg-halo);border:1.5px solid var(--color-bg-surface);transition:background-color var(--transition-theme), border-color var(--transition-theme);border-radius:50%;position:absolute;inset:0}.sunflower--bonus .sunflower__halo{border:2px solid var(--color-accent-primary)}.sunflower--fallow .sunflower__halo{border:1.5px dashed var(--color-border-subtle)}.sunflower__svg{width:100%;height:100%;transition:opacity var(--transition-ui);position:relative;overflow:visible}.sunflower--fallow .sunflower__svg{opacity:.65}.sunflower__stage{opacity:0;transition:opacity var(--transition-ui)}.sunflower__stage[data-active=true]{opacity:1}.sf-leaf,.sf-seed,.sf-petal-outer,.sf-petal-inner,.sf-center,.sf-soil{stroke:var(--color-text-primary);stroke-width:1.75px;stroke-linejoin:round;transition:fill var(--transition-theme), stroke var(--transition-theme)}.sf-soil-line{stroke:var(--color-text-primary);stroke-width:1.75px;stroke-linecap:round;transition:stroke var(--transition-theme)}.sf-stem{stroke:var(--color-accent-secondary);transition:stroke var(--transition-theme)}.sf-leaf{fill:var(--color-accent-secondary)}.sf-seed{fill:var(--color-text-secondary)}.sf-petal-outer{fill:var(--color-accent-primary)}.sf-petal-inner{fill:var(--color-derived-petal-inner)}.sf-center{fill:var(--color-derived-text-on-accent)}.sf-ring{stroke:var(--color-text-secondary);stroke-width:1.25px}.sf-dot,.sf-soil{fill:var(--color-bg-surface)}.sunflower--fallow .sf-stem{stroke:var(--color-text-secondary)}.sunflower--fallow .sf-leaf{fill:var(--color-text-secondary)}.sunflower--fallow .sf-petal-outer{fill:var(--color-derived-dormant-petal-outer)}.sunflower--fallow .sf-petal-inner{fill:var(--color-derived-dormant-petal-inner)}.sf-aura__glow{fill:var(--color-accent-primary);opacity:.12}.sf-aura__ring{stroke:var(--color-accent-primary);stroke-width:1.25px;opacity:.65}.sf-aura__dot{fill:var(--color-accent-primary);opacity:.7}.sf-sparkle-primary{fill:var(--color-accent-primary);opacity:.4}.sf-sparkle-secondary{fill:var(--color-accent-secondary);opacity:.4}@keyframes sunflower-sway{0%,to{transform:rotate(-1.5deg)}50%{transform:rotate(1.5deg)}}@keyframes sunflower-head-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes sunflower-seed-breathe{0%,to{transform:scale(1)translateY(0)}50%{transform:scale(1.02)translateY(-1.5px)}}.sunflower--breathing .sf-plant[data-motion=sway]{transform-box:view-box;transform-origin:110px 178px;animation:5.5s ease-in-out infinite sunflower-sway}.sunflower--breathing .sf-plant[data-motion=seed]{transform-box:view-box;transform-origin:110px 176px;animation:4s ease-in-out infinite sunflower-seed-breathe}.sunflower--breathing .sunflower__stage[data-active=true] .sf-head{transform-box:view-box;transform-origin:110px 78px;animation:4.5s ease-in-out -1.2s infinite sunflower-head-breathe}.sunflower--breathing-paused .sf-plant,.sunflower--breathing-paused .sf-head{animation-play-state:paused!important}@media (prefers-reduced-motion:reduce){.sunflower,.sunflower *,.sunflower :before,.sunflower :after{transition:none!important;animation:none!important}}.epub-reader{min-height:0;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom);background:var(--color-bg-primary);color:var(--color-text-primary);font-family:var(--font-sans);flex-direction:column;flex:1;display:flex}.epub-reader__header{gap:var(--space-1);padding:var(--space-1) var(--screen-margin);flex-direction:column;display:flex}.epub-reader__bar{justify-content:space-between;align-items:center;display:flex}.epub-reader__time{align-items:baseline;gap:var(--space-2);display:flex}.epub-reader__clock{color:var(--color-text-secondary);font-size:var(--font-body-size);line-height:var(--font-body-line);font-weight:600}.epub-reader__percent{color:var(--color-text-secondary);font-size:var(--font-caption-size);line-height:var(--font-caption-line)}.epub-reader__fonts{gap:0;display:flex}.epub-reader__icon{width:var(--touch-target);height:var(--touch-target);border-radius:var(--radius-pill);color:var(--color-text-secondary);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:color var(--transition-ui);background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.epub-reader__icon:disabled{opacity:.4;cursor:default}.epub-reader__icon:focus-visible{outline:var(--focus-ring-width) solid var(--color-text-primary);outline-offset:var(--focus-offset)}.epub-reader__page{min-height:0;padding:0 var(--screen-margin);flex:1;position:relative}.epub-reader__host{width:100%;height:100%}.epub-reader__host[hidden]{display:none}.epub-reader__status{color:var(--color-text-secondary);font-size:var(--font-body-size);justify-content:center;align-items:center;margin:0;display:flex;position:absolute;inset:0}.epub-reader__notice{justify-content:center;align-items:center;gap:var(--space-3);text-align:center;flex-direction:column;height:100%;display:flex}.epub-reader__notice p{padding:var(--space-2);border:1px solid var(--color-state-warning);border-radius:var(--radius-card);background:var(--color-bg-elevated);font-size:var(--font-body-size);margin:0;line-height:1.5}.epub-reader__footer{justify-content:space-between;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--screen-margin) var(--space-2);display:flex}.epub-reader__confirm-text{margin:0 0 var(--space-3);font-size:var(--font-body-size);color:var(--color-text-secondary);line-height:1.5}.epub-reader__confirm-actions{gap:var(--space-1);flex-direction:column;display:flex}.grace-banner{align-items:flex-start;gap:var(--space-1);padding:var(--space-2);border:1px solid var(--color-state-warning);border-radius:var(--radius-card);background:var(--color-bg-elevated);color:var(--color-text-primary);font-family:var(--font-sans);display:flex}.grace-banner__icon{color:var(--color-state-warning);flex:none;margin-top:2px}.grace-banner__text{font-size:var(--font-body-size);margin:0;line-height:1.5}.grace-banner__count{font-variant-numeric:tabular-nums;color:var(--color-state-warning);font-weight:600}.focus-timer{gap:var(--space-3);min-height:0;padding:calc(var(--space-3) + env(safe-area-inset-top)) var(--screen-margin) calc(var(--space-3) + env(safe-area-inset-bottom));color:var(--color-text-primary);font-family:var(--font-sans);flex-direction:column;flex:1;display:flex}.focus-timer__canvas{justify-content:center;align-items:center;gap:var(--space-2);text-align:center;flex-direction:column;flex:1;min-height:0;display:flex}.focus-timer__title{font-family:var(--font-h1-family);font-size:var(--font-h1-size);line-height:var(--font-h1-line);font-weight:var(--font-h1-weight);margin:0}.focus-timer__middle{align-items:center;gap:var(--space-2);flex-direction:column;display:flex}.focus-timer__clock{font-size:var(--font-display-timer-size);line-height:var(--font-display-timer-line);font-weight:var(--font-display-timer-weight);text-align:center}.focus-timer__actions{flex-direction:column;display:flex}.focus-timer__confirm-text{margin:0 0 var(--space-3);font-size:var(--font-body-size);color:var(--color-text-secondary);line-height:1.5}.focus-timer__confirm-actions{gap:var(--space-1);flex-direction:column;display:flex}.post-reading{gap:var(--space-3);flex-direction:column;display:flex}.post-reading__canvas{align-items:center;gap:var(--space-2);text-align:center;flex-direction:column;display:flex}.post-reading__summary{max-width:32ch;color:var(--color-text-secondary);font-size:var(--font-body-size);line-height:var(--font-body-line);margin:0}.post-reading__body{gap:var(--space-2);flex-direction:column;display:flex}.post-reading__text{color:var(--color-text-secondary);font-size:var(--font-body-size);line-height:var(--font-body-line);margin:0}.post-reading__question{font-family:var(--font-h2-family);font-size:var(--font-h2-size);line-height:var(--font-h2-line);font-weight:var(--font-h2-weight);text-align:center;margin:0}.post-reading__field{flex-direction:column;gap:6px;display:flex}.post-reading__field label{color:var(--color-text-secondary);font-size:var(--font-caption-size);line-height:var(--font-caption-line);font-weight:700}.post-reading__field input{min-height:var(--touch-target);padding:0 var(--space-2);border:1px solid var(--color-border-subtle);border-radius:var(--radius-input);background:var(--color-bg-surface);color:var(--color-text-primary);font-family:var(--font-sans);font-size:16px;line-height:24px}.post-reading__field input:focus-visible{outline:var(--focus-ring-width) solid var(--color-text-primary);outline-offset:var(--focus-offset)}.post-reading__notice{color:var(--color-state-warning);font-size:var(--font-caption-size);line-height:var(--font-caption-line);margin:0}.post-reading__actions{gap:var(--space-1);flex-direction:column;display:flex}.book-card{gap:var(--space-2);padding:var(--space-2);border-radius:var(--radius-card);background:var(--color-bg-surface);color:var(--color-text-primary);font-family:var(--font-sans);transition:border-color var(--transition-ui);border:1.5px solid #0000;flex-direction:column;display:flex}.book-card[data-active=true]{border-color:var(--color-accent-primary)}.book-card__row{align-items:center;gap:var(--space-2);display:flex}.book-card__text{flex:1;min-width:0}.book-card__title{font-family:var(--font-serif);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:16px;font-weight:500;line-height:22px;overflow:hidden}.book-card__author{color:var(--color-text-secondary);font-size:var(--font-caption-size);line-height:var(--font-caption-line);text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.book-card__badges{gap:var(--space-1);margin-top:6px;display:flex}.book-card__badge{border:1px solid var(--color-border-subtle);border-radius:var(--radius-pill);color:var(--color-text-secondary);letter-spacing:.04em;padding:2px 8px;font-size:11px;font-weight:700;line-height:16px}.book-card__badge--progress{background:var(--color-accent-secondary);color:var(--color-bg-primary);letter-spacing:0;border-color:#0000}.book-card__action{width:var(--touch-target);height:var(--touch-target);border-radius:var(--radius-pill);color:var(--color-text-secondary);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.book-card__action:disabled{opacity:.4;cursor:not-allowed}.book-card__action:focus-visible{outline:var(--focus-ring-width) solid var(--color-text-primary);outline-offset:var(--focus-offset)}.book-card__read{min-height:var(--touch-target);margin-top:var(--space-1);color:var(--color-text-primary);font-family:var(--font-sans);font-size:var(--font-caption-size);text-underline-offset:3px;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;align-self:flex-start;padding:0;font-weight:600;text-decoration:underline}.book-card__read:disabled{opacity:.4;cursor:not-allowed}.book-card__read:focus-visible{outline:var(--focus-ring-width) solid var(--color-text-primary);outline-offset:var(--focus-offset)}.book-card__notice{align-items:flex-start;gap:var(--space-1);padding-top:var(--space-2);border-top:1px solid var(--color-border-subtle);flex-direction:column;display:flex}.book-card__notice-text{color:var(--color-state-warning);font-size:var(--font-caption-size);line-height:var(--font-caption-line);margin:0}@media (prefers-reduced-motion:reduce){.book-card{transition:none}}.book-card__seeds{min-width:var(--touch-target);min-height:var(--touch-target);border-radius:var(--radius-card);color:var(--color-text-secondary);font-family:var(--font-sans);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;flex-direction:column;flex:none;align-items:center;gap:2px;padding:0;display:flex}.book-card__seeds:focus-visible{outline:var(--focus-ring-width) solid var(--color-text-primary);outline-offset:var(--focus-offset)}.book-card__seeds-count{white-space:nowrap;font-size:11px;font-weight:600;line-height:16px}.garden{min-height:0;color:var(--color-text-primary);font-family:var(--font-sans);flex-direction:column;flex:1;display:flex}.garden__header{padding:var(--space-3) 0 var(--space-1)}.garden__title{padding:0 var(--screen-margin);font-family:var(--font-h1-family);font-size:var(--font-h1-size);line-height:var(--font-h1-line);font-weight:var(--font-h1-weight);margin:0}.garden__tabs{gap:var(--space-1);margin-top:var(--space-2);padding:0 var(--screen-margin);display:flex;overflow-x:auto}.garden__tab{min-height:var(--touch-target);padding:0 var(--space-2);border:1px solid var(--color-border-subtle);border-radius:var(--radius-pill);color:var(--color-text-secondary);font-family:var(--font-sans);font-size:var(--font-caption-size);line-height:var(--font-caption-line);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color var(--transition-ui), color var(--transition-ui), border-color var(--transition-ui);background:0 0;flex:none;align-items:center;gap:6px;font-weight:700;display:inline-flex}.garden__tab[aria-selected=true]{background:var(--color-bg-surface);color:var(--color-text-primary);border-color:#0000}.garden__tab:focus-visible{outline:var(--focus-ring-width) solid var(--color-text-primary);outline-offset:var(--focus-offset)}.garden__count{color:var(--color-text-secondary);font-weight:500}.garden__list{gap:var(--space-2);padding:var(--space-1) var(--screen-margin) var(--space-2);flex-direction:column;flex:1;display:flex}.garden__empty{max-width:280px;margin:var(--space-6) auto 0;color:var(--color-text-secondary);font-size:var(--font-body-size);line-height:var(--font-body-line);text-align:center}.garden__error{color:var(--color-state-warning);font-size:var(--font-caption-size);line-height:var(--font-caption-line);margin:0}.garden__footer{padding:var(--space-2) var(--screen-margin);background:var(--color-bg-primary);justify-content:center;display:flex;position:sticky;bottom:0}@media (prefers-reduced-motion:reduce){.garden__tab{transition:none}}.plant__tabs{gap:var(--space-1);margin-bottom:var(--space-2);display:flex}.plant__tab{min-height:var(--touch-target);padding:0 var(--space-1);border:1px solid var(--color-border-subtle);border-radius:var(--radius-pill);color:var(--color-text-secondary);font-family:var(--font-sans);font-size:var(--font-caption-size);line-height:var(--font-caption-line);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color var(--transition-ui), color var(--transition-ui), border-color var(--transition-ui);background:0 0;flex:1;font-weight:700}.plant__tab[aria-selected=true]{background:var(--color-bg-surface);color:var(--color-text-primary);border-color:#0000}.plant__tab:focus-visible{outline:var(--focus-ring-width) solid var(--color-text-primary);outline-offset:var(--focus-offset)}.plant__form{gap:var(--space-2);flex-direction:column;display:flex}.plant__form .zen-btn{align-self:stretch}.plant__field{flex-direction:column;gap:6px;display:flex}.plant__field label{color:var(--color-text-secondary);font-size:var(--font-caption-size);line-height:var(--font-caption-line);font-weight:700}.plant__field input{min-height:var(--touch-target);padding:0 var(--space-2);border:1px solid var(--color-border-subtle);border-radius:var(--radius-input);background:var(--color-bg-surface);color:var(--color-text-primary);font-family:var(--font-sans);font-size:16px;line-height:24px}.plant__field input:focus-visible{outline:var(--focus-ring-width) solid var(--color-text-primary);outline-offset:var(--focus-offset)}.plant__field input:disabled{opacity:.6}.plant__status{color:var(--color-text-secondary);font-size:var(--font-body-size);line-height:var(--font-body-line);text-align:center;margin:0}.plant__error{gap:var(--space-1);flex-direction:column;display:flex}.plant__error p{color:var(--color-state-warning);font-size:var(--font-caption-size);line-height:var(--font-caption-line);margin:0}.plant__action{margin-top:var(--space-3);justify-content:center;display:flex}@media (prefers-reduced-motion:reduce){.plant__tab{transition:none}}.seeds{gap:var(--space-2);flex-direction:column;max-height:60vh;display:flex;overflow-y:auto}.seeds__book{color:var(--color-text-secondary);font-size:var(--font-caption-size);line-height:var(--font-caption-line);margin:0}.seeds__empty{color:var(--color-text-secondary);font-size:var(--font-body-size);line-height:var(--font-body-line);margin:0}.seeds__list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.seeds__item{padding:var(--space-2);border-radius:var(--radius-card);background:var(--color-bg-surface)}.seeds__text{font-family:var(--font-serif);font-size:var(--font-body-size);line-height:var(--font-body-line);color:var(--color-text-primary);overflow-wrap:anywhere;margin:0}.seeds__date{margin:var(--space-1) 0 0;color:var(--color-text-secondary);font-size:var(--font-caption-size);line-height:var(--font-caption-line)}.quiz-option{justify-content:space-between;align-items:center;gap:var(--space-2);width:100%;min-height:60px;padding:var(--space-1) var(--space-2);border-radius:var(--radius-input);background:var(--color-bg-surface);color:var(--color-text-primary);font-family:var(--font-sans);font-size:var(--font-body-size);line-height:var(--font-body-line);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color var(--transition-ui), border-color var(--transition-ui);border:2px solid #0000;font-weight:500;display:flex;position:relative}.quiz-option[data-selected=true]{background:var(--color-bg-primary);border-color:var(--color-accent-secondary)}.quiz-option__input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.quiz-option:has(.quiz-option__input:focus-visible){outline:var(--focus-ring-width) solid var(--color-text-primary);outline-offset:var(--focus-offset)}.quiz-option__label{flex:1}.quiz-option__mark{border:1.5px solid var(--color-text-secondary);width:22px;height:22px;color:var(--color-bg-primary);transition:background-color var(--transition-ui), border-color var(--transition-ui);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.quiz-option[data-selected=true] .quiz-option__mark{background:var(--color-accent-secondary);border-color:var(--color-accent-secondary)}.reminder-banner{padding:var(--space-2);border-radius:var(--radius-card);background:var(--color-bg-surface);color:var(--color-text-primary);font-family:var(--font-sans)}.reminder-banner__header{align-items:center;gap:var(--space-1);display:flex}.reminder-banner__icon{color:var(--color-accent-secondary);flex:none}.reminder-banner__title{font-size:var(--font-body-size);line-height:var(--font-body-line);margin:0;font-weight:700}.reminder-banner__text{margin:var(--space-1) 0 0;color:var(--color-text-secondary);font-size:var(--font-caption-size);line-height:var(--font-caption-line)}.reminder-banner__error{margin:var(--space-1) 0 0;color:var(--color-state-warning);font-size:var(--font-caption-size);line-height:var(--font-caption-line)}.reminder-banner__actions{align-items:center;gap:var(--space-1);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.reminder-banner__dismiss{min-height:var(--touch-target);padding:0 var(--space-2);border-radius:var(--radius-pill);color:var(--color-text-secondary);font:inherit;font-size:var(--font-caption-size);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;font-weight:500}.reminder-banner__dismiss:focus-visible{outline:var(--focus-ring-width) solid var(--color-text-primary);outline-offset:var(--focus-offset)}.onboarding{gap:var(--space-3);min-height:100dvh;padding:calc(var(--space-3) + env(safe-area-inset-top)) var(--screen-margin) calc(var(--space-3) + env(safe-area-inset-bottom));background:var(--color-bg-primary);color:var(--color-text-primary);font-family:var(--font-sans);transition:background-color var(--transition-theme);flex-direction:column;display:flex}.onboarding__center{justify-content:center;align-items:center;gap:var(--space-2);text-align:center;flex-direction:column;flex:1;display:flex}.onboarding__center--compact{flex:none}.onboarding__title{font-family:var(--font-h1-family);font-size:var(--font-h1-size);line-height:var(--font-h1-line);font-weight:var(--font-h1-weight);margin:0}.onboarding__lead{max-width:320px;color:var(--color-text-secondary);font-size:var(--font-body-size);line-height:var(--font-body-line);margin:0}.onboarding__title:focus,.onboarding__question-title:focus{outline:none}.onboarding__progress-text{margin-bottom:var(--space-1);color:var(--color-text-secondary);font-size:var(--font-caption-size);line-height:var(--font-caption-line);font-weight:var(--font-caption-weight);justify-content:space-between;align-items:baseline;display:flex}.onboarding__category{color:var(--color-accent-secondary);font-weight:700}.onboarding__bar{border-radius:var(--radius-pill);background:var(--color-bg-surface);height:6px;overflow:hidden}.onboarding__bar-fill{border-radius:var(--radius-pill);background:var(--color-accent-secondary);height:100%;transition:width var(--transition-ui)}.onboarding__question{flex:1}.onboarding__question-title{margin:0 0 var(--space-3);font-family:var(--font-h1-family);font-size:var(--font-h1-size);line-height:var(--font-h1-line);font-weight:var(--font-h1-weight)}.onboarding__options{flex-direction:column;gap:12px;display:flex}.onboarding__actions{align-items:stretch;gap:var(--space-1);flex-direction:column;display:flex}.onboarding__actions--row{flex-flow:wrap;justify-content:space-between;align-items:center}.onboarding__actions--row .zen-btn--primary{flex:1}.onboarding__error{color:var(--color-state-warning);font-size:var(--font-caption-size);line-height:var(--font-caption-line);text-align:center;flex-basis:100%;margin:0}.onboarding__summary{padding:var(--space-2);border-radius:var(--radius-card);background:var(--color-bg-surface)}.onboarding__rows{gap:var(--space-1);flex-direction:column;margin:0;display:flex}.onboarding__row{justify-content:space-between;align-items:baseline;gap:var(--space-2);font-size:var(--font-caption-size);line-height:var(--font-caption-line);display:flex}.onboarding__row dt{color:var(--color-text-secondary)}.onboarding__row dd{text-align:right;margin:0;font-weight:700}.onboarding__note{margin:var(--space-2) 0 0;color:var(--color-text-secondary);font-size:var(--font-caption-size);line-height:var(--font-caption-line)}.onboarding__link{color:var(--color-accent-secondary);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-weight:700;text-decoration:underline}.onboarding__link:focus-visible{outline:var(--focus-ring-width) solid var(--color-text-primary);outline-offset:var(--focus-offset)}@media (height<=700px){.onboarding[data-screen=plan] .onboarding__lead{display:none}}.empty-screen{justify-content:center;align-items:center;gap:var(--space-1);padding:var(--space-3) var(--screen-margin);text-align:center;color:var(--color-text-primary);font-family:var(--font-sans);flex-direction:column;flex:1;display:flex}.empty-screen__title{font-family:var(--font-h1-family);font-size:var(--font-h1-size);line-height:var(--font-h1-line);font-weight:var(--font-h1-weight);margin:0}.empty-screen__message{max-width:280px;color:var(--color-text-secondary);font-size:var(--font-body-size);line-height:var(--font-body-line);margin:0}.app-shell{background:var(--color-bg-primary);flex-direction:column;height:100dvh;display:flex}.app-shell__screen{flex-direction:column;flex:1;min-height:0;display:flex;overflow-y:auto}.app-loading{background:var(--color-bg-primary);height:100dvh;color:var(--color-text-secondary);font-family:var(--font-sans);font-size:var(--font-body-size);justify-content:center;align-items:center;display:flex}.app-notice{padding:var(--space-2) var(--screen-margin);background:var(--color-bg-surface);color:var(--color-state-warning);font-family:var(--font-sans);font-size:var(--font-caption-size);line-height:var(--font-caption-line);margin:0}.session-notice{gap:var(--space-1);padding:calc(var(--space-2) + env(safe-area-inset-top)) var(--screen-margin) 0;flex-direction:column;display:flex}.app-preparing{padding:var(--screen-margin);justify-content:center;align-items:center;display:flex}@font-face{font-family:Lora;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/Lora/Lora-Variable.woff2)format("woff2")}@font-face{font-family:Lora;font-style:italic;font-weight:400 700;font-display:swap;src:url(/fonts/Lora/Lora-Italic-Variable.woff2)format("woff2")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/PlusJakartaSans/PlusJakartaSans-Variable.woff2)format("woff2")}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--color-bg-primary);color:var(--color-text-primary);font-family:var(--font-body-family);font-size:var(--font-body-size);line-height:var(--font-body-line);font-weight:var(--font-body-weight);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;transition:background-color var(--transition-theme), color var(--transition-theme);margin:0}.tabular{font-variant-numeric:tabular-nums}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
