*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary: #0f1117;--bg-surface: #1a1d27;--bg-elevated: #22252f;--border: #2a2d3a;--text-primary: #e0e0e6;--text-muted: #8888a0;--accent: #3b82f6;--accent-hover: #2563eb;--gold: #eab308;--green: #22c55e;font-family:Inter,system-ui,-apple-system,sans-serif;font-size:14px;line-height:1.5;color:var(--text-primary);background-color:var(--bg-primary);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body,#root{width:100%;height:100%;height:100dvh;overflow:hidden}@supports (padding-top: env(safe-area-inset-top)){:root{--sat: env(safe-area-inset-top);--sab: env(safe-area-inset-bottom);--sal: env(safe-area-inset-left);--sar: env(safe-area-inset-right)}}@media(max-width:768px){body.page-scrollable,body.page-scrollable #root{overflow:auto;height:auto;min-height:100%}}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button{font-family:inherit;font-size:inherit;cursor:pointer;border:none;background:none;color:inherit}select{font-family:inherit;font-size:inherit;color:var(--text-primary);background-color:var(--bg-surface);border:1px solid var(--border);border-radius:6px;padding:6px 10px;cursor:pointer}select:hover{border-color:var(--accent)}input::placeholder{color:var(--text-muted);opacity:.6}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInRight{0%{transform:translate(20px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideInLeft{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes highlightPulse{0%{background:#3b82f633}to{background:#3b82f61f}}@media print{.tts-controls,[role=toolbar],[role=progressbar]{display:none!important}.script-content p{background:none!important;border-left:none!important;padding-left:0!important}}.script-content h1{font-size:1.8em;font-weight:700;margin:.6em 0 .4em;color:var(--text-primary)}.script-content h2{font-size:1.35em;font-weight:600;margin:1.4em 0 .5em;color:var(--text-primary);padding-bottom:6px;border-bottom:1px solid var(--border)}.script-content h3{font-size:1.1em;font-weight:600;margin:1em 0 .4em;color:var(--text-primary)}.script-content p{margin:.6em 0;padding:4px 0}.script-content ul,.script-content ol{margin:.5em 0;padding-left:1.5em}.script-content li{margin:.25em 0}.script-content code{font-family:JetBrains Mono,Fira Code,monospace;font-size:.88em;background:var(--bg-elevated);padding:2px 5px;border-radius:3px;color:var(--accent)}.script-content pre{background:var(--bg-elevated);border:1px solid var(--border);border-radius:6px;padding:12px 16px;overflow-x:auto;margin:.8em 0}.script-content pre code{background:none;padding:0;color:var(--text-primary)}.script-content hr{border:none;border-top:1px solid var(--border);margin:1.5em 0}.script-content strong{font-weight:600;color:var(--text-primary)}.script-content em{color:var(--text-muted)}.script-content blockquote{border-left:3px solid var(--accent);padding-left:12px;margin:.8em 0;color:var(--text-muted)}[data-theme=light]{--bg-primary: #f5f5f7;--bg-surface: #ffffff;--bg-elevated: #eaeaef;--border: #d1d1d8;--text-primary: #1a1a2e;--text-muted: #6b6b80;--accent: #2563eb;--accent-hover: #1d4ed8;--gold: #ca8a04;--green: #16a34a;color-scheme:light}[data-theme=light] ::-webkit-scrollbar-track{background:#f0f0f3}[data-theme=light] ::-webkit-scrollbar-thumb{background:#c4c4cc}[data-theme=high-contrast]{--bg-primary: #000000;--bg-surface: #0a0a0a;--bg-elevated: #1a1a1a;--border: #555555;--text-primary: #ffffff;--text-muted: #bbbbbb;--accent: #5ea6ff;--accent-hover: #3d8bfd;--gold: #ffd700;--green: #00ff7f;color-scheme:dark}[data-theme=high-contrast] :focus-visible{outline:3px solid var(--accent);outline-offset:2px}[data-motion=reduced] *,[data-motion=reduced] *:before,[data-motion=reduced] *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}@media(prefers-reduced-motion:reduce){:root:not([data-motion]) *,:root:not([data-motion]) *:before,:root:not([data-motion]) *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.page-shell{padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px)}@media(max-width:768px){.app-toolbar{overflow-x:auto!important;overflow-y:hidden!important;-webkit-overflow-scrolling:touch;height:auto!important;min-height:42px;flex-wrap:nowrap!important;padding-top:max(6px,env(safe-area-inset-top))!important;gap:6px!important}.gen-panel{width:100%!important;border-right:none!important}.main-layout,.graph-pair{flex-direction:column!important}.compare-toggle{display:none!important}.info-tabs{overflow-x:auto!important;-webkit-overflow-scrolling:touch}.app-toolbar button,.page-toolbar button,.page-toolbar a{min-height:44px;min-width:44px}.graph-pair{touch-action:none}.gen-panel,.info-tabs{touch-action:pan-y}:root{font-size:15px}.gen-panel select,.gen-panel textarea,.gen-panel input{min-height:44px;font-size:16px}[role=separator][aria-orientation=horizontal]{display:none!important}.info-panel-mobile-sm{height:120px!important}.info-panel-mobile-md{height:35vh!important}.info-panel-mobile-lg{height:55vh!important}.graph-search:focus-within{position:fixed!important;top:0;left:0;right:0;z-index:90;background:var(--bg-surface);padding:8px;box-shadow:0 4px 12px #0006}.graph-search:focus-within input{width:100%!important;max-width:none!important}.page-toolbar{padding-top:max(0px,env(safe-area-inset-top))!important;flex-wrap:wrap!important}.vocab-browser{flex-direction:column!important}.vocab-browser>div{width:100%!important;max-height:30vh;border-right:none!important;border-bottom:1px solid var(--border)}}
