:root{color-scheme:dark;--bg: #0b1220;--surface: #172032;--surface-2: #1e2a40;--border: #2b3a55;--text: #eef2f8;--muted: #94a3b8;--accent: #38bdf8;--accent-soft: #7dd3fc;--good: #4ade80;--warn: #fbbf24;--bad: #f87171;--radius: .9rem;--header-h: 3.5rem;--tabbar-h: 3.9rem;--page-x: 1.1rem}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:system-ui,-apple-system,Segoe UI,sans-serif;margin:0;background:var(--bg);color:var(--text);line-height:1.55;overscroll-behavior-y:none}a{color:var(--accent);text-decoration:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:.4rem}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}.page{max-width:640px;margin:0 auto;padding:1rem var(--page-x) calc(var(--tabbar-h) + 2rem + env(safe-area-inset-bottom))}.page-center{display:flex;justify-content:center;align-items:center;min-height:100dvh;padding:1.5rem}.app-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:.5rem;height:var(--header-h);max-width:640px;margin:0 auto;padding:0 var(--page-x);background:color-mix(in srgb,var(--bg) 94%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--border)}.header-title{font-size:1.15rem;font-weight:650;margin:0;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-back{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;margin-left:-.6rem;color:var(--accent)}.header-right{flex-shrink:0}.tabbar{position:fixed;bottom:0;left:0;right:0;z-index:30;display:grid;grid-template-columns:repeat(5,1fr);background:color-mix(in srgb,var(--bg) 97%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom)}.tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;height:var(--tabbar-h);color:var(--muted);font-size:.68rem;letter-spacing:.01em;-webkit-tap-highlight-color:transparent}.tab span{line-height:1}.tab-active{color:var(--accent)}h1{font-size:1.5rem;line-height:1.25;margin:.25rem 0 .75rem}h2{font-size:1.15rem;margin:1.75rem 0 .6rem}.hint{color:var(--muted);font-size:.9rem;margin:0 0 1rem}.error{color:var(--bad);font-size:.9rem}button{font:inherit;cursor:pointer;border:none;border-radius:.7rem;padding:.75rem 1.1rem;min-height:2.75rem;background:var(--surface-2);color:var(--text);-webkit-tap-highlight-color:transparent;transition:background .15s ease,transform .08s ease}button:active{transform:scale(.985)}button.primary{background:var(--accent);color:#06121f;font-weight:650;width:100%}button.primary:disabled{opacity:.45;cursor:default}.button-row{display:flex;gap:.6rem;flex-wrap:wrap}.button-row button{flex:1;min-width:8rem}input{font:inherit;width:100%;padding:.75rem .9rem;min-height:2.75rem;border-radius:.7rem;border:1px solid var(--border);background:var(--surface);color:var(--text)}input::placeholder{color:var(--muted)}.task-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.1rem;margin-bottom:.9rem}.task-card h3{margin:0 0 .3rem;font-size:1.05rem}.task-card>p{margin:0;color:var(--muted);font-size:.92rem}.task-card-button{display:block;width:100%;text-align:left;background:var(--surface);padding:1.1rem}.task-card-accent{border-color:color-mix(in srgb,var(--accent) 40%,var(--border));background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 9%,var(--surface)),var(--surface))}.streak-badge{display:inline-flex;align-items:center;gap:.35rem;background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:.3rem .7rem;font-size:.85rem;white-space:nowrap}.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;margin-bottom:1.25rem}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.8rem .6rem;text-align:center}.stat-value{font-size:1.35rem;font-weight:650;line-height:1.2}.stat-label{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.page-focus{display:flex;flex-direction:column;min-height:calc(100dvh - var(--header-h));padding-bottom:calc(1.25rem + env(safe-area-inset-bottom))}.focus-card{flex:1;display:flex;flex-direction:column;justify-content:center;min-height:0}.focus-actions{flex-shrink:0;padding-top:1rem}.card-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:2.5rem 1.4rem;text-align:center;min-height:15rem;display:flex;flex-direction:column;justify-content:center;gap:.4rem;cursor:pointer;-webkit-tap-highlight-color:transparent}.card-box .de{font-size:1.35rem}.card-box .it{font-size:1.65rem;font-weight:650;color:var(--accent-soft);margin-top:.4rem}.card-box .pron{font-size:.95rem;color:var(--muted)}.card-box .example{font-size:.92rem;color:var(--muted);font-style:italic;margin-top:.6rem}.grade-buttons{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;margin-top:1.25rem}.grade-buttons button{padding:.85rem .25rem;font-size:.85rem;font-weight:600;border:1px solid var(--border);border-top-width:3px}.grade-buttons button.grade-1{border-top-color:var(--bad)}.grade-buttons button.grade-3{border-top-color:var(--warn)}.grade-buttons button.grade-4{border-top-color:var(--good)}.grade-buttons button.grade-5{border-top-color:var(--accent)}.lesson-list{margin-top:.9rem}.lesson-row,.list-row{display:flex;justify-content:space-between;align-items:center;gap:.75rem;width:100%;text-align:left;background:transparent;border-radius:0;padding:.85rem 0;border-bottom:1px solid var(--border);min-height:2.9rem}.lesson-row:last-child,.list-row:last-child{border-bottom:none}.badge-done{color:var(--good);font-weight:700;flex-shrink:0}.row-hint{color:var(--muted);font-size:.85rem;flex-shrink:0}.section-head{display:flex;justify-content:space-between;align-items:center;gap:.75rem;width:100%;text-align:left;background:transparent;padding:0;min-height:0;font-weight:650;font-size:1.02rem}.section-head .count{color:var(--muted);font-weight:400;font-size:.82rem}.chevron{color:var(--muted);flex-shrink:0;transition:transform .15s ease}.chevron-open{transform:rotate(90deg)}.chapter-summary{margin:.3rem 0 0;color:var(--muted);font-size:.88rem}.part-title{font-size:.78rem;color:var(--accent);text-transform:uppercase;letter-spacing:.09em;margin:1.75rem 0 .7rem}.search-bar{display:flex;align-items:center;gap:.5rem;position:sticky;top:var(--header-h);z-index:10;background:var(--bg);padding:.7rem 0;margin-bottom:.3rem}.search-bar input{flex:1;min-width:0}.search-bar input::-webkit-search-cancel-button{display:none}.search-clear{flex-shrink:0;width:2.75rem;padding:0}.vocab-list{list-style:none;padding:0;margin:0}.vocab-list li{display:flex;flex-direction:column;align-items:flex-start;gap:.12rem;padding:.7rem 0;border-bottom:1px solid var(--border)}.vocab-list li:last-child{border-bottom:none}.vocab-list .it{font-weight:650}.vocab-list .pron{font-weight:400;font-size:.83rem;color:var(--accent-soft)}.vocab-list .de{color:var(--muted)}.task-card .vocab-list{margin-top:.8rem}.progress-bar{height:.5rem;background:var(--surface-2);border-radius:999px;overflow:hidden;margin:.6rem 0 1.5rem}.progress-bar>div{height:100%;background:var(--accent);border-radius:999px}.login-form{display:flex;flex-direction:column;gap:.85rem;width:100%;max-width:21rem}.login-form h1{text-align:center;margin-bottom:.25rem}.profile-picker{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem}.profile-picker button{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.85rem .3rem;border:1px solid var(--border);background:var(--surface);font-size:.9rem}.profile-picker button.selected{background:var(--accent);color:#06121f;font-weight:650;border-color:var(--accent)}.profile-picker .emoji{font-size:1.4rem;line-height:1}.markdown h1{font-size:1.3rem}.markdown h2{font-size:1.05rem;margin:1.5rem 0 .5rem}.markdown table{display:block;width:max-content;max-width:100%;overflow-x:auto;border-collapse:collapse;margin:.9rem 0;font-size:.9rem;-webkit-overflow-scrolling:touch}.markdown th,.markdown td{border:1px solid var(--border);padding:.45rem .55rem;text-align:left;vertical-align:top}.markdown th{background:var(--surface-2);white-space:nowrap}.markdown code{background:var(--surface-2);padding:.1rem .35rem;border-radius:.35rem;font-size:.9em}.task-card .markdown{margin-top:1rem;border-top:1px solid var(--border);padding-top:.9rem}.task-card .markdown h2:first-child{margin-top:0}.task-card .markdown p,.task-card .markdown li{color:#cbd5e1;margin:0 0 .7rem}.markdown ul{padding-left:1.2rem;margin:0 0 .85rem}.markdown li{margin-bottom:.35rem}
