:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--font-sans:-apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-display:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", Roboto, sans-serif;--text-xs:.8125rem;--text-sm:.9375rem;--text-base:1.0625rem;--text-lg:1.25rem;--text-xl:1.5rem;--text-2xl:2rem;--text-3xl:2.5rem;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--radius-sm:10px;--radius-md:16px;--radius-lg:22px;--radius-pill:999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-8:48px;--page-max:600px;--gutter:20px;--ease-spring:cubic-bezier(.22, 1, .36, 1);--dur-fast:.16s;--dur-flip:.46s;--bg:#f5f5f7;--surface:#fff;--surface-2:#ececf0;--text:#1d1d1f;--text-muted:#6e6e73;--border:#0000001a;--accent:#0071e3;--accent-text:#fff;--shadow-card:0 4px 24px #00000014, 0 1px 3px #0000000f;--grade-hard:#d70015;--grade-medium:#b25000;--grade-easy:#1a7f37;--pair-1:#0a6cff;--pair-2:#c25e00;--pair-3:#1a7f37;--pair-4:#8944d6;--pair-5:#c81d54;--pair-6:#0f7c8c;--pair-7:#9a6b00;--pair-8:#7a5c3e}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}:root:not([data-theme=light]){--bg:#000;--surface:#1c1c1e;--surface-2:#2c2c2e;--text:#f5f5f7;--text-muted:#98989d;--border:#ffffff29;--accent:#0a84ff;--accent-text:#fff;--shadow-card:0 12px 48px #0000008c;--grade-hard:#ff6961;--grade-medium:#ffb340;--grade-easy:#30d158;--pair-1:#64a8ff;--pair-2:#ff9f5a;--pair-3:#4fd07a;--pair-4:#c08bff;--pair-5:#ff6f9a;--pair-6:#56c7d6;--pair-7:#e0b34a;--pair-8:#c79e78}}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#000;--surface:#1c1c1e;--surface-2:#2c2c2e;--text:#f5f5f7;--text-muted:#98989d;--border:#ffffff29;--accent:#0a84ff;--accent-text:#fff;--shadow-card:0 12px 48px #0000008c;--grade-hard:#ff6961;--grade-medium:#ffb340;--grade-easy:#30d158;--pair-1:#64a8ff;--pair-2:#ff9f5a;--pair-3:#4fd07a;--pair-4:#c08bff;--pair-5:#ff6f9a;--pair-6:#56c7d6;--pair-7:#e0b34a;--pair-8:#c79e78}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);font-size:var(--text-base);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;line-height:1.5}#app{height:100dvh}button,a{touch-action:manipulation;-webkit-tap-highlight-color:transparent}:where(button,a):focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app-shell{max-width:calc(var(--page-max) + 2 * var(--gutter));padding-inline:env(safe-area-inset-left) env(safe-area-inset-right);flex-direction:column;height:100dvh;margin:0 auto;display:flex;overflow:hidden}.topbar{padding:calc(env(safe-area-inset-top) + var(--space-3)) 0 var(--space-3);padding-inline:max(var(--gutter), calc((100% - var(--page-max)) / 2));flex-shrink:0}.brand-customer{font-family:var(--font-display);font-weight:var(--weight-bold);font-size:var(--text-lg);color:var(--text);letter-spacing:-.01em}.brand-product{font-weight:var(--weight-regular);font-size:var(--text-sm);color:var(--text-muted)}.screen{-webkit-overflow-scrolling:touch;min-height:0;padding:0 0 var(--space-4);padding-inline:var(--gutter);flex-direction:column;flex:1;display:flex;overflow-y:auto}.view{gap:var(--space-4);padding-top:var(--space-2);flex-direction:column;flex:1;display:flex}.view-title{text-wrap:balance;font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--weight-bold);letter-spacing:-.02em}.tabbar{border-top:1px solid var(--border);background:var(--bg);padding-bottom:env(safe-area-inset-bottom);padding-inline:max(var(--gutter), calc((100% - var(--page-max)) / 2));flex-shrink:0;display:flex}.tab{padding:var(--space-2) 0 var(--space-1);font-size:11px;font-weight:var(--weight-medium);color:var(--text-muted);-webkit-tap-highlight-color:transparent;flex-direction:column;flex:1;align-items:center;gap:2px;text-decoration:none;display:flex}.tab--on{color:var(--accent)}.study{gap:var(--space-4);padding-top:var(--space-2);flex-direction:column;flex:1;display:flex}.study-head{font-size:var(--text-sm);color:var(--text-muted);justify-content:space-between;align-items:center;display:flex}.study-meta{align-items:center;gap:var(--space-2);display:flex}.dir-chip{font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.02em;padding:2px var(--space-2);border-radius:var(--radius-pill);white-space:nowrap}.dir-chip--pl-de{background:var(--surface-2);color:var(--text-muted)}.dir-chip--de-pl{background:color-mix(in srgb, var(--accent) 16%, transparent);color:var(--accent)}.flashcard{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-6) var(--space-5);gap:var(--space-5);flex-direction:column;flex:1;min-height:min(52vh,460px);display:flex}.sentence-row{align-items:flex-start;gap:var(--space-3);display:flex}.card-controls{align-items:center;gap:var(--space-2);flex-direction:column;flex-shrink:0;display:flex}.speed-btn{appearance:none;border:1px solid var(--border);background:var(--surface-2);color:var(--text-muted);border-radius:var(--radius-pill);min-width:44px;height:26px;padding:0 var(--space-2);font:inherit;font-size:var(--text-xs);font-weight:var(--weight-semibold);cursor:pointer;transition:transform var(--dur-fast) var(--ease-spring)}.speed-btn:active{transform:scale(.92)}.sentence{font-family:var(--font-display);font-size:var(--text-2xl);letter-spacing:-.01em;flex:1;line-height:1.35}.sentence-back{font-size:var(--text-xl);color:var(--text)}.flashcard-mid{flex-direction:column;flex:1;justify-content:center;align-items:center;display:flex}.flashcard-mid--revealed{justify-content:flex-start;align-items:stretch}.divider{background:var(--border);width:100%;height:1px;margin-bottom:var(--space-5)}.token{white-space:pre}.reveal-btn{appearance:none;border:1px solid var(--border);background:var(--surface-2);color:var(--accent);border-radius:var(--radius-pill);padding:var(--space-3) var(--space-5);font:inherit;font-weight:var(--weight-semibold);cursor:pointer;transition:transform var(--dur-fast) var(--ease-spring)}.reveal-btn:active{transform:scale(.97)}.grade-bar{gap:var(--space-3);grid-template-columns:repeat(3,1fr);display:grid}.grade-btn{appearance:none;border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-md);padding:var(--space-3) var(--space-2);font:inherit;color:var(--text);cursor:pointer;transition:transform var(--dur-fast) var(--ease-spring);flex-direction:column;align-items:center;gap:2px;display:flex}.grade-btn:active{transform:scale(.96)}.grade-btn[disabled]{opacity:.4;cursor:default}.grade-label{font-size:var(--text-base);font-weight:var(--weight-semibold)}.grade-eta{font-size:var(--text-xs);color:var(--text-muted)}.grade-btn[data-grade=easy] .grade-label{color:var(--grade-easy)}.grade-btn[data-grade=medium] .grade-label{color:var(--grade-medium)}.grade-btn[data-grade=hard] .grade-label{color:var(--grade-hard)}.done-card{text-align:center;background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-8) var(--space-5)}.done-check{width:56px;height:56px;margin:0 auto var(--space-4);border-radius:var(--radius-pill);background:var(--grade-easy);color:#fff;font-size:var(--text-xl);justify-content:center;align-items:center;display:flex}.done-title{text-wrap:balance;font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-bold)}.done-sub{color:var(--text-muted);font-size:var(--text-sm);margin-top:var(--space-2)}.btn{appearance:none;border-radius:var(--radius-pill);padding:var(--space-3) var(--space-5);font:inherit;font-weight:var(--weight-semibold);background:var(--accent);color:var(--accent-text);cursor:pointer;transition:transform var(--dur-fast) var(--ease-spring), opacity var(--dur-fast);border:none}.btn:active{transform:scale(.97)}.icon-btn{appearance:none;border:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:var(--radius-pill);cursor:pointer;width:44px;height:44px;transition:transform var(--dur-fast) var(--ease-spring);justify-content:center;align-items:center;display:inline-flex}.icon-btn:active{transform:scale(.92)}.field{appearance:none;border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font:inherit;font-size:var(--text-base)}.field:focus-visible{outline:2px solid var(--accent);outline-offset:-1px}.chips{gap:var(--space-2);flex-wrap:wrap;display:flex}.chip{appearance:none;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);border-radius:var(--radius-pill);padding:var(--space-2) var(--space-3);font:inherit;font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer}.chip--on{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.chip-count{opacity:.7;font-variant-numeric:tabular-nums}.rows{background:var(--border);border-radius:var(--radius-md);flex-direction:column;gap:1px;list-style:none;display:flex;overflow:hidden}.row{background:var(--surface);padding:var(--space-3) var(--space-4);justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.row-main{overflow-wrap:anywhere;min-width:0}.rows .row{content-visibility:auto;contain-intrinsic-size:auto 64px}.row-front{font-weight:var(--weight-semibold)}.row-back{font-size:var(--text-sm);color:var(--text-muted)}.row-meta{align-items:center;gap:var(--space-2);flex-shrink:0;display:flex}.rows-empty,.panel-empty{background:var(--surface);color:var(--text-muted);font-size:var(--text-sm);padding:var(--space-3) var(--space-4)}.dot{border-radius:var(--radius-pill);width:8px;height:8px;display:inline-block}.dot--due{background:var(--accent)}.badge{font-size:var(--text-xs);font-weight:var(--weight-semibold);padding:2px var(--space-2);border-radius:var(--radius-sm);white-space:nowrap}.badge--new{background:color-mix(in srgb, var(--accent) 16%, transparent);color:var(--accent)}.badge--learning{background:color-mix(in srgb, var(--grade-medium) 18%, transparent);color:var(--grade-medium)}.badge--young{background:color-mix(in srgb, var(--text-muted) 18%, transparent);color:var(--text-muted)}.badge--mature{background:color-mix(in srgb, var(--grade-easy) 18%, transparent);color:var(--grade-easy)}.badge--hard{background:color-mix(in srgb, var(--grade-hard) 16%, transparent);color:var(--grade-hard)}.badge--dir{background:var(--surface-2);color:var(--text-muted)}.tiles{gap:var(--space-3);grid-template-columns:repeat(2,1fr);display:grid}.tile{background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:var(--space-4);text-align:center}.tile-value{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-bold);letter-spacing:-.02em;line-height:1.15}.tile-label{font-size:var(--text-sm);color:var(--text-muted);margin-top:2px}.panel{background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:var(--space-4);gap:var(--space-3);flex-direction:column;display:flex}.panel .rows,.panel .panel-empty,.panel .rows-empty{box-shadow:none}.panel-title{font-size:var(--text-base);font-weight:var(--weight-semibold)}.maturity{border-radius:var(--radius-pill);background:var(--surface-2);height:14px;display:flex;overflow:hidden}.maturity-block{gap:var(--space-2);flex-direction:column;display:flex}.maturity-block+.maturity-block{padding-top:var(--space-3);border-top:1px solid var(--border)}.maturity-title{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-muted)}.maturity-seg--new{background:var(--accent)}.maturity-seg--learning{background:var(--grade-medium)}.maturity-seg--young{background:var(--text-muted)}.maturity-seg--mature{background:var(--grade-easy)}.legend{gap:var(--space-3);font-size:var(--text-sm);color:var(--text-muted);flex-wrap:wrap;list-style:none;display:flex}.legend li{align-items:center;gap:var(--space-1);display:flex}.legend strong{color:var(--text);font-variant-numeric:tabular-nums}.legend-dot{border-radius:3px;width:10px;height:10px;display:inline-block}.legend-dot--new{background:var(--accent)}.legend-dot--learning{background:var(--grade-medium)}.legend-dot--young{background:var(--text-muted)}.legend-dot--mature{background:var(--grade-easy)}.setting{justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.setting--stack{align-items:stretch;gap:var(--space-2);flex-direction:column}.setting-label{font-weight:var(--weight-medium)}.setting-hint{font-size:var(--text-xs);color:var(--text-muted);line-height:1.4}.stepper{align-items:center;gap:var(--space-3);display:flex}.stepper-btn{appearance:none;border:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:var(--radius-pill);width:36px;height:36px;font-size:var(--text-lg);cursor:pointer;line-height:1}.stepper-value{text-align:center;min-width:2ch;font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums}.segmented{border:1px solid var(--border);border-radius:var(--radius-md);display:flex;overflow:hidden}.segmented-btn{appearance:none;border:none;border-left:1px solid var(--border);background:var(--surface);color:var(--text);padding:var(--space-3) var(--space-2);font:inherit;font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;flex:1}.segmented-btn:first-child{border-left:none}.segmented-btn--on{background:var(--accent);color:var(--accent-text)}.danger-btn{appearance:none;border:1px solid color-mix(in srgb, var(--grade-hard) 40%, transparent);background:color-mix(in srgb, var(--grade-hard) 10%, transparent);color:var(--grade-hard);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font:inherit;font-weight:var(--weight-semibold);cursor:pointer}@media (hover:hover){.reveal-btn:hover,.icon-btn:hover,.speed-btn:hover,.stepper-btn:hover{background:color-mix(in srgb, var(--surface-2) 82%, var(--text))}.grade-btn:not([disabled]):hover,.chip:not(.chip--on):hover,.segmented-btn:not(.segmented-btn--on):hover{background:var(--surface-2)}.tab:hover{color:var(--text)}}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}}
