:root{--bg:oklch(1 0 0);--surface:oklch(.975 0 0);--surface-2:oklch(.95 0 0);--ink:oklch(.25 .006 75);--muted:oklch(.49 .006 75);--line:oklch(.89 0 0);--primary:oklch(.49 .11 75);--primary-pale:oklch(.96 .04 75);--accent:oklch(.38 .08 250);--good:oklch(.4 .08 155);--danger:oklch(.44 .15 25);--radius:10px;--z-dialog:10;--z-toast:20;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;font-size:15px;line-height:1.6}button,input,select,textarea{font:inherit}button,select{cursor:pointer}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{color:inherit}button{border:0;background:transparent}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button:disabled{cursor:default;opacity:.5}:focus-visible{outline:3px solid var(--primary);outline-offset:3px}button{transition:background .15s,color .15s}h1,h2,h3,p{margin-top:0}h1,h2,h3{text-wrap:balance}p{text-wrap:pretty}h1{font-size:29px;line-height:1.4;letter-spacing:-.025em;margin-bottom:7px}h2{font-size:21px;line-height:1.5}h3{font-size:16px}small{font-size:12px}[hidden]{display:none!important}.skip{position:fixed;top:-100px;left:12px;background:var(--bg);padding:10px;z-index:30}.skip:focus{top:8px}.app-shell{display:flex;min-height:100vh}.sidebar{width:216px;position:fixed;inset:0 auto 0 0;background:var(--surface);border-right:1px solid var(--line);padding:30px 18px 24px;display:flex;flex-direction:column}.brand{display:flex;gap:10px;align-items:center;color:var(--ink);margin:0 8px 43px;text-decoration:none!important}.brand-mark{font:42px/1 Georgia,serif;letter-spacing:-6px;padding-right:6px}.brand-mark span{color:var(--primary)}.brand strong{display:block;font-size:18px;letter-spacing:-.5px}.brand small{display:block;font-size:11px;color:var(--muted);letter-spacing:1px}.nav-label{font-size:11px;color:var(--muted);padding:0 13px;margin-bottom:9px}nav{display:flex;flex-direction:column;gap:4px}.nav-button{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:7px;width:100%;font-size:14px;text-align:left}.nav-button:hover{background:var(--surface-2)}.nav-button.active{background:var(--primary-pale);color:var(--primary);font-weight:600}.nav-icon{display:inline-flex;width:20px;height:20px;align-items:center;justify-content:center;font-size:17px}.nav-count{margin-left:auto;font:12px/1.4 ui-monospace,monospace;color:var(--muted)}.nav-break{height:1px;background:var(--line);margin:14px 10px}.side-bottom{margin-top:auto;padding:30px 9px 0}.side-note{font-size:11px;color:var(--muted);margin-bottom:22px}.small-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--primary);margin-right:5px}.quiet{font-size:12px;display:flex;width:100%;padding:8px 0;text-align:left;justify-content:space-between;color:var(--muted)}.quiet:hover{color:var(--ink)}.repo-link{display:block;font-size:11px;margin-top:14px;color:var(--muted)}main{margin-left:216px;min-width:0;width:calc(100% - 216px)}.topbar{height:77px;padding:0 42px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px}.topbar>span{font-size:12px;color:var(--muted)}.topbar>div{display:flex;align-items:center;gap:20px}.save-status{font-size:11px;color:var(--muted)}.primary{background:var(--primary);color:white;border:1px solid var(--primary);border-radius:7px;padding:9px 16px;font-size:13px;font-weight:600}.primary:hover{background:oklch(.42 .10 75)}.primary span{margin-left:10px}.secondary{border:1px solid var(--line);background:var(--bg);border-radius:7px;padding:8px 14px;font-size:13px}.secondary:hover{background:var(--surface)}.workspace{padding:38px 42px;max-width:1480px;margin:auto}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:30px}.page-heading p{color:var(--muted);font-size:13px;margin-bottom:0}.total-label{font-size:12px;color:var(--muted);white-space:nowrap}.search-row{display:flex;gap:12px}.search-field{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:8px;flex:1;padding:0 13px;min-width:0;height:44px}.search-field:focus-within{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-pale)}.search-field>span{font-size:26px;line-height:1;color:var(--muted)}input[type=search]{border:0;width:100%;min-width:0;outline:none;background:transparent;color:var(--ink);font-size:13px}input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}kbd{border:1px solid var(--line);border-radius:3px;padding:0 5px;color:var(--muted);font-size:11px}select{border:1px solid var(--line);border-radius:7px;color:var(--muted);background:var(--bg);padding:8px 32px 8px 12px;max-width:100%;font-size:12px;min-height:36px}.search-row>select{max-width:245px}.filter-row{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:20px 0 24px}.filter-buttons{display:flex;gap:4px;flex-wrap:wrap}.filter{font-size:12px;color:var(--muted);padding:6px 12px;border-radius:6px}.filter:hover{background:var(--surface)}.filter.active{background:var(--surface-2);color:var(--ink);font-weight:600}.filter-row>select{border:0;padding-right:18px}.search-scope{background:var(--primary-pale);color:var(--primary);padding:9px 14px;margin:0 0 18px;border-radius:7px;font-size:12px}.knowledge-layout{display:grid;grid-template-columns:minmax(0,1fr) 248px;gap:30px;align-items:start}.list-caption{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:11px;color:var(--muted);padding:0 0 12px;border-bottom:1px solid var(--line)}.entry{display:grid;grid-template-columns:minmax(0,1fr) 28px;align-items:start;gap:12px;padding:19px 2px;border-bottom:1px solid var(--line)}.entry-open{text-align:left;padding:0;min-width:0;width:100%;border-radius:5px}.entry-open:hover .entry-term{color:var(--primary)}.entry-heading{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px}.entry-term{font-family:Georgia,"Times New Roman",serif;font-size:23px;line-height:1.4;overflow-wrap:anywhere;transition:color .15s}.entry-term.sentence{font-size:18px;line-height:1.7}.entry-term.grammar{font-family:inherit;font-size:17px;font-weight:600}.phonetic{font-size:12px;color:var(--muted)}.entry-meaning{font-size:13px;margin:5px 0 9px;line-height:1.7;color:var(--ink)}.entry-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:10px;color:var(--muted)}.entry-meta>span+span:before{content:'·';margin-right:8px}.entry-status{color:var(--good)}.favorite-button{font-size:22px;line-height:1.2;color:var(--muted);padding:5px 2px}.favorite-button[aria-pressed=true]{color:var(--primary)}.favorite-button:hover{color:var(--primary)}.context-panel{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:22px;position:sticky;top:24px}.context-panel h2{font-size:14px;margin:0 0 17px}.context-label{font-size:10px;color:var(--muted);margin-bottom:8px}.source-title{font-size:17px;line-height:1.6;font-weight:600;margin-bottom:12px}.context-panel p{font-size:12px;color:var(--muted);line-height:1.9;margin-bottom:16px}.context-panel .secondary{width:100%;text-align:left;font-size:12px}.context-panel hr{border:0;border-top:1px solid var(--line);margin:24px 0}.context-counts{display:flex;gap:16px;font-size:12px;color:var(--muted);margin-bottom:12px}.context-counts strong{color:var(--ink);font-size:17px;font-weight:600;margin-right:4px}.context-panel progress{width:100%;height:5px;accent-color:var(--primary);margin:8px 0}.context-panel .small-hint{font-size:11px;margin-bottom:0}.pagination{display:flex;align-items:center;justify-content:space-between;margin:22px 0;font-size:12px;color:var(--muted)}.workspace-footer{font-size:10px;color:var(--muted);padding-top:25px;border-top:1px solid var(--line);margin-top:34px;margin-bottom:0}.empty{padding:50px 20px;text-align:center}.empty h2{font-size:18px;margin-bottom:10px}.empty p{color:var(--muted);font-size:13px}.empty .secondary{margin-top:10px}.loading-row{height:95px;border-bottom:1px solid var(--line);background:linear-gradient(90deg,var(--surface),var(--bg));animation:pulse 1.2s infinite alternate}@keyframes pulse{to{opacity:.45}}dialog{border:1px solid var(--line);border-radius:14px;padding:0;width:min(760px,calc(100% - 32px));max-height:calc(100dvh - 48px);color:var(--ink);background:var(--bg);box-shadow:0 20px 80px oklch(0 0 0/.15);z-index:var(--z-dialog)}dialog::backdrop{background:oklch(.2 0 0/.38)}.dialog-toolbar{display:flex;align-items:center;justify-content:space-between;padding:16px 26px;border-bottom:1px solid var(--line);gap:20px;position:sticky;top:0;background:var(--bg);z-index:1}.dialog-toolbar h2{font-size:16px;margin:0}.dialog-toolbar>span{font-size:12px;color:var(--muted)}.icon-button{font-size:25px;line-height:1;padding:3px 5px;border-radius:4px;color:var(--muted)}.icon-button:hover{background:var(--surface-2)}#detail-body,#utility-body{padding:28px}.detail-title{font-family:Georgia,"Times New Roman",serif;font-size:32px;line-height:1.5;margin-bottom:8px;overflow-wrap:anywhere}.detail-title.long{font-size:23px;line-height:1.8}.detail-title.grammar{font-family:inherit;font-size:23px;font-weight:600;line-height:1.6}.detail-meaning{font-size:16px;line-height:1.9;margin:18px 0 25px}.detail-section{margin-top:26px}.detail-section h3{font-size:12px;color:var(--muted);margin-bottom:12px}.prose{font-size:14px;line-height:2;white-space:pre-wrap;overflow-wrap:anywhere;max-width:75ch}.detail-actions{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.tag{font-size:10px;border:1px solid var(--line);padding:3px 7px;border-radius:5px;color:var(--muted);display:inline-block;margin:0 5px 5px 0}.source-link{font-size:12px;display:block;padding:6px 0;color:var(--accent);text-align:left}.note-label{font-size:12px;display:block;margin-bottom:8px;color:var(--muted)}textarea{resize:vertical;width:100%;min-height:100px;border:1px solid var(--line);border-radius:8px;padding:12px;color:var(--ink);background:var(--surface);font-size:13px}.note-toolbar{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-top:10px;font-size:11px;color:var(--muted)}.mastery-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:24px}.mastery-row label{font-size:12px;color:var(--muted)}.utility-section{padding:0 0 24px;margin:0 0 24px;border-bottom:1px solid var(--line)}.utility-section:last-child{border:0;margin:0;padding:0}.utility-section h3{font-size:16px;margin-bottom:8px}.utility-section p,.utility-section li{font-size:13px;line-height:1.9;color:var(--muted)}.utility-section ul,.utility-section ol{padding-left:22px}.utility-section input[type=file]{font-size:12px;width:100%;margin:12px 0}.utility-section a{font-size:13px}.inline-notice{border:1px solid var(--line);background:var(--surface);padding:13px;border-radius:8px;font-size:12px;color:var(--muted)}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:var(--z-toast);background:var(--ink);color:var(--bg);border-radius:8px;padding:11px 20px;font-size:13px;box-shadow:0 4px 16px oklch(0 0 0/.12);max-width:calc(100% - 30px)}.archive{padding:25px 0;border-top:1px solid var(--line)}.archive h2{font-size:22px;margin:0 0 10px}.archive p{font-size:13px;color:var(--muted);max-width:70ch;line-height:1.9}.archive-meta{display:flex;gap:16px;flex-wrap:wrap;margin:18px 0;color:var(--muted);font-size:12px}.archive-actions{display:flex;gap:10px;flex-wrap:wrap}.review-setup{max-width:650px;margin:0 auto;padding:30px 0}.review-setup h2{font-size:24px}.review-setup>p{font-size:14px;color:var(--muted)}.review-options{display:flex;flex-direction:column;gap:16px;margin:28px 0}.review-option{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:19px;border:1px solid var(--line);border-radius:9px}.review-option strong{display:block;font-size:14px;margin-bottom:3px}.review-option small{color:var(--muted)}.review-option>span{font:21px Georgia,serif}.review-option.active{border-color:var(--primary);background:var(--primary-pale)}.review-setup .primary{width:100%;padding:13px}.review-progress{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--muted);margin-bottom:18px}.review-card{border:1px solid var(--line);border-radius:12px;min-height:330px;padding:40px;text-align:center;display:flex;flex-direction:column;justify-content:center;max-width:800px;margin:0 auto}.review-card .detail-title{font-size:32px}.review-card .detail-title.long{font-size:22px}.review-card .phonetic{margin-top:6px}.review-answer{padding-top:22px;border-top:1px solid var(--line);margin-top:24px;text-align:left}.review-answer .prose{font-size:13px;max-height:280px;overflow:auto}.review-controls{display:flex;justify-content:center;gap:12px;margin:24px 0}.review-controls button{min-width:150px;padding:12px}.review-hint{text-align:center;color:var(--muted);font-size:11px}.danger{color:var(--danger)}
@media(min-width:1550px){.workspace{padding:45px 62px}.knowledge-layout{grid-template-columns:minmax(0,1fr) 285px;gap:44px}.topbar{padding:0 62px}}
@media(max-width:1150px){.sidebar{width:190px;padding-left:12px;padding-right:12px}main{margin-left:190px;width:calc(100% - 190px)}.workspace{padding:30px 28px}.topbar{padding:0 28px}.knowledge-layout{grid-template-columns:minmax(0,1fr) 215px;gap:22px}.context-panel{padding:18px}.save-status{display:none}.list-caption>span:last-child{display:none}}
@media(max-width:900px){.knowledge-layout{grid-template-columns:minmax(0,1fr)}.context-panel{position:static;display:grid;grid-template-columns:1fr 1fr;gap:24px}.context-panel hr{display:none}.context-panel h2{margin-bottom:10px}.context-panel p{margin-bottom:12px}.sidebar{width:180px}main{margin-left:180px;width:calc(100% - 180px)}.brand{margin-left:4px}.brand strong{font-size:17px}.topbar{height:65px}}
@media(max-width:650px){.app-shell{display:block}.sidebar{width:auto;position:static;border-right:0;border-bottom:1px solid var(--line);padding:18px 18px 12px}.brand{margin:0 0 18px;gap:9px}.brand-mark{font-size:35px}.brand strong{font-size:18px}.brand small{font-size:10px}.nav-label,.side-note,.repo-link{display:none}nav{flex-direction:row;flex-wrap:wrap;gap:5px}.nav-button{width:auto;padding:7px 10px;font-size:12px;gap:6px}.nav-icon{font-size:15px;width:16px}.nav-count{font-size:10px;margin-left:0}.nav-break{display:none}.side-bottom{position:absolute;right:18px;top:17px;padding:0;margin:0}.quiet{font-size:10px;padding:4px 0;gap:10px}main{margin-left:0;width:100%}.topbar{height:57px;padding:0 20px}.topbar>span{font-size:11px}.topbar .primary{font-size:11px;padding:7px 12px}.workspace{padding:26px 20px}.page-heading{margin-bottom:24px;gap:12px}h1{font-size:25px}.page-heading p{font-size:12px}.total-label{font-size:10px}.search-row{flex-wrap:wrap;gap:10px}.search-field{flex-basis:100%;height:43px}.search-row>select{max-width:100%;width:100%}.filter-row{margin:16px 0 22px;align-items:flex-start}.filter{padding:6px 8px;font-size:11px}.filter-row>select{font-size:10px;min-height:30px;padding:6px 16px 6px 2px}.entry{padding:18px 0}.entry-term{font-size:22px}.entry-term.sentence{font-size:17px}.entry-heading{gap:4px 9px}.entry-meaning{font-size:12px}.entry-meta{font-size:9px;gap:6px}.context-panel{grid-template-columns:1fr;padding:20px;gap:16px}.context-panel>div+div{border-top:1px solid var(--line);padding-top:16px}.context-panel p{font-size:12px}.context-panel .source-title{font-size:16px}.workspace-footer{font-size:10px;line-height:1.9}#detail-body,#utility-body{padding:22px}.dialog-toolbar{padding:14px 20px}.detail-title{font-size:29px}.detail-title.long{font-size:21px}.detail-meaning{font-size:14px}.prose{font-size:13px}.review-card{padding:26px 20px;min-height:300px}.review-controls button{min-width:0;flex:1}.review-card .detail-title{font-size:28px}.review-card .detail-title.long{font-size:20px}.review-setup{padding-top:10px}.review-option{padding:16px}.review-setup h2{font-size:21px}.review-options{gap:12px}.note-toolbar{align-items:flex-start}.note-toolbar>span{max-width:190px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Pronunciation is available wherever English is read. */
.spoken-word{display:inline;font:inherit;color:inherit;line-height:inherit;padding:0;border-radius:3px;text-align:inherit;vertical-align:baseline;text-decoration:underline;text-decoration-color:oklch(.73 .025 75 / .5);text-decoration-style:dotted;text-underline-offset:.22em;cursor:pointer}.spoken-word:hover,.spoken-word:focus-visible{color:var(--primary);background:var(--primary-pale);text-decoration-style:solid}.pronunciation-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;color:var(--muted);font-size:12px;margin:0 0 20px}.pronunciation-toolbar label{display:flex;align-items:center;gap:8px}.pronunciation-toolbar select{min-height:32px;padding-top:4px;padding-bottom:4px}.entry-content{min-width:0}.entry-reading-actions{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-top:10px}.entry-reading-actions .secondary{font-size:11px;padding:5px 10px;min-height:34px}.entry-details{font-size:11px;color:var(--accent);padding:5px 8px;margin-left:auto}.list-audio-hint{font-size:11px;color:var(--muted)}.natural-player{border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:14px 16px;margin:14px 0 22px;display:flex;justify-content:space-between;align-items:center;gap:12px}.natural-player-copy{min-width:0}.natural-player strong{display:block;font-family:Georgia,serif;font-size:17px;font-weight:normal;overflow-wrap:anywhere}.natural-player p{font-size:12px;color:var(--muted);margin:4px 0}.natural-player a{font-size:11px}.natural-player-actions{display:flex;gap:6px;flex-wrap:wrap;flex-shrink:0;max-width:250px}.natural-player-actions .secondary{font-size:11px;padding:6px 10px}.natural-player[data-phase=error] p{color:var(--danger)}.review-card .detail-actions{justify-content:center;margin-bottom:0}.dialog-accent{display:flex;align-items:center;gap:6px;margin-left:auto;font-size:11px;color:var(--muted)}.dialog-accent select{min-height:30px;padding-top:3px;padding-bottom:3px}.dialog-toolbar{gap:12px}.detail-title .spoken-word{line-height:inherit}#detail-dialog .natural-player{scroll-margin-top:70px}.entry-heading .entry-term{display:block}.entry-meta{margin-top:8px}@media(max-width:650px){.pronunciation-toolbar{font-size:11px;gap:8px;margin-bottom:16px}.pronunciation-toolbar>span{flex-basis:100%}.natural-player{flex-direction:column;align-items:stretch;padding:12px}.natural-player-actions{max-width:none}.natural-player strong{font-size:16px}.dialog-toolbar{padding-left:16px;padding-right:16px}.dialog-accent{font-size:10px}.dialog-accent select{font-size:11px;max-width:88px;padding-left:7px}.entry-reading-actions .secondary{min-height:38px}.spoken-word{touch-action:manipulation}}

.archive-notes{font-size:12px;color:var(--muted);margin-top:18px}.archive-notes summary{cursor:pointer;color:var(--accent)}.archive-notes .prose{font-size:12px;margin-top:14px}.archive>p:first-of-type{white-space:pre-line}

/* Morphology follows the same quiet, readable list and local-data controls. */
.morphology-tools{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;margin:-8px 0 22px;padding-bottom:18px;border-bottom:1px solid var(--line)}.morphology-tools p{margin:0;color:var(--muted);font-size:12px;max-width:65ch}.morphology-form{font:27px/1.4 Georgia,serif;overflow-wrap:anywhere}.morphology-type{font-size:11px;color:var(--muted);border:1px solid var(--line);border-radius:4px;padding:1px 7px}.morphology-words{display:flex;flex-wrap:wrap;gap:6px 16px;margin:10px 0 12px}.word-family-link{font:16px/1.7 Georgia,serif;color:var(--accent);padding:2px 0;text-align:left;overflow-wrap:anywhere}.word-family-link:hover{text-decoration:underline}.word-family-link span{font:11px/1 inherit}.morphology-entry .entry-details{margin-left:0;padding-left:0}.morphology-summary{display:flex;flex-wrap:wrap;gap:12px;color:var(--muted);font-size:12px}.morphology-summary strong{margin-left:7px;font-weight:600;color:var(--ink)}
@media(min-width:651px){.sidebar{overflow-y:auto}.sidebar nav{flex-shrink:0}.side-bottom{flex-shrink:0}.brand{flex-shrink:0}}
@media(max-width:650px){.morphology-tools{display:block;margin:0 0 18px}.morphology-tools p{margin-top:10px;font-size:12px}.morphology-form{font-size:25px}.morphology-words{gap:8px 14px}.word-family-link{min-height:36px;font-size:16px;display:inline-flex;align-items:center;gap:4px}.page-heading{flex-wrap:wrap}.total-label{white-space:normal}}
