:root{
  --paper:#FAFBF8;
  --white:#FFFFFF;
  --ink:#16233A;
  --muted:#566173;
  --green:#2E6B4E;
  --green-dark:#24563E;
  --band:#E9F2EB;
  --rule:#D3DCD5;
  --red:#9E3B2E;
  --focus:#2F6FD6;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"Public Sans",system-ui,-apple-system,"Segoe UI",sans-serif;font-size:17px;line-height:1.55}
a{color:var(--green)}
a:hover{color:var(--green-dark)}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.wrap{max-width:1040px;margin:0 auto;padding:0 20px}

.hero{padding:36px 0 28px;max-width:760px}
h1{font-size:clamp(34px,5.4vw,56px);line-height:1.04;letter-spacing:-.03em;font-weight:800;margin:0 0 18px}
.lede{font-size:19px;color:var(--muted);margin:0;max-width:62ch}
.facts{display:flex;flex-wrap:wrap;gap:8px 22px;margin:18px 0 0;padding:0;list-style:none;font-size:15px;font-weight:500}
.facts li{display:flex;align-items:center;gap:7px}
.facts svg{color:var(--green);flex:none}

/* The tool: a continuous-feed ledger sheet */
.sheet{position:relative;background:var(--white);border:1px solid var(--rule);border-radius:4px;padding:28px 56px;margin:12px 0 56px;box-shadow:0 1px 0 var(--rule),0 18px 40px -28px rgba(22,35,58,.35)}
.sheet::before,.sheet::after{content:"";position:absolute;top:0;bottom:0;width:34px;
  background-image:radial-gradient(circle at 50% 50%,var(--paper) 0 5px,var(--rule) 5px 6px,transparent 6.5px);
  background-size:34px 26px;background-repeat:repeat-y;background-position:0 10px}
.sheet::before{left:0;border-right:1px dashed var(--rule)}
.sheet::after{right:0;border-left:1px dashed var(--rule)}

.drop{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:10px;min-height:230px;border:2px dashed #B9C8BD;border-radius:6px;padding:28px;cursor:pointer;background:repeating-linear-gradient(180deg,var(--white) 0 52px,var(--band) 52px 104px);transition:border-color .15s,background-color .15s}
.drop:hover,.drop.over{border-color:var(--green)}
.drop.over{background:var(--band)}
.drop strong{font-size:22px;letter-spacing:-.01em}
.drop span{color:var(--muted);font-size:15px}
.drop input{position:absolute;width:1px;height:1px;opacity:0}
.drop:focus-within{outline:3px solid var(--focus);outline-offset:3px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:600 16px/1 "Public Sans",sans-serif;border-radius:6px;padding:14px 22px;border:1px solid transparent;cursor:pointer;text-decoration:none}
.btn-primary{background:var(--green);color:var(--white)}
.btn-primary:hover{background:var(--green-dark);color:var(--white)}
.btn-primary:disabled{background:#9DB3A6;cursor:not-allowed}
.btn-quiet{background:transparent;color:var(--green);border-color:var(--rule);padding:10px 16px;font-size:15px}
.btn-quiet:hover{border-color:var(--green)}
.under-drop{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;margin-top:14px;font-size:14px;color:var(--muted)}
.linkbtn{background:none;border:0;padding:0;font:inherit;color:var(--green);text-decoration:underline;cursor:pointer}

.error{display:none;margin-top:16px;padding:12px 16px;border-left:4px solid var(--red);background:#FBEFEC;color:#6E271E;font-size:15px}
.error.show{display:block}

#workspace{margin-top:26px}
.filebar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-bottom:14px;border-bottom:1px solid var(--rule)}
.filebar b{font-weight:600;word-break:break-all}
h2{font-size:28px;line-height:1.15;letter-spacing:-.02em;margin:0 0 14px}
h3{font-size:18px;margin:0 0 8px;letter-spacing:-.01em}
.step-h{font-size:17px;font-weight:700;margin:22px 0 10px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px 18px}
label.f{display:flex;flex-direction:column;gap:5px;font-size:14px;font-weight:600}
label.f small{font-weight:400;color:var(--muted)}
select,input[type=text]{font:400 15px "Public Sans",sans-serif;color:var(--ink);background:var(--white);border:1px solid #B8C3BB;border-radius:5px;padding:9px 10px;width:100%}
.radio-row{display:flex;gap:18px;flex-wrap:wrap;font-size:15px;margin:2px 0 4px}
.radio-row label,.check{display:flex;align-items:center;gap:7px;cursor:pointer}
input[type=radio],input[type=checkbox]{accent-color:var(--green);width:17px;height:17px}
.note{font-size:14px;color:var(--muted);margin:8px 0 0}
.note.flag{color:#5B4A12;background:#FBF5DD;border-left:4px solid #C9A227;padding:9px 12px}
details.adv{margin-top:14px;font-size:15px}
details.adv summary{cursor:pointer;color:var(--green);font-weight:600}
details.adv .grid{margin-top:12px}

.summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:0;border:1px solid var(--rule);border-radius:5px;margin:22px 0 14px}
.summary div{padding:12px 14px;border-right:1px solid var(--rule)}
.summary div:last-child{border-right:0}
.summary dt{font-size:13px;color:var(--muted)}
.summary dd{margin:2px 0 0;font-size:20px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.01em}

.ledger-wrap{overflow-x:auto;border:1px solid var(--rule);border-radius:5px}
table.ledger{width:100%;border-collapse:collapse;font-size:15px;font-variant-numeric:tabular-nums}
.ledger th{text-align:left;font-size:13px;font-weight:600;color:var(--muted);padding:9px 12px;border-bottom:1px solid var(--rule);background:var(--white);white-space:nowrap}
.ledger td{padding:8px 12px;vertical-align:top}
.ledger tbody tr:nth-child(4n+3),.ledger tbody tr:nth-child(4n+4){background:var(--band)}
.ledger .num{text-align:right;white-space:nowrap}
.ledger .neg{color:var(--red)}
.ledger .date{white-space:nowrap}
.ledger .memo{display:block;color:var(--muted);font-size:13px}
.more{font-size:14px;color:var(--muted);margin:8px 0 0}

.actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:22px}
.done{font-size:15px;color:var(--green-dark);font-weight:600}

section.content{padding:8px 0 48px;border-top:1px solid var(--rule)}
section.content:first-of-type{border-top:0}
.two{display:grid;grid-template-columns:1fr 1fr;gap:36px}
ol.how{margin:0;padding-left:22px}
ol.how li{margin-bottom:8px;padding-left:4px}
.content p{max-width:68ch}
.faq details{border-bottom:1px solid var(--rule);padding:14px 0}
.faq summary{cursor:pointer;font-weight:600;font-size:17px;list-style-position:outside}
.faq p{margin:10px 0 0;color:var(--muted)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

@media (max-width:760px){
  body{font-size:16px}
  .sheet{padding:20px 16px}
  .sheet::before,.sheet::after{display:none}
  .two{grid-template-columns:1fr;gap:8px}
  .summary div{border-right:0;border-bottom:1px solid var(--rule)}
  .summary div:last-child{border-bottom:0}
  .summary dd{font-size:17px}
  table.ledger{font-size:13px}
  .ledger th,.ledger td{padding:7px 8px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}


/* Related converters */
.tools{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--rule)}
.tools li{border-bottom:1px solid var(--rule);padding:14px 18px 14px 0}
.tools a{font-weight:600;font-size:17px;text-decoration:none}
.tools a:hover{text-decoration:underline}
.tools p{margin:2px 0 0;color:var(--muted);font-size:15px}

.guide{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:4px 32px;margin:0;padding:0;list-style:none}
.guide li{padding:12px 0;border-bottom:1px solid var(--rule)}
.guide b{display:block;margin-bottom:2px}
.trouble dt{font-weight:600;margin-top:16px}
.trouble dd{margin:4px 0 0;color:var(--muted);max-width:70ch}
@media (max-width:760px){
  .tools{grid-template-columns:1fr}
}

/* PDF pages */
.status{margin-top:14px;font-size:15px;color:var(--green-dark);font-weight:600}
.pw{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin-top:16px}
.pw label{flex:1 1 240px}
.ledger-wrap.tall{max-height:480px;overflow:auto}
.ledger-wrap.tall thead th{position:sticky;top:0}


/* ---------- Header ---------- */
.skip{position:absolute;left:-9999px;top:8px;background:var(--ink);color:#fff;padding:8px 14px;border-radius:4px;z-index:100}
.skip:focus{left:12px}
.site-header{position:relative;z-index:40;background:var(--white);border-bottom:1px solid var(--rule)}
.site-header .bar{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:64px}
.brand{display:inline-flex;align-items:center;gap:10px;font-weight:800;font-size:17px;color:var(--ink);text-decoration:none;letter-spacing:-.01em}
.brand svg{flex:none}
.brand:hover{color:var(--ink)}
.primary ul{display:flex;align-items:center;gap:4px;margin:0;padding:0;list-style:none}
.primary a,.menu-btn{display:inline-flex;align-items:center;gap:6px;height:38px;padding:0 12px;border-radius:6px;font:500 15px "Public Sans",system-ui,sans-serif;color:var(--ink);text-decoration:none;background:none;border:0;cursor:pointer}
.primary a:hover,.menu-btn:hover{background:var(--band);color:var(--ink)}
.primary a[aria-current=page]{color:var(--green-dark);font-weight:600}
.menu-btn{border:1px solid var(--rule);margin-left:6px}
.menu-btn[aria-expanded=true]{background:var(--band);border-color:#B9C8BD}
.menu-btn .chev{transition:transform .15s}
.menu-btn[aria-expanded=true] .chev{transform:rotate(180deg)}
.menu{position:absolute;left:0;right:0;top:100%;background:var(--white);border-bottom:1px solid var(--rule);box-shadow:0 18px 30px -22px rgba(22,35,58,.35)}
.menu-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px 32px;padding-top:22px;padding-bottom:26px}
.menu-h,.foot-h{margin:0 0 8px;font-size:13px;font-weight:600;color:var(--muted)}
.menu ul,.site-footer ul{list-style:none;margin:0;padding:0}
.menu li a{display:block;padding:6px 0;font-size:15px;color:var(--ink);text-decoration:none}
.menu li a:hover{color:var(--green)}
.menu li a[aria-current=page]{color:var(--green-dark);font-weight:600}

/* ---------- Related converters ---------- */
.tools{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;column-gap:32px;border-top:1px solid var(--rule)}
.tools li{border-bottom:1px solid var(--rule);padding:14px 0}

/* ---------- Footer ---------- */
.site-footer{margin-top:24px;background:var(--white);border-top:1px solid var(--rule);font-size:15px}
.foot-grid{display:grid;grid-template-columns:1.5fr repeat(4,1fr);gap:28px 32px;padding:44px 0 32px}
.foot-brand p{margin:12px 0 0;color:var(--muted);font-size:14px;max-width:32ch}
.site-footer li a{display:inline-block;padding:4px 0;color:var(--ink);text-decoration:none}
.site-footer li a:hover{color:var(--green);text-decoration:underline}
.site-footer li a[aria-current=page]{color:var(--green-dark);font-weight:600}
.foot-bottom{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;border-top:1px solid var(--rule);padding:18px 0 6px;font-size:14px;color:var(--muted)}
.foot-bottom p{margin:0}
.foot-links{display:flex;gap:20px}
.foot-links a{color:var(--muted)}
.foot-tm{margin:0;padding:0 0 28px;font-size:13px;color:var(--muted)}

@media (max-width:1000px){
  .foot-grid{grid-template-columns:repeat(4,1fr)}
  .foot-brand{grid-column:1/-1}
  .menu-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:760px){
  .primary .direct{display:none}
  .menu-btn{margin-left:0}
  .menu{max-height:calc(100vh - 64px);overflow-y:auto}
  .menu-grid{grid-template-columns:1fr 1fr;gap:16px 20px}
  .foot-grid{grid-template-columns:1fr 1fr;padding-top:32px}
  .tools{grid-template-columns:1fr}
}
@media (max-width:420px){
  .brand span{font-size:16px}
}
