:root{--bg:#0f0f0f;--panel:rgba(32,32,32,0.72);--panel-output:#121212;--menu:#1c1c1c;--line:#2b2b2b;--line-soft:#232323;--lime:#8ae81c;--lime-dark:#6fbd16;--text:#f2f5ef;--muted:#a4b099;--dim:#7d8a72;--faint:#5f6b56;--faint-text:#7d8a72;--warn:#c4553d;--sans:"Archivo",system-ui,sans-serif;--mono:"JetBrains Mono",ui-monospace,monospace;--grid:48px;--grid-line:rgba(140,140,140,0.25);--radius:10px;--radius-sm:6px;--control-bg:rgba(0,0,0,0.35)}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--sans);font-size:16px;-webkit-font-smoothing:antialiased;min-height:100vh;position:relative}body:before{z-index:-2;background-image:linear-gradient(var(--grid-line) 1px,transparent 1px),linear-gradient(90deg,var(--grid-line) 1px,transparent 1px);background-size:var(--grid) var(--grid);-webkit-mask-image:radial-gradient(ellipse 58% 50% at 50% 45%,#000 15%,transparent 82%);mask-image:radial-gradient(ellipse 58% 50% at 50% 45%,#000 15%,transparent 82%)}body:after,body:before{content:"";position:fixed;inset:0;pointer-events:none}body:after{z-index:-1;background:radial-gradient(ellipse 80% 60% at 50% 42%,rgba(138,232,28,.1) 0,rgba(138,232,28,.035) 40%,transparent 70%)}*{scrollbar-width:thin;scrollbar-color:#2f382a transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#0b0d0a}::-webkit-scrollbar-thumb{background:#2f382a;border-radius:5px;border:2px solid #0b0d0a}::-webkit-scrollbar-thumb:hover{background:#3d4a34}::-webkit-scrollbar-corner{background:#0b0d0a}.panel{position:relative;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 18px 48px rgba(0,0,0,.55);overflow:hidden}.panel-output{background:var(--panel-output)}.panel>.corners:before{left:calc(var(--frame) * -1);border-left:var(--frame) solid var(--lime)}.panel>.corners:after,.panel>.corners:before{bottom:calc(var(--frame) * -1);border-bottom:var(--frame) solid var(--lime)}.panel>.corners:after{right:calc(var(--frame) * -1);border-right:var(--frame) solid var(--lime)}button{cursor:pointer}button,textarea{font:inherit;border:none;background:none;color:inherit}textarea{resize:none;width:100%;outline:none}textarea::placeholder{color:var(--faint)}button:focus-visible{outline:2px solid var(--lime);outline-offset:2px}input:focus,input:focus-visible,textarea:focus,textarea:focus-visible{outline:none}.label{font-size:11px;font-weight:600;letter-spacing:.08em;color:var(--dim);text-transform:uppercase}.chip{font-size:13px;padding:7px 14px;background:var(--control-bg);border:1px solid #3a3a3a;border-radius:var(--radius-sm);color:var(--muted);transition:color .12s,border-color .12s}.chip:hover{color:var(--text);border-color:#4d4d4d}.chip[data-on=true]{background:var(--lime);border-color:var(--lime);color:var(--bg);font-weight:600}.chip:disabled{cursor:not-allowed}.chip:disabled,.chip:disabled:hover{color:var(--faint);border-color:var(--line-soft)}.btn-primary{font-family:var(--sans);font-size:14px;font-weight:600;background:var(--lime);color:var(--bg);border:0;border-radius:var(--radius-sm);padding:13px 18px;transition:background .12s}.btn-primary:not(:disabled):hover{background:#9bf52d}.btn-primary:disabled{background:var(--line);color:var(--faint);cursor:not-allowed}.mono{font-family:var(--mono)}@keyframes blink{50%{opacity:0}}.caret{animation:blink 1s step-end infinite;color:var(--lime)}.editor-scroll{flex:1 1;min-height:0;overflow-y:auto;overflow-x:hidden}.editor-rows{display:flex;align-items:stretch;min-height:100%}.editor-wrap{position:relative;flex:1 1;min-width:0}.editor-shared{font-family:var(--mono);font-size:14px;line-height:22px;padding:14px 16px;margin:0;border:0;-moz-tab-size:2;tab-size:2;white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere}.editor-pre{position:relative;pointer-events:none;color:var(--text);min-height:100%}.editor-input{position:absolute;inset:0;display:block;width:100%;height:100%;background:transparent;color:transparent;caret-color:var(--lime);outline:none;resize:none;overflow:hidden}.editor-input::selection{background:rgba(138,232,28,.28)}.t-key{color:var(--lime);font-weight:700}.t-str{color:var(--text)}.t-num{color:#7fd4e8}.t-lit{color:#d4a05e}.t-punc{color:var(--dim)}.gutter{width:40px;flex-shrink:0;background:var(--bg);border-right:1px solid var(--line);color:var(--faint);font-family:var(--mono);font-size:11px;line-height:22px;padding:14px 0;text-align:center;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;user-select:none}.icon-btn{background:var(--control-bg);border:1px solid #3a3a3a;border-radius:var(--radius-sm);color:var(--text);padding:7px 13px;font-size:13px;line-height:1.3}.icon-btn:disabled{color:var(--faint);cursor:not-allowed}.icon-btn:not(:disabled):hover{border-color:var(--faint)}@keyframes shimmer{0%,to{opacity:.18}50%{opacity:.55}}.skel{padding:18px 20px}.skel-line{height:11px;background:var(--lime);margin-bottom:13px;animation:shimmer 1.5s ease-in-out infinite}.ctrl{font:inherit;font-size:14px;color:var(--text);background:var(--control-bg);border:1px solid #3a3a3a;border-radius:var(--radius-sm);padding:10px 16px;transition:color .12s,border-color .12s;text-align:left;white-space:nowrap}.ctrl:not(:disabled):hover{color:#ffffff;border-color:#5a5a5a}.ctrl:disabled{color:var(--faint);border-color:#2b2b2b;cursor:not-allowed}.menu{position:absolute;top:calc(100% + 6px);left:0;min-width:100%;background:var(--menu);border:1px solid #3a3a3a;border-radius:var(--radius-sm);box-shadow:0 12px 32px rgba(0,0,0,.75);padding:4px;z-index:30}.menu button{display:block;width:100%;text-align:left;font-size:14px;padding:9px 13px;border-radius:4px;color:var(--muted);transition:background .1s,color .1s}.menu button:hover{background:rgba(255,255,255,.06);color:var(--text)}.menu button[data-on=true]{color:var(--lime);font-weight:600;background:rgba(138,232,28,.1)}.seg{position:relative;display:inline-flex;border:1px solid #3a3a3a;border-radius:var(--radius-sm);background:var(--control-bg);padding:3px}.seg:before{content:"";position:absolute;top:3px;bottom:3px;left:3px;width:calc(50% - 3px);border-radius:4px;background:var(--lime);transition:transform .24s cubic-bezier(.4,0,.2,1);transform:translateX(var(--seg-x,0))}.seg button{position:relative;z-index:1;font-size:13px;min-width:80px;padding:8px 18px;color:var(--muted);border-radius:4px;transition:color .2s}.seg button[data-on=true]{color:var(--bg);font-weight:600}