*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #f6f7fb;--surface: #ffffff;--surface2: #f0f3f8;--surface3: #e7ecf4;--ink: #121722;--text: #202737;--text2: #647086;--text3: #8a95a8;--border: #d8deea;--border2: #c3ccdb;--accent: #0f9f6e;--accent2: #3157d5;--accent3: #d97706;--danger: #d92d20;--warn: #b7791f;--shadow: 0 18px 45px rgba(31, 42, 68, .12);--mono: "JetBrains Mono", "SFMono-Regular", Consolas, monospace;--sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--nav-h: 64px;--bottom-nav-h: 64px}:root[data-theme=dark]{--bg: #0d111a;--surface: #151b27;--surface2: #1c2533;--surface3: #263246;--ink: #f4f7fb;--text: #dce4ef;--text2: #9daac0;--text3: #6f7d93;--border: #293448;--border2: #3a4860;--accent: #41d69b;--accent2: #7c9cff;--accent3: #f59e0b;--danger: #ff6b64;--warn: #f8bd58;--shadow: 0 22px 60px rgba(0, 0, 0, .38)}html{height:100%;-webkit-text-size-adjust:100%}body{height:100%;overflow:hidden;background:radial-gradient(circle at top left,rgba(49,87,213,.14),transparent 32rem),linear-gradient(180deg,#fbfcff 0%,var(--bg) 42%);color:var(--text);font-family:var(--sans);font-size:14px;transition:background .28s ease,color .28s ease}#root{height:100%}button,input,select,textarea{font:inherit}button:disabled{opacity:.45;cursor:not-allowed}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#c4ccda;border-radius:99px}.app{display:flex;flex-direction:column;height:100dvh;overflow:hidden;animation:appEnter .35s ease both}.header{height:var(--nav-h);flex-shrink:0;display:flex;align-items:center;gap:18px;padding:0 22px;background:#ffffffdb;border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);z-index:20}.logo{display:flex;align-items:center;gap:10px;color:var(--ink);font-size:17px;font-weight:750}.logo-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:8px;background:#172033;color:#9cf0c9;font-family:var(--mono);font-size:12px;letter-spacing:0}.logo-accent,.logo-badge{display:none}.header-stats{margin-left:auto;display:flex;align-items:center;gap:8px;min-width:0}.stat-chip{display:flex;align-items:center;gap:4px;min-height:30px;padding:6px 10px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text2);font-size:12px;white-space:nowrap}.stat-chip span{color:var(--ink);font-weight:700}.content{flex:1;overflow:hidden;position:relative;padding:14px}@media (min-width: 900px){.content{display:grid;grid-template-columns:minmax(260px,320px) minmax(420px,1fr) minmax(270px,320px);gap:14px}.bottom-nav{display:none!important}.mobile-pane{display:contents!important}.mobile-pane>*{display:flex!important;min-width:0}}@media (max-width: 899px){.content{padding:10px}.mobile-pane{position:absolute;inset:10px 10px var(--bottom-nav-h);overflow-y:auto}.mobile-pane.hidden{display:none!important}}.bottom-nav{flex-shrink:0;height:var(--bottom-nav-h);display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:8px;background:#ffffffeb;border-top:1px solid var(--border)}.bnav-btn{border:1px solid transparent;border-radius:8px;background:transparent;color:var(--text2);cursor:pointer;font-size:12px;font-weight:700}.bnav-btn.active{background:#eef4ff;border-color:#c9d7ff;color:var(--accent2)}.bnav-icon{display:none}.panel,.code-area{height:100%;min-height:0;overflow:hidden;background:#fffffff0;border:1px solid var(--border);border-radius:8px;box-shadow:0 1px #ffffffbf inset}.panel{display:flex;flex-direction:column;overflow-y:auto}@media (max-width: 899px){.panel,.code-area{min-height:100%}}.panel-header{position:sticky;top:0;z-index:5;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;background:#fffffff5;border-bottom:1px solid var(--border)}.panel-title{color:var(--ink);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.preset-grid{display:grid;grid-template-columns:1fr;gap:8px;padding:14px;border-bottom:1px solid var(--border)}.preset-btn{width:100%;text-align:left;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text);padding:11px 12px;cursor:pointer;transition:border-color .15s,background .15s,transform .15s}.preset-btn:hover{border-color:#9eb2d7;transform:translateY(-2px);box-shadow:0 10px 22px #1f2a4414}.preset-btn.active{border-color:var(--accent2);background:#eef4ff}.preset-name{display:block;font-weight:800;margin-bottom:3px}.preset-desc{color:var(--text2);font-size:12px}.section{border-bottom:1px solid var(--border)}.section-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 16px;cursor:pointer;-webkit-user-select:none;user-select:none}.section-header:hover{background:var(--surface2)}.section-label{display:flex;align-items:center;gap:9px;color:var(--ink);font-size:13px;font-weight:800}.section-label .dot{width:7px;height:7px;border-radius:50%;background:var(--accent2)}.section-chevron{color:var(--text3);font-size:22px;line-height:1;transition:transform .18s}.section-chevron.open{transform:rotate(90deg)}.section-body{display:flex;flex-direction:column;gap:12px;padding:0 16px 16px}.setting-row{display:flex;flex-direction:column;gap:7px}.setting-label{display:flex;justify-content:space-between;gap:8px;color:var(--text2);font-size:12px;font-weight:700}.hint{color:var(--text3);font-size:11px;font-weight:500}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:2px 0}.toggle-label{color:var(--ink);font-size:13px;font-weight:700}.toggle-sub{margin-top:2px;color:var(--text3);font-size:12px;line-height:1.3}.toggle{width:42px;height:24px;flex-shrink:0;border-radius:99px;border:1px solid var(--border2);background:var(--surface3);cursor:pointer;position:relative;transition:background .18s,border-color .18s}.toggle:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 4px #10182840;transition:left .18s}.toggle.on{background:var(--accent);border-color:var(--accent)}.toggle.on:after{left:21px}select,input[type=text],input[type=number]{width:100%;height:38px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text);padding:0 10px;outline:none}select{cursor:pointer}select:focus,input:focus,textarea:focus{border-color:var(--accent2);box-shadow:0 0 0 3px #3157d51f}.slider-wrap{display:flex;align-items:center;gap:10px}input[type=range]{flex:1;accent-color:var(--accent2)}.slider-val{min-width:38px;text-align:right;color:var(--ink);font-family:var(--mono);font-size:12px;font-weight:800}.seed-row{display:flex;gap:7px}.seed-btn{height:38px;min-width:38px;border:1px solid var(--border);border-radius:8px;background:var(--surface2);color:var(--text2);cursor:pointer}.code-area{display:flex;flex-direction:column;background:var(--surface)}.code-topbar{flex-shrink:0;display:flex;align-items:center;gap:8px;padding:10px;border-bottom:1px solid var(--border);background:var(--surface)}.file-tabs{display:flex;gap:6px;flex:1;overflow-x:auto;min-width:0}.file-tab{display:flex;align-items:center;gap:7px;max-width:220px;min-height:34px;padding:7px 10px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--text2);cursor:pointer;white-space:nowrap}.file-tab span:first-child{overflow:hidden;text-overflow:ellipsis}.file-tab:hover,.file-tab.active{background:var(--surface2);border-color:var(--border);color:var(--ink)}.file-ready-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);flex-shrink:0}.close-x{color:var(--text3);padding:0 3px;font-size:17px;line-height:1}.close-x:hover{color:var(--danger)}.add-file-btn{width:34px;height:34px;border-radius:8px;border:1px solid var(--border);background:#fff;color:var(--accent2);cursor:pointer;font-size:20px}.editor-view-tabs{display:none;padding:8px 10px;gap:8px;border-bottom:1px solid var(--border);background:var(--surface)}.evtab{flex:1;height:34px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text2);cursor:pointer;font-size:12px;font-weight:800}.evtab.active{background:var(--surface2);border-color:var(--accent2);color:var(--accent2)}@media (max-width: 899px){.editor-view-tabs{display:flex}}.drop-zone{flex-shrink:0;margin:10px;padding:12px;border:1px dashed #aeb9ca;border-radius:8px;background:#f8fbff;color:var(--text2);text-align:center;cursor:pointer;font-size:13px;font-weight:700}.drop-zone:hover,.drop-zone.over{border-color:var(--accent2);background:var(--surface2);color:var(--accent2);transform:translateY(-1px)}.zip-upload-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:0 10px 10px}.zip-icon{font-size:10px;font-weight:900;letter-spacing:.08em}.zip-hint{color:var(--text3);font-size:12px;line-height:1.35}.editors{display:grid;grid-template-rows:minmax(0,1fr) minmax(0,1fr);flex:1;min-height:0;overflow:hidden;border-top:1px solid var(--border)}.editor-pane{display:flex;flex-direction:column;min-height:0;overflow:hidden;border-bottom:1px solid var(--border)}.editor-pane:last-child{border-bottom:0}.editor-label{flex-shrink:0;display:flex;justify-content:space-between;align-items:center;min-height:36px;padding:0 12px;background:var(--surface);border-bottom:1px solid var(--border);color:var(--text2);font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.lang-badge{border:1px solid var(--border);border-radius:999px;padding:3px 8px;background:#fff;color:var(--text3);font-size:11px;letter-spacing:0;text-transform:none}textarea,.output-code{flex:1;min-height:180px;overflow:auto;border:0;background:#0f1726;color:#dce6f7;font-family:var(--mono);font-size:12px;line-height:1.7;padding:16px;resize:none;outline:none;-moz-tab-size:2;tab-size:2}textarea::placeholder{color:#728199}.output-code{color:#b9c6db;white-space:pre-wrap;word-break:break-word}.output-code.empty{display:grid;place-items:center;background:#162033;color:#9cabc1;text-align:center}.output-placeholder .big{color:#e5ecf8;font-weight:850;font-size:18px;margin-bottom:6px}@media (max-width: 899px){.editors{display:block;flex:none;border-top:0}.editor-pane{min-height:390px}.editor-pane.hidden{display:none}}.run-bar{flex-shrink:0;display:flex;align-items:center;gap:8px;padding:10px;border-top:1px solid var(--border);background:var(--surface)}.run-status{flex:1;min-width:0;display:flex;align-items:center;gap:8px;color:var(--text2);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--text3);flex-shrink:0}.status-dot.ok{background:var(--accent)}.status-dot.error{background:var(--danger)}.status-dot.loading{background:var(--warn);animation:pulse 1s infinite}@keyframes pulse{50%{opacity:.35}}.btn{min-height:34px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid transparent;border-radius:8px;padding:7px 12px;cursor:pointer;white-space:nowrap;font-size:13px;font-weight:800}.btn-primary{background:var(--accent2);border-color:var(--accent2);color:#fff}.btn-primary:hover{background:#2448bd;transform:translateY(-1px);box-shadow:0 10px 22px #3157d53d}.btn-ghost{background:#fff;border-color:var(--border);color:var(--text)}.btn-ghost:hover{border-color:var(--border2);background:var(--surface2);transform:translateY(-1px)}.btn-sm{min-height:30px;padding:6px 10px;font-size:12px}.stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:14px;border-bottom:1px solid var(--border)}.stat-box{border:1px solid var(--border);border-radius:8px;background:var(--surface);padding:12px;transition:transform .18s ease,border-color .18s ease}.stat-box:hover{transform:translateY(-2px);border-color:var(--border2)}.s-label{color:var(--text3);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;margin-bottom:4px}.s-value{color:var(--ink);font-size:22px;font-weight:850}.s-unit{color:var(--text3);font-size:12px;font-weight:700}.stat-box.warn .s-value{color:var(--warn)}.active-opts-wrap{padding:14px;border-bottom:1px solid var(--border)}.opt-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.opt-chip{border:1px solid;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:800}.log-header{display:flex;align-items:center;justify-content:space-between;padding:14px 14px 6px}.log-area{flex:1;min-height:120px;overflow-y:auto;padding:8px 14px 14px;display:flex;flex-direction:column;gap:6px}.log-line{display:grid;grid-template-columns:56px 1fr;gap:8px;font-family:var(--mono);font-size:11px;line-height:1.45}.log-time{color:var(--text3)}.log-msg{color:var(--text2);word-break:break-word}.log-line.success .log-msg{color:var(--accent)}.log-line.error .log-msg{color:var(--danger)}.log-line.warn .log-msg{color:var(--warn)}.history-panel{border-top:1px solid var(--border)}.history-list{display:flex;flex-direction:column;gap:8px;padding:8px 14px 14px}.history-empty{color:var(--text3);font-size:12px;text-align:center;padding:12px 0}.history-sync{margin:0 14px 6px;border:1px solid var(--border);border-radius:8px;background:var(--surface2);color:var(--text2);padding:8px 10px;font-size:11px;font-weight:750;line-height:1.35}.history-sync.synced{color:var(--accent)}.history-sync.error{color:var(--danger)}.history-sync.syncing{color:var(--warn)}.history-item{width:100%;display:flex;justify-content:space-between;gap:10px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:inherit;padding:10px;text-align:left;cursor:pointer;animation:reveal .18s ease both}.history-item:hover,.history-item.active{border-color:var(--accent2);background:var(--surface2)}.history-item strong{display:block;max-width:160px;overflow:hidden;color:var(--ink);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.history-item span{display:block;margin-top:3px;color:var(--text2);font-size:11px}.history-item time{color:var(--text3);font-size:10px;line-height:1.35;text-align:right}.history-detail{margin:0 14px 14px;border:1px solid var(--border);border-radius:8px;background:var(--surface);overflow:hidden}.history-detail-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-bottom:1px solid var(--border)}.history-detail-head strong{min-width:0;overflow:hidden;color:var(--ink);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.history-detail-head span{color:var(--text3);font-size:11px;font-weight:800;white-space:nowrap}.history-code-block{border-top:1px solid var(--border)}.history-code-block:first-of-type{border-top:0}.history-code-title{padding:8px 12px;background:var(--surface2);color:var(--text2);font-size:11px;font-weight:850;letter-spacing:.06em;text-transform:uppercase}.history-code-block pre{max-height:220px;overflow:auto;background:#0f1726;color:#dce6f7;padding:12px;font-family:var(--mono);font-size:11px;line-height:1.55;white-space:pre-wrap;word-break:break-word}.progress-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:grid;place-items:center;padding:18px;background:#1217226b;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.progress-card{width:min(460px,100%);display:flex;flex-direction:column;gap:14px;border:1px solid var(--border);border-radius:8px;background:var(--surface);padding:24px;box-shadow:var(--shadow)}.progress-title{text-align:center;color:var(--ink);font-size:16px;font-weight:850}.progress-bar-wrap{height:8px;overflow:hidden;border-radius:999px;background:var(--surface3)}.progress-bar-fill{height:100%;border-radius:inherit;transition:width .25s ease}.progress-bar-fill.active{background:linear-gradient(90deg,var(--accent2),var(--accent))}.progress-bar-fill.done{background:var(--accent)}.progress-bar-fill.error{background:var(--warn)}.progress-counts{display:flex;justify-content:space-between;align-items:baseline}.progress-pct{color:var(--ink);font-size:26px;font-weight:850}.progress-fraction,.progress-current-label{color:var(--text3);font-size:12px}.progress-current{border:1px solid var(--border);border-radius:8px;background:var(--surface2);padding:10px 12px}.progress-current-file{display:block;margin-top:3px;color:var(--accent2);font-family:var(--mono);font-size:12px;word-break:break-all}.progress-summary{text-align:center;font-weight:800}.copied-flash{position:fixed;left:50%;bottom:22px;z-index:100;transform:translate(-50%);border-radius:8px;background:var(--ink);color:#fff;padding:10px 16px;font-weight:800;box-shadow:var(--shadow);animation:fadeInOut 1.5s ease forwards}@keyframes fadeInOut{0%{opacity:0;transform:translate(-50%) translateY(8px)}15%,75%{opacity:1;transform:translate(-50%) translateY(0)}to{opacity:0;transform:translate(-50%) translateY(8px)}}.auth-shell{min-height:100dvh;display:grid;place-items:center;padding:24px}.auth-card{width:min(430px,100%);border:1px solid var(--border);border-radius:10px;background:#ffffffe6;box-shadow:var(--shadow);padding:28px;animation:cardEnter .42s ease both}.auth-brand{display:flex;align-items:center;gap:14px;margin-bottom:24px}.auth-brand h1{color:var(--ink);font-size:24px;line-height:1.1}.auth-brand p{color:var(--text2);margin-top:4px}.auth-form{display:flex;flex-direction:column;gap:14px}.auth-form label{display:flex;flex-direction:column;gap:7px;color:var(--text2);font-size:12px;font-weight:800}.auth-form input{height:42px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);padding:0 12px;outline:none}.auth-error{border:1px solid color-mix(in srgb,var(--danger),transparent 55%);border-radius:8px;background:color-mix(in srgb,var(--danger),transparent 90%);color:var(--danger);padding:10px 12px;font-size:13px;font-weight:750;animation:shake .28s ease both}.auth-submit{width:100%;min-height:42px;margin-top:4px}.theme-toggle{display:inline-grid;grid-template-columns:1fr 1fr;gap:3px;padding:3px;border:1px solid var(--border);border-radius:9px;background:var(--surface2)}.theme-toggle button{min-height:26px;border:0;border-radius:7px;background:transparent;color:var(--text2);cursor:pointer;padding:0 10px;font-size:12px;font-weight:800;transition:background .18s ease,color .18s ease,transform .18s ease}.theme-toggle button.active{background:var(--surface);color:var(--accent2);box-shadow:0 1px 4px #1018281f}.panel,.code-area,.stat-chip,.preset-btn,.file-tab,.btn,.drop-zone,.stat-box,.auth-card{transition:background .22s ease,border-color .22s ease,color .22s ease,transform .18s ease,box-shadow .18s ease}.panel,.code-area{animation:cardEnter .35s ease both}.mobile-pane:nth-child(1) .panel{animation-delay:.03s}.mobile-pane:nth-child(2) .code-area{animation-delay:.08s}.mobile-pane:nth-child(3) .panel{animation-delay:.13s}.section-body{animation:reveal .18s ease both}.progress-card{animation:popIn .24s ease both}.file-ready-dot{animation:statusPop .3s ease both}:root[data-theme=dark] body{background:radial-gradient(circle at top left,rgba(124,156,255,.16),transparent 34rem),linear-gradient(180deg,#111827 0%,var(--bg) 48%)}:root[data-theme=dark] .header,:root[data-theme=dark] .bottom-nav,:root[data-theme=dark] .panel-header{background:#151b27e0}:root[data-theme=dark] .stat-chip,:root[data-theme=dark] .preset-btn,:root[data-theme=dark] .history-item,:root[data-theme=dark] select,:root[data-theme=dark] input[type=text],:root[data-theme=dark] input[type=number],:root[data-theme=dark] .add-file-btn,:root[data-theme=dark] .evtab,:root[data-theme=dark] .btn-ghost,:root[data-theme=dark] .lang-badge,:root[data-theme=dark] .seed-btn,:root[data-theme=dark] .auth-card{background:var(--surface)}:root[data-theme=dark] .panel,:root[data-theme=dark] .code-area{background:#151b27f0;box-shadow:0 1px #ffffff0a inset}:root[data-theme=dark] .drop-zone{background:#7c9cff14}:root[data-theme=dark] .preset-btn.active,:root[data-theme=dark] .bnav-btn.active,:root[data-theme=dark] .evtab.active{background:#7c9cff24;border-color:var(--accent2)}:root[data-theme=dark] textarea,:root[data-theme=dark] .output-code{background:#070b12;color:#dbe7ff}@keyframes appEnter{0%{opacity:0}to{opacity:1}}@keyframes cardEnter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes reveal{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes popIn{0%{opacity:0;transform:scale(.96) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes statusPop{0%{transform:scale(.25);opacity:0}to{transform:scale(1);opacity:1}}@keyframes shake{25%{transform:translate(-4px)}50%{transform:translate(4px)}75%{transform:translate(-2px)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}}@media (max-width: 680px){.header{padding:0 12px;gap:10px}.logo{font-size:15px}.header-stats{gap:5px}.stat-chip{padding:5px 7px;font-size:11px}.run-bar{align-items:stretch;flex-wrap:wrap}.run-status{flex-basis:100%}.run-bar .btn{flex:1}.zip-hint{flex-basis:100%}}.file-meta-row{display:flex;align-items:center;gap:6px;padding:0 12px 6px;flex-shrink:0;flex-wrap:wrap}.file-meta-row input[type=text]{flex:1;min-width:80px}.file-meta-row select{min-width:130px}.meta-label{font-size:10px;color:var(--text3);white-space:nowrap}.method-badge{font-size:9px;padding:2px 7px;border-radius:3px;background:#00ff8814;color:var(--accent);border:1px solid rgba(0,255,136,.2);white-space:nowrap;flex-shrink:0}.settings-note{font-size:10px;color:var(--text3);padding:6px 12px 4px;background:#ffaa000f;border-left:2px solid var(--warn);margin:0 0 8px;line-height:1.5}.zip-tree-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#0000008c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:16px;animation:appEnter .18s ease both}.zip-tree-modal{width:min(680px,100%);max-height:min(80vh,680px);background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);display:flex;flex-direction:column;overflow:hidden}.zip-tree-header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 18px;border-bottom:1px solid var(--border);flex-shrink:0}.zip-tree-title{display:flex;align-items:center;gap:12px}.zip-tree-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:8px;background:#172033;color:#9cf0c9;font-family:var(--mono);font-size:10px;font-weight:800;letter-spacing:0;flex-shrink:0}.zip-tree-name{font-size:14px;font-weight:800;color:var(--ink);font-family:var(--mono)}.zip-tree-sub{font-size:11px;color:var(--text3);margin-top:2px}.zip-tree-toolbar{display:flex;align-items:center;gap:8px;padding:10px 16px;border-bottom:1px solid var(--border);background:var(--surface2);flex-shrink:0}.zip-tree-count{margin-left:auto;font-size:11px;color:var(--text2);font-family:var(--mono)}.zip-tree-body{flex:1;overflow-y:auto;padding:8px 0;font-family:var(--mono);font-size:12px}.zip-tree-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-top:1px solid var(--border);background:var(--surface2);flex-shrink:0}.zip-tree-footer-info{font-size:11px;color:var(--text2)}.zip-tree-folder-row,.zt-folder-row{display:flex;align-items:center;gap:6px;padding:5px 12px;cursor:default;transition:background .1s}.zt-folder-row:hover{background:var(--surface2)}.zt-chevron{background:none;border:none;color:var(--text3);font-size:9px;cursor:pointer;padding:0;width:14px;flex-shrink:0;line-height:1;transition:color .15s}.zt-chevron:hover{color:var(--ink)}.zt-folder-check{background:none;border:none;cursor:pointer;padding:0;font-size:12px;line-height:1;flex-shrink:0;width:16px;transition:color .15s}.zt-folder-check.on{color:var(--accent2)}.zt-folder-check.partial{color:var(--accent3)}.zt-folder-check.off{color:var(--text3)}.zt-folder-name{color:var(--text);font-weight:700;font-size:12px}.zt-folder-count{margin-left:auto;font-size:10px;color:var(--text3)}.zt-file-row{display:flex;align-items:center;gap:7px;padding:4px 12px 4px 0;transition:background .1s}.zt-file-row:hover{background:var(--surface2)}.zt-file-row.ignored{opacity:.45}.zt-file-check{background:none;border:none;cursor:pointer;padding:0;font-size:11px;line-height:1;flex-shrink:0;width:16px;transition:color .15s}.zt-file-check.on{color:var(--accent)}.zt-file-check.off{color:var(--text3)}.zt-file-name{color:var(--text);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.zt-file-lang{font-size:10px;color:var(--text3);flex-shrink:0}.zt-skip-badge{font-size:9px;padding:1px 5px;border-radius:3px;background:#d92d201a;color:var(--danger);border:1px solid rgba(217,45,32,.2);flex-shrink:0}
