:root{color-scheme:dark;--bg: #0d0f12;--surface: #14171c;--surface-2: #1a1e24;--surface-3: #22272f;--line: #262c35;--line-strong: #353d48;--text: #eef0f3;--muted: #a0a8b3;--faint: #6e7783;--accent: #8b9dff;--accent-hover: #a5b3ff;--accent-ink: #0b1026;--accent-soft: rgba(139, 157, 255, .13);--right: #5fcf8e;--right-soft: rgba(95, 207, 142, .12);--wrong: #ef7070;--wrong-soft: rgba(239, 112, 112, .12);--caution: #e3b35c;--noun: #f08a78;--verb: #4fc4cf;--adjective: #e3b35c;--adverb: #d38cf0;--radius: 12px;--radius-sm: 8px;--sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--mono: ui-monospace, "SFMono-Regular", "JetBrains Mono", Menlo, monospace}*{box-sizing:border-box}html{background:var(--bg);-webkit-text-size-adjust:100%;scrollbar-gutter:stable}body{margin:0;min-width:320px;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased}h1,h2,h3,p{margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button,select{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}code,kbd{font-family:var(--mono);font-size:.88em}kbd{display:inline-block;min-width:1.6em;padding:1px 5px;border:1px solid currentColor;border-radius:4px;font-size:11px;line-height:1.4;opacity:.55;text-align:center}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.icon{display:block;flex:none}.spacer{flex:1}input:not([type=checkbox]):not([type=radio]),select,textarea{width:100%;min-height:40px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text);padding:8px 11px;font-size:15px;transition:border-color .15s,background .15s}input:not([type=checkbox]):not([type=radio]):hover,select:hover,textarea:hover{border-color:#46505c}input:not([type=checkbox]):not([type=radio]):focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);background:var(--surface-3)}input::placeholder,textarea::placeholder{color:var(--faint)}input[type=checkbox],input[type=radio]{width:17px;height:17px;margin:0;accent-color:var(--accent);flex:none}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:30px;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 15px) 55%,calc(100% - 10px) 55%;background-size:5px 5px;background-repeat:no-repeat}textarea{resize:vertical;font-family:var(--mono);font-size:13px;line-height:1.5}.field{display:grid;gap:6px;min-width:0}.field>span,.field-label{color:var(--muted);font-size:13px;font-weight:560}.field>span em{color:var(--faint);font-style:normal;font-weight:450}.field-hint{color:var(--faint);font-size:12.5px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field-divider{height:1px;background:var(--line);margin:4px 0}.check-option{display:flex;gap:10px;align-items:flex-start;cursor:pointer;color:var(--muted);font-size:14px}.check-option input{margin-top:2px}.check-option:has(input:disabled){cursor:default}.check-option strong{display:block;color:var(--text);font-weight:580}.check-option small{display:block;color:var(--faint);font-size:12.5px}.primary-button,.neutral-button,.text-button,.danger-text-button,.wrong-button,.right-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:0 16px;border-radius:var(--radius-sm);border:1px solid transparent;font-weight:620;font-size:14.5px;white-space:nowrap;transition:background .15s,border-color .15s,color .15s}.primary-button{background:var(--accent);color:var(--accent-ink)}.primary-button:hover:not(:disabled){background:var(--accent-hover)}.primary-button kbd{border-color:currentColor}.neutral-button{background:var(--surface-2);border-color:var(--line-strong)}.neutral-button:hover:not(:disabled){background:var(--surface-3);border-color:#46505c}.neutral-button.danger{color:var(--wrong)}.text-button{background:transparent;color:var(--muted);padding:0 10px}.text-button:hover:not(:disabled){color:var(--text);background:var(--surface-2)}.danger-text-button{background:transparent;color:var(--wrong);padding:0 10px}.danger-text-button:hover{background:var(--wrong-soft)}.small{min-height:32px;padding:0 11px;font-size:13.5px}.align-start{align-self:flex-start}.icon-button{display:inline-grid;place-items:center;width:36px;height:36px;flex:none;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--muted);font-size:20px;line-height:1}.icon-button:hover:not(:disabled),.icon-button.active{background:var(--surface-3);color:var(--text)}.icon-button.danger:hover{color:var(--wrong);background:var(--wrong-soft)}.button-row{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.button-row.start{justify-content:flex-start}.segmented{display:inline-flex;gap:2px;padding:3px;border-radius:10px;background:var(--surface-2);border:1px solid var(--line);max-width:100%}.segmented button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:34px;padding:0 13px;border:0;border-radius:7px;background:transparent;color:var(--muted);font-weight:580;font-size:14px;white-space:nowrap}.segmented button:hover:not(:disabled){color:var(--text)}.segmented button.active{background:var(--surface-3);color:var(--text);box-shadow:0 1px 2px #00000059,inset 0 0 0 1px var(--line-strong)}.segmented.scrollable{overflow-x:auto;scrollbar-width:none}.segmented.scrollable::-webkit-scrollbar{display:none}.sheet-body>.segmented,.noun-patterns-panel>.segmented{justify-self:start}.tab-count{color:var(--faint);font-size:12px;font-variant-numeric:tabular-nums}.type-segmented button.active.noun{box-shadow:inset 0 -2px 0 var(--noun),inset 0 0 0 1px var(--line-strong)}.type-segmented button.active.verb{box-shadow:inset 0 -2px 0 var(--verb),inset 0 0 0 1px var(--line-strong)}.type-segmented button.active.adjective{box-shadow:inset 0 -2px 0 var(--adjective),inset 0 0 0 1px var(--line-strong)}.type-segmented button.active.adverb{box-shadow:inset 0 -2px 0 var(--adverb),inset 0 0 0 1px var(--line-strong)}.chip-row{display:flex;flex-wrap:wrap;gap:6px}.chip{display:inline-flex;align-items:center;min-height:24px;padding:0 9px;border-radius:999px;border:1px solid var(--line-strong);background:transparent;color:var(--muted);font-size:12.5px;font-weight:560;white-space:nowrap}button.chip{min-height:32px;padding:0 12px;font-size:13.5px}button.chip:hover{color:var(--text);border-color:#4a5461}button.chip.selected{background:var(--accent-soft);border-color:var(--accent);color:var(--text)}.chip.set{border-style:solid}.chip.tag{border-style:dashed}.pos-badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:680;letter-spacing:.04em;text-transform:uppercase}.pos-badge:before,.pos-dot{content:"";width:8px;height:8px;border-radius:50%;background:var(--pos, var(--muted));flex:none}.pos-badge{color:var(--pos, var(--muted))}.noun{--pos: var(--noun)}.verb{--pos: var(--verb)}.adjective{--pos: var(--adjective)}.adverb{--pos: var(--adverb)}.pos-noun{--pos: var(--noun)}.pos-verb{--pos: var(--verb)}.pos-adjective{--pos: var(--adjective)}.pos-adverb{--pos: var(--adverb)}.form-error{color:var(--wrong);font-size:13.5px}.success-message{color:var(--right);font-size:13.5px}.sync-warning{margin-bottom:16px;padding:11px 14px;border:1px solid rgba(227,179,92,.35);border-radius:var(--radius-sm);background:#e3b35c1a;color:#f1d6a4;font-size:14px}.sync-warning p+button{margin-top:10px}.app-shell{min-height:100vh}.topbar{position:sticky;top:0;z-index:30;height:60px;border-bottom:1px solid var(--line);background:#0d0f12e6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.topbar-inner{width:calc(100% - 48px);height:100%;margin:0 auto;display:flex;align-items:center;gap:28px}.wordmark{display:inline-flex;align-items:center;gap:9px;font-size:18px;font-weight:700;letter-spacing:-.01em}.wordmark-mark{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:var(--accent);color:var(--accent-ink);font-size:17px;font-weight:700}.top-nav{display:flex;gap:4px;align-self:stretch;align-items:center}.top-nav a{display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 12px;border-radius:var(--radius-sm);color:var(--muted);font-weight:580;font-size:14.5px}.top-nav a:hover{color:var(--text);background:var(--surface-2)}.top-nav a.active{color:var(--text);background:var(--surface-3)}.topbar-actions{margin-left:auto;display:flex;align-items:center;gap:10px}.storage-pill{display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 11px;border:1px solid var(--line-strong);border-radius:999px;color:var(--muted);font-size:13px;font-weight:600}.storage-pill:hover{color:var(--text)}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--right);flex:none}.status-dot.remote{background:var(--accent)}.save-indicator{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:12.5px;font-weight:600}.save-indicator i{width:7px;height:7px;border-radius:50%;background:var(--muted)}.save-indicator.saving i{background:var(--accent);animation:pulse 1s ease-in-out infinite}.save-indicator.saved i{background:var(--right)}.save-indicator.failed{color:var(--wrong)}.save-indicator.failed i{background:var(--wrong)}@keyframes pulse{50%{opacity:.3}}.content-frame{width:calc(100% - 48px);margin:0 auto;padding:28px 0 64px}.content-frame.route-study{width:min(1120px,100% - 48px)}.bottom-nav{display:none}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:22px}.page-header h1{font-size:28px;font-weight:700;letter-spacing:-.02em;line-height:1.15}.page-header p{margin-top:6px;color:var(--muted)}.page-header-actions{display:flex;gap:8px}.empty-state{display:grid;justify-items:center;gap:10px;padding:64px 24px;border:1px dashed var(--line-strong);border-radius:var(--radius);text-align:center;color:var(--muted)}.empty-state h2{color:var(--text);font-size:24px;font-weight:560}.empty-state button{margin-top:8px}.study-layout{display:grid;grid-template-columns:290px minmax(0,1fr);gap:32px;align-items:start}.study-sidebar{position:sticky;top:84px;max-height:calc(100vh - 100px);overflow:auto}.study-view{width:min(720px,100%);margin:0 auto;min-width:0}.narrow-only{display:none!important}.setup-panel{display:grid;gap:18px;padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}.setup-header{display:flex;align-items:baseline;gap:10px}.setup-header h2{font-size:16px;font-weight:700}.setup-count{margin-left:auto;color:var(--muted);font-size:13px}.setup-count strong{color:var(--text);font-size:15px;font-variant-numeric:tabular-nums}.setup-group{display:grid;gap:8px}.setup-group h3{color:var(--faint);font-size:11.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase}.option-list{display:grid;gap:2px}.option-list button{display:flex;align-items:flex-start;gap:10px;width:100%;padding:7px 8px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--muted);text-align:left;font-size:14px}.option-list button:hover{background:var(--surface-2);color:var(--text)}.option-list button.active{color:var(--text);background:var(--surface-2)}.option-radio{width:16px;height:16px;margin-top:2px;flex:none;border:1.5px solid var(--line-strong);border-radius:50%}.option-list button.active .option-radio{border:5px solid var(--accent)}.option-text{display:grid;gap:1px}.option-text small{color:var(--faint);font-size:12.5px}.label-short{display:none}.setup-pending{display:grid;gap:10px;padding:12px;border:1px solid var(--accent);border-radius:12px;background:var(--accent-soft)}.setup-pending p{font-size:13.5px}.study-header{display:grid;gap:12px;margin-bottom:16px}.setup-summary{display:flex;align-items:center;gap:10px;width:100%;min-height:40px;padding:6px 12px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--muted);text-align:left;font-size:13.5px}.setup-summary:hover{border-color:var(--line-strong);color:var(--text)}.setup-summary-text{display:flex;flex-wrap:wrap;gap:2px 0;min-width:0}.setup-summary-text span:not(:last-child):after{content:"·";margin:0 8px;color:var(--faint)}.progress-row{display:flex;align-items:center;gap:12px}.progress-count{margin-right:auto;color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums}.progress-tally{display:flex;gap:8px;font-size:13px;font-variant-numeric:tabular-nums}.progress-tally b{font-weight:650}.right{color:var(--right)}.wrong{color:var(--wrong)}.progress-tally b.right:before{content:"✓ "}.progress-tally b.wrong:before{content:"✗ "}.study-card{position:relative;display:grid;gap:18px;padding:22px 26px 26px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(180deg,var(--surface-2),var(--surface));box-shadow:0 1px #ffffff08 inset,0 12px 40px #00000047;transition:border-color .2s}.study-card.result-correct{border-color:#5fcf8e8c}.study-card.result-wrong{border-color:#ef70708c}.study-card-top{display:flex;align-items:center;gap:12px;color:var(--faint);font-size:12.5px}.card-set{margin-left:auto;padding:2px 9px;border:1px solid var(--line-strong);border-radius:999px;color:var(--muted)}.prompt-word{font-size:clamp(34px,6.5vw,50px);font-weight:650;line-height:1.1;letter-spacing:-.025em;text-align:center;overflow-wrap:anywhere}.prompt-gender{color:var(--faint);font-weight:500}.study-card.typing .prompt-word{font-size:clamp(32px,6vw,44px);padding:6px 0 2px}.flip-surface{display:grid;align-content:center;gap:22px;min-height:min(46vh,380px);padding:12px 0;border:0;background:transparent;text-align:center}.study-card.flip.revealed .flip-surface{align-content:start}.study-card.flip.revealed .prompt-word{font-size:clamp(26px,5vw,34px);color:var(--muted)}.tap-hint{color:var(--faint);font-size:13px}.flip-answer{padding-top:20px;border-top:1px solid var(--line)}.english-answer{font-size:clamp(30px,5.5vw,42px);font-weight:650;letter-spacing:-.02em}.answer-block{display:grid;justify-items:center;gap:12px;text-align:center}.answer-meta{color:var(--muted);font-size:13px;letter-spacing:.02em}.italian-word{font-size:clamp(30px,5.5vw,42px);font-weight:650;letter-spacing:-.02em;line-height:1.1}.answer-note{color:var(--muted);font-size:14px}.form-list{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:0}.form-list div{display:grid;gap:2px;min-width:110px;padding:8px 14px;border-radius:10px;background:var(--surface-3)}.form-list dt{color:var(--faint);font-size:11.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.form-list dd{margin:0;font-size:20px}.conjugation-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;width:min(460px,100%);margin:0}.conjugation-grid.two-columns{grid-template-columns:repeat(2,minmax(0,1fr));width:min(340px,100%)}.conjugation-grid div{display:grid;gap:1px;padding:8px 10px;border-radius:10px;background:var(--surface-3)}.conjugation-grid dt{color:var(--faint);font-size:12px}.conjugation-grid dd{margin:0;font-size:19px}.answer-form{display:grid;gap:12px}input.answer-input:not([type]){min-height:54px;padding:10px 16px;border-radius:12px;font-size:22px;text-align:center}.answer-form.syntax-rejected .answer-input{border-color:var(--wrong)}.check-answer-button{min-height:48px;font-size:15.5px}.parse-preview{display:grid;gap:8px;min-height:64px;padding:12px 14px;border-radius:10px;background:var(--surface);border:1px solid var(--line);font-size:13.5px;transition:border-color .15s}.parse-preview.syntax-empty{align-content:center}.parse-preview.syntax-complete{border-color:#5fcf8e59}.parse-preview.syntax-invalid{border-color:#ef707059}.parse-hint{color:var(--faint);text-align:center}.parse-tokens{display:flex;flex-wrap:wrap;gap:6px}.parse-token{display:grid;gap:1px;padding:5px 10px 6px;border-radius:8px;background:var(--surface-3)}.parse-token small{color:var(--faint);font-size:11px;font-weight:600}.parse-token code{color:var(--text);font-size:14px}.parse-status{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px}.parse-status-label{display:inline-flex;align-items:center;gap:6px;font-weight:650}.parse-status-label i{width:7px;height:7px;border-radius:50%;background:var(--accent)}.syntax-complete .parse-status-label{color:var(--right)}.syntax-complete .parse-status-label i{background:var(--right)}.syntax-invalid .parse-status-label{color:var(--wrong)}.syntax-invalid .parse-status-label i{background:var(--wrong)}.syntax-partial .parse-status-label{color:var(--accent)}.parse-syntax{color:var(--faint)}.parse-line{color:var(--muted)}.parse-line strong{color:var(--text);font-weight:600}.result-body{display:grid;gap:16px}.result-banner{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px;border-radius:10px;font-size:16px}.result-banner.correct{background:var(--right-soft);color:var(--right)}.result-banner.wrong{background:var(--wrong-soft);color:var(--wrong)}.result-compare{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:16px;align-items:start}.you-typed,.expected{display:grid;gap:8px;padding:14px;border-radius:12px;background:var(--surface);border:1px solid var(--line)}.you-typed code{font-size:22px;overflow-wrap:anywhere}.result-correct .you-typed code{color:var(--right)}.result-wrong .you-typed code{color:var(--wrong)}.result-wrong .you-typed code.typed-marked{color:var(--text)}.you-typed .typed-wrong{color:var(--wrong)}.expected .answer-block{justify-items:start;text-align:left}.expected .form-list{justify-content:flex-start}.expected .italian-word{font-size:30px}.answer-problems{margin:0;padding-left:18px;display:grid;gap:4px;color:var(--muted);font-size:13.5px}.study-actions{display:flex;justify-content:center;gap:10px;margin-top:16px}.study-actions .wide{flex:1;max-width:420px;min-height:50px;font-size:16px}.wrong-button,.right-button{flex:1;max-width:260px;min-height:52px;font-size:16px}.wrong-button{background:var(--wrong-soft);border-color:#ef707066;color:var(--wrong)}.wrong-button:hover{background:#ef707033}.right-button{background:var(--right-soft);border-color:#5fcf8e66;color:var(--right)}.right-button:hover{background:#5fcf8e33}.setup-sub{display:grid;gap:8px;padding-left:26px}.scope-groups{display:grid;gap:12px;width:100%}.scope-group{display:grid;gap:6px}.scope-group-label{color:var(--faint);font-size:12.5px}.chip.type.selected{border-color:var(--pos);background:color-mix(in srgb,var(--pos) 14%,transparent)}.session-complete{display:grid;justify-items:center;gap:14px;padding:36px 24px;border:1px solid var(--line);border-radius:18px;background:var(--surface);text-align:center}.session-complete h2{font-size:30px;font-weight:560}.score-ring{display:grid;place-items:center;width:112px;height:112px;border-radius:50%;background:conic-gradient(var(--right) var(--score),var(--wrong-soft) 0)}.score-ring span{display:grid;place-items:center;width:92px;height:92px;border-radius:50%;background:var(--surface);font-size:26px;font-weight:700;font-variant-numeric:tabular-nums}.score-breakdown{color:var(--muted)}.score-breakdown b{font-weight:620}.missed-list{width:min(440px,100%);text-align:left}.missed-list h3{margin-bottom:8px;color:var(--muted);font-size:12.5px;letter-spacing:.06em;text-transform:uppercase}.missed-list ul{margin:0;padding:0;list-style:none;border:1px solid var(--line);border-radius:10px;overflow:hidden}.missed-list li{display:flex;justify-content:space-between;gap:12px;padding:9px 14px}.missed-list li+li{border-top:1px solid var(--line)}.missed-list .italian{font-size:18px}.missed-list .english{color:var(--muted)}.completion-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:4px}.review-round-label{margin-bottom:10px;color:var(--muted);font-size:13px}.review-sets{display:grid;gap:8px;width:min(440px,100%);text-align:left}.review-sets h3{font-size:16px}.review-sets p,.review-sets small{color:var(--muted);font-size:12.5px}.review-sets ul{display:grid;gap:8px;margin:0;padding:0;list-style:none}.review-sets li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--line);border-radius:10px}.review-sets li>div{display:grid;gap:3px}.review-sets button{flex-shrink:0}.mistake-tag-creator{display:flex;align-items:flex-end;gap:8px;width:min(440px,100%);padding-top:16px;border-top:1px solid var(--line);text-align:left}.mistake-tag-creator .field{flex:1}.words-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:28px;align-items:start}.words-rail{position:sticky;top:84px;min-width:0}.filter-rail{display:grid;gap:22px}.filter-section ul{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:minmax(0,1fr);gap:1px}.filter-heading{display:flex;align-items:center;justify-content:space-between;min-height:32px;margin-bottom:4px}.filter-heading h3{color:var(--muted);font-size:12.5px;font-weight:650;letter-spacing:.06em;text-transform:uppercase}.filter-item{min-width:0;display:flex;align-items:center;gap:8px;width:100%;min-height:34px;padding:0 10px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--muted);text-align:left;font-size:14px}.filter-item span:not(.hash){flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-item small{color:var(--faint);font-variant-numeric:tabular-nums}.filter-item .hash{color:var(--faint);width:15px;text-align:center}.filter-item:hover{background:var(--surface-2);color:var(--text)}.filter-item.selected{background:var(--accent-soft);color:var(--text);box-shadow:inset 2px 0 0 var(--accent)}.filter-tag-row{display:flex;align-items:center;gap:2px;min-width:0}.filter-tag-row .filter-item{flex:1}.tag-rename{display:flex;flex:1;gap:4px;min-width:0}.tag-rename input:not([type=checkbox]){min-height:32px;padding:4px 8px;font-size:13.5px}.filter-empty{color:var(--faint);font-size:13.5px;padding:4px 10px}.words-main{display:grid;gap:14px;min-width:0}.words-toolbar{display:flex;gap:8px}.search-field{position:relative;flex:1;display:flex;align-items:center}.search-field .icon{position:absolute;left:12px;color:var(--faint);pointer-events:none}.search-field input:not([type=checkbox]){padding-left:36px;min-height:42px}.filters-button{display:none}.filters-button.has-filters{border-color:var(--accent)}.bulk-bar{position:sticky;top:72px;z-index:5;display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--accent);border-radius:var(--radius);background:#171b2e;box-shadow:0 8px 24px #00000059}.bulk-count{margin-right:auto;padding-left:4px;font-weight:650}.bulk-input{display:flex;flex:1 1 320px;gap:6px}.bulk-input input:not([type=checkbox]){min-height:32px}.words-grid{display:grid;gap:12px;min-width:0}.grid-table-wrap{max-height:calc(100vh - 250px)}.grid-table{min-width:1080px}.grid-all{min-width:640px}.grid-noun{min-width:1360px}.grid-adjective{min-width:1240px}.grid-adjective select{min-width:120px}.grid-noun .derived-forms{white-space:nowrap}.grid-verb{min-width:1380px}.grid-adverb{min-width:720px}.grid-table th.select-cell,.grid-table td.select-cell{position:sticky;left:0;z-index:2;width:40px;padding:0 8px 0 12px!important;background:var(--surface);text-align:center}.grid-table th.select-cell{z-index:3}.grid-table td.select-cell input{display:block;margin:0 auto}.grid-table tbody tr:hover td{background:var(--surface-2)}.grid-table tbody tr.selected td{background:#1a1f35}.grid-table tbody tr.dirty td.select-cell{box-shadow:inset 3px 0 0 var(--accent)}.grid-table tbody tr.has-error td.select-cell{box-shadow:inset 3px 0 0 var(--wrong)}.grid-table tbody tr.new-row td{background:var(--surface-2)}.new-row-mark{display:block;color:var(--muted);font-size:16px;line-height:1;text-align:center}.dictionary-note-row td{padding:0 10px 10px!important;border-top:0!important}.grid-table .dictionary-note-row td{padding-left:52px!important;background:var(--surface-2)}.batch-table-wrap{container-type:inline-size}.dictionary-note{position:sticky;left:10px;max-width:calc(100cqw - 20px);display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;padding-right:28px;color:var(--muted);font-size:13px}.dictionary-note.missing,.dictionary-note.failed{color:var(--faint)}.dictionary-note a{color:var(--accent);font-weight:600;text-decoration:none}.dictionary-note a:hover{text-decoration:underline}.dictionary-review{color:var(--caution)}.dictionary-choices{display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px 6px}.dictionary-note button.chip{min-height:24px;padding:2px 9px;font-size:12.5px;white-space:normal;text-align:left}.dictionary-dismiss{position:absolute;top:-3px;right:0;padding:2px 6px;border:0;background:transparent;color:var(--faint);font-size:16px;line-height:1}.dictionary-dismiss:hover{color:var(--text)}.row-error-line td{padding:0 12px 10px 52px!important;border-top:0!important;color:var(--wrong);font-size:13px}.grid-all td:nth-child(3){width:34%}.grid-all td:nth-child(4){width:30%}.italian-cell{width:30%}.italian-open{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:0 9px;width:100%;padding:4px 6px;border:0;border-radius:6px;background:transparent;text-align:left}.italian-open:hover{background:var(--surface-3)}.italian-open span[lang]{font-size:15.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.italian-open small{grid-column:2;color:var(--faint);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.grid-save-bar{position:sticky;bottom:16px;z-index:6;display:flex;align-items:center;gap:8px;padding:10px 12px 10px 16px;border:1px solid var(--line-strong);border-radius:var(--radius);background:#1a1e24f5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 10px 30px #0006}.grid-save-bar p{flex:1;color:var(--muted);font-size:13.5px}.inventory-row-actions{display:flex;gap:2px}.row-open,.row-remove{display:inline-grid;place-items:center;width:30px;height:30px;border:0;border-radius:6px;background:transparent;color:var(--faint);font-size:18px}.row-open:hover{color:var(--text);background:var(--surface-3)}.row-remove:hover{color:var(--wrong);background:var(--wrong-soft)}.batch-table-wrap,.noun-patterns-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.batch-table,.noun-patterns-table{width:100%;border-collapse:separate;border-spacing:0}.batch-table th,.noun-patterns-table th{position:sticky;top:0;z-index:1;padding:9px 8px;border-bottom:1px solid var(--line);background:var(--surface);color:var(--faint);font-size:12px;font-weight:650;letter-spacing:.04em;text-align:left;text-transform:uppercase;white-space:nowrap}.batch-table td,.noun-patterns-table td{padding:5px 4px;vertical-align:middle}.batch-table td:first-child,.batch-table th:first-child{padding-left:10px}.batch-table tr+tr td,.noun-patterns-table tr+tr td{border-top:1px solid var(--line)}.batch-table input:not([type=checkbox]),.batch-table select,.noun-patterns-table input:not([type=checkbox]),.noun-patterns-table select{min-height:36px;padding-top:6px;padding-bottom:6px;font-size:14px;border-color:transparent;background-color:transparent}.batch-table input:not([type=checkbox]):hover,.batch-table select:hover,.noun-patterns-table input:not([type=checkbox]):hover,.noun-patterns-table select:hover{border-color:var(--line-strong)}.batch-table input:not([type=checkbox]):focus,.batch-table select:focus,.noun-patterns-table input:not([type=checkbox]):focus,.noun-patterns-table select:focus{border-color:var(--accent);background-color:var(--surface-3)}.batch-table input.suggested{color:var(--muted);font-style:italic}.inventory-edit-table{min-width:1100px}.noun-inventory-table{min-width:1240px}.verb-batch-table{min-width:1080px}.noun-batch-table{min-width:980px}.adjective-batch-table{min-width:1120px}.adjective-batch-table select{min-width:120px}.adjective-batch-table .derived-forms,.grid-adjective .derived-forms{white-space:nowrap}.noun-batch-table td:nth-child(1){width:17%}.noun-batch-table td:nth-child(4){width:70px}.derived-cell{min-width:220px}.derived-preview{display:grid;gap:1px;font-size:13px;line-height:1.3}.derived-preview.empty{color:var(--faint)}.derived-preview.invalid{color:var(--wrong)}.derived-preview .derived-forms{font-size:16px;color:var(--text)}.derived-preview small{color:var(--faint);font-size:12px}.derived-preview small.derived-warning{color:var(--wrong)}.row-action-cell{width:40px;text-align:center}.batch-form{display:grid;gap:14px}.batch-meta-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.batch-help{color:var(--muted);font-size:13.5px}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;background:#040507a8;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fade-in .15s ease}.sheet{display:flex;flex-direction:column;min-width:0;overflow:hidden;background:var(--bg);border:1px solid var(--line-strong);box-shadow:0 24px 80px #00000080}.sheet-wide{align-items:center;justify-content:center;padding:24px}.sheet-wide .sheet{width:min(1120px,100%);max-height:min(880px,100%);border-radius:18px;animation:rise .2s ease}.sheet-side{justify-content:flex-end}.sheet-side .sheet{width:min(480px,100%);height:100%;border-width:0 0 0 1px;animation:slide-in .2s ease}.sheet-bottom{align-items:center;justify-content:center;padding:24px}.sheet-bottom .sheet{width:min(420px,100%);max-height:100%;border-radius:18px}.sheet-header{display:flex;align-items:center;gap:12px;padding:18px 20px 14px;border-bottom:1px solid var(--line)}.sheet-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--accent-soft);color:var(--accent)}.sheet-title{flex:1;min-width:0}.sheet-title h2{font-size:24px;font-weight:560;line-height:1.15;overflow-wrap:anywhere}.sheet-title p{margin-top:3px}.sheet-body{display:grid;align-content:start;gap:16px;padding:18px 20px 20px;overflow:auto;flex:1}.sheet-actions{position:sticky;bottom:-20px;display:flex;align-items:center;justify-content:flex-end;gap:8px;margin:4px -20px -20px;padding:14px 20px;border-top:1px solid var(--line);background:var(--bg)}.word-editor{display:grid;gap:16px}.conjugation-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.derived-box{display:grid;gap:6px;padding:12px 14px;border-radius:10px;background:var(--surface);border:1px solid var(--line)}.study-options{display:grid;gap:8px}.derived-box .derived-preview{font-size:13.5px}@keyframes fade-in{0%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(12px)}}@keyframes slide-in{0%{transform:translate(40px);opacity:0}}.noun-patterns-panel{display:grid;gap:16px}.noun-patterns-body{display:grid;gap:14px}.section-intro{max-width:760px;color:var(--muted)}.jump-links{position:sticky;top:60px;z-index:5;display:flex;gap:4px;margin:0 -4px;padding:8px 4px;background:var(--bg);border-bottom:1px solid var(--line);overflow-x:auto}.jump-links a{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-radius:var(--radius-sm);color:var(--muted);font-size:14px;font-weight:600;white-space:nowrap}.jump-links a:hover{color:var(--text);background:var(--surface-2)}.noun-patterns-body{gap:44px}.grammar-section{display:grid;gap:14px;scroll-margin-top:120px}.grammar-section h2{font-size:20px;font-weight:700;letter-spacing:-.01em}.grammar-subheading{margin-top:18px;font-size:15px;font-weight:650}.declension-rules-table{min-width:720px}.morphology-form-cell{display:flex;align-items:center;gap:10px}.morphology-support-toggle{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:13px;white-space:nowrap;cursor:pointer}.morphology-suffix-input{max-width:140px;font-family:var(--mono)}.morphology-inference-set{display:grid;gap:12px;padding:16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.morphology-inference-set>.noun-pattern-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.morphology-inference-set>.noun-pattern-actions>input:not([type=checkbox]){flex:1 1 240px;max-width:360px;font-weight:600}.morphology-rule-checks{display:flex;flex-wrap:wrap;gap:6px}.drill-settings{display:grid;gap:10px}.drill-settings h3{margin:0;color:var(--faint);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em}.drill-settings+.drill-settings{margin-top:16px}.morphology-rule-checks label{display:inline-flex;align-items:center;gap:7px;min-height:32px;padding:0 11px;border:1px solid var(--line-strong);border-radius:999px;font-size:13.5px;cursor:pointer}.morphology-rule-checks label:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}.noun-pattern-actions{display:flex;gap:8px;align-items:center}.syntax-pipeline{display:flex;flex:10 1 300px;flex-wrap:wrap;gap:4px;align-items:center}.syntax-token{padding:3px 9px;border-radius:6px;font-family:var(--mono);font-size:12px;background:var(--surface-3);color:var(--text)}.syntax-token.article{background:#4fc4cf24;color:#9fe0e6}.syntax-token.noun{background:#f08a7824;color:#f5b5a8}.syntax-token.marker{background:#d38cf024;color:#e4c0f5}.syntax-token.optional{border:1px dashed currentColor;background:transparent}.syntax-settings-table,.syntax-fields-table{min-width:520px}.syntax-fields-table td:first-child{width:40px;padding-left:12px;color:var(--faint)}.syntax-fields-table .noun-pattern-actions{justify-content:flex-end}.syntax-fields-table .neutral-button{min-height:30px;padding:0 9px}.article-groups-table{min-width:980px}.article-groups-table th.grouped-heading{text-align:center;border-bottom:0;padding-bottom:2px}.article-groups-table thead th{position:static}.letter-sets{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:12px;max-width:900px}.letter-sets input{font-family:var(--mono);letter-spacing:.04em}.article-groups-table input.article-input{max-width:86px;text-align:center}.article-groups-table td:nth-child(2) input{max-width:none;min-width:230px}.syntax-exclusions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}.syntax-exclusions>span{color:var(--muted);font-size:13px}.exception-list{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px}.exception-item{display:grid;gap:2px;width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);text-align:left}.exception-item:hover{border-color:var(--line-strong);background:var(--surface-2)}.exception-item strong{font-weight:600}.exception-item span{color:var(--muted);font-size:13.5px}.exception-item small{color:var(--accent);font-size:12px}.exceptions-box{display:grid;gap:10px;padding:10px 14px;border:1px solid var(--line);border-radius:10px}.exceptions-box[open]{padding-bottom:14px}.exceptions-box summary{cursor:pointer;color:var(--muted);font-size:13.5px;font-weight:600}.exceptions-box summary:hover{color:var(--text)}.settings-view{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(460px,100%),1fr));gap:18px;align-items:start}.settings-view>.page-header{grid-column:1 / -1;margin-bottom:4px}.settings-section{display:grid;gap:16px;padding:22px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}.settings-section-heading h2{font-size:22px;font-weight:560}.settings-section-heading p{margin-top:4px;color:var(--muted);font-size:14px}.settings-credit{color:var(--faint);font-size:12.5px}.settings-credit a{color:var(--muted)}.sync-status-card{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:10px;background:var(--surface-2)}.sync-status-card>div{flex:1}.sync-status-card p{color:var(--muted);font-size:13px}.radio-cards{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0;padding:0;border:0}.radio-cards legend{margin-bottom:8px;padding:0;color:var(--muted);font-size:13px;font-weight:560}.radio-cards label{display:flex;gap:10px;align-items:flex-start;padding:12px;border:1px solid var(--line-strong);border-radius:10px;cursor:pointer}.radio-cards label.selected{border-color:var(--accent);background:var(--accent-soft)}.radio-cards strong{display:block;font-size:14px}.radio-cards small{display:block;color:var(--muted);font-size:12.5px}.restore-box{display:grid;gap:12px;padding:16px;border:1px dashed var(--line-strong);border-radius:12px}.restore-box h3{font-size:15px}.keyword-settings{display:grid;gap:14px}.keyword-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.keyword-grid input{font-family:var(--mono)}@media(max-width:1100px){.study-layout{grid-template-columns:minmax(0,1fr);gap:16px}.study-sidebar{display:none;position:static;max-height:none;overflow:visible;width:min(720px,100%);margin:0 auto}.study-layout.setup-open .study-sidebar{display:block}.narrow-only{display:revert!important}button.narrow-only,.setup-summary.narrow-only{display:inline-flex!important}.setup-summary.narrow-only{display:flex!important}.study-layout.setup-open .setup-summary{display:none!important}.setup-panel{gap:12px;padding:14px}.setup-group{grid-template-columns:64px minmax(0,1fr);align-items:start;gap:6px 10px}.setup-group h3{padding-top:8px}.setup-group>:not(h3){grid-column:2}.option-list{display:flex;flex-wrap:wrap;gap:6px}.option-list button{width:auto;padding:6px 12px;border:1px solid var(--line-strong);border-radius:999px;font-size:13.5px}.option-list button.active{border-color:var(--accent);background:var(--accent-soft)}.option-radio,.option-text small,.label-long{display:none}.label-short{display:inline}.setup-sub{padding-left:0}}@media(max-width:1000px){.words-layout{grid-template-columns:minmax(0,1fr)}.words-rail{display:none}.filters-button{display:inline-flex}}@media(max-width:760px){body{font-size:15px}.topbar{height:54px}.topbar-inner{gap:12px}.top-nav,.add-button span{display:none}.add-button{width:40px;padding:0}.topbar-inner{width:calc(100% - 32px)}.content-frame,.content-frame.route-study{width:calc(100% - 32px);padding:18px 0 calc(92px + env(safe-area-inset-bottom))}.jump-links{top:54px}.grid-table-wrap{max-height:none}.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:repeat(4,1fr);padding:6px 8px calc(6px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#0d0f12f0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.bottom-nav a{display:grid;justify-items:center;gap:2px;padding:5px 0;border-radius:10px;color:var(--faint);font-size:11.5px;font-weight:600}.bottom-nav a.active{color:var(--text)}.bottom-nav a.active .icon{color:var(--accent)}.page-header{margin-bottom:16px}.page-header h1{font-size:28px}.study-card{padding:18px 16px 20px;border-radius:16px}.flip-surface{min-height:48vh}.result-compare{grid-template-columns:minmax(0,1fr)}.study-actions:not(.typing){position:sticky;bottom:calc(70px + env(safe-area-inset-bottom));z-index:4;padding:10px 0 4px;margin-top:8px;background:linear-gradient(transparent,var(--bg) 30%)}.study-actions kbd,.check-answer-button kbd{display:none}.mistake-tag-creator{flex-direction:column;align-items:stretch}.words-toolbar .filters-button{padding:0 12px}.sheet-wide,.sheet-bottom{align-items:flex-end;padding:0}.sheet-wide .sheet,.sheet-side .sheet,.sheet-bottom .sheet{width:100%;height:auto;max-height:calc(100% - 24px);border-width:1px 0 0;border-radius:18px 18px 0 0;animation:rise .2s ease}.sheet-side{align-items:flex-end}.sheet-wide .sheet{height:calc(100% - 24px)}.sheet-body{padding:16px}.sheet-actions{margin:4px -16px -16px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));bottom:-16px}.field-row,.batch-meta-fields,.radio-cards{grid-template-columns:minmax(0,1fr)}.conjugation-fields,.keyword-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-section{padding:18px 16px}.batch-form .batch-table-wrap{border:0;background:transparent;overflow:visible}.batch-form .batch-table{min-width:0}.batch-form .batch-table thead{display:none}.batch-form .batch-table tbody{display:grid;gap:10px}.batch-form .batch-table tr{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 10px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.batch-form .batch-table td{display:grid;gap:4px;padding:0!important;border:0!important;width:auto!important}.batch-form .batch-table td:before{content:attr(data-label);color:var(--faint);font-size:11.5px;font-weight:600}.batch-form .batch-table td:first-child,.batch-form .batch-table td.derived-cell{grid-column:1 / -1}.batch-form .batch-table td:first-child{padding-right:34px!important}.batch-form .batch-table td.row-action-cell{position:absolute;top:6px;right:6px}.batch-form .batch-table td.row-action-cell:before{content:none}.batch-form .batch-table input:not([type=checkbox]),.batch-form .batch-table select{border-color:var(--line-strong);background-color:var(--surface-2)}.batch-form .batch-table tr.dictionary-note-row{display:block;margin-top:-4px;padding:0 4px;border:0;background:transparent}.batch-form .batch-table tr.dictionary-note-row td:before{content:none}.batch-form .batch-table tr.dictionary-note-row td:first-child{padding-right:0!important}.derived-cell{min-width:0}}@media(hover:none){.study-actions kbd,.check-answer-button kbd{display:none}}
