:root{--bg:#faf8f3;--card:#fff;--ink:#18261d;--ink2:#4b5b51;--ink3:#566259;--line:#e3e7df;--g4:#52a535;--g5:#3c8527;--g6:#2a641c;--amber:#f29a1f;--amber2:#8a5200;--red:#b42318}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.6 "Noto Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
.wrap{max-width:1100px;margin:0 auto;padding:24px 20px 60px}
h1{font-size:1.9rem;line-height:1.2;margin:0 0 .6em;letter-spacing:-.01em}
h2{font-size:1.35rem;margin:1.6em 0 .6em}h3{font-size:1.1rem;margin:0 0 .4em}
p{margin:.4em 0 1em}
a{color:var(--g6)}
.muted{color:var(--ink2)}.small{font-size:1rem}
.r{text-align:right}
code{background:#eef3e9;padding:.1em .4em;font-size:1rem}
.top{background:var(--g6);color:#fff}
.bar{display:flex;align-items:center;gap:20px;flex-wrap:wrap;padding-top:12px;padding-bottom:12px}
.brand{color:#fff;font-weight:800;font-size:1.2rem;text-decoration:none}.brand span{font-weight:500;opacity:.85}
.top nav{display:flex;gap:6px;flex-wrap:wrap;flex:1}
.top nav a{color:#e6f7dc;text-decoration:none;padding:.35em .8em;font-weight:600}
.top nav a.on,.top nav a:hover{background:rgba(255,255,255,.18);color:#fff}
.inline{display:inline-flex;gap:8px;align-items:center;margin:2px 0}
button.link{background:none;border:0;color:#e6f7dc;font-family:inherit;font-size:1rem;cursor:pointer;text-decoration:underline}
.card>h2:first-child,.card>h1:first-child{margin-top:0}
.card{background:var(--card);border:2px solid var(--line);padding:18px 20px;margin:0 0 18px}
.card.narrow{max-width:420px;margin:60px auto}
.stack label{display:block;font-weight:700;margin:.9em 0 .3em}
input,select,textarea{width:100%;font:inherit;color:var(--ink);background:#fff;border:2px solid var(--line);padding:.6em .7em;border-radius:0}
input.wide{width:min(560px,100%)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--g4);box-shadow:0 0 0 3px rgba(82,165,53,.2)}
.card label{display:block;font-weight:700;margin:.9em 0 .3em}
fieldset.card{margin:0 0 18px}legend{font-weight:800;padding:0 .4em}
.two{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.btn,button.btn{display:inline-block;font-family:inherit;font-weight:700;font-size:1rem;line-height:1.2;background:#fff;color:var(--ink);border:2px solid var(--ink);padding:.7em 1.1em;cursor:pointer;text-decoration:none;border-radius:0}
.btn.primary{background:var(--g5);border-color:var(--g6);color:#fff}
.btn.danger{background:#fff;border-color:var(--red);color:var(--red)}
.btn:hover{filter:brightness(.96)}
.card input+.btn{margin-top:.8em}
.btn.small{padding:.3em .6em;font-size:.95rem;line-height:1}
.item-row{display:grid;grid-template-columns:2fr 1fr 1fr 1fr auto;gap:12px;align-items:end;border:2px solid var(--line);padding:14px;margin-bottom:12px;background:#fff}
.item-row .idesc{grid-column:1}
.item-line-total{align-self:center;text-align:right;font-weight:700}
.running-total{display:flex;justify-content:space-between;align-items:center;border-top:2px solid var(--ink);margin-top:16px;padding-top:12px;font-size:1.2rem}
.shipcalc{margin-top:16px;border:2px dashed var(--line);padding:12px 16px}
.shipcalc summary{cursor:pointer;font-weight:700}
.shipcalc[open] summary{margin-bottom:10px}
.dims{display:flex;gap:8px}
.dims input{width:100%}
@media(max-width:860px){.item-row{grid-template-columns:1fr 1fr;grid-template-areas:"d d" "q p" "t r"}.item-row .idesc{grid-column:1/3}}
form.utr .btn{margin-top:1em}
.scroll{overflow-x:auto;margin:0 0 18px}
table{border-collapse:collapse;width:100%}
th,td{padding:.6em .7em;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
th{background:#eef3e9;font-size:1rem;white-space:nowrap}
th.r,td.r{text-align:right}
.grid td .inline input{width:12em}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:0 0 20px}
.stats .card{display:flex;flex-direction:column;margin:0}.stats b{font-size:1.6rem}.stats span{color:var(--ink2)}
.badge{display:inline-block;padding:.15em .6em;font-weight:700;font-size:1rem;border:2px solid var(--line)}
.b-paid{background:#e4f6d8;border-color:var(--g4);color:var(--g6)}
.b-issued{background:#fff1d6;border-color:var(--amber);color:var(--amber2)}
.b-awaiting_confirmation{background:#e3ecff;border-color:#5b7bd5;color:#1f3f9a}
.b-cancelled,.b-overdue{background:#fdecea;border-color:var(--red);color:var(--red)}
.tabs{display:flex;gap:8px;flex-wrap:wrap}.tabs a{padding:.4em .9em;border:2px solid var(--line);background:#fff;text-decoration:none;font-weight:700}.tabs a.on{border-color:var(--g5);background:#e4f6d8}
.err{background:#fdecea;color:var(--red);border:2px solid var(--red);padding:.7em 1em}
.ok{background:#e4f6d8;color:var(--g6);border:2px solid var(--g4);padding:.7em 1em}
.note{background:#e3ecff;border:2px solid #5b7bd5;padding:.7em 1em}
.trail{padding-left:1.2em}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
/* invoice */
.invoice{background:#fff;border:2px solid var(--ink);padding:28px;margin:0 0 20px}
.invoice.void{opacity:.75}
.ihead{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.inv-logo{display:block;height:32px;width:auto;margin-bottom:10px}
.cols{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:12px 0}
.grid.small th,.grid.small td{font-size:1rem}
.totals{width:min(360px,100%);margin-left:auto}.totals td{border:0;padding:.3em .5em}.totals .grand td{font-weight:800;font-size:1.2rem;border-top:2px solid var(--ink)}
.words{font-weight:700}
.legal{color:var(--ink3);text-align:center;margin-top:24px}
.pay .payrow{display:flex;gap:24px;align-items:flex-start;flex-wrap:wrap}
.qr{width:220px;max-width:100%}.qr svg{width:100%;height:auto;display:block;border:2px solid var(--ink);background:#fff}
.paytext{flex:1;min-width:240px}
.paid{border-color:var(--g4);background:#f0fae9}
.utr{max-width:460px;margin-top:8px}
.noprint{margin:0 0 20px}
@media(max-width:860px){.two,.cols{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr}.invoice{padding:18px}}
@media print{.top,.noprint,.pay,.utr,button,footer.legal{display:none!important}body{background:#fff;font-size:14px}.invoice{border:0;padding:0}.wrap{padding:0}}

.nowrap,.grid td:first-child a{white-space:nowrap}
.items td::before{content:none}
@media(max-width:640px){
  .items thead{display:none}
  .items,.items tbody,.items tr,.items td{display:block;width:100%}
  .items tr{border-bottom:2px solid var(--line);padding:.5em 0}
  .items td{border:0;display:flex;justify-content:space-between;gap:16px;padding:.25em .2em;text-align:right}
  .items td::before{content:attr(data-label);font-weight:700;text-align:left;color:var(--ink2)}
  .items td:first-child{display:block;text-align:left;font-weight:700}
  .items td:first-child::before{content:none}
}
.btn.big{font-size:1.15rem;padding:.9em 1.4em}
.online{margin:0 0 8px}
h3.or{margin:20px 0 10px;color:var(--ink2);font-size:1rem}

.policy{max-width:860px;padding-top:32px}
.policy h1{font-size:2rem}
.policy h2{font-size:1.25rem;margin:1.8em 0 .5em}
.policy p,.policy li{font-size:1.05rem;line-height:1.7}
.policy ul{padding-left:1.3em}
ul.plain{list-style:none;padding:0}
footer.legal.wrap a,.legal a{color:var(--g6)}
