:root{--radius: 1rem;--radius-sm: .6rem;--font: "Space Grotesk", ui-sans-serif, system-ui, sans-serif;--font-mono: "Roboto Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--fs: 2rem;--on-accent: #fff}html[data-theme=dark]{--bg-color: #0b0d17;--bubble-bg: #1b1e38;--sub-color: rgba(238, 240, 255, .45);--text-color: #eef0ff;--main-color: #a78bfa;--accent-2: #22d3ee;--error-color: #fb7185;--error-extra-color: #e11d48;--glass-bg: rgba(255, 255, 255, .06);--glass-bg-hover: rgba(255, 255, 255, .1);--glass-border: rgba(255, 255, 255, .12);--glass-shadow: 0 8px 32px rgba(0, 0, 0, .35);--orb-1: rgba(124, 58, 237, .5);--orb-2: rgba(34, 211, 238, .32);--orb-3: rgba(217, 70, 239, .28);--divider: rgba(255, 255, 255, .08);--sel-bg: #161836;--accent-glow: rgba(124, 58, 237, .35);--backdrop: rgba(8, 10, 20, .55)}html[data-theme=light]{--bg-color: #eef1fb;--bubble-bg: #ffffff;--sub-color: rgba(30, 27, 46, .62);--text-color: #241f3d;--main-color: #7c3aed;--accent-2: #0891b2;--error-color: #e11d48;--error-extra-color: #be123c;--glass-bg: rgba(255, 255, 255, .5);--glass-bg-hover: rgba(255, 255, 255, .72);--glass-border: rgba(255, 255, 255, .75);--glass-shadow: 0 8px 32px rgba(124, 58, 237, .12);--orb-1: rgba(124, 58, 237, .25);--orb-2: rgba(8, 145, 178, .2);--orb-3: rgba(217, 70, 239, .16);--divider: rgba(30, 27, 46, .1);--sel-bg: #ffffff;--accent-glow: rgba(124, 58, 237, .2);--backdrop: rgba(30, 27, 46, .35)}*{box-sizing:border-box}html,body{margin:0;padding:0}html{scrollbar-color:var(--sub-color) transparent}body{background:var(--bg-color);color:var(--text-color);font-family:var(--font);font-size:16px;line-height:1.5;min-height:100vh;overflow-x:hidden;transition:background .3s ease,color .3s ease}body:before{content:"";position:fixed;top:-25%;right:-25%;bottom:-25%;left:-25%;z-index:-1;pointer-events:none;background:radial-gradient(38% 38% at 22% 28%,var(--orb-1),transparent 70%),radial-gradient(42% 42% at 82% 18%,var(--orb-2),transparent 70%),radial-gradient(50% 50% at 62% 88%,var(--orb-3),transparent 70%);animation:orb-drift 26s ease-in-out infinite alternate;will-change:transform}@keyframes orb-drift{0%{transform:translate3d(-2%,-1.5%,0) rotate(0) scale(1)}to{transform:translate3d(2%,1.5%,0) rotate(3deg) scale(1.06)}}::selection{background:var(--main-color);color:var(--bg-color)}#root{min-height:100vh}.app{min-height:100vh;display:flex;flex-direction:column;align-items:center;gap:1.75rem;padding:1.75rem 1rem 2.5rem;animation:fade-in .3s ease}.container{width:100%;max-width:1000px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--sub-color);border-radius:999px;border:2px solid transparent;background-clip:content-box}.header{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.65rem 1rem;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius);box-shadow:var(--glass-shadow);backdrop-filter:blur(18px) saturate(1.35);-webkit-backdrop-filter:blur(18px) saturate(1.35)}.logo{display:flex;align-items:center;gap:.55rem;font-size:1.6rem;font-weight:700;letter-spacing:-.03em;-webkit-user-select:none;user-select:none;color:var(--text-color)}.logo svg{flex-shrink:0}.logo .accent{background:linear-gradient(135deg,var(--main-color),var(--accent-2));-webkit-background-clip:text;background-clip:text;color:transparent}.header-actions{display:flex;gap:.4rem}.icon-btn{background:transparent;border:1px solid transparent;color:var(--sub-color);width:2.4rem;height:2.4rem;border-radius:50%;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:color .15s,background-color .15s,border-color .15s,box-shadow .15s,transform .1s}.icon-btn:hover{color:var(--text-color);background:var(--glass-bg-hover);border-color:var(--glass-border);transform:translateY(-1px)}.icon-btn:active{transform:translateY(0)}.icon-btn.peek-btn.active{color:var(--accent-2);background:var(--glass-bg-hover);border-color:var(--accent-2);box-shadow:0 0 14px #22d3ee40}.config{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem .75rem;padding:.5rem .75rem;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius);box-shadow:var(--glass-shadow);backdrop-filter:blur(18px) saturate(1.35);-webkit-backdrop-filter:blur(18px) saturate(1.35)}.config .group{display:flex;align-items:center;gap:.25rem}.config .opt{background:none;border:1px solid transparent;color:var(--sub-color);font-family:var(--font);font-size:.95rem;font-weight:500;padding:.35rem .7rem;border-radius:999px;cursor:pointer;transition:color .15s,background-color .15s,border-color .15s,box-shadow .15s}.config .opt:hover{color:var(--text-color);background:var(--glass-bg-hover)}.config .opt.active{color:var(--on-accent);background:linear-gradient(135deg,var(--main-color),var(--accent-2));border-color:transparent;box-shadow:0 4px 14px var(--accent-glow)}.config select{-moz-appearance:none;appearance:none;-webkit-appearance:none;background:var(--glass-bg);color:var(--text-color);border:1px solid var(--glass-border);border-radius:999px;font-family:var(--font);font-size:.95rem;padding:.35rem 2.1rem .35rem .9rem;cursor:pointer;outline:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23888' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .8rem center;background-size:.8rem;max-width:18rem;transition:border-color .15s,box-shadow .15s}.config select:hover{border-color:var(--sub-color)}.config select:focus{border-color:var(--main-color);box-shadow:0 0 0 3px var(--accent-glow)}.config select option{background:var(--sel-bg);color:var(--text-color)}.config .spacer{flex:1}.typing-area{display:flex;flex-direction:column;gap:1.25rem;padding:1.5rem 1.5rem 1.25rem;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius);box-shadow:var(--glass-shadow);backdrop-filter:blur(18px) saturate(1.35);-webkit-backdrop-filter:blur(18px) saturate(1.35);cursor:pointer}.hidden-input{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;border:0;padding:0;margin:0;z-index:1;font-size:16px;caret-color:transparent}.words-area{position:relative;height:calc(var(--fs) * 4.5 + 7.5rem)}.words-viewport{position:absolute;top:7.5rem;left:0;right:0;bottom:0;overflow:hidden}.words{position:relative;display:flex;flex-wrap:wrap;align-content:flex-start;width:100%;font-family:var(--font-mono);font-size:var(--fs);user-select:none;-webkit-user-select:none;transition:transform .2s ease}.words .word{position:relative;font-size:1em;line-height:1em;margin:.25em .3em;border-bottom:2px solid transparent;font-variant:no-common-ligatures}.words .word .letter{display:inline-block;color:var(--sub-color)}.words .word .letter.correct{color:var(--text-color)}.words .word .letter.incorrect{color:var(--error-color)}.words .word .letter.incorrect.extra{color:var(--error-extra-color)}.words .word .letter.star{color:#fbbf24;text-shadow:0 0 10px rgba(251,191,36,.5)}.words .word .letter.slash{color:#34d399;text-shadow:0 0 10px rgba(52,211,153,.5)}.words .word .repeat-badge{display:inline-block;color:#fbbf24;font-size:.55em;line-height:1;margin-right:.2em;vertical-align:super;text-shadow:0 0 10px rgba(251,191,36,.5)}.words .word .memorize-badge{display:inline-block;color:#34d399;font-size:.55em;line-height:1;margin-right:.2em;vertical-align:super;text-shadow:0 0 10px rgba(52,211,153,.5)}.words .word .letter.missing{opacity:.3}.words .word.error{border-bottom-color:var(--error-color)}.caret{position:absolute;height:.16em;background:linear-gradient(90deg,var(--main-color),var(--accent-2));border-radius:999px;box-shadow:0 0 10px var(--accent-glow);animation:caret-blink 1.1s step-end infinite;pointer-events:none}@keyframes caret-blink{0%,to{opacity:1}50%{opacity:0}}.live-stats{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem 2.25rem;padding-top:1rem;border-top:1px solid var(--divider)}.live-stats .stat{display:flex;flex-direction:column;gap:.2rem}.live-stats .stat .label{color:var(--sub-color);font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.14em}.live-stats .stat .value{color:var(--text-color);font-family:var(--font-mono);font-size:1.3rem;font-weight:500}.live-stats .spacer{flex:1}.meaning-bubble{position:absolute;z-index:10;transform:translate(-50%) translateY(6px) scale(.96);width:max-content;max-width:min(26rem,calc(100% - 2rem));background:var(--bubble-bg);border:1px solid var(--glass-border);border-top:2px solid var(--main-color);color:var(--text-color);border-radius:var(--radius-sm);padding:.6rem 1.1rem;font-size:1.05rem;line-height:1.5;box-shadow:var(--glass-shadow);pointer-events:none;-webkit-user-select:none;user-select:none;opacity:0;transition:opacity .15s ease,transform .15s ease,left .2s ease,top .2s ease}.meaning-bubble .mb-scroll{display:flex;flex-wrap:wrap;align-items:center;gap:.05em .35em;max-height:none;overflow-y:auto;pointer-events:auto}.meaning-bubble .speaker-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:1.6em;height:1.6em;padding:0;margin-left:.1em;color:var(--accent-2);background:transparent;border:1px solid transparent;border-radius:50%;cursor:pointer;vertical-align:middle;transition:color .15s,background-color .15s,border-color .15s,transform .1s}.meaning-bubble .speaker-btn:hover{color:var(--main-color);background:var(--glass-bg-hover);border-color:var(--glass-border);transform:scale(1.1)}.meaning-bubble .speaker-btn:active{transform:scale(.92)}.meaning-bubble .speaker-btn svg{display:block}.meaning-bubble:after{content:"";position:absolute;bottom:-5px;left:var(--mb-arrow-x, 50%);width:10px;height:10px;background:var(--bubble-bg);border-right:1px solid var(--glass-border);border-bottom:1px solid var(--glass-border);transform:translate(-50%) rotate(45deg);border-radius:2px}.meaning-bubble.flipped:after{top:-5px;bottom:auto;border-right:none;border-bottom:none;border-left:1px solid var(--glass-border);border-top:1px solid var(--glass-border)}.meaning-bubble.visible{opacity:1;animation:bubble-in .18s ease}.meaning-bubble .mb-word{background:linear-gradient(135deg,var(--main-color),var(--accent-2));-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:600}.meaning-bubble .mb-ipa{color:var(--accent-2);font-family:var(--font-mono);font-size:.9em}.meaning-bubble .mb-dash{color:var(--sub-color);margin:0 .15em}@keyframes bubble-in{0%{opacity:0;transform:translate(-50%) translateY(8px) scale(.92)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}.meaning-bubble.flipped.visible{animation:bubble-in-flipped .18s ease}@keyframes bubble-in-flipped{0%{opacity:0;transform:translate(-50%) translateY(-8px) scale(.92)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}kbd{background:var(--glass-bg);color:var(--text-color);border:1px solid var(--glass-border);border-bottom-width:2px;border-radius:.35em;padding:.15em .45em;font-size:.75em;font-family:var(--font-mono)}.results{display:flex;flex-direction:column;gap:2.25rem;padding:2rem 2rem 2.25rem;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius);box-shadow:var(--glass-shadow);backdrop-filter:blur(18px) saturate(1.35);-webkit-backdrop-filter:blur(18px) saturate(1.35);animation:fade-up .3s ease}.results .big-stats{display:flex;gap:5rem;justify-content:center;flex-wrap:wrap}.results .group{display:flex;flex-direction:column;gap:.4rem}.results .group .top{color:var(--sub-color);font-size:.95rem;font-weight:600;line-height:1rem;text-transform:uppercase;letter-spacing:.14em}.results .big-stats .bottom{background:linear-gradient(135deg,var(--main-color),var(--accent-2));-webkit-background-clip:text;background-clip:text;color:transparent;font-family:var(--font-mono);font-size:4rem;line-height:4rem;font-weight:700;filter:drop-shadow(0 0 18px var(--accent-glow))}.results .morestats{display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem 2rem;border-top:1px solid var(--divider);padding-top:1.5rem}.results .morestats .group .top{font-size:.85rem;line-height:1rem}.results .morestats .group .bottom{font-family:var(--font-mono);font-size:1.4rem;line-height:1.4rem;color:var(--text-color);max-width:20rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.results .chart-wrap{display:flex;flex-direction:column;gap:.75rem}.results .title{color:var(--sub-color);text-transform:uppercase;letter-spacing:.14em;font-size:.75rem;font-weight:600}.results .chart{display:flex;align-items:flex-end;gap:3px;height:150px}.results .chart .bar{flex:1;min-height:2px;background:linear-gradient(180deg,var(--main-color),var(--accent-2));border-radius:3px 3px 0 0;opacity:.85;transition:opacity .125s}.results .chart .bar:hover{opacity:1}.results .mistakes{display:flex;flex-direction:column;gap:.75rem}.results .mistake{display:flex;align-items:baseline;gap:1rem;padding:.4rem 0;border-bottom:1px solid var(--divider);font-family:var(--font-mono);font-size:1.15rem}.results .result-word .correct{color:var(--text-color)}.results .result-word .incorrect{color:var(--error-color)}.results .result-word .incorrect.extra{color:var(--error-extra-color)}.results .mistake .meaning{color:var(--sub-color);font-size:.85rem}.results .actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.text-btn{background:none;border:1px solid transparent;color:var(--sub-color);font-family:var(--font);font-size:1rem;font-weight:500;padding:.5rem 1.1rem;border-radius:999px;cursor:pointer;transition:color .15s,background-color .15s,border-color .15s}.text-btn:hover{color:var(--text-color);background:var(--glass-bg-hover);border-color:var(--glass-border)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:var(--backdrop);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:grid;place-items:center;padding:1rem;animation:fade-in .2s ease}.modal{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:calc(var(--radius) + .25rem);box-shadow:var(--glass-shadow);backdrop-filter:blur(24px) saturate(1.4);-webkit-backdrop-filter:blur(24px) saturate(1.4);color:var(--text-color);width:min(640px,100%);max-height:85vh;overflow-y:auto;padding:2rem;display:flex;flex-direction:column;gap:1.75rem;animation:modal-in .2s ease}@keyframes modal-in{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}.modal-head{display:flex;justify-content:space-between;align-items:center}.modal h2{margin:0;font-size:1.4rem;font-weight:700;letter-spacing:-.02em}.modal h3{margin:0 0 .6rem;font-size:.8rem;font-weight:600;color:var(--main-color);text-transform:uppercase;letter-spacing:.14em}.modal section{display:flex;flex-direction:column}.modal .muted{color:var(--sub-color);font-size:.9rem;margin:0 0 .75rem;line-height:1.55}.import-area{width:100%;min-height:200px;background:var(--glass-bg);color:var(--text-color);border:1px solid var(--glass-border);border-radius:var(--radius-sm);padding:.8rem 1rem;font-family:var(--font-mono);font-size:.9rem;resize:vertical;outline:none;transition:border-color .15s,box-shadow .15s}.import-area.compact{min-height:5.5rem}.import-area:focus{border-color:var(--main-color);box-shadow:0 0 0 3px var(--accent-glow)}.modal-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-top:.75rem}.lang-field{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-bottom:.75rem}.lang-field label{color:var(--sub-color);font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.12em}.lang-input{background:var(--glass-bg);color:var(--text-color);border:1px solid var(--glass-border);border-radius:999px;font-family:var(--font);font-size:.9rem;padding:.4rem .9rem;width:min(16rem,100%);outline:none;transition:border-color .15s,box-shadow .15s}.lang-input:focus{border-color:var(--main-color);box-shadow:0 0 0 3px var(--accent-glow)}.btn{background:linear-gradient(135deg,var(--main-color),var(--accent-2));color:var(--on-accent);border:none;border-radius:999px;font-family:var(--font);font-size:.95rem;font-weight:600;padding:.6rem 1.5rem;cursor:pointer;box-shadow:0 6px 18px var(--accent-glow);transition:opacity .15s,transform .1s,box-shadow .15s}.btn:hover{opacity:.92;transform:translateY(-1px);box-shadow:0 8px 24px var(--accent-glow)}.btn:active{transform:translateY(0)}.btn:disabled{opacity:.45;pointer-events:none}.btn.secondary{background:var(--glass-bg);color:var(--text-color);border:1px solid var(--glass-border);box-shadow:none}.btn.secondary:hover{background:var(--glass-bg-hover);border-color:var(--text-color);opacity:1}.btn.danger{background:none;color:var(--error-color);border:1px solid rgba(251,113,133,.4);padding:.35rem .9rem;font-size:.85rem;border-radius:999px;box-shadow:none}.btn.danger:hover{background:#fb71851f;border-color:var(--error-color);color:var(--error-color);opacity:1}.btn.small{font-size:.85rem;padding:.35rem .9rem}.msg{font-size:.9rem;margin:.75rem 0 0}.msg.ok{color:var(--accent-2)}.msg.err{color:var(--error-color)}.example{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-sm);padding:1rem;overflow-x:auto;font-family:var(--font-mono);font-size:.85rem;line-height:1.6;margin:0}.prompt-preview{white-space:pre-wrap;word-break:break-word;margin-top:.75rem}.list-group{display:flex;flex-direction:column}.list-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.6rem .5rem;border-bottom:1px solid var(--divider);border-radius:var(--radius-sm);transition:background-color .15s}.list-row:hover{background:var(--glass-bg-hover)}.list-row .name{font-weight:500}.list-row .meta{color:var(--sub-color);font-size:.85rem}.list-actions{display:flex;align-items:center;gap:.5rem}code{background:var(--glass-bg);border:1px solid var(--glass-border);padding:.1em .35em;border-radius:.25em;font-size:.9em;font-family:var(--font-mono)}.practice-badge{display:inline-flex;align-items:center;gap:.5rem;color:var(--main-color);border:1px solid var(--main-color);border-radius:999px;padding:.15rem .75rem;font-size:.85rem;animation:fade-up .25s ease}.practice-badge button{background:none;border:none;color:var(--main-color);font-family:var(--font);font-size:1rem;line-height:1;cursor:pointer;padding:0 .1rem}.practice-badge button:hover{color:var(--text-color)}.review{display:flex;flex-direction:column;gap:.75rem}.review-tabs{display:flex;gap:.4rem;flex-wrap:wrap}.review-tab{background:none;border:1px solid transparent;border-radius:999px;color:var(--sub-color);font-family:var(--font);font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;padding:.4rem .9rem;cursor:pointer;transition:color .15s,background-color .15s,border-color .15s}.review-tab:hover{color:var(--text-color);background:var(--glass-bg-hover)}.review-tab.active{color:var(--on-accent);background:linear-gradient(135deg,var(--main-color),var(--accent-2));border-color:transparent}.review-list{max-height:22rem;overflow-y:auto;display:flex;flex-direction:column}.review-row{display:flex;align-items:baseline;gap:1rem;padding:.45rem .5rem;border-bottom:1px solid var(--divider);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:1.15rem;transition:background-color .15s}.review-row:hover{background:var(--glass-bg-hover)}.review-row .result-word .correct{color:var(--text-color)}.review-row .result-word .incorrect{color:var(--error-color)}.review-row .result-word .incorrect.extra{color:var(--error-extra-color)}.review-row .meaning{color:var(--sub-color);font-size:.85rem}.review-row .review-ipa{color:var(--accent-2);font-family:var(--font-mono);font-size:.8em;white-space:nowrap}.history-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}.history-group{display:flex;flex-direction:column;max-height:18rem;overflow-y:auto}.history-row{display:grid;grid-template-columns:auto 1fr auto auto;gap:.75rem;align-items:baseline;padding:.5rem;border-bottom:1px solid var(--divider);border-radius:var(--radius-sm);font-size:.9rem;transition:background-color .15s}.history-row:hover{background:var(--glass-bg-hover)}.history-date{color:var(--sub-color);font-size:.8rem}.history-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:14rem}.history-meta{color:var(--sub-color);font-size:.8rem;white-space:nowrap}.history-nums{white-space:nowrap;color:var(--text-color);font-family:var(--font-mono)}.history-nums b{background:linear-gradient(135deg,var(--main-color),var(--accent-2));-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:600}@media(max-width:720px){.history-row{grid-template-columns:1fr auto}.history-meta{display:none}}.loading{display:flex;flex-direction:column;align-items:center;gap:1.5rem;padding:4rem 0;color:var(--sub-color)}.spinner{width:3rem;height:3rem;border:.2rem solid var(--glass-border);border-top-color:var(--main-color);border-right-color:var(--accent-2);border-radius:50%;animation:spin .8s linear infinite}.footer{color:var(--sub-color);font-size:.85rem;text-align:center;display:flex;flex-direction:column;gap:.5rem}.footer-warning{color:var(--error-color);font-size:.85rem;text-align:center}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){body:before{animation:none}.words{transition:none}.meaning-bubble{animation:none;transition:opacity .1s linear}.caret{animation:none}}@media(max-width:720px){.app{gap:1.25rem;padding:1.25rem .75rem 1.75rem}.logo{font-size:1.4rem}.results{padding:1.5rem}.results .big-stats{gap:2.5rem}.results .big-stats .bottom{font-size:3rem;line-height:3rem}.typing-area{padding:1.25rem 1rem 1rem}.words-area{height:calc(var(--fs) * 4 + 7.5rem)}}.palette-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:var(--backdrop);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:grid;place-items:start center;padding-top:15vh;animation:fade-in .15s ease}.palette{width:min(520px,calc(100% - 2rem));max-height:60vh;display:flex;flex-direction:column;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius);box-shadow:var(--glass-shadow),0 0 60px #7c3aed26;backdrop-filter:blur(24px) saturate(1.4);-webkit-backdrop-filter:blur(24px) saturate(1.4);overflow:hidden;animation:modal-in .15s ease}.palette-input-wrap{display:flex;align-items:center;gap:.6rem;padding:.75rem 1rem;border-bottom:1px solid var(--divider)}.palette-search-icon{color:var(--sub-color);flex-shrink:0;display:flex;align-items:center}.palette-input{flex:1;background:none;border:none;outline:none;color:var(--text-color);font-family:var(--font);font-size:1.05rem;caret-color:var(--main-color)}.palette-input::placeholder{color:var(--sub-color)}.palette-list{flex:1;overflow-y:auto;padding:.35rem 0}.palette-empty{padding:2rem 1rem;text-align:center;color:var(--sub-color);font-size:.9rem}.palette-group{padding:.15rem 0}.palette-group-label{padding:.4rem 1rem .2rem;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--main-color)}.palette-item{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem 1rem;cursor:pointer;font-size:.95rem;color:var(--text-color);border-radius:0;transition:background-color .08s}.palette-item:hover,.palette-item.active{background:var(--glass-bg-hover)}.palette-item.selected{color:var(--main-color)}.palette-item-check{color:var(--accent-2);font-weight:700;font-size:.85rem}.palette-footer{padding:.5rem 1rem;border-top:1px solid var(--divider);color:var(--sub-color);font-size:.75rem;text-align:center}.palette-footer kbd{font-size:.7rem}
