:root{--bg:#f5f7fb;--panel:#fff;--panel-soft:#f8fafc;--panel-blue:#eff6ff;--ink:#111827;--muted:#5f6b7a;--line:#d9e1ec;--line-strong:#c7d2e2;--field:#f8fafc;--brand:#0b1f3a;--primary:#2563eb;--primary-strong:#1d4ed8;--success:#047857;--success-bg:#def7ec;--warning:#a85516;--warning-bg:#fff7df;--danger:#b42318;--danger-bg:#fee4e2;--radius:8px;--shadow:0 1px 2px #0f172a0f, 0 10px 24px #0f172a0d}*{box-sizing:border-box}html{background:var(--bg);min-width:320px;color:var(--ink);font-family:Inter,ui-sans-serif,Segoe UI,system-ui,sans-serif}body{margin:0}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}h1{letter-spacing:0;font-size:22px;line-height:1.2}h2{letter-spacing:0;font-size:16px;line-height:1.25}.app-shell{background:var(--bg);min-height:100vh}.app-header{border-bottom:1px solid var(--line);background:var(--panel);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:28px;height:72px;padding:0 32px;display:grid}.brand-lockup,.top-nav,.header-actions{align-items:center;display:flex}.brand-lockup{color:var(--brand);gap:10px;font-size:14px;font-weight:700}.brand-mark{background:var(--brand);color:#fff;border-radius:8px;place-items:center;width:32px;height:32px;font-size:13px;font-weight:800;display:grid}.top-nav{gap:8px}.top-nav a{color:#334155;border-radius:6px;justify-content:center;align-items:center;min-width:92px;min-height:34px;font-size:12px;font-weight:500;display:inline-flex}.top-nav a.is-active{background:var(--panel-blue);color:var(--primary);font-weight:700}.header-actions{gap:16px}.account-pill{border:1px solid var(--line);color:#334155;white-space:nowrap;background:#f8fafc;border-radius:999px;align-items:center;min-height:28px;padding:0 16px;font-size:12px;font-weight:600;display:inline-flex}.screen-content,.review-content{max-width:1360px;margin:0 auto;padding:42px 0 56px}.screen-top,.review-top-bar{align-items:center;gap:24px;display:grid}.screen-top{grid-template-columns:minmax(0,1fr) 620px;min-height:88px;margin-bottom:28px}.screen-title{gap:8px;display:grid}.screen-title p,.review-title p,.muted{color:var(--muted);font-size:13px;line-height:1.45}.stepper{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.stepper span{border:1px solid var(--line);background:var(--panel);color:#64748b;border-radius:999px;justify-content:center;align-items:center;min-height:40px;font-size:12px;font-weight:700;display:inline-flex}.stepper span.is-active{background:var(--panel-blue);color:var(--primary);border-color:#bfdbfe}.upload-main{grid-template-columns:minmax(0,812px) minmax(360px,492px);align-items:start;gap:24px;display:grid}.upload-panel,.job-setup-panel,.document-viewer,.transaction-panel,.warning-panel,.success-panel,.review-top-bar,.loading-panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow)}.upload-panel,.job-setup-panel{min-height:640px;padding:24px}.panel-header,.side-panel-header,.table-toolbar{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.panel-header{margin-bottom:18px}.eyebrow,.metric-label,.field-label{color:var(--muted);letter-spacing:0;text-transform:uppercase;font-size:12px;font-weight:700;display:block}.dropzone{cursor:pointer;text-align:center;background:#f8fbff;border:1px dashed #9db3d5;border-radius:6px;align-content:center;place-items:center;gap:10px;min-height:320px;display:grid}.dropzone.is-dragging{border-color:var(--primary);background:#eff6ff}.dropzone input{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.dropzone-icon{min-width:50px;min-height:36px;color:var(--primary);background:#dbeafe;border-radius:6px;justify-content:center;align-items:center;font-size:20px;font-weight:800;display:inline-flex}.dropzone-title{color:var(--ink);font-size:16px;font-weight:800}.selected-file-box{border:1px solid var(--line);background:var(--panel);min-height:76px;color:var(--muted);border-radius:6px;align-items:center;margin-top:18px;padding:0 18px;font-size:14px;display:flex}.quality-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:20px;display:grid}.quality-card{border:1px solid var(--line);border-radius:6px;align-content:start;gap:6px;min-height:118px;padding:14px;display:grid}.quality-card strong{text-transform:lowercase;border-radius:999px;width:max-content;padding:3px 8px;font-size:11px}.quality-card span{font-size:13px;font-weight:800}.quality-card p{color:var(--muted);font-size:12px;line-height:1.4}.quality-card.is-good{background:#ecfdf5}.quality-card.is-good strong{color:var(--success);background:#d1fae5}.quality-card.is-review{background:#fffbeb}.quality-card.is-review strong{color:var(--warning);background:#fef3c7}.quality-card.is-format{background:#eff6ff}.quality-card.is-format strong{color:var(--primary);background:#dbeafe}.upload-options{align-content:start;gap:16px;display:grid}.next-steps{border-top:1px solid var(--line);gap:12px;margin-top:8px;padding-top:18px;display:grid}.next-steps h3{font-size:14px;line-height:1.3}.next-steps ul{color:#334155;gap:10px;margin:0;padding-left:18px;font-size:13px;line-height:1.4;display:grid}.next-steps li::marker{color:var(--primary)}.privacy-note{border-top:1px solid var(--line);gap:10px;padding-top:18px;display:grid}.privacy-note h3{font-size:14px;line-height:1.3}.privacy-note p{color:var(--muted);font-size:13px;line-height:1.45}select,input,textarea{border:1px solid var(--line);background:var(--field);width:100%;color:var(--ink);border-radius:6px}select,input{min-height:38px;padding:0 10px}input:focus,select:focus,textarea:focus,button:focus-visible,a:focus-visible{outline-offset:2px;outline:2px solid #2563eb47}textarea{resize:vertical;min-height:92px;padding:10px;line-height:1.45}.primary-action,.secondary-action,.export-button{border:1px solid var(--primary);background:var(--primary);color:#fff;cursor:pointer;white-space:nowrap;border-radius:6px;justify-content:center;align-items:center;min-height:40px;padding:0 16px;font-size:13px;font-weight:800;display:inline-flex}.primary-action:hover{background:var(--primary-strong)}.secondary-action,.export-button.secondary-action{border-color:var(--line);background:var(--panel);color:var(--ink)}.is-compact{min-height:38px;padding-inline:16px}button:disabled,.export-button:disabled{border-color:var(--line);color:#8a94a6;cursor:not-allowed;background:#e5eaf2}.form-error,.save-message{color:var(--danger);font-size:13px;line-height:1.4}.review-top-bar{grid-template-columns:minmax(300px,1fr) repeat(3,190px) auto;min-height:118px;margin-bottom:18px;padding:18px 20px}.review-title{gap:6px;display:grid}.review-title h1{text-overflow:ellipsis;white-space:nowrap;max-width:420px;overflow:hidden}.metric-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);align-content:center;gap:6px;min-height:82px;padding:12px 14px;display:grid}.metric-card span{color:var(--muted);font-size:12px;font-weight:700}.metric-card strong{font-size:20px}.metric-card.is-pending{background:#eff6ff;border-color:#bfdbfe}.metric-card.is-pending strong{color:var(--primary);font-size:18px}.review-actions{align-items:center;gap:10px;display:flex}.job-status-notice{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);min-height:52px;color:var(--ink);align-items:center;gap:12px;margin-bottom:18px;padding:12px 14px;display:flex}.job-status-processing,.job-status-queued,.job-status-uploaded{background:#eff6ff;border-color:#bfdbfe}.job-status-notice strong{color:var(--primary);text-transform:uppercase;font-size:12px;display:block}.job-status-notice span{color:var(--muted);font-size:13px;line-height:1.35;display:block}.status-spinner{border:2px solid #bfdbfe;border-top-color:var(--primary);border-radius:999px;flex:none;width:18px;height:18px;animation:.9s linear infinite status-spin}@keyframes status-spin{to{transform:rotate(360deg)}}.job-status-failed{background:var(--danger-bg);border-color:#fca5a5}.review-main{grid-template-columns:400px minmax(0,1fr);align-items:start;gap:18px;display:grid}.document-viewer{min-height:700px;padding:18px}.page-list{gap:12px;margin-top:16px;display:grid}.page-thumb{border:1px solid var(--line);background:var(--field);border-radius:6px;grid-template-columns:40px minmax(0,1fr);align-items:center;gap:12px;padding:10px;display:grid}.page-thumb img{aspect-ratio:3/4;object-fit:cover;border:1px solid var(--line);background:#fff;border-radius:4px;grid-row:span 2;width:40px}.page-thumb span,.page-thumb small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.page-thumb span{font-size:13px;font-weight:800}.page-thumb small{color:var(--muted);text-transform:lowercase;font-size:12px}.review-table-stack{gap:14px;display:grid}.transaction-panel{min-width:0;height:700px;padding:18px;overflow:hidden}.table-toolbar{align-items:center}.table-scroll{border:1px solid var(--line);border-radius:6px;max-height:586px;margin-top:16px;overflow:auto}.transaction-table{border-collapse:collapse;table-layout:fixed;background:var(--panel);width:100%;min-width:980px}.transaction-table th,.transaction-table td{border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;padding:8px}.transaction-table th{z-index:1;background:var(--field);height:36px;color:var(--muted);text-transform:none;font-size:11px;font-weight:800;position:sticky;top:0}.transaction-table th:first-child{width:46px}.transaction-table th:nth-child(2){width:114px}.transaction-table th:nth-child(3){width:320px}.transaction-table th:nth-child(n+4):nth-child(-n+7){width:104px}.transaction-table th:nth-child(8){width:116px}.transaction-table input,.transaction-table select{border-radius:999px;min-height:32px;padding:0 9px;font-size:12px}.description-input{min-width:0}.empty-row{height:140px;color:var(--muted);text-align:center}.warning-panel,.success-panel{gap:10px;padding:16px 18px;display:grid}.warning-panel{background:var(--warning-bg);border-color:#f6d58e}.success-panel{background:var(--success-bg);border-color:#a7f3d0}.warning-panel strong,.success-panel strong{font-size:14px}.success-panel span{color:var(--success);font-size:13px}.warning-list{color:var(--warning);gap:6px;margin:0;padding-left:18px;font-size:13px;line-height:1.35;display:grid}.export-content{max-width:1328px;margin:0 auto;padding:46px 0 56px}.export-stepper .is-complete{background:var(--panel-blue);color:var(--primary);border-color:#bfdbfe}.export-main{grid-template-columns:minmax(0,790px) minmax(360px,482px);align-items:start;gap:24px;display:grid}.export-files-panel,.reconciliation-panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow);padding:26px}.export-file-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:28px 0;display:grid}.export-file-card{border:1px solid var(--line);background:var(--field);border-radius:8px;align-content:start;gap:16px;min-height:178px;padding:16px;display:grid}.export-file-card.is-primary{background:#ecfdf5;border-color:#a7f3d0}.export-file-card.is-optional{background:var(--panel-blue);border-color:#bfdbfe}.export-file-card strong{width:max-content;color:var(--primary);border:1px solid;border-radius:999px;padding:5px 20px;font-size:12px;font-weight:600}.export-file-card.is-primary strong{color:var(--success)}.export-file-card span{font-size:16px;font-weight:800}.export-file-card p{color:#334155;font-size:13px;line-height:1.45}.mapping-block{gap:10px;display:grid}.mapping-table{border-collapse:collapse;border:1px solid var(--line);border-radius:8px;width:100%;margin-top:12px;font-size:13px;overflow:hidden}.mapping-table th,.mapping-table td{text-align:left;padding:12px 16px}.mapping-table th{color:#64748b;background:#eef3f9;font-size:12px}.mapping-table td{border-top:1px solid #edf2f7}.mapping-table td:first-child{font-weight:800}.export-downloads{flex-wrap:wrap;gap:12px;margin-top:24px;display:flex}.feedback-panel{border-top:1px solid var(--line);gap:14px;margin-top:24px;padding-top:20px;display:grid}.feedback-options,.feedback-issues{flex-wrap:wrap;gap:10px;display:flex}.feedback-options label,.feedback-issues label{border:1px solid var(--line);background:var(--field);color:#334155;border-radius:999px;align-items:center;gap:8px;min-height:34px;padding:0 12px;font-size:12px;font-weight:700;display:inline-flex}.feedback-options input,.feedback-issues input{width:14px;min-height:14px;padding:0}.reconciliation-panel{gap:12px;display:grid}.reconciliation-status{border:1px solid var(--line);border-radius:8px;gap:8px;padding:16px 18px;display:grid}.reconciliation-status strong{font-size:18px}.reconciliation-status p{color:#334155;font-size:13px;line-height:1.4}.reconciliation-status.is-reconciled{color:var(--success);background:#ecfdf5;border-color:#a7f3d0}.reconciliation-status.is-warning{background:var(--warning-bg);color:var(--warning);border-color:#f6d58e}.balance-list{gap:10px;display:grid}.balance-list div{background:var(--field);border-radius:6px;justify-content:space-between;align-items:center;gap:16px;min-height:34px;padding:0 14px;display:flex}.balance-list span{color:#64748b;font-size:13px}.balance-list strong{font-size:15px}.balance-list .is-reconciled{color:var(--success);background:#ecfdf5}.balance-list .is-warning{background:var(--warning-bg);color:var(--warning)}.audit-trail{border-top:1px solid var(--line);gap:8px;margin-top:4px;padding-top:12px;display:grid}.audit-trail ul{color:#334155;gap:10px;margin:0;padding-left:18px;font-size:13px;display:grid}.audit-trail li::marker{color:var(--primary)}.home-seo-section{gap:34px;max-width:1360px;margin:0 auto;padding:8px 0 64px;display:grid}.seo-page-shell{gap:24px;max-width:1200px;margin:0 auto;padding:46px 0 64px;display:grid}.seo-copy-grid{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) minmax(0,1.22fr);gap:42px;padding:34px 0;display:grid}.seo-copy-grid>div:first-child,.seo-hero,.faq-section,.seo-link-panel,.seo-keyword-panel{gap:14px;display:grid}.seo-copy-grid h2,.faq-section h2,.seo-link-panel h2,.seo-keyword-panel h2{font-size:20px;line-height:1.25}.seo-copy-grid p,.seo-info-card p,.faq-item p,.seo-hero p,.seo-keyword-panel p{color:var(--muted);font-size:14px;line-height:1.6}.seo-card-grid,.seo-two-column,.faq-grid,.seo-link-grid{gap:14px;display:grid}.seo-card-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}.seo-info-card,.faq-item{border:1px solid var(--line);background:var(--field);border-radius:8px;padding:18px}.seo-info-card{gap:10px;display:grid}.seo-info-card h3,.faq-item h3{font-size:15px;line-height:1.3}.seo-link-panel,.faq-section,.seo-keyword-panel{gap:14px;display:grid}.seo-page-shell .seo-link-panel,.seo-page-shell .faq-section,.seo-page-shell .seo-keyword-panel{border-top:1px solid var(--line);padding-top:24px}.seo-link-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.seo-link-grid a{border:1px solid var(--line);background:var(--field);border-radius:8px;gap:6px;padding:16px;display:grid}.seo-link-grid a:hover{background:var(--panel-blue);border-color:#bfdbfe}.seo-link-grid span{color:var(--primary);font-size:12px;font-weight:800}.seo-link-grid strong{font-size:14px;line-height:1.35}.faq-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.seo-hero{max-width:760px}.seo-hero h1{font-size:34px;line-height:1.1}.seo-hero-actions{flex-wrap:wrap;gap:12px;margin-top:6px;display:flex}.seo-process{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);grid-template-columns:repeat(3,minmax(0,1fr));gap:0;display:grid;overflow:hidden}.seo-step{align-items:center;gap:14px;min-height:84px;padding:18px;display:flex}.seo-step+.seo-step{border-left:1px solid var(--line)}.seo-step span{background:var(--panel-blue);width:32px;height:32px;color:var(--primary);border-radius:999px;flex:none;place-items:center;font-size:13px;font-weight:800;display:grid}.seo-step p{color:#334155;font-size:14px;font-weight:700;line-height:1.35}.seo-two-column{grid-template-columns:repeat(2,minmax(0,1fr))}.keyword-list{flex-wrap:wrap;gap:10px;display:flex}.keyword-list span{border:1px solid var(--line);background:var(--field);color:#334155;border-radius:999px;padding:8px 12px;font-size:13px;font-weight:700}.loading-panel{max-width:720px;margin:15vh auto 0;padding:28px}.status-ready{color:var(--success)}.status-failed{color:var(--danger)}.status-needs-review{color:var(--warning)}.admin-shell{gap:22px;max-width:1360px;margin:0 auto;padding:34px 18px 64px;display:grid}.admin-header,.admin-section,.admin-stat{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow)}.admin-header{grid-template-columns:minmax(0,1fr) 170px;align-items:center;gap:18px;padding:22px;display:grid}.admin-header h1{margin-top:6px}.admin-metrics-grid,.admin-status-grid{gap:12px;display:grid}.admin-metrics-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.admin-stat{align-content:center;gap:8px;min-height:94px;padding:14px 16px;display:grid}.admin-stat span,.admin-status-grid span,.admin-table span{color:var(--muted);font-size:12px}.admin-stat strong{font-size:24px}.admin-section{gap:16px;padding:20px;display:grid}.admin-status-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.admin-status-grid div{border:1px solid var(--line);background:var(--field);border-radius:6px;gap:8px;padding:12px;display:grid}.admin-status-grid strong{font-size:20px}.admin-table-scroll{border:1px solid var(--line);border-radius:6px;overflow-x:auto}.admin-table{border-collapse:collapse;background:var(--panel);table-layout:fixed;width:100%;min-width:980px}.admin-table th,.admin-table td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:10px}.admin-table th{background:var(--field);color:var(--muted);font-size:12px}.admin-table td{color:#334155;font-size:12px;line-height:1.4}.admin-table td strong,.admin-table td span{display:block}.admin-jobs-table{min-width:1180px}.admin-support-table{min-width:1320px}.admin-review-form{grid-template-columns:140px minmax(140px,1fr) auto;align-items:center;gap:8px;display:grid}.admin-support-status-form{grid-template-columns:minmax(120px,1fr) auto;align-items:center;gap:8px;display:grid}.admin-message-details{gap:8px;display:grid}.admin-message-details summary{cursor:pointer;font-weight:700}.admin-message-details p{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.support-widget{z-index:80;pointer-events:none;justify-items:end;gap:10px;display:grid;position:fixed;bottom:24px;right:24px}.support-launcher,.support-panel,.support-panel button,.support-panel input,.support-panel textarea{pointer-events:auto}.support-launcher{background:var(--brand);color:#fff;min-height:42px;box-shadow:var(--shadow);cursor:pointer;border:1px solid #172554;border-radius:8px;padding:0 16px;font-size:13px;font-weight:800}.support-panel{border:1px solid var(--line);background:var(--panel);border-radius:8px;gap:14px;width:380px;max-width:calc(100vw - 48px);max-height:calc(100vh - 96px);padding:16px;display:grid;overflow:auto;box-shadow:0 18px 40px #0f172a2e}.support-panel-header{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.support-panel-header h2{font-size:16px}.support-panel-header p,.support-job-id,.support-privacy-note{color:var(--muted);font-size:12px;line-height:1.45}.support-panel-close{border:1px solid var(--line);background:var(--field);color:#334155;cursor:pointer;border-radius:6px;place-items:center;width:30px;height:30px;font-size:14px;font-weight:800;display:inline-grid}.support-faq-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.support-faq-button{border:1px solid var(--line);background:var(--field);color:#334155;text-align:left;cursor:pointer;border-radius:6px;min-height:38px;padding:8px 10px;font-size:12px;font-weight:700}.support-faq-button.is-active{background:var(--panel-blue);color:var(--primary);border-color:#bfdbfe}.support-answer{border:1px solid var(--line);background:#fff;border-radius:6px;gap:6px;padding:12px;display:grid}.support-answer strong{font-size:13px}.support-answer p{color:#334155;font-size:13px;line-height:1.45}.support-secondary-action,.support-submit-row button{border:1px solid var(--primary);background:var(--primary);color:#fff;cursor:pointer;border-radius:6px;min-height:38px;padding:0 14px;font-size:13px;font-weight:800}.support-contact-form{gap:8px;display:grid}.support-contact-form label{color:#334155;font-size:12px;font-weight:800}.support-contact-form input,.support-contact-form textarea{border:1px solid var(--line);background:var(--field);width:100%;color:var(--ink);border-radius:6px;padding:10px 11px;font-size:13px}.support-contact-form textarea{resize:vertical;min-height:104px}.support-submit-row{justify-content:flex-end;display:flex}.support-submit-row button:disabled{cursor:wait;opacity:.7}.support-status{border-radius:6px;padding:10px 12px;font-size:12px;font-weight:700;line-height:1.35}.support-status.is-error{background:var(--danger-bg);color:var(--danger)}.support-status.is-success{background:var(--success-bg);color:var(--success)}@media (max-width:1180px){.app-header{grid-template-columns:1fr auto}.top-nav{display:none}.screen-content,.review-content,.export-content,.home-seo-section,.seo-page-shell{padding:28px 18px 42px}.screen-top,.upload-main,.review-top-bar,.review-main,.export-main,.seo-copy-grid,.seo-two-column{grid-template-columns:1fr}.seo-card-grid,.seo-link-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stepper{max-width:620px}.review-top-bar{align-items:stretch}.review-actions{justify-content:flex-start}.document-viewer{min-height:auto}.admin-header,.admin-metrics-grid,.admin-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:720px){.app-header{grid-template-columns:1fr;gap:12px;height:auto;min-height:72px;padding:16px}.header-actions{justify-content:space-between}.quality-grid,.export-file-grid,.seo-card-grid,.seo-link-grid,.faq-grid,.seo-process,.stepper{grid-template-columns:1fr}.seo-hero h1{font-size:28px}.seo-step+.seo-step{border-left:0;border-top:1px solid var(--line)}.upload-panel,.job-setup-panel,.document-viewer,.transaction-panel,.export-files-panel,.reconciliation-panel{padding:16px}.dropzone{min-height:240px}.screen-title h1,.review-title h1{white-space:normal;max-width:100%}.review-actions{grid-template-columns:1fr;display:grid}.admin-header,.admin-metrics-grid,.admin-status-grid,.admin-review-form,.admin-support-status-form{grid-template-columns:1fr}.admin-shell{padding:22px 12px 42px}.support-widget{bottom:12px;left:12px;right:12px}.support-panel{width:auto;max-width:none;max-height:calc(100vh - 76px)}.support-faq-list{grid-template-columns:1fr}}
