:root{--ink:#151515;--ink-muted:#666;--ink-subtle:#888;--surface:#fff;--surface-muted:#f8f8f6;--canvas:#f3f3f0;--line:#e3e3de;--line-strong:#cfcfc8;--safe:#2f5d3f;--safe-bg:#eef6f0;--safe-line:#d4e6da;--review:#6d5432;--review-bg:#faf6ef;--review-line:#ebe2d4;--danger:#7d2722;--danger-bg:#fff7f6;--danger-line:#f0c8c5;--radius-sm:10px;--radius-md:14px;--radius-lg:18px;--radius-xl:22px;--shadow-soft:0 1px 2px #1515150a;--shadow-card:0 10px 40px #1515150f;--transition:.16s ease;color:var(--ink);background:var(--canvas);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at 50% -20%, #fff 0, var(--canvas) 52%);min-width:320px;margin:0}button,input{font:inherit}button{cursor:pointer}.app-shell{flex-direction:column;min-height:100vh;display:flex}.topbar{justify-content:space-between;align-items:center;width:min(1100px,100% - 40px);margin:0 auto;padding:22px 0;display:flex}.brand{letter-spacing:-.02em;align-items:center;gap:10px;font-size:15px;font-weight:800;display:flex}.brand-mark{background:var(--ink);color:#fff;border-radius:8px;place-items:center;width:28px;height:28px;font-size:14px;display:grid}.topbar-note{color:var(--ink-subtle);font-size:13px}main{flex:1}.hero-section{text-align:center;width:min(760px,100% - 40px);margin:0 auto;padding:32px 0 80px}.hero-intro{margin-bottom:36px}.eyebrow{color:var(--ink-subtle);letter-spacing:.14em;text-transform:uppercase;font-size:11px;font-weight:700}h1{letter-spacing:-.055em;margin:14px 0 0;font-size:clamp(40px,8vw,68px);font-weight:800;line-height:1.02}.hero-copy{max-width:520px;color:var(--ink-muted);margin:18px auto 0;font-size:17px;line-height:1.6}.upload-card{max-width:560px;margin:0 auto}.drop-zone{border:1.5px dashed var(--line-strong);border-radius:var(--radius-xl);background:var(--surface);transition:border-color var(--transition), background var(--transition), box-shadow var(--transition), transform var(--transition);box-shadow:var(--shadow-card);cursor:pointer;padding:44px 28px}.drop-zone:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.drop-zone.loading{cursor:default;border-style:solid;border-color:var(--line);background:var(--surface-muted);box-shadow:var(--shadow-soft)}.drop-zone:hover:not(.loading){border-color:#9a9a94;transform:translateY(-1px);box-shadow:0 14px 48px #15151514}.drop-zone.drag-over:not(.loading){border-color:var(--ink);background:#fefefe;border-style:solid;transform:translateY(-1px);box-shadow:0 16px 52px #1515151a}.upload-panel,.loading-panel{flex-direction:column;align-items:center;display:flex}.drop-zone h2{letter-spacing:-.025em;margin:18px 0 6px;font-size:20px;font-weight:700}.drop-zone p{color:var(--ink-subtle);margin:0;font-size:14px;line-height:1.5}.loading-detail{color:#9a9a94!important;margin-top:10px!important;font-size:13px!important}.upload-icon{background:var(--ink);color:#fff;width:52px;height:52px;transition:transform var(--transition);border-radius:14px;place-items:center;font-size:22px;font-weight:700;display:grid}.drop-zone:hover:not(.loading) .upload-icon,.drop-zone.drag-over:not(.loading) .upload-icon{transform:translateY(-1px)}.upload-button{margin-top:22px}.file-note{margin-top:16px}.file-format-badge{background:var(--surface-muted);border:1px solid var(--line);color:var(--ink-subtle);letter-spacing:.02em;border-radius:999px;padding:5px 10px;font-size:11px;font-weight:600;display:inline-block}.primary-button,.secondary-button{border-radius:var(--radius-sm);transition:background var(--transition), transform var(--transition), opacity var(--transition);border:0;padding:12px 18px;font-size:14px;font-weight:700}.primary-button{background:var(--ink);color:#fff}.primary-button:hover:not(:disabled){background:#2a2a2a;transform:translateY(-1px)}.primary-button:disabled{opacity:.65;cursor:not-allowed;transform:none}.primary-button:focus-visible,.secondary-button:focus-visible,.text-button:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.primary-button.large{padding:14px 22px;font-size:15px}.secondary-button{color:#222;background:#ebebe7}.secondary-button:hover{background:#dfdfda}.text-button{width:fit-content;color:inherit;text-underline-offset:2px;transition:color var(--transition);background:0 0;border:0;margin-top:4px;padding:0;font-size:13px;font-weight:700;text-decoration:underline}.text-button:hover{color:#5a1713}.trust-row{flex-wrap:wrap;justify-content:center;gap:10px 16px;max-width:680px;margin:32px auto 0;padding:0;list-style:none;display:flex}.trust-row>li{text-align:left;align-items:flex-start;gap:8px;max-width:220px;display:flex}.trust-dot{background:var(--ink);opacity:.35;border-radius:50%;flex:none;width:6px;height:6px;margin-top:6px}.trust-row strong,.trust-row span{display:block}.trust-row strong{letter-spacing:-.01em;font-size:12px;font-weight:700}.trust-row span{color:var(--ink-subtle);margin-top:2px;font-size:11px;line-height:1.45}.safety-promise{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);text-align:left;max-width:560px;box-shadow:var(--shadow-soft);margin:36px auto 0;padding:20px 22px}.safety-principle{border-left:3px solid var(--ink);padding-left:20px}.safety-promise h2{letter-spacing:-.025em;margin:0;font-size:16px;font-weight:700;line-height:1.35}.safety-promise p{color:var(--ink-muted);margin:8px 0 0;font-size:14px;line-height:1.6}.process-steps{text-align:left;grid-template-columns:repeat(3,1fr);gap:12px;max-width:680px;margin:24px auto 0;padding:0;list-style:none;display:grid}.process-steps>li{border:1px solid var(--line);border-radius:var(--radius-md);transition:border-color var(--transition);background:#ffffffb3;gap:12px;padding:14px 16px;display:flex}.process-step{background:var(--surface-muted);border:1px solid var(--line);width:28px;height:28px;color:var(--ink-subtle);letter-spacing:.04em;border-radius:50%;flex:none;place-items:center;font-size:10px;font-weight:800;display:grid}.process-steps strong,.process-steps span{display:block}.process-steps strong{font-size:13px;font-weight:700}.process-steps span{color:var(--ink-subtle);margin-top:3px;font-size:12px;line-height:1.45}.error-message{border:1px solid var(--danger-line);border-radius:var(--radius-md);background:var(--danger-bg);color:var(--danger);text-align:left;flex-direction:column;gap:6px;margin-top:16px;padding:16px 18px;display:flex}.error-message strong{font-size:14px;font-weight:700}.error-message span{font-size:13px;line-height:1.5}.info-banner{border:1px solid var(--review-line);border-left:3px solid var(--review);border-radius:var(--radius-md);background:var(--review-bg);color:var(--review);text-align:left;flex-direction:column;gap:4px;margin-top:20px;padding:14px 18px;display:flex}.info-banner strong{font-size:13px;font-weight:700}.info-banner span{color:#5f4d32;font-size:13px;line-height:1.5}.error-actions{flex-wrap:wrap;gap:10px;margin-top:10px;display:flex}.spinner{border:2.5px solid var(--line);border-top-color:var(--ink);border-radius:50%;width:36px;height:36px;margin:0 auto 20px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.review-section{width:min(960px,100% - 40px);margin:0 auto;padding:36px 0 80px}.review-header{justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.review-header h1{max-width:640px;font-size:clamp(32px,5.5vw,48px);line-height:1.05}.review-header p{max-width:640px;color:var(--ink-muted);margin:10px 0 0;font-size:16px;line-height:1.6}.file-summary{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--line);box-shadow:var(--shadow-soft);flex-direction:column;gap:1px;margin:32px 0 20px;display:flex;overflow:hidden}.summary-primary,.summary-meta{background:var(--surface);grid-template-columns:repeat(3,1fr);display:grid}.summary-meta{background:var(--surface-muted)}.file-summary>div>div{border-right:1px solid var(--line);padding:16px 18px}.file-summary>div>div:last-child{border-right:0}.summary-label{color:var(--ink-subtle);letter-spacing:.1em;text-transform:uppercase;font-size:10px;font-weight:700;display:block}.file-summary strong{text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-size:14px;font-weight:700;display:block;overflow:hidden}.issue-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.issue-grid-single{grid-template-columns:1fr}.issue-panel{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-soft);transition:border-color var(--transition);padding:22px}.issue-panel.safe{background:var(--safe-bg);border-color:var(--safe-line)}.issue-panel.review{background:var(--review-bg);border-color:var(--review-line)}.issue-panel-label{letter-spacing:.08em;text-transform:uppercase;border-radius:999px;margin-bottom:6px;padding:3px 8px;font-size:10px;font-weight:800;display:inline-block}.issue-panel.safe .issue-panel-label{color:var(--safe);background:#dceee2}.issue-panel.review .issue-panel-label{color:var(--review);background:#f0e8da}.issue-panel-heading{border-bottom:1px solid #0000000f;justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:16px;display:flex}.issue-panel-heading h2{letter-spacing:-.025em;margin:0;font-size:18px;font-weight:700;line-height:1.25}.issue-panel-heading p{max-width:100%;color:var(--ink-subtle);margin:6px 0 0;font-size:13px;line-height:1.5}.issue-count{white-space:nowrap;border-radius:999px;flex:none;place-items:center;min-width:32px;height:32px;padding:0 10px;font-size:11px;font-weight:800;display:grid}.issue-count-safe{color:var(--safe);background:#dceee2}.issue-count-review{color:var(--review);background:#f0e8da}.issue-list{margin-top:2px}.issue-item{border-bottom:1px solid #0000000d;gap:12px;padding:14px 0;display:flex}.issue-item:last-child{border-bottom:0;padding-bottom:0}.issue-icon{border-radius:50%;flex:none;place-items:center;width:24px;height:24px;font-size:11px;font-weight:900;display:grid}.issue-icon-safe{color:var(--safe);background:#dceee2}.issue-icon-review{color:var(--review);background:#f0e8da}.issue-item strong,.issue-item span{display:block}.issue-item strong{font-size:13px;font-weight:700}.issue-item span{color:var(--ink-muted);margin-top:3px;font-size:13px;line-height:1.5}.what-will-change{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-soft);margin-top:16px;padding:20px 22px}.what-will-change-header{margin-bottom:4px}.what-will-change h2{letter-spacing:-.02em;margin:0;font-size:16px;font-weight:700}.what-will-change-lead{color:var(--ink-muted);margin:6px 0 0;font-size:13px;font-weight:500;line-height:1.5}.what-will-change ul{margin:12px 0 0;padding:0;list-style:none}.what-will-change li{color:#444;padding-left:20px;font-size:14px;line-height:1.65;position:relative}.what-will-change li:before{content:"✓";color:var(--safe);font-size:12px;font-weight:800;position:absolute;left:0}.what-will-change>p:last-child{color:var(--ink-subtle);margin:12px 0 0;font-size:13px}.checkout-card{border-radius:var(--radius-lg);background:var(--ink);color:#fff;justify-content:space-between;align-items:center;gap:28px;margin-top:16px;padding:24px 26px;display:flex}.checkout-card-muted{background:#2a2a2a}.checkout-card .eyebrow{color:#aaa}.checkout-card h2{letter-spacing:-.03em;margin:6px 0;font-size:22px;font-weight:700;line-height:1.2}.checkout-card p{color:#aaa;max-width:480px;margin:0;font-size:14px;line-height:1.5}.checkout-action{text-align:right;flex:none;min-width:260px}.checkout-promise{color:#ccc;margin:0 0 12px;font-size:12px;font-weight:500;line-height:1.45}.price{margin-bottom:12px}.price strong{letter-spacing:-.02em;font-size:26px;font-weight:800}.price span{color:#999;margin-left:8px;font-size:12px;font-weight:500}.checkout-action small{color:#888;margin-top:8px;font-size:11px;display:block}.checkout-action .primary-button{width:100%;color:var(--ink);background:#fff}.checkout-action .primary-button:hover:not(:disabled){background:#f0f0f0}.status-section{text-align:center;width:min(560px,100% - 40px);margin:0 auto;padding:80px 0 100px}.status-panel-inner{border:1px solid var(--line);border-radius:var(--radius-xl);background:var(--surface);box-shadow:var(--shadow-card);padding:40px 32px}.status-section h1{letter-spacing:-.04em;margin:0;font-size:clamp(28px,5vw,36px);line-height:1.1}.status-section p{color:var(--ink-muted);margin:10px 0 0;font-size:15px;line-height:1.55}.status-note{max-width:420px;color:var(--ink-subtle);margin:14px auto 0;font-size:14px;line-height:1.55}.success-panel .success-icon{background:var(--safe-bg);border:1px solid var(--safe-line);width:48px;height:48px;color:var(--safe);border-radius:50%;place-items:center;margin:0 auto 18px;font-size:22px;font-weight:900;display:grid}.success-filename{border-radius:var(--radius-sm);background:var(--surface-muted);border:1px solid var(--line);color:var(--ink);word-break:break-all;margin:14px 0 4px;padding:8px 14px;font-size:14px;font-weight:700;display:inline-block}.success-panel .primary-button{margin-top:22px}.status-error{text-align:left;max-width:none;color:var(--danger);background:0 0;border:0;margin:0;padding:0}.status-panel .status-error .status-note{text-align:left;color:var(--ink-muted);margin:10px 0 0}footer{border-top:1px solid var(--line);width:min(960px,100% - 40px);color:var(--ink-subtle);justify-content:space-between;gap:20px;margin:auto;padding:24px 0 32px;font-size:12px;line-height:1.5;display:flex}@media (width<=900px){.process-steps{grid-template-columns:1fr}.trust-row{justify-content:flex-start}.trust-row>li{flex:calc(50% - 8px);max-width:none}}@media (width<=768px){.topbar-note{display:none}.hero-section{padding-top:20px;padding-bottom:64px}.hero-copy{font-size:16px}.summary-primary,.summary-meta,.issue-grid{grid-template-columns:1fr}.file-summary>div>div{border-right:0;border-bottom:1px solid var(--line)}.file-summary>div>div:last-child{border-bottom:0}.review-header,.checkout-card{flex-direction:column;align-items:stretch}.checkout-action{text-align:left;width:100%;min-width:0}.checkout-promise{text-align:left}footer{flex-direction:column}.status-section{padding:48px 0 72px}.status-panel-inner{padding:32px 22px}}@media (width<=430px){.topbar,.hero-section,.review-section,.status-section,footer{width:min(100% - 28px,960px)}h1{font-size:36px}.drop-zone{padding:32px 18px}.trust-row>li{flex:100%}.primary-button,.checkout-action .primary-button,.error-actions .primary-button,.error-actions .secondary-button{width:100%}.review-header h1{font-size:30px}.checkout-card{padding:20px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
