:root{--red: #ba0c2f;--blue: #00205b;--bg: #f7f7f5;--card-bg: #ffffff;--text: #1a1a1a;--muted: #71717a;--border: #e4e4e7;--green: #15803d}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text)}.app{max-width:720px;margin:0 auto;padding:0 1rem 3rem}.nav{display:flex;align-items:center;gap:1rem;padding:1rem 0;border-bottom:2px solid var(--red);margin-bottom:1.5rem;flex-wrap:wrap}.nav-brand{font-weight:700;font-size:1.1rem;color:var(--blue)}.nav a{color:var(--text);text-decoration:none;padding:.25rem 0;border-bottom:2px solid transparent}.nav a.active{border-bottom-color:var(--blue);font-weight:600}.nav-spacer{flex:1}.nav-email{color:var(--muted);font-size:.85rem}.page h2{margin-top:0}.muted{color:var(--muted)}.error{color:var(--red);margin:.5rem 0}.success{color:var(--green);margin:.5rem 0}.spacer{flex:1}.badge{background:var(--blue);color:#fff;border-radius:999px;padding:.15rem .65rem;font-size:.8rem}.badge-box{background:var(--muted)}input{font:inherit;padding:.6rem .75rem;border:1px solid var(--border);border-radius:8px;background:var(--card-bg);width:100%}input:focus{outline:2px solid var(--blue);outline-offset:-1px}button{font:inherit;cursor:pointer}.btn-primary,.btn-yes,.btn-no,.btn-easy{border:none;border-radius:8px;padding:.7rem 1.4rem;font-weight:600;color:#fff}.btn-primary{background:var(--blue)}.btn-yes{background:var(--green)}.btn-no{background:var(--red)}.btn-easy{background:var(--blue)}.btn-primary:hover,.btn-yes:hover,.btn-no:hover,.btn-easy:hover{filter:brightness(1.15)}.btn-link{background:none;border:none;color:var(--blue);padding:.25rem;text-decoration:underline}.btn-danger{color:var(--red)}.btn-speak{background:none;border:none;padding:0 .2rem;font-size:.9em;opacity:.6;vertical-align:baseline}.btn-speak:hover{opacity:1}kbd{background:#ffffff40;border-radius:4px;padding:0 .35rem;font-size:.75rem;margin-left:.4rem}.auth-page{max-width:340px;margin:12vh auto 0;text-align:center}.auth-page h1{color:var(--blue);margin-bottom:.25rem}.auth-form{display:flex;flex-direction:column;gap:.75rem;margin:1.5rem 0 1rem}.practice-meta{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;font-size:.9rem}.flashcard{background:var(--card-bg);border:1px solid var(--border);border-radius:16px;padding:3rem 2rem;text-align:center;min-height:260px;display:flex;flex-direction:column;justify-content:center;gap:.75rem;cursor:pointer;box-shadow:0 1px 3px #0000000f}.flashcard.revealed{cursor:default}.flashcard hr{border:none;border-top:1px solid var(--border);width:60%;margin:.5rem auto}.flashcard-prompt{font-size:2rem;font-weight:700}.flashcard-answer{font-size:1.5rem;color:var(--blue)}.flashcard-note{color:var(--muted);font-style:italic}.flashcard-hint{color:var(--muted);font-size:.85rem}.practice-buttons{display:flex;justify-content:center;gap:1rem;margin-top:1.5rem;flex-wrap:wrap}.practice-grades button{padding:.7rem 1rem}.practice-done{text-align:center;margin-top:15vh}.typing-toggle{display:flex;align-items:center;gap:.35rem;color:var(--muted);font-size:.9rem;cursor:pointer}.typing-toggle input{width:auto}.typing-row{display:flex;justify-content:center;gap:.75rem;margin-top:1.5rem}.typing-row input{max-width:320px;font-size:1.1rem;text-align:center}.check-result{font-weight:700}.check-result.ok{color:var(--green)}.check-result.bad{color:var(--red)}.typed-wrong{color:var(--muted);text-decoration:line-through}.practice-buttons-col{flex-direction:column;align-items:center;gap:.5rem}.btn-article{background:var(--card-bg);color:var(--blue);border:2px solid var(--blue);border-radius:8px;padding:.7rem 2rem;font-size:1.2rem;font-weight:700}.btn-article:hover:not(:disabled){background:var(--blue);color:#fff}.btn-article:disabled{opacity:.5;cursor:default}.btn-article kbd{background:#00205b1f;color:inherit}.chip{background:none;border:1px solid var(--border);border-radius:999px;padding:.1rem .6rem;font-size:.8rem;color:var(--muted)}.chip:hover{border-color:var(--blue);color:var(--blue)}.chip-active{background:var(--blue);border-color:var(--blue);color:#fff}.word-tags{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.25rem}.word-form-lookup{display:flex;align-items:center;gap:.25rem}.word-form-lookup input{flex:1}.word-form-lookup .btn-link{white-space:nowrap}.lookup-info{margin:0;color:var(--green);font-size:.85rem}.tag-select{font:inherit;font-size:.85rem;padding:.2rem .4rem;border:1px solid var(--border);border-radius:6px;background:var(--card-bg);color:var(--text)}.mode-chips{display:flex;gap:.35rem;flex-wrap:wrap}.btn-speak-big{font-size:2.5rem;opacity:.85}.verb-backfill-hint{text-align:center;margin-top:1.5rem}.table-scroll{overflow-x:auto}.verb-forms{display:flex;flex-direction:column;gap:.4rem;align-items:center}.verb-form-row{display:flex;gap:.75rem;align-items:baseline}.verb-form-label{color:var(--muted);font-size:.85rem;min-width:6rem;text-align:right}.verb-form-value{font-size:1.3rem;color:var(--blue);font-weight:600;min-width:8rem;text-align:left}.practice-verb-forms{margin-top:.25rem}.practice-verb-forms .verb-form-value{font-size:1.1rem}.stat-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.75rem;margin-bottom:1rem}.stat-card{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;padding:1rem;text-align:center}.stat-value{font-size:1.6rem;font-weight:700;color:var(--blue)}.stat-label{color:var(--muted);font-size:.85rem}.stats h3{margin:1.5rem 0 .5rem}.chart{display:flex;align-items:flex-end;gap:2px;height:120px;background:var(--card-bg);border:1px solid var(--border);border-radius:8px;padding:.5rem}.chart-col{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:stretch;min-width:0}.chart-bar{background:var(--blue);border-radius:2px 2px 0 0;min-height:1px}.chart-bar-forecast{background:var(--red)}.chart-forecast{height:140px}.chart-label{text-align:center;font-size:.7rem;color:var(--muted);margin-top:.25rem}.hbars{display:flex;flex-direction:column;gap:.35rem}.hbar-row{display:flex;align-items:center;gap:.5rem}.hbar-label{width:4.5rem;text-align:right;font-size:.85rem;color:var(--muted)}.hbar{height:14px;background:var(--blue);border-radius:4px;min-width:2px}.word-form{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;padding:1.25rem;display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem}.word-form h2{margin:0;font-size:1.05rem}.word-form-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.word-form-actions{display:flex;align-items:center;gap:.75rem}.words-toolbar{display:flex;align-items:center;gap:1rem;margin-bottom:.75rem}.words-toolbar input{max-width:260px}.words-table{width:100%;border-collapse:collapse;background:var(--card-bg);border:1px solid var(--border);border-radius:12px;overflow:hidden}.words-table th,.words-table td{text-align:left;padding:.6rem .75rem;border-bottom:1px solid var(--border);vertical-align:top}.words-table th{font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.words-table tr:last-child td{border-bottom:none}.word-note{color:var(--muted);font-size:.85rem;font-style:italic}.word-progress{white-space:nowrap;letter-spacing:.2em;color:var(--blue)}.word-actions{white-space:nowrap;text-align:right}textarea{font:inherit;padding:.6rem .75rem;border:1px solid var(--border);border-radius:8px;background:var(--card-bg);width:100%;resize:vertical}textarea:focus{outline:2px solid var(--blue);outline-offset:-1px}.memo-list{display:flex;flex-direction:column;gap:.75rem}.memo-card{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;padding:.9rem 1.1rem}.memo-card.pinned{border-color:var(--blue)}.memo-head{display:flex;align-items:center;gap:.5rem}.memo-title{margin:0;font-size:1.05rem}.memo-expand{background:none;border:none;font-weight:700;color:var(--text);padding:0;text-align:left}.memo-expand:hover{color:var(--blue)}.memo-pin{background:none;border:none;padding:0;font-size:1rem;line-height:1}.memo-body{margin-top:.5rem;white-space:pre-wrap;color:var(--text)}.list-cards{margin-top:.75rem;border-top:1px solid var(--border);padding-top:.5rem;display:flex;flex-direction:column;gap:.35rem}.list-card-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.word-lists{align-items:center}.word-lists .tag-select{font-size:.75rem;padding:.05rem .3rem}@media (max-width: 560px){.word-form-row{grid-template-columns:1fr}.flashcard-prompt{font-size:1.5rem}.words-table .word-progress{display:none}}
