/* Shared palette for all Vocabulary Search pages. */
:root{color-scheme:dark;--paper:#10151c;--surface:#171f29;--surface-raised:#202c39;--ink:#e6edf5;--muted:#a3b0c0;--teal:#7bdacb;--mint:#203c35;--border:#344353;--radius:8px;--control-border:#5a6c7e;--button-ink:#102b25;--danger-bg:#46272e;--danger-ink:#ffc0c7;--warning-bg:#3b3327;--warning-ink:#efd1a3}
.site-version{display:inline-block;white-space:nowrap;color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}
/* Existing feature pages keep their forms and layouts, using the shared colors. */
body.app-page{background:var(--paper);color:var(--ink);animation:none;line-height:1.6;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;justify-content:flex-start;padding:28px 24px}
.app-page *{font-family:inherit}
.app-page code,.app-page pre{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.app-page :is(h1,h2,h3,h4,h5,.header,.text-teal){color:var(--ink);text-shadow:none}
.app-page h1{font-size:28px;font-weight:600;line-height:1.35;text-align:center;letter-spacing:-.4px}
.app-page :is(a,.stat-number,.file-name,.card-header,.quick-links a){color:var(--teal)}
.app-page :is(.description,.lead,.filter-summary,.entry-count,.file-size,.no-files,.grade-info,.modal-stats,.header p,.card-body p,.form-group label){color:var(--muted)}
.app-page :is(.container,.glossary-container,.grammar-container,.writing-container){background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:none;backdrop-filter:none}
.app-page :is(.glossary-container,.grammar-container,.writing-container){width:min(1100px,100%);margin:0 auto;padding:24px}
.app-page :is(.filter-form,.results-info,.legend-container,.credits-section,.stat-box,.card,.file-card,.content,.grammar-subsection,.exercise-instruction,.writing-quote blockquote){background:var(--surface-raised);border-color:var(--border);color:var(--ink);box-shadow:none;border-radius:6px}
.app-page .filter-form{border:1px solid var(--border)}
.app-page .filter-group,.app-page .filter-group label,.app-page .settings-form label{color:var(--ink)}
.app-page :is(.filter-group,.form-group){min-width:0}
.app-page :is(textarea,select,input[type="text"],input[type="search"],input[type="password"],input[type="email"],input[type="number"],input[type="date"]){background:var(--paper)!important;color:var(--ink)!important;border:1px solid var(--control-border)!important;border-radius:5px;box-shadow:none;max-width:100%;font-size:16px}
.app-page :is(select,input[type="text"],input[type="search"],input[type="password"],input[type="email"],input[type="number"],input[type="date"]){min-height:44px}
.app-page :is(textarea,input)::placeholder{color:var(--muted);opacity:1}
.app-page :is(input,select,textarea):focus-visible{outline:2px solid var(--teal);outline-offset:2px}
.app-page :is(button,a,input[type="submit"]):focus-visible{outline:2px solid var(--teal);outline-offset:4px}
.app-page :is(button,input[type="submit"],.btn,.credits-button){background:var(--teal);color:var(--button-ink);border:1px solid transparent;border-radius:5px;min-height:44px;box-shadow:none;font-weight:600}
.app-page :is(.btn-primary,.credits-button,input[type="submit"]):hover{background:#a0eddf;color:var(--button-ink)}
.app-page .button-container a{background:var(--teal);color:var(--button-ink);border-radius:5px;border:1px solid transparent;min-height:44px}
.app-page :is(.btn-secondary,.collapsible,.suggest-btn,.button-container .btn-secondary){background:var(--surface-raised);color:var(--teal);border:1px solid var(--control-border)}
.app-page :is(.btn-secondary,.collapsible,.suggest-btn):hover{background:#2b3b4b;color:var(--teal)}
.app-page :is(.btn-danger,.report-button,.button-container .report-button){background:var(--danger-bg);color:var(--danger-ink);border-color:#86515c}
.app-page :is(.btn-danger,.report-button):hover{background:#60333c;color:var(--danger-ink)}
.app-page .btn-success{background:var(--mint);color:#b6e8d2;border-color:#416a5b}
.app-page :is(button,input[type="submit"]):disabled{opacity:.55;cursor:not-allowed}
.app-page :is(.alert-success,.message-success,.settings-status.success){background:var(--mint);color:#b6e8d2;border-color:#416a5b}
.app-page :is(.alert-error,.message-error,.settings-status.error){background:var(--danger-bg);color:var(--danger-ink);border-color:#86515c}
.app-page :is(.grammar-card,.writing-card){background:var(--surface);color:var(--ink);border:1px solid var(--border);box-shadow:none;border-radius:8px}
.app-page :is(.grammar-card-header,.writing-card-header,.grammar-meta,.writing-meta){border-color:var(--border)}
.app-page :is(.grammar-card-breadcrumb,.writing-card-breadcrumb,.grammar-meta span,.writing-meta span,.question-answer,.question-options,.mcq-options){color:var(--muted)}
.app-page :is(.dict-value,.nested-item strong,.exercise-number,.exercise-type,.question-prompt,.writing-prompt p,.writing-outline ol,.writing-quote blockquote,.guide-words-list){color:var(--ink)}
.app-page :is(.nested-item,.exercise-card,.flagged-word-item,.sentence-item){background:var(--paper);border-color:var(--border);color:var(--ink)}
.app-page .exercise-section h4{background:var(--mint);color:var(--teal)}
.app-page .exercise-card.assessment-exercise{background:var(--warning-bg);border-color:#716044}
.app-page :is(.assessment-section h4,.assessment-badge){color:var(--warning-ink)}
.app-page table{background:var(--surface);color:var(--ink);box-shadow:none;border-color:var(--border);max-width:100%}
.app-page th,.app-page td{border-color:var(--border)}
.app-page th{background:var(--surface-raised);color:var(--ink)}
.app-page tr:nth-child(even){background:#1b2530}
.app-page tbody tr:hover{background:#243242}
.app-page .glossary-table :is(th,td){white-space:normal;overflow:visible;overflow-wrap:anywhere;text-overflow:clip}
.app-page .glossary-table{border-radius:6px;border:1px solid var(--border)}
.app-page .glossary-table :is(th,td){border:1px solid var(--border)}
.app-page .glossary-table thead th{background:var(--surface-raised);border-bottom:2px solid #526577}
.app-page .glossary-table tbody tr:nth-child(even){background:#1b2530}
.app-page .glossary-table tbody tr:hover{background:#243242}
.app-page .analysis-results{background:var(--paper);border:1px solid var(--border);color:var(--ink);overflow-wrap:anywhere}
.app-page .legend-item{color:var(--muted)}
.app-page .flagged-words-section{background:var(--surface);border-color:var(--border)}
.app-page .flagged-words-section h3{color:var(--ink)}
.app-page :is(.alternatives-loading,.modal-loading){color:var(--teal)}
.app-page .alt-chip{background:var(--mint);color:var(--teal);border-color:#416a5b}
.app-page .alt-chip:hover{background:#2b4d43;transform:none}
.app-page .alt-chip.not-found{background:var(--warning-bg);color:var(--warning-ink);border-color:#716044}
.app-page .alt-chip .grade-badge{background:var(--surface-raised)}
.app-page .modal-content{background:var(--surface);border-color:var(--border);color:var(--ink)}
.app-page .modal-header{border-color:var(--border)}
.app-page .modal-close{background:transparent;color:var(--muted);border:0;min-width:44px;min-height:44px}
.app-page .modal-word-info{background:var(--paper);border-color:var(--border)}
.app-page .sentence-item:hover{background:var(--surface-raised);border-color:var(--teal)}
.app-page :is(.sentence-text,.modal-word-info .original-sentence){color:var(--ink)}
.app-page .sentence-replacement{background:var(--mint);color:var(--teal)}
.app-page footer{color:var(--muted);font-size:12px;text-align:center;line-height:1.8;margin-top:28px;padding:16px 0 4px;border-top:1px solid var(--border);width:min(1100px,100%)}
@media(max-width:700px){
    .footer-credit{display:flex;flex-direction:column;align-items:center;gap:1px;max-width:100%;text-align:center;line-height:1.45}
    .footer-credit .site-credit{display:block;font-size:12px}
    .footer-credit .credit-label{font-size:12px;color:var(--muted)}
    .footer-credit .credit-name{font-size:12px;font-weight:600;color:var(--ink);white-space:nowrap}
    .footer-credit .site-version,.footer-credit .footer-product{font-size:11px;color:var(--muted)}
    .footer-credit .footer-separator{display:none}
    .app-page footer{margin-top:16px;padding:10px 0 max(8px,env(safe-area-inset-bottom))}
    body.app-page{padding:22px 14px}
    .app-page h1{font-size:24px}
    .app-page :is(.glossary-container,.grammar-container,.writing-container){padding:16px 12px}
    .app-page .filter-form{padding:14px;grid-template-columns:1fr}
    .app-page .filter-buttons{gap:8px}
    .app-page .btn{padding:10px 12px;font-size:13px}
    .app-page :is(.grammar-meta,.writing-meta){flex-wrap:wrap}
    .app-page .glossary-table :is(th,td){padding:7px 3px;font-size:11px;hyphens:auto}
    .app-page .glossary-table :is(th,td):nth-child(1){width:24%}
    .app-page .glossary-table :is(th,td):nth-child(2){width:18%}
    .app-page .glossary-table :is(th,td):nth-child(3){width:12%}
    .app-page .glossary-table :is(th,td):nth-child(4),.app-page .glossary-table :is(th,td):nth-child(5),.app-page .glossary-table :is(th,td):nth-child(6){width:10%}
    .app-page .glossary-table :is(th,td):nth-child(4){width:11%}
    .app-page .glossary-table :is(th,td):nth-child(7){width:15%}
    .app-page .glossary-table thead th:nth-child(n+3):nth-child(-n+6){white-space:nowrap}
    .app-page .modal-content{width:calc(100% - 24px);padding:18px}
}
@media(max-width:380px){.app-page .glossary-table :is(th,td){font-size:10px;padding-inline:2px}}
@media(prefers-reduced-motion:reduce){.app-page *{animation:none!important;transition:none!important}}
