:root{--bg:#070b14;--panel:#0b1220;--line:#1b2a3d;--text:#e6f1f7;--text-2:#8aa0b4;--cyan:#22d3ee;--yellow:#fbbf24;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--bg);color:var(--text);padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);font:16px/1.6 -apple-system,Segoe UI,PingFang TC,Microsoft JhengHei,sans-serif}.app,.gate{max-width:720px;margin:0 auto;padding:12px 16px 32px}.app{padding-bottom:calc(120px + env(safe-area-inset-bottom));min-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom));flex-direction:column;display:flex}.app>.translate{flex:1}button,select,input,textarea{font:inherit;color:var(--text)}button{border:1px solid var(--line);background:var(--panel);cursor:pointer;border-radius:8px;min-height:44px;padding:0 16px}button.primary{border-color:var(--cyan);color:#fff;background:#0e7490}button:disabled{opacity:.45;cursor:default}input,select,textarea{border:1px solid var(--line);background:#050a12;border-radius:8px;outline:none;min-height:44px;padding:10px 12px}input:focus,select:focus,textarea:focus{border-color:var(--cyan)}.muted{color:var(--text-2)}.error{color:var(--yellow)}.top{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.brand{color:var(--cyan);font-weight:700}.top nav{gap:6px;display:flex}.top-right{align-items:center;gap:10px;display:flex}button.lang-switch{white-space:nowrap;border-radius:16px;min-height:32px;padding:0 10px;font-size:13px}.top .brand,.top-right .small,.top-right .link{white-space:nowrap}.top nav button.on{border-color:var(--cyan);color:var(--cyan)}.gate{flex-direction:column;gap:14px;padding-top:18vh;display:flex}.gate h1{color:var(--cyan);margin:0}.translate{flex-direction:column;gap:10px;display:flex}.row{flex-wrap:wrap;gap:8px;display:flex}.row button{flex:1}.who{flex-wrap:wrap;gap:8px;display:flex}.who label{color:var(--text-2);flex-direction:column;flex:140px;gap:2px;font-size:13px;display:flex}.who label:first-child{flex-basis:100%}button.icon{border-radius:50%;width:40px;height:40px;min-height:40px;padding:0;font-size:18px;line-height:1;position:relative}button.icon:after{content:attr(data-tip);white-space:nowrap;background:var(--line);color:var(--text);pointer-events:none;border-radius:6px;padding:2px 8px;font-size:12px;display:none;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}button.icon:active:after{display:block}@media (hover:hover){button.icon:hover:after{display:block}}.spinner{border:2px solid var(--line);border-top-color:var(--cyan);vertical-align:-2px;border-radius:50%;width:14px;height:14px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.pinyin{border-top:1px solid var(--line);margin-top:12px;padding-top:8px}.pinyin .label{color:var(--text-2);font-size:12px;display:block}.pinyin>div{white-space:pre-wrap;font-size:18px;line-height:1.5}.pinyin .py{vertical-align:bottom;flex-direction:column;align-items:center;margin:0 2px 6px;display:inline-flex}.pinyin .sound{color:var(--cyan);font-size:12px;line-height:1.2}.glossary{flex-direction:column;gap:8px;display:flex}.term{grid-template-columns:1fr 1fr auto;gap:6px;display:grid}.term input{min-width:0}.small{font-size:13px}button.link{min-height:36px;color:var(--cyan);background:0 0;border:0;padding:0 4px;text-decoration:underline}.keyform{gap:8px;margin-bottom:10px;display:flex}.keyform input{flex:1;min-width:0}button.rec{color:#fecdd3;background:#3b0a14;border-color:#f43f5e;animation:1.2s ease-in-out infinite pulse}@keyframes pulse{50%{box-shadow:0 0 0 6px #f43f5e2e}}.rec-note{color:#fda4af;margin:0;font-size:14px}.switch-row{color:var(--text-2);align-items:center;gap:8px;margin-top:10px;font-size:14px;display:flex}.switch-row input{width:20px;height:20px;min-height:0;accent-color:var(--cyan)}.card{background:#0f2a3d;border-radius:16px;flex-direction:column;gap:6px;min-height:120px;padding:14px 16px 10px;display:flex}.card.flip{transform:rotate(180deg)}.card .lang{color:var(--cyan);font-size:13px}.card .text{white-space:pre-wrap;margin:0;font-size:24px;line-height:1.45}.card>p.muted,.card>p.error{margin:auto 0}.icons{justify-content:flex-end;gap:6px;display:flex}.card button.icon{background:0 0;border-color:#0000}.input-wrap{border-top:1px solid var(--line);margin-top:auto;padding-top:4px}.input-wrap textarea{resize:none;background:0 0;border:0;width:100%;min-height:110px;padding:8px 0;font-size:20px}.input-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.input-actions button:not(.icon){border-radius:22px}.sheet{left:0;right:0;bottom:calc(96px + env(safe-area-inset-bottom));z-index:5;background:var(--panel);border:1px solid var(--line);border-radius:16px 16px 0 0;flex-direction:column;gap:12px;max-width:720px;margin:0 auto;padding:16px;display:flex;position:fixed}.dock{z-index:6;background:var(--bg);border-top:1px solid var(--line);padding:10px 16px calc(10px + env(safe-area-inset-bottom));justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0}.dock-btn{color:var(--text-2);background:0 0;border:0;flex-direction:column;align-items:center;gap:2px;min-width:64px;font-size:12px;display:flex}.dock-btn span{font-size:22px;line-height:1}button.mic{border-color:var(--cyan);background:#0e7490;border-radius:50%;width:72px;height:72px;padding:0;font-size:30px}
