@import "https://fonts.googleapis.com/css2?family=Poppins:wght@500;600;700;800&family=Inter:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500;600&display=swap";:root{--ink:#1c2530;--ink-soft:#667085;--ink-faint:#98a2b3;--paper:#fff;--panel:#fef4f3;--line:#eef0f3;--line-strong:#e2e5eb;--accent:#ef4444;--accent-dark:#dc2626;--accent-soft:#fef2f2;--accent-line:#fecaca;--error:#dc2626;--error-soft:#fef2f2;--error-line:#fca5a5;--warn:#d97706;--warn-soft:#fffbeb;--warn-line:#fcd34d;--success:#16a34a;--success-soft:#f0fdf4;--success-line:#86efac;--font-display:"Poppins", system-ui, sans-serif;--font-body:"Inter", system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body{background:var(--paper);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0}.page{background:var(--paper);min-height:100vh}.site-header{border-bottom:1px solid var(--line);background:var(--paper)}.site-header-inner{justify-content:space-between;align-items:center;gap:16px;max-width:960px;margin:0 auto;padding:16px 24px;display:flex}.brand{color:var(--ink);align-items:center;gap:9px;text-decoration:none;display:flex}.brand-mark{font-family:var(--font-mono);color:#fff;background:var(--accent);border-radius:8px;padding:4px 7px;font-size:11px;font-weight:700}.brand-name{font-family:var(--font-display);font-size:16px;font-weight:700}.site-nav-center{align-items:center;gap:26px;font-size:13.5px;font-weight:500;display:flex}.site-nav-center a{color:var(--ink-soft);text-decoration:none}.site-nav-center a:hover{color:var(--ink)}.nav-cta{font-family:var(--font-body);color:#fff;background:var(--accent);white-space:nowrap;border-radius:999px;padding:9px 18px;font-size:13.5px;font-weight:600;text-decoration:none}.nav-cta:hover{background:var(--accent-dark)}.hero-band{background:var(--paper)}.hero-inner{text-align:center;max-width:720px;margin:0 auto;padding:56px 24px 8px}.eyebrow{font-family:var(--font-body);letter-spacing:.06em;text-transform:uppercase;color:var(--accent);background:var(--accent-soft);border-radius:999px;align-items:center;gap:8px;margin:0 0 16px;padding:6px 14px;font-size:12.5px;font-weight:700;display:inline-flex}.title{font-family:var(--font-display);letter-spacing:-.01em;max-width:15ch;color:var(--ink);margin:0 auto;font-size:40px;font-weight:800;line-height:1.15}.subtitle{color:var(--ink-soft);max-width:46ch;margin:16px auto 0;font-size:16.5px;line-height:1.6}.shell{max-width:720px;margin:0 auto;padding:32px 24px 80px}.ledger-divider{display:none}.step-heading{font-family:var(--font-display);color:var(--ink);text-align:center;margin:0 0 14px;font-size:16px;font-weight:600}.template-link-inline{font-family:var(--font-body);color:var(--accent);font-size:14px;font-weight:600;text-decoration:none}.template-link-inline:hover{text-decoration:underline}.upload-zone{border:2px dashed var(--accent-line);text-align:center;cursor:pointer;background:var(--panel);border-radius:20px;padding:60px 24px;transition:border-color .15s,background .15s,transform .1s;position:relative}.upload-zone:before{content:"⇧";background:var(--accent);color:#fff;border-radius:50%;width:56px;height:56px;margin:0 auto 18px;font-size:24px;font-weight:700;line-height:56px;display:block}.upload-zone:hover{border-color:var(--accent);background:#fee9e7;transform:translateY(-2px)}.upload-zone.drag-over{border-color:var(--accent);background:#fee9e7}.upload-zone:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.upload-title{color:var(--ink);margin:0;font-size:16.5px;font-weight:700}.upload-hint{color:var(--ink-soft);font-size:13px;font-family:var(--font-body);margin:8px 0 0}.file-tag{font-family:var(--font-mono);color:var(--ink-soft);text-align:center;margin-top:14px;font-size:12.5px}.banner{border:1px solid;border-radius:12px;margin-bottom:12px;padding:14px 18px;font-size:13.5px;line-height:1.5}.banner strong{font-weight:700}.banner--success{background:var(--success-soft);border-color:var(--success-line);color:var(--success)}.banner--error{background:var(--error-soft);border-color:var(--error-line);color:var(--error)}.banner--warn{background:var(--warn-soft);border-color:var(--warn-line);color:var(--warn)}.ledger-table-wrap{margin-top:18px}.ledger-table-title{font-family:var(--font-body);letter-spacing:.03em;text-transform:uppercase;margin:0 0 8px;font-size:12px;font-weight:700}.ledger-table-title--error{color:var(--error)}.ledger-table-title--warn{color:var(--warn)}.ledger-table{border-collapse:collapse;border:1px solid var(--line);border-radius:14px;width:100%;font-size:13px;overflow:hidden}.ledger-table thead th{text-align:left;font-family:var(--font-body);letter-spacing:.03em;text-transform:uppercase;color:var(--ink-soft);border-bottom:1px solid var(--line);background:#fafafb;padding:10px 14px;font-size:11px;font-weight:700}.ledger-table td{border-bottom:1px solid var(--line);vertical-align:top;padding:10px 14px}.ledger-table tr:last-child td{border-bottom:none}.ledger-table .row-num{font-family:var(--font-mono);color:var(--ink-faint);width:44px}.ledger-table .col-name{font-family:var(--font-mono);color:var(--ink);white-space:nowrap;font-size:12.5px}.ledger-table .issue{color:var(--ink-soft)}.actions{text-align:center;margin-top:24px}.btn-download{appearance:none;font-family:var(--font-display);cursor:pointer;background:var(--accent);color:#fff;border:none;border-radius:999px;padding:16px 40px;font-size:15px;font-weight:700;transition:background .15s,transform 50ms;box-shadow:0 8px 20px -6px #ef444480}.btn-download:hover:not(:disabled){background:var(--accent-dark)}.btn-download:active:not(:disabled){transform:translateY(1px)}.btn-download:disabled{background:var(--line-strong);color:var(--ink-faint);cursor:not-allowed;box-shadow:none}.btn-download:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.section-title{font-family:var(--font-display);color:var(--ink);text-align:center;margin:0 0 8px;font-size:24px;font-weight:700}.section-lead{color:var(--ink-soft);text-align:center;margin:0 0 28px;font-size:14.5px;line-height:1.5}.manual-steps{border-top:1px solid var(--line);margin-top:72px;padding-top:48px}.steps-grid{grid-template-columns:repeat(2,1fr);gap:14px;margin:0;padding:0;list-style:none;display:grid}.step-card{border:1px solid var(--line);background:#fafafb;border-radius:16px;padding:20px}.step-index{font-family:var(--font-display);color:#fff;background:var(--accent);border-radius:999px;justify-content:center;align-items:center;width:26px;height:26px;margin-bottom:12px;font-size:13px;font-weight:700;display:inline-flex}.step-label{color:var(--ink);font-size:14.5px;font-weight:700;display:block}.step-text{color:var(--ink-soft);margin-top:4px;font-size:13.5px;line-height:1.5;display:block}.faq-section{border-top:1px solid var(--line);margin-top:64px;padding-top:48px}.faq-item{border:1px solid var(--line);border-radius:14px;margin-bottom:10px;overflow:hidden}.faq-question{text-align:left;width:100%;font-family:var(--font-body);color:var(--ink);cursor:pointer;background:#fafafb;border:none;justify-content:space-between;align-items:center;gap:16px;padding:16px 18px;font-size:14.5px;font-weight:600;display:flex}.faq-question:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.faq-icon{font-family:var(--font-body);color:var(--accent);background:var(--accent-soft);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:16px;font-weight:700;display:flex}.faq-answer{color:var(--ink-soft);background:#fafafb;margin:0;padding:0 18px 16px;font-size:13.5px;line-height:1.65}.site-footer{border-top:1px solid var(--line);font-family:var(--font-body);color:var(--ink-faint);flex-wrap:wrap;justify-content:space-between;gap:8px;margin-top:64px;padding-top:24px;font-size:12.5px;display:flex}.site-footer a{color:var(--ink-faint);text-decoration:none}.site-footer a:hover{color:var(--accent)}@media (width<=640px){.hero-inner{padding:40px 16px 8px}.title{font-size:28px}.shell{padding:24px 16px 60px}.upload-zone{padding:44px 16px}.ledger-table{font-size:12px}.steps-grid{grid-template-columns:1fr}.site-nav-center{display:none}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}
