:root{font-family:Segoe UI,Microsoft YaHei UI,Noto Sans SC,PingFang SC,sans-serif;font-size:13px;color-scheme:light;--bg: #f3f3f3;--paper: #fff;--ink: #242424;--muted: #666;--line: #dedede;--accent: #107c41;--accent-hover: #0c6534;--tint: #e9f4ed;--hover: #f5f5f5;--chip: #eeeeee;--danger: #c42b1c;background:var(--bg);color:var(--ink)}:root[data-theme=dark]{color-scheme:dark;--bg: #202020;--paper: #292929;--ink: #f0f0f0;--muted: #b6b6b6;--line: #464646;--accent: #70bd8d;--accent-hover: #8acda3;--tint: #293f32;--hover: #343434;--chip: #3c3c3c;--danger: #ffaaa0}*{box-sizing:border-box}html{height:100%;overflow:hidden}body{margin:0;height:100vh;height:100dvh;overflow:hidden;display:flex;flex-direction:column}button,input,select,textarea{font:inherit;color:var(--ink)}button,input,select,textarea{border:1px solid var(--line);border-radius:2px;background:var(--paper)}button{min-height:30px;padding:5px 13px;cursor:pointer;white-space:nowrap;transition:background .1s}button:hover{background:var(--hover)}button:active{background:var(--line)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:1px}button:disabled,input:disabled,select:disabled{opacity:.45;cursor:default}input,select,textarea{min-width:0;padding:5px 8px}input[type=checkbox]{accent-color:var(--accent);width:15px;height:15px;flex:none;margin:0}textarea{resize:vertical;line-height:1.65}fieldset{margin:0;padding:0;border:0;min-width:0}h1,h2,p{margin:0}h2{font-size:13px;font-weight:600}small,.hint,.section-note,.field-help{color:var(--muted);font-size:12px}[hidden]{display:none!important}.primary{background:var(--accent);border-color:var(--accent);color:#fff;padding:6px 20px;font-weight:600}.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}:root[data-theme=dark] .primary{color:#14291c}.secondary{border-color:var(--accent);color:var(--accent);background:transparent}.secondary:hover{background:var(--tint)}.quiet{background:transparent;border-color:transparent}.push-right{margin-left:auto}.topbar{height:44px;min-height:44px;display:flex;align-items:stretch;background:#107c41;color:#fff;-webkit-user-select:none;user-select:none;flex:none}.brand{display:flex;align-items:center;gap:11px;padding:0 18px;flex:1;min-width:80px}.brand h1{font-size:14px;font-weight:600;white-space:nowrap}.logo{font-size:24px;line-height:1;font-family:Segoe UI Symbol,sans-serif}.header-divider{background:#fff6;width:1px;height:15px;margin:0 2px}.workspace-name{font-size:12px;color:#e4f0e8;white-space:nowrap}.top-actions{display:flex;align-items:center;gap:12px;padding-right:12px}.local-badge{color:#e2f0e6;font-size:11px}.topbar select{background:transparent;color:#fff;font-size:12px;border-color:#fff5;padding:4px 7px}.topbar option{background:#fff;color:#242424}.topbar .quiet{color:#fff;font-size:12px}.topbar .quiet:hover{background:#fff2}main{display:flex;flex-direction:column;flex:1;min-height:0;min-width:0;width:100%;max-width:1600px;margin:0 auto;padding:14px 18px 10px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--muted) transparent}.panel{border:1px solid var(--line);border-radius:2px;background:var(--paper)}.file-panel{flex:none;margin-bottom:12px}.file-line{display:flex;align-items:center;gap:12px;padding:13px 16px}.file-icon{color:var(--accent);font-size:25px;flex:none}.file-detail{flex:1;min-width:0}.file-detail h2{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.file-detail p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;color:var(--muted);margin-top:5px}.read-controls{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:8px 14px;background:var(--hover);border-top:1px solid var(--line)}.read-controls label{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px}.read-controls select{max-width:210px;font-size:12px;padding:4px 6px}.read-controls button{font-size:12px;min-height:27px}.runtime{margin-left:auto;color:var(--muted);font-size:11px}.editor{display:flex;flex-direction:column;flex:1;min-height:min-content;gap:12px}.columns-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;min-height:205px;flex:1}.column-panel{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:9px 14px}.section-head h2{display:flex;align-items:center;gap:8px;white-space:nowrap}.section-head small{font-weight:400;font-size:11px;color:var(--muted)}.step{color:var(--accent);font-size:11px;font-weight:600;font-variant-numeric:tabular-nums}.section-head input{font-size:12px;width:170px;padding:4px 8px}.list-columns{display:flex;align-items:center;justify-content:space-between;background:var(--hover);border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--muted);font-size:11px;padding:5px 14px 5px 65px}.column-scroll{flex:1;min-height:75px;overflow:auto;scrollbar-width:thin;scrollbar-color:var(--line) transparent}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:130px;height:100%;gap:9px;padding:12px;text-align:center;color:var(--muted)}.empty>span{font-size:25px;color:#9eaaa1}.empty p{font-size:12px}.empty small{font-size:11px}.panel-actions{display:flex;gap:3px;padding:6px 8px;align-items:center;border-top:1px solid var(--line)}.panel-actions button{font-size:12px;padding:5px 9px;min-height:28px}.source-row{display:flex;align-items:center;gap:11px;min-height:36px;padding:7px 12px;border-bottom:1px solid var(--line);cursor:pointer}.source-row:hover{background:var(--hover)}.source-row:has(input:checked){background:var(--tint)}.column-number{color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums;width:22px;flex:none}.column-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.type{color:var(--muted);font-size:11px}.output-row{display:flex;align-items:center;gap:8px;min-height:36px;padding:2px 11px 2px 8px;border-bottom:1px solid var(--line);position:relative}.output-row:hover{background:var(--hover)}.output-row.selected{background:var(--tint);box-shadow:inset 3px 0 var(--accent)}.output-row input{flex:1;min-width:50px;background:transparent;border-color:transparent;padding:5px 7px}.output-row input:focus{background:var(--paper);outline:1px solid var(--accent);outline-offset:0}.drag-handle{cursor:grab;color:var(--muted);border:0;background:transparent;padding:2px 4px;font-size:18px;min-height:24px}.source-ref{max-width:120px;font-size:11px;color:var(--muted);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.output-row.dragging{opacity:.35}.output-row.drop-before{box-shadow:inset 0 2px var(--accent)}.output-row.drop-after{box-shadow:inset 0 -2px var(--accent)}body.drag-active{-webkit-user-select:none;user-select:none}.operations-panel,.export-panel{flex:none}.operations-panel .section-head{padding-bottom:3px}.operation-actions{display:flex;gap:3px}.operation-actions button{font-size:12px}.section-note{padding:0 14px 9px;line-height:1.5}#operations{list-style:none;margin:0;padding:0 12px;max-height:160px;overflow:auto;counter-reset:steps}.operation-row{display:flex;align-items:flex-start;gap:7px;border-top:1px solid var(--line);padding:8px 2px;counter-increment:steps}.operation-row:before{content:counter(steps,decimal-leading-zero);color:var(--muted);font-size:11px;min-width:20px;padding-top:5px}.operation-copy{flex:1;min-width:0;display:flex;align-items:center;flex-wrap:wrap;gap:5px 7px;line-height:1.6;font-size:12px}.operation-tag{display:inline-block;max-width:100%;padding:2px 8px;background:var(--chip);border:1px solid transparent;border-radius:2px;font-weight:400;color:var(--ink);white-space:pre-wrap;overflow-wrap:anywhere}.column-tag{border-color:var(--line);font-weight:600}.operation-word{color:var(--muted)}.operation-row>button{flex:none;font-size:12px;padding:3px 7px;min-height:27px}.export-panel{padding-bottom:12px}.export-controls{display:grid;grid-template-columns:1.6fr .65fr 1fr 1fr 1fr;gap:14px;padding:0 14px}.export-controls label,dialog label{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:12px;min-width:0}.export-controls input,.export-controls select{width:100%;font-size:12px;color:var(--ink)}.index-line{display:flex;align-items:center;flex-wrap:wrap;gap:13px;padding:12px 14px 0}.check-label{display:flex;align-items:center;gap:7px;font-size:12px}.index-line>input{width:170px;font-size:12px;padding:4px 7px}.status-bar{display:flex;align-items:center;gap:12px;padding-top:11px;flex:none}.status-copy{flex:1;min-width:0;display:flex;align-items:center;gap:10px}.status-copy p{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#progress{width:65px;height:3px;flex:none;overflow:hidden;background:var(--line)}#progress span{display:block;width:0;height:100%;background:var(--accent)}#progress.busy span{width:40%;animation:progress 1.1s infinite ease-in-out}#progress.done span{width:100%}@keyframes progress{0%{transform:translate(-100%)}to{transform:translate(350%)}}#notice{display:flex;align-items:center;gap:14px;margin-top:10px;padding:9px 12px;border:1px solid var(--line);border-left:3px solid var(--accent);background:var(--paper);flex:none}#notice.error{border-left-color:var(--danger)}#notice-text{flex:1;font-size:12px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}dialog{width:min(500px,calc(100vw - 40px));max-height:90vh;padding:0 22px 20px;border:1px solid var(--line);border-radius:3px;background:var(--paper);color:var(--ink);box-shadow:0 8px 30px #0003}dialog::backdrop{background:#0005}.dialog-heading{display:flex;align-items:center;justify-content:space-between;margin:0 -22px 20px;padding:10px 14px 10px 22px;border-bottom:1px solid var(--line);background:var(--hover)}.dialog-heading h2{font-size:14px}dialog label{margin-bottom:14px}dialog input,dialog textarea,dialog select{font-size:13px;color:var(--ink)}.dialog-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field-help{display:block;line-height:1.6;font-size:12px}#values-label{margin-bottom:5px}dialog .blank-option{display:flex;flex-direction:row;align-items:center;gap:7px;margin:11px 0 5px;color:var(--ink)}.dialog-footer{display:flex;justify-content:flex-end;gap:9px;padding-top:16px;margin-top:18px;border-top:1px solid var(--line)}#dialog-error{font-size:12px;color:var(--danger);line-height:1.6}@media(max-width:1050px){.section-head>.hint{display:none}.runtime{display:none}.read-controls{gap:10px}.export-controls{gap:9px}.source-ref{max-width:80px}}@media(max-width:700px){main{padding:10px}.brand{padding:0 12px}.workspace-name,.header-divider,.local-badge{display:none}.brand h1{font-size:13px}.top-actions{gap:3px;padding-right:3px}.columns-grid{grid-template-columns:1fr}.column-scroll{height:200px;flex:none}.export-controls{grid-template-columns:1fr 1fr}.section-head,.operation-actions,.status-bar{flex-wrap:wrap}.status-copy{flex-basis:100%}#export{margin-left:auto}.operation-row{gap:3px}}@media(prefers-reduced-motion:reduce){*{animation-duration:2.5s!important;transition:none!important}}.privacy-note{color:var(--muted);font-size:12px;line-height:1.6;margin:0 2px 12px;flex:none}.download-controls{display:flex;align-items:end;flex-wrap:wrap;gap:14px;padding:12px 14px 0}.download-controls label{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:12px}.download-name{flex:1;min-width:140px;max-width:400px}.download-controls .hint{padding-bottom:6px}@media(max-width:700px){input,select,textarea,dialog input,dialog select,dialog textarea{font-size:16px}.file-line{padding:12px;gap:8px}.panel-actions,.read-controls label{flex-wrap:wrap}.read-controls select{max-width:100%}.operation-row{flex-wrap:wrap}.operation-copy{flex-basis:calc(100% - 30px)}}
