*{box-sizing:border-box}:root{--teal:#2eb8a8;--teal-dark:#259d8f;--teal-soft:#2eb8a81f;--bg:#f1f5f9;--surface:#fff;--border:#e2e8f0;--text:#334155;--text-muted:#64748b;--danger:#e11d48;color:var(--text);background:var(--bg);font-family:Segoe UI,PingFang SC,Microsoft YaHei,system-ui,-apple-system,BlinkMacSystemFont,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;line-height:1.45}body{margin:0}#app{min-height:100vh}button{font-family:inherit}.app-shell{flex-direction:column;min-height:100vh;display:flex}.top-nav{background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:12px 24px;display:flex}.nav-left{align-items:center;gap:10px;display:flex}.brand-mark{color:var(--teal);font-size:1.1rem}.brand-name{font-size:1.05rem;font-weight:600}.brand-version{color:var(--text-muted);letter-spacing:.02em;-webkit-user-select:none;user-select:none;font-size:.75rem;font-weight:500}.nav-tabs{flex-wrap:wrap;gap:4px;display:flex}.nav-tab{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:8px 16px;font-size:.9rem}.nav-tab:disabled{cursor:not-allowed;opacity:.45}.nav-tab.is-active{background:var(--teal-soft);color:var(--teal-dark);font-weight:600}a.nav-tab{text-decoration:none;display:inline-block}.nav-tab--disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.router-page{flex-direction:column;flex:1;min-height:0;display:flex}.page-view{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.main-layout{flex:1;align-items:stretch;gap:0;min-height:0;display:flex}.workspace{flex:1;min-width:0;min-height:0;padding:20px 24px 24px;overflow:auto}.workspace-toolbar{gap:12px;margin-bottom:14px;display:flex}.btn-teal-outline{border:1px solid var(--teal);background:var(--surface);color:var(--teal-dark);cursor:pointer;border-radius:8px;padding:8px 18px;font-size:.92rem}.btn-teal-outline:hover{background:var(--teal-soft)}.btn-ghost{border:1px solid var(--border);background:var(--surface);color:var(--text-muted);cursor:pointer;border-radius:8px;padding:8px 14px}.btn-ghost:hover:not(:disabled){color:var(--text);border-color:#cbd5e1}.btn-ghost:disabled{opacity:.45;cursor:not-allowed}.drop-zone{background:#fafbfc;border:2px dashed #cbd5e1;border-radius:12px;margin-bottom:16px;transition:border-color .2s,background .2s}.drop-zone:hover{border-color:var(--teal);background:var(--teal-soft)}.drop-zone input{display:none}.drop-inner{cursor:pointer;flex-direction:column;align-items:center;gap:6px;padding:36px 20px;display:flex}.drop-icon{opacity:.85;font-size:2rem}.drop-title{color:var(--text);font-weight:600}.drop-hint{color:var(--text-muted);font-size:.88rem}.table-wrap{border:1px solid var(--border);background:var(--surface);border-radius:12px;overflow:hidden}.file-table{border-collapse:collapse;width:100%;font-size:.88rem}.file-table th,.file-table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:middle;padding:10px 12px}.file-table th{color:var(--text-muted);background:#f8fafc;font-size:.82rem;font-weight:600}.file-table tbody tr:hover{background:#f8fafc}.file-table tr.is-selected{background:var(--teal-soft)}.col-thumb{width:64px}.row-thumb{object-fit:cover;border:1px solid var(--border);border-radius:6px;width:48px;height:48px;display:block}.cell-name{text-overflow:ellipsis;white-space:nowrap;max-width:200px;font-weight:500;overflow:hidden}.cell-muted{color:var(--text-muted);white-space:nowrap}.cell-error{color:var(--danger);margin:4px 0 0;font-size:.78rem}.col-actions{white-space:nowrap}.link-btn{color:var(--teal-dark);cursor:pointer;background:0 0;border:none;padding:2px 6px;font-size:.86rem}.link-btn:hover:not(:disabled){text-decoration:underline}.link-btn:disabled{color:#94a3b8;cursor:not-allowed}.link-btn.danger{color:var(--danger)}.empty-row td{text-align:center;color:var(--text-muted);padding:32px}.status-pill{color:var(--text-muted);background:#f1f5f9;border-radius:999px;padding:2px 8px;font-size:.8rem;display:inline-block}.status-pill[data-state=ok]{background:var(--teal-soft);color:var(--teal-dark)}.status-pill[data-state=err]{color:var(--danger);background:#ffe4e6}.row-progress{background:#e2e8f0;border-radius:999px;max-width:120px;height:4px;margin-top:6px;overflow:hidden}.row-progress-fill{background:linear-gradient(90deg, var(--teal), #5dbfb3);border-radius:999px;height:100%}.preview-panel{background:var(--surface);border:1px solid var(--border);border-radius:12px;margin-top:20px;padding:16px}.preview-head{align-items:baseline;gap:10px;margin-bottom:10px;font-weight:600;display:flex}.preview-sub{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.86rem;font-weight:400;overflow:hidden}.preview-meta{color:var(--text-muted);margin:10px 0 0;font-size:.86rem}.compare{background:#f1f5f9;border-radius:10px;min-height:200px;max-height:420px;position:relative;overflow:hidden}.compare img{object-fit:contain;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.compare input[type=range]{width:calc(100% - 24px);accent-color:var(--teal);position:absolute;bottom:10px;left:12px;right:12px}.sidebar{background:var(--surface);border-left:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:0;width:300px;min-height:0;padding:0;display:flex;overflow:hidden}.sidebar-scroll{flex:1;min-height:0;padding:20px 20px 12px;overflow-y:auto}.sidebar-actions{border-top:1px solid var(--border);background:var(--surface);flex-shrink:0;padding:12px 20px 20px}.sidebar-title{margin:0 0 16px;font-size:1rem;font-weight:600}.panel-block{margin-bottom:18px}.panel-label{color:var(--text-muted);margin-bottom:8px;font-size:.82rem;font-weight:500}.panel-hint{color:var(--text-muted);margin:8px 0 0;font-size:.78rem}.radio-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.radio-list{flex-direction:column;gap:8px;display:flex}.radio-item{cursor:pointer;align-items:flex-start;gap:8px;font-size:.86rem;line-height:1.35;display:flex}.radio-item input{accent-color:var(--teal);margin-top:3px}.range-teal{width:100%;accent-color:var(--teal)}.select-teal{border:1px solid var(--border);width:100%;color:var(--text);background:#fff;border-radius:8px;padding:8px 10px;font-size:.88rem}.output-path{color:var(--text-muted);border:1px solid var(--border);background:#f8fafc;border-radius:8px;margin:0;padding:10px;font-size:.82rem;line-height:1.4}.btn-compress-now{background:var(--teal);color:#fff;cursor:pointer;border:none;border-radius:10px;margin-top:0;padding:14px;font-size:1rem;font-weight:600;box-shadow:0 2px 8px #2eb8a859}.btn-compress-now:hover:not(:disabled){background:var(--teal-dark)}.btn-compress-now:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.btn-secondary-full{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:10px;margin-top:10px;padding:10px}.btn-secondary-full:disabled{opacity:.45;cursor:not-allowed}.status-bar{background:var(--surface);border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:10px 24px;font-size:.82rem;display:flex}.status-left{flex:1;align-items:center;gap:10px;min-width:200px;display:flex}.status-label{color:var(--text-muted);white-space:nowrap}.status-track{background:#e2e8f0;border-radius:999px;flex:1;max-width:280px;height:6px;overflow:hidden}.status-fill{background:var(--teal);border-radius:999px;height:100%;transition:width .2s}.status-pct{color:var(--teal-dark);min-width:36px;font-weight:600}.status-right{color:var(--text-muted);text-align:right}@media (max-width:1024px){.main-layout{flex-direction:column}.sidebar{border-left:none;border-top:1px solid var(--border);width:100%}.cell-name{max-width:120px}}@media (max-width:720px){.file-table th:nth-child(4),.file-table td:nth-child(4),.file-table th:nth-child(5),.file-table td:nth-child(5){display:none}}.engine-hint[data-v-afe806fe]{color:#9a3412;background:#fff7ed;border-bottom:1px solid #fed7aa;margin:0;padding:10px 24px;font-size:.88rem}.row-thumb[data-v-afe806fe]{object-fit:cover;background:#000;border-radius:6px;width:64px;height:48px}.engine-hint[data-v-4a421416]{color:#9a3412;background:#fff7ed;border-bottom:1px solid #fed7aa;margin:0;padding:10px 24px;font-size:.88rem}
