:root{color:#17202a;font-synthesis:none;text-rendering:optimizelegibility;--ink-950:#17202a;--ink-600:#526168;--paper-50:#f5f7f5;--paper-0:#fff;--sift-700:#174d5c;--sift-100:#dcebed;--safe-700:#276b52;--safe-100:#dcece5;--warn-700:#875b14;--warn-100:#f7ead0;--danger-700:#9a3b35;--danger-100:#f7e2df;--rule:#d4dcda;background:#f5f7f5;font-family:Segoe UI,Microsoft YaHei,system-ui,sans-serif}*{box-sizing:border-box}html,body,#app{min-width:320px;min-height:100%}body{background:linear-gradient(90deg, transparent 31px, #174d5c06 32px), var(--paper-50);background-size:32px 32px;margin:0}button,input,select{font:inherit}button{color:inherit}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app{grid-template-rows:58px 58px minmax(0,1fr) 74px;min-height:100vh;max-height:100vh;display:grid;overflow:hidden}.app-header,.file-toolbar,.batch-bar{background:#fffffff7;align-items:center;display:flex}.app-header{border-bottom:1px solid var(--rule);gap:12px;padding:0 20px}.header-actions,.batch-actions{gap:8px;margin-left:auto;display:flex}.file-toolbar{border-bottom:1px solid var(--rule);gap:10px;padding:10px 20px}.workbench{grid-template-columns:minmax(300px,.8fr) minmax(440px,1.5fr) minmax(310px,.9fr);min-height:0;display:grid}.pane{border-right:1px solid var(--rule);background:var(--paper-0);min-width:0;min-height:0;overflow:hidden}.pane:last-child{border-right:0}.pane-head{border-bottom:1px solid var(--rule);align-items:center;min-height:48px;padding:0 14px;display:flex}.pane-head h2{margin:0 auto 0 0;font-size:14px}.pane-body{height:calc(100% - 48px);overflow:auto}.batch-bar{z-index:4;border-top:1px solid var(--rule);gap:18px;padding:10px 20px;box-shadow:0 -6px 24px #17202a0d}.batch-copy{gap:5px;min-width:220px;display:grid}.batch-copy strong{font-size:13px}.batch-copy span{color:var(--ink-600);font-size:11px}.brand{letter-spacing:-.04em;font-size:22px;font-weight:800}.version,.queue-counts,.file-meta{color:var(--ink-600);font:12px ui-monospace,monospace}.privacy-status{align-items:center;gap:8px;margin-right:auto;font-size:13px;font-weight:650;display:inline-flex}.privacy-status:before{background:var(--safe-700);width:8px;height:8px;box-shadow:0 0 0 4px var(--safe-100);content:"";border-radius:50%}.button,.icon-button{border:1px solid var(--rule);cursor:pointer;background:#fff;border-radius:4px;justify-content:center;align-items:center;gap:7px;min-height:36px;padding:0 12px;font-weight:650;display:inline-flex}.button:hover,.icon-button:hover{border-color:var(--sift-700)}.button:focus-visible,.icon-button:focus-visible,input:focus-visible,select:focus-visible{outline-offset:2px;outline:2px solid #2d7285}.button.primary{border-color:var(--sift-700);background:var(--sift-700);color:#fff}.button.danger-quiet{color:var(--danger-700)}.button.danger{border-color:var(--danger-700);background:var(--danger-700);color:#fff}.button:disabled{cursor:not-allowed;opacity:.45}.icon-button{width:36px;padding:0}.icon-button.quiet{background:0 0;border-color:#0000}.icon-svg{flex:none;width:18px;height:18px}.inspection-toggle,.inspection-close{display:none}.file-toolbar input[type=search]{flex:1;min-width:180px;max-width:360px}.file-toolbar input,.file-toolbar select,.drawer-tools select{border:1px solid var(--rule);background:#fff;border-radius:4px;height:36px;padding:0 10px}.queue-counts{white-space:nowrap;margin-left:auto}.queue-list{margin:0;padding:0;list-style:none}.queue-item{border-bottom:1px solid #e7ecea;grid-template-columns:22px 36px minmax(0,1fr) auto 36px;align-items:center;gap:8px;min-height:68px;padding:9px 8px 9px 14px;display:grid;position:relative}.queue-item:before{content:"";background:#b6c0bd;width:4px;position:absolute;inset:0 auto 0 0}.queue-item.is-active{box-shadow:inset 0 0 0 2px var(--sift-700);background:#eef5f5}.queue-item.is-active:before{background:var(--sift-700)}.queue-item.is-attachment{background:#fafcfb;grid-template-columns:22px 36px minmax(0,1fr) auto;margin-left:28px}.file-icon{border:1px solid var(--rule);background:#f8faf9;place-items:center;width:34px;height:40px;font:700 9px ui-monospace,monospace;display:grid}.queue-item-content{text-align:left;cursor:pointer;background:0 0;border:0;min-width:0;padding:0}.file-name,.file-meta{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.file-name{font-size:13px;font-weight:700}.file-meta{margin-top:5px;font-size:11px}.badge{min-height:22px;color:var(--ink-600);white-space:nowrap;background:#eef1f0;border-radius:999px;align-items:center;padding:2px 7px;font-size:11px;font-weight:700;display:inline-flex}.badge.is-safe{background:var(--safe-100);color:var(--safe-700)}.badge.is-warning{background:var(--warn-100);color:var(--warn-700)}.badge.is-blocked{background:var(--danger-100);color:var(--danger-700)}.queue-empty,.preview-empty,.inspection-empty{text-align:center;place-content:center;justify-items:center;min-height:100%;padding:36px;display:grid}.queue-empty .icon-svg{width:34px;height:34px;color:var(--sift-700)}.queue-empty strong,.preview-empty strong,.inspection-empty strong{margin-top:12px;font-size:17px}.queue-empty p,.preview-empty p,.inspection-empty p{max-width:390px;color:var(--ink-600);line-height:1.65}.sheet-preview{min-width:100%}.sheet-tabs{border-bottom:1px solid var(--rule);gap:4px;padding:10px 12px 0;display:flex}.sheet-tab{padding:7px 10px;font-size:12px}.sheet-tab.is-active{border:1px solid var(--sift-700);background:var(--sift-100);color:var(--sift-700);border-bottom-color:#fff}.sheet-table-scroll{border:1px solid var(--rule);margin:12px;overflow:auto}.sheet-table-scroll table{border-collapse:collapse;min-width:680px;font-size:12px}.sheet-table-scroll td{border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);white-space:nowrap;min-width:104px;height:34px;padding:6px 8px}.sheet-table-scroll td[data-formula=true]:after{color:var(--sift-700);content:"ƒ";margin-left:5px}.inspection-content{padding:14px}.risk-summary{border:1px solid var(--rule);border-left:4px solid var(--safe-700);padding:14px}.risk-summary.is-warning{border-left-color:var(--warn-700);background:#fffdf8}.risk-summary.is-blocked{border-left-color:var(--danger-700);background:snow}.risk-summary h3{margin:0 0 6px;font-size:15px}.risk-summary p{color:var(--ink-600);margin:0;font-size:12px;line-height:1.6}.sheet-list{border-top:1px solid var(--rule);margin:14px 0;padding:0;list-style:none}.sheet-list li{border-bottom:1px solid var(--rule);justify-content:space-between;gap:12px;padding:9px 0;font-size:12px;display:flex}.issue-list{background:var(--warn-100);color:#62430f;border:1px solid #ead1a1;padding:12px 12px 12px 28px;font-size:12px;line-height:1.6}.warning-confirm{gap:8px;margin-top:12px;font-size:12px;line-height:1.55;display:flex}.result-summary{border-top:1px solid var(--rule);margin-top:18px}.result-summary h3{font-size:14px}.result-row{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:center;gap:10px;padding:10px 0;display:flex}.result-row strong,.result-row small{text-overflow:ellipsis;white-space:nowrap;max-width:180px;display:block;overflow:hidden}.result-row small{color:var(--ink-600);margin-top:4px}.progress{background:#e6ebe9;border-radius:99px;flex:1;height:8px;position:relative;overflow:hidden}.progress span{background:var(--sift-700);width:0;height:100%;transition:width .16s;display:block}.drawer{z-index:20;background:#fff;width:min(520px,100%);position:fixed;inset:0 0 0 auto;box-shadow:-20px 0 60px #17202a2e}.drawer-head{border-bottom:1px solid var(--rule);align-items:flex-start;gap:12px;padding:18px;display:flex}.drawer-head>div{margin-right:auto}.drawer-head h2{margin:0;font-size:18px}.drawer-head p{color:var(--ink-600);margin:6px 0 0;font-size:12px}.drawer-tools{border-bottom:1px solid var(--rule);gap:8px;padding:10px 18px;display:flex}.drawer-body{height:calc(100% - 132px);overflow:auto}.drawer-empty{color:var(--ink-600);text-align:center;padding:32px}.log-list{margin:0;padding:10px 18px;list-style:none}.log-list li{border-bottom:1px solid var(--rule);gap:5px;padding:10px 0;font-size:12px;display:grid}.log-list code{color:var(--ink-600);font-size:11px}.dialog{border:1px solid var(--rule);border-radius:6px;width:min(460px,100% - 32px);padding:22px;box-shadow:0 24px 70px #17202a33}.dialog::backdrop{background:#17202a66}.dialog h2{margin:0;font-size:18px}.dialog p{color:var(--ink-600);line-height:1.65}.dialog-actions{justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.toast-region{z-index:40;gap:8px;width:min(380px,100% - 32px);display:grid;position:fixed;top:70px;right:16px}.toast{border:1px solid var(--rule);border-left:4px solid var(--sift-700);background:#fff;border-radius:4px;justify-content:space-between;align-items:flex-start;gap:12px;padding:12px 14px;font-size:13px;display:flex;box-shadow:0 8px 28px #17202a1f}.toast.is-warning{border-left-color:var(--warn-700)}.toast.is-error{border-left-color:var(--danger-700)}.toast button{cursor:pointer;background:0 0;border:0}[hidden]{display:none!important}.app.is-dragging:after{z-index:50;border:2px dashed var(--sift-700);color:var(--sift-700);content:"松开以添加文件";background:#dcebedf0;place-items:center;font-size:24px;font-weight:750;display:grid;position:fixed;inset:12px}.queue-item:focus-visible{outline-offset:-3px;outline:2px solid #2d7285}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}@media (width<1200px){.workbench{grid-template-columns:320px minmax(0,1fr)}.inspection-pane{display:none}.inspection-pane.is-open{z-index:15;width:min(520px,100%);display:block;position:fixed;inset:0 0 0 auto;box-shadow:-20px 0 60px #17202a2e}.inspection-toggle,.inspection-close{display:inline-flex}.file-toolbar{flex-wrap:wrap}.queue-counts{margin-left:0}}@media (width<768px){.app{min-height:100vh;max-height:none;padding-bottom:118px;display:block;overflow:visible}.app-header{flex-wrap:wrap;min-height:68px;padding:10px 14px}.privacy-status{order:3;width:100%}.header-actions{margin-left:auto}.header-actions [data-action=download-offline]{display:none}.file-toolbar{padding:10px 14px}.file-toolbar input[type=search]{order:3;width:100%;max-width:none}.workbench{display:block}.file-queue{border-bottom:1px solid var(--rule);max-height:42vh}.preview-pane{min-height:56vh}.batch-bar{flex-wrap:wrap;min-height:112px;padding:10px 14px;position:fixed;inset:auto 0 0}.batch-copy{min-width:140px}.progress{flex-basis:100%;order:3}.queue-counts{width:100%}}
