/* ---- app-checklist.css ---- */
.tool-app-checklist{display:grid;gap:14px;margin:18px 0 0;max-width:var(--col)}
.tool-app-checklist .ac-grp{display:grid;gap:5px}
.tool-app-checklist .ac-lbl{display:block;margin:0 0 1px;font:700 var(--t-eyebrow)/1.3 var(--font-sans);letter-spacing:var(--track-eyebrow);text-transform:uppercase;color:var(--muted)}
.tool-app-checklist .ac-opt{display:flex;align-items:center;gap:12px;min-height:44px;padding:4px 14px;border-radius:var(--r-banner);cursor:pointer;
  background:var(--surface);box-shadow:inset 0 0 0 1px var(--line-input);font:500 17px/1.3 var(--font-sans);color:var(--ink)}
.tool-app-checklist .ac-opt:has(input:checked){background:var(--accent-soft);box-shadow:inset 0 0 0 2px var(--accent);font-weight:600}
.tool-app-checklist .ac-opt:has(input:focus-visible){outline:2.5px solid var(--accent);outline-offset:2px}
.tool-app-checklist input[type=checkbox]{width:24px;height:24px;flex:none;margin:0;accent-color:var(--accent)}
.tool-app-checklist .ac-head{font-size:var(--t-title-lg);line-height:1.25;font-weight:700;margin:0 0 6px}
.tool-app-checklist .ac-empty{margin:0;color:var(--ink)}
.tool-app-checklist .ac-list{margin:0 0 12px}
.tool-app-checklist .ac-list>li{align-items:flex-start;padding:12px 0}
.tool-app-checklist .ac-list .ck{margin-top:2px}
.tool-app-checklist .ac-bm{color:var(--ink)}
.tool-app-checklist .ac-no{color:var(--warning)}
.tool-app-checklist .ac-no b{color:var(--warning)}
.tool-app-checklist .ac-ok{margin:0;color:var(--ink)}
.tool-app-checklist .ac-foot{margin:0;font-size:var(--t-caption);color:var(--muted)}
.tool-app-checklist .ac-sum{position:sticky;bottom:0;z-index:2;margin:0;padding:10px 14px;border-radius:var(--r-banner);background:var(--raised);box-shadow:inset 0 0 0 1px var(--line-input);font-weight:600;color:var(--ink);font-size:16px}

/* K3 item 12: on mobile the result card comes first, the boxes after it */
.tool-app-checklist .ac-change{margin:-4px 0 10px;font-size:15px;color:var(--muted)}
/* K3 item 12 (resubmit): on phones the boxes come first, compact in two columns; the sticky summary line is the visible result; the card follows */
@media (max-width:979px){.tool-app-checklist{gap:10px;margin-top:12px}.tool-app-checklist .ac-grp{grid-template-columns:1fr 1fr;gap:6px}
  .tool-app-checklist .ac-opt{min-height:44px;padding:4px 10px;font-size:14.5px;line-height:1.25;gap:9px}.tool-app-checklist input[type=checkbox]{width:20px;height:20px}
  .tool-app-checklist .ac-sum{font-size:15px;padding:8px 12px}}

/* K3 final fix 7 Nov (item 12): on phones the result line comes first (the hero's overflow:hidden from deco.css made the sticky line sit under the boxes), then the boxes, then the card */
@media (max-width:979px){.tool-app-checklist{margin-top:0;gap:5px}.tool-app-checklist .ac-sum{order:-1;position:static;line-height:1.35;padding:5px 12px}}

/* ---- group-chat-check.css ---- */
.tool-group-chat-check{display:grid;gap:14px;margin:18px 0 0;max-width:var(--col)}
.tool-group-chat-check .gc-qs{display:grid;gap:12px}
.tool-group-chat-check .gc-lbl{display:block;margin:0 0 7px;font:600 16px/1.3 var(--font-sans);color:var(--ink)}
.tool-group-chat-check .gc-seg{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.tool-group-chat-check .gc-seg.gc-q2{grid-template-columns:repeat(2,1fr)}
.tool-group-chat-check .btn-text{border:0;cursor:pointer;font:600 16px/1.2 var(--font-sans)}
.tool-group-chat-check .gc-q button{min-height:var(--tap);padding:6px 8px;border-radius:var(--r-banner);border:0;cursor:pointer;
  font:500 16px/1.2 var(--font-sans);color:var(--ink-2);background:var(--surface);box-shadow:inset 0 0 0 1px var(--line-input)}
.tool-group-chat-check .gc-q button[aria-pressed="true"]{font-weight:700;color:var(--ink);background:var(--accent-soft);box-shadow:inset 0 0 0 2px var(--accent)}
.tool-group-chat-check .gc-card{padding:18px 18px 12px}
.tool-group-chat-check .gc-lvl{margin-bottom:10px}
.tool-group-chat-check .gc-risk{background:var(--danger-soft);border-color:color-mix(in srgb,var(--danger) 35%,transparent)}
.tool-group-chat-check .gc-risk .gc-lvl{color:var(--danger);box-shadow:inset 0 0 0 1px var(--danger)}
.tool-group-chat-check .gc-warn{background:var(--warning-soft);border-color:color-mix(in srgb,var(--warning) 35%,transparent)}
.tool-group-chat-check .gc-warn .gc-lvl{color:var(--warning);box-shadow:inset 0 0 0 1px var(--warning)}
.tool-group-chat-check .gc-ok{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 35%,transparent)}
.tool-group-chat-check .gc-ok .gc-lvl{color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.tool-group-chat-check .gc-head{font-size:var(--t-title-lg);line-height:1.25;margin:0 0 12px;font-weight:700}
.tool-group-chat-check .gc-lines{margin:0 0 12px}
.tool-group-chat-check .gc-lines>div{padding:8px 0;border-top:1px solid var(--line)}
.tool-group-chat-check dt{font:700 var(--t-eyebrow)/1.3 var(--font-sans);letter-spacing:var(--track-eyebrow);text-transform:uppercase;color:var(--muted);margin:0 0 2px}
.tool-group-chat-check dd{margin:0;color:var(--ink);font-size:16.5px;line-height:1.45}
.tool-group-chat-check .gc-badge{display:inline-block;margin:2px 4px 2px 0;padding:3px 10px;border-radius:var(--r-pill);font:700 14px/1.3 var(--font-sans)}
.tool-group-chat-check .gb-good{color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}
.tool-group-chat-check .gb-warn{color:var(--warning);background:var(--warning-soft);box-shadow:inset 0 0 0 1px var(--warning)}
.tool-group-chat-check .gb-mute{color:var(--ink-2);background:var(--raised);box-shadow:inset 0 0 0 1px var(--line-input)}
.tool-group-chat-check .gc-fix{margin:0 0 4px;color:var(--ink);font-size:17px}
.tool-group-chat-check .gc-switch{display:flex;padding:0}
.tool-group-chat-check .gc-foot{margin:0;font-size:var(--t-caption);color:var(--muted)}
.tool-group-chat-check .gc-foot .btn-text{display:inline-flex;align-items:center;font-size:var(--t-caption)}
@media (max-width:380px){.tool-group-chat-check .gc-q button{font-size:15px;padding:6px 4px}}

/* K3 item 12: verdict headline starts inside 390x844 */
.tool-group-chat-check .gc-lbl small{display:block;font:400 13.5px/1.3 var(--font-sans);color:var(--muted);margin-top:2px}
@media (max-width:600px){.tool-group-chat-check{margin-top:12px;gap:10px}.tool-group-chat-check .gc-qs{gap:8px}.tool-group-chat-check .gc-q button{min-height:44px;padding:4px 6px}.tool-group-chat-check .gc-lbl{margin-bottom:5px;font-size:15.5px}.tool-group-chat-check .gc-card{padding:14px 16px 10px}.tool-group-chat-check .gc-lvl{margin-bottom:6px}.tool-group-chat-check .gc-head{font-size:19px;margin-bottom:8px}}

/* K3 final fix 7 Nov (item 12): verdict sentence inside 390x844 — tighter gaps; on phones the verdict sentence is the card's first line and the status badge sits under it */
@media (max-width:600px){.tool-group-chat-check{margin-top:4px;gap:8px}.tool-group-chat-check .gc-qs{gap:6px}.tool-group-chat-check .gc-lbl{margin-bottom:3px}
  .tool-group-chat-check .gc-card{display:flex;flex-direction:column;align-items:flex-start;padding:12px 14px 10px}.tool-group-chat-check .gc-card>*{align-self:stretch}
  .tool-group-chat-check .gc-head{order:-2;margin-bottom:8px}.tool-group-chat-check .gc-lvl{order:-1;align-self:flex-start;margin-bottom:10px}}

/* ---- method-picker.css ---- */
/* method-picker — extra CSS only. Tokens/app.css supply .card .eyebrow .merge .note .mono .sr. */
.tool-method-picker{display:block;min-width:0;max-width:100%;margin:20px 0 0;color:var(--ink-2)}
.tool-method-picker *{min-width:0}
.tool-method-picker .mp-answer{margin:0 0 14px;font:700 22px/1.25 var(--font-sans);letter-spacing:-.015em;color:var(--ink);text-wrap:balance}

.tool-method-picker .mp-form{padding:12px 16px 14px;margin:0 0 18px}
.tool-method-picker .mp-grid{display:grid;gap:8px 20px}
.tool-method-picker .mp-grp,.tool-method-picker .mp-size{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 12px;margin:0}
.tool-method-picker .mp-lbl{flex:1 1 auto;display:block;font:700 13px/1.25 var(--font-sans);letter-spacing:var(--track-eyebrow);text-transform:uppercase;color:var(--muted)}
.tool-method-picker .mp-size input{width:120px;flex:none;min-height:48px;padding:0 12px;border-radius:14px;border:1px solid var(--line-input);background:var(--surface);color:var(--ink);font:700 20px/1 var(--font-mono);font-variant-numeric:tabular-nums}
.tool-method-picker .mp-opts{display:flex;flex-wrap:wrap;gap:8px}
.tool-method-picker .mp-opts label{position:relative;display:block}
.tool-method-picker .mp-opts input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.tool-method-picker .mp-opts span{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:56px;padding:0 15px;border-radius:var(--r-pill);
  font:500 17px/1 var(--font-sans);color:var(--ink-2);background:var(--surface);box-shadow:inset 0 0 0 1px var(--line-input);white-space:nowrap}
.tool-method-picker .mp-opts input:checked+span{color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1.5px var(--accent);font-weight:700}
.tool-method-picker .mp-opts input:focus-visible+span,.tool-method-picker .mp-size input:focus-visible{outline:2.5px solid var(--accent);outline-offset:3px}

.tool-method-picker .mp-eyebrow{margin:0 0 10px}
.tool-method-picker .mp-top{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.tool-method-picker .mp-card{padding:16px}
.tool-method-picker .mp-head{display:flex;align-items:center;gap:12px;margin:0 0 8px}
.tool-method-picker .mp-head h3{margin:0;font-size:19px}
.tool-method-picker .mp-rank{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--raised);box-shadow:inset 0 0 0 1px var(--line);font:700 16px/1 var(--font-mono);color:var(--ink)}
.tool-method-picker .mp-top>li:first-child .mp-rank{background:var(--accent);color:var(--surface);box-shadow:none}
.tool-method-picker .mp-why{margin:0 0 12px;font-size:17px;line-height:1.5;color:var(--ink-2)}
.tool-method-picker .mp-tags{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.tool-method-picker .mp-tag{display:inline-flex;align-items:center;gap:7px;min-height:32px;padding:5px 12px 5px 9px;border-radius:var(--r-pill);font:600 15px/1.3 var(--font-sans)}
.tool-method-picker .mp-mark{flex:none;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;font:800 12px/1 var(--font-sans);color:#fff}
.tool-method-picker .mp-yes{color:var(--accent);background:var(--accent-soft)}
.tool-method-picker .mp-yes .mp-mark{background:var(--accent);color:var(--surface)}
.tool-method-picker .mp-yes .mp-mark::before{content:"\2713"}
.tool-method-picker .mp-no{color:var(--danger);background:var(--danger-soft)}
.tool-method-picker .mp-no .mp-mark{background:var(--danger);color:var(--surface)}
.tool-method-picker .mp-no .mp-mark::before{content:"\2715"}
.tool-method-picker .mp-mid{color:var(--ink-2);background:var(--raised);box-shadow:inset 0 0 0 1px var(--line-input)}
.tool-method-picker .mp-mid .mp-mark{background:var(--muted);color:var(--surface)}
.tool-method-picker .mp-mid .mp-mark::before{content:"\2022"}

.tool-method-picker .mp-biz{margin:14px 0 0}
.tool-method-picker .mp-rest{margin:14px 0 0}
.tool-method-picker .mp-rest ul,.tool-method-picker .mp-unfit ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.tool-method-picker .mp-rest li{font-size:16px;line-height:1.5}
.tool-method-picker .mp-rest li b{display:block}
.tool-method-picker .mp-unfit{margin:18px 0 0}
.tool-method-picker .mp-unfit li{padding:10px 14px;border-radius:var(--r-note);background:var(--raised);box-shadow:inset 0 0 0 1px var(--line);color:var(--muted);font-size:16px;line-height:1.45}
.tool-method-picker .mp-unfit li b{display:block;color:var(--muted);text-decoration:line-through;text-decoration-thickness:1px;font-weight:600}
.tool-method-picker .mp-unfit li span{display:block}
@media (min-width:700px){
  .tool-method-picker .mp-grid{grid-template-columns:1fr 1fr}
}

/* ---- rsvp-mini.css ---- */
.tool-rsvp-mini{margin:22px 0 22px;text-align:left}
.tool-rsvp-mini .card{padding:16px;display:grid;gap:12px}
.tool-rsvp-mini .eyebrow{margin:0}
.tool-rsvp-mini .rm-line{font:800 clamp(21px,5.6vw,26px)/1.2 var(--font-sans);letter-spacing:-.02em;color:var(--ink);margin:0}
.tool-rsvp-mini .chips{gap:8px}
.tool-rsvp-mini .chips:empty{display:none}
.tool-rsvp-mini .chip{min-height:44px;height:auto;padding:0 14px;border:0;cursor:pointer;font:500 16px/1 var(--font-sans);max-width:100%}
.tool-rsvp-mini .chip.sent{font-weight:600;text-decoration:line-through;text-decoration-thickness:1.5px}
.tool-rsvp-mini .chip:focus-visible{outline:2.5px solid var(--accent);outline-offset:2px}
.tool-rsvp-mini .rm-hint{margin:-4px 0 0;font-size:14.5px;color:var(--muted)}
.tool-rsvp-mini .f{display:block;min-width:0}
.tool-rsvp-mini .f>span{display:block;font:600 15px/1.3 var(--font-sans);color:var(--ink);margin:0 0 6px}
.tool-rsvp-mini .f>span em{font-style:normal;font-weight:400;color:var(--muted)}
.tool-rsvp-mini textarea{display:block;width:100%;min-height:72px;padding:10px 12px;font:400 16.5px/1.4 var(--font-sans);color:var(--ink);background:var(--surface);border:1px solid var(--line-input);border-radius:14px;resize:vertical;margin:0}
.tool-rsvp-mini textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.tool-rsvp-mini .rm-tools{display:flex;flex-wrap:wrap;gap:0 18px;align-items:center}
.tool-rsvp-mini .rm-tools .btn-text{padding:0;font-size:15.5px;display:inline-flex;align-items:center;cursor:pointer;border:0;text-align:left;text-decoration:none}
.tool-rsvp-mini .rm-tools a.btn-text{text-decoration:underline;text-underline-offset:3px}
.tool-rsvp-mini .rm-priv{text-align:left;margin:0}

/* ---- rsvp-tracker.css ---- */
.tool-rsvp-tracker{display:grid;gap:12px;margin:22px 0 4px;text-align:left}
.tool-rsvp-tracker .card{padding:16px}
.tool-rsvp-tracker .eyebrow{margin:0 0 8px}
.tool-rsvp-tracker .f{display:block;min-width:0}
.tool-rsvp-tracker .f>span{display:block;font:600 15px/1.3 var(--font-sans);color:var(--ink);margin:0 0 6px}
.tool-rsvp-tracker .f>span em{font-style:normal;font-weight:400;color:var(--muted)}
.tool-rsvp-tracker :is(input[type=date],input[type=text],textarea){display:block;width:100%;min-width:0;margin:0;font:400 16.5px/1.4 var(--font-sans);color:var(--ink);background:var(--surface);border:1px solid var(--line-input);border-radius:14px}
.tool-rsvp-tracker :is(input[type=date],input[type=text]){min-height:48px;padding:0 12px;-webkit-appearance:none;appearance:none;text-align:left}
.tool-rsvp-tracker textarea{padding:10px 12px;resize:vertical;min-height:72px}
.tool-rsvp-tracker :is(input,textarea):focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.tool-rsvp-tracker .rt-setup{display:grid;gap:12px}
.tool-rsvp-tracker .rt-setup>label>span{margin:0}
.tool-rsvp-tracker .rt-setup>label{margin-bottom:-6px}
.tool-rsvp-tracker .chip{min-height:44px;height:auto;padding:0 16px;border:0;cursor:pointer;font:500 16px/1 var(--font-sans)}
.tool-rsvp-tracker .chip[aria-pressed=true]{color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1.5px var(--accent);font-weight:700}
.tool-rsvp-tracker .chip:focus-visible,.tool-rsvp-tracker button:focus-visible{outline:2.5px solid var(--accent);outline-offset:2px}
.tool-rsvp-tracker .rt-line{font:700 clamp(19px,5.4vw,23px)/1.35 var(--font-sans);letter-spacing:-.01em;color:var(--ink);margin:0}
.tool-rsvp-tracker .rt-empty{margin:0 0 14px;color:var(--ink-2)}
.tool-rsvp-tracker .rt-rows{list-style:none;margin:0;padding:0}
.tool-rsvp-tracker .rt-g{padding:12px 0;border-bottom:1px solid var(--line)}
.tool-rsvp-tracker .rt-top{display:flex;align-items:center;gap:6px;margin-bottom:8px}
.tool-rsvp-tracker .rt-top .nm{flex:1;min-width:0;font:700 18px/1.3 var(--font-sans);color:var(--ink);overflow-wrap:anywhere}
.tool-rsvp-tracker .rt-plus{display:inline-flex;align-items:center;flex:none;border-radius:var(--r-pill);box-shadow:inset 0 0 0 1px var(--line-input)}
.tool-rsvp-tracker .rt-plus>span{min-width:30px;text-align:center;font:600 15px/1 var(--font-mono);color:var(--ink)}
.tool-rsvp-tracker .rt-plus button,.tool-rsvp-tracker .rt-x{width:44px;height:44px;border:0;background:none;color:var(--ink);font:500 22px/1 var(--font-sans);cursor:pointer;border-radius:var(--r-pill);padding:0}
.tool-rsvp-tracker .rt-plus button{width:40px}
.tool-rsvp-tracker .rt-x{color:var(--muted);flex:none}
.tool-rsvp-tracker .rt-seg{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.tool-rsvp-tracker .rt-seg button{min-height:44px;padding:0 4px;border:0;border-radius:12px;background:var(--surface);color:var(--ink-2);box-shadow:inset 0 0 0 1px var(--line-input);font:500 15px/1.1 var(--font-sans);cursor:pointer}
.tool-rsvp-tracker .rt-seg button[aria-pressed=true]{font-weight:700;color:var(--ink);background:var(--raised);box-shadow:inset 0 0 0 2px var(--ink)}
.tool-rsvp-tracker .rt-seg .seg-yes[aria-pressed=true]{color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 2px var(--accent)}
.tool-rsvp-tracker .rt-seg .seg-no[aria-pressed=true]{color:var(--danger);background:var(--danger-soft);box-shadow:inset 0 0 0 2px var(--danger)}
.tool-rsvp-tracker .rt-seg .seg-maybe[aria-pressed=true]{color:var(--warning);background:var(--warning-soft);box-shadow:inset 0 0 0 2px var(--warning)}
.tool-rsvp-tracker .rt-addf{margin-top:14px}
.tool-rsvp-tracker .rt-addf+.btn{margin-top:10px}
.tool-rsvp-tracker .rt-nudge{display:grid;gap:14px}
.tool-rsvp-tracker .rt-nudge[hidden]{display:none}
.tool-rsvp-tracker .rt-nudge [data-part]{display:grid;gap:12px}
.tool-rsvp-tracker .rt-h{font:800 clamp(21px,5.8vw,26px)/1.2 var(--font-sans);letter-spacing:-.02em;color:var(--ink);margin:0}
.tool-rsvp-tracker .rt-sub{margin:-6px 0 0;font-size:15.5px;color:var(--ink-2)}
.tool-rsvp-tracker .rt-two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin-bottom:2px}
.tool-rsvp-tracker .rt-reset{margin:-4px 0 0}
.tool-rsvp-tracker .rt-reset .btn-text{padding:0;font-size:15px;cursor:pointer;border:0}
.tool-rsvp-tracker .rt-pv{margin:0}
.tool-rsvp-tracker .rt-bubble{max-width:92%;margin-left:auto;background:#34C759;color:#fff;padding:10px 14px;border-radius:18px 18px 4px 18px;font:400 16.5px/1.4 var(--font-sans);white-space:pre-wrap;overflow-wrap:anywhere}
@media (prefers-color-scheme:dark){.tool-rsvp-tracker .rt-bubble{background:#1F8F40}}
.tool-rsvp-tracker .rt-bubble:empty{display:none}
.tool-rsvp-tracker .rt-acts{display:grid;grid-template-columns:1fr;gap:10px}
@media (min-width:480px){.tool-rsvp-tracker .rt-acts{grid-template-columns:1fr 1fr}}
.tool-rsvp-tracker .btn-caption{text-align:left;margin:0}
.tool-rsvp-tracker .rt-note{margin:0;font-size:15px;color:var(--muted)}
.tool-rsvp-tracker .rt-cal{padding-top:14px;border-top:1px solid var(--line)}
.tool-rsvp-tracker .btn[disabled]{opacity:.45;cursor:not-allowed}
.tool-rsvp-tracker .rt-keepbtns{display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px}
.tool-rsvp-tracker .rt-keepbtns .btn-text{padding:0;font-size:15.5px;border:0;cursor:pointer}
.tool-rsvp-tracker .rt-danger{color:var(--danger)}
.tool-rsvp-tracker .rt-priv{margin:12px 0 0}

/* K3 item 12: on mobile, headcount + guest entry come first; date/event type after */
@media (max-width:979px){.tool-rsvp-tracker{display:flex;flex-direction:column;margin-top:4px}.tool-rsvp-tracker .rt-empty{margin:0 0 6px}.tool-rsvp-tracker .rt-count{order:1}.tool-rsvp-tracker .rt-guests{order:2}.tool-rsvp-tracker .rt-setup{order:3}.tool-rsvp-tracker .rt-nudge{order:4}.tool-rsvp-tracker .rt-keep{order:5}}

/* K3 final fix 7 Nov (item 12): on phones the guest entry (textarea + Add) comes first, the headcount right under it, date/event type after */
@media (max-width:979px){.tool-rsvp-tracker .rt-guests{order:1}.tool-rsvp-tracker .rt-count{order:2}.tool-rsvp-tracker{gap:10px}}

/* ---- send-reminder.css ---- */
.tool-send-reminder{display:grid;gap:14px;margin:22px 0 4px;text-align:left}
.tool-send-reminder .card{padding:16px}
.tool-send-reminder .f{display:block;min-width:0}
.tool-send-reminder .f>span{display:block;font:600 15px/1.3 var(--font-sans);color:var(--ink);margin:0 0 6px}
.tool-send-reminder .f>span em{font-style:normal;font-weight:400;color:var(--muted)}
.tool-send-reminder :is(select,input[type=date],input[type=time],textarea){display:block;width:100%;min-width:0;font:400 16.5px/1.4 var(--font-sans);color:var(--ink);background:var(--surface);border:1px solid var(--line-input);border-radius:14px;margin:0}
.tool-send-reminder :is(select,input[type=date],input[type=time]){min-height:48px;padding:0 10px;-webkit-appearance:none;appearance:none;text-align:left}
.tool-send-reminder select{padding-right:30px;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 17px) 21px,calc(100% - 12px) 21px;background-size:5px 5px;background-repeat:no-repeat}
.tool-send-reminder textarea{padding:10px 12px;resize:vertical;min-height:72px}
.tool-send-reminder :is(select,input,textarea):focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.tool-send-reminder .sr-form{display:grid;gap:10px}
.tool-send-reminder .sr-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
.tool-send-reminder .sr-linkcell{display:flex;align-items:flex-end}
.tool-send-reminder .sr-linkcell .btn-text{border:0;cursor:pointer;padding:0;min-height:48px;font-size:15px;text-align:left}
.tool-send-reminder .sr-out .eyebrow{margin-bottom:6px}
.tool-send-reminder .sr-line{font:600 17.5px/1.35 var(--font-sans);color:var(--ink);margin:0 0 12px}
.tool-send-reminder #sr-next{margin:0 0 12px}
.tool-send-reminder #sr-next .chip{height:32px;padding:0 11px;font-size:14.5px}
.tool-send-reminder .sr-out .btn-caption{text-align:left}
.tool-send-reminder .sr-out .btn-caption strong{color:var(--ink)}
.tool-send-reminder .sr-done{margin:12px 0 0;font-size:15px;color:var(--accent);font-weight:600}
.tool-send-reminder .btn[disabled]{opacity:.45;cursor:not-allowed}
.tool-send-reminder .note{margin-top:14px}
.tool-send-reminder .sr-form .note{margin-top:0}
.tool-send-reminder .note b{display:block;color:var(--ink);margin-bottom:2px}
.tool-send-reminder .note a{color:var(--accent)}

/* K3 item 12: next dates + .ics button sit right under the first row of controls on mobile */
@media (max-width:979px){.tool-send-reminder{display:flex;flex-direction:column;gap:12px}.tool-send-reminder .sr-form{display:contents}.tool-send-reminder{margin-top:6px}.tool-send-reminder .sr-grid{order:1;grid-template-columns:1.15fr 1fr 1.15fr;gap:6px}.tool-send-reminder .sr-linkcell{margin-top:-6px}.tool-send-reminder .sr-linkcell .btn-text{min-height:32px}.tool-send-reminder .sr-out>.eyebrow{display:none}.tool-send-reminder .sr-line{font-size:17px;margin-top:0}.tool-send-reminder .sr-grid .f>span{font-size:14px}.tool-send-reminder .sr-grid select,.tool-send-reminder .sr-grid input{padding-left:9px;padding-right:22px;font-size:15.5px;min-height:46px;background-position:right 8px center}.tool-send-reminder .sr-linkcell{grid-column:1/-1;order:9}.tool-send-reminder .sr-out{order:2}.tool-send-reminder .sr-form>label.f{order:3}.tool-send-reminder #sr-warn{order:4}}

/* ---- sms-counter.css ---- */
.tool-sms-counter{display:grid;gap:12px;margin:18px 0 0;max-width:var(--col)}
.tool-sms-counter .sc-lbl{font:600 16px/1.3 var(--font-sans);color:var(--ink)}
.tool-sms-counter .sc-lbl em,.tool-sms-counter .sc-namelen em{font-style:normal;font-weight:400;color:var(--muted)}
.tool-sms-counter .sc-box{position:relative;background:var(--surface);border:1px solid var(--line-input);border-radius:14px;overflow:hidden}
.tool-sms-counter .sc-box:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.tool-sms-counter .sc-mirror,.tool-sms-counter textarea{display:block;width:100%;margin:0;border:0;padding:12px 14px;
  font:400 17px/1.5 var(--font-sans);letter-spacing:0;font-variant-ligatures:none;white-space:pre-wrap;overflow-wrap:anywhere;word-break:normal;tab-size:4}
.tool-sms-counter .sc-mirror{position:absolute;inset:0;overflow:hidden;pointer-events:none;color:transparent}
.tool-sms-counter textarea{position:relative;z-index:1;min-height:132px;resize:none;overflow:hidden;background:transparent;color:var(--ink);caret-color:var(--ink);outline:none}
.tool-sms-counter .sc-ext{background:color-mix(in srgb,var(--warning) 28%,transparent);box-shadow:inset 0 -2px 0 var(--warning);border-radius:3px}
.tool-sms-counter .sc-bad{background:color-mix(in srgb,var(--danger) 24%,transparent);box-shadow:inset 0 -2px 0 var(--danger);border-radius:3px}
.tool-sms-counter .sc-name{background:var(--accent-soft);border-radius:3px}
.tool-sms-counter .sc-meta{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:6px 14px}
.tool-sms-counter .sc-result{flex:1 1 240px;margin:0;color:var(--ink);font-size:17px;line-height:1.5}
.tool-sms-counter .sc-left{flex:none;margin:0;font-size:var(--t-caption);color:var(--muted);white-space:nowrap}
.tool-sms-counter .sc-left b{font-size:20px;color:var(--ink)}
.tool-sms-counter .sc-key{display:flex;flex-wrap:wrap;gap:4px 16px;list-style:none;margin:0;padding:0;font-size:var(--t-caption);color:var(--ink-2)}
.tool-sms-counter .sc-key li{display:inline-flex;align-items:center;gap:7px}
.tool-sms-counter .sc-sw{width:18px;height:18px;border-radius:4px;flex:none;box-shadow:inset 0 0 0 1px var(--line-input)}
.tool-sms-counter .sc-sw-plain{background:var(--surface)}
.tool-sms-counter .sc-sw-ext{background:color-mix(in srgb,var(--warning) 28%,transparent);box-shadow:inset 0 -2px 0 var(--warning)}
.tool-sms-counter .sc-sw-bad{background:color-mix(in srgb,var(--danger) 24%,transparent);box-shadow:inset 0 -2px 0 var(--danger)}
.tool-sms-counter .sc-actions{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px}
.tool-sms-counter .sc-actions .btn{min-height:var(--tap);padding:0 18px}
.tool-sms-counter .sc-namelen{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 12px;font:600 16px/1.3 var(--font-sans);color:var(--ink)}
.tool-sms-counter input[type=number]{width:84px;min-height:var(--tap);font:500 17px/1 var(--font-mono);color:var(--ink);background:var(--surface);border:1px solid var(--line-input);border-radius:12px;padding:0 12px}
.tool-sms-counter input[type=number]:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.tool-sms-counter .sc-always{margin:0;font-size:var(--t-caption);color:var(--muted)}
.tool-sms-counter .btn-text{border:0;cursor:pointer;font:600 16px/1.2 var(--font-sans)}

/* ---- template-library.css ---- */
/* template-library — extra CSS only. Tokens/app.css supply .card .btn .eyebrow .merge. */
.tool-template-library{display:block;min-width:0;max-width:100%;margin:20px 0 0;color:var(--ink-2)}
.tool-template-library *{min-width:0}
.tool-template-library .tl-filters{display:grid;gap:12px;margin:0 0 14px}
.tool-template-library .tl-filters[hidden]{display:none}

/* one scrollable chip row: the scroll stays inside this box */
.tool-template-library .tl-chiprow{display:flex;gap:8px;overflow-x:auto;overflow-y:hidden;max-width:100%;padding:2px 2px 6px;
  overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--line-input) transparent;}
.tool-template-library .tl-chip{flex:none;display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border:0;border-radius:var(--r-pill);cursor:pointer;
  font:500 17px/1 var(--font-sans);color:var(--ink-2);background:var(--surface);box-shadow:inset 0 0 0 1px var(--line-input);white-space:nowrap}
.tool-template-library .tl-chip[aria-pressed="true"]{color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1.5px var(--accent);font-weight:700}

.tool-template-library .tl-sels{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.tool-template-library .tl-sel{display:grid;gap:4px}
.tool-template-library .tl-sel>span{font:700 13px/1.2 var(--font-sans);letter-spacing:var(--track-eyebrow);text-transform:uppercase;color:var(--muted)}
.tool-template-library .tl-sel select{width:100%;min-height:48px;padding:0 12px;border-radius:14px;border:1px solid var(--line-input);background:var(--surface);color:var(--ink);font:500 17px/1.2 var(--font-sans)}

.tool-template-library .tl-meta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 16px;margin:0 0 14px}
.tool-template-library .tl-count{margin:0;font:600 17px/1.4 var(--font-sans);color:var(--ink)}
.tool-template-library .tl-dl{display:inline-flex;align-items:center;min-height:44px;font:600 17px/1.2 var(--font-sans)}

.tool-template-library .tl-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.tool-template-library .tl-card[hidden]{display:none}
.tool-template-library .tl-card{padding:16px 16px 14px}
.tool-template-library .tl-card .eyebrow{margin:0 0 8px;overflow-wrap:anywhere}
.tool-template-library .tl-text{margin:0 0 10px;font:400 18px/1.55 var(--font-sans);color:var(--ink);overflow-wrap:anywhere}
.tool-template-library .tl-spec{margin:0 0 12px;font:500 15px/1.4 var(--font-mono);color:var(--ink-2);font-variant-numeric:tabular-nums}
.tool-template-library .tl-flag{margin:-4px 0 12px;padding:9px 12px;border-radius:var(--r-note);background:var(--warning-soft);color:var(--ink);font-size:16px;line-height:1.45}
.tool-template-library .tl-actions{display:flex;flex-wrap:wrap;gap:10px}
.tool-template-library .tl-actions .btn{min-height:48px;padding:0 18px;flex:1 1 auto;white-space:nowrap}
.tool-template-library .tl-empty{margin-top:12px}
.tool-template-library .tl-empty p{margin:0 0 12px;color:var(--ink);font-weight:600}
@media (min-width:700px){
  .tool-template-library .tl-filters{grid-template-columns:1fr;}
  .tool-template-library .tl-sels{max-width:520px}
  .tool-template-library .tl-actions .btn{flex:0 0 auto}
}

/* K3 item 12: first full template (text + count + Copy) inside 390x844 */
@media (max-width:600px){.tool-template-library{margin-top:10px}.tool-template-library .tl-filters{gap:8px;margin-bottom:8px}.tool-template-library .tl-sel>span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .tool-template-library .tl-sel select{min-height:44px;font-size:16px}.tool-template-library .tl-chip{min-height:40px;font-size:16px;padding:0 14px}
  .tool-template-library .tl-meta{margin-bottom:8px;gap:0 12px}.tool-template-library .tl-count,.tool-template-library .tl-dl{font-size:15px;min-height:32px}
  .tool-template-library .tl-card{padding:12px 14px 12px}.tool-template-library .tl-text{font-size:16.5px;line-height:1.5;margin-bottom:6px}.tool-template-library .tl-spec{font-size:14px;margin-bottom:8px}}

.tool-template-library .tl-more summary{cursor:pointer;font:600 15px/1.3 var(--font-sans);color:var(--accent);min-height:32px;display:flex;align-items:center}
.tool-template-library .tl-more[open] summary{margin-bottom:8px}
@media (max-width:600px){.tool-template-library .tl-meta{flex-wrap:nowrap}}
@media (max-width:600px){.tool-template-library .tl-count{font-size:14.5px}.tool-template-library .tl-dl{white-space:nowrap;font-size:14.5px}.tool-template-library .tl-chip{min-height:38px}.tool-template-library .tl-card .eyebrow{margin-bottom:4px}.tool-template-library .tl-more summary{min-height:28px;padding:0;border:0}.tool-template-library .tl-actions .btn{min-height:44px}}

/* K3 final fix 7 Nov (item 12): first template (text + SMS count + Copy) inside 390x844 — tighter filter row, meta line and card */
@media (max-width:600px){.tool-template-library{margin-top:4px}.tool-template-library .tl-filters{gap:4px;margin-bottom:6px}.tool-template-library .tl-chiprow{padding:0 2px 4px}.tool-template-library .tl-chip{min-height:36px}
  .tool-template-library .tl-more summary{min-height:24px}.tool-template-library .tl-meta{margin-bottom:6px}.tool-template-library .tl-count,.tool-template-library .tl-dl{min-height:28px}
  .tool-template-library .tl-card{padding:10px 14px}.tool-template-library .tl-card .eyebrow{margin-bottom:3px}.tool-template-library .tl-text{margin-bottom:5px;line-height:1.45}.tool-template-library .tl-spec{margin-bottom:6px}.tool-template-library .tl-actions .btn{min-height:42px}}

/* ---- vcf-drop.css ---- */
.tool-vcf-drop{margin:22px 0 4px;text-align:left}
.tool-vcf-drop .vd-card{padding:18px;box-shadow:inset 0 0 0 1.5px var(--line-input);border-style:dashed;transition:background .15s}
.tool-vcf-drop .vd-card.over{background:var(--accent-soft);border-color:var(--accent)}
.tool-vcf-drop .eyebrow{margin-bottom:6px}
.tool-vcf-drop .vd-title{font:700 22px/1.25 var(--font-sans);letter-spacing:-.01em;color:var(--ink);margin:0 0 14px}
.tool-vcf-drop .vd-choose{position:relative;width:100%;cursor:pointer}
.tool-vcf-drop .vd-choose input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;font-size:0}
.tool-vcf-drop .vd-choose:focus-within{outline:2.5px solid var(--accent);outline-offset:3px}
.tool-vcf-drop .vd-priv{text-align:left;margin:12px 0 0}
.tool-vcf-drop .vd-err{margin:14px 0 0;padding:12px 14px;border-radius:var(--r-note);background:var(--danger-soft);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--danger) 35%,transparent);color:var(--ink);font-size:15.5px;line-height:1.5}
.tool-vcf-drop .vd-out{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.tool-vcf-drop .vd-sum{font:700 19px/1.35 var(--font-sans);color:var(--ink);margin:0 0 6px}
.tool-vcf-drop .vd-list{margin:0 0 14px}
.tool-vcf-drop .vd-list>li{min-height:48px;padding:6px 0;font:600 17px/1.3 var(--font-mono);font-variant-numeric:tabular-nums;color:var(--ink)}
.tool-vcf-drop .vd-out .btn-caption{text-align:left}
