/* Isolated vocabulary trainer, using the SEOKit theme in both colour modes. */
.st-app{max-width:1180px;margin:auto;padding:20px 28px 56px;color:var(--text);font-size:16px;line-height:1.6}
.st-app *{box-sizing:border-box}.st-app [hidden]{display:none!important}
.st-app :is(h1,h2,p){margin:0}.st-app :is(button,input,select,textarea){font:inherit;color:inherit}
.st-app :is(button,select,input,textarea){border:1px solid var(--border);border-radius:9px;background:var(--surface)}
.st-app :is(button,select){min-height:44px;padding:10px 15px;cursor:pointer}.st-app button{font-weight:600}
.st-app button:disabled{opacity:.4;cursor:not-allowed}.st-app button:not(:disabled):hover{border-color:var(--accent);color:var(--accent2)}
.st-app :is(button,a,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.st-app .st-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent,#fff)}
.st-app .st-primary:hover:not(:disabled){background:var(--accent2);color:var(--on-accent,#fff)}
.st-hero{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-bottom:18px}
.st-app .st-kicker{font:600 12px/1.5 var(--mono,monospace);letter-spacing:.1em;color:var(--accent2);margin-bottom:9px}
.st-app h1{font-size:clamp(28px,3.5vw,40px);line-height:1.2;letter-spacing:-.04em}.st-app .st-intro{max-width:700px;color:var(--muted);margin-top:12px;font-size:16px}
.st-glossary-link{flex:none;color:var(--text);font-size:14px;text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:4px}
.st-topline{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border);margin-bottom:16px;gap:15px}
.st-tabs{display:flex;gap:26px}.st-app .st-tabs button{padding:14px 0;border:0;border-radius:0;background:none;color:var(--muted);position:relative}
.st-tabs button[aria-selected=true]{color:var(--text)}.st-tabs button[aria-selected=true]::after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:3px;background:var(--accent)}
.st-tabs span{margin-left:6px;background:var(--surface2);padding:2px 7px;border-radius:6px;font:12px var(--mono,monospace)}.st-local{font:12px var(--mono,monospace);color:var(--muted)}
.st-controls{display:flex;align-items:end;gap:14px;margin-bottom:16px;flex-wrap:wrap}.st-controls label{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:13px}.st-controls select{color:var(--text);font-size:14px;max-width:240px}.st-controls button{margin-left:auto;font-size:14px}
.st-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:22px}.st-layout>div{min-width:0}
.st-card{border:1px solid var(--border);border-radius:18px;background:var(--surface);box-shadow:0 12px 36px #00000006;overflow:hidden;min-height:290px}
.st-card-top{display:flex;justify-content:space-between;gap:12px;padding:16px 24px;font-size:12px;color:var(--muted);background:var(--surface2)}
.st-progress{height:3px;background:var(--border)}.st-progress span{display:block;height:100%;width:0;background:var(--accent);transition:width .2s}
.st-card-body{padding:24px;text-align:center;min-height:240px;display:flex;align-items:center;justify-content:center;flex-direction:column}
.st-card h2{font-size:clamp(26px,3.1vw,38px);line-height:1.25;letter-spacing:-.025em;overflow-wrap:anywhere;max-width:100%}.st-card #stHint{color:var(--muted);font-size:15px;margin-top:16px;max-width:520px}
.st-card #stReveal{margin-top:20px;min-width:230px}.st-answer{border-top:1px solid var(--border);padding-top:20px;margin-top:20px;width:100%;font-size:18px;line-height:1.7;overflow-wrap:anywhere}.st-answer a{display:inline-block;margin-top:18px;font-size:14px;color:var(--accent2)}
.st-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.st-actions button{min-height:48px}.st-app .st-keyboard{text-align:center;color:var(--muted);font-size:12px;margin-top:12px}
.st-sidebar{border:1px solid var(--border);border-radius:18px;padding:24px;background:var(--surface);align-self:start}.st-stats{display:grid;grid-template-columns:1fr 1fr;gap:22px 12px}.st-stats>div{display:flex;flex-direction:column;gap:3px}.st-stats .st-today{grid-column:1/-1;gap:0}.st-stats span{font-size:13px;color:var(--muted)}.st-stats strong{font-size:28px;line-height:1.2}.st-today strong{font-size:48px;letter-spacing:-.04em;margin-top:5px}
.st-reminder{border-top:1px solid var(--border);margin-top:24px;padding-top:20px;font-size:13px}.st-switch{display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:14px}.st-switch input{accent-color:var(--accent);width:18px;height:18px;flex:none}.st-reminder select{width:100%;margin:12px 0;font-size:13px}.st-reminder p,.st-app .st-source{font-size:12px;color:var(--muted)}.st-app .st-source{border-top:1px solid var(--border);padding-top:18px;margin-top:18px}
.st-search{margin:20px 0;max-width:620px}.st-search label{display:block;font-size:14px;margin-bottom:8px}.st-search input{width:100%;min-height:46px;padding:10px 14px}.st-search p{color:var(--muted);font-size:13px;margin-top:10px}
.st-dictionary{display:grid;grid-template-columns:1fr 1fr;gap:12px}.st-word{border:1px solid var(--border);border-radius:12px;padding:20px;background:var(--surface);overflow-wrap:anywhere}.st-word h2{font-size:18px;line-height:1.3}.st-word p{font-size:14px;color:var(--muted);margin:8px 0}.st-word a{color:var(--accent2);font-size:13px}.st-word .st-word-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--muted);font-size:12px;margin-bottom:10px}.st-word button{font-size:12px;padding:7px 10px;min-height:36px}
.st-import{border:1px solid var(--border);border-radius:12px;padding:20px;margin-bottom:22px;background:var(--surface)}.st-import summary{font-weight:600;cursor:pointer}.st-import>p{font-size:14px;color:var(--muted);margin:12px 0}.st-import form>label{font-size:14px}.st-import textarea{display:block;width:100%;padding:12px;margin:8px 0 12px;resize:vertical}.st-import-actions{display:flex;flex-wrap:wrap;align-items:center;gap:18px}.st-file{display:flex;flex-direction:column;gap:5px;font-size:13px;max-width:100%}.st-file input{font-size:13px;max-width:100%}
.st-footer{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:30px;padding-top:22px;border-top:1px solid var(--border)}.st-footer p{max-width:760px;color:var(--muted);font-size:13px}.st-footer button{font-size:13px;flex:none}
.st-app .st-warning,.st-app .st-notice:not(:empty){border-left:3px solid var(--accent);background:var(--surface2);padding:12px 16px;font-size:14px;margin:16px 0}
.st-app #stImportShortcut{font-size:14px;padding:7px 12px;flex:none}
.st-floating{padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid var(--border)}.st-floating button{width:100%}.st-floating p{font-size:12px;color:var(--muted);margin-top:10px}
.st-file-panel{padding:16px;border:1px dashed var(--border);background:var(--surface2);border-radius:10px;margin-bottom:18px;display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px}.st-file-panel>a{font-size:14px;color:var(--accent2)}.st-file-panel>p{flex-basis:100%;font-size:13px;color:var(--muted)}.st-file input::file-selector-button{font:inherit;padding:8px 12px;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:6px;cursor:pointer;margin-right:8px}
/* Fixed compact shell: only the text scrolls, never the answer controls. */
.st-app #stAutoStatus{font-variant-numeric:tabular-nums;color:var(--text);margin-bottom:8px}.st-sidebar>.st-reminder+.st-stats{border-top:1px solid var(--border);margin-top:20px;padding-top:20px}
.st-app.st-pip .st-pip-header .st-pip-auto{font-size:12px;padding:4px 6px;white-space:nowrap;font-variant-numeric:tabular-nums}
.st-app.st-pip{box-sizing:border-box;padding:8px;height:100vh;height:100dvh;min-height:0;max-width:none;overflow:hidden;background:var(--surface);display:flex;flex-direction:column;gap:6px;line-height:1.4;font-size:15px}
.st-pip-header{display:flex;align-items:center;gap:8px;flex-shrink:0}.st-pip-header .st-kicker{margin:0;font-size:11px;letter-spacing:.06em}.st-app.st-pip button{min-height:34px;padding:6px 10px;font-size:14px;line-height:1.3;border-radius:6px}.st-app.st-pip .st-pip-header button{min-height:28px;min-width:28px;padding:0;font-size:22px;line-height:1}
.st-pip-progress{margin-left:auto!important;color:var(--muted);font-size:12px;white-space:nowrap}.st-pip-card{flex:1;min-height:0;min-width:0;border:1px solid var(--border);background:var(--surface2);border-radius:8px;padding:10px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;text-align:center;overflow-wrap:anywhere}.st-pip-card h1{font-size:20px;line-height:1.2;letter-spacing:-.02em;width:100%}.st-app .st-pip-definition{font-size:15px;line-height:1.45;margin-top:8px;width:100%;white-space:pre-wrap}.st-pip-card>button{margin-top:10px}.st-pip .st-actions{flex-shrink:0;margin:0;padding:0;background:var(--surface);gap:6px}.st-pip .st-actions button{min-width:0}.st-pip-notice{flex-shrink:0;max-height:2.8em;overflow:auto;font-size:12px;color:var(--accent2)}.st-pip-notice:empty{display:none}
@media(max-width:900px){.st-hero{align-items:start;flex-direction:column;gap:15px}.st-layout{grid-template-columns:1fr 235px}.st-controls select{max-width:200px}.st-card-body{padding:24px}.st-sidebar{padding:18px}.st-local{display:none}}
@media(max-width:700px){.st-app{padding:20px 16px 40px}.st-hero{margin-bottom:20px}.st-layout{grid-template-columns:1fr}.st-controls{display:grid;grid-template-columns:1fr 1fr;gap:10px}.st-controls label:first-child{grid-column:1/-1}.st-controls select{width:100%;max-width:100%}.st-controls button{grid-column:1/-1;width:100%;margin:0}.st-card-top{padding:12px 16px;flex-wrap:wrap;font-size:12px}.st-card-body{padding:26px 20px;min-height:285px}.st-answer{font-size:17px}.st-keyboard{display:none}.st-stats{grid-template-columns:repeat(3,1fr)}.st-stats .st-today{grid-column:auto}.st-today strong{font-size:28px;margin:0}.st-today span{order:1}.st-dictionary{grid-template-columns:1fr}.st-footer{align-items:start;flex-direction:column;gap:15px}.st-app .st-intro{font-size:16px}.st-app .st-tabs button{font-size:15px}}
@media(prefers-reduced-motion:reduce){.st-progress span{transition:none}}
@media(max-width:420px){.st-topline{align-items:stretch;flex-direction:column;gap:8px;padding-bottom:12px}.st-tabs{justify-content:space-between;gap:12px}.st-app #stImportShortcut{align-self:flex-start}}
.st-pip-definition::before{content:'';display:block;width:24px;height:2px;margin:2px auto 8px;background:var(--accent)}
