:root{--bg: #22282f;--bg-2: #2a313a;--bg-3: #333b46;--line: #3d4652;--fg: #cfd6dd;--fg-dim: #8f9aa5;--accent: #4aa3df;--radius: 6px;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--fg);font:14px/1.5 system-ui,-apple-system,Segoe UI,Microsoft YaHei,sans-serif}button,select,input{font:inherit;color:inherit}button{background:var(--bg-3);border:1px solid var(--line);border-radius:var(--radius);padding:5px 12px;cursor:pointer}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.45;cursor:default}button.ghost{background:transparent;color:var(--fg-dim)}.app{display:flex;flex-direction:column;height:100%}.topbar{display:flex;align-items:center;gap:20px;padding:8px 14px;background:var(--bg-2);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;min-width:210px}.brand .logo{font-size:20px;color:var(--accent)}.brand strong{display:block;font-weight:600;letter-spacing:.02em}.brand .tagline{display:block;font-size:11px;color:var(--fg-dim);white-space:nowrap}.tabs{display:flex;gap:4px}.tab{background:transparent;border:1px solid transparent;color:var(--fg-dim)}.tab.active{background:var(--bg-3);border-color:var(--line);color:var(--fg)}.actions{margin-left:auto;display:flex;align-items:center;gap:8px}.locale select{background:var(--bg-3);border:1px solid var(--line);border-radius:var(--radius);padding:5px 8px}.subbar{display:flex;align-items:center;gap:14px;padding:5px 14px;font-size:12px;color:var(--fg-dim);background:var(--bg);border-bottom:1px solid var(--line)}.subbar .doc{color:var(--fg)}.subbar .spacer{flex:1}.stage{position:relative;flex:1;min-height:0}.engine-wrap,.engine-frame{position:absolute;inset:0;width:100%;height:100%;border:0}.engine-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:var(--bg);color:var(--fg-dim)}.spinner{width:26px;height:26px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;pointer-events:none;z-index:5}.empty h2{font-weight:500;font-size:18px;margin:0}.open-float{position:absolute;top:18px;left:50%;transform:translate(-50%);z-index:6;padding:9px 22px;background:var(--accent);border-color:var(--accent);color:#0d141b;font-weight:600}.open-float:hover{filter:brightness(1.08)}.muted{color:var(--fg-dim)}.palette-backdrop{position:fixed;inset:0;background:#00000073;display:flex;justify-content:center;padding-top:12vh;z-index:50}.palette{width:min(560px,92vw);max-height:60vh;display:flex;flex-direction:column;background:var(--bg-2);border:1px solid var(--line);border-radius:10px;overflow:hidden;box-shadow:0 18px 50px #00000080}.palette input{border:0;border-bottom:1px solid var(--line);background:transparent;padding:13px 16px;outline:none}.palette ul{margin:0;padding:6px;list-style:none;overflow:auto}.palette li{display:flex;justify-content:space-between;gap:12px;padding:8px 10px;border-radius:var(--radius);cursor:pointer}.palette li.active{background:var(--bg-3)}.palette li code{color:var(--fg-dim);font-size:12px}.palette footer{padding:7px 14px;border-top:1px solid var(--line);font-size:11px;color:var(--fg-dim)}
