/* kwm-ct2.v1.css: kellywm.com/custom-tools v2 (2026-10-04).
   Linked from the BODY of /custom-tools only, right after the hero. Never from the head: seo/_build/kwm_page.py slices
   that head into about 1,000 generated pages. Brings the page's own sections onto the Masthead interior system
   (Instrument Serif display, Archivo body, JetBrains Mono for apparatus and every measured digit, radius 0, hairlines)
   and styles The Desk (#desk) and the built-to-order list (#more-we-build). Write-once: ship changes as v2.
   No rules for the hero or the nav here: this sheet arrives after the hero has painted, so touching it would shift it. */

:root {
  --ct-ink: var(--navy, #121110);
  --ct-paper: #fdfdfc;
  --ct-surface: var(--surface, #f6f5f1);
  --ct-rule: rgba(18, 17, 16, .14);
  --ct-rule-2: rgba(18, 17, 16, .26);
  --ct-line-in: rgba(18, 17, 16, .56);
  --ct-muted: var(--muted, #5d5851);
  --ct-accent: var(--green, #bb3410);
  --ct-accent-text: var(--green-dark, #9a280a);
  --ct-serif: var(--mh-serif, 'Instrument Serif', Georgia, serif);
  --ct-sans: var(--mh-sans, 'Archivo', 'Helvetica Neue', sans-serif);
  --ct-mono: var(--mh-mono, 'JetBrains Mono', 'Courier New', monospace);
}

/* anchors clear the sticky nav */
section[id], .o-dh, #sh-k, #pv-h { scroll-margin-top: 96px; }
@media (max-width: 1080px) { section[id], .o-dh, #sh-k, #pv-h { scroll-margin-top: 80px; } }

/* ===== The page's own sections, on the Masthead interior system ===== */
.section > h2 {
  font-family: var(--ct-serif); font-weight: 400; font-size: clamp(34px, 4.6vw, 50px); line-height: 1.04;
  letter-spacing: -.012em; text-wrap: balance; margin-bottom: 14px;
}
.section .lead { text-wrap: pretty; }
.section > .eyebrow { text-align: center; color: var(--ct-accent-text); }
.final-cta h2 { font-family: var(--ct-serif); font-weight: 400; font-size: clamp(32px, 4vw, 44px); line-height: 1.06; letter-spacing: -.01em; text-wrap: balance; }
.step h3, .price-card h3, .form-success h3, .kwm-depth h3 { font-family: var(--ct-sans); font-weight: 600; letter-spacing: -.01em; }
.kwm-depth h3::before { content: none; } /* decorative 01, 02 numerals off on this page (owner rule DL7) */
.kwm-depth > h2 { text-align: left; }
.proof-box, .terms-box, .step, .price-card, .form-wrap, .final-cta { border-radius: 0; box-shadow: none; }
.step-num { border-radius: 0; background: none; border: 1px solid var(--ct-rule-2); font-family: var(--ct-mono); font-weight: 600; font-size: 15px; color: var(--ct-accent-text); }
.price-card.featured { border-color: var(--ct-ink); box-shadow: none; }
.price-badge, .price-cta, .form-submit { border-radius: 0; }
.price-tier { color: var(--ct-accent-text); }
.price-amount { font-family: var(--ct-mono); font-weight: 600; font-size: 30px; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.price-disclaimer { max-width: 680px; }

/* the menu: two ruled groups */
.ct2-menu .menu-group {
  font-family: var(--ct-serif); font-weight: 400; font-size: clamp(27px, 3vw, 33px); line-height: 1.1; color: var(--ct-ink);
  margin: 46px 0 4px; text-align: left;
}
.ct2-menu .menu-sub { margin: 0 0 16px; color: var(--ct-muted); font-size: 15.5px; text-align: left; }
.ct2-menu .tool-menu { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 56px; }
.ct2-menu .tool-item { background: none; border: 0; border-top: 1px solid var(--ct-rule-2); border-radius: 0; padding: 22px 0 28px; min-width: 0; }
.ct2-menu .tool-item h4 { font-family: var(--ct-sans); font-size: 19px; font-weight: 600; letter-spacing: -.01em; line-height: 1.25; color: var(--ct-ink); }
.ct2-menu .tool-price { font-size: 12.5px; font-weight: 500; }
@media (max-width: 820px) { .ct2-menu .tool-menu { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 480px) { .ct2-menu .tool-top { flex-direction: column; gap: 4px; } }

/* built-to-order list: an editorial contents page, no icons, no hover effects */
.ct2-more { max-width: 1080px; }
.ct2-more .cat { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 44px 48px; margin-top: 8px; text-align: left; }
.ct2-more .cat-group { min-width: 0; border-top: 1px solid var(--ct-ink); padding-top: 14px; }
.ct2-more .cat-label { font-family: var(--ct-mono); font-weight: 600; font-size: 12px; letter-spacing: .16em; text-transform: uppercase; color: var(--ct-accent-text); line-height: 1.4; margin: 0 0 12px; }
.ct2-more .cat-list { list-style: none; margin: 0; padding: 0; }
.ct2-more .cat-list li { font-size: 14.5px; line-height: 1.55; color: var(--ct-muted); padding: 11px 0; border-top: 1px solid var(--ct-rule); }
.ct2-more .cat-list li:first-child { border-top: 0; padding-top: 0; }
.ct2-more .cat-list strong { font-family: var(--ct-sans); font-weight: 600; font-size: 15px; color: var(--ct-ink); }
.ct2-more .cat-more { min-width: 0; align-self: start; border: 1px solid var(--ct-ink); background: var(--ct-surface); padding: 22px 22px 24px; }
.ct2-more .cat-more .tool-top { display: flex; flex-direction: column; gap: 2px; margin-bottom: 10px; }
.ct2-more .cat-more h3 { font-family: var(--ct-sans); font-size: 19px; font-weight: 600; letter-spacing: -.01em; line-height: 1.25; color: var(--ct-ink); }
.ct2-more .cat-more p { font-size: 14.5px; line-height: 1.6; color: var(--ct-muted); margin-bottom: 12px; }
.ct2-more .cat-more ul { list-style: none; margin: 0 0 18px; padding: 0; }
.ct2-more .cat-more li { position: relative; padding-left: 26px; margin-bottom: 8px; font-size: 14px; color: var(--ct-ink); }
.ct2-more .cat-more li::before { content: ""; position: absolute; left: 0; top: 8px; width: 14px; height: 9px; border-left: 2.5px solid var(--ct-accent); border-bottom: 2.5px solid var(--ct-accent); transform: rotate(-45deg); }
.ct2-more .cat-more .hero-cta, .ct2-more .cat-more .hero-cta:hover { box-shadow: none; transform: none; }
.ct2-more .cat-toggle {
  display: flex; width: 100%; min-height: 48px; align-items: center; justify-content: space-between; gap: 12px;
  margin: 0; padding: 12px 0; background: none; border: 0; cursor: pointer; text-align: left;
  font: inherit; letter-spacing: inherit; text-transform: inherit; color: inherit;
}
.ct2-more .cat-toggle::after { content: "+"; font-family: var(--ct-mono); font-size: 20px; font-weight: 500; line-height: 1; color: var(--ct-ink); }
.ct2-more .cat-toggle[aria-expanded="true"]::after { content: "\2212"; }
.ct2-more .cat-toggle:focus-visible { outline: 2px solid var(--ct-accent); outline-offset: 2px; }
.ct2-more .cat-list[hidden] { padding: 0; margin: 0; }
@media (max-width: 979px) { .ct2-more .cat { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 639px) {
  .ct2-more .cat { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .ct2-more .cat-group { border-top: 1px solid var(--ct-rule-2); padding-top: 0; }
  .ct2-more .cat-group:first-child { border-top-color: var(--ct-ink); }
  .ct2-more .cat-label { margin: 0; }
  .ct2-more .cat-list { padding-bottom: 14px; }
  .ct2-more .cat-more { margin-top: 24px; }
}

/* built and running */
.ct2-proof .proof-box { background: var(--ct-surface); border: 1px solid var(--ct-rule); padding: 30px 32px; }
.ct2-proof .proof-box li { font-size: 15.5px; line-height: 1.6; }
@media (max-width: 480px) { .ct2-proof .proof-box { padding: 22px 18px; } }

/* questions: ruled entries instead of boxes */
.ct2-faq .faq-list { border-bottom: 1px solid var(--ct-rule); }
.ct2-faq .faq-item { border: 0 !important; border-top: 1px solid var(--ct-rule) !important; padding: 22px 0 24px; }
.ct2-faq .faq-item h3 { font-family: var(--ct-sans); font-size: 18px; font-weight: 600; letter-spacing: -.005em; line-height: 1.35; margin-bottom: 8px; }
.ct2-faq .faq-item p { font-size: 15.5px; line-height: 1.7; }

/* ===== The Desk ===== */
.ct2-desk { max-width: 1120px; }
.desk {
  margin-top: 30px; border: 1px solid var(--ct-ink); background: #fff; color: var(--ct-ink); text-align: left;
  font-family: var(--ct-sans); font-size: 15px; line-height: 1.5;
}
.desk [hidden] { display: none !important; }
/* rapid taps (Pack then Ship, the quantity steppers) must each register: no double-tap zoom inside the demo; pinch zoom stays */
.desk, .desk *, .ct2-more .cat-toggle, [data-desk-cta] { touch-action: manipulation; }
.desk .sr-only, .desk--live .desk-ph {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0;
}
.desk p { margin: 0; }
.desk-selftest { padding: 8px 20px; font-family: var(--ct-mono); font-size: 12px; background: #fff; border-bottom: 1px solid var(--ct-rule-2); }
.desk-selftest[data-selftest="fail"] { color: var(--ct-accent-text); }
.desk-bar { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 16px; padding: 12px 20px; background: var(--ct-ink); color: var(--ct-paper); }
.desk-biz { display: flex; align-items: baseline; flex-wrap: wrap; gap: 2px 12px; flex: 1 1 auto; min-width: 0; }
.desk-biz-n { font-family: var(--ct-serif); font-size: 25px; line-height: 1.1; color: var(--ct-paper); }
.desk-biz-k { font-family: var(--ct-mono); font-weight: 500; font-size: 11.5px; letter-spacing: .16em; text-transform: uppercase; color: rgba(253, 253, 252, .74); }
.desk .chip {
  display: inline-block; font-family: var(--ct-mono); font-weight: 500; font-size: 11.5px; line-height: 1; letter-spacing: .1em;
  text-transform: uppercase; padding: 5px 7px 4px; border: 1px solid currentColor; white-space: nowrap; vertical-align: middle;
}
.desk .chip-demo { background: var(--ct-accent); border-color: var(--ct-accent); color: #fff; }
.desk .chip-new { color: var(--ct-ink); }
.desk .chip-packed { color: var(--ct-ink); background: var(--ct-surface); border-color: var(--ct-rule-2); }
.desk .chip-shipped { color: var(--ct-accent-text); }
.desk .chip-billed { color: #fff; background: var(--ct-ink); border-color: var(--ct-ink); }
.desk .chip-backorder { color: var(--ct-accent-text); background: rgba(187, 52, 16, .08); border-style: dashed; }
.desk .chip-short { color: var(--ct-accent-text); border-style: dashed; }
.desk-bar .desk-reset {
  margin-left: auto; min-height: 36px; padding: 0 14px; border: 1px solid rgba(253, 253, 252, .62); background: transparent; color: var(--ct-paper);
  font-family: var(--ct-mono); font-weight: 500; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; cursor: pointer; border-radius: 0;
}
.desk-msg { padding: 9px 20px; font-family: var(--ct-mono); font-size: 12px; line-height: 1.5; color: var(--ct-muted); background: var(--ct-surface); border-bottom: 1px solid var(--ct-rule); }
.desk-tabs { display: flex; gap: 0; padding: 0 10px; background: #fff; border-bottom: 1px solid var(--ct-rule-2); }
.desk-tab {
  display: inline-flex; align-items: center; justify-content: center; min-height: 50px; margin: 0 0 -1px; padding: 12px 16px;
  background: none; border: 0; border-bottom: 2px solid transparent; border-radius: 0; cursor: pointer;
  font-family: var(--ct-sans); font-weight: 600; font-size: 15px; line-height: 1.2; color: var(--ct-muted); text-decoration: none;
}
a.desk-tab { color: var(--ct-ink); text-decoration: underline; text-underline-offset: 3px; }
.desk-tab[aria-selected="true"] { color: var(--ct-ink); border-bottom-color: var(--ct-accent); }
.desk-panel { padding: 22px 24px 26px; }
.desk-panel:focus-visible { outline: 2px solid var(--ct-accent); outline-offset: -2px; }
.desk:not(.desk--live) .desk-panel + .desk-panel { border-top: 1px solid var(--ct-rule-2); }
/* With scripting on, the two inactive screens stay out of the first layout until the script takes over (it hides
   them anyway). If the script never arrives, the served tab links still open each screen through :target.
   With JavaScript off (scripting: none) all three screens show, stacked. */
@media (scripting: enabled) {
  .desk:not(.desk--live) #desk-p-sheet, .desk:not(.desk--live) #desk-p-partners { display: none; }
  .desk:not(.desk--live) #desk-p-sheet:target, .desk:not(.desk--live) #desk-p-partners:target { display: block; }
}
.desk-ph { font-family: var(--ct-sans); font-size: 19px; font-weight: 600; line-height: 1.3; margin: 0 0 14px; }
.desk-nojs { padding: 10px 20px; font-size: 14px; background: var(--ct-surface); border-bottom: 1px solid var(--ct-rule); }

/* figures strip */
.desk-figs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid var(--ct-rule-2); margin: 0 0 18px; }
.desk .fig { display: flex; flex-direction: column; gap: 2px; padding: 12px 16px; border-left: 1px solid var(--ct-rule-2); min-width: 0; }
.desk .fig:first-child { border-left: 0; }
.desk .fig-n { font-family: var(--ct-mono); font-weight: 600; font-size: 26px; line-height: 1.15; font-variant-numeric: tabular-nums; color: var(--ct-ink); }
.desk .fig-l { font-family: var(--ct-mono); font-weight: 500; font-size: 11.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--ct-muted); }

/* tables */
.desk table { width: 100%; border-collapse: collapse; }
.o-table, .p-table { font-size: 14.5px; }
.desk th { font-family: var(--ct-mono); font-weight: 500; font-size: 11.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--ct-muted); text-align: left; padding: 8px 10px; border-bottom: 1px solid var(--ct-ink); white-space: nowrap; }
.o-table td, .p-table td { padding: 10px; border-bottom: 1px solid var(--ct-rule); vertical-align: middle; }
.o-table th:first-child, .o-table td:first-child, .p-table th:first-child, .p-table td:first-child { padding-left: 0; }
.o-table th:last-child, .o-table td:last-child, .p-table th:last-child, .p-table td:last-child { padding-right: 0; }
.desk .num { text-align: right; font-family: var(--ct-mono); font-variant-numeric: tabular-nums; }
.desk .c-id { font-family: var(--ct-mono); font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }
.desk .c-shop, .desk .c-pname { font-weight: 600; }
.desk .c-lines { color: var(--ct-muted); }
.desk .c-status { white-space: nowrap; }
.desk .c-total { white-space: nowrap; }
.desk .c-acts { text-align: right; white-space: nowrap; }
.desk .c-acts .d-btn + .d-btn { margin-left: 6px; }
@media (min-width: 641px) { .o-table .c-acts .d-primary { min-width: 172px; } }
.o-row.is-back td { background: rgba(187, 52, 16, .045); }
.o-row.is-back .c-shop { font-weight: 400; }
.o-row.is-open td { border-bottom-color: transparent; }
.o-done { display: inline-block; margin-left: 6px; font-family: var(--ct-mono); font-size: 12px; color: var(--ct-muted); text-align: center; vertical-align: middle; }
@media (min-width: 641px) { .o-table .o-done { min-width: 172px; } }
.o-detail > td { padding: 0 0 18px !important; }
.o-lines { border: 1px solid var(--ct-rule-2); background: var(--ct-paper); padding: 14px 16px 16px; }
.o-dh { font-family: var(--ct-sans); font-size: 16px; font-weight: 600; margin: 0 0 8px; }
.o-dh:focus { outline: none; }
.o-dh:focus-visible { outline: 2px solid var(--ct-accent); outline-offset: 2px; }
.l-table { font-size: 14px; }
.l-table td { padding: 7px 10px; border-bottom: 1px solid var(--ct-rule); }
.l-table th:first-child, .l-table td:first-child { padding-left: 0; }
.l-table th:last-child, .l-table td:last-child { padding-right: 0; }
.desk .o-note { margin-top: 12px; font-size: 14px; line-height: 1.55; color: var(--ct-muted); }
.desk .c-code { white-space: nowrap; }
.desk .code { font-family: var(--ct-mono); font-weight: 600; font-size: 13px; letter-spacing: .06em; border: 1px solid var(--ct-ink); padding: 3px 6px 2px; }
.desk .mono { font-family: var(--ct-mono); font-size: 13px; }
.desk .c-path, .desk .c-link { overflow-wrap: anywhere; }
.desk .c-link { color: var(--ct-muted); }
.p-row.is-on td { background: var(--ct-surface); }

/* controls */
.d-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 38px; padding: 0 14px;
  font-family: var(--ct-sans); font-weight: 600; font-size: 14px; line-height: 1.15; color: var(--ct-ink); background: #fff;
  border: 1px solid var(--ct-ink); border-radius: 0; cursor: pointer; text-decoration: none; transition: background-color .12s, color .12s;
}
.d-primary { background: var(--ct-ink); color: #fff; }
.d-ghost[aria-expanded="true"], .d-ghost.is-on { background: var(--ct-ink); color: #fff; }
.d-text { border-color: transparent; background: transparent; color: var(--ct-accent-text); text-decoration: underline; text-underline-offset: 3px; padding: 0 6px; }
.d-step { min-width: 38px; padding: 0; font-size: 18px; font-weight: 500; }
.d-btn[aria-disabled="true"], .d-btn[aria-disabled="true"]:hover { color: var(--ct-muted); background: var(--ct-surface); border-color: var(--ct-rule-2); border-style: dashed; cursor: not-allowed; }
.d-wide { width: 100%; min-height: 44px; }
@media (hover: hover) {
  .d-btn:hover { background: var(--ct-surface); }
  .d-primary:hover, .d-ghost.is-on:hover, .d-ghost[aria-expanded="true"]:hover { background: var(--ct-accent-text); border-color: var(--ct-accent-text); color: #fff; }
  .d-text:hover { background: transparent; color: var(--ct-ink); }
  .desk-bar .desk-reset:hover { background: rgba(253, 253, 252, .12); color: var(--ct-paper); }
  button.desk-tab:hover { color: var(--ct-ink); }
}
.d-btn:focus-visible, .desk-tab:focus-visible, .desk-reset:focus-visible, .d-in:focus-visible, .desk [tabindex="-1"]:focus-visible {
  outline: 2px solid var(--ct-accent); outline-offset: 2px;
}
.desk-bar .desk-reset:focus-visible { outline-color: #fdfdfc; }
.d-lbl { display: block; margin: 0 0 6px; font-family: var(--ct-mono); font-weight: 500; font-size: 11.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--ct-muted); }
.d-in {
  display: block; width: 100%; min-height: 44px; padding: 8px 12px; font-family: var(--ct-sans); font-size: 16px; line-height: 1.3;
  color: var(--ct-ink); background: #fff; border: 1px solid var(--ct-line-in); border-radius: 0;
}
.d-in::placeholder { color: var(--ct-muted); opacity: 1; }
.d-in[aria-invalid="true"] { border-color: var(--ct-accent-text); }

/* sales sheet */
.sh-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 28px; }
.sh-find, .sh-sheet { min-width: 0; }
.desk .sh-count { margin: 10px 0 8px; font-family: var(--ct-mono); font-size: 12px; color: var(--ct-muted); }
.sh-results { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ct-rule-2); }
.sh-item { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 2px 10px; padding: 8px 0; border-bottom: 1px solid var(--ct-rule); }
.sh-item .sh-name { font-weight: 600; grid-column: 1; }
.sh-item .inv { grid-column: 2; grid-row: 1; }
.sh-item .d-btn { grid-column: 3; grid-row: 1 / span 2; }
.sh-item .sh-on { grid-column: 1 / span 2; }
.desk .inv { font-family: var(--ct-mono); font-weight: 500; font-size: 11.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--ct-muted); border: 1px solid var(--ct-rule-2); padding: 3px 6px 2px; white-space: nowrap; }
.desk .inv-equipment { color: var(--ct-accent-text); border-color: rgba(154, 40, 10, .42); }
.sh-on { font-family: var(--ct-mono); font-size: 11.5px; color: var(--ct-accent-text); }
.desk .sh-none, .desk .sh-empty { padding: 12px 0; color: var(--ct-muted); font-size: 14.5px; }
.desk .sh-jump { display: none; }
.sh-sheet { align-self: start; border: 1px solid var(--ct-ink); background: #fff; padding: 16px 18px 18px; }
.desk .sh-k { font-family: var(--ct-serif); font-size: 27px; line-height: 1.1; margin: 0 0 12px; }
.desk .sh-k:focus { outline: none; }
.desk .sh-k:focus-visible { outline: 2px solid var(--ct-accent); outline-offset: 2px; }
.desk .sh-for { margin: 0 0 4px; }
.sh-lines { list-style: none; margin: 14px 0 0; padding: 0; border-top: 1px solid var(--ct-rule-2); }
.sh-line { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 6px 12px; padding: 9px 0; border-bottom: 1px solid var(--ct-rule); }
.sh-lname { flex: 1 1 170px; min-width: 0; }
.sh-lname .sh-name { font-weight: 600; margin-right: 4px; }
.sh-qty { display: inline-flex; align-items: center; gap: 4px; }
.sh-n { display: inline-block; min-width: 34px; text-align: center; font-family: var(--ct-mono); font-weight: 600; font-variant-numeric: tabular-nums; }
.desk .sh-sum { margin: 12px 0 14px; font-family: var(--ct-mono); font-size: 12px; color: var(--ct-muted); }

/* partners */
.p-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 28px; margin-top: 22px; }
.p-add, .p-prev { min-width: 0; }
.p-row-in { display: flex; gap: 8px; }
.p-row-in .d-in { flex: 1 1 auto; min-width: 0; }
.p-row-in .d-btn { flex: 0 0 auto; min-height: 44px; }
.desk .p-msg { margin-top: 8px; font-family: var(--ct-mono); font-size: 12px; line-height: 1.5; color: var(--ct-muted); }
.desk .p-k { margin: 0 0 6px; font-family: var(--ct-mono); font-weight: 500; font-size: 11.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--ct-muted); }
.pv { border: 1px solid var(--ct-rule-2); background: var(--ct-paper); padding: 0 0 18px; }
.desk .pv-url { margin: 0 0 16px; padding: 7px 12px; font-family: var(--ct-mono); font-size: 11.5px; color: var(--ct-muted); background: var(--ct-surface); border-bottom: 1px solid var(--ct-rule); overflow-wrap: anywhere; }
.desk .pv-h { margin: 0 16px 8px; font-family: var(--ct-serif); font-size: 26px; line-height: 1.12; }
.desk .pv-h:focus { outline: none; }
.desk .pv-h:focus-visible { outline: 2px solid var(--ct-accent); outline-offset: 2px; }
.desk .pv-t { margin: 0 16px 14px; font-size: 14.5px; color: var(--ct-muted); }
.pv-btn { display: inline-block; margin: 0 16px; padding: 10px 14px; background: var(--ct-accent); color: #fff; font-weight: 600; font-size: 14px; }
.desk .pv-ref { margin: 12px 16px 0; font-family: var(--ct-mono); font-size: 11.5px; color: var(--ct-muted); overflow-wrap: anywhere; }

/* under the frame */
.desk-cta { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 14px 22px; margin-top: 26px; text-align: center; }
.desk-cta p { margin: 0; font-family: var(--ct-serif); font-size: 27px; line-height: 1.15; color: var(--ct-ink); }

/* tablet and phone */
@media (max-width: 760px) {
  .sh-grid, .p-grid { grid-template-columns: minmax(0, 1fr); }
  .desk .sh-jump { display: block; margin: 0 0 6px; }
  .desk .sh-jump .d-btn { padding-left: 0; }
}
@media (max-width: 640px) {
  .desk-bar { padding: 12px 14px; }
  .desk-biz-n { font-size: 22px; }
  .desk-msg { padding: 9px 14px; }
  .desk-tabs { padding: 0; }
  .desk-tab { flex: 1 1 0; padding: 10px 6px; font-size: 14.5px; text-align: center; }
  .desk-panel { padding: 16px 14px 20px; }
  .desk-figs { grid-template-columns: minmax(0, 1fr); }
  .desk .fig { flex-direction: row; align-items: baseline; justify-content: space-between; gap: 12px; padding: 8px 12px; border-left: 0; border-top: 1px solid var(--ct-rule-2); }
  .desk .fig:first-child { border-top: 0; }
  .desk .fig-n { font-size: 20px; }
  .d-btn { min-height: 44px; }
  .d-step { min-width: 44px; }
  .desk-bar .desk-reset { min-height: 44px; }
  /* orders and partners become stacked cards; explicit roles keep the table semantics */
  .o-table, .o-table > tbody, .o-table > tbody > tr, .o-table > tbody > tr > td,
  .p-table, .p-table > tbody, .p-table > tbody > tr, .p-table > tbody > tr > td { display: block; }
  .o-table > thead, .p-table > thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
  .o-table > thead tr, .o-table > thead th, .p-table > thead tr, .p-table > thead th { display: block; width: 1px; padding: 0; }
  .o-table > tbody > tr > td, .p-table > tbody > tr > td { border: 0; padding: 0 !important; }
  .o-table tr.o-row {
    display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 6px 10px; align-items: center; padding: 14px 0;
    grid-template-areas: "id status total" "shop shop shop" "lines lines lines" "acts acts acts"; border-bottom: 1px solid var(--ct-rule-2);
  }
  .o-row.is-back td { background: none; }
  .o-row.is-back { background: rgba(187, 52, 16, .045); padding-left: 8px !important; padding-right: 8px !important; }
  .o-table .c-id { grid-area: id; }
  .o-table .c-status { grid-area: status; white-space: normal; }
  .o-table .c-total { grid-area: total; }
  .o-table .c-shop { grid-area: shop; }
  .o-table .c-lines { grid-area: lines; }
  .o-table .c-acts { grid-area: acts; display: flex; gap: 8px; text-align: left; }
  .o-table .c-acts .d-btn { flex: 1 1 0; }
  .desk .c-acts .d-btn + .d-btn { margin-left: 0; }
  .o-table .o-done { flex: 1 1 0; align-self: center; margin-left: 0; }
  .o-detail { border-bottom: 1px solid var(--ct-rule-2); padding: 0 0 14px; }
  .l-table th:nth-child(4), .l-table td:nth-child(4) { display: none; }
  .l-table th:first-child { width: 44%; }
  .l-table th, .l-table td { padding-left: 4px; padding-right: 4px; }
  .l-table th { letter-spacing: .03em; }
  .o-lines { padding: 12px 10px; }
  .l-table th { font-size: 11.5px; letter-spacing: .06em; white-space: normal; }
  .l-table td { font-size: 13.5px; }
  .p-table tr.p-row {
    display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 10px; align-items: center; padding: 14px 0;
    grid-template-areas: "name code" "path path" "link link" "acts acts"; border-bottom: 1px solid var(--ct-rule-2);
  }
  .p-row.is-on td { background: none; }
  .p-table .c-pname { grid-area: name; }
  .p-table .c-code { grid-area: code; }
  .p-table .c-path { grid-area: path; }
  .p-table .c-link { grid-area: link; }
  .p-table .c-acts { grid-area: acts; text-align: left; }
  .p-table .c-acts .d-btn { width: 100%; }
  .p-table .c-path::before { content: "Guest page  "; content: "Guest page  " / ""; color: var(--ct-muted); font-size: 11.5px; letter-spacing: .08em; text-transform: uppercase; }
  .p-table .c-link::before { content: "Booking link  "; content: "Booking link  " / ""; color: var(--ct-muted); font-size: 11.5px; letter-spacing: .08em; text-transform: uppercase; }
  .p-row-in { flex-direction: column; }
  .desk-cta p { font-size: 24px; }
}
@media (max-width: 400px) {
  .desk-tab { font-size: 14px; padding: 10px 4px; }
}

/* reduced motion: the finished state, no transitions */
@media (prefers-reduced-motion: reduce) {
  .desk *, .ct2-more *, .ct2-menu * { transition: none !important; animation: none !important; }
}

/* print: the whole page prints the finished state; "Print or save as PDF" prints the sheet only */
#ct2-print { display: none; }
@media print {
  .desk *, .ct2-more *, .ct2-menu * { transition: none !important; animation: none !important; }
  .desk-panel[hidden] { display: block !important; }
  .desk-tabs, .desk-reset, .desk-msg, .desk .d-btn, .desk .d-in, .desk .d-lbl, .desk .sh-jump, .desk .p-add, .desk-cta, .desk-selftest { display: none !important; }
  .ct2-more .cat-list[hidden] { display: block !important; content-visibility: visible !important; }
  .ct2-more .cat-toggle::after { content: none; }
  html.ct2-printing body > *:not(#ct2-print) { display: none !important; }
  html.ct2-printing body { background: #fff !important; }
  html.ct2-printing #ct2-print { display: block !important; }
  @page { margin: 16mm; }
  .pr-sheet { font-family: var(--ct-sans); color: #121110; font-size: 12pt; line-height: 1.45; }
  .pr-sheet .pr-biz { font-family: var(--ct-mono); font-size: 9pt; letter-spacing: .14em; text-transform: uppercase; margin: 0 0 6pt; }
  .pr-sheet .pr-h { font-family: var(--ct-serif); font-size: 30pt; line-height: 1.05; margin: 0 0 6pt; }
  .pr-sheet .pr-for { margin: 0 0 14pt; }
  .pr-sheet table { width: 100%; border-collapse: collapse; }
  .pr-sheet th { font-family: var(--ct-mono); font-size: 8.5pt; letter-spacing: .12em; text-transform: uppercase; text-align: left; border-bottom: 1px solid #121110; padding: 4pt 6pt 4pt 0; }
  .pr-sheet td { border-bottom: 1px solid #c9c6bf; padding: 6pt 6pt 6pt 0; }
  .pr-sheet .num { text-align: right; padding-right: 0; font-family: var(--ct-mono); }
  .pr-sheet .pr-foot { margin-top: 14pt; font-family: var(--ct-mono); font-size: 9pt; color: #5d5851; }
}
