/* ===========================================================
   MAX3 Momentum OS — Marketing section styles (FD-CP288)
   Scoped under .mkt / .mkf / .mkc. The host reuses .comm/.comm-tabs
   chrome from communication.css; everything below is the two mocks.
   =========================================================== */

/* ---- shared bits ---- */
.mk-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin:16px 0 14px}
.mk-title{font-size:19px;font-weight:800}
.mk-sub{font-size:12px;color:var(--m3-text-3);margin-top:3px}
.mk-primary{background:var(--m3-primary);color:var(--m3-on-primary);border:0;border-radius:9px;padding:9px 16px;
  font-weight:800;font-size:12.5px;cursor:pointer;font-family:var(--ff)}
.mk-primary:disabled{opacity:.4;cursor:not-allowed}
.mk-primary:hover:not(:disabled){filter:brightness(1.07)}
.mk-ghost{background:none;border:1px solid var(--m3-line);color:var(--m3-text-2);border-radius:9px;
  padding:8px 12px;font-weight:700;font-size:12px;cursor:pointer;font-family:var(--ff)}
.mk-buildnote{margin-top:18px;border:1px dashed var(--m3-line);border-radius:11px;padding:11px 14px;
  font-size:11.5px;color:var(--m3-text-3);line-height:1.55}
.mk-buildnote b{color:var(--m3-text-2)}

/* ---- funnels list ---- */
.mkf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px}
.mkf-card{display:flex;flex-direction:column;gap:9px;text-align:left;background:var(--m3-surface);
  border:1px solid var(--m3-line);border-radius:13px;padding:14px 15px;cursor:pointer;color:var(--m3-text);font-family:var(--ff)}
.mkf-card:hover{border-color:var(--m3-gray-ink)}
.mkf-card.locked{opacity:.85}
/* FD-CP302 — card ⋯ menu (Duplicate · Archive) */
.mkf-card{position:relative}
.mkf-topright{display:flex;align-items:center;gap:6px}
.mkf-more{background:none;border:1px solid transparent;border-radius:7px;color:var(--m3-text-3);cursor:pointer;
  font-size:15px;line-height:1;padding:2px 7px}
.mkf-more:hover{border-color:var(--m3-line);color:var(--m3-text);background:var(--m3-surface-2)}
.mkf-menu{position:absolute;right:10px;top:38px;z-index:45;display:flex;flex-direction:column;min-width:170px;
  background:var(--m3-surface-2);border:1px solid var(--m3-line);border-radius:9px;padding:4px;
  box-shadow:0 12px 34px var(--m3-shadow)}
.mkf-menu button{text-align:left;background:none;border:none;color:var(--m3-text);padding:8px 10px;border-radius:6px;
  cursor:pointer;font-size:12.5px;font-family:var(--ff)}
.mkf-menu button:hover{background:var(--m3-surface)}
.mkf-menu button.danger{color:var(--m3-red-ink)}
.mkf-menuscrim{position:fixed;inset:0;z-index:44}
.mkf-cardtop{display:flex;align-items:center;justify-content:space-between;gap:8px}
.mkf-name{font-weight:800;font-size:14px}
.mkf-status{font-size:9.5px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;border-radius:999px;padding:3px 9px}
.mkf-status.live{background:var(--m3-primary-wash-2);color:var(--m3-lime-ink)}
.mkf-status.draft{background:var(--m3-amber-wash-2);color:var(--m3-amber-ink)}
.mkf-lock{font-size:11px;color:var(--m3-text-3)}
.mkf-steps-mini{font-size:11px;color:var(--m3-text-3)}
.mkf-stats{display:flex;align-items:center;gap:7px;font-size:11.5px;color:var(--m3-text-2)}
.mkf-stats b{font-size:13px}
.mkf-stats .arr{color:var(--m3-text-3)}

/* ---- funnel editor ---- */
.mkf-ed{display:flex;flex-direction:column;gap:12px;margin-top:12px}
.mkf-edbar{display:flex;align-items:center;gap:11px}
.mkf-edname{background:none;border:0;border-bottom:1px dashed transparent;color:var(--m3-text);
  font-size:16px;font-weight:800;font-family:var(--ff);min-width:180px;outline:none}
.mkf-edname:focus{border-bottom-color:var(--m3-gray-ink)}
.mkf-edstats{display:flex;align-items:center;gap:7px;font-size:11.5px;color:var(--m3-text-2);margin-left:auto;margin-right:12px}
.mkf-edstats .arr{color:var(--m3-text-3)}
.mkf-edcols{display:grid;grid-template-columns:210px 1fr 250px;gap:14px;align-items:start}
@media (max-width:1080px){.mkf-edcols{grid-template-columns:1fr}}
.mkf-steps{display:flex;flex-direction:column;gap:7px}
.mkf-step{display:flex;align-items:center;gap:9px;background:var(--m3-surface);border:1px solid var(--m3-line);
  border-radius:10px;padding:10px 11px;cursor:pointer;color:var(--m3-text);font-family:var(--ff)}
.mkf-step.on{border-color:var(--m3-lime-ink)}
.mkf-stepn{width:20px;height:20px;border-radius:50%;background:var(--m3-surface-2);display:grid;place-items:center;
  font-size:10.5px;font-weight:800;color:var(--m3-text-2)}
.mkf-step.on .mkf-stepn{background:var(--m3-primary-wash-2);color:var(--m3-lime-ink)}
.mkf-steplab{font-weight:700;font-size:12.5px}
.mkf-stepdot{width:8px;height:8px;border-radius:50%;background:var(--m3-line);margin-left:auto}
.mkf-stepdot.done{background:var(--m3-success)}
.mkf-stepnote{font-size:10.5px;color:var(--m3-text-3);padding:4px 3px;line-height:1.5}
.mkf-canvas{display:grid;place-items:start center}
.mkf-frame{width:100%;max-width:430px;background:var(--m3-bg);border:1px solid var(--m3-line);border-radius:16px;
  padding:18px;min-height:340px}
.mkf-page{display:flex;flex-direction:column;gap:12px}
.mkf-pglogo{font-weight:900;letter-spacing:1px;color:var(--m3-lime-ink);font-size:13px}
.mkf-pgh{background:none;border:0;border-bottom:1px dashed transparent;color:var(--m3-text);font-size:21px;
  font-weight:800;font-family:var(--ff);outline:none;width:100%}
.mkf-pgh:hover,.mkf-pgh:focus{border-bottom-color:var(--m3-gray-ink)}
.mkf-pgs{background:none;border:0;color:var(--m3-text-2);font-size:13px;font-family:var(--ff);outline:none;
  width:100%;resize:none;line-height:1.5}
.mkf-pgimg{border:1px dashed var(--m3-line);border-radius:10px;padding:34px 10px;text-align:center;
  color:var(--m3-text-3);font-size:11.5px}
.mkf-pgcta input{width:100%;background:var(--m3-primary);border:0;border-radius:10px;color:var(--m3-on-primary);
  font-weight:800;font-size:14px;padding:12px;text-align:center;font-family:var(--ff);cursor:text}
.mkf-pgok{font-size:34px;color:var(--m3-lime-ink);text-align:center}
.mkf-formfields{display:flex;flex-direction:column;gap:8px}
.mkf-ff{border:1px solid var(--m3-line);border-radius:9px;padding:10px 12px;font-size:12.5px;color:var(--m3-text-3)}
.mkf-consent{font-size:10.5px;color:var(--m3-text-3);line-height:1.55;border:1px dashed var(--m3-line);
  border-radius:9px;padding:8px 10px}
.mkf-cb{margin-right:4px}
.mkf-followhead{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--m3-text-3)}
.mkf-followbody{background:var(--m3-surface);border:1px solid var(--m3-line);border-radius:12px;color:var(--m3-text);
  font-size:13px;font-family:var(--ff);padding:11px 13px;resize:none;line-height:1.5;outline:none}
.mkf-side{background:var(--m3-surface);border:1px solid var(--m3-line);border-radius:13px;padding:13px 14px;
  display:flex;flex-direction:column;gap:9px}
.mkf-sidehead{font-weight:800;font-size:13px}
.mkf-sidelab{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--m3-text-3)}
.mkf-chips{display:flex;flex-wrap:wrap;gap:6px}
.mkf-chip{border:1px solid var(--m3-line);background:none;color:var(--m3-text-2);border-radius:999px;
  padding:5px 11px;font-size:11px;font-weight:700;cursor:pointer;font-family:var(--ff)}
.mkf-chip.on{border-color:var(--m3-lime-ink);color:var(--m3-lime-ink);background:var(--m3-primary-wash)}
.mkf-sidenote{font-size:11px;color:var(--m3-text-3);line-height:1.55}
.mkf-done{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--m3-text-2);margin-top:2px;cursor:pointer}

/* ---- campaigns list ---- */
/* FD-CP372b — no overflow:hidden here: it clipped the row ⋯ menu (Philip:
   "the button is covered"). The corners round per-row instead. */
.mkc-list{border:1px solid var(--m3-line);border-radius:13px}
.mkc-row{display:grid;grid-template-columns:1.6fr 1fr .7fr .5fr .5fr;gap:10px;align-items:center;
  padding:11px 15px;border-bottom:1px solid var(--m3-line);font-size:12.5px}
.mkc-row:first-child{border-radius:12px 12px 0 0}
.mkc-row:last-child{border-bottom:0;border-radius:0 0 12px 12px}
.mkc-row.head{background:var(--m3-surface);font-size:10px;font-weight:800;text-transform:uppercase;
  letter-spacing:.4px;color:var(--m3-text-3)}
.mkc-name{display:flex;flex-direction:column;gap:2px;font-weight:700}
.mkc-name small{font-weight:500;font-size:10.5px;color:var(--m3-text-3)}
.mkc-status{font-size:9.5px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;border-radius:999px;padding:3px 9px}
.mkc-status.sent{background:var(--m3-primary-wash-2);color:var(--m3-lime-ink)}
.mkc-status.draft{background:var(--m3-amber-wash-2);color:var(--m3-amber-ink)}
.mkc-pct{font-weight:800;font-variant-numeric:tabular-nums}

/* ---- campaign wizard ---- */
.mkc-wiz{display:flex;flex-direction:column;gap:14px;margin-top:12px}
.mkc-wizbar{display:flex;align-items:center;gap:9px}
.mkc-wizstep{display:flex;align-items:center;gap:7px;background:none;border:1px solid var(--m3-line);
  border-radius:999px;padding:7px 14px;color:var(--m3-text-2);font-weight:700;font-size:12px;cursor:pointer;font-family:var(--ff)}
.mkc-wizstep.on{border-color:var(--m3-lime-ink);color:var(--m3-text)}
.mkc-wizstep.done{color:var(--m3-success-ink)}
.mkc-wizstep .n{width:18px;height:18px;border-radius:50%;background:var(--m3-surface-2);display:grid;
  place-items:center;font-size:10px;font-weight:800}
.mkc-wizstep.on .n{background:var(--m3-primary-wash-2);color:var(--m3-lime-ink)}
.mkc-wizh{font-size:15px;font-weight:800;margin-bottom:10px}
.mkc-audgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;margin-bottom:12px}
.mkc-audcard{display:flex;flex-direction:column;gap:3px;text-align:left;background:var(--m3-surface);
  border:1px solid var(--m3-line);border-radius:11px;padding:13px 14px;cursor:pointer;color:var(--m3-text);font-family:var(--ff)}
.mkc-audcard.on{border-color:var(--m3-lime-ink);background:var(--m3-primary-wash)}
.mkc-audcard small{font-size:10.5px;color:var(--m3-text-3)}
/* FD-CP370 — a picker card with its dropdown open, and the dropdown row */
.mkc-audcard.pickopen{border-color:var(--m3-gray-ink)}
.mkc-audpick{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.mkc-audpick>span{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--m3-text-3)}
.mkc-audpick .mkc-subject{min-width:280px;font-weight:600}
/* FD-CP370 — the "Send a test" popover in the wizard bar */
.mkc-testpop{position:absolute;top:calc(100% + 8px);right:0;z-index:60;display:flex;flex-direction:column;gap:8px;
  width:280px;background:var(--m3-surface);border:1px solid var(--m3-line);border-radius:12px;padding:12px;
  box-shadow:0 10px 30px var(--m3-shadow)}
.mkc-testpop>span{font-size:11px;color:var(--m3-text-3);line-height:1.45}
/* FD-CP370 — the reuse gallery */
.fb-galmodal{width:640px;max-width:94vw}
.fb-galgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px;max-height:52vh;overflow:auto}
.fb-galthumb{aspect-ratio:4/3;border:1px solid var(--m3-line);border-radius:9px;cursor:pointer;
  background-color:var(--m3-surface-2);background-size:cover;background-position:center}
.fb-galthumb:hover{border-color:var(--m3-lime-ink)}
/* FD-CP370 — the hand-picked people audience */
.mkc-people{display:flex;flex-direction:column;gap:10px;margin-bottom:12px;background:var(--m3-surface);
  border:1px solid var(--m3-line);border-radius:12px;padding:12px}
.mkc-people-bar{display:flex;align-items:center;gap:10px}
.mkc-people-bar .mkc-preheader{flex:1;min-width:160px}
.mkc-people-count{font-size:11.5px;color:var(--m3-text-3);white-space:nowrap}
.mkc-people-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px;max-height:340px;overflow:auto}
.mkc-person{display:flex;align-items:center;gap:8px;text-align:left;background:var(--m3-bg);
  border:1px solid var(--m3-line);border-radius:9px;padding:8px 10px;cursor:pointer;color:var(--m3-text);font-family:var(--ff)}
.mkc-person.on{border-color:var(--m3-lime-ink);background:var(--m3-primary-wash)}
.mkc-person b{font-size:12.5px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mkc-person small{font-size:10px;color:var(--m3-text-3);margin-left:auto;white-space:nowrap}
.mkc-person-cb{width:16px;height:16px;border:1px solid var(--m3-line);border-radius:5px;display:grid;place-items:center;
  font-size:10px;font-weight:800;color:var(--m3-lime-ink);flex:none}
.mkc-person.on .mkc-person-cb{border-color:var(--m3-lime-ink)}
/* FD-CP372 — the campaign row's ⋯ menu + the wizard-bar campaign name */
.mkc-menuscrim{position:fixed;inset:0;z-index:59}
.mkc-rowmenu{position:absolute;top:calc(100% + 4px);right:0;z-index:60;display:flex;flex-direction:column;
  min-width:190px;background:var(--m3-surface);border:1px solid var(--m3-line);border-radius:10px;padding:5px;
  box-shadow:0 10px 30px var(--m3-shadow)}
.mkc-rowmenu button{background:none;border:0;border-radius:7px;color:var(--m3-text);font-family:var(--ff);
  font-size:12px;font-weight:600;text-align:left;padding:8px 10px;cursor:pointer}
.mkc-rowmenu button:hover{background:var(--m3-surface-2)}
.mkc-rowmenu button.danger{color:var(--m3-red-ink)}
.mkc-name{font-size:13px;min-width:120px;max-width:200px;flex-shrink:1}
/* FD-CP373b — the sent campaign's persisted outcome */
.mkc-sendres{display:flex;flex-direction:column;gap:5px;border:1px solid var(--m3-line);border-radius:11px;
  padding:11px 14px;margin-bottom:14px;background:var(--m3-surface);font-size:12px}
.mkc-sendres b{font-size:13px;color:var(--m3-success-ink)}
.mkc-sendres.bad b{color:var(--m3-amber-ink)}
.mkc-sendres>span{color:var(--m3-text-3);font-size:11.5px}
.mkc-sendres-reasons{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}
.mkc-sendres-reasons span{background:var(--m3-amber-wash-2);color:var(--m3-amber-ink);border-radius:999px;
  padding:3px 10px;font-size:10.5px;font-weight:700}
.mkc-content{display:grid;grid-template-columns:1fr 380px;gap:16px;align-items:start}
@media (max-width:1080px){.mkc-content{grid-template-columns:1fr}}
.mkc-blocks{display:flex;flex-direction:column;gap:9px}
.mkc-subject,.mkc-preheader{background:var(--m3-bg);border:1px solid var(--m3-line);border-radius:10px;
  color:var(--m3-text);font-family:var(--ff);padding:11px 13px;font-size:13px;outline:none}
.mkc-subject{font-weight:700}
.mkc-subject:focus,.mkc-preheader:focus{border-color:var(--m3-gray-ink)}
.mkc-block{background:var(--m3-surface);border:1px solid var(--m3-line);border-radius:11px;padding:9px 11px;
  display:flex;flex-direction:column;gap:7px}
.mkc-blockbar{display:flex;align-items:center;gap:5px}
.mkc-blockkind{font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--m3-text-3);margin-right:auto}
.mkc-blockbar button{background:none;border:0;color:var(--m3-text-3);cursor:pointer;font-size:11px;padding:2px 5px}
.mkc-blockbar button:hover{color:var(--m3-text)}
.mkc-block textarea{background:none;border:0;color:var(--m3-text);font-size:13px;font-family:var(--ff);
  resize:none;outline:none;line-height:1.5}
.mkc-btnrow{display:flex;align-items:center;gap:9px}
.mkc-btnrow input{background:var(--m3-primary);border:0;border-radius:8px;color:var(--m3-on-primary);font-weight:800;
  font-size:12.5px;padding:8px 14px;font-family:var(--ff)}
.mkc-btnrow small{color:var(--m3-text-3);font-size:10.5px}
.mkc-imgph{border:1px dashed var(--m3-line);border-radius:9px;padding:26px 10px;text-align:center;
  color:var(--m3-text-3);font-size:11.5px}
.mkc-cardph{border:1px solid var(--m3-line);border-radius:9px;padding:10px 12px;display:flex;flex-direction:column;gap:2px}
.mkc-cardph small{color:var(--m3-text-3);font-size:10.5px}
.mkc-addrow{display:flex;flex-wrap:wrap;gap:6px;padding:4px 0}
.mkc-addrow button{border:1px dashed var(--m3-line);background:none;color:var(--m3-text-3);border-radius:999px;
  padding:6px 12px;font-size:11px;font-weight:700;cursor:pointer;font-family:var(--ff)}
.mkc-addrow button:hover{color:var(--m3-text);border-color:var(--m3-gray-ink)}
.mkc-preview{background:#f4f2ec;border-radius:13px;overflow:hidden;color:#232323}
.mkc-pvchrome{background:#e9e6de;padding:10px 14px}
.mkc-pvsub{font-weight:800;font-size:12.5px}
.mkc-pvpre{font-size:11px;color:#777;margin-top:1px}
.mkc-pvbody{padding:18px 20px;display:flex;flex-direction:column;gap:12px;font-family:-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif}
.mkc-pvbody .pv-h{font-size:19px;font-weight:800}
.mkc-pvbody .pv-t{font-size:13px;line-height:1.55;color:#3a3a3a}
.mkc-pvbody .pv-b{background:#7CBA2C;color:#fff;font-weight:800;font-size:13px;border-radius:8px;
  padding:11px;text-align:center;max-width:230px}
.mkc-pvbody .pv-i{border:1px dashed #c9c4b8;border-radius:9px;padding:30px;text-align:center;color:#999;font-size:11.5px}
.mkc-pvbody .pv-c{border:1px solid #ddd8cc;border-radius:9px;padding:11px 13px;display:flex;flex-direction:column;gap:2px}
.mkc-pvbody .pv-c small{color:#888;font-size:10.5px}
.mkc-pvbody .pv-foot{font-size:10px;color:#a3a09a;text-align:center;margin-top:8px}
.mkc-review{max-width:520px}
.mkc-revcard{background:var(--m3-surface);border:1px solid var(--m3-line);border-radius:13px;padding:15px 17px;
  display:flex;flex-direction:column;gap:8px;font-size:13px;margin-bottom:11px}
.mkc-sched{display:flex;align-items:center;gap:8px;margin-top:5px}
.mkc-dt{background:var(--m3-bg);border:1px solid var(--m3-line);border-radius:8px;color:var(--m3-text);
  font-family:var(--ff);padding:6px 9px;font-size:12px}

/* ---- promos (FD-CP289) ---- */
.mkp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.mkp-card{display:flex;gap:12px;text-align:left;background:var(--m3-surface);border:1px solid var(--m3-line);
  border-radius:13px;padding:13px 14px;cursor:pointer;color:var(--m3-text);font-family:var(--ff)}
.mkp-card:hover{border-color:var(--m3-gray-ink)}
.mkp-thumb{flex:0 0 auto;width:56px;height:56px;border-radius:10px;border:1px dashed var(--m3-line);
  display:grid;place-items:center;font-size:20px;opacity:.7}
.mkp-body{display:flex;flex-direction:column;gap:4px;min-width:0}
.mkp-cardtop{display:flex;align-items:center;gap:8px;justify-content:space-between}
.mkp-name{font-weight:800;font-size:13.5px}
.mkp-status{font-size:9.5px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;border-radius:999px;padding:3px 9px}
.mkp-status.on{background:var(--m3-primary-wash-2);color:var(--m3-lime-ink)}
.mkp-status.sched{background:var(--m3-blue-wash-2);color:var(--m3-blue-ink)}
.mkp-status.off{background:var(--m3-surface-2);color:var(--m3-text-3)}
.mkp-meta{font-size:11px;color:var(--m3-text-3)}
.mkp-stats{font-size:11px;color:var(--m3-text-2)}
.mkp-ed{display:flex;flex-direction:column;gap:14px;margin-top:12px}
.mkp-edcols{display:grid;grid-template-columns:1fr 330px;gap:18px;align-items:start}
@media (max-width:1080px){.mkp-edcols{grid-template-columns:1fr}}
.mkp-form{display:flex;flex-direction:column;gap:9px}
.mkp-media{border:1px dashed var(--m3-line);border-radius:11px;padding:26px 12px;text-align:center;
  color:var(--m3-text-3);font-size:12px;display:flex;flex-direction:column;gap:4px}
.mkp-media small{font-size:10px;opacity:.8}
.mkp-bodyinput{background:var(--m3-bg);border:1px solid var(--m3-line);border-radius:10px;color:var(--m3-text);
  font-family:var(--ff);padding:10px 13px;font-size:12.5px;resize:none;outline:none;line-height:1.5}
.mkp-sched{display:flex;align-items:center;gap:8px;color:var(--m3-text-3)}
.mkp-preview{display:flex;flex-direction:column;align-items:center;gap:8px}
.mkp-phone{position:relative;width:250px;min-height:420px;background:var(--m3-rail);border:1px solid var(--m3-line);
  border-radius:26px;padding:16px 13px;overflow:hidden;display:flex;flex-direction:column;gap:10px}
.mkp-ph-head{font-weight:900;letter-spacing:1px;color:var(--m3-lime-ink);font-size:12px;display:flex;
  flex-direction:column;gap:3px}
.mkp-ph-head span{color:var(--m3-text);font-weight:700;font-size:14px;letter-spacing:0}
.mkp-ph-card{background:var(--m3-surface);border:1px solid var(--m3-line);border-radius:13px;padding:10px;
  display:flex;flex-direction:column;gap:5px;font-size:11px;color:var(--m3-text-2)}
.mkp-ph-card b{color:var(--m3-text);font-size:12px;line-height:1.3}
.mkp-ph-img{border:1px dashed var(--m3-line);border-radius:8px;padding:16px;text-align:center;opacity:.6}
.mkp-ph-img.big{padding:30px}
.mkp-ph-btn{background:var(--m3-red);color:var(--m3-on-red);font-weight:800;font-size:11px;border-radius:8px;
  padding:7px;text-align:center;margin-top:2px}
.mkp-ph-ghost{height:52px;border-radius:12px;background:var(--m3-surface);opacity:.5}
.mkp-ph-ghost.short{height:34px}
.mkp-ph-pop{position:absolute;inset:0;background:var(--m3-scrim-2);display:grid;place-items:center;padding:14px}
.mkp-ph-popin{position:relative;background:var(--m3-surface);border:1px solid var(--m3-line-2);border-radius:16px;
  padding:14px 12px;display:flex;flex-direction:column;gap:6px;font-size:11px;color:var(--m3-text-2);width:100%}
.mkp-ph-popin b{color:var(--m3-text);font-size:13px;line-height:1.3}
.mkp-ph-x{position:absolute;top:8px;right:10px;color:var(--m3-text-3);font-size:12px}
.mkp-pvlab{font-size:10.5px;color:var(--m3-text-3)}

/* ================================================================
   FD-CP292 — the REAL funnel builder (fb-*). Reuses the mk-/mkf-
   list + chip vocabulary above; everything below is builder chrome.
   ================================================================ */
.fb-empty{border:1px dashed var(--m3-line);border-radius:11px;padding:18px 16px;font-size:12.5px;
  color:var(--m3-text-3);margin:10px 0;line-height:1.6}
.fb-save{font-size:11px;color:var(--m3-text-3);white-space:nowrap}
.fb-save.saved{color:var(--m3-lime-ink)}
.fb-save.error{color:var(--m3-amber-ink)}
.fb-barright{margin-left:auto;display:flex;align-items:center;gap:9px}
.fb-modes{display:flex;border:1px solid var(--m3-line);border-radius:9px;overflow:hidden}
.fb-mode{background:none;border:0;color:var(--m3-text-2);font-size:11.5px;font-weight:700;
  padding:7px 11px;cursor:pointer;font-family:var(--ff)}
.fb-mode.on{background:var(--m3-surface-2);color:var(--m3-text)}
.fb-themeon{border-color:var(--m3-lime-ink)}

/* page tabs + slug */
.fb-pages{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.fb-page{display:flex;align-items:center;background:var(--m3-surface);border:1px solid var(--m3-line);
  border-radius:9px;overflow:hidden}
.fb-page.on{border-color:var(--m3-lime-ink)}
.fb-pagebtn{background:none;border:0;color:var(--m3-text-2);font-weight:700;font-size:12px;
  padding:7px 11px;cursor:pointer;font-family:var(--ff)}
.fb-page.on .fb-pagebtn{color:var(--m3-text)}
.fb-pagex{background:none;border:0;color:var(--m3-text-3);cursor:pointer;font-size:10px;padding:7px 8px 7px 0}
.fb-pagex:hover{color:var(--m3-amber-ink)}
.fb-pageadd{background:none;border:1px dashed var(--m3-line);color:var(--m3-text-3);border-radius:9px;
  padding:7px 11px;font-size:12px;font-weight:700;cursor:pointer;font-family:var(--ff)}
.fb-pageadd:hover{color:var(--m3-text-2);border-color:var(--m3-gray-ink)}
.fb-slug{display:flex;align-items:center;gap:5px;margin-left:auto;font-size:12px;color:var(--m3-text-3)}
.fb-slug input{background:var(--m3-surface);border:1px solid var(--m3-line);border-radius:7px;color:var(--m3-text-2);
  font-size:11.5px;padding:5px 8px;width:130px;font-family:var(--ff);outline:none}
.fb-slug input:focus{border-color:var(--m3-gray-ink)}
.fb-slug .fb-pagename{width:120px}

/* theme bar */
.fb-themebar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--m3-surface);
  border:1px solid var(--m3-line);border-radius:11px;padding:9px 13px}
.fb-color{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--m3-text-2)}
.fb-color input{width:26px;height:22px;border:0;background:none;padding:0;cursor:pointer}
.fb-select{background:var(--m3-surface);border:1px solid var(--m3-line);border-radius:8px;color:var(--m3-text-2);
  font-size:12px;padding:6px 8px;font-family:var(--ff);outline:none}
.fb-select.sm{font-size:11px;padding:4px 6px}
.fb-logolab{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--m3-text-2)}
.fb-loginput{background:var(--m3-surface-2);border:1px solid var(--m3-line);border-radius:7px;color:var(--m3-text);
  font-size:12px;padding:5px 8px;width:90px;font-family:var(--ff);outline:none}
.fb-themenote{font-size:10.5px;color:var(--m3-text-3);margin-left:auto}

/* the section stack canvas */
.fb-stack{display:flex;flex-direction:column;gap:12px}
.fb-section{background:var(--m3-surface);border:1px solid var(--m3-line);border-radius:13px;overflow:hidden}
.fb-secbar{display:flex;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--m3-line);
  background:var(--m3-surface-2)}
.fb-seclab{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--m3-text-3)}
.fb-seclayout{display:flex;gap:3px}
.fb-laybtn{background:none;border:1px solid var(--m3-line);color:var(--m3-text-3);border-radius:6px;
  font-size:10px;padding:4px 7px;cursor:pointer;letter-spacing:1px}
.fb-laybtn.on{border-color:var(--m3-lime-ink);color:var(--m3-lime-ink)}
.fb-bgctl{display:flex;align-items:center;gap:6px}
.fb-bgctl input[type=color]{width:24px;height:20px;border:0;background:none;padding:0;cursor:pointer}
.fb-secacts{margin-left:auto;display:flex;gap:3px}
.fb-secacts button{background:none;border:0;color:var(--m3-text-3);cursor:pointer;font-size:11px;padding:3px 6px}
.fb-secacts button:hover:not(:disabled){color:var(--m3-text)}
.fb-secacts button:disabled{opacity:.3;cursor:default}
.fb-cols{display:grid;gap:12px;padding:14px}
.fb-cols.c1{grid-template-columns:1fr}
.fb-cols.c2{grid-template-columns:1fr 1fr}
.fb-cols.c3{grid-template-columns:1fr 1fr 1fr}
.fb-col{display:flex;flex-direction:column;gap:9px;min-width:0}

/* blocks */
.fb-block{background:var(--m3-bg);border:1px solid var(--m3-line);border-radius:10px;padding:9px 11px;
  display:flex;flex-direction:column;gap:7px}
.fb-blockbar{display:flex;align-items:center;gap:4px}
.fb-blockkind{font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;
  color:var(--m3-text-3);margin-right:auto}
.fb-blockbar button{background:none;border:0;color:var(--m3-text-3);cursor:pointer;font-size:10px;padding:2px 5px}
.fb-blockbar button:hover{color:var(--m3-text)}
.fb-hinput{background:none;border:0;border-bottom:1px dashed transparent;color:var(--m3-text);font-size:16px;
  font-weight:800;font-family:var(--ff);outline:none;width:100%;padding:2px 0}
.fb-hinput:hover,.fb-hinput:focus{border-bottom-color:var(--m3-gray-ink)}
.fb-tinput{background:none;border:1px solid var(--m3-line);border-radius:8px;color:var(--m3-text-2);
  font-size:12.5px;font-family:var(--ff);outline:none;width:100%;padding:7px 9px;resize:vertical;line-height:1.5}
.fb-tinput:focus{border-color:var(--m3-gray-ink)}
.fb-rowctl{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.fb-align{display:flex;gap:3px;margin-left:auto}
.fb-imgprev{max-width:100%;border-radius:8px;max-height:200px;object-fit:contain;background:var(--m3-surface-2)}
.fb-imgph{border:1px dashed var(--m3-line);border-radius:8px;padding:22px 10px;text-align:center;
  font-size:11.5px;color:var(--m3-text-3)}
.fb-urlinput{background:var(--m3-surface);border:1px solid var(--m3-line);border-radius:7px;color:var(--m3-text-2);
  font-size:11px;padding:5px 8px;font-family:var(--ff);outline:none;min-width:120px}
.fb-urlinput.w{width:100%}
.fb-urlinput:focus{border-color:var(--m3-gray-ink)}
.fb-btninput{background:var(--m3-primary);border:0;border-radius:999px;color:var(--m3-on-primary);font-weight:800;
  font-size:13px;padding:9px 16px;font-family:var(--ff);outline:none;text-align:center;max-width:230px}
.fb-addblock{display:flex;align-items:center;gap:5px;flex-wrap:wrap;border:1px dashed var(--m3-line);
  border-radius:9px;padding:6px 9px}
.fb-addblock span{color:var(--m3-text-3);font-size:12px}
.fb-addblock button{background:none;border:0;color:var(--m3-text-3);font-size:10.5px;font-weight:700;
  cursor:pointer;padding:3px 5px;font-family:var(--ff);border-radius:6px}
.fb-addblock button:hover{color:var(--m3-lime-ink)}
.fb-addsec{display:flex;align-items:center;gap:8px;border:1px dashed var(--m3-line);border-radius:12px;
  padding:12px 15px;color:var(--m3-text-2);font-size:12.5px;font-weight:700}
.fb-addsec button{background:none;border:1px solid var(--m3-line);color:var(--m3-text-2);border-radius:999px;
  padding:6px 13px;font-size:11.5px;font-weight:700;cursor:pointer;font-family:var(--ff)}
.fb-addsec button:hover{border-color:var(--m3-lime-ink);color:var(--m3-lime-ink)}

/* form block editor */
.fb-form{display:flex;flex-direction:column;gap:6px}
.fb-field{display:flex;align-items:center;gap:6px}
.fb-fieldlab{flex:1;background:var(--m3-surface);border:1px solid var(--m3-line);border-radius:7px;
  color:var(--m3-text);font-size:12px;padding:6px 9px;font-family:var(--ff);outline:none;min-width:0}
.fb-fieldx{background:none;border:0;color:var(--m3-text-3);cursor:pointer;font-size:10px}
.fb-fieldx:hover{color:var(--m3-amber-ink)}
.fb-fieldadd{background:none;border:1px dashed var(--m3-line);color:var(--m3-text-3);border-radius:7px;
  padding:5px 9px;font-size:11px;font-weight:700;cursor:pointer;font-family:var(--ff);align-self:flex-start}
.fb-consentnote{border:1px dashed var(--m3-line);border-radius:9px;padding:8px 10px;font-size:10.5px;
  color:var(--m3-text-3);line-height:1.55}
.fb-consentnote b{color:var(--m3-text-2)}

/* preview */
.fb-preview{display:flex;flex-direction:column;align-items:center;gap:9px}
.fb-prevframe{width:100%;background:var(--m3-surface);border:1px solid var(--m3-line);border-radius:14px;
  padding:10px;display:grid;place-items:center}
.fb-preview.desktop .fb-prevframe iframe{width:100%;height:640px;border:0;border-radius:8px;background:var(--m3-paper)}
.fb-preview.mobile .fb-prevframe iframe{width:390px;max-width:100%;height:700px;border:0;border-radius:24px;
  background:var(--m3-paper);box-shadow:0 0 0 8px var(--m3-shadow),0 8px 30px var(--m3-shadow)}
.fb-prevnote{font-size:11px;color:var(--m3-text-3)}

/* ================================================================
   FD-CP293 — shell-frame scroll opt-in + upload affordance.
   The CRM shell is a FIXED frame (.main is overflow:hidden) — a page
   scrolls only if it supplies its own scroller. The FD-CP288 mocks
   were short enough to hide that; the real builder is not. Every
   marketing tab surface becomes its own scroller, and the builder's
   toolbar stays pinned while the canvas scrolls under it.
   ================================================================ */
.mkt .mkf,.mkt .mkf-ed,.mkt .mkc,.mkt .mkc-wiz,.mkt .mkp,.mkt .mkp-ed,.mkt .rw{
  flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden}
.mkt .mkf-edbar{position:sticky;top:0;z-index:6;background:var(--m3-bg);padding:10px 0 8px;margin-bottom:0}

/* upload affordance (renders only when live + the media seam can write) */
.fb-upload{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--m3-line);
  border-radius:999px;padding:6px 13px;font-size:11.5px;font-weight:700;color:var(--m3-text-2);
  cursor:pointer;white-space:nowrap}
.fb-upload:hover{border-color:var(--m3-lime-ink);color:var(--m3-lime-ink)}
.fb-upload.busy{opacity:.6;cursor:progress}
.fb-upload input[type=file]{display:none}
.fb-uperr{color:var(--m3-amber-ink);font-weight:600;font-size:10.5px}

/* FD-CP294 — publish panel */
.fb-pub{border:1px solid var(--m3-lime-ink);border-radius:13px;background:var(--m3-surface);
  padding:13px 16px;display:flex;flex-direction:column;gap:11px}
.fb-pubhead{display:flex;align-items:center;justify-content:space-between;font-size:14px}
.fb-pubx{background:none;border:0;color:var(--m3-text-3);cursor:pointer;font-size:12px}
.fb-pubrow{display:flex;align-items:center;gap:10px}
.fb-pubrow .fb-urlinput{width:220px}
.fb-puburls{display:flex;flex-direction:column;gap:7px}
.fb-puburl{display:flex;align-items:center;gap:10px;font-size:12.5px}
.fb-publoc{font-weight:700;min-width:90px}
.fb-puburl a{color:var(--m3-lime-ink);text-decoration:none;word-break:break-all}
.fb-puburl a:hover{text-decoration:underline}
.fb-pubnote{border:1px dashed var(--m3-line);border-radius:9px;padding:8px 11px;font-size:11.5px;
  color:var(--m3-amber-ink);line-height:1.5}
.fb-pubfoot{display:flex;align-items:center;gap:10px}
.fb-pubexplain{font-size:10.5px;color:var(--m3-text-3);line-height:1.5;margin-right:auto;max-width:520px}

/* FD-CP295 — editable consent checkboxes on the form editor */
.fb-consent{display:flex;flex-direction:column;gap:5px;border:1px dashed var(--m3-line);
  border-radius:9px;padding:8px 10px}
.fb-consentbar{display:flex;align-items:center;gap:6px}
.fb-consentbar .fb-fieldx{margin-left:auto}

/* FD-CP297 — Philip's punch list: handles · pt-size · rich toolbar · routing */
.fb-handle{cursor:grab;color:var(--m3-text-3);font-size:13px;user-select:none;padding:0 2px}
.fb-handle:active{cursor:grabbing}
.fb-handle:hover{color:var(--m3-lime-ink)}
.fb-ptsize{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--m3-line);
  border-radius:999px;padding:2px 6px;font-size:10.5px;color:var(--m3-text-3)}
.fb-ptsize.on{border-color:var(--m3-lime-ink);color:var(--m3-text)}
.fb-ptsize button{background:none;border:0;color:var(--m3-text-2);cursor:pointer;font-size:12px;padding:1px 4px}
.fb-ptsize button:hover{color:var(--m3-lime-ink)}
.fb-richbar{display:flex;align-items:center;gap:4px}
.fb-richbar button{background:none;border:1px solid var(--m3-line);color:var(--m3-text-2);border-radius:6px;
  font-size:11px;padding:3px 8px;cursor:pointer;font-family:var(--ff)}
.fb-richbar button:hover{border-color:var(--m3-lime-ink)}
.fb-richhint{font-size:9.5px;color:var(--m3-text-3);margin-left:auto}
.fb-optinput{font-size:11.5px}
.fb-aftersec{display:flex;align-items:center;gap:8px}
.fb-routes{display:flex;flex-direction:column;gap:6px;border:1px dashed var(--m3-line);border-radius:9px;padding:8px 10px}
.fb-routefield{display:flex;flex-direction:column;gap:4px}
.fb-routelab{font-size:11px;font-weight:700;color:var(--m3-text-2)}
.fb-routerow{display:flex;align-items:center;gap:8px}
.fb-routeopt{font-size:11.5px;color:var(--m3-text-3);min-width:120px}

/* FD-CP301d — the WYSIWYG text surface (contentEditable; seeds from the
   engine's textHtml so the editor and the published page cannot disagree) */
.fb-wysiwyg{min-height:64px;outline:none;cursor:text;white-space:normal}
.fb-wysiwyg:empty:before{content:attr(data-ph);color:var(--m3-text-3);pointer-events:none}
.fb-wysiwyg p{margin:0 0 8px}
.fb-wysiwyg p:last-child{margin-bottom:0}
.fb-wysiwyg ul{margin:0 0 8px 20px}
.fb-wysiwyg li{margin:2px 0}
.fb-wysiwyg a{color:var(--m3-blue-ink);text-decoration:underline}

/* FD-CP301e — device tag on the size nudges (🖥 desktop / 📱 phone) */
.fb-ptsize .fb-ptdev{font-size:11px;opacity:.7;margin-right:1px}

/* FD-CP301f — edit-in-preview */
.fb-prevtool{display:flex;align-items:center;gap:10px;padding:8px 14px;border-bottom:1px solid var(--m3-line);min-height:40px}
.fb-prevhint{font-size:12px;color:var(--m3-text-3)}
.fb-prevlab{font-size:12px;font-weight:700;color:var(--m3-text-2)}
.fb-jumpflash{outline:2px dashed var(--m3-lime-ink);outline-offset:3px;transition:outline-color 1.4s ease}

/* FD-CP301g — edit-in-preview v1 (type in place · add below · delete) */
.fb-addpop{position:absolute;top:calc(100% + 6px);left:0;z-index:30;display:flex;flex-direction:column;min-width:130px;
  background:var(--m3-surface-2);border:1px solid var(--m3-line);border-radius:8px;padding:4px;box-shadow:0 8px 24px var(--m3-shadow)}
.fb-addpop button{background:none;border:0;color:var(--m3-text-2);text-align:left;font-size:12.5px;padding:6px 9px;border-radius:6px;cursor:pointer}
.fb-addpop button:hover{background:var(--m3-primary-wash-2);color:var(--m3-text)}
.fb-delchip{color:var(--m3-red-ink)}

/* FD-CP301h — edit-in-preview v2: section toolbar bits + the settings modal */
.fb-colorchip{width:30px;height:26px;padding:0;border:1px solid var(--m3-line);border-radius:6px;background:none;cursor:pointer}
.fb-modscrim{position:fixed;inset:0;background:var(--m3-scrim);z-index:60}
.fb-modal{position:fixed;top:8vh;left:50%;transform:translateX(-50%);z-index:61;width:min(680px,92vw);max-height:82vh;
  display:flex;flex-direction:column;background:var(--m3-surface);border:1px solid var(--m3-line);border-radius:12px;
  box-shadow:0 18px 60px var(--m3-shadow-2)}
.fb-modhead{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--m3-line);
  font-size:14px;color:var(--m3-text)}
.fb-modbody{padding:14px 16px;overflow:auto}
.fb-modfoot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 16px;border-top:1px solid var(--m3-line)}

/* FD-CP301i — floating toolbar over the preview */
.fb-prevwrap{position:relative;width:100%}
.fb-floatbar{position:absolute;z-index:50;display:flex;align-items:center;gap:8px;flex-wrap:wrap;max-width:640px;
  background:var(--m3-surface-2);border:1px solid var(--m3-line);border-radius:10px;padding:6px 10px;
  box-shadow:0 10px 30px var(--m3-shadow)}
/* FD-CP302 — toolbar placement: pinned-to-top variant + grip + mode controls */
.fb-floatbar.docked{position:sticky;top:8px;z-index:55;margin:0 auto 10px;width:fit-content;max-width:96%}
/* FD-CP369 — inside the marketing host the edbar is sticky (z 6, ~52px tall);
   the docked toolbar must clear it, not slide underneath. */
.mkt .fb-floatbar.docked{top:60px}
.fb-dragrip{cursor:grab;color:var(--m3-text-3);font-size:12px;padding:0 2px;user-select:none}
.fb-dragrip:active{cursor:grabbing}
.fb-barctl{display:flex;align-items:center;gap:2px;margin-left:2px;padding-left:8px;border-left:1px solid var(--m3-line)}
.fb-barctl button{background:none;border:none;color:var(--m3-text-3);cursor:pointer;font-size:12px;line-height:1;
  padding:4px 5px;border-radius:5px}
.fb-barctl button:hover{background:var(--m3-surface);color:var(--m3-text)}
.fb-barctl button.on{color:var(--m3-lime-ink)}
/* FD-CP303 — location gating: "Shown at" chips + the preview lens bar */
.fb-locgate{display:flex;align-items:center;gap:4px;padding-left:8px;border-left:1px solid var(--m3-line)}
.fb-locgatelab{font-size:11px;color:var(--m3-blue-ink);font-weight:800}
.fb-locgate .mkf-chip.on{border-color:var(--m3-blue-ink);color:var(--m3-blue-ink);background:var(--m3-blue-wash-2)}
.fb-lensbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:0 0 10px;padding:8px 12px;
  background:var(--m3-surface);border:1px dashed var(--m3-blue-edge-2);border-radius:10px}
.fb-lenslab{font-size:11.5px;font-weight:800;color:var(--m3-blue-ink);text-transform:uppercase;letter-spacing:.4px}
.fb-lensbar .mkf-chip.on{border-color:var(--m3-blue-ink);color:var(--m3-blue-ink);background:var(--m3-blue-wash-2)}
.fb-lenstally{margin-left:auto;font-size:11.5px;color:var(--m3-text-3)}
/* FD-CP303b — location-grouped class picker */
.fb-classpick{display:flex;flex-direction:column;gap:8px;flex:1;min-width:0}
.fb-classgrp{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.fb-classgrplab{font-size:11px;font-weight:800;color:var(--m3-blue-ink);text-transform:uppercase;letter-spacing:.4px;min-width:70px}
.fb-locwarn{border-color:var(--m3-amber-edge-2);color:var(--m3-amber-ink)}
/* FD-CP302c — email variant: the canvas holds to email width */
.fb-preview.emailw .fb-prevframe{max-width:680px;margin:0 auto;width:100%}
/* FD-CP369 — the wizard's Content step hosts the email editor inline; Subject +
   Preview text sit in the editor bar like an email client's compose header. */
.mkc-composehead{display:flex;align-items:center;gap:9px;flex:1;min-width:0}
.mkc-composehead .mkc-subject{flex:2;min-width:150px;padding:8px 12px}
.mkc-composehead .mkc-preheader{flex:1.4;min-width:110px;padding:8px 12px}
.mkc-pviframe{width:100%;height:340px;border:none;border-radius:0 0 10px 10px;background:#fff;pointer-events:none}

/* ===================== FD-CP322 — Marketing ▸ Rewards ===================== */
.rw-subtabs{display:flex;gap:4px;margin:14px 0 0}
.rw-subtab{background:none;border:0;border-bottom:2px solid transparent;color:var(--m3-text-3);
  font-family:var(--ff);font-size:12.5px;font-weight:700;padding:7px 12px;cursor:pointer}
.rw-subtab.on{color:var(--m3-text);border-bottom-color:var(--m3-primary)}
.rw-subtab:hover:not(.on){color:var(--m3-text-2)}

.rw-grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:900px){.rw-grid2{grid-template-columns:1fr}}
.rw-field{display:flex;flex-direction:column;gap:5px}
.rw-field > label{font-size:11px;font-weight:800;letter-spacing:.3px;text-transform:uppercase;color:var(--m3-text-3)}
.rw-input{background:var(--m3-surface);border:1px solid var(--m3-line);border-radius:9px;color:var(--m3-text);
  font-family:var(--ff);font-size:13px;padding:8px 11px;width:100%;box-sizing:border-box}
.rw-input:focus{outline:0;border-color:var(--m3-primary-edge-2)}
.rw-area{resize:vertical;line-height:1.5}
.rw-num{width:74px;flex:0 0 auto}
.rw-hint{font-size:11px;color:var(--m3-text-3);line-height:1.45}
.rw-hint code{background:var(--m3-surface-3);border-radius:3px;padding:0 3px}
.rw-err{margin:10px 0;border:1px solid var(--m3-amber-edge-2);background:var(--m3-amber-wash);
  color:var(--m3-amber-ink);border-radius:9px;padding:9px 12px;font-size:12.5px;font-weight:600}

.rw-sech{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:20px 0 10px;
  font-size:11px;font-weight:800;letter-spacing:.3px;text-transform:uppercase;color:var(--m3-text-3)}
.rw-tiers{display:flex;flex-direction:column;gap:10px}
.rw-tier{display:flex;align-items:flex-start;gap:12px;border:1px solid var(--m3-line);
  border-radius:12px;padding:12px;background:var(--m3-surface)}
/* the artwork well mirrors the app's reward card: portrait, because that is the
   shape the card crops to — a landscape upload previewed here would mislead */
.rw-art{flex:0 0 auto;width:84px;height:104px;border-radius:9px;overflow:hidden;cursor:pointer;
  background:var(--m3-surface-3);border:1px dashed var(--m3-line-2);color:var(--m3-text-3);
  display:flex;align-items:center;justify-content:center;padding:0}
.rw-art:hover{border-color:var(--m3-primary-edge-2);color:var(--m3-text-2)}
.rw-art img{width:100%;height:100%;object-fit:cover;display:block}
.rw-artadd{font-size:11px;font-weight:800}
.rw-artspin{width:16px;height:16px;border-radius:50%;border:2px solid var(--m3-line-2);
  border-top-color:var(--m3-primary);animation:rwspin .7s linear infinite}
@keyframes rwspin{to{transform:rotate(360deg)}}
.rw-tierfields{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:7px}
.rw-thr{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.rw-thr > label{font-size:11px;font-weight:800;letter-spacing:.3px;text-transform:uppercase;color:var(--m3-text-3)}
.rw-del{flex:0 0 auto;background:none;border:1px solid var(--m3-line);border-radius:8px;
  color:var(--m3-text-3);cursor:pointer;font-size:12px;width:28px;height:28px}
.rw-del:hover{border-color:var(--m3-red-edge-2);color:var(--m3-red-ink)}

.rw-empty{border:1px dashed var(--m3-line-2);border-radius:12px;padding:18px 20px;
  display:flex;flex-direction:column;gap:6px;margin-top:10px}
.rw-empty b{font-size:13.5px;color:var(--m3-text);font-weight:800}
.rw-empty span{font-size:12px;color:var(--m3-text-3);line-height:1.55}

.rw-queue{display:flex;flex-direction:column;gap:8px}
.rw-row{display:flex;align-items:center;justify-content:space-between;gap:14px;
  border:1px solid var(--m3-line);border-radius:11px;padding:11px 14px;background:var(--m3-surface)}
/* a family who is OWED something is the only reason to open this tab */
.rw-row.due{border-color:var(--m3-primary-edge-2);background:var(--m3-primary-wash)}
.rw-name{font-size:13.5px;font-weight:800;color:var(--m3-text);display:flex;align-items:center;gap:8px}
.rw-code{font-size:10px;font-weight:800;letter-spacing:.4px;color:var(--m3-text-3);
  border:1px dashed var(--m3-line-2);border-radius:4px;padding:1px 5px}
.rw-counts{font-size:11.5px;color:var(--m3-text-3);margin-top:3px;font-weight:600}
.rw-counts b{color:var(--m3-text-2)}
.rw-due{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.rw-grant{padding:7px 13px;font-size:12px}
.rw-uptodate{font-size:11.5px;font-weight:700;color:var(--m3-text-3)}

/* ---------------------------------------------------------------------------
   FD-CP324 — the staff SUBMISSIONS log. Every colour is a token (the FD-CP313
   light-theme sweep rule: no literals, or the screen breaks in one theme).
   --------------------------------------------------------------------------- */
.mks-back{background:none;border:none;color:var(--m3-text-2);cursor:pointer;font-size:12.5px;padding:0;margin:0 0 6px}
.mks-back:hover{color:var(--m3-text)}
.mks-list{display:flex;flex-direction:column;gap:8px}
.mks-row{display:flex;flex-direction:column;gap:6px;background:var(--m3-surface);
  border:1px solid var(--m3-line);border-radius:11px;padding:12px 14px}
.mks-rowtop{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.mks-when{font-size:12px;color:var(--m3-text-3);white-space:nowrap}
.mks-funnel{font-weight:650;font-size:13.5px;color:var(--m3-text)}
.mks-where{font-size:12px;color:var(--m3-text-2)}
.mks-typed{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12.5px;color:var(--m3-text)}
.mks-typed .k{color:var(--m3-text-3)}
/* The routing badge. Colour carries meaning: a new lead is the win (success),
   an existing family is the one that used to be invisible (blue), a repeat
   lead is a nudge (amber). */
.mks-tag{font-size:11px;font-weight:650;letter-spacing:.02em;border-radius:999px;
  padding:2px 9px;border:1px solid transparent;white-space:nowrap}
.mks-tag.new{background:var(--m3-success-wash);color:var(--m3-success-ink);border-color:var(--m3-success-edge)}
.mks-tag.fam{background:var(--m3-blue-wash);color:var(--m3-blue-ink);border-color:var(--m3-blue-edge)}
.mks-tag.rep{background:var(--m3-amber-wash);color:var(--m3-amber-ink);border-color:var(--m3-amber-edge)}
.mks-sms{font-size:11px;color:var(--m3-violet-ink);background:var(--m3-violet-wash);
  border:1px solid var(--m3-violet-edge);border-radius:999px;padding:2px 9px;white-space:nowrap}
/* The card stat is a control now — it opens this log for that funnel. */
.mkf-statlink{background:none;border:none;padding:0;font:inherit;color:inherit;cursor:pointer;
  border-bottom:1px dotted var(--m3-line-strong)}
.mkf-statlink:hover{color:var(--m3-text-hi)}

/* ---------- FD-CP367 — Promos live wiring ---------- */
.mkp-thumb.has-art{background-size:cover;background-position:center;border-style:solid}
.mkp-media{cursor:pointer}
.mkp-media.has-art{background-size:cover;background-position:center;border-style:solid;min-height:120px;
  display:flex;align-items:flex-end;justify-content:flex-end;padding:8px}
.mkp-media-swap{background:var(--m3-scrim);color:#fff;border-radius:7px;padding:3px 8px;font-size:10px}
.mkp-num{width:64px;border:1px solid var(--m3-line);border-radius:8px;background:var(--m3-bg);color:var(--m3-text);
  padding:5px 8px;font-size:12.5px;text-align:center}
.mkp-ph-banner{background-size:cover;background-position:center;min-height:84px;display:flex;flex-direction:column;
  justify-content:flex-end;gap:4px}
.mkp-ph-banner b{text-shadow:0 1px 3px var(--m3-scrim);color:#fff}
.mkp-ph-pop.splash .mkp-ph-popin{position:absolute;inset:0;border-radius:0;max-height:none;display:flex;
  flex-direction:column;justify-content:flex-end;padding-bottom:18px}
.mkp-ph-pop.splash .mkp-ph-img.big{flex:1;display:flex;align-items:center;justify-content:center}
.mkp-ph-img.has-art{background-size:cover;background-position:center;border-style:solid;color:#fff;
  text-shadow:0 1px 3px var(--m3-scrim-2);font-size:18px}
.mkp-ph-img.has-art.fitted{background-size:contain;background-repeat:no-repeat;background-color:var(--m3-scrim-2)}

/* ---------- FD-CP368 — rewards auto-credit ---------- */
.rw-famlink{background:none;border:0;padding:0;color:var(--m3-blue-ink);font-weight:700;font-size:inherit;cursor:pointer}
.rw-famlink:hover{text-decoration:underline}
.rw-owedstrip{display:block;width:100%;text-align:left;margin:0 0 10px;border:1px solid var(--m3-amber-edge-2);
  background:var(--m3-amber-wash);color:var(--m3-text);border-radius:10px;padding:9px 13px;font-size:12.5px;cursor:pointer}
.rw-owedstrip b{color:var(--m3-amber-ink)}
.rw-owedstrip:hover{filter:brightness(1.05)}

/* FD-CP375 — engagement panel + full-height email view */
.mkc-engage{display:flex;flex-direction:column;gap:10px;border:1px solid var(--m3-line);border-radius:11px;
  padding:12px 14px;margin-bottom:14px;background:var(--m3-surface)}
.mkc-engage-tiles{display:flex;gap:22px}
.mkc-engage-tiles>div{display:flex;flex-direction:column}
.mkc-engage-tiles b{font-size:18px}
.mkc-engage-tiles span{font-size:10.5px;color:var(--m3-text-3);text-transform:uppercase;letter-spacing:.4px;font-weight:700}
.mkc-engage-table{display:flex;flex-direction:column;border:1px solid var(--m3-line);border-radius:9px;max-height:320px;overflow:auto}
.mkc-engage-row{display:grid;grid-template-columns:1.4fr .7fr 1fr 1fr;gap:8px;padding:7px 11px;font-size:12px;
  border-bottom:1px solid var(--m3-line)}
.mkc-engage-row:last-child{border-bottom:0}
.mkc-engage-row.head{font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--m3-text-3);
  background:var(--m3-surface-2)}
.mkc-engage-st{text-transform:capitalize}
.mkc-engage-st.bad{color:var(--m3-amber-ink)}
.mkc-pviframe.mkc-pvfull{height:auto;min-height:320px;pointer-events:auto}

/* FD-CP378 — the campaign's location slice + engagement addresses */
.mkc-locrow{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-bottom:12px}
.mkc-loclab{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--m3-text-3);margin-right:2px}
.mkc-locnote{font-size:11px;color:var(--m3-text-3)}
.mkc-engage-addrs{display:block;margin-top:1px}
.mkc-engage-addr{display:block;font-weight:500;font-size:10.5px;color:var(--m3-text-3)}
.mkc-engage-addr.hit{color:var(--m3-text-2)}
.mkc-engage-addr em{font-style:normal;color:var(--m3-primary-ink);margin-left:6px;font-size:10px}

/* Design pass — background focal-point + scrim sliders (FnBackgroundCtl) */
.fb-bgpos { display: flex; gap: 12px; align-items: center; margin-top: 6px; flex-wrap: wrap; }
.fb-bgpos label { display: flex; gap: 6px; align-items: center; font-size: 12px; color: var(--m3-text-3); }
.fb-bgpos input[type="range"] { width: 90px; accent-color: var(--m3-primary); }
