:root{--bg:#f7f6f3;--surface:#fff;--text:#1f2933;--text-muted:#616e7c;--border:#e4e0d8;--primary:#c8102e;--primary-dark:#a30d26;--gold:#f4c430;--black:#1a1a1a;--der:#2f81f7;--die:#e5426e;--das:#2da44e;--radius:14px;--shadow:0 2px 12px #1f293314;--shadow-lg:0 8px 30px #1f29331f}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:Segoe UI,system-ui,-apple-system,sans-serif;line-height:1.6}h1,h2,h3{color:var(--text);line-height:1.25}button{font-family:inherit}.app{flex-direction:column;min-height:100vh;display:flex}.main{flex:1;width:100%;max-width:860px;margin:0 auto;padding:2rem 1.25rem 4rem}.main-welcome{align-items:center;max-width:640px;display:flex}.navbar{background:var(--surface);border-bottom:3px solid var(--primary);z-index:20;box-shadow:var(--shadow);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1.5rem;display:flex;position:sticky;top:0}.brand{color:var(--black);letter-spacing:-.02em;font-size:1.35rem;font-weight:800;text-decoration:none}.brand-der{color:var(--primary)}.brand-flag{margin-left:.4rem}.nav-links{flex-wrap:wrap;gap:.25rem;display:flex}.nav-link{color:var(--text-muted);border-radius:10px;align-items:center;gap:.4rem;padding:.45rem .8rem;font-size:.92rem;font-weight:600;text-decoration:none;transition:background .15s,color .15s;display:inline-flex}.nav-link:hover{background:var(--bg);color:var(--text)}.nav-link.active{background:var(--primary);color:#fff}.btn{cursor:pointer;border:none;border-radius:12px;padding:.7rem 1.6rem;font-size:1rem;font-weight:700;text-decoration:none;transition:background .15s,transform .1s;display:inline-block}.btn:active{transform:scale(.98)}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.btn-primary:disabled{background:var(--border);color:var(--text-muted);cursor:not-allowed}.btn-secondary{background:var(--surface);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover{background:var(--bg)}.badge{background:var(--gold);color:var(--black);text-transform:uppercase;letter-spacing:.05em;border-radius:999px;padding:.25rem .75rem;font-size:.8rem;font-weight:700;display:inline-block}.language-select{text-align:center;width:100%;padding:2rem 0}.welcome-brand{color:var(--black);letter-spacing:-.03em;font-size:2.6rem;font-weight:800}.welcome-tagline{color:var(--text-muted);margin:.25rem 0 2.5rem;font-size:1.05rem}.lang-section{margin-bottom:2rem}.lang-section h2{color:var(--text-muted);margin-bottom:.9rem;font-size:1.1rem;font-weight:600}.lang-grid{flex-wrap:wrap;justify-content:center;gap:.9rem;display:flex}.lang-card{background:var(--surface);border:2px solid var(--border);border-radius:var(--radius);cursor:pointer;flex-direction:column;align-items:center;gap:.4rem;min-width:130px;padding:1.1rem 1.4rem;transition:border-color .15s,box-shadow .15s,transform .1s;display:flex}.lang-card:hover{border-color:var(--primary);box-shadow:var(--shadow);transform:translateY(-2px)}.lang-card.selected{border-color:var(--primary);box-shadow:0 0 0 3px #c8102e26}.lang-flag{font-size:2.4rem;line-height:1}.lang-label{color:var(--text);font-weight:700}.not-available{border:1px solid var(--gold);border-radius:var(--radius);background:#fff7e0;max-width:480px;margin:0 auto 1.5rem;padding:.9rem 1.2rem;font-size:.95rem}.btn-start{padding:.85rem 2.4rem;font-size:1.1rem}.dictionary-hero{text-align:center;margin-bottom:2rem}.dictionary-hero h1{margin-bottom:.25rem;font-size:2rem}.hero-flags{vertical-align:middle;font-size:1.4rem}.hero-sub{color:var(--text-muted);margin:0 0 1.5rem}.search-bar{text-align:left;max-width:560px;margin:0 auto;position:relative}.search-input-wrap{background:var(--surface);border:2px solid var(--border);box-shadow:var(--shadow);border-radius:999px;align-items:center;padding:.25rem .6rem .25rem 1.1rem;transition:border-color .15s;display:flex}.search-input-wrap:focus-within{border-color:var(--primary)}.search-icon-btn{cursor:pointer;background:0 0;border:none;margin-right:.5rem;padding:.2rem;font-size:1.1rem}.search-input{color:var(--text);background:0 0;border:none;outline:none;flex:1;padding:.65rem .5rem .65rem 0;font-size:1.05rem}.suggestions{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);z-index:10;margin:0;padding:.35rem;list-style:none;position:absolute;top:calc(100% + 8px);left:0;right:0;overflow:hidden}.suggestions.no-results{color:var(--text-muted);padding:.9rem 1.1rem;font-size:.95rem}.suggestion{text-align:left;cursor:pointer;background:0 0;border:none;border-radius:10px;align-items:baseline;gap:.6rem;width:100%;padding:.6rem .8rem;font-size:.98rem;display:flex}.suggestion.highlighted{background:var(--bg)}.suggestion-word{color:var(--text);font-weight:700}.suggestion-form-note{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.9rem;overflow:hidden}.suggestion-form-note strong{color:var(--primary)}.suggestion-translation{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;margin-left:auto;overflow:hidden}.dictionary-empty{text-align:center;color:var(--text-muted);margin-top:3rem}.chip-row{flex-wrap:wrap;justify-content:center;gap:.5rem;margin-top:.75rem;display:flex}.chip{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:999px;padding:.3rem .9rem;font-weight:600}.chip-btn{cursor:pointer;font-size:.95rem;transition:border-color .15s,color .15s}.chip-btn:hover{border-color:var(--primary);color:var(--primary)}.history{max-width:560px;margin:2.5rem auto 0}.history-head{justify-content:space-between;align-items:baseline;margin-bottom:.6rem;display:flex}.history-head h3{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:0;font-size:.85rem}.clear-history{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:.85rem;font-weight:600}.clear-history:hover{color:var(--primary);text-decoration:underline}.chip-clock{opacity:.7;font-size:.8em}.hero-compact{margin-bottom:1rem}.hero-compact h1{margin-bottom:.75rem;font-size:1.5rem}.hero-title-link{color:inherit;text-decoration:none}.hero-title-link:hover{color:var(--primary)}.back-link{color:var(--text-muted);border-radius:8px;margin:.5rem 0;padding:.3rem .6rem;font-size:.95rem;font-weight:600;text-decoration:none;display:inline-block}.back-link:hover{color:var(--primary);background:var(--surface)}.text-area{box-sizing:border-box;background:var(--surface);border:2px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text);resize:vertical;outline:none;padding:.9rem 1.1rem;font-family:inherit;font-size:1.05rem;line-height:1.5;transition:border-color .15s}.text-area:focus{border-color:var(--primary)}.text-area.output{background:var(--bg)}.corrector-box{flex-direction:column;align-items:flex-start;gap:.75rem;max-width:640px;margin:0 auto;display:flex}.corr-latest{max-width:640px;margin:1.5rem auto 0}.correction{flex-direction:column;gap:.15rem;display:flex}.corr-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:0;font-size:.75rem;font-weight:700}.corr-label+.corr-label,.corr-text+.corr-label{margin-top:.6rem}.corr-text{margin:0;font-size:1.05rem}mark.mark-wrong{color:#b42318;background:#fde8e8;border-radius:4px;padding:0 .15rem;text-decoration:line-through}mark.mark-fixed{color:#1a7f37;background:#e6f4ea;border-radius:4px;padding:0 .15rem;font-weight:600}.corr-history{max-width:640px;margin:2rem auto 0}.corr-history h3{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:.6rem;font-size:.85rem}.corr-history-scroll{flex-direction:column;gap:.6rem;max-height:400px;padding-right:.25rem;display:flex;overflow-y:auto}.corr-history-item{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:.8rem 1rem}.translate-boxes{grid-template-columns:1fr 1fr;align-items:start;gap:1.25rem;display:grid}@media (width<=700px){.translate-boxes{grid-template-columns:1fr}}.translate-box{flex-direction:column;align-items:flex-start;gap:.6rem;display:flex}.translate-head{align-items:center;gap:.5rem;display:flex}.flag-btn{cursor:pointer;background:0 0;border:2px solid #0000;border-radius:10px;padding:.1rem .3rem;font-size:1.7rem;line-height:1;transition:border-color .15s,background .15s}.flag-btn:hover:not(.flag-static){border-color:var(--border);background:var(--surface)}.flag-static{cursor:default}.translate-lang{font-weight:700}.swap-hint{color:var(--text-muted);font-size:.9rem}.game-page{max-width:640px;margin:0 auto}.game-setup h3{text-align:center;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:1.5rem 0 .6rem;font-size:.85rem}.level-on{border-color:var(--primary);color:var(--primary);background:#fdf2f4}.mode-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.8rem;display:grid}.mode-card{background:var(--surface);border:2px solid var(--border);border-radius:var(--radius);cursor:pointer;text-align:left;flex-direction:column;align-items:flex-start;gap:.15rem;padding:1rem 1.1rem;transition:border-color .15s,box-shadow .15s;display:flex}.mode-card:hover{border-color:var(--primary)}.mode-card.selected{border-color:var(--primary);box-shadow:0 0 0 3px #c8102e1f}.mode-icon{font-size:1.5rem}.mode-title{color:var(--text);font-weight:700}.mode-desc{color:var(--text-muted);font-size:.85rem}.game-setup .btn-start{margin:1.75rem auto 0;display:block}.game-top{justify-content:space-between;align-items:center;min-height:84px;display:flex}.game-stats{align-items:center;gap:.9rem;font-size:1.05rem;font-weight:700;display:flex}.streak{color:#d97706}.flash{font-size:1.3rem}.flash.ok{color:var(--das)}.flash.bad{color:var(--primary)}.btn-end{padding:.45rem 1.1rem;font-size:.9rem}.timer-wrap{width:84px;height:84px;position:relative}.timer-num{justify-content:center;align-items:center;font-size:1.4rem;font-weight:800;display:flex;position:absolute;inset:0}.game-card{text-align:center}.game-prompt{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin:0;font-size:.9rem;font-weight:700}.game-word{color:var(--text);margin:.5rem 0 1.25rem;font-size:2.4rem;font-weight:800}.article-choices{flex-wrap:wrap;justify-content:center;gap:.9rem;display:flex}.article-choice{border-radius:var(--radius);border:2px solid var(--border);background:var(--surface);cursor:pointer;padding:.7rem 1.8rem;font-size:1.4rem;font-weight:800;transition:transform .1s,border-color .15s,opacity .15s}.article-choice:not(:disabled):hover{transform:translateY(-2px)}.choice-der{color:var(--der)}.choice-die{color:var(--die)}.choice-das{color:var(--das)}.article-choice.right{border-color:var(--das);background:#e6f4ea}.article-choice.wrong{border-color:var(--primary);background:#fde8e8}.article-choice.dim,.plural-choice.dim{opacity:.45}.plural-choices{flex-direction:column;gap:.6rem;max-width:340px;margin:0 auto;display:flex}.plural-choice{border:2px solid var(--border);background:var(--surface);cursor:pointer;color:var(--text);border-radius:12px;padding:.65rem 1rem;font-size:1.05rem;font-weight:700;transition:border-color .15s}.plural-choice:not(:disabled):hover{border-color:var(--primary)}.plural-choice.right{border-color:var(--das);background:#e6f4ea}.plural-choice.wrong{border-color:var(--primary);background:#fde8e8}.typed-row{flex-wrap:wrap;justify-content:center;gap:.6rem;display:flex}.typed-input{border:2px solid var(--border);background:var(--surface);color:var(--text);border-radius:12px;outline:none;min-width:220px;padding:.6rem 1rem;font-size:1.1rem}.typed-input:focus{border-color:var(--primary)}.game-feedback{border-top:1px solid var(--border);margin-top:1.5rem;padding-top:1rem}.feedback-line{margin:0;font-size:1.1rem}.feedback-translation{color:var(--text-muted);margin:.3rem 0 0}.game-feedback .btn{margin-top:.9rem}.game-result{text-align:center;margin-top:2rem}.result-grid{flex-wrap:wrap;justify-content:center;gap:1.5rem;margin:1.25rem 0;display:flex}.result-stat{flex-direction:column;min-width:80px;display:flex}.result-num{color:var(--text);font-size:2rem;font-weight:800}.result-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-size:.8rem}.new-highscore{color:#d97706;font-size:1.1rem;font-weight:800}.result-sub{color:var(--text-muted)}.result-actions{justify-content:center;gap:.8rem;margin-top:1rem;display:flex}.game-history{max-width:560px;margin:2.5rem auto 0}.game-history-list{flex-direction:column;gap:.4rem;display:flex}.game-history-row{background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-wrap:wrap;align-items:center;gap:.7rem;padding:.55rem .9rem;font-size:.88rem;display:flex}.gh-mode{color:var(--text);font-weight:700}.gh-levels{color:var(--text-muted);background:var(--bg);border-radius:999px;padding:.05rem .55rem;font-size:.78rem;font-weight:700}.gh-result{color:var(--text)}.gh-when{color:var(--text-muted);white-space:nowrap;margin-left:auto;font-size:.8rem}.search-status{text-align:center;color:var(--text-muted);margin-top:2rem}.search-status.error{color:var(--primary)}.setup-notice{text-align:center;color:var(--text-muted);padding:4rem 1rem}.setup-notice code{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:.1rem .4rem}.footer{text-align:center;color:var(--text-muted);border-top:1px solid var(--border);padding:1rem;font-size:.85rem}.footer-line{margin:.25rem 0}.footer-credit{font-size:.8rem}.footer a{color:var(--text-muted)}.contact-form{flex-direction:column;align-items:flex-start;gap:.9rem;max-width:560px;margin:0 auto;display:flex}.contact-email{width:100%}.contact-sent{text-align:center;max-width:480px;margin:3rem auto 0}.hp-field{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.word-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-top:1rem;padding:1.75rem 2rem}.word-header{flex-wrap:wrap;align-items:center;gap:.9rem;display:flex}.word-title{margin:0;font-size:2rem}.word-type{background:var(--bg);border:1px solid var(--border);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);border-radius:999px;padding:.2rem .8rem;font-size:.8rem;font-weight:700}.article-der{color:var(--der)}.article-die{color:var(--die)}.article-das{color:var(--das)}.article-sep{color:var(--text-muted)}.hits{flex-direction:column;gap:.5rem;max-width:640px;margin:1.25rem auto 0;display:flex}.hit{text-align:left;background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:10px;align-items:baseline;gap:.6rem;width:100%;padding:.7rem 1rem;font-size:1rem;transition:border-color .15s,transform .1s;display:flex}.hit:hover{border-color:var(--primary);transform:translateY(-1px)}.hit-word{white-space:nowrap}.hit-word strong{color:var(--text)}.hit-badge{background:var(--bg);border:1px solid var(--border);color:var(--text-muted);white-space:nowrap;border-radius:999px;padding:.1rem .6rem;font-size:.72rem;font-weight:600}.hit-gloss{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:.9rem;overflow:hidden}.fuzzy-note{color:var(--text-muted);margin:.75rem 0 .25rem;font-size:.9rem;font-style:italic}.homograph-divider{border-top:2px dashed var(--border);color:var(--text-muted);margin:1.75rem 0 .5rem;padding-top:.9rem;font-size:.88rem}.fact-row{flex-wrap:wrap;gap:.7rem;margin-top:1rem;display:flex}.fact{background:var(--bg);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:.1rem;padding:.5rem .9rem;display:flex}.fact-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-size:.7rem;font-weight:700}.fact-value{color:var(--text);font-weight:700}.sense-synonyms{color:var(--text-muted);margin:.35rem 0 0;font-size:.9rem}.declension{margin-top:1.5rem}.declension h3{text-transform:uppercase;letter-spacing:.06em;color:var(--primary);margin-bottom:.6rem;font-size:1.05rem}.table-scroll{overflow-x:auto}.declension-table{border-collapse:collapse;width:100%;font-size:.95rem}.declension-table th,.declension-table td{text-align:left;border-bottom:1px solid var(--border);padding:.5rem .9rem}.declension-table th{background:var(--bg);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:.78rem}.declension-table .case-label{color:var(--text-muted);font-weight:700}.back-btn{cursor:pointer;background:0 0;border:none;font-family:inherit}.homograph-num{color:var(--primary);margin-left:.15rem;font-size:1.1rem}.ipa{color:var(--text-muted);font-size:1.05rem}.badge-info{background:var(--bg);border:1px solid var(--border);color:var(--text-muted);border-radius:999px;padding:.2rem .8rem;font-size:.8rem;font-weight:600}.principal-parts{color:var(--text);margin:.5rem 0 0;font-size:1.05rem;font-weight:600}.senses{margin-top:1.25rem}.senses h3,.conjugation h3{text-transform:uppercase;letter-spacing:.06em;color:var(--primary);margin-bottom:.6rem;font-size:1.05rem}.sense-list{flex-direction:column;gap:.6rem;margin:0;padding-left:1.4rem;display:flex}.sense::marker{color:var(--text-muted);font-weight:700}.sense-gloss{margin:0;font-size:1.02rem}.sense-examples{flex-direction:column;gap:.5rem;margin:.5rem 0 0;padding:0;list-style:none;display:flex}.conjugation{margin-top:1.5rem}.tense-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.9rem;display:grid}.tense-block{background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:.7rem .9rem;overflow-x:auto}.tense-block h4{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin:0 0 .4rem;font-size:.8rem}.tense-block table{border-collapse:collapse;width:100%;font-size:.93rem}.tense-block td{vertical-align:top;padding:.18rem 0}.tense-block .pronoun{color:var(--text-muted);white-space:nowrap;width:5.2rem;padding-right:.6rem;font-weight:700}.form-variant{color:var(--text-muted);font-size:.88em}.form-missing{color:var(--text-muted)}.no-conjugation{color:var(--text-muted);margin:0;font-style:italic}.toggle-tenses{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:999px;margin-top:.9rem;padding:.4rem 1.1rem;font-size:.9rem;font-weight:600}.toggle-tenses:hover{border-color:var(--primary);color:var(--primary)}.example{background:var(--bg);border-left:4px solid var(--gold);border-radius:0 10px 10px 0;padding:.7rem 1rem}.example-de{color:var(--text);margin:0;font-weight:600}.example-en{color:var(--text-muted);margin:.15rem 0 0;font-size:.95rem}.placeholder-page{text-align:center;flex-direction:column;align-items:center;gap:.75rem;padding:4rem 1rem;display:flex}.placeholder-icon{font-size:3.5rem}.placeholder-page h1{margin:0}.placeholder-page p{color:var(--text-muted);max-width:420px;margin:0}.placeholder-page .btn{margin-top:1rem}@media (width<=640px){.navbar{justify-content:center}.nav-label{display:none}.nav-link{font-size:1.1rem}.word-card{padding:1.25rem 1.1rem}.dictionary-hero h1{font-size:1.6rem}}
