:root{color-scheme:light;--bg: #fbf7f2;--panel: #f4eee6;--card: #ffffff;--editor-bg: #ffffff;--fg: #23201c;--muted: #857a6c;--primary: #e0662b;--primary-hover: #c9551f;--primary-soft: #fce6da;--on-primary: #ffffff;--border: #f0e9e0;--border-strong: #e7ded3;--hover: #f7f1ea;--ring: rgba(224, 102, 43, .18);--ok: #16a34a;--warn: #d97706;--danger: #d64550;--danger-soft: #fbe7e8;--on-danger: #ffffff;--radius: 12px;--radius-lg: 16px;--font-sans: "Lexend", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace}[data-theme=dark]{color-scheme:dark;--bg: #1a1714;--panel: #211c18;--card: #221f1c;--editor-bg: #1e1b18;--fg: #f2eadf;--muted: #b8ac9c;--primary: #ee7b43;--primary-hover: #e0662b;--primary-soft: #3a2a20;--on-primary: #1a1714;--border: #3d3733;--border-strong: #4a423b;--hover: #2c2620;--ring: rgba(238, 123, 67, .24);--danger: #e06a72;--danger-soft: #3a2226;--on-danger: #23181a}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-sans);background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer}.btn-primary,.btn-secondary,.btn-danger,.btn-ghost{border:1px solid transparent;border-radius:10px;padding:7px 14px;font-size:13px;font-weight:600;transition:background .15s,box-shadow .15s,opacity .15s}.btn-primary{background:var(--primary);color:var(--on-primary)}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-secondary{background:var(--primary-soft);color:var(--primary-hover)}.btn-secondary:hover:not(:disabled){filter:brightness(.97)}.btn-danger{background:var(--danger);color:var(--on-danger)}.btn-danger:hover:not(:disabled){filter:brightness(.93)}.btn-ghost{background:transparent;border-color:var(--border-strong);color:var(--fg)}.btn-ghost:hover{background:var(--hover)}.btn-primary:disabled,.btn-secondary:disabled{opacity:.5;cursor:default}.btn-primary.lg{padding:11px 22px;font-size:15px;border-radius:12px}.btn-icon{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--muted);line-height:1;width:26px;height:26px;border-radius:8px;transition:background .12s,color .12s}.btn-icon:hover{background:var(--hover);color:var(--fg)}.btn-icon.sm{width:24px;height:24px;border-radius:7px}.btn-icon.danger:hover{background:var(--danger-soft);color:var(--danger)}.btn-icon:disabled{opacity:.4;cursor:default;background:transparent;color:var(--muted)}.btn-icon.on{background:var(--primary-soft);color:var(--primary-hover)}.btn-link{background:none;border:none;color:var(--primary);font-size:12.5px;font-weight:600;padding:2px 4px;border-radius:6px}.btn-link:hover{text-decoration:underline}:where(button,a,input,[tabindex]):focus-visible{outline:2px solid var(--primary);outline-offset:2px}.app{height:100%;display:flex;flex-direction:column}.center{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px}.muted{color:var(--muted)}.placeholder h2{margin:0;font-size:18px;letter-spacing:-.01em}.placeholder p{margin:0;max-width:340px;text-align:center;font-size:13.5px;line-height:1.55}.login-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:2.4rem 2.2rem;max-width:400px;text-align:center;box-shadow:0 24px 60px #2d1e121a,0 2px 6px #2d1e120d}.login-badge{width:60px;height:60px;margin:0 auto 1.1rem;border-radius:18px;background:linear-gradient(140deg,#ff8a4c,#e0662b);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-weight:700;font-size:20px;box-shadow:0 8px 18px #e0662b59}.placeholder .login-badge{margin-bottom:.4rem}.login-card h1{margin:0 0 .5rem;font-size:1.6rem;letter-spacing:-.01em}.login-card p{margin:0 0 1.4rem;line-height:1.5;font-size:.95rem}.toolbar{display:flex;align-items:center;gap:8px;padding:8px 14px;background:var(--card);border-bottom:1px solid var(--border)}.toolbar .spacer{flex:1}.toolbar>button{flex:none;white-space:nowrap}.toolbar-file{font-size:13px;display:flex;align-items:center;gap:7px;min-width:0;overflow:hidden;white-space:nowrap}.toolbar-file>*{flex:none}.toolbar-project{font-weight:600}.toolbar-sep{color:var(--muted)}.toolbar-active{font-family:var(--font-mono);color:var(--muted);flex:0 1 auto!important;min-width:0;overflow:hidden;text-overflow:ellipsis}.toolbar-group{display:inline-flex;align-items:center;gap:2px;margin-right:4px}.toolbar-divider{width:1px;height:16px;margin:0 4px;background:var(--border-strong)}.body{flex:1;display:flex;min-height:0}.sidebar{width:264px;flex:none;background:var(--panel);border-right:1px solid var(--border);overflow-y:auto;display:flex;flex-direction:column}.sidebar-top{padding:12px 12px 8px;display:flex;gap:6px}.btn-new{width:100%;display:flex;align-items:center;justify-content:center;gap:7px;padding:9px 12px;border:1px solid transparent;border-radius:10px;background:var(--primary-soft);color:var(--primary-hover);font-size:13px;font-weight:600;transition:background .15s,color .15s}.btn-new:hover{background:var(--primary);color:var(--on-primary)}.btn-import{flex:none;display:inline-flex;align-items:center;justify-content:center;width:38px;border:1px solid var(--border-strong);border-radius:10px;background:transparent;color:var(--muted);transition:background .15s,color .15s,border-color .15s}.btn-import:hover{background:var(--primary-soft);color:var(--primary-hover);border-color:transparent}.section{border-top:1px solid var(--border);padding-bottom:8px}.sidebar-top+.section{border-top:none}.section-head{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:12px 14px 7px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600}.section-head .count{background:var(--border);color:var(--muted);border-radius:20px;padding:1px 7px;font-size:10.5px;letter-spacing:0}.rows{list-style:none;margin:0;padding:0 8px;display:flex;flex-direction:column;gap:2px}.row{position:relative;display:flex;align-items:center;border-radius:10px}.row:hover{background:var(--hover)}.row.active{background:var(--primary-soft)}.row-main{flex:1;min-width:0;display:flex;align-items:center;gap:9px;background:transparent;border:none;color:inherit;font:inherit;text-align:left;padding:8px 80px 8px 9px;border-radius:10px}.row.file .row-main{padding-right:30px}.row-text{min-width:0;display:flex;flex-direction:column;gap:2px}.row-title,.row-sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-title{font-size:13px;font-weight:600}.row-sub{font-size:11px;color:var(--muted)}.row.active .row-title{color:var(--primary-hover)}.row.shown{background:color-mix(in srgb,var(--primary-soft) 45%,transparent)}.file-path{display:flex;min-width:0;font-family:var(--font-mono);font-size:12.5px}.file-path em,.file-path b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-path em{color:var(--muted);font-style:normal;flex:0 999 auto}.file-path b{font-weight:500;flex:0 1 auto}.row.file.active .file-path{color:var(--primary-hover)}.dot{margin-left:auto;color:var(--warn);font-size:9px;flex:none}.row-actions{position:absolute;right:6px;display:flex;gap:2px;opacity:0;transition:opacity .12s}.row:hover .row-actions,.row:focus-within .row-actions{opacity:1}@media(hover:none){.row-actions{opacity:1}}.empty{padding:6px 14px 14px;display:flex;flex-direction:column;align-items:center;gap:5px;text-align:center;color:var(--muted);font-size:12.5px}.empty p{margin:0}.lang-chip{flex:none;display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:30px;padding:0 6px;border-radius:9px;background:var(--hover);background:color-mix(in srgb,var(--lang, var(--primary)) 16%,transparent);color:var(--lang, var(--primary));font-family:var(--font-mono);font-size:11px;font-weight:700}.lang-chip.sm{min-width:22px;height:22px;border-radius:7px;font-size:10px}.main{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}.main.dock-right{flex-direction:row}.editor-area{flex:1 1 0;min-width:0;min-height:0;display:flex;overflow:hidden;background:var(--editor-bg)}.pane{flex:1 1 0;min-width:0;min-height:0;display:flex;flex-direction:column}.pane-body{flex:1;min-height:0;overflow:hidden}.pane-head{flex:none;display:flex;align-items:center;gap:8px;height:32px;padding:0 6px 0 12px;background:var(--panel);border-bottom:1px solid var(--border);box-shadow:inset 0 2px 0 transparent;font-family:var(--font-mono);font-size:12px;color:var(--muted)}.pane-title{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pane-head .dot{margin-left:0}.pane.focused .pane-head{background:var(--editor-bg);color:var(--fg);box-shadow:inset 0 2px 0 var(--primary)}.cm-host{height:100%}.cm-host .cm-editor{height:100%;font-family:var(--font-mono)}.cm-host .cm-scroller{font-family:var(--font-mono)}.splitter{flex:none;position:relative;z-index:2;background:var(--border);touch-action:none;transition:background .12s}.splitter.x{width:1px;cursor:col-resize}.splitter.y{height:1px;cursor:row-resize}.splitter:after{content:"";position:absolute}.splitter.x:after{top:0;right:-4px;bottom:0;left:-4px}.splitter.y:after{top:-4px;right:0;bottom:-4px;left:0}.splitter:hover,.splitter.dragging{background:var(--primary);box-shadow:0 0 0 1px var(--primary)}.splitter:focus-visible{outline:none;background:var(--primary);box-shadow:0 0 0 2px var(--ring)}body.resizing{user-select:none;-webkit-user-select:none}body.resizing iframe{pointer-events:none}body.resizing-x,body.resizing-x *{cursor:col-resize!important}body.resizing-y,body.resizing-y *{cursor:row-resize!important}.output-pane{flex:0 0 38%;min-width:0;min-height:0;background:var(--panel);display:flex;flex-direction:column;overflow:hidden}.output-empty{padding:12px 14px;font-size:13px;flex:1 1 auto}.output-terminal{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.output{padding:8px 14px;flex:1 1 auto;overflow:auto;min-height:0}.term,.output-line{margin:0;font-family:var(--font-mono);font-size:12.5px;line-height:1.5;white-space:pre-wrap;word-break:break-word;color:var(--fg)}.output-line.stderr{color:var(--danger)}.output-line.info{color:var(--muted);font-style:italic}.output-line.stdin{color:var(--primary-hover);font-weight:600}.term-input{font:inherit;font-weight:600;color:var(--primary-hover);background:transparent;border:none;border-radius:3px;outline:none;padding:0 2px;margin:0;max-width:100%;caret-color:var(--primary);vertical-align:baseline;opacity:.75}.term-input.waiting{opacity:1;background:var(--primary-soft)}.term-input:focus{opacity:1}.term-hint{flex:none;padding:5px 14px;border-top:1px solid var(--border);background:var(--card);font-size:11.5px;color:var(--muted)}.term-hint kbd{font-family:var(--font-mono);font-size:10.5px;padding:0 4px;border:1px solid var(--border-strong);border-radius:4px;background:var(--bg)}.output.output-web{padding:0;display:flex;flex-direction:column;overflow:hidden}.preview-bar{flex:none;display:flex;align-items:center;justify-content:space-between;gap:8px;height:30px;padding:0 6px 0 12px;border-bottom:1px solid var(--border);background:var(--panel)}.preview-title{font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.output.output-web.maximized{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9000;background:var(--bg)}.output-frame{flex:1 1 auto;width:100%;min-height:0;border:0;background:#fff}.output-console{flex:0 0 auto;max-height:40%;overflow:auto;padding:0 14px 8px;border-top:1px solid var(--border);background:var(--panel)}.output-console-head{position:sticky;top:0;padding:6px 0 4px;background:var(--panel);font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.output-table-wrap{overflow-x:auto;max-width:100%}.output-table{border-collapse:collapse;font-size:12.5px;margin:6px 0;font-family:var(--font-mono)}.output-table th,.output-table td{border:1px solid var(--border-strong);padding:4px 9px;text-align:left}.output-table th{background:var(--card);font-weight:600}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:24px;background:#1c120a73;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:modal-fade .12s ease-out}.modal{width:min(440px,100%);max-height:calc(100vh - 48px);display:flex;flex-direction:column;overflow:hidden;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 24px 60px #1e120847,0 2px 8px #1e12081f;animation:modal-pop .16s cubic-bezier(.2,.9,.3,1.15)}.modal.wide{width:min(600px,100%)}.modal form{display:flex;flex-direction:column;min-height:0}.modal-head{display:flex;align-items:flex-start;gap:12px;padding:18px 16px 0 18px}.modal-titles{flex:1;min-width:0}.modal-head h2{margin:0;font-size:17px;letter-spacing:-.01em}.modal-head p{margin:5px 0 0;font-size:12.5px;color:var(--muted);line-height:1.45}.modal-body{padding:16px 18px;overflow-y:auto;display:flex;flex-direction:column;gap:15px}.modal-foot{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px;border-top:1px solid var(--border);background:var(--panel)}@keyframes modal-fade{0%{opacity:0}}@keyframes modal-pop{0%{opacity:0;transform:translateY(8px) scale(.98)}}@media(prefers-reduced-motion:reduce){.modal,.modal-backdrop,.toast{animation:none}}.dialog-text{margin:0;font-size:14px;line-height:1.5}.dialog-note{margin:0;font-size:12px;color:var(--muted);line-height:1.5}.mono{font-family:var(--font-mono)}.import-list .mono{font-size:11.5px;color:var(--fg);word-break:break-word}.import-skipped{font-size:12px;color:var(--muted)}.import-skipped summary{cursor:pointer;font-weight:600}.import-skipped ul{margin:6px 0 0;padding-left:18px;max-height:120px;overflow:auto}.import-skipped .mono{font-size:11.5px}.field{display:flex;flex-direction:column;gap:6px;border:none;padding:0;margin:0;min-width:0}.field-label{display:block;padding:0;font-size:12px;font-weight:600;color:var(--muted);letter-spacing:.02em}.input{width:100%;font-family:var(--font-sans);font-size:14px;color:var(--fg);background:var(--bg);border:1px solid var(--border-strong);border-radius:10px;padding:9px 11px;transition:border-color .12s,box-shadow .12s}.input.mono{font-family:var(--font-mono);font-size:13px}.input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--ring)}.input[aria-invalid=true]{border-color:var(--danger)}.field-hint{font-size:11.5px;color:var(--muted)}.field-error{font-size:11.5px;color:var(--danger);font-weight:600}.lang-field{gap:8px}.lang-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.lang-card{position:relative;display:flex;align-items:center;gap:10px;padding:10px;border:1px solid var(--border-strong);border-radius:12px;background:var(--bg);cursor:pointer;transition:border-color .12s,background .12s,box-shadow .12s}.lang-card input{position:absolute;opacity:0;width:1px;height:1px}.lang-card:hover:not(.disabled){border-color:var(--lang)}.lang-card.selected{border-color:var(--lang);box-shadow:inset 0 0 0 1px var(--lang);background:color-mix(in srgb,var(--lang) 8%,transparent)}.lang-card.disabled{opacity:.55;cursor:not-allowed}.lang-card:focus-within{box-shadow:0 0 0 3px var(--ring)}.lang-text{display:flex;flex-direction:column;gap:2px;min-width:0}.lang-name{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600}.lang-hint{font-size:11px;color:var(--muted);line-height:1.35}.tag{font-style:normal;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;background:var(--border);color:var(--muted);padding:2px 5px;border-radius:5px}.toast-host{position:fixed;right:18px;bottom:18px;z-index:10000;display:flex;flex-direction:column;gap:8px;width:min(360px,calc(100vw - 36px))}.toast{display:flex;align-items:flex-start;gap:9px;padding:10px 8px 10px 12px;border-radius:12px;background:var(--card);border:1px solid var(--border-strong);box-shadow:0 12px 28px #1e12082e;font-size:13px;line-height:1.45;animation:toast-in .16s ease-out}.toast-icon{flex:none;display:flex;margin-top:1px}.toast-text{flex:1;min-width:0}.toast.ok .toast-icon{color:var(--ok)}.toast.info .toast-icon{color:var(--primary)}.toast.error .toast-icon{color:var(--danger)}.toast.error{border-color:color-mix(in srgb,var(--danger) 45%,var(--border-strong))}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)}}@media(max-width:900px){.sidebar{width:216px}}@media(max-width:760px){.toolbar{gap:6px;padding:8px 10px}.toolbar-version,.toolbar-sep,.toolbar-active{display:none}.toolbar-project{overflow:hidden;text-overflow:ellipsis;flex:0 1 auto!important;min-width:0}}@media(max-width:560px){.lang-grid{grid-template-columns:1fr}}
