:root{--ink:#1f2933;--mut:#5f6b76;--line:#d9dee3;--bg:#f6f7f8;--acc:#2e5e7e;--ok:#1e6b34;--warn:#a43b1d}
*{box-sizing:border-box}
body{margin:0;font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink);background:var(--bg)}
.wrap{max-width:980px;margin:0 auto;padding:0 16px}
.top{background:#fff;border-bottom:1px solid var(--line);padding:16px 0}
h1{margin:0;font-size:28px}.by{font-size:14px;color:var(--mut);font-weight:400}
h2{font-size:20px;margin:0 0 8px}h3{font-size:16px;margin:0 0 4px}
.sub{margin:4px 0 8px;color:var(--mut)}
.banner{background:#fff6e0;border:1px solid #ecd9a0;padding:8px 12px;border-radius:6px;font-size:14px;margin:8px 0 0}
.card{background:#fff;border:1px solid var(--line);border-radius:8px;padding:16px;margin:16px 0}
.grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.grid.gen{grid-template-columns:3fr 1fr}
label{display:flex;flex-direction:column;font-size:14px;gap:2px}
label.check{flex-direction:row;align-items:center;gap:6px}
input,select,textarea,button,.btn{font:inherit;padding:6px 8px;border:1px solid #b7c0c8;border-radius:6px;background:#fff}
textarea{width:100%;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px}
button,.btn{background:var(--acc);color:#fff;border-color:var(--acc);cursor:pointer;text-decoration:none;display:inline-block}
button.ghost,.btn.ghost{background:#fff;color:var(--acc)}
label.btn{flex-direction:row}
button:disabled,input:disabled,select:disabled{opacity:.5;cursor:not-allowed}
.row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0}
.muted{color:var(--mut)}.small{font-size:13px}.warn{color:var(--warn)}.ok{color:var(--ok)}
.pro-tag{font-size:11px;background:#e7eef3;color:var(--acc);border-radius:10px;padding:1px 7px;margin-left:4px}
.cols{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.notes{font-size:13px;color:var(--mut);padding-left:18px}
.notes li.warn{color:#8a4b00;font-weight:600}
.foot{font-size:13px;color:var(--mut);padding-bottom:24px}
details{margin:6px 0}summary{cursor:pointer}
.map{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.src{font-size:13px;color:var(--mut);padding-left:18px}
.preview{display:flex;flex-wrap:wrap;gap:12px;background:#e9ecef;padding:12px;border-radius:6px}
.preview .pg{zoom:.42;box-shadow:0 1px 6px rgba(0,0,0,.3)}
#pickPreview table{border-collapse:collapse}
#pickPreview td,#pickPreview th{border-bottom:1px solid var(--line);padding:2px 8px;text-align:left}
#printArea{display:none}

/* ---- slips: physical sizes. No inline styles are used anywhere (CSP style-src 'self'). ---- */
.pg{background:#fff;color:#000;font:9.5pt/1.3 Arial,Helvetica,sans-serif;overflow:hidden;position:relative}
.pg-letter{width:8.5in;height:11in}
.pg-a4{width:210mm;height:297mm}
.pg-4x6{width:4in;height:6in;font-size:8pt}
.slip{height:100%;padding:.5in;display:flex;flex-direction:column;gap:.12in}
.pg-2up{display:flex;flex-direction:column}
.pg-2up .slip{height:50%;padding:.32in .5in;gap:.06in;font-size:8.5pt}
.pg-2up .slip+.slip{border-top:1px dashed #888}
.pg-4x6 .slip{padding:.16in;gap:.06in}
.sh{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.brand{display:flex;align-items:center;gap:10px;min-width:0}
.logo{max-height:.7in;max-width:2in;object-fit:contain}
.pg-2up .logo{max-height:.45in}.pg-4x6 .logo{max-height:.4in;max-width:1.2in}
.shop{font-weight:700;font-size:14pt;overflow-wrap:anywhere}
.pg-4x6 .shop{font-size:10pt}.pg-2up .shop{font-size:12pt}
.meta{text-align:right;font-size:9pt;flex:none}
.ttl{font-weight:700;font-size:13pt}.pg-4x6 .ttl{font-size:10pt}.pg-2up .ttl{font-size:11pt}
.oid{font-weight:700}
.cont{font-style:italic}
.addrs{display:flex;gap:.3in;justify-content:space-between}
.to{flex:2;min-width:0;overflow-wrap:anywhere}.from{flex:1;min-width:0;font-size:8.5pt;overflow-wrap:anywhere}
.lbl{font-size:7.5pt;text-transform:uppercase;letter-spacing:.06em;color:#444}
.nm{font-weight:700;font-size:11.5pt}.pg-4x6 .nm{font-size:10pt}
.pg-4x6 .addrs{flex-direction:column;gap:.05in}
.items{width:100%;border-collapse:collapse;table-layout:fixed}
.items th{font-size:8pt;text-align:left;border-bottom:1.5px solid #000;padding:2px 4px;text-transform:uppercase}
.items td{border-bottom:.5px solid #999;padding:3px 4px;vertical-align:top;height:.36in}
.pg-4x6 .items td{height:.3in;padding:2px 3px}
.pg-2up .items td{height:.32in}
.items .q{width:.5in;text-align:center;font-weight:700}
.items .s{width:1.4in}.pg-4x6 .items .s{width:.9in}
.items .o{width:1.5in}
.cl{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.var{color:#333;font-size:.9em}
.tot{font-size:8.5pt;color:#333;text-align:right}
.bnote{font-size:8.5pt;border:.5px solid #888;padding:3px 5px;overflow-wrap:anywhere;max-height:.5in;overflow:hidden}
.thx{margin-top:auto;font-size:10.5pt;text-align:center;white-space:pre-line;overflow-wrap:anywhere;max-height:.75in;overflow:hidden}
.pg-4x6 .thx{font-size:8.5pt;max-height:.55in}
.wm{font-size:7pt;color:#666;text-align:center}
.pickt td{height:.26in}
.pickt .cl{-webkit-line-clamp:1}
@page{margin:0}
@media print{
  body{background:#fff}
  body.printing .top,body.printing main,body.printing .foot{display:none!important}
  body.printing #printArea{display:block}
  #printArea .pg{display:block;break-after:page;page-break-after:always;zoom:1;box-shadow:none}
  #printArea .pg:last-child{break-after:auto;page-break-after:auto}
  #printArea .pg-2up{display:flex}
}
