:root{color:var(--ink);background:var(--surface);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--accent:#0071e3;--accent-hover:#0077ed;--accent-soft:color-mix(in srgb, var(--accent) 10%, transparent);--accent-tint:#f2f8ff;--warning:#ff9500;--warning-strong:#b26a00;--success:#248a3d;--success-vivid:#34c759;--danger:#d70015;--danger-strong:#b00010;--danger-vivid:#ff3b30;--danger-vivid-hover:#e0271d;--danger-tint:#fff5f6;--green:var(--success);--red:var(--danger);--ink:#172033;--muted:#667085;--faint:#98a2b3;--on-accent:#fff;--line:#d7deea;--line-strong:#bcc7d6;--hairline-faint:#17203308;--hairline:#0000000f;--hairline-strong:#00000014;--hover-wash:#0000000a;--control-wash:#0000000f;--control-wash-hover:#0000001a;--overlay:#00000073;--surface:#fff;--surface-raised:#fff;--canvas:#f3f6fa;--shimmer:#eef2f7;--code-bg:#0000000d;--code-keyword:#8b4fd8;--code-string:#0b7f5f;--code-number:#b26a00;--code-meta:#c0362c;--diff-add:#1f7a3b;--diff-del:#b42318;--cat-ai:#8b5cf6;--cat-dev:#3b82f6;--cat-web:#0891b2;--cat-hw:#6366f1;--cat-finance:#16a34a;--cat-policy:#ef4444;--cat-travel:#d97706;--cat-auto:#0d9488;--cat-science:#65a30d;--cat-game:#db2777;--cat-health:#0284c7;--fs-2xs:.6875rem;--fs-xs:.75rem;--fs-sm:.8125rem;--fs-base:.875rem;--fs-md:1rem;--fs-lg:1.125rem;--fs-xl:1.375rem;--fs-2xl:1.75rem;--fs-3xl:2.5rem;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-pill:999px;--elevation-1:0 1px 2px #1018280a, 0 8px 24px #1018280d;--elevation-2:0 2px 14px #1018281a;--elevation-3:0 18px 50px #1018281f;--elevation-4:0 28px 90px #10182852;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,Helvetica Neue,Helvetica,Arial,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{background:var(--surface);min-width:320px;min-height:100dvh;margin:0;overflow-x:clip}body:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(120% 70% at 50% -12%, color-mix(in srgb, var(--accent) 10%, transparent), transparent 58%), radial-gradient(80% 50% at 88% 8%, #5a82dc0f, transparent 60%);position:fixed;inset:0}button,input,textarea{font:inherit}button{cursor:pointer}:where(a,button,input,textarea,select,[role=button],[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:3px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.app-shell{flex-direction:column;width:min(1320px,100% - 44px);min-height:100dvh;margin:0 auto;padding:0 0 28px;display:flex}.auth-splash{min-height:100dvh;color:var(--muted);place-items:center;gap:14px;display:grid}.auth-splash-error{align-content:center}.auth-splash-error p{color:var(--danger);margin:0}.auth-splash-error p.auth-splash-error-detail{max-width:560px;color:var(--muted);font-size:var(--fs-xs);overflow-wrap:anywhere}.route-loading{min-height:48vh;color:var(--muted);place-items:center;gap:14px;display:grid}.loading-dot{border:2px solid var(--line);border-top-color:var(--accent);border-radius:var(--radius-pill);width:18px;height:18px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.content-row{align-items:start;gap:18px;min-width:0;display:grid}@media (width>=1080px){.content-row{grid-template-columns:minmax(0,1fr) minmax(360px,400px)}}.app-header{border-bottom:1px solid var(--line);flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:12px;min-width:0;margin-bottom:20px;padding:12px 0 14px;display:flex}.app-shell>.app-mobile-nav+*{margin-top:0}.app-offline-banner{background:color-mix(in srgb, var(--warning) 16%, transparent);color:var(--warning-strong);font-size:var(--fs-sm);border-radius:8px;justify-content:center;align-items:center;gap:6px;margin:10px 0 0;padding:6px 12px;font-weight:500;display:flex}.app-header__title{flex:none;align-items:center;gap:12px;min-width:0;display:inline-flex;position:relative}.app-header__mark{background:var(--accent-soft,var(--blue-soft,color-mix(in srgb, var(--accent) 10%, transparent)));width:44px;height:44px;color:var(--accent,var(--blue,#0071e3));box-shadow:0 12px 28px color-mix(in srgb, var(--accent) 18%, transparent);border-radius:12px;flex:0 0 44px;justify-content:center;align-items:center;display:inline-flex;overflow:hidden}.app-header__mark img{width:100%;height:100%;display:block}.app-header__copy{min-width:0;display:grid}.app-header__copy h1{color:var(--ink);letter-spacing:0;white-space:nowrap;margin:0;font-size:1.72rem;font-weight:600;line-height:1.12}.app-header__subtitle{min-width:0;color:var(--muted);font-size:var(--fs-base);align-items:center;gap:8px;margin-top:4px;line-height:1.35;display:flex}.app-header__side{flex-wrap:nowrap;flex:auto;justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:inline-flex}.app-header__status{align-items:center;gap:8px;min-width:0;display:inline-flex}.app-header__status span{border:1px solid var(--line,var(--line-soft,#0000001a));background:var(--surface,#fff);min-height:30px;color:var(--muted);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:8px;align-items:center;padding:0 9px;display:inline-flex}.app-header__nav{scrollbar-width:none;align-items:center;gap:6px;min-width:0;display:inline-flex;overflow-x:auto}.app-header__nav::-webkit-scrollbar{display:none}.ptr-indicator{z-index:60;border-radius:var(--radius-pill);background:var(--surface);width:36px;height:36px;color:var(--accent);box-shadow:var(--elevation-2), inset 0 0 0 1px var(--hairline);pointer-events:none;opacity:0;will-change:transform, opacity;place-items:center;display:grid;position:fixed;top:-44px;left:50%}.ptr-indicator:not([data-dragging]){transition:transform .22s,opacity .22s}.ptr-indicator__icon.is-spinning{animation:.8s linear infinite spin}.app-header__nav-link,.app-header__logout,.app-header__icon-button{min-height:32px;font-size:var(--fs-base);white-space:nowrap;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;gap:6px;padding:0 11px;font-weight:500;text-decoration:none;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.app-header__nav-link{color:var(--muted);border:1px solid #0000}.app-header__nav-link.is-active{border-color:color-mix(in srgb, var(--accent) 24%, transparent);background:var(--accent-soft,var(--blue-soft,color-mix(in srgb, var(--accent) 10%, transparent)));color:var(--accent,var(--blue,#0071e3))}@media (hover:hover) and (pointer:fine){.app-header__nav-link:hover{border-color:color-mix(in srgb, var(--accent) 24%, transparent);background:var(--accent-soft,var(--blue-soft,color-mix(in srgb, var(--accent) 10%, transparent)));color:var(--accent,var(--blue,#0071e3))}}.app-header__nav-badge{border-radius:var(--radius-pill);background:var(--danger,#e5484d);color:#fff;min-width:16px;height:16px;font-size:var(--fs-2xs);font-variant-numeric:tabular-nums;justify-content:center;align-items:center;padding:0 4px;font-weight:700;line-height:1;display:inline-flex}.app-header__logout,.app-header__icon-button{border:1px solid var(--line,var(--line-soft,#0000001a));background:var(--surface,#fff);color:var(--muted)}.app-header__logout:hover,.app-header__icon-button:hover{color:var(--ink);border-color:var(--line-strong)}.app-header__icon-button{width:32px;padding:0}.profile-quote-block{min-height:3em;margin:0 0 16px}.profile-quote-row{max-width:100%;color:var(--muted);align-items:flex-start;gap:10px;display:inline-flex}.profile-quote-actions{flex:none;gap:6px;display:inline-flex}.profile-greeting{color:var(--muted);font-size:var(--fs-base);align-items:center;gap:8px;margin:4px 0 0;line-height:1.35;display:flex}.profile-quote-text{white-space:normal;flex:0 auto;min-width:0;line-height:1.5}.profile-quote-toggle{color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;margin:0;padding:0}.profile-quote-sk{vertical-align:middle;width:min(420px,70vw);height:1em;display:inline-block}.profile-quote-author{color:var(--ink);font-weight:600}.profile-quote-action{border-radius:var(--radius-pill);background:var(--canvas);width:26px;height:26px;color:var(--muted);border:0;flex:0 0 26px;justify-content:center;align-items:center;transition:background .15s,color .15s,transform .15s;display:inline-flex}.profile-quote-action:hover,.profile-quote-play.is-playing,.profile-quote-translate.is-active{background:var(--accent-soft);color:var(--accent)}.profile-quote-action:active{transform:scale(.95)}.profile-quote-spinner{animation:.8s linear infinite spin}.profile-quote-action:disabled{cursor:wait;opacity:.6}.profile-quote-translation{color:var(--muted);font-size:var(--fs-base);margin:6px 0 0;line-height:1.5}.profile-quote-translation.is-error{color:var(--danger)}.profile-quote-retry{border-radius:var(--radius-pill);background:var(--canvas);color:var(--accent);font-size:var(--fs-sm);cursor:pointer;border:0;margin-left:8px;padding:2px 10px;font-weight:600;transition:background .15s,color .15s}.profile-quote-retry:hover{background:var(--accent-soft)}.today-strip{flex-direction:column;gap:10px;min-width:0;margin:0 0 16px;display:flex}.today-strip .profile-quote-block{margin:0}.today-week{border-radius:10px;justify-content:space-between;align-items:center;gap:2px;width:100%;text-decoration:none;display:flex}.today-week:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.today-week.is-skeleton{pointer-events:none}.today-week-sk{border-radius:10px;width:100%;height:30px}.today-week-day{border-radius:8px;flex-direction:column;flex:1 1 0;align-items:center;gap:3px;min-width:26px;padding:4px 2px 5px;display:flex}.today-week-day.is-today{background:color-mix(in srgb, var(--accent) 8%, transparent)}.today-week-wday{color:var(--muted);font-size:var(--fs-xs);font-weight:600}.today-week-day.is-weekend .today-week-wday{color:color-mix(in srgb, var(--muted) 55%, var(--canvas))}.today-week-day.is-today .today-week-wday{color:var(--accent)}.today-week-dots{justify-content:center;align-items:center;gap:3px;min-height:5px;display:flex}.today-week-dots i{border-radius:var(--radius-pill);width:5px;height:5px;display:block}.today-week-dots .is-workout{background:var(--accent)}.today-week-dots .is-metric{background:var(--success)}.today-strip .weather-panel{margin:0}h1,h2,h3,p{margin-top:0}h1{letter-spacing:0;margin:0 0 8px;font-size:clamp(1.8rem,3.2vw,2.5rem);font-weight:600;line-height:1.12}kbd{background:var(--canvas);min-height:26px;color:var(--muted);font-family:inherit;font-size:var(--fs-sm);border-radius:8px;align-items:center;padding:0 9px;font-weight:600;display:inline-flex}.workspace,.side-column{flex-direction:column;min-width:0;display:flex}.workspace-head{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:14px;display:flex}.workspace-switch{border-radius:var(--radius-pill);background:var(--canvas);box-shadow:inset 0 0 0 1px var(--hairline);gap:2px;padding:4px;display:inline-flex}.workspace-switch-tab{border-radius:var(--radius-pill);min-height:38px;color:var(--muted);font-size:var(--fs-base);cursor:pointer;background:0 0;border:0;padding:0 24px;font-weight:600;transition:background .15s,color .15s}.workspace-switch-tab:hover{color:var(--ink)}.workspace-switch-tab.is-active{background:var(--accent);color:var(--on-accent)}.dashboard{min-width:0;margin:0 0 22px}.quick-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-width:0;display:grid}@media (width>=720px){.quick-links{grid-template-columns:repeat(4,minmax(0,1fr))}}.quick-links a{background:var(--canvas);min-width:0;min-height:62px;color:var(--ink);font-size:var(--fs-md);box-shadow:inset 0 0 0 1px var(--hairline-faint);border-radius:16px;align-items:center;gap:12px;padding:12px 16px;font-weight:500;text-decoration:none;transition:transform .18s,background .18s,box-shadow .18s;display:flex;position:relative}.quick-links a:hover{background:var(--surface-raised);transform:translateY(-2px);box-shadow:0 14px 34px #00000014}.side-column .quick-links{grid-template-columns:repeat(2,minmax(0,1fr));min-height:136px;margin-bottom:22px}.quick-links a>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.quick-link-card-wrap{min-width:0;display:flex;position:relative}.quick-link-card-wrap .quick-link-card{flex:auto}.quick-link-edit{border-radius:var(--radius-pill);background:var(--surface-raised);width:26px;height:26px;color:var(--muted);box-shadow:0 0 0 1px var(--hairline);cursor:pointer;border:0;justify-content:center;align-items:center;transition:background .15s,color .15s,opacity .15s,transform .15s;display:inline-flex;position:absolute;top:4px;right:4px}.quick-link-edit:after{content:"";position:absolute;inset:-9px}.quick-link-edit:hover{background:var(--control-wash-hover);color:var(--ink)}@media (hover:hover){.quick-link-edit{opacity:0;pointer-events:none;transform:scale(.9)}.quick-link-card-wrap:hover .quick-link-edit,.quick-link-card-wrap:focus-within .quick-link-edit{opacity:1;pointer-events:auto;transform:none}}.quick-link-add{border:1.5px dashed var(--line-strong);min-width:0;min-height:62px;color:var(--muted);font-size:var(--fs-base);cursor:pointer;background:0 0;border-radius:16px;justify-content:center;align-items:center;gap:8px;padding:12px 16px;font-weight:500;transition:color .18s,border-color .18s,background .18s;display:flex}.quick-link-add>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.quick-link-add:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.quick-link-empty{background:var(--surface-raised);color:var(--muted);text-align:center;font-size:var(--fs-base);border:0;border-radius:14px;grid-column:1/-1;padding:16px}.quick-link-empty.is-error{color:var(--danger);background:var(--danger-tint)}.swipe-actions{border-radius:18px;min-width:0;position:relative;overflow:hidden}.swipe-actions__underlay{justify-content:flex-end;align-items:stretch;display:flex;position:absolute;inset:0 0 0 auto}.swipe-actions__buttons{align-items:stretch;display:flex}.swipe-actions__buttons>button{width:72px;color:var(--on-accent);font-size:var(--fs-xs);border:0;flex-direction:column;justify-content:center;align-items:center;gap:4px;font-weight:600;display:flex}.swipe-actions__buttons>button.is-edit{background:var(--accent)}.swipe-actions__buttons>button.is-danger{background:var(--danger)}.swipe-actions__content{touch-action:pan-y;transition:transform .18s;position:relative}.swipe-actions__content.is-dragging{transition:none}@media (prefers-reduced-motion:reduce){.swipe-actions__content{transition:none}}.anchor-nav{display:none}.anchor-marker{width:0;height:0;scroll-margin-top:64px;display:block}@media (width<=768px){.app-shell{width:min(100% - 24px,1080px);padding-bottom:max(18px, env(safe-area-inset-bottom))}.app-header{flex-wrap:wrap;align-items:flex-start;gap:10px;padding:10px 0}.app-header__title{gap:10px}.app-header__mark{border-radius:10px;flex-basis:40px;width:40px;height:40px}.app-header__copy{gap:3px}.app-header__copy h1{font-size:var(--fs-xl)}.app-header__subtitle{font-size:var(--fs-base)}.anchor-nav{z-index:30;background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);scrollbar-width:none;gap:6px;margin:0 -4px;padding:8px 4px;display:flex;position:sticky;top:0;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 24px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 24px),#0000)}.anchor-nav::-webkit-scrollbar{display:none}.anchor-nav__item{border:1px solid var(--line,#d7deea);background:var(--surface);min-height:36px;color:var(--muted,#667085);white-space:nowrap;touch-action:manipulation;border-radius:999px;flex:none;align-items:center;padding:0 12px;font-size:13px;font-weight:500;display:inline-flex}.anchor-nav__item.is-active{border-color:var(--accent,var(--blue,#0071e3));background:var(--accent-soft,#0071e31a);color:var(--accent,var(--blue,#0071e3))}}.site-icon{border-radius:10px;flex:none;justify-content:center;align-items:center;display:inline-flex;position:relative;overflow:hidden}.site-icon-fallback{color:var(--on-accent);justify-content:center;align-items:center;font-weight:600;line-height:1;display:flex;position:absolute;inset:0}.site-icon img{object-fit:cover;background:var(--surface-raised);width:100%;height:100%;position:absolute;inset:0}.workout-week-panel{color:inherit;margin:0 0 22px;text-decoration:none;transition:background .15s,box-shadow .15s,transform .15s}.workout-week-panel:hover{background:var(--accent-tint);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 12%, transparent);transform:translateY(-1px)}.workout-week-panel:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.workout-week-head{align-items:center;gap:8px;min-width:0;display:flex}.workout-week-title{color:var(--ink);font-size:var(--fs-md);letter-spacing:-.01em;margin:0;font-weight:600}.workout-week-legend{color:var(--faint);font-size:var(--fs-xs);white-space:nowrap;align-items:center;gap:4px;margin-left:auto;display:inline-flex}.workout-week-legend i{border-radius:var(--radius-pill);width:6px;height:6px;margin-left:4px;display:inline-block}.workout-week-legend i:first-child{margin-left:0}.workout-week-legend .is-workout{background:var(--accent)}.workout-week-legend .is-metric{background:var(--success)}.workout-week-chevron{color:var(--faint);flex:none;transition:transform .15s}.workout-week-panel:hover .workout-week-chevron{color:var(--accent);transform:translate(2px)}.workout-week-grid{grid-template-columns:repeat(7,1fr);gap:2px;margin:0;padding:0;list-style:none;display:grid}.workout-week-day{border-radius:12px;flex-direction:column;align-items:center;gap:4px;min-width:0;padding:4px 0 6px;display:flex}.workout-week-day.is-today{background:color-mix(in srgb, var(--accent) 7%, transparent)}.workout-week-wday{font-size:var(--fs-xs);color:var(--muted);font-weight:600}.workout-week-day.is-weekend .workout-week-wday{color:color-mix(in srgb, var(--muted) 55%, var(--canvas))}.workout-week-num{width:28px;height:28px;color:var(--ink);font-size:var(--fs-base);font-variant-numeric:tabular-nums;border-radius:50%;justify-content:center;align-items:center;font-weight:600;line-height:1;display:inline-flex}.workout-week-day.is-today .workout-week-num{background:var(--accent);color:var(--on-accent)}.workout-week-dots{justify-content:center;align-items:center;gap:3px;min-height:6px;display:flex}.workout-week-dots span{border-radius:var(--radius-pill);width:6px;height:6px;display:block}.workout-week-dots .is-workout{background:var(--accent)}.workout-week-dots .is-metric{background:var(--success)}.weather-panel{min-width:0;margin:0 0 22px;display:block}.weather-card{background:var(--canvas);min-width:0;height:100%;box-shadow:inset 0 0 0 1px var(--hairline-faint);border-radius:18px;gap:14px;padding:18px;display:grid}.weather-card-head{justify-content:space-between;align-items:center;gap:12px;min-width:0;display:flex}.weather-city{min-width:0;color:var(--ink);align-items:center;gap:8px;display:flex}.weather-title{min-width:0;color:var(--ink);font-size:var(--fs-md);white-space:nowrap;font-weight:600;line-height:1.2;display:block}.weather-switch{border-radius:var(--radius-pill);background:var(--surface-raised);box-shadow:inset 0 0 0 1px var(--hairline);flex:none;gap:2px;padding:3px;display:inline-flex}.weather-switch button{border-radius:var(--radius-pill);min-height:28px;color:var(--muted);font-size:var(--fs-sm);white-space:nowrap;background:0 0;border:0;padding:0 12px;font-weight:500;transition:background .15s,color .15s}.weather-switch button.is-active{background:var(--accent);color:var(--on-accent)}.weather-hero{justify-content:space-between;align-items:center;gap:14px;min-width:0;padding:2px 0;display:flex}.weather-hero-main{gap:6px;min-width:0;display:grid}.weather-hero-temp{color:var(--ink);letter-spacing:-.02em;white-space:nowrap;font-size:2.4rem;font-weight:200;line-height:1}.weather-hero-icon{color:var(--accent);flex-direction:row;flex:none;align-items:center;gap:8px;display:inline-flex}.weather-hero-icon.is-wet{color:var(--warning)}.weather-hero-icon-label{color:var(--muted);font-size:var(--fs-sm);white-space:nowrap;font-weight:500;line-height:1.2}.weather-rain-tip{min-width:0;color:var(--faint);font-size:var(--fs-sm);align-items:center;gap:6px;font-weight:500;display:flex}.weather-rain-tip svg{color:var(--faint);flex:none}.weather-rain-tip span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.weather-rain-tip.has-rain{border-radius:var(--radius-pill);background:var(--accent-soft);color:var(--accent);font-size:var(--fs-sm);gap:8px;padding:8px 12px}.weather-rain-tip.has-rain svg{color:var(--accent)}.weather-week{border-top:1px solid var(--hairline);grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;min-width:0;padding-top:14px;display:grid}.weather-error{min-width:0;color:var(--muted);font-size:var(--fs-base);align-items:center;gap:8px;display:flex}.weather-error svg{color:var(--faint);flex:none}.weather-error span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.weather-retry{border-radius:var(--radius-pill);background:var(--accent-soft);min-height:30px;color:var(--accent);font-size:var(--fs-sm);white-space:nowrap;cursor:pointer;border:0;align-items:center;gap:5px;margin-left:auto;padding:0 12px;font-weight:600;transition:background .15s,color .15s;display:inline-flex}.weather-retry:hover{background:var(--accent);color:var(--on-accent)}.weather-day{text-align:center;border-radius:10px;flex-direction:column;align-items:center;gap:4px;min-width:0;padding:10px 2px;display:flex}.weather-day.is-today{background:var(--accent-tint)}.weather-wday{color:var(--ink);font-size:var(--fs-sm);white-space:nowrap;font-weight:600}.weather-glyph{color:var(--accent);margin:2px 0;display:inline-flex}.weather-glyph.is-wet,.weather-glyph.is-wet svg{color:var(--warning)}.weather-temp{white-space:nowrap;flex-direction:column;align-items:center;gap:1px;display:flex}.weather-temp strong{color:var(--ink);font-size:var(--fs-base);font-weight:600}.weather-temp small{color:var(--faint);font-size:var(--fs-xs)}.weather-day em{color:var(--muted);font-size:var(--fs-xs);white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-style:normal;overflow:hidden}.weather-day.is-today .weather-wday,.weather-day.is-holiday .weather-wday{color:var(--accent)}.auth-splash{min-height:100vh;color:var(--faint);font-size:var(--fs-md);justify-content:center;align-items:center;display:flex}.auth-loading-shell__nav{gap:8px}.auth-loading-shell__nav-pill{border-radius:8px;width:62px;height:32px}.auth-loading-shell__status{color:var(--faint);font-size:var(--fs-sm);margin:0 0 14px}.auth-loading-shell__content{width:100%}.auth-loading-shell__tabs{gap:8px;margin-bottom:14px;display:flex}.auth-loading-shell__tabs .skeleton-line{border-radius:var(--radius-pill);width:94px;height:38px}.auth-loading-shell__panel{background:var(--surface);min-height:132px;box-shadow:inset 0 0 0 1px var(--hairline-faint);border-radius:18px;gap:14px;margin-bottom:14px;padding:20px;display:grid}.auth-loading-shell__panel--primary{min-height:220px}.auth-loading-shell__panel--compact{min-height:82px}.auth-loading-shell__panel .skeleton-line{width:46%}.auth-loading-shell__panel .auth-loading-shell__line--medium{width:66%}.auth-loading-shell__panel .auth-loading-shell__line--wide{width:88%}@media (width<=768px){.auth-loading-shell__nav{display:none}.auth-loading-shell__status{margin-bottom:10px}.auth-loading-shell__side{display:none}.auth-loading-shell__panel--primary{min-height:180px}}.login-screen{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{background:var(--surface);border:1px solid var(--line);text-align:center;border-radius:22px;flex-direction:column;align-items:center;gap:14px;width:min(360px,100%);padding:40px 32px 32px;display:flex;box-shadow:0 18px 50px #00000014}.login-icon{background:var(--accent-soft);width:52px;height:52px;color:var(--accent);border-radius:16px;justify-content:center;align-items:center;display:inline-flex}.login-card h1{margin:4px 0 0;font-size:1.5rem}.login-hint{color:var(--muted);font-size:var(--fs-base);margin:0}.login-card input{border:1px solid var(--line);background:var(--canvas);width:100%;color:var(--ink);border-radius:12px;outline:none;padding:11px 14px;transition:border-color .15s}.login-card input:focus{border-color:var(--accent)}.login-card .primary-button{justify-content:center;width:100%}.login-card .error-message{width:100%}@media (width<=768px){.notes-panel,.bookmark-panel{gap:12px}.note-composer textarea{min-height:122px;font-size:var(--fs-md)}.note-search{min-height:46px}.note-search input,.note-edit textarea,.login-card input{font-size:var(--fs-md)}.note-card{padding:12px}.note-confirm-delete,.note-modal-actions{justify-content:flex-end;width:100%}.note-action{width:36px;height:36px}.note-version-current-content,.note-version-detail-content,.note-version-diff-content,.note-version-time-list{max-height:none}.note-modal-edit .block-composer-input{min-height:200px}.note-version-restore{justify-content:center;width:100%;margin-left:0}.login-screen{min-height:100dvh;padding:16px}.login-card{border-radius:18px;gap:12px;padding:32px 20px 24px}.note-ai-meta div{grid-template-columns:1fr;gap:2px}.note-ai-actions{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.note-ai-actions .text-button{min-height:44px}.note-ai-apply{grid-column:1/-1}}@media (width<=380px){.app-shell{width:min(100% - 18px,1080px)}h1{font-size:var(--fs-xl)}.weather-card{padding:12px}.weather-week{padding-top:8px}.weather-day{padding:6px 2px}}.inbox-panel{background:var(--canvas);min-width:0;box-shadow:inset 0 0 0 1px var(--hairline-faint);border-radius:18px;flex-direction:column;gap:12px;margin:0 0 22px;padding:16px;display:flex}.inbox-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.inbox-title{align-items:center;gap:8px;min-width:0;display:flex}.inbox-title svg{color:var(--accent)}.inbox-title h2{font-size:var(--fs-md);margin:0;font-weight:600}.inbox-badge{background:var(--accent);min-width:22px;height:22px;color:var(--on-accent);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;border-radius:11px;justify-content:center;align-items:center;padding:0 7px;font-weight:600;display:inline-flex}.inbox-composer{flex-direction:column;gap:10px;display:flex}.slash-menu,.language-menu{left:10px;top:var(--composer-menu-top,calc(100% + 2px));z-index:20;background:var(--surface);width:min(320px,100% - 20px);max-height:280px;box-shadow:0 10px 30px #00000029, inset 0 0 0 1px var(--hairline);border-radius:12px;flex-direction:column;gap:2px;padding:6px;scroll-padding:6px;display:flex;position:absolute;overflow-y:auto}.language-menu{width:min(280px,100% - 20px)}.language-search{background:var(--canvas);min-height:34px;color:var(--ink);font-size:var(--fs-base);border-radius:8px;align-items:center;gap:8px;margin:0 2px 4px;padding:6px 10px;font-weight:500;display:flex}.language-search.is-empty{color:var(--faint)}.language-search-label{color:var(--faint);font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.04em;flex:none;font-weight:700}.language-search input{width:100%;min-width:0;color:var(--ink);font:inherit;background:0 0;border:0;outline:0}.language-search input::placeholder{color:var(--faint)}.language-search input{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.slash-group{color:var(--faint);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;padding:6px 10px 4px;font-weight:600}.slash-empty{color:var(--muted);font-size:var(--fs-base);margin:4px 10px 6px}.slash-item{width:100%;color:var(--ink);font-size:var(--fs-base);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;padding:7px 10px;display:flex}.slash-item.is-selected,.language-item.is-selected{background:var(--canvas)}.language-item.is-custom .language-label{font-weight:600}.language-item{width:100%;color:var(--ink);font-size:var(--fs-base);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;justify-content:space-between;align-items:center;gap:14px;padding:8px 10px;display:flex}.language-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.language-hint{color:var(--faint);font-family:ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace;font-size:var(--fs-xs);flex:none}.slash-icon{width:26px;height:26px;color:var(--muted);flex:none;justify-content:center;align-items:center;display:inline-flex}.slash-badge{font-size:var(--fs-2xs);color:var(--muted);font-weight:700}.slash-label{flex:auto;min-width:0}.slash-hint{color:var(--faint);font-size:var(--fs-sm);font-variant-numeric:tabular-nums}.slash-footer{border:0;border-top:1px solid var(--hairline);width:auto;color:var(--muted);font-size:var(--fs-sm);cursor:pointer;background:0 0;border-radius:0 0 12px 12px;justify-content:space-between;align-items:center;margin:4px -6px -6px;padding:9px 16px;display:flex}.slash-footer:hover{color:var(--ink)}.slash-footer kbd{background:var(--canvas);box-shadow:inset 0 0 0 1px var(--hairline-strong);font-family:inherit;font-size:var(--fs-xs);border-radius:5px;padding:1px 6px}@media (hover:none) and (width<=768px){.slash-menu,.language-menu{left:10px;right:10px;bottom:calc(max(10px, env(safe-area-inset-bottom)) + var(--kb-inset,0px));z-index:70;width:auto;max-height:min(280px,50vh);position:fixed;top:auto}.language-menu.rich-link-prompt{width:auto}}.inbox-composer-foot{justify-content:space-between;align-items:center;gap:12px;display:flex}.inbox-empty{color:var(--muted);font-size:var(--fs-base);text-align:center;margin:4px 0 2px}.inbox-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.inbox-card{background:var(--surface);box-shadow:inset 0 0 0 1px var(--hairline);border-radius:14px;padding:12px 14px}.inbox-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.inbox-meta{color:var(--faint);font-size:var(--fs-sm);align-items:center;gap:8px;display:inline-flex}.inbox-source{border-radius:var(--radius-pill);background:var(--canvas);color:var(--muted);font-style:normal;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.02em;padding:1px 7px}.inbox-actions{align-items:center;gap:6px;display:flex}.inbox-actions .text-button{align-items:center;gap:4px;display:inline-flex}.inbox-discard{color:var(--danger,var(--danger))}.security-modal{gap:18px;width:min(720px,100%)}.security-heading{align-items:flex-start}.security-heading h2,.security-section h3{margin:0}.security-eyebrow{color:var(--accent);font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;margin:0 0 4px;font-weight:700}.security-notice{border:1px solid color-mix(in srgb, var(--accent) 35%, var(--line));background:color-mix(in srgb, var(--accent) 7%, var(--surface));color:var(--ink);font-size:var(--fs-sm);border-radius:12px;padding:11px 13px}.security-section{border-top:1px solid var(--line);gap:12px;padding-top:18px;display:grid}.security-section-heading{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.security-section-heading h3{font-size:var(--fs-lg)}.security-section-heading p,.security-bootstrap p,.security-action-panel p{color:var(--muted);font-size:var(--fs-sm);margin:4px 0 0;line-height:1.5}.security-state,.current-device-badge,.pending-count{border-radius:var(--radius-pill);background:var(--canvas);color:var(--muted);font-size:var(--fs-xs);flex:none;align-items:center;gap:5px;padding:4px 9px;font-weight:600;display:inline-flex}.security-state.is-enabled,.current-device-badge{background:color-mix(in srgb, var(--accent) 10%, var(--surface));color:var(--accent)}.pending-count{background:color-mix(in srgb, #d88b28 14%, var(--surface));color:#9a5c0a;justify-content:center;min-width:25px}.security-bootstrap,.security-action-panel{border:1px solid color-mix(in srgb, var(--accent) 28%, var(--line));background:color-mix(in srgb, var(--accent) 5%, var(--surface));border-radius:14px;gap:10px;padding:14px;display:grid}.security-bootstrap.is-ready{grid-template-columns:1fr auto;align-items:center}.security-inline-form,.security-action-row{align-items:center;gap:8px;display:flex}.security-inline-form input,.approval-input{border:1px solid var(--line);background:var(--surface);min-width:0;color:var(--ink);font:inherit;border-radius:10px;outline:none;flex:1;padding:10px 12px}.security-inline-form input:focus,.approval-input:focus{border-color:var(--accent)}.device-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.device-item{border:1px solid var(--line);background:var(--canvas);border-radius:12px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px 12px;display:grid}.device-icon{color:var(--accent);display:inline-flex}.device-icon.is-pending{color:#b56e11}.device-copy{gap:3px;min-width:0;display:grid}.device-name-row{align-items:center;gap:7px;min-width:0;display:flex}.device-copy strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.device-copy>span{overflow-wrap:anywhere;color:var(--muted);font-size:var(--fs-xs);line-height:1.45}.device-actions{gap:2px;display:flex}.danger-action{color:var(--danger)}.approve-action{color:var(--accent)}.security-action-panel.is-danger{border-color:color-mix(in srgb, var(--danger) 30%, var(--line));background:color-mix(in srgb, var(--danger) 5%, var(--surface))}.security-secondary-action,.login-recovery-toggle{color:var(--muted);font:inherit;font-size:var(--fs-sm);cursor:pointer;background:0 0;border:0;justify-content:center;justify-self:start;align-items:center;gap:7px;display:inline-flex}.security-secondary-action:hover,.login-recovery-toggle:hover{color:var(--accent)}.approval-panel{justify-items:start}.approval-input{letter-spacing:.34em;text-align:center;flex:none;width:min(260px,100%);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.65rem;font-weight:700}.approval-card{text-align:center}.approval-card .security-eyebrow{margin-bottom:-8px}.approval-card .login-hint strong{color:var(--ink);display:inline}.approval-icon{background:color-mix(in srgb, var(--accent) 12%, var(--surface));color:var(--accent)}.approval-code{justify-content:center;gap:7px;margin:4px 0;display:flex}.approval-code span{border:1px solid color-mix(in srgb, var(--accent) 28%, var(--line));background:color-mix(in srgb, var(--accent) 6%, var(--surface));width:42px;height:54px;color:var(--ink);border-radius:10px;place-items:center;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.7rem;font-weight:700;display:grid}.approval-expiry{color:var(--muted);font-size:var(--fs-sm);margin:0;line-height:1.5}.login-recovery-toggle{justify-self:center;min-height:40px}.security-modal button:focus-visible,.security-modal input:focus-visible,.login-card button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.login-divider{width:100%;color:var(--muted);font-size:var(--fs-sm);align-items:center;gap:10px;display:flex}.login-divider:before,.login-divider:after{content:"";background:var(--line);flex:1;height:1px}.passkey-button{border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);width:100%;min-height:46px;color:var(--ink);font-size:var(--fs-md);justify-content:center;align-items:center;gap:8px;font-weight:500;transition:border-color .15s,color .15s;display:inline-flex}.passkey-button:hover{border-color:var(--accent);color:var(--accent)}.passkey-button:disabled{cursor:default;opacity:.5}.passkey-intro{color:var(--muted);font-size:var(--fs-base);margin:0;line-height:1.5}.passkey-empty{color:var(--muted);font-size:var(--fs-base);text-align:center;margin:0;padding:12px 0}.passkey-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.passkey-item{border:1px solid var(--line);background:var(--canvas);border-radius:12px;align-items:center;gap:10px;padding:10px 12px;display:flex}.passkey-item-icon{color:var(--accent);display:inline-flex}.passkey-item-copy{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.passkey-item-name{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.passkey-item-meta{color:var(--muted);font-size:var(--fs-sm)}.passkey-item-confirm{flex:none;align-items:center;gap:6px;display:inline-flex}.passkey-add{gap:10px;display:flex}.passkey-add input{border:1px solid var(--line);background:var(--canvas);min-width:0;color:var(--ink);border-radius:12px;outline:none;flex:1;padding:10px 14px;transition:border-color .15s}.passkey-add input:focus{border-color:var(--accent)}.passkey-add .primary-button{white-space:nowrap}.english-panel{gap:14px;min-width:0;display:grid}.english-composer{min-width:0;position:relative}.english-composer-input{background:var(--surface);width:100%;min-height:104px;box-shadow:inset 0 0 0 1px var(--hairline);color:var(--ink);font:inherit;resize:vertical;border:0;border-radius:14px;outline:none;padding:14px 16px 52px;line-height:1.6;display:block}.english-composer-input:focus{box-shadow:inset 0 0 0 2px var(--accent)}.english-composer-input::placeholder{color:var(--muted);opacity:.55}.english-error{margin:0}.english-toolbar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.english-vocab-open{border:1px solid color-mix(in srgb, var(--accent) 30%, var(--line));border-radius:var(--radius-pill);background:color-mix(in srgb, var(--accent) 8%, var(--surface));color:var(--accent);font:inherit;font-size:var(--fs-base);cursor:pointer;align-items:center;gap:6px;margin-right:auto;padding:6px 13px;font-weight:600;transition:background .15s,border-color .15s;display:inline-flex}.english-vocab-open:hover{background:color-mix(in srgb, var(--accent) 16%, var(--surface));border-color:color-mix(in srgb, var(--accent) 45%, var(--line))}.english-voice-select{font-size:var(--fs-sm);color:var(--muted);align-items:center;gap:6px;display:inline-flex}.english-voice-select select{border:1px solid var(--hairline-strong);background:var(--surface);color:var(--ink);font:inherit;font-size:var(--fs-sm);cursor:pointer;border-radius:8px;padding:5px 8px}.english-voice-label{white-space:nowrap}.english-feed{gap:10px;min-width:0;display:grid}.english-empty{min-height:180px}.english-entry{background:var(--canvas);box-shadow:inset 0 0 0 1px var(--hairline);border-radius:14px;gap:8px;padding:14px;transition:box-shadow .15s;display:grid}.english-entry.is-active{box-shadow:inset 0 0 0 1.5px color-mix(in srgb, var(--accent) 55%, transparent), 0 6px 18px color-mix(in srgb, var(--accent) 8%, transparent)}.english-entry-foot{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.english-entry-date{color:var(--muted);font-size:var(--fs-sm);margin-right:auto}.english-line-actions{vertical-align:middle;align-items:center;gap:4px;margin:0 6px;display:inline-flex}.english-line-actions .icon-button{width:28px;height:28px;color:var(--muted);flex:0 0 28px}.english-line-actions .icon-button:hover:not(:disabled),.english-play.is-playing,.english-copy.is-copied{color:var(--accent)}.english-entry.is-pending{opacity:.85;outline:1px dashed color-mix(in srgb, var(--accent) 32%, var(--line));outline-offset:-1px}.english-line{word-break:break-word;margin:0;line-height:1.7}.english-sentence{color:var(--ink);font-size:var(--fs-md)}.english-token{color:inherit;font:inherit;line-height:inherit;cursor:pointer;background:0 0;border:0;border-radius:5px;padding:1px 3px;display:inline}.english-token:hover,.english-token.is-active{background:color-mix(in srgb, var(--accent) 14%, transparent);color:var(--accent)}.english-token.is-saved{color:var(--accent);background:color-mix(in srgb, var(--accent) 9%, transparent);box-shadow:inset 0 -2px 0 color-mix(in srgb, var(--accent) 45%, transparent)}.english-token.is-saved:hover,.english-token.is-saved.is-active{background:color-mix(in srgb, var(--accent) 18%, transparent)}.english-translation{color:var(--muted);font-size:var(--fs-base)}.english-translation:before{content:"·";color:var(--hairline-strong);margin:0 8px}.english-hit{background:color-mix(in srgb, var(--accent) 26%, transparent);color:inherit;border-radius:3px;padding:0 1px}.english-saved-words{flex-wrap:wrap;align-items:flex-start;gap:6px;margin:0;padding:0;list-style:none;display:flex}.english-saved-word{background:color-mix(in srgb, var(--accent) 8%, var(--surface));max-width:100%;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 18%, var(--hairline));font-size:var(--fs-sm);border-radius:14px;flex-direction:column;align-items:flex-start;gap:2px;padding:5px 12px;line-height:1.45;display:inline-flex}.english-saved-head{align-items:center;gap:6px;max-width:100%;display:inline-flex}.english-saved-word b{color:var(--accent);font-weight:600}.english-saved-phonetic{color:var(--muted);font-size:var(--fs-sm)}.english-saved-play{width:22px;height:22px;color:var(--muted);background:0 0;flex:0 0 22px}.english-saved-play:hover:not(:disabled){color:var(--accent);background:var(--control-wash)}.english-saved-play.is-playing{color:var(--accent)}.english-saved-lemma{color:var(--muted);font-size:var(--fs-sm)}.english-saved-lemma b{color:var(--accent);font-weight:600}.english-saved-gloss{color:var(--ink)}.english-delete{color:var(--muted)}.english-confirm-delete{font-size:var(--fs-sm);color:var(--ink);align-items:center;gap:6px;display:inline-flex}.english-confirm-delete .text-button{min-height:28px;font-size:var(--fs-sm);padding:0 12px}.english-confirm-yes{background:var(--danger-vivid);color:var(--on-accent);font-weight:600}.english-confirm-yes:hover{background:var(--danger-vivid-hover)}.english-load-more{border:1px dashed var(--hairline-strong);color:var(--muted);font:inherit;cursor:pointer;background:0 0;border-radius:14px;justify-self:stretch;padding:10px 12px;transition:border-color .15s,color .15s}.english-load-more:hover:not(:disabled){border-color:color-mix(in srgb, var(--accent) 48%, var(--line));color:var(--accent)}.english-load-more:disabled{cursor:default;opacity:.7}.english-word-card{background:color-mix(in srgb, var(--accent) 5%, var(--surface));min-width:0;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 16%, var(--hairline));border-radius:12px;gap:10px;margin-top:2px;padding:12px 14px;animation:.18s english-card-in;display:grid}@keyframes english-card-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.english-word-card{animation:none}}.english-context-example{background:color-mix(in srgb, var(--accent) 6%, var(--surface));border-left:2px solid color-mix(in srgb, var(--accent) 40%, var(--hairline));border-radius:10px;gap:4px;padding:8px 10px;display:grid}.english-context-label{color:var(--accent);font-size:var(--fs-xs);font-weight:600}.english-context-sentence{color:var(--ink);font-size:var(--fs-base);margin:0;line-height:1.5}.english-context-translation{color:var(--muted);font-size:var(--fs-base);margin:0;line-height:1.45}.english-word-card-head{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.english-word-headings{min-width:0}.english-word-actions{flex:none;align-items:center;gap:6px;display:inline-flex}.english-save-toggle{border:1px solid color-mix(in srgb, var(--accent) 30%, var(--line));border-radius:var(--radius-pill);background:color-mix(in srgb, var(--accent) 8%, var(--surface));color:var(--accent);font:inherit;font-size:var(--fs-sm);white-space:nowrap;cursor:pointer;align-items:center;gap:5px;padding:5px 11px;font-weight:600;transition:background .15s,border-color .15s;display:inline-flex}.english-save-toggle:hover:not(:disabled),.english-save-toggle.is-saved{background:color-mix(in srgb, var(--accent) 16%, var(--surface));border-color:color-mix(in srgb, var(--accent) 45%, var(--line))}.english-save-toggle:disabled{opacity:.6;cursor:default}.english-word-close{width:30px;height:30px;color:var(--muted);flex:none}.english-word-card h2{font-size:var(--fs-xl);overflow-wrap:anywhere;margin:0;line-height:1.15}.english-speech{border:1px solid color-mix(in srgb, var(--accent) 28%, var(--line));background:color-mix(in srgb, var(--accent) 10%, var(--surface));width:30px;height:30px;color:var(--accent);cursor:pointer;border-radius:50%;flex:0 0 30px;justify-content:center;align-items:center;display:inline-flex}.english-speech:disabled{opacity:.45;cursor:default}.english-speech.is-playing{box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 15%, transparent)}.english-phonetics{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.english-phonetic{border:1px solid var(--hairline-strong);border-radius:var(--radius-pill);color:var(--muted);font-size:var(--fs-sm);align-items:center;gap:8px;padding:4px 6px 4px 12px;display:inline-flex}.english-phonetic-label{color:var(--accent);font-weight:600}.english-word-translation{color:var(--ink);font-size:var(--fs-md);margin:0;line-height:1.55}.english-explains{color:var(--muted);gap:7px;margin:0;padding-left:18px;line-height:1.5;display:grid}.english-lemma-note{font-size:var(--fs-sm);color:var(--muted);margin:2px 0 0}.english-lemma-note b{color:var(--accent);font-weight:600}.english-senses{gap:10px;margin:0;padding:0;list-style:none;display:grid}.english-sense{gap:4px;display:grid}.english-sense-def{align-items:baseline;gap:6px;margin:0;line-height:1.5;display:flex}.english-sense-pos{color:var(--accent);font-weight:600;font-size:var(--fs-sm);flex:none}.english-sense-example{border-left:2px solid var(--hairline);font-size:var(--fs-base);gap:2px;margin:0;padding-left:10px;display:grid}.english-example-zh{color:var(--muted)}.english-pron-guide{gap:8px;display:grid}.english-pron-toggle{color:var(--accent);font:inherit;font-size:var(--fs-sm);cursor:pointer;background:0 0;border:0;justify-self:start;align-items:center;gap:4px;padding:0;font-weight:600;display:inline-flex}.english-pron-caret{transition:transform .15s}.english-pron-toggle[aria-expanded=true] .english-pron-caret{transform:rotate(90deg)}@media (prefers-reduced-motion:reduce){.english-pron-caret{transition:none}}.english-pron-body{background:color-mix(in srgb, var(--accent) 4%, var(--surface));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 12%, var(--hairline));border-radius:10px;gap:10px;padding:10px 12px;display:grid}.english-pron-subhead{color:var(--accent);font-size:var(--fs-xs);font-weight:600}.english-pron-stress{flex-wrap:wrap;align-items:baseline;gap:8px;margin:0;display:flex}.english-pron-stress-value{color:var(--ink);font-size:var(--fs-md);letter-spacing:.02em;font-weight:600}.english-syllable-table{border-collapse:collapse;width:100%;font-size:var(--fs-sm);line-height:1.45}.english-syllable-table th,.english-syllable-table td{text-align:left;border-bottom:1px solid var(--hairline);vertical-align:top;overflow-wrap:anywhere;padding:5px 6px}.english-syllable-table th{color:var(--muted);font-size:var(--fs-xs);font-weight:600}.english-syllable-table tbody tr:last-child td{border-bottom:0}.english-syllable-text{font-weight:600}.english-syllable-table tr.is-stressed .english-syllable-text{color:var(--accent);font-weight:700}.english-syllable-ipa{color:var(--muted)}.english-syllable-stress{white-space:nowrap;color:var(--muted)}.english-pron-mistakes{gap:4px;display:grid}.english-pron-mistakes ul{color:var(--ink);font-size:var(--fs-base);gap:4px;margin:0;padding-left:18px;line-height:1.5;display:grid}.english-pron-homophone{flex-wrap:wrap;align-items:baseline;gap:8px;margin:0;display:flex}.english-pron-homophone-value{color:var(--ink);font-size:var(--fs-base);font-weight:600}.english-pron-homophone-note{color:var(--muted);font-size:var(--fs-xs)}.english-workspace{gap:14px;min-width:0;display:grid}.english-subnav{border-radius:var(--radius-pill);background:color-mix(in srgb, var(--accent) 6%, var(--surface));box-shadow:inset 0 0 0 1px var(--hairline);justify-self:start;gap:4px;padding:3px;display:inline-flex}.english-subnav-tab{border-radius:var(--radius-pill);color:var(--muted);font:inherit;font-size:var(--fs-sm);cursor:pointer;background:0 0;border:0;padding:5px 16px;font-weight:600;transition:background .15s,color .15s}.english-subnav-tab:hover{color:var(--ink)}.english-subnav-tab.is-active{background:var(--surface);color:var(--accent);box-shadow:0 1px 3px color-mix(in srgb, var(--accent) 14%, transparent)}.speaking-coach{gap:14px;min-width:0;display:grid}.speaking-intro{color:var(--muted);font-size:var(--fs-base);margin:0;line-height:1.6}.speaking-free-start{background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 16%, var(--canvas)), color-mix(in srgb, var(--accent) 6%, var(--canvas)));width:100%;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 32%, transparent);text-align:left;cursor:pointer;border:0;border-radius:16px;align-items:center;gap:12px;padding:16px 18px;transition:box-shadow .15s,transform .12s;display:flex}.speaking-free-start:hover:not(:disabled){box-shadow:inset 0 0 0 1.5px color-mix(in srgb, var(--accent) 55%, transparent), 0 8px 22px color-mix(in srgb, var(--accent) 12%, transparent);transform:translateY(-1px)}.speaking-free-start:disabled{opacity:.6;cursor:default}.speaking-free-icon{background:var(--accent);color:#fff;border-radius:12px;flex:none;justify-content:center;align-items:center;width:40px;height:40px;display:inline-flex}.speaking-free-text{flex:auto;gap:3px;min-width:0;display:grid}.speaking-free-title{color:var(--ink);font-size:var(--fs-lg);font-weight:600}.speaking-free-desc{color:var(--muted);font-size:var(--fs-sm);line-height:1.5}.speaking-free-arrow{color:var(--accent);flex:none}.speaking-scenario-head{color:var(--muted);font-size:var(--fs-sm);margin:4px 0 0;font-weight:600}.speaking-scenario-grid{grid-template-columns:repeat(auto-fill,minmax(min(240px,100%),1fr));gap:10px;display:grid}.speaking-scenario-card{background:var(--canvas);box-shadow:inset 0 0 0 1px var(--hairline);text-align:left;cursor:pointer;border:0;border-radius:14px;gap:6px;padding:14px 16px;transition:box-shadow .15s,transform .12s;display:grid}.speaking-scenario-card:hover:not(:disabled){box-shadow:inset 0 0 0 1.5px color-mix(in srgb, var(--accent) 45%, transparent), 0 6px 18px color-mix(in srgb, var(--accent) 8%, transparent);transform:translateY(-1px)}.speaking-scenario-card:disabled{opacity:.6;cursor:default}.speaking-scenario-label{color:var(--ink);font-size:var(--fs-lg);font-weight:600}.speaking-scenario-desc{color:var(--muted);font-size:var(--fs-sm);line-height:1.5}.speaking-history{gap:8px;margin-top:4px;display:grid}.speaking-history-head{color:var(--muted);font-size:var(--fs-sm);margin:0;font-weight:600}.speaking-history-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.speaking-history-item{background:var(--canvas);box-shadow:inset 0 0 0 1px var(--hairline);border-radius:10px;align-items:center;gap:6px;padding:4px 6px 4px 4px;display:flex}.speaking-history-open{min-width:0;color:var(--ink);font:inherit;font-size:var(--fs-sm);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;flex:auto;align-items:center;gap:8px;padding:6px 8px;display:flex}.speaking-history-open:hover{color:var(--accent)}.speaking-history-open svg{color:var(--muted);flex:none}.speaking-history-title{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.speaking-history-date{color:var(--muted);font-size:var(--fs-xs);white-space:nowrap;margin-left:auto}.speaking-history-delete{width:30px;height:30px;color:var(--muted);flex:0 0 30px}.speaking-history-delete:hover{color:var(--danger,#d4483b)}.speaking-confirm-delete{font-size:var(--fs-sm);align-items:center;gap:8px;padding-right:4px;display:inline-flex}.speaking-coach--active{gap:10px}.speaking-topbar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.speaking-back{border:1px solid var(--hairline-strong);border-radius:var(--radius-pill);background:var(--surface);color:var(--muted);font:inherit;font-size:var(--fs-sm);cursor:pointer;align-items:center;gap:4px;padding:5px 12px;transition:color .15s,border-color .15s;display:inline-flex}.speaking-back:hover{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 45%, var(--line))}.speaking-scenario-tag{color:var(--accent);font-size:var(--fs-base);align-items:center;gap:5px;font-weight:600;display:inline-flex}.speaking-topbar-actions{align-items:center;gap:8px;margin-left:auto;display:inline-flex}.speaking-mute{width:32px;height:32px;color:var(--muted);flex:0 0 32px}.speaking-mute:hover{color:var(--accent)}.speaking-mute.is-muted{color:var(--danger,#d4483b)}.speaking-handsfree{width:32px;height:32px;color:var(--muted);flex:0 0 32px}.speaking-handsfree:hover{color:var(--accent)}.speaking-handsfree.is-active{color:#fff;background:var(--accent)}.speaking-feed{overscroll-behavior:contain;flex-direction:column;gap:12px;min-height:240px;max-height:52vh;padding:4px 2px;display:flex;overflow-y:auto}.speaking-feed-empty{color:var(--muted);font-size:var(--fs-base);text-align:center;margin:auto;padding:24px 12px}.speaking-turn{flex-direction:column;gap:6px;max-width:82%;display:flex}.speaking-turn.is-user{align-self:flex-end;align-items:flex-end}.speaking-turn.is-assistant{align-self:flex-start;align-items:flex-start}.speaking-bubble{word-break:break-word;border-radius:16px;align-items:flex-end;gap:8px;padding:10px 14px;line-height:1.6;display:inline-flex}.speaking-turn.is-user .speaking-bubble{background:var(--accent);color:#fff;border-bottom-right-radius:5px}.speaking-turn.is-assistant .speaking-bubble{background:var(--canvas);color:var(--ink);box-shadow:inset 0 0 0 1px var(--hairline);border-bottom-left-radius:5px}.speaking-bubble-text{margin:0}.speaking-bubble--thinking{color:var(--muted);font-size:var(--fs-sm);align-items:center;gap:8px}.speaking-replay{width:24px;height:24px;color:color-mix(in srgb, currentColor 65%, transparent);cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;justify-content:center;align-items:center;transition:color .15s;display:inline-flex}.speaking-turn.is-assistant .speaking-replay:hover,.speaking-turn.is-assistant .speaking-replay.is-playing{color:var(--accent)}.speaking-spin{animation:.9s linear infinite speaking-spin}@keyframes speaking-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.speaking-spin{animation:none}}.speaking-corrections{width:100%;padding-left:4px}.speaking-corrections-toggle{border:1px solid color-mix(in srgb, var(--accent) 26%, var(--line));border-radius:var(--radius-pill);background:color-mix(in srgb, var(--accent) 7%, var(--surface));color:var(--accent);font:inherit;font-size:var(--fs-xs);cursor:pointer;align-items:center;gap:4px;padding:3px 8px;font-weight:600;display:inline-flex}.speaking-corrections-caret{transition:transform .15s}.speaking-corrections-toggle[aria-expanded=true] .speaking-corrections-caret{transform:rotate(90deg)}@media (prefers-reduced-motion:reduce){.speaking-corrections-caret{transition:none}}.speaking-corrections-list{border-left:3px solid color-mix(in srgb, var(--accent) 45%, transparent);background:color-mix(in srgb, var(--accent) 5%, var(--surface));border-radius:12px;gap:8px;margin:8px 0 0;padding:10px 12px;list-style:none;display:grid}.speaking-correction{gap:3px;display:grid}.speaking-correction-diff{font-size:var(--fs-sm);margin:0;line-height:1.55}.speaking-correction-original{color:var(--muted);text-decoration:line-through;-webkit-text-decoration-color:color-mix(in srgb, var(--danger,#d4483b) 60%, transparent);text-decoration-color:color-mix(in srgb, var(--danger,#d4483b) 60%, transparent)}.speaking-correction-arrow{color:var(--muted);margin:0 6px}.speaking-correction-fixed{color:var(--ink);font-weight:600}.speaking-correction-note{color:var(--muted);font-size:var(--fs-xs);margin:0;line-height:1.5}.speaking-error{justify-content:space-between;align-items:center;gap:12px;display:flex}.speaking-composer{gap:8px;display:grid}.speaking-live{background:color-mix(in srgb, var(--accent) 8%, var(--surface));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 22%, var(--hairline));border-radius:12px;align-items:baseline;gap:8px;padding:8px 12px;display:flex}.speaking-live-status{color:var(--accent);font-size:var(--fs-xs);white-space:nowrap;flex:none;font-weight:600}.speaking-live-text{color:var(--ink);font-size:var(--fs-sm);line-height:1.5}.speaking-composer-row{align-items:flex-end;gap:8px;display:flex}.speaking-mic{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:50%;flex:none;justify-content:center;align-items:center;width:46px;height:46px;transition:background .15s,transform .12s;display:inline-flex}.speaking-mic:hover:not(:disabled){transform:scale(1.05)}.speaking-mic:disabled{opacity:.55;cursor:default}.speaking-mic.is-loading{background:var(--muted)}.speaking-mic.is-recording{background:var(--danger,#d4483b);animation:1.4s ease-out infinite speaking-pulse}@keyframes speaking-pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--danger,#d4483b) 55%, transparent)}70%{box-shadow:0 0 0 12px color-mix(in srgb, var(--danger,#d4483b) 0%, transparent)}to{box-shadow:0 0 0 0 color-mix(in srgb, var(--danger,#d4483b) 0%, transparent)}}@media (prefers-reduced-motion:reduce){.speaking-mic.is-recording{animation:none}}.speaking-text-input{background:var(--surface);min-width:0;min-height:46px;max-height:168px;box-shadow:inset 0 0 0 1px var(--hairline);color:var(--ink);font:inherit;resize:none;border:0;border-radius:16px;outline:none;flex:auto;padding:12px 14px;line-height:1.5;overflow-y:auto}.speaking-text-input:focus{box-shadow:inset 0 0 0 2px var(--accent)}.speaking-text-input:disabled{opacity:.6}.speaking-send{width:42px;height:42px;color:var(--accent);flex:0 0 42px}.speaking-send:disabled{color:var(--muted)}@media (width<=768px){.speaking-feed{max-height:58vh}.speaking-turn{max-width:88%}.english-entry{padding:12px}.english-composer-input{min-height:92px;padding:12px 14px 48px}.english-translation{font-size:var(--fs-base);margin-top:5px;display:block}.english-translation:before{content:none}.english-word-card{padding:12px}.english-word-card h2{font-size:var(--fs-xl)}.english-syllable-table{font-size:var(--fs-sm)}.english-syllable-table th,.english-syllable-table td{padding:4px}.workout-panel{border-radius:16px;gap:14px;padding:14px}.workout-head{flex-direction:column;align-items:flex-start}.workout-head-actions{width:100%}.wk-new-btn,.wk-body-btn{flex:1 1 0;justify-content:center;width:100%}.workout-modal{border-radius:18px;width:100%;max-height:calc(100dvh - 20px);padding:18px 14px}.workout-calendar{padding:12px}.weight-trend-card{border-radius:16px;padding:12px 10px 6px}.weight-trend-range{padding:4px 10px}.workout-calendar-desktop{display:none}.workout-calendar-mobile{gap:14px;min-width:0;display:grid}.workout-calendar-day{min-height:96px;padding:7px}.wk-theme-chip{flex:calc(50% - 8px);justify-content:center}.wk-ex-chips{gap:5px}.wk-ex-chip{flex:auto;justify-content:center}.wk-ex-card{padding:10px 12px}.wk-ex-card-action{padding:6px 7px}.workout-modal-actions{flex-direction:column-reverse;align-items:stretch;gap:8px}.workout-modal-danger-actions,.workout-modal-main-actions{flex-direction:column-reverse;align-items:stretch;gap:8px;width:100%;display:flex}.workout-modal-actions .text-button,.workout-modal-actions .primary-button{justify-content:center;width:100%}input,textarea,select,.wk-input,.block-composer-input,.tm-edit-input,.tm-add-input{font-size:var(--fs-md)}button,a,[role=button]{touch-action:manipulation}.app-header__nav-link,.app-header__logout,.app-header__icon-button,.sort-switch button,.weather-switch button,.weather-retry,.primary-button,.bookmark-create-button,.text-button,.icon-button,.edit-link,.note-action,.note-version-restore,.mobile-cal-cell,.wk-date-chip,.wk-theme-chip,.wk-ex-chip,.wk-manage-btn,.wk-add-ex,.wk-ex-card-action,.workout-modal-actions .text-button,.workout-modal-actions .primary-button,.tm-row-actions button,.tm-confirm-delete button,.tm-add-btn,.inbox-actions .text-button{min-height:44px}.app-header__icon-button,.icon-button,.edit-link,.note-action{min-width:44px}.app-header__icon-button,.icon-button,.note-action{flex-basis:44px;width:44px;height:44px}.profile-quote-action{flex-basis:36px;width:36px;height:36px;position:relative}.profile-quote-action:after{content:"";position:absolute;inset:-4px}.note-search-clear{flex-basis:32px;width:32px;height:32px}.note-search-clear:after{content:"";position:absolute;inset:-6px}.passkey-add{flex-direction:column}.passkey-add input{font-size:var(--fs-md)}.security-section-heading,.security-bootstrap.is-ready{flex-direction:column;grid-template-columns:1fr}.security-inline-form,.security-action-row{flex-direction:column;align-items:stretch}.security-inline-form .primary-button,.security-action-row .primary-button,.security-action-row .confirm-delete-yes{width:100%;min-height:44px}.device-item{align-items:start}.device-actions .icon-button{width:44px;height:44px}.approval-code{gap:4px}.approval-code span{width:min(40px,12vw);height:50px}}@media (prefers-reduced-motion:reduce){.security-modal,.security-modal *{scroll-behavior:auto;transition-duration:.01ms!important;animation-duration:.01ms!important}}.auto-trust-toast{z-index:60;border:1px solid color-mix(in srgb, var(--accent) 35%, var(--line));background:color-mix(in srgb, var(--accent) 8%, var(--surface));max-width:min(92vw,480px);color:var(--ink);font-size:var(--fs-sm);border-radius:12px;align-items:center;gap:8px;padding:10px 12px;display:flex;position:fixed;top:14px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #0000001f}.auto-trust-toast-close{color:var(--muted);font-size:var(--fs-lg);cursor:pointer;background:0 0;border:none;padding:0 2px;line-height:1}.app-mobile-nav,.app-mobile-more{display:none}@media (width<=768px){.app-shell,.shell .content{padding-bottom:calc(72px + env(safe-area-inset-bottom))}html,.shell .content{scroll-padding-bottom:calc(88px + env(safe-area-inset-bottom))}:focus{scroll-margin-bottom:calc(88px + env(safe-area-inset-bottom))}.app-header{flex-wrap:nowrap;align-items:center;gap:10px}.app-header__title{flex:auto;min-width:0}.app-header__side{flex-wrap:nowrap;flex:none;justify-content:flex-end;gap:6px;width:auto}.app-header__nav,.app-header__logout{display:none}.app-header__icon-button{flex:0 0 44px;width:44px;min-width:44px;height:44px;min-height:44px;padding:0}.app-mobile-nav{z-index:45;padding:4px max(4px, env(safe-area-inset-right)) calc(4px + env(safe-area-inset-bottom)) max(4px, env(safe-area-inset-left));border-top:1px solid var(--hairline);background:color-mix(in srgb, var(--surface) 94%, transparent);-webkit-backdrop-filter:saturate(140%)blur(18px);backdrop-filter:saturate(140%)blur(18px);grid-template-columns:repeat(5,minmax(0,1fr));transition:transform .22s;display:grid;position:fixed;bottom:0;left:0;right:0}.app-mobile-nav.is-hidden{transform:translateY(100%)}@media (prefers-reduced-motion:reduce){.app-mobile-nav{transition:none}}.app-mobile-nav__link{min-width:0;min-height:48px;color:var(--muted);text-align:center;background:0 0;border:0;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:4px 2px;font-size:.75rem;font-weight:600;line-height:1.15;text-decoration:none;display:flex;position:relative}.app-mobile-nav__link.is-active{background:var(--accent-soft);color:var(--accent)}.app-mobile-nav__label{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.app-mobile-nav__badge{background:var(--danger);min-width:16px;height:16px;color:var(--on-accent);font-variant-numeric:tabular-nums;border-radius:999px;justify-content:center;align-items:center;padding:0 4px;font-size:.62rem;font-weight:700;line-height:1;display:inline-flex;position:absolute;top:3px;right:clamp(7px,18%,20px)}.app-mobile-nav__badge.is-dot{width:8px;min-width:8px;height:8px;padding:0}.app-mobile-more{z-index:46;background:#0f172a52;flex-direction:column;justify-content:flex-end;display:flex;position:fixed;inset:0}.app-mobile-more__sheet{padding:16px 16px calc(72px + env(safe-area-inset-bottom));background:var(--surface);border-radius:18px 18px 0 0;flex-direction:column;gap:10px;display:flex;box-shadow:0 -12px 32px #00000024}.app-mobile-more__grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.app-mobile-more__item{background:var(--surface-raised,var(--surface));min-height:64px;box-shadow:inset 0 0 0 1px var(--hairline);color:var(--ink);border:0;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:8px 4px;font-size:.8rem;font-weight:600;text-decoration:none;display:flex}.app-mobile-more__item.is-active{background:var(--accent-soft);box-shadow:none;color:var(--accent)}.app-mobile-more__logout{min-height:44px;box-shadow:inset 0 0 0 1px var(--hairline);color:var(--danger);background:0 0;border:0;border-radius:12px;justify-content:center;align-items:center;gap:6px;font-size:.85rem;font-weight:600;display:inline-flex}}
