:root{--brand-50:#eef4fd;--brand-100:#dce8fb;--brand-200:#bcd3f7;--brand-300:#8fb4f1;--brand-400:#5a8eea;--brand-500:#2563eb;--brand-600:#1d56d6;--brand-700:#1a45ad;--bg:#f2f3f5;--surface:#fff;--surface-2:#f7f8fa;--press:#f0f1f3;--text:#1a1a1f;--text-2:#4a4d57;--text-muted:#8a8f9a;--text-subtle:#b0b4bd;--border:#e6e7ea;--border-strong:#d9dbe0;--hairline:#0000000f;--success:#07c160;--success-bg:#e8f7ee;--success-tx:#0a9a52;--warning:#fa9d3b;--warning-bg:#fdf2e3;--warning-tx:#b9700c;--danger:#fa5151;--danger-bg:#fdecec;--danger-tx:#c93434;--r-xs:6px;--r-sm:8px;--r-md:10px;--r-lg:14px;--r-pill:999px;--shadow-pop:0 8px 30px #0000001f, 0 2px 8px #0000000f;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,Segoe UI,system-ui,Inter,sans-serif}*{box-sizing:border-box}html,body,#app{min-height:100%;margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent;min-height:44px}::selection{background:#2563eb29}body{min-width:320px;color:var(--text);background:var(--bg)}@media (prefers-reduced-motion:reduce){*,:before{animation:none!important}}.phone-shell{z-index:1;width:min(100%,430px);min-height:100vh;padding:calc(16px + env(safe-area-inset-top)) 16px calc(96px + env(safe-area-inset-bottom));margin:0 auto;position:relative}h1,h2,h3,p{margin:0}.upload-hero{padding:26px 4px 18px}.upload-hero h1{text-align:center;letter-spacing:-.01em;color:var(--text);font-size:24px;font-weight:700;line-height:1.25}.upload-panel,.status-card,.summary-card,.filter-card,.table-card,.empty-card,.file-status-card,.analysis-card,.analysis-hero,.report-block,.history-page{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg)}.upload-panel{padding:14px}.upload-zone{border:1.5px dashed var(--brand-300);background:var(--surface-2);width:100%;min-height:166px;color:var(--brand-600);border-radius:var(--r-md);text-align:center;place-items:center;gap:10px;padding:24px 20px;transition:border-color .15s,background .15s;display:grid}.upload-zone svg{color:var(--brand-500)}.upload-zone:active{background:var(--press)}.upload-zone strong{color:var(--text);font-size:17px;font-weight:600}.upload-zone span{color:var(--text-muted);font-size:13px;line-height:1.5}.selected-file-list{border-radius:var(--r-sm);background:var(--surface-2);gap:6px;margin-top:12px;padding:8px;display:grid}.selected-file-row{grid-template-columns:1fr 30px;align-items:center;gap:8px;min-width:0;display:grid}.selected-file-row span,.selected-file-list strong{min-width:0;color:var(--text-2);text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:1.35;overflow:hidden}.selected-file-list strong{color:var(--brand-600);font-weight:600}.selected-file-row button{border-radius:var(--r-sm);background:var(--brand-50);width:30px;min-height:30px;color:var(--brand-600);border:0;justify-content:center;align-items:center;transition:background .15s;display:inline-flex}.selected-file-row button:active{background:var(--brand-100)}.primary-btn,.secondary-btn,.download-btn{border-radius:var(--r-sm);border:0;justify-content:center;align-items:center;gap:8px;width:100%;margin-top:14px;font-size:16px;font-weight:600;text-decoration:none;transition:background .15s,opacity .15s;display:inline-flex}.primary-btn{color:#fff;background:var(--brand-500);min-height:50px}.primary-btn:active{background:var(--brand-600)}.primary-btn:disabled{opacity:.5}.secondary-btn,.download-btn{min-height:48px;color:var(--brand-600);background:var(--brand-50)}.secondary-btn:active,.download-btn:active{background:var(--brand-100)}.spec-row{grid-template-columns:repeat(3,1fr);gap:10px;margin-top:16px;display:grid}.spec-row div{border-radius:var(--r-md);background:var(--surface);border:1px solid var(--border);min-height:78px;color:var(--text-2);text-align:center;place-items:center;gap:8px;padding:12px 8px;font-size:12px;font-weight:500;transition:background .15s;display:grid}.spec-row div:active{background:var(--press)}.spec-row svg{color:var(--brand-500)}.report-top{z-index:5;min-height:50px;padding:calc(8px + env(safe-area-inset-top)) 16px 8px;-webkit-backdrop-filter:blur(14px)saturate(120%);backdrop-filter:blur(14px)saturate(120%);border-bottom:1px solid var(--hairline);background:#f2f3f5eb;grid-template-columns:44px 1fr auto;align-items:center;gap:10px;margin:-16px -16px 14px;display:grid;position:sticky;top:0}.report-top>div{text-align:center}.report-top span{color:var(--text-muted);font-size:11px;display:block}.report-top strong{color:var(--text);font-size:16px;font-weight:600;line-height:1.2;display:block}.icon-btn{border-radius:var(--r-sm);width:44px;height:44px;color:var(--brand-600);background:0 0;border:0;place-items:center;text-decoration:none;transition:opacity .15s;display:inline-grid}.icon-btn:active{opacity:.5}.header-actions{justify-content:flex-end;gap:4px;display:inline-flex}.share-toast{left:50%;top:calc(64px + env(safe-area-inset-top));z-index:20;border-radius:var(--r-sm);color:#fff;min-height:38px;box-shadow:var(--shadow-pop);background:#000000c7;align-items:center;gap:6px;padding:0 14px;font-size:13px;font-weight:500;display:inline-flex;position:fixed;transform:translate(-50%)}.share-toast svg{color:var(--success)}.manual-copy-backdrop{z-index:30;background:#0006;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.manual-copy-modal{border-radius:var(--r-lg);background:var(--surface);width:min(100%,390px);box-shadow:var(--shadow-pop);gap:10px;padding:16px;display:grid}.manual-copy-title{justify-content:space-between;align-items:center;gap:10px;display:flex}.manual-copy-title strong{color:var(--text);font-size:15px;font-weight:600}.manual-copy-title button{border-radius:var(--r-sm);width:44px;min-height:44px;color:var(--text-muted);background:var(--surface-2);border:0;justify-content:center;align-items:center;display:inline-flex}.manual-copy-modal textarea{resize:vertical;border:1px solid var(--border-strong);border-radius:var(--r-sm);width:100%;min-height:92px;color:var(--text-2);background:var(--surface-2);outline:none;padding:10px;font-size:13px;line-height:1.5}.manual-copy-modal textarea:focus{border-color:var(--brand-400)}.manual-copy-modal>button{border-radius:var(--r-sm);color:#fff;background:var(--brand-500);border:0;min-height:44px;font-weight:600}.status-card{text-align:center;padding:32px 20px}.status-card h2{margin:18px 0 0;font-size:20px;font-weight:600}.status-card p{color:var(--text-muted);margin-top:8px;font-size:14px;line-height:1.5}@property --p{syntax:"<percentage>";inherits:false;initial-value:0%}.progress-ring{--p:0%;background:conic-gradient(from -90deg, var(--brand-500) var(--p), #e6e8ec 0);border-radius:50%;place-items:center;width:122px;height:122px;margin:0 auto;transition:--p .65s cubic-bezier(.4,0,.2,1);display:grid;position:relative}.progress-ring:after{content:"";background:var(--surface);border-radius:50%;position:absolute;inset:11px}.progress-ring span{z-index:1;color:var(--text);font-variant-numeric:tabular-nums;font-size:24px;font-weight:700;position:relative}.progress-ring:before{content:"";border:2px solid var(--brand-400);pointer-events:none;border-radius:50%;animation:1.9s ease-out infinite ring-pulse;position:absolute;inset:-7px}@keyframes ring-pulse{0%{opacity:.55;transform:scale(.9)}80%,to{opacity:0;transform:scale(1.16)}}.status-card{animation:.5s cubic-bezier(.34,1.4,.5,1) both card-rise}@keyframes card-rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.summary-card{padding:14px;display:block}.summary-source-select{gap:6px;display:grid}.summary-source-select span{color:var(--text-muted);font-size:12px}.summary-source-select select{border:1px solid var(--border-strong);border-radius:var(--r-sm);background:var(--surface);width:100%;min-height:42px;color:var(--text);outline:0;padding:0 10px;font-size:15px;font-weight:600}.summary-source-select select:focus{border-color:var(--brand-400)}.summary-card strong{font-variant-numeric:tabular-nums;margin-top:4px;font-size:24px;line-height:1.1;display:block}.summary-card small{color:var(--text-muted);margin-top:4px;font-size:12px;display:block}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:12px 0;display:grid}.metric-grid div{border-radius:var(--r-md);background:var(--surface);border:1px solid var(--border);flex-direction:column;gap:3px;min-width:0;padding:10px 6px;display:flex;overflow:hidden;container-type:inline-size}.metric-grid span{color:var(--text-muted);font-size:11px}.metric-grid strong{width:100%;min-width:0;color:var(--text);white-space:nowrap;text-overflow:ellipsis;letter-spacing:0;font-variant-numeric:tabular-nums;font-size:13px;font-weight:600;line-height:1.15;display:block;overflow:hidden}.metric-grid span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}@supports (font-size:1cqw){.metric-grid strong{font-size:clamp(12px,14cqw,15px)}}@media (width<=374px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.filter-card{margin-bottom:10px;padding:12px}.filter-toolbar{min-height:38px;color:var(--text-muted);grid-template-columns:auto 1fr;align-items:center;gap:10px;font-size:12px;display:grid}.filter-toolbar button{border-radius:var(--r-sm);background:var(--brand-50);min-height:38px;color:var(--brand-600);border:0;justify-content:center;align-items:center;gap:5px;padding:0 14px;font-weight:600;transition:background .15s;display:inline-flex}.filter-toolbar button:active{background:var(--brand-100)}.filter-toolbar>span{font-variant-numeric:tabular-nums;justify-self:end}.filter-toolbar strong{color:var(--brand-600);font-weight:600}.filter-status{border-radius:var(--r-sm);background:var(--surface-2);color:var(--text-muted);overflow-wrap:anywhere;margin-top:10px;padding:9px 11px;font-size:12px;line-height:1.5}.drawer-mask{z-index:20;background:#0006;place-items:end center;padding:0 10px 10px;animation:.22s sheet-fade;display:grid;position:fixed;inset:0}@keyframes sheet-fade{0%{opacity:0}to{opacity:1}}.drawer{background:var(--surface);width:min(390px,100%);max-height:82vh;box-shadow:var(--shadow-pop);padding:14px 14px calc(18px + env(safe-area-inset-bottom));border-radius:18px 18px 0 0;animation:.36s cubic-bezier(.34,1.4,.5,1) sheet-up;overflow:auto}.drawer:before{content:"";background:#00000029;border-radius:3px;width:36px;height:5px;margin:-2px auto 12px;display:block}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.drawer header{grid-template-columns:58px 1fr 58px;align-items:center;margin-bottom:12px;display:grid}.drawer header button{border-radius:var(--r-sm);background:var(--surface-2);min-height:36px;color:var(--text-2);border:0;font-size:13px;font-weight:500;transition:background .15s}.drawer header button:active{background:var(--press)}.drawer header strong{text-align:center;color:var(--text);font-size:16px;font-weight:600}.filter-drawer{max-height:min(78vh,720px);padding:12px 14px calc(12px + env(safe-area-inset-bottom));border-radius:18px 18px 0 0}.filter-drawer header{grid-template-columns:52px 1fr 52px;margin-bottom:8px}.filter-drawer header button{min-height:34px;font-size:12px}.filter-drawer header strong{font-size:16px}.filter-display-toggle{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2);min-height:42px;color:var(--text-2);justify-content:space-between;align-items:center;gap:10px;margin-top:8px;padding:0 12px;font-size:13px;font-weight:500;display:flex}.filter-display-toggle input{width:18px;height:18px;accent-color:var(--brand-500);margin:0}.direction-filter{gap:6px;margin-top:10px;display:grid}.direction-filter>span{color:var(--text-muted);font-size:12px}.direction-filter>div{background:var(--press);border-radius:9px;grid-template-columns:repeat(3,1fr);gap:0;padding:2px;display:grid;position:relative}.direction-filter button{min-height:34px;color:var(--text-2);background:0 0;border:0;border-radius:7px;font-size:13px;font-weight:500;transition:background .22s,color .22s,box-shadow .22s}.direction-filter button:active{opacity:.7}.direction-filter button.active{background:var(--surface);color:var(--text);font-weight:600;box-shadow:0 1px 3px #0000001a}.filter-grid{grid-template-columns:repeat(2,1fr);gap:10px;margin-top:10px;display:grid}.filter-grid label,.filter-text-row>label:first-child{color:var(--text-muted);gap:5px;font-size:12px;display:grid}.filter-grid input,.filter-text-row>label:first-child input{border:1px solid var(--border-strong);border-radius:var(--r-sm);background:var(--surface);width:100%;min-width:0;height:44px;color:var(--text);font-variant-numeric:tabular-nums;outline:0;padding:0 10px;transition:border-color .15s,box-shadow .15s}.filter-grid input:focus,.filter-text-row>label:first-child input:focus{border-color:var(--brand-400);box-shadow:0 0 0 3px #2563eb1f}.filter-text-row{grid-template-columns:1fr 62px;align-items:end;gap:10px;margin-top:10px;display:grid}.check-line{min-height:44px;color:var(--text-2);justify-content:center;align-items:center;gap:6px;font-size:12px;display:inline-flex}.check-line input{width:16px;height:16px;accent-color:var(--brand-500);flex:0 0 16px;margin:0}.filter-checks{border-radius:var(--r-sm);background:var(--surface-2);grid-template-columns:repeat(2,1fr);gap:10px 8px;margin-top:10px;padding:12px;display:grid}.filter-checks label{min-height:30px;color:var(--text-2);align-items:center;gap:6px;font-size:12px;display:inline-flex}.filter-checks input{accent-color:var(--brand-500)}.filter-actions{grid-template-columns:1.2fr 1fr;gap:10px;margin-top:12px;display:grid}.filter-actions button{border-radius:var(--r-sm);border:0;justify-content:center;align-items:center;gap:6px;min-height:46px;font-size:14px;font-weight:600;transition:background .15s;display:inline-flex}.filter-actions .apply-filter-btn{background:var(--brand-500);color:#fff}.filter-actions .apply-filter-btn:active{background:var(--brand-600)}.filter-actions .reset-filter-btn{background:var(--brand-50);color:var(--brand-600)}.filter-actions .reset-filter-btn:active{background:var(--brand-100)}.filter-drawer .drawer-filter-actions{border-top:1px solid var(--hairline);background:var(--surface);margin-top:12px;padding-top:10px;position:sticky;bottom:0}.table-card{border-radius:var(--r-md);overflow:hidden}.table-card table{border-collapse:collapse;table-layout:fixed;letter-spacing:-.02em;font-variant-numeric:tabular-nums;width:100%;font-size:11px;line-height:1.25}.table-card th,.table-card td{border-right:1px solid var(--hairline);border-bottom:1px solid var(--hairline);text-align:left;vertical-align:top;overflow-wrap:anywhere;word-break:break-word;padding:7px 4px}.table-card th:last-child,.table-card td:last-child{border-right:0}.table-card tbody tr:last-child td{border-bottom:0}.table-card th{background:var(--brand-50);color:var(--brand-700);z-index:1;font-weight:700;position:sticky;top:0}.table-card td{color:var(--text-2);font-weight:500}.table-card th:first-child,.table-card td:first-child{width:17%}.table-card th:nth-child(2),.table-card td:nth-child(2){width:12%}.table-card th:nth-child(3),.table-card td:nth-child(3),.table-card th:nth-child(4),.table-card td:nth-child(4){width:16%}.table-card th:nth-child(5),.table-card td:nth-child(5){width:39%}.table-card.with-source-column th:first-child,.table-card.with-source-column td:first-child{width:16%}.table-card.with-source-column th:nth-child(2),.table-card.with-source-column td:nth-child(2){width:11%}.table-card.with-source-column th:nth-child(3),.table-card.with-source-column td:nth-child(3),.table-card.with-source-column th:nth-child(4),.table-card.with-source-column td:nth-child(4){width:15%}.table-card.with-source-column th:nth-child(5),.table-card.with-source-column td:nth-child(5){width:28%}.table-card.with-source-column th:nth-child(6),.table-card.with-source-column td:nth-child(6){width:15%}.table-card td strong,.table-card td small{white-space:normal;display:block}.table-card td strong{color:var(--text);font-weight:600}.table-card td small{color:var(--text-muted);margin-top:3px}.amount{color:var(--text);font-weight:600}.income-pill,.expense-pill,.plain-pill{border-radius:var(--r-xs);justify-content:center;align-items:center;min-width:30px;height:22px;min-height:auto;padding:0 8px;font-size:11px;font-weight:600;display:inline-flex}.income-pill{background:var(--success-bg);color:var(--success-tx)}.expense-pill{background:var(--danger-bg);color:var(--danger-tx)}.plain-pill{background:var(--surface-2);color:var(--text-muted)}.pager{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);grid-template-columns:44px 1fr 44px;align-items:center;gap:10px;margin:10px 0 12px;padding:8px;display:grid}.pager button{border-radius:var(--r-sm);background:var(--brand-50);width:36px;height:36px;min-height:36px;color:var(--brand-600);border:0;justify-content:center;align-items:center;transition:background .15s;display:inline-flex}.pager button:active{background:var(--brand-100)}.pager button:disabled{color:var(--text-subtle);background:var(--surface-2)}.pager-center{justify-content:center;align-items:center;gap:10px;min-width:0;display:flex}.pager-center span{text-align:center;min-width:38px;color:var(--text);font-variant-numeric:tabular-nums;font-weight:600}.pager-center label{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2);min-height:34px;color:var(--text-muted);align-items:center;gap:6px;padding:0 10px;font-size:12px;font-weight:500;display:inline-flex}.pager-center select{color:var(--text);background:0 0;border:0;outline:0;font-weight:600}.analysis-page{gap:12px;min-width:0;margin-top:12px;display:grid}.analysis-page>*{width:100%;min-width:0;max-width:100%}.analysis-hero{padding:16px}.analysis-hero h2{color:var(--text);margin:4px 0 6px;font-size:19px;font-weight:600;line-height:1.3}.analysis-hero p{color:var(--text-2);margin:0;font-size:13px;line-height:1.55}.analysis-hero span{color:var(--text-muted);font-size:12px}.analysis-hero .ranking-summary-text{color:var(--text-muted);font-size:12px;line-height:1.5}.report-action-card{gap:12px;display:grid}.report-action-title{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.report-action-title strong{color:var(--text);font-size:17px;font-weight:600;line-height:1.25}.report-action-title span{white-space:nowrap;color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:12px}.ranking-meta-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px;display:grid}.ranking-meta-grid div{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2);min-width:0;padding:10px}.ranking-meta-grid span,.ranking-meta-grid strong,.ranking-meta-grid em{min-width:0;display:block}.ranking-meta-grid span{color:var(--text-muted);font-size:11px}.ranking-meta-grid strong{color:var(--text);text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-size:12px;font-weight:600;line-height:1.25;overflow:hidden}.ranking-meta-grid em{color:var(--brand-600);font-variant-numeric:tabular-nums;margin-top:3px;font-size:11px;font-style:normal;font-weight:600}.ranking-switch-card{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);padding:12px}.ranking-switch{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.ranking-switch button{border-radius:var(--r-sm);background:var(--surface-2);min-height:40px;color:var(--text-2);border:0;font-size:12px;font-weight:600;transition:background .15s,color .15s}.ranking-switch button:active{background:var(--press)}.ranking-switch button.active{background:var(--brand-50);color:var(--brand-600)}.ranking-switch-card p{color:var(--text-muted);margin:10px 2px 0;font-size:12px;line-height:1.45}.analysis-card,.report-block{padding:16px}.analysis-card h3,.report-block h3{color:var(--text);margin:0 0 12px;font-size:16px;font-weight:600;line-height:1.35}.rank-list{border:1px solid var(--border);border-radius:var(--r-md);display:grid;overflow:hidden}.rank-row{grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:44px;padding:9px 12px;display:grid}.rank-row+.rank-row{border-top:1px solid var(--hairline)}.rank-row em{border-radius:var(--r-pill);background:var(--brand-50);width:22px;height:22px;color:var(--brand-600);font-variant-numeric:tabular-nums;place-items:center;font-size:12px;font-style:normal;font-weight:600;display:inline-grid}.rank-row span{min-width:0;color:var(--text);overflow-wrap:anywhere;font-size:13px}.rank-row strong{text-align:right;color:var(--text);font-variant-numeric:tabular-nums;font-size:12px;font-weight:600}.empty-text{color:var(--text-subtle);margin:0;padding:4px 0;font-size:13px}.ai-report-actions{grid-template-columns:1fr;gap:8px;display:grid}.ai-report-actions:has(a){grid-template-columns:1fr 1fr}.ai-report-actions button,.ai-report-actions a,.ai-status-card button{border-radius:var(--r-sm);background:var(--brand-50);width:100%;min-height:46px;color:var(--brand-600);border:0;justify-content:center;align-items:center;gap:6px;font-size:14px;font-weight:600;text-decoration:none;transition:background .15s,opacity .15s;display:inline-flex}.ai-report-actions button:active,.ai-report-actions a:active,.ai-status-card button:active{background:var(--brand-100)}.ai-report-actions button:disabled{opacity:.5}.ai-status-card{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);gap:8px;padding:16px;display:grid}.ai-status-card strong{color:var(--text);font-size:16px;font-weight:600}.ai-status-card span{color:var(--text-muted);font-size:13px;line-height:1.55}.ai-status-card.error{border-color:var(--danger-bg);background:var(--danger-bg)}.ai-status-card.error strong{color:var(--danger-tx)}.ai-status-card.error button{background:var(--surface);color:var(--brand-600)}.llm-report-document{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);width:100%;min-width:0;max-width:100%;padding:16px}.llm-report-document h1{border-bottom:1px solid var(--hairline);color:var(--text);margin:0 0 14px;padding-bottom:10px;font-size:20px;font-weight:700;line-height:1.25}.llm-report-document h2{border-top:1px solid var(--hairline);color:var(--text);scroll-margin-top:calc(64px + env(safe-area-inset-top));margin:18px 0 8px;padding-top:14px;font-size:16px;font-weight:600;line-height:1.35}.llm-report-document h3{color:var(--brand-600);margin:12px 0 7px;font-size:14px;font-weight:600;line-height:1.35}.llm-report-document p{color:var(--text-2);overflow-wrap:anywhere;margin:7px 0 9px;font-size:13px;line-height:1.7}.llm-report-document ul,.llm-report-document ol{color:var(--text-2);margin:7px 0 9px;padding-left:20px;font-size:13px;line-height:1.7}.llm-report-document li+li{margin-top:4px}.llm-report-document strong{color:var(--text);font-weight:700}.report-table-scroll{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);width:100%;min-width:0;max-width:100%;overflow-x:hidden}.report-table-scroll+.report-table-scroll{margin-top:10px}.llm-report-document .report-table-scroll{margin:9px 0 12px}.report-table-scroll table{border-collapse:collapse;table-layout:fixed;font-variant-numeric:tabular-nums;width:100%;min-width:0;font-size:11px}.report-table-scroll th,.report-table-scroll td{border-right:1px solid var(--hairline);border-bottom:1px solid var(--hairline);text-align:left;vertical-align:top;overflow-wrap:anywhere;word-break:break-word;white-space:normal;min-width:0;padding:7px 5px;line-height:1.55}.report-table-scroll tr:last-child th,.report-table-scroll tr:last-child td{border-bottom:0}.report-table-scroll th:last-child,.report-table-scroll td:last-child{border-right:0}.report-table-scroll thead th{background:var(--brand-50);color:var(--brand-700);font-weight:700}.report-table-scroll td{color:var(--text-2)}.bottom-tabs{width:min(100%,430px);height:calc(70px + env(safe-area-inset-bottom));padding:8px 10px calc(8px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--hairline);z-index:10;grid-template-columns:repeat(3,1fr);gap:4px;display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.bottom-tabs.three{grid-template-columns:repeat(3,1fr)}.bottom-tabs button{border-radius:var(--r-sm);color:var(--text-muted);background:0 0;border:0;place-items:center;gap:3px;font-size:11px;font-weight:500;transition:color .15s;display:grid}.bottom-tabs button.active{color:var(--brand-600)}.timeline{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);gap:0;margin-top:12px;display:grid;overflow:hidden}.timeline-row{grid-template-columns:60px 1fr;gap:10px;padding:13px 14px;font-size:13px;display:grid}.timeline-row+.timeline-row{border-top:1px solid var(--hairline)}.timeline-row span{color:var(--text-subtle);font-variant-numeric:tabular-nums;font-size:12px}.timeline-row div{color:var(--text-2);font-size:13px;line-height:1.45}.timeline-row.active div{color:var(--brand-600);font-weight:600}.timeline-row.active div:before{content:"";background:var(--brand-500);vertical-align:middle;border-radius:50%;width:7px;height:7px;margin-right:7px;animation:1.3s ease-in-out infinite dot-pulse;display:inline-block}@keyframes dot-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.55)}}.file-status-card{margin-top:12px;padding:14px}.file-status-card header{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.file-status-card header strong{color:var(--text);font-size:15px;font-weight:600}.file-status-card header span{color:var(--text-muted);font-size:12px}.file-status-list{border:1px solid var(--border);border-radius:var(--r-md);display:grid;overflow:hidden}.file-status-row{background:var(--surface);text-align:left;border:0;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;min-height:54px;padding:11px 14px;transition:background .15s;display:grid}.file-status-row+.file-status-row{border-top:1px solid var(--hairline)}.file-status-row.clickable:active{background:var(--press)}.file-status-row:disabled{color:inherit}.file-status-row strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text);font-size:13px;font-weight:600;display:block;overflow:hidden}.file-status-row span{color:var(--text-muted);margin-top:3px;font-size:12px;line-height:1.25;display:block}.file-status-pill{border-radius:var(--r-xs);background:var(--surface-2);min-width:66px;color:var(--text-muted);text-align:center;padding:5px 9px;font-size:12px;font-style:normal;font-weight:600}.file-status-pill.completed{background:var(--success-bg);color:var(--success-tx)}.file-status-pill.processing,.file-status-pill.pending{background:var(--brand-50);color:var(--brand-600)}.file-status-pill.failed{background:var(--danger-bg);color:var(--danger-tx)}.file-status-pill.empty{background:var(--warning-bg);color:var(--warning-tx)}.empty-card{min-height:140px;color:var(--text-muted);text-align:center;align-content:center;place-items:center;gap:10px;padding:24px 18px;display:grid}.empty-card svg{color:var(--brand-300)}.empty-card span{font-size:13px}.toast-error{border-radius:var(--r-sm);background:var(--danger-bg);min-height:44px;color:var(--danger-tx);align-items:center;gap:8px;margin-top:12px;padding:11px 13px;font-size:13px;display:flex}.history-page{padding:12px}.history-list{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);gap:0;display:grid;overflow:hidden}.history-row-wrap{background:var(--danger);position:relative;overflow:hidden}.history-row-wrap+.history-row-wrap:before{content:"";background:var(--hairline);z-index:2;height:1px;position:absolute;top:0;left:16px;right:0}.history-row-wrap .history-delete-btn{background:var(--danger);color:#fff;cursor:pointer;z-index:0;border:0;border-radius:0;flex-direction:column;justify-content:center;align-items:center;gap:3px;width:72px;min-height:0;padding:0;font-size:12px;font-weight:600;display:flex;position:absolute;top:0;bottom:0;right:0}.history-row-wrap .history-delete-btn:disabled{opacity:.6;cursor:not-allowed}.history-face{z-index:1;background:var(--surface);text-align:left;touch-action:pan-y;border:0;border-radius:0;grid-template-columns:1fr auto;align-items:center;gap:12px;width:100%;min-height:68px;padding:14px;transition:transform .34s cubic-bezier(.34,1.4,.5,1),background .15s;display:grid;position:relative}.history-face:active{background:var(--press)}.history-face strong{max-width:240px;color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:16px;font-weight:600;display:block;overflow:hidden}.history-face span{color:var(--text-muted);font-size:12px}.history-face em{color:var(--brand-600);white-space:nowrap;font-variant-numeric:tabular-nums;font-style:normal;font-weight:600}.history-page>.history-list>p{color:var(--text-muted);text-align:center;padding:24px 0;font-size:13px}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width>=720px){body{background:#e9eaed;padding:28px 0}.phone-shell{background:var(--bg);min-height:calc(100vh - 56px);box-shadow:var(--shadow-pop);border-radius:24px;margin:0 auto}.report-top{background:#f2f3f5f2}}.portal-fab{top:calc(8px + env(safe-area-inset-top));z-index:8;height:44px;color:var(--brand-600,#1d56d6);border-radius:var(--r-sm,8px);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;justify-content:center;align-items:center;gap:2px;padding:0 8px;font-size:15px;font-weight:500;text-decoration:none;display:inline-flex;position:fixed;left:8px}.portal-fab:active{opacity:.5}.fn-tabbar{background:var(--surface,#fff);border-top:1px solid var(--border,#e6e7ea);width:min(100%,430px);padding-bottom:env(safe-area-inset-bottom);z-index:30;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.fn-tab{color:var(--text-muted,#8a8f9a);-webkit-tap-highlight-color:transparent;flex-direction:column;flex:1;align-items:center;gap:3px;padding:8px 0 7px;font-size:11px;text-decoration:none;display:flex}.fn-tab.active{color:var(--brand-500,#2563eb)}.fn-tab:active{opacity:.6}.primary-btn,.secondary-btn,.soft-btn,.download-btn,.upload-zone,.upload-card{border-radius:var(--r-lg)}.history-fab{top:calc(8px + env(safe-area-inset-top));z-index:8;width:44px;height:44px;color:var(--brand-600,#1d56d6);border-radius:var(--r-sm,8px);-webkit-tap-highlight-color:transparent;background:0 0;border:none;justify-content:center;align-items:center;text-decoration:none;display:inline-flex;position:fixed;right:14px}.history-fab:active{opacity:.5}
