/* ==========================================================================
   Ospelia app — UI v2 (2026-09-23)
   A cleaner, calmer shell: dark-green left sidebar with grouped, collapsible
   navigation; a white page header with the page title and its tabs; neutral
   light canvas; white cards with soft borders; roomier tables, pill buttons
   and inputs. Same colours, same features. Everything is scoped to
   body.osp-v2 so it can be switched off by removing one class.
   ========================================================================== */

:root{
  --osp-side-w: 256px;
  --osp-side-bg: #1e3a26;
  --osp-side-bg2: #25472f;
  --osp-side-line: rgba(255,255,255,.08);
  --osp-side-text: rgba(255,255,255,.72);
  --osp-green: #2f5d3a;
  --osp-green-2: #57a15f;
  --osp-canvas: #f5f6f3;
  --osp-card: #ffffff;
  --osp-line: #e5e8e2;
  --osp-line-2: #eef0ec;
  --osp-head: #fafbf9;
  --osp-radius: 16px;
  --osp-shadow: 0 1px 2px rgba(20,32,22,.04), 0 1px 1px rgba(20,32,22,.02);
}
[data-theme="dark"]{
  --osp-side-bg: #101a13;
  --osp-side-bg2: #16241a;
  --osp-canvas: #0b0f0c;
  --osp-card: #121814;
  --osp-line: rgba(255,255,255,.08);
  --osp-line-2: rgba(255,255,255,.06);
  --osp-head: rgba(255,255,255,.025);
  --osp-shadow: none;
}

/* ---------- canvas + type ---------- */
body.osp-v2{ --bg: var(--osp-canvas); background: var(--osp-canvas); }
[data-theme="light"] body.osp-v2.skin-khg, html:not([data-theme]) body.osp-v2.skin-khg{ --bg: var(--osp-canvas); }
body.osp-v2 .page-content{ font-size: .95rem; }

/* ---------- sidebar (desktop) ---------- */
#osp-side{ display:none; }
@media (min-width: 1024px){
  body.osp-v2.topnav-mode #osp-side{
    display:flex; flex-direction:column; position:fixed; left:0; top:0; bottom:0; width:var(--osp-side-w); z-index:80;
    background:var(--osp-side-bg); color:#fff; padding:env(safe-area-inset-top) 0 0; box-shadow: 1px 0 0 rgba(0,0,0,.04);
  }
  body.osp-v2.topnav-mode .main{ margin-left:var(--osp-side-w); width:auto; }
  body.osp-v2.topnav-mode #topnav{ display:none !important; }

  .os-top{ padding:18px 16px 14px; border-bottom:1px solid var(--osp-side-line); }
  .os-logo{ display:flex; align-items:center; height:28px; margin:0 4px 14px; }
  .os-logo img{ height:24px; width:auto; }
  .os-acct{ font-weight:700; font-size:1.02rem; letter-spacing:-.01em; color:#fff; margin:0 4px 10px; line-height:1.25; }
  #os-brand-slot .brand-switcher{ display:flex !important; align-items:center; gap:8px; width:100%; height:38px; padding:0 12px; border-radius:10px;
    background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.10); color:rgba(255,255,255,.85); box-shadow:none; }
  #os-brand-slot .brand-switcher:hover{ background:rgba(255,255,255,.11); }
  #os-brand-slot .brand-switcher select{ flex:1; min-width:0; background:transparent; border:0; color:#fff; font:inherit; font-size:.86rem; font-weight:600; outline:none; cursor:pointer; appearance:auto; }
  #os-brand-slot .brand-switcher select option{ color:#111; }

  #os-nav{ flex:1; overflow-y:auto; padding:10px 10px 16px; scrollbar-width:thin; scrollbar-color:rgba(255,255,255,.18) transparent; }
  .os-g{ margin-bottom:2px; }
  .os-gh{ display:flex; align-items:center; gap:11px; width:100%; padding:9px 10px; border:0; border-radius:10px; background:none; color:var(--osp-side-text);
    font:inherit; font-size:.9rem; font-weight:600; text-align:left; cursor:pointer; transition:background .15s, color .15s; }
  .os-gh:hover{ background:rgba(255,255,255,.06); color:#fff; }
  .os-gh svg:first-child{ width:17px; height:17px; flex:none; opacity:.85; }
  .os-gh .os-chev{ margin-left:auto; width:14px; height:14px; opacity:.55; transition:transform .2s; }
  .os-g.open .os-gh .os-chev{ transform:rotate(180deg); }
  .os-g.cur > .os-gh{ color:#fff; background:rgba(255,255,255,.08); }
  .os-items{ display:none; padding:4px 0 6px; }
  .os-g.open .os-items{ display:block; }
  .os-i{ display:flex; align-items:center; gap:10px; width:100%; padding:8px 10px 8px 38px; border:0; border-radius:9px; background:none; color:var(--osp-side-text);
    font:inherit; font-size:.86rem; font-weight:500; text-align:left; cursor:pointer; position:relative; transition:background .15s, color .15s; }
  .os-i:hover{ background:rgba(255,255,255,.06); color:#fff; }
  .os-i.on{ background:rgba(87,161,95,.22); color:#fff; font-weight:600; }
  .os-i.on::before{ content:""; position:absolute; left:22px; top:50%; width:6px; height:6px; margin-top:-3px; border-radius:50%; background:#8fd197; }
  .os-badge{ margin-left:auto; min-width:20px; height:20px; padding:0 6px; border-radius:6px; background:#c2410c; color:#fff; font-size:.7rem; font-weight:700; display:inline-flex; align-items:center; justify-content:center; }

  .os-foot{ border-top:1px solid var(--osp-side-line); padding:12px 14px; display:flex; align-items:center; gap:10px; }
  .os-foot .tn-right{ display:flex; align-items:center; gap:10px; width:100%; flex-direction:row-reverse; justify-content:flex-end; }
  .os-foot .tn-icon{ border-color:rgba(255,255,255,.16); color:rgba(255,255,255,.8); background:transparent; margin-left:auto; }
  .os-foot .tn-icon:hover{ background:rgba(255,255,255,.1); color:#fff; }
  .os-foot .tn-user-menu{ top:auto; bottom:calc(100% + 10px); left:0; right:auto; color:var(--t1); }
  .os-foot .os-me{ font-size:.82rem; color:rgba(255,255,255,.8); font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:140px; }

  /* page header: title + its tabs, actions right */
  body.osp-v2.topnav-mode #khg-tabs{ position:sticky; top:0; z-index:60; background:var(--osp-card); border-bottom:1px solid var(--osp-line); box-shadow:none; }
  body.osp-v2.topnav-mode .khg-tabs-in{ justify-content:flex-start !important; height:auto; min-height:64px; padding:0 32px; gap:28px; align-items:stretch; }
  body.osp-v2.topnav-mode #khg-tabs-list{ display:none !important; }
  body.osp-v2.topnav-mode #khg-tabs-actions{ position:static !important; transform:none !important; margin-left:auto; align-self:center; }
  body.osp-v2.topnav-mode #khg-tabs-actions .brand-switcher{ display:none; }
  #os-title{ display:none; }
  body.osp-v2.topnav-mode #os-title{ display:flex; align-items:center; gap:12px; flex:0 0 auto; }
  #os-title h1{ margin:0; font-size:1.3rem; font-weight:700; letter-spacing:-.02em; color:var(--t1); white-space:nowrap; }
  #os-title .os-ti{ width:34px; height:34px; border-radius:10px; display:grid; place-items:center; background:rgba(87,161,95,.12); color:var(--osp-green); }
  [data-theme="dark"] #os-title .os-ti{ color:#8fd197; }
  #os-title .os-ti svg{ width:17px; height:17px; }
  body.osp-v2.topnav-mode .khg-tabs-in #khg-subtabs{ display:flex !important; flex-wrap:wrap; align-items:stretch; gap:4px; margin:0; padding:0; border:0; background:none; overflow:visible; min-width:0; flex:1 1 auto; }
  body.osp-v2.topnav-mode .khg-tabs-in{ flex-wrap:wrap; }
  body.osp-v2.topnav-mode .khg-tabs-in #khg-subtabs .khg-subtab{ min-height:52px; }
  body.osp-v2.topnav-mode .khg-tabs-in #khg-subtabs:empty{ display:none !important; }
  body.osp-v2.topnav-mode .khg-tabs-in #khg-subtabs .khg-subtab{ display:inline-flex; align-items:center; height:auto; padding:0 14px; border:0; border-bottom:2px solid transparent; border-radius:0;
    background:none !important; color:var(--t2); font-size:.92rem; font-weight:500; margin-bottom:-1px; }
  body.osp-v2.topnav-mode .khg-tabs-in #khg-subtabs .khg-subtab:hover{ color:var(--t1); }
  body.osp-v2.topnav-mode .khg-tabs-in #khg-subtabs .khg-subtab.active{ color:var(--osp-green); border-bottom-color:var(--osp-green); font-weight:600; }
  [data-theme="dark"] body.osp-v2.topnav-mode .khg-tabs-in #khg-subtabs .khg-subtab.active{ color:#8fd197; border-bottom-color:#8fd197; }

  /* overview rail sits on the right on wide screens */
  body.osp-v2.topnav-mode #tn-layout{ min-height:calc(100vh - 64px); }
  body.osp-v2.topnav-mode #ov-rail{ order:2; top:64px; height:calc(100vh - 64px); border-right:0; border-left:1px solid var(--osp-line); background:var(--osp-canvas); flex-basis:272px; width:272px; }
  body.osp-v2.topnav-mode .ovr-sec{ background:var(--osp-card); border-color:var(--osp-line); border-radius:14px; box-shadow:var(--osp-shadow); }
  body.osp-v2.topnav-mode #task-client-sidebar{ top:64px; left:var(--osp-side-w); height:calc(100vh - 64px); }
  body.osp-v2.topnav-mode .page-content{ padding:28px 32px 56px; }
}
/* keep the overview rail on every desktop width (as before); slimmer below 1440px */
@media (min-width:1024px) and (max-width:1439px){
  body.osp-v2.topnav-mode{ --osp-side-w:224px; }
  body.osp-v2.topnav-mode #ov-rail{ flex-basis:236px; width:236px; padding:14px 10px 40px; }
  body.osp-v2.topnav-mode .page-content{ padding:24px 22px 56px; }
  body.osp-v2.topnav-mode .khg-tabs-in{ padding:0 22px; gap:18px; }
}

/* ---------- cards ---------- */
body.osp-v2 .ci-card,
body.osp-v2 .panel,
body.osp-v2 .hm-card,
body.osp-v2 .settings-wrap .ci-card{
  background:var(--osp-card); border:1px solid var(--osp-line); border-radius:var(--osp-radius); box-shadow:var(--osp-shadow);
}
body.osp-v2 .ci-card{ padding:20px 22px; }
body.osp-v2 .ci-card-title,
body.osp-v2 .panel-title{ font-size:1rem; font-weight:700; letter-spacing:-.01em; color:var(--t1); }

/* ---------- section headings ---------- */
body.osp-v2 .section-heading{ margin-bottom:20px; }
body.osp-v2 .section-heading h2{ font-size:1.45rem; letter-spacing:-.02em; }
body.osp-v2 .section-heading p{ color:var(--t2); }
body.osp-v2 .hm-sechead{ display:flex; align-items:center; gap:12px; margin:34px 0 14px; }
body.osp-v2 .hm-sechead h3{ display:flex; align-items:center; gap:12px; font-size:1.2rem; font-weight:700; letter-spacing:-.02em; }
body.osp-v2 .hm-sechead h3::before{ content:""; width:34px; height:34px; border-radius:50%; flex:none;
  background:rgba(87,161,95,.14) no-repeat center/16px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232f5d3a' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 3v18h18'/%3E%3Cpath d='M7 14l3-3 3 3 4-5'/%3E%3C/svg%3E"); }

/* ---------- buttons ---------- */
body.osp-v2 .btn{ border-radius:999px; font-weight:600; font-size:.86rem; padding:9px 18px; letter-spacing:0; }
body.osp-v2 .btn-sm{ padding:6px 13px; font-size:.8rem; }
body.osp-v2 .btn-primary{ background:var(--osp-green); border-color:var(--osp-green); color:#fff; box-shadow:0 1px 2px rgba(47,93,58,.25); }
body.osp-v2 .btn-primary:hover{ background:#264d30; border-color:#264d30; }
[data-theme="dark"] body.osp-v2 .btn-primary{ background:#3f7a4b; border-color:#3f7a4b; }
body.osp-v2 .btn-secondary{ background:var(--osp-card); border:1px solid var(--osp-line); color:var(--t1); box-shadow:none; }
body.osp-v2 .btn-secondary:hover{ border-color:#cfd4cc; background:var(--osp-head); }
body.osp-v2 .btn-danger{ border-radius:999px; }

/* ---------- inputs ---------- */
body.osp-v2 .form-input,
body.osp-v2 .form-select,
body.osp-v2 .page-content select:not(#brand-focus),
body.osp-v2 .page-content input[type="text"],
body.osp-v2 .page-content input[type="search"],
body.osp-v2 .page-content input[type="number"],
body.osp-v2 .page-content input[type="date"],
body.osp-v2 .page-content input[type="email"]{
  border-radius:10px; border:1px solid var(--osp-line); background:var(--osp-card); min-height:38px; padding:8px 12px; font-size:.88rem;
  transition:border-color .15s, box-shadow .15s;
}
body.osp-v2 .form-input:focus,
body.osp-v2 .page-content select:focus,
body.osp-v2 .page-content input:focus{ outline:none; border-color:var(--osp-green-2); box-shadow:0 0 0 3px rgba(87,161,95,.18); }
body.osp-v2 .page-content input[placeholder*="Search" i],
body.osp-v2 .page-content input[placeholder*="search" i]{ border-radius:999px; padding-left:36px;
  background:var(--osp-card) no-repeat 13px 50%/15px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238a918b' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M21 21l-4.3-4.3'/%3E%3C/svg%3E"); }
body.osp-v2 .form-label{ font-size:.74rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--t3); }

/* ---------- filter chips → segmented pills ---------- */
body.osp-v2 :is(div,nav):has(> .filter-chip + .filter-chip):not(:has(> :not(.filter-chip))){ display:inline-flex; flex-wrap:wrap; gap:2px; padding:4px; border-radius:999px; background:var(--osp-line-2); }
/* chips that share a row with selects/buttons: stand-alone pills */
body.osp-v2 :is(div,nav):has(> .filter-chip):has(> :not(.filter-chip)) > .filter-chip{ border:1px solid var(--osp-line); background:var(--osp-card); }
body.osp-v2 :is(div,nav):has(> .filter-chip):has(> :not(.filter-chip)) > .filter-chip.active{ background:var(--osp-green); border-color:var(--osp-green); color:#fff; box-shadow:none; }
body.osp-v2 .filter-chip{ padding:7px 16px; border-radius:999px; font-size:.84rem; font-weight:600; color:var(--t2); background:none; border:0; }
body.osp-v2 .filter-chip:hover{ color:var(--t1); }
body.osp-v2 .filter-chip.active{ background:var(--osp-card); color:var(--t1); box-shadow:0 1px 3px rgba(20,32,22,.10); }
[data-theme="dark"] body.osp-v2 .filter-chip.active{ background:rgba(255,255,255,.1); }

/* ---------- tables ---------- */
body.osp-v2 .page-content table{ border-collapse:separate; border-spacing:0; }
body.osp-v2 .page-content table thead th,
body.osp-v2 .data-table th{
  background:var(--osp-head); color:var(--t3); font-size:.72rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  padding:12px 14px; border-bottom:1px solid var(--osp-line); white-space:nowrap;
}
body.osp-v2 .page-content table tbody td,
body.osp-v2 .data-table td{ padding:14px; border-bottom:1px solid var(--osp-line-2); vertical-align:middle; }
body.osp-v2 .page-content table tbody tr{ transition:background .12s; }
body.osp-v2 .page-content table tbody tr:hover{ background:var(--osp-head); }
body.osp-v2 .page-content table tbody tr:last-child td{ border-bottom:0; }

/* ---------- modals ---------- */
body.osp-v2 .modal{ border-radius:20px; border:1px solid var(--osp-line); box-shadow:0 30px 80px -24px rgba(10,20,12,.45); }
body.osp-v2 .modal-title{ font-size:1.15rem; letter-spacing:-.01em; }
body.osp-v2 .modal-overlay{ background:rgba(12,18,14,.5); backdrop-filter:blur(2px); }

/* ---------- KPI tiles used across sections ---------- */
body.osp-v2 .dk-kpi, body.osp-v2 .kpi, body.osp-v2 .hm-vit{ border-radius:14px; border:1px solid var(--osp-line); background:var(--osp-card); box-shadow:var(--osp-shadow); }

/* ==========================================================================
   Home → "Last 7 days": metric cards in the style of a performance report
   ========================================================================== */
body.osp-v2 #sum-vitals.ov2{ display:grid; grid-template-columns:repeat(auto-fit,minmax(min(440px,100%),1fr)); gap:20px; }
.omc{ background:var(--osp-card); border:1px solid var(--osp-line); border-radius:var(--osp-radius); box-shadow:var(--osp-shadow); overflow:hidden; display:flex; flex-direction:column; }
.omc-band{ padding:10px 16px; text-align:center; font-size:.86rem; color:var(--t2); background:var(--osp-head); border-bottom:1px solid var(--osp-line); }
.omc-band b{ color:var(--t1); }
.omc-in{ padding:20px 24px 18px; display:flex; flex-direction:column; flex:1; }
.omc-h{ display:flex; align-items:center; gap:14px; }
.omc-ic{ width:44px; height:44px; border-radius:12px; display:grid; place-items:center; background:rgba(87,161,95,.12); color:var(--osp-green); flex:none; }
[data-theme="dark"] .omc-ic{ color:#8fd197; }
.omc-ic svg{ width:21px; height:21px; }
.omc-t{ font-size:1.05rem; font-weight:600; color:var(--t1); letter-spacing:-.01em; }
.omc-link{ margin-left:auto; align-self:flex-start; font-size:.8rem; font-weight:600; color:var(--osp-green); background:none; border:0; cursor:pointer; text-decoration:underline; text-underline-offset:3px; }
[data-theme="dark"] .omc-link{ color:#8fd197; }
.omc-v{ font-size:2.35rem; font-weight:800; letter-spacing:-.035em; color:var(--t1); margin-top:18px; line-height:1; font-variant-numeric:tabular-nums; }
.omc-s{ color:var(--t2); font-size:.92rem; margin-top:6px; }
.omc-call{ margin-top:16px; border:2px solid #3f8f4a; border-radius:10px; padding:9px 12px; text-align:center; font-size:.88rem; color:var(--t1); box-shadow:0 0 0 4px rgba(87,161,95,.10); }
.omc-call b{ color:#2f7a3a; font-weight:700; }
.omc-call.bad{ border-color:#d0643f; box-shadow:0 0 0 4px rgba(208,100,63,.10); }
.omc-call.bad b{ color:#b4491f; }
.omc-call.flat{ border-color:var(--osp-line); box-shadow:none; }
.omc-call.flat b{ color:var(--t2); }
[data-theme="dark"] .omc-call b{ color:#8fd197; }
.omc-chart{ margin-top:18px; }
.omc-chart svg{ display:block; width:100%; height:auto; overflow:visible; }
.omc-chart text{ font-family:inherit; }
.omc-note{ font-size:.8rem; color:#b4491f; margin-top:8px; }

/* the header already shows the page title — drop the repeated h2 on desktop */
@media (min-width:1024px){
  body.osp-v2.topnav-mode .section.active > .section-heading .section-heading-text > h2.os-dup,
  body.osp-v2.topnav-mode .section.active > .section-heading > h2.os-dup{ display:none; }
  body.osp-v2.topnav-mode .section.active > .section-heading{ margin-bottom:16px; }
}

/* ==========================================================================
   UI v2 — content blocks (2026-09-23, pass 2)
   One sans family everywhere (Inter), sentence-case labels, bigger numbers,
   calmer card titles, consistent stat tiles, pills and empty states.
   ========================================================================== */
html:has(body.osp-v2){ font-size:16.5px; }
body.osp-v2{
  --sans: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --serif: var(--sans); --khg-serif: var(--sans); --num: var(--sans); --mono: var(--sans);
  font-family: var(--sans); font-feature-settings: "cv11","ss01"; -webkit-font-smoothing: antialiased;
}
body.osp-v2 .page-content, body.osp-v2 .modal, body.osp-v2 #osp-side, body.osp-v2 #ov-rail{ font-family: var(--sans); }
body.osp-v2 .page-content :is(h1,h2,h3,h4){ font-family: var(--sans); letter-spacing:-.02em; }
body.osp-v2 :is(.hm-num,.kpi-val,.dk-kpi-value,.ovr-stat .v,.omc-v,td){ font-variant-numeric: tabular-nums; }

/* labels: sentence case instead of tiny shouting capitals (tables and status pills keep caps) */
body.osp-v2 .page-content :not(th):not(.tr-badge):not(.soc-pill):not(.status-pill)[style*="text-transform:uppercase"],
body.osp-v2 .page-content :not(th):not(.tr-badge)[style*="text-transform: uppercase"]{
  text-transform:none !important; letter-spacing:0 !important; font-size:.84rem !important; font-weight:600 !important; color:var(--t2) !important;
}
body.osp-v2 :is(.dk-eyebrow,.hm-eyebrow,.dk-kpi-label,.kpi-lbl,.ovr-sec-h,.ovr-head,.cmp-lbl,.soc-lbl,.form-label,.ci-label,.hm-vit-l){
  text-transform:none !important; letter-spacing:0 !important; font-size:.84rem !important; font-weight:600 !important; color:var(--t2) !important;
}
body.osp-v2 .ovr-sec-h{ font-size:.8rem !important; color:var(--t1) !important; }

/* card titles: plain, confident, no left bar */
body.osp-v2 .ci-card-title,
body.osp-v2 .panel-title,
body.osp-v2 .card-title{
  font-family:var(--sans) !important; text-transform:none !important; letter-spacing:-.01em !important;
  font-size:1.06rem !important; font-weight:700 !important; color:var(--t1) !important;
  border-left:0 !important; padding-left:0 !important; margin-bottom:14px;
}
body.osp-v2 .ci-card-title::before, body.osp-v2 .panel-title::before{ display:none !important; }
body.osp-v2 .ci-card-title span{ text-transform:none; letter-spacing:0; font-size:.86rem !important; font-weight:500 !important; color:var(--t3) !important; }

/* stat tiles (shared helper) */
.ost{ background:var(--osp-card); border:1px solid var(--osp-line); border-radius:14px; padding:16px 18px; box-shadow:var(--osp-shadow); min-width:0; }
.ost-l{ font-size:.86rem; font-weight:500; color:var(--t2); }
.ost-v{ font-size:1.75rem; font-weight:800; letter-spacing:-.03em; color:var(--t1); line-height:1.1; margin-top:6px; font-variant-numeric:tabular-nums; }
.ost-s{ font-size:.8rem; color:var(--t3); margin-top:4px; }
body.osp-v2 .dk-kpi{ padding:16px 18px !important; }
body.osp-v2 .dk-kpi-value{ font-family:var(--sans) !important; font-size:1.75rem !important; font-weight:800 !important; letter-spacing:-.03em !important; }
body.osp-v2 .kpi-val{ font-family:var(--sans) !important; font-weight:800 !important; letter-spacing:-.03em !important; }

/* home hero + review headline: sans, big and bold */
body.osp-v2 .hm-greet, body.osp-v2 .hm-h1, body.osp-v2 #section-summary h1,
body.osp-v2 #section-review h1, body.osp-v2 #section-review h2{ font-family:var(--sans) !important; font-weight:800 !important; letter-spacing:-.03em !important; }
body.osp-v2 .hm-big{ font-family:var(--sans) !important; font-weight:800 !important; letter-spacing:-.04em !important; }
body.osp-v2 .hm-hero{ border-radius:var(--osp-radius) !important; border:1px solid var(--osp-line) !important; box-shadow:var(--osp-shadow) !important; background:var(--osp-card) !important; }
body.osp-v2 .hm-act, body.osp-v2 .hm-brand, body.osp-v2 .ir-card, body.osp-v2 .tr-card{ border-radius:14px !important; border-color:var(--osp-line) !important; box-shadow:var(--osp-shadow); }

/* generic white blocks built with inline styles in templates */
body.osp-v2 .page-content [style*="background:var(--glass)"][style*="border:1px solid var(--border)"]{
  background:var(--osp-card) !important; border-color:var(--osp-line) !important; border-radius:14px !important; box-shadow:var(--osp-shadow);
}

/* status / tag pills */
body.osp-v2 :is(.tr-badge,.badge,.pill,.tag,.status-pill){ border-radius:999px !important; font-weight:600; letter-spacing:.01em; }

/* empty states */
body.osp-v2 :is(.empty,.ir-empty,.up-empty,.ovr-empty){ color:var(--t3); }
body.osp-v2 .page-content :is(.empty,.ir-empty,.up-empty):not(:empty){
  text-align:center; padding:40px 20px !important; border:1.5px dashed var(--osp-line); border-radius:16px; background:var(--osp-card); font-size:.95rem;
}

/* modals + forms */
body.osp-v2 .modal-title{ font-family:var(--sans) !important; font-weight:700 !important; font-size:1.2rem !important; }
body.osp-v2 .form-group{ margin-bottom:16px; }
body.osp-v2 .form-label{ display:block; margin-bottom:6px; }

/* tables inside cards: flush edges like a report list */
body.osp-v2 .ci-card > table, body.osp-v2 .ci-card > div > table.data-table{ width:100%; }
body.osp-v2 .page-content table tbody td{ font-size:.9rem; color:var(--t1); }

/* checklists / notes lists: roomier rows */
body.osp-v2 .page-content label:has(> input[type="checkbox"]){ gap:10px; }
body.osp-v2 .page-content input[type="checkbox"]{ accent-color: var(--osp-green); width:17px; height:17px; }

/* recommendation-style cards (left accent + actions) */
body.osp-v2 .rec-card, body.osp-v2 .rc-card{ border-radius:14px !important; }

/* ==========================================================================
   UI v2 — pass 3 (2026-09-23): every page on the same design language.
   Visual only: nothing here hides content, filters or data.
   ========================================================================== */

/* form controls inherit the app font (browsers default buttons to Arial) */
body.osp-v2 :is(button,input,select,textarea,optgroup){ font-family:inherit; }
body.osp-v2 :is(.ops-title,.rdg-title,#sum-greet,.dk-hero-greet,.card-title,.topbar-title,.gs-title){ font-family:var(--sans) !important; }
body.osp-v2 .ops-title{ font-size:1.45rem !important; font-weight:700 !important; letter-spacing:-.02em !important; }
body.osp-v2 .ops-sub{ color:var(--t2); }
body.osp-v2 :is(.ovr-stat .v,.ovr-row .q,.rcard-metric-v,.stat-value,.ops-kpi-v,.sum-kpi .v){ font-family:var(--sans) !important; font-variant-numeric:tabular-nums; }

/* ---------- labels: sentence case everywhere (table headers, date badges and initials keep their caps) ---------- */
body.osp-v2 :is(.stat-label,.ov-snap-title,.action-group-label,.task-drawer-title,.tdp-section-label,.drw-field-label,.drw-section-label,
  .dk-hero-stat-lbl,.dk-panel-title,.khg-cmdk-group,.ops-kpi-l,.rcard-metric-l,.cl-agency-header,.tcs-spaces-title,.tcs-workspace-label,
  .tcs-agency-hdr,.kanban-col-title,.ts-kpi-lbl,.ts-section-hd,.ci-field label,.ve-section-title,.notes-field label,.agency-full-col-title,
  .email-kpi-lbl,.rdg-title,.bg-step,.acs-price-head,.gs-eyebrow,.knav-head,.hm-bs .l,.ctrl-lbl,.kpi-lbl,.stat-pill .sp-l,.ins-cap,
  .brand-stat-lbl,.ops-field label,.ir-eyebrow,.ir-sub,.chat-lbl,.soc-dayhead,.recs-stat .l,.recs-stat-l,.rec-kind,.rec-impact,
  .sum-kpi .l,.sum-subhead,.sum-brand-stats .l,.cmp-lbl,.soc-lbl){
  text-transform:none !important; letter-spacing:0 !important;
}
body.osp-v2 :is(.stat-label,.ops-kpi-l,.rcard-metric-l,.ts-kpi-lbl,.email-kpi-lbl,.kpi-lbl,.stat-pill .sp-l,.brand-stat-lbl,.recs-stat-l,
  .recs-stat .l,.sum-kpi .l,.sum-brand-stats .l,.dk-hero-stat-lbl,.hm-bs .l,.ins-cap){
  font-size:.84rem !important; font-weight:500 !important; color:var(--t2) !important;
}
body.osp-v2 :is(.ctrl-lbl,.drw-field-label,.ops-field label,.ci-field label,.notes-field label){ font-size:.8rem !important; font-weight:600 !important; color:var(--t2) !important; }
body.osp-v2 :is(.cl-agency-header,.tcs-agency-hdr,.tcs-spaces-title,.tcs-workspace-label,.chat-lbl,.khg-cmdk-group,.action-group-label,
  .tdp-section-label,.drw-section-label,.ve-section-title,.ts-section-hd,.sum-subhead,.rdg-title,.agency-full-col-title,.kanban-col-title,.dk-panel-title){
  font-size:.82rem !important; font-weight:700 !important; color:var(--t1) !important;
}
body.osp-v2 .soc-dow{ text-transform:none !important; letter-spacing:0 !important; font-size:.8rem !important; font-weight:600 !important; }
/* pills and tags: soft, rounded, capitalised words instead of shouting caps */
body.osp-v2 :is(.badge,.tr-badge,.chk-tag,.rcard-chip,.rec-pri,.reco-pri,.asset-type-badge,.status-pill,.soc-pill){
  text-transform:capitalize !important; letter-spacing:0 !important; font-weight:600 !important; border-radius:999px !important;
}

/* ---------- stat tiles: label on top, big number, one look for every page ---------- */
/* Sales KPI cards */
body.osp-v2 .kpi{ display:flex; flex-direction:column; align-items:flex-start; background:var(--osp-card) !important; border:1px solid var(--osp-line) !important;
  border-radius:16px !important; box-shadow:var(--osp-shadow) !important; padding:16px 18px !important; }
body.osp-v2 .kpi::before{ display:none !important; }
body.osp-v2 .kpi > .kpi-lbl{ order:-1; margin:0 0 6px !important; }
body.osp-v2 .kpi > .kpi-val{ font-size:1.75rem !important; font-weight:800 !important; letter-spacing:-.03em !important; line-height:1.1; color:var(--t1); }
body.osp-v2 .kpi > .kpi-delta{ margin-top:8px; border-radius:999px; }
/* small stat strip under the Sales KPIs */
body.osp-v2 .stat-strip{ gap:10px !important; }
body.osp-v2 .stat-pill{ display:flex !important; flex-direction:column; align-items:flex-start; gap:2px; background:var(--osp-card) !important; border:1px solid var(--osp-line) !important;
  border-radius:14px !important; padding:10px 16px !important; box-shadow:var(--osp-shadow); }
body.osp-v2 .stat-pill .sp-l{ order:-1; font-size:.8rem !important; }
body.osp-v2 .stat-pill .sp-v{ font-size:1.12rem !important; font-weight:800 !important; letter-spacing:-.02em; }
/* Work Log / dashboard stat cards */
body.osp-v2 .stat-card{ background:var(--osp-card) !important; border:1px solid var(--osp-line) !important; border-radius:16px !important; box-shadow:var(--osp-shadow) !important; padding:16px 18px !important; }
body.osp-v2 .stat-card::before{ display:none !important; }
body.osp-v2 .stat-card .stat-value{ font-size:1.75rem !important; font-weight:800 !important; letter-spacing:-.03em !important; color:var(--t1) !important; margin-top:6px; }
body.osp-v2 .stat-card .stat-sub{ color:var(--t3); font-size:.8rem; }
/* icon tiles (Inventory, Recipes …) */
body.osp-v2 .ops-kpi{ border-radius:16px !important; border-color:var(--osp-line) !important; background:var(--osp-card) !important; box-shadow:var(--osp-shadow) !important; padding:16px 18px !important; gap:14px !important; }
body.osp-v2 .ops-kpi-ic{ width:42px !important; height:42px !important; border-radius:12px !important; flex:none; }
body.osp-v2 .ops-kpi > div:not(.ops-kpi-ic){ display:flex; flex-direction:column-reverse; gap:2px; }
body.osp-v2 .ops-kpi-v{ font-size:1.5rem !important; font-weight:800 !important; letter-spacing:-.03em !important; }
/* Recommendations counters */
body.osp-v2 .recs-stat{ display:flex !important; flex-direction:column-reverse; justify-content:flex-end; gap:6px; background:var(--osp-card) !important; border:1px solid var(--osp-line) !important;
  border-radius:16px !important; box-shadow:var(--osp-shadow) !important; padding:16px 18px !important; }
body.osp-v2 .recs-stat-v, body.osp-v2 .recs-stat .v{ font-size:1.75rem !important; font-weight:800 !important; letter-spacing:-.03em !important; }
/* small inline tiles built in templates: [value][LABEL] → label above, bigger number */
body.osp-v2 .page-content [style*="background:var(--glass)"]:has(> div:first-child + div[style*="text-transform:uppercase"]:last-child){
  display:flex; flex-direction:column-reverse; justify-content:flex-end; gap:4px; min-width:112px; padding:14px 18px !important; border-radius:14px !important;
}
body.osp-v2 .page-content [style*="background:var(--glass)"]:has(> div:first-child + div[style*="text-transform:uppercase"]:last-child) > div:first-child{
  font-size:1.5rem !important; font-weight:800 !important; letter-spacing:-.03em; line-height:1.1;
}
body.osp-v2 .page-content [style*="background:var(--glass)"]:has(> div:first-child + div[style*="text-transform:uppercase"]:last-child) > div:last-child{
  font-size:.82rem !important; font-weight:500 !important;
}
body.osp-v2 .page-content [style*="display:flex"]:has(> [style*="background:var(--glass)"] > div + div[style*="text-transform:uppercase"]){ gap:12px !important; }

/* ---------- cards with a coloured left bar → clean cards (priority stays on the pill) ---------- */
body.osp-v2 .rec-card{ border:1px solid var(--osp-line) !important; border-radius:16px !important; box-shadow:var(--osp-shadow) !important; background:var(--osp-card) !important; padding:18px 20px !important; }
body.osp-v2 .rec-card .rec-title, body.osp-v2 .rec-card h4{ font-size:1rem; font-weight:700; }

/* ---------- subtle panels (glass2) → white cards on the canvas ---------- */
body.osp-v2 .page-content [style*="background:var(--glass2"]{ background:var(--osp-card) !important; border-color:var(--osp-line) !important; }
body.osp-v2 .page-content [style*="border-radius:9px"][style*="background:var(--glass2"],
body.osp-v2 .page-content [style*="border-radius:12px"][style*="background:var(--glass2"]{ border-radius:12px !important; }
/* today / current-day highlight keeps its green outline */
body.osp-v2 .page-content [style*="background:var(--glass2"][style*="border:1px solid var(--s1"],
body.osp-v2 .page-content [style*="background:var(--glass2"][style*="border:2px solid"]{ border-color:var(--osp-green-2) !important; box-shadow:0 0 0 3px rgba(87,161,95,.14); }

/* ---------- buttons that were still square ---------- */
body.osp-v2 :is(.seg,.rdg-presets,.cl-menu,.tv-view-switch){ border-radius:999px; }
body.osp-v2 .seg{ background:var(--osp-line-2) !important; border:0 !important; padding:4px !important; border-radius:999px !important; gap:2px; }
body.osp-v2 .seg button{ border-radius:999px !important; border:0 !important; padding:6px 14px !important; font-weight:600 !important; color:var(--t2); background:none; }
body.osp-v2 .seg button.active{ background:var(--osp-card) !important; color:var(--t1) !important; box-shadow:0 1px 3px rgba(20,32,22,.12); }
body.osp-v2 :is(.rdg-preset,.cl-menu-btn,.tv-today-btn,.tv-cal-nav-btn,.tv-icon-btn,.ctrl-btn,.mini-btn,.chip-btn){ border-radius:999px !important; font-weight:600; }
body.osp-v2 .rdg-preset.active{ background:var(--osp-green) !important; border-color:var(--osp-green) !important; color:#fff !important; }
body.osp-v2 :is(.ctrl-sel,.ctrl-bar select){ border-radius:10px !important; border-color:var(--osp-line) !important; min-height:38px; }

/* ---------- tables sitting straight on the canvas get a card ---------- */
body.osp-v2 .section > table, body.osp-v2 .section > div > table:not(.data-table):only-child,
body.osp-v2 #cust-table{ background:var(--osp-card); border:1px solid var(--osp-line); border-radius:16px; box-shadow:var(--osp-shadow); overflow:hidden; }
body.osp-v2 #cust-table thead th:first-child{ border-top-left-radius:16px; }
body.osp-v2 #cust-table thead th:last-child{ border-top-right-radius:16px; }

/* ---------- empty states: one calm dashed card ---------- */
body.osp-v2 .page-content :is([id$="-empty"],[class$="-empty"],.empty-state):not(:empty):not([style*="display:none"]):not([style*="display: none"]){
  text-align:center; padding:44px 20px !important; border:1.5px dashed var(--osp-line) !important; border-radius:16px !important; background:var(--osp-card) !important;
  color:var(--t2) !important; font-size:.95rem !important;
}

/* ---------- list rows (brands, report rows, permission levels …) ---------- */
body.osp-v2 :is(.report-row,.brand-row,.perm-row,.cl-row){ border-radius:14px !important; border-color:var(--osp-line) !important; background:var(--osp-card); }

/* ---------- section intro text ---------- */
body.osp-v2 .section > p[style*="font-size:.82rem"], body.osp-v2 .section > p[style*="font-size:.8rem"]{ font-size:.9rem !important; color:var(--t2) !important; line-height:1.55; }

/* ---------- Tasks: view switch and calendar surface ---------- */
body.osp-v2 .tv-tabs{ background:var(--osp-line-2) !important; border:0 !important; border-radius:999px !important; padding:4px !important; gap:2px; }
body.osp-v2 .tv-tab{ border-radius:999px !important; border:0 !important; font-weight:600; color:var(--t2); }
body.osp-v2 .tv-tab.active, body.osp-v2 .tv-tab.on{ background:var(--osp-card) !important; color:var(--t1) !important; box-shadow:0 1px 3px rgba(20,32,22,.12); }
body.osp-v2 .tv-filter-btn{ border-radius:999px !important; }
body.osp-v2 .tv-view:not([style*="display:none"]):not([style*="display: none"]){ background:var(--osp-card); border:1px solid var(--osp-line); border-radius:16px; box-shadow:var(--osp-shadow); }
body.osp-v2 .week-day-col{ border-color:var(--osp-line-2) !important; }
body.osp-v2 .week-today-col{ background:rgba(87,161,95,.05) !important; }

/* ---------- table wrappers → cards ---------- */
body.osp-v2 .page-content [id$="-table-wrap"]{ background:var(--osp-card); border:1px solid var(--osp-line) !important; border-radius:16px !important; box-shadow:var(--osp-shadow); }

/* inline stat tiles share the row evenly */
body.osp-v2 .page-content [style*="background:var(--glass)"]:has(> div:first-child + div[style*="text-transform:uppercase"]:last-child){ flex:1 1 140px; max-width:240px; }

/* ==========================================================================
   Packages (2026-09-23): plan picker, add-on page, marketing home
   ========================================================================== */
.bp-pkgs{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:0 0 18px; }
@media (max-width:640px){ .bp-pkgs{ grid-template-columns:1fr; } }
.bp-pkg{ display:flex; flex-direction:column; align-items:flex-start; gap:4px; text-align:left; padding:14px 15px; border-radius:14px; border:1.5px solid var(--osp-line,var(--border));
  background:var(--osp-card,var(--bg2)); color:var(--t1); font:inherit; cursor:pointer; transition:border-color .15s, box-shadow .15s; }
.bp-pkgs-set .bp-pkg{ cursor:default; }
button.bp-pkg:hover{ border-color:#9cc3a1; }
.bp-pkg.on{ border-color:var(--osp-green,#2f5d3a); box-shadow:0 0 0 3px rgba(87,161,95,.16); }
.bp-pkg b{ font-size:.95rem; font-weight:700; }
.bp-pkg span{ font-size:1.25rem; font-weight:800; letter-spacing:-.02em; }
.bp-pkg span small{ font-size:.72rem; font-weight:500; color:var(--t3); margin-left:2px; letter-spacing:0; }
.bp-pkg em{ font-style:normal; font-size:.78rem; color:var(--t2); line-height:1.4; }
.bp-pkg .btn{ margin-top:8px; }
.bp-pkg .bp-cur{ margin-top:8px; font-style:normal; font-size:.74rem; font-weight:700; color:var(--osp-green,#2f5d3a); background:rgba(87,161,95,.12); border-radius:999px; padding:3px 10px; }
[data-theme="dark"] .bp-pkg .bp-cur{ color:#8fd197; }
#bill-gate .bg-card{ max-width:720px; }

/* add-on page */
.pkg-up{ max-width:640px; margin:24px auto 40px; padding:34px 36px; background:var(--osp-card,var(--bg2)); border:1px solid var(--osp-line,var(--border)); border-radius:20px; box-shadow:var(--osp-shadow,var(--shadow)); }
.pkg-up-ic{ width:52px; height:52px; border-radius:14px; display:grid; place-items:center; background:rgba(87,161,95,.12); color:var(--osp-green,#2f5d3a); margin-bottom:16px; }
[data-theme="dark"] .pkg-up-ic{ color:#8fd197; }
.pkg-up-ic svg{ width:26px; height:26px; }
.pkg-up-eyebrow{ font-size:.84rem; font-weight:600; color:var(--t2); }
.pkg-up h2{ font-size:1.6rem !important; font-weight:800 !important; letter-spacing:-.025em; margin:4px 0 8px; color:var(--t1); }
.pkg-up-sub{ color:var(--t2); font-size:.95rem; line-height:1.55; margin:0 0 16px; }
.pkg-up-list{ list-style:none; padding:0; margin:0 0 20px; display:grid; gap:8px; }
.pkg-up-list li{ position:relative; padding-left:26px; font-size:.92rem; color:var(--t1); }
.pkg-up-list li::before{ content:""; position:absolute; left:0; top:3px; width:16px; height:16px; border-radius:50%; background:rgba(87,161,95,.16) no-repeat center/10px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232f7a3a' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E"); }
.pkg-up-price{ padding:14px 16px; border-radius:12px; background:var(--osp-head,var(--glass)); font-size:.9rem; color:var(--t1); margin-bottom:18px; }
.pkg-up-price b{ font-size:1.15rem; font-weight:800; }
.pkg-up-price span{ color:var(--t2); }
.pkg-up-actions{ display:flex; gap:10px; flex-wrap:wrap; }
.pkg-up-note{ font-size:.9rem; color:var(--t2); }
.pkg-up-err, .bp-err{ color:#b4491f; font-size:.85rem; margin-top:10px; }

/* home: add-on card */
.pkg-card{ display:flex; align-items:center; gap:16px; justify-content:space-between; flex-wrap:wrap; margin:28px 0 8px; padding:18px 20px; border-radius:16px;
  border:1.5px dashed var(--osp-line,var(--border)); background:var(--osp-card,var(--bg2)); }
.pkg-card-t{ font-weight:700; color:var(--t1); }
.pkg-card-d{ font-size:.86rem; color:var(--t2); margin-top:2px; }
.pkg-tag{ font-size:.7rem; font-weight:600; color:var(--t3); border:1px solid var(--osp-line,var(--border)); border-radius:999px; padding:1px 8px; margin-left:4px; }

/* sidebar add-on entry */
#osp-side .os-pkg{ display:flex; align-items:center; gap:11px; width:calc(100% - 0px); margin-top:10px; padding:9px 10px; border:1px dashed rgba(255,255,255,.22); border-radius:10px;
  background:none; color:rgba(255,255,255,.72); font:inherit; font-size:.88rem; font-weight:600; cursor:pointer; text-align:left; }
#osp-side .os-pkg:hover{ background:rgba(255,255,255,.06); color:#fff; }
#osp-side .os-pkg svg{ width:16px; height:16px; flex:none; opacity:.8; }
#osp-side .os-pkg em{ margin-left:auto; font-style:normal; font-size:.72rem; font-weight:700; color:#8fd197; }

/* marketing home */
#sum-mkt .mh-top{ margin-top:40px; padding-top:22px; border-top:1px solid var(--osp-line,var(--border)); }
#sum-mkt .mh-top h3{ font-size:1.35rem !important; }
#sum-mkt .mh-vit{ display:grid; grid-template-columns:repeat(auto-fit,minmax(min(420px,100%),1fr)); gap:20px; }
.mh-week{ display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:10px; }
@media (max-width:900px){ .mh-week{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
.mh-day{ background:var(--osp-card,var(--bg2)); border:1px solid var(--osp-line,var(--border)); border-radius:14px; padding:12px; min-height:128px; display:flex; flex-direction:column; gap:6px; min-width:0; }
.mh-day.today{ border-color:#8fbf95; box-shadow:0 0 0 3px rgba(87,161,95,.12); }
.mh-dh{ font-size:.84rem; color:var(--t2); }
.mh-dh b{ color:var(--t1); font-weight:700; margin-right:2px; }
.mh-it{ font-size:.78rem; line-height:1.35; padding:6px 8px; border-radius:8px; overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; color:var(--t1); }
.mh-it.ev{ background:rgba(59,110,165,.12); font-weight:600; }
.mh-it.po{ background:rgba(87,161,95,.12); }
.mh-it.po.pending{ background:rgba(201,138,0,.14); }
.mh-it span{ font-weight:700; }
.mh-none{ color:var(--t3); font-size:.8rem; }
.mh-fbs{ padding:6px 18px !important; }
.mh-fb{ display:grid; grid-template-columns:auto 1fr auto; gap:14px; align-items:baseline; padding:12px 0; border-bottom:1px solid var(--osp-line-2,var(--border)); }
.mh-fb:last-child{ border-bottom:0; }
.mh-stars{ color:#d9a441; letter-spacing:1px; font-size:.9rem; white-space:nowrap; }
.mh-stars i{ font-style:normal; color:var(--osp-line,var(--border)); }
.mh-fbt{ font-size:.9rem; color:var(--t1); }
.mh-fbm{ font-size:.78rem; color:var(--t3); white-space:nowrap; }
@media (max-width:640px){ .mh-fb{ grid-template-columns:1fr; gap:4px; } }

#section-summary .hm-sechead .hint a{ color:var(--osp-green,#2f5d3a); font-weight:600; text-decoration:none; }
#section-summary .hm-sechead .hint a:hover{ text-decoration:underline; }
[data-theme="dark"] #section-summary .hm-sechead .hint a{ color:#8fd197; }

/* ── Marketing expansion pages (mk-*) — 2026-09-23 ── */
.mk-page{ --mk-card: var(--osp-card, var(--glass, #fff)); --mk-line: var(--osp-line, var(--border, #e5e8e2)); --mk-head: var(--osp-head, rgba(0,0,0,.02)); --mk-green: var(--osp-green, #2f5d3a); }
.mk-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:16px; flex-wrap:wrap; margin:0 0 18px; }
.mk-head h2{ margin:0 0 4px; font-size:1.35rem; font-weight:750; letter-spacing:-.01em; color:var(--t1); }
.mk-head p{ margin:0; color:var(--t2); font-size:.9rem; max-width:680px; line-height:1.5; }
.mk-actions{ display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.mk-sel{ width:auto; min-width:150px; max-width:240px; }
.mk-stats{ display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px; margin:0 0 18px; }
.mk-stat{ background:var(--mk-card); border:1px solid var(--mk-line); border-radius:14px; padding:14px 16px; }
.mk-stat-v{ font-size:1.45rem; font-weight:750; color:var(--t1); letter-spacing:-.01em; line-height:1.15; }
.mk-stat-l{ font-size:.72rem; font-weight:600; text-transform:uppercase; letter-spacing:.05em; color:var(--t3); margin-top:4px; }
.mk-stat-h{ font-size:.78rem; color:var(--t2); margin-top:4px; }
.mk-card{ background:var(--mk-card); border:1px solid var(--mk-line); border-radius:16px; padding:18px 20px; margin-bottom:14px; }
.mk-card h4{ margin:0 0 8px; font-size:1rem; font-weight:700; color:var(--t1); }
.mk-card p{ margin:0 0 8px; color:var(--t1); line-height:1.55; font-size:.9rem; }
.mk-cards{ display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:14px; }
.mk-cards .mk-card{ margin:0; display:flex; flex-direction:column; }
.mk-cards .mk-row-actions{ margin-top:auto; padding-top:12px; }
.mk-why{ color:var(--t2) !important; font-size:.86rem !important; }
.mk-sub{ color:var(--t3); font-size:.78rem; margin-top:2px; }
.mk-hint{ color:var(--t3); font-size:.78rem; font-weight:400; }
.mk-note{ background:var(--mk-head); border:1px solid var(--mk-line); border-radius:12px; padding:10px 14px; font-size:.84rem; color:var(--t2); margin:0 0 14px; }
.mk-warn{ background:rgba(245,166,35,.1); border:1px solid rgba(245,166,35,.35); border-radius:12px; padding:10px 14px; font-size:.84rem; color:var(--t1); margin:0 0 14px; }
.mk-empty{ text-align:center; color:var(--t2); padding:46px 20px; font-size:.92rem; background:var(--mk-card); border:1px dashed var(--mk-line); border-radius:16px; }
.mk-loading{ color:var(--t3); padding:30px 0; text-align:center; }
.mk-chip{ display:inline-block; font-size:.7rem; font-weight:650; padding:2px 9px; border-radius:999px; background:var(--mk-head); border:1px solid var(--mk-line); color:var(--t2); margin-right:6px; text-transform:capitalize; white-space:nowrap; vertical-align:middle; }
.mk-chip.on{ background:rgba(47,93,58,.1); border-color:rgba(47,93,58,.25); color:var(--mk-green); }
.mk-chip.ok{ background:rgba(87,161,95,.12); border-color:rgba(87,161,95,.3); color:#3b7d43; }
.mk-chip.off{ background:rgba(179,38,30,.07); border-color:rgba(179,38,30,.2); color:#b3261e; }
.mk-chip.k-post{ color:#3b5bdb; } .mk-chip.k-email{ color:#2f5d3a; } .mk-chip.k-sms{ color:#9c36b5; } .mk-chip.k-offer{ color:#c2410c; }
.mk-filters{ display:flex; gap:8px; flex-wrap:wrap; margin:0 0 14px; align-items:center; }
.mk-filters .form-input{ width:auto; min-width:160px; }
.mk-filters input.form-input{ flex:1; min-width:200px; max-width:360px; }
.mk-table-wrap{ overflow-x:auto; background:var(--mk-card); border:1px solid var(--mk-line); border-radius:16px; margin-bottom:14px; }
.mk-table{ width:100%; border-collapse:collapse; font-size:.86rem; }
.mk-table th{ text-align:left; font-size:.68rem; font-weight:650; text-transform:uppercase; letter-spacing:.05em; color:var(--t3); padding:11px 14px; background:var(--mk-head); border-bottom:1px solid var(--mk-line); white-space:nowrap; }
.mk-table td{ padding:11px 14px; border-bottom:1px solid var(--mk-line); vertical-align:top; color:var(--t1); }
.mk-table tr:last-child td{ border-bottom:0; }
.mk-table .r{ text-align:right; white-space:nowrap; }
.mk-table a{ color:var(--t1); text-decoration:none; } .mk-table a:hover{ text-decoration:underline; }
.mk-table.mk-compact td{ padding:7px 4px; border-bottom:1px solid var(--mk-line); }
.mk-card .mk-table-wrap{ border-radius:10px; }
.mk-clip{ max-width:420px; overflow:hidden; text-overflow:ellipsis; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
.mk-mono{ font-family:ui-monospace,Menlo,monospace; font-size:.82rem; }
.mk-wrap{ word-break:break-all; max-width:380px; }
.mk-pager{ display:flex; gap:8px; align-items:center; justify-content:flex-end; color:var(--t3); font-size:.8rem; }
.mk-pager span{ margin-right:auto; }
.mk-row-actions{ display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin-top:10px; }
.mk-idea-top{ display:flex; gap:6px; align-items:center; flex-wrap:wrap; margin-bottom:8px; }
.mk-when{ font-size:.76rem; color:var(--t3); }
.mk-idea.used{ opacity:.6; }
.mk-draft{ background:var(--mk-head); border:1px solid var(--mk-line); border-radius:10px; padding:10px 12px; font-size:.84rem; color:var(--t1); margin-top:6px; white-space:pre-wrap; line-height:1.5; max-height:170px; overflow:auto; }
.mk-code{ font-family:ui-monospace,Menlo,monospace; font-weight:700; font-size:.8rem; letter-spacing:.05em; background:var(--mk-head); border:1px dashed var(--mk-line); border-radius:6px; padding:2px 8px; color:var(--t1); }
.mk-res{ display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:12px; }
.mk-res > div{ background:var(--mk-head); border-radius:10px; padding:10px 12px; }
.mk-res b{ display:block; font-size:1.15rem; color:var(--t1); } .mk-res b.up{ color:#3b7d43; } .mk-res b.down{ color:#b3261e; }
.mk-res span{ font-size:.74rem; color:var(--t3); }
.mk-presets{ display:flex; gap:6px; flex-wrap:wrap; align-items:center; margin:0 0 14px; }
.mk-f{ margin:0 0 12px; }
.mk-f > label, .mk-page label:not(.mk-ck):not(.mk-switch){ display:block; font-size:.76rem; font-weight:650; color:var(--t2); margin:0 0 5px; }
.mk-modal label:not(.mk-ck):not(.mk-switch){ display:block; font-size:.76rem; font-weight:650; color:var(--t2); margin:0 0 5px; }
.mk-ck{ display:flex !important; align-items:flex-start; gap:8px; font-size:.85rem !important; font-weight:500 !important; color:var(--t1) !important; cursor:pointer; line-height:1.4; }
.mk-ck input{ margin-top:2px; flex-shrink:0; width:16px; height:16px; accent-color:var(--mk-green, #2f5d3a); }
.mk-checks{ display:flex; flex-wrap:wrap; gap:10px 16px; align-items:center; }
.mk-grid2{ display:grid; grid-template-columns:1fr 1fr; gap:0 14px; }
.mk-grid3{ display:grid; grid-template-columns:repeat(3,1fr); gap:8px 12px; }
.mk-copy{ display:flex; gap:8px; align-items:center; } .mk-copy .form-input{ flex:1; min-width:0; }
.mk-at{ color:var(--t2); font-size:.9rem; }
.mk-count{ background:var(--mk-head); border-radius:10px; padding:9px 12px; font-size:.85rem; color:var(--t1); margin:4px 0 12px; }
.mk-rules{ border:1px solid var(--osp-line, #e5e8e2); border-radius:12px; padding:14px 14px 4px; margin-bottom:10px; }
.mk-ai{ display:flex; gap:8px; margin:0 0 14px; } .mk-ai .form-input{ flex:1; }
.mk-issue{ padding:8px 0; border-top:1px solid var(--mk-line); font-size:.88rem; color:var(--t1); } .mk-issue:first-of-type{ border-top:0; }
.mk-stars{ color:#f5a623; letter-spacing:1px; font-size:.95rem; } .mk-stars span{ color:#d8ddd8; }
.mk-rev-h{ display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-bottom:8px; }
.mk-rev.done{ opacity:.75; }
.mk-reply{ background:var(--mk-head); border:1px solid var(--mk-line); border-radius:10px; padding:9px 12px; font-size:.86rem; color:var(--t1); }
.mk-note-in{ flex:1; min-width:180px; max-width:340px; }
.mk-auto-h{ display:flex; align-items:center; justify-content:space-between; gap:10px; }
.mk-auto-h h4{ margin:0; }
.mk-auto.on{ border-color:rgba(47,93,58,.4); }
.mk-switch{ position:relative; width:42px; height:24px; flex-shrink:0; cursor:pointer; }
.mk-switch input{ opacity:0; width:0; height:0; position:absolute; }
.mk-switch span{ position:absolute; inset:0; background:#cfd4cc; border-radius:999px; transition:.15s; }
.mk-switch span::after{ content:''; position:absolute; width:18px; height:18px; left:3px; top:3px; background:#fff; border-radius:50%; transition:.15s; box-shadow:0 1px 2px rgba(0,0,0,.2); }
.mk-switch input:checked + span{ background:var(--osp-green, #2f5d3a); }
.mk-switch input:checked + span::after{ transform:translateX(18px); }
.mk-switch input:focus-visible + span{ outline:2px solid var(--osp-green, #2f5d3a); outline-offset:2px; }
.mk-qr{ display:flex; justify-content:center; padding:12px; } .mk-qr img, .mk-qr canvas{ border:10px solid #fff; border-radius:8px; }
.mk-mini{ margin-top:6px; } .mk-mini .mk-stats{ margin-bottom:4px; } .mk-mini .mk-stat{ padding:10px 12px; } .mk-mini .mk-stat-v{ font-size:1.1rem; }
/* modal */
.mk-modal-wrap{ position:fixed; inset:0; background:rgba(12,20,14,.45); z-index:10050; display:flex; align-items:flex-start; justify-content:center; padding:5vh 16px; overflow-y:auto; }
.mk-modal{ background:var(--osp-card, #fff); color:var(--t1); border-radius:18px; width:100%; max-width:600px; box-shadow:0 24px 60px -20px rgba(0,0,0,.4); border:1px solid var(--osp-line, #e5e8e2); }
.mk-modal.wide{ max-width:1040px; }
.mk-modal-h{ display:flex; align-items:center; justify-content:space-between; padding:16px 20px; border-bottom:1px solid var(--osp-line, #e5e8e2); }
.mk-modal-h h3{ margin:0; font-size:1.05rem; font-weight:700; }
.mk-x{ background:none; border:0; font-size:1.6rem; line-height:1; color:var(--t3); cursor:pointer; padding:0 4px; }
.mk-modal-b{ padding:18px 20px; }
.mk-modal-f{ display:flex; gap:8px; align-items:center; justify-content:flex-end; flex-wrap:wrap; border-top:1px solid var(--osp-line, #e5e8e2); margin:16px -20px -18px; padding:14px 20px; }
.mk-modal .form-input{ width:100%; }
.mk-modal .mk-copy .form-input{ width:auto; }
.mk-modal .mk-card{ background:var(--osp-head, rgba(0,0,0,.02)); }
.mk-modal .mk-stat{ background:var(--osp-head, rgba(0,0,0,.02)); border:1px solid var(--osp-line, #e5e8e2); border-radius:12px; padding:12px 14px; }
.mk-modal .mk-stats{ display:grid; grid-template-columns:repeat(auto-fit,minmax(120px,1fr)); gap:10px; }
.mk-modal .mk-stat-v{ font-size:1.25rem; font-weight:750; } .mk-modal .mk-stat-l{ font-size:.7rem; text-transform:uppercase; letter-spacing:.05em; color:var(--t3); margin-top:3px; font-weight:600; }
.mk-modal .mk-count, .mk-modal .mk-draft, .mk-modal .mk-note{ background:var(--osp-head, rgba(0,0,0,.03)); }
/* campaign editor */
.mk-ce{ display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:22px; }
.mk-ce-r{ position:sticky; top:0; align-self:start; }
.mk-blk{ border:1px solid var(--osp-line, #e5e8e2); border-radius:12px; padding:10px 12px; margin-bottom:8px; background:var(--osp-card, #fff); }
.mk-blk .form-input{ margin-top:6px; }
.mk-blk-h{ display:flex; align-items:center; gap:4px; font-size:.78rem; color:var(--t2); }
.mk-ib{ background:none; border:1px solid var(--osp-line, #e5e8e2); border-radius:6px; width:26px; height:24px; cursor:pointer; color:var(--t2); }
.mk-ib:disabled{ opacity:.35; cursor:default; }
.mk-addblk{ display:flex; gap:6px; flex-wrap:wrap; margin:6px 0 8px; }
.mk-mail{ background:#f4f4f1; border-radius:14px; padding:14px; max-height:64vh; overflow:auto; color:#111; }
.mk-mail-subj{ font-size:.84rem; margin-bottom:10px; color:#333; }
.mk-mail-card{ background:#fff; border-radius:12px; padding:18px; font-family:-apple-system,Segoe UI,Helvetica,Arial,sans-serif; }
.mk-mail-card h1{ font-size:1.3rem; font-weight:800; margin:0 0 10px; color:#111; line-height:1.2; }
.mk-mail-card p{ font-size:.9rem; line-height:1.6; color:#333; margin:0 0 12px; }
.mk-mail-card img{ width:100%; border-radius:10px; margin-bottom:12px; display:block; }
.mk-mail-card hr{ border:0; border-top:1px solid #e6e6e6; margin:14px 0; }
.mk-mail-logo{ text-align:center; margin-bottom:12px; } .mk-mail-logo img{ height:36px; width:auto; display:inline-block; margin:0; }
.mk-mbtn{ display:inline-block; color:#fff; font-weight:700; padding:10px 20px; border-radius:999px; font-size:.88rem; margin:2px 0 14px; }
.mk-moff{ border:2px dashed; border-radius:12px; padding:12px; text-align:center; font-size:.88rem; margin:2px 0 14px; } .mk-moff b{ display:block; font-size:1.2rem; letter-spacing:.06em; font-family:ui-monospace,Menlo,monospace; }
.mk-imgph{ background:#eceee9; border-radius:10px; height:120px; display:flex; align-items:center; justify-content:center; color:#999; margin-bottom:12px; font-size:.8rem; }
.mk-mail-foot{ font-size:.72rem; color:#888; text-align:center; margin-top:10px; }
.mk-phone{ background:#f2f2f7; border-radius:22px; padding:22px 16px; min-height:180px; }
.mk-bubble{ background:#e5e5ea; color:#111; border-radius:18px 18px 18px 4px; padding:10px 14px; font-size:.9rem; line-height:1.4; max-width:85%; font-family:-apple-system,Helvetica,Arial,sans-serif; }
[data-theme="dark"] .mk-chip.ok{ color:#8fd198; } [data-theme="dark"] .mk-chip.on{ color:#8fd198; }
@media (max-width:860px){ .mk-ce{ grid-template-columns:1fr; } .mk-ce-r{ position:static; } }
@media (max-width:640px){ .mk-grid2, .mk-grid3{ grid-template-columns:1fr; } .mk-cards{ grid-template-columns:1fr; } .mk-ai{ flex-direction:column; } .mk-head .mk-actions{ width:100%; } }

/* ── Marketing expansion round 2 (mk-*) — 2026-09-23 ── */
.mk-prof-top{ display:flex; flex-wrap:wrap; gap:6px; margin:0 0 12px; }
.mk-tabs{ display:flex; gap:4px; border-bottom:1px solid var(--osp-line, #e5e8e2); margin:0 0 14px; overflow-x:auto; }
.mk-tabs button{ background:none; border:0; border-bottom:2px solid transparent; padding:8px 12px; font:inherit; font-size:.86rem; font-weight:600; color:var(--t2); cursor:pointer; white-space:nowrap; margin-bottom:-1px; }
.mk-tabs button.on{ color:var(--t1); border-bottom-color:var(--osp-green, #2f5d3a); }
.mk-tl{ display:flex; flex-direction:column; gap:0; max-height:52vh; overflow:auto; }
.mk-tl-i{ display:grid; grid-template-columns:128px 1fr; gap:12px; padding:8px 0; border-bottom:1px solid var(--osp-line, #e5e8e2); font-size:.86rem; line-height:1.45; }
.mk-tl-i:last-child{ border-bottom:0; }
.mk-tl-d{ color:var(--t3); font-size:.78rem; font-variant-numeric:tabular-nums; }
.mk-bulk{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; padding:10px 14px; margin:0 0 12px; border-radius:12px; background:var(--osp-head, rgba(0,0,0,.03)); border:1px solid var(--osp-line, #e5e8e2); font-size:.86rem; }
.mk-chip.k-auto{ background:rgba(47,93,58,.10); color:var(--osp-green, #2f5d3a); border-color:rgba(47,93,58,.25); }
[data-theme="dark"] .mk-chip.k-auto{ color:#8fd198; background:rgba(143,209,152,.12); border-color:rgba(143,209,152,.28); }
.mk-cf{ display:grid; grid-template-columns:1fr 1fr auto; gap:6px; align-items:center; margin-bottom:6px; }
.mk-cf .form-input{ width:100%; }
.mk-orgroup{ border:1px dashed var(--osp-line, #d5d9d2); border-radius:12px; padding:10px 12px; margin:8px 0; background:var(--osp-head, rgba(0,0,0,.02)); }
.mk-tplcat{ margin:16px 0 8px; font-size:.74rem; text-transform:uppercase; letter-spacing:.06em; color:var(--t3); font-weight:700; }
.mk-tplgrid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(170px,1fr)); gap:8px; }
.mk-tpl{ display:flex; flex-direction:column; gap:4px; text-align:left; padding:12px 14px; border-radius:12px; border:1px solid var(--osp-line, #e5e8e2); background:var(--osp-card, #fff); color:var(--t1); font:inherit; cursor:pointer; transition:border-color .15s, transform .15s; }
.mk-tpl:hover{ border-color:var(--osp-green, #2f5d3a); transform:translateY(-1px); }
.mk-tpl b{ font-size:.88rem; } .mk-tpl span{ font-size:.76rem; color:var(--t2); line-height:1.4; }
.mk-tpl.blank{ border-style:dashed; }
.mk-prevbar{ display:flex; align-items:center; justify-content:space-between; gap:8px; margin:0 0 8px; }
.mk-seg-b{ background:none; border:1px solid var(--osp-line, #e5e8e2); padding:5px 12px; font:inherit; font-size:.78rem; font-weight:600; color:var(--t2); cursor:pointer; }
.mk-seg-b:first-of-type{ border-radius:999px 0 0 999px; } .mk-seg-b:last-of-type{ border-radius:0 999px 999px 0; margin-left:-1px; }
.mk-seg-b.on{ background:var(--osp-green, #2f5d3a); border-color:var(--osp-green, #2f5d3a); color:#fff; }
#mk-ce-prev.mobile{ max-width:360px; margin:0 auto; }
.mk-mnps{ display:flex; gap:3px; flex-wrap:wrap; margin:0 0 14px; }
.mk-mnps span{ flex:1 0 22px; text-align:center; padding:7px 0; border:1px solid #d9d9d9; border-radius:6px; font-size:.8rem; color:#333; }
.mk-mediagrid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(110px,1fr)); gap:8px; max-height:52vh; overflow:auto; }
.mk-media{ padding:0; border:1px solid var(--osp-line, #e5e8e2); border-radius:10px; overflow:hidden; background:var(--osp-head, #f4f4f1); cursor:pointer; aspect-ratio:1; }
.mk-media img{ width:100%; height:100%; object-fit:cover; display:block; }
.mk-media:hover{ outline:2px solid var(--osp-green, #2f5d3a); outline-offset:-2px; }
.mk-modal-wrap.mk-sub-modal{ z-index:10060; }
.mk-steph{ margin:14px 0 8px; font-size:.86rem; font-weight:700; }
.mk-stepform{ display:flex; flex-direction:column; gap:8px; }
.mk-step{ border:1px solid var(--osp-line, #e5e8e2); border-radius:12px; padding:10px 12px; margin:8px 0; background:var(--osp-head, rgba(0,0,0,.02)); }
.mk-list{ margin:6px 0 0; padding-left:18px; font-size:.86rem; line-height:1.6; color:var(--t2); }
.mk-theme{ display:grid; grid-template-columns:120px 1fr 36px; gap:10px; align-items:center; padding:5px 0; font-size:.85rem; }
.mk-bar{ display:flex; height:8px; border-radius:999px; overflow:hidden; background:var(--osp-head, rgba(0,0,0,.05)); }
.mk-bar i{ display:block; height:100%; } .mk-bar i.p{ background:#3f8f52; } .mk-bar i.n{ background:#c2483d; }
.mk-heat{ border-collapse:separate; border-spacing:3px; width:100%; font-size:.76rem; }
.mk-heat th{ font-weight:600; color:var(--t3); padding:2px 4px; text-align:center; } .mk-heat tr th:first-child{ text-align:left; white-space:nowrap; }
.mk-heat td{ text-align:center; padding:8px 2px; border-radius:6px; background:rgba(47,93,58,var(--a,0)); color:var(--t1); font-variant-numeric:tabular-nums; }
.mk-heat td:empty{ background:var(--osp-head, rgba(0,0,0,.03)); }
.mk-up{ color:#2f7d43; font-weight:700; } .mk-down{ color:#b3413a; font-weight:700; }
[data-theme="dark"] .mk-up{ color:#8fd198; } [data-theme="dark"] .mk-down{ color:#f08f86; }
.mk-bars{ display:flex; align-items:flex-end; gap:6px; height:140px; padding-top:6px; }
.mk-bcol{ flex:1; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; height:100%; gap:4px; min-width:0; }
.mk-bcol i{ display:block; width:100%; max-width:34px; border-radius:6px 6px 2px 2px; background:var(--osp-green, #2f5d3a); min-height:2px; }
.mk-bcol i.lo{ background:#c98a2b; }
.mk-bcol span{ font-size:.68rem; color:var(--t3); white-space:nowrap; }
.mk-chat{ display:flex; flex-direction:column; gap:10px; min-height:320px; }
.mk-msg{ max-width:82%; padding:10px 14px; border-radius:16px; font-size:.9rem; line-height:1.5; white-space:pre-wrap; word-wrap:break-word; }
.mk-msg.user{ align-self:flex-end; background:var(--osp-green, #2f5d3a); color:#fff; border-bottom-right-radius:4px; }
.mk-msg.assistant{ align-self:flex-start; background:var(--osp-head, rgba(0,0,0,.04)); border:1px solid var(--osp-line, #e5e8e2); color:var(--t1); border-bottom-left-radius:4px; }
.mk-typing{ opacity:.65; font-style:italic; }
.mk-inbox{ display:grid; grid-template-columns:260px 1fr; min-height:440px; border:1px solid var(--osp-line, #e5e8e2); border-radius:14px; overflow:hidden; background:var(--osp-card, #fff); }
.mk-threads{ border-right:1px solid var(--osp-line, #e5e8e2); overflow:auto; max-height:64vh; }
.mk-thread{ display:flex; align-items:center; gap:8px; width:100%; text-align:left; padding:12px 14px; border:0; border-bottom:1px solid var(--osp-line, #e5e8e2); background:none; font:inherit; font-size:.86rem; color:var(--t1); cursor:pointer; }
.mk-thread b{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:600; }
.mk-thread.on{ background:rgba(47,93,58,.09); }
.mk-badge{ display:inline-flex; align-items:center; justify-content:center; min-width:20px; height:20px; padding:0 6px; border-radius:999px; background:var(--osp-green, #2f5d3a); color:#fff; font-size:.7rem; font-weight:700; }
.mk-conv{ display:flex; flex-direction:column; min-width:0; }
.mk-conv-h{ padding:12px 16px; border-bottom:1px solid var(--osp-line, #e5e8e2); font-size:.9rem; }
.mk-conv-b{ flex:1; display:flex; flex-direction:column; gap:8px; padding:16px; overflow:auto; max-height:52vh; }
.mk-redeem{ max-width:520px; }
.mk-redeem .form-input{ font-size:1.1rem; letter-spacing:.04em; }
.mk-okbox{ border:1px solid rgba(47,125,67,.35); background:rgba(47,125,67,.08); border-radius:12px; padding:14px 16px; margin-top:12px; display:flex; flex-direction:column; gap:4px; }
.mk-okbox b{ color:#2f7d43; } [data-theme="dark"] .mk-okbox b{ color:#8fd198; }
.mk-rw, .mk-tr, .mk-lk{ align-items:center; }
@media (max-width:760px){ .mk-inbox{ grid-template-columns:1fr; } .mk-threads{ max-height:200px; border-right:0; border-bottom:1px solid var(--osp-line, #e5e8e2); } .mk-tl-i{ grid-template-columns:1fr; gap:2px; } .mk-cf{ grid-template-columns:1fr; } .mk-theme{ grid-template-columns:90px 1fr 30px; } }

/* ── Email designer, flow builder, audience (mk-*/mkd-*/mkf-*) — 2026-09-23 ── */
body.mkd-open{ overflow:hidden; }
.mkd{ position:fixed; inset:0; z-index:10055; background:var(--osp-bg, var(--bg, #f6f6f3)); color:var(--t1); display:flex; flex-direction:column; }
.mkd-top{ display:flex; align-items:center; gap:12px; padding:10px 16px; border-bottom:1px solid var(--osp-line, #e5e8e2); background:var(--osp-card, #fff); flex-wrap:wrap; }
.mkd-title{ display:flex; align-items:baseline; gap:6px; min-width:0; flex:1; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.mkd-tools{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.mkd-ib{ width:32px; height:30px; font-size:1rem; }
.mkd-sep{ width:1px; height:22px; background:var(--osp-line, #e5e8e2); margin:0 4px; }
.mkd-body{ flex:1; display:grid; grid-template-columns:232px minmax(0,1fr) 300px; min-height:0; }
.mkd-left, .mkd-right{ background:var(--osp-card, #fff); overflow-y:auto; padding:12px; }
.mkd-left{ border-right:1px solid var(--osp-line, #e5e8e2); }
.mkd-right{ border-left:1px solid var(--osp-line, #e5e8e2); }
.mkd-right h4{ margin:2px 0 12px; font-size:.95rem; }
.mkd-tabs{ margin-bottom:10px; } .mkd-tabs button{ padding:7px 6px; font-size:.76rem; }
.mkd-pal{ display:grid; grid-template-columns:1fr 1fr; gap:6px; }
.mkd-pi{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; min-height:64px; padding:8px 4px; border:1px solid var(--osp-line, #e5e8e2); border-radius:10px; background:var(--osp-card, #fff); cursor:grab; font-size:.74rem; font-weight:600; color:var(--t2); text-align:center; user-select:none; transition:border-color .15s, transform .15s; }
.mkd-pi i{ font-style:normal; font-size:1.05rem; color:var(--t1); }
.mkd-pi:hover, .mkd-pi:focus-visible{ border-color:var(--osp-green, #2f5d3a); transform:translateY(-1px); outline:none; }
.mkd-lays{ display:grid; grid-template-columns:1fr 1fr; gap:8px; } .mkd-lays.sm{ grid-template-columns:repeat(3,1fr); gap:6px; }
.mkd-lay{ display:flex; gap:4px; height:40px; padding:6px; border:1px solid var(--osp-line, #e5e8e2); border-radius:8px; cursor:grab; background:var(--osp-card, #fff); }
.mkd-lays.sm .mkd-lay{ height:30px; cursor:pointer; }
.mkd-lay i{ display:block; border-radius:3px; background:var(--osp-head, rgba(0,0,0,.08)); border:1px dashed var(--osp-line, #cfd4cb); }
.mkd-lay:hover, .mkd-lay.on{ border-color:var(--osp-green, #2f5d3a); } .mkd-lay.on i{ background:rgba(47,93,58,.14); }
.mkd-secrow{ display:flex; gap:6px; align-items:center; margin-bottom:6px; }
.mkd-sec{ flex:1; padding:9px 10px; border:1px solid var(--osp-line, #e5e8e2); border-radius:8px; cursor:grab; font-size:.84rem; font-weight:600; background:var(--osp-card, #fff); }
.mkd-sec:hover{ border-color:var(--osp-green, #2f5d3a); }
.mkd-canvas-wrap{ overflow:auto; padding:28px 20px 80px; background:repeating-linear-gradient(45deg, transparent 0 10px, rgba(0,0,0,.018) 10px 20px), var(--osp-bg, #efefea); }
.mkd-canvas{ margin:0 auto; padding:22px 0; border-radius:12px; transition:width .2s; box-shadow:0 10px 30px -18px rgba(0,0,0,.35); }
.mkd-mail{ margin:0 auto; overflow:visible; color:#111; }
.mkd-row{ position:relative; outline:1px dashed transparent; outline-offset:-1px; transition:outline-color .12s; }
.mkd-row:hover{ outline-color:rgba(47,93,58,.35); }
.mkd-row.sel{ outline:2px solid var(--osp-green, #2f5d3a); z-index:1; }
.mkd-rowbar, .mkd-blkbar{ position:absolute; display:none; gap:2px; align-items:center; z-index:3; background:var(--osp-green, #2f5d3a); border-radius:8px; padding:2px; box-shadow:0 4px 12px -4px rgba(0,0,0,.4); }
.mkd-rowbar{ top:-15px; right:6px; } .mkd-blkbar{ top:-14px; left:4px; background:#1f3d27; }
.mkd-row:hover > .mkd-rowbar, .mkd-row.sel > .mkd-rowbar, .mkd-blk:hover > .mkd-blkbar, .mkd-blk.sel > .mkd-blkbar{ display:flex; }
.mkd-rowbar button, .mkd-blkbar button{ border:0; background:transparent; color:#fff; font-size:.75rem; min-width:22px; height:22px; border-radius:6px; cursor:pointer; }
.mkd-rowbar button:hover, .mkd-blkbar button:hover{ background:rgba(255,255,255,.18); } .mkd-rowbar button:disabled{ opacity:.35; }
.mkd-h{ color:#fff; font:600 .72rem/22px system-ui, sans-serif; padding:0 7px; cursor:grab; white-space:nowrap; }
.mkd-cols{ display:flex; gap:0; }
.mkd-col{ min-width:0; min-height:40px; border-radius:6px; transition:background .12s; }
.mkd-col.over{ background:rgba(47,93,58,.07); }
.mkd-blk{ position:relative; cursor:pointer; border-radius:4px; outline:1px dashed transparent; outline-offset:-1px; }
.mkd-blk:hover{ outline-color:rgba(47,93,58,.45); }
.mkd-blk.sel{ outline:2px solid #3b82f6; z-index:2; }
.mkd-hidden{ opacity:.35; }
.mkd-editing{ outline:none; cursor:text; min-height:1em; }
.mkd-editing:focus{ box-shadow:0 0 0 2px rgba(59,130,246,.25); border-radius:3px; }
.mkd-empty{ border:2px dashed #cfd4cb; border-radius:8px; padding:18px; text-align:center; color:#8a8f86; font:600 .8rem system-ui, sans-serif; }
.mkd-ph{ display:flex; align-items:center; justify-content:center; background:#eceee9; border:1px dashed #cfd4cb; border-radius:10px; color:#8a8f86; font:600 .8rem system-ui, sans-serif; }
.mkd-html{ min-height:20px; }
.mkd-addrow{ text-align:center; padding:14px 0 6px; }
.mkd-ind{ position:fixed; height:4px; background:#3b82f6; border-radius:2px; z-index:10070; pointer-events:none; box-shadow:0 0 0 2px rgba(59,130,246,.25); }
.mkd-rtb{ position:fixed; z-index:10065; display:flex; gap:2px; align-items:center; padding:4px; background:#1b1f1a; border-radius:10px; box-shadow:0 10px 28px -10px rgba(0,0,0,.55); }
.mkd-rtb[hidden]{ display:none; }
.mkd-rtb button, .mkd-rtb label{ min-width:30px; height:30px; border:0; border-radius:7px; background:transparent; color:#fff; font:600 .85rem system-ui, sans-serif; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; position:relative; }
.mkd-rtb button:hover, .mkd-rtb label:hover{ background:rgba(255,255,255,.14); }
.mkd-rtb-c input{ position:absolute; inset:0; opacity:0; cursor:pointer; }
.mkd-rtb select{ height:30px; border-radius:7px; border:0; background:#2c322b; color:#fff; font:600 .78rem system-ui, sans-serif; padding:0 6px; }
.mkd-f{ margin-bottom:12px; } .mkd-f > label{ font-size:.76rem; font-weight:700; color:var(--t2); display:block; margin-bottom:5px; }
.mkd-f .form-input{ width:100%; } .mkd-f input[type=range]{ width:100%; }
.mkd-color{ display:grid; grid-template-columns:38px 1fr; gap:6px; }
.mkd-color input[type=color]{ width:38px; height:36px; padding:2px; border:1px solid var(--osp-line, #e5e8e2); border-radius:8px; background:var(--osp-card, #fff); cursor:pointer; }
.mkd-4{ display:grid; grid-template-columns:repeat(3,1fr); gap:6px; } .mkd-4 label{ font-size:.7rem; color:var(--t3); font-weight:600; display:flex; flex-direction:column; gap:3px; }
.mkd-segs{ display:inline-flex; flex-wrap:wrap; }
.mkd-segs .mk-seg-b{ border-radius:0; margin-left:-1px; } .mkd-segs .mk-seg-b:first-child{ border-radius:999px 0 0 999px; margin-left:0; } .mkd-segs .mk-seg-b:last-child{ border-radius:0 999px 999px 0; }
.mkd-actions{ display:flex; gap:6px; flex-wrap:wrap; margin-top:10px; }
.mkd-chk{ display:flex; gap:8px; align-items:flex-start; font-size:.84rem; margin:6px 0; }
.mkd-soc-r{ display:grid; grid-template-columns:110px 1fr auto; gap:6px; margin-bottom:6px; }
.mkd-card{ display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.mkd-prevframe{ width:100%; height:60vh; border:0; border-radius:12px; background:#fff; }
#mk-ce-prev.mobile .mkd-prevframe{ width:375px; max-width:100%; }
@media (max-width:1100px){ .mkd-body{ grid-template-columns:200px minmax(0,1fr) 260px; } }
@media (max-width:860px){
  .mkd-body{ grid-template-columns:1fr; grid-template-rows:auto minmax(0,1fr) auto; }
  .mkd-left{ border-right:0; border-bottom:1px solid var(--osp-line, #e5e8e2); max-height:150px; }
  .mkd-pal{ grid-template-columns:repeat(4,1fr); }
  .mkd-right{ border-left:0; border-top:1px solid var(--osp-line, #e5e8e2); max-height:42vh; }
  .mkd-canvas-wrap{ padding:16px 8px 40px; } .mkd-canvas{ max-width:100%; }
}
/* flows */
.mkf-name{ flex:1; min-width:180px; max-width:420px; font-weight:700; }
.mkf-wrap{ background:var(--osp-bg, #efefea); }
.mkf-canvas{ display:flex; flex-direction:column; align-items:center; min-width:max-content; padding:10px 20px 60px; margin:0 auto; }
.mkf-trigger, .mkf-node{ width:280px; background:var(--osp-card, #fff); border:1px solid var(--osp-line, #e5e8e2); border-radius:14px; padding:12px 14px; cursor:pointer; box-shadow:0 6px 18px -14px rgba(0,0,0,.4); transition:border-color .15s, box-shadow .15s; }
.mkf-trigger{ border-width:2px; border-color:var(--osp-green, #2f5d3a); }
.mkf-trigger.sel, .mkf-node.sel{ box-shadow:0 0 0 3px rgba(59,130,246,.35); border-color:#3b82f6; }
.mkf-node:hover, .mkf-trigger:hover{ border-color:var(--osp-green, #2f5d3a); }
.mkf-nh{ display:flex; align-items:center; gap:8px; font-size:.86rem; }
.mkf-ic{ display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px; border-radius:8px; background:rgba(47,93,58,.1); font-size:.9rem; flex:0 0 auto; }
.mkf-c-msg .mkf-ic{ background:rgba(59,130,246,.12); } .mkf-c-time .mkf-ic{ background:rgba(201,138,43,.14); } .mkf-c-branch .mkf-ic{ background:rgba(147,51,234,.12); } .mkf-c-act .mkf-ic{ background:rgba(47,93,58,.12); }
.mkf-ns{ margin-top:6px; font-size:.84rem; color:var(--t1); line-height:1.4; overflow-wrap:anywhere; }
.mkf-nst{ margin-top:6px; font-size:.72rem; color:var(--t3); }
.mkf-link{ position:relative; display:flex; justify-content:center; width:2px; height:44px; background:var(--osp-line, #cfd4cb); }
.mkf-plus{ position:absolute; top:50%; transform:translateY(-50%); width:24px; height:24px; border-radius:50%; border:1px solid var(--osp-line, #cfd4cb); background:var(--osp-card, #fff); color:var(--t2); font-weight:700; cursor:pointer; line-height:1; transition:all .15s; }
.mkf-plus:hover, .mkf-plus.over{ background:var(--osp-green, #2f5d3a); border-color:var(--osp-green, #2f5d3a); color:#fff; transform:translateY(-50%) scale(1.25); }
.mkf-end{ font-size:.72rem; color:var(--t3); font-weight:700; text-transform:uppercase; letter-spacing:.06em; padding:4px 10px; border-radius:999px; background:var(--osp-head, rgba(0,0,0,.05)); }
.mkf-branches{ display:flex; gap:28px; align-items:flex-start; position:relative; padding-top:18px; }
.mkf-branches::before{ content:""; position:absolute; top:0; left:25%; right:25%; height:18px; border:2px solid var(--osp-line, #cfd4cb); border-bottom:0; border-radius:12px 12px 0 0; }
.mkf-br{ display:flex; flex-direction:column; align-items:center; min-width:290px; }
.mkf-bl{ font-size:.7rem; font-weight:800; text-transform:uppercase; letter-spacing:.05em; padding:3px 10px; border-radius:999px; }
.mkf-bl.yes{ background:rgba(63,143,82,.14); color:#2f7d43; } .mkf-bl.no{ background:rgba(194,72,61,.12); color:#b3413a; }
[data-theme="dark"] .mkf-bl.yes{ color:#8fd198; } [data-theme="dark"] .mkf-bl.no{ color:#f08f86; }
.mkf-menu{ position:fixed; z-index:10066; background:var(--osp-card, #fff); border:1px solid var(--osp-line, #e5e8e2); border-radius:12px; box-shadow:0 16px 40px -18px rgba(0,0,0,.5); padding:6px; display:grid; grid-template-columns:1fr; width:230px; }
.mkf-menu button{ display:flex; align-items:center; gap:8px; text-align:left; padding:8px 10px; border:0; background:none; border-radius:8px; font:inherit; font-size:.85rem; color:var(--t1); cursor:pointer; }
.mkf-menu button:hover{ background:var(--osp-head, rgba(0,0,0,.04)); } .mkf-menu i{ font-style:normal; width:20px; text-align:center; }
.mkf-pi{ min-height:56px; }
.mkf-thumb{ border:1px solid var(--osp-line, #e5e8e2); border-radius:10px; overflow:hidden; height:220px; background:#f4f4f1; }
.mkf-thumb iframe{ width:200%; height:440px; border:0; transform:scale(.5); transform-origin:0 0; pointer-events:none; }
.mkf-mini .mk-stat{ padding:8px 10px; } .mkf-rules .mk-grid2{ grid-template-columns:1fr; }
.mkf-more{ margin:10px 0; } .mkf-more summary{ cursor:pointer; font-weight:600; font-size:.85rem; margin-bottom:8px; }
@media (max-width:860px){ .mkf-br{ min-width:0; } .mkf-trigger, .mkf-node{ width:240px; } }
/* audience + templates */
.mk-cfq{ display:grid; grid-template-columns:1.2fr 1fr 1fr auto; gap:6px; margin-bottom:6px; }
.mk-engbar{ display:flex; height:14px; border-radius:999px; overflow:hidden; background:var(--osp-head, rgba(0,0,0,.05)); margin:6px 0 10px; }
.mk-engbar i, .mk-legend i{ display:block; } .mk-engbar i.hi, .mk-legend i.hi{ background:#2f7d43; } .mk-engbar i.mid, .mk-legend i.mid{ background:#7fb58b; } .mk-engbar i.lo, .mk-legend i.lo{ background:#d9b36a; } .mk-engbar i.zero, .mk-legend i.zero{ background:#c9c9c2; }
.mk-legend{ display:flex; flex-wrap:wrap; gap:12px; font-size:.78rem; color:var(--t2); } .mk-legend span{ display:inline-flex; align-items:center; gap:5px; } .mk-legend i{ width:10px; height:10px; border-radius:3px; }
.mk-top{ grid-template-columns:1fr auto auto; margin-bottom:6px; }
.mk-tplcards{ display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:14px; }
.mk-tplcard{ display:flex; flex-direction:column; gap:10px; padding:12px; }
.mk-tplthumb{ height:220px; border-radius:10px; overflow:hidden; background:#f4f4f1; border:1px solid var(--osp-line, #e5e8e2); }
.mk-tplthumb iframe{ width:200%; height:440px; border:0; transform:scale(.5); transform-origin:0 0; pointer-events:none; }
.mk-tplthumb .mkd-ph{ height:100%; border:0; border-radius:0; }
@media (max-width:640px){ .mk-cfq{ grid-template-columns:1fr 1fr; } }
/* keep app table styles out of the email canvas */
#mkd .mkd-mail table{ width:auto; border-collapse:separate; font-size:inherit; }
#mkd .mkd-mail table[width="100%"]{ width:100%; }
#mkd .mkd-mail tbody td, #mkd .mkd-mail tbody td:first-child{ padding:0; vertical-align:top; color:inherit; font-size:inherit; }
#mkd .mkd-mail p{ margin:0 0 12px; } #mkd .mkd-mail ul, #mkd .mkd-mail ol{ margin:0 0 12px; padding-left:22px; } #mkd .mkd-mail a{ color:inherit; }

/* ── Email delivery: stats + domains (mkx-*) — 2026-09-23 ── */
.mkx-ch{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:10px; } .mkx-ch h4{ margin:0; }
.mkx-chart{ display:flex; align-items:flex-end; gap:2px; height:160px; padding:4px 0; border-bottom:1px solid var(--osp-line, #e5e8e2); }
.mkx-col{ flex:1; min-width:3px; height:100%; display:flex; align-items:flex-end; cursor:default; outline:none; }
.mkx-col i{ display:block; width:100%; min-height:2px; border-radius:4px 4px 0 0; background:var(--osp-green, #2f5d3a); opacity:.85; transition:opacity .12s; }
.mkx-col:hover i, .mkx-col:focus-visible i{ opacity:1; box-shadow:0 0 0 2px rgba(47,93,58,.25); }
.mkx-axis{ display:flex; justify-content:space-between; font-size:.72rem; color:var(--t3); margin-top:4px; }
.mkx-tip{ position:fixed; z-index:10080; max-width:320px; padding:7px 10px; border-radius:8px; background:#1b1f1a; color:#fff; font-size:.78rem; line-height:1.4; pointer-events:none; box-shadow:0 8px 20px -10px rgba(0,0,0,.5); }
.mkx-bar{ display:inline-block; width:90px; height:8px; border-radius:999px; background:var(--osp-head, rgba(0,0,0,.06)); vertical-align:middle; overflow:hidden; }
.mkx-bar i{ display:block; height:100%; background:var(--osp-green, #2f5d3a); border-radius:999px; }
.mkx-dom{ display:flex; flex-direction:column; gap:12px; }
.mkx-dh{ display:flex; align-items:flex-start; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.mkx-mini .mk-stat{ padding:8px 12px; }
.mkx-recs summary{ cursor:pointer; font-weight:700; font-size:.86rem; margin-bottom:8px; }
.mkx-cp{ display:inline-flex; align-items:flex-start; gap:6px; max-width:100%; } .mkx-cp > span{ overflow-wrap:anywhere; } .mkx-cp .mk-ib{ flex:0 0 auto; width:24px; height:22px; font-size:.8rem; }
.mkx-checks{ display:flex; flex-direction:column; gap:6px; font-size:.86rem; }
.mkx-ck{ display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; }
.mkx-dot{ width:9px; height:9px; border-radius:50%; flex:0 0 auto; position:relative; top:1px; }
.mkx-dot.ok{ background:#2f7d43; } .mkx-dot.no{ background:#c9c9c2; } .mkx-dot.warn{ background:#c98a2b; }
/* ── email designer: more blocks & tools ── */
.mkd-tabs button{ padding:7px 6px; }
.mkd-grp{ font-size:.7rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--t3); margin:14px 0 6px; }
.mkd-pane > .mkd-grp:first-of-type{ margin-top:4px; }
.mkd-pres{ display:flex; flex-direction:column; gap:6px; }
.mkd-pre{ padding:9px 10px; border:1px solid var(--osp-line, #e5e8e2); border-radius:10px; background:var(--osp-card, #fff); cursor:grab; user-select:none; transition:border-color .15s, transform .15s; }
.mkd-pre b{ display:block; font-size:.82rem; color:var(--t1); } .mkd-pre span{ display:block; font-size:.72rem; color:var(--t3); margin-top:2px; line-height:1.35; }
.mkd-pre:hover, .mkd-pre:focus-visible{ border-color:var(--osp-green, #2f5d3a); transform:translateY(-1px); outline:none; }
.mkd-colin{ min-height:40px; border-radius:6px; }
.mkd-ly-r{ border:1px solid var(--osp-line, #e5e8e2); border-radius:10px; padding:4px; margin-bottom:6px; }
.mkd-ly-rh, .mkd-ly-b{ display:flex; align-items:center; gap:6px; width:100%; text-align:left; border:0; background:none; border-radius:7px; padding:6px 8px; font:inherit; font-size:.8rem; color:var(--t1); cursor:pointer; min-width:0; }
.mkd-ly-rh{ font-weight:700; }
.mkd-ly-b{ padding-left:16px; } .mkd-ly-b b{ font-weight:600; white-space:nowrap; } .mkd-ly-b span{ color:var(--t3); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0; }
.mkd-ly-rh:hover, .mkd-ly-b:hover{ background:var(--osp-head, rgba(0,0,0,.05)); }
.mkd-ly-r.on > .mkd-ly-rh, .mkd-ly-b.on{ background:rgba(59,130,246,.12); }
.mkd-ly-r i, .mkd-ly-b i{ font-style:normal; color:#7c5cbf; margin-left:auto; }
.mkd-ly-c{ font-size:.68rem; color:var(--t3); padding:4px 8px 0 16px; text-transform:uppercase; letter-spacing:.05em; font-weight:700; }
.mkd-restore{ position:sticky; top:0; z-index:5; display:flex; flex-wrap:wrap; gap:8px; align-items:center; justify-content:center; max-width:640px; margin:0 auto 14px; padding:10px 14px; border-radius:12px; background:#fff8e6; border:1px solid #f0d68a; color:#5a4610; font-size:.85rem; }
.mkd-badge{ display:inline-flex; min-width:18px; height:18px; padding:0 5px; border-radius:9px; background:#c0392b; color:#fff; font-size:.7rem; font-weight:800; align-items:center; justify-content:center; margin-left:4px; }
.mkd-badge[hidden]{ display:none; }
.mkd-more{ position:relative; }
.mkd-menu{ position:absolute; right:0; top:calc(100% + 6px); z-index:20; min-width:230px; padding:6px; border-radius:12px; background:var(--osp-card, #fff); border:1px solid var(--osp-line, #e5e8e2); box-shadow:0 14px 34px -14px rgba(0,0,0,.35); }
.mkd-menu[hidden]{ display:none; }
.mkd-menu button{ display:block; width:100%; text-align:left; border:0; background:none; padding:9px 10px; border-radius:8px; font:inherit; font-size:.85rem; color:var(--t1); cursor:pointer; }
.mkd-menu button:hover{ background:var(--osp-head, rgba(0,0,0,.05)); }
.mkd-det{ border-top:1px solid var(--osp-line, #e5e8e2); margin:8px -12px 0; padding:0 12px; }
.mkd-det summary{ cursor:pointer; list-style:none; padding:10px 0; font-size:.82rem; font-weight:700; color:var(--t1); display:flex; align-items:center; gap:6px; }
.mkd-det summary::-webkit-details-marker{ display:none; }
.mkd-det summary::before{ content:'▸'; color:var(--t3); transition:transform .15s; } .mkd-det[open] summary::before{ transform:rotate(90deg); }
.mkd-det summary em{ font-style:normal; color:#7c5cbf; font-weight:600; }
.mkd-det > div{ padding-bottom:8px; }
.mkd-cond{ box-shadow:inset 3px 0 0 #9b7fd6; }
.mkd-condtag{ display:inline-block; margin:0 0 4px; padding:2px 8px; border-radius:999px; background:#efe9fb; color:#5b3fa0; font:700 .68rem/1.5 system-ui, sans-serif; }
.mkd-row > .mkd-condtag{ position:absolute; left:6px; top:-11px; z-index:2; margin:0; }
.mkd-ai{ display:flex; flex-wrap:wrap; gap:4px; align-items:center; margin:0 0 12px; padding:8px; border-radius:10px; background:var(--osp-head, rgba(0,0,0,.04)); }
.mkd-ai span{ font-size:.74rem; font-weight:700; color:var(--t2); width:100%; }
.mkd-ai .mk-seg-b{ font-size:.76rem; padding:5px 9px; }
.mkd-lr-r{ display:flex; flex-wrap:wrap; gap:5px; align-items:center; margin-bottom:8px; padding-bottom:8px; border-bottom:1px dashed var(--osp-line, #e5e8e2); }
.mkd-lr-r .form-input{ flex:1 1 90px; min-width:0; }
.mkd-revs, .mkd-rwo{ display:flex; flex-direction:column; gap:6px; max-height:360px; overflow-y:auto; margin-bottom:10px; }
.mkd-rwo{ max-height:none; }
.mkd-rev{ text-align:left; border:1px solid var(--osp-line, #e5e8e2); background:var(--osp-card, #fff); border-radius:10px; padding:9px 10px; font:inherit; font-size:.8rem; line-height:1.45; color:var(--t1); cursor:pointer; }
.mkd-rev b{ color:#e0a100; font-weight:400; letter-spacing:1px; } .mkd-rev span{ display:block; color:var(--t3); font-size:.74rem; margin-top:3px; }
.mkd-rev:hover{ border-color:var(--osp-green, #2f5d3a); } .mkd-rev.on{ border-color:#3b82f6; box-shadow:0 0 0 2px rgba(59,130,246,.18); }
.mkd-gi{ display:grid; grid-template-columns:52px 1fr auto; gap:8px; align-items:start; margin-bottom:10px; }
.mkd-gi > img, .mkd-gi > i{ width:52px; height:52px; object-fit:cover; border-radius:8px; background:#eceee9; display:flex; align-items:center; justify-content:center; font-style:normal; color:#999; }
.mkd-gi > div{ display:flex; flex-direction:column; gap:5px; } .mkd-gi > div > div, .mkd-gi .btn{ align-self:flex-start; }
.mkd-emo{ position:fixed; z-index:10080; width:292px; display:grid; grid-template-columns:repeat(8,1fr); gap:2px; padding:8px; border-radius:12px; background:#1b1f1a; box-shadow:0 14px 34px -12px rgba(0,0,0,.55); }
.mkd-emo button{ border:0; background:transparent; font-size:1.2rem; height:32px; border-radius:7px; cursor:pointer; }
.mkd-emo button:hover{ background:rgba(255,255,255,.14); }
.mkd-ie{ display:grid; grid-template-columns:minmax(0,1fr) 260px; gap:18px; }
.mkd-ie-cv{ background:repeating-conic-gradient(#eee 0 25%, #fafafa 0 50%) 0 0/18px 18px; border-radius:12px; min-height:280px; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:12px; }
.mkd-ie-cv canvas{ max-width:100%; max-height:60vh; border-radius:6px; box-shadow:0 8px 24px -12px rgba(0,0,0,.4); }
.mkd-ie-side{ display:flex; flex-direction:column; gap:4px; } .mkd-ie-side .mk-f input[type=range]{ width:100%; }
.mkd-chk-sum{ font-weight:800; font-size:1rem; margin:0 0 12px; padding:10px 12px; border-radius:10px; }
.mkd-chk-sum.bad{ background:#fdecea; color:#a3261b; } .mkd-chk-sum.meh{ background:#fff8e6; color:#7a5a00; } .mkd-chk-sum.ok{ background:#e9f5ec; color:#23633a; }
.mkd-chk-l{ list-style:none; margin:0 0 12px; padding:0; display:flex; flex-direction:column; gap:6px; }
.mkd-chk-l li{ display:grid; grid-template-columns:22px 1fr auto; gap:8px; align-items:center; padding:8px 10px; border:1px solid var(--osp-line, #e5e8e2); border-radius:10px; font-size:.86rem; }
.mkd-chk-l li i{ width:20px; height:20px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-style:normal; font-weight:800; font-size:.72rem; color:#fff; }
.mkd-chk-l li.err i{ background:#c0392b; } .mkd-chk-l li.warn i{ background:#d99a00; } .mkd-chk-l li.info i{ background:#7b8794; }
.mkd-pv-who{ display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-bottom:8px; font-size:.86rem; }
.mkd-pv-who > span{ flex:1 1 260px; }
.mkd-pv-s{ position:relative; flex:1 1 260px; max-width:360px; } .mkd-pv-s .form-input{ width:100%; }
.mkd-pv-res{ position:absolute; left:0; right:0; top:calc(100% + 4px); z-index:5; background:var(--osp-card, #fff); border:1px solid var(--osp-line, #e5e8e2); border-radius:10px; box-shadow:0 12px 28px -12px rgba(0,0,0,.35); padding:4px; }
.mkd-pv-res[hidden]{ display:none; }
.mkd-pv-res button{ display:block; width:100%; text-align:left; border:0; background:none; padding:8px; border-radius:7px; font:inherit; font-size:.84rem; cursor:pointer; color:var(--t1); }
.mkd-pv-res button span{ color:var(--t3); font-size:.78rem; } .mkd-pv-res button:hover{ background:var(--osp-head, rgba(0,0,0,.05)); }
.mkd-pv-frame{ display:flex; justify-content:center; border-radius:12px; padding:12px; }
.mkd-pv-frame iframe{ height:68vh; border:0; background:#fff; border-radius:8px; max-width:100%; transition:width .2s; }
.mkd-inbox{ max-width:560px; margin:6px auto 18px; border:1px solid var(--osp-line, #e5e8e2); border-radius:14px; overflow:hidden; background:#fff; color:#202124; font-family:-apple-system, Roboto, Helvetica, Arial, sans-serif; }
.mkd-ib-h{ padding:10px 14px; font-weight:700; font-size:.85rem; border-bottom:1px solid #eee; }
.mkd-ib-r{ display:grid; grid-template-columns:36px 1fr; gap:10px; padding:12px 14px; border-bottom:1px solid #f1f1f1; }
.mkd-ib-r > i{ width:36px; height:36px; border-radius:50%; background:#2f5d3a; color:#fff; display:flex; align-items:center; justify-content:center; font-style:normal; font-weight:700; }
.mkd-ib-r > div{ min-width:0; } .mkd-ib-r b{ font-size:.9rem; } .mkd-ib-r .t{ float:right; font-size:.75rem; color:#5f6368; }
.mkd-ib-r .s{ font-size:.86rem; font-weight:700; margin-top:1px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.mkd-ib-r .p{ font-size:.83rem; color:#5f6368; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.mkd-ib-r.dim > i{ background:#eceff1; } .mkd-ib-r.dim b, .mkd-ib-r.dim .s, .mkd-ib-r.dim .p{ display:block; background:#f1f3f4; border-radius:4px; height:.8em; margin:5px 0; width:70%; }
.mkd-lock{ max-width:360px; margin:0 auto; padding:26px 16px; border-radius:26px; background:linear-gradient(160deg,#3b4a5a,#1c232b); }
.mkd-lock-n{ background:rgba(255,255,255,.82); border-radius:16px; padding:10px 12px; font-family:-apple-system, Helvetica, Arial, sans-serif; color:#111; font-size:.84rem; line-height:1.35; }
.mkd-lock-n span{ color:#444; display:block; }
.mkd-plain{ white-space:pre-wrap; font:.84rem/1.55 ui-monospace, Menlo, Consolas, monospace; background:var(--osp-head, #f4f4f1); border-radius:12px; padding:16px; max-height:66vh; overflow:auto; color:var(--t1); }
.mkd-ver{ display:grid; grid-template-columns:220px minmax(0,1fr); gap:14px; min-height:60vh; }
.mkd-ver-l{ display:flex; flex-direction:column; gap:4px; max-height:68vh; overflow-y:auto; }
.mkd-ver-i{ text-align:left; border:1px solid var(--osp-line, #e5e8e2); background:var(--osp-card, #fff); border-radius:10px; padding:8px 10px; font:inherit; cursor:pointer; color:var(--t1); }
.mkd-ver-i b{ display:block; font-size:.84rem; } .mkd-ver-i span{ font-size:.74rem; color:var(--t3); }
.mkd-ver-i.on{ border-color:#3b82f6; box-shadow:0 0 0 2px rgba(59,130,246,.18); }
.mkd-ver-p iframe{ width:100%; height:60vh; border:0; border-radius:10px; background:#e9e9e4; }
@media (max-width:760px){
  .mkd-ie, .mkd-ver{ grid-template-columns:1fr; }
  .mkd-ver-l{ flex-direction:row; overflow-x:auto; } .mkd-ver-i{ flex:0 0 auto; }
}
#mkd-pv-reset[hidden], .mkd-more .btn[hidden]{ display:none; }

/* phone: the desktop page title stays hidden (the tab row names the page) */
@media (max-width:1023px){ #os-title{ display:none !important; } }

/* ── sites & funnels ── */
.mks-empty{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:14px; }
.mks-empty-c{ display:flex; flex-direction:column; gap:8px; padding:28px; border:1px solid var(--mk-line, #e5e8e2); border-radius:18px; background:var(--mk-card, #fff); cursor:pointer; transition:border-color .15s, transform .15s; }
.mks-empty-c:hover, .mks-empty-c:focus-visible{ border-color:var(--osp-green, #2f5d3a); transform:translateY(-2px); outline:none; }
.mks-empty-c b{ font-size:1.1rem; } .mks-empty-c span{ color:var(--t2); font-size:.9rem; line-height:1.5; }
.mks-cards{ grid-template-columns:repeat(auto-fill,minmax(290px,1fr)); }
.mks-card h4 a{ color:var(--t1); text-decoration:none; } .mks-card h4 a:hover{ text-decoration:underline; }
.mks-card-h{ display:flex; gap:6px; margin-bottom:10px; }
.mks-card .mk-sub a{ color:var(--t2); font-size:.84rem; word-break:break-all; }
.mks-nums{ display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:12px 0; padding:12px 0; border-top:1px solid var(--mk-line, #e5e8e2); border-bottom:1px solid var(--mk-line, #e5e8e2); }
.mks-nums div{ display:flex; flex-direction:column; } .mks-nums b{ font-size:1.1rem; } .mks-nums span{ font-size:.72rem; color:var(--t3); }
.mk-row-actions{ display:flex; gap:8px; align-items:center; justify-content:space-between; flex-wrap:wrap; margin-top:auto; }
.mks-head h2{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; } .mks-head .btn-link{ margin-bottom:6px; }
.btn-link{ background:none; border:0; padding:0; color:var(--osp-green, #2f5d3a); font:inherit; font-weight:600; cursor:pointer; }
.mks-tpls{ display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:10px; margin:0 0 16px; }
.mks-tpls.sm{ grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); }
.mks-tpl{ text-align:left; display:flex; flex-direction:column; gap:4px; padding:14px; border:1px solid var(--mk-line, #e5e8e2); border-radius:14px; background:var(--mk-card, #fff); font:inherit; cursor:pointer; color:var(--t1); }
.mks-tpl b{ font-size:.92rem; } .mks-tpl span{ font-size:.78rem; color:var(--t3); line-height:1.4; }
.mks-tpl.on{ border-color:var(--osp-green, #2f5d3a); box-shadow:0 0 0 2px color-mix(in srgb, var(--osp-green, #2f5d3a) 25%, transparent); }
.mkw-path{ display:flex; align-items:center; border:1px solid var(--mk-line, #e5e8e2); border-radius:10px; overflow:hidden; background:var(--mk-card, #fff); }
.mkw-path span{ padding:0 4px 0 10px; color:var(--t3); font-size:.85rem; white-space:nowrap; }
.mkw-path .form-input{ border:0!important; box-shadow:none!important; padding-left:0; min-width:0; flex:1; }
.mks-flow{ display:flex; align-items:stretch; gap:6px; overflow-x:auto; padding:4px 2px 14px; margin-bottom:10px; }
.mks-step{ flex:0 0 190px; padding:14px; border:1px solid var(--mk-line, #e5e8e2); border-radius:14px; background:var(--mk-card, #fff); display:flex; flex-direction:column; gap:4px; }
.mks-step small{ color:var(--t3); font-weight:700; text-transform:uppercase; letter-spacing:.06em; font-size:.68rem; } .mks-step b{ font-size:.95rem; }
.mks-step-n{ display:flex; flex-direction:column; font-size:.8rem; color:var(--t2); margin-top:6px; gap:2px; }
.mks-arrow{ display:flex; flex-direction:column; align-items:center; justify-content:center; color:var(--t3); font-size:1.2rem; min-width:64px; }
.mks-arrow span{ font-size:.7rem; font-weight:700; color:var(--osp-green, #2f5d3a); text-align:center; }
.mks-acts{ white-space:nowrap; } .mks-acts > *{ vertical-align:middle; } .mks-acts .mkd-more{ display:inline-block; }
.mks-acts .mkd-menu{ right:0; }
.mks-var td{ background:color-mix(in srgb, var(--osp-green, #2f5d3a) 4%, transparent); }
.mks-w{ width:64px!important; display:inline-block; padding:4px 6px!important; }
.mks-h3{ margin:22px 0 4px; font-size:1rem; }
.mks-bars{ display:flex; align-items:flex-end; gap:3px; height:140px; margin-top:8px; }
.mks-bar{ flex:1; height:100%; display:flex; align-items:flex-end; } .mks-bar i{ display:block; width:100%; min-height:2px; border-radius:4px 4px 0 0; background:var(--osp-green, #2f5d3a); opacity:.85; }
.mks-bar:hover i{ opacity:1; } .mks-bars-x{ display:flex; justify-content:space-between; font-size:.72rem; color:var(--t3); margin-top:4px; }
.mks-keybox{ margin-top:14px; padding:14px; border-radius:12px; background:var(--osp-head, rgba(0,0,0,.04)); }
.mks-keybox .form-input{ font-family:ui-monospace,Menlo,monospace; }
.mks-domain-f{ display:flex; gap:8px; flex-wrap:wrap; } .mks-domain-f .form-input{ flex:1; min-width:220px; }
.mks-code{ word-break:break-all; }
.mks-set{ display:grid; grid-template-columns:repeat(auto-fit,minmax(340px,1fr)); gap:14px; align-items:start; } .mks-set > .mk-row-actions{ grid-column:1/-1; justify-content:flex-start; }

/* ── page builder ── */
.mkw .mkd-body{ grid-template-columns:260px minmax(0,1fr) 320px; }
.mkw-top .mkd-title{ align-items:center; gap:8px; }
.mkw-pagesel{ width:auto!important; max-width:240px; padding:5px 8px!important; font-weight:600; }
.mkw-stage{ padding:16px; overflow:auto; }
.mkw-frame-wrap{ width:100%; height:100%; margin:0 auto; transition:width .25s; background:#fff; border-radius:8px; box-shadow:0 10px 30px -18px rgba(0,0,0,.4); overflow:hidden; }
.mkw-frame-wrap.dev{ border-radius:18px; box-shadow:0 0 0 10px #1c1f1b, 0 20px 50px -20px rgba(0,0,0,.5); margin-top:10px; height:calc(100% - 20px); }
.mkw-frame-wrap iframe{ width:100%; height:100%; border:0; display:block; background:#fff; }
.mkw-restore{ position:relative; margin:0 auto 12px; }
.mkw-search{ width:100%; margin-bottom:6px; }
.mkw-right{ padding:0!important; } .mkw-right > *{ margin-left:12px; margin-right:12px; }
.mkw-ih{ padding:12px 0 0; } .mkw-ih h4{ margin:0 0 4px!important; }
.mkw-crumb{ font-size:.74rem; color:var(--t3); display:flex; gap:4px; flex-wrap:wrap; align-items:center; }
.mkw-crumb button{ background:none; border:0; padding:0; color:var(--osp-green, #2f5d3a); cursor:pointer; font:inherit; font-weight:600; }
.mkw-itabs{ margin:10px 0 0!important; position:sticky; top:0; background:var(--osp-card, #fff); z-index:2; }
.mkw-itabs button{ flex:1; }
.mkw-ib{ padding:4px 0 8px; }
.mkw-devnote{ font-size:.78rem; padding:8px 10px; border-radius:10px; background:#eef4ff; color:#1d3b73; margin:10px 0 0; }
.mkw-det{ margin:0 -12px!important; }
.mkw-2{ display:grid; grid-template-columns:1fr 1fr; gap:8px; } .mkw-2 > .mk-f{ margin-bottom:10px; min-width:0; }
.mkw-4{ display:grid; grid-template-columns:repeat(4,1fr); gap:5px; } .mkw-4 label{ font-size:.66rem; color:var(--t3); font-weight:600; display:flex; flex-direction:column; gap:2px; }
.mkw-4 .form-input{ padding:6px 5px!important; }
.mkw-sf .mkw-sfi{ display:flex; gap:4px; align-items:center; } .mkw-sf .mkw-sfi > *:first-child{ flex:1; min-width:0; }
.mkw-reset{ border:0; background:none; cursor:pointer; color:var(--t3); font-size:.9rem; padding:2px 4px; }
.mkw-color{ display:flex; flex-direction:column; gap:5px; width:100%; }
.mkw-toks{ display:flex; gap:4px; flex-wrap:wrap; }
.mkw-toks button{ width:22px; height:22px; border-radius:50%; border:2px solid var(--osp-card, #fff); box-shadow:0 0 0 1px rgba(0,0,0,.18); cursor:pointer; padding:0; }
.mkw-toks button.on{ box-shadow:0 0 0 2px #3b82f6; } .mkw-toks .mkw-tok-x{ background:var(--osp-card, #fff); font-size:.7rem; color:var(--t3); line-height:1; }
.mkw-grad{ display:flex; gap:5px; align-items:center; } .mkw-grad input[type=color]{ width:34px; height:32px; padding:2px; border:1px solid var(--osp-line, #e5e8e2); border-radius:8px; }
.mkw-grad .form-input{ width:64px!important; }
.mkw-range{ display:flex; gap:8px; align-items:center; } .mkw-range input{ flex:1; } .mkw-range span{ font-size:.8rem; min-width:28px; text-align:right; }
.mkw-img{ display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-bottom:6px; } .mkw-img img{ width:56px; height:56px; object-fit:cover; border-radius:8px; background:#eee; }
.mkw-img.sm img{ width:40px; height:40px; }
.mkw-icons{ display:grid; grid-template-columns:repeat(8,1fr); gap:3px; max-height:150px; overflow-y:auto; padding:2px; }
.mkw-icons button{ height:30px; border:1px solid var(--osp-line, #e5e8e2); border-radius:7px; background:var(--osp-card, #fff); cursor:pointer; display:flex; align-items:center; justify-content:center; color:var(--t1); padding:0; }
.mkw-icons button svg{ width:16px; height:16px; } .mkw-icons button.on{ border-color:#3b82f6; background:#eef4ff; }
.mkw-list{ display:flex; flex-direction:column; gap:8px; margin-bottom:8px; }
.mkw-li{ display:flex; flex-direction:column; gap:5px; padding:8px; border:1px solid var(--osp-line, #e5e8e2); border-radius:10px; background:var(--osp-head, rgba(0,0,0,.02)); }
.mkw-li-h{ display:flex; gap:4px; align-items:center; font-size:.78rem; } .mkw-li-h span{ flex:1; color:var(--t3); overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.mkw-li-h b{ width:20px; height:20px; border-radius:50%; background:var(--osp-line, #e5e8e2); display:inline-flex; align-items:center; justify-content:center; font-size:.68rem; }
.mkw-quick{ display:flex; flex-wrap:wrap; gap:4px; align-items:center; } .mkw-quick span{ font-size:.74rem; font-weight:700; color:var(--t2); } .mkw-quick .mk-seg-b{ font-size:.74rem; padding:4px 8px; }
.mkw-checks{ display:flex; flex-direction:column; gap:2px; max-height:180px; overflow-y:auto; padding:6px; border:1px solid var(--osp-line, #e5e8e2); border-radius:10px; }
.mkw-checks .mkd-chk{ margin:2px 0; }
.mkw-urlpick{ margin-top:4px; font-size:.8rem!important; }
.mkw-lays{ grid-template-columns:repeat(4,1fr)!important; }
.mkw-sum{ display:grid; gap:8px; margin:10px 0; } .mkw-sum div{ display:flex; flex-direction:column; } .mkw-sum span{ font-size:.72rem; color:var(--t3); } .mkw-sum a{ word-break:break-all; }
.mkw-ly-col{ display:block; width:100%; text-align:left; background:none; border:0; cursor:pointer; }
.mkw-prev .mkd-pv-frame iframe{ height:74vh; }
@media (max-width:1100px){ .mkw .mkd-body{ grid-template-columns:220px minmax(0,1fr) 290px; } }
@media (max-width:860px){ .mkw .mkd-body{ grid-template-columns:1fr; grid-template-rows:auto 60vh auto; } .mkw .mkd-left, .mkw .mkd-right{ max-height:40vh; } .mkw-top .mkd-tools{ overflow-x:auto; flex-wrap:nowrap; } }

/* ── email & flow extras (mkt13) ── */
.mkx-folders{ display:flex; flex-wrap:wrap; gap:6px; margin:0 0 14px; }
.mkx-folders .mk-seg-b{ border-radius:999px !important; margin:0 !important; }
.mkx-folders .mk-seg-b.on{ background:var(--t1, #1d1d1b); color:#fff; border-color:var(--t1, #1d1d1b); }
.mkx-opts{ padding:12px 16px; margin:4px 0 14px; }
.mkx-opts summary{ cursor:pointer; list-style:revert; }
.mkx-opts[open] summary{ margin-bottom:10px; }
.mkx-opts .mk-hint{ margin:-2px 0 10px 26px; }
.mkx-bar{ display:grid; grid-template-columns:minmax(90px,1.2fr) 3fr 52px; gap:10px; align-items:center; padding:5px 0; font-size:.88rem; }
.mkx-bar i{ display:block; height:10px; border-radius:999px; background:var(--osp-green, #57a15f); min-width:3px; }
.mkx-bar b{ text-align:right; }
.mkx-slist{ max-height:420px; overflow:auto; border:1px solid var(--mk-line, #e5e8e2); border-radius:12px; }
.mkx-srow{ display:flex; align-items:center; justify-content:space-between; gap:8px; padding:8px 12px; border-bottom:1px solid var(--mk-line, #eef0ea); font-size:.88rem; }
.mkx-srow:last-child{ border-bottom:0; }
.mkx-srow .mk-chip{ font-style:normal; }
.mkx-cg{ margin-top:12px; }
.mkx-cgh{ display:flex; justify-content:space-between; gap:14px; align-items:flex-start; flex-wrap:wrap; }
.mkx-cgh .mkd-actions{ margin:0; }
.mkx-cs{ display:flex; flex-wrap:wrap; gap:6px 14px; margin-top:10px; font-size:.84rem; color:var(--t2); }
.mk-code{ background:var(--mk-soft, #f4f5f1); border:1px solid var(--mk-line, #e5e8e2); border-radius:10px; padding:10px 12px; font:12px/1.5 ui-monospace,Menlo,Consolas,monospace; white-space:pre-wrap; word-break:break-word; margin:0 0 8px; }
[data-theme="dark"] .mk-code{ background:rgba(255,255,255,.05); }
@media (max-width:640px){ .mkx-bar{ grid-template-columns:1fr 2fr 44px; } }

/* ── selling (mkt14) ── */
.mkx-inl{ display:flex; gap:8px; align-items:center; }
.mkx-inl > .form-input{ flex:1; min-width:0; }
.mkx-inl select.form-input{ flex:0 0 auto; width:auto; }
.mkx-chips{ display:flex; flex-wrap:wrap; gap:6px 16px; }
.mkx-sub{ padding:12px 14px; margin:0 0 12px; border-radius:12px; background:var(--mk-soft, #f4f5f1); border:1px solid var(--mk-line, #e5e8e2); }
.mkx-sub .mk-f:last-child{ margin-bottom:0; }
[data-theme="dark"] .mkx-sub{ background:rgba(255,255,255,.04); }
@media (max-width:640px){ .mkx-inl{ flex-wrap:wrap; } .mkx-inl > .form-input{ flex:1 1 100%; } }

/* ── brand kit (mkt14) ── */
.mkb{ display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:18px; align-items:start; }
.mkb-main{ min-width:0; }
.mkb-side{ position:sticky; top:12px; }
.mkb-note{ border-color:var(--osp-green, #57a15f); }
.mkb-pal{ display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin-top:12px; }
.mkb-sw{ width:28px; height:28px; border-radius:8px; border:1px solid rgba(0,0,0,.12); cursor:pointer; padding:0; }
.mkb-sw:hover{ transform:scale(1.08); }
.mkb-logos{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.mkb-logos > div{ display:flex; flex-direction:column; gap:6px; align-items:flex-start; }
.mkb-logo{ width:100%; height:84px; border-radius:12px; border:1px dashed var(--mk-line, #d9ddd5); display:flex; align-items:center; justify-content:center; padding:10px; background:#fff; color:var(--t3, #8a938c); font-size:.82rem; }
.mkb-logo.dark{ background:#1b1d1a; color:rgba(255,255,255,.6); }
.mkb-logo.sq{ width:84px; }
.mkb-logo img{ max-width:100%; max-height:100%; object-fit:contain; }
.mkb-colors{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px 16px; }
.mkb-pv{ border-radius:14px; overflow:hidden; border:1px solid var(--mk-line, #e5e8e2); }
.mkb-pv-h{ padding:14px 18px; display:flex; align-items:center; min-height:56px; }
.mkb-pv-h img{ max-height:34px; max-width:160px; object-fit:contain; }
.mkb-pv-b{ display:inline-block; padding:9px 16px; color:#fff; font-weight:700; font-size:.88rem; border:2px solid transparent; margin:0 4px 6px 0; }
.mkb-pv-b.out{ background:transparent; }
.mkb-pv-l{ margin-top:12px; padding:10px 12px; border-radius:10px; font-size:.88rem; font-weight:600; }
.mkb-pv-l span{ display:inline-block; color:#fff; font-size:.68rem; font-weight:800; text-transform:uppercase; letter-spacing:.06em; padding:2px 8px; border-radius:99px; margin-right:6px; }
.mkb-sites{ margin:0 0 6px 26px; }
.mkb-si{ display:inline-flex; margin:4px 14px 0 0; }
@media (max-width:1100px){ .mkb{ grid-template-columns:1fr; } .mkb-side{ position:static; order:-1; } }
@media (max-width:640px){ .mkb-logos, .mkb-colors{ grid-template-columns:1fr; } }

/* ── synced sections & rows (mkt14) ── */
.mkx-sync{ display:inline-block; margin-left:6px; padding:1px 7px; border-radius:99px; font-size:.68rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase; background:#e6f0ff; color:#1d4f91; vertical-align:1px; }
.mkx-synctag{ background:#e6f0ff !important; color:#1d4f91 !important; }
.mkx-syncbox{ margin:10px 0; padding:10px 12px; border-radius:10px; background:#eef4ff; border:1px solid #cfe0fb; font-size:.85rem; line-height:1.45; color:#1f3552; }
.mkx-syncbox .btn-link{ display:block; margin-top:4px; padding:0; }
[data-theme="dark"] .mkx-sync, [data-theme="dark"] .mkx-synctag{ background:rgba(90,150,255,.18) !important; color:#b9d3ff !important; }
[data-theme="dark"] .mkx-syncbox{ background:rgba(90,150,255,.1); border-color:rgba(90,150,255,.3); color:#dbe7ff; }

/* ── smarter forms (builder) ── */
.mkw-showif{ margin-top:6px; font-size:.85rem; }
.mkw-showif summary{ cursor:pointer; color:var(--t2, #4b5750); font-weight:600; }
.mkw-showif .mkw-2{ margin-top:6px; }

/* ── site health (mkt14) ── */
.mkh-list{ display:grid; gap:8px; margin:6px 0 10px; }
.mkh-i{ display:flex; gap:10px; align-items:flex-start; font-size:.9rem; }
.mkh-dot{ flex:0 0 22px; height:22px; border-radius:50%; display:grid; place-items:center; font-size:.75rem; font-weight:800; background:#eef0ea; color:#4b5750; }
.mkh-i.ok .mkh-dot{ background:#e3f1e5; color:#2f7a3d; } .mkh-i.no .mkh-dot, .mkh-i.bad .mkh-dot{ background:#fde8e6; color:#b3261e; } .mkh-i.warn .mkh-dot{ background:#fff3dc; color:#8a5a00; }
.mkh-ph{ display:flex; justify-content:space-between; gap:12px; align-items:flex-start; }
.mkh-ph h4{ margin:0 0 2px; }
.mkh-score{ text-align:center; min-width:74px; padding:6px 10px; border-radius:12px; background:#eef0ea; }
.mkh-score b{ display:block; font-size:1.4rem; line-height:1.1; } .mkh-score span{ font-size:.72rem; font-weight:700; }
.mkh-score.ok{ background:#e3f1e5; color:#2f7a3d; } .mkh-score.on{ background:#fff3dc; color:#8a5a00; } .mkh-score.off{ background:#fde8e6; color:#b3261e; }
.mkh-speed{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; margin:10px 0 6px; }
.mkh-g{ text-align:center; padding:10px 6px; border-radius:12px; border:1px solid var(--mk-line,#e5e8e2); }
.mkh-g b{ display:block; font-size:1.3rem; } .mkh-g span{ font-size:.75rem; color:var(--t2,#4b5750); }
.mkh-g.ok b{ color:#2f7a3d; } .mkh-g.on b{ color:#8a5a00; } .mkh-g.off b{ color:#b3261e; }
[data-theme="dark"] .mkh-dot, [data-theme="dark"] .mkh-score{ background:rgba(255,255,255,.06); }
@media (max-width:640px){ .mkh-speed{ grid-template-columns:repeat(2,minmax(0,1fr)); } }

/* ═════════════════ PHONE & SMALL TABLET FIXES (mobile audit 9/24) ═════════════════ */
@media (max-width:768px){
  /* tab rows: start at the left so every tab can be reached, with a soft edge to show there's more */
  #khg-subtabs{ justify-content:flex-start !important; scroll-padding-inline:16px; }
  #khg-tabs-list, #khg-subtabs{ -webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent); mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent); scroll-behavior:smooth; }
  #khg-tabs-list.nv-end, #khg-subtabs.nv-end{ -webkit-mask-image:none; mask-image:none; }

  /* Tasks: the Spaces panel covered the list on phones — brands are picked from the top bar instead */
  #task-client-sidebar{ display:none !important; }
  .tasks-table{ min-width:0 !important; width:100% !important; }
  .tasks-table colgroup, .tasks-table thead{ display:none; }
  .tasks-table, .tasks-table tbody{ display:block; }
  .tasks-table tr.task-row{ display:grid; grid-template-columns:30px minmax(0,1fr) auto; grid-template-areas:"c t t" "c s p" "c b d"; gap:6px 8px; padding:12px 10px; border-bottom:1px solid var(--border); align-items:center; }
  .tasks-table tr.task-row > td{ display:block; width:auto !important; padding:0 !important; border:0 !important; min-width:0; }
  .tasks-table tr.task-row > td:nth-child(1){ grid-area:c; align-self:start; padding-top:2px !important; }
  .tasks-table tr.task-row > td:nth-child(2){ grid-area:s; }
  .tasks-table tr.task-row > td:nth-child(3){ grid-area:p; justify-self:end; }
  .tasks-table tr.task-row > td:nth-child(4){ grid-area:t; font-size:.95rem; }
  .tasks-table tr.task-row > td:nth-child(5){ grid-area:b; }
  .tasks-table tr.task-row > td:nth-child(6){ grid-area:d; justify-self:end; }
  .tasks-table tr.task-row > td:nth-child(n+7){ display:none; }
  .tasks-table tr:not(.task-row) > td{ display:block; }
  #task-filter-bar, .tasks-chips-group{ flex-wrap:wrap; row-gap:6px; }

  /* wide tables scroll sideways instead of squashing columns into letters */
  .section :is(div,section):has(> table:has(tr > :nth-child(4))){ overflow-x:auto; -webkit-overflow-scrolling:touch; max-width:100%; }
  .section table:has(tr > :nth-child(4)):not(.tasks-table){ min-width:560px; }
  .section table:has(tr > :nth-child(4)) th{ white-space:nowrap; }
  .section table:has(tr > :nth-child(4)):not(.tasks-table) td{ white-space:nowrap; }
  .section table:has(tr > :nth-child(4)):not(.tasks-table) td :is(small,p,.mk-sub){ white-space:normal; }
  #cert-table{ min-width:600px; }

  /* big numbers on stat cards stay inside their card */
  .ost-v, .ops-kpi-v, .stat-value, .mk-stat-v, .kpi-value{ font-size:clamp(1rem, 5.3vw, 1.5rem) !important; white-space:nowrap; line-height:1.15; letter-spacing:-.02em; }
  .ost, .ops-kpi, .stat-card, .mk-stat{ min-width:0; }

  /* filter rows: search boxes keep a usable width and rows wrap */
  .section :is(div):has(> input:is([placeholder^="Search"],[type=search])){ flex-wrap:wrap; }
  .section input:is([placeholder^="Search"],[type=search]){ min-width:0; flex:1 1 170px !important; max-width:none !important; }
  #recipe-status-tabs{ flex-wrap:wrap; row-gap:6px; }

  /* Work log: the two cards side by side were cut off */
  #section-updates [style*="grid-template-columns"]{ grid-template-columns:1fr !important; }
  #section-updates .card{ min-width:0; }

  /* reports list */
  .report-row{ flex-wrap:wrap; row-gap:8px; }
  .report-row-actions{ flex:1 1 100%; flex-wrap:wrap; gap:6px; }

  /* settings cards and the "add admin" row */
  .settings-wrap{ grid-template-columns:minmax(0,1fr) !important; }
  .ci-card{ min-width:0; max-width:100%; }
  .ci-card > *{ min-width:0; max-width:100%; }
  .section :is(div):has(> #add-admin-name){ flex-wrap:wrap; }
  #add-admin-name, #add-admin-email{ flex:1 1 100% !important; min-width:0 !important; }

  /* marketing calendar: fit the week on screen instead of cutting off Wed–Sat */
  #mkt-cal-grid{ overflow:visible; }
  #mkt-cal-grid > div{ min-width:0 !important; }
  #mkt-cal-grid > div > div{ gap:3px !important; grid-template-columns:repeat(7,minmax(0,1fr)) !important; }
  #mkt-cal-grid [style*="min-height:106px"] > *{ max-width:100%; }
  #mkt-cal-grid [style*="min-height:106px"]{ min-height:64px !important; padding:3px !important; border-radius:6px !important; }
  #mkt-cal-grid button{ font-size:.5rem !important; padding:1px 3px !important; border-radius:3px !important; }
  #mkt-cal-grid [title]{ font-size:.5rem !important; }

  /* modals use the whole width */
  .mk-modal{ width:calc(100vw - 20px) !important; max-width:none !important; }
  .mk-modal-b{ padding-left:16px; padding-right:16px; }
  .mk-modal-f{ flex-wrap:wrap; }
  .mk-modal-f .btn{ flex:1 1 auto; }

  /* marketing pages */
  .mk-head{ flex-wrap:wrap; gap:10px; }
  .mk-head .mk-actions{ flex-wrap:wrap; }
  .mk-filters{ flex-wrap:wrap; row-gap:8px; }
  .mk-tabs{ overflow-x:auto; flex-wrap:nowrap; scrollbar-width:none; }
  .mk-tabs::-webkit-scrollbar{ display:none; }
  .mk-tabs button{ flex:0 0 auto; }
  .mkw-2{ grid-template-columns:1fr !important; }
  .mkx-inl{ flex-wrap:wrap; }

  /* email designer, site builder, flow builder: bigger touch targets in the side panels */
  .mkd-left{ max-height:190px; }
  .mkd-pi{ font-size:.7rem; line-height:1.15; padding-left:4px; padding-right:4px; }
  .mkd-pi *{ white-space:normal; overflow-wrap:anywhere; }
}

/* ═════════ phone editing mode for the email designer and site builder (.mkd.mkm, set by mkt14) ═════════ */
.mkm-bar, .mkm-pill, .mkm-done{ display:none; }
.mkd.mkm{ --mkm-bar:64px; }
.mkd.mkm .mkd-top{ flex-wrap:nowrap; gap:8px; padding:8px 10px; padding-top:max(8px, env(safe-area-inset-top)); }
.mkd.mkm .mkd-top > .btn:first-child{ padding:8px 10px; flex:0 0 auto; }
.mkd.mkm .mkd-title{ flex:1 1 auto; min-width:0; display:flex; align-items:center; gap:6px; overflow:hidden; }
.mkd.mkm .mkd-title b{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:40vw; }
.mkd.mkm .mkd-title .mk-hint{ display:none; }
.mkd.mkm .mkw-pagesel{ max-width:34vw; padding:6px 8px; font-size:.85rem; }
.mkd.mkm .mkd-tools{ flex:0 0 auto; gap:6px; flex-wrap:nowrap; overflow:visible; }
.mkd.mkm .mkd-tools > :not(.mkd-ib):not(.btn-primary){ display:none !important; }
.mkd.mkm .mkd-tools .mkd-ib{ width:34px; height:34px; }
.mkd.mkm .mkd-body{ display:flex !important; flex-direction:column; min-height:0; padding-bottom:calc(var(--mkm-bar) + env(safe-area-inset-bottom)); }
.mkd.mkm .mkd-body > *{ display:none !important; }
.mkd.mkm .mkd-left, .mkd.mkm .mkd-right{ max-height:none !important; border:0 !important; padding-bottom:24px; }
.mkd.mkm[data-mv="add"] .mkd-left, .mkd.mkm[data-mv="edit"] .mkd-right, .mkd.mkm[data-mv="canvas"] .mkd-canvas-wrap{ display:block !important; flex:1 1 auto; min-height:0; overflow:auto; -webkit-overflow-scrolling:touch; }
.mkd.mkm[data-mv="add"] .mkm-done:has(+ .mkd-left), .mkd.mkm[data-mv="edit"] .mkm-done:has(+ .mkd-right){ display:flex !important; }
.mkd.mkm .mkm-done{ justify-content:flex-end; padding:8px 12px; border-bottom:1px solid var(--osp-line, #e5e8e2); background:var(--osp-card, #fff); flex:0 0 auto; }
.mkd.mkm[data-mv="canvas"] .mkd-canvas-wrap{ padding:12px 8px 90px; }
.mkd.mkm .mkw-stage{ padding:0 !important; }
.mkd.mkm .mkw-frame-wrap{ height:100%; }
.mkd.mkm .mkd-pal{ grid-template-columns:repeat(3,minmax(0,1fr)) !important; }
.mkd.mkm .mkd-pi{ min-height:72px; font-size:.78rem; }
.mkd.mkm .mkd-tabs{ position:sticky; top:0; z-index:2; background:var(--osp-card, #fff); overflow-x:auto; flex-wrap:nowrap; }
.mkd.mkm .mkd-tabs button{ flex:0 0 auto; padding:10px 12px; }
.mkd.mkm .mkd-right .form-input, .mkd.mkm .mkd-left .form-input{ font-size:16px; } /* stops iPhone zooming in on focus */
.mkd.mkm .mkd-right .mkd-actions .btn{ flex:1 1 auto; }
.mkd.mkm .mkm-bar{ display:grid; grid-template-columns:repeat(4,1fr); position:fixed; left:0; right:0; bottom:0; z-index:5; height:calc(var(--mkm-bar) + env(safe-area-inset-bottom)); padding-bottom:env(safe-area-inset-bottom); background:var(--osp-card, #fff); border-top:1px solid var(--osp-line, #e5e8e2); box-shadow:0 -6px 20px -14px rgba(0,0,0,.35); }
.mkd.mkm .mkm-bar button{ position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; border:0; background:none; color:var(--t2, #4b5750); font:600 .72rem/1 inherit; font-family:inherit; cursor:pointer; -webkit-tap-highlight-color:transparent; }
.mkd.mkm .mkm-bar button.on{ color:var(--osp-green, #2f5d3a); }
.mkd.mkm .mkm-bar button.on::before{ content:""; position:absolute; top:0; left:25%; right:25%; height:3px; border-radius:0 0 3px 3px; background:currentColor; }
.mkd.mkm .mkm-bar i{ position:absolute; top:10px; left:calc(50% + 8px); width:8px; height:8px; border-radius:50%; background:#e8833a; }
.mkd.mkm .mkm-bar i[hidden]{ display:none; }
.mkd.mkm .mkm-pill:not([hidden]){ display:inline-flex; align-items:center; gap:8px; position:fixed; z-index:6; left:50%; transform:translateX(-50%); bottom:calc(var(--mkm-bar) + env(safe-area-inset-bottom) + 14px); padding:12px 20px; border:0; border-radius:999px; background:var(--osp-green, #2f5d3a); color:#fff; font:700 .95rem/1 inherit; font-family:inherit; box-shadow:0 10px 26px -8px rgba(0,0,0,.45); cursor:pointer; white-space:nowrap; max-width:calc(100vw - 32px); }
.mkd.mkm .mkm-pill span{ overflow:hidden; text-overflow:ellipsis; }
.mkm-sheet{ position:fixed; inset:0; z-index:10070; }
.mkm-sh-bg{ position:absolute; inset:0; background:rgba(10,12,10,.45); }
.mkm-sh-b{ position:absolute; left:0; right:0; bottom:0; max-height:80vh; overflow:auto; background:var(--osp-card, #fff); border-radius:18px 18px 0 0; padding:8px 16px calc(18px + env(safe-area-inset-bottom)); box-shadow:0 -20px 50px -20px rgba(0,0,0,.4); }
.mkm-sh-h{ display:flex; justify-content:space-between; align-items:center; padding:8px 0; }
.mkm-sh-list{ display:grid; border-top:1px solid var(--osp-line, #e5e8e2); }
.mkm-sh-list button{ text-align:left; padding:14px 4px; border:0; border-bottom:1px solid var(--osp-line, #e5e8e2); background:none; font:600 1rem inherit; font-family:inherit; color:var(--t1, #1a1f1b); cursor:pointer; }
.mkm-sh-g{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 0 14px; }
.mkm-sh-g span{ font-weight:600; font-size:.9rem; color:var(--t2, #4b5750); }
.mkm-segs{ display:flex; gap:4px; background:var(--mk-soft, #f4f5f1); padding:3px; border-radius:10px; }
.mkm-segs button{ border:0; background:none; padding:8px 12px; border-radius:8px; font:600 .85rem inherit; font-family:inherit; cursor:pointer; color:var(--t2, #4b5750); }
.mkm-segs button.on{ background:var(--osp-card, #fff); color:var(--t1, #1a1f1b); box-shadow:0 1px 2px rgba(0,0,0,.15); }

/* ---- account: data + deletion ---- */
.osp-acct-row{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap}
.osp-acct-row>div:first-child{flex:1;min-width:200px}
.osp-acct-sub{font-size:.8rem;color:var(--t3);margin-top:3px;line-height:1.45}
.osp-btn-danger{background:#b3261e;color:#fff;border:1px solid #b3261e}
.osp-btn-danger:hover{background:#8f1d17}
.osp-del-warn{font-size:.84rem;color:#8f1d17;background:rgba(179,38,30,.07);border:1px solid rgba(179,38,30,.25);border-radius:10px;padding:10px 12px;line-height:1.5}
.osp-del-warn .btn{margin-top:8px}
.osp-ov{position:fixed;inset:0;z-index:10050;background:rgba(15,20,16,.45);display:flex;align-items:center;justify-content:center;padding:16px}
.osp-ov-card{background:var(--card,#fff);color:var(--t1);border-radius:16px;max-width:460px;width:100%;padding:22px;box-shadow:0 20px 60px -20px rgba(0,0,0,.4)}
.osp-ov-card h3{margin:0 0 10px;font-size:1.15rem}
.osp-ov-card p{font-size:.88rem;color:var(--t2);line-height:1.55;margin:0 0 10px}
.osp-strip{position:fixed;z-index:9000;top:10px;left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100vw - 24px);display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;padding:8px 10px 8px 14px;font-size:.84rem;background:#fff7ea;border:1px solid rgba(201,138,0,.4);border-radius:12px;box-shadow:0 10px 30px -12px rgba(0,0,0,.35);color:#3a2a0a;text-align:center}
.osp-strip-red{background:#fdecea;border-color:rgba(179,38,30,.4);color:#5c1510}
.osp-strip+.osp-strip{top:64px}
@media (max-width:768px){.osp-strip{top:auto;bottom:calc(76px + env(safe-area-inset-bottom));font-size:.8rem}.osp-strip+.osp-strip{top:auto;bottom:calc(136px + env(safe-area-inset-bottom))}}
.osp-ih{font-size:.74rem;color:var(--t3)}
.osp-ih-bad{color:#8f1d17;background:rgba(179,38,30,.07);border-radius:8px;padding:6px 8px;line-height:1.4}
.osp-ih-bad a{color:#8f1d17;font-weight:700}

/* ---- catering pipeline ---- */
.cp-hint{font-size:.8rem;color:var(--t3);margin:0 0 12px;max-width:820px;line-height:1.5}
.cp-board{display:grid;grid-template-columns:repeat(5,minmax(200px,1fr));gap:10px;overflow-x:auto;padding-bottom:8px}
.cp-col{background:var(--glass,#f6f7f5);border:1px solid var(--border);border-radius:14px;padding:10px;min-height:160px;display:flex;flex-direction:column;gap:8px}
.cp-col.cp-over{outline:2px dashed var(--green,#57a15f);outline-offset:-4px}
.cp-head{display:flex;justify-content:space-between;align-items:baseline;gap:6px;font-size:.84rem;padding:2px 2px 4px}
.cp-head span{font-size:.72rem;color:var(--t3)}
.cp-card{background:var(--card,#fff);border:1px solid var(--border);border-radius:10px;padding:9px 10px;cursor:grab;display:flex;flex-direction:column;gap:3px}
.cp-card:hover{border-color:var(--green,#57a15f)}
.cp-stale{box-shadow:inset 3px 0 0 #d97706}
.cp-name{font-weight:750;font-size:.86rem;color:var(--t1);display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.cp-src{font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#3b82f6;background:rgba(59,130,246,.12);border-radius:999px;padding:1px 6px}
.cp-sub{font-size:.74rem;color:var(--t3)}
.cp-foot{display:flex;justify-content:space-between;font-size:.74rem;color:var(--t2);margin-top:3px}
.cp-move{margin-top:6px;font-size:.74rem;padding:4px 6px;border:1px solid var(--border);border-radius:8px;background:transparent;color:var(--t2)}
.cp-empty{font-size:.76rem;color:var(--t3);text-align:center;padding:14px 0}
@media (max-width:768px){.cp-board{grid-template-columns:repeat(5,minmax(78vw,1fr));scroll-snap-type:x mandatory}.cp-col{scroll-snap-align:start}}

/* ---- inbox & spam checks ---- */
.mkd-deep{border-top:1px solid var(--border);margin-top:14px;padding-top:14px;display:flex;flex-direction:column;gap:10px}
.mkd-deep-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.mkd-spam{display:flex;flex-direction:column;gap:2px;border-radius:10px;padding:9px 12px;font-size:.84rem}
.mkd-spam span{font-size:.78rem;color:var(--t2)}
.mkd-spam-low{background:rgba(87,161,95,.12)} .mkd-spam-medium{background:rgba(217,119,6,.12)} .mkd-spam-high{background:rgba(179,38,30,.1)}
.mkd-chk-l li.ok i{background:rgba(87,161,95,.18);color:#2f8f4e}
.mks-imp{border:1px dashed var(--border);border-radius:12px;padding:12px 14px;margin:12px 0}
.mkx-dl-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:8px 0}
.mkx-dl-row>div:first-child{flex:1;min-width:220px}
/* inbox */
.mkib-f{ display:flex; flex-wrap:wrap; gap:6px; margin-bottom:12px; }
.mkib-k{ width:22px; height:22px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; font-size:12px; flex:none; background:rgba(47,93,58,.1); }
#mkib-list .mk-thread{ flex-wrap:wrap; }
#mkib-list .mk-thread .mk-sub{ flex-basis:100%; padding-left:30px; }
#mkib-conv .mk-ai textarea{ flex:1; resize:vertical; min-height:44px; }
#mkib-conv .mk-ai{ display:flex; gap:8px; padding:12px 16px; align-items:flex-end; }
.mkx-nl{ display:grid; gap:6px; max-height:55vh; overflow:auto; }
/* rank map */
.mk-rk{ display:flex; gap:20px; flex-wrap:wrap; align-items:flex-start; }
.mk-rk-svg{ max-width:100%; height:auto; background:repeating-linear-gradient(0deg,transparent 0 23px,rgba(0,0,0,.04) 23px 24px),repeating-linear-gradient(90deg,transparent 0 23px,rgba(0,0,0,.04) 23px 24px),#eef2ec; border-radius:14px; }
.mk-rk .mk-hint{ flex:1; min-width:220px; }
.mk-rk-k{ display:inline-block; width:12px; height:12px; border-radius:50%; vertical-align:-1px; }
.mk-aiimg summary{ cursor:pointer; }
.mk-aiimg{ margin-bottom:12px; }
/* round 4 */
.mkx18-hl{ display:grid; gap:8px; }
.mkx18-h{ display:flex; justify-content:space-between; align-items:center; gap:12px; padding:10px 12px; border:1px solid var(--border,#e5e8e2); border-radius:12px; flex-wrap:wrap; }
.mkx18-bar{ height:8px; border-radius:6px; background:rgba(47,93,58,.1); overflow:hidden; }
.mkx18-bar i{ display:block; height:100%; background:var(--accent,#2f5d3a); border-radius:6px; }
.mkx18-ckh{ display:flex; justify-content:space-between; align-items:center; }
.mkx18-cl{ display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:8px; }
.mkx18-ci{ display:flex; gap:8px; align-items:center; text-align:left; padding:10px 12px; border:1px solid var(--border,#e5e8e2); border-radius:12px; background:none; font:inherit; color:inherit; cursor:pointer; min-height:44px; }
.mkx18-ci span{ width:22px; height:22px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; flex:none; border:1.5px solid currentColor; font-size:12px; opacity:.6; }
.mkx18-ci.ok{ opacity:.6; } .mkx18-ci.ok span{ background:var(--accent,#2f5d3a); border-color:var(--accent,#2f5d3a); color:#fff; opacity:1; }
.mkx18-ql{ display:flex; flex-wrap:wrap; gap:6px; align-items:center; margin:6px 0 8px; }
@media (max-width:640px){ .mkx18-h .btn{ width:100%; } }

/* =============================================================================
   Redesign, section 1 (2026-09-24): foundations + app shell.
   Type, spacing, metric strip, notices, status badges, missing values, tables,
   toolbars, page-header scope, and the collapsible overview rail.
   ============================================================================= */
:root{
  --r-fs-xs:12px; --r-fs-sm:13px; --r-fs-md:14px; --r-fs-lg:15px; --r-fs-xl:20px; --r-fs-2xl:22px;
  --r-s1:4px; --r-s2:8px; --r-s3:12px; --r-s4:16px; --r-s5:24px; --r-s6:32px;
  --r-radius:10px;
  --r-ok:#2f6e3c; --r-ok-bg:rgba(47,110,60,.10);
  --r-warn:#9a5b00; --r-warn-bg:rgba(217,119,6,.12);
  --r-bad:#b42318; --r-bad-bg:rgba(180,35,24,.09);
  --r-off:#5f6b63; --r-off-bg:rgba(95,107,99,.10);
  --r-info:#2c5d8a; --r-info-bg:rgba(44,93,138,.10);
}
[data-theme="dark"]{
  --r-ok:#8fd197; --r-ok-bg:rgba(143,209,151,.12);
  --r-warn:#f0b454; --r-warn-bg:rgba(240,180,84,.12);
  --r-bad:#f39a8b; --r-bad-bg:rgba(243,154,139,.12);
  --r-off:#a3aea6; --r-off-bg:rgba(163,174,166,.12);
  --r-info:#8db9e3; --r-info-bg:rgba(141,185,227,.12);
}
.r-sr{ position:absolute!important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

/* ---------- missing values ---------- */
.r-none{ color:var(--t3); font-size:var(--r-fs-sm); font-weight:400; white-space:nowrap; }

/* ---------- metric strip: one compact row instead of big tiles ---------- */
.r-strip{ display:grid; grid-template-columns:repeat(auto-fit,minmax(max(118px, calc(100% / var(--c,5) - 1px)),1fr)); gap:1px; margin:0 0 var(--r-s4); padding:0; background:var(--osp-line-2,#eef0ec); border:1px solid var(--osp-line,#e5e8e2); border-radius:var(--r-radius); overflow:hidden; }
.r-strip-i{ min-width:0; padding:10px 16px 11px; background:var(--osp-card,#fff); }
.r-strip dt{ margin:0; font-size:var(--r-fs-xs); font-weight:500; color:var(--t3); letter-spacing:.01em; }
.r-strip dd{ margin:2px 0 0; font-size:var(--r-fs-xl); font-weight:650; line-height:1.2; color:var(--t1); font-variant-numeric:tabular-nums; letter-spacing:-.01em; }
.r-strip dd .r-none{ font-size:var(--r-fs-sm); font-weight:500; }
.r-strip-i.r-warn dd{ color:var(--r-warn); }
.r-strip-i.r-bad dd{ color:var(--r-bad); }
.r-strip-h{ margin-top:2px; font-size:var(--r-fs-xs); color:var(--t3); line-height:1.35; }
.r-strip-h a{ color:var(--osp-green,#2f5d3a); font-weight:600; text-decoration:none; }
.r-strip-h a:hover{ text-decoration:underline; }
[data-theme="dark"] .r-strip-h a{ color:#8fd197; }

/* ---------- notices: empty · needs setup · disconnected · error ---------- */
.r-notice{ text-align:left; padding:16px 18px; border-radius:var(--r-radius); border:1px dashed var(--osp-line,#e5e8e2); background:transparent; max-width:760px; }
.r-notice-t{ font-size:var(--r-fs-lg); font-weight:600; color:var(--t1); }
.r-notice p{ margin:4px 0 0; font-size:var(--r-fs-sm); color:var(--t2); line-height:1.5; max-width:68ch; }
.r-notice-a{ display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.r-n-setup{ border:1px solid rgba(217,119,6,.28); background:var(--r-warn-bg); }
.r-n-off{ border:1px solid var(--osp-line,#e5e8e2); background:var(--r-off-bg); }
.r-n-error{ border:1px solid rgba(180,35,24,.25); background:var(--r-bad-bg); }
.r-n-error .r-notice-t{ color:var(--r-bad); }
.r-loading{ padding:18px 4px; color:var(--t3); font-size:var(--r-fs-sm); }

/* ---------- status badges ---------- */
.r-badge{ display:inline-flex; align-items:center; gap:5px; height:20px; padding:0 8px; border-radius:999px; font-size:var(--r-fs-xs); font-weight:600; line-height:1; white-space:nowrap; border:1px solid transparent; }
.r-badge::before{ content:""; width:6px; height:6px; border-radius:50%; background:currentColor; flex:none; }
.r-b-ok{ color:var(--r-ok); background:var(--r-ok-bg); }
.r-b-warn{ color:var(--r-warn); background:var(--r-warn-bg); }
.r-b-bad{ color:var(--r-bad); background:var(--r-bad-bg); }
.r-b-info{ color:var(--r-info); background:var(--r-info-bg); }
.r-b-off{ color:var(--r-off); background:var(--r-off-bg); }
.r-b-off::before{ background:transparent; border:1.5px solid currentColor; width:5px; height:5px; }
.r-b-paused{ color:var(--r-off); background:var(--r-off-bg); }
.r-b-paused::before{ width:6px; height:7px; border-radius:0; background:transparent; border-left:2px solid currentColor; border-right:2px solid currentColor; }
.r-b-draft{ color:var(--t2); background:transparent; border:1px dashed var(--osp-line,#cfd5cc); }
.r-b-draft::before{ display:none; }
.r-b-setup{ color:var(--r-warn); background:transparent; border:1px solid rgba(217,119,6,.45); }
.r-b-nodata{ color:var(--t3); background:transparent; border:1px solid var(--osp-line,#e5e8e2); }
.r-b-nodata::before{ display:none; }

/* ---------- record pages: header, toolbar, table ---------- */
body.osp-v2 .r-page .mk-head{ display:flex; flex-wrap:wrap; align-items:flex-start; gap:12px 24px; margin-bottom:var(--r-s4); }
body.osp-v2 .r-page .mk-head > div:first-child{ flex:1 1 360px; min-width:0; }
body.osp-v2 .r-page .mk-head h2{ font-size:var(--r-fs-2xl); font-weight:650; letter-spacing:-.015em; margin:0; }
body.osp-v2 .r-page .mk-head p{ margin:4px 0 0; max-width:72ch; font-size:var(--r-fs-md); color:var(--t2); }
body.osp-v2 .r-page .mk-head .mk-actions{ display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-end; margin:0; }
.r-toolbar{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:0 0 12px; }
.r-toolbar .form-input, .r-toolbar select{ height:36px; width:auto; min-width:0; max-width:170px; margin:0; font-size:var(--r-fs-md); }
.r-toolbar .r-search{ flex:1 1 200px; min-width:180px; max-width:340px; margin:0; position:relative; }
.r-toolbar .r-search input{ width:100%; max-width:none; padding-left:34px; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238a938c' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:11px 50%; }
.r-toolbar-end{ margin-left:auto; display:flex; align-items:center; gap:12px; }
.r-link{ border:0; background:none; padding:4px 2px; color:var(--osp-green,#2f5d3a); font:inherit; font-size:var(--r-fs-sm); font-weight:600; cursor:pointer; }
.r-link:hover{ text-decoration:underline; }
[data-theme="dark"] .r-link{ color:#8fd197; }
select.r-locked{ opacity:.8; cursor:not-allowed; }
.r-table table{ font-size:var(--r-fs-md); }
.r-table th{ font-size:var(--r-fs-xs); }
.r-table td{ vertical-align:middle; }
.r-table td.r, .r-table th.r{ font-variant-numeric:tabular-nums; }
.r-table tbody tr:hover td{ background:var(--osp-head,#fafbf9); }
.r-table .mk-sub{ font-size:var(--r-fs-xs); color:var(--t3); }
.r-rowbtn{ background:transparent!important; border-color:transparent!important; box-shadow:none!important; color:var(--osp-green,#2f5d3a)!important; font-weight:600; }
.r-rowbtn:hover, .r-rowbtn:focus-visible{ border-color:var(--osp-line,#e5e8e2)!important; background:var(--osp-card,#fff)!important; }
[data-theme="dark"] .r-rowbtn{ color:#8fd197!important; }
.r-page .mk-pager{ display:flex; align-items:center; gap:8px; justify-content:flex-end; margin-top:10px; font-size:var(--r-fs-sm); color:var(--t3); }
.r-page .mk-pager span{ margin-right:auto; }
.r-secondary{ margin-top:var(--r-s5); box-shadow:none!important; }
.r-secondary h4{ font-size:var(--r-fs-lg); }

/* ---------- Customers (older ops page) uses the same strip + table treatment ---------- */
body.osp-v2 #cust-stats .r-strip{ margin:0; }
body.osp-v2 #cust-table-wrap.r-table td{ padding-top:10px; padding-bottom:10px; }

/* ---------- page header: which brands you're looking at ---------- */
.os-scope{ display:inline-flex; align-items:center; gap:7px; height:26px; margin-left:12px; padding:0 10px; border:1px solid var(--osp-line,#e5e8e2); border-radius:999px; background:var(--osp-card,#fff); color:var(--t2); font:inherit; font-size:var(--r-fs-sm); font-weight:500; white-space:nowrap; cursor:pointer; flex:none; }
.os-scope:hover:not(:disabled){ border-color:var(--t3); color:var(--t1); }
.os-scope:disabled{ cursor:default; }
.os-scope i{ width:8px; height:8px; border-radius:50%; flex:none; }
.os-scope b{ font-weight:600; font-size:11px; min-width:18px; height:18px; padding:0 5px; border-radius:9px; background:var(--osp-line-2,#eef0ec); color:var(--t2); display:inline-flex; align-items:center; justify-content:center; }
.os-scope.one{ color:var(--t1); font-weight:600; }
.os-scope.acct, .os-scope.none{ border-style:dashed; color:var(--t3); }
#os-title{ display:flex; align-items:center; min-width:0; }
#os-title h1{ min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

/* ---------- overview rail: collapsible, fits the page ---------- */
#ov-rail .ovr-head{ display:flex; align-items:center; gap:8px; }
#ov-rail #ovr-date{ margin-left:auto; }
.ovr-min, .ovr-open{ display:none; }
@media (min-width:1024px){
  body.osp-v2.topnav-mode .ovr-min{ display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px; margin-right:-4px; border:1px solid transparent; border-radius:7px; background:none; color:var(--t3); cursor:pointer; flex:none; }
  body.osp-v2.topnav-mode .ovr-min:hover, body.osp-v2.topnav-mode .ovr-min:focus-visible{ border-color:var(--osp-line); color:var(--t1); background:var(--osp-card); }
  .ovr-min svg, .ovr-open svg{ width:16px; height:16px; }
  body.osp-v2.topnav-mode.rail-min #ov-rail{ flex-basis:48px!important; width:48px!important; padding:12px 6px!important; overflow:hidden; }
  body.osp-v2.topnav-mode.rail-min #ov-rail .ovr-head, body.osp-v2.topnav-mode.rail-min #ov-rail #ovr-body{ display:none; }
  body.osp-v2.topnav-mode.rail-min .ovr-open{ display:flex; flex-direction:column; align-items:center; gap:10px; width:36px; padding:10px 0; border:1px solid transparent; border-radius:9px; background:none; color:var(--t2); cursor:pointer; position:relative; font:inherit; }
  body.osp-v2.topnav-mode.rail-min .ovr-open:hover, body.osp-v2.topnav-mode.rail-min .ovr-open:focus-visible{ border-color:var(--osp-line); background:var(--osp-card); color:var(--t1); }
  .ovr-open span{ writing-mode:vertical-rl; transform:rotate(180deg); font-size:var(--r-fs-xs); font-weight:600; letter-spacing:.04em; }
  .ovr-attn{ position:absolute; top:2px; right:0; min-width:16px; height:16px; padding:0 4px; border-radius:8px; background:#c2410c; color:#fff; font:700 10px/16px var(--sans,inherit); font-style:normal; text-align:center; }
}
@media (prefers-reduced-motion:no-preference){
  body.osp-v2.topnav-mode #ov-rail{ transition:flex-basis .18s ease, width .18s ease; }
}

/* ---------- narrower laptops ---------- */
@media (min-width:1024px) and (max-width:1279px){
  .r-toolbar .form-input, .r-toolbar select{ max-width:150px; }
  .r-toolbar .r-search{ flex-basis:170px; }
  .r-strip-i{ padding:9px 12px 10px; }
  .r-strip dd{ font-size:18px; }
}

.r-page .mk-pager .btn:disabled{ opacity:.45; }
.r-page .r-table td:nth-child(2) b{ white-space:nowrap; }
.r-toolbar #mk-g-o{ order:10; }
.r-toolbar .r-toolbar-end{ order:11; }
.r-norows #mk-g-stats, .r-norows .r-toolbar, .r-norows #mk-g-after{ display:none; }
@media (min-width:1024px) and (max-width:1279px){
  .os-scope{ margin-left:8px; padding:0 8px; font-size:12px; }
  body.osp-v2.topnav-mode .khg-tabs-in #khg-subtabs .khg-subtab{ padding:0 10px; }
  .r-table .mk-table th, .r-table .mk-table td{ padding-left:8px; padding-right:8px; }
  .r-table .mk-table{ font-size:13.5px; }
  .r-page .r-table td:nth-child(2) b{ white-space:normal; }
  .r-rowbtn{ padding-left:6px!important; padding-right:6px!important; }
  .r-table .mk-chip{ font-size:11px; }
}

/* =============================================================================
   Redesign, section 2 (2026-09-24): overview pages.
   ============================================================================= */
/* ---------- compact setup checklist ---------- */
.r-setup{ margin:0 0 var(--r-s4); background:var(--osp-card,#fff); border:1px solid var(--osp-line,#e5e8e2); border-radius:var(--r-radius); }
.r-setup-row{ display:flex; flex-wrap:wrap; align-items:center; gap:10px 18px; padding:10px 14px; }
.r-setup-t{ display:flex; align-items:baseline; gap:8px; }
.r-setup-t b{ font-size:var(--r-fs-md); font-weight:600; color:var(--t1); }
.r-setup-t span{ font-size:var(--r-fs-sm); color:var(--t3); font-variant-numeric:tabular-nums; }
.r-setup-bar{ width:120px; height:6px; border-radius:3px; background:var(--osp-line-2,#eef0ec); overflow:hidden; flex:none; }
.r-setup-bar i{ display:block; height:100%; background:var(--osp-green,#2f5d3a); border-radius:3px; }
[data-theme="dark"] .r-setup-bar i{ background:#8fd197; }
.r-setup-next{ display:flex; align-items:center; gap:6px; font-size:var(--r-fs-sm); color:var(--t2); min-width:0; }
.r-setup-next button{ border:0; background:none; padding:2px 0; font:inherit; font-weight:600; color:var(--osp-green,#2f5d3a); cursor:pointer; text-align:left; }
.r-setup-next button:hover{ text-decoration:underline; }
[data-theme="dark"] .r-setup-next button{ color:#8fd197; }
.r-setup-tg{ margin-left:auto; }
.r-setup-x{ width:28px; height:28px; border:1px solid transparent; border-radius:7px; background:none; color:var(--t3); font-size:18px; line-height:1; cursor:pointer; }
.r-setup-x:hover, .r-setup-x:focus-visible{ border-color:var(--osp-line); color:var(--t1); }
.r-setup-l[hidden]{ display:none!important; }
.r-setup-l{ list-style:none; margin:0; padding:4px 8px 10px; border-top:1px solid var(--osp-line-2,#eef0ec); display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:2px 12px; }
.r-setup-l button{ display:flex; align-items:center; gap:10px; width:100%; padding:8px 6px; border:0; border-radius:8px; background:none; font:inherit; font-size:var(--r-fs-md); color:var(--t1); text-align:left; cursor:pointer; }
.r-setup-l button:hover{ background:var(--osp-head,#fafbf9); }
.r-setup-l em{ margin-left:auto; font-style:normal; font-size:var(--r-fs-xs); font-weight:600; color:var(--osp-green,#2f5d3a); }
.r-setup-l .done button{ color:var(--t3); }
.r-setup-l .done em{ color:var(--t3); font-weight:500; }
.r-setup-ck{ width:18px; height:18px; border-radius:50%; border:1.5px solid var(--osp-line,#cfd5cc); display:inline-flex; align-items:center; justify-content:center; font-size:11px; flex:none; }
.r-setup-l .done .r-setup-ck{ background:var(--osp-green,#2f5d3a); border-color:transparent; color:#fff; }
.r-setup-l .next .r-setup-ck{ border-color:var(--osp-green,#2f5d3a); }

/* ---------- metric cards: smaller, no decorative icon box ---------- */
body.osp-v2 #sum-vitals.ov2, body.osp-v2 .hm-vitals.ov2{ grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr)); gap:14px; }
.omc-in{ padding:14px 16px 12px; }
.omc-h{ gap:8px; }
.omc-ic{ display:none; }
.omc-t{ font-size:var(--r-fs-md); font-weight:600; }
.omc-v{ font-size:28px; margin-top:8px; letter-spacing:-.02em; }
.omc-s{ font-size:var(--r-fs-xs); color:var(--t3); margin-top:4px; }
.omc-call, .omc-call.bad, .omc-call.flat{ margin-top:6px; padding:0; border:0; box-shadow:none; text-align:left; font-size:var(--r-fs-sm); color:var(--t2); }
.omc-chart{ margin-top:10px; }
.omc-none .omc-v-zero{ color:var(--t3); }
.omc-nodata{ margin-top:10px; padding:10px 0 2px; border-top:1px dashed var(--osp-line,#e5e8e2); font-size:var(--r-fs-sm); color:var(--t3); }

/* ---------- overview pages built from sections: priorities first ---------- */
.section.r-ov.active{ display:flex; flex-direction:column; }
.r-ov > *{ order:5; }
.r-ov > .mk-head{ order:0; }
.r-ov > .r-setup{ order:1; }
.r-ov > .r-strip{ order:2; }
.r-ov > .r-slip, .r-ov > .r-main{ order:3; }
.r-ov > .r-later{ order:6; }
.r-ov .mk-issue{ display:flex; align-items:center; flex-wrap:wrap; gap:6px 16px; }
.r-ov .mk-issue .mk-row-actions{ margin:0 0 0 auto; }
.r-ov > .mk-empty, .r-ov .r-notice{ margin-bottom:var(--r-s4); }

/* ---------- Sales overview: compact numbers, empty charts tucked away ---------- */
body.osp-v2 #section-ops #group-kpis{ display:grid; grid-template-columns:repeat(auto-fit,minmax(105px,1fr)); gap:0; margin:0 0 10px; background:var(--osp-card); border:1px solid var(--osp-line); border-radius:var(--r-radius); overflow:hidden; }
body.osp-v2 #section-ops #group-kpis .kpi{ border:0!important; border-left:1px solid var(--osp-line-2)!important; border-radius:0!important; box-shadow:none!important; background:none!important; padding:10px 14px 11px!important; min-height:0!important; margin:0!important; }
body.osp-v2 #section-ops #group-kpis .kpi:first-child{ border-left:0!important; }
body.osp-v2 #section-ops #group-kpis .kpi-val{ font-size:20px; line-height:1.2; }
body.osp-v2 #section-ops #group-kpis .kpi-lbl{ font-size:var(--r-fs-xs); }
body.osp-v2 #section-ops #group-stats{ display:flex; flex-wrap:wrap; gap:0; margin:0 0 var(--r-s4); border:1px solid var(--osp-line); border-radius:var(--r-radius); background:var(--osp-card); overflow:hidden; }
body.osp-v2 #section-ops #group-stats .stat-pill{ flex:1 1 0; min-width:84px; border:0!important; border-left:1px solid var(--osp-line-2)!important; border-radius:0!important; background:none!important; box-shadow:none!important; padding:8px 12px!important; margin:0!important; }
body.osp-v2 #section-ops #group-stats .stat-pill:first-child{ border-left:0!important; }
.r-ops-nosalesbar{ display:flex; flex-wrap:wrap; align-items:center; gap:8px 16px; margin:0 0 var(--r-s4); padding:10px 14px; border:1px dashed var(--osp-line); border-radius:var(--r-radius); font-size:var(--r-fs-sm); color:var(--t2); }
.r-ops-nosalesbar .r-link{ margin-left:auto; }
.r-ops-nosales:not(.r-show) > .panel, .r-ops-nosales:not(.r-show) > .grid-3, .r-ops-nosales:not(.r-show) > .grid-2{ display:none; }
.r-ops-nosales #group-kpis .kpi-val{ color:var(--t3); }

/* ---------- Today in Review before the first review exists ---------- */
#section-review.r-tr-pending #tr-kpis, #section-review.r-tr-pending .ir-grid, #section-review.r-tr-pending .ir-section-label{ display:none; }
.omc-chart svg{ max-height:150px; }
.r-ov > .r-main .r-notice{ max-width:none; }
body.osp-v2 #sum-mkt-vitals.hm-vitals.ov2.mh-vit{ display:grid!important; grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr))!important; gap:14px!important; }

/* =============================================================================
   Redesign, section 3 (2026-09-24): connection-dependent pages.
   ============================================================================= */
/* ---------- Integrations: list rows instead of a wall of cards ---------- */
.r-int-block{ margin:0 0 var(--r-s5); }
.r-int-h{ display:flex; align-items:baseline; gap:10px; margin:0 0 8px; }
.r-int-h h3{ margin:0; font-size:var(--r-fs-lg); font-weight:600; color:var(--t1); }
.r-int-h span{ font-size:var(--r-fs-sm); color:var(--t3); }
.r-int-list{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fill,minmax(min(420px,100%),1fr)); gap:1px; background:var(--osp-line-2,#eef0ec); border:1px solid var(--osp-line,#e5e8e2); border-radius:var(--r-radius); overflow:hidden; }
.r-int{ display:flex; align-items:center; gap:12px; padding:10px 14px; background:var(--osp-card,#fff); min-width:0; }
.r-int[hidden]{ display:none; }
.r-int .integ-logo{ width:32px; height:32px; flex:none; }
.r-int-t{ flex:1; min-width:0; display:flex; flex-direction:column; }
.r-int-t b{ font-size:var(--r-fs-md); font-weight:600; color:var(--t1); }
.r-int-t > span{ font-size:var(--r-fs-xs); color:var(--t3); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.r-int-t .osp-ih{ margin-top:3px; font-size:var(--r-fs-xs); }
.r-int-s{ display:flex; align-items:center; gap:6px; flex:none; }
.r-int-tag{ font-size:11px; font-weight:600; color:var(--t3); border:1px solid var(--osp-line,#e5e8e2); border-radius:999px; padding:1px 7px; white-space:nowrap; }
.r-int .btn{ flex:none; }
.r-int-conn .r-int{ padding:12px 14px; }
.r-int-bar{ margin:0 0 var(--r-s4); align-items:flex-start; }
.r-int-bar .integ-cat-pills{ display:flex; flex-wrap:wrap; gap:6px; margin:0; }
#r-int-none{ margin:0 0 var(--r-s4); }

/* ---------- sample data is unmistakably sample ---------- */
.r-is-sample .ops-kpis, .r-is-sample .ci-card{ position:relative; }
.r-is-sample .ops-kpis{ opacity:.55; }
.r-is-sample .ops-kpi-v{ color:var(--t2)!important; }
.r-is-sample .ci-card canvas{ opacity:.45; filter:grayscale(1); }
.r-is-sample .ci-card::after{ content:"Sample data"; position:absolute; top:12px; right:14px; font-size:var(--r-fs-xs); font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--r-warn); background:var(--r-warn-bg); border-radius:999px; padding:3px 9px; }
.r-est-note{ font-size:var(--r-fs-xs); color:var(--t3); margin:6px 0 0; }

/* ---------- Advertising numbers ---------- */
#adc-kpis .r-strip, #adc-kpis .r-notice{ grid-column:1 / -1; }
#adc-kpis:has(.r-strip), #adc-kpis:has(.r-notice){ display:block!important; }

/* ---------- a step that can't be used yet ---------- */
.r-dim{ opacity:.6; }
.r-int-list{ gap:0; background:var(--osp-card,#fff); }
.r-int{ box-shadow:inset -1px -1px 0 var(--osp-line-2,#eef0ec); }

/* ---------- older empty states across the app: same message, less space ---------- */
body.osp-v2 .page-content :is([id$="-empty"],[class$="-empty"],.empty-state):not(:empty):not([style*="display:none"]):not([style*="display: none"]){ padding:18px 16px!important; }
body.osp-v2 .page-content .empty-state svg{ width:24px; height:24px; opacity:.55; margin-bottom:4px; }
body.osp-v2 .page-content .empty-state p{ margin:4px 0 0; }
body.osp-v2 .btn:disabled, body.osp-v2 .btn[disabled]{ opacity:.5; cursor:not-allowed; }

/* =============================================================================
   Redesign, section 4 (2026-09-24): messaging lists.
   ============================================================================= */
.r-ov > .r-top{ order:1; }
.r-auto-sum{ margin:0 0 var(--r-s4); font-size:var(--r-fs-sm); color:var(--t2); font-variant-numeric:tabular-nums; }
.r-auto-g{ margin:0 0 var(--r-s5); }
.r-auto-g h3{ margin:0 0 8px; font-size:var(--r-fs-lg); font-weight:600; color:var(--t1); }
.r-auto-list{ list-style:none; margin:0; padding:0; background:var(--osp-card,#fff); border:1px solid var(--osp-line,#e5e8e2); border-radius:var(--r-radius); overflow:hidden; }
.r-auto{ display:grid; grid-template-columns:auto minmax(0,1fr) minmax(170px,auto) auto; align-items:center; gap:10px 16px; padding:12px 16px; border-top:1px solid var(--osp-line-2,#eef0ec); }
.r-auto:first-child{ border-top:0; }
.r-auto-t{ display:flex; flex-direction:column; min-width:0; }
.r-auto-t b{ font-size:var(--r-fs-md); font-weight:600; color:var(--t1); }
.r-auto-t span{ font-size:var(--r-fs-sm); color:var(--t2); line-height:1.45; }
.r-auto-s{ display:flex; flex-direction:column; align-items:flex-start; gap:3px; }
.r-auto-d{ font-size:var(--r-fs-xs); color:var(--t3); }
.r-auto .mk-switch{ margin:0; }
@media (max-width:900px){ .r-auto{ grid-template-columns:auto minmax(0,1fr); } .r-auto-s, .r-auto .btn{ grid-column:2; justify-self:start; } }

/* =============================================================================
   Redesign, section 5 (2026-09-24): settings and long forms.
   ============================================================================= */
.r-idx{ position:sticky; top:64px; z-index:5; display:flex; align-items:center; gap:4px; flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; margin:0 0 var(--r-s4); padding:8px 10px; background:var(--osp-card,#fff); border:1px solid var(--osp-line,#e5e8e2); border-radius:var(--r-radius); }
.r-idx::-webkit-scrollbar{ display:none; }
.r-idx-l{ font-size:var(--r-fs-xs); font-weight:600; color:var(--t3); white-space:nowrap; margin-right:6px; }
.r-idx a{ flex:none; padding:5px 10px; border-radius:999px; font-size:var(--r-fs-sm); font-weight:500; color:var(--t2); text-decoration:none; white-space:nowrap; }
.r-idx a:hover{ background:var(--osp-head,#fafbf9); color:var(--t1); }
.r-idx a.on{ background:rgba(47,93,58,.1); color:var(--osp-green,#2f5d3a); font-weight:600; }
[data-theme="dark"] .r-idx a.on{ color:#8fd197; background:rgba(143,209,151,.12); }
.r-flash{ box-shadow:0 0 0 3px rgba(87,161,95,.35)!important; transition:box-shadow .3s; }

/* unsaved changes */
.r-unsaved{ display:inline-flex; align-items:center; gap:6px; margin-left:10px; font-size:var(--r-fs-sm); font-weight:600; color:var(--r-warn); vertical-align:middle; }
.r-unsaved::before{ content:""; width:7px; height:7px; border-radius:50%; background:currentColor; }
.r-dirty{ border-color:rgba(217,119,6,.45)!important; }

/* long feeds */
.r-clipped:not(.r-open) > :nth-child(n+9){ display:none!important; }
.r-more{ margin-top:8px; }

/* comfortable form widths on single-column settings pages */
body.osp-v2 #section-mkt-sending > .mk-card, body.osp-v2 #section-mkt-sending > .r-idx{ max-width:900px; }
body.osp-v2 #section-ops-events-info .ci-card, body.osp-v2 #section-ops-events-info > div > .ci-card{ max-width:900px; }
body.osp-v2 #section-mkt-listings > .mk-card{ max-width:1100px; }
/* Section 6 — record pages */
.r-emptyhost > .r-notice{ max-width:640px; }
.r-nomatch{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; padding:14px 16px; border:1px solid var(--border); border-radius:12px; background:var(--glass); color:var(--t2); font-size:.86rem; }
.r-nomatch span{ flex:1; min-width:200px; }
.r-sup-hint{ font-size:.74rem; color:var(--t3); margin:-2px 0 6px; }
.rcard-metric .r-none{ font-size:.78rem; font-weight:600; }
.r-strip-host{ display:block!important; }
.r-strip-host > .r-strip{ width:100%; }
/* empty host carries no box of its own; the notice is the box */
body .page-content .r-emptyhost:not(#r-x):not(#r-y), body.osp-v2 .page-content .r-emptyhost:not(#r-x):not(#r-y){ text-align:left!important; border-radius:0!important; border:0!important; background:none!important; box-shadow:none!important; padding:0!important; }
/* Section 8: grid cells may shrink so wide tables scroll inside their card instead of pushing the page */
.mk-grid2 > *, .mk-grid3 > *{ min-width:0; }
@media (max-width:700px){ .mk-grid2{ grid-template-columns:1fr!important; } }
/* Section 10: required marker in dialogs */
.r-req{ color:#c2410c; font-weight:800; margin-left:1px; }
.r-sr{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
/* Section 11 — phone pass */
.mk-card:has(> .mk-heat){ overflow-x:auto; }
@media (max-width:700px){
  /* comfortable tap targets for everyday actions (calendar chips and chart bits are left alone) */
  .page-content .btn, .page-content .btn-sm, .page-content .btn-secondary, .page-content .btn-primary{ min-height:38px; }
  .page-content button[onclick^="edit"], .page-content .kp-edit-btn, .page-content button[aria-label^="Edit"]{ min-width:38px; min-height:38px; }
  .page-content button[onclick^="toggleNotePin"], .page-content button[onclick^="deleteNote"]{ min-height:34px; padding:6px 10px; }
  .r-idx a{ min-height:36px; display:inline-flex; align-items:center; }
  .page-content .filter-chip, .page-content .seg button{ min-height:34px; }
}
.r-scope-line{ font-size:.82rem; color:var(--t2); padding:8px 12px; border:1px solid var(--border); border-radius:10px; background:var(--glass); display:inline-block; }
/* Owner decisions — restaurant report, daily review, merged pages */
.r-rep{ margin-bottom:18px; }
.r-rep-form{ display:grid; gap:12px; margin-top:14px; }
.r-rep-form .form-group{ margin:0; }
.r-rep-secs{ border:0; padding:0; margin:0; display:flex; flex-wrap:wrap; gap:8px 16px; }
.r-rep-secs legend{ margin-bottom:6px; }
.r-rep-secs label{ display:inline-flex; gap:6px; align-items:center; font-size:.85rem; color:var(--t1); }
.r-rep-out{ margin-top:16px; }
.r-rep-doc{ border-top:1px solid var(--border); padding-top:16px; }
.r-rep-top{ display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; align-items:flex-start; margin-bottom:10px; }
.r-rep-brand{ font-size:1.15rem; font-weight:800; color:var(--t1); }
.r-rep-acts{ display:flex; gap:8px; flex-wrap:wrap; }
.r-rep-s{ padding:14px 0; border-bottom:1px solid var(--border); }
.r-rep-s h3{ margin:0 0 10px; font-size:.95rem; }
.r-rep-none{ margin:0; font-size:.85rem; color:var(--t3); }
.r-rep-note{ margin:10px 0 0; font-size:.84rem; color:var(--t2); line-height:1.5; }
.r-rep-t{ width:100%; border-collapse:collapse; font-size:.84rem; }
.r-rep-t th, .r-rep-t td{ padding:6px 8px; border-bottom:1px solid var(--border); text-align:left; }
.r-rep-t .r{ text-align:right; font-variant-numeric:tabular-nums; }
.r-legacy{ margin-top:10px; border:1px solid var(--border); border-radius:12px; padding:10px 14px; background:var(--glass); }
.r-legacy summary{ cursor:pointer; font-weight:600; color:var(--t2); font-size:.86rem; }
.r-legacy[open] summary{ margin-bottom:12px; }
.r-dr-row{ display:flex; justify-content:space-between; align-items:center; gap:12px; padding:10px 0; border-bottom:1px solid var(--border); }
#section-email.r-merged .section-heading{ margin-top:6px; }
@media print{
  body.r-printing *{ visibility:hidden !important; }
  body.r-printing #rr-doc, body.r-printing #rr-doc *{ visibility:visible !important; }
  body.r-printing #rr-doc{ position:absolute; left:0; top:0; width:100%; border:0; }
  body.r-printing .r-rep-acts{ display:none !important; }
}
#section-mkt-campaigns.r-camp-other > .r-later, #section-mkt-campaigns.r-camp-other > .mk-card:not(:first-child){ display:none !important; }
@media (max-width:700px){ .page-content .mk-seg-b{ min-height:34px; } .r-rep-secs label{ min-height:32px; } }
/* marketing calendar with week bands */
.mc-wrap{ min-width:760px; }
.mc-dow{ display:grid; grid-template-columns:repeat(7,1fr); gap:6px; margin-bottom:6px; }
.mc-dow div{ font-size:.66rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase; color:var(--t3); text-align:center; }
.mc-week{ margin-bottom:8px; }
.mc-band{ display:grid; grid-template-columns:repeat(7,1fr); gap:3px 6px; margin-bottom:4px; }
.mc-bar{ font-size:.66rem; color:#fff; background:#2B3266; border:none; border-radius:6px; padding:3px 8px; text-align:left; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; cursor:pointer; min-width:0; }
.mc-bar.mc-l{ border-top-left-radius:0; border-bottom-left-radius:0; }
.mc-bar.mc-r{ border-top-right-radius:0; border-bottom-right-radius:0; }
.mc-days{ display:grid; grid-template-columns:repeat(7,1fr); gap:6px; }
.mc-day{ min-height:92px; border:1px solid var(--border); border-radius:9px; padding:6px; background:var(--glass2,var(--glass)); min-width:0; }
.mc-day.mc-out{ background:transparent; opacity:.5; }
.mc-day.mc-today{ box-shadow:0 0 0 2px rgba(87,161,95,.5); }
.mc-num{ font-size:.72rem; font-weight:700; color:var(--t2); margin-bottom:4px; }
.mc-nat{ font-size:.6rem; color:#6b6656; background:#8a85771f; border-radius:5px; padding:2px 5px; margin-bottom:3px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.mc-chip{ display:block; width:100%; text-align:left; font-size:.62rem; color:#fff; border:none; border-radius:5px; padding:2px 6px; margin-bottom:3px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; cursor:pointer; }
.mc-more{ font-size:.62rem; color:var(--t3); margin:0 0 4px; }
.r-cnt{ margin-left:auto; min-width:18px; height:18px; padding:0 6px; border-radius:9px; background:rgba(255,255,255,.16); color:#fff; font-size:.66rem; font-weight:800; display:inline-flex; align-items:center; justify-content:center; line-height:1; }
.os-i .r-cnt{ margin-left:8px; float:right; }
.os-gh .r-cnt-g{ margin-left:auto; margin-right:6px; background:#c2410c; }
.os-g.open .os-gh .r-cnt-g{ display:none; }
.cmp-saved{ display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin:0 0 12px; }
.cmp-saved select{ max-width:280px; }
.rre-grid{ display:grid; grid-template-columns:1fr 1fr; gap:10px 14px; max-width:720px; }
.rre-grid .form-group{ margin:0; }
@media (max-width:700px){ .rre-grid{ grid-template-columns:1fr; } }
/* r17 — setup guide, removed brands, starter courses, email health */
.r17-wiz{position:fixed;inset:0;z-index:9000;background:rgba(15,20,16,.45);display:flex;align-items:center;justify-content:center;padding:16px}
.r17-wz-card{position:relative;width:100%;max-width:520px;background:var(--bg2,#fff);color:var(--t1,#1a1f1b);border-radius:16px;padding:30px 28px 24px;box-shadow:0 24px 60px rgba(0,0,0,.25);overflow:hidden}
.r17-wz-card h2{font-size:1.35rem;font-weight:700;margin:0 0 10px;letter-spacing:-.01em}
.r17-wz-card p{color:var(--t2,#4d564f);line-height:1.55;margin:0 0 16px}
.r17-wz-bar{position:absolute;left:0;top:0;right:0;height:4px;background:var(--glass3,rgba(0,0,0,.06))}
.r17-wz-bar i{display:block;height:100%;background:var(--brand-accent,#57a15f)}
.r17-wz-x{position:absolute;right:10px;top:10px;min-width:40px;min-height:40px;border:0;background:none;font-size:1.4rem;color:var(--t3,#7d857e);cursor:pointer;border-radius:8px}
.r17-wz-x:hover{background:var(--glass2,rgba(0,0,0,.04))}
.r17-wz-step{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--t3,#7d857e);margin-bottom:6px}
.r17-wz-list{margin:0 0 18px;padding-left:20px;line-height:1.9;color:var(--t2,#4d564f)}
.r17-wz-list li.dn{color:var(--t3,#7d857e);text-decoration:line-through}
.r17-wz-acts{display:flex;gap:8px;flex-wrap:wrap}
.r17-ok{color:var(--brand-accent,#2f7d3a);font-weight:700;font-size:.85rem}
.r17-no{color:var(--red,#c23934);font-weight:700}
.r17-pill{position:fixed;left:50%;transform:translateX(-50%);bottom:18px;z-index:800;display:flex;align-items:stretch;background:var(--t1,#1a1f1b);color:var(--bg2,#fff);border-radius:99px;box-shadow:0 8px 24px rgba(0,0,0,.2);overflow:hidden}
.r17-pill button{background:none;border:0;color:inherit;font:inherit;cursor:pointer;min-height:44px}
.r17-pill-go{padding:0 8px 0 18px;font-size:.86rem}
.r17-pill-x{padding:0 14px;font-size:1.1rem;opacity:.7}
.r17-pill-x:hover{opacity:1}
.r17-arch{margin-top:14px;border:1px solid var(--border,rgba(0,0,0,.1));border-radius:12px;padding:10px 14px;background:var(--glass,transparent)}
.r17-arch summary{cursor:pointer;font-weight:600;font-size:.88rem;min-height:32px;display:flex;align-items:center}
.r17-arch-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-top:1px solid var(--border,rgba(0,0,0,.08));font-size:.86rem}
.r17-starter{margin-bottom:16px}
.r17-starter-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.r17-st{display:flex;flex-direction:column;justify-content:space-between;gap:10px;border:1px solid var(--border,rgba(0,0,0,.1));border-radius:12px;padding:14px}
.r17-st p{font-size:.82rem;color:var(--t2,#4d564f);margin:6px 0 0;line-height:1.45}
.r17-st .btn{align-self:flex-start}
.r17-hl{list-style:none;padding:0;margin:6px 0 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:6px 16px;font-size:.86rem}
.r17-tips{margin:4px 0 0;padding-left:18px;line-height:1.5}
@media (max-width:640px){ .r17-wz-card{padding:26px 18px 18px} .r17-pill{bottom:12px;left:12px;right:12px;transform:none;justify-content:space-between} }

/* r20: Help link beside the page title */
.os-help{ display:inline-flex; align-items:center; gap:5px; height:26px; margin-left:8px; padding:0 10px; border:1px solid var(--osp-line,#e5e8e2); border-radius:999px; background:var(--osp-card,#fff); color:var(--t2); font-size:var(--r-fs-sm,12.5px); font-weight:500; text-decoration:none; white-space:nowrap; flex:none; }
.os-help:hover{ color:var(--t1); border-color:var(--t3); }
.os-help:focus-visible{ outline:2px solid var(--accent,#2F5D3A); outline-offset:2px; }
@media (max-width:640px){ .os-help{ padding:0 8px; } .os-help span{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; } }

/* r20: contrast — muted text, brand green and amber meet WCAG AA (4.5:1) on light surfaces */
html:not([data-theme="dark"]) body.skin-khg, :root:not([data-theme="dark"]) { --t3:#626a63; --green:#3b7d44; --amber:#946200; }
[data-theme="dark"] body.skin-khg { --t3:#939d95; }
/* r20: stat strip hint is now a <dd>; keep its small muted look */
.r-strip dd.r-strip-h{ margin:2px 0 0; font-size:var(--r-fs-xs); font-weight:400; color:var(--t3); line-height:1.35; letter-spacing:0; font-variant-numeric:normal; }
[role=region][tabindex="0"]:focus-visible{ outline:2px solid var(--accent,#2F5D3A); outline-offset:2px; }

/* r21: remaining small status text meets 4.5:1 */
.ir-delta.up{ color:#166534; }
.ir-delta.down{ color:#b42318; }
.rec-pri-medium{ color:#8a5a00 !important; }
.rec-pri-high{ color:#b42318 !important; }
[data-theme="dark"] .ir-delta.up{ color:#6fd08c; }
[data-theme="dark"] .ir-delta.down{ color:#ff8a80; }
[data-theme="dark"] .rec-pri-medium{ color:#f0c26a !important; }
[data-theme="dark"] .rec-pri-high{ color:#ff8a80 !important; }
/* r22: Import sales from a file */
.imp-modal{ max-width:760px; }
.imp-head{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:6px; }
.imp-title{ font-size:1rem; font-weight:800; color:var(--t1); margin:0; }
.imp-x{ padding:4px 9px; }
.imp-lead{ font-size:.84rem; color:var(--t2); margin:0 0 14px; line-height:1.45; }
.imp-grid{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.imp-hint{ font-size:.76rem; color:var(--t3); margin:5px 0 0; }
.imp-h3{ font-size:.86rem; font-weight:800; color:var(--t1); margin:16px 0 6px; }
.imp-map{ display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:4px 10px; margin-top:8px; }
.imp-req{ text-transform:none; letter-spacing:0; font-weight:600; }
.imp-order{ max-width:320px; }
.imp-modal select, .imp-modal input[type=file]{ width:100%; font:inherit; font-size:.84rem; padding:7px 9px; border:1px solid var(--border); border-radius:8px; background:var(--bg2); color:var(--t1); box-sizing:border-box; }
.imp-sum{ font-size:.84rem; color:var(--t1); margin:0 0 8px; }
.imp-tablewrap{ overflow-x:auto; border:1px solid var(--border); border-radius:10px; }
.imp-tablewrap:focus-visible{ outline:2px solid var(--green,#2f8f4e); outline-offset:2px; }
.imp-table{ width:100%; border-collapse:collapse; font-size:.8rem; }
.imp-table th, .imp-table td{ padding:7px 10px; text-align:right; white-space:nowrap; border-bottom:1px solid var(--border); color:var(--t1); }
.imp-table th{ font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.03em; color:var(--t2); background:var(--bg3,transparent); }
.imp-table th:first-child, .imp-table td:first-child{ text-align:left; }
.imp-table tr:last-child td{ border-bottom:none; }
.imp-sr{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.imp-issues{ list-style:none; padding:0; margin:8px 0 0; font-size:.78rem; color:#8a5a00; }
.imp-issues li{ margin:2px 0; }
.imp-issue-head{ font-weight:700; }
.imp-check{ display:flex; align-items:center; gap:8px; font-size:.82rem; color:var(--t1); margin:14px 0 0; cursor:pointer; }
.imp-result{ margin-top:14px; padding:12px 14px; border-radius:10px; font-size:.84rem; line-height:1.45; background:rgba(47,143,78,.1); color:var(--t1); border:1px solid rgba(47,143,78,.3); }
.imp-result p{ margin:0 0 4px; }
.imp-result ul{ margin:4px 0 0; padding-left:18px; }
.imp-bad{ background:rgba(180,35,24,.08); border-color:rgba(180,35,24,.3); }
.imp-foot{ display:flex; justify-content:flex-end; gap:8px; margin-top:16px; }
.imp-foot .ops-btn[disabled]{ opacity:.55; cursor:not-allowed; }
[data-theme="dark"] .imp-issues{ color:#f0c26a; }
@media (max-width:560px){ .imp-grid{ grid-template-columns:1fr; } .imp-foot .ops-btn{ flex:1; justify-content:center; } }
/* r22: sample data card (Today), banner (Today, when on) and Settings line */
.r22-sample-card{ display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
  margin:0 0 18px; padding:16px 18px; border:1px dashed var(--osp-line, #d9ded9); border-radius:var(--osp-radius, 12px);
  background:var(--osp-card, #fff); }
.r22-sample-body{ flex:1 1 280px; min-width:0; }
.r22-sample-title{ margin:0 0 4px; font-weight:700; font-size:.95rem; color:var(--t1, #1a1f1b); }
.r22-sample-sub{ margin:0; font-size:.82rem; line-height:1.45; color:var(--t3, #5b635d); }
.r22-sample-banner{ display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap;
  margin:0 0 14px; padding:8px 12px; border-radius:10px; font-size:.82rem;
  background:var(--r-info-bg, #eef4ff); color:var(--r-info, #1d4ed8); }
.r22-sample-banner .r22-sample-text{ flex:1 1 240px; min-width:0; }
.r22-sample-line{ display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap;
  margin-top:12px; padding-top:12px; border-top:1px solid var(--osp-line, #e6eae6); font-size:.8rem; color:var(--t3, #5b635d); }
.r22-sample-line .r22-sample-text{ flex:1 1 260px; min-width:0; }
.r22-sample-btn{ white-space:nowrap; }
.r22-sample-btn:disabled{ opacity:.6; cursor:progress; }
/* ── Ask your data (r24 · ask) ── */
#section-ask-data{padding-bottom:0}
.ask24{--a-bg:var(--osp-card,#fff);--a-line:var(--osp-line,#e5e8e2);--a-soft:var(--osp-canvas,#f5f6f3);--a-t1:var(--t1,#1a1f1b);--a-t2:var(--t2,#5b645d);--a-t3:var(--t3,#8a938c);--a-acc:var(--osp-green,#2f5d3a);--a-acc2:#c28a2c;--a-up:#2f6e3c;--a-dn:#b42318;
  display:grid;grid-template-columns:248px minmax(0,1fr);min-height:420px;border:1px solid var(--a-line);border-radius:18px;background:var(--a-bg);overflow:hidden;position:relative;box-shadow:var(--osp-shadow,none)}
[data-theme="dark"] .ask24{--a-acc:#8fd197;--a-acc2:#f0b454;--a-up:#8fd197;--a-dn:#f39a8b}
.ask24-vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ask24-iconbtn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;border:1px solid transparent;background:transparent;color:var(--a-t2);cursor:pointer;flex:none}
.ask24-iconbtn:hover{background:var(--a-soft);color:var(--a-t1)}
.ask24 :focus-visible{outline:2px solid var(--a-acc);outline-offset:2px}

/* chat list */
.ask24-side{border-right:1px solid var(--a-line);background:var(--a-soft);display:flex;flex-direction:column;min-height:0}
.ask24-side-top{display:flex;align-items:center;gap:6px;padding:14px 12px 8px}
.ask24-new{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;border-radius:12px;border:1px solid var(--a-line);background:var(--a-bg);color:var(--a-t1);font:inherit;font-size:.86rem;font-weight:600;cursor:pointer}
.ask24-new:hover{border-color:var(--a-acc)}
.ask24-side-close,.ask24-listbtn,.ask24-scrim{display:none}
.ask24-side-h{font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--a-t3);padding:10px 16px 6px}
.ask24-list{flex:1;overflow-y:auto;padding:0 8px 8px}
.ask24-item{display:flex;align-items:center;border-radius:10px;margin-bottom:2px}
.ask24-item:hover,.ask24-item.on{background:var(--a-bg)}
.ask24-item.on{box-shadow:inset 3px 0 0 var(--a-acc)}
.ask24-item-b{flex:1;min-width:0;text-align:left;border:0;background:transparent;font:inherit;color:var(--a-t1);padding:9px 6px 9px 10px;cursor:pointer;border-radius:10px;display:flex;flex-direction:column;gap:2px}
.ask24-item-t{font-size:.84rem;font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ask24-item-d{font-size:.72rem;color:var(--a-t3)}
.ask24-item-x{width:30px;height:30px;opacity:0;color:var(--a-t3)}
.ask24-item:hover .ask24-item-x,.ask24-item-x:focus-visible,.ask24-item.on .ask24-item-x{opacity:1}
.ask24-item-x:hover{color:var(--a-dn)}
.ask24-side-none,.ask24-side-note{font-size:.78rem;color:var(--a-t3);padding:6px 10px;margin:0;line-height:1.45}
.ask24-side-note{padding:10px 16px 14px;border-top:1px solid var(--a-line)}

/* main */
.ask24-main{display:flex;flex-direction:column;min-width:0;min-height:0}
.ask24-bar{display:flex;align-items:center;gap:10px;padding:12px 18px;border-bottom:1px solid var(--a-line)}
.ask24-title{display:flex;align-items:center;gap:9px;min-width:0;flex:1;font-weight:650;font-size:.95rem;color:var(--a-t1)}
.ask24-title span:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ask24-mark{width:28px;height:28px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--a-acc) 12%,transparent);color:var(--a-acc);flex:none}
.ask24-pickers{display:flex;gap:8px;flex:none}
.ask24-pick select{font:inherit;font-size:.8rem;font-weight:550;color:var(--a-t1);background:var(--a-bg);border:1px solid var(--a-line);border-radius:10px;height:34px;padding:0 28px 0 10px;cursor:pointer;max-width:170px;appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238a938c' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 9px center}
.ask24-scroll{flex:1;overflow-y:auto;min-height:0;scroll-behavior:smooth;position:relative}
.ask24-msgs{max-width:820px;margin:0 auto;padding:22px 22px 12px;display:flex;flex-direction:column;gap:14px}

/* empty state */
.ask24-hello{text-align:center;padding:28px 4px 8px}
.ask24-hello-ic{width:46px;height:46px;margin:0 auto 14px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--a-acc) 12%,transparent);color:var(--a-acc)}
.ask24-hello h2{font-size:1.45rem;font-weight:650;letter-spacing:-.015em;color:var(--a-t1);margin:0 0 8px}
.ask24-hello p{font-size:.9rem;line-height:1.55;color:var(--a-t2);max-width:520px;margin:0 auto 22px}
.ask24-starters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;text-align:left}
.ask24-starter{display:flex;flex-direction:column;gap:4px;padding:13px 15px;border-radius:14px;border:1px solid var(--a-line);background:var(--a-bg);font:inherit;cursor:pointer;color:var(--a-t1);transition:border-color .15s,transform .15s}
.ask24-starter:hover{border-color:var(--a-acc);transform:translateY(-1px)}
.ask24-starter-t{font-size:.87rem;font-weight:600;line-height:1.35}
.ask24-starter-d{font-size:.75rem;color:var(--a-t3)}

/* messages */
.ask24-row{display:flex}
.ask24-row.me{justify-content:flex-end}
.ask24-me{max-width:78%;background:var(--a-acc);color:#fff;padding:10px 14px;border-radius:16px 16px 4px 16px;font-size:.9rem;line-height:1.5;word-wrap:break-word}
[data-theme="dark"] .ask24-me{background:#2f5d3a}
.ask24-bot{max-width:100%;width:100%}
.ask24-card{border:1px solid var(--a-line);border-radius:4px 16px 16px 16px;background:var(--a-bg);padding:16px 18px 12px}
.ask24-sum{font-size:1.08rem;font-weight:600;line-height:1.45;letter-spacing:-.005em;color:var(--a-t1);margin:0 0 10px}
.ask24-md{font-size:.88rem;line-height:1.6;color:var(--a-t1)}
.ask24-md p{margin:0 0 8px}
.ask24-md ul{margin:0 0 8px;padding-left:18px}
.ask24-md li{margin:2px 0}
.ask24-md li::marker{color:var(--a-t3)}
.ask24-thinking{display:inline-flex;align-items:center;gap:10px;width:auto;padding:12px 16px;border-radius:4px 16px 16px 16px;border:1px solid var(--a-line);background:var(--a-bg);color:var(--a-t2);font-size:.86rem}
.ask24-dots{display:inline-flex;gap:4px}
.ask24-dots i{width:6px;height:6px;border-radius:50%;background:var(--a-acc);opacity:.35;animation:ask24b 1.2s infinite ease-in-out}
.ask24-dots i:nth-child(2){animation-delay:.15s}.ask24-dots i:nth-child(3){animation-delay:.3s}
@keyframes ask24b{0%,80%,100%{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}
@media (prefers-reduced-motion:reduce){.ask24-dots i{animation:none;opacity:.7}.ask24-starter:hover{transform:none}}
.ask24-err{border:1px solid color-mix(in srgb,var(--a-dn) 35%,transparent);background:color-mix(in srgb,var(--a-dn) 6%,var(--a-bg));border-radius:4px 16px 16px 16px;padding:12px 16px;font-size:.86rem;color:var(--a-dn)}
.ask24-err.soft{border-color:var(--a-line);background:var(--a-bg);color:var(--a-t2)}
.ask24-err p{margin:0 0 8px}

/* blocks */
.ask24-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;margin:4px 0 12px}
.ask24-kpi{border:1px solid var(--a-line);border-radius:12px;padding:10px 12px;background:var(--a-soft)}
.ask24-kpi-l{font-size:.72rem;font-weight:600;color:var(--a-t2);line-height:1.3}
.ask24-kpi-v{font-size:1.3rem;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--a-t1);margin-top:3px;line-height:1.15}
.ask24-kpi-d{font-size:.74rem;font-weight:600;color:var(--a-t2);margin-top:3px}
.ask24-kpi-d.up{color:var(--a-up)}.ask24-kpi-d.down{color:var(--a-dn)}
.ask24-chart{margin:6px 0 12px;padding:0}
.ask24-chart figcaption,.ask24-tbl-t,.ask24-acts-h{font-size:.76rem;font-weight:700;color:var(--a-t2);margin-bottom:6px}
.ask24-chart-c{min-height:40px}
.ask24-svg{display:block;max-width:100%;height:auto;overflow:visible}
.ask24-svg .gl{stroke:var(--a-line);stroke-width:1}
.ask24-svg .ax0{stroke:var(--a-t3);stroke-width:1;opacity:.6}
.ask24-svg text{font-family:inherit;font-size:11px;fill:var(--a-t3);font-variant-numeric:tabular-nums}
.ask24-svg .yl{text-anchor:end}.ask24-svg .xl{text-anchor:middle}
.ask24-svg .bar.s0{fill:var(--a-acc)}.ask24-svg .bar.s1{fill:var(--a-acc2)}
.ask24-svg .bar.neg{fill:var(--a-dn)}
.ask24-svg .bar:hover{opacity:.82}
.ask24-svg .ln{fill:none;stroke-width:2.2;stroke-linejoin:round;stroke-linecap:round}
.ask24-svg .ln.s0{stroke:var(--a-acc)}.ask24-svg .ln.s1{stroke:var(--a-acc2)}
.ask24-svg .area{fill:var(--a-acc);opacity:.08}
.ask24-svg .dt{stroke:var(--a-bg);stroke-width:1.5}.ask24-svg .dt.s0{fill:var(--a-acc)}.ask24-svg .dt.s1{fill:var(--a-acc2)}
.ask24-legend{display:flex;gap:14px;font-size:.74rem;color:var(--a-t2);margin-top:4px}
.ask24-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.ask24-legend i.s0{background:var(--a-acc)}.ask24-legend i.s1{background:var(--a-acc2)}
.ask24-tbl{margin:4px 0 12px}
.ask24-tbl-w{overflow-x:auto;border:1px solid var(--a-line);border-radius:12px}
.ask24-tbl table{width:100%;border-collapse:collapse;font-size:.82rem}
.ask24-tbl th{font-size:.72rem;font-weight:700;color:var(--a-t2);text-align:left;padding:8px 12px;background:var(--a-soft);border-bottom:1px solid var(--a-line);white-space:nowrap}
.ask24-tbl td{padding:8px 12px;border-bottom:1px solid var(--a-line);color:var(--a-t1)}
.ask24-tbl tr:last-child td{border-bottom:0}
.ask24-tbl .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.ask24-acts{margin:6px 0 8px}
.ask24-act{display:flex;align-items:flex-start;gap:10px;width:100%;text-align:left;padding:10px 12px;border:1px solid var(--a-line);border-radius:12px;background:transparent;font:inherit;color:var(--a-t1);margin-bottom:6px}
.ask24-act.link{cursor:pointer}
.ask24-act.link:hover{border-color:var(--a-acc);background:color-mix(in srgb,var(--a-acc) 5%,transparent)}
.ask24-act-ic{width:26px;height:26px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--a-acc) 12%,transparent);color:var(--a-acc);flex:none;margin-top:1px}
.ask24-act-b{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.ask24-act-t{font-size:.86rem;font-weight:650;line-height:1.35}
.ask24-act-w{font-size:.78rem;color:var(--a-t2);line-height:1.45}
.ask24-act-go{font-size:.76rem;font-weight:650;color:var(--a-acc);align-self:center;flex:none}
.ask24-foot{display:flex;align-items:flex-end;gap:10px;margin-top:8px;padding-top:10px;border-top:1px solid var(--a-line)}
.ask24-src{flex:1;font-size:.72rem;color:var(--a-t3);line-height:1.5}
.ask24-src span:first-child{font-weight:650}
.ask24-dot{font-weight:400!important}
.ask24-copy{width:30px;height:30px}
.ask24-copy.done{color:var(--a-up)}
.ask24-row.fu{margin-top:-6px}
.ask24-fu{display:flex;flex-wrap:wrap;gap:7px}
.ask24-chip{display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:.78rem;font-weight:550;line-height:1.3;text-align:left;padding:7px 12px;border-radius:999px;border:1px solid var(--a-line);background:var(--a-bg);color:var(--a-t1);cursor:pointer}
.ask24-chip:hover{border-color:var(--a-acc);color:var(--a-acc)}

/* composer */
.ask24-composer{display:flex;align-items:flex-end;gap:8px;max-width:820px;width:calc(100% - 44px);margin:0 auto;padding:8px 8px 8px 16px;border:1px solid var(--a-line);border-radius:16px;background:var(--a-bg);box-shadow:0 4px 18px -8px rgba(20,32,22,.18)}
.ask24-composer:focus-within{border-color:var(--a-acc)}
.ask24-composer textarea{flex:1;border:0;outline:none;resize:none;background:transparent;font:inherit;font-size:.92rem;line-height:1.45;color:var(--a-t1);padding:8px 0;max-height:160px;min-height:22px}
.ask24-composer textarea:focus-visible{outline:none}
.ask24-send{width:40px;height:40px;border-radius:12px;border:0;background:var(--a-acc);color:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex:none}
[data-theme="dark"] .ask24-send{background:#3f7a4b}
.ask24-send.stop{background:var(--a-t1);color:var(--a-bg)}
.ask24-hint{font-size:.7rem;color:var(--a-t3);text-align:center;margin:6px 0 10px}

/* phone */
@media (max-width:768px){
  .ask24{grid-template-columns:minmax(0,1fr);border-radius:14px;border-left:0;border-right:0;margin:0 -2px}
  .ask24-side{position:absolute;inset:0 auto 0 0;width:min(300px,86%);z-index:5;transform:translateX(-104%);transition:transform .2s ease;box-shadow:8px 0 24px -12px rgba(0,0,0,.3)}
  .ask24.list-open .ask24-side{transform:none}
  .ask24.list-open .ask24-scrim{display:block;position:absolute;inset:0;background:rgba(0,0,0,.28);z-index:4}
  .ask24-side-close,.ask24-listbtn{display:inline-flex}
  .ask24-item-x{opacity:1}
  .ask24-bar{padding:10px 10px;gap:6px;flex-wrap:wrap}
  .ask24-title{font-size:.9rem}
  .ask24-mark{display:none}
  .ask24-pickers{width:100%;order:3}
  .ask24-pick{flex:1;min-width:0}
  .ask24-pick select{width:100%;max-width:none}
  .ask24-msgs{padding:14px 12px 10px}
  .ask24-starters{grid-template-columns:minmax(0,1fr)}
  .ask24-hello{padding-top:12px}
  .ask24-hello h2{font-size:1.2rem}
  .ask24-me{max-width:88%}
  .ask24-card{padding:14px 14px 10px}
  .ask24-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ask24-composer{width:calc(100% - 20px)}
  .ask24-hint{display:none}
  .ask24-composer{margin-bottom:10px}
  .ask24-composer textarea{font-size:16px}
}
/* r25 bill25 — Settings → Brands & Billing (plan, usage, payment, invoices, billing details) */
.b25-host .b25-h{margin:18px 0 10px}
.b25-sum{margin-bottom:4px}
.b25-sum-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}
.b25-plan-name{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:6px;font-size:1.15rem;font-weight:800;color:var(--t1)}
.b25-pill{font-size:.68rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;border:1px solid currentColor;border-radius:999px;padding:2px 8px}
.b25-pill-green{color:var(--green,#57a15f)}.b25-pill-amber{color:var(--amber,#b07800)}.b25-pill-red{color:var(--red,#c0392b)}.b25-pill-grey{color:var(--t2)}
.b25-acts{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.b25-acts .btn svg{vertical-align:-2px;margin-left:2px}
.b25-link-danger{background:none;border:1px solid transparent;color:var(--red,#c0392b)}
.b25-link-danger:hover,.b25-link-danger:focus-visible{border-color:rgba(192,57,43,.35);background:rgba(192,57,43,.06)}
.b25-dl{margin:14px 0 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:0 24px}
.b25-row{display:flex;flex-direction:column;gap:2px;padding:10px 0;border-top:1px solid var(--border)}
.b25-row dt{font-size:.72rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--t3)}
.b25-row dd{margin:0;font-size:.88rem;color:var(--t1);line-height:1.45}
.b25-muted{color:var(--t3);font-size:.8rem}
.b25-foot{font-size:.76rem;color:var(--t3);margin-top:12px;padding-top:12px;border-top:1px solid var(--border);line-height:1.5}
.b25-note{font-size:.8rem;line-height:1.5;color:var(--t2);background:var(--bg2,#f6f5f1);border:1px solid var(--border);border-radius:10px;padding:9px 12px;margin-top:12px}
.b25-note-amber{background:#fff7ea;border-color:rgba(201,138,0,.35);color:#5a4205}
.b25-err{color:var(--red,#c0392b);font-size:.8rem;margin-top:6px}
.b25-err:empty{display:none}
.b25-loading{padding:14px 2px}
.b25-period{font-size:.8rem;color:var(--t2);margin-bottom:12px}
.b25-meters{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.b25-meter{border:1px solid var(--border);border-radius:12px;padding:12px}
.b25-meter-top{display:flex;align-items:center;gap:8px}
.b25-meter-top b{font-size:.86rem;color:var(--t1)}
.b25-meter-ic{display:flex;color:var(--t2)}
.b25-meter-num{margin-left:auto;font-weight:700;font-size:.9rem;color:var(--t1);white-space:nowrap}
.b25-bar{height:8px;border-radius:99px;background:var(--bg2,#efeee9);overflow:hidden;margin:10px 0 6px}
.b25-bar i{display:block;height:100%;border-radius:99px;background:var(--green,#57a15f)}
.b25-warn .b25-bar i{background:var(--amber,#c98a00)}
.b25-full .b25-bar i{background:var(--red,#c0392b)}
.b25-meter-sub{font-size:.76rem;color:var(--t2)}
.b25-fine{font-size:.76rem;color:var(--t3);margin-top:10px;line-height:1.5}
.b25-mode{border:1px solid var(--border);border-radius:12px;padding:10px 12px 6px;margin:14px 0 0}
.b25-mode legend{font-size:.78rem;font-weight:700;color:var(--t1);padding:0 4px}
.b25-mode label{display:flex;gap:10px;align-items:flex-start;padding:6px 0;cursor:pointer}
.b25-mode input{margin-top:3px;flex:none;width:18px;height:18px}
.b25-mode span{display:flex;flex-direction:column;font-size:.84rem;color:var(--t1)}
.b25-mode em{font-style:normal;font-size:.78rem;color:var(--t2);line-height:1.45}
.b25-subh{font-size:.78rem;font-weight:700;color:var(--t1);margin:16px 0 6px}
.b25-two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:0 16px}
.b25-two>div,.b25-meters>div{min-width:0}
.b25-empty-state{display:flex;align-items:center;gap:10px;color:var(--t2);font-size:.84rem;padding:6px 0}
.b25-empty-state svg{flex:none;color:var(--t3)}
.b25-pm{display:flex;align-items:center;gap:12px}
.b25-pm>svg{flex:none;color:var(--t2)}
.b25-pm>div{flex:1;font-size:.88rem;color:var(--t1)}
.b25-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.b25-table{width:100%;border-collapse:collapse;font-size:.82rem}
.b25-table th{text-align:left;font-size:.7rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--t3);padding:6px 8px;border-bottom:1px solid var(--border);white-space:nowrap}
.b25-table td{padding:8px;border-bottom:1px solid var(--border);color:var(--t1);white-space:nowrap}
.b25-table .num{text-align:right}
.b25-links{display:flex;gap:12px;justify-content:flex-end}
.b25-links a{display:inline-flex;align-items:center;gap:4px;color:var(--green,#2f6e3c);font-weight:600;text-decoration:none;min-height:32px}
.b25-links a:hover,.b25-links a:focus-visible{text-decoration:underline}
.b25-inv-st{font-size:.72rem;font-weight:700;border-radius:99px;padding:2px 8px;background:var(--bg2,#f1f0ec);color:var(--t2)}
.b25-inv-paid{background:rgba(87,161,95,.14);color:#2f6e3c}
.b25-inv-open{background:rgba(201,138,0,.14);color:#7a5600}
.b25-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.b25-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px}
.b25-f{display:flex;flex-direction:column;gap:4px;font-size:.78rem;font-weight:600;color:var(--t2)}
.b25-f .form-input{width:100%;box-sizing:border-box;min-height:40px}
.b25-form-foot{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px}
.b25-strip .b25-x{background:none;border:0;padding:6px;cursor:pointer;color:inherit;display:inline-flex;border-radius:8px;min-width:32px;min-height:32px;align-items:center;justify-content:center}
.b25-strip .b25-x:focus-visible{outline:2px solid currentColor}
@media (max-width:760px){
  .b25-two{grid-template-columns:minmax(0,1fr)}
  .b25-grid{grid-template-columns:1fr}
  .b25-acts{width:100%}
  .b25-acts .btn{flex:1 1 auto;min-height:40px}
  .b25-dl{grid-template-columns:1fr}
  .b25-links{justify-content:flex-start}
}
/* ── r25 email25 — Campaigns channels, Automations tabs, do-not-email picker, Sending setup ── */
:root{ --e25-email:#2563a8; --e25-email-bg:rgba(37,99,168,.10); --e25-sms:#7a3fb0; --e25-sms-bg:rgba(122,63,176,.10); }
[data-theme="dark"]{ --e25-email:#7fb2ea; --e25-email-bg:rgba(127,178,234,.14); --e25-sms:#c79bf0; --e25-sms-bg:rgba(199,155,240,.14); }
.e25-ic{ flex:0 0 auto; vertical-align:-3px; }
.e25-sr{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

/* channel badge */
.e25-chan{ display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px; border-radius:9px; flex:0 0 auto; }
.e25-chan.e25-email{ color:var(--e25-email); background:var(--e25-email-bg); }
.e25-chan.e25-sms{ color:var(--e25-sms); background:var(--e25-sms-bg); }
.e25-cell{ display:flex; gap:10px; align-items:flex-start; min-width:0; }
.e25-cell > div{ min-width:0; }
.e25-row-email > td:first-child{ box-shadow:inset 3px 0 0 var(--e25-email); }
.e25-row-sms > td:first-child{ box-shadow:inset 3px 0 0 var(--e25-sms); }
.e25-nt{ color:var(--t3, #8a8f87); cursor:help; }
.e25-foot{ margin-top:8px; }

/* Email / Texts / other tools views */
.e25-views{ display:flex; gap:8px; flex-wrap:wrap; margin:4px 0 14px; }
.e25-view{ display:inline-flex; align-items:center; gap:7px; min-height:40px; padding:7px 14px; border-radius:999px; border:1px solid var(--osp-line, #e5e8e2); background:var(--mk-card, #fff); color:var(--t2); font:inherit; font-size:.86rem; font-weight:650; cursor:pointer; }
.e25-view:hover{ color:var(--t1); }
.e25-view:focus-visible{ outline:2px solid var(--osp-green, #2f5d3a); outline-offset:2px; }
.e25-cnt{ min-width:22px; padding:1px 7px; border-radius:999px; background:var(--osp-head, rgba(0,0,0,.05)); font-size:.76rem; text-align:center; }
.e25-v-email.on{ color:var(--e25-email); border-color:var(--e25-email); background:var(--e25-email-bg); }
.e25-v-sms.on{ color:var(--e25-sms); border-color:var(--e25-sms); background:var(--e25-sms-bg); }
.e25-v-other.on{ color:var(--t1); border-color:var(--t2); background:var(--osp-head, rgba(0,0,0,.04)); }
.e25-v-email.on .e25-cnt{ background:var(--e25-email); color:#fff; }
.e25-v-sms.on .e25-cnt{ background:var(--e25-sms); color:#fff; }
[data-theme="dark"] .e25-v-email.on .e25-cnt, [data-theme="dark"] .e25-v-sms.on .e25-cnt{ color:#111; }
.e25-camp .mk-actions .btn{ display:inline-flex; align-items:center; gap:6px; }
#mk-modal.e25-start-sms .mk-modal-h h3, #mk-modal.e25-start-email .mk-modal-h h3, .mk-modal-h h3 .e25-chan{ display:inline-flex; align-items:center; gap:8px; }

/* phone-shaped text preview */
.e25-prev-wrap{ background:none !important; padding:0 !important; min-height:0 !important; }
.e25-phone{ width:100%; max-width:300px; margin:0 auto; border-radius:34px; border:10px solid #1d1f1c; background:#fff; color:#111; overflow:hidden; box-shadow:0 10px 30px rgba(0,0,0,.18); font-family:-apple-system, "Helvetica Neue", Arial, sans-serif; }
.e25-ph-top{ height:22px; display:flex; justify-content:center; background:#f6f6f8; }
.e25-ph-notch{ width:90px; height:16px; background:#1d1f1c; border-radius:0 0 12px 12px; }
.e25-ph-head{ display:flex; flex-direction:column; align-items:center; gap:2px; padding:6px 10px 10px; background:#f6f6f8; border-bottom:1px solid #e3e3e8; font-size:.8rem; }
.e25-ph-av{ width:34px; height:34px; border-radius:50%; background:#9aa0a6; color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; }
.e25-ph-sub{ color:#8a8a8e; font-size:.68rem; }
.e25-ph-body{ padding:14px 12px 18px; min-height:170px; display:flex; flex-direction:column; align-items:flex-start; gap:6px; background:#fff; }
.e25-ph-img{ max-width:78%; max-height:140px; border-radius:16px; object-fit:cover; }
.e25-ph-bubble{ background:#e9e9eb; color:#111; border-radius:18px 18px 18px 5px; padding:9px 13px; font-size:.86rem; line-height:1.38; max-width:86%; overflow-wrap:anywhere; }
.e25-ph-bar{ margin:0 10px 12px; padding:7px 12px; border:1px solid #d9d9de; border-radius:999px; color:#a0a0a5; font-size:.75rem; }
.e25-segs{ display:flex; justify-content:center; gap:14px; flex-wrap:wrap; margin:12px 0 6px; font-size:.8rem; color:var(--t2); }
.e25-seg-n b{ color:var(--t1); font-size:.95rem; }
.e25-seg-bar{ display:flex; gap:4px; justify-content:center; margin:0 0 6px; }
.e25-seg-bar i{ width:26px; height:5px; border-radius:3px; background:var(--osp-line, #e5e8e2); }
.e25-seg-bar i.on{ background:var(--e25-sms); }
.e25-seg-h{ text-align:center; max-width:340px; margin:0 auto; }

/* Automations sub-tabs, Sending setup sections */
.e25-subtabs button, .e25-send-tabs button{ display:inline-flex; align-items:center; gap:7px; min-height:40px; }
.e25-subtabs button:focus-visible, .e25-send-tabs button:focus-visible{ outline:2px solid var(--osp-green, #2f5d3a); outline-offset:-2px; }

body.osp-v2 #section-mkt-sending.e25-send > .mk-card, #section-mkt-sending.e25-send .mk-card{ max-width:none; }
#section-mkt-sending.e25-send > .r-idx{ display:none !important; }
.e25-pane-sender:not([hidden]), .e25-pane-texting:not([hidden]){ display:grid; grid-template-columns:repeat(auto-fill, minmax(min(100%, 460px), 1fr)); gap:16px; align-items:start; }
.e25-pane-sender > .mk-card, .e25-pane-texting > .mk-card{ margin:0 !important; min-width:0; }
.e25-pane .mk-grid3{ grid-template-columns:repeat(auto-fit, minmax(min(100%, 180px), 1fr)); }
.e25-pane .mk-grid2{ grid-template-columns:repeat(auto-fit, minmax(min(100%, 240px), 1fr)); }
.e25-h-part{ margin:0 0 22px; }
.e25-h3{ display:flex; align-items:center; gap:8px; font-size:1rem; margin:6px 0 10px; }
.e25-link-card{ border-style:dashed; }

/* do-not-email guest picker */
.e25-gsearch{ position:relative; }
.e25-gsearch > .e25-ic{ position:absolute; left:11px; top:50%; transform:translateY(-50%); color:var(--t3, #8a8f87); pointer-events:none; }
.e25-gsearch input{ padding-left:34px; }
.e25-gres{ display:flex; flex-direction:column; gap:4px; max-height:280px; overflow:auto; margin:4px 0 8px; }
.e25-gres:empty{ display:none; }
.e25-gopt{ display:flex; align-items:center; gap:10px; width:100%; min-height:44px; padding:7px 10px; border:1px solid var(--osp-line, #e5e8e2); border-radius:10px; background:var(--mk-card, #fff); color:var(--t1); font:inherit; text-align:left; cursor:pointer; }
.e25-gopt:hover:not([disabled]){ border-color:var(--osp-green, #2f5d3a); }
.e25-gopt:focus-visible{ outline:2px solid var(--osp-green, #2f5d3a); outline-offset:1px; }
.e25-gopt.on{ border-color:var(--osp-green, #2f5d3a); background:rgba(47,93,58,.08); }
.e25-gopt[disabled]{ opacity:.55; cursor:not-allowed; }
.e25-gav{ width:28px; height:28px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:var(--osp-head, rgba(0,0,0,.05)); color:var(--t2); flex:0 0 auto; }
.e25-gtx{ display:flex; flex-direction:column; min-width:0; flex:1; }
.e25-gtx .mk-sub{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.e25-gst{ font-size:.75rem; font-weight:650; color:var(--t2); flex:0 0 auto; }
.e25-gopt.on .e25-gst{ color:var(--osp-green, #2f5d3a); }
.e25-chips{ display:flex; flex-wrap:wrap; gap:6px; align-items:center; margin:0 0 10px; }
.e25-chips > .mk-hint{ width:100%; margin:0; }
.e25-chip{ display:inline-flex; align-items:center; gap:4px; max-width:100%; padding:4px 4px 4px 11px; border-radius:999px; background:rgba(47,93,58,.10); color:var(--t1); font-size:.8rem; font-weight:600; }
.e25-chip > span{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.e25-chip-e{ font-weight:400; color:var(--t2); }
.e25-chip button{ display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px; border:0; border-radius:50%; background:none; color:var(--t2); cursor:pointer; flex:0 0 auto; }
.e25-chip button:hover, .e25-chip button:focus-visible{ background:rgba(0,0,0,.08); color:var(--t1); outline:none; }
.e25-other{ margin-top:14px; border-top:1px solid var(--osp-line, #e5e8e2); padding-top:10px; }
.e25-other summary{ cursor:pointer; font-weight:650; font-size:.86rem; color:var(--t2); min-height:32px; display:flex; align-items:center; }
.e25-other[open] summary{ margin-bottom:6px; }

@media (max-width:760px){
  .e25-views{ gap:6px; }
  .e25-view{ padding:6px 11px; font-size:.82rem; }
  .e25-v-other{ flex:1 1 100%; justify-content:center; }
  .e25-camp .mk-head .mk-actions{ display:flex; gap:8px; flex-wrap:wrap; }
  .e25-camp .mk-head .mk-actions .btn{ flex:1 1 0; justify-content:center; }
  .e25-send-tabs, .e25-subtabs{ margin-left:-4px; margin-right:-4px; }
  .e25-send-tabs button, .e25-subtabs button{ padding:8px 10px; font-size:.82rem; }
  .e25-phone{ max-width:260px; }
  .e25-cell{ gap:8px; }
  .e25-chan{ width:26px; height:26px; }
}
/* r29 fix29 (2026-09-28): phone pass follow-ups */

/* ── Schedule: one day at a time on phones ── */
.fix29-sd{ display:none; }
.fix29-cl, .fix29-oll{ display:none; }
label.fix29-olw{ display:contents; }
.fix29-cp-hint{ display:none; }
@media (max-width:760px){
  .fix29-sd{ display:block; margin:0 0 12px; }
  .fix29-sd[hidden]{ display:none; }
  .fix29-sd-top{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:10px; }
  .fix29-seg{ display:inline-flex; border:1px solid var(--border); border-radius:10px; overflow:hidden; background:var(--glass,#fff); flex:none; }
  .fix29-seg button{ min-height:40px; min-width:64px; padding:0 14px; border:0; background:none; font:inherit; font-size:.84rem; font-weight:700; color:var(--t2); cursor:pointer; }
  .fix29-seg button + button{ border-left:1px solid var(--border); }
  .fix29-seg button[aria-pressed="true"]{ background:var(--green,#2f5d3a); color:#fff; }
  .fix29-sd-sum{ font-size:.8rem; color:var(--t2); min-width:0; text-align:center; display:flex; flex-direction:column; line-height:1.3; }
  .fix29-sd-sum b{ color:var(--t1); font-size:.92rem; }
  .fix29-sd-nav{ display:grid; grid-template-columns:44px 1fr 44px; gap:8px; align-items:center; margin-bottom:8px; }
  .fix29-sd-arr{ width:44px; height:44px; display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--border); border-radius:10px; background:var(--glass,#fff); color:var(--t1); cursor:pointer; padding:0; }
  .fix29-strip{ display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:4px; min-width:0; }
  .fix29-dbtn{ min-height:48px; min-width:0; padding:4px 0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1px; border:1px solid var(--border); border-radius:10px; background:var(--glass,#fff); color:var(--t1); font:inherit; cursor:pointer; line-height:1.1; }
  .fix29-dbtn .fix29-dw{ font-size:.62rem; font-weight:700; text-transform:uppercase; letter-spacing:.02em; color:var(--t3); }
  .fix29-dbtn .fix29-dn{ font-size:.92rem; font-weight:800; }
  .fix29-dbtn .fix29-dc{ font-size:.6rem; font-weight:700; color:var(--green,#2f5d3a); min-height:.7rem; }
  .fix29-dbtn.today{ border-color:var(--green,#2f5d3a); }
  .fix29-dbtn.on{ background:var(--green,#2f5d3a); border-color:var(--green,#2f5d3a); color:#fff; }
  .fix29-dbtn.on .fix29-dw, .fix29-dbtn.on .fix29-dc{ color:#fff; }
  .fix29-sd-tip{ font-size:.72rem; color:var(--t3); margin:6px 0 0; }
  #sched-grid.fix29-day{ grid-template-columns:1fr !important; overflow-x:visible !important; touch-action:pan-y; }
  #sched-grid.fix29-day > :not(.fix29-on){ display:none !important; }
  #sched-grid.fix29-day > .fix29-on{ min-height:180px; }

  /* tap targets: week arrows, Tasks refresh / save view, two text links on Brands & Billing */
  #section-ops-schedule button[onclick^="schedWeek(-1)"], #section-ops-schedule button[onclick^="schedWeek(1)"]{ min-width:40px; min-height:40px; }
  #tasks-refresh-btn, #tasks-saveview-btn{ min-width:40px; width:auto; min-height:40px; height:40px; justify-content:center; }
  #section-settings .sqloc-empty a, #section-settings a[href="mailto:hello@ospelia.com"]{ padding:12px 0; }
}

/* ── Limited staff: schedule-building tools hidden too (the database blocks them anyway) ── */
body.sec24-sched-ro #section-ops-schedule [onclick^="opsA24_copyLastWeek"],
body.sec24-sched-ro #section-ops-schedule [onclick^="opsA24_templates"]{ display:none !important; }

/* ── Invoice + order lines: labels over each box on phones ── */
@media (max-width:640px){
  .ops24-ivt .fix29-cl{ display:block; font-size:.66rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--t3); margin:0 0 2px; }
  label.fix29-olw{ display:flex; flex-direction:column; gap:2px; min-width:0; }
  .fix29-oll{ display:block; font-size:.66rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--t3); }
  .ops24-ordline .fix29-olw-n{ grid-column:1/4; grid-row:1; }
  .ops24-ordline .fix29-olw-q{ grid-column:1; grid-row:2; }
  .ops24-ordline .fix29-olw-u{ grid-column:2; grid-row:2; }
  .ops24-ordline .fix29-olw-c{ grid-column:3/5; grid-row:2; }
  .ops24-ordline > button{ align-self:end; min-width:32px; }
}

/* ── Catering pipeline: fade + hint on phones ── */
@media (max-width:768px){
  .fix29-cp-hint{ display:flex; align-items:center; gap:6px; font-size:.74rem; color:var(--t3); margin:0 0 6px; }
  .fix29-cp-hint[hidden]{ display:none; }
  .fix29-cp-hint svg{ flex:none; }
  .cp-board.fix29-cp.fix29-cp-over:not(.fix29-cp-end){ -webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 36px),transparent); mask-image:linear-gradient(90deg,#000 calc(100% - 36px),transparent); }
}

/* ── Goal dialog close button ── */
.fix29-gm{ position:relative; }
.fix29-gm-x{ position:absolute; top:12px; right:12px; width:40px; height:40px; display:inline-flex; align-items:center; justify-content:center; border:1px solid transparent; border-radius:10px; background:none; color:var(--t2); cursor:pointer; }
.fix29-gm-x:hover{ background:var(--glass2,rgba(0,0,0,.05)); color:var(--t1); }
.fix29-gm-x:focus-visible{ outline:2px solid var(--green,#2f5d3a); outline-offset:2px; }
.fix29-gm h3{ padding-right:44px; }
/* r24 guest1 — reservations settings, Today's book, Kitchen screen, orders/payments/online menu bits */
.g1-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.g1-hint{font-size:.78rem;color:var(--t3);margin:4px 0 10px;line-height:1.45}
.g1-seg{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px;margin:0 0 12px}
.g1-opt{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--border);border-radius:12px;padding:12px;cursor:pointer;background:var(--glass)}
.g1-opt.on{border-color:var(--osp-green-2,#57a15f);box-shadow:0 0 0 1px var(--osp-green-2,#57a15f) inset}
.g1-opt input{margin-top:3px;width:18px;height:18px;accent-color:var(--osp-green,#2f5d3a)}
.g1-opt b{display:block;color:var(--t1)}.g1-opt small{display:block;color:var(--t3);font-size:.78rem;margin-top:2px}
.g1-row{display:flex;gap:12px;flex-wrap:wrap}.g1-row .form-group{flex:1 1 150px;min-width:0}
.g1-tbl{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:8px}
.g1-tbl input:first-of-type{flex:1 1 160px;min-width:0}.g1-n{width:84px!important;flex:none}
.g1-lbl{font-size:.78rem;color:var(--t2)}
.g1-icon{display:inline-flex;align-items:center;justify-content:center;min-width:36px;min-height:36px}
.g1-chk{display:flex;gap:8px;align-items:flex-start;font-size:.85rem;color:var(--t2);margin:8px 0;cursor:pointer;line-height:1.4}
.g1-chk input{margin-top:2px;width:16px;height:16px;flex:none}
.g1-chip{display:inline-flex;align-items:center;font-size:.72rem;font-weight:700;border-radius:99px;padding:2px 9px;background:var(--glass2,rgba(0,0,0,.05));color:var(--t2);border:1px solid var(--border);white-space:nowrap}
.g1-chip.ok{background:var(--r-ok-bg);color:var(--r-ok);border-color:transparent}.g1-chip.bad{background:var(--r-bad-bg);color:var(--r-bad);border-color:transparent}.g1-chip.warn{background:var(--r-warn-bg);color:var(--r-warn);border-color:transparent}
.g1-bkrow{background:var(--glass);border:1px solid var(--border);border-radius:12px;padding:13px 15px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.g1-bkrow svg{vertical-align:-2px}
/* Today's book */
.g1-bk-top{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:10px}
.g1-daynav{display:flex;gap:6px;align-items:center}.g1-daynav input{max-width:170px}
.g1-stats{display:flex;gap:14px;flex-wrap:wrap;font-size:.85rem;color:var(--t2)}.g1-stats b{color:var(--t1);font-size:1.05rem}
.g1-h{font-size:1rem;font-weight:800;color:var(--t1);margin:6px 0 10px}.g1-h4{font-size:.9rem;font-weight:800;color:var(--t1);margin:16px 0 8px}
.g1-bk-list{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:8px}
.g1-bk-li{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:12px;align-items:center;background:var(--glass);border:1px solid var(--border);border-radius:12px;padding:12px 14px}
.g1-bk-li.st-seated,.g1-bk-li.st-completed{border-left:4px solid var(--r-ok)}.g1-bk-li.st-no_show{border-left:4px solid var(--r-bad)}.g1-bk-li.st-waitlist,.g1-bk-li.st-pending_payment{border-left:4px solid var(--r-warn)}
.g1-bk-t{font-weight:800;font-size:1.05rem;color:var(--t1);font-variant-numeric:tabular-nums}
.g1-bk-n{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.g1-bk-n b{color:var(--t1)}
.g1-bk-s{font-size:.8rem;color:var(--t2);margin-top:3px;overflow-wrap:anywhere}.g1-bk-s a{color:inherit}
.g1-bk-a{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.g1-bk-a .btn{display:inline-flex;align-items:center;gap:5px;min-height:36px}
.g1-party{display:inline-flex;align-items:center;gap:3px;font-weight:700;font-size:.82rem;color:var(--t1);background:var(--glass2,rgba(0,0,0,.05));border-radius:8px;padding:1px 7px}
.g1-tag{font-size:.75rem;color:var(--t2);border:1px dashed var(--border);border-radius:8px;padding:1px 7px}
.g1-gone{opacity:.65;margin-top:10px}
.g1-none{color:var(--t2);font-size:.9rem;padding:26px 12px;text-align:center;line-height:1.6}
@media (max-width:720px){.g1-bk-li{grid-template-columns:58px minmax(0,1fr)}.g1-bk-a{grid-column:1/-1;justify-content:flex-start}}
/* Kitchen */
.g1k-top{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.g1k-top .btn{display:inline-flex;align-items:center;gap:6px;min-height:36px}
.g1k-upd{font-size:.75rem;color:var(--t3)}
.g1k-board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:start}
@media (max-width:1100px){.g1k-board{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.g1k-board{grid-template-columns:1fr}}
.g1k-col{background:var(--glass2,rgba(0,0,0,.03));border:1px solid var(--border);border-radius:14px;padding:10px;min-height:120px}
.g1k-h{display:flex;justify-content:space-between;align-items:center;font-size:.85rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--t2);margin:2px 4px 10px}
.g1k-h span{background:var(--glass);border:1px solid var(--border);border-radius:99px;padding:0 9px;font-size:.8rem;color:var(--t1)}
.g1k-new .g1k-h{color:var(--r-warn)}.g1k-ready .g1k-h{color:var(--r-ok)}
.g1k-card{background:var(--osp-card,#fff);border:1px solid var(--border);border-radius:12px;padding:12px;margin-bottom:10px;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.g1k-card.late{border-color:var(--r-bad);box-shadow:0 0 0 1px var(--r-bad) inset}
.g1k-card header{display:flex;justify-content:space-between;gap:8px;align-items:baseline;flex-wrap:wrap}
.g1k-num{font-size:1.15rem;color:var(--t1);font-variant-numeric:tabular-nums}
.g1k-time{font-weight:700;color:var(--t1);font-size:.9rem;display:inline-flex;gap:5px;align-items:center}.g1k-time small{font-weight:600;color:var(--t3)}
.g1k-card.late .g1k-time small{color:var(--r-bad)}
.g1k-who{font-size:.82rem;color:var(--t2);margin:4px 0 8px}.g1k-who a{color:inherit}
.g1k-items{list-style:none;margin:0 0 8px;padding:8px 0;border-top:1px dashed var(--border);border-bottom:1px dashed var(--border)}
.g1k-items li{display:flex;gap:8px;padding:3px 0;font-size:.95rem;color:var(--t1)}.g1k-items li b{min-width:28px}.g1k-items em{display:block;font-style:normal;font-size:.8rem;color:var(--r-warn);font-weight:600}
.g1k-note{font-size:.82rem;color:var(--t1);background:var(--r-warn-bg);border-radius:8px;padding:6px 8px;margin:0 0 8px}
.g1k-card footer{display:flex;gap:6px;flex-wrap:wrap}.g1k-card footer .btn{display:inline-flex;align-items:center;gap:5px;min-height:38px}
.g1k-card footer .btn-primary{flex:1 1 140px;justify-content:center}
.g1k-nothing{font-size:.8rem;color:var(--t3);text-align:center;margin:18px 0}
/* Sites & Funnels bits */
.g1-dim td{opacity:.65}
.g1-steps{margin:8px 0 12px;padding-left:20px;font-size:.88rem;line-height:1.6}.g1-steps li{margin-bottom:6px}
.g1-copy{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:6px}.g1-copy code{overflow-wrap:anywhere;font-size:.78rem;background:var(--glass2,rgba(0,0,0,.05));padding:6px 8px;border-radius:8px;max-width:100%}
.g1-food-ul{list-style:none;margin:0 0 8px;padding:0}.g1-food-ul li{display:flex;gap:10px;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--border)}
.g1-og{border:1px solid var(--border);border-radius:12px;padding:10px 12px;margin:0 0 10px}
.g1-choice{display:flex;gap:6px;align-items:center;margin-bottom:6px}.g1-choice input:first-of-type{flex:1;min-width:0}
/* r24 guest2: Counter, loyalty extras, reviews inbox, segment rules */
.g2c{display:grid;gap:14px;max-width:760px}
.g2c-scan label{display:block;font-weight:650;margin-bottom:6px}
.g2c-row{display:flex;gap:8px;flex-wrap:wrap;align-items:stretch}
.g2c-row .form-input{flex:1 1 220px;min-width:0;font-size:1.15rem;padding:12px 14px}
.g2c-row .btn{min-height:44px}
.g2c-cam{display:inline-flex;align-items:center;gap:6px}
.g2c-video{width:100%;max-width:360px;border-radius:12px;margin-top:10px;background:#000}
.g2c-res h3{margin:0;font-size:1.1rem}
.g2c-res h4{margin:16px 0 6px}
.g2c-who{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.g2c-ic{width:40px;height:40px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;background:var(--bg3,#f1f2ee);color:var(--t1);flex:none}
.g2c-bal{margin:14px 0 6px}
.g2c-pts{font-size:2.1rem;font-weight:800;line-height:1.1;color:var(--t1)}
.g2c-rw{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-top:1px solid var(--border)}
.g2c-rw .btn{min-height:40px;min-width:92px}
.g2c-confirm{margin-top:10px;padding:12px 14px;border:1px solid var(--green,#2f5d3a);border-radius:12px;background:var(--bg2)}
.g2c-list{list-style:none;margin:0;padding:0}
.g2c-list li{padding:7px 0;border-top:1px solid var(--border);font-size:.86rem}
.g2c-list li:first-child{border-top:0}
.g2-loy{margin-top:0}
.g2-kiosk{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 0;border-top:1px solid var(--border)}
.g2-kiosk .mk-sub svg{vertical-align:-3px}
.g2-pin{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.g2-pin .form-input{width:120px}
.g2-fb .g2-fb-who{margin:-4px 0 8px}
.g2-fb .btn svg{vertical-align:-3px;margin-right:4px}
.g2-qr{display:flex;gap:14px;align-items:flex-start;flex-wrap:wrap}
.g2-qr #g2-qr-box{background:#fff;padding:8px;border-radius:10px;border:1px solid var(--border);min-width:184px;min-height:184px}
.g2-qr > div:last-child{flex:1 1 220px;min-width:0}
.g2-prev{width:100%;height:60vh;border:1px solid var(--border);border-radius:10px;background:#fff}
.g2-sx{border:1px solid var(--border);border-radius:12px;padding:10px 14px 4px;margin:12px 0}
.g2-sx legend{font-weight:700;padding:0 6px}
.g2-draft{margin-bottom:4px}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media (max-width:600px){
  .g2c-row .btn{flex:1 1 auto}
  .g2c-rw{flex-wrap:wrap}
  .g2-pin .form-input{width:100%}
}
.g2c-ok{display:flex;gap:8px;align-items:flex-start}.g2c-ok svg{flex:none;margin-top:2px}
/* r25 guest25 (2026-09-26): Guest list audience view + POS loyalty */
.g25-views{ margin:0 0 12px; }
.g25-views button{ display:inline-flex; align-items:center; gap:6px; }
.g25-views svg{ flex:none; }
.g25-subtabs{ margin-top:-4px; }
.g25-subtabs button{ font-size:.8rem; padding:6px 10px; }
.g25-bars td{ vertical-align:middle; }
.g25-barc{ width:38%; }
.g25-cols{ display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:2px; align-items:end; height:150px; margin:8px 0 4px; }
.g25-col{ display:flex; flex-direction:column; justify-content:flex-end; align-items:center; height:100%; min-width:0; border-radius:4px; outline-offset:2px; }
.g25-col i{ display:block; width:min(28px,80%); background:var(--accent,#2f5d3a); border-radius:4px 4px 0 0; }
.g25-col:hover i, .g25-col:focus i{ opacity:.8; }
.g25-colv{ font-size:.68rem; color:var(--t2); font-variant-numeric:tabular-nums; margin-bottom:2px; white-space:nowrap; }
.g25-coll{ font-size:.68rem; color:var(--t3); margin-top:4px; white-space:nowrap; border-top:1px solid var(--osp-line,#e5e8e2); width:100%; text-align:center; padding-top:3px; }
.g25-tbl{ margin-top:8px; font-size:.82rem; }
.g25-tbl summary{ cursor:pointer; color:var(--t2); }
.g25-cardh{ display:flex; flex-wrap:wrap; gap:8px 12px; align-items:center; justify-content:space-between; margin-bottom:8px; }
.g25-cardh h4{ margin:0; }
.g25-lsearch{ flex:0 1 280px; min-width:0; }
.g25-lsearch input{ width:100%; }
.mk-card h4 svg{ vertical-align:-3px; margin-right:4px; color:var(--t2); }
.g25-pos{ display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:10px; }
.g25-posi{ border:1px solid var(--osp-line,#e5e8e2); border-radius:12px; padding:10px 12px; }
.g25-posi .mk-sub{ margin-top:4px; }
.g25-kn{ margin-top:10px; flex-wrap:wrap; }
.g25-when{ white-space:nowrap; }
.g25-actl{ list-style:none; margin:0; padding:0; }
.g25-actl li{ display:grid; grid-template-columns:150px minmax(0,180px) minmax(0,1fr); gap:4px 14px; padding:9px 0; border-top:1px solid var(--osp-line-2,#eef0ec); font-size:.88rem; }
.g25-actl li:first-child{ border-top:0; }
@media (max-width:700px){ .g25-actl li{ grid-template-columns:auto minmax(0,1fr); } .g25-actl .g25-what{ grid-column:1 / -1; } }
.g25-pl{ margin:0 0 12px; }
.g25-plrow{ display:flex; flex-wrap:wrap; gap:6px 18px; align-items:baseline; }
.g25-plv{ font-size:1.4rem; font-variant-numeric:tabular-nums; }
.g25-pll{ list-style:none; margin:8px 0 0; padding:0; font-size:.84rem; }
.g25-pll li{ padding:3px 0; border-top:1px solid var(--osp-line-2,#eef0ec); }
#section-mkt-loyalty .mk-head button svg, #section-mkt-loyalty .mk-head .btn span{ vertical-align:middle; }
#section-mkt-loyalty .mk-head .btn svg{ margin-right:4px; }
@media (max-width:700px){
  .g25-cols{ height:120px; }
  .g25-colv{ display:none; }
  .g25-coll{ font-size:.6rem; }
  .g25-barc{ width:30%; }
  .g25-lsearch{ flex:1 1 100%; }
  .g25-views button span{ font-size:.84rem; }
}
.g25-actl a{ color:var(--t1); font-weight:600; text-decoration:none; } .g25-actl a:hover{ text-decoration:underline; }
/* r29 lim29 — "AI allowance used" dialog */
.lim29-wrap .lim29{max-width:460px}
.lim29 .mk-modal-h h3{display:flex;align-items:center;gap:10px;margin:0;font-size:1.05rem}
.lim29-ic{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;flex:none;color:var(--amber,#b07800);background:rgba(201,138,0,.12)}
.lim29 .mk-modal-b p{margin:0 0 10px;line-height:1.5;color:var(--t1)}
.lim29 .lim29-hint{font-size:.86rem;color:var(--t2)}
.lim29-x{display:inline-flex;align-items:center;justify-content:center;min-width:40px;min-height:40px}
.lim29-f{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:14px}
@media (max-width:480px){
  .lim29-wrap .lim29{max-width:none;width:calc(100vw - 24px)}
  .lim29-f .btn{flex:1 1 auto;min-height:44px;justify-content:center;text-align:center}
}
/* r24 (mkt) — email scheduling, results, inbox, imports, texting setup, planner extras */
.mkt24-ic{ display:inline-block; vertical-align:-3px; flex:none; }
.mkt24-acts{ display:flex; gap:6px; justify-content:flex-end; flex-wrap:wrap; }
.mkt24-acts .btn{ display:inline-flex; align-items:center; gap:4px; }
.mkt24-err{ color:var(--red, #b3261e); }
.mkt24-addr{ display:flex; gap:8px; align-items:flex-start; }
.mkt24-archlink a{ display:inline-flex; gap:6px; align-items:center; }
.mkt24-sched{ display:inline-flex; gap:6px; align-items:center; margin-right:auto; }
.mkt24-posx{ margin-top:4px; }
.mkt24-est{ color:var(--t2, #555); }
.mkt24-imp{ display:flex; gap:14px; align-items:center; justify-content:space-between; flex-wrap:wrap; }
.mkt24-imp h4{ margin:0 0 4px; }
.mkt24-choice{ display:grid; gap:8px; margin:10px 0; }
.mkt24-opt{ display:flex; gap:10px; align-items:flex-start; padding:10px 12px; border:1px solid var(--border, #e3e3de); border-radius:12px; cursor:pointer; }
.mkt24-opt:has(input:checked){ border-color:var(--osp-green, #2f5d3a); background:color-mix(in srgb, var(--osp-green, #2f5d3a) 6%, transparent); }
.mkt24-opt input{ margin-top:3px; }
.mkt24-quick{ display:flex; gap:6px; flex-wrap:wrap; margin:2px 0 8px; }
.mkt24-deliv{ margin-top:14px; }
.mkt24-url{ max-width:420px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.mkt24-who{ display:grid; grid-template-columns:repeat(auto-fit, minmax(200px, 1fr)); gap:14px; }
.mkt24-whoh{ display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-bottom:6px; }
.mkt24-whoh .btn{ margin-left:auto; display:inline-flex; gap:4px; align-items:center; }
.mkt24-names{ list-style:none; margin:0; padding:0; font-size:.88rem; line-height:1.7; }
.mkt24-vs > div > b{ display:block; margin-bottom:2px; }
.mkt24-opt[hidden]{ display:none; }
.mkt24-vs p{ margin:0; }
.mkt24-msgstats{ margin-top:14px; }
.mkt24-consent{ border:1px solid var(--border, #e3e3de); border-radius:12px; padding:10px 12px 4px; display:grid; gap:8px; }
.mkt24-consent legend{ padding:0 4px; }
.mkt24-steps{ list-style:none; margin:10px 0 0; padding:0; display:grid; gap:10px; }
.mkt24-steps li{ display:flex; gap:10px; align-items:flex-start; }
.mkt24-stepn{ width:26px; height:26px; flex:none; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; font-weight:700; font-size:.8rem; background:var(--bg2, #f1f1ec); color:var(--t2, #555); }
.mkt24-steps li.ok .mkt24-stepn{ background:var(--osp-green, #2f5d3a); color:#fff; }
.mkt24-steps .mk-ck{ margin-top:4px; font-size:.85rem; }
/* inbox */
.mkib-k .mkt24-ic{ width:15px; height:15px; }
.mk-thread.mkt24-done b{ opacity:.7; }
.mkt24-hbtns{ float:right; display:flex; gap:6px; flex-wrap:wrap; }
.mkt24-tools{ display:flex; gap:6px; flex-wrap:wrap; padding:0 16px 10px; }
.mkt24-tools .btn{ display:inline-flex; gap:4px; align-items:center; }
.mkt24-sr{ margin:0 16px 10px; border:1px solid var(--border, #e3e3de); border-radius:12px; max-height:260px; overflow:auto; background:var(--card, #fff); }
.mkt24-sr button{ display:block; width:100%; text-align:left; background:none; border:0; border-bottom:1px solid var(--border, #eee); padding:9px 12px; cursor:pointer; font:inherit; color:inherit; }
.mkt24-sr button:hover, .mkt24-sr button:focus-visible{ background:var(--bg2, #f5f5f0); }
.mkt24-sr .mk-sub{ display:block; }
.mkt24-sr p{ padding:10px 12px; margin:0; }
.mkt24-sr > .btn{ margin:0 12px 10px; }
.mkt24-sri{ display:flex; gap:10px; justify-content:space-between; align-items:flex-start; }
.mkt24-nmr button{ display:block; width:100%; text-align:left; background:none; border:0; padding:7px 4px; cursor:pointer; font:inherit; color:inherit; border-bottom:1px solid var(--border, #eee); }
.mkt24-nmr button:hover, .mkt24-nmr button:focus-visible{ background:var(--bg2, #f5f5f0); }
.mkt24-chan{ display:flex; gap:16px; margin:6px 0 10px; }
.mkt24-chan label{ display:inline-flex; gap:6px; align-items:center; }
.mkt24-smsprev{ padding:10px; font-size:.82rem; text-align:left; white-space:pre-wrap; }
.mkt24-modal-note{ font-size:.85rem; }
.sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
/* planner */
.mkt24p-bar{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin:6px 0; }
.mkt24p-bar .btn{ display:inline-flex; gap:5px; align-items:center; }
.mkt24p-pn{ margin:0; }
.mkt24p-aibox{ border:1px solid var(--border, #e3e3de); border-radius:12px; padding:10px; margin:4px 0 8px; }
.mkt24p-row{ display:flex; gap:8px; }
.mkt24p-row .form-input{ flex:1; min-width:0; }
.mkt24p-opts{ display:grid; gap:6px; margin-top:8px; }
.mkt24p-opt{ text-align:left; white-space:pre-wrap; background:var(--bg2, #f5f5f0); border:1px solid var(--border, #e3e3de); border-radius:10px; padding:8px 10px; cursor:pointer; font:inherit; font-size:.85rem; color:inherit; }
.mkt24p-opt:hover, .mkt24p-opt:focus-visible{ border-color:var(--osp-green, #2f5d3a); }
.mkt24p-note{ font-size:.78rem; color:var(--t3, #777); margin:4px 0 0; }
.mkt24p-lib{ display:inline-flex; gap:5px; align-items:center; background:none; font:inherit; cursor:pointer; }
.mkt24p-best{ display:flex; gap:6px; align-items:center; flex-wrap:wrap; font-size:.8rem; margin-top:6px; color:var(--t2, #555); }
.mkt24p-best .btn{ padding:3px 10px; }
.mkt24p-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(96px, 1fr)); gap:8px; padding:14px 18px; max-height:60vh; overflow:auto; }
.mkt24p-th{ aspect-ratio:1; padding:0; border:2px solid transparent; border-radius:10px; overflow:hidden; cursor:pointer; background:var(--bg2, #f1f1ec); }
.mkt24p-th img, .mkt24p-th video{ width:100%; height:100%; object-fit:cover; display:block; }
.mkt24p-th.on{ border-color:var(--osp-green, #2f5d3a); box-shadow:0 0 0 2px color-mix(in srgb, var(--osp-green, #2f5d3a) 35%, transparent); }
@media (max-width: 600px){
  .mkt24-hbtns{ float:none; margin-top:6px; }
  .mkt24-acts{ justify-content:flex-start; }
  .mkt24-imp .mk-row-actions{ width:100%; }
  .mkt24-url{ max-width:180px; }
  .mkt24p-row{ flex-direction:column; }
}
#mkt24-pos .mk-modal-b > p, #mkt24-addr .mk-modal-b > p{ margin:0 0 10px; }

/* ═════════ r24 mobA — phone app shell + Home / Operations / People / Work screens (2026-09-26) ═════════ */
/* Menu drawer: expandable groups (built by r24-mobA.js); harmless where the drawer is not shown. */
#khg-nav .moba-g{ display:block; }
#khg-nav .moba-gh{ width:100%; display:flex; align-items:center; gap:10px; text-align:left; }
#khg-nav .moba-gh .moba-gl{ flex:1; min-width:0; }
#khg-nav .moba-chev{ flex:none; opacity:.6; transition:transform .18s; }
#khg-nav .moba-g.open .moba-chev{ transform:rotate(180deg); }
#khg-nav .moba-items{ display:none; padding:2px 0 8px 34px; }
#khg-nav .moba-g.open .moba-items{ display:block; }
#khg-nav .moba-i{ display:block; width:100%; text-align:left; background:none; border:0; border-radius:9px; color:rgba(255,255,255,.72); font:inherit; font-size:.9rem; font-weight:500; padding:10px 12px; min-height:42px; cursor:pointer; }
#khg-nav .moba-i:hover, #khg-nav .moba-i:focus-visible{ background:rgba(255,255,255,.08); color:#fff; }
#khg-nav .moba-i.on{ background:rgba(255,255,255,.12); color:#fff; font-weight:700; }
#khg-nav .sidebar-link{ min-height:44px; }
#khg-nav .moba-install{ margin-top:0; border-top:0; width:100%; background:none; border-left:0; border-right:0; border-bottom:0; font:inherit; font-size:.9rem; cursor:pointer; text-align:left; }
#khg-nav .moba-help{ display:flex; align-items:center; gap:10px; margin:10px 0 4px; padding:10px 12px; min-height:44px; border-top:1px solid rgba(255,255,255,.1); color:rgba(255,255,255,.72); text-decoration:none; font-size:.9rem; }
#khg-nav .moba-help:hover, #khg-nav .moba-help:focus-visible{ color:#fff; background:rgba(255,255,255,.06); border-radius:9px; }

/* Alerts sheet (opened from the bottom bar) */
.moba-sheet-ov{ position:fixed; inset:0; z-index:1300; background:rgba(8,14,10,.45); display:flex; align-items:flex-end; justify-content:center; opacity:0; transition:opacity .18s; }
.moba-sheet-ov.in{ opacity:1; }
.moba-sheet{ width:100%; max-width:560px; max-height:min(82vh, 720px); display:flex; flex-direction:column; background:var(--bg2,#fff); color:var(--t1,#1a1f1b); border-radius:18px 18px 0 0; box-shadow:0 -12px 40px rgba(0,0,0,.25); transform:translateY(24px); transition:transform .2s cubic-bezier(.2,.8,.4,1); padding-bottom:env(safe-area-inset-bottom); }
.moba-sheet-ov.in .moba-sheet{ transform:none; }
.moba-sheet-grab{ width:40px; height:4px; border-radius:4px; background:var(--border,#dfe3de); margin:8px auto 0; }
.moba-sheet-h{ display:flex; align-items:center; justify-content:space-between; padding:8px 12px 8px 20px; border-bottom:1px solid var(--border,#e3e7e2); }
.moba-sheet-h h2{ margin:0; font-size:1.1rem; font-weight:800; }
.moba-x{ width:44px; height:44px; display:inline-flex; align-items:center; justify-content:center; border:0; background:none; color:var(--t2,#4a524c); border-radius:12px; cursor:pointer; }
.moba-x:hover, .moba-x:focus-visible{ background:var(--bg3,rgba(0,0,0,.05)); }
.moba-sheet-b{ overflow-y:auto; -webkit-overflow-scrolling:touch; overscroll-behavior:contain; flex:1; min-height:120px; }
.moba-sheet-f{ display:flex; gap:10px; padding:12px 16px; border-top:1px solid var(--border,#e3e7e2); }
.moba-sheet-f .btn{ flex:1; min-height:44px; justify-content:center; }
.moba-al-load{ padding:28px 20px; color:var(--t3,#7a837c); font-size:.9rem; text-align:center; }
.moba-al-none{ padding:32px 24px; text-align:center; display:flex; flex-direction:column; gap:6px; color:var(--t3,#7a837c); font-size:.86rem; line-height:1.45; }
.moba-al-none b{ color:var(--t1,#1a1f1b); font-size:1rem; }
.moba-al-ul{ list-style:none; margin:0; padding:4px 0; }
.moba-al-i{ width:100%; display:flex; gap:12px; align-items:flex-start; text-align:left; background:none; border:0; border-bottom:1px solid var(--border,#eef0ed); padding:12px 18px; min-height:56px; font:inherit; color:inherit; cursor:pointer; }
.moba-al-i:hover, .moba-al-i:focus-visible{ background:var(--bg3,rgba(0,0,0,.04)); }
.moba-al-dot{ flex:none; width:10px; height:10px; border-radius:50%; margin-top:5px; background:#57a15f; }
.moba-al-dot.warn{ background:#d97706; } .moba-al-dot.crit{ background:#ef4444; }
.moba-al-tx{ flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; font-size:.86rem; line-height:1.4; }
.moba-al-tx b{ font-weight:700; color:var(--t1,#1a1f1b); }
.moba-al-tx span{ color:var(--t3,#6f7871); }
.moba-al-when{ flex:none; display:flex; flex-direction:column; align-items:flex-end; gap:3px; font-size:.72rem; color:var(--t3,#7a837c); white-space:nowrap; }
.moba-al-when em{ font-style:normal; font-weight:800; font-size:.66rem; letter-spacing:.04em; text-transform:uppercase; color:#b45309; background:rgba(217,119,6,.12); border-radius:6px; padding:2px 6px; }
body.moba-sheet-open{ overflow:hidden; }

@media (max-width:768px){
  /* ── Shell ── */
  /* Install-app chip and toasts sit above the bottom bar, not on top of it */
  /* the floating "Install app" chip covered Save buttons and the chat box; on phones it lives in Menu */
  body.has-bnav #kp-pwa-install{ display:none !important; }
  body:has(.modal-overlay.open) #kp-pwa-install, body:has(.task-drawer.open) #kp-pwa-install, body:has(.toast.show) #kp-pwa-install, body:has(.sidebar.open) #kp-pwa-install, body.moba-sheet-open #kp-pwa-install{ visibility:hidden !important; }
  body.has-bnav .toast{ left:12px !important; right:12px !important; max-width:none !important; bottom:calc(70px + env(safe-area-inset-bottom)) !important; z-index:1250 !important; }
  body:not(.has-bnav) .toast{ left:12px !important; right:12px !important; max-width:none !important; bottom:calc(16px + env(safe-area-inset-bottom)) !important; }
  #kp-pwa-install-x{ width:32px !important; height:32px !important; }
  .sidebar #logout-btn{ min-height:40px; }
  /* the full-screen setup guide covers the bottom bar (its Continue button sits at the bottom) */
  body.acs-open #bnav, body.acs-open #kp-pwa-install{ display:none !important; }
  body.acs-open #acs{ z-index:1100; padding-bottom:env(safe-area-inset-bottom) !important; }
  /* Getting started card */
  #gs-card .gs-hide{ min-height:36px; padding:0 10px; }
  #gs-card .gs-item{ min-height:48px; }
  /* bottom bar: bigger touch areas, labels never clipped */
  body.topnav-mode #bnav .bnav-btn{ min-height:50px; justify-content:center; font-size:.64rem; }
  body.topnav-mode #bnav .bnav-btn:focus-visible{ outline:2px solid var(--brand-accent,#57a15f); outline-offset:-2px; }
  /* top bar: the brand picker gets the room (the logo shows its mark only on small phones) */
  body.topnav-mode .tn-brand-slot{ flex:1 1 auto; min-width:0; display:flex; justify-content:flex-end; }
  body.topnav-mode .tn-brand-slot .brand-switcher{ max-width:100%; min-width:0; min-height:40px; }
  body.topnav-mode .tn-brand-slot .brand-switcher select{ min-width:0; max-width:100%; text-overflow:ellipsis; }
  body.topnav-mode .tn-right .tn-icon, body.topnav-mode .tn-right .tn-ava{ min-width:40px; min-height:40px; }
  /* announcement banner: compact, with a real close target */
  .osp-ann{ margin:8px 12px 0 !important; padding:10px 8px 10px 12px !important; font-size:.84rem !important; gap:8px !important; }
  .osp-ann button{ min-width:40px !important; min-height:40px !important; }
  .osp-ann a.osp-ann-go{ padding:6px 0; }
  /* page headings: the action button wraps under the title instead of running off the edge */
  .section > .section-heading{ flex-wrap:wrap; row-gap:10px; }
  .section > .section-heading > *{ min-width:0; }
  /* sub-tab strip: comfortable touch height */
  #khg-subtabs .khg-subtab{ min-height:36px; }
  /* a page's own action button sits under the page tabs, so the tabs keep the same place on every page */
  body.topnav-mode #khg-tabs-actions{ order:3; border-bottom:0; border-top:1px solid var(--border); justify-content:flex-end; }

  /* ── Home: Today ── */
  #section-summary .hm-sechead{ flex-wrap:wrap; row-gap:2px; align-items:baseline; }
  #section-summary .hm-sechead .hint{ flex:1 1 100%; text-align:left !important; margin-left:0 !important; }
  #section-summary .hm-act-b{ min-height:36px; }
  #section-summary .hm-sechead a{ display:inline-flex; align-items:center; min-height:32px; }
  #section-summary .omc-link{ display:inline-flex; align-items:center; min-height:32px; padding:0 4px; }
  /* This week's plan: one compact row per day instead of tall empty boxes */
  #section-summary .mh-week{ grid-template-columns:minmax(0,1fr) !important; gap:6px !important; }
  #section-summary .mh-week .mh-day{ min-height:0 !important; display:grid; grid-template-columns:72px minmax(0,1fr); align-items:center; column-gap:10px; padding:10px 12px !important; }
  #section-summary .mh-week .mh-day > *{ min-width:0; }
  #section-summary .mh-week .mh-day > .mh-dh{ margin:0 !important; }
  #section-summary .mh-week .mh-day > :not(.mh-dh){ grid-column:2; }

  /* ── Home: Sales (Ops overview) ── */
  #section-ops .ops-wrap{ padding-left:0 !important; padding-right:0 !important; padding-top:4px !important; }
  #section-ops #group-kpis.kpi-row{ grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
  #section-ops .kpi-val{ font-size:clamp(1.2rem,6vw,1.6rem) !important; white-space:nowrap; }
  .section .grid-3, .section .grid-2{ grid-template-columns:minmax(0,1fr) !important; }
  .section .grid-3 > *, .section .grid-2 > *{ min-width:0; }

  /* ── Operations: work orders + People: requests — title gets its own full-width line ── */
  #wo-list > div > div:first-child > div[style*="flex:1"],
  #er-list > div > div:first-child > div[style*="flex:1"]{ order:10; flex:1 1 100% !important; font-size:1rem; line-height:1.3; }
  #er-list > div > div:first-child > span:not(:first-child):not(:empty){ order:11; }
  #wo-list > div > div:first-child > button,
  #er-list > div > div:first-child > button{ margin-left:auto; min-width:40px; min-height:40px; border-radius:10px; font-size:1rem; }

  /* ── Home: Insights / Forecast ── */
  #ins-fc-range{ flex-wrap:nowrap !important; overflow-x:auto; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
  #ins-fc-range::-webkit-scrollbar{ display:none; }
  #ins-fc-range .filter-chip{ flex:0 0 auto; min-height:38px; }
  #ins-fc-table table{ min-width:0 !important; }
  #section-ops-competitors a[href^="http"]{ display:inline-flex; align-items:center; min-height:32px; }

  /* ── People ── */
  #sched-grid button[style*="dashed"]{ min-height:40px; }
  .tr-admin-bar{ flex-wrap:wrap; row-gap:10px; }
  .tr-admin-bar .tr-tabs{ flex:1 1 100%; }
  .tr-admin-bar .tr-tabs .tr-tab{ flex:1 1 0; min-height:38px; white-space:nowrap; }
  #hr-list button[style*="text-decoration"]{ min-height:36px; padding:0 6px !important; }
  #section-ops-labor td:first-child{ white-space:nowrap; }

  /* ── Work: Tasks + Goals ── */
  #task-filter-bar{ flex-wrap:nowrap !important; overflow-x:auto; max-width:100%; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
  #task-filter-bar::-webkit-scrollbar{ display:none; }
  #task-filter-bar .filter-chip{ flex:0 0 auto; }
  .tasks-combined-bar{ flex-wrap:wrap; }
  .tasks-combined-bar .tv-tabs{ max-width:100%; overflow-x:auto; scrollbar-width:none; flex-wrap:nowrap; }
  .tasks-combined-bar .tv-tabs::-webkit-scrollbar{ display:none; }
  .tasks-combined-bar .tv-tabs > *{ flex:0 0 auto; }
  #tasks-saveview-btn{ min-width:36px; min-height:36px; }
  .tasks-combined-bar :is(button.tv-tab, .tv-filter-btn, #tasks-refresh-btn){ min-height:36px; }
  #goals-kpis.dk-kpi-grid{ grid-template-columns:repeat(3,minmax(0,1fr)) !important; gap:8px !important; }
  #goals-kpis .dk-kpi{ padding:12px 12px !important; min-width:0; }
  #goals-kpis .dk-kpi :is(.dk-kpi-value,.dk-kpi-val){ font-size:1.5rem !important; }
  #goals-kpis .dk-kpi-label{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

  /* ── Drawers and forms ── */
  /* the task / notes drawers open above the bottom bar, so their Save button is never hidden */
  body.has-bnav :is(.task-drawer, .notes-drawer, #notes-drawer){ z-index:1050 !important; padding-bottom:env(safe-area-inset-bottom); }
  /* three fields in a row get cramped: two per row, date inputs fit their box */
  :is(.modal, .modal-overlay, [role=dialog], #goal-modal-overlay) [style*="grid-template-columns:1fr 1fr 1fr"]{ grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
  :is(.modal, .modal-overlay, [role=dialog], #goal-modal-overlay) [style*="grid-template-columns:1fr 1fr 1fr"] > :first-child:nth-last-child(3){ grid-column:1 / -1; }
  :is(.modal, .modal-overlay, [role=dialog], #goal-modal-overlay) :is(.ci-field, .form-group){ min-width:0; }
  :is(.modal, .modal-overlay, [role=dialog], #goal-modal-overlay) input[type=date], :is(.modal, .modal-overlay, [role=dialog], #goal-modal-overlay) input[type=time]{ min-width:0; max-width:100%; width:100%; }
  .modal div[style*="display:flex;gap:10px"]:has(> .form-group[style*="width:150px"]){ flex-wrap:wrap; }
  .modal div[style*="display:flex;gap:10px"] > .form-group[style*="width:150px"]{ width:auto !important; flex:1 1 130px; }
  .modal div[style*="display:flex;gap:10px"]:has(> .form-group[style*="width:150px"]) > .form-group[style*="flex:1"]{ flex:1 1 100% !important; }

  /* ── Team Chat: a long last-message preview no longer widens the list past the screen ── */
  #wkc.wkc{ grid-template-columns:minmax(0,1fr) !important; }
  #wkc .wkc-side, #wkc .wkc-list, #wkc .wkc-row{ min-width:0; max-width:100%; }
  #wkc .wkc-row-t{ min-width:0; flex:1 1 auto; overflow:hidden; }
  #wkc .wkc-row-prev{ display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:100%; }

  /* ── Side-scrolling tables: fade the right edge while there is more to see ── */
  .moba-xs:not(.moba-xs-end){ -webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 40px),rgba(0,0,0,.18)); mask-image:linear-gradient(90deg,#000 calc(100% - 40px),rgba(0,0,0,.18)); }
}
@media (max-width:480px){
  body.topnav-mode .tn-in > .tn-logo{ flex:none; width:27px; overflow:hidden; }
  body.topnav-mode .tn-in > .tn-logo img{ max-width:none; object-fit:cover; object-position:left center; }
}
#khg-nav .moba-help.moba-install{ margin-top:0; border-top:0; }
/* ── r24 mobB — phone pass for Inventory & Ordering, Menu & Recipes, Events & Catering, Kitchen,
   Finances & Reports and Settings (2026-09-26). Phone widths only; the desktop layout is untouched. ── */
@media (max-width: 760px){

  /* Card grids with a 260–360px minimum column ran past the edge of 360px phones: one column instead. */
  :is(#section-ops-inventory,#section-ops-reorder,#section-ops-ordering,#section-ops-waste,#section-ops-prep,#section-ops-menubuilder,#section-ops-drinkplan,#section-ops-recipes,#section-ops-menueng,#section-ops-events,#section-ops-donations,#section-ops-partners,#section-ops-catering,#section-ops-booking,#section-ops-kitchen,#section-ops-finances,#section-ops-compare,#section-reports,#section-settings)
    :is([style*="minmax(360px"],[style*="minmax(340px"],[style*="minmax(320px"],[style*="minmax(300px"],[style*="minmax(290px"],[style*="minmax(280px"],[style*="minmax(260px"]){ grid-template-columns:minmax(0,1fr) !important; }

  /* Page-level toggles and filter chips: 40px tap targets (the app shell strips are styled elsewhere). */
  :is(#section-ops-inventory,#section-ops-reorder,#section-ops-ordering,#section-ops-waste,#section-ops-prep,#section-ops-menubuilder,#section-ops-drinkplan,#section-ops-recipes,#section-ops-menueng,#section-ops-events,#section-ops-donations,#section-ops-partners,#section-ops-catering,#section-ops-booking,#section-ops-kitchen,#section-ops-finances,#section-ops-compare,#section-reports,#section-settings)
    :is(.filter-chip,.ev-whenbtn,.ev-viewbtn,.btn-sm,.btn){ min-height:40px; }
  #section-ops-compare .cmp-chip{ min-height:36px; }
  :is(#section-reports,#section-settings,#section-ops-finances) .mk-seg-b{ min-height:40px; }
  #section-ops-finances .ops24-linkbtn{ min-height:36px; }
  #section-reports :is(.rdg-preset,.rdg-src-toggle,.rdg-compile,.cl-menu-btn,summary,details > button,[aria-expanded]){ min-height:40px; }
  #section-settings > .r-idx a{ min-height:40px; }
  #section-settings :is(.cl-menu-btn,.cl-dd-item){ min-height:40px; }
  #section-settings .r-more{ min-height:40px; }
  #section-ops-drinkplan button[onclick^="openDrinkRecipe"]{ min-height:32px; }
  /* Form fields: 44px tall and 16px text, so iPhone Safari does not zoom the page when a field is tapped. */
  :is(#section-ops-inventory,#section-ops-reorder,#section-ops-ordering,#section-ops-waste,#section-ops-prep,#section-ops-menubuilder,#section-ops-drinkplan,#section-ops-recipes,#section-ops-menueng,#section-ops-events,#section-ops-donations,#section-ops-partners,#section-ops-catering,#section-ops-booking,#section-ops-kitchen,#section-ops-finances,#section-ops-compare,#section-reports,#section-settings)
    :is(input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=range]):not([type=file]),select,textarea){ font-size:16px !important; }
  :is(#section-ops-inventory,#section-ops-reorder,#section-ops-ordering,#section-ops-waste,#section-ops-prep,#section-ops-menubuilder,#section-ops-drinkplan,#section-ops-recipes,#section-ops-menueng,#section-ops-events,#section-ops-donations,#section-ops-partners,#section-ops-catering,#section-ops-booking,#section-ops-kitchen,#section-ops-finances,#section-ops-compare,#section-reports,#section-settings)
    :is(input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=range]):not([type=file]),select){ min-height:44px; }
  /* Small icon-only edit buttons (the ✎ glyph) get a finger-sized hit area. */
  :is(#section-ops-inventory,#section-ops-ordering,#section-ops-recipes,#section-ops-events,#section-ops-donations,#section-ops-partners,#section-ops-drinkplan,#section-ops-catering,#section-ops-booking,#section-ops-menubuilder,#section-settings)
    button:is([onclick^="edit"],[onclick^="open"][title*="dit"],[title="Edit"],[aria-label^="Edit"]):not(.btn){ min-width:40px; min-height:40px; display:inline-flex; align-items:center; justify-content:center; }
  #section-ops-partners a[href][target="_blank"]{ min-height:32px; display:inline-flex !important; align-items:center; }

  /* Per-page brand pickers are hidden on phones (the top-bar brand switcher does the job), so their
     "Brand" labels were left floating on their own. */
  body.topnav-mode label:has(+ select.ops-brand-sel){ display:none; }
  body.topnav-mode :is(.ci-field,.ops-field,.form-group):has(> select.ops-brand-sel:only-of-type) > label{ display:none; }

  /* ── Inventory: the item table becomes one card per item, every column visible ── */
  body #section-ops-inventory #inv-table-wrap{ overflow-x:visible !important; }
  body #section-ops-inventory #inv-table.inv-tbl,
  body #section-ops-inventory #inv-table.inv-tbl tbody{ display:block; width:100% !important; min-width:0 !important; }
  body #section-ops-inventory #inv-table.inv-tbl thead{ display:none; }
  body #section-ops-inventory #inv-table.inv-tbl tbody tr{ display:flex; flex-wrap:wrap; align-items:center; gap:6px 10px; padding:12px 12px 12px 44px; position:relative; border-bottom:1px solid var(--border); }
  body #section-ops-inventory #inv-table.inv-tbl tbody tr:last-child{ border-bottom:0; }
  body #section-ops-inventory #inv-table.inv-tbl tbody tr::after{ content:''; order:4; flex-basis:100%; height:0; }
  body #section-ops-inventory #inv-table.inv-tbl tbody td{ display:block !important; padding:0; border:0; }
  body #section-ops-inventory #inv-table.inv-tbl tbody td:nth-child(1){ position:absolute; left:12px; top:12px; }
  body #section-ops-inventory #inv-table.inv-tbl tbody td:nth-child(2){ order:2; flex:1 1 0; min-width:0; }
  body #section-ops-inventory #inv-table.inv-tbl tbody td:nth-child(5){ order:3; text-align:right; }
  body #section-ops-inventory #inv-table.inv-tbl tbody td:nth-child(8){ order:5; }
  body #section-ops-inventory #inv-table.inv-tbl tbody td:nth-child(3){ order:6; }
  body #section-ops-inventory #inv-table.inv-tbl tbody td:nth-child(4){ order:7; }
  body #section-ops-inventory #inv-table.inv-tbl tbody td:nth-child(6){ order:8; font-size:.78rem; }
  body #section-ops-inventory #inv-table.inv-tbl tbody td:nth-child(6)::before{ content:'Par '; color:var(--t3); }
  body #section-ops-inventory #inv-table.inv-tbl tbody td:nth-child(7){ order:9; font-size:.78rem; }
  body #section-ops-inventory #inv-table.inv-tbl tbody td:nth-child(7)::after{ content:' each'; font-weight:400; color:var(--t3); }
  body #section-ops-inventory #inv-table.inv-tbl tbody td:nth-child(9){ order:10; margin-left:auto; display:flex !important; align-items:center; gap:4px; }
  body #section-ops-inventory #inv-table.inv-tbl tbody td:nth-child(9) .inv-adjust{ min-height:40px; }
  body #section-ops-inventory #inv-table.inv-tbl tbody td:nth-child(9) button:not(.inv-adjust){ min-width:40px; min-height:40px; }
  body #section-ops-inventory #inv-table.inv-tbl tbody td:nth-child(1) input{ width:20px; height:20px; }

  /* ── Tables that stack into labelled cards (labels come from the header, see r24-mobB.js) ── */
  table.mobb-stack, table.mobb-stack tbody{ display:block; width:100% !important; min-width:0 !important; }
  table.mobb-stack thead{ display:none; }
  table.mobb-stack tbody tr{ display:grid; grid-template-columns:1fr 1fr; gap:4px 14px; padding:12px 4px; border-bottom:1px solid var(--border); }
  table.mobb-stack tbody tr:last-child{ border-bottom:0; }
  table.mobb-stack tbody td{ display:block !important; padding:0 !important; border:0 !important; text-align:left !important; min-width:0; white-space:normal !important; }
  table.mobb-stack tbody td:first-child{ grid-column:1 / -1; font-weight:700; font-size:.92rem; }
  table.mobb-stack tbody td[data-mobb-l]:not(:first-child)::before{ content:attr(data-mobb-l); display:block; font-size:.66rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--t3); margin-bottom:1px; }
  table.mobb-stack tbody td.mobb-act{ grid-column:2; align-self:end; display:flex !important; flex-wrap:wrap; gap:8px; justify-content:flex-end; }
  table.mobb-stack tbody td.mobb-act:has(select){ grid-column:1 / -1; }
  table.mobb-stack tbody td.mobb-act button:not(.btn){ min-width:40px; min-height:40px; }
  #rb-ing-table.mobb-stack tbody td:first-child{ font-weight:400; }
  table.mobb-stack tbody td.mobb-act select{ flex:1 1 100%; }
  table.mobb-stack tbody td :is(select,input){ max-width:100% !important; min-width:0 !important; width:100%; }
  table.mobb-stack tbody td:empty{ display:none !important; }
  table.mobb-stack tbody tr.mobb-full td{ grid-column:1 / -1; }
  table.mobb-stack tfoot{ display:block; }
  table.mobb-stack tfoot tr{ display:flex; justify-content:space-between; align-items:center; gap:10px; }
  table.mobb-stack tfoot td:empty{ display:none; }
  .mobb-stack-wrap{ overflow-x:visible !important; }

  /* ── Wide number tables keep scrolling sideways, with a pinned first column and a hint ── */
  .mobb-hs{ position:relative; -webkit-overflow-scrolling:touch; }
  .mobb-hs:not(.mobb-hs-end){ -webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent); mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent); }
  .mobb-hs table :is(th,td){ padding-left:10px !important; padding-right:10px !important; }
  .mobb-hs table tr > :first-child{ white-space:normal !important; min-width:96px; max-width:128px; width:128px; position:sticky; left:0; z-index:1; background:var(--osp-card,var(--bg2,#fff)); box-shadow:1px 0 0 var(--border); }
  .mobb-hint{ display:flex; align-items:center; gap:6px; font-size:.72rem; color:var(--t3); margin:2px 0 6px; }
  .mobb-hint svg{ flex:none; }
  .mobb-hs.mobb-hs-end + .mobb-hint, .mobb-hint.mobb-hint-done{ visibility:hidden; height:0; margin:0; }

  /* ── Pop-up forms on phones ── */
  /* Starts / Ends date-time pickers sat side by side and the second ran off the edge. */
  .modal-overlay .modal div[style*="display:flex"]:has(> .form-group > input[type="datetime-local"]){ flex-wrap:wrap; }
  .modal-overlay .modal div[style*="display:flex"] > .form-group:has(> input[type="datetime-local"]){ flex:1 1 100% !important; }
  .modal-overlay .modal .form-group{ min-width:0; }
  .modal-overlay .modal :is(input:not([type=checkbox]):not([type=radio]):not([type=color]),select){ max-width:100%; }
  /* 16px text in form fields so iPhone Safari does not zoom in when one is tapped. */
  :is(.modal-overlay .modal, #recipe-builder) :is(input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=range]):not([type=file]),select,textarea){ font-size:16px !important; }
  /* New / edit item: labels of different lengths pushed the inputs out of line. */
  #inv-modal .modal div[style*="display:flex"]:has(> .form-group){ align-items:flex-end; }
  #inv-modal .ops24-row > .form-group[style*="width:120px"]{ flex:1 1 0; width:auto !important; }
  /* Recipe builder allergen tick boxes: bigger targets. */
  #recipe-builder label:has(> input[type=checkbox]){ min-height:36px; display:inline-flex; align-items:center; }

  /* ── Events calendar: seven day columns squeezed into the screen instead of running 80px off it ── */
  #section-ops-events div[style*="grid-template-columns:repeat(7,1fr)"]{ grid-template-columns:repeat(7,minmax(0,1fr)) !important; gap:3px !important; }
  #section-ops-events .evc-day{ min-width:0; min-height:62px; padding:3px 3px; }
  #section-ops-events .evc-chip{ font-size:.58rem; padding:2px 3px; min-height:18px; }

  /* ── Purchasing sub-views: one scrollable row instead of wrapping "Price changes" onto a second line ── */
  #section-ops-ordering #ord-tabs{ flex-wrap:nowrap !important; overflow-x:auto; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
  #section-ops-ordering #ord-tabs::-webkit-scrollbar{ display:none; }
  #section-ops-ordering #ord-tabs > *{ flex:none; }
  #section-ops-recipes a[target="_blank"]{ min-height:32px; display:inline-flex !important; align-items:center; }

  /* ── Menu engineering: keep the chart's axis title inside the card ── */
  #section-ops-menueng canvas{ max-width:100% !important; }

  /* ── Reorder report: supplier heading stacks above the button ── */
  #section-ops-reorder #reorder-list > div > div:first-child{ display:grid !important; grid-template-columns:1fr auto; align-items:center; gap:4px 10px; }
  #section-ops-reorder #reorder-list > div > div:first-child > div:first-child{ grid-column:1 / -1; font-size:1.02rem; }
  #section-ops-reorder #reorder-list > div > div:first-child > div[style*="flex:1"]{ display:none; }

  /* ── Kitchen board: the explainer takes the full width, the clock sits with the buttons ── */
  #section-ops-kitchen .g1k-top{ flex-wrap:wrap; row-gap:8px; }
  #section-ops-kitchen .g1k-top > .g1-hint{ flex:1 1 100% !important; min-width:0 !important; }
  #section-ops-kitchen .g1k-top > .g1k-upd{ order:3; flex:1 1 100%; font-size:.74rem; }
  #section-ops-kitchen .g1k-card a[href^="tel:"]{ display:inline-flex; align-items:center; min-height:32px; }

  /* ── Four stat tiles as a 2 × 2 grid instead of 3 + 1 ── */
  :is(#section-ops-donations,#section-ops-partners,#section-ops-catering,#section-ops-events,#section-ops-waste,#section-ops-finances,#section-ops-ordering,#section-ops-inventory,#section-settings) .r-strip:is([style*="--c:4"],[style*="--c: 4"]){ grid-template-columns:1fr 1fr; }

  /* ── Settings ── */
  /* Two- and three-column form rows stack; the fields were too narrow to read their hints. */
  #section-settings .settings-tab-panel [style*="grid-template-columns:1fr 1fr 1fr"],
  #section-settings #settings-tab-branding [style*="grid-template-columns:1fr 1fr"]{ grid-template-columns:1fr !important; }
  #section-settings .settings-tab-panel div[style*="display:flex"]:has(> .btn + .btn){ flex-wrap:wrap; }
  /* The "On this page" index was sticky at 64px, i.e. hidden under the phone top bars once scrolled. */
  #section-settings > .r-idx{ position:relative; top:auto; }
  /* Checkboxes next to long labels were squeezed smaller than their neighbours. */
  #section-settings input[type=checkbox]{ flex-shrink:0; }
  /* Daily review search stretched to 170px tall inside the column card. */
  #section-settings .ci-card > input:is([placeholder^="Search"],[type="search"]){ flex:0 0 auto !important; width:100% !important; height:auto; }
  /* Integrations: the eight category pills scroll in one row instead of stacking six rows deep. */
  #section-settings #integ-cat-pills{ flex-wrap:nowrap !important; overflow-x:auto; scrollbar-width:none; -webkit-overflow-scrolling:touch; padding-bottom:2px; -webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 24px),transparent); mask-image:linear-gradient(90deg,#000 calc(100% - 24px),transparent); }
  #section-settings #integ-cat-pills::-webkit-scrollbar{ display:none; }
  #section-settings #integ-cat-pills > .integ-cat-pill{ flex:none; min-height:40px; white-space:nowrap; }
  /* Plan picker: billing period toggle and small links are finger-sized. */
  #section-settings .bp-seg > button{ min-height:40px; }
  #section-settings .settings-tab-panel p a[href^="mailto:"]{ display:inline-block; padding:8px 0; }
  /* Brand row "Actions" menu items. */
  #section-settings :is(.cl-menu, [class*="cl-menu"]) button{ min-height:40px; }
  /* Support tickets: two lines of the title instead of cutting it off. */
  #section-settings [onclick^="supOpenTicket"] > div > div:first-child{ white-space:normal !important; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; line-height:1.3; }
  #section-settings [onclick^="supOpenTicket"]{ min-height:56px; }
}
/* ═══════════ r24 mobC — Marketing screens at phone width (2026-09-26) ═══════════ */
@media (max-width:760px){
  /* wide marketing tables → one card per row; every column stays, with its name as a small label */
  .section table.mobc-ct, #mk-modal table.mobc-ct, table.mobc-ct{ min-width:0 !important; width:100% !important; display:block; }
  table.mobc-ct > thead{ display:none; }
  table.mobc-ct > tbody{ display:block; }
  table.mobc-ct > tbody > tr{ display:flex; flex-wrap:wrap; align-items:flex-start; gap:6px 16px; padding:12px 14px; border-bottom:1px solid var(--mk-line, var(--border)); }
  table.mobc-ct > tbody > tr:last-child{ border-bottom:0; }
  table.mobc-ct > tbody > tr > td{ display:block; padding:0 !important; border:0 !important; min-width:0; max-width:100%; white-space:normal !important; overflow-wrap:anywhere; text-align:left !important; width:auto !important; }
  table.mobc-ct > tbody > tr > td:first-child{ flex:1 1 100%; font-size:.95rem; }
  table.mobc-ct > tbody > tr > td.mobc-pick{ flex:0 0 auto; padding-top:2px !important; }
  table.mobc-ct > tbody > tr > td.mobc-pick + td{ flex:1 1 calc(100% - 44px); }
  table.mobc-ct > tbody > tr > td.mobc-blank{ display:none; }
  table.mobc-ct > tbody > tr > td[data-label]:not(:first-child):not(.mobc-pick + td)::before{ content:attr(data-label); display:block; font-size:.66rem; font-weight:650; letter-spacing:.05em; text-transform:uppercase; color:var(--t3, #888); margin-bottom:2px; }
  table.mobc-ct > tbody > tr.mobc-full > td{ flex:1 1 100%; }
  table.mobc-ct > tbody > tr > td :is(.btn, button){ min-height:36px; }
  .mk-table-wrap:has(> table.mobc-ct), div:has(> table.mobc-ct){ overflow-x:visible; }

  /* heat map of best posting times fits the card instead of scrolling */
  .section table.mk-heat, table.mk-heat{ min-width:0 !important; width:100% !important; table-layout:fixed; font-size:.68rem; border-spacing:2px; }
  table.mk-heat td, table.mk-heat th{ min-width:0 !important; overflow:hidden; text-overflow:clip; }
  table.mk-heat tr > th:first-child{ width:62px; }
  table.mk-heat td{ padding:7px 0; white-space:nowrap !important; }
  table.mk-heat th{ padding:2px 1px; white-space:nowrap !important; }

  /* dialogs: sheet from the top, title stays in view, action row sticks to the bottom edge */
  .mk-modal-wrap{ padding:8px 6px calc(8px + env(safe-area-inset-bottom)) !important; }
  .mk-modal{ width:100% !important; border-radius:16px; }
  .mk-modal-h{ position:sticky; top:-8px; z-index:3; background:var(--osp-card, #fff); border-radius:16px 16px 0 0; padding:12px 14px 12px 16px; }
  .mk-modal-h h3{ font-size:1rem; line-height:1.25; min-width:0; }
  .mk-modal-h .mk-x{ min-width:40px; min-height:40px; font-size:1.4rem; flex:0 0 auto; }
  .mk-modal-b{ padding:14px 16px 16px !important; }
  .mk-modal-b > .mk-modal-f:last-child{ position:sticky; bottom:-8px; z-index:3; background:var(--osp-card, #fff); margin:16px -16px -16px !important; padding:10px 16px calc(10px + env(safe-area-inset-bottom)) !important; border-radius:0 0 16px 16px; box-shadow:0 -6px 14px -10px rgba(0,0,0,.25); }
  .mk-modal-f .btn{ min-height:40px; }
  /* big action rows (5+ buttons, e.g. the campaign editor) sit at the end of the form as a tidy 2-column grid instead of covering a third of the screen */
  .mk-modal-b > .mk-modal-f:last-child:has(> button:nth-of-type(5)){ position:static; box-shadow:none; display:grid; grid-template-columns:1fr 1fr; gap:8px; }
  .mk-modal-f:has(> button:nth-of-type(5)) > span:empty{ display:none; }
  .mk-modal-f:has(> button:nth-of-type(5)) > :is(.mk-hint, span){ grid-column:1/-1; }
  .mk-modal-f:has(> button:nth-of-type(5)) > .btn{ width:100%; justify-content:center; text-align:center; }
  .mk-modal-f:has(> button:nth-of-type(5)) > .btn-primary:last-child{ grid-column:1/-1; }
  /* block editor arrows and remove buttons: bigger tap targets */
  .mk-modal button.mk-ib{ min-width:36px; min-height:36px; }
  /* checkbox rows with a hint: the hint drops under the label instead of squeezing it into a narrow column */
  .mk-ck:has(> .mk-hint){ display:block !important; position:relative; padding-left:30px; }
  .mk-ck:has(> .mk-hint) > input{ position:absolute; left:0; top:0; }
  .mk-ck:has(> .mk-hint) > .mk-hint{ display:block; margin-top:2px; }
  .mk-ck input[type=checkbox]{ width:20px; height:20px; margin-top:0; }

  /* rows of select + input + button (e.g. Loyalty → Add tablet) wrap instead of squashing */
  .mk-copy{ flex-wrap:wrap; }
  .mk-copy > select, .mk-copy > select.form-input{ flex:1 1 100%; min-width:0; width:100% !important; }
  .mk-copy > input, .mk-copy > input.form-input{ flex:1 1 150px; min-width:0; }

  /* filter rows: two selects per line, full labels readable */
  .mk-filters > .mk-sel, .mk-filters > select{ flex:1 1 calc(50% - 6px); min-width:0; max-width:none; }

  /* "Sales after each email" header on Delivery */
  .mkx-ch{ flex-wrap:wrap; gap:6px 10px; }
  .mkx-ch > label{ flex-wrap:wrap; white-space:normal; }

  /* Visitors / Search: the four numbers sit in an even 2 × 2 grid */
  :is(#ga4-blocks, #gsc-blocks) .ops-kpis{ display:grid !important; grid-template-columns:1fr 1fr; }
  :is(#ga4-blocks, #gsc-blocks) .ops-kpis > .ops-kpi{ min-width:0; }

  /* social planner: "+" on each day is big enough to tap */

  /* email designer: the text toolbar wraps to fit the screen instead of running off the right edge */
  .mkd-rtb{ left:8px !important; right:8px; max-width:calc(100vw - 16px); flex-wrap:wrap; }
  .mkd.mkm .mkd-rtb, body.mkd-open .mkd-rtb{ top:auto !important; bottom:calc(136px + env(safe-area-inset-bottom)) !important; }
  .mkd-rtb button, .mkd-rtb label{ min-width:34px; height:34px; }

  /* marketing calendar: chips in the tiny day cells become colour bars; the list below has the words */
  #mkt-cal-grid .mc-chip, #mkt-cal-grid .mc-nat{ font-size:0 !important; height:6px; min-height:0; padding:0 !important; border-radius:3px !important; margin-bottom:2px !important; overflow:hidden; }
  #mkt-cal-grid .mc-nat{ background:#8a8577 !important; }
  #mkt-cal-grid .mc-day{ min-height:52px !important; }
  #mobc-cal-agenda.mobc-agenda{ display:block; margin-top:18px; }
  .soc-add{ opacity:.6; font-size:1.15rem; }

  /* stat strips: two per row so labels like "Came back after a message" stay readable; an odd last one spans the row */
  .mk-page .r-strip, .mk-modal .r-strip{ grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
  .mk-page .r-strip-i, .mk-modal .r-strip-i{ padding:10px 12px 11px; }
  .mk-page .r-strip > .r-strip-i:last-child:nth-child(odd), .mk-modal .r-strip > .r-strip-i:last-child:nth-child(odd){ grid-column:1 / -1; }

  /* Reviews inbox: the reviews themselves come right after the filters; the helper panels follow */
  #section-mkt-reviews.active{ display:flex; flex-direction:column; }
  #section-mkt-reviews > *{ min-width:0; }
  #section-mkt-reviews > #mk-rv-themes{ order:1; }
  #section-mkt-reviews > #mk-rv-list ~ *{ order:2; }
  /* Inbox: the conversation list keeps to about half the screen so the open conversation is close by */
  #mkib-list.mk-threads{ max-height:44vh; overflow-y:auto; -webkit-overflow-scrolling:touch; }
  #mkib-conv{ scroll-margin-top:150px; }
  /* flow builder phone mode (views switched by the bottom bar, see r24-mobC.js) */
  #mkf.mobc-fm .mkd-tools > *{ display:inline-flex !important; }
  #mkf.mobc-fm .mkd-top{ flex-wrap:wrap; row-gap:8px; }
  #mkf.mobc-fm .mkd-tools{ flex-wrap:wrap !important; flex:1 1 100%; justify-content:flex-end; }
  #mkf.mobc-fm .mkf-name{ min-width:0; flex:1 1 auto; }
  #mkf.mobc-fm .mkm-bar{ grid-template-columns:repeat(3,1fr); }
  #mkf.mobc-fm[data-mv="canvas"] .mkd-canvas-wrap{ overflow:auto; }
  #mkf.mobc-fm .mkf-canvas{ padding:10px 8px 150px; }
  #mkf.mobc-fm .mkd-left > .mk-hint:first-child{ display:none; }
  .mkf-menu{ left:8px !important; right:8px; width:auto !important; top:auto !important; bottom:calc(72px + env(safe-area-inset-bottom)) !important; max-height:60vh; overflow-y:auto; z-index:10072; }
  .mkf-menu button{ min-height:42px; }
  #mkf.mobc-fm .mkf-plus{ width:32px; height:32px; }
  #mkf.mobc-fm .mkf-trigger, #mkf.mobc-fm .mkf-node{ width:min(280px, calc(100vw - 40px)); }
}
.mobc-only{ display:none; }
@media (max-width:760px){ .mobc-only{ display:block; } }
@media (max-width:760px){
  /* Social planner view tabs: one scrolling row instead of wrapping onto two lines */
  .soc-views{ flex-wrap:nowrap !important; overflow-x:auto; scrollbar-width:none; -webkit-overflow-scrolling:touch; -webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 24px),transparent); mask-image:linear-gradient(90deg,#000 calc(100% - 24px),transparent); }
  .soc-views::-webkit-scrollbar{ display:none; }
  .soc-views > button{ flex:0 0 auto; }
  .soc-bar-r{ flex-wrap:wrap; row-gap:8px; min-width:0; max-width:100%; }
  .soc-day-h{ flex-wrap:wrap; min-width:0; }
  .soc-add{ min-width:26px; min-height:28px; }
  /* in-page tab rows show a soft edge when there are more tabs to the right */
  .mk-tabs{ -webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 24px),transparent); mask-image:linear-gradient(90deg,#000 calc(100% - 24px),transparent); }
  .mk-tabs button{ min-height:40px; }
  .mk-tabs.mobc-end, .soc-views.mobc-end{ -webkit-mask-image:none; mask-image:none; }
}

.mobc-agenda{ display:none; }
.mobc-ag-h{ font-size:1rem; font-weight:700; margin:0 0 10px; }
.mobc-ag-d{ background:var(--glass2, var(--glass, #fff)); border:1px solid var(--border); border-radius:12px; padding:8px 12px; margin-bottom:8px; }
.mobc-ag-date{ font-size:.72rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--t3); margin:2px 0 4px; }
.mobc-ag-i{ display:flex; align-items:center; gap:10px; width:100%; min-height:40px; padding:6px 0; background:none; border:0; border-top:1px solid var(--border); color:var(--t1); font:inherit; font-size:.9rem; text-align:left; cursor:pointer; }
.mobc-ag-date + .mobc-ag-i{ border-top:0; }
.mobc-dot{ flex:0 0 10px; height:10px; border-radius:3px; }
.mobc-ag-t{ flex:1 1 auto; min-width:0; }
.mobc-ag-k{ flex:0 0 auto; font-size:.72rem; color:var(--t3); }
.mobc-ag-none{ color:var(--t3); font-size:.88rem; }
/* ═════════ mobD (2026-09-26): Sites & Funnels + Landing pages + page builder at phone width ═════════ */
/* Toasts showed UNDER the full-screen editors (z 300 vs 10055) on every screen size */
body.mkd-open .toast{ z-index:10090 !important; }
@media (max-width:760px){
  /* screen-reader-only labels inside scrolling tables escaped the wrapper and widened the page (SEO tab zoomed out to 668px) */
  #section-mkt-sites .mk-table-wrap, #section-mkt-pages .mk-table-wrap, #mk-modal .mk-table-wrap{ position:relative; }

  /* tables → cards (labels come from the header row, added by r24-mobD.js) */
  #section-mkt-sites table.mobd-cards, #section-mkt-pages table.mobd-cards{ display:block; width:100%; min-width:0 !important; }
  #section-mkt-sites .mk-table-wrap:has(> table.mobd-cards), #section-mkt-pages .mk-table-wrap:has(> table.mobd-cards){ overflow:visible; background:none; border:0; border-radius:0; }
  table.mobd-cards thead{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
  table.mobd-cards tbody{ display:block; }
  table.mobd-cards tr{ display:block !important; position:relative; width:auto !important; background:var(--mk-card, var(--osp-card, #fff)); border:1px solid var(--mk-line, var(--osp-line, #e5e8e2)); border-radius:14px; padding:6px 14px; margin:0 0 10px; }
  table.mobd-cards tr.mks-var{ margin-left:14px; }
  table.mobd-cards td{ display:block; position:relative; border:0 !important; padding:6px 0 6px 38% !important; min-height:22px; text-align:left !important; white-space:normal !important; overflow-wrap:anywhere; }
  table.mobd-cards td::before{ content:attr(data-l); position:absolute; left:0; top:7px; width:35%; font-size:.72rem; font-weight:650; letter-spacing:.03em; text-transform:uppercase; color:var(--t3, #6b756e); line-height:1.3; }
  table.mobd-cards td.mobd-t, table.mobd-cards td.mobd-a, table.mobd-cards td[data-l=""]{ padding-left:0 !important; }
  table.mobd-cards td.mobd-t::before, table.mobd-cards td.mobd-a::before, table.mobd-cards td[data-l=""]::before{ display:none; }
  table.mobd-cards td.mobd-t{ font-size:1rem; padding-top:8px !important; }
  table.mobd-cards td.mobd-a{ display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-start; align-items:center; padding:10px 0 6px !important; border-top:1px solid var(--mk-line, var(--osp-line, #e5e8e2)) !important; margin-top:4px; }
  table.mobd-cards td.mobd-a:empty{ display:none; }
  table.mobd-cards td .form-input{ max-width:100%; }
  table.mobd-cards td:empty:not(.mobd-a){ display:none; }
  #section-mkt-sites .mks-acts .mkd-menu{ left:auto; right:0; }

  /* small tables without a header (Stats) keep the name readable */
  #section-mkt-sites .mk-card > table.mk-table:not(.mobd-cards) td{ padding:10px 6px; }
  #section-mkt-sites .mk-card > table.mk-table:not(.mobd-cards) td:first-child{ width:44%; }

  /* tap targets */
  #section-mkt-sites .mks-head .btn-link{ min-height:40px; display:inline-flex; align-items:center; gap:4px; margin-bottom:0; }
  #section-mkt-sites .mks-acts .mk-ib{ min-width:40px; min-height:40px; }
  #section-mkt-sites .mk-ib{ min-width:36px; min-height:36px; }
  #section-mkt-sites .mk-tabs{ -webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent); mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent); }
  #section-mkt-sites .mk-tabs button{ min-height:40px; }
  #section-mkt-sites .mk-tabs button:last-child{ margin-right:24px; }
  #section-mkt-sites .m21-tabs button, #section-mkt-sites [role=tablist] > button{ min-height:40px; }
  #section-mkt-sites .mk-filters .btn-sm, #section-mkt-sites .mk-row-actions .btn-sm{ min-height:38px; }

  /* long Settings page: keep Save within thumb reach, above the bottom tab bar */
  #mks-b .mk-row-actions:has(> [onclick^="mksSettingsSave"]){ position:sticky; bottom:calc(64px + env(safe-area-inset-bottom)); z-index:3; background:var(--osp-card, #fff); margin:0; padding:10px 0; border-top:1px solid var(--osp-line, #e5e8e2); box-shadow:0 -8px 18px -12px rgba(0,0,0,.25); flex-wrap:wrap; }

  /* online ordering menu editor */
  #mk-modal .g1-food-ul li{ gap:10px; }
  #mk-modal .mk-row-actions:has(> [onclick^="g1FoodEdit"]){ margin-top:10px; }

  /* page preview: use the whole screen */
  #mkw-prev.mk-modal-wrap{ padding:0 !important; align-items:stretch; }
  #mkw-prev .mk-modal.mkw-prev{ width:100vw !important; max-width:100vw !important; height:100dvh; max-height:100dvh; margin:0; border-radius:0; border:0; display:flex; flex-direction:column; }
  #mkw-prev .mk-modal-h{ flex-wrap:nowrap !important; gap:8px; padding:max(8px, env(safe-area-inset-top)) 10px 8px 14px; }
  #mkw-prev .mk-modal-h h3{ font-size:1rem; margin:0; }
  #mkw-prev .mkd-segs{ margin-left:auto; }
  #mkw-prev .mk-modal-b{ flex:1 1 auto; padding:8px; overflow:auto; }
  #mkw-prev .mkd-pv-frame{ padding:0; }
  #mkw-prev .mkd-pv-frame iframe{ height:calc(100dvh - 150px); }
  #mkw-prev .mk-x{ min-width:40px; min-height:40px; }
}
/* page builder in its phone mode (.mkm is set under 860px) */
.mkd.mkm#mkw .mkw-pagesel{ min-height:36px; }
@media (max-width:420px){ .mkd.mkm#mkw .mkd-title b{ display:none; } .mkd.mkm#mkw .mkw-pagesel{ max-width:36vw; } }  /* the site name is on the screen you came from; the page picker needs the room */
.mkd.mkm#mkw .mkd-tools .btn-primary{ min-height:36px; }
.mkd.mkm .mkm-done .btn{ min-height:38px; min-width:72px; }
.mkd.mkm .mkm-sh-h .mk-ib{ min-width:40px; min-height:40px; }
.mkd.mkm .mkm-sh-list button{ min-height:44px; }
.mkd.mkm#mkw .mkd-left .wbx-chips button{ min-height:36px; }
@media (max-width:860px){ body.mkd-open .toast{ bottom:calc(var(--mkm-bar, 64px) + env(safe-area-inset-bottom) + 14px) !important; } }
@media (max-width:760px){
  table.mobd-cards tr.mks-var{ background:var(--mk-head, #f6f7f4); }
  table.mobd-cards tr.mks-var td{ background:none !important; }
}
/* r27 integration (phone): the bottom tab bar steps aside while any dialog, sheet or full-screen editor is open,
   so Save / Cancel at the bottom of tall forms are never covered. */
@media (max-width: 768px){
  body:has(.modal-overlay.open) #bnav,
  body:has(.modal-overlay.active) #bnav,
  body:has(#mk-modal) #bnav,
  body:has(.moba-sheet-ov) #bnav{ display:none !important; }
  body:has(.modal-overlay.open) .modal-overlay.open .modal,
  body:has(.modal-overlay.active) .modal-overlay.active .modal{ margin-bottom:env(safe-area-inset-bottom); }
}
/* The closed slide-out menu sat just off-screen but its 48px shadow bled onto the left edge of every page. */
@media (max-width: 768px){ .sidebar:not(.open){ box-shadow:none !important; } }
/* r25 nav25 — menu, Settings gear, one Home dashboard, Offers out of the UI */

/* ── Home dashboard ── */
#nav25-dash{margin-top:4px}
#nav25-dash:empty{display:none}
.nav25-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.nav25-tile{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto auto;column-gap:10px;align-items:center;text-align:left;
  background:var(--osp-card,var(--surface,#fff));border:1px solid var(--osp-line,var(--border));border-radius:14px;padding:14px 16px;min-height:96px;
  font:inherit;color:var(--t1);cursor:pointer;transition:border-color .15s,box-shadow .15s}
.nav25-tile:hover{border-color:rgba(47,93,58,.4);box-shadow:0 4px 14px -8px rgba(0,0,0,.25)}
.nav25-tile:focus-visible{outline:2px solid #2f5d3a;outline-offset:2px}
.nav25-ti{grid-row:1 / span 2;width:34px;height:34px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;background:rgba(87,161,95,.12);color:#2f5d3a}
.nav25-tv{font-size:1.45rem;font-weight:800;letter-spacing:-.02em;line-height:1.1;font-variant-numeric:tabular-nums}
.nav25-tl{font-size:.82rem;font-weight:700;color:var(--t2)}
.nav25-ts{grid-column:1 / -1;font-size:.74rem;color:var(--t3);margin-top:6px;line-height:1.35}
.nav25-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px;align-items:start}
.nav25-row.one{grid-template-columns:1fr}
.nav25-card{padding:16px 18px}
.nav25-ch{display:flex;align-items:center;gap:8px;margin-bottom:8px;color:var(--t2)}
.nav25-ch h3{margin:0;font-size:1rem;color:var(--t1);flex:1}
.nav25-ch a{font-size:.8rem;font-weight:600;color:#2f5d3a;text-decoration:none;white-space:nowrap}
.nav25-ch a:hover{text-decoration:underline}
.nav25-list{list-style:none;margin:0;padding:0}
.nav25-list li+li{border-top:1px solid var(--osp-line,var(--border))}
.nav25-list button{display:flex;flex-direction:column;gap:2px;width:100%;text-align:left;background:none;border:0;padding:10px 2px;min-height:44px;font:inherit;color:var(--t1);cursor:pointer;border-radius:8px}
.nav25-list button:hover{background:var(--glass,rgba(0,0,0,.03))}
.nav25-lt{font-size:.88rem;font-weight:600;line-height:1.3}
.nav25-lm{font-size:.75rem;color:var(--t3)}
.nav25-lm.late{color:#b4491f;font-weight:600}
.nav25-none{margin:6px 0 2px;font-size:.84rem;color:var(--t3)}
#nav25-dash .mh-week{margin-top:0}
.hm-split.nav25-one{grid-template-columns:1fr}
.hm-split > .hm-card.nav25-dup{display:none}
.hm-act.nav25-mk .hm-act-b{white-space:nowrap}
@media (max-width:1100px){ .nav25-tiles{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:760px){
  .nav25-row{grid-template-columns:1fr}
  .nav25-tiles{gap:10px}
  .nav25-tile{padding:12px;min-height:88px}
  .nav25-tv{font-size:1.25rem}
  .nav25-ti{width:30px;height:30px}
}

/* ── Settings: the gear opens one Settings page; its tabs sit in the header ── */
.nav25-gear{display:none}
@media (max-width:1023px){
  .nav25-gear{display:inline-flex;align-items:center;justify-content:center;min-width:40px;min-height:40px}
  .nav25-gear.on{background:rgba(255,255,255,.18)}
}
/* desktop: with ten tabs, Settings gets its tab row under the title */
@media (min-width:1024px){
  body.osp-v2.nav25-set #khg-tabs .khg-tabs-in{flex-wrap:wrap}
  body.osp-v2.topnav-mode.nav25-set .khg-tabs-in #khg-subtabs{flex:1 0 100%;order:9;flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;scrollbar-width:none;margin:0 0 0 -10px}
  body.osp-v2.topnav-mode.nav25-set .khg-tabs-in #khg-subtabs::-webkit-scrollbar{display:none}
  body.osp-v2.topnav-mode.nav25-set .khg-tabs-in #khg-subtabs .khg-subtab{min-height:46px;white-space:nowrap;flex:none;padding:0 11px}
}

/* ── Offers are retired: no offer pickers or offer triggers in the editors ── */
/* (an offer already attached stays visible so it can still be removed) */
.mk-f:has(> #mk-ce-offer option[value=""]:checked),
.mk-f:has(> select[id$="-off"] option[value=""]:checked),
.mk-f:has(> #mk-pg-o option[value=""]:checked),
.mk-f:has(> select[onchange*="'n.offer_id'"] option[value=""]:checked){display:none !important}
select option[value="offer_redeemed"]:not(:checked), #mk-pg-k option[value="offer"]:not(:checked){display:none}
.mk-ck:has(> input[onchange*="'offer_redeemed'"]:not(:checked)){display:none !important}
.nav25-wait{padding:22px}
/* r24 opsA (2026-09-25) — schedule tools, labor, checklists, notes, reports, alerts */
.opsa24-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.opsa24-sub{font-size:.74rem;color:var(--t3)}
.opsa24-note{font-size:.82rem;color:var(--t2);background:var(--glass);border:1px dashed var(--border);border-radius:12px;padding:12px 14px}
.opsa24-row{display:flex;align-items:flex-start}
.opsa24-bar{display:flex;gap:8px;flex-wrap:wrap;margin:-4px 0 14px}
.opsa24-bar .btn svg,.opsa24-rr-actions .btn svg,.opsa24-clock .btn svg,.opsa24-panelhead .btn svg{vertical-align:-3px;margin-right:4px}
.opsa24-count:not(:empty){display:inline-block;min-width:18px;padding:0 5px;margin-left:4px;border-radius:9px;background:#d97706;color:#fff;font-size:.66rem;font-weight:800;line-height:18px;text-align:center}
.opsa24-chip{display:inline-block;font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--t2);background:var(--glass2,var(--glass));border:1px solid var(--border);border-radius:10px;padding:0 6px;vertical-align:1px}
.opsa24-impact{margin-left:auto;font-size:.7rem;font-weight:700;color:#2f8f4e}
.opsa24-recmore{grid-column:1/-1;margin-top:4px}
.opsa24-check{display:flex;align-items:center;gap:8px;font-size:.84rem;color:var(--t1);margin:6px 0;cursor:pointer;min-height:32px}
.opsa24-check input{width:17px;height:17px;accent-color:var(--green,#57a15f);flex:none}
.opsa24-days{display:flex;flex-wrap:wrap;gap:10px;border:0;padding:0}
.opsa24-days label{display:flex;align-items:center;gap:5px;font-size:.84rem;min-height:32px}
/* badges */
.opsa24-b{display:inline-block;font-size:.62rem;font-weight:800;border-radius:8px;padding:1px 6px;line-height:1.5;vertical-align:1px;white-space:nowrap}
.opsa24-b-warn{color:#a15c07;background:rgba(217,119,6,.15)}
.opsa24-b-bad{color:#b42318;background:rgba(220,38,38,.13)}
.opsa24-b-ok{color:#23733b;background:rgba(47,143,78,.14)}
.opsa24-b-mute{color:var(--t2);background:var(--glass2,rgba(0,0,0,.06))}
.opsa24-badges{display:flex;gap:4px;flex-wrap:wrap;margin-top:4px}
.opsa24-offline{font-size:.64rem;color:#b42318;margin:-4px 0 7px;font-weight:700}
.opsa24-warnbox{background:rgba(217,119,6,.09);border:1px solid rgba(217,119,6,.35);border-radius:12px;padding:10px 14px;margin:0 0 14px;font-size:.8rem;color:var(--t1)}
.opsa24-warnbox.bad{background:rgba(220,38,38,.07);border-color:rgba(220,38,38,.35)}
.opsa24-warnbox b svg{vertical-align:-2px;color:#d97706}
.opsa24-warnbox ul{margin:6px 0 0;padding-left:18px}
.opsa24-warnbox li{margin:2px 0}
.opsa24-up{color:#2f8f4e;font-weight:700}
.opsa24-dn{color:#dc2626;font-weight:700}
.opsa24-bad{color:#dc2626;font-weight:700;font-size:.74rem}
/* tabs + lists */
.opsa24-tabs{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--border);margin:-4px 0 12px}
.opsa24-tab{background:none;border:0;border-bottom:2px solid transparent;padding:8px 12px;font:inherit;font-size:.82rem;font-weight:700;color:var(--t2);cursor:pointer;min-height:40px}
.opsa24-tab.on{color:var(--t1);border-bottom-color:var(--green,#57a15f)}
.opsa24-tab:focus-visible,.opsa24-seg button:focus-visible,.opsa24-x:focus-visible{outline:2px solid var(--green,#57a15f);outline-offset:2px}
.opsa24-panelhead{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.opsa24-list{display:flex;flex-direction:column}
.opsa24-li,.opsa24-hrow{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:9px 0;border-top:1px solid var(--border);font-size:.84rem;color:var(--t1)}
.opsa24-li:first-child,.opsa24-hrow:first-of-type{border-top:0}
.opsa24-li-main{flex:1;min-width:180px}
.opsa24-li-act{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.opsa24-danger{color:#dc2626!important}
.opsa24-x{background:none;border:0;color:var(--t3);cursor:pointer;padding:4px;min-width:28px;min-height:28px;vertical-align:middle;border-radius:6px}
.opsa24-x:hover{color:#dc2626}
.opsa24-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.opsa24-table{width:100%;border-collapse:collapse;font-size:.8rem;min-width:420px}
.opsa24-table th{text-align:left;font-size:.66rem;text-transform:uppercase;letter-spacing:.03em;color:var(--t3);padding:6px 8px;border-bottom:1px solid var(--border);white-space:nowrap}
.opsa24-table td{padding:7px 8px;border-bottom:1px solid var(--border);color:var(--t1);vertical-align:top}
.opsa24-clock{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--glass);border:1px solid var(--border);border-radius:12px;padding:12px 14px;font-size:.86rem;color:var(--t1)}
.opsa24-clock>div{flex:1;min-width:180px}
/* stats */
.opsa24-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}
.opsa24-stat{background:var(--glass);border:1px solid var(--border);border-radius:12px;padding:10px 12px}
.opsa24-stat-l{font-size:.68rem;color:var(--t3);font-weight:700;text-transform:uppercase;letter-spacing:.03em}
.opsa24-stat-v{font-size:1.2rem;font-weight:800;color:var(--t1);margin:2px 0}
/* checklists */
.opsa24-seg{display:inline-flex;border:1px solid var(--border);border-radius:10px;overflow:hidden}
.opsa24-seg button{background:none;border:0;padding:7px 14px;font:inherit;font-size:.8rem;font-weight:700;color:var(--t2);cursor:pointer;min-height:36px}
.opsa24-seg button[aria-pressed="true"]{background:var(--green,#57a15f);color:#fff}
.opsa24-ci{align-items:center;flex-wrap:wrap;gap:8px}
.opsa24-ci.bad{background:rgba(220,38,38,.06);border-radius:8px}
.opsa24-num{width:92px!important;padding:6px 8px!important}
.opsa24-req{font-size:.6rem;font-weight:800;text-transform:uppercase;color:#b42318;letter-spacing:.03em;margin-left:4px}
.opsa24-thumb{width:44px;height:44px;object-fit:cover;border-radius:8px;border:1px solid var(--border)}
.opsa24-photo{cursor:pointer;display:inline-flex;align-items:center;gap:5px}
.opsa24-who{white-space:nowrap}
.opsa24-chkrow{border:1px solid var(--border);border-radius:10px;padding:8px;margin-bottom:8px;background:var(--glass)}
.opsa24-confirm{border:0;padding:0;margin:0;max-height:48vh;overflow:auto}
.opsa24-hday{margin-bottom:12px}
.opsa24-det{margin-top:6px;font-size:.8rem}
.opsa24-det summary{cursor:pointer;color:var(--t2);font-weight:700;min-height:28px}
.opsa24-det ul{margin:6px 0;padding-left:4px;list-style:none}
.opsa24-det li{padding:3px 0;display:flex;gap:6px;align-items:baseline;flex-wrap:wrap}
.opsa24-det li svg{color:#2f8f4e;flex:none}
/* shift notes */
.opsa24-note-card{background:var(--glass);border:1px solid var(--border);border-radius:12px;padding:14px}
.opsa24-note-card.pinned{border-color:#57a15f}
.opsa24-note-card.open{border-left:4px solid #d97706}
.opsa24-chips{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-bottom:10px}
.opsa24-tag{font-size:.68rem;font-weight:700;color:var(--t2);background:var(--glass2,rgba(0,0,0,.05));border:1px solid var(--border);border-radius:10px;padding:1px 8px}
/* training */
.opsa24-trstaff{border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin:10px 0}
.opsa24-pill{display:flex;align-items:center;gap:5px;font-size:.78rem;color:var(--t1);background:var(--glass2,var(--glass));border:1px solid var(--border);border-radius:8px;padding:4px 9px;cursor:pointer;min-height:32px}
.opsa24-trtrack{margin-top:6px;border-top:1px dashed var(--border)}
/* reports */
.opsa24-rr h3{margin-top:18px}
.opsa24-rr-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:16px;padding-top:12px;border-top:1px solid var(--border)}
.opsa24-cmp-hist{margin-top:8px}
.opsa24-modal .opsa24-mbody{max-height:70vh;overflow:auto}
@media (max-width:600px){
  .opsa24-bar .btn{flex:1 1 calc(50% - 8px);justify-content:center}
  .opsa24-li-act{width:100%}
  .opsa24-panelhead .btn{width:100%}
}
@media print{ .opsa24-rr-actions{display:none} }
/* r24 opsB — costing, purchasing, counts, P&L, catering, events, donations */
.ops24-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.ops24-row{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}
.ops24-grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:16px}
.ops24-p{font-size:.82rem;color:var(--t2);margin:0 0 12px;line-height:1.5;max-width:760px}
.ops24-h3{font-size:.86rem;font-weight:800;color:var(--t1);margin:16px 0 8px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ops24-note{background:var(--glass);border:1px solid var(--border);border-radius:11px;padding:11px 14px;font-size:.82rem;color:var(--t2);line-height:1.5}
.ops24-hint{font-size:.74rem;color:var(--t3);margin-top:4px;line-height:1.45}
.ops24-sub{font-size:.72rem;color:var(--t3);font-weight:400}
.ops24-strong{font-weight:700;color:var(--t1)}
.ops24-inl{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;color:var(--t2)}
.ops24-inl .form-input{width:auto;min-width:0;padding:6px 8px}
.ops24-sm{font-size:.74rem}
.ops24-count{display:inline-block;min-width:18px;padding:0 6px;margin-left:4px;border-radius:999px;background:var(--r-warn-bg,rgba(217,119,6,.12));color:var(--r-warn,#9a5b00);font-size:.7rem;font-weight:800;line-height:18px;text-align:center}
.ops24-pill{display:inline-block;padding:2px 9px;border-radius:999px;font-size:.66rem;font-weight:800;letter-spacing:.02em;background:var(--glass2);color:var(--t2);white-space:nowrap}
.ops24-pill.ok{background:var(--r-ok-bg,rgba(47,110,60,.1));color:var(--r-ok,#2f6e3c)}
.ops24-pill.warn{background:var(--r-warn-bg,rgba(217,119,6,.12));color:var(--r-warn,#9a5b00)}
.ops24-pill.info{background:rgba(37,99,235,.12);color:#1d4ed8}
.ops24-chip{font-size:.68rem;font-weight:700;white-space:nowrap}
.ops24-chip-warn{color:var(--r-warn,#9a5b00)}
.ops24-linkbtn{background:none;border:0;padding:0;color:var(--green,#2f6e3c);font-weight:700;cursor:pointer;text-decoration:underline;font-size:inherit}
.ops24-box{border:1px solid var(--border);border-radius:12px;padding:12px 14px;margin-top:10px;background:var(--glass)}
.ops24-box-h{font-size:.66rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--t3);margin-bottom:8px}
.ops24-box-h span{font-weight:500;text-transform:none;letter-spacing:0}
.ops24-umap-row{display:flex;align-items:center;gap:6px;margin-bottom:6px;font-size:.8rem;color:var(--t2)}
.ops24-umap-row .form-input{width:90px;padding:6px 8px}
.ops24-umap-row button{background:none;border:0;color:var(--t3);cursor:pointer;font-size:1.1rem;min-width:32px;min-height:32px}
.ops24-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:12px}
.ops24-table{width:100%;border-collapse:collapse;font-size:.82rem}
.ops24-table th{text-align:left;font-size:.64rem;text-transform:uppercase;letter-spacing:.05em;color:var(--t3);padding:8px 10px;border-bottom:1px solid var(--border);white-space:nowrap}
.ops24-table td{text-align:left;padding:8px 10px;border-top:1px solid var(--border);vertical-align:middle;color:var(--t2)}
.ops24-table .num{text-align:right;white-space:nowrap}
.ops24-table .form-input{padding:6px 8px;font-size:.82rem}
.ops24-table.ops24-cnt-table td .form-input{width:92px;text-align:right}
.ops24-table tr.ops24-grp th{background:var(--glass2);color:var(--t1);font-size:.7rem;padding:6px 10px}
.ops24-table.ops24-pl tr.ops24-pl-sum td{font-weight:800;color:var(--t1);border-top:2px solid var(--border)}
.ops24-bud{width:110px!important;text-align:right}
.ops24-table td.num .form-input{width:96px;display:inline-block}
.ops24-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:0 0 14px}
.ops24-basis{margin-top:10px;font-size:.76rem;color:var(--t2);line-height:1.55;display:flex;flex-direction:column;gap:6px}
.ops24-switch{display:flex;align-items:center;gap:8px;font-size:.84rem;font-weight:700;color:var(--t1);cursor:pointer;min-height:32px}
.ops24-switch input{width:18px;height:18px;accent-color:var(--green,#2f6e3c)}
.ops24-summary{margin-top:10px;display:flex;flex-direction:column;gap:4px}
.ops24-sumrow{display:flex;justify-content:space-between;gap:12px;font-size:.84rem;color:var(--t2)}
.ops24-sumrow strong{color:var(--t1)}
.ops24-issues{margin-top:12px;border:1px solid var(--r-warn-bg,rgba(217,119,6,.2));background:rgba(217,119,6,.05);border-radius:12px;padding:10px 12px}
.ops24-issues-h{font-size:.78rem;font-weight:800;color:var(--r-warn,#9a5b00);margin-bottom:6px}
.ops24-fix{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 0;border-top:1px solid var(--border);font-size:.8rem;color:var(--t2)}
.ops24-fix:first-of-type{border-top:0}
.ops24-fix-msg{flex:1 1 240px;min-width:0}
.ops24-fix-act{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.ops24-fix-act .form-input{width:auto;max-width:220px;padding:6px 8px;font-size:.8rem}
.ops24-fix-act .ops24-inl .form-input{width:90px}
.ops24-mc-group{border:1px solid var(--border);border-radius:11px;padding:4px 12px 8px;margin-bottom:8px}
.ops24-mc-used{font-size:.7rem;color:var(--t3)}
.ops24-ul{margin:0 0 12px 18px;padding:0;font-size:.82rem;color:var(--t2);line-height:1.7}
.ops24-card{background:var(--glass);border:1px solid var(--border);border-radius:14px;padding:15px}
.ops24-card-actions{margin-top:12px;border-top:1px solid var(--border);padding-top:10px;align-items:center}
.ops24-olines{margin-top:10px;font-size:.8rem;color:var(--t2)}
.ops24-oline{display:flex;justify-content:space-between;gap:10px;padding:2px 0}
.ops24-ordhead{display:grid;grid-template-columns:1fr 64px 84px 84px 32px;gap:6px;font-size:.66rem;color:var(--t3);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px;padding:0 2px}
.ops24-ordline{display:grid;grid-template-columns:1fr 64px 84px 84px 32px;gap:6px;align-items:center;margin-bottom:8px}
.ops24-ordline .form-input{padding:6px 8px;font-size:.8rem;min-width:0}
.ops24-ordline>button{background:none;border:0;color:var(--t3);cursor:pointer;font-size:1.1rem;min-height:32px}
.ops24-ordline-hint{grid-column:1/-1;font-size:.7rem;color:var(--t3);margin-top:-2px}
.ops24-ordline-hint:empty{display:none}
.ops24-x{background:none;border:0;color:var(--t3);cursor:pointer;font-size:1.1rem;min-width:32px;min-height:32px}
.ops24-need{border:1px solid var(--border);border-radius:11px;padding:12px;margin-bottom:10px;display:flex;flex-direction:column;gap:6px}
.ops24-need-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ops24-need-items{font-size:.84rem;color:var(--t1);line-height:1.6}
.ops24-need .form-input{width:auto;padding:5px 8px;font-size:.78rem}
.ops24-wrow{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--border);font-size:.82rem;flex-wrap:wrap}
.ops24-wrow svg{color:var(--r-ok,#2f6e3c);vertical-align:-2px}
.ops24-dot{display:inline-block;width:10px;height:10px;border-radius:50%;border:1.5px solid var(--t3)}
.ops24-prep-top{display:flex;justify-content:flex-end;margin-bottom:4px}
.ops24-prep{display:grid;grid-template-columns:22px 1fr auto 150px;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--border);font-size:.84rem}
.ops24-prep input[type=checkbox]{width:18px;height:18px;accent-color:var(--green,#2f6e3c);margin:0}
.ops24-prep-name{display:flex;flex-direction:column;cursor:pointer;min-width:0}
.ops24-prep.done .ops24-prep-name .ops24-strong{text-decoration:line-through;color:var(--t3)}
.ops24-prep-q{text-align:right;font-weight:800;color:var(--t1);white-space:nowrap}
.ops24-prep-q .ops24-sub{display:block}
.ops24-prep-who{padding:5px 8px;font-size:.78rem}
.ops24-propbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:-4px 0 12px;font-size:.8rem}
.ops24-preview{width:100%;height:340px;border:1px solid var(--border);border-radius:10px;background:#fff;margin-top:8px}
.ops24-evmeta{font-size:.72rem;color:var(--t2);margin-top:7px;font-weight:600}
.ops24-evbar{height:5px;border-radius:5px;background:var(--glass2);margin-top:5px;overflow:hidden}
.ops24-evbar span{display:block;height:100%;background:var(--green,#2f6e3c);border-radius:5px}
.ops24-years{display:flex;gap:10px 18px;flex-wrap:wrap;align-items:baseline;margin:-4px 0 14px;font-size:.8rem;color:var(--t2)}
.ops24-yr b{color:var(--t1)}
@media (max-width:640px){
  .ops24-ordhead{display:none}
  .ops24-ordline{grid-template-columns:1fr 1fr 1fr 32px;border:1px solid var(--border);border-radius:10px;padding:8px}
  .ops24-ordline .ol-name{grid-column:1/4;grid-row:1}
  .ops24-ordline>button{grid-column:4;grid-row:1}
  .ops24-ordline .ol-qty{grid-column:1;grid-row:2}
  .ops24-ordline .ol-unit{grid-column:2;grid-row:2}
  .ops24-ordline .ol-cost{grid-column:3/5;grid-row:2}
  .ops24-ordline-hint{grid-row:3}
  #ord-modal div[style*="display:flex;gap:10px"]{flex-wrap:wrap}
  .ops24-cnt-table th:nth-child(4),.ops24-cnt-table td:nth-child(4),.ops24-cnt-table th:nth-child(5),.ops24-cnt-table td:nth-child(5){display:none}
  .ops24-table td.num .form-input{width:66px}
  .ops24-prep{grid-template-columns:22px 1fr;row-gap:4px}
  .ops24-prep-q{grid-column:2;text-align:left}
  .ops24-prep-who{grid-column:2;max-width:200px}
  .ops24-table.ops24-cnt-table td .form-input{width:72px}
  .ops24-bud{width:84px!important}
  .ops24-fix-act .form-input{max-width:100%}
  .ops24-ivt thead{display:none}
  .ops24-ivt tr{display:grid;grid-template-columns:1fr 1fr 1fr 36px;gap:6px;padding:8px}
  .ops24-ivt td{border:0;padding:0;text-align:left!important}
  .ops24-ivt td:first-child{grid-column:1/4}
  .ops24-ivt td:nth-child(5){grid-column:1/4;font-weight:700}
  .ops24-ivt td:last-child{grid-column:4;grid-row:1}
  .ops24-ivt td .form-input{width:100%!important}
  .ops24-ivt tr+tr{border-top:1px solid var(--border)}
}
#inv24-pack .ops24-box{margin:2px 0 16px}
/* r24 pos29 (2026-09-28): Toast / Clover / Lightspeed connect panel */
.p29 { display: flex; flex-direction: column; gap: 12px; font-size: .86rem; color: var(--t2); }
.p29-lede { margin: 0; color: var(--t1); line-height: 1.5; }
.p29-steps { margin: 0; padding-left: 20px; line-height: 1.55; }
.p29-steps li { margin-bottom: 4px; }
.p29-acts { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.p29-sub { margin: 0; font-size: .8rem; color: var(--t3); }
.p29-sub a { color: var(--green); font-weight: 600; }
.p29-note { display: flex; gap: 8px; align-items: flex-start; margin: 0; font-size: .8rem; color: var(--t3); line-height: 1.45; }
.p29-note svg, .p29-soon svg, .p29-alt svg, .p29-status svg { flex: 0 0 auto; margin-top: 1px; }
.p29-soon, .p29-alt { display: flex; gap: 10px; align-items: flex-start; padding: 12px 13px; border: 1px solid var(--border); border-radius: 10px; background: var(--glass2); line-height: 1.5; }
.p29-soon > div, .p29-alt > div { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.p29-soon b, .p29-alt b { color: var(--t1); }
.p29-alt .btn { align-self: flex-start; margin-top: 4px; }
.p29-status { display: flex; gap: 8px; align-items: center; padding: 10px 12px; border-radius: 10px; background: rgba(87,161,95,.12); color: #3f8f52; font-weight: 650; }
.p29 .form-input { width: 100%; }
.p29-tag { white-space: nowrap; }
@media (max-width: 480px) {
  .p29-acts .btn { flex: 1 1 100%; justify-content: center; }
  .p29-tag { display: none; }
}
/* ── Reports → custom report builder (r25 · reports25) ── */
.rep25{--r-bg:var(--osp-card,#fff);--r-line:var(--osp-line,#e5e8e2);--r-soft:var(--osp-canvas,#f5f6f3);--r-t1:var(--t1,#1a1f1b);--r-t2:var(--t2,#5b645d);--r-t3:var(--t3,#7a847c);--r-acc:var(--osp-green,#2f5d3a);--r-acc2:#aeb8b1;--r-up:#2f6e3c;--r-dn:#b42318;--r-warn:#8a5a00;margin-bottom:22px}
[data-theme="dark"] .rep25{--r-acc:#8fd197;--r-acc2:#6f7a72;--r-up:#8fd197;--r-dn:#f39a8b;--r-warn:#f0c46a}
.rep25 :focus-visible{outline:2px solid var(--r-acc);outline-offset:2px}
.rep25-vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.rep25-head p{margin:0;color:var(--r-t2);font-size:.88rem;line-height:1.5;max-width:760px}
.rep25-sub{color:var(--r-t3);font-size:.8rem;line-height:1.45}
.rep25-tabs{display:flex;gap:4px;margin:16px 0 14px;border-bottom:1px solid var(--r-line);overflow-x:auto;scrollbar-width:none}
.rep25-tabs::-webkit-scrollbar{display:none}
.rep25-tab{flex:none;border:0;background:transparent;font:inherit;font-size:.9rem;font-weight:600;color:var(--r-t2);padding:10px 14px;min-height:42px;border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer;border-radius:8px 8px 0 0}
.rep25-tab:hover{color:var(--r-t1);background:var(--r-soft)}
.rep25-tab.on{color:var(--r-t1);border-bottom-color:var(--r-acc)}
.rep25-card{background:var(--r-bg);border:1px solid var(--r-line);border-radius:14px;padding:18px 20px;margin-bottom:14px}
.rep25-h3{margin:0 0 12px;font-size:.98rem;font-weight:650;color:var(--r-t1)}
/* templates */
.rep25-tpls{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
.rep25-tpl{position:relative;display:flex}
.rep25-tpl-b{flex:1;display:grid;grid-template-columns:auto 1fr;gap:2px 10px;align-items:start;text-align:left;font:inherit;padding:12px 14px;border:1px solid var(--r-line);border-radius:12px;background:var(--r-bg);color:var(--r-t1);cursor:pointer;min-height:64px}
.rep25-tpl-b:hover{border-color:var(--r-acc)}
.rep25-tpl.on .rep25-tpl-b{border-color:var(--r-acc);box-shadow:inset 0 0 0 1px var(--r-acc);background:color-mix(in srgb,var(--r-acc) 6%,var(--r-bg))}
.rep25-tpl-ic{grid-row:span 2;width:32px;height:32px;border-radius:9px;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--r-acc) 12%,transparent);color:var(--r-acc)}
.rep25-tpl-t{font-weight:650;font-size:.88rem}
.rep25-tpl-d{font-size:.76rem;color:var(--r-t3);line-height:1.35}
.rep25-tpl .rep25-x{position:absolute;top:4px;right:4px}
.rep25-x{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;border:0;background:transparent;color:var(--r-t3);cursor:pointer;flex:none}
.rep25-x:hover{background:var(--r-soft);color:var(--r-dn)}
/* form */
.rep25-form{display:flex;flex-direction:column;gap:16px}
.rep25-row2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px}
.rep25-f{display:flex;flex-direction:column;gap:6px;min-width:0;margin:0;border:0;padding:0}
.rep25-f .form-input{width:100%;max-width:100%;min-height:42px}
.rep25-f-cmp{max-width:320px}
.rep25-l{font-size:.78rem;font-weight:650;color:var(--r-t2);padding:0}
.rep25-seg{display:flex;flex-wrap:wrap;gap:6px}
.rep25-chip{font:inherit;font-size:.82rem;font-weight:550;border:1px solid var(--r-line);background:var(--r-bg);color:var(--r-t1);border-radius:999px;padding:0 13px;min-height:38px;cursor:pointer}
.rep25-chip:hover{border-color:var(--r-acc)}
.rep25-chip.on{background:var(--r-acc);border-color:var(--r-acc);color:#fff}
[data-theme="dark"] .rep25-chip.on{color:#0f1a12}
.rep25-dates[hidden]{display:none!important}
.rep25-dates{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px}
.rep25-dates .form-input{max-width:180px;min-height:42px}
.rep25-mods{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px}
.rep25-mod{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--r-line);border-radius:11px;cursor:pointer;background:var(--r-bg);min-height:44px}
.rep25-mod:hover{border-color:var(--r-acc)}
.rep25-mod.on{border-color:color-mix(in srgb,var(--r-acc) 55%,var(--r-line));background:color-mix(in srgb,var(--r-acc) 5%,var(--r-bg))}
.rep25-mod input{margin:3px 0 0;width:18px;height:18px;accent-color:var(--r-acc);flex:none}
.rep25-mod span{display:flex;flex-direction:column;gap:2px;min-width:0}
.rep25-mod b{font-size:.86rem;font-weight:620;color:var(--r-t1)}
.rep25-mod small{font-size:.74rem;color:var(--r-t3);line-height:1.35}
.rep25-mods-a{display:flex;gap:8px;margin-top:8px}
.rep25-go{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.rep25-go .btn{display:inline-flex;align-items:center;gap:7px;min-height:42px}
.rep25-go .rep25-sub{flex:1 1 260px}
/* progress */
.rep25-prog{display:flex;gap:16px;align-items:flex-start}
.rep25-prog ol{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:.86rem;color:var(--r-t3)}
.rep25-prog li{display:flex;align-items:center;gap:6px}
.rep25-prog li.now{color:var(--r-t1);font-weight:600}
.rep25-prog li.done{color:var(--r-up)}
.rep25-spin{width:26px;height:26px;border-radius:50%;border:3px solid var(--r-line);border-top-color:var(--r-acc);animation:rep25spin .9s linear infinite;flex:none;margin-top:2px}
@keyframes rep25spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.rep25-spin{animation-duration:3s}}
/* report */
.rep25-rep{background:var(--r-bg);border:1px solid var(--r-line);border-radius:16px;padding:22px 24px;margin-bottom:16px}
.rep25-rep-top{display:flex;gap:14px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;padding-bottom:14px;border-bottom:1px solid var(--r-line)}
.rep25-rep-brand{font-size:.74rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--r-acc)}
.rep25-rep-id h3{margin:2px 0 4px;font-size:1.3rem;font-weight:700;color:var(--r-t1)}
.rep25-rep-acts{display:flex;gap:8px;flex-wrap:wrap}
.rep25-rep-acts .btn{display:inline-flex;align-items:center;gap:6px;min-height:40px}
.rep25-warn{margin:12px 0 0;padding:10px 12px;border-radius:10px;background:color-mix(in srgb,var(--r-warn) 10%,var(--r-bg));color:var(--r-warn);font-size:.84rem}
.rep25-toc{display:flex;gap:6px;overflow-x:auto;padding:12px 0 4px;scrollbar-width:thin;-webkit-mask-image:linear-gradient(90deg,#000 92%,transparent)}
.rep25-toc a{flex:none;font-size:.8rem;font-weight:600;color:var(--r-t2);text-decoration:none;padding:0 12px;min-height:34px;display:inline-flex;align-items:center;border:1px solid var(--r-line);border-radius:999px;white-space:nowrap}
.rep25-toc a:hover{color:var(--r-t1);border-color:var(--r-acc)}
.rep25-sec{padding:18px 0 6px;border-top:1px solid var(--r-line);margin-top:12px;scroll-margin-top:70px}
.rep25-sec:first-of-type{border-top:0}
.rep25-sec h4{margin:0 0 12px;font-size:1.05rem;font-weight:700;color:var(--r-t1)}
.rep25-sec h5{margin:14px 0 8px;font-size:.86rem;font-weight:700;color:var(--r-t1)}
.rep25-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}
.rep25-tile{background:var(--r-soft);border-radius:12px;padding:11px 13px;min-width:0}
.rep25-tile-l{font-size:.74rem;color:var(--r-t2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rep25-tile-v{font-size:1.3rem;font-weight:700;color:var(--r-t1);margin:3px 0 2px;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rep25-tile-d{display:flex;align-items:center;gap:3px;font-size:.74rem;font-weight:650;color:var(--r-t3)}
.rep25-tile-d.up{color:var(--r-up)}.rep25-tile-d.dn{color:var(--r-dn)}
.rep25-tile-d .rep25-sub{font-weight:400;font-size:.72rem}
.rep25-tile-n{font-size:.74rem;color:var(--r-t3)}
.rep25-call{border-left:3px solid var(--r-acc);background:color-mix(in srgb,var(--r-acc) 7%,var(--r-bg));border-radius:0 12px 12px 0;padding:11px 14px;margin:4px 0 12px}
.rep25-call-l{font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--r-acc);margin-bottom:4px}
.rep25-call p{margin:0;font-size:.9rem;line-height:1.55;color:var(--r-t1)}
.rep25-lists{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 22px}
.rep25-ul{margin:0;padding:0 0 0 18px;font-size:.87rem;line-height:1.5;color:var(--r-t1)}
.rep25-ul li{margin-bottom:5px}
.rep25-ul.good li::marker{color:var(--r-up)}.rep25-ul.bad li::marker{color:var(--r-dn)}
.rep25-recs{margin:0;padding:0;list-style:none;counter-reset:r;display:flex;flex-direction:column;gap:8px}
.rep25-recs li{counter-increment:r;display:flex;gap:12px;align-items:center;padding:10px 12px;border:1px solid var(--r-line);border-radius:12px}
.rep25-recs li::before{content:counter(r);flex:none;width:24px;height:24px;border-radius:50%;background:var(--r-acc);color:#fff;font-size:.76rem;font-weight:700;display:flex;align-items:center;justify-content:center}
[data-theme="dark"] .rep25-recs li::before{color:#0f1a12}
.rep25-recs li>div{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;font-size:.87rem;color:var(--r-t1)}
.rep25-recs li>div span{color:var(--r-t2);font-size:.8rem}
.rep25-recs .btn{flex:none;display:inline-flex;align-items:center;gap:5px;min-height:38px}
.rep25-chart{margin:6px 0 16px}
.rep25-chart figcaption{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:.86rem;font-weight:650;color:var(--r-t1);margin-bottom:6px}
.rep25-legend{display:flex;gap:12px;font-size:.74rem;font-weight:500;color:var(--r-t3)}
.rep25-legend span{display:inline-flex;align-items:center;gap:5px}
.rep25-legend i{width:10px;height:10px;border-radius:3px;display:inline-block}
.rep25-legend i.s0{background:var(--r-acc)}.rep25-legend i.s1{background:var(--r-acc2)}
.rep25-chart-c{width:100%;min-height:40px}
.rep25-svg{display:block;max-width:100%;height:auto;overflow:visible}
.rep25-svg .gl{stroke:var(--r-line);stroke-width:1}
.rep25-svg .ax0{stroke:var(--r-t3);stroke-width:1;opacity:.6}
.rep25-svg text{font-family:inherit;font-size:11px;fill:var(--r-t3);font-variant-numeric:tabular-nums}
.rep25-svg .yl{text-anchor:end}.rep25-svg .xl{text-anchor:middle}
.rep25-svg .bar.s0{fill:var(--r-acc)}.rep25-svg .bar.s1{fill:var(--r-acc2)}
.rep25-svg .bar:hover{opacity:.82}
.rep25-svg .ln{fill:none;stroke-width:2.2;stroke-linejoin:round;stroke-linecap:round}
.rep25-svg .ln.s0{stroke:var(--r-acc)}.rep25-svg .ln.s1{stroke:var(--r-acc2);stroke-dasharray:5 4}
.rep25-svg .dt{stroke:var(--r-bg);stroke-width:1.2}.rep25-svg .dt.s0{fill:var(--r-acc)}.rep25-svg .dt.s1{fill:var(--r-acc2)}
.rep25-tbl{margin:4px 0 16px}
.rep25-tbl-h{font-size:.86rem;font-weight:650;color:var(--r-t1);margin-bottom:6px}
.rep25-tw{overflow-x:auto;border:1px solid var(--r-line);border-radius:10px}
.rep25-tw table{width:100%;border-collapse:collapse;font-size:.83rem;font-variant-numeric:tabular-nums}
.rep25-tw th,.rep25-tw td{padding:8px 11px;text-align:left;border-bottom:1px solid var(--r-line);white-space:nowrap;color:var(--r-t1)}
.rep25-tw thead th{background:var(--r-soft);font-size:.74rem;font-weight:700;color:var(--r-t2);position:sticky;top:0}
.rep25-tw tbody th{font-weight:600;white-space:normal;min-width:120px}
.rep25-tw tbody tr:last-child>*{border-bottom:0}
.rep25-tw .r{text-align:right}
.rep25 .rep25-tw .up{color:var(--r-up)!important;font-weight:600}.rep25 .rep25-tw .dn{color:var(--r-dn)!important;font-weight:600}
.rep25-note{font-size:.78rem;color:var(--r-t3);margin:4px 0 8px;line-height:1.45}
.rep25-empty-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.rep25-empty-list li{display:flex;flex-direction:column;gap:2px;font-size:.86rem;padding:10px 12px;border-radius:10px;background:var(--r-soft)}
.rep25-empty-list span{color:var(--r-t2);font-size:.8rem}
.rep25-foot{margin:16px 0 0;font-size:.76rem;color:var(--r-t3)}
/* history + schedules */
.rep25-hist{list-style:none;margin:0;padding:0}
.rep25-hist li{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:12px 2px;border-bottom:1px solid var(--r-line)}
.rep25-hist li:last-child{border-bottom:0}
.rep25-hist li.off .rep25-hist-t{color:var(--r-t3)}
.rep25-hist-m{min-width:0;flex:1}
.rep25-hist-t{font-weight:650;font-size:.9rem;color:var(--r-t1);display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:2px}
.rep25-hist-a{display:flex;gap:6px;align-items:center;flex:none}
.rep25-hist-a .btn{display:inline-flex;align-items:center;gap:5px;min-height:40px}
.rep25-badge{display:inline-flex;align-items:center;gap:4px;font-size:.7rem;font-weight:650;padding:2px 8px;border-radius:999px;background:var(--r-soft);color:var(--r-t2)}
.rep25-badge.ok{background:color-mix(in srgb,var(--r-up) 14%,transparent);color:var(--r-up)}
.rep25-badge.warn{background:color-mix(in srgb,var(--r-warn) 14%,transparent);color:var(--r-warn)}
.rep25-link{border:0;background:none;padding:0;font:inherit;color:var(--r-acc);text-decoration:underline;cursor:pointer}
.rep25-back{margin-bottom:10px}
.rep25-back .btn{min-height:40px}
.rep25-sched-top{display:flex;gap:14px;align-items:flex-start;justify-content:space-between;margin-bottom:8px}
.rep25-sched-top .btn{flex:none;display:inline-flex;align-items:center;gap:6px;min-height:40px}
.rep25-sform{border:1px solid var(--r-line);background:var(--r-soft);border-radius:12px;padding:14px;margin:10px 0 12px;display:flex;flex-direction:column;gap:12px}
/* the Quick reports tab keeps the older restaurant report card as it was */
#rep25-p-quick>.ci-card{margin-top:0}
@media (max-width:900px){.rep25-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){
  .rep25-card{padding:14px}
  .rep25-tab{flex:1 1 auto;padding:8px 4px;font-size:.82rem}
  .rep25-rep{padding:16px 14px;border-radius:14px}
  .rep25-row2,.rep25-lists{grid-template-columns:minmax(0,1fr)}
  .rep25-f-cmp{max-width:none}
  .rep25-tpls{grid-template-columns:minmax(0,1fr)}
  .rep25-mods{grid-template-columns:minmax(0,1fr)}
  .rep25-seg{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px;-webkit-mask-image:linear-gradient(90deg,#000 90%,transparent);scrollbar-width:none}
  .rep25-seg::-webkit-scrollbar{display:none}
  .rep25-chip{flex:none}
  .rep25-go .btn{flex:1 1 auto;justify-content:center}
  .rep25-rep-acts{width:100%}
  .rep25-rep-acts .btn{flex:1 1 auto;justify-content:center}
  .rep25-tile-v{font-size:1.15rem}
  .rep25-hist li{flex-direction:column;align-items:stretch}
  .rep25-hist-a{justify-content:flex-start;flex-wrap:wrap}
  .rep25-sched-top{flex-direction:column}
  .rep25-dates .form-input{max-width:none;flex:1}
  .rep25-dates label{flex:1;min-width:0}
  .rep25-recs li{flex-wrap:wrap}
}
@media print{.rep25-tabs,.rep25-rep-acts,.rep25-toc,.rep25-card:not(.rep25-rep){display:none!important}}
/* ═══════════════ r25 rev25 (2026-09-26): competitor finder · reviews inbox · listings ═══════════════ */
.rev25-sub{ color:var(--t3); font-size:.8rem; font-weight:500; }
.rev25-warn{ color:#b3261e; font-size:.85rem; margin:8px 0; }
[data-theme="dark"] .rev25-warn{ color:#ff9b93; }

/* ── Competitor finder ── */
#rev25-find-btn svg{ vertical-align:-3px; margin-right:4px; }
.rev25-finder{ background:var(--osp-card, var(--glass)); border:1px solid var(--osp-line, var(--border)); border-radius:16px; padding:18px 20px; margin:0 0 16px; }
.rev25-finder[hidden]{ display:none; }
.rev25-f-head{ display:flex; gap:12px; align-items:flex-start; justify-content:space-between; }
.rev25-f-head h3{ margin:0 0 4px; font-size:1.05rem; color:var(--t1); }
.rev25-f-head p{ margin:0 0 12px; max-width:720px; }
.rev25-x{ background:none; border:1px solid transparent; border-radius:10px; color:var(--t2); cursor:pointer; width:36px; height:36px; display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto; }
.rev25-x:hover, .rev25-x:focus-visible{ border-color:var(--osp-line, var(--border)); color:var(--t1); }
.rev25-keynote{ display:flex; gap:10px; align-items:flex-start; background:rgba(217,119,6,.09); border:1px solid rgba(217,119,6,.28); color:var(--t1); border-radius:12px; padding:11px 13px; margin:0 0 14px; font-size:.86rem; line-height:1.5; }
.rev25-keynote svg{ color:#b45309; flex:0 0 auto; margin-top:1px; }
.rev25-f-grid{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.4fr); gap:12px 16px; align-items:end; }
.rev25-f label, .rev25-kinds legend{ display:block; font-size:.78rem; font-weight:650; color:var(--t2); margin-bottom:5px; }
.rev25-f input[type=range]{ width:100%; accent-color:var(--osp-green, #2f5d3a); min-height:32px; }
.rev25-range-l{ display:flex; justify-content:space-between; font-size:.7rem; color:var(--t3); margin-top:-4px; }
.rev25-kinds{ border:0; padding:0; margin:14px 0 0; min-width:0; }
.rev25-chips{ display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.rev25-chip{ display:inline-flex; align-items:center; gap:6px; border:1px solid var(--osp-line, var(--border)); border-radius:999px; padding:6px 12px; font-size:.82rem; color:var(--t1); cursor:pointer; background:var(--osp-head, transparent); min-height:34px; }
.rev25-chip:has(input:checked){ border-color:var(--osp-green, #2f5d3a); background:rgba(47,93,58,.08); }
.rev25-chip input{ margin:0; accent-color:var(--osp-green, #2f5d3a); }
.rev25-more{ width:auto; min-width:170px; padding:6px 10px; font-size:.82rem; border-radius:999px; }
.rev25-f-actions{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin:14px 0 0; }
.rev25-f-actions .btn svg{ vertical-align:-3px; margin-right:4px; }
.rev25-res-head{ display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; margin:18px 0 8px; }
.rev25-res-head h4{ margin:0; font-size:.95rem; color:var(--t1); outline:none; }
.rev25-all{ font-size:.82rem; color:var(--t2); display:inline-flex; gap:6px; align-items:center; cursor:pointer; }
.rev25-res{ list-style:none; margin:0; padding:0; border:1px solid var(--osp-line, var(--border)); border-radius:12px; overflow:hidden; }
.rev25-row{ display:grid; grid-template-columns:36px minmax(0,1fr) auto; gap:10px; align-items:center; padding:11px 12px; border-top:1px solid var(--osp-line, var(--border)); }
.rev25-row:first-child{ border-top:0; }
.rev25-row.is-had{ opacity:.7; }
.rev25-pick{ display:flex; align-items:center; justify-content:center; min-height:36px; cursor:pointer; }
.rev25-pick input{ width:18px; height:18px; accent-color:var(--osp-green, #2f5d3a); }
.rev25-name{ font-weight:700; color:var(--t1); font-size:.92rem; }
.rev25-meta{ font-size:.78rem; color:var(--t3); margin-top:2px; }
.rev25-links{ display:flex; gap:12px; margin-top:3px; font-size:.76rem; }
.rev25-links a, .rev25-cmp-addr a{ color:var(--osp-green, #2f5d3a); font-weight:650; text-decoration:none; display:inline-flex; gap:3px; align-items:center; }
[data-theme="dark"] .rev25-links a, [data-theme="dark"] .rev25-cmp-addr a{ color:#8fd198; }
.rev25-tag{ display:inline-block; font-size:.66rem; font-weight:700; padding:2px 8px; border-radius:999px; background:var(--osp-head, rgba(0,0,0,.04)); border:1px solid var(--osp-line, var(--border)); color:var(--t2); margin-left:6px; vertical-align:1px; }
.rev25-tag.warn{ color:#b45309; border-color:rgba(217,119,6,.3); }
.rev25-nums{ display:grid; grid-template-columns:repeat(4, 64px); gap:4px; margin:0; text-align:right; }
.rev25-nums dt{ font-size:.64rem; text-transform:uppercase; letter-spacing:.05em; color:var(--t3); font-weight:650; }
.rev25-nums dd{ margin:0; font-size:.86rem; font-weight:700; color:var(--t1); white-space:nowrap; }
.rev25-star{ color:#f5a623; margin-right:2px; }
.rev25-imp{ display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin-top:12px; }
.rev25-none{ padding:18px; text-align:center; color:var(--t2); border:1px dashed var(--osp-line, var(--border)); border-radius:12px; margin-top:14px; font-size:.88rem; }
.rev25-cmp-addr{ display:flex; gap:6px; align-items:center; font-size:.76rem; color:var(--t2); }
.rev25-cmp-addr svg{ color:var(--t3); flex:0 0 auto; }
.rev25-cmp-addr span{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
@media (max-width: 760px){
  .rev25-finder{ padding:14px; border-radius:14px; }
  .rev25-f-grid{ grid-template-columns:minmax(0,1fr); }
  .rev25-row{ grid-template-columns:36px minmax(0,1fr); }
  .rev25-nums{ grid-column:2; grid-template-columns:repeat(4, minmax(0,1fr)); text-align:left; }
  .rev25-more{ min-width:0; width:100%; }
}

/* ── Reviews inbox ── */
.rev25-rv-tabs{ display:flex; gap:4px; border-bottom:1px solid var(--osp-line, var(--border)); margin:0 0 16px; overflow-x:auto; scrollbar-width:none; }
.rev25-rv-tabs button{ background:none; border:0; border-bottom:2px solid transparent; padding:10px 14px; font:inherit; font-size:.9rem; font-weight:650; color:var(--t2); cursor:pointer; white-space:nowrap; min-height:44px; }
.rev25-rv-tabs button[aria-selected="true"]{ color:var(--t1); border-bottom-color:var(--osp-green, #2f5d3a); }
.rev25-rv-tabs button:focus-visible{ outline:2px solid var(--osp-green, #2f5d3a); outline-offset:-2px; border-radius:6px; }
.rev25-rv-tabs .rev25-n[hidden]{ display:none; }
.rev25-rv-tabs .rev25-n{ display:inline-block; min-width:20px; padding:0 6px; margin-left:6px; border-radius:999px; background:rgba(217,119,6,.14); color:#b45309; font-size:.72rem; line-height:20px; text-align:center; }
.rev25-sum{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:12px; margin:0 0 14px; }
.rev25-sum > *{ background:var(--mk-card, var(--osp-card)); border:1px solid var(--mk-line, var(--osp-line)); border-radius:14px; padding:14px 16px; text-align:left; font:inherit; color:inherit; }
.rev25-sum button{ cursor:pointer; }
.rev25-sum button:hover, .rev25-sum button:focus-visible{ border-color:var(--osp-green, #2f5d3a); }
.rev25-sum-v{ font-size:1.5rem; font-weight:750; color:var(--t1); line-height:1.15; letter-spacing:-.01em; }
.rev25-sum-v .rev25-star svg{ width:18px; height:18px; vertical-align:-2px; }
.rev25-sum-l{ font-size:.72rem; font-weight:650; text-transform:uppercase; letter-spacing:.05em; color:var(--t3); margin-top:4px; }
.rev25-sum-h{ font-size:.78rem; color:var(--t2); margin-top:3px; }
.rev25-sum .is-warn .rev25-sum-v{ color:#b45309; }
.rev25-fbar{ display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin:0 0 12px; }
.rev25-fchips{ display:flex; gap:6px; flex-wrap:wrap; }
.rev25-fchip{ border:1px solid var(--osp-line, var(--border)); background:var(--osp-card, transparent); color:var(--t2); border-radius:999px; padding:6px 13px; font:inherit; font-size:.82rem; font-weight:650; cursor:pointer; min-height:36px; }
.rev25-fchip[aria-pressed="true"]{ background:var(--osp-green, #2f5d3a); border-color:var(--osp-green, #2f5d3a); color:#fff; }
.rev25-fchip:focus-visible{ outline:2px solid var(--osp-green, #2f5d3a); outline-offset:2px; }
.rev25-fbar .form-input{ width:auto; min-width:140px; min-height:36px; padding:6px 10px; font-size:.84rem; }
.rev25-fbar .rev25-grow{ flex:1; }
.rev25-inbox{ display:grid; grid-template-columns:minmax(0,5fr) minmax(0,6fr); gap:14px; align-items:start; }
.rev25-list{ display:flex; flex-direction:column; gap:8px; min-width:0; }
.rev25-item{ display:block; width:100%; text-align:left; background:var(--mk-card, var(--osp-card)); border:1px solid var(--mk-line, var(--osp-line)); border-radius:14px; padding:12px 14px; font:inherit; color:inherit; cursor:pointer; }
.rev25-item:hover{ border-color:var(--t3); }
.rev25-item:focus-visible{ outline:2px solid var(--osp-green, #2f5d3a); outline-offset:1px; }
.rev25-item[aria-current="true"]{ border-color:var(--osp-green, #2f5d3a); box-shadow:0 0 0 1px var(--osp-green, #2f5d3a) inset; }
.rev25-item-h{ display:flex; align-items:center; gap:8px; min-width:0; }
.rev25-who{ font-weight:700; color:var(--t1); font-size:.9rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0; }
.rev25-when{ margin-left:auto; font-size:.74rem; color:var(--t3); white-space:nowrap; }
.rev25-item-m{ display:flex; align-items:center; gap:8px; margin:5px 0 4px; flex-wrap:wrap; }
.rev25-txt{ font-size:.85rem; color:var(--t2); line-height:1.45; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; margin:0; }
.rev25-src{ display:inline-flex; align-items:center; gap:5px; font-size:.72rem; font-weight:700; color:var(--t2); }
.rev25-src i{ width:8px; height:8px; border-radius:50%; display:inline-block; background:var(--t3); }
.rev25-src.s-google i{ background:#4285f4; } .rev25-src.s-facebook i{ background:#1877f2; } .rev25-src.s-yelp i{ background:#d32323; } .rev25-src.s-tripadvisor i{ background:#00aa6c; } .rev25-src.s-private i{ background:#7c3aed; }
.rev25-state{ font-size:.68rem; font-weight:750; padding:2px 8px; border-radius:999px; white-space:nowrap; border:1px solid transparent; }
.rev25-state.todo{ color:#b45309; background:rgba(217,119,6,.1); border-color:rgba(217,119,6,.25); }
.rev25-state.done{ color:#3b7d43; background:rgba(87,161,95,.1); border-color:rgba(87,161,95,.28); }
.rev25-state.draft{ color:#1d4ed8; background:rgba(59,130,246,.08); border-color:rgba(59,130,246,.25); }
[data-theme="dark"] .rev25-state.todo{ color:#fbbf24; } [data-theme="dark"] .rev25-state.done{ color:#8fd198; } [data-theme="dark"] .rev25-state.draft{ color:#93c5fd; }
.rev25-stars{ color:#f5a623; letter-spacing:1px; font-size:.86rem; white-space:nowrap; }
.rev25-stars span{ color:var(--osp-line-2, #d8ddd8); }
.rev25-more-btn{ align-self:center; margin-top:4px; }
.rev25-detail{ position:sticky; top:12px; background:var(--mk-card, var(--osp-card)); border:1px solid var(--mk-line, var(--osp-line)); border-radius:16px; padding:18px 20px; min-width:0; max-height:calc(100vh - 110px); overflow:auto; }
.rev25-detail h3{ margin:0; font-size:1.05rem; color:var(--t1); }
.rev25-d-top{ display:flex; gap:10px; align-items:flex-start; }
.rev25-d-top .rev25-grow{ flex:1; min-width:0; }
.rev25-d-meta{ font-size:.8rem; color:var(--t3); margin-top:3px; }
.rev25-d-body{ font-size:.95rem; line-height:1.6; color:var(--t1); margin:14px 0; white-space:pre-wrap; overflow-wrap:anywhere; }
.rev25-d-reply{ border-left:3px solid var(--osp-green, #2f5d3a); background:var(--osp-head, rgba(0,0,0,.02)); border-radius:0 10px 10px 0; padding:10px 12px; font-size:.88rem; color:var(--t1); white-space:pre-wrap; margin:0 0 12px; }
.rev25-d-reply .rev25-sub{ display:block; margin-bottom:4px; }
.rev25-d label{ display:block; font-size:.78rem; font-weight:650; color:var(--t2); margin:0 0 5px; }
.rev25-d textarea{ width:100%; min-height:110px; }
.rev25-d-acts{ display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin-top:10px; }
.rev25-d-acts .rev25-grow{ flex:1; }
.rev25-back{ display:none; }
.rev25-fbwrap .g2-fb{ border:0; padding:0; background:none; margin:0; box-shadow:none; }
.rev25-empty-d{ color:var(--t2); font-size:.9rem; text-align:center; padding:40px 10px; }
.rev25-toolsbtn{ position:relative; }
.rev25-menu{ position:absolute; right:0; top:calc(100% + 6px); z-index:60; min-width:250px; background:var(--osp-card, #fff); border:1px solid var(--osp-line, var(--border)); border-radius:12px; box-shadow:0 12px 32px rgba(0,0,0,.16); padding:6px; display:flex; flex-direction:column; }
.rev25-menu[hidden]{ display:none; }
.rev25-menu button{ text-align:left; background:none; border:0; border-radius:8px; padding:9px 10px; font:inherit; font-size:.86rem; color:var(--t1); cursor:pointer; min-height:40px; }
.rev25-menu button:hover, .rev25-menu button:focus-visible{ background:var(--osp-head, rgba(0,0,0,.05)); outline:none; }
.rev25-menu small{ display:block; color:var(--t3); font-size:.74rem; }
.rev25-panel[hidden]{ display:none; }
.rev25-tools{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:14px; align-items:start; }
.rev25-tools > .mk-card{ margin:0; scroll-margin-top:80px; }
.rev25-tools .rev25-span{ grid-column:1 / -1; }
.rev25-flash{ animation:rev25flash 1.6s ease-out 1; }
@keyframes rev25flash{ 0%{ box-shadow:0 0 0 3px rgba(47,93,58,.45); } 100%{ box-shadow:0 0 0 0 rgba(47,93,58,0); } }
@media (prefers-reduced-motion: reduce){ .rev25-flash{ animation:none; } }
@media (max-width: 900px){
  .rev25-inbox{ grid-template-columns:minmax(0,1fr); }
  .rev25-detail{ display:none; position:fixed; inset:0; z-index:9000; border-radius:0; max-height:none; top:0; padding:16px 16px calc(28px + env(safe-area-inset-bottom)); border:0; }
  .rev25-inbox.show-d .rev25-detail{ display:block; }
  .rev25-back{ display:inline-flex; align-items:center; gap:4px; margin:0 0 12px; }
  .rev25-tools{ grid-template-columns:minmax(0,1fr); }
}
@media (max-width: 560px){
  .rev25-sum{ gap:8px; }
  .rev25-sum > *{ padding:10px 10px; }
  .rev25-sum-v{ font-size:1.2rem; }
  .rev25-sum-l{ font-size:.64rem; }
  .rev25-sum-h{ display:none; }
  .rev25-fbar .form-input{ flex:1 1 140px; min-width:0; }
  .rev25-menu{ position:fixed; left:12px; right:12px; top:auto; bottom:12px; }
}

/* ── Listings ── */
.rev25-ls-top{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,2fr); gap:14px; margin:0 0 16px; }
.rev25-score{ display:flex; gap:16px; align-items:center; }
.rev25-ring{ --p:0; width:92px; height:92px; border-radius:50%; flex:0 0 auto; display:grid; place-items:center; background:conic-gradient(var(--rc, #2f5d3a) calc(var(--p) * 1%), var(--osp-line, #e5e8e2) 0); }
.rev25-ring b{ width:74px; height:74px; border-radius:50%; background:var(--mk-card, var(--osp-card, #fff)); display:grid; place-items:center; font-size:1.35rem; color:var(--t1); }
.rev25-ring.mid{ --rc:#d97706; } .rev25-ring.low{ --rc:#b3261e; }
.rev25-brandinfo dl{ display:grid; grid-template-columns:auto minmax(0,1fr); gap:4px 12px; margin:0; font-size:.86rem; }
.rev25-brandinfo dt{ color:var(--t3); font-weight:650; }
.rev25-brandinfo dd{ margin:0; color:var(--t1); overflow-wrap:anywhere; white-space:pre-line; }
.rev25-ls-group{ margin:0 0 18px; }
.rev25-ls-group h3{ font-size:.78rem; text-transform:uppercase; letter-spacing:.06em; color:var(--t3); margin:0 0 8px; font-weight:700; }
.rev25-ls-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(270px, 1fr)); gap:12px; }
.rev25-site{ background:var(--mk-card, var(--osp-card)); border:1px solid var(--mk-line, var(--osp-line)); border-radius:14px; padding:14px 15px; display:flex; flex-direction:column; gap:9px; min-width:0; }
.rev25-site.is-skip{ opacity:.65; }
.rev25-site-h{ display:flex; gap:10px; align-items:center; }
.rev25-logo{ width:34px; height:34px; border-radius:9px; display:grid; place-items:center; color:#fff; font-weight:800; font-size:.8rem; flex:0 0 auto; }
.rev25-site-h .rev25-grow{ flex:1; min-width:0; }
.rev25-site-n{ font-weight:750; color:var(--t1); font-size:.95rem; }
.rev25-site-u{ font-size:.74rem; color:var(--t3); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; display:block; }
.rev25-checks{ display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:4px; margin:0; padding:0; list-style:none; }
.rev25-checks li{ font-size:.7rem; font-weight:650; color:var(--t2); display:flex; flex-direction:column; align-items:center; gap:3px; text-align:center; background:var(--osp-head, rgba(0,0,0,.02)); border-radius:8px; padding:6px 2px; }
.rev25-dot{ width:18px; height:18px; border-radius:50%; display:grid; place-items:center; }
.rev25-dot svg{ width:12px; height:12px; }
.rev25-dot.ok{ background:rgba(87,161,95,.16); color:#3b7d43; }
.rev25-dot.bad{ background:rgba(179,38,30,.12); color:#b3261e; }
.rev25-dot.unk{ background:var(--osp-line, #e5e8e2); color:var(--t3); }
[data-theme="dark"] .rev25-dot.ok{ color:#8fd198; } [data-theme="dark"] .rev25-dot.bad{ color:#ff9b93; }
.rev25-site-a{ display:flex; gap:6px; flex-wrap:wrap; margin-top:auto; }
.rev25-site-a .btn, .rev25-site-a a.btn{ font-size:.78rem; padding:6px 10px; min-height:34px; display:inline-flex; align-items:center; gap:4px; text-decoration:none; }
.rev25-ck-row{ display:grid; grid-template-columns:90px minmax(0,1fr) auto; gap:10px; align-items:center; padding:9px 0; border-top:1px solid var(--osp-line, var(--border)); }
.rev25-ck-row:first-of-type{ border-top:0; }
.rev25-ck-row .rev25-ours{ font-size:.84rem; color:var(--t1); overflow-wrap:anywhere; white-space:pre-line; }
.rev25-seg{ display:inline-flex; border:1px solid var(--osp-line, var(--border)); border-radius:10px; overflow:hidden; }
.rev25-seg label{ position:relative; }
.rev25-seg input{ position:absolute; opacity:0; inset:0; margin:0; cursor:pointer; }
.rev25-seg span{ display:block; padding:6px 10px; font-size:.76rem; font-weight:650; color:var(--t2); min-height:32px; line-height:20px; cursor:pointer; }
.rev25-seg input:checked + span{ background:var(--osp-green, #2f5d3a); color:#fff; }
.rev25-seg input:focus-visible + span{ outline:2px solid var(--osp-green, #2f5d3a); outline-offset:-2px; }
.rev25-seg label + label span{ border-left:1px solid var(--osp-line, var(--border)); }
.rev25-gdetail-bar{ display:flex; gap:10px; align-items:center; margin:0 0 12px; flex-wrap:wrap; }
@media (max-width: 760px){
  .rev25-ls-top{ grid-template-columns:minmax(0,1fr); }
  .rev25-ck-row{ grid-template-columns:minmax(0,1fr); gap:6px; }
  .rev25-ls-grid{ grid-template-columns:minmax(0,1fr); }
}
.rev25-site .mk-chip{ text-transform:none; margin-right:0; }
/* r24 sec — team access */
/* Schedule is read-only for people who can't edit it: no add / publish / sync, no pay totals */
body.sec24-sched-ro #section-ops-schedule [onclick^="newShift"],
body.sec24-sched-ro #section-ops-schedule [onclick^="publishWeek"],
body.sec24-sched-ro #section-ops-schedule #sched-sq-btn,
body.sec24-sched-ro #section-ops-schedule #sched-stats { display: none !important; }
body.sec24-sched-ro #section-ops-schedule #sched-grid button[onclick^="editShift"] { cursor: default; }

.sec24-myshifts { background: var(--glass); border: 1px solid var(--border); border-radius: 14px; padding: 14px 16px; margin: 0 0 16px; max-width: 840px; }
.sec24-ms-head { display: flex; align-items: center; gap: 8px; color: var(--green, #57a15f); margin-bottom: 10px; }
.sec24-ms-head h3 { margin: 0; font-size: .98rem; font-weight: 800; color: var(--t1); }
.sec24-ms-sub { font-size: .76rem; color: var(--t3); margin-left: auto; }
.sec24-ms-note { font-size: .84rem; color: var(--t2); line-height: 1.5; }
.sec24-ms-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.sec24-ms-item { display: flex; gap: 12px; align-items: flex-start; padding: 10px 12px; border: 1px solid var(--border); border-left: 3px solid #2f8f4e; border-radius: 10px; background: var(--bg2, var(--glass2)); }
.sec24-ms-item.is-today { box-shadow: 0 0 0 2px rgba(87,161,95,.35); }
.sec24-ms-day { min-width: 92px; font-weight: 800; font-size: .82rem; color: var(--t1); }
.sec24-ms-main { flex: 1; min-width: 0; }
.sec24-ms-time { font-weight: 700; font-size: .86rem; color: var(--t1); }
.sec24-ms-break { font-weight: 500; color: var(--t3); font-size: .76rem; }
.sec24-ms-meta { font-size: .76rem; color: var(--t2); margin-top: 2px; }
.sec24-ms-notes { font-size: .76rem; color: var(--t3); margin-top: 3px; overflow-wrap: anywhere; }
@media (max-width: 480px) {
  .sec24-myshifts { padding: 12px; }
  .sec24-ms-item { flex-direction: column; gap: 2px; }
  .sec24-ms-day { min-width: 0; }
}

/* Set-password dialog */
.sec24-pw { max-width: 420px; width: 94vw; }
.sec24-pw-who { font-size: .84rem; color: var(--t2); margin: 0 0 12px; }
.sec24-pw-show { display: flex; align-items: center; gap: 6px; font-size: .82rem; color: var(--t2); cursor: pointer; margin: -2px 0 8px; }
.sec24-pw-note { font-size: .74rem; color: var(--t3); line-height: 1.45; margin: 0 0 8px; }
.sec24-pw-msg { font-size: .8rem; color: #dc2626; min-height: 1.1em; margin-bottom: 4px; }

/* Settings → General: the Ospelia admin list is for Ospelia staff only */
.sec24-platform-only { display: none; }
body.sec24-platform .sec24-platform-only { display: block; }
body:not(.sec24-platform) .sec24-platform-only + div { margin-top: 0 !important; padding-top: 0 !important; border-top: 0 !important; }
/* r25 sites25 — Forms, Commerce, site settings, landing pages, template library, builder */
.s25-i{flex:0 0 auto;vertical-align:-3px}
.btn .s25-i,.btn-link .s25-i{margin-right:2px}
.btn.btn-sm .s25-i{width:15px;height:15px}
.s25-tabs button{display:inline-flex;align-items:center;gap:6px}
.s25-note{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 16px;margin:0 0 14px;border-radius:12px;background:color-mix(in srgb,var(--osp-green,#2f5d3a) 9%,transparent);border:1px solid color-mix(in srgb,var(--osp-green,#2f5d3a) 25%,transparent)}
.s25-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 16px}
.s25-link{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--mk-line,var(--osp-line,#e5e8e2));border-radius:14px;background:var(--mk-card,var(--osp-card,#fff));color:var(--t1,#1b1d1a);font:inherit;text-align:left;cursor:pointer;min-height:56px;transition:border-color .15s,box-shadow .15s}
.s25-link:hover,.s25-link:focus-visible{border-color:var(--osp-green,#2f5d3a);box-shadow:0 8px 20px -14px rgba(0,0,0,.4);outline:none}
.s25-link>.s25-i:first-child{color:var(--osp-green,#2f5d3a)}.s25-link>.s25-i:last-child{color:var(--t3,#7a7d76);margin-left:auto}
.s25-link span{display:flex;flex-direction:column;min-width:0}.s25-link b{font-size:.92rem}.s25-link small{font-size:.78rem;color:var(--t3,#7a7d76)}
.s25-subbar{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;flex-wrap:wrap}
.s25-subbar{max-width:100%;min-width:0}.s25-subbar>.mk-tabs{flex:1 1 auto;min-width:0;max-width:100%}
.s25-sublinks{display:flex;gap:14px;padding:0 2px 10px;flex:0 0 auto}.s25-sublinks .btn-link{display:inline-flex;align-items:center;gap:5px;font-size:.84rem;white-space:nowrap}
.s25-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:6px 0 12px}
.s25-search{position:relative;display:block;flex:1 1 220px;min-width:0;max-width:380px}.s25-search .s25-i{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--t3,#7a7d76);pointer-events:none}.s25-search input{padding-left:34px!important;width:100%}
.s25-sel{display:block;flex:0 1 auto;min-width:0}.s25-sel select{min-width:150px;max-width:100%}
.s25-h4{margin:0;font-size:1rem;flex:1 1 auto}
.s25-table td{vertical-align:top}
.s25-acts{white-space:nowrap}.s25-ftable .s25-acts{white-space:normal;width:150px;text-align:right}.s25-ftable .s25-acts .btn{margin:2px 0 2px 4px}.s25-acts .btn{margin-left:4px;display:inline-flex;align-items:center;gap:4px}
.s25-where{display:block;font-size:.84rem;line-height:1.4;margin:1px 0}.s25-where .s25-i{margin-right:4px}.s25-ftable td:first-child{min-width:170px}.s25-ftable td:nth-child(2){min-width:170px}.s25-where .s25-i{color:var(--t3,#7a7d76)}
.s25-on{display:inline-flex;align-items:center;gap:4px;font-weight:600;color:var(--osp-green,#2f5d3a)}
.s25-ell{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}
.s25-blank{text-align:center;padding:40px 20px;border:1px dashed var(--mk-line,var(--osp-line,#cfd5cb));border-radius:18px;max-width:640px;margin:10px auto}.s25-blank h3{margin:10px 0 6px}.s25-blank p{color:var(--t2,#4a4d47);max-width:480px;margin:0 auto 14px}.s25-blank .mk-row-actions{justify-content:center}
.s25-blank-i{width:56px;height:56px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--osp-green,#2f5d3a) 10%,transparent);color:var(--osp-green,#2f5d3a)}
.s25-back{display:inline-flex;align-items:center;gap:4px;margin:0 0 8px}
.s25-fh{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex-wrap:wrap;margin-bottom:10px}.s25-fh h3{margin:0 0 6px}.s25-uses{display:flex;flex-direction:column;gap:2px}
.s25-fset{display:grid;grid-template-columns:1fr 1fr auto;gap:18px;align-items:start}.s25-fset h4{display:flex;align-items:center;gap:6px;margin:0 0 4px;font-size:.92rem}.s25-fset p{margin:0;font-size:.88rem;color:var(--t2,#4a4d47)}
.s25-det summary{cursor:pointer;font-size:.86rem;color:var(--t2,#4a4d47);max-width:360px}.s25-det dl{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:8px 0 0;font-size:.85rem}.s25-det dt{color:var(--t3,#7a7d76);text-transform:capitalize}.s25-det dd{margin:0;white-space:pre-wrap;word-break:break-word}
.s25-warn{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;border-radius:10px;background:#fff6e0;color:#6b4a00;border:1px solid #f1d58a;margin-bottom:12px;font-size:.88rem}
.s25-ftpl .mks-tpl{text-align:left}
/* commerce strip */
.s25-cstrip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin:0 0 14px}.s25-cstrip:empty{display:none}
.s25-cell{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;border-radius:12px;border:1px solid var(--mk-line,var(--osp-line,#e5e8e2));background:var(--mk-card,var(--osp-card,#fff));font:inherit;color:var(--t1,#1b1d1a);cursor:pointer;text-align:left;min-width:0}
.s25-cell:hover:not([disabled]),.s25-cell:focus-visible{border-color:var(--osp-green,#2f5d3a);outline:none}.s25-cell b{font-size:1.1rem}.s25-cell span{font-size:.76rem;color:var(--t3,#7a7d76)}
.s25-stripe b{font-size:.95rem}
/* site settings */
.s25-set{display:grid;grid-template-columns:220px minmax(0,1fr);gap:22px;align-items:start}
.s25-snav{position:sticky;top:12px;display:flex;flex-direction:column;gap:2px;padding:6px;border:1px solid var(--mk-line,var(--osp-line,#e5e8e2));border-radius:14px;background:var(--mk-card,var(--osp-card,#fff))}
.s25-snav button{display:flex;align-items:center;gap:9px;padding:9px 10px;border:0;border-radius:9px;background:none;font:inherit;font-size:.88rem;color:var(--t2,#4a4d47);cursor:pointer;text-align:left;min-height:40px}
.s25-snav button:hover{background:color-mix(in srgb,var(--t1,#000) 5%,transparent)}.s25-snav button:focus-visible{outline:2px solid var(--osp-green,#2f5d3a);outline-offset:-2px}
.s25-snav button.on{background:color-mix(in srgb,var(--osp-green,#2f5d3a) 12%,transparent);color:var(--t1,#1b1d1a);font-weight:700}.s25-snav button.on .s25-i{color:var(--osp-green,#2f5d3a)}
.s25-spanes{min-width:0}
.s25-sp-h{margin:0 0 12px}.s25-sp-h h3{margin:0 0 4px;font-size:1.15rem}.s25-sp-h p{margin:0;color:var(--t2,#4a4d47);font-size:.9rem}
.s25-sc{border:1px solid var(--mk-line,var(--osp-line,#e5e8e2));border-radius:14px;background:var(--mk-card,var(--osp-card,#fff));padding:16px 18px;margin:0 0 12px}.s25-sc>h4{margin:0 0 10px;font-size:.98rem}
.s25-sc .mk-f:last-child{margin-bottom:0}
.s25-row{display:flex;gap:8px;align-items:center}.s25-row .form-input{flex:1;min-width:0}
.s25-look{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:6px}.s25-sw{display:inline-flex;height:28px;width:140px;border-radius:8px;overflow:hidden;border:1px solid rgba(0,0,0,.1)}.s25-sw i{flex:1}
.s25-parts{display:flex;flex-direction:column;gap:8px}.s25-part{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;background:color-mix(in srgb,var(--t1,#000) 3%,transparent)}
.s25-order{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.s25-order li{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 8px;border-radius:9px;border:1px solid var(--mk-line,var(--osp-line,#e5e8e2))}.s25-order li>span:last-child{display:flex;gap:2px}.s25-order .mk-ib{min-width:36px;min-height:36px;display:inline-flex;align-items:center;justify-content:center}
.s25-go{display:flex;justify-content:space-between;align-items:center;gap:10px;background:color-mix(in srgb,var(--osp-green,#2f5d3a) 6%,transparent)}
.s25-danger{color:#b3261e!important}
.s25-savebar{grid-column:1 / -1;position:sticky;bottom:0;z-index:5;display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:10px 14px;margin-top:4px;border:1px solid var(--mk-line,var(--osp-line,#e5e8e2));border-radius:14px;background:var(--mk-card,var(--osp-card,#fff));box-shadow:0 -8px 24px -18px rgba(0,0,0,.35)}
.s25-savebar #s25-save-st{margin-right:auto;font-size:.86rem;color:var(--t3,#7a7d76)}.s25-savebar.dirty{border-color:#e0b04a}.s25-savebar #s25-save-st.dirty{color:#8a5a00;font-weight:700}
#s25-dom .mk-card{margin-bottom:12px}
/* landing pages */
.s25-lbar .s25-view{margin-left:auto}
.s25-lgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.s25-lcard{display:flex;flex-direction:column;border:1px solid var(--mk-line,var(--osp-line,#e5e8e2));border-radius:16px;background:var(--mk-card,var(--osp-card,#fff));overflow:hidden;min-width:0}
.s25-th{position:relative;aspect-ratio:16/9;background:linear-gradient(135deg,color-mix(in srgb,var(--osp-green,#2f5d3a) 14%,#f4f3ee),#ecebe5);overflow:hidden;--k:.22}
.s25-th img{width:100%;height:100%;object-fit:cover;display:block}
.s25-th>span{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:12px;text-align:center;color:var(--osp-green,#2f5d3a)}.s25-th>span b{font-size:.9rem;color:var(--t1,#1b1d1a);max-width:90%}
.s25-th-event{background:linear-gradient(135deg,#f6e3d3,#efe9e2)}.s25-th-links{background:linear-gradient(135deg,#dfe9f5,#eef1f5)}.s25-th-signup{background:linear-gradient(135deg,#e3f1e6,#eef3ee)}.s25-th-offer{background:linear-gradient(135deg,#f7ecd0,#f3efe4)}
.s25-th.s25-live iframe{position:absolute;left:0;top:0;width:1200px;height:900px;border:0;transform:scale(var(--k));transform-origin:0 0;pointer-events:none}
.s25-lc-b{display:flex;flex-direction:column;gap:6px;padding:12px 14px 14px;flex:1;min-width:0}.s25-lc-t{display:flex;gap:6px;flex-wrap:wrap}.s25-lc-b h4{margin:2px 0 0;font-size:1rem}
.s25-lnums{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:4px 0 2px}.s25-lnums div{min-width:0}.s25-lnums dt{font-size:.72rem;color:var(--t3,#7a7d76)}.s25-lnums dd{margin:0;font-weight:700;font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.s25-lnums small{font-weight:600;color:var(--osp-green,#2f5d3a)}
.s25-lc-a{display:flex;gap:6px;align-items:center;margin-top:auto;padding-top:6px}.s25-lc-a .btn{display:inline-flex;align-items:center;gap:4px}
.s25-lc-a .mkd-more,.s25-acts .mkd-more{position:relative;display:inline-block}
.s25-lc-a .mkd-menu a,.s25-acts .mkd-menu a{display:block;padding:8px 12px;color:inherit;text-decoration:none;font-size:.88rem;border-radius:6px}.s25-lc-a .mkd-menu a:hover,.s25-acts .mkd-menu a:hover{background:color-mix(in srgb,var(--t1,#000) 6%,transparent)}
.s25-lname{display:flex;gap:10px;align-items:center;min-width:0}.s25-lname .s25-th{width:72px;flex:0 0 72px;border-radius:8px;--k:.06}.s25-lname .s25-th>span .s25-i{width:18px;height:18px}.s25-ltable td[data-l="Type"],.s25-ltable td[data-l="Last edited"]{white-space:nowrap}.s25-ltable .s25-acts{white-space:normal;width:120px}.s25-ltable .s25-acts .btn{margin:2px 0 2px 4px}.s25-lname .s25-th>span b{display:none}.s25-lname>div{min-width:0}
/* template browser */
body.s25-tb-open{overflow:hidden}
.s25-tb{position:fixed;inset:0;z-index:10060;background:rgba(15,18,14,.55);display:flex;align-items:stretch;justify-content:center;padding:18px}
.s25-tb-in{background:var(--mk-card,var(--osp-card,#fff));color:var(--t1,#1b1d1a);border-radius:18px;width:100%;max-width:1400px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 30px 80px -20px rgba(0,0,0,.5)}
.s25-tb-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:14px 18px;border-bottom:1px solid var(--mk-line,var(--osp-line,#e5e8e2))}
.s25-tb-t{display:flex;flex-direction:column;margin-right:auto;min-width:0}.s25-tb-t h2{margin:0;font-size:1.2rem}
.s25-tb-q{flex:0 1 300px}.s25-tb-x{font-size:1.6rem;min-width:40px;min-height:40px}
.s25-tb-b{display:grid;grid-template-columns:220px minmax(0,1fr);flex:1;min-height:0}
.s25-tb-cats{overflow:auto;padding:10px;border-right:1px solid var(--mk-line,var(--osp-line,#e5e8e2));display:flex;flex-direction:column;gap:2px}
.s25-tb-cats button{display:flex;justify-content:space-between;align-items:center;gap:6px;border:0;background:none;padding:8px 10px;border-radius:8px;font:inherit;font-size:.86rem;color:var(--t2,#4a4d47);cursor:pointer;text-align:left;min-height:36px}
.s25-tb-cats button small{color:var(--t3,#7a7d76);font-size:.72rem}.s25-tb-cats button:hover{background:color-mix(in srgb,var(--t1,#000) 5%,transparent)}.s25-tb-cats button.on{background:color-mix(in srgb,var(--osp-green,#2f5d3a) 12%,transparent);color:var(--t1,#1b1d1a);font-weight:700}
.s25-tb-main{overflow:auto;padding:16px}
.s25-tb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}
.s25-tc{display:flex;flex-direction:column;border:1px solid var(--mk-line,var(--osp-line,#e5e8e2));border-radius:14px;overflow:hidden;background:var(--mk-card,var(--osp-card,#fff));min-width:0}
.s25-tc-pv{display:block;border:0;padding:0;background:#f1f1ec;cursor:zoom-in;width:100%}
.s25-tc-th{position:relative;height:300px;overflow:hidden;--k:.21}.s25-tc.sec .s25-tc-th{height:170px}
.s25-tc-th iframe{position:absolute;left:0;top:0;width:1200px;height:1600px;border:0;transform:scale(var(--k));transform-origin:0 0;pointer-events:none;background:#fff}
.s25-tc.sec .s25-tc-th iframe{height:820px}
.s25-tc-b{display:flex;flex-direction:column;gap:8px;padding:10px 12px 12px;flex:1}.s25-tc-b>div:first-child{display:flex;flex-direction:column;gap:2px}.s25-tc-b b{font-size:.92rem}.s25-tc-b>div:first-child span{font-size:.8rem;color:var(--t3,#7a7d76)}
.s25-tc-m{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.s25-tc-a{display:flex;gap:6px;margin-top:auto}.s25-tc-a .btn{flex:1}
.s25-tb-none{grid-column:1 / -1}
.s25-tbp .mk-modal{max-width:1200px;width:100%}.s25-tbp .mk-modal-h{gap:10px;flex-wrap:wrap}
.s25-tbp-f{background:#e9e9e4;border-radius:12px;overflow:hidden;display:flex;justify-content:center}.s25-tbp-f iframe{width:100%;height:min(70vh,760px);border:0;background:#fff;transition:width .2s}
.s25-tb-cta{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;margin:0 0 14px;border-radius:12px;background:color-mix(in srgb,var(--osp-green,#2f5d3a) 8%,transparent);border:1px solid color-mix(in srgb,var(--osp-green,#2f5d3a) 22%,transparent)}.s25-tb-cta div{display:flex;flex-direction:column}.s25-tb-cta span{font-size:.82rem;color:var(--t2,#4a4d47)}.s25-tb-cta .btn{display:inline-flex;align-items:center;gap:5px;flex:0 0 auto}
/* builder */
#mkw .s25-ur{display:inline-flex;align-items:center;gap:5px;width:auto!important;padding:0 8px}.s25-ul{font-size:.8rem;font-weight:600}
#mkw .s25-ur:disabled{opacity:.4}
#mkw .s25-tplbtn{display:inline-flex;align-items:center;gap:5px}
#mkw-state.s25-state{padding:3px 9px;border-radius:99px;font-size:.76rem;font-weight:700;background:color-mix(in srgb,var(--t1,#000) 7%,transparent);color:var(--t2,#4a4d47)}
#mkw-state[data-s25="dirty"]{background:#fff1d6;color:#8a5a00}#mkw-state[data-s25="saved"],#mkw-state[data-s25="saved-live"]{background:#e6eefc;color:#1d4ed8}#mkw-state[data-s25="live"]{background:#dcf3e5;color:#146c3c}#mkw-state[data-s25="wait"]{background:#f3e8ff;color:#6b21a8}
.s25-lib{display:flex;align-items:center;gap:10px;width:100%;padding:12px;margin:4px 0 10px;border:1px solid color-mix(in srgb,var(--osp-green,#2f5d3a) 35%,transparent);border-radius:12px;background:color-mix(in srgb,var(--osp-green,#2f5d3a) 8%,transparent);font:inherit;color:var(--t1,#1b1d1a);cursor:pointer;text-align:left}
.s25-lib:hover,.s25-lib:focus-visible{border-color:var(--osp-green,#2f5d3a);outline:none}.s25-lib>.s25-i{color:var(--osp-green,#2f5d3a)}.s25-lib span{display:flex;flex-direction:column}.s25-lib small{font-size:.76rem;color:var(--t3,#7a7d76)}
.s25-most-h,.s25-all-h{font-weight:700}
.s25-ins{min-width:250px;max-height:80vh;overflow:auto}.s25-ins-h{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--t3,#7a7d76);padding:6px 10px 4px}
.s25-ins-lays{display:flex;gap:6px;padding:4px 8px 8px}.s25-ins-lays button{flex:1;display:flex!important;align-items:stretch!important;gap:3px;height:34px;padding:5px!important;border:1px solid var(--osp-line,#cfd5cb)!important;border-radius:7px!important}.s25-ins-lays i{display:block;background:#e2e8f0;border-radius:3px}
.s25-tour{position:fixed;inset:0;z-index:10090}
.s25-tour-hole{position:fixed;border-radius:12px;box-shadow:0 0 0 9999px rgba(10,14,10,.55);pointer-events:none;transition:all .25s;outline:3px solid #22a06b}
.s25-tour-card{position:fixed;background:var(--mk-card,var(--osp-card,#fff));color:var(--t1,#1b1d1a);border-radius:14px;padding:16px 18px;box-shadow:0 20px 50px -12px rgba(0,0,0,.5);transition:top .25s,left .25s}
.s25-tour-card h3{margin:2px 0 6px;font-size:1.05rem}.s25-tour-card p{margin:0 0 12px;font-size:.9rem;color:var(--t2,#4a4d47);line-height:1.45}
.s25-tour-n{font-size:.72rem;font-weight:700;color:var(--osp-green,#2f5d3a);text-transform:uppercase;letter-spacing:.05em}
.s25-tour-a{display:flex;align-items:center;gap:8px}.s25-tour-a span{flex:1}
/* phones */
@media (max-width:1499px){ #mkw .s25-ul{display:none} #mkw .s25-ur{padding:0} }
@media (max-width:1399px){ #mkw .s25-tplbtn .s25-tl{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)} }
@media (max-width:900px){ .s25-cstrip{grid-template-columns:repeat(3,minmax(0,1fr))} .s25-links{grid-template-columns:1fr} .s25-fset{grid-template-columns:1fr} }
@media (max-width:760px){
  .s25-set{grid-template-columns:minmax(0,1fr);gap:12px}
  .s25-snav{position:sticky;top:0;z-index:4;flex-direction:row;overflow-x:auto;gap:4px;padding:6px;border-radius:12px;scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg,#000 88%,transparent);mask-image:linear-gradient(90deg,#000 88%,transparent)}
  .s25-snav::-webkit-scrollbar{display:none}
  .s25-snav button{flex:0 0 auto;white-space:nowrap;padding:8px 12px;min-height:40px}
  .s25-savebar{bottom:calc(64px + env(safe-area-inset-bottom,0px));padding:8px 10px}
  .s25-savebar #s25-save-st{font-size:.8rem}
  .s25-sc{padding:14px}
  .s25-row{flex-wrap:wrap}.s25-row .btn{flex:0 0 auto}
  .s25-bar{gap:6px}.s25-search{flex:1 1 100%;max-width:none}.s25-sel{flex:1 1 calc(50% - 6px)}.s25-sel select{width:100%;min-width:0}
  .s25-lbar .s25-view{margin-left:0}
  .s25-subbar{flex-direction:column;align-items:stretch}.s25-sublinks{padding:0 2px 6px;max-width:100%;flex-wrap:wrap;gap:6px 14px}.s25-sublinks .btn-link{min-height:36px}
  .s25-cstrip{grid-template-columns:repeat(2,minmax(0,1fr))}
  .s25-tw{overflow:visible;border:0}
  .s25-table,.s25-table tbody,.s25-table tr,.s25-table td{display:block;width:100%}
  .s25-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .s25-table tr{border:1px solid var(--mk-line,var(--osp-line,#e5e8e2));border-radius:12px;padding:10px 12px;margin:0 0 10px;background:var(--mk-card,var(--osp-card,#fff))}
  .s25-table tr[hidden]{display:none}
  .s25-table td{border:0!important;padding:4px 0!important;text-align:left!important}
  .s25-table td[data-l]:not([data-l=""]):not([data-l="Form"]):not([data-l="Page"]):not([data-l="Guest"])::before{content:attr(data-l);display:block;font-size:.72rem;color:var(--t3,#7a7d76);font-weight:600}
  .s25-acts{white-space:normal;display:flex!important;flex-wrap:wrap;gap:6px;padding-top:8px!important}.s25-acts .btn{margin:0;min-height:40px}
  .s25-ell{max-width:100%}
  .s25-det summary{max-width:none}
  .s25-lgrid{grid-template-columns:minmax(0,1fr)}
  .s25-lc-a .btn{min-height:40px}
  .s25-tb{padding:0}.s25-tb-in{border-radius:0}
  .s25-tb-h{padding:10px 12px;gap:8px}.s25-tb-t{flex:1 1 calc(100% - 56px)}.s25-tb-t .mk-hint{font-size:.74rem}.s25-tb-q{flex:1 1 100%;order:5}.s25-tb-what{order:4}.s25-tb-look{order:6;flex:1 1 100%}.s25-tb-look select{width:100%}
  .s25-tb-b{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}
  .s25-tb-cats{flex-direction:row;overflow-x:auto;border-right:0;border-bottom:1px solid var(--mk-line,var(--osp-line,#e5e8e2));padding:8px 10px;scrollbar-width:none}.s25-tb-cats::-webkit-scrollbar{display:none}
  .s25-tb-cats button{flex:0 0 auto;white-space:nowrap;border:1px solid var(--mk-line,var(--osp-line,#e5e8e2));border-radius:99px;min-height:36px}
  .s25-tb-main{padding:12px}.s25-tb-grid{grid-template-columns:minmax(0,1fr);gap:12px}
  .s25-tc-th{height:240px}.s25-tc.sec .s25-tc-th{height:150px}
  .s25-tc-a .btn{min-height:40px}
  .s25-tbp-f iframe{height:62vh}
  .s25-tb-cta{flex-direction:column;align-items:stretch}
}
.s25-speed{display:flex;flex-direction:column}.s25-sp{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;align-items:center;padding:8px 0;border-top:1px solid var(--mk-line,var(--osp-line,#e5e8e2))}.s25-sp>div[id]{grid-column:1 / -1}.s25-sp>div[id]:empty{display:none}
/* ==== r25 social25 (2026-09-26): grouped social posts + richer marketing calendar ==== */
.s25-icons{display:inline-flex;align-items:center;gap:2px;flex:none}
.s25-muted{color:var(--t3);font-size:.8rem}
.s25-sr,.s25c-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.s25-del{color:#dc2626!important}
.s25-lnk{border:0;background:none;padding:4px 2px;color:#2f5d3a;font-weight:700;font-size:.76rem;cursor:pointer;text-decoration:underline;text-underline-offset:2px;min-height:32px}
[data-theme="dark"] .s25-lnk{color:#8fd197}
/* planner: one card per post */
.s25-nets{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.s25-net{display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px;padding:7px 10px;border:1px solid var(--border);border-radius:10px;background:var(--bg,#fff);font-size:.8rem}
.s25-net-n{display:inline-flex;align-items:center;gap:6px;min-width:0}
.s25-net-n b{font-weight:700;color:var(--t1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px}
.s25-net-a{margin-left:auto;display:inline-flex;gap:10px;flex-wrap:wrap}
.s25-net .soc-err{flex-basis:100%;margin:2px 0 0}
.s25-own{font-size:.68rem;font-weight:700;color:#7a4fb5;background:rgba(122,79,181,.12);border-radius:999px;padding:1px 7px}
.s25-res{font-size:.74rem;color:var(--t2)}
.s25-chip .s25-icons svg{width:12px;height:12px}
.soc-chip:focus-visible{outline:2px solid #2f5d3a;outline-offset:1px}
/* editor tabs */
.mkt24p-pn{display:none!important}
.s25-tabs{display:flex;flex-wrap:wrap;gap:4px;margin-top:14px;border-bottom:1px solid var(--border);min-width:0;max-width:100%}
.s25-panel,.s25-fs{min-width:0;max-width:100%}
.soc-sheet-b>.soc-form,.soc-sheet-b>.soc-prev{min-width:0}
.s25-tabs::-webkit-scrollbar{display:none}
.s25-tab{border:0;background:none;padding:8px 12px 7px;display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:.82rem;color:var(--t2);border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer;white-space:nowrap;min-height:40px}
.s25-tab[aria-selected="true"]{color:var(--t1);border-color:#2f5d3a}
.s25-tab:focus-visible{outline:2px solid #2f5d3a;outline-offset:-2px;border-radius:6px}
.s25-tabst{font-size:.66rem;font-weight:600;color:var(--t3)}
.s25-tabst.own{color:#7a4fb5}
.s25-panel{display:flex;flex-direction:column;gap:6px}
.s25-panel[hidden]{display:none}
.s25-np-h{margin:12px 0 2px;font-size:.84rem;color:var(--t2);line-height:1.5}
.s25-np-h svg{vertical-align:-3px;margin-right:4px}
.s25-lock{margin:4px 0;padding:8px 10px;border-radius:9px;background:rgba(87,161,95,.12);font-size:.8rem;color:var(--t1)}
.s25-fs{border:1px solid var(--border);border-radius:12px;padding:8px 12px 12px;margin:8px 0 0;display:flex;flex-direction:column;gap:6px;min-width:0}
.s25-fs legend{font-size:.7rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--t3);padding:0 4px}
.s25-fs textarea{min-height:110px;font:inherit;line-height:1.5;resize:vertical}
.s25-fs textarea:disabled,.s25-fs input:disabled{opacity:.62;background:var(--glass)}
.s25-cnt{font-size:.72rem;color:var(--t3)}
.s25-cnt .over{color:#dc2626;font-weight:700}
.s25-thumbs{min-height:0}
.s25-pvown{margin:0 0 8px;font-size:.76rem;font-weight:700;color:#7a4fb5}
.pv-ig-acts{display:flex;gap:10px;align-items:center}
/* confirm */
.s25-csheet{width:min(460px,100%)!important}
.s25-cbody{padding:16px 20px;display:flex;flex-direction:column;gap:6px;font-size:.9rem;color:var(--t1);overflow:auto}
.s25-cbody p{margin:0 0 6px;line-height:1.5}
.s25-confirm{z-index:4200}
#s25c-local{z-index:4100}
.soc-sheet-f{display:flex;gap:8px;align-items:center;flex-wrap:wrap}

/* ---- marketing calendar ---- */
.s25c{--s25c-line:var(--border);display:flex;flex-direction:column;gap:12px}
.s25c-top{display:flex;align-items:center;gap:10px 14px;flex-wrap:wrap}
.s25c-nav{display:flex;align-items:center;gap:6px;min-width:0}
.s25c-ib{padding:7px 10px!important;display:inline-grid;place-items:center;min-width:40px;min-height:40px}
.s25c-title{margin:0 0 0 6px;font-size:1.15rem;font-weight:800;color:var(--t1);white-space:nowrap}
.s25c-seg{display:inline-flex;border:1px solid var(--border);border-radius:10px;padding:3px;background:var(--glass)}
.s25c-seg button{border:0;background:none;color:var(--t2);font-weight:700;font-size:.8rem;padding:7px 14px;border-radius:7px;cursor:pointer;min-height:34px}
.s25c-seg button[aria-pressed="true"]{background:var(--t1);color:var(--bg,#fff)}
.s25c-topr{display:flex;align-items:center;gap:8px;margin-left:auto}
.s25c-topr .btn,.s25c-bar2 .btn{display:inline-flex;align-items:center;gap:6px;min-height:40px}
.s25c-bar2{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.s25c-fl{font-size:.72rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--t3)}
.s25c-brand{max-width:200px;min-height:40px}
.s25c-stsel{max-width:190px;min-height:40px}
.s25c-sp{flex:1}
.s25c-b2acts{display:inline-flex;gap:8px;flex-wrap:wrap}
.s25c-chips{display:flex;gap:6px;flex-wrap:wrap;min-width:0;align-items:center}
.s25c-socg{display:inline-flex;align-items:center;gap:3px;border:1px solid var(--border);border-radius:999px;padding:2px 3px 2px 10px;background:var(--glass)}
.s25c-socl{font-size:.7rem;font-weight:800;color:var(--t3);margin-right:3px}
.s25c-fic{padding:4px 8px!important;border-color:transparent!important;background:transparent!important;min-width:36px;justify-content:center}
.s25c-fic[aria-pressed="true"]{background:color-mix(in srgb,var(--c) 12%,var(--bg,#fff))!important;border-color:color-mix(in srgb,var(--c) 45%,var(--border))!important}
.s25c-fic[aria-pressed="false"]{text-decoration:none;opacity:.4}
.s25c-fchip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);background:var(--glass);color:var(--t2);font-size:.76rem;font-weight:600;border-radius:999px;padding:6px 11px;cursor:pointer;min-height:34px}
.s25c-fchip small{font-size:.66rem;color:var(--t3);font-weight:700}
.s25c-fchip[aria-pressed="true"]{color:var(--t1);border-color:color-mix(in srgb,var(--c) 55%,var(--border));background:color-mix(in srgb,var(--c) 10%,var(--bg,#fff))}
.s25c-fchip[aria-pressed="false"]{opacity:.62;text-decoration:line-through;text-decoration-color:var(--t3)}
.s25c-fchip[aria-pressed="false"] .s25c-dot{background:transparent;box-shadow:inset 0 0 0 1.5px var(--c)}
.s25c-fall{text-decoration:none!important;opacity:1!important;font-weight:700}
.s25c-dot{width:9px;height:9px;border-radius:3px;background:var(--c);flex:none}
.s25c-hint{margin:0;font-size:.82rem;color:var(--t2);max-width:900px;line-height:1.5}
.s25c-legend{font-size:.72rem;color:var(--t2)}
.s25c-legend summary{cursor:pointer;font-weight:700;color:var(--t3);font-size:.72rem;min-height:32px;display:inline-flex;align-items:center;list-style:none}
.s25c-legend summary::-webkit-details-marker{display:none}
.s25c-legend summary::before{content:'';width:6px;height:6px;border:solid currentColor;border-width:0 1.5px 1.5px 0;transform:rotate(-45deg);margin-right:8px;transition:transform .15s}
.s25c-legend details[open] summary::before{transform:rotate(45deg)}
@media (min-width: 761px){ .s25c-legend details[open] summary{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)} }
.s25c-lgb{display:flex;align-items:center;gap:6px 14px;flex-wrap:wrap}
.s25c-lg-h{font-weight:800;color:var(--t3);text-transform:uppercase;letter-spacing:.06em;font-size:.64rem}
.s25c-lg{display:inline-flex;align-items:center;gap:5px}
.s25c-lg i{width:10px;height:10px;border-radius:3px;display:inline-block}
.s25c-sw{width:18px;height:10px;border-radius:3px;display:inline-block;border:1.5px solid #8a8f8a;background:transparent}
.s25c-sw.st-planned{border-style:dashed}
.s25c-sw.st-scheduled{background:rgba(47,93,58,.18);border-color:#2f5d3a}
.s25c-sw.st-done{background:#8a8f8a}
.s25c-sw.st-attention{border-color:#dc2626;background:rgba(220,38,38,.14)}
.s25c-sw-today{border-color:#57a15f;box-shadow:0 0 0 2px rgba(87,161,95,.35)}
.s25c-grid{min-width:0}
.s25c-loading{padding:40px;color:var(--t3);text-align:center}
.s25c-cal{border:1px solid var(--border);border-radius:14px;overflow:hidden;background:var(--osp-card,var(--bg,#fff))}
.s25c-dow{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));background:var(--glass);border-bottom:1px solid var(--border)}
.s25c-dow div{padding:8px 10px;font-size:.68rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--t3)}
.s25c-week{border-bottom:1px solid var(--border)}
.s25c-week:last-child{border-bottom:0}
.s25c-wkbar{display:flex;justify-content:space-between;gap:10px;padding:4px 10px;font-size:.68rem;color:var(--t3);background:color-mix(in srgb,var(--glass) 60%,transparent);border-bottom:1px solid color-mix(in srgb,var(--border) 60%,transparent)}
.s25c-wkbar span:first-child{font-weight:700}
.s25c-wkc{font-weight:600;color:var(--t2);text-align:right}
.s25c-band{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px 4px;padding:4px 4px 0}
.s25c-bar{border:0;background:#2B3266;color:#fff;font-size:.68rem;font-weight:700;text-align:left;padding:3px 8px;border-radius:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;min-width:0;min-height:22px}
.s25c-bar.s25c-l{border-top-left-radius:0;border-bottom-left-radius:0}
.s25c-bar.s25c-r{border-top-right-radius:0;border-bottom-right-radius:0}
.s25c-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.s25c-day{min-height:122px;padding:5px 5px 6px;border-right:1px solid color-mix(in srgb,var(--border) 70%,transparent);display:flex;flex-direction:column;gap:3px;min-width:0;cursor:pointer;transition:background .12s}
.s25c-day:last-child{border-right:0}
.s25c-day:hover{background:color-mix(in srgb,var(--glass) 70%,transparent)}
.s25c-out{background:var(--glass)}
.s25c-out .s25c-num{opacity:.5}
.s25c-past .s25c-num{color:var(--t3)}
.s25c-today{background:rgba(87,161,95,.07);box-shadow:inset 0 0 0 2px rgba(87,161,95,.55)}
.s25c-sel{box-shadow:inset 0 0 0 2px #2f5d3a}
.s25c-over{background:rgba(87,161,95,.18)!important;box-shadow:inset 0 0 0 2px #57a15f}
.s25c-dragon .s25c-past{opacity:.55}
.s25c-dh{display:flex;align-items:center;gap:4px;min-height:24px}
.s25c-num{border:0;background:none;padding:2px 6px;border-radius:999px;font-size:.8rem;font-weight:800;color:var(--t1);cursor:pointer;min-width:26px;min-height:24px}
.s25c-num:hover{background:var(--glass)}
.s25c-today .s25c-num{background:#2f5d3a;color:#fff}
.s25c-wd{font-weight:700;color:var(--t3);font-size:.72rem}
.s25c-today .s25c-wd{color:#fff}
.s25c-tpill{font-size:.6rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#2f5d3a;background:rgba(87,161,95,.16);border-radius:999px;padding:1px 6px}
[data-theme="dark"] .s25c-tpill{color:#8fd197}
.s25c-dots{display:none;gap:2px}
.s25c-dots i{width:6px;height:6px;border-radius:50%;display:block}
.s25c-add{margin-left:auto;border:0;background:none;color:var(--t3);width:26px;height:26px;border-radius:7px;display:inline-grid;place-items:center;cursor:pointer;opacity:0;flex:none}
.s25c-day:hover .s25c-add,.s25c-add:focus-visible,.s25c-sel .s25c-add{opacity:1}
.s25c-add:hover{background:var(--glass);color:var(--t1)}
.s25c-tags,.s25c-items{display:flex;flex-direction:column;gap:3px;min-width:0}
.s25c-chip{display:flex;align-items:center;gap:5px;width:100%;text-align:left;border:1px solid color-mix(in srgb,var(--c) 30%,var(--border));border-left:3px solid var(--c);background:color-mix(in srgb,var(--c) 9%,var(--osp-card,var(--bg,#fff)));color:var(--t1);font-size:.7rem;padding:3px 6px;border-radius:6px;cursor:pointer;min-width:0;min-height:24px;font-family:inherit}
.s25c-chip:hover{border-color:var(--c)}
.s25c-chip:focus-visible{outline:2px solid var(--c);outline-offset:1px}
.s25c-chip[draggable="true"]{cursor:grab}
.s25c-chip.s25c-dragging{opacity:.4}
.s25c-chip.st-planned{border-style:dashed;border-left-style:solid;background:transparent}
.s25c-chip.st-done{opacity:.72}
.s25c-chip.st-done .s25c-cx{text-decoration:none}
.s25c-chip.st-attention{box-shadow:inset 0 0 0 1px #dc2626;border-color:#dc2626}
.s25c-bgc{background:transparent;border-color:transparent;border-left-width:2px;color:var(--t2);font-size:.64rem;min-height:20px;padding:1px 5px}
.s25c-bgc .s25c-cx{font-style:italic}
.s25c-ci{display:inline-flex;align-items:center;color:var(--c);flex:none}
.s25c-ci .s25-icons{gap:1px}
.s25c-ct{font-weight:800;white-space:nowrap;flex:none}
.s25c-cx{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}
.s25c-more{border:0;background:none;color:var(--t3);font-size:.68rem;text-align:left;cursor:pointer;padding:2px 4px;font-weight:700;min-height:22px}
.s25c-more:hover{color:var(--t1)}
/* week view */
.s25c-weekv .s25c-day{min-height:360px}
.s25c-weekv .s25c-bgc{white-space:normal}
.s25c-full{flex-wrap:wrap;align-items:flex-start;padding:5px 7px;gap:3px 5px}
.s25c-full .s25c-cx{white-space:normal;flex-basis:100%;font-weight:700;font-size:.74rem;line-height:1.3;order:3}
.s25c-full .s25c-cs{flex-basis:100%;font-size:.66rem;color:var(--t2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;order:4}
.s25c-full .s25c-cst{font-size:.62rem;color:var(--t3);margin-left:auto;order:2}
/* list view + day panel */
.s25c-list{display:flex;flex-direction:column;gap:14px}
.s25c-lday h4{display:flex;align-items:center;gap:8px;margin:0 0 6px;font-size:.78rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--t3)}
.s25c-ltoday h4{color:#2f5d3a}
.s25c-addl{opacity:1;margin-left:auto}
.s25c-rows{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.s25c-row{display:flex;align-items:stretch;gap:6px;border:1px solid var(--border);border-left:3px solid var(--c);border-radius:10px;background:var(--osp-card,var(--bg,#fff));min-width:0}
.s25c-rowbg{background:transparent;border-style:dashed;border-left-style:solid}
.s25c-rowb{flex:1;display:flex;align-items:center;gap:10px;border:0;background:none;text-align:left;padding:9px 10px;cursor:pointer;min-width:0;color:var(--t1);font-family:inherit;min-height:44px}
.s25c-rowb:focus-visible{outline:2px solid var(--c);outline-offset:-2px;border-radius:9px}
.s25c-ri{display:inline-flex;color:var(--c);flex:none}
.s25c-rt{display:flex;flex-direction:column;min-width:0;flex:1}
.s25c-rt b{font-size:.86rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.s25c-rt small{font-size:.74rem;color:var(--t2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.s25c-rmove{border:0;border-left:1px solid var(--border);background:none;color:var(--t2);font-size:.74rem;font-weight:700;padding:0 12px;display:inline-flex;align-items:center;gap:4px;cursor:pointer;min-height:44px}
.s25c-rmove:hover{color:var(--t1);background:var(--glass)}
.s25c-pill{font-size:.66rem;font-weight:800;border-radius:999px;padding:2px 8px;white-space:nowrap;flex:none;border:1px solid #8a8f8a;color:var(--t2)}
.s25c-pill.st-planned{border-style:dashed}
.s25c-pill.st-scheduled{border-color:#2f5d3a;color:#2f5d3a;background:rgba(87,161,95,.1)}
.s25c-pill.st-done{background:var(--glass)}
.s25c-pill.st-attention{border-color:#dc2626;color:#dc2626;background:rgba(220,38,38,.08)}
[data-theme="dark"] .s25c-pill.st-scheduled{color:#8fd197;border-color:#57a15f}
.s25c-none{margin:0;padding:14px;border:1px dashed var(--border);border-radius:10px;color:var(--t2);font-size:.84rem}
.s25c-lnk{border:0;background:none;color:#2f5d3a;font-weight:700;cursor:pointer;text-decoration:underline;padding:4px;font-size:inherit;min-height:32px}
[data-theme="dark"] .s25c-lnk{color:#8fd197}
.s25c-muted{margin:0;color:var(--t3);font-size:.78rem}
.s25c-daylist[hidden]{display:none}
.s25c-dp{border:1px solid var(--border);border-radius:14px;padding:12px 14px;background:var(--osp-card,var(--bg,#fff))}
.s25c-dph{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.s25c-dph h3{margin:0;font-size:1rem;color:var(--t1);display:flex;align-items:center;gap:8px}
.s25c-dpadd{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px;align-items:center}
.s25c-dpadd .btn{display:inline-flex;align-items:center;gap:5px;min-height:38px}
.s25c-dpadd .s25c-muted{flex-basis:100%}
.s25c-monthlist{display:none}
.s25c-monthlist:empty{display:none!important}
.s25c-mlh{margin:18px 0 8px;font-size:.95rem;color:var(--t1)}
/* preview + menu popovers */
.s25c-pop{position:fixed;z-index:3900;background:var(--osp-card,var(--bg,#fff));color:var(--t1);border:1px solid var(--border);border-radius:14px;box-shadow:0 18px 50px -12px rgba(0,0,0,.35);padding:12px 14px 12px;max-height:min(70vh,520px);overflow:auto}
.s25c-px{position:absolute;top:6px;right:6px;border:0;background:none;font-size:1.3rem;color:var(--t3);width:32px;height:32px;border-radius:8px;cursor:pointer}
.s25c-px:hover{background:var(--glass)}
.s25c-ph{display:flex;align-items:center;gap:6px;font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--t3);padding-right:30px}
.s25c-ph .s25c-ci{color:var(--c)}
.s25c-pimg{width:100%;max-height:140px;object-fit:cover;border-radius:9px;margin-top:8px}
.s25c-pt{margin:8px 0 2px;font-size:.95rem;line-height:1.35}
.s25c-pw{margin:0;font-size:.78rem;color:var(--t2)}
.s25c-pcap{margin:8px 0 0;font-size:.8rem;color:var(--t2);line-height:1.45;white-space:pre-line}
.s25c-pnets{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:4px;font-size:.76rem}
.s25c-pnets li{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.s25c-pnets .soc-err{margin:0;font-size:.7rem}
.s25c-pmove{display:flex;align-items:center;gap:6px;margin-top:10px;flex-wrap:wrap;font-size:.76rem;font-weight:700;color:var(--t2)}
.s25c-pmove input{min-height:38px;width:auto;flex:1;min-width:130px}
.s25c-pmove .btn,.s25c-pacts .btn{display:inline-flex;align-items:center;gap:5px;min-height:38px}
.s25c-pacts{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.s25c-menu{padding:8px;display:flex;flex-direction:column;gap:2px;width:300px}
.s25c-mh{margin:2px 6px 4px;font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--t3)}
.s25c-menu .s25c-muted{margin:0 6px 4px}
.s25c-menu [role=menuitem]{display:flex;align-items:center;gap:10px;border:0;background:none;text-align:left;padding:9px 8px;border-radius:9px;cursor:pointer;color:var(--t1);font-family:inherit;min-height:44px}
.s25c-menu [role=menuitem]:hover,.s25c-menu [role=menuitem]:focus-visible{background:var(--glass);outline:none}
.s25c-menu [role=menuitem] > span:last-child{display:flex;flex-direction:column}
.s25c-menu [role=menuitem] > svg,.s25c-menu [role=menuitem] > .s25-icons{flex:none;width:30px;justify-content:center}
.s25c-menu [role=menuitem] b{font-size:.84rem}
.s25c-menu [role=menuitem] small{font-size:.72rem;color:var(--t3)}
.s25c-sheet{left:12px!important;right:12px!important;bottom:calc(12px + env(safe-area-inset-bottom,0px) + 72px)!important;top:auto!important;width:auto!important;max-height:70vh}
/* Post results: a line per network */
.mks25-nets{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:3px;font-size:.76rem}
.mks25-nets li{display:flex;align-items:center;gap:6px;flex-wrap:wrap}

/* ---- phones ---- */
@media (max-width: 760px){
  .s25-net-n b{max-width:150px}
  .s25-net-a{margin-left:0;flex-basis:100%}
  .s25-tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
  .s25-tab{padding:8px 10px 7px}
  .s25c-top{gap:8px}
  .s25c-nav{flex:1 1 100%}
  .s25c-title{font-size:1.02rem;margin-left:4px;overflow:hidden;text-overflow:ellipsis}
  .s25c-topr{margin-left:0;flex:1 1 100%}
  .s25c-seg{flex:1 1 auto}
  .s25c-seg button{flex:1;min-height:38px}
  .s25c-bar2{display:grid;grid-template-columns:auto 1fr;gap:6px 10px}
  .s25c-bar2 select{max-width:none;width:100%}
  .s25c-sp{display:none}
  .s25c-b2acts{grid-column:1 / -1;display:flex}
  .s25c-b2acts .btn{flex:1;justify-content:center}
  .s25c-chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:2px;-webkit-mask-image:linear-gradient(90deg,#000 88%,transparent);mask-image:linear-gradient(90deg,#000 88%,transparent);flex:1 1 100%}
  .s25c-chips::-webkit-scrollbar{display:none}
  .s25c-fchip{flex:none;min-height:38px}
  .s25c-socg{flex:none}
  .s25c-hint{font-size:.78rem}
  .s25c-legend{gap:4px 10px}
  .s25c-dow div{padding:6px 2px;text-align:center;font-size:.6rem;letter-spacing:.02em}
  .s25c-wkbar{padding:3px 6px;font-size:.62rem}
  .s25c-monthv .s25c-day{min-height:58px;padding:3px 2px;align-items:center;gap:2px}
  .s25c-monthv .s25c-dh{flex-direction:column;gap:2px;min-height:0}
  .s25c-monthv .s25c-num{min-width:32px;min-height:32px;padding:0;font-size:.82rem}
  .s25c-monthv .s25c-add,.s25c-monthv .s25c-tpill,.s25c-monthv .s25c-tags,.s25c-monthv .s25c-items{display:none}
  .s25c-monthv .s25c-dots{display:flex;flex-wrap:wrap;justify-content:center;max-width:32px}
  .s25c-band{gap:2px;padding:2px 2px 0}
  .s25c-bar{font-size:.6rem;padding:2px 4px;min-height:18px}
  .s25c-monthlist{display:block}
  .s25c-weekv .s25c-dow{display:none}
  .s25c-weekv .s25c-days{grid-template-columns:1fr}
  .s25c-weekv .s25c-day{min-height:0;border-right:0;border-bottom:1px solid var(--border);padding:8px}
  .s25c-weekv .s25c-day:last-child{border-bottom:0}
  .s25c-weekv .s25c-add{opacity:1}
  .s25c-weekv .s25c-band{display:none}
  .s25c-row{flex-wrap:wrap}
  .s25c-rmove{border-left:0;border-top:1px solid var(--border);flex-basis:100%;justify-content:center;min-height:40px}
  .s25c-rt b{white-space:normal}
  .s25c-pill{font-size:.6rem}
}
@media (hover: none){ .s25c-add{opacity:1} }

[data-theme="dark"] svg[style*="#111111"]{color:#e8e8e8!important}
/* ══ r24 wk: Team Chat ══ */
.wkc-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wkc{display:grid;grid-template-columns:300px 1fr;height:100%;min-height:0}
.wkc-side{border-right:1px solid var(--border);background:var(--bg2);display:flex;flex-direction:column;min-height:0}
.wkc-side-h{padding:16px 16px 12px;border-bottom:1px solid var(--border)}
.wkc-title-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.wkc-title{font-size:1rem;font-weight:800;color:var(--t1);margin:0}
.wkc-presence{font-size:.72rem;color:var(--t3)}
.wkc-search{width:100%;box-sizing:border-box}
.wkc-list{flex:1;overflow-y:auto;min-height:0}
.wkc-lbl{padding:11px 16px 5px;font-size:.66rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--t3);background:var(--bg2);position:sticky;top:0;z-index:1}
.wkc-row{display:flex;align-items:center;gap:11px;width:100%;text-align:left;padding:10px 16px;border:0;border-bottom:1px solid var(--border);background:none;cursor:pointer;font:inherit;color:inherit}
.wkc-row:hover{background:var(--glass2)}
.wkc-row:focus-visible{outline:2px solid var(--green);outline-offset:-2px}
.wkc-row.on{background:rgba(87,161,95,.09);box-shadow:inset 3px 0 0 var(--green)}
.wkc-av{width:36px;height:36px;border-radius:11px;flex-shrink:0;color:#fff;font-size:.8rem;font-weight:800;display:flex;align-items:center;justify-content:center}
.wkc-av-ch{background:var(--green)}
.wkc-row-t{flex:1;min-width:0;display:flex;flex-direction:column}
.wkc-row-top{display:flex;align-items:center;gap:6px}
.wkc-row-nm{flex:1;min-width:0;font-size:.86rem;font-weight:650;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wkc-row.unread .wkc-row-nm{font-weight:800}
.wkc-row-time{font-size:.68rem;color:var(--t3);flex-shrink:0}
.wkc-row-prev{font-size:.75rem;color:var(--t3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}
.wkc-row.unread .wkc-row-prev{color:var(--t2);font-weight:600}
.wkc-badge{background:var(--green);color:#fff;font-size:.68rem;font-weight:800;min-width:19px;height:19px;border-radius:99px;display:flex;align-items:center;justify-content:center;padding:0 5px;flex-shrink:0}
.wkc-main{display:flex;flex-direction:column;min-width:0;min-height:0}
.wkc-head{display:flex;align-items:center;gap:11px;padding:12px 18px;border-bottom:1px solid var(--border);min-height:62px;box-sizing:border-box}
.wkc-head-t{flex:1;min-width:0;display:flex;flex-direction:column}
.wkc-head-t b{font-size:.92rem;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wkc-head-t span{font-size:.72rem;color:var(--t3)}
.wkc-muted{color:var(--t3);font-size:.85rem}
.wkc-ibtn.wkc-back{display:none}
.wkc-thread{flex:1;overflow-y:auto;padding:18px 20px;display:flex;flex-direction:column;gap:10px;background:var(--bg);min-height:0}
.wkc-empty-note{margin:auto;text-align:center;color:var(--t3);font-size:.84rem;padding:22px 14px;line-height:1.6}
.wkc-empty-note svg{opacity:.5;display:block;margin:0 auto 8px}
.wkc-day{text-align:center;margin:4px 0}
.wkc-day span{font-size:.68rem;color:var(--t3);background:var(--bg2);border:1px solid var(--border);padding:2px 10px;border-radius:99px}
.wkc-msg{display:flex;flex-direction:column;align-items:flex-start;max-width:78%}
.wkc-msg.mine{align-self:flex-end;align-items:flex-end}
.wkc-who{font-size:.68rem;color:var(--t3);margin:0 0 2px 2px;font-weight:700}
.wkc-bub{padding:9px 13px;border-radius:14px;border-bottom-left-radius:4px;font-size:.87rem;line-height:1.45;white-space:pre-wrap;word-break:break-word;background:var(--bg3);color:var(--t1)}
.wkc-msg.mine .wkc-bub{background:var(--green);color:#fff;border-bottom-left-radius:14px;border-bottom-right-radius:4px}
.wkc-time{font-size:.66rem;color:var(--t3);margin-top:3px}
.wkc-att{display:flex;flex-wrap:wrap;gap:6px;margin-top:5px}
.wkc-img img{display:block;max-width:220px;max-height:220px;border-radius:10px;border:1px solid var(--border);object-fit:cover}
.wkc-file{display:inline-flex;align-items:center;gap:7px;padding:8px 11px;border:1px solid var(--border);border-radius:10px;background:var(--bg2);color:var(--t1);font:inherit;font-size:.8rem;cursor:pointer;max-width:240px}
.wkc-file span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wkc-file em{font-style:normal;color:var(--t3);font-size:.7rem;flex-shrink:0}
.wkc-ann{align-self:stretch;border:1px solid rgba(185,120,27,.35);background:rgba(185,120,27,.07);border-radius:12px;padding:12px 14px}
.wkc-ann-h{display:flex;align-items:center;gap:7px;color:#8a5a14;font-size:.8rem;flex-wrap:wrap}
.wkc-ann-h span{color:var(--t3);font-size:.72rem}
.wkc-ann-b{margin:8px 0;font-size:.9rem;line-height:1.5;color:var(--t1);white-space:pre-wrap;word-break:break-word}
.wkc-ann-stat{display:flex;align-items:center;gap:6px;font-size:.76rem;color:var(--t2);margin-top:6px}
.wkc-comp{border-top:1px solid var(--border);background:var(--bg2);padding:10px 14px}
.wkc-comp-row{display:flex;align-items:flex-end;gap:8px}
.wkc-input{flex:1;min-width:0;resize:none;min-height:42px;max-height:140px;line-height:1.4}
.wkc-ibtn{width:40px;height:40px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:10px;background:var(--bg);color:var(--t2);cursor:pointer}
.wkc-ibtn:hover{color:var(--t1)}
.wkc-ibtn.on{background:rgba(185,120,27,.12);border-color:rgba(185,120,27,.5);color:#8a5a14}
.wkc-hidden-file{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.wkc-send{flex-shrink:0;height:42px}
.wkc-files{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.wkc-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 6px 4px 9px;border:1px solid var(--border);border-radius:99px;font-size:.75rem;background:var(--bg);max-width:220px}
.wkc-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wkc-chip button{border:0;background:none;color:var(--t3);cursor:pointer;display:inline-flex;padding:2px}
.wkc-ann-note{font-size:.72rem;color:#8a5a14;margin-top:6px}
@media (max-width:760px){
  #section-messages.wkc-sec{margin:-16px -14px 0!important;height:auto!important;overflow:visible!important}
  .wkc{grid-template-columns:1fr}
  .wkc-main{display:none}
  .wkc.wkc-open .wkc-side{display:none}
  .wkc.wkc-open .wkc-main{display:flex}
  .wkc-ibtn.wkc-back{display:inline-flex}
  .wkc-head{padding:10px 12px}
  .wkc-thread{padding:14px 12px}
  .wkc-msg{max-width:88%}
  .wkc-img img{max-width:180px;max-height:180px}
  .wkc-send{padding:0 12px}
}
/* ══ r24 wk: shared bits ══ */
.wk-chk{display:inline-flex;align-items:center;gap:7px;font-size:.8rem;color:var(--t2);cursor:pointer;margin:0 14px 6px 0}
.wk-chk input{accent-color:var(--green);width:15px;height:15px}
.wk-task-opts{display:flex;flex-wrap:wrap;padding:2px 0 8px}
.wk-opt{color:var(--t3);font-weight:500}
.wk-proof-req{font-weight:500;color:var(--t3);font-size:.75rem}
.wk-proof-view{margin-bottom:14px}
.wk-proof-done{display:flex;align-items:center;gap:6px;font-size:.8rem;color:var(--t2);margin:6px 0}
.wk-danger{color:var(--red,#dc2626)!important}
/* Goals */
.wk-goal{padding:12px 0;border-bottom:1px solid var(--border)}
.wk-goal:last-child{border-bottom:0}
.wk-goal-top{display:flex;align-items:flex-start;gap:10px}
.wk-goal-main{flex:1;min-width:0}
.wk-goal-tags{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.wk-goal-title{font-size:.9rem;font-weight:700;color:var(--t1)}
.wk-goal-auto{font-size:.68rem;font-weight:700;padding:2px 8px;border-radius:99px;background:rgba(139,92,246,.12);color:#6d4bd1}
.wk-goal-due{font-size:.72rem;color:var(--t3)}
.wk-goal-desc{font-size:.8rem;color:var(--t2);margin-top:4px;line-height:1.4}
.wk-goal-err{display:flex;gap:6px;align-items:flex-start;margin-top:7px;padding:7px 10px;border-radius:8px;background:rgba(217,119,6,.09);color:#8a5a14;font-size:.78rem;line-height:1.4}
.wk-goal-err svg{flex-shrink:0;margin-top:1px}
.wk-goal-bar{display:flex;align-items:center;gap:10px;margin-top:8px;flex-wrap:wrap}
.wk-goal-track{flex:1;min-width:120px;height:7px;background:var(--border);border-radius:4px;overflow:hidden}
.wk-goal-track i{display:block;height:100%;border-radius:4px}
.wk-goal-pct{font-size:.75rem;font-weight:700;color:var(--t1)}
.wk-goal-val{font-size:.74rem;color:var(--t3)}
.wk-goal-acts{display:flex;gap:6px;flex-shrink:0}
@media (max-width:600px){.wk-goal-top{flex-direction:column}.wk-goal-acts{align-self:flex-start}}
/* Documents */
.wk-doc{background:var(--glass);border:1px solid var(--border);border-radius:14px;padding:14px 15px;display:flex;flex-direction:column;gap:6px}
.wk-doc-top{display:flex;align-items:center;gap:8px}
.wk-doc-cat{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#3f7f47;border:1px solid #57a15f;border-radius:10px;padding:0 6px}
.wk-doc-loc{font-size:.72rem;color:var(--t3);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wk-doc-edit{background:none;border:0;color:var(--t3);cursor:pointer;padding:4px;border-radius:6px;display:inline-flex}
.wk-doc-edit:hover{color:var(--t1)}
.wk-doc-title{font-weight:700;color:var(--t1);font-size:.93rem}
.wk-doc-notes{font-size:.78rem;color:var(--t3)}
.wk-doc-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.wk-doc-exp{font-size:.74rem;color:var(--t3)}
.wk-doc-roles{display:inline-flex;align-items:center;gap:4px;font-size:.72rem;color:var(--t2)}
.wk-doc-acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}
.wk-doc-acts .btn{display:inline-flex;align-items:center;gap:6px;text-decoration:none}
.wk-doc-file{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.wk-doc-cur{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;color:var(--t2);min-width:0}
.wk-doc-cur span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px}
.wk-doc-cur em{color:var(--t3);font-style:normal;font-size:.72rem}
.wk-doc-hint{font-size:.76rem;color:var(--t3)}
.wk-doc-roles-pick{display:flex;flex-wrap:wrap}
#wk-doc-banner:not(:empty){margin-bottom:14px}
/* Support */
.wk-sup-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:99px;background:var(--green);color:#fff;font-size:.66rem;font-weight:800;margin-left:6px;vertical-align:1px}
.wk-sup-new{display:inline-block;font-size:.64rem;font-weight:800;color:#fff;background:var(--green);border-radius:99px;padding:1px 7px;margin-left:6px;vertical-align:1px}
.wk-sup-attach{margin-top:8px}
.wk-sup-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.wk-sup-ht{flex:1;min-width:160px}
.wk-sup-subj{font-weight:800;color:var(--t1);font-size:.95rem}
.wk-sup-sub{font-size:.7rem;color:var(--t3)}
.wk-sup-thread{border:1px solid var(--border);border-radius:12px;padding:14px;background:var(--glass);max-height:52vh;overflow-y:auto;margin-bottom:10px}
.wk-sup-msg{display:flex;flex-direction:column;align-items:flex-start;margin-bottom:10px}
.wk-sup-msg.mine{align-items:flex-end}
.wk-sup-bub{max-width:78%;padding:10px 13px;border-radius:14px 14px 14px 4px;background:var(--bg2);color:var(--t1);border:1px solid var(--border);font-size:.87rem;line-height:1.5;white-space:pre-wrap;word-break:break-word}
.wk-sup-msg.mine .wk-sup-bub{border-radius:14px 14px 4px 14px;background:var(--green,#57a15f);color:#fff;border-color:transparent}
.wk-sup-meta{font-size:.66rem;color:var(--t3);margin-top:3px}
.wk-sup-meta b{color:var(--green,#57a15f)}
.wk-sup-reply{display:flex;gap:8px;align-items:flex-end}
.wk-sup-reply textarea{flex:1;min-width:0;resize:vertical}
.wk-sup-reply-acts{display:flex;gap:8px;align-items:center}
.wk-sup-closed{font-size:.78rem;color:var(--t3)}
@media (max-width:600px){.wk-sup-bub{max-width:92%}.wk-sup-reply{flex-direction:column;align-items:stretch}.wk-sup-reply-acts{justify-content:flex-end}}
/* Setup */
.wk-sq{margin-top:14px;border:1px solid var(--border);border-radius:12px;padding:14px 16px;background:var(--bg2,#fff);text-align:left}
.wk-sq-h{font-weight:800;color:var(--t1);font-size:.88rem;margin-bottom:8px}
.wk-sq ol{margin:0;padding-left:20px;font-size:.84rem;line-height:1.6;color:var(--t2)}
.wk-sq li{margin-bottom:4px}
.wk-sq-note{font-size:.76rem;color:var(--t3);margin:8px 0 0}
.wk-sq-help{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px solid var(--border);font-size:.82rem;color:var(--t2)}
.wk-sq-help span{flex:1;min-width:150px}
.wk-csv{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px;border:1px solid var(--border);border-radius:12px;padding:14px 16px;background:var(--bg2,#fff);text-align:left}
.wk-csv>div:first-child{flex:1;min-width:200px;display:flex;flex-direction:column;gap:3px}
.wk-csv b{font-size:.88rem;color:var(--t1)}
.wk-csv span{font-size:.8rem;color:var(--t2);line-height:1.45}
.wk-csv-acts{display:flex;gap:8px;flex-wrap:wrap}
/* Branding / navigation */
.wk-brand-up{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:8px}
.wk-brand-st{font-size:.75rem;color:var(--t3)}
.wk-brand-pv{width:100%;padding:10px;border:1px dashed var(--border);border-radius:10px;background:var(--bg2)}
.wk-brand-pv img{display:block;max-height:48px;max-width:100%;object-fit:contain}
.wk-brand-pv-favicon img{max-height:32px}
.wk-ro{background:var(--bg3)!important;color:var(--t2)!important}
.wk-mod-note{font-size:.7rem;color:var(--t3)}
