*{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0f172a;--surface:#1e293b;--surface-active:#263449;--border:#334155;--border-strong:#475569;--text:#e2e8f0;--text-bright:#f8fafc;--text-sub:#94a3b8;--text-dim:#64748b;--text-faint:#475569;--text-strong:#cbd5e1;--ja-text:#f1f5f9;--error-bg:#450a0a;--error-border:#7f1d1d;--error-text:#fecaca;--ok-active-bg:#064e3b;--overlay:#0f172af0;--en:#34d399;--ng:#f87171;--accent:#38bdf8;--accent-soft:#7dd3fc;--narrow-max:40rem}html,body,#root{background:var(--bg);height:100%;color:var(--text);-webkit-text-size-adjust:100%;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;font-family:Hiragino Sans,Hiragino Kaku Gothic ProN,Noto Sans JP,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}button{font-family:inherit}.screen{height:100dvh;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);flex-direction:column;display:flex}.hidden{display:none!important}.app-header{padding:calc(.55rem + env(safe-area-inset-top)) 1rem .55rem;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:.8rem;display:flex;position:relative}.app-header h1{color:var(--text-sub);text-overflow:ellipsis;white-space:nowrap;font-size:1.05rem;font-weight:600;overflow:hidden}.app-header .spacer{margin-left:auto}.icon-btn{border:1px solid var(--border-strong);color:var(--text-strong);cursor:pointer;background:0 0;border-radius:.5rem;flex-shrink:0;min-width:44px;min-height:44px;padding:.25rem .7rem;font-size:1rem}.icon-btn:active{background:var(--border)}.icon-btn:disabled{color:var(--text-sub);border-color:var(--border);cursor:default;background:0 0}.menu-overlay{z-index:10;background:#00000080;position:fixed;top:0;bottom:0;left:0;right:0}.menu-panel{z-index:11;box-sizing:border-box;width:min(80vw,max(240px,min(70vw,320px)));padding:calc(.55rem + env(safe-area-inset-top)) calc(1rem + env(safe-area-inset-right)) calc(1rem + env(safe-area-inset-bottom)) 1rem;background:var(--surface);border-left:1px solid var(--border);flex-direction:column;gap:.8rem;animation:.18s ease-out menu-slide-in;display:flex;position:fixed;top:0;bottom:0;right:0;overflow-y:auto}@keyframes menu-slide-in{0%{transform:translate(100%)}}@media (prefers-reduced-motion:reduce){.menu-panel{animation:none}}.menu-close{align-self:flex-end;font-size:1.25rem}.menu-item{width:100%}.icon-btn[aria-disabled=true]{color:var(--text-sub);border-color:var(--border);cursor:default;background:0 0}.header-email{text-align:left;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;min-width:44px;min-height:44px;color:var(--text-sub);background:0 0;border:none;padding:0;font-family:inherit;font-size:1rem;line-height:44px;overflow:hidden}.list-main{padding:.8rem 1rem calc(1rem + env(safe-area-inset-bottom));flex-direction:column;flex:1;gap:.6rem;width:100%;max-width:44rem;margin:0 auto;display:flex;overflow-y:auto}.list-row{align-items:stretch;gap:.5rem;display:flex}.list-btn{background:var(--surface);border:1px solid var(--border);color:var(--text);text-align:left;cursor:pointer;border-radius:.6rem;flex:1;justify-content:space-between;align-items:center;gap:1rem;min-width:0;padding:.85rem 1rem;font-size:1.05rem;display:flex}.list-btn:active{background:var(--surface-active)}.list-btn .row-title{overflow-wrap:anywhere}.list-btn .row-progress{color:var(--text-sub);flex-shrink:0;font-size:1rem}.list-btn.complete .row-progress{color:var(--en)}.list-btn.complete .row-progress:after{content:" ✅"}.row-actions{flex-shrink:0;gap:.5rem;display:flex}@media (max-width:430px){.row-actions{flex-direction:column}.row-actions .row-sub-btn{flex:1}}.row-sub-btn{border:1px solid var(--border-strong);color:var(--text-sub);cursor:pointer;background:0 0;border-radius:.6rem;flex-shrink:0;min-height:44px;padding:0 .8rem;font-size:1rem}.row-sub-btn:active{background:var(--border)}.row-sub-btn.danger{color:var(--ng);border-color:var(--error-border)}.row-sub-btn:disabled{color:var(--text-sub);border-color:var(--border);cursor:default;background:0 0}.empty-note{color:var(--text-sub);text-align:center;margin-top:2.5rem;font-size:1rem;line-height:1.9}.import-error{background:var(--error-bg);border:1px solid var(--error-border);color:var(--error-text);white-space:pre-wrap;border-radius:.6rem;padding:.7rem .9rem;font-size:1rem;line-height:1.6}.review-entry{background:var(--surface);border:1px solid var(--accent);height:3rem;color:var(--accent-soft);white-space:nowrap;text-overflow:ellipsis;cursor:pointer;border-radius:.6rem;flex-shrink:0;justify-content:center;align-items:center;padding:0 1rem;font-size:1.05rem;display:flex;overflow:hidden}.review-entry:active{background:var(--surface-active)}.review-entry[aria-disabled=true]{color:var(--text-sub);border-color:var(--border);background:var(--surface);cursor:default}.practice-header .sentence-no{color:var(--text-bright);font-size:1.15rem;font-weight:700}.practice-header .progress{color:var(--text-sub);margin-left:auto;font-size:1rem}.practice-main{padding:1rem 1.2rem calc(3.4rem + env(safe-area-inset-bottom));cursor:pointer;flex:1;overflow-y:auto}.practice-main.rating-open{padding-bottom:calc(12rem + env(safe-area-inset-bottom))}.chunk-list{flex-direction:column;gap:.7rem;max-width:60rem;margin:0 auto;display:flex}.chunk{line-height:1.55}.chunk .ja{color:var(--ja-text);font-size:max(1.05rem,min(2.4vmax,1.4rem));display:block}.chunk .arrow{color:var(--text-sub);margin-right:.5rem;font-size:1rem}.chunk .en{color:var(--en);font-size:max(1.05rem,min(2.4vmax,1.4rem))}.tap-hint{left:env(safe-area-inset-left);right:env(safe-area-inset-right);bottom:calc(.6rem + env(safe-area-inset-bottom));text-align:center;color:var(--text-sub);cursor:pointer;background:0 0;border:none;min-height:44px;font-size:1rem;position:fixed}.rating{padding:.7rem calc(1rem + env(safe-area-inset-right)) calc(.7rem + env(safe-area-inset-bottom)) calc(1rem + env(safe-area-inset-left));background:var(--overlay);border-top:1px solid var(--border);flex-direction:column;align-items:center;gap:.6rem;display:flex;position:fixed;bottom:0;left:0;right:0}.rating-row{justify-content:center;gap:1rem;width:100%;display:flex}.rate-btn{box-sizing:border-box;background:var(--surface);max-width:16rem;height:3.25rem;color:var(--text);cursor:pointer;border-radius:.7rem;flex:1;justify-content:center;align-items:center;padding:0 .6rem;font-size:1.1rem;line-height:1.2;display:inline-flex;overflow:hidden}.rate-btn.ok{border:1.5px solid var(--en)}.rate-btn.ok:active{background:var(--ok-active-bg)}.rate-btn.ng{border:1.5px solid var(--ng)}.rate-btn.ng:active{background:var(--error-border)}.rate-btn.retry{border:1.5px solid var(--text-dim);flex:none;width:100%}.rate-btn.retry:active{background:var(--border)}.rate-btn .btn-spinner{vertical-align:0;width:1.2em;height:1.2em;margin-right:.3em}.rate-btn:disabled{color:var(--text-sub);border-color:var(--border);background:var(--surface);cursor:default}.session-end{text-align:center;flex-direction:column;align-items:center;gap:1.2rem;margin-top:2.5rem;display:flex}.session-end .msg{font-size:1.3rem;line-height:1.7}.session-end .sub{color:var(--text-sub);font-size:1rem}.session-end .actions{flex-wrap:wrap;justify-content:center;gap:1rem;display:flex}.action-btn{border:1px solid var(--border-strong);background:var(--surface);min-height:44px;color:var(--text);cursor:pointer;border-radius:.6rem;padding:.75rem 1.4rem;font-size:1rem}.action-btn:active{background:var(--border)}.action-btn.primary{border-color:var(--accent);color:var(--accent-soft)}.action-btn:disabled{color:var(--text-sub);border-color:var(--border);background:var(--surface);cursor:default}.btn-spinner{vertical-align:-.15em;clip-path:inset(0 0 50%);border:2px solid;border-radius:50%;width:1em;height:1em;margin-right:.5em;animation:.8s linear infinite btn-spin;display:inline-block}@keyframes btn-spin{to{transform:rotate(360deg)}}.review-source{max-width:60rem;color:var(--text-sub);overflow-wrap:anywhere;margin:0 auto .8rem;font-size:1rem;line-height:1.5}.review-excluded{max-width:60rem;margin:0 auto .8rem}.review-main>.import-error{margin-bottom:.8rem}.history-group{flex-direction:column;gap:.4rem;display:flex}.history-day{color:var(--text-sub);margin-top:.6rem;font-size:1rem}.history-item{background:var(--surface);border:1px solid var(--border);border-radius:.6rem;align-items:baseline;gap:.8rem;padding:.55rem .9rem;font-size:1rem;display:flex}.history-item .time{color:var(--text-sub);font-variant-numeric:tabular-nums;flex-shrink:0}.history-item .what{color:var(--text);overflow-wrap:anywhere;min-width:0}.history-item .result-ok{color:var(--en);flex-shrink:0;margin-left:auto}.history-item .result-ng{color:var(--ng);flex-shrink:0;margin-left:auto}.history-item .result-retry{color:var(--text-sub);flex-shrink:0;margin-left:auto}.login-main{padding:calc(1rem + env(safe-area-inset-top)) 1rem calc(1rem + env(safe-area-inset-bottom));text-align:center;flex-direction:column;flex:1;align-items:center;gap:1.5rem;display:flex;overflow-y:auto}.msg-slot{width:100%;min-height:4.8rem;max-width:var(--narrow-max);flex-direction:column;gap:.5rem;display:flex}.login-title{margin:0;font-size:1.5rem}.login-desc{max-width:var(--narrow-max);overflow-wrap:anywhere;font-size:1rem;line-height:1.7}.login-btn{padding:.9rem 2rem;font-size:1.05rem}.legal-links{flex-direction:column;align-items:center;display:flex}.legal-links a,.legal-links .link-disabled{color:var(--text-sub);align-items:center;min-height:44px;padding:0 .8rem;font-size:1rem;text-decoration:underline;display:flex}.legal-links .link-disabled{cursor:default;text-decoration:none}.home-main .legal-links{align-items:flex-start;margin-top:auto}.consent-main{gap:1.2rem}.consent-lead{margin:0;line-height:1.7}.consent-check{cursor:pointer;text-align:left;align-items:center;gap:.6rem;min-height:44px;padding:0 .8rem;display:flex}.consent-check input{flex-shrink:0;width:1.2rem;height:1.2rem}.consent-logout{margin-top:.8rem;font-size:1rem}.legal-main{max-width:var(--narrow-max);-webkit-user-select:text;user-select:text;margin:0 auto}.legal-main h2{margin:1.6rem 0 .4rem;font-size:1.15rem}.legal-main p{overflow-wrap:anywhere;margin:.4rem 0;line-height:1.8}.legal-gap{height:.6rem}.account-main{gap:1rem}.account-main .msg-slot{max-width:none}.account-email{overflow-wrap:anywhere;font-size:1rem}.account-delete{align-self:flex-start}.account-note{color:var(--text-sub);font-size:1rem;line-height:1.7}.account-main .legal-links{align-items:flex-start}.loading-note{color:var(--text);margin:0;padding:.7rem .9rem;font-size:1rem;line-height:1.6}.startup{text-align:center;justify-content:center;align-items:center}.startup-name{color:var(--text-bright);margin:0;font-size:1.25rem;font-weight:700}.app-update-cover{z-index:10;background:var(--bg);position:fixed;top:0;bottom:0;left:0;right:0}.offline-badge{top:env(safe-area-inset-top);z-index:5;pointer-events:none;background:var(--accent-soft);color:var(--bg);white-space:nowrap;border-radius:0 0 .4rem .4rem;padding:.1rem .6rem;font-size:.875rem;font-weight:700;line-height:1.2;position:absolute;left:50%;transform:translate(-50%)}.offline-badge.floating{position:fixed}.offline-note{background:var(--surface);border:1px solid var(--accent-soft);color:var(--text);overflow-wrap:anywhere;border-radius:.6rem;padding:.7rem .9rem;font-size:1rem;line-height:1.6}
