.vocab-term[type="button"] { background: none; border: 0; padding: 0; margin: 0; font: inherit; font-weight: 650; text-align: left; cursor: pointer; color: var(--vocab-term); }
.vocab-term[type="button"]:hover { text-decoration: underline; }
.vocab-term[type="button"]:focus-visible { outline: 2px solid var(--link); outline-offset: 3px; }
#my-words-link { width: 100%; margin: .6rem 0; }
body.learning-open #detail, body.learning-open #empty-state { display: none; }
#learning-view { max-width: 960px; margin: 0 auto; }
.learning-actions { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin: .65rem 0; }
.familiarity-control { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .6rem; margin: .6rem 0; }
.familiarity-control label { min-width: 0; }
.familiarity-control small { flex-basis: 100%; }
.familiarity-control select { font-size: .9rem; }
.familiarity-message { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; margin: .5rem 0; }
.familiarity-message:empty { display: none; }
.familiarity-label { text-transform: capitalize; }
.learning-actions input { flex: 1; min-width: 120px; }
.learning-actions select, .learning-select { max-width: 100%; background: var(--input); color: var(--text); border: 1px solid var(--input-border); padding: .5rem; border-radius: 5px; }
.learning-card { border: 1px solid var(--input-border); border-radius: 8px; padding: .85rem; margin: .7rem 0; overflow-wrap: anywhere; }
.learning-card p { margin: .4rem 0; }
.learning-card h3 { margin: 0 0 .4rem; }
.learning-card textarea { box-sizing: border-box; width: 100%; min-height: 65px; background: var(--input); color: var(--text); border: 1px solid var(--input-border); padding: .5rem; }
.learning-card details { margin-top: .6rem; }
.learning-dialog button:disabled, #learning-view button:disabled { opacity: .55; cursor: default; }
.learning-meta { color: var(--translation); font-size: .86rem; overflow-wrap: anywhere; }
.learning-dialog { box-sizing: border-box; width: min(700px, calc(100vw - 24px)); max-height: calc(100dvh - 32px); padding: 0; border: 1px solid var(--input-border); border-radius: 10px; color: var(--text); background: var(--surface); }
.learning-dialog::backdrop { background: #0008; }
.learning-dialog[open] { display: flex; flex-direction: column; }
.learning-dialog header, .learning-dialog footer { flex: none; display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; padding: .85rem 1rem; background: var(--surface); }
.learning-dialog header h2 { flex: 1; margin: 0; min-width: 0; overflow-wrap: anywhere; }
.learning-dialog .dialog-body { padding: 0 1rem 1rem; overflow-y: auto; min-height: 0; }
.learning-dialog footer { border-top: 1px solid var(--input-border); }
.learning-dialog details { margin: .6rem 0; }
.learning-dialog summary { cursor: pointer; color: var(--link); }
.learning-dialog select, .learning-dialog input { box-sizing: border-box; max-width: 100%; }
.learning-dialog .wide { width: 100%; }
#lookup-selection { margin: .5rem 0; }
#lookup-dialog { width: min(600px, calc(100vw - 24px)); }
#lookup-dialog header { padding: .5rem .85rem .2rem; }
#lookup-title { font-size: 1rem; font-weight: 600; color: var(--muted); }
#lookup-close { padding: .35rem .65rem; background: transparent; color: var(--muted); min-height: 32px; }
#lookup-dialog .dialog-body { padding: 0 .85rem .65rem; }
#lookup-search-form { flex-wrap: nowrap; padding: 0; margin: .25rem 0 .6rem; border: 0; border-radius: 0; }
#lookup-search { min-width: 0; width: 0; padding: .5rem .65rem; }
#lookup-search-form button { flex: none; padding: .5rem .7rem; }
#lookup-language { width: auto; max-width: 45%; min-width: 0; font-size: .85rem; }
#lookup-message { margin: .5rem 0; font-size: .9rem; }
#lookup-message:empty { display: none; }
.lookup-group { margin: .45rem 0; overflow-wrap: anywhere; }
.lookup-group h3 { display: flex; flex-wrap: wrap; align-items: baseline; gap: .25rem .6rem; margin: 0 0 .2rem; font-size: 1.15rem; }
.lookup-pos { font-size: .8rem; font-weight: 400; color: var(--muted); }
.lookup-form, .lookup-group > .learning-meta { margin: .15rem 0 .35rem; }
.lookup-meanings { padding-left: 1.35rem; margin: .2rem 0 .55rem; }
.lookup-meanings > li::marker { color: var(--muted); font-size: .78rem; }
.lookup-sense { display: flex; align-items: baseline; gap: .6rem; width: 100%; min-height: 32px; padding: .25rem .3rem; background: transparent; color: var(--text); text-align: left; font: inherit; font-size: .93rem; line-height: 1.4; font-weight: 400; }
.lookup-sense:hover, .lookup-sense[aria-expanded="true"] { background: var(--focus); }
.lookup-definition { flex: 1; min-width: 0; }
.lookup-source { flex: none; font-size: .68rem; color: var(--muted); background: var(--vocab-bg); border-radius: 4px; padding: .08rem .3rem; white-space: nowrap; }
.lookup-source::after { content: ' ▾'; }
.lookup-sense[aria-expanded="true"] .lookup-source::after { content: ' ▴'; }
#lookup-dialog details { margin: .4rem 0; }
#lookup-dialog summary { font-size: .87rem; }
#lookup-other-matches > .lookup-group { margin: .65rem 0; }
#lookup-entry-details { margin: .25rem 0 .6rem .3rem; border-left: 2px solid var(--border); padding: .1rem .65rem; font-size: .86rem; }
#lookup-entry-details p, #lookup-analysis p { margin: .4rem 0; }
#lookup-options > details { margin-left: .7rem; }
#lookup-save-status { display: block; margin-top: .4rem; }
.learning-explanation { border-left: 3px solid var(--link); padding-left: .75rem; }
.grammar-prompt { font-size: 1.15rem; line-height: 2.2; }
.grammar-prompt select { width: auto; max-width: 100%; margin: .2rem; }
.learning-resources a { display: inline-block; margin: .3rem .8rem .3rem 0; }
.lookup-chips { display: flex; flex-wrap: wrap; gap: .3rem; margin: .35rem 0; }
.lookup-chip { display: inline-block; padding: .12rem .4rem; border-radius: 5px; background: var(--vocab-bg); color: var(--muted); font-size: .74rem; font-weight: 400; overflow-wrap: anywhere; }
.lookup-chip:empty { display: none; }
.lookup-fact { display: grid; grid-template-columns: minmax(5rem, 1fr) minmax(0, 3fr); gap: .2rem .6rem; padding: .4rem 0; border-bottom: 1px solid var(--border); }
.lookup-fact > small, .lookup-fact > details, .lookup-fact > .lookup-chips { grid-column: 1 / -1; }
.lookup-detail-group { overflow-wrap: anywhere; }
.lookup-raw { white-space: pre-wrap; overflow-wrap: anywhere; max-height: 22rem; overflow: auto; font-size: .75rem; background: var(--vocab-bg); padding: .6rem; border-radius: 6px; }
.word-forms > .learning-meta { font-size: .75rem; }
#lookup-dialog .form-paradigm { margin: .65rem 0; border: 1px solid var(--border); border-radius: 7px; overflow: hidden; }
#lookup-dialog .form-paradigm > summary { padding: .65rem; font-weight: 600; color: var(--text); background: var(--vocab-bg); }
.form-paradigm > .learning-meta, .form-table-host > .learning-meta { padding: 0 .6rem; font-size: .72rem; }
.form-panel-picker { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem; margin: .6rem; color: var(--muted); font-size: .78rem; }
.form-panel-picker select { flex: 1; min-width: 0; font-size: .82rem; }
.form-table-scroll { overflow-x: auto; max-width: 100%; isolation: isolate; }
.form-table-scroll:focus-visible, .source-json-code:focus-visible { outline: 2px solid var(--link); outline-offset: -2px; }
.form-table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: .85rem; line-height: 1.45; text-align: left; }
.form-table caption { text-align: left; padding: .4rem .6rem; font-size: .73rem; color: var(--muted); }
.form-table th, .form-table td { padding: .5rem .6rem; border-top: 1px solid var(--border); vertical-align: top; overflow-wrap: anywhere; }
.form-table thead th { font-size: .73rem; color: var(--muted); font-weight: 600; background: var(--surface); }
.form-table tbody th { font-weight: 500; width: 30%; }
.form-person-table tbody th { white-space: nowrap; width: 38%; }
.form-table tbody tr:nth-child(even) { background: var(--vocab-bg); }
.form-table .form-number-divider > * { border-top: 2px solid var(--input-border); }
.form-table-wide { min-width: 29rem; }
.form-table-wide tbody th { width: 6rem; }
.form-table-wide tr > :first-child { position: sticky; left: 0; background: var(--surface); border-right: 1px solid var(--border); }
.form-variant + .form-variant { margin-top: .4rem; padding-top: .35rem; border-top: 1px dotted var(--border); }
.form-variant small { display: block; font-size: .68rem; line-height: 1.4; margin-top: .15rem; }
.form-missing { color: var(--muted); }
.source-json { min-width: 0; }
.source-json > summary { padding: .3rem 0; }
.json-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem; margin: .5rem 0; }
.json-toolbar button { font-size: .75rem; padding: .4rem .55rem; min-height: 32px; }
.json-toolbar select { min-width: 0; font-size: .8rem; flex: 1 1 10rem; }
.json-toolbar input[type="search"] { min-width: 0; width: 100%; flex: 1 1 10rem; font-size: .8rem; padding: .45rem; }
.json-toolbar .learning-meta { font-size: .72rem; }
.json-search-toolbar { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; }
.json-search-toolbar .learning-meta { grid-column: 1 / -1; }
.json-toolbar [aria-pressed="true"] { box-shadow: inset 0 0 0 2px var(--link); }
.source-json-code { max-height: min(24rem, 50dvh); tab-size: 2; line-height: 1.6; margin: .5rem 0; }
.source-json-code.no-wrap { white-space: pre; overflow-wrap: normal; }
.source-json-code mark { background: var(--highlight); color: var(--highlight-text); }
.source-json-code mark.current-match { outline: 2px solid var(--link); outline-offset: 1px; }
.source-json [hidden] { display: none !important; }
.source-json .source-json-tree { max-height: min(30rem, 55dvh); overflow: auto; border: 1px solid var(--input-border); border-radius: 7px; padding: .4rem; background: var(--vocab-bg); font: .78rem/1.6 ui-monospace, SFMono-Regular, Consolas, monospace; tab-size: 2; }
.source-json .source-json-tree:focus-visible, .source-json summary:focus-visible, .source-json button:focus-visible, .source-json li:focus-visible { outline: 2px solid var(--link); outline-offset: -2px; border-radius: 3px; }
#lookup-dialog .source-json .json-property { margin: 0; }
.source-json .json-property { min-width: 0; overflow-wrap: anywhere; }
.source-json .json-property > summary, .source-json div.json-property { padding: .3rem .25rem; }
#lookup-dialog .source-json .json-property > summary { font: inherit; color: var(--text); }
.source-json .json-property > summary:hover { background: var(--focus); border-radius: 4px; }
.source-json .json-children { list-style: none; margin: 0 0 .2rem .4rem; padding: 0 0 0 .8rem; border-left: 1px solid var(--input-border); }
.source-json .json-children > li { min-width: 0; }
.source-json .json-key { font-weight: 600; color: var(--text); white-space: pre-wrap; }
.source-json .json-brackets, .source-json .json-null { color: var(--muted); }
.source-json .json-string { color: var(--vocab-term); white-space: pre-wrap; }
.source-json .json-number, .source-json .json-boolean { color: var(--link); }
.source-json .json-type { display: inline; margin-left: .55rem; color: var(--muted); font: .7rem/1.5 system-ui, sans-serif; }
.source-json .json-full-value { white-space: pre-wrap; overflow-wrap: anywhere; margin: .2rem 0 .4rem .8rem; padding: .4rem; border-left: 2px solid var(--input-border); font: inherit; }
.source-json .json-more { padding: .3rem 0; }
.source-json .json-more button { font-size: .75rem; padding: .45rem .55rem; text-align: left; }
.provider-card { border-top: 1px solid var(--border); padding: .7rem 0 .3rem; overflow-wrap: anywhere; }
.provider-heading, .provider-brand { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin: .2rem 0; }
.provider-brand { color: var(--muted); font-size: .8rem; }
.provider-brand img { display: block; }
#lookup-dialog .provider-entry { border: 1px solid var(--border); border-radius: 7px; padding: .5rem .65rem; margin: .5rem 0; }
.provider-entry > summary > .lookup-pos { margin-left: .5rem; }
.lookup-section-title { margin: .6rem 0 .35rem; color: var(--muted); font-size: .75rem; font-weight: 600; }
.provider-meaning > summary { padding: .3rem 0; }
.provider-meaning > summary small { display: block; margin: .1rem 0 0 1rem; font-size: .72rem; }
.provider-pair { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: .2rem .7rem; padding: .5rem 0; border-bottom: 1px solid var(--border); line-height: 1.45; font-size: .88rem; }
.provider-original { color: var(--muted); }
.provider-translation { font-weight: 500; }
.provider-pair .lookup-chips { grid-column: 1 / -1; }
.provider-content { white-space: pre-line; line-height: 1.55; }
.lookup-item-replay { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; margin: .4rem 0; }
.lookup-item-replay[hidden] { display: none; }
.lookup-item-replay small { flex-basis: 100%; font-size: .75rem; }
.lookup-item-replay select { min-width: 0; max-width: 100%; font-size: .78rem; padding: .4rem; }
.lookup-item-replay > button { font-size: .8rem; padding: .45rem .6rem; }
.replay-excerpt { padding: .5rem .65rem; border-left: 2px solid var(--link); line-height: 1.5; color: var(--text); }
.replay-excerpt[hidden] { display: none; }
#item-vocabulary-open { margin: .35rem .5rem .5rem 0; }
.item-vocabulary-toolbar input { min-width: 0; }
.item-vocabulary-row { border-bottom: 1px solid var(--border); }
.item-vocabulary-row > summary { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: .25rem .75rem; padding: .75rem .4rem; cursor: pointer; list-style: none; }
.item-vocabulary-row > summary::-webkit-details-marker { display: none; }
.item-vocabulary-heading { display: flex; align-items: baseline; flex-wrap: wrap; gap: .5rem; min-width: 0; overflow-wrap: anywhere; }
.item-vocabulary-heading::before { content: '▸'; color: var(--muted); }
.item-vocabulary-row[open] .item-vocabulary-heading::before { content: '▾'; }
.item-vocabulary-count { color: var(--muted); font-size: .8rem; white-space: nowrap; }
.item-vocabulary-meaning { grid-column: 1 / -1; color: var(--translation); font-size: .85rem; padding-left: 1.1rem; overflow-wrap: anywhere; }
.item-vocabulary-row > summary:hover, .item-vocabulary-row[open] > summary { background: var(--vocab-bg); }
.item-vocabulary-row > summary:focus-visible { outline: 2px solid var(--link); }
.item-vocabulary-contexts { padding: .25rem .75rem .75rem; }
.item-vocabulary-occurrence { border-top: 1px solid var(--border); padding: .4rem 0; }
.item-vocabulary-occurrence p { margin: .4rem 0; line-height: 1.5; overflow-wrap: anywhere; }
.item-vocabulary-occurrence button { font-size: .8rem; padding: .4rem .6rem; }
.item-vocabulary-occurrence mark { background: var(--highlight); color: var(--highlight-text); }
@media (max-width: 500px) {
  .json-search-toolbar { grid-template-columns: auto auto minmax(0, 1fr); }
  .json-search-toolbar input { grid-column: 1 / -1; }
  .json-search-toolbar .learning-meta { grid-column: auto; }
  .learning-dialog { width: calc(100vw - 12px); max-height: calc(100dvh - 12px); }
  .learning-actions > input, .learning-actions > select { box-sizing: border-box; width: 100%; }
  .learning-dialog header, .learning-dialog footer { padding: .7rem; }
  .learning-dialog .dialog-body { padding: 0 .7rem .7rem; }
  #lookup-dialog { width: calc(100vw - 12px); }
  #lookup-dialog header { padding: .4rem .65rem .15rem; }
  #lookup-dialog .dialog-body { padding: 0 .65rem .55rem; }
  #lookup-search-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; }
  #lookup-search { grid-column: 1 / -1; width: 100%; }
  #lookup-language { width: 100%; max-width: none; }
}
