:root{--bg-0: #050b16;--bg-1: #0a1628;--cyan: #6ec8ff;--cyan-bright: #dff6ff;--line: rgba(110, 200, 255, .28);--text: #e8f4ff;--muted: #8fb0cc;--danger: #ff7b8a;--panel: rgba(8, 20, 38, .72);--font-display: "Orbitron", "Noto Sans SC", sans-serif;--font-body: "Noto Sans SC", "Noto Sans", sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{font-family:var(--font-body);color:var(--text);background:radial-gradient(1200px 700px at 15% -10%,rgba(40,120,200,.35),transparent 55%),radial-gradient(900px 600px at 90% 10%,rgba(20,80,160,.28),transparent 50%),linear-gradient(180deg,var(--bg-1),var(--bg-0))}button,textarea,input{font:inherit}.app{position:relative;min-height:100vh;max-width:1180px;margin:0 auto;padding:24px 20px 32px;overflow:hidden}.glow{position:absolute;border-radius:999px;filter:blur(50px);pointer-events:none;z-index:0}.glow-a{width:280px;height:280px;left:-60px;top:120px;background:#46a0ff2e}.glow-b{width:320px;height:320px;right:-80px;bottom:40px;background:#286ec829}.topbar,.stage,.modal{position:relative;z-index:1}.topbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;margin-bottom:22px}.brand{display:flex;align-items:center;gap:14px;justify-self:start}.brand-mark{width:14px;height:14px;border-radius:50%;background:var(--cyan-bright);box-shadow:0 0 0 6px #6ec8ff26,0 0 24px #b4e6ffcc}.brand h1{margin:0;font-family:var(--font-display);letter-spacing:.18em;font-size:1.35rem}.topbar .ghost-btn{justify-self:end}.mode-btn{justify-self:center;display:flex;flex-direction:column;align-items:center;gap:2px;min-width:120px;padding:8px 18px;border-radius:999px;border:1px solid var(--line);background:#14304eb3;color:var(--text);cursor:pointer;transition:.2s ease}.mode-btn strong{font-size:.9rem}.mode-btn span{font-size:.68rem;color:var(--muted);font-family:var(--font-display);letter-spacing:.06em}.mode-btn.dictionary{border-color:#6ec8ff8c;background:#1e5082bf;box-shadow:0 0 18px #50aaff40}.mode-btn:hover{border-color:#96dcff8c;background:#285a8c8c}.ghost-btn,.composer-actions button,.modal-actions button{border:1px solid var(--line);background:#14304e8c;color:var(--text);border-radius:999px;padding:10px 16px;cursor:pointer;transition:.2s ease}.ghost-btn:hover,.composer-actions button:hover,.modal-actions button:hover{border-color:#6ec8ff8c;background:#285a8c8c}.stage{display:grid;grid-template-columns:minmax(240px,340px) 1fr;gap:20px;min-height:calc(100vh - 120px)}.avatar-panel,.chat-panel{background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:24px}.avatar-panel{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px 20px;gap:18px}.avatar-ring{position:relative;width:min(78vw,280px);aspect-ratio:1;border-radius:50%;padding:8px;background:radial-gradient(circle at 50% 50%,rgba(180,230,255,.25),transparent 55%),#06101ee6;box-shadow:0 0 0 1px #6ec8ff59,0 0 40px #50aaff40;overflow:hidden;animation:idle-pulse 3.6s ease-in-out infinite}.avatar-core{position:relative;width:100%;height:100%;border-radius:50%;background:radial-gradient(circle at 50% 45%,#0b1c33,#06101c 62%,#03070f);display:grid;place-items:center}.avatar-halo{position:absolute;top:12%;right:12%;bottom:12%;left:12%;border-radius:50%;background:radial-gradient(circle,rgba(80,170,255,.35),transparent 70%);filter:blur(2px)}.avatar-orbit{position:absolute;top:6%;right:6%;bottom:6%;left:6%;border-radius:50%;border:1px dashed rgba(140,210,255,.22);pointer-events:none}.avatar-ring-mid{position:absolute;top:22%;right:22%;bottom:22%;left:22%;border-radius:50%;border:2px solid rgba(110,190,255,.35);box-shadow:inset 0 0 24px #5ab4ff40}.avatar-eye{position:relative;width:42%;aspect-ratio:1;border-radius:50%;border:3px solid rgba(230,248,255,.95);box-shadow:0 0 18px #c8f0ffd9,inset 0 0 18px #78c8ff59;background:radial-gradient(circle at 50% 50%,#041018 40%,#0a2038);overflow:hidden}.avatar-iris{position:absolute;width:58%;aspect-ratio:1;left:50%;top:54%;border-radius:50%;background:radial-gradient(circle at 38% 32%,#1a4a78,#071422 62%,#03080f);box-shadow:inset 0 0 10px #50b4ff59;transform:translate(-50%,-50%)}.avatar-pupil{position:absolute;width:38%;aspect-ratio:1;left:50%;top:50%;border-radius:50%;background:#02060c;transform:translate(-50%,-50%);box-shadow:0 0 8px #000c}.avatar-glint{position:absolute;width:18%;aspect-ratio:1;right:18%;bottom:20%;border-radius:50%;background:#f4fbff;box-shadow:0 0 10px #fffffff2}.avatar-lid{position:absolute;left:-4%;right:-4%;height:54%;background:linear-gradient(180deg,#07101c,#0a1828);z-index:4;pointer-events:none;transform:scaleY(0)}.avatar-lid-top{top:-2%;transform-origin:top center;border-radius:0 0 48% 48%}.avatar-lid-bot{bottom:-2%;transform-origin:bottom center;border-radius:48% 48% 0 0}.avatar-lid-top,.avatar-lid-bot{animation:eye-blink 5.4s ease-in-out infinite}.avatar-ring.mood-thinking{animation:think-glow 1.4s ease-in-out infinite;box-shadow:0 0 0 1px #c8f0ff80,0 0 50px #5ab4ff66}.avatar-ring.mood-thinking .avatar-halo{animation:think-halo 1.6s ease-in-out infinite}.avatar-ring.mood-thinking .avatar-orbit{animation:iris-spin 6s linear infinite;border-color:#aae6ff73}.avatar-ring.mood-thinking .avatar-ring-mid{animation:iris-spin 9s linear infinite reverse;border-color:#a0dcff8c}.avatar-ring.mood-thinking .avatar-iris{animation:look-around 2.8s ease-in-out infinite}.avatar-ring.mood-thinking .avatar-lid-top,.avatar-ring.mood-thinking .avatar-lid-bot{animation:eye-blink 2.2s ease-in-out infinite}.avatar-ring.mood-speaking,.avatar-ring.speaking{animation:speak-pulse 1.1s ease-in-out infinite;box-shadow:0 0 0 1px #c8f0ff8c,0 0 55px #78c8ff73}.avatar-ring.mood-speaking .avatar-iris{animation:look-talk 1.6s ease-in-out infinite}.avatar-ring.mood-speaking .avatar-lid-top,.avatar-ring.mood-speaking .avatar-lid-bot{animation:eye-blink 3.4s ease-in-out infinite}.avatar-ring.mood-listening{animation:listen-glow 1.8s ease-in-out infinite}.avatar-ring.mood-listening .avatar-iris{animation:look-listen 2.4s ease-in-out infinite}.avatar-ring.mood-idle .avatar-iris{animation:look-idle 7s ease-in-out infinite}@media(prefers-reduced-motion:reduce){.avatar-ring,.avatar-iris,.avatar-orbit,.avatar-ring-mid,.avatar-halo,.avatar-lid-top,.avatar-lid-bot{animation:none!important}}.avatar-img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block}.scanlines{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:repeating-linear-gradient(to bottom,rgba(0,0,0,.12) 0px,rgba(0,0,0,.12) 1px,transparent 2px,transparent 4px);pointer-events:none;mix-blend-mode:soft-light}.avatar-meta{text-align:center;display:grid;gap:4px}.avatar-meta strong{font-family:var(--font-display);letter-spacing:.14em}.avatar-meta span{color:var(--muted);font-size:.9rem}.avatar-meta .fr{font-size:.82rem;opacity:.85}.chat-panel{display:flex;flex-direction:column;min-height:560px;overflow:visible}.messages{flex:1;overflow:auto;padding:18px;display:flex;flex-direction:column;gap:12px}.bubble{max-width:min(100%,560px);padding:12px 14px;border-radius:16px;border:1px solid var(--line);background:#0c1c30cc}.bubble.user{align-self:flex-end;background:#183a60c7}.bubble.assistant{align-self:flex-start}.bubble.pending{opacity:.75}.bubble-label{font-size:.75rem;color:var(--cyan);margin-bottom:6px;letter-spacing:.04em}.bubble p{margin:0;line-height:1.55;white-space:pre-wrap;word-break:break-word}.line-zh,.line-main{margin-bottom:8px!important}.typo-error{background:transparent;color:#ff6b7a;font-weight:600;text-decoration:underline wavy #ff6b7a;text-underline-offset:2px}.line-correct{margin:0 0 8px!important;padding:6px 8px;border-radius:8px;background:#2878502e;border:1px solid rgba(120,220,160,.28);color:#b8f0d0;font-size:.9rem;line-height:1.45}.line-correct span{display:block;color:#7dcea0;font-size:.68rem;margin-bottom:2px;letter-spacing:.03em}.line-fr,.line-sub{color:#b7d3ea;font-size:.95rem;border-top:1px dashed rgba(110,200,255,.22);padding-top:8px}.live-translate-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:stretch;margin:0 18px 8px;position:relative;overflow:visible;z-index:5}.live-translate-wrap{min-width:0;display:grid;gap:6px;border:1px solid var(--line);border-radius:10px;padding:6px 8px 8px;background:#0712228c}.live-preview-head{display:flex;align-items:center;gap:8px;min-width:0}.live-preview-label{color:var(--cyan);font-size:.68rem;letter-spacing:.02em}.web-search-toggle{display:inline-flex;align-items:center;gap:5px;border:1px solid rgba(110,200,255,.35);background:#0c1c30e6;color:#9eb6cc;border-radius:999px;padding:3px 9px 3px 7px;font-size:.72rem;cursor:pointer;transition:.15s ease;white-space:nowrap;flex-shrink:0}.web-search-toggle:hover{border-color:#6ec8ff99;color:#d7ecff}.web-search-toggle.on{border-color:#50beffbf;background:linear-gradient(180deg,#286eb4d9,#144682e6);color:#eef8ff;box-shadow:0 0 12px #46a0ff47}.web-search-dot{width:7px;height:7px;border-radius:50%;background:#5a738a;box-shadow:inset 0 0 0 1px #ffffff26}.web-search-toggle.on .web-search-dot{background:#5dffb2;box-shadow:0 0 8px #5dffb2b3}.live-translate{display:grid;grid-template-columns:1fr 1fr;gap:8px;min-width:0}.live-translate>div{border:1px solid var(--line);border-radius:10px;padding:5px 8px;background:#071222b3;min-height:0}.live-translate span{display:block;color:var(--cyan);font-size:.65rem;margin-bottom:2px;letter-spacing:.02em}.live-translate p{margin:0;color:#cfe4f7;font-size:.78rem;line-height:1.35;min-height:1.1em;max-height:2.7em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.live-translate-hidden{border:1px dashed rgba(110,200,255,.28);border-radius:10px;padding:8px 10px;background:#07122273;display:flex;flex-direction:column;justify-content:center;gap:4px;min-width:0}.live-translate-hidden.nested{border-style:solid;grid-column:1 / -1}.live-translate-hidden span{color:var(--cyan);font-size:.68rem}.live-translate-hidden p{margin:0;color:var(--muted);font-size:.78rem}.side-actions{display:flex;flex-direction:row;gap:6px;align-items:stretch}.side-actions.collapsed{justify-content:flex-end}.fold-btn{display:flex;align-items:center;justify-content:center;align-self:stretch;min-width:32px;width:32px;padding:0;border-radius:10px;border:1px solid rgba(150,210,255,.35);background:#1c4066d9;color:#dff2ff;font-size:1.45rem;font-weight:400;line-height:1;cursor:pointer;transition:.2s ease;font-family:Consolas,Segoe UI,system-ui,sans-serif;flex-shrink:0}.fold-btn:hover{border-color:#96dcffb3;background:#326eaabf;color:#fff}.register-btn,.hide-btn,.mute-btn,.voice-btn-pick{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:64px;padding:6px 10px;border-radius:10px;border:1px solid var(--line);background:#14304ea6;color:var(--text);cursor:pointer;transition:.2s ease}.register-btn strong,.hide-btn strong,.mute-btn strong,.voice-btn-pick strong{font-size:.78rem;font-weight:600}.register-btn span,.hide-btn span,.mute-btn span,.voice-btn-pick span{font-size:.68rem;color:var(--muted);font-family:var(--font-display);letter-spacing:.06em}.register-btn.formal{box-shadow:inset 0 0 0 1px #96d2ff33}.register-btn.informal{border-color:#78dcb473;background:#123830a6;box-shadow:inset 0 0 0 1px #78dcb42e}.register-btn.informal span{color:#9fd9c4}.hide-btn.on{border-color:#ffaa6e80;background:#4628188c}.hide-btn.on span{color:#ffc39a}.mute-btn.on{border-color:#ff788c8c;background:#46182499}.mute-btn.on strong{color:#ffb3c0}.mute-btn.on span{color:#ff9aab}.register-btn:hover,.hide-btn:hover,.mute-btn:hover,.voice-btn-pick:hover{border-color:#96dcff8c;background:#285a8c8c}.voice-picker{position:relative;display:flex;align-items:stretch;z-index:6}.voice-btn-pick.open{border-color:#96d2ff8c;background:#245082bf;box-shadow:inset 0 0 0 1px #96d2ff33}.voice-panel{position:absolute;right:0;bottom:calc(100% + 8px);z-index:80;min-width:176px;padding:10px;border-radius:14px;border:1px solid rgba(130,200,255,.5);background:#08162afa;box-shadow:0 16px 40px #0000008c,0 0 0 1px #50a0ff29;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);display:grid;gap:8px;pointer-events:auto}.voice-panel-title{font-size:.72rem;color:var(--cyan);letter-spacing:.04em;padding:0 2px}.voice-panel-list{display:grid;gap:6px}.voice-option{text-align:left;border:1px solid rgba(110,200,255,.28);background:#102844d9;color:var(--text);border-radius:10px;padding:8px 10px;cursor:pointer;font-size:.86rem;transition:.15s ease}.voice-option:hover{border-color:#96dcff8c;background:#285a8c8c}.voice-option.active{border-color:#6ed2ffb3;background:linear-gradient(180deg,#3278bebf,#1c508cd9);box-shadow:0 0 12px #46a0ff40}.line-fr-only{margin:0;line-height:1.55;color:#e8f4ff;white-space:pre-wrap;word-break:break-word}.line-zh-under{margin:8px 0 0!important;padding-top:8px;border-top:1px dashed rgba(110,200,255,.22);color:#b7d3ea;font-size:.95rem;line-height:1.55;white-space:pre-wrap;word-break:break-word}.line-sub-label{display:block;color:var(--cyan);font-size:.68rem;margin-bottom:2px}.error{margin:0 18px 8px;color:var(--danger);font-size:.9rem}.composer{display:grid;grid-template-columns:1fr auto;gap:10px;padding:14px 18px 18px;border-top:1px solid rgba(110,200,255,.16)}.composer-actions{display:flex;flex-direction:column;gap:8px}.composer textarea{resize:none;border-radius:16px;border:1px solid var(--line);background:#050e1cd9;color:var(--text);padding:12px 14px;outline:none}.composer textarea:focus{border-color:#96dcff8c;box-shadow:0 0 0 3px #50a0e626}.composer-actions button{border:1px solid var(--line);background:#14304e8c;color:var(--text);border-radius:999px;padding:10px 16px;cursor:pointer;transition:.2s ease;white-space:nowrap}.composer-actions button:hover{border-color:#6ec8ff8c;background:#285a8c8c}.composer-actions button:disabled{opacity:.45;cursor:not-allowed}.voice-btn{border-color:#6ec8ff8c!important;background:linear-gradient(180deg,#4696dcd9,#2364aae6)!important;color:#f2f9ff!important;box-shadow:0 0 16px #50aaff59;font-weight:600;touch-action:none;user-select:none;-webkit-user-select:none}.voice-btn:hover{background:linear-gradient(180deg,#5aaaf0f2,#2d78bef2)!important;border-color:#b4e6ffb3!important}.voice-btn.recording{background:linear-gradient(180deg,#dc5a5af2,#aa2832f2)!important;border-color:#ffa0a0cc!important;box-shadow:0 0 20px #ff505073;animation:speak-pulse .9s ease-in-out infinite}.line-zh-dict{margin:0;line-height:1.6;white-space:pre-wrap;word-break:break-word;color:var(--text)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#020810b8;display:grid;place-items:center;z-index:20;padding:16px}.modal{width:min(480px,100%);background:#0b1a2d;border:1px solid var(--line);border-radius:20px;padding:20px;display:grid;gap:12px}.modal h2{margin:0;font-family:var(--font-display);letter-spacing:.08em;font-size:1.1rem}.modal-hint{margin:0;color:var(--muted);font-size:.9rem;line-height:1.5}.modal label{display:grid;gap:6px;font-size:.85rem;color:var(--cyan)}.modal input{border-radius:12px;border:1px solid var(--line);background:#050e1ce6;color:var(--text);padding:10px 12px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}@keyframes idle-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.015)}}@keyframes iris-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes eye-blink{0%,82%,to{transform:scaleY(0)}86%,90%{transform:scaleY(1)}93%{transform:scaleY(.15)}96%{transform:scaleY(0)}}@keyframes look-around{0%{transform:translate(-50%,-50%)}16%{transform:translate(-72%,-62%)}32%{transform:translate(-28%,-36%)}48%{transform:translate(-74%,-48%)}64%{transform:translate(-42%,-72%)}80%{transform:translate(-62%,-30%)}to{transform:translate(-50%,-50%)}}@keyframes look-idle{0%,to{transform:translate(-50%,-50%)}35%{transform:translate(-62%,-44%)}70%{transform:translate(-40%,-58%)}}@keyframes look-talk{0%,to{transform:translate(-50%,-48%)}50%{transform:translate(-50%,-56%)}}@keyframes look-listen{0%,to{transform:translate(-50%,-46%)}50%{transform:translate(-46%,-60%)}}@keyframes think-glow{0%,to{transform:scale(1);filter:brightness(1)}50%{transform:scale(1.025);filter:brightness(1.14)}}@keyframes think-halo{0%,to{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.06)}}@keyframes listen-glow{0%,to{box-shadow:0 0 0 1px #6ec8ff59,0 0 40px #50aaff40}50%{box-shadow:0 0 0 1px #b4e6ff80,0 0 48px #5abeff61}}@keyframes speak-pulse{0%,to{transform:scale(1);filter:brightness(1)}50%{transform:scale(1.03);filter:brightness(1.12)}}@media(max-width:900px){.topbar{grid-template-columns:1fr auto;gap:10px}.mode-btn{grid-column:1 / -1;justify-self:stretch}.topbar .ghost-btn{justify-self:end}.stage{grid-template-columns:1fr}.avatar-panel{min-height:auto;padding:20px}.avatar-ring{width:min(56vw,220px)}.chat-panel{min-height:62vh}.live-translate-row{grid-template-columns:1fr}.side-actions{justify-content:flex-end}.live-translate{grid-template-columns:1fr 1fr}.register-btn,.hide-btn{min-width:64px}.composer-actions{flex-direction:column}}.search-page{position:relative;z-index:1;min-height:calc(100vh - 56px);display:grid;grid-template-rows:auto 1fr auto;gap:14px}.search-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.search-brand{display:inline-flex;align-items:center;gap:12px;border:1px solid var(--line);background:#14304e8c;color:var(--text);border-radius:999px;padding:10px 16px 10px 14px;cursor:pointer;transition:.2s ease}.search-brand:hover{border-color:#6ec8ff8c;background:#285a8c8c}.search-brand-text{font-family:var(--font-display);letter-spacing:.18em;font-size:1.05rem}.search-hint{margin:0;color:var(--muted);font-size:.85rem}.search-body{min-height:0;overflow:auto;border:1px solid var(--line);border-radius:20px;background:var(--panel);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);padding:14px}.search-empty{display:grid;place-content:center;text-align:center;gap:6px;min-height:40vh;color:var(--muted)}.search-empty strong{color:var(--cyan-bright);font-weight:600}.search-empty p{margin:0;font-size:.9rem}.search-results{display:grid;gap:10px}.search-result{text-align:left;border:1px solid var(--line);background:#071222b3;color:var(--text);border-radius:14px;padding:12px 14px;cursor:pointer;transition:.15s ease}.search-result:hover{border-color:#6ec8ff8c;background:#14304ebf}.search-result-top{display:flex;justify-content:space-between;gap:10px;margin-bottom:6px}.search-result-top strong{font-size:.95rem}.search-result-top span{color:var(--cyan);font-size:.72rem;white-space:nowrap}.search-result p{margin:0;color:var(--muted);font-size:.82rem;line-height:1.45}.search-detail{display:grid;gap:12px}.search-detail-meta{display:flex;gap:8px;color:var(--cyan);font-size:.75rem}.search-detail h2{margin:0;font-size:1.25rem;font-family:var(--font-display);letter-spacing:.04em}.search-detail-text{margin:0;white-space:pre-wrap;word-break:break-word;line-height:1.55;color:#d7eafc;font-family:var(--font-body);font-size:.92rem}.search-composer{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center}.search-composer input{border:1px solid var(--line);background:#071222d9;color:var(--text);border-radius:999px;padding:14px 18px;outline:none}.search-composer input:focus{border-color:#6ec8ff99}.search-composer button{border:1px solid rgba(110,200,255,.55);background:linear-gradient(180deg,#4696dcd9,#2364aae6);color:#f2f9ff;border-radius:999px;padding:12px 20px;cursor:pointer;font-weight:600;box-shadow:0 0 16px #50aaff4d}.search-composer button:disabled{opacity:.45;cursor:not-allowed}.search-entry-btn{letter-spacing:.08em}.section-switch{position:relative;z-index:2;display:flex;justify-content:center;gap:6px;margin:0 auto 18px;padding:5px;width:fit-content;max-width:100%;border-radius:999px;border:1px solid var(--line);background:#08162ab8;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.section-switch button{border:none;background:transparent;color:var(--muted);padding:9px 22px;border-radius:999px;cursor:pointer;font-size:.92rem;letter-spacing:.06em;transition:.18s ease}.section-switch button:hover{color:var(--text)}.section-switch button.active{color:var(--cyan-bright);background:#2864aaa6;box-shadow:0 0 14px #50aaff38}.app-level{max-width:860px}.topbar-level{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.topbar-level .brand{display:flex;align-items:center;gap:12px}.topbar-level .brand p{margin:2px 0 0;color:var(--muted);font-size:.82rem}.level-test{--ok: #7dffb4;--bad: #ff8a9a;position:relative;z-index:1}.level-toolbar{display:flex;justify-content:flex-end;margin-bottom:12px}.level-stage{max-width:100%}.lt-card{background:var(--panel);border:1px solid var(--line);border-radius:22px;padding:28px 26px;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.level-test .home-card h2,.level-test .summary-card h2{margin:0 0 12px;font-size:1.55rem;letter-spacing:.02em}.level-test .lead{margin:0 0 16px;color:#c7ddf0;line-height:1.6}.level-test .rules{margin:0 0 28px;padding-left:1.2em;color:var(--muted);line-height:1.7}.level-test .start-btn{width:100%;padding:16px 20px;font-size:1.15rem;font-weight:600;letter-spacing:.08em}.lt-primary,.lt-ghost{border-radius:999px;padding:10px 18px;cursor:pointer;transition:.2s ease;font:inherit}.lt-primary{border:1px solid rgba(110,200,255,.55);background:linear-gradient(180deg,#4696dce6,#2364aaf2);color:#f2f9ff;box-shadow:0 0 16px #50aaff47}.lt-primary:hover:not(:disabled){border-color:#b4e6ffb3;filter:brightness(1.06)}.lt-primary:disabled{opacity:.45;cursor:not-allowed}.lt-ghost{border:1px solid var(--line);background:#14304e8c;color:var(--text)}.lt-ghost:hover:not(:disabled){border-color:#96dcff8c;background:#285a8c8c}.lt-ghost:disabled{opacity:.45;cursor:not-allowed}.level-test .quiz-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px;color:var(--muted);font-size:.88rem}.level-test .type-pill{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;border:1px solid rgba(110,200,255,.4);background:#143c648c;color:var(--cyan-bright);font-size:.78rem;letter-spacing:.04em}.level-test .type-pill.sm{flex-shrink:0}.level-test .prompt-block{margin:0 0 16px}.level-test .prompt-line{margin:0 0 10px;font-size:1.05rem;line-height:1.65;white-space:pre-wrap;word-break:break-word;color:#e8f4ff}.level-test .prompt-option{margin:0 0 6px;padding-left:4px;font-size:.95rem;line-height:1.5;color:#cfe4f7}.level-test .blank-slot{display:inline-block;min-width:4.5em;margin:0 .15em;padding:0 .35em;border-bottom:2px solid rgba(110,200,255,.75);color:var(--cyan-bright);font-weight:600;letter-spacing:.08em;text-align:center}.level-test .passage{margin:0 0 16px;padding:14px 16px;border-left:3px solid rgba(110,200,255,.55);border-radius:0 12px 12px 0;background:#061222b3;color:#d7eafc;line-height:1.6;white-space:pre-wrap}.level-test .listen-box{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:18px}.level-test .subtitle{width:100%;margin:4px 0 0;padding:12px 14px;border-radius:12px;border:1px dashed rgba(110,200,255,.35);background:#071222bf;color:#cfe4f7;line-height:1.55}.level-test .answer-form{display:grid;gap:10px}.level-test .answer-form label{color:var(--cyan);font-size:.85rem}.level-test .answer-form input{border-radius:14px;border:1px solid var(--line);background:#050e1ce6;color:var(--text);padding:14px 16px;outline:none}.level-test .answer-form input:focus{border-color:#96dcff8c;box-shadow:0 0 0 3px #50a0e226}.level-test .hint{margin:0;color:var(--muted);font-size:.85rem}.level-test .feedback{display:grid;gap:10px;padding:16px;border-radius:16px;border:1px solid var(--line)}.level-test .feedback.ok{border-color:#7dffb473;background:#14463259}.level-test .feedback.bad{border-color:#ff8a9a73;background:#46182459}.level-test .verdict{margin:0;font-size:1.15rem;font-weight:600}.level-test .feedback.ok .verdict{color:var(--ok)}.level-test .feedback.bad .verdict{color:var(--bad)}.level-test .explain{margin:0;color:var(--muted);line-height:1.5}.level-test .error-inline{color:#ff8a9a;margin:0 0 12px;font-size:.9rem}.level-test .bank-hint{margin:0 0 16px;color:var(--muted);font-size:.85rem}.level-test .tier-pill{display:inline-flex;padding:4px 10px;border-radius:999px;border:1px solid rgba(180,230,255,.35);background:#1e466e80;color:#dff6ff;font-size:.72rem}.level-test .level-badge{display:grid;gap:6px;margin:12px 0 16px;padding:18px 20px;border-radius:16px;border:1px solid rgba(110,200,255,.45);background:linear-gradient(135deg,#2864aa59,#0c203ad9);text-align:center}.level-test .level-badge span{color:var(--cyan);font-size:.8rem;letter-spacing:.06em}.level-test .level-badge strong{font-family:var(--font-display);font-size:1.8rem;letter-spacing:.08em;color:var(--cyan-bright)}.level-test .level-detail{margin:0 0 12px;color:#b7d3ea;line-height:1.55;font-size:.92rem}.level-test .score{font-size:1.2rem;color:#d7eafc}.level-test .score strong{color:var(--cyan-bright);font-size:1.45rem}.level-test .summary-list{list-style:none;margin:18px 0 24px;padding:0;display:grid;gap:10px}.level-test .summary-list li{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:start;padding:12px 14px;border-radius:14px;border:1px solid var(--line);background:#071222a6}.level-test .summary-list li p{margin:0 0 4px;line-height:1.45}.level-test .summary-list .mini{color:var(--muted);font-size:.85rem}.level-test .summary-list em{font-style:normal;font-weight:700}.level-test .summary-list li.ok em{color:var(--ok)}.level-test .summary-list li.bad em{color:var(--bad)}.level-test .summary-actions{display:flex;flex-wrap:wrap;gap:10px}.learn-page{position:relative;z-index:1}.learn-toolbar{display:flex;justify-content:flex-end;gap:8px;margin-bottom:12px}.learn-home h2{margin:0 0 12px;font-size:1.55rem}.learn-group-title{margin:22px 0 12px;font-size:.85rem;letter-spacing:.08em;color:var(--cyan);font-weight:600}.learn-level-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.learn-level-btn{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:16px 18px;border-radius:16px;border:1px solid var(--line);background:#0c203abf;color:var(--text);cursor:pointer;text-align:left;transition:.18s ease}.learn-level-btn:hover{border-color:#96dcff8c;background:#1e46788c}.learn-level-btn strong{font-size:1.05rem}.learn-level-btn span{color:var(--muted);font-size:.82rem}.learn-level-btn.exam{border-color:#b4c87859}.learn-mode-grid{display:grid;gap:12px;margin-top:8px}.learn-mode-btn{width:100%;padding:14px 18px;font-size:1rem}.learn-root-chip{margin:0 0 14px;color:var(--muted);font-size:.88rem}.learn-root-chip strong{color:var(--cyan-bright)}.learn-card{position:relative;min-height:200px;margin-bottom:18px;border-radius:18px;border:1px solid var(--line);background:#061222d9;cursor:pointer;overflow:hidden}.learn-card-face{padding:28px 22px;text-align:center}.learn-card .back{display:none;border-top:1px dashed rgba(110,200,255,.25);background:#14325a59}.learn-card.flipped .front .learn-hint{display:none}.learn-card.flipped .back{display:block}.learn-fr{margin:0;font-size:2rem;font-family:var(--font-display);letter-spacing:.04em;color:var(--cyan-bright)}.learn-zh{margin:0;font-size:1.45rem;color:#e8f4ff}.learn-zh.big{font-size:1.7rem;margin-bottom:8px}.learn-pos{margin:8px 0 0;color:var(--muted);font-size:.9rem}.learn-hint{margin:18px 0 0;color:var(--muted);font-size:.82rem}.learn-example,.learn-tip{margin:12px 0 0;color:#b7d3ea;line-height:1.55;font-size:.92rem;text-align:left}.learn-root-panel{margin-bottom:18px;padding:20px;border-radius:16px;border:1px solid var(--line);background:#061222bf}.learn-actions{display:flex;gap:10px;justify-content:flex-end}.learn-log-card{margin-top:14px}.learn-attempt-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.learn-attempt-list li{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:start;padding:12px 14px;border-radius:14px;border:1px solid var(--line);background:#071222a6}.learn-attempt-list li p{margin:0 0 4px;line-height:1.45}.learn-attempt-list .mini{color:var(--muted);font-size:.82rem}.learn-attempt-list em{font-style:normal;font-weight:700;padding-top:2px}.learn-attempt-list li.ok em{color:#7dffb4}.learn-attempt-list li.bad em{color:#ff8a9a}.learn-history-list{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:8px}.learn-history-item{width:100%;display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;text-align:left;padding:14px 16px;border-radius:14px;border:1px solid var(--line);background:#071222a6;color:var(--text);cursor:pointer}.learn-history-item:hover{border-color:#96dcff80}.learn-history-item .mini{margin:4px 0 0;color:var(--muted);font-size:.82rem}.learn-history-item em{font-style:normal;color:var(--cyan);font-size:.85rem}.learn-wrong-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.learn-wrong-head h2{margin:0}.learn-wrong-item{align-items:center}.learn-wrong-times{margin:8px 0 0;padding-left:1.1em;color:var(--muted);font-size:.8rem;line-height:1.55}.register-wrap{position:relative;z-index:1;max-width:520px;margin:40px auto 0}.register-brand{margin-bottom:22px}.register-brand h1{margin:0;font-family:var(--font-display);letter-spacing:.18em;font-size:1.35rem}.register-brand p{margin:4px 0 0;color:var(--muted);font-size:.9rem}.register-form{display:grid;gap:10px}.register-form label{color:var(--cyan);font-size:.85rem;margin-top:6px}.register-form input,.register-form select{border-radius:14px;border:1px solid var(--line);background:#050e1ce6;color:var(--text);padding:14px 16px;outline:none}.register-form input:focus,.register-form select:focus{border-color:#96dcff8c;box-shadow:0 0 0 3px #50a0e226}.register-submit{margin-top:12px;width:100%;padding:14px 18px;font-size:1.05rem}.admin-app{max-width:1100px}.admin-actions{display:flex;gap:8px}.admin-layout{position:relative;z-index:1;display:grid;grid-template-columns:minmax(260px,360px) 1fr;gap:16px;align-items:start}.admin-list h2,.admin-detail h2{margin:0 0 12px;font-size:1.25rem}.admin-meta{margin:0 0 8px;padding-left:1.1em;color:#c7ddf0;line-height:1.7}.learn-history-item.active{border-color:#6ec8ffa6;background:#1e467873}@media(max-width:900px){.admin-layout{grid-template-columns:1fr}}@media(max-width:640px){.learn-level-grid{grid-template-columns:1fr}.learn-fr{font-size:1.6rem}.learn-toolbar{flex-wrap:wrap}}@media(max-width:900px){.search-topbar{flex-direction:column;align-items:flex-start}.search-composer{grid-template-columns:1fr}.section-switch button{padding:8px 16px;font-size:.86rem}.lt-card{padding:22px 18px}.level-test .summary-list li{grid-template-columns:1fr auto}.level-test .summary-list .type-pill{grid-column:1 / -1}}
