:root{--bg:#1a1b26;--panel:#16161e;--line:#2a2b3d;--red:#ff4d6d;--leaf:#9ece6a;--kw:#bb9af7;--ty:#7dcfff;--num:#ff9e64;--fn:#7aa2f7;--cm:#565f89;--tx:#c0caf5}
html,body{margin:0;background:var(--bg);color:var(--tx);font-family:'JetBrains Mono',monospace}
body{background:radial-gradient(ellipse at top left,rgba(255,77,109,.08),transparent 50%),radial-gradient(ellipse at bottom right,rgba(158,206,106,.05),transparent 50%),var(--bg);min-height:100vh}
.display{font-family:'Fraunces',serif}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px}
.ed-wrap{position:relative;flex:1;overflow:hidden}
.ed-wrap pre,.ed-wrap textarea{position:absolute;inset:0;margin:0;padding:12px;font:14px/21px 'JetBrains Mono',monospace;white-space:pre;overflow:auto;tab-size:4;border:0;box-sizing:border-box}
.ed-wrap textarea{background:transparent;color:transparent;caret-color:var(--red);resize:none;outline:none}
.ed-wrap pre{pointer-events:none;color:var(--tx)}
.ed-wrap pre::-webkit-scrollbar{display:none}
.gutter{font:14px/21px 'JetBrains Mono',monospace;padding:12px 8px;color:#3b3f5c;text-align:right;overflow:hidden;user-select:none;border-right:1px solid var(--line);min-width:42px}
.gutter .err{color:var(--red)}
.t-kw{color:var(--kw);font-weight:700}.t-ty{color:var(--ty)}.t-num{color:var(--num)}.t-fn{color:var(--fn)}.t-cm{color:var(--cm);font-style:italic}.t-op{color:#89ddff}
.errline{text-decoration:underline wavy var(--red);text-decoration-skip-ink:none;background:rgba(255,77,109,.08)}
.spin{display:inline-block;animation:spin .6s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.fade{animation:fade .5s ease both}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.btn{border:1px solid var(--line);border-radius:8px;padding:6px 12px;font-size:12px;background:#1f2030;transition:.15s}
.btn:hover{border-color:var(--red);color:#fff}
.btn-red{background:var(--red);color:#1a1b26;border-color:var(--red);font-weight:800}
.btn-red:hover{filter:brightness(1.1);color:#1a1b26}
.tab{padding:8px 12px;font-size:12px;border-bottom:2px solid transparent;color:#7a7fa6}
.tab.on{color:#fff;border-color:var(--red)}
.out{font:13px/20px 'JetBrains Mono',monospace;white-space:pre;overflow:auto}
.chip{display:inline-block;padding:2px 6px;margin:2px;border-radius:5px;font-size:12px;background:#222335;border:1px solid var(--line)}
.s-magic{color:#ff4d6d}.s-type{color:#bb9af7}.s-import{color:#7dcfff}.s-function{color:#e0af68}.s-global{color:#ff9e64}.s-export{color:#9ece6a}.s-code{color:#c0caf5}
.tip{position:absolute;top:120%;left:0;width:240px;z-index:30;font-size:11px}