/* Café toolkit pages (JB-09 … JB-12, 2026-10): the JustBack brand layer of landing.css ("Embargo-style
   refresh": Poppins, uppercase heavy titles, violet pills with glow, juicy gradient cards) applied to
   the resource-tool pattern. Prefix jt- because landing.css already owns .mk-*, .dim, .grid and .warn.
   Loaded after landing.css and resources.css, only by the toolkit pages. */

.jt{--jt-radius:var(--r-l,28px)}
.jt .jt-page{display:grid;gap:clamp(20px,2.4vw,28px);padding:8px 0 24px}
.jt .crumbs{margin-top:8px}

/* hero: same card as the product pages (.mk-hero), with a 3D mascot */
.jt-hero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(16px,3vw,40px);align-items:center;padding:clamp(24px,4.5vw,56px);border-radius:var(--r-xl,40px);background:#faf9fe;box-shadow:0 18px 50px rgba(107,77,230,.14),inset 0 0 0 1px var(--line)}
.jt-hero-copy{display:grid;gap:14px;min-width:0}
.jt-kick{margin:0;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--purple)}
html:not(#_) .jt-hero h1{margin:0;text-transform:uppercase;font-weight:800;letter-spacing:-.01em;line-height:1.03;font-size:clamp(30px,4.2vw,56px);color:var(--ink);text-wrap:balance;hyphens:auto;overflow-wrap:anywhere}
.jt-hero h1 em{font-style:normal;color:var(--purple);display:block}
.jt-hero .lead{margin:0;font-size:clamp(16px,1.3vw,19px);color:var(--ink-2);max-width:46ch}
.jt-meta{margin:0;font-size:13px;color:var(--muted)}
.jt-hero-img{width:100%;max-width:380px;height:auto;justify-self:center;border-radius:var(--jt-radius);aspect-ratio:1/1;object-fit:cover}
.jt-hero-img.wide{aspect-ratio:3/2;object-fit:contain;background:transparent}

/* tool layout */
.jt-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:20px;align-items:start}
.jt-card{background:#fff;border-radius:var(--jt-radius);box-shadow:var(--eb-shadow),inset 0 0 0 1px var(--line);padding:clamp(20px,2.6vw,30px);display:grid;gap:16px;min-width:0}
.res form.jt-card{display:grid;gap:16px;background:#fff;padding:clamp(20px,2.6vw,30px)}
.jt-side{display:grid;gap:16px;min-width:0;position:sticky;top:96px}
.jt-h2{margin:0;font-size:20px;font-weight:700;letter-spacing:-.01em;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.jt-sub{margin:-6px 0 0;font-size:14.5px;color:var(--muted)}
.jt-tag{font-size:11px;font-weight:600;padding:4px 10px;border-radius:999px;background:var(--lav);color:var(--purple);letter-spacing:.02em}
.jt-tag[hidden]{display:none}
.jt .fields{margin-top:0;gap:14px}
.jt .field label{font-size:14px}
.jt .unit{border:1.5px solid var(--line);border-radius:16px;min-height:52px}
.jt .unit:focus-within{outline:none;border-color:var(--purple);box-shadow:0 0 0 4px rgba(107,77,230,.15)}
.jt .unit input,.jt .unit select{font-size:16px;padding:12px 14px}
.jt .unit .u{background:transparent;border-left:0;font-weight:600;padding-right:14px}
.jt .field.invalid .unit{border-color:var(--coral);box-shadow:0 0 0 1px var(--coral)}
.jt .summary-errors{margin-top:0;border-radius:16px}
.jt-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.jt-quiet{border:0;background:transparent;color:var(--purple);font:inherit;font-weight:600;font-size:15px;padding:10px 8px;cursor:pointer;border-radius:12px;min-height:44px}
.jt-quiet:hover{background:var(--lav)}
.jt-link{color:var(--purple);font-weight:600;text-decoration:none;font-size:15px}
.jt-link:hover{text-decoration:underline}
.jt-fine{margin:0;font-size:13px;color:var(--muted)}

/* chips: real radio/checkbox inputs styled as pills */
.jt-chips{display:flex;flex-wrap:wrap;gap:8px;border:0;margin:0;padding:0;min-width:0}
.jt-chips legend{font-weight:600;font-size:14px;margin-bottom:8px;padding:0}
.jt-chip{position:relative}
.jt-chip input{position:absolute;opacity:0;width:1px;height:1px}
.jt-chip span{min-height:40px;display:inline-flex;align-items:center;padding:0 16px;border-radius:999px;background:#fff;box-shadow:inset 0 0 0 1.5px var(--line);font-size:14px;font-weight:600;color:var(--ink-2);cursor:pointer;user-select:none}
.jt-chip input:checked+span{background:var(--eb-violet);color:#fff;box-shadow:var(--eb-glow)}
.jt-chip input:focus-visible+span{outline:3px solid var(--purple-hi);outline-offset:2px}

/* editable rows (team, ingredients) */
.jt-rows{display:grid;gap:10px;border:0;margin:0;padding:0;min-width:0}
.jt-rows legend{font-weight:600;font-size:14px;margin-bottom:8px;padding:0}
.jt-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(64px,.7fr) minmax(104px,1.2fr) auto auto;gap:10px;align-items:end;padding:12px;border-radius:18px;background:#f7f6fb}
.jt-row.two{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) auto}
.jt-row .field{gap:4px}
.jt-row .field label{font-size:12px;font-weight:600;color:var(--muted)}
.jt-row .unit{min-height:46px;background:#fff}
.jt-row .unit input{padding:10px 10px}
.jt-row .unit .u{padding:0 10px 0 0}
.jt-check{display:flex;align-items:center;gap:8px;min-height:46px;font-size:14px;font-weight:600;color:var(--ink-2);cursor:pointer}
.jt-check input{width:20px;height:20px;accent-color:var(--purple)}
.jt-remove{border:0;background:#fff;color:var(--muted);width:46px;height:46px;border-radius:14px;cursor:pointer;font-size:20px;line-height:1}
.jt-remove:hover{color:var(--coral);background:var(--coral-soft)}
.jt-row .err{grid-column:1/-1}

/* result: violet card */
.jt-empty{background:#fff;border-radius:var(--jt-radius);box-shadow:inset 0 0 0 1.5px dashed var(--line);border:1.5px dashed #d9d3ee;padding:24px;color:var(--muted)}
.jt-result{border-radius:var(--jt-radius);padding:clamp(20px,2.6vw,28px);background:var(--eb-violet);color:#fff;box-shadow:0 18px 40px rgba(107,77,230,.3);display:grid;gap:12px}
.jt-result small,.jt-result .jt-cap{font-size:13px;opacity:.88;margin:0}
.jt-big{margin:0;font-weight:800;font-size:clamp(40px,4.6vw,60px);letter-spacing:-.04em;line-height:1;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.jt-big span{font-size:15px;font-weight:600;letter-spacing:0;opacity:.88}
.jt-result dl{margin:0;display:grid}
.jt-result dl div{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid rgba(255,255,255,.22);font-variant-numeric:tabular-nums}
.jt-result dt{opacity:.92}.jt-result dt small{display:block;opacity:.8;font-size:12px}
.jt-result dd{margin:0;font-weight:700;text-align:right;white-space:nowrap}
html:not(#_) .jt-result .btn{background:#fff;color:var(--purple);box-shadow:none;justify-self:start}
.jt-receipt{background:#fff;border-radius:var(--jt-radius);box-shadow:var(--eb-shadow),inset 0 0 0 1px var(--line);padding:18px 20px}
.jt-receipt h3{margin:0 0 6px;font-size:16px}
.jt-receipt dl{margin:0;display:grid}
.jt-receipt dl div{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid var(--line);font-size:15px;font-variant-numeric:tabular-nums}
.jt-receipt dl div:first-child{border-top:0}
.jt-receipt dd{margin:0;font-weight:700;white-space:nowrap}
.jt-alert{border-radius:20px;padding:14px 16px;background:var(--coral-soft);color:var(--ink);margin:0}
.jt-alert b{color:var(--coral)}
.jt-alert.sun{background:#fff6dc}.jt-alert.sun b{color:#7a5200}
.jt-alert.mint{background:var(--mint-soft)}.jt-alert.mint b{color:var(--mint)}
.jt-bars{display:grid;gap:14px}
.jt-bar{display:grid;gap:6px}
.jt-bar .l{display:flex;justify-content:space-between;gap:10px;font-weight:600;font-size:15px}
.jt-bar .l span:last-child{font-weight:500;color:var(--ink-2);font-size:14px;white-space:nowrap}
.jt-bar i{display:block;height:12px;border-radius:99px;background:linear-gradient(90deg,var(--purple) var(--w),var(--lav) var(--w))}
.jt-bar.ok .l span:last-child{color:var(--mint)}
.jt-verdict{margin:0;font-size:clamp(18px,2vw,22px);line-height:1.38;font-weight:600}
.jt-checks{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.jt-checks li{padding-left:32px;position:relative;font-size:15px;color:var(--ink-2)}
.jt-checks li::before{position:absolute;left:0;top:1px;width:22px;height:22px;border-radius:999px;color:#fff;font-size:12px;font-weight:700;display:grid;place-items:center}
.jt-checks li.ok::before{content:"✓";background:var(--eb-mint)}
.jt-checks li.bad::before{content:"!";background:var(--eb-coral)}
.jt-checks li.info::before{content:"i";background:var(--eb-violet)}

/* voucher card: same family as the landing "Dein Café" card */
.jt-voucher{position:relative;overflow:hidden;color:#fff;border-radius:26px;padding:22px 24px;aspect-ratio:2.12/1;display:flex;flex-direction:column;justify-content:space-between;gap:8px;background:linear-gradient(140deg,#9a88ec 0%,#6c5bc0 38%,#4a3d93 72%,#352a6e 100%);box-shadow:0 36px 54px -28px rgba(46,37,87,.6);max-width:100%;container-type:inline-size}
.jt-voucher.coral{background:linear-gradient(135deg,#f0545b 0%,#e23b55 60%,#c92b55 100%)}
.jt-voucher.ink{background:linear-gradient(135deg,#2a2550 0%,#17142e 100%)}
.jt-voucher .gloss{position:absolute;inset:0;pointer-events:none;background:radial-gradient(120% 70% at 0% 0%,rgba(255,255,255,.32),transparent 55%),radial-gradient(60% 50% at 100% 100%,rgba(255,138,127,.28),transparent 70%)}
.jt-voucher>*{position:relative;margin:0}
.v-row{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:14px;font-weight:600}
.v-brand{display:inline-flex;gap:8px;align-items:center;min-width:0;overflow-wrap:anywhere}
.v-tag{font-size:11px;font-weight:600;background:rgba(255,255,255,.18);border-radius:999px;padding:5px 10px;white-space:nowrap}
.v-occ{font-size:13px;opacity:.85}
.v-val{font-weight:800;font-size:clamp(30px,11cqw,54px);letter-spacing:-.04em;line-height:1;overflow-wrap:anywhere}
.v-msg{font-size:14px;opacity:.92}
.v-foot{font-size:12px;font-weight:500;opacity:.88;flex-wrap:wrap}
.jt-upsell{display:grid;grid-template-columns:88px minmax(0,1fr);gap:14px;align-items:center;background:var(--lav);border-radius:var(--r-m,20px);padding:14px}
.jt-upsell img{width:88px;height:88px;object-fit:cover;border-radius:16px}
.jt-upsell b{display:block;font-size:15px}
.jt-upsell p{margin:4px 0 6px;font-size:14px;color:var(--ink-2)}

/* next step band */
.jt-band{display:grid;grid-template-columns:96px minmax(0,1fr) auto;gap:20px;align-items:center;border-radius:var(--r-xl,40px);background:var(--lav);padding:20px 24px;margin-top:28px}
.jt-band img{width:96px;height:96px;object-fit:cover;border-radius:22px}
.jt-band h2{font-size:20px;font-weight:700;margin:0}
.jt-band p{margin:6px 0 0;color:var(--ink-2)}
.jt-band .acts{display:flex;gap:10px;flex-wrap:wrap}

@media (max-width:900px){
  .jt-hero,.jt-grid{grid-template-columns:minmax(0,1fr)}
  .jt-hero-img{max-width:180px;order:-1}
  .jt-side{position:static}
  .jt-band{grid-template-columns:72px minmax(0,1fr)}.jt-band img{width:72px;height:72px}.jt-band .acts{grid-column:1/-1}
}
@media (max-width:560px){
  .jt-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .jt-row .field:first-child{grid-column:1/-1}
  .jt-row.two .field:first-child{grid-column:auto}
  .jt-row.two{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}
  .jt-upsell{grid-template-columns:64px minmax(0,1fr)}.jt-upsell img{width:64px;height:64px}
  .jt .fields{grid-template-columns:minmax(0,1fr)}
}

/* printing the voucher: only the print copy is visible (see voucher.js) */
.jt-print-root{display:none}
@media print{
  body.print-voucher>*:not(.jt-print-root){display:none!important}
  body.print-voucher .jt-print-root{display:grid;gap:8mm;justify-items:center}
  body.print-voucher .jt-print-root .jt-voucher{box-shadow:none;-webkit-print-color-adjust:exact;print-color-adjust:exact;break-inside:avoid}
  body.print-voucher .jt-print-root.din-lang .jt-voucher{width:210mm;height:99mm;aspect-ratio:auto;border-radius:0;padding:12mm 14mm}
  body.print-voucher .jt-print-root.a6 .jt-voucher{width:148mm;height:105mm;aspect-ratio:auto;border-radius:0;padding:10mm 12mm}
  body.print-voucher .jt-print-root.a4x4{grid-template-columns:repeat(2,99mm);gap:4mm}
  body.print-voucher .jt-print-root.a4x4 .jt-voucher{width:99mm;height:66mm;aspect-ratio:auto;border-radius:4mm;padding:6mm 7mm}
}
@media (prefers-reduced-motion:reduce){.jt *{transition:none!important;animation:none!important}}
.jt-stack{display:grid;gap:16px;min-width:0}
.jt-combo{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:14px}
.jt-combo-form{display:grid;gap:16px}
.res form.jt-combo-form{display:grid;gap:16px}
.jt-group{margin:4px 0 -4px;font-size:15px;font-weight:700;color:var(--purple);letter-spacing:.02em}
.v-val.text{font-size:clamp(22px,8cqw,38px);letter-spacing:-.02em;line-height:1.08}
.v-redeem{font-size:11px;opacity:.8;margin-top:4px}
.jt-voucher [hidden]{display:none}
.jt .status-line{min-height:0;margin:0;font-size:14px}
.jt .status-line.ok{color:var(--mint)}.jt .status-line.bad{color:var(--coral)}
#voucher-form .field{margin:0}
#voucher-form{gap:18px}

/* AI helpers (JB-13 … JB-15): drafts, campaign weeks, review QR sign. See ai.js. */
.jt-area{width:100%;box-sizing:border-box;min-height:140px;border:1.5px solid var(--line);border-radius:16px;padding:12px 14px;font:inherit;font-size:16px;line-height:1.5;color:var(--ink);background:#fff;resize:vertical}
.jt-area:focus{outline:none;border-color:var(--purple);box-shadow:0 0 0 4px rgba(107,77,230,.15)}
.jt .field.invalid .jt-area{border-color:var(--coral);box-shadow:0 0 0 1px var(--coral)}
.jt-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.jt-source{margin:0;font-size:13.5px;color:var(--ink-2)}
.jt-source b{display:inline-block;padding:4px 10px;border-radius:999px;font-size:12px;background:var(--lav);color:var(--purple)}
.jt-source.tpl b{background:#fff6dc;color:#7a5200}
.jt-draft{background:#fff;border-radius:var(--r-m,20px);box-shadow:var(--eb-shadow),inset 0 0 0 1px var(--line);padding:18px;display:grid;gap:8px;min-width:0}
.jt-draft p{margin:0;color:var(--ink-2);white-space:pre-line;overflow-wrap:anywhere}
.jt-draft .jt-wk,.jt-week .jt-wk{color:var(--ink);font-weight:700;font-size:15px}
.jt-draft .jt-quiet,.jt-week .jt-quiet{justify-self:start;padding-left:0}
.jt-week{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:start;background:#fff;border-radius:var(--r-m,20px);box-shadow:var(--eb-shadow),inset 0 0 0 1px var(--line);padding:16px}
.jt-week>div{display:grid;gap:8px;min-width:0}
.jt-week p{margin:0;font-size:15px;color:var(--ink-2);white-space:pre-line;overflow-wrap:anywhere}
.jt-n{min-width:52px;height:52px;padding:0 8px;border-radius:16px;display:grid;place-items:center;background:var(--eb-violet);color:#fff;font-weight:700;font-size:12px;box-shadow:var(--eb-glow);text-align:center;line-height:1.15}
.jt-n.coral{background:var(--eb-coral);box-shadow:0 12px 26px rgba(226,59,85,.3)}
.jt-busy{opacity:.7;pointer-events:none}
.jt-sign{background:#fff;border-radius:var(--jt-radius);box-shadow:var(--eb-shadow),inset 0 0 0 1px var(--line);padding:24px;display:grid;gap:8px;justify-items:center;text-align:center;max-width:340px;margin:0 auto}
.jt-sign p{margin:0}
.jt-sign-cafe{font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--purple)}
.jt-sign-title{font-size:26px;font-weight:800;text-transform:uppercase;line-height:1.05;color:var(--ink)}
.jt-sign-text{font-size:15px;color:var(--ink-2)}
.jt-sign img{width:200px;height:200px;margin:8px 0}
.jt-sign-scan{font-size:13px;color:var(--muted)}
@media (max-width:560px){.jt-2{grid-template-columns:minmax(0,1fr)}}
@media print{
  body.print-voucher .jt-print-root.qr-sign .jt-sign{width:105mm;height:148mm;box-sizing:border-box;box-shadow:none;border-radius:0;padding:12mm 10mm;align-content:center;max-width:none;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  body.print-voucher .jt-print-root.qr-sign .jt-sign img{width:62mm;height:62mm}
}
.jt-draft .jt-tag{justify-self:start;margin:0}
.jt-idea{display:block;width:100%;text-align:left;border:0;background:#fff;box-shadow:inset 0 0 0 1.5px var(--line);border-radius:16px;padding:12px 14px;font:inherit;font-size:15px;color:var(--ink);cursor:pointer;min-height:44px}
.jt-idea:hover{box-shadow:inset 0 0 0 1.5px var(--purple);background:var(--lav)}
.jt-idea:focus-visible{outline:3px solid var(--purple-hi);outline-offset:2px}
#suggestions:empty{display:none}
