@font-face{font-family:Geist Sans;font-style:normal;font-weight:100 900;font-display:swap;src:url(https://cdn.jsdelivr.net/npm/geist@1.4.1/dist/fonts/geist-sans/Geist-Variable.woff2) format("woff2")}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(https://cdn.jsdelivr.net/npm/geist@1.4.1/dist/fonts/geist-mono/GeistMono-Variable.woff2) format("woff2")}:root{--font-sans: "Geist Sans", -apple-system, "Segoe UI", sans-serif;--font-mono: "Geist Mono", "SFMono-Regular", "Menlo", monospace;--bg: #09090b;--surface: #18181b;--surface-hover: #1f1f23;--border: #27272a;--border-strong: #3f3f46;--text: #fafafa;--text-muted: #a1a1aa;--text-subtle: #71717a;--accent: #3b82f6;--accent-hover: #2563eb;--match: #22c55e;--match-bg: rgba(34, 197, 94, .08);--mismatch: #ef4444;--mismatch-bg: rgba(239, 68, 68, .08);--unmatched: #a1a1aa;--ignored: #52525b;--warning: #f59e0b;--info: #3b82f6;--space-2xs: 2px;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--space-3xl: 64px;--radius-sm: 2px;--radius-md: 4px;--radius-lg: 6px;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in: cubic-bezier(.55, 0, 1, .45);--duration-fast: .15s;--duration-normal: .25s}[data-theme=light]{--bg: #fafafa;--surface: #ffffff;--surface-hover: #f4f4f5;--border: #e4e4e7;--border-strong: #d4d4d8;--text: #09090b;--text-muted: #52525b;--text-subtle: #a1a1aa}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:13px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer;border:0;background:transparent;color:inherit}input,textarea,select{font:inherit;color:inherit}h1,h2,h3,h4{margin:0;font-weight:600;letter-spacing:-.02em}p{margin:0}ul,ol{margin:0;padding:0}fieldset{margin:0;padding:0;border:0}legend{padding:0}.shell{min-height:100vh;max-width:1440px;margin:0 auto;padding:var(--space-md) var(--space-lg)}.content,.stack,.viewer-shell,.page-surface{display:flex;flex-direction:column;gap:var(--space-md)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--space-md)}.topbar{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;gap:var(--space-md);padding:var(--space-sm) 0 var(--space-md);margin-bottom:var(--space-sm);border-bottom:1px solid var(--border);background:var(--bg)}.topbar h1{font-size:24px;font-weight:700;letter-spacing:-.03em;color:var(--text)}.topbar-home-link{color:inherit;text-decoration:none;display:inline-flex;align-items:center}.topbar-home-link:hover h1,.topbar-home-link:focus-visible h1{color:var(--accent)}.topbar-brand{display:flex;align-items:center;gap:12px}.topbar-product{display:inline-flex;align-items:center;padding:5px 10px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);color:var(--accent);font:600 11px/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase}.topbar-copy{display:flex;flex-direction:column;gap:var(--space-2xs)}.topbar-subcopy{margin:0;color:var(--text-muted);font-size:13px;line-height:1.45}.nav{display:flex;align-items:center;gap:var(--space-sm)}.nav a,.nav-user{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);padding:var(--space-sm) 12px;color:var(--text-muted);font-size:13px;transition:border-color var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.nav a:hover,.nav-user:hover{border-color:var(--accent);color:var(--accent);background:#3b82f60f}.nav a.active{border-color:var(--accent);color:var(--accent);background:#3b82f614}.auth-gate{min-height:calc(100vh - var(--space-2xl));display:grid;place-items:center}.auth-card{width:min(520px,100%);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);padding:var(--space-lg)}.auth-card h1{margin:var(--space-sm) 0 12px;font-size:32px;letter-spacing:-.04em}.auth-copy{margin:0 0 var(--space-md);color:var(--text-muted);line-height:1.65}.eyebrow{margin:0;color:var(--text-subtle);font:600 11px/1 var(--font-mono);letter-spacing:.12em;text-transform:uppercase}.section-description{margin-top:var(--space-sm);max-width:64ch;color:var(--text-muted);font-size:14px;line-height:1.65}.section-card,.project-card,.state-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);padding:var(--space-md) 18px}.state-card{display:flex;flex-direction:column;gap:var(--space-sm)}.state-card p,.state-card strong{margin:0;line-height:1.6}.state-card.error{border-color:#ef444433;background:var(--mismatch-bg)}.workspace-panel,.hero-card{background:var(--surface)}.section-header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-md);margin-bottom:14px}.section-header-top{align-items:flex-start}.section-header h2{margin:var(--space-xs) 0 0;font-size:18px;color:var(--text)}.page-header-bar{display:grid;gap:12px;padding:var(--space-sm) 0 0;width:100%}.page-header-main{min-width:0;flex:1 1 auto}.page-header-main h2{margin:var(--space-xs) 0 0;font-size:clamp(24px,3vw,32px);font-weight:700;letter-spacing:-.03em;color:var(--text)}.projects-header-title-row{display:flex;align-items:center;gap:var(--space-md);flex-wrap:wrap;margin-top:var(--space-xs)}.projects-header-title-row h2{margin:0;min-width:0;word-break:keep-all;overflow-wrap:normal}.page-header-actions{display:flex;align-items:flex-start;justify-content:flex-end;gap:var(--space-sm);flex-wrap:wrap}.projects-inline-selection-bar{display:inline-flex;align-items:center;flex-wrap:wrap;gap:var(--space-xs)}.projects-inline-selection-bar strong{color:var(--text);font-size:13px;margin-right:var(--space-xs)}.primary-button,.secondary-button,.ghost-button{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);border:1px solid transparent;font-size:13px;font-weight:500;transition:background var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.primary-button{background:var(--accent);color:#fff;border-color:var(--accent)}.primary-button:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.secondary-button{background:var(--surface);border-color:var(--border);color:var(--text)}.secondary-button:hover{border-color:var(--border-strong);background:var(--surface-hover)}.ghost-button{background:transparent;border-color:var(--border);color:var(--text-muted)}.ghost-button:hover{border-color:var(--border-strong);color:var(--text);background:var(--surface-hover)}.danger-button{border-color:#ef444433;color:var(--mismatch)}.danger-button:hover:not(:disabled){border-color:#ef444466;background:var(--mismatch-bg)}.primary-button:disabled,.secondary-button:disabled,.ghost-button:disabled{opacity:.45;cursor:not-allowed}.action-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);min-width:118px}.action-button.is-running{border-color:#3b82f64d;background:#3b82f60f}.report-button{border-color:#3b82f633;color:var(--accent);background:#3b82f60f}.button-row{display:flex;gap:var(--space-sm);flex-wrap:wrap}.toolbar-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm)}.button-spinner{width:14px;height:14px;flex:0 0 auto;border-radius:50%;border:2px solid var(--border);border-top-color:var(--accent);animation:spin .72s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.badge{display:inline-flex;align-items:center;border-radius:var(--radius-sm);padding:3px var(--space-sm);font:600 10px/1.4 var(--font-mono);letter-spacing:.02em;border:1px solid var(--border);background:var(--surface);color:var(--text-muted)}.badge-row{display:flex;flex-wrap:wrap;gap:var(--space-sm);align-items:center}.status-match{border-color:#22c55e33;background:var(--match-bg);color:var(--match)}.status-mismatch{border-color:#ef444433;background:var(--mismatch-bg);color:var(--mismatch)}.status-unmatched{border-color:#a1a1aa33;background:#a1a1aa14;color:var(--unmatched)}.status-ignored{border-color:#52525b4d;background:#52525b14;color:var(--ignored)}.status-processing,.status-uploaded,.status-processed{border-color:#3b82f633;background:#3b82f614;color:var(--accent)}.status-verified{border-color:#22c55e33;background:var(--match-bg);color:var(--match)}.status-warning{border-color:#f59e0b4d;background:#f59e0b1a;color:#b45309;cursor:help;position:relative}.status-warning[data-tooltip]:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);min-width:220px;max-width:320px;padding:8px 10px;border-radius:var(--radius-sm);background:#18181bf2;color:#fafafa;font:500 11px/1.45 var(--font-sans, system-ui);text-align:left;white-space:normal;letter-spacing:0;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .12s ease,visibility .12s ease;z-index:1000;box-shadow:0 6px 20px #0003}.status-warning[data-tooltip]:before{content:"";position:absolute;bottom:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:#18181bf2;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .12s ease,visibility .12s ease;z-index:1000}.status-warning[data-tooltip]:hover:after,.status-warning[data-tooltip]:hover:before{opacity:1;visibility:visible}.pdf-textlayer-warning-list{display:flex;flex-direction:column;gap:4px;margin-top:12px;max-height:280px;overflow-y:auto;padding:8px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)}.pdf-textlayer-warning-item{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:var(--radius-sm);cursor:pointer;transition:background .12s ease}.pdf-textlayer-warning-item:hover{background:#f59e0b0f}.pdf-textlayer-warning-item.is-excluded{opacity:.55;text-decoration:line-through}.pdf-textlayer-warning-filename{flex:1;font:500 12px/1.4 var(--font-mono);color:var(--text-primary);word-break:break-all}.status-error{border-color:#ef444433;background:var(--mismatch-bg);color:var(--mismatch)}.status-badge{display:inline-flex;align-items:center;gap:6px;padding:5px var(--space-sm);border-radius:var(--radius-sm);font:700 11px/1.2 var(--font-mono)}.status-badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.status-badge.match{color:var(--match);background:var(--match-bg)}.status-badge.mismatch{color:var(--mismatch);background:var(--mismatch-bg)}.status-badge.unmatched{color:var(--unmatched);background:#a1a1aa14}.status-badge.ignored{color:var(--ignored);background:#52525b14}.field-block{display:flex;flex-direction:column;gap:var(--space-sm)}.field-block span{font-size:13px;font-weight:500;color:var(--text-muted)}.text-input,.select-input{width:100%;min-height:42px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg);padding:10px 12px;color:var(--text);transition:border-color var(--duration-fast) var(--ease-out)}.text-input:focus,.select-input:focus{outline:none;border-color:var(--accent)}.textarea-input{min-height:130px;resize:vertical}.search-input{width:100%;min-height:42px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg);color:var(--text);font:inherit}.rail-select{width:220px;min-height:42px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg);color:var(--text);font:inherit}.inline-error{border-radius:var(--radius-md);background:var(--mismatch-bg);border:1px solid rgba(239,68,68,.2);padding:12px var(--space-md);color:var(--mismatch);line-height:1.55;grid-column:1 / -1}.empty-result-card{border-radius:var(--radius-md);border:1px solid var(--border);padding:var(--space-md);background:var(--surface);color:var(--text-muted)}.muted-text{color:var(--text-muted);line-height:1.5}.progress-bar{width:100%;height:6px;border-radius:var(--radius-sm);background:var(--border);overflow:hidden}.progress-bar span{display:block;height:100%;border-radius:inherit;background:var(--accent);transition:width var(--duration-normal) var(--ease-out)}.result-list-count{color:var(--text-subtle);font:600 12px/1.2 var(--font-mono)}.page-header-count{font:500 13px/1 var(--font-mono);color:var(--text-subtle);margin-left:8px;vertical-align:middle}.btn-icon{font-size:15px;line-height:1}.card-list{display:flex;flex-direction:column;gap:var(--space-sm)}.card-row{position:relative;display:block;padding:14px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);text-decoration:none;color:inherit;transition:border-color var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out);cursor:default}.card-row-clickable{cursor:pointer}.card-row-clickable:hover{border-color:var(--border-strong);background:var(--surface-hover)}.card-row-clickable:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.card-row:hover .card-delete{opacity:1}.card-row-live{border-color:#3b82f64d}.card-line1{display:flex;align-items:center;gap:8px}.status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.status-dot.ready{background:var(--match)}.status-dot.processing{background:var(--accent);animation:status-pulse 1.5s ease-in-out infinite}.status-dot.error{background:var(--mismatch)}.status-dot.uploaded{background:var(--warning)}.status-dot.processed{background:var(--accent)}.status-dot.verified{background:var(--match)}@keyframes status-pulse{0%,to{opacity:1}50%{opacity:.4}}.card-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.card-meta-inline{font:11px/1.4 Geist Mono,monospace;color:var(--text-muted);margin-left:auto}.card-snippet{font:12px/1.5 Geist Mono,monospace;color:var(--text-muted);margin:2px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scope-summary-nav{display:flex;flex-direction:column;gap:0;border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;margin-bottom:var(--space-md)}.scope-summary-row{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-md);background:var(--surface);border-bottom:1px solid var(--border);color:var(--text-muted);font:500 12px/1.4 Geist Sans,sans-serif;transition:background .12s,color .12s;width:100%}.scope-summary-row:last-child{border-bottom:none}.scope-summary-row.is-active{background:var(--surface);color:var(--text);border-left:3px solid var(--accent)}.scope-summary-label{font:600 12px/1.4 Geist Sans,sans-serif;white-space:nowrap;min-width:100px;background:transparent;border:none;color:inherit;cursor:pointer;padding:2px 0;text-align:left;transition:color .12s}.scope-summary-nav-page .scope-summary-row{padding:var(--space-xs) var(--space-md)}.scope-summary-label:hover{color:var(--text)}.scope-summary-label-static{cursor:default}.scope-summary-label-static:hover{color:var(--text-muted)}.scope-summary-stats{display:flex;gap:6px;flex-wrap:wrap}.scope-summary-stats .summary-item{display:inline-flex;gap:6px;align-items:center;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg);color:var(--text-muted);font:500 11px/1 var(--font-mono);padding:var(--space-xs) var(--space-sm);cursor:pointer;transition:border-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.scope-summary-stats .summary-item:hover{border-color:var(--border-strong);color:var(--text)}.scope-summary-stats .summary-item.is-active{border-color:var(--accent);color:var(--text)}.scope-summary-stats .summary-item:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.scope-summary-stats .chip-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.match-highlight{background:#3b82f62e;color:var(--text);border-radius:2px;padding:0 2px}.match-context{color:var(--text-subtle)}.designer-round-panel{max-height:calc(100vh - 140px);overflow-y:auto}.designer-round-panel-header{display:flex;align-items:center;gap:var(--space-sm);padding-bottom:var(--space-sm);border-bottom:1px solid var(--border)}.designer-issue-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-sm)}.designer-issue-card{border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-sm);background:var(--surface);cursor:pointer;display:flex;flex-direction:column;gap:var(--space-xs);transition:border-color .12s,box-shadow .12s;position:relative}.designer-issue-card:hover{border-color:var(--accent)}.designer-issue-card.is-active{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 20%,transparent)}.designer-issue-card.is-fixed{border-color:var(--match)}.designer-issue-head{display:flex;align-items:center;gap:var(--space-xs)}.designer-issue-result-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.designer-issue-result-label{font:500 11px/1.4 Geist Mono,monospace}.designer-issue-body{display:flex;flex-direction:column;gap:var(--space-xs)}.designer-issue-block{display:flex;flex-direction:column;gap:2px}.designer-issue-reply{background:color-mix(in srgb,var(--accent) 8%,transparent);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm)}.designer-issue-fixed-badge{position:absolute;top:var(--space-xs);right:var(--space-xs);font:600 10px/1 Geist Mono,monospace;color:var(--match);text-transform:uppercase;letter-spacing:.05em}.card-name{font-size:14px;font-weight:600;color:var(--text);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-badge{font:500 10px/1 var(--font-mono);text-transform:uppercase;letter-spacing:.06em;padding:3px 6px;border-radius:var(--radius-sm);flex-shrink:0}.status-badge.ready,.status-badge.verified{color:var(--match);background:var(--match-bg)}.status-badge.processing,.status-badge.uploaded,.status-badge.processed{color:var(--accent);background:#3b82f614}.status-badge.error{color:var(--mismatch);background:var(--mismatch-bg)}.status-badge.neutral{color:var(--text-muted);background:#a1a1aa14}.card-meta{margin-top:6px;margin-left:16px;font-size:12px;color:var(--text-muted);font-family:var(--font-mono);display:flex;align-items:center;flex-wrap:wrap}.meta-dot{margin:0 6px;color:var(--text-subtle)}.card-time{margin-top:4px;margin-left:16px;font-size:11px;color:var(--text-subtle);display:flex;align-items:center;gap:10px}.card-time.error-time{color:var(--mismatch)}.card-time-secondary{color:var(--text-muted)}.card-desc{margin:4px 0 0 16px;font-size:12px;color:var(--text-muted);line-height:1.4}.processing-pulse{animation:pulse-opacity 1.5s ease-in-out infinite}@keyframes pulse-opacity{0%,to{opacity:1}50%{opacity:.4}}.card-delete{position:absolute;top:14px;right:16px;opacity:0;background:none;border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-subtle);padding:4px 8px;font:12px var(--font-sans);cursor:pointer;transition:opacity var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}.card-delete:hover:not(:disabled){color:var(--mismatch);border-color:var(--mismatch)}.pdf-delete-button{margin-left:auto;opacity:0;transition:opacity var(--duration-fast) var(--ease-out)}.card-row:hover .pdf-delete-button,.card-row-clickable:hover .pdf-delete-button,.pdf-delete-button:focus-visible{opacity:1}.card-actions{margin-top:8px;margin-left:16px;display:flex;gap:var(--space-sm)}.empty-state-card{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:64px 24px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);text-align:center}.empty-state-icon{width:48px;height:48px;border-radius:var(--radius-lg);background:var(--border);display:flex;align-items:center;justify-content:center;margin-bottom:16px;font-size:20px}.empty-state-title{font-size:14px;font-weight:600;color:var(--text);margin-bottom:4px}.empty-state-desc{font-size:13px;color:var(--text-muted);margin-bottom:16px;max-width:320px}.project-status-strip{justify-content:flex-end}.project-create-layout{display:grid;grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);gap:var(--space-md);align-items:start}.create-intro-panel{padding:18px;background:var(--surface)}.create-intro-panel h3{margin:var(--space-sm) 0 0;color:var(--text);font-size:18px;letter-spacing:-.02em}.create-note-list{display:grid;gap:12px;margin-top:18px}.create-note-item{padding:12px 0 0;border-top:1px solid var(--border)}.create-note-item:first-child{padding-top:0;border-top:0}.create-note-item strong{display:block;color:var(--text);font-size:13px}.create-note-item p{margin:var(--space-xs) 0 0;color:var(--text-muted);line-height:1.6;font-size:13px}.create-note-hint{background:var(--surface-alt, color-mix(in oklch, var(--surface) 92%, var(--text)));border-left:2px solid var(--accent);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-size:12px}.project-create-panel{padding:18px}.project-create-form{display:flex;flex-direction:column;gap:var(--space-md)}.project-create-actions{display:flex;justify-content:flex-end;gap:var(--space-sm)}.source-toggle{display:flex;gap:2px;border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--border);overflow:hidden}.source-toggle-btn{flex:1;padding:var(--space-xs) var(--space-md);background:transparent;border:none;color:var(--text-muted);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.source-toggle-btn.active{background:var(--accent);color:var(--text-on-accent, #fff)}.source-toggle-btn:hover:not(.active){background:var(--surface-hover)}.sheets-url-row{display:flex;gap:var(--space-sm)}.sheets-url-row .text-input{flex:1}.sheets-connect-block{gap:var(--space-md)}.sheets-tab-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-xs)}.sheets-tab-list{display:grid;gap:2px;max-height:320px;overflow-y:auto;border-radius:var(--radius-md);border:1px solid var(--border)}.sheets-tab-empty{margin:0;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);border:1px dashed var(--border);color:var(--text-muted);font-size:var(--text-sm)}.cell-ref-link{background:transparent;border:none;padding:0;color:var(--accent);cursor:pointer;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:2px;font:inherit;font-weight:700}.cell-ref-link:hover{text-decoration-style:solid;color:color-mix(in oklch,var(--accent) 80%,var(--text))}.cell-ref-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}.excel-cell-popover{position:fixed;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md, 8px);box-shadow:0 8px 24px #0000002e;z-index:1000;display:flex;flex-direction:column;overflow:hidden}.excel-cell-popover-header{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm);border-bottom:1px solid var(--border);background:var(--surface-alt, color-mix(in oklch, var(--surface) 92%, var(--text)))}.excel-cell-popover-meta{display:flex;align-items:center;gap:var(--space-xs);flex:1;min-width:0;flex-wrap:wrap}.excel-cell-popover-sheet{font-size:var(--text-xs, .75rem);color:var(--text-muted, #6b7280);padding:2px 6px;background:var(--surface);border-radius:4px}.excel-cell-popover-ref{font-weight:700;color:var(--accent)}.excel-cell-popover-field{font-size:var(--text-xs, .75rem);color:var(--text-muted, #6b7280)}.excel-cell-popover-close{background:transparent;border:none;cursor:pointer;font-size:1.25rem;line-height:1;color:var(--text-muted, #6b7280);padding:0 var(--space-xs)}.excel-cell-popover-close:hover{color:var(--text)}.excel-cell-popover-body{padding:var(--space-sm);overflow-y:auto;white-space:pre-wrap;word-break:break-word;font-size:var(--text-sm);line-height:1.5;flex:1}.excel-cell-popover-body-iframe{padding:0;overflow:hidden;background:#f8f9fa}.excel-cell-popover-iframe{width:100%;height:100%;border:0;display:block}.excel-cell-popover-hint{margin-top:var(--space-sm);font-size:var(--text-xs, .75rem);color:var(--text-muted, #6b7280)}.excel-cell-popover-footer{padding:var(--space-xs) var(--space-sm);border-top:1px solid var(--border);display:flex;justify-content:flex-end;background:var(--surface-alt, color-mix(in oklch, var(--surface) 96%, var(--text)))}.excel-cell-popover-state{padding:var(--space-md);color:var(--text-muted, #6b7280);text-align:center;font-size:var(--text-sm)}.excel-cell-popover-state.error{color:var(--error, #b91c1c)}.sheets-tab-item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);background:var(--surface);cursor:pointer;transition:background var(--duration-fast) var(--ease-out)}.sheets-tab-item:hover{background:var(--surface-hover)}.sheets-tab-item.selected{background:color-mix(in oklch,var(--accent) 10%,var(--surface))}.sheets-tab-name{flex:1;font-size:var(--text-sm)}.sheets-tab-hint{font-style:normal;color:var(--text-muted, #6b7280);font-size:var(--text-xs, .75rem);margin-left:var(--space-xs)}.sheets-tab-rows{font-size:var(--text-xs);color:var(--text-muted)}.upload-dropzone{position:relative;display:flex;min-height:156px;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-sm);border-radius:var(--radius-lg);border:1px dashed var(--border-strong);background:var(--surface);text-align:center;color:var(--text);transition:border-color var(--duration-fast) var(--ease-out)}.upload-dropzone.compact{min-height:180px}.upload-dropzone-label{display:grid;gap:var(--space-sm);width:100%;justify-items:center}.upload-picker-row{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-sm)}.upload-dropzone-input{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}.upload-dropzone.dragging{border-color:var(--accent)}.upload-dropzone.has-files{border-style:solid;border-color:#3b82f64d}.upload-file-list{display:grid;gap:var(--space-sm);max-height:320px;overflow-y:auto}.upload-file-row{display:flex;justify-content:space-between;gap:var(--space-md);align-items:center;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);padding:10px 12px}.upload-file-row.selectable{align-items:stretch}.upload-file-row.selectable.is-selected{border-color:#3b82f659;background:color-mix(in srgb,var(--surface) 88%,var(--accent) 12%)}.upload-file-choice{display:flex;align-items:flex-start;gap:var(--space-sm);flex:1;min-width:0}.upload-file-choice input{margin-top:3px}.upload-file-copy{display:grid;gap:4px;min-width:0}.upload-file-name{color:var(--text);font:600 13px/1.4 var(--font-sans)}.upload-file-path{color:var(--text-muted);font:500 11px/1.45 var(--font-mono);word-break:break-all}.upload-file-meta{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:var(--space-xs);margin-left:var(--space-md)}.upload-selection-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);flex-wrap:wrap}.upload-selection-actions{display:flex;gap:var(--space-xs);flex-wrap:wrap}.upload-engine-fieldset{display:grid;gap:12px;padding:var(--space-md);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}.upload-engine-fieldset legend{padding:0 var(--space-sm);color:var(--text);font:600 13px/1 var(--font-sans)}.upload-engine-radio-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:var(--space-sm)}.upload-engine-radio{display:grid;gap:var(--space-xs);padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg);cursor:pointer;transition:border-color var(--duration-fast) var(--ease-out)}.upload-engine-radio:hover{border-color:var(--border-strong)}.upload-engine-radio input{margin:0}.upload-engine-radio.is-active{border-color:var(--accent);background:#3b82f60f}.upload-engine-radio-label{color:var(--text);font:600 13px/1.2 var(--font-sans)}.upload-engine-radio small{color:var(--text-muted);font:500 11px/1.45 var(--font-sans)}.upload-engine-help{margin:0;color:var(--text-muted);font-size:12px;line-height:1.6}.upload-progress-panel{display:grid;gap:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);padding:12px var(--space-md)}.upload-progress-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.upload-progress-head strong{color:var(--text);font-size:13px}.upload-progress-head span{color:var(--text-muted);font:600 12px/1 var(--font-mono)}.upload-progress-bar{height:var(--space-sm)}.upload-progress-panel.stage-uploading .upload-progress-bar span{background:var(--accent)}.upload-progress-panel.stage-finalizing .upload-progress-bar span{background:var(--accent-hover)}.upload-progress-panel.stage-queued .upload-progress-bar span{background:var(--match)}.upload-queued-indicator{display:flex;align-items:center;gap:10px;padding:2px 0}.upload-queued-indicator strong{color:var(--text);font-size:13px}.upload-spinner{width:16px;height:16px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin 1.2s linear infinite;display:inline-block;flex-shrink:0}.back-link{display:inline-block;font-size:12px;color:var(--text-muted);text-decoration:none;margin-bottom:6px}.back-link:hover{color:var(--text)}.countdown-badge{font:600 10px/1 var(--font-mono);padding:3px 8px;border-radius:var(--radius-sm);font-variant-numeric:tabular-nums;margin-left:auto}.countdown-badge.safe{background:#f59e0b1f;color:var(--warning)}.countdown-badge.urgent{background:var(--mismatch);color:#fff}.trash-actions-row{display:flex;justify-content:space-between;align-items:center}.trash-actions{display:flex;gap:8px}.danger-button{color:var(--mismatch);border-color:var(--mismatch)}.danger-button:hover:not(:disabled){background:var(--mismatch);color:#fff}.row-checkbox{width:16px;height:16px;margin-right:4px;accent-color:var(--accent);cursor:pointer;flex-shrink:0}.row-checkbox:disabled{cursor:not-allowed;opacity:.4}.select-all-row{display:flex;align-items:center;gap:8px;padding:6px 12px;cursor:pointer;-webkit-user-select:none;user-select:none}.select-all-label{font-size:.85rem;color:var(--text-muted)}.card-row-selected{border-color:var(--accent);background:#3b82f60f}.confirm-input{background:var(--bg);border:1px solid var(--border-strong);border-radius:var(--radius-md);color:var(--text);padding:6px 10px;font:500 12px var(--font-mono);min-width:220px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.project-page-header{grid-template-columns:1fr auto;align-items:start}.project-title-row{display:flex;align-items:baseline;gap:var(--space-md);flex-wrap:wrap}.project-summary-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.summary-stat{display:grid;gap:var(--space-xs);padding:14px var(--space-md);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.summary-stat span{color:var(--text-subtle);font:600 10px/1 var(--font-mono);text-transform:uppercase;letter-spacing:.1em}.summary-stat strong{color:var(--text);font:600 18px/1.2 var(--font-sans);letter-spacing:-.02em}.summary-stat small{color:var(--text-muted);font-size:12px;line-height:1.5}.project-detail-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.7fr);gap:var(--space-md);align-items:start}.project-upload-panel,.project-excel-panel,.queue-panel{padding:18px}.meta-stack{display:grid;gap:var(--space-sm)}.meta-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--radius-md);background:var(--bg);border:1px solid var(--border)}.meta-row span{color:var(--text-muted);font-size:13px}.meta-row strong{color:var(--text);font-size:13px}.queue-header{margin-bottom:18px}.queue-table{display:flex;flex-direction:column;gap:var(--space-sm)}.queue-table-header,.queue-table-row{display:grid;grid-template-columns:minmax(0,1.4fr) .72fr minmax(110px,.7fr) minmax(150px,.9fr) minmax(220px,1fr) minmax(0,1fr) auto;gap:12px;align-items:center}.queue-table-header{padding:0 var(--space-sm) var(--space-xs);color:var(--text-subtle);font:600 10px/1.2 var(--font-mono);text-transform:uppercase;letter-spacing:.08em}.queue-table-row{padding:12px var(--space-md);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);transition:border-color var(--duration-fast) var(--ease-out)}.queue-table-row.is-live-processing{border-color:#3b82f64d}.queue-cell{min-width:0}.queue-file-cell strong{display:block;color:var(--text);font-size:13px}.queue-file-meta{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-top:var(--space-xs);align-items:center}.queue-progress-cell{display:grid;gap:var(--space-sm)}.queue-created-cell{display:grid;gap:var(--space-xs)}.queue-created-cell strong{color:var(--text);font-size:13px;font-weight:600}.queue-engine-cell{display:grid;gap:var(--space-xs)}.queue-engine-cell strong{color:var(--text);font:700 12px/1.2 var(--font-mono);letter-spacing:.04em;text-transform:uppercase}.queue-created-label{display:none;color:var(--text-subtle);font:600 10px/1.2 var(--font-mono);letter-spacing:.06em;text-transform:uppercase}.queue-progress-cell .muted-text,.queue-cell .muted-text{margin:0}.queue-actions-cell{display:flex;justify-content:flex-end;gap:var(--space-sm);flex-wrap:wrap}.queue-live-badge,.queue-progress-live-text{display:inline-flex;align-items:center;gap:var(--space-sm)}.queue-live-badge{padding:6px 10px;border-radius:var(--radius-sm);border:1px solid rgba(59,130,246,.2);background:#3b82f60f;color:var(--accent);font:700 11px/1 var(--font-mono)}.queue-progress-live-text{color:var(--text)}.queue-inline-spinner{width:12px;height:12px;border-width:2px}.queue-phase-badge{color:var(--accent);border-color:#3b82f633;background:#3b82f60f}.qa-header-bar{display:grid;gap:12px}.qa-header-top{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-md);width:100%}.qa-header-main{min-width:0;display:grid;gap:var(--space-sm)}.qa-title-row{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap}.qa-title-row h2{margin:0;font-size:clamp(20px,2.4vw,28px);font-weight:700;letter-spacing:-.03em}.qa-meta-line{display:flex;flex-wrap:wrap;gap:8px 12px;color:var(--text-subtle);font:500 12px/1.4 var(--font-mono)}.qa-meta-line span{position:relative}.qa-meta-line span:not(:first-child):before{content:"";position:absolute;left:-7px;top:50%;width:2px;height:2px;border-radius:50%;background:var(--text-subtle);transform:translateY(-50%)}.qa-action-cluster{display:grid;justify-items:end;align-content:start;width:max-content;max-width:none;margin-left:auto;gap:var(--space-sm)}.engine-toggle-group{display:inline-flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) 6px var(--space-xs) 10px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface)}.engine-toggle-label{color:var(--text-subtle);font:600 10px/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase}.engine-toggle-buttons{display:inline-flex;gap:var(--space-2xs)}.engine-toggle-button{border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);padding:6px var(--space-sm);font:600 11px/1 var(--font-mono)}.engine-toggle-button.active{border-color:var(--border-strong);background:var(--surface-hover);color:var(--text)}.action-tooltip-row{display:flex;justify-content:flex-end;flex-wrap:nowrap;position:relative;align-items:center;gap:var(--space-sm)}.action-tooltip-trigger{position:relative;display:inline-flex}.action-tooltip{position:absolute;right:0;top:calc(100% + 10px);width:min(300px,calc(100vw - 48px));opacity:0;transform:translateY(-4px);transform-origin:top right;pointer-events:none;transition:opacity var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out);z-index:8;border-radius:var(--radius-lg);border:1px solid var(--border-strong);background:var(--surface);padding:12px 14px}.action-tooltip:before{content:"";position:absolute;top:-6px;right:20px;width:10px;height:10px;border-top:1px solid var(--border-strong);border-left:1px solid var(--border-strong);background:var(--surface);transform:rotate(45deg)}.action-tooltip strong{display:block;margin-top:var(--space-xs);color:var(--text);font-size:13px}.action-tooltip p{margin:var(--space-sm) 0 0;color:var(--text-muted);line-height:1.55;font-size:12px}.action-tooltip-trigger:hover .action-tooltip,.action-tooltip-trigger:focus-within .action-tooltip{opacity:1;transform:translateY(0)}.action-status-banner{display:flex;align-items:flex-start;gap:12px;border-radius:var(--radius-md);border:1px solid rgba(59,130,246,.2);background:#3b82f60a;padding:12px var(--space-md)}.action-status-banner.subtle{border-color:var(--border);background:var(--surface)}.action-status-banner strong{display:block;color:var(--text)}.action-status-banner p{margin:var(--space-xs) 0 0;color:var(--text-muted);line-height:1.55}.progress-bar-container{position:relative;margin-top:8px;height:6px;border-radius:3px;background:#ffffff14;overflow:hidden}.progress-bar-fill{height:100%;border-radius:3px;background:var(--accent, #3b82f6);transition:width .4s ease}.progress-bar-label{position:absolute;right:0;top:-18px;font-size:11px;color:var(--text-muted)}.result-overview-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.result-overview-strip.compact{grid-template-columns:repeat(4,minmax(0,1fr))}.overview-metric-card{display:grid;gap:var(--space-sm);padding:14px var(--space-md);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.metric-label{color:var(--text-subtle);font:600 10px/1.2 var(--font-mono);letter-spacing:.12em;text-transform:uppercase}.overview-metric-card strong{color:var(--text);font:600 28px/1 var(--font-mono);letter-spacing:-.04em;font-variant-numeric:tabular-nums}.overview-metric-card.mismatch strong{color:var(--mismatch)}.overview-metric-card.match strong{color:var(--match)}.overview-metric-card.unmatched strong{color:var(--unmatched)}.overview-metric-card.ignored strong{color:var(--ignored)}.result-viewer-band{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:var(--space-md);align-items:start}.result-viewer-band.viewer-detail-layout{grid-template-columns:minmax(0,1fr) 480px}.round-issues-panel{max-height:calc(100vh - 140px);overflow-y:auto}.round-issues-panel-header{display:flex;align-items:center;gap:var(--space-sm);padding-bottom:var(--space-sm);border-bottom:1px solid var(--border)}.round-issues-panel-count{margin-left:auto;font-size:.875rem;color:var(--muted);font-variant-numeric:tabular-nums}.round-issues-list-compact{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-sm)}.round-issue-item{border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-sm);background:var(--surface);cursor:pointer;display:flex;flex-direction:column;gap:var(--space-xs);transition:border-color .12s,box-shadow .12s,background .12s}.round-issue-item:hover{border-color:var(--accent)}.round-issue-item:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.round-issue-item.is-active{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 20%,transparent)}.round-issue-item-head{display:flex;align-items:center;gap:var(--space-xs);flex-wrap:wrap}.round-issue-item .round-issue-texts{gap:var(--space-xs)}.round-issue-item textarea{width:100%;margin-top:2px}.viewer-stage-panel,.review-list-panel,.detail-panel-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);padding:var(--space-md)}.viewer-stage-panel .pdf-panel{border:0;background:transparent;padding:0}.viewer-stage-panel .pdf-stage{min-height:640px}.detail-panel-card{position:sticky;top:var(--space-lg);display:grid;gap:var(--space-md)}.detail-panel-card.lifted{position:sticky;top:var(--space-lg);align-self:start}.detail-main-title{margin:var(--space-xs) 0 0;color:var(--text);font-size:18px;letter-spacing:-.03em}.result-detail{border-radius:var(--radius-lg);background:var(--bg);border:1px solid var(--border);padding:var(--space-md);display:flex;flex-direction:column;gap:12px}.sticky-panel{position:sticky;top:var(--space-lg);z-index:2;max-height:calc(100vh - var(--space-xl));overflow:auto;scrollbar-gutter:stable}.detail-head{display:flex;flex-wrap:wrap;gap:var(--space-sm);align-items:center}.detail-chip{display:inline-flex;align-items:center;padding:5px 10px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text-muted);font:600 11px/1.2 var(--font-mono)}.inline-crop-image{border:2px solid var(--border);border-radius:var(--radius-md);overflow:hidden;margin-bottom:12px}.inline-crop-image img{width:100%;max-height:120px;object-fit:contain;display:block}.detail-meta{display:flex;flex-wrap:wrap;gap:var(--space-sm) var(--space-md);color:var(--text-muted);font:500 12px/1.4 var(--font-mono)}.detail-judgement-card{display:grid;gap:var(--space-sm);padding:14px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg)}.detail-judgement-card strong{color:var(--text);font-size:14px;line-height:1.5}.detail-lead{margin:0;color:var(--text-muted);line-height:1.6}.summary-list{margin:0;padding-left:18px;display:grid;gap:var(--space-sm);list-style:disc}.summary-list li{line-height:1.5;color:var(--text-muted)}.pdf-panel{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);padding:14px;overflow:auto}.pdf-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;gap:12px;flex-wrap:wrap}.pdf-toolbar-group{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap}.toolbar-label{font:600 10px/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-subtle)}.page-buttons,.zoom-buttons{display:flex;gap:var(--space-xs);align-items:center}.page-buttons-label{font-size:var(--text-xs, .75rem);color:var(--text-muted, #6b7280);margin-right:var(--space-xs)}.result-list-scope-count{font-weight:400;font-size:var(--text-sm);color:var(--text-muted, #6b7280);margin-left:var(--space-xs)}.result-page-filter-row{display:flex;align-items:center;gap:var(--space-md);flex-wrap:wrap}.result-page-filter-chips{gap:6px}.page-buttons button,.zoom-buttons button{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);padding:6px 10px;color:var(--text-muted);font:500 12px/1 var(--font-mono);transition:border-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.page-buttons button:hover,.zoom-buttons button:hover{border-color:var(--border-strong);color:var(--text)}.page-buttons button.active{border-color:var(--accent);background:#3b82f614;color:var(--accent)}.zoom-value{min-width:48px;text-align:center;font:500 11px/1 var(--font-mono);color:var(--text-subtle)}.viewer-legend{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-bottom:12px}.legend-chip{display:inline-flex;gap:6px;align-items:center;border-radius:var(--radius-sm);background:var(--bg);border:1px solid var(--border);padding:var(--space-xs) var(--space-sm);font:500 11px/1 var(--font-mono);color:var(--text-muted);cursor:pointer;transition:border-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.legend-chip:hover{border-color:var(--border-strong);color:var(--text)}.legend-chip-active{border-color:var(--accent);color:var(--text)}.legend-dot{width:7px;height:7px;border-radius:50%}.legend-count{font:600 11px/1 var(--font-mono);color:var(--text-muted);font-variant-numeric:tabular-nums}.chunk-crop-preview{position:fixed;z-index:100;max-width:400px;border:2px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--bg);overflow:hidden;pointer-events:none;box-shadow:0 8px 32px #0009}.chunk-crop-preview img{display:block;max-width:100%;max-height:60vh;object-fit:contain}.chunk-crop-label{position:absolute;bottom:0;left:0;display:flex;align-items:center;gap:6px;padding:4px 8px;background:#000000b3;font:500 11px/1.2 var(--font-mono);color:#fff}.chunk-crop-number{color:var(--text-muted)}.pdf-stage{position:relative;padding:var(--space-md);border-radius:var(--radius-md);background:#0a0a0c}.pdf-stage canvas{display:block;max-width:none;border-radius:var(--radius-sm)}.overlay{pointer-events:none;position:absolute;inset:var(--space-md)}.overlay-box{pointer-events:auto;position:absolute;border:1px solid;border-radius:var(--radius-sm);background:#ffffff08;overflow:visible}.overlay-box.selected{outline:1px solid var(--accent)}.overlay-box.hovered{outline:1px solid rgba(255,255,255,.3)}.overlay-index{position:absolute;left:-4px;top:-7px;min-width:14px;height:14px;border-radius:50%;padding:0 var(--space-xs);display:inline-flex;align-items:center;justify-content:center;color:#fff;font:700 8px/1 var(--font-mono)}.hover-crop-image{width:100%;max-height:120px;object-fit:contain;border-radius:var(--radius-sm);margin-bottom:8px;border:1px solid var(--border)}.overlay-hover-card .inline-crop-image{margin:-12px -12px 8px;border:none;border-radius:var(--radius-lg) var(--radius-lg) 0 0}.overlay-hover-card .inline-crop-image img{max-height:160px;object-fit:contain}.overlay-hover-card{position:absolute;width:280px;pointer-events:none;border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border-strong);padding:12px;z-index:4}.overlay-hover-card .result-row-header{display:flex;gap:var(--space-sm);align-items:center}.overlay-hover-card p,.overlay-hover-card small{margin:var(--space-xs) 0 0;display:block;line-height:1.45;color:var(--text-muted)}.result-diff-panel{display:grid;gap:12px}.result-diff-panel.simplified .split-diff-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.result-diff-panel.simplified .split-diff-column{min-height:160px}.result-diff-panel.simplified .split-diff-text{min-height:96px}.split-diff-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.split-diff-column{min-width:0;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg);overflow:hidden}.split-diff-header{display:grid;gap:var(--space-xs);padding:10px 12px;border-bottom:1px solid var(--border);background:var(--surface)}.split-diff-header strong{color:var(--text);font-size:13px}.split-diff-text{padding:12px;min-height:120px;white-space:pre-wrap;word-break:break-word;color:var(--text);font:500 12px/1.8 var(--font-mono)}.split-diff-run.equal{color:var(--text)}.split-diff-run.pdf_only{background:var(--mismatch-bg);color:var(--mismatch);border-radius:var(--radius-sm)}.split-diff-run.excel_only{background:var(--match-bg);color:var(--match);border-radius:var(--radius-sm)}.split-diff-run.header{font-weight:700;color:var(--text)}.split-diff-run.format_only{background:#52525b1a;color:var(--text-muted);border-radius:var(--radius-sm);text-decoration:underline wavy;text-decoration-color:var(--text-subtle)}.comparison-card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg);padding:14px}.comparison-card-compact{padding:10px 12px}.comparison-card-header{display:flex;align-items:center;justify-content:space-between}.comparison-text{margin-top:var(--space-sm);white-space:pre-wrap;word-break:break-word;line-height:1.8;font:500 12px/1.8 var(--font-mono)}.comparison-text-compact{margin-top:6px;font-size:11px;line-height:1.7}.comparison-text.is-clamped{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:var(--comparison-clamp-lines, 4)}.comparison-run.equal{color:var(--text)}.comparison-run.pdf_only{background:var(--mismatch-bg);color:var(--mismatch);border-radius:var(--radius-sm)}.comparison-run.excel_only{background:var(--match-bg);color:var(--match);border-radius:var(--radius-sm)}.comparison-run.format_only{background:#52525b1a;color:var(--text-muted);border-radius:var(--radius-sm);text-decoration:underline wavy;text-decoration-color:var(--text-subtle)}.result-table-section-stack{display:grid;gap:var(--space-md)}.review-list-panel.full-width,.unmatched-excel-panel{padding:18px}.list-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:var(--space-md)}.list-toolbar h3{margin:var(--space-xs) 0 0;color:var(--text);font-size:18px;letter-spacing:-.02em}.list-toolbar-expanded{display:grid;gap:var(--space-md);align-items:start}.list-toolbar-main,.list-toolbar-filters{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.list-toolbar-filters{align-items:center}.list-toolbar-filters .search-input{flex:1 1 360px}.list-toolbar-filters .rail-select{width:220px}.mode-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-top:var(--space-sm)}.result-mode-tabs{margin-top:var(--space-xs)}.result-mode-tabs .mode-pill{text-transform:uppercase}.mode-pill{padding:7px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-muted);font:600 11px/1.2 var(--font-mono);transition:border-color var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.mode-pill:hover{border-color:var(--border-strong);color:var(--text)}.mode-pill.active{border-color:var(--accent);background:#3b82f614;color:var(--accent)}.filter-chips{display:flex;gap:var(--space-xs);flex-wrap:wrap}.chip{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;font-size:12px;font-family:var(--font-sans);font-weight:500;background:transparent;color:var(--text-muted);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.chip:hover{background:var(--surface-hover);color:var(--text);border-color:var(--border-strong)}.chip-active{background:var(--surface);color:var(--text);border-color:var(--border-strong)}.chip-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.chip-count{font-family:var(--font-mono);font-size:11px;color:var(--text-subtle);margin-left:2px}.stat-inline{display:inline-flex;align-items:center;gap:4px;font-family:var(--font-mono);font-size:13px;font-weight:600}.result-table{border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;background:var(--surface)}.result-table-head,.result-table-row{display:grid;grid-template-columns:64px 100px minmax(0,1fr) minmax(0,1fr) 120px;gap:12px;align-items:start}.result-table-wide .result-table-head,.result-table-wide .result-table-row{grid-template-columns:64px 110px minmax(180px,1fr) minmax(180px,1fr) 120px minmax(240px,1.5fr)}.result-table-head{padding:12px var(--space-md);background:var(--bg);border-bottom:1px solid var(--border);color:var(--text-subtle);font:600 10px/1.2 var(--font-mono);letter-spacing:.1em;text-transform:uppercase}.result-table-body{display:grid}.list-toolbar-title-row{display:flex;align-items:center;gap:16px}.result-page-buttons{display:flex;gap:4px;overflow-x:auto;flex-wrap:nowrap;scrollbar-width:thin;max-width:100%}.result-page-buttons button{padding:2px 10px;border-radius:var(--radius-sm);border:1px solid var(--border);background:transparent;color:var(--text-secondary);font:600 12px/1.4 var(--font-mono);cursor:pointer;flex-shrink:0}.result-page-buttons button.active{background:var(--accent);color:#fff;border-color:var(--accent)}.result-page-buttons button.muted{opacity:.35}.result-page-buttons button:focus-visible,.chip:focus-visible,.legend-chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.ocr-warning-banner{display:flex;gap:var(--space-md);align-items:flex-start;padding:var(--space-md) var(--space-lg);background:#f59e0b14;border-left:4px solid var(--warning);border-bottom:1px solid var(--border);color:var(--text)}.ocr-warning-banner .ocr-warning-icon{flex:0 0 24px;width:24px;height:24px;border-radius:50%;background:var(--warning);color:#fff;display:inline-flex;align-items:center;justify-content:center;font:700 14px/1 var(--font-mono)}.ocr-warning-banner .ocr-warning-body{display:grid;gap:4px;font-size:13px;line-height:1.55}.ocr-warning-banner .ocr-warning-body strong{color:var(--warning);font-weight:600}.ocr-warning-banner .ocr-warning-body p{margin:0;color:var(--text-muted)}.summary-bar{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--surface);border-bottom:1px solid var(--border);font:500 12px/1.4 var(--font-mono);color:var(--text-muted);flex-wrap:wrap}.summary-bar .summary-total{color:var(--text);font-weight:600}.summary-bar .summary-sep{color:var(--text-subtle)}.summary-bar .summary-item{display:inline-flex;align-items:center;gap:6px}.summary-bar .summary-count{font-variant-numeric:tabular-nums;color:var(--text);font-weight:600}.result-page-divider{display:flex;align-items:center;gap:8px;padding:6px 16px;background:var(--surface-2, #1a1a2e);border-bottom:1px solid var(--border, #2a2a3e);position:sticky;top:0;z-index:2}.page-divider-label{font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary, #9ca3af)}.page-divider-count{font-size:11px;color:var(--text-muted, #6b7280)}.result-table-row{width:100%;padding:12px var(--space-md);text-align:left;background:var(--surface);border-top:1px solid var(--border);transition:background var(--duration-fast) var(--ease-out)}.result-table-row:first-child{border-top:0}.result-table-row:hover{background:var(--surface-hover)}.result-table-row.selected{background:#3b82f60f;border-left:2px solid var(--accent)}.result-table-row.hovered{background:var(--surface-hover)}.row-index{color:var(--text);font:700 12px/1.2 var(--font-mono);font-variant-numeric:tabular-nums;display:inline-flex;align-items:baseline;gap:4px}.row-group-badge{font:600 10px/1 var(--font-mono);color:var(--text-muted);background:#3b82f61f;border:1px solid rgba(59,130,246,.25);border-radius:8px;padding:1px 6px;cursor:help}.cell-ref-extras{font:500 10px/1.3 var(--font-mono);color:var(--text-muted)}.cell-ref-extras.muted{opacity:.75}.snippet{margin:0;color:var(--text);font-size:13px;line-height:1.5}.snippet.muted{color:var(--text-muted)}.table-snippet{word-break:break-word}.table-snippet .split-diff-run.pdf_only{text-decoration:line-through}.result-cell-meta{display:grid;gap:var(--space-xs)}.result-cell-meta strong{color:var(--text);font-size:12px}.result-cell-meta small{color:var(--text-muted);font-size:11px;line-height:1.45}.table-cell-ref{align-content:start}.unmatched-table{border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;background:var(--surface)}.unmatched-table-head,.unmatched-table-row{display:grid;grid-template-columns:140px 200px minmax(0,1fr);gap:12px;align-items:start}.unmatched-table-head{padding:12px var(--space-md);background:var(--bg);border-bottom:1px solid var(--border);color:var(--text-subtle);font:600 10px/1.2 var(--font-mono);letter-spacing:.1em;text-transform:uppercase}.unmatched-table-body{display:grid}.unmatched-table-row{padding:12px var(--space-md);border-top:1px solid var(--border)}.unmatched-table-row:first-child{border-top:0}@media (max-width: 1360px){.result-viewer-band.viewer-detail-layout{grid-template-columns:1fr}.detail-panel-card.lifted{position:static}}@media (max-width: 1100px){.qa-header-top{flex-direction:column;align-items:stretch}.page-header-actions,.qa-action-cluster,.action-tooltip-row{justify-content:flex-start;align-items:stretch;width:100%;max-width:none}.project-create-layout,.project-detail-grid,.project-summary-strip,.split-diff-grid{grid-template-columns:1fr}.projects-inline-selection-bar{width:100%}}@media (max-width: 960px){.topbar,.pdf-toolbar{flex-direction:column;align-items:stretch}.toolbar-actions,.nav{justify-content:flex-start}.sticky-panel{position:static;max-height:none;overflow:visible}}@media (max-width: 900px){.result-overview-strip,.result-overview-strip.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.result-table-head{display:none}.result-table-row,.result-table-wide .result-table-row{grid-template-columns:1fr;gap:var(--space-sm)}.result-table-wide .result-table-head{display:none}.unmatched-table-head,.unmatched-table-row{grid-template-columns:1fr}.list-toolbar-main,.list-toolbar-filters{flex-direction:column;align-items:stretch}.list-toolbar-filters .rail-select{width:100%}.viewer-stage-panel .pdf-stage{min-height:auto}.result-viewer-band,.result-viewer-band.viewer-detail-layout{grid-template-columns:1fr}.detail-panel-card,.detail-panel-card.lifted{position:static}}.result-row-header{display:flex;flex-wrap:wrap;gap:var(--space-sm);align-items:center}.file-field{border-radius:var(--radius-md);border:1px dashed var(--border-strong);padding:var(--space-md);background:var(--surface)}.file-field strong,.file-field small{line-height:1.5}.dev-model-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--surface);border:1px solid var(--border);color:var(--text-muted);font:12px var(--font-sans);height:32px;padding:0 var(--space-sm);padding-right:24px;border-radius:2px;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23a1a1aa' d='M3 5l3 3 3-3'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 6px center}.dev-model-select:focus{outline:2px solid var(--accent);outline-offset:-1px}.dev-model-select:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 768px){.dev-model-select{display:none}}.settings-section{max-width:720px}.settings-description{color:var(--text-muted);margin-bottom:var(--space-md)}.brand-config-list{display:flex;flex-direction:column;gap:var(--space-xs);margin-bottom:var(--space-md)}.brand-config-row{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--surface-2);border-radius:var(--radius-md)}.brand-config-info{display:flex;flex-direction:column;gap:2px;overflow:hidden}.brand-name{font-size:.95rem}.brand-url{font-size:.8rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:500px}.brand-config-add{display:flex;gap:var(--space-xs);align-items:center}.brand-config-add .text-input{flex:1}.result-table-head{position:sticky;top:0;z-index:10;background:var(--bg)}.result-table-wide .result-table-head.has-checkbox,.result-table-wide .result-table-row.has-checkbox{grid-template-columns:36px 64px 110px minmax(180px,1fr) minmax(180px,1fr) 120px minmax(240px,1.5fr)}.result-checkbox-col{display:flex;align-items:center;justify-content:center}.result-checkbox{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;border:1.5px solid var(--border-strong);border-radius:var(--radius-sm);background:transparent;cursor:pointer;position:relative;transition:background var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}.result-checkbox:checked{background:var(--accent);border-color:var(--accent)}.result-checkbox:checked:after{content:"";position:absolute;top:2px;left:5px;width:4px;height:8px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}.result-checkbox:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.floating-selection-card{position:fixed;right:24px;bottom:24px;z-index:50;display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 8px 32px #0006;animation:floating-card-in .2s var(--ease-out) both}.floating-selection-label{font:500 13px/1.4 var(--font-sans);color:var(--text);white-space:nowrap}.floating-selection-actions{display:flex;gap:var(--space-sm)}@keyframes floating-card-in{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.round-timeline{display:flex;align-items:center;gap:0;padding:var(--space-sm) var(--space-md);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow-x:auto}.round-timeline-item{display:flex;align-items:center;gap:var(--space-sm);flex-shrink:0}.round-timeline-dot{width:28px;height:28px;border-radius:50%;border:2px solid var(--text-subtle);display:flex;align-items:center;justify-content:center;font:600 11px/1 var(--font-mono);color:#fff;cursor:pointer;transition:transform var(--duration-fast) var(--ease-out)}.round-timeline-dot:hover{transform:scale(1.15)}.round-timeline-label{font:500 12px/1.4 var(--font-sans);white-space:nowrap}.round-timeline-connector{display:block;width:32px;height:2px;background:var(--border-strong);margin:0 var(--space-xs);flex-shrink:0}.round-timeline-empty{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.round-timeline-empty-text{font:400 13px/1.4 var(--font-sans);color:var(--text-muted)}.round-timeline-empty-arrow{font-size:16px;color:var(--text-subtle);animation:timeline-arrow-bounce 1.5s ease-in-out infinite}@keyframes timeline-arrow-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(4px)}}.round-timeline-pdf-dot{width:32px;height:32px;border-radius:6px;border:2px solid var(--border-strong);background:var(--surface-raised, var(--surface));display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}.round-timeline-pdf-dot:hover{transform:scale(1.1);border-color:var(--accent)}.round-timeline-pdf-dot.is-active{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 25%,transparent)}.round-timeline-pdf-dot-inner{width:14px;height:18px;background:var(--text);border-radius:1px;position:relative}.round-timeline-pdf-dot-inner:before{content:"";position:absolute;top:0;right:0;width:5px;height:5px;background:var(--surface-raised, var(--surface));clip-path:polygon(0 0,100% 100%,0 100%)}.round-timeline-label-pdf{color:var(--text-muted);font-variant-numeric:tabular-nums}.round-timeline-tree{display:flex;flex-direction:column;gap:0;padding:var(--space-sm) var(--space-md);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.round-timeline-row{display:flex;align-items:center;gap:var(--space-md);padding:6px 0;min-height:32px;position:relative}.round-timeline-row[data-depth="1"]{padding-left:16px;border-left:1px dashed var(--border-strong);margin-left:8px}.round-timeline-row[data-depth="2"]{padding-left:16px;border-left:1px dashed var(--border-strong);margin-left:24px}.round-timeline-row[data-depth="3"]{padding-left:16px;border-left:1px dashed var(--border-strong);margin-left:40px}.round-timeline-row[data-depth="1"]:before,.round-timeline-row[data-depth="2"]:before,.round-timeline-row[data-depth="3"]:before{content:"";position:absolute;left:-1px;top:50%;width:10px;border-top:1px dashed var(--border-strong)}.round-timeline-row.is-active{background:color-mix(in srgb,var(--accent) 5%,transparent)}.round-timeline-pdf-node{display:inline-flex;align-items:center;gap:var(--space-xs);padding:4px 8px;background:transparent;border:1px solid transparent;border-radius:var(--radius-md);color:var(--text);cursor:pointer;font:500 12px/1.4 Geist Sans,sans-serif;transition:background .12s,border-color .12s;max-width:460px}.round-timeline-pdf-node:hover{background:var(--surface-hover);border-color:var(--border)}.round-timeline-pdf-node.is-active{background:color-mix(in srgb,var(--accent) 10%,transparent);border-color:color-mix(in srgb,var(--accent) 40%,transparent)}.round-timeline-pdf-icon{font-size:12px;opacity:.8}.round-timeline-pdf-label{font:500 10px/1 Geist Mono,monospace;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);padding-right:var(--space-xs);border-right:1px solid var(--border);margin-right:var(--space-xs)}.round-timeline-pdf-filename{color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:360px}.round-timeline-row-rounds{display:inline-flex;align-items:center;gap:6px}.round-timeline-round-dot{width:22px;height:22px;border-radius:50%;border:2px solid var(--text-subtle);display:inline-flex;align-items:center;justify-content:center;font:600 10px/1 Geist Mono,monospace;color:#fff;cursor:pointer;padding:0;transition:transform .12s var(--ease-out)}.round-timeline-round-dot:hover{transform:scale(1.12)}.round-timeline-round-dot.is-draft{background:transparent!important;color:var(--text-muted);border-style:dashed}.round-create-page .back-link{font:400 13px/1.4 var(--font-sans);color:var(--text-muted);transition:color var(--duration-fast) var(--ease-out)}.round-create-page .back-link:hover{color:var(--text)}.round-issues-list,.round-issue-card{display:flex;flex-direction:column;gap:var(--space-sm)}.round-issue-header{display:flex;align-items:center;gap:var(--space-sm)}.round-issue-index{font:600 12px/1.4 var(--font-mono);color:var(--text-muted)}.round-issue-page{font:400 12px/1.4 var(--font-mono);color:var(--text-subtle)}.round-issue-texts{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm)}.round-issue-text-block{display:flex;flex-direction:column;gap:var(--space-2xs)}.round-issue-card-split{flex-direction:row;gap:var(--space-md);align-items:stretch}.round-issue-left{flex-shrink:0;width:200px;display:flex;flex-direction:column;gap:var(--space-sm)}.round-issue-right{flex:1;display:flex;flex-direction:column;gap:var(--space-sm);min-width:0}.round-detail-issues-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-md)}.round-detail-issues-grid>.round-detail-issues-heading{grid-column:1 / -1;margin:0;font:600 14px/1.4 var(--font-sans);color:var(--text)}@media (max-width: 960px){.round-detail-issues-grid{grid-template-columns:1fr}.round-issue-card-split{flex-direction:column}.round-issue-left{width:100%}}.round-issue-comment-block,.round-issue-reply-block{display:flex;flex-direction:column;gap:var(--space-2xs);padding-top:var(--space-xs);border-top:1px solid var(--border)}.round-issue-reply-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);margin-bottom:var(--space-2xs)}.round-issue-reply-actions{display:flex;justify-content:flex-end;margin-top:var(--space-xs)}.secondary-button.compact,.primary-button.compact,.ghost-button.compact{padding:4px 10px;font-size:12px;line-height:1.4}.field-label{font:600 10px/1.2 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-subtle)}.round-action-bar{display:flex;justify-content:flex-end;gap:var(--space-sm);padding:var(--space-md) 0;border-top:1px solid var(--border)}.page-header-bar .round-action-bar{border-top:none;padding:0;align-items:center;flex-shrink:0;flex-wrap:wrap}.round-issue-comment-row{display:flex;align-items:flex-start;gap:var(--space-xs);margin-top:var(--space-xs)}.round-issue-comment-row>textarea{flex:1 1 auto;min-width:0}.round-issue-save-btn{flex-shrink:0;align-self:stretch;padding:var(--space-xs) var(--space-sm);font-size:12px}.round-detail-page .back-link{font:400 13px/1.4 var(--font-sans);color:var(--text-muted);transition:color var(--duration-fast) var(--ease-out)}.round-detail-page .back-link:hover{color:var(--text)}.round-return-section{display:flex;flex-direction:column;gap:var(--space-sm)}.round-return-section input[type=file]{font:400 13px/1.4 var(--font-sans);color:var(--text-muted)}.toast-bar{position:fixed;top:16px;left:50%;transform:translate(-50%);z-index:100;padding:var(--space-sm) var(--space-lg);background:var(--match);color:#fff;border-radius:var(--radius-md);font:500 13px/1.4 var(--font-sans);box-shadow:0 4px 16px #0000004d;animation:toast-in .2s var(--ease-out) both}@keyframes toast-in{0%{opacity:0;transform:translate(-50%) translateY(-12px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.inbox-round-hint{color:var(--warning);font-weight:500}.round-timeline-section{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-md) var(--space-lg)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#0009;display:flex;align-items:center;justify-content:center;padding:var(--space-md);animation:modal-fade .16s var(--ease-out) both}.modal-card{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-md);box-shadow:0 20px 60px #00000073;padding:var(--space-lg);max-width:480px;width:100%;display:flex;flex-direction:column;gap:var(--space-md);animation:modal-rise .2s var(--ease-out) both}.modal-card h3{margin:0;font:600 16px/1.4 var(--font-sans);color:var(--text)}.modal-card p{margin:0;font:400 13px/1.6 var(--font-sans);color:var(--text-muted)}.modal-actions{display:flex;flex-wrap:wrap;gap:var(--space-sm);justify-content:flex-end;margin-top:var(--space-xs)}@keyframes modal-fade{0%{opacity:0}to{opacity:1}}@keyframes modal-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.round-detail-split{display:flex;gap:var(--space-md);align-items:flex-start}.round-detail-viewer{flex:1 1 60%;max-width:60%;position:sticky;top:var(--space-md);align-self:flex-start;max-height:calc(100vh - 120px);overflow:hidden;display:flex;flex-direction:column}.round-detail-panel{flex:1 1 40%;min-width:0;display:flex;flex-direction:column;gap:var(--space-md)}.round-detail-issues-list{display:flex;flex-direction:column;gap:var(--space-md)}@media (max-width: 1100px){.round-detail-split{flex-direction:column}.round-detail-viewer{max-width:100%;flex:1 1 auto;position:relative;top:auto;max-height:60vh}.round-detail-panel{flex:1 1 auto}}.inbox-project-rounds-list{display:flex;flex-direction:column;gap:var(--space-sm)}.upload-progress{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-md);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md)}.upload-progress-bar{position:relative;height:8px;background:var(--border);border-radius:4px;overflow:hidden}.upload-progress-fill{position:absolute;top:0;left:0;height:100%;background:var(--accent);transition:width .12s ease-out}.upload-progress-label{display:flex;align-items:center;gap:var(--space-sm);font:500 13px/1.4 var(--font-sans);color:var(--text)}.upload-progress-label .muted{color:var(--text-muted);font-size:12px}.upload-progress-label strong{color:var(--match)}.pdf-thread-list{display:flex;flex-direction:column;gap:var(--space-md)}.pdf-thread-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-lg);transition:background-color .15s ease-out,border-color .15s ease-out;cursor:default}.pdf-thread-card:hover{background:var(--surface-hover);border-color:var(--border-strong)}.pdf-thread-card-attention{border-left:2px solid var(--accent);background:#3b82f60f}.pdf-thread-header{display:flex;flex-direction:row;align-items:center;gap:var(--space-sm);flex-wrap:wrap;padding-bottom:var(--space-sm)}.pdf-thread-header-link{text-decoration:none;color:inherit;flex:1 1 auto;min-width:0}.pdf-thread-header-link:hover .pdf-thread-header-filename{color:var(--accent)}.pdf-thread-header-filename{font:600 14px/1.4 Geist Sans,sans-serif;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pdf-thread-header-meta{font:11px/1.4 Geist Mono,monospace;color:var(--text-muted);flex-shrink:0}.pdf-thread-header-delete{opacity:0;transition:opacity .15s;margin-left:auto}.pdf-thread-card:hover .pdf-thread-header-delete{opacity:1}.pdf-thread-header-subtitle{font:11px/1.4 Geist Mono,monospace;color:var(--text-subtle);display:flex;gap:var(--space-xs);padding-bottom:var(--space-md)}.pdf-thread-timeline{list-style:none;padding:0;margin:0;padding-left:var(--space-lg);border-left:2px solid var(--border-strong);display:flex;flex-direction:column;gap:var(--space-md);position:relative}.pdf-thread-round{position:relative;padding-left:var(--space-md)}.pdf-thread-round-marker{position:absolute;left:calc(var(--space-md) * -1 - 5px);top:6px;width:8px;height:8px;border-radius:50%;background:var(--text-subtle)}.pdf-thread-round-marker[data-status=submitted]{background:var(--accent)}.pdf-thread-round-marker[data-status=in_progress]{background:var(--warning)}.pdf-thread-round-marker[data-status=returned]{background:var(--accent)}.pdf-thread-round-marker[data-status=resolved]{background:var(--match)}.pdf-thread-round-draft .pdf-thread-round-marker{background:transparent!important;border:1.5px dashed var(--text-muted);box-shadow:inset 0 0 0 0 transparent}.pdf-thread-round-link{text-decoration:none;color:inherit;display:block;padding:4px 0}.pdf-thread-round-link:hover .pdf-thread-round-number{color:var(--accent)}.pdf-thread-round-headline{display:flex;gap:var(--space-sm);align-items:center;flex-wrap:wrap}.pdf-thread-round-number{font:600 13px/1.4 Geist Sans,sans-serif;color:var(--text)}.pdf-thread-round-count{font:11px/1.4 Geist Mono,monospace;color:var(--text-muted)}.pdf-thread-round-filename{font:500 11px/1.4 Geist Mono,monospace;color:var(--text-muted);display:inline-flex;align-items:center;gap:4px;padding-top:3px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pdf-thread-round-filename-icon{font-size:10px;opacity:.7}.pdf-thread-round-meta{font:11px/1.4 Geist Mono,monospace;color:var(--text-muted);display:flex;gap:var(--space-xs);padding-top:2px}.pdf-thread-round-item{list-style:none;padding:0;margin:0 0 var(--space-sm) 0}.pdf-thread-round-toolbar{position:absolute;top:2px;right:0;display:flex;align-items:center;gap:var(--space-xs)}.pdf-thread-round-deleted .pdf-thread-round-link-disabled{opacity:.55;pointer-events:none;filter:grayscale(.3)}.pdf-thread-round-deleted .pdf-thread-round-number{color:var(--text-muted, #6b7280)}.pdf-thread-round-delete{align-self:flex-start;margin-left:var(--space-xs)}.pdf-thread-round-upload{font-weight:600;letter-spacing:.01em;box-shadow:0 0 0 1px #3b82f640,0 2px 6px #3b82f62e;transition:transform .08s ease,box-shadow .12s ease}.pdf-thread-round-upload:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 0 0 1px #3b82f666,0 4px 10px #3b82f647}.pdf-thread-round-upload:disabled{opacity:.7;cursor:wait}.pdf-thread-round-headline{padding-right:180px}@media (max-width: 720px){.pdf-thread-round-toolbar{position:static;margin-top:var(--space-xs);justify-content:flex-end}.pdf-thread-round-headline{padding-right:0}}.pdf-thread-return-row{display:flex;align-items:center;gap:var(--space-xs)}.pdf-thread-return-row .pdf-thread-return{flex:1}.pdf-thread-child-branch{margin-top:var(--space-sm);margin-left:12px;padding-left:0;border-left:none}.pdf-thread-node{display:block}.pdf-thread-child-branch .pdf-thread-timeline{margin-top:var(--space-xs);border-left:1px dashed var(--border-strong, var(--border))}.pdf-thread-step-hint{font:400 12px/1.4 Geist Mono,monospace;color:var(--text-subtle);margin:var(--space-sm) 0 0;padding-left:4px}.pdf-thread-round-snippet{margin:var(--space-xs) 0 0;font:12px/1.5 Geist Sans,sans-serif;color:var(--text-muted)}.pdf-thread-round-draft .pdf-thread-round-number{color:var(--text-muted)}.pdf-thread-round-draft .pdf-thread-round-snippet{color:var(--text-subtle);font-style:italic}.pdf-thread-round-cta{color:var(--accent);font:600 12px/1.4 Geist Sans,sans-serif;display:inline-block;margin-top:var(--space-xs)}.pdf-thread-return{display:flex;flex-wrap:wrap;gap:var(--space-sm);align-items:center;margin:var(--space-sm) 0 0 0;padding:var(--space-sm) var(--space-md);background:var(--surface-hover);border:1px solid var(--border);border-radius:var(--radius-sm);text-decoration:none;color:inherit;transition:background .15s,border-color .15s}.pdf-thread-return:hover{background:#3b82f614;border-color:var(--accent)}.pdf-thread-return-eyebrow{font:10px/1.4 Geist Mono,monospace;text-transform:uppercase;letter-spacing:.05em;color:var(--text-subtle);flex-basis:100%}.pdf-thread-return-arrow{color:var(--text-muted);font-size:14px}.pdf-thread-return-filename{font:600 13px/1.4 Geist Sans,sans-serif;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1}.pdf-thread-return-comment{flex-basis:100%;font:11px/1.5 Geist Mono,monospace;color:var(--text-muted);margin:0;padding-top:2px}.pdf-thread-return-failed{background:#ef444414;border-color:#ef44444d;cursor:not-allowed;pointer-events:none}.pdf-thread-orphan-section{margin-top:var(--space-lg);padding:var(--space-md);background:#f59e0b0f;border:1px solid rgba(245,158,11,.3);border-radius:var(--radius-md)}.pdf-thread-orphan-heading{font:600 13px/1.4 Geist Sans,sans-serif;color:var(--warning);display:flex;align-items:center;gap:var(--space-sm);margin:0 0 var(--space-xs)}.pdf-thread-orphan-desc{font:11px/1.4 Geist Mono,monospace;color:var(--text-muted);margin:0 0 var(--space-sm)}.pdf-thread-orphan-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-xs)}.pdf-thread-orphan-item{font:12px/1.4 Geist Mono,monospace;color:var(--text-muted);padding:var(--space-xs) var(--space-sm);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm)}.pdf-thread-orphan-item a{color:var(--text);text-decoration:none}.pdf-thread-orphan-item a:hover{color:var(--accent)}.floating-selection-card-empty{opacity:.85}.floating-selection-card-empty .primary-button{opacity:.5;cursor:not-allowed}.pdf-thread-card :focus-visible,.pdf-thread-round-link:focus-visible,.pdf-thread-return:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}@media (max-width: 768px){.pdf-thread-timeline{padding-left:var(--space-md)}.pdf-thread-header{flex-wrap:wrap}.pdf-thread-header-delete{opacity:1}.pdf-thread-round-marker{left:calc(var(--space-md) * -1 - 5px)}}@media (max-width: 768px){.pdf-thread-round-link{min-height:44px;display:flex;flex-direction:column;justify-content:center}.pdf-thread-header-delete{min-height:44px;min-width:44px}.pdf-thread-return{min-height:44px}}.page-header-bar{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-md)}.page-header-actions{display:flex;gap:var(--space-xs);flex-shrink:0}.print-page{max-width:780px;margin:32px auto;padding:32px 40px;background:#fff;color:#111;font-family:Pretendard,Noto Sans KR,-apple-system,BlinkMacSystemFont,sans-serif;font-size:11pt;line-height:1.55}.print-state{max-width:640px;margin:80px auto;padding:24px;text-align:center;color:#666}.print-state-error{color:#c0392b}.print-header{border-bottom:2px solid #111;padding-bottom:18px;margin-bottom:24px}.print-title{font-size:22pt;font-weight:700;margin:0 0 12px;letter-spacing:-.02em}.print-meta{display:grid;grid-template-columns:max-content 1fr max-content 1fr;gap:4px 12px;font-size:10pt}.print-meta-row{display:contents}.print-meta-label{color:#666;font-weight:500;white-space:nowrap}.print-meta-value{color:#111;font-weight:600}.print-overall-comment{margin-top:16px;padding:12px 14px;background:#f6f8fa;border-left:3px solid #333;border-radius:2px}.print-overall-comment p{margin:6px 0 0;font-size:10.5pt;white-space:pre-wrap}.print-issue-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:20px}.print-issue{border:1px solid #d0d5dc;border-radius:4px;padding:14px 16px;page-break-inside:avoid;break-inside:avoid}.print-issue-head{display:flex;align-items:center;gap:10px;margin-bottom:10px;font-size:10pt}.print-issue-number{font-weight:700;color:#0d6efd;font-size:11pt}.print-issue-page{color:#666;font-weight:500}.print-issue-crop{margin:8px 0 12px;max-width:100%}.print-issue-crop img{max-width:100%;height:auto;border:1px solid #e5e7eb;border-radius:2px}.print-issue-body{display:flex;flex-direction:column;gap:8px}.print-issue-field{display:flex;flex-direction:column;gap:2px}.print-field-label{font-size:9pt;color:#666;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.print-field-value{margin:0;font-size:10.5pt;white-space:pre-wrap;color:#111}.print-field-expected{color:#0d6b3f;font-weight:500}.print-field-comment{background:#fff8e1;border-left:3px solid #e0a800;padding:6px 10px;border-radius:2px}@media print{@page{size:A4;margin:15mm}body{background:#fff;margin:0;padding:0}.print-page{margin:0;padding:0;max-width:none;box-shadow:none}.print-issue{break-inside:avoid;page-break-inside:avoid}.print-overall-comment,.print-field-comment,.print-issue{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.reflection-banner{display:flex;align-items:center;padding:14px 18px;background:linear-gradient(90deg,#eef6ff,#f3f6fb);border:1px solid #bbd5f3;border-left:4px solid #0d6efd;border-radius:6px}.reflection-banner-main{display:flex;align-items:center;gap:14px;flex-wrap:wrap;width:100%}.reflection-banner-main strong{font-size:14px;color:#0d3a7a;letter-spacing:-.01em}.reflection-banner-sub{display:flex;gap:6px;flex-wrap:wrap}.reflection-chip{display:inline-flex;align-items:center;padding:3px 9px;font-size:11px;font-weight:600;border-radius:12px;letter-spacing:.01em}.reflection-chip.not-reflected{background:#fef0e7;color:#b3380d}.reflection-chip.unmatched{background:#f3e8ff;color:#6b2ab8}.reflection-chip.all-reflected{background:#e3f8ed;color:#076e2e}.reflection-badge{display:inline-flex;align-items:center;padding:2px 8px;font-size:10.5px;font-weight:600;border-radius:10px;margin-left:auto}.reflection-badge.verdict-reflected{background:#e3f8ed;color:#076e2e;border:1px solid #a3e4c0}.reflection-badge.verdict-not-reflected{background:#fef0e7;color:#b3380d;border:1px solid #f4b69c}.reflection-badge.verdict-unmatched{background:#f3e8ff;color:#6b2ab8;border:1px solid #d4b8f0}.reflection-badge.verdict-same{background:#f0f2f5;color:#505866;border:1px solid #d0d5dc}.reflection-badge.verdict-pending{background:#fff8e1;color:#8a6d1c;border:1px solid #eddba5}.print-section-title{font-size:13pt;font-weight:700;color:#111;margin:0 0 12px;padding-bottom:6px;border-bottom:1px solid #d0d5dc}.print-overview-section{margin-bottom:28px;display:flex;flex-direction:column;gap:16px}.print-overview-page{page-break-inside:avoid;break-inside:avoid}.print-overview-page-label{font-size:10pt;font-weight:600;color:#555;margin-bottom:6px}.print-overview-canvas-wrap{position:relative;border:1px solid #d0d5dc;background:#fff;display:inline-block}.print-overview-canvas-wrap canvas{display:block}.print-overview-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.print-overview-box{position:absolute;border:2px solid #c97316;border-radius:2px;background:#c973160a;box-sizing:border-box}.print-overview-index{position:absolute;left:-2px;top:-18px;background:#c97316;color:#fff;font-size:10px;font-weight:700;padding:1px 6px;border-radius:3px;white-space:nowrap;line-height:1.3}.print-issue-list-section{margin-top:20px}@media print{.print-overview-page{break-inside:avoid;page-break-inside:avoid}.print-overview-canvas-wrap canvas,.print-overview-box{-webkit-print-color-adjust:exact;print-color-adjust:exact}}@media screen{body:has(.print-landscape){background:#e9ecef}.print-landscape{padding:0;margin:0;max-width:none}.print-landscape .print-spread{width:297mm;min-height:210mm;padding:10mm;margin:16px auto;background:#fff;box-shadow:0 2px 10px #0000001a;box-sizing:border-box;display:flex;flex-direction:column;gap:10px}.print-landscape .print-state{width:297mm;margin:16px auto;background:#fff;padding:24px}}.print-spread-strap{display:flex;justify-content:space-between;align-items:center;padding-bottom:6px;border-bottom:1.5px solid #111;font-size:10pt;color:#111;flex-wrap:wrap;gap:6px}.print-spread-strap-left,.print-spread-strap-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.print-spread-strap-title{font-size:14pt;font-weight:700;letter-spacing:-.01em}.print-spread-strap-sep{color:#999}.print-spread-overall-comment{padding:8px 12px;background:#f7f9fc;border-left:3px solid #333;border-radius:2px;font-size:10pt}.print-spread-overall-comment p{margin:4px 0 0;white-space:pre-wrap}.print-spread-body{display:grid;grid-template-columns:4fr 3fr;gap:14px;align-items:flex-start;flex:1;min-height:0}.print-spread-left{display:flex;flex-direction:column;gap:6px;min-width:0}.print-spread-page-label{font-size:11pt;font-weight:700;color:#111;padding-bottom:4px;border-bottom:1px solid #d0d5dc}.print-spread-cont{color:#666;font-weight:500;font-size:10pt}.print-spread-canvas-wrap{position:relative;border:1px solid #d0d5dc;background:#fff;display:inline-block;max-width:100%}.print-spread-canvas-wrap canvas{display:block;max-width:100%;height:auto}.print-spread-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.print-spread-box{position:absolute;border:2px solid #c97316;border-radius:2px;background:#c973160a;box-sizing:border-box}.print-spread-index{position:absolute;left:-2px;top:-16px;background:#c97316;color:#fff;font-size:9.5px;font-weight:700;padding:1px 5px;border-radius:3px;white-space:nowrap;line-height:1.3}.print-spread-right{display:flex;flex-direction:column;gap:10px;padding-left:0;margin:0;list-style:none;min-width:0}.print-spread-right .print-issue{padding:10px 12px;border:1px solid #d0d5dc;border-radius:4px;break-inside:avoid;page-break-inside:avoid}.print-spread-right .print-issue-head{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:10pt}.print-issue-cell-ref{margin-left:auto;background:#e8f0fe;color:#0d3a7a;font-size:9pt;font-weight:600;padding:2px 7px;border-radius:3px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.print-spread-right .print-issue-crop{margin:6px 0 8px}.print-spread-right .print-issue-crop img{max-width:100%;height:auto;max-height:80px;border:1px solid #e5e7eb;border-radius:2px;object-fit:contain}.print-spread-right .print-issue-body{display:flex;flex-direction:column;gap:5px}.print-spread-right .print-field-value{margin:0;font-size:9.5pt;line-height:1.4;white-space:pre-wrap}@media print{@page{size:A4 landscape;margin:10mm}body,html{background:#fff!important;margin:0;padding:0}.print-landscape{margin:0;padding:0}.print-landscape .print-spread{width:auto;min-height:0;padding:0;margin:0;background:#fff;box-shadow:none;break-after:page;page-break-after:always}.print-landscape .print-spread:last-child{break-after:auto;page-break-after:auto}.print-spread-canvas-wrap canvas,.print-spread-box,.print-spread-overall-comment,.print-issue-cell-ref,.print-field-comment,.print-issue{-webkit-print-color-adjust:exact;print-color-adjust:exact}.print-header,.print-header-inline,.print-overview-section,.print-issue-list-section{display:none}}
