/* OrbisVendor free tools. Every colour is a token from the site's :root (lifted into each page by
   review/tools/build-tools.py), so the tools cannot drift from the site's palette. */
.tool-hero{padding:72px 0 8px}
.tool-hero .lede{max-width:62ch}
.tool-hero .crumbs{font:500 13px/1 var(--font-body);color:var(--slate-2);margin-bottom:14px}
.tool-hero .crumbs a{color:var(--slate-2)}
.pledge{display:inline-flex;align-items:center;gap:8px;margin-top:18px;padding:7px 12px;border-radius:var(--r-pill);
  background:var(--color-accent-100);color:var(--color-accent-700);font:500 13px/1.3 var(--font-body)}
.pledge i{width:7px;height:7px;border-radius:50%;background:var(--color-accent-500);flex:none}

/* ---------- hub ---------- */
.tool-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:36px}
.tool-card{display:flex;flex-direction:column;gap:8px;padding:26px;border:1px solid var(--line);border-radius:var(--r-md);
  background:var(--white);text-decoration:none;color:inherit;transition:border-color .2s,transform .2s}
.tool-card:hover{border-color:var(--line-strong-hover);transform:translateY(-2px)}
.tool-card .k{font:500 11px/1 var(--font-mono);letter-spacing:.12em;color:var(--slate-2)}
.tool-card h3{font-size:24px;color:var(--ink)}
.tool-card p{font-size:15px;line-height:1.55}
.tool-card .go{margin-top:auto;padding-top:10px;font:500 14px/1 var(--font-body);color:var(--color-accent-700)}

/* ---------- editor shell ---------- */
.ed{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:28px;align-items:start;margin-top:30px}
.side{display:grid;gap:16px}
/* the panel beside the document is often taller than the document, so the whole column cannot stick. Pin the actions. */
.side>.panel:first-child{position:sticky;top:82px;z-index:3;box-shadow:0 14px 30px -22px var(--hair)}
.panel{border:1px solid var(--line);border-radius:var(--r-md);background:var(--white);padding:18px}
.panel h4{margin:0 0 12px;font:500 11px/1 var(--font-mono);letter-spacing:.12em;color:var(--slate-2)}
.panel .row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;font-size:14px}
.panel .row:first-of-type{margin-top:0}
.panel label{font-size:13.5px;color:var(--body)}
.panel select,.panel input[type=text],.panel input[type=number]{height:34px;padding:0 10px;border:1px solid var(--field-line);
  border-radius:var(--r-sm);background:var(--white);font:400 14px/1 var(--font-body);color:var(--ink);max-width:150px}
.panel input[type=number]{width:84px;text-align:right}
.btnrow{display:grid;gap:8px}
.btnrow .btn{width:100%;justify-content:center;min-width:0;white-space:normal;text-align:center}
.btn-line{background:var(--white);border:1px solid var(--line-strong);color:var(--ink)}
.btn-line:hover{border-color:var(--line-strong-hover)}
.swatches{display:flex;gap:8px}
.swatches button{width:24px;height:24px;border-radius:50%;border:2px solid var(--white);box-shadow:0 0 0 1px var(--line-strong);cursor:pointer;padding:0;background:var(--sw)}
.swatches button[aria-pressed=true]{box-shadow:0 0 0 2px var(--ink)}
.saved{display:grid;gap:6px;max-height:220px;overflow:auto;margin-top:6px}
.saved button{display:flex;justify-content:space-between;gap:8px;width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:var(--r-sm);
  background:var(--white);font:400 13.5px/1.3 var(--font-body);color:var(--body);cursor:pointer;text-align:left}
.saved button[aria-current=true]{border-color:var(--color-accent-400);background:var(--color-accent-100);color:var(--color-accent-700)}
.saved button span:last-child{color:var(--slate-2);font-variant-numeric:tabular-nums;white-space:nowrap}
.status{font:500 12px/1.4 var(--font-body);color:var(--slate-2);min-height:17px;margin-top:8px}
.hint{margin-top:12px;font-size:12.5px;line-height:1.45;color:var(--slate-2)}
.inl2{display:inline-flex;align-items:center;gap:8px}
.panel input[type=color]{width:38px;height:34px;padding:2px;border:1px solid var(--field-line);border-radius:var(--r-sm);background:var(--white);cursor:pointer}
.status.bad{color:var(--error-ink)}

/* private margin readout: never printed */
.margin-box{border:1px dashed var(--line-strong);border-radius:var(--r-sm);padding:12px;margin-top:12px;font-size:13.5px;line-height:1.5}
.margin-box b{font:400 28px/1 var(--font-display);color:var(--ink);display:block;margin-bottom:4px}
.margin-box.warn{background:var(--warn-bg);border-style:solid;border-color:var(--warn-bg)}
.margin-box.ok{background:var(--ok-bg);border-style:solid;border-color:var(--ok-bg)}

/* ---------- the document ---------- */
.sheet{--doc:var(--ink);background:var(--white);border:1px solid var(--line);border-radius:var(--r-md);padding:44px 44px 30px;
  box-shadow:0 30px 60px -44px var(--hair);font:400 14px/1.5 var(--font-body);color:var(--body)}
.sheet [contenteditable],.sheet input,.sheet textarea,.sheet select{font:inherit;color:var(--ink);border:1px solid transparent;border-radius:var(--r-xs);
  background:transparent;padding:3px 5px;margin:-3px -5px;outline:0;min-width:24px}
.sheet input,.sheet textarea{margin:0;width:100%;box-sizing:border-box}
.sheet textarea{resize:vertical;min-height:54px;line-height:1.5}
.sheet [contenteditable]:hover,.sheet input:hover,.sheet textarea:hover,.sheet select:hover{border-color:var(--line)}
.sheet [contenteditable]:focus,.sheet input:focus,.sheet textarea:focus,.sheet select:focus{border-color:var(--color-accent-400);background:var(--white)}
.sheet [contenteditable]:empty::before{content:attr(data-ph);color:var(--slate-2)}
.sheet ::placeholder{color:var(--slate-2)}
.sheet [contenteditable]{overflow-wrap:anywhere}
.doc-top>*,.doc-mid>*,.doc-bot>*{min-width:0}
.doc-top{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:start}
.doc-title{font:400 44px/1 var(--font-display);letter-spacing:-.02em;color:var(--doc);text-align:right;text-transform:uppercase}
.logo{width:128px;height:84px;border:1px dashed var(--line-strong);border-radius:var(--r-sm);display:grid;place-items:center;cursor:pointer;
  font:500 12.5px/1.3 var(--font-body);color:var(--slate-2);text-align:center;overflow:hidden;background:var(--off);margin-bottom:14px}
.logo img{max-width:100%;max-height:100%;object-fit:contain}
.logo.has{border-color:transparent;background:transparent;justify-content:start}
.addr{display:grid;gap:1px}
.addr [contenteditable]:first-child{font-weight:600}
.doc-mid{display:grid;grid-template-columns:1fr 280px;gap:24px;margin-top:34px}
.lab{font:600 11px/1 var(--font-mono);letter-spacing:.1em;color:var(--slate-2);margin-bottom:8px}
.meta{display:grid;gap:4px}
.meta div{display:grid;grid-template-columns:118px 1fr auto;gap:8px;align-items:center}
.meta div>span:first-child,.meta div>[data-k]{font-weight:500;color:var(--ink)}
.meta .x,.lines .x,.opt-tabs .x{border:0;background:transparent;color:var(--slate-2);cursor:pointer;font-size:16px;line-height:1;padding:2px 4px;border-radius:var(--r-xs)}
.meta .x:hover,.lines .x:hover{color:var(--error-ink)}
.addlink{display:inline-block;margin-top:10px;border:0;background:transparent;padding:0;font:500 13.5px/1 var(--font-body);color:var(--color-accent-700);cursor:pointer}
.addlink:hover{text-decoration:underline}

.opt-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-top:30px;align-items:center}
.opt-tabs .tab{display:inline-flex;align-items:center;gap:4px;padding:7px 12px;border:1px solid var(--line);border-radius:var(--r-pill);background:var(--white);
  font:500 13.5px/1 var(--font-body);color:var(--body);cursor:pointer}
.opt-tabs .tab[aria-selected=true]{background:var(--doc);border-color:var(--doc);color:var(--doc-on,var(--white))}
.opt-tabs .tab[aria-selected=true] .x{color:var(--doc-on,var(--white))}
.opt-name{margin-top:14px;font:400 22px/1.2 var(--font-display);color:var(--ink)}

.lines{width:100%;border-collapse:collapse;margin-top:14px;table-layout:fixed}
.lines th{background:var(--doc);color:var(--doc-on,var(--white));font:600 11px/1 var(--font-mono);letter-spacing:.08em;text-align:right;padding:11px 8px}
.lines th:first-child{text-align:left;border-radius:var(--r-xs) 0 0 var(--r-xs);padding-left:12px}
.lines th:last-child{border-radius:0 var(--r-xs) var(--r-xs) 0}
.lines td{padding:8px 4px;border-bottom:1px solid var(--line);vertical-align:top;text-align:right}
.lines td:first-child{text-align:left;padding-left:6px}
.lines input{text-align:right;font-variant-numeric:tabular-nums}
.lines td:first-child input{text-align:left}
.lines .sku{font-size:12.5px;color:var(--slate-2)}
.lines .amt{padding-top:12px;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.lines .c-cost{background:var(--off)}
.lines th.c-cost{background:var(--slate-2)}
.lines .mg{display:block;font:500 11.5px/1.2 var(--font-body);color:var(--slate-2);padding-right:6px}
.lines .mg.low{color:var(--error-ink)}
.no-cost .c-cost{display:none}

.doc-bot{display:grid;grid-template-columns:1fr 300px;gap:30px;margin-top:18px;align-items:start}
.sums{display:grid;gap:2px;font-variant-numeric:tabular-nums}
.sums div{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:6px 8px}
.sums div span:last-child,.sums div b{color:var(--ink);white-space:nowrap}
.sums input{width:64px;text-align:right}
.sums .inl{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.sums div>span:first-child{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px}
.sums .grand{margin-top:6px;background:var(--off);border-radius:var(--r-xs);padding:12px 8px;font-weight:600;color:var(--ink);font-size:16px}
.sums .due{color:var(--doc);font-weight:600}
.sign{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:40px}
.sign div{border-top:1px solid var(--line-strong);padding-top:8px;font-size:12.5px;color:var(--slate-2)}
.made{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:36px;padding-top:16px;border-top:1px solid var(--line);
  font:400 12.5px/1 var(--font-body);color:var(--slate-2)}
.made svg{width:14px;height:14px}
.made circle{fill:none;stroke:var(--slate-2);stroke-width:2.5;stroke-dasharray:44.84 7}
.made a{color:var(--slate);text-decoration:none;font-weight:500}
.made em{font-style:normal;color:var(--color-accent-600)}
.print-only .lines td{padding:10px 8px}.print-only .lines td:first-child{padding-left:12px}
.chosen-note{margin-top:10px;font-size:13px;color:var(--slate-2)}

/* ---------- calculators ---------- */
.calc{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;margin-top:30px;align-items:start}
.calc .panel{padding:26px}
.modes{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:22px}
.modes button{padding:8px 14px;border:1px solid var(--line);border-radius:var(--r-pill);background:var(--white);font:500 13.5px/1 var(--font-body);color:var(--body);cursor:pointer}
.modes button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--white)}
.fld{display:grid;gap:6px;margin-bottom:16px}
.fld[hidden]{display:none}
.fld label{font:500 13.5px/1.3 var(--font-body);color:var(--ink)}
.fld small{font-size:12.5px;color:var(--slate-2);line-height:1.45}
.fld .in{display:flex;align-items:center;border:1px solid var(--field-line);border-radius:var(--r-sm);background:var(--white);overflow:hidden}
.fld .in:focus-within{border-color:var(--color-accent-400)}
.fld .in span{padding:0 12px;color:var(--slate-2);font-size:14px;background:var(--off);align-self:stretch;display:grid;place-items:center}
.fld input{flex:1;min-width:0;height:44px;border:0;outline:0;padding:0 12px;font:400 16px/1 var(--font-body);color:var(--ink);background:transparent;font-variant-numeric:tabular-nums}
.out{background:var(--off);border-color:var(--off)}
.out .big{font:400 56px/1 var(--font-display);letter-spacing:-.02em;color:var(--ink)}
.out .big small{font:400 18px/1 var(--font-body);color:var(--slate-2);margin-left:6px}
.out .k{font:500 11px/1 var(--font-mono);letter-spacing:.12em;color:var(--slate-2);margin-bottom:10px}
.out dl{margin:22px 0 0;border-top:1px solid var(--line)}
.out dl div{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid var(--line);font-size:14.5px}
.out dd{margin:0;color:var(--ink);font-weight:500;font-variant-numeric:tabular-nums;text-align:right}
.out .say{margin-top:18px;font-size:15px;line-height:1.6}
.out .say.warn{padding:12px 14px;border-radius:var(--r-sm);background:var(--warn-bg);color:var(--ink)}
.bar{position:relative;height:12px;border-radius:var(--r-xs);background:var(--chip-bg);margin-top:20px}
.bar i{position:absolute;left:0;top:0;bottom:0;border-radius:var(--r-xs);background:var(--color-accent-300);width:var(--w,0%);transition:width .3s}
.bar i.low{background:var(--warn-bg)}
.bar u{position:absolute;top:-5px;bottom:-5px;width:2px;background:var(--slate);left:var(--at,0%)}

/* ---------- small editable tables inside calculators ---------- */
.lc-lines,.lc-table{display:grid;gap:6px;margin-top:6px}
.lc-table{margin-top:22px}
.lc-row{display:grid;grid-template-columns:minmax(0,2.2fr) repeat(4,minmax(0,1fr)) 24px;gap:6px;align-items:center;font-size:14px}
.lc-row.lc-t{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) 24px}
.lc-row.lc-res{grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,1fr));padding:9px 0;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}
.lc-row.lc-sku{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);padding:8px 0;border-bottom:1px solid var(--line)}
.lc-row.lc-res>*:not(:first-child){text-align:right}
.lc-row.lc-res b,.lc-row.lc-sku b{color:var(--ink);font-weight:600}
.lc-row.lc-sku b{font-family:var(--font-mono);font-size:13.5px;letter-spacing:.02em;overflow-wrap:anywhere}
.lc-row.lc-low{background:var(--warn-bg);margin:0 -8px;padding-left:8px;padding-right:8px;border-radius:var(--r-xs)}
.lc-head{font:500 10.5px/1.2 var(--font-mono);letter-spacing:.08em;color:var(--slate-2);text-transform:uppercase}
.lc-row input{height:38px;min-width:0;padding:0 8px;border:1px solid var(--field-line);border-radius:var(--r-sm);font:400 14px/1 var(--font-body);color:var(--ink);background:var(--white);font-variant-numeric:tabular-nums}
.lc-row input:focus{outline:0;border-color:var(--color-accent-400)}
.lc-row .x{border:0;background:transparent;color:var(--slate-2);cursor:pointer;font-size:18px;padding:0}
.sku-list{max-height:420px;overflow:auto}
.calc [hidden]{display:none!important}
@media(max-width:700px){.lc-row{grid-template-columns:minmax(0,1.6fr) repeat(4,minmax(0,1fr)) 20px;font-size:13px}.lc-row input{padding:0 5px;font-size:13px}}

/* ---------- barcode sheet ---------- */
.bc-sheet{display:grid;grid-template-columns:repeat(var(--cols,3),minmax(0,1fr));gap:14px;margin-top:22px;max-height:460px;overflow:auto}
.bc{background:var(--white);border:1px solid var(--line);border-radius:var(--r-xs);padding:8px;display:grid;place-items:center}
.bc svg{width:100%;height:auto;display:block}

/* ---------- explainer ---------- */
.explain{max-width:760px}
.explain h2{margin-top:56px}
.explain h3{margin-top:30px;font-size:22px;color:var(--ink)}
.explain p,.explain li{font-size:16px;line-height:1.7;margin-top:12px}
.explain ul,.explain ol{padding-left:20px;margin:6px 0 0}
.explain .formula{margin-top:14px;padding:14px 16px;border-radius:var(--r-sm);background:var(--off);font:400 14.5px/1.6 var(--font-mono);color:var(--ink);overflow-x:auto}
.alone{margin-top:56px;padding:14px 16px;border-left:3px solid var(--color-accent-400);background:var(--color-accent-100);border-radius:0 var(--r-sm) var(--r-sm) 0;font-size:15px!important;color:var(--ink)}
.alone + .next{margin-top:16px}
.next{margin-top:56px;padding:28px;border-radius:var(--r-md);background:var(--off);display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center}
.next h3{margin:0;font-size:24px;color:var(--ink)}
.next p{margin-top:8px;font-size:15px}

@media(max-width:980px){.ed{grid-template-columns:minmax(0,1fr)}.side>.panel:first-child{position:static;box-shadow:none}.side{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.calc{grid-template-columns:minmax(0,1fr)}}
@media(max-width:700px){
  .out .btnrow{grid-template-columns:minmax(0,1fr)!important}
  .tool-grid{grid-template-columns:minmax(0,1fr)}.side{grid-template-columns:minmax(0,1fr)}
  .sheet{padding:22px 16px 18px}.doc-top,.doc-mid,.doc-bot{grid-template-columns:minmax(0,1fr)}.sign{gap:16px}.doc-title{text-align:left;font-size:34px;order:-1}
  .lines-wrap{overflow-x:auto;margin:0 -16px;padding:0 16px}.lines{min-width:640px}
  .next{grid-template-columns:1fr}.out .big{font-size:44px}
}

/* ---------- the finished look: shared by print and by preview, so preview cannot lie ---------- */
.clean .addlink,.clean .x,.clean .no-print,.clean .c-cost,.clean .opt-tabs{display:none!important}
.clean [contenteditable],.clean input,.clean textarea,.clean select{border-color:transparent!important;-webkit-appearance:none;appearance:none;pointer-events:none}
.clean [contenteditable]:empty,.clean .empty-print{display:none!important}
.clean ::placeholder{color:transparent}
.clean .logo:not(.has){display:none}
.clean .logo{pointer-events:none}
.clean .opt-name{margin-top:26px}
.clean textarea{resize:none;field-sizing:content;min-height:0}
.clean .sums input{field-sizing:content;width:auto!important;padding:0;margin:0}
.clean .opt-block{margin-top:26px}
.clean input[type=date]{display:none}

/* ---------- preview ---------- */
.ov-preview body>nav,.ov-preview body>footer,.ov-preview main>*:not(.printable),.ov-preview .side{display:none!important}
.ov-preview body{background:var(--off2)}
.ov-preview .printable{padding:84px 0 60px!important}
.ov-preview .ed{display:block;margin:0 auto;max-width:820px}
.ov-preview .sheet{border-radius:2px;box-shadow:0 30px 80px -40px var(--hair);padding:56px 56px 40px}
.pvbar{position:fixed;left:0;right:0;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
  padding:12px 20px;background:var(--white);border-bottom:1px solid var(--line);font:500 13.5px/1.3 var(--font-body);color:var(--body)}

/* ---------- print: the document, and only the document ---------- */
@media print{
  @page{margin:14mm}
  main:has(.printable-sheet) .tool-hero>.wrap>*:not(.calc),main:has(.printable-sheet) .calc>.panel:first-child,main:has(.printable-sheet) .out>*:not(.printable-sheet){display:none!important}
  main:has(.printable-sheet)>.tool-hero{display:block!important;padding:0}.calc{display:block;margin:0}.out{background:var(--white)!important;border:0!important;padding:0!important}
  .bc-sheet{max-height:none;overflow:visible;gap:6mm;margin:0}.bc{border:0;break-inside:avoid;padding:2mm}
  body>*:not(main),main>*:not(.printable),.printable>.wrap>*:not(#docbuilder),.side,.pvbar{display:none!important}
  html,body{background:var(--white)!important}
  .band,.ov-preview .printable{padding:0!important}.wrap{max-width:none!important;padding:0!important}.ed,.ov-preview .ed{display:block;margin:0;max-width:none}
  .sheet,.ov-preview .sheet{border:0;box-shadow:none;padding:0;border-radius:0}
  .c-cost,.sheet .addlink,.sheet .x,.sheet .no-print,.opt-tabs{display:none!important}
  .lines th,.sums .grand{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .lines tr,.sums,.sign,.opt-block{break-inside:avoid}
}
