/* Generated by scripts/build-css.js from the files named below. Do not edit; run npm run build:css. */

/* ===== app.css ===== */
@font-face{
  font-family:"DF Comfortaa";
  src:url("/public/df-comfortaa-latin.woff2") format("woff2");
  font-style:normal;
  font-weight:400 700;
  font-display:swap;
}

/* Final Bloom staff polish. This layer changes presentation only. */
:root {
  --df-app-forest: #123728;
  --df-app-forest-soft: #285441;
  --df-app-paper: #fffdf8;
  --df-app-cream: #fff4e2;
  --df-app-pink: #ff4fa3;
  --df-app-coral: #ff6b2e;
  --df-app-lavender: #b28ae3;
  --df-app-palm: #7a8f4a;
  --df-app-sun: #ffd65a;
  --df-app-ink: #17382c;
  --df-app-muted: #65756d;
  --df-app-line: rgba(18, 55, 40, 0.14);
  --df-app-shadow: 0 14px 36px rgba(18, 55, 40, 0.09);
}

html {
  color-scheme: light;
  background: var(--df-app-cream);
  touch-action: manipulation;
  -webkit-text-size-adjust: 100%;
}

body {
  color: var(--df-app-ink);
  background-color: #f4f7f1;
  background-image:
    linear-gradient(45deg, rgba(18, 55, 40, 0.022) 25%, transparent 25%),
    linear-gradient(-45deg, rgba(18, 55, 40, 0.022) 25%, transparent 25%),
    linear-gradient(45deg, transparent 75%, rgba(18, 55, 40, 0.022) 75%),
    linear-gradient(-45deg, transparent 75%, rgba(18, 55, 40, 0.022) 75%);
  background-position: 0 0, 0 10px, 10px -10px, -10px 0;
  background-size: 20px 20px;
  overscroll-behavior-y: none;
}

button,
a,
input,
select,
textarea,
[role="button"] {
  touch-action: manipulation;
}

::selection {
  background: rgba(255, 79, 163, 0.24);
  color: var(--df-app-forest);
}

input,
select,
textarea {
  border-color: var(--df-app-line);
  background: rgba(255, 253, 248, 0.94);
  color: var(--df-app-ink);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
  transition: border-color 160ms ease, box-shadow 160ms ease, background 160ms ease;
}

input:focus,
select:focus,
textarea:focus {
  border-color: var(--df-app-pink);
  outline: 3px solid rgba(255, 79, 163, 0.13);
  box-shadow: 0 0 0 1px rgba(255, 79, 163, 0.08);
}

button,
.button,
.btn,
input[type="submit"] {
  border-color: rgba(18, 55, 40, 0.16);
  box-shadow: 0 8px 18px rgba(18, 55, 40, 0.08);
  transition: transform 140ms ease, box-shadow 140ms ease, border-color 140ms ease;
}

button:hover,
.button:hover,
.btn:hover,
input[type="submit"]:hover {
  transform: translateY(-1px);
  border-color: rgba(18, 55, 40, 0.28);
  box-shadow: 0 11px 24px rgba(18, 55, 40, 0.12);
}

button:active,
.button:active,
.btn:active,
input[type="submit"]:active {
  transform: translateY(0);
}

.card,
.panel,
.section-card,
.form-card,
.stat-card,
.order-card,
.product-card,
.phone-card,
.reminder-card,
.table-card,
.surface {
  border-color: var(--df-app-line);
  background: rgba(255, 253, 248, 0.96);
  box-shadow: var(--df-app-shadow);
}

.badge,
.pill,
.status,
.tag,
.chip {
  border-color: rgba(18, 55, 40, 0.14);
  background: rgba(122, 143, 74, 0.1);
  color: var(--df-app-forest);
}

table {
  border-color: var(--df-app-line);
  background: rgba(255, 253, 248, 0.94);
}

th {
  color: var(--df-app-forest);
  background: rgba(122, 143, 74, 0.08);
}

tr,
td,
th {
  border-color: rgba(18, 55, 40, 0.1);
}

tbody tr:hover {
  background: rgba(255, 244, 226, 0.64);
}

.app-header,
.topbar,
.site-header,
.mobile-header {
  border-color: var(--df-app-line);
  background: rgba(255, 253, 248, 0.94);
  box-shadow: 0 8px 28px rgba(18, 55, 40, 0.08);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

.sidebar,
.drawer,
.nav-drawer {
  border-color: var(--df-app-line);
  background: rgba(255, 253, 248, 0.98);
}

.sidebar a:hover,
.drawer a:hover,
.nav-drawer a:hover,
.nav-link:hover {
  background: rgba(122, 143, 74, 0.1);
  color: var(--df-app-forest);
}

.sidebar a[aria-current="page"],
.drawer a[aria-current="page"],
.nav-link.is-active,
.nav-link.active {
  background: rgba(255, 79, 163, 0.1);
  color: var(--df-app-forest);
  box-shadow: inset 3px 0 0 var(--df-app-pink);
}

.flash,
.notice,
.alert {
  border-color: rgba(18, 55, 40, 0.14);
  box-shadow: 0 10px 24px rgba(18, 55, 40, 0.08);
}

.modal,
.dialog,
[role="dialog"] {
  border-color: var(--df-app-line);
  background: var(--df-app-paper);
  box-shadow: 0 24px 70px rgba(18, 55, 40, 0.2);
}

.reminder-public,
.custom-request-public,
body.reminder-public,
body.custom-request-public {
  color: var(--df-app-ink);
  background-color: #f4f7f1;
  background-image:
    linear-gradient(45deg, rgba(18, 55, 40, 0.022) 25%, transparent 25%),
    linear-gradient(-45deg, rgba(18, 55, 40, 0.022) 25%, transparent 25%),
    linear-gradient(45deg, transparent 75%, rgba(18, 55, 40, 0.022) 75%),
    linear-gradient(-45deg, transparent 75%, rgba(18, 55, 40, 0.022) 75%);
  background-size: 20px 20px;
}

@media (prefers-reduced-motion: reduce) {
  button,
  .button,
  .btn,
  input,
  select,
  textarea {
    transition: none;
  }
}

@font-face{
  font-family:"DF Assistant";
  src:url("/public/df-assistant-latin.woff2") format("woff2");
  font-style:normal;
  font-weight:300 800;
  font-display:swap;
}

:root{
  --font-display:"DF Comfortaa","Comfortaa",ui-rounded,sans-serif;
  --font-body:"DF Assistant","Assistant",ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --ink:#271f3d;
  --muted:#777187;
  --cream:#fffaf1;
  --surface:#ffffff;
  --line:#e8dfd5;
  --green:#3f3c39;
  --green-soft:#f1eee9;
  --pink:#f5d5df;
  --purple:#8b56df;
  --yellow:#fff4bc;
  --danger:#b73555;
  --shadow:0 16px 40px rgba(39,31,61,.10);
  --radius:22px;
}

html body,
html body button,
html body input,
html body select,
html body textarea{
  font-family:var(--font-body) !important;
}

html body h1,
html body h2,
html body h3,
html body h4,
html body h5,
html body h6{
  font-family:var(--font-display) !important;
  letter-spacing:0;
}
*{box-sizing:border-box}
html{background:var(--cream); color:var(--ink); font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;}
body{margin:0; min-height:100vh; background:linear-gradient(140deg,#fffaf1,#f8fff1 45%,#fff0f8);}
a{color:inherit; text-decoration:none} button,input{font:inherit}
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
  }
}
.hero-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.hero-actions form{margin:0}
.app-header{position:sticky;top:0;z-index:20;height:66px;padding:0 18px;display:flex;align-items:center;justify-content:space-between;background:rgba(255,250,241,.88);backdrop-filter:blur(18px);border-bottom:1px solid rgba(39,31,61,.08)}
.brand{display:flex;align-items:center;gap:9px;font-weight:900;letter-spacing:0}.brand span{color:#df5b9c;font-size:23px}.top-actions{display:flex;gap:14px;align-items:center;font-size:14px;font-weight:800}.top-actions a,.link-button{border:0;background:transparent;color:var(--ink);font-weight:800;padding:8px 0}.page{max-width:820px;margin:0 auto;padding:20px 16px 42px}.narrow{max-width:540px}.login-screen{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(440px,100%);background:#fff;border:1px solid var(--line);border-radius:30px;padding:28px;box-shadow:var(--shadow)}.brand-dot{font-size:34px;color:#df5b9c}.login-card h1,.hero-line h1,.detail-hero h1{margin:4px 0 8px;font-size:34px;line-height:.95;letter-spacing:0}.login-card p,.subtle{color:var(--muted)}.stack{display:grid;gap:14px}label{display:grid;gap:7px;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}input{width:100%;border:1px solid var(--line);border-radius:16px;padding:13px 14px;background:#fff}.alert{background:#fff0f3;color:#9d2340;border:1px solid #ffd1dc;border-radius:14px;padding:10px;margin:12px 0}.btn{border:1px solid var(--line);border-radius:999px;background:#fff;padding:12px 18px;font-weight:900;text-transform:uppercase;font-size:12px;letter-spacing:.05em;cursor:pointer}.btn-primary{background:linear-gradient(90deg,#7446e8,#e369a5);color:#fff;border-color:transparent}.btn-green,.round-action{background:#6f6b66;color:white;border-color:transparent}.btn-danger{background:#fff0f3;color:#aa2547}.btn-outline{background:transparent}.wide{display:block;text-align:center;margin-top:16px}.hero-line{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:16px 0 14px}.hero-line.compact{justify-content:center}.eyebrow{margin:0 0 6px;font-size:12px;font-weight:950;text-transform:uppercase;letter-spacing:.13em;color:#6a5e79}.date-nav{display:flex;gap:8px;align-items:center}.date-nav a,.nav-arrow{display:grid;place-items:center;min-width:42px;height:42px;border:1px solid var(--line);border-radius:16px;background:#fff;font-size:22px;font-weight:900}.date-nav .today{font-size:12px;padding:0 14px}.pills{display:flex;gap:8px;overflow-x:auto;padding:6px 0 14px;margin-bottom:8px}.pill{white-space:nowrap;background:#fff;border:1px solid var(--line);border-radius:999px;padding:9px 13px;font-weight:850}.pill b{margin-left:7px;background:#f2ebff;border-radius:999px;padding:2px 8px}.pill.green{background:var(--green-soft);color:#4c4844;border-color:#ddd6ce}.pill.danger{background:#fff0f3;color:#b73555}.order-group{margin:18px 0}.group-title{display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.74);border:1px solid var(--line);border-radius:16px;padding:12px 14px;margin-bottom:8px}.group-title span{color:#7b7586}.group-title strong{flex:1;font-size:18px}.group-title em{font-style:normal;background:#f2ebff;border-radius:10px;padding:4px 10px;font-weight:900}.order-list{display:grid;gap:8px}.order-card{display:grid;grid-template-columns:76px 1fr;background:rgba(255,255,255,.92);border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:0 10px 28px rgba(39,31,61,.05)}.order-card.status-arranging{border-color:#f7c76c}.order-card.status-manager_notified,.order-card.status-ready{background:#fbf8f2;border-color:#ddd6ce}.order-card.status-issue{border-color:#ffb1c2;background:#fff5f7}.quick-col{display:grid;place-items:center;border-right:1px solid var(--line);background:linear-gradient(180deg,#fbf8f2,#fff)}.round-action,.round-done{width:44px;height:44px;border-radius:999px;border:0;display:grid;place-items:center;font-size:25px;font-weight:900}.round-done{background:#f1eee9;color:#6f6b66}.tiny-link{font-size:11px;font-weight:900;color:var(--muted)}.order-main{display:block;padding:13px}.order-meta,.item-line,.card-foot{display:flex;align-items:center;justify-content:space-between;gap:10px}.order-meta strong{font-size:18px}.photo-badge{font-weight:900;color:#8b56df}.item-title{font-size:18px;color:#8b56df;font-weight:900}.item-title em{font-style:normal;font-size:.9em;color:#8b56df}.item-line span:last-child{font-weight:900}.addons-line{margin:6px 0;color:#645d72;font-size:13px}.gift-line,.note-line{margin:7px 0 0;border-radius:10px;padding:6px 9px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.gift-line{background:#fff0f8;color:#9d2a61}.note-line{background:#fff7d8;color:#87631e}.card-foot{font-size:12px;color:var(--muted);font-weight:850;margin-top:10px}.empty-state{background:#fff;border:1px solid var(--line);border-radius:24px;padding:24px;text-align:center;box-shadow:var(--shadow)}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);background:#fff;border:1px solid var(--line);border-radius:24px;overflow:hidden}.cal-head,.cal-day{min-height:78px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:8px}.cal-head{min-height:auto;background:#fffaf5;font-size:11px;font-weight:950;text-align:center;color:var(--muted)}.cal-day:nth-child(7n){border-right:0}.cal-date{font-weight:900}.cal-muted{opacity:.35}.cal-chip{display:block;font-size:10px;margin-top:4px;border-radius:6px;padding:3px 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-exact{background:#f2ebff}.cal-pickup{background:#fff2c7}.cal-ready{background:#f1eee9}.cal-issue{background:#fff0f3;color:#aa2547}.center-title{text-align:center}.detail-hero,.card-block{background:#fff;border:1px solid var(--line);border-radius:24px;padding:18px;margin:12px 0;box-shadow:0 10px 28px rgba(39,31,61,.04)}.detail-hero{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.status-chip{background:#f2ebff;border-radius:999px;padding:8px 12px;font-weight:900;font-size:12px}.detail-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:12px 0}.detail-item{display:grid;grid-template-columns:64px 1fr;gap:12px;border-top:1px solid var(--line);padding:12px 0}.detail-item:first-of-type{border-top:0}.detail-item img,.item-placeholder{width:64px;height:64px;border-radius:14px;object-fit:cover;background:#fff8ed;display:grid;place-items:center;color:#e35b9a;font-size:30px}.detail-item p{margin:3px 0;color:var(--muted)}.photo-form{display:grid;gap:9px}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}.photo-grid img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:14px}.gift-box{background:#fff0f8;color:#9d2a61;border-radius:14px;padding:12px}.timeline{display:grid;gap:8px}.timeline div{border-left:4px solid #e6d8ff;padding:6px 0 6px 10px}.timeline strong{display:block}.timeline span{display:block;color:var(--muted)}.timeline small{font-size:11px;color:#aaa}.print-only{display:none}
@media (min-width:760px){.page{padding-top:32px}.order-list{grid-template-columns:1fr 1fr}.detail-actions{grid-template-columns:repeat(3,1fr)}}
@media print{body:not(.gift-card-page)>*:not(.order-detail){display:none!important}.app-header,.detail-actions,.proof-block,.print-card>button,.top-actions,.wide{display:none!important}.card-block:not(.print-card){display:none!important}.print-card{box-shadow:none;border:0}.print-only{display:block!important}.gift-print{text-align:center;font-family:Georgia,serif;font-size:28px;padding:80px}.gift-print h1{font-size:22px;text-transform:uppercase;letter-spacing:.12em}}
.import-box .csv-form {
  display: grid;
  gap: 14px;
  margin-top: 18px;
}
.import-box input[type="file"] {
  border: 1px solid rgba(36, 45, 25, .18);
  border-radius: 18px;
  padding: 14px;
  background: #fff;
}
.alert-error, .alert-success {
  border-radius: 18px;
  padding: 12px 14px;
  margin: 14px 0 0;
  font-weight: 800;
}
.alert-error { background: #ffe7eb; color: #8b1d31; }
.alert-success { background: #e9ffe8; color: #1f5b2f; }

/* v1.5 operational upgrades */
.stage-pill{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border:1px solid transparent}
.stage-pill i{width:8px;height:8px;border-radius:999px;display:inline-block;background:currentColor}
.stage-new{background:#f2f2f0;color:#6f6b72;border-color:#e2dfdc}
.stage-ready{background:#e8faee;color:#4c4844;border-color:#ddd6ce}
.stage-out{background:#e8f5ff;color:#1975ad;border-color:#bce0ff}
.stage-delivered{background:#f1eaff;color:#7b4ad9;border-color:#dacaff}
.stage-issue{background:#fff0f3;color:#b73555;border-color:#ffc2ce}
.stage-bg-ready{background:#26c767;color:#fff}.stage-bg-out{background:#4eb6f0;color:#fff}.stage-bg-delivered{background:#8b56df;color:#fff}.stage-bg-new{background:#ddd;color:#544d5e}.stage-bg-issue{background:#b73555;color:#fff}
.order-small-price{font-size:12px;color:#6f6b72;font-weight:950;background:#fff7e6;border:1px solid #f2dfb8;border-radius:999px;padding:3px 8px;white-space:nowrap}.dashboard-item-row{display:grid;grid-template-columns:52px 1fr;gap:10px;align-items:center;margin-top:8px}.dash-product-thumb{width:52px;height:52px;border-radius:14px;object-fit:cover;background:#fff8ed;display:grid;place-items:center;color:#e35b9a;font-size:24px;border:1px solid var(--line)}.thumb-placeholder{font-weight:900}.order-meta{flex-wrap:wrap}.detail-price{font-weight:950;color:var(--green)}
.status-chip{display:inline-flex;align-items:center;gap:6px}.status-chip i{width:9px;height:9px;border-radius:999px;background:currentColor;display:inline-block}.photo-form input[type="file"]{border:1px solid var(--line);border-radius:16px;background:#fffaf5;padding:13px}.gallery-grid{display:grid;grid-template-columns:1fr;gap:14px}.gallery-card{background:#fff;border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:0 10px 28px rgba(39,31,61,.06)}.gallery-card img{width:100%;aspect-ratio:1;object-fit:cover;display:block}.gallery-info{padding:12px 14px}.gallery-top,.gallery-foot{display:flex;align-items:center;justify-content:space-between;gap:8px}.gallery-info p{margin:7px 0;color:var(--muted);font-weight:800}.gallery-foot span{font-weight:950}.gallery-foot a{font-size:12px;font-weight:950;color:#8b56df}.total-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:14px 0}.total-cards div{background:#fff;border:1px solid var(--line);border-radius:18px;padding:14px;box-shadow:0 10px 28px rgba(39,31,61,.04)}.total-cards span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:950}.total-cards strong{font-size:26px}.totals-columns{display:grid;gap:12px}.total-row{display:grid;grid-template-columns:46px minmax(0,1fr) auto auto;gap:10px;align-items:center;border-top:1px solid var(--line);padding:12px 0}.total-row:first-of-type{border-top:0}.total-row img,.item-placeholder.small{width:46px;height:46px;border-radius:12px;object-fit:cover;background:#fff8ed;display:grid;place-items:center;color:#e35b9a;border:1px solid var(--line)}.total-row p{margin:3px 0 0;color:var(--muted);font-size:12px}.total-row span{font-size:12px;color:var(--muted);font-weight:850}.total-row b{white-space:nowrap}.delivery-row{grid-template-columns:minmax(0,1fr) auto}.totals-nav .today{min-width:92px;text-align:center}.wide{width:100%}
@media (min-width:760px){.gallery-grid{grid-template-columns:repeat(3,1fr)}.totals-columns{grid-template-columns:1fr 1fr}.total-cards{grid-template-columns:repeat(4,1fr)}}

/* v1.6 sidebar navigation + live sync */
body.has-sidebar{padding-top:64px}
.mobile-menu-toggle{position:fixed;top:0;left:0;right:0;height:64px;z-index:60;display:flex;align-items:center;gap:10px;padding:0 16px;border:0;border-bottom:1px solid rgba(39,31,61,.08);background:rgba(255,250,241,.92);backdrop-filter:blur(16px);color:var(--ink);font-weight:950;letter-spacing:0}.mobile-menu-toggle span{font-size:24px}.mobile-menu-toggle em{margin-left:auto;width:10px;height:10px;border-radius:999px;background:#27c76f;box-shadow:0 0 0 4px rgba(39,199,111,.16)}.mobile-menu-toggle em.syncing{background:#f2b84b}.mobile-menu-toggle em.error{background:#d83b5b}.mobile-menu-toggle em.warning{background:#f2b84b}
.side-nav{position:fixed;inset:0 auto 0 0;width:min(86vw,330px);z-index:80;transform:translateX(-104%);transition:transform .22s ease;background:linear-gradient(180deg,#3f3c39,#272522);color:#fff;display:flex;flex-direction:column;padding:18px;box-shadow:22px 0 48px rgba(39,31,61,.25)}.menu-open .side-nav{transform:translateX(0)}.drawer-overlay{position:fixed;inset:0;z-index:70;background:rgba(39,31,61,.38);opacity:0;pointer-events:none;transition:opacity .2s ease}.menu-open .drawer-overlay{opacity:1;pointer-events:auto}.side-brand{display:flex;align-items:center;gap:12px;margin-bottom:18px}.side-brand strong{display:block;font-size:21px;line-height:1;font-weight:950}.side-brand small{display:block;color:rgba(255,255,255,.68);font-weight:800;margin-top:3px}.side-flower{width:44px;height:44px;border-radius:16px;display:grid;place-items:center;background:#fff;color:#e369a5;font-size:24px;box-shadow:0 10px 22px rgba(0,0,0,.16)}.side-close{margin-left:auto;border:0;background:rgba(255,255,255,.11);color:#fff;width:38px;height:38px;border-radius:14px;font-size:22px}.side-links{display:grid;gap:8px}.side-links a,.side-action{display:flex;align-items:center;gap:12px;width:100%;border:1px solid rgba(255,255,255,.10);background:rgba(255,255,255,.06);color:#fff;border-radius:17px;padding:13px 14px;font-weight:900;text-align:left}.side-links a span,.side-action span{width:24px;text-align:center;opacity:.92}.side-links a.active{background:#fff;color:var(--green);border-color:#fff;box-shadow:0 12px 26px rgba(0,0,0,.18)}.side-user{margin-top:18px;border:1px solid rgba(255,255,255,.10);background:rgba(255,255,255,.06);border-radius:18px;padding:13px 14px}.side-user strong{display:block}.side-user span,.side-user small{display:block;color:rgba(255,255,255,.68);font-size:12px;margin-top:3px}.side-bottom{margin-top:auto;display:grid;gap:8px}.side-bottom form{margin:0}.side-action{cursor:pointer;font:inherit}.side-action.logout{background:rgba(255,128,154,.13);border-color:rgba(255,128,154,.25)}.side-action[disabled]{opacity:.55;cursor:wait}.back-chip{display:inline-flex;align-items:center;gap:8px;margin:4px 0 10px;border:1px solid var(--line);background:#fff;border-radius:999px;padding:10px 14px;font-weight:950;color:var(--green);box-shadow:0 8px 22px rgba(39,31,61,.04)}
@media (min-width:980px){body.has-sidebar{padding-top:0;padding-left:280px}.mobile-menu-toggle{display:none}.side-nav{transform:none;width:280px;z-index:40;box-shadow:none}.side-close,.drawer-overlay{display:none}.page{max-width:980px;padding-left:22px;padding-right:22px}.narrow{max-width:620px}.order-list{grid-template-columns:1fr 1fr}.gallery-grid{grid-template-columns:repeat(3,1fr)}}
@media (max-width:480px){.order-card{grid-template-columns:64px 1fr}.quick-col{padding:8px 0}.order-meta strong{font-size:16px}.stage-pill{font-size:9px}.hero-line h1,.detail-hero h1{font-size:29px}.date-nav a,.nav-arrow{min-width:38px;height:38px}.detail-actions{grid-template-columns:1fr 1fr}.total-row{grid-template-columns:42px minmax(0,1fr);gap:9px}.total-row span,.total-row b{margin-left:51px}.total-row b{justify-self:start}.delivery-row{grid-template-columns:1fr auto}.delivery-row b{margin-left:0}}
@media print{.side-nav,.mobile-menu-toggle,.drawer-overlay,.back-chip{display:none!important}body.has-sidebar{padding:0!important}.page{max-width:none!important}}

/* Internal fake orders: admin-visible, unmistakably non-production, and easy to remove. */
.order-card.is-fake-order {
  border-color: rgba(190, 74, 128, .28) !important;
  background: linear-gradient(135deg, rgba(255, 248, 252, .96), rgba(255, 253, 248, .98)) !important;
}
.fake-order-badge {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  margin-left: 7px;
  padding: 3px 8px;
  border: 1px solid rgba(190, 74, 128, .22);
  border-radius: 999px;
  background: #fff0f7;
  color: #9a3765;
  font-size: 9px;
  font-weight: 950;
  letter-spacing: .07em;
  line-height: 1;
  text-transform: uppercase;
  vertical-align: middle;
}
.fake-order-delete-form { margin: 0; }
.tiny-link.tiny-link--danger {
  appearance: none;
  padding: 0;
  border: 0;
  background: transparent;
  color: #a43c48;
  cursor: pointer;
  font: inherit;
}
.fake-order-tools-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}
.fake-order-tools-head h2 { margin-top: 0; }
.fake-order-tools-head form { flex: 0 0 auto; margin: 0; }
@media (max-width: 560px) {
  .fake-order-tools-head { display: grid; }
  .fake-order-tools-head .btn { width: 100%; }
}

/* v1.7 status colors, print card, admin/accounting */
.round-action{background:#ddd;color:#544d5e;border:0}.round-action.stage-bg-new{background:#d8d8d8;color:#504a57}.round-action.stage-bg-ready{background:#26c767;color:#fff}.round-action.stage-bg-out{background:#4eb6f0;color:#fff}.round-action.stage-bg-delivered{background:#8b56df;color:#fff}.round-action.stage-bg-issue{background:#b73555;color:#fff}
.quick-col:has(.stage-bg-new){background:linear-gradient(180deg,#f6f6f4,#fff)}.quick-col:has(.stage-bg-ready){background:linear-gradient(180deg,#fbf8f2,#fff)}.quick-col:has(.stage-bg-out){background:linear-gradient(180deg,#eef8ff,#fff)}.quick-col:has(.stage-bg-delivered){background:linear-gradient(180deg,#f4edff,#fff)}
.admin-grid{display:grid;grid-template-columns:1fr;gap:12px;margin:16px 0}.admin-card{background:#fff;border:1px solid var(--line);border-radius:24px;padding:18px;box-shadow:0 10px 28px rgba(39,31,61,.05);display:grid;gap:6px}.admin-card span{font-size:28px}.admin-card strong{font-size:20px}.admin-card p{margin:0;color:var(--muted);font-weight:750;line-height:1.35}.admin-form{display:grid;grid-template-columns:1fr;gap:12px}.admin-form select{width:100%;border:1px solid var(--line);border-radius:16px;padding:13px 14px;background:#fff}.admin-staff-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;border-top:1px solid var(--line);padding:12px 0}.admin-staff-row:first-of-type{border-top:0}.admin-staff-row p{margin:3px 0 0;color:var(--muted)}.admin-staff-row form{margin:0}.accounting-cards{grid-template-columns:repeat(2,1fr)}.expense-form{grid-template-columns:1fr}.expense-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;border-top:1px solid var(--line);padding:12px 0}.expense-row:first-of-type{border-top:0}.expense-row p{margin:3px 0 0;color:var(--muted);font-size:12px}.expense-row b{white-space:nowrap}.mini-danger{border:0;border-radius:999px;background:#fff0f3;color:#9d2340;padding:7px 10px;font-size:11px;font-weight:900}.order-account-row{color:inherit}.span-2{grid-column:auto}.print-card .wide{display:inline-flex;justify-content:center;align-items:center;width:auto;margin-top:8px}
.accounting-actions{display:grid;gap:10px;justify-items:end}.accounting-export{min-height:42px;display:inline-flex;align-items:center;justify-content:center;text-align:center}
.admin-run-card{border:1px solid var(--line);text-align:left}.admin-run-card .btn{width:max-content;margin-top:8px}
.reminder-diagnostics h2{margin:0 0 12px}.reminder-admin-list{display:grid;gap:12px;margin-top:14px}.reminder-admin-row{background:#fff;border:1px solid var(--line);border-radius:22px;padding:16px;box-shadow:0 10px 28px rgba(39,31,61,.05)}.reminder-admin-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px}.reminder-admin-top h2{margin:0;font-size:26px;line-height:1.05}.reminder-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.reminder-admin-grid div{min-width:0;border:1px solid var(--line);border-radius:14px;background:#fffaf5;padding:10px}.reminder-admin-grid span,.reminder-admin-link span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:950}.reminder-admin-grid strong{display:block;margin-top:3px;overflow-wrap:anywhere}.reminder-admin-link{display:grid;gap:5px;border:1px solid var(--line);border-radius:14px;padding:10px;margin:10px 0;background:#fff}.reminder-admin-link a{color:#7b4ad9;font-weight:900;overflow-wrap:anywhere}.reminder-admin-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.reminder-admin-actions form{margin:0}.reminder-admin-actions button[disabled]{opacity:.45;cursor:not-allowed}.reminder-send-history{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;color:var(--muted);font-size:12px;font-weight:850}.reminder-send-history span{background:#f7f4f0;border-radius:999px;padding:5px 9px}.reminder-error{margin:8px 0 0;border-radius:12px;background:#fff0f3;color:#9d2340;padding:8px 10px;font-size:12px;font-weight:800;overflow-wrap:anywhere}
@media (min-width:760px){.admin-grid{grid-template-columns:repeat(2,1fr)}.admin-form{grid-template-columns:repeat(3,1fr)}.admin-form .span-2{grid-column:span 2}.accounting-cards{grid-template-columns:repeat(3,1fr)}}
@media (max-width:480px){.expense-row{grid-template-columns:minmax(0,1fr) auto}.expense-row form{grid-column:1/-1}.admin-staff-row{grid-template-columns:1fr}.admin-staff-row form .btn{width:100%}}
@media (max-width:640px){.accounting-actions{justify-items:stretch}.accounting-export{width:100%}.reminder-admin-grid{grid-template-columns:1fr}.reminder-admin-actions{display:grid}.reminder-admin-actions .btn{width:100%}.reminder-admin-top{display:grid}}

/* sales analytics + data cleanup */
.analytics-page{display:grid;gap:18px}
.analytics-hero{align-items:end}
.analytics-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.analytics-filter{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:end}
.analytics-filter form{display:flex;flex-wrap:wrap;gap:10px;align-items:end}
.fake-order-kind{grid-template-columns:22px minmax(0,1fr);align-items:start;gap:12px;margin:18px 0;padding:15px 16px;border:1px solid var(--line);border-radius:16px;background:#f3f2ee;color:#38423d;text-transform:none;letter-spacing:0;cursor:pointer}.fake-order-kind input[type="checkbox"]{width:20px;height:20px;min-height:20px;margin:1px 0 0;padding:0;accent-color:#59665e}.fake-order-kind span{display:grid;gap:4px}.fake-order-kind strong{font-size:13px;text-transform:uppercase;letter-spacing:.08em}.fake-order-kind small{color:var(--muted);font-size:12px;font-weight:700;line-height:1.4}
.fake-order-kind--warning{border-color:rgba(239,92,168,.3);background:linear-gradient(135deg,#fff7fb,#fffaf0)}
.fake-address-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;margin:24px 0 16px;padding:20px 22px;border:1px solid rgba(18,55,40,.13);border-radius:22px;background:linear-gradient(135deg,rgba(239,92,168,.08),rgba(255,214,90,.1),rgba(255,255,252,.94));box-shadow:0 14px 34px rgba(18,55,40,.07)}
.fake-address-intro h2{margin:3px 0 7px}.fake-address-intro .subtle{max-width:700px;margin:0}.fake-address-status{flex:0 0 auto;max-width:340px;margin:0;border:1px solid rgba(18,55,40,.1);border-radius:999px;background:rgba(255,255,255,.75);color:var(--muted);font-size:12px;font-weight:800;line-height:1.35;padding:9px 12px;text-align:right}.fake-address-status[data-tone="ready"]{border-color:rgba(55,135,76,.25);background:#f1faf3;color:#28643d}.fake-address-status[data-tone="working"]{border-color:rgba(187,128,31,.22);background:#fffaf0;color:#77612d}.fake-address-status[data-tone="error"]{border-color:rgba(176,50,75,.23);background:#fff3f5;color:#a42b48}
.fake-address-primary{grid-column:1/-1;position:relative}.field-hint{color:var(--muted);font-weight:750;text-transform:none;letter-spacing:0}.fake-address-input-wrap{position:relative;display:block}.fake-address-input-wrap input{padding-right:48px}.fake-address-search-icon{position:absolute;top:50%;right:16px;z-index:1;transform:translateY(-50%);font-size:18px;line-height:1;pointer-events:none;filter:grayscale(1);opacity:.6}.fake-address-suggestions{position:absolute;top:calc(100% + 7px);left:0;right:0;z-index:120;overflow:hidden;border:1px solid rgba(18,55,40,.16);border-radius:18px;background:#fff;box-shadow:0 20px 52px rgba(18,55,40,.2);text-transform:none;letter-spacing:0}.fake-address-suggestions[hidden]{display:none}.fake-address-suggestions button{display:block;width:100%;margin:0;padding:13px 15px;border:0;border-bottom:1px solid rgba(18,55,40,.08);border-radius:0;background:#fff;color:var(--ink);font:inherit;font-size:14px;font-weight:800;line-height:1.35;text-align:left;cursor:pointer}.fake-address-suggestions button:hover,.fake-address-suggestions button:focus-visible,.fake-address-suggestions button.is-active{outline:0;background:linear-gradient(90deg,#fff4fa,#fffaf0)}.fake-address-attribution{display:flex;justify-content:flex-end;padding:7px 12px 8px;background:#fff}.fake-address-attribution img{display:block;width:120px;height:auto}.fake-address-grid{overflow:visible}
.pac-container{z-index:10050!important;margin-top:7px;border:1px solid rgba(18,55,40,.16)!important;border-radius:18px!important;background:#fff!important;box-shadow:0 20px 52px rgba(18,55,40,.2)!important;font-family:inherit!important;overflow:hidden}.pac-item{padding:10px 14px!important;border-top:1px solid rgba(18,55,40,.08)!important;color:var(--muted)!important;font-size:13px!important;line-height:1.4!important;cursor:pointer}.pac-item:first-child{border-top:0!important}.pac-item:hover,.pac-item-selected{background:linear-gradient(90deg,#fff4fa,#fffaf0)!important}.pac-item-query{color:var(--ink)!important;font-size:14px!important;font-weight:850!important}
@media(max-width:720px){.fake-address-intro{display:block;padding:17px}.fake-address-status{max-width:none;margin-top:13px;text-align:left}.fake-address-suggestions button{font-size:13px;padding:12px}.fake-address-attribution img{width:105px}}
.detail-item__image-button{position:relative;display:block;width:64px;height:64px;margin:0;padding:0;border:0;border-radius:14px;background:#fff8ed;cursor:zoom-in;overflow:hidden;box-shadow:0 0 0 1px rgba(18,55,40,.08);transition:transform .18s ease,box-shadow .18s ease}.detail-item__image-button:hover{transform:scale(1.04);box-shadow:0 8px 20px rgba(18,55,40,.18)}.detail-item__image-button:focus-visible{outline:3px solid var(--pink);outline-offset:3px}.detail-item__image-button img{width:100%;height:100%;object-fit:cover;border-radius:inherit}.detail-item__image-button>span,.photo-thumb__preview>span{position:absolute;right:5px;bottom:5px;display:grid;place-items:center;width:24px;height:24px;border-radius:999px;color:#fff;background:rgba(18,55,40,.88);box-shadow:0 2px 8px rgba(0,0,0,.22)}.detail-item__image-button>span svg,.photo-thumb__preview>span svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.image-lightbox{position:fixed;inset:0;z-index:200;overflow:hidden;background:rgba(8,15,12,.92);backdrop-filter:blur(8px);opacity:0;transition:opacity .18s ease}.image-lightbox[hidden]{display:none}.image-lightbox.is-open{opacity:1}.image-lightbox__stage{position:absolute;inset:0;display:grid;place-items:center;overflow:hidden;padding:max(64px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(68px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));touch-action:none;overscroll-behavior:contain;cursor:grab}.image-lightbox.is-interacting .image-lightbox__stage{cursor:grabbing}.image-lightbox__image{display:block;max-width:min(94vw,1600px);max-height:calc(100dvh - 132px);width:auto;height:auto;object-fit:contain;border-radius:16px;background:#fff;box-shadow:0 24px 80px rgba(0,0,0,.48);pointer-events:none;user-select:none;-webkit-user-drag:none;will-change:transform;transform:translate3d(0,0,0) scale(1);transform-origin:center;transition:transform .18s cubic-bezier(.2,.75,.25,1)}.image-lightbox.is-interacting .image-lightbox__image{transition:none}.image-lightbox__close{position:fixed;z-index:3;top:max(14px,env(safe-area-inset-top));right:max(14px,env(safe-area-inset-right));display:grid;place-items:center;width:48px;height:48px;padding:0;border:1px solid rgba(255,255,255,.28);border-radius:999px;color:#fff;background:rgba(18,55,40,.88);font-size:32px;font-weight:400;line-height:1;cursor:pointer}.image-lightbox__zoom-status{position:fixed;z-index:3;left:50%;bottom:max(16px,env(safe-area-inset-bottom));min-height:38px;padding:8px 14px;border:1px solid rgba(255,255,255,.24);border-radius:999px;background:rgba(18,55,40,.88);color:#fff;font:inherit;font-size:12px;font-weight:900;transform:translateX(-50%);cursor:pointer}.image-lightbox__hint{position:fixed;z-index:2;left:50%;bottom:max(20px,env(safe-area-inset-bottom));margin:0;padding:7px 12px;border-radius:999px;background:rgba(8,15,12,.64);color:rgba(255,255,255,.88);font-size:12px;font-weight:800;white-space:nowrap;transform:translateX(-50%);pointer-events:none}.image-lightbox__close:focus-visible,.image-lightbox__zoom-status:focus-visible{outline:3px solid #fff;outline-offset:3px}.has-image-lightbox{overflow:hidden;overscroll-behavior:none}.photo-thumb__preview{position:relative;display:block;width:100%;margin:0;padding:0;overflow:hidden;border:0;border-radius:14px;background:#fff8ed;cursor:zoom-in}.photo-thumb__preview:focus-visible{outline:3px solid var(--pink);outline-offset:3px}@media(max-width:640px){.image-lightbox__image{max-width:calc(100vw - 20px);max-height:calc(100dvh - 132px);border-radius:12px}.image-lightbox__close{width:44px;height:44px;font-size:29px}.image-lightbox__hint{font-size:11px}}
.analytics-filter label{display:grid;gap:6px;font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:950;color:var(--muted)}
.analytics-filter input{min-height:46px;border:1px solid var(--line);border-radius:14px;background:#fffdf7;padding:0 13px;font-weight:900;color:var(--ink)}
.analytics-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.analytics-kpis article{position:relative;overflow:hidden;border:1px solid rgba(18,55,40,.12);border-radius:24px;background:linear-gradient(145deg,#fffdf8,#fff7eb);padding:18px;box-shadow:0 18px 44px rgba(39,31,61,.07)}
.analytics-kpis article:after{content:"";position:absolute;right:-34px;top:-34px;width:110px;height:110px;border-radius:50%;background:radial-gradient(circle,rgba(226,91,154,.16),rgba(122,143,74,.04) 58%,transparent 62%)}
.analytics-kpis span,.analytics-card-head span{display:block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:950}
.analytics-kpis strong{display:block;margin-top:7px;font-size:34px;line-height:1;color:var(--ink);letter-spacing:-.04em}
.analytics-kpis em{display:block;margin-top:9px;font-style:normal;font-size:12px;font-weight:900;color:var(--muted)}
.analytics-kpis em.is-up{color:#416f2d}.analytics-kpis em.is-down{color:#b44735}
.analytics-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}
.analytics-wide{grid-column:span 2}
.analytics-card{overflow:hidden}
.analytics-card-head{display:flex;align-items:start;justify-content:space-between;gap:12px;margin-bottom:8px}
.analytics-card h2{margin-top:0}
.analytics-trend{height:220px;display:flex;align-items:end;gap:4px;padding:16px 8px 8px;border:1px solid rgba(18,55,40,.08);border-radius:22px;background:linear-gradient(180deg,rgba(255,255,255,.65),rgba(255,248,237,.8))}
.trend-day{position:relative;flex:1;min-width:4px;height:100%;display:flex;align-items:end;justify-content:center;border-radius:999px}
.trend-day i,.trend-day b{position:absolute;bottom:0;border-radius:999px 999px 2px 2px;transition:.18s ease}
.trend-day i{width:62%;background:linear-gradient(180deg,#e25b9a,#ec7a30 58%,#7a8f4a);box-shadow:0 10px 22px rgba(226,91,154,.14)}
.trend-day b{width:22%;background:#123728;opacity:.72}
.trend-day:hover i,.trend-day:hover b{filter:saturate(1.1);transform:translateY(-2px)}
.analytics-legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:10px;color:var(--muted);font-weight:900;font-size:12px}
.analytics-legend span{display:inline-flex;gap:6px;align-items:center}
.analytics-legend i{width:10px;height:10px;border-radius:999px;display:inline-block}
.legend-revenue{background:#e25b9a}.legend-orders{background:#123728}
.analytics-meter-row{display:grid;gap:8px;padding:12px 0;border-top:1px solid var(--line)}
.analytics-meter-row:first-of-type{border-top:0}
.analytics-meter-row div{display:flex;justify-content:space-between;gap:12px;align-items:end}
.analytics-meter-row strong{font-size:15px}.analytics-meter-row span{font-size:12px;color:var(--muted);font-weight:850;text-align:right}
.analytics-meter-row em,.analytics-product-row em{display:block;position:relative;height:9px;border-radius:999px;background:#f3eee4;overflow:hidden}
.analytics-meter-row em:before,.analytics-product-row em:before{content:"";position:absolute;inset:0 auto 0 0;width:var(--w);border-radius:inherit;background:linear-gradient(90deg,#e25b9a,#ec7a30,#a98bed,#7a8f4a)}
.weekday-bars{height:180px;display:grid;grid-template-columns:repeat(7,1fr);gap:8px;align-items:end;margin-top:14px}
.weekday-bars div{height:100%;display:grid;grid-template-rows:1fr auto;gap:8px;align-items:end;text-align:center;color:var(--muted);font-size:11px;font-weight:950}
.weekday-bars i{align-self:end;display:block;border-radius:999px 999px 6px 6px;background:linear-gradient(180deg,#7a8f4a,#123728);box-shadow:0 14px 28px rgba(18,55,40,.12)}
.funnel-stack{display:grid;gap:10px;margin-top:12px}
.funnel-stack div{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:14px 16px;border:1px solid var(--line);border-radius:18px;background:#fffdf8}
.funnel-stack span{font-weight:900;color:var(--muted)}.funnel-stack strong{font-size:24px}
.analytics-product-row{display:grid;grid-template-columns:30px 54px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}
.analytics-product-row:first-of-type{border-top:0}
.analytics-product-row img{width:54px;height:54px;border-radius:15px;object-fit:cover;border:1px solid var(--line)}
.analytics-product-row .rank{width:30px;height:30px;border-radius:999px;background:#fff1f6;color:#b83d7d;display:grid;place-items:center;font-weight:950;font-size:12px}
.analytics-product-row p{margin:4px 0 8px;color:var(--muted);font-size:12px;font-weight:850}
.analytics-product-row b{white-space:nowrap}
@media (max-width:920px){.analytics-filter{grid-template-columns:1fr}.analytics-actions{justify-content:flex-start}.analytics-grid,.analytics-wide{grid-template-columns:1fr;grid-column:auto}.analytics-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.analytics-kpis{grid-template-columns:1fr}.analytics-kpis strong{font-size:28px}.analytics-product-row{grid-template-columns:24px 48px minmax(0,1fr)}.analytics-product-row b{grid-column:3}.analytics-filter form{display:grid;grid-template-columns:1fr}.analytics-trend{height:170px}}

/* Public reminder page */
.reminder-public{min-height:100vh;background:radial-gradient(circle at 0 0,rgba(255,226,122,.28),transparent 34%),radial-gradient(circle at 100% 12%,rgba(227,105,165,.18),transparent 32%),#fffaf1;color:var(--ink)}
.reminder-wrap{width:min(760px,calc(100% - 32px));margin:0 auto;padding:34px 0 52px}
.reminder-hero{text-align:center;margin:18px auto 18px}.reminder-hero h1,.reminder-done h1{margin:6px 0 10px;font-size:clamp(36px,9vw,62px);line-height:.96;letter-spacing:0}.reminder-hero p,.reminder-done p{margin:0 auto;max-width:560px;color:var(--muted);font-size:17px;line-height:1.45}
.reminder-card{background:#fff;border:1px solid var(--line);border-radius:24px;padding:20px;box-shadow:var(--shadow)}
.reminder-list{display:grid;gap:12px}.reminder-row{display:grid;grid-template-columns:160px minmax(0,1fr) auto;gap:10px;align-items:end}.reminder-row label{text-align:left}.reminder-row input{min-height:48px}.reminder-card>.btn{margin-top:12px}.reminder-fineprint{margin:12px 0 0;color:var(--muted);font-size:12px;font-weight:700;line-height:1.35}.reminder-done{text-align:center;margin-top:28px}.reminder-saved-list{display:grid;gap:8px;margin-top:18px;text-align:left}.reminder-saved-list div{display:flex;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:14px;padding:11px 13px;background:#fffaf5}.reminder-saved-list strong{color:var(--green)}.reminder-saved-list span{font-weight:850}
@media (max-width:640px){.reminder-wrap{width:min(100% - 24px,760px);padding-top:18px}.reminder-card{padding:16px}.reminder-row{grid-template-columns:1fr}.reminder-row .mini-danger{width:100%}}

.env-copy{margin:14px 0}.env-copy textarea{width:100%;border:1px solid var(--line);border-radius:16px;padding:12px;background:#fffaf5;color:var(--ink);font:12px/1.45 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;resize:vertical;overflow-wrap:anywhere}

/* v2 design polish */
html, body {
  -webkit-text-size-adjust: 100%;
  touch-action: manipulation;
  overscroll-behavior: none;
}
.mobile-menu-toggle svg,
.side-links a svg,
.side-action svg {
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  fill: none;
}
.mobile-menu-toggle {
  min-height: calc(64px + env(safe-area-inset-top));
  padding-top: env(safe-area-inset-top);
}
.mobile-menu-toggle strong { font-size: 18px; }
.side-logo {
  width: 44px;
  height: 44px;
  border-radius: 16px;
  display: grid;
  place-items: center;
  background: #fff;
  overflow: hidden;
  box-shadow: 0 10px 22px rgba(0,0,0,.16);
}
.side-logo img {
  width: 34px;
  height: 34px;
  object-fit: contain;
}
.side-links a,
.side-action {
  min-height: 48px;
  gap: 12px;
}
.side-links a svg,
.side-action svg { opacity: .94; }
.side-links a.active svg { color: var(--green); }
.login-logo {
  width: 76px;
  height: 76px;
  object-fit: contain;
  display: block;
  margin-bottom: 10px;
}

.reminder-public {
  background:
    radial-gradient(circle at 0 0, rgba(255, 205, 73, .34), transparent 34%),
    radial-gradient(circle at 100% 4%, rgba(255, 94, 156, .22), transparent 34%),
    linear-gradient(160deg, #fff9ed 0%, #fbfff3 48%, #fff4fa 100%);
}
.reminder-wrap {
  width: min(820px, calc(100% - 32px));
  padding: 34px 0 60px;
}
.reminder-hero {
  text-align: center;
  margin: 4px auto 18px;
}
.reminder-logo {
  width: 78px;
  height: 78px;
  object-fit: contain;
  display: block;
  margin: 0 auto 8px;
}
.reminder-hero h1,
.reminder-done h1 {
  max-width: 740px;
  margin: 6px auto 12px;
  font-size: clamp(42px, 8.8vw, 72px);
  line-height: .92;
  letter-spacing: 0;
}
.reminder-hero p,
.reminder-done p {
  max-width: 660px;
  font-size: clamp(18px, 3.8vw, 25px);
  color: #706a80;
}
.reminder-hero p strong,
.reminder-done p strong { color: var(--ink); }
.reminder-recipient {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 14px;
  border: 1px solid #eadfd5;
  background: rgba(255,255,255,.72);
  border-radius: 999px;
  padding: 9px 14px;
  color: #6f6778;
  font-weight: 850;
}
.reminder-card {
  border-radius: 32px;
  padding: 28px;
}
.reminder-list {
  display: grid;
  gap: 18px;
}
.reminder-wheel-row {
  grid-template-columns: minmax(0, 1.2fr) minmax(220px, .8fr) auto;
  align-items: stretch;
  gap: 14px;
  border: 1px solid #eee3da;
  border-radius: 24px;
  padding: 16px;
  background: linear-gradient(180deg, #fff, #fffaf4);
}
.wheel-field {
  margin: 0;
  border: 0;
  padding: 0;
  min-width: 0;
}
.wheel-field legend,
.reminder-label {
  margin-bottom: 10px;
  color: var(--ink);
  font-size: 12px;
  font-weight: 950;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.reminder-wheel-grid {
  display: grid;
  grid-template-columns: minmax(150px, 1fr) 96px;
  gap: 10px;
}
.date-wheel {
  height: 168px;
  overflow: auto;
  display: grid;
  gap: 7px;
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: #fff;
  scroll-snap-type: y mandatory;
  -webkit-overflow-scrolling: touch;
}
.date-wheel-option {
  min-height: 38px;
  border: 0;
  border-radius: 13px;
  background: transparent;
  color: #625b70;
  font-weight: 900;
  text-align: center;
  scroll-snap-align: center;
}
.date-wheel-option.active {
  background: linear-gradient(90deg, #f6ecff, #fff2d2);
  color: var(--ink);
  box-shadow: inset 0 0 0 1px #e8d8ff;
}
.date-wheel-option:disabled {
  opacity: .28;
}
.date-preview {
  margin: 9px 2px 0;
  color: #0e7049;
  font-weight: 950;
}
.reminder-label {
  margin: 0;
  display: grid;
  align-content: start;
  gap: 10px;
}
.reminder-label input {
  min-height: 54px;
  border-radius: 18px;
  font-size: 16px;
  text-transform: none;
  letter-spacing: 0;
  font-weight: 800;
}
.reminder-wheel-row .mini-danger {
  align-self: end;
  min-height: 42px;
  padding: 0 14px;
}
.reminder-card-actions {
  display: grid;
  grid-template-columns: minmax(0, .58fr) minmax(0, 1fr);
  gap: 12px;
  margin-top: 18px;
}
.reminder-card-actions .btn {
  min-height: 54px;
}
.reminder-saved-list {
  margin-top: 22px;
}
.reminder-saved-list div {
  align-items: center;
  min-height: 58px;
  border-radius: 18px;
}
.reminder-saved-list strong {
  color: #145d3b;
  font-size: 20px;
}

.gift-card-page {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 24px;
  background: #f6f1ea;
}
.gift-card-sheet {
  width: min(520px, 100%);
  display: grid;
  gap: 14px;
}
.gift-card-face,
.gift-card-pack {
  background: #fff;
  border: 1px solid #eadfd5;
  border-radius: 28px;
  padding: 28px;
  box-shadow: var(--shadow);
}
.gift-card-face {
  text-align: center;
}
.gift-card-logo {
  width: 86px;
  height: 86px;
  object-fit: contain;
}
.gift-card-recipient {
  margin: 8px 0 0;
  color: #676073;
  font-weight: 950;
  text-transform: uppercase;
  letter-spacing: .12em;
}
.gift-card-message {
  display: grid;
  place-items: center;
  min-height: 150px;
  margin: 16px 0;
  border-top: 1px solid #f0e6dc;
  border-bottom: 1px solid #f0e6dc;
}
.gift-card-message p {
  margin: 0;
  color: var(--ink);
  font: 700 30px/1.2 Georgia, "Times New Roman", serif;
}
.gift-card-qr-block {
  display: grid;
  grid-template-columns: 116px minmax(0, 1fr);
  gap: 14px;
  align-items: center;
  text-align: left;
  border: 1px solid #eee4da;
  border-radius: 20px;
  padding: 12px;
  background: #fffaf4;
}
.gift-card-qr {
  width: 116px;
  height: 116px;
}
.gift-card-qr-block strong {
  display: block;
  font-size: 18px;
  line-height: 1.1;
}
.gift-card-qr-block span {
  display: block;
  margin-top: 6px;
  color: #706a80;
  font-weight: 800;
  line-height: 1.35;
}
.gift-card-pack h2 {
  margin: 0 0 10px;
}
.gift-card-pack p {
  margin: 6px 0;
}
.gift-card-pack ul {
  margin: 8px 0 0;
  padding-left: 18px;
}
.gift-card-actions {
  display: flex;
  justify-content: center;
  gap: 10px;
}

@media (max-width: 760px) {
  .reminder-wrap {
    width: min(100% - 24px, 820px);
    padding-top: 22px;
  }
  .reminder-card {
    padding: 18px;
    border-radius: 28px;
  }
  .reminder-wheel-row {
    grid-template-columns: 1fr;
    padding: 14px;
  }
  .reminder-card-actions {
    grid-template-columns: 1fr;
  }
  .reminder-card-actions .btn,
  .reminder-wheel-row .mini-danger {
    width: 100%;
  }
  .reminder-wheel-grid {
    grid-template-columns: minmax(0, 1fr) 86px;
  }
  .date-wheel {
    height: 154px;
  }
  .gift-card-qr-block {
    grid-template-columns: 1fr;
    text-align: center;
  }
  .gift-card-qr {
    margin: 0 auto;
  }
}

/* Shopify Balance expense review + external order sources */
.card-spend-panel{border-color:rgba(18,55,40,.2);background:linear-gradient(145deg,#fffdfa 0%,#f7faf5 100%)}
.card-spend-heading{align-items:flex-start;gap:18px}.card-spend-heading h2{display:flex;align-items:center;gap:9px;margin:2px 0 7px}.finance-count{display:inline-grid;place-items:center;min-width:28px;height:28px;padding:0 8px;border-radius:999px;color:#fff;background:#df5b9c;font-size:13px}.finance-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.finance-actions form{margin:0}.finance-setup-note,.finance-empty{display:flex;flex-direction:column;gap:4px;margin:14px 0;padding:13px 15px;border:1px solid rgba(122,143,74,.25);border-radius:14px;background:rgba(255,255,255,.75)}.finance-setup-note code{font-size:12px}.finance-connections{display:grid;gap:8px;margin:14px 0}.finance-connection{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:11px 13px;border:1px solid var(--line);border-radius:14px;background:#fff}.finance-connection>div{display:grid;gap:2px}.finance-connection span,.finance-connection small{color:var(--muted);font-size:12px}.finance-connection em{grid-column:1/-1;color:#a52f4f;font-size:12px;font-style:normal}.finance-connection.is-active{border-left:4px solid #7a8f4a}.balance-csv-import{margin:14px 0;border-top:1px solid var(--line);padding-top:12px}.balance-csv-import summary{cursor:pointer;font-weight:850}.finance-csv-form{display:flex;align-items:center;gap:10px;margin-top:10px}.finance-csv-form input{min-width:0;padding:9px;border-radius:12px}.finance-review-list{display:grid;gap:10px;margin-top:14px}.finance-review-row{display:grid;grid-template-columns:minmax(180px,1fr) auto minmax(360px,1.35fr) auto;align-items:center;gap:12px;padding:14px;border:1px solid rgba(18,55,40,.14);border-radius:16px;background:#fff}.finance-transaction-main{display:grid;gap:3px;min-width:0}.finance-transaction-main>strong{overflow:hidden;text-overflow:ellipsis}.finance-transaction-main small{color:var(--muted)}.finance-source{display:inline-flex;width:max-content;border-radius:999px;padding:3px 7px;color:#52613a;background:#eef3e6;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.finance-source.inline{display:inline-flex;vertical-align:middle;margin-left:5px}.finance-review-form{display:grid;grid-template-columns:minmax(145px,.7fr) minmax(190px,1.3fr) auto;gap:7px}.finance-review-form select,.finance-review-form input{width:100%;min-height:42px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:9px 11px}.finance-review-form .btn{padding:10px 13px}.finance-ignore{border:0;background:transparent;color:#8b6d73;text-decoration:underline;cursor:pointer;font-size:11px}.finance-expense-edit{grid-column:1/-1}.finance-expense-edit summary{cursor:pointer;color:var(--muted);font-size:11px;font-weight:850}.finance-expense-edit form{display:grid;grid-template-columns:minmax(140px,.6fr) minmax(200px,1.4fr) auto;gap:7px;margin-top:8px}.finance-expense-edit select,.finance-expense-edit input{min-height:40px;border:1px solid var(--line);border-radius:11px;background:#fff;padding:8px 10px}.external-source-badge{display:inline-flex;align-items:center;margin-left:7px;padding:3px 7px;border-radius:999px;color:#fff;background:#e55236;font-size:10px;font-weight:950;letter-spacing:.05em;text-transform:uppercase;vertical-align:middle}.detail-source-line{display:flex;align-items:center;gap:7px}.detail-source-line .external-source-badge{margin-left:0}
@media (max-width:900px){.finance-review-row{grid-template-columns:minmax(0,1fr) auto}.finance-review-form{grid-column:1/-1}.finance-review-row>form:last-child{grid-column:1/-1}.finance-connection{grid-template-columns:minmax(0,1fr) auto}.finance-connection form{grid-column:1/-1}}
@media (max-width:620px){.card-spend-heading{display:grid}.finance-actions{justify-content:flex-start}.finance-actions .btn{width:100%}.finance-csv-form,.finance-review-form,.finance-expense-edit form{grid-template-columns:1fr;display:grid}.finance-review-form .btn{width:100%}.finance-review-row{padding:12px}.finance-connection{grid-template-columns:1fr}.finance-connection small{justify-self:start}.finance-setup-note{overflow-wrap:anywhere}}

/* Accounting summary: result first, explanation second. */
.accounting-overview{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(290px,.75fr);gap:14px;margin:16px 0 20px}.accounting-result-card,.accounting-outlook-card,.accounting-sales-mix{position:relative;overflow:hidden;border:1px solid rgba(18,55,40,.14);border-radius:24px;background:#fff;box-shadow:0 14px 36px rgba(18,55,40,.06)}.accounting-result-card{padding:22px;background:linear-gradient(135deg,#fff 0%,#fbfdf8 100%)}.accounting-result-card::after{content:"";position:absolute;right:-74px;top:-92px;width:220px;height:220px;border:42px solid rgba(122,143,74,.08);border-radius:50%;pointer-events:none}.accounting-result-head{position:relative;z-index:1;display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.accounting-summary-label{display:block;color:#667064;font-size:11px;font-weight:950;letter-spacing:.09em;text-transform:uppercase}.accounting-result-value{display:block;margin-top:5px;color:var(--ink);font-size:clamp(38px,4.4vw,62px);line-height:1;letter-spacing:-.045em}.accounting-margin-pill{display:inline-flex;align-items:center;min-height:34px;padding:7px 11px;border-radius:999px;background:#edf4e7;color:#526b34;font-size:12px;font-weight:950;white-space:nowrap}.accounting-result-card.is-negative .accounting-margin-pill{background:#fff0f3;color:#a52f4f}.accounting-result-note{position:relative;z-index:1;margin:10px 0 20px;color:var(--muted);font-size:13px;font-weight:750}.accounting-equation{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr);align-items:stretch;gap:10px;padding:10px;border:1px solid rgba(18,55,40,.12);border-radius:18px;background:rgba(255,253,248,.82)}.accounting-equation>div{display:grid;align-content:center;gap:3px;min-height:68px;padding:9px 12px}.accounting-equation span{color:var(--muted);font-size:11px;font-weight:850}.accounting-equation b{font-size:clamp(17px,1.8vw,24px);line-height:1.1;white-space:nowrap}.accounting-equation i{align-self:center;color:#a3a79f;font-size:21px;font-style:normal;font-weight:500}.accounting-equation-result{border-radius:13px;background:#eef4e8}.accounting-result-card.is-negative .accounting-equation-result{background:#fff0f3}.accounting-outlook-card{display:grid;align-content:start;padding:22px;background:linear-gradient(145deg,#fff9ee 0%,#fff 72%)}.accounting-outlook-card::before{content:"";position:absolute;right:-35px;top:-38px;width:120px;height:120px;border-radius:50%;background:rgba(223,91,156,.09)}.accounting-outlook-heading{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:10px}.accounting-outlook-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#173d2e;color:#fff;font-size:18px;font-weight:900}.accounting-outlook-card>strong{position:relative;z-index:1;margin-top:15px;font-size:clamp(34px,3.2vw,48px);line-height:1;letter-spacing:-.04em}.accounting-outlook-card>p{position:relative;z-index:1;margin:10px 0 18px;color:var(--muted);font-size:13px;line-height:1.45}.accounting-outlook-meta{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:auto}.accounting-outlook-meta span{display:grid;gap:3px;padding:10px;border:1px solid rgba(18,55,40,.1);border-radius:13px;background:rgba(255,255,255,.76);color:var(--muted);font-size:10px;font-weight:800}.accounting-outlook-meta b{color:var(--ink);font-size:14px}.accounting-sales-mix{grid-column:1/-1;display:grid;grid-template-columns:minmax(210px,.65fr) minmax(0,1.35fr);align-items:center;gap:18px;padding:18px 20px;background:#fffdf9}.accounting-sales-mix header{display:flex;flex-direction:column;gap:5px}.accounting-sales-mix header strong{font-size:18px}.accounting-sales-mix header small{color:var(--muted);font-size:11px;font-weight:750}.accounting-mix-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid rgba(18,55,40,.11);border-radius:16px;background:#fff}.accounting-mix-grid>div{display:grid;gap:4px;padding:13px 15px;border-left:1px solid rgba(18,55,40,.09)}.accounting-mix-grid>div:first-child{border-left:0}.accounting-mix-grid span{color:var(--muted);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}.accounting-mix-grid b{font-size:18px;white-space:nowrap}.accounting-result-card.is-negative .accounting-result-value,.accounting-outlook-card.is-negative>strong{color:#a52f4f}
@media(max-width:900px){.accounting-overview{grid-template-columns:1fr}.accounting-sales-mix{grid-column:auto;grid-template-columns:1fr}.accounting-outlook-meta{max-width:430px}}
@media(max-width:620px){.accounting-overview{gap:10px;margin-top:12px}.accounting-result-card,.accounting-outlook-card,.accounting-sales-mix{border-radius:20px}.accounting-result-card,.accounting-outlook-card{padding:17px}.accounting-result-head{display:grid;gap:10px}.accounting-margin-pill{width:max-content}.accounting-equation{grid-template-columns:1fr;gap:0}.accounting-equation i{display:none}.accounting-equation>div{grid-template-columns:minmax(0,1fr) auto;align-items:center;min-height:0;padding:9px 10px}.accounting-equation-result{margin-top:5px}.accounting-sales-mix{padding:16px}.accounting-mix-grid{grid-template-columns:1fr 1fr}.accounting-mix-grid>div{border-left:0;border-top:1px solid rgba(18,55,40,.09)}.accounting-mix-grid>div:nth-child(-n+2){border-top:0}.accounting-mix-grid>div:nth-child(even){border-left:1px solid rgba(18,55,40,.09)}.accounting-mix-grid b{font-size:16px}}

/* Final Bloom public forms */
.reminder-public {
  --fb-forest: #123728;
  --fb-cream: #fff4e2;
  --fb-paper: #fffdf8;
  --fb-pink: #ff4fa3;
  --fb-coral: #ff6b2e;
  --fb-palm: #5f7438;
  --fb-line: rgba(18, 55, 40, .16);
  position: relative;
  overflow-x: clip;
  color: var(--fb-forest);
  background-color: var(--fb-cream);
  background-image:
    linear-gradient(rgba(255, 244, 226, .86), rgba(255, 253, 248, .92)),
    url("/public/brand/df-final-paper.webp");
  background-position: center top;
  background-size: auto, 1280px auto;
  font-family: Inter, "Avenir Next", "Segoe UI", system-ui, sans-serif;
}
.reminder-public::before,
.reminder-public::after {
  content: "";
  position: fixed;
  z-index: 0;
  pointer-events: none;
}
.reminder-public::before {
  inset: 0;
  background: url("/public/brand/df-final-checker.svg") 50% 0 / 190px auto repeat;
  opacity: .045;
}
.reminder-public::after {
  top: 8vh;
  right: -54px;
  width: min(28vw, 320px);
  aspect-ratio: 1;
  background: url("/public/brand/df-final-petals.svg") center / contain no-repeat;
  opacity: .07;
}
.reminder-public .reminder-wrap {
  position: relative;
  z-index: 1;
  width: min(840px, calc(100% - 32px));
  padding: 38px 0 64px;
}
.reminder-public .reminder-hero {
  max-width: 710px;
  margin: 0 auto 24px;
}
.reminder-public .reminder-logo-link {
  width: min(260px, 72vw);
  margin: 0 auto 20px;
}
.reminder-public .reminder-logo {
  display: block;
  width: 100%;
  height: auto;
  max-height: 78px;
  margin: 0;
  object-fit: contain;
}
.reminder-public .reminder-hero > .reminder-logo,
.reminder-public .reminder-done > .reminder-logo {
  width: min(260px, 72vw);
  margin: 0 auto 20px;
}
.reminder-public .eyebrow {
  margin: 0 0 12px;
  color: #a82e63;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
}
.reminder-public .reminder-hero h1,
.reminder-public .reminder-done h1 {
  max-width: 680px;
  margin: 0 auto 14px;
  color: var(--fb-forest);
  font-family: "Avenir Next", "Trebuchet MS", system-ui, sans-serif;
  font-size: clamp(36px, 6vw, 54px);
  font-weight: 700;
  line-height: 1.04;
}
.reminder-public .reminder-hero p,
.reminder-public .reminder-done p {
  max-width: 610px;
  color: rgba(18, 55, 40, .74);
  font-size: clamp(16px, 2.2vw, 19px);
  line-height: 1.55;
}
.reminder-public .reminder-hero p strong,
.reminder-public .reminder-done p strong {
  color: var(--fb-forest);
}
.reminder-public .reminder-shop-cta,
.reminder-public .btn-primary {
  border-color: var(--fb-forest);
  color: #fffdf8;
  background: var(--fb-forest);
  box-shadow: 0 10px 26px rgba(18, 55, 40, .16);
}
.reminder-public .reminder-shop-cta:hover,
.reminder-public .btn-primary:hover {
  border-color: #244e3b;
  background: #244e3b;
  transform: translateY(-1px);
}
.reminder-public .reminder-card {
  border: 1px solid var(--fb-line);
  border-radius: 20px;
  padding: 24px;
  background: rgba(255, 253, 248, .96);
  box-shadow: 0 24px 64px rgba(18, 55, 40, .12);
}
.reminder-public .reminder-general-card {
  margin-top: 20px;
}
.reminder-public .reminder-label,
.reminder-public .wheel-field legend {
  color: var(--fb-forest);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .055em;
}
.reminder-public .reminder-label input,
.reminder-public .reminder-label textarea,
.reminder-public .reminder-label select {
  min-height: 52px;
  border: 1px solid var(--fb-line);
  border-radius: 12px;
  color: var(--fb-forest);
  background: #fffdfa;
  box-shadow: none;
  font-size: 16px;
  font-weight: 650;
}
.reminder-public .reminder-label input:focus,
.reminder-public .reminder-label textarea:focus,
.reminder-public .reminder-label select:focus {
  border-color: var(--fb-pink);
  outline: 3px solid rgba(255, 79, 163, .13);
}
.reminder-public .reminder-wheel-row {
  grid-template-columns: minmax(0, 1.18fr) minmax(210px, .82fr) auto;
  gap: 14px;
  border: 1px solid rgba(18, 55, 40, .11);
  border-radius: 16px;
  padding: 16px;
  background: rgba(255, 244, 226, .42);
}
.reminder-public .reminder-wheel-grid {
  grid-template-columns: minmax(0, 1fr) 88px;
  gap: 8px;
}
.reminder-public .date-wheel {
  height: 148px;
  border: 1px solid var(--fb-line);
  border-radius: 12px;
  background: #fffdfa;
  scrollbar-color: rgba(18, 55, 40, .34) transparent;
}
.reminder-public .date-wheel-option {
  min-height: 38px;
  border-radius: 9px;
  color: rgba(18, 55, 40, .72);
  font-weight: 700;
}
.reminder-public .date-wheel-option.active {
  color: var(--fb-forest);
  background: #ffe3a0;
  box-shadow: inset 0 0 0 1px rgba(255, 79, 163, .3);
}
.reminder-public .date-preview {
  color: var(--fb-palm);
  font-weight: 800;
}
.reminder-public .btn-outline {
  border-color: var(--fb-line);
  color: var(--fb-forest);
  background: #fffdfa;
}
.reminder-public .mini-danger {
  border-radius: 10px;
}
.reminder-public .reminder-fineprint {
  color: rgba(18, 55, 40, .62);
}

@media (max-width: 760px) {
  .reminder-public::after {
    top: 2vh;
    right: -92px;
    width: 250px;
    opacity: .045;
  }
  .reminder-public .reminder-wrap {
    width: min(100% - 24px, 840px);
    padding: 24px 0 42px;
  }
  .reminder-public .reminder-logo-link {
    width: min(226px, 68vw);
    margin-bottom: 18px;
  }
  .reminder-public .reminder-logo {
    width: 100%;
    height: auto;
    max-height: 68px;
  }
  .reminder-public .reminder-hero > .reminder-logo,
  .reminder-public .reminder-done > .reminder-logo {
    width: min(226px, 68vw);
    margin-bottom: 18px;
  }
  .reminder-public .reminder-hero h1,
  .reminder-public .reminder-done h1 {
    font-size: clamp(34px, 9vw, 44px);
    line-height: 1.06;
  }
  .reminder-public .reminder-card {
    padding: 16px;
    border-radius: 16px;
  }
  .reminder-public .reminder-contact-grid,
  .reminder-public .reminder-wheel-row,
  .reminder-public .reminder-card-actions {
    grid-template-columns: 1fr;
  }
  .reminder-public .reminder-wheel-grid {
    grid-template-columns: minmax(0, 1fr) 80px;
  }
  .reminder-public .date-wheel {
    height: 140px;
  }
.reminder-public .reminder-shop-cta,
  .reminder-public .reminder-card-actions .btn {
    width: 100%;
  }
}

.finance-expense-edit form:last-of-type{display:block;grid-template-columns:none;margin-top:7px}
@media (max-width:620px){.finance-expense-edit form:last-of-type{display:block}}

/* v4.2 final optical centering — must stay after legacy public-form styles */
body.reminder-public .reminder-hero,
body.custom-request-public .custom-request-hero,
.reminder-public .reminder-hero,
.custom-request-public .custom-request-hero {
  display: grid;
  justify-items: center;
  text-align: center;
}

body.reminder-public .reminder-logo-link,
body.custom-request-public .reminder-logo-link,
.reminder-public .reminder-logo-link,
.custom-request-public .reminder-logo-link {
  display: flex;
  justify-content: center;
  width: min(260px, 72vw);
  margin-inline: auto;
}

body.reminder-public .reminder-logo,
body.custom-request-public .reminder-logo,
.reminder-public .reminder-logo,
.custom-request-public .reminder-logo {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}

body.reminder-public .eyebrow,
body.custom-request-public .eyebrow,
.reminder-public .eyebrow,
.custom-request-public .eyebrow {
  display: block;
  width: max-content;
  max-width: 100%;
  margin: 0 auto 13px;
  color: #7a8f4a;
  font-size: 13px;
  font-weight: 900;
  line-height: 1.1;
  letter-spacing: .105em;
  text-indent: .105em;
  text-align: center;
}

body.custom-request-public .eyebrow,
.custom-request-public .eyebrow {
  transform: translateX(.5px);
}

body.reminder-public .reminder-hero h1,
body.custom-request-public .reminder-hero h1,
.reminder-public .reminder-hero h1,
.custom-request-public .reminder-hero h1 {
  margin-inline: auto;
  text-align: center;
}

/* v4.2 optical center fix for public hero logo + spaced eyebrow */
body.reminder-public .reminder-hero,
body.custom-request-public .custom-request-hero,
.reminder-public .reminder-hero,
.custom-request-public .custom-request-hero {
  display: grid;
  justify-items: center;
  text-align: center;
}
body.reminder-public .reminder-logo-link,
body.custom-request-public .reminder-logo-link,
.reminder-public .reminder-logo-link,
.custom-request-public .reminder-logo-link {
  display: flex;
  justify-content: center;
  width: min(260px, 72vw);
  margin-inline: auto;
}
body.reminder-public .reminder-logo,
body.custom-request-public .reminder-logo,
.reminder-public .reminder-logo,
.custom-request-public .reminder-logo {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}
body.reminder-public .eyebrow,
body.custom-request-public .eyebrow,
.reminder-public .eyebrow,
.custom-request-public .eyebrow {
  display: block;
  width: max-content;
  max-width: 100%;
  margin: 0 auto 13px;
  color: #7a8f4a;
  font-size: 13px;
  font-weight: 900;
  line-height: 1.1;
  letter-spacing: .105em;
  text-indent: .105em;
  text-align: center;
}
body.custom-request-public .eyebrow,
.custom-request-public .eyebrow {
  transform: translateX(.5px);
}
body.reminder-public .reminder-hero h1,
body.custom-request-public .reminder-hero h1,
.reminder-public .reminder-hero h1,
.custom-request-public .reminder-hero h1 {
  margin-inline: auto;
  text-align: center;
}

/* v4.1 calmer public form system: milk paper, more breathing room */
body.reminder-public,
body.custom-request-public,
.reminder-public,
.custom-request-public {
  --df-public-forest: #123728;
  --df-public-olive: #7a8f4a;
  --df-public-milk: #fff8ee;
  --df-public-paper: #fffdf8;
  --df-public-blush: #f8e8e7;
  --df-public-line: rgba(18, 55, 40, .14);
  --df-public-muted: rgba(18, 55, 40, .62);
  color: var(--df-public-forest);
  background-color: var(--df-public-milk);
  background-image:
    radial-gradient(circle at 10% 8%, rgba(255, 255, 248, .88), transparent 29%),
    radial-gradient(circle at 86% 14%, rgba(248, 232, 231, .52), transparent 31%),
    linear-gradient(145deg, #fff7eb 0%, #fffdf8 46%, #f8eee7 100%);
  font-family: "DF Assistant", Inter, "Avenir Next", "Segoe UI", system-ui, sans-serif;
}
body.reminder-public::before,
body.custom-request-public::before,
.reminder-public::before,
.custom-request-public::before {
  background:
    linear-gradient(rgba(255, 253, 248, .90), rgba(255, 253, 248, .90)),
    url("/public/brand/df-final-paper.webp") center top / 1180px auto repeat;
  opacity: .46;
}
body.reminder-public::after,
body.custom-request-public::after,
.reminder-public::after,
.custom-request-public::after {
  opacity: .045;
}
.reminder-public .reminder-wrap,
.custom-request-public .reminder-wrap {
  width: min(860px, calc(100% - 34px));
  padding-top: 34px;
}
.custom-request-public .reminder-wrap {
  width: min(1080px, calc(100% - 34px));
}
.reminder-public .reminder-logo-link,
.reminder-public .reminder-logo,
.custom-request-public .reminder-logo-link,
.custom-request-public .reminder-logo {
  filter: drop-shadow(0 12px 22px rgba(18, 55, 40, .05));
}
.reminder-public .eyebrow,
.custom-request-public .eyebrow {
  color: var(--df-public-olive);
  letter-spacing: .12em;
}
.reminder-public .reminder-hero h1,
.reminder-public .reminder-done h1,
.custom-request-public .reminder-hero h1,
.custom-request-public .reminder-done h1 {
  color: var(--df-public-forest);
  letter-spacing: -.035em;
}
.reminder-public .reminder-hero p,
.reminder-public .reminder-done p,
.custom-request-public .reminder-hero p,
.custom-request-public .reminder-done p {
  color: var(--df-public-muted);
}
.reminder-public .reminder-card,
.custom-request-public .reminder-card {
  border: 1px solid var(--df-public-line);
  border-radius: 28px;
  background: rgba(255, 253, 248, .92);
  box-shadow: 0 26px 70px rgba(18, 55, 40, .10);
  backdrop-filter: blur(10px);
}
.reminder-public .reminder-card {
  padding: 30px;
}
.custom-request-public .reminder-card {
  padding: 30px;
}
.reminder-public .reminder-contact-grid,
.custom-request-public .reminder-contact-grid,
.custom-request-public .custom-request-grid {
  gap: 18px;
}
.reminder-public .reminder-label,
.reminder-public .wheel-field legend,
.custom-request-public .reminder-label {
  display: grid;
  gap: 10px;
  margin: 0;
  color: var(--df-public-forest);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .09em;
  line-height: 1.22;
}
.reminder-public .reminder-card > .reminder-label,
.custom-request-public .custom-request-form > .reminder-label {
  margin-top: 14px;
}
.reminder-public .reminder-label input,
.reminder-public .reminder-label textarea,
.reminder-public .reminder-label select,
.custom-request-public input,
.custom-request-public select,
.custom-request-public textarea,
.custom-request-public .df-date-picker__button {
  min-height: 56px;
  border: 1px solid rgba(18, 55, 40, .18);
  border-radius: 16px;
  padding: 15px 17px;
  color: var(--df-public-forest);
  background: rgba(255, 253, 248, .94);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .78);
  font-size: 16px;
  font-weight: 750;
}
.reminder-public .reminder-label input::placeholder,
.reminder-public .reminder-label textarea::placeholder,
.custom-request-public input::placeholder,
.custom-request-public textarea::placeholder {
  color: rgba(18, 55, 40, .42);
}
.reminder-public .reminder-label input:focus,
.reminder-public .reminder-label textarea:focus,
.reminder-public .reminder-label select:focus,
.custom-request-public input:focus,
.custom-request-public select:focus,
.custom-request-public textarea:focus,
.custom-request-public .df-date-picker__button:focus {
  border-color: rgba(122, 143, 74, .58);
  outline: 4px solid rgba(122, 143, 74, .13);
}
.reminder-public .reminder-wheel-row {
  grid-template-columns: minmax(0, 1.18fr) minmax(220px, .82fr) auto;
  gap: 22px;
  align-items: start;
  margin-top: 16px;
  border: 1px solid rgba(18, 55, 40, .12);
  border-radius: 24px;
  padding: 24px;
  background: rgba(255, 248, 238, .72);
}
.reminder-public .reminder-wheel-grid {
  grid-template-columns: minmax(0, 1fr) 88px;
  gap: 12px;
}
.reminder-public .date-wheel {
  height: 150px;
  border-color: rgba(18, 55, 40, .13);
  border-radius: 18px;
  padding: 8px;
  background: rgba(255, 253, 248, .82);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.82);
}
.reminder-public .date-wheel-option {
  min-height: 40px;
  border-radius: 12px;
  color: rgba(18, 55, 40, .67);
}
.reminder-public .date-wheel-option.active {
  color: var(--df-public-forest);
  background: #e8ead9;
  box-shadow: inset 0 0 0 1px rgba(122, 143, 74, .45);
}
.reminder-public .date-preview {
  margin-top: 10px;
  color: var(--df-public-olive);
}
.reminder-public .reminder-card-actions {
  gap: 14px;
  margin-top: 18px;
}
.reminder-public .btn-primary,
.custom-request-public .btn-primary {
  border-color: transparent;
  color: #fffdf8;
  background: #123728;
  box-shadow: 0 16px 30px rgba(18, 55, 40, .15);
}
.reminder-public .btn-outline {
  border-color: rgba(18, 55, 40, .18);
  color: var(--df-public-forest);
  background: rgba(255, 253, 248, .78);
}
.custom-request-public .custom-request-split {
  gap: 22px;
}
.custom-request-public .custom-request-form {
  border-radius: 28px;
}
.custom-request-public .custom-request-call {
  min-height: auto;
  border-top: 0;
  border-radius: 28px;
  background:
    radial-gradient(circle at 85% 18%, rgba(248,232,231,.54), transparent 28%),
    rgba(255, 253, 248, .88);
}
.custom-request-public .custom-request-call strong {
  color: var(--df-public-forest);
  letter-spacing: -.045em;
}
.custom-request-public .custom-request-call em,
.custom-request-public .custom-request-note {
  color: rgba(18, 55, 40, .62);
}
.custom-request-public .df-date-picker__panel {
  border-color: rgba(18, 55, 40, .14);
  border-radius: 18px;
  background: rgba(255, 253, 248, .98);
  box-shadow: 0 22px 54px rgba(18, 55, 40, .14);
}
.custom-request-public .df-date-picker__grid button {
  border-radius: 12px;
  background: #fff8ee;
  color: var(--df-public-forest);
}
.custom-request-public .df-date-picker__grid button:hover {
  background: #edf0dd;
}
.custom-request-public .df-date-picker__grid button.is-selected {
  background: #123728;
  color: #fffdf8;
}
@media (max-width: 760px) {
  .reminder-public .reminder-wrap,
  .custom-request-public .reminder-wrap {
    width: min(100% - 22px, 860px);
    padding-top: 22px;
  }
  .reminder-public .reminder-card,
  .custom-request-public .reminder-card {
    padding: 18px;
    border-radius: 22px;
  }
  .reminder-public .reminder-wheel-row,
  .custom-request-public .custom-request-grid,
  .custom-request-public .custom-request-split {
    grid-template-columns: 1fr;
  }
  .reminder-public .reminder-wheel-row {
    gap: 16px;
    padding: 18px;
  }
  .reminder-public .reminder-wheel-grid {
    grid-template-columns: minmax(0, 1fr) 78px;
  }
}

/* Rebrand finish: public request/reminder pages should feel like the Shopify site without changing the Shopify fonts. */
body.reminder-public,
body.custom-request-public {
  --fb-forest: #123728;
  --fb-paper: #fffdf8;
  --fb-cream: #fff4e2;
  --fb-palm: #7a8f4a;
  --fb-pink: #ff4fa3;
  --fb-coral: #ff6b2e;
  --fb-line: rgba(18, 55, 40, .16);
  color: var(--fb-forest);
  background:
    radial-gradient(circle at 13% 18%, rgba(255, 79, 163, .065), transparent 26%),
    radial-gradient(circle at 85% 12%, rgba(122, 143, 74, .07), transparent 24%),
    linear-gradient(180deg, #fff7ea, #fffdf8 54%, #fff4e2);
  font-family: "DF Assistant", Assistant, system-ui, -apple-system, Segoe UI, sans-serif;
}

body.reminder-public::before,
body.custom-request-public::before {
  opacity: .24;
  background-size: 360px auto;
}

.reminder-public .reminder-wrap {
  width: min(100% - 36px, 960px);
  padding: clamp(28px, 5vw, 56px) 0 clamp(42px, 7vw, 86px);
}

.reminder-public .reminder-hero,
.custom-request-public .custom-request-hero {
  max-width: 820px;
  margin-inline: auto;
  text-align: center;
}

.reminder-public .reminder-logo-link,
.reminder-public .reminder-logo {
  display: inline-block;
  width: min(292px, 72vw);
  height: auto;
}

.reminder-public .eyebrow {
  color: var(--fb-palm) !important;
  font-weight: 900;
  letter-spacing: .12em;
}

.reminder-public .reminder-hero h1,
.reminder-public .reminder-done h1 {
  max-width: 780px;
  margin-inline: auto;
  color: var(--fb-forest);
  font-family: "DF Comfortaa", "DF Assistant", system-ui, sans-serif;
  font-size: clamp(42px, 6.2vw, 74px);
  letter-spacing: -.055em;
  line-height: 1.02;
}

.reminder-public .reminder-hero > p:not(.eyebrow),
.reminder-public .reminder-done > p:not(.eyebrow) {
  max-width: 650px;
  margin-inline: auto;
  color: rgba(18, 55, 40, .68);
  font-size: clamp(17px, 1.7vw, 21px);
  line-height: 1.5;
}

.reminder-public .reminder-card {
  border-radius: 22px;
  background: rgba(255, 253, 248, .94);
  box-shadow: 0 28px 70px rgba(18, 55, 40, .12);
}

.custom-request-public .custom-request-split {
  display: grid;
  grid-template-columns: minmax(250px, .75fr) minmax(0, 1.25fr);
  gap: 22px;
  align-items: stretch;
  margin-top: clamp(24px, 4vw, 38px);
}

.custom-request-public .custom-request-call {
  display: grid;
  align-content: end;
  min-height: 100%;
  padding: clamp(24px, 3vw, 36px);
  text-decoration: none;
  background:
    linear-gradient(180deg, rgba(255, 253, 248, .78), rgba(255, 253, 248, .97)),
    radial-gradient(circle at 20% 20%, rgba(255, 79, 163, .18), transparent 26%),
    radial-gradient(circle at 88% 8%, rgba(122, 143, 74, .18), transparent 24%);
}

.custom-request-public .custom-request-call strong {
  color: #392a59;
  font-family: "DF Comfortaa", "DF Assistant", system-ui, sans-serif;
  font-size: clamp(36px, 4.4vw, 58px);
  letter-spacing: -.055em;
}

.custom-request-public .custom-request-call em {
  color: var(--fb-forest);
  font-size: 1.15rem;
  font-style: normal;
  font-weight: 900;
}

.custom-request-public .custom-request-form {
  padding: clamp(22px, 3vw, 34px);
}

.custom-request-public .custom-request-grid,
.reminder-public .reminder-contact-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.reminder-public .reminder-label input,
.reminder-public .reminder-label textarea,
.reminder-public .reminder-label select,
.reminder-public .df-date-picker__button {
  border-radius: 14px;
  background: rgba(255, 253, 248, .92);
  font-weight: 750;
}

.reminder-public .reminder-wheel-row {
  grid-template-columns: minmax(0, 1.1fr) minmax(240px, .72fr) auto;
  align-items: start;
  background: rgba(255, 244, 226, .36);
}

.reminder-public .reminder-wheel-grid {
  grid-template-columns: minmax(0, 1fr) 92px;
}

.reminder-public .date-wheel {
  height: 156px;
}

.reminder-public .date-wheel-option.active {
  color: #123728;
  background: linear-gradient(90deg, rgba(255, 79, 163, .2), rgba(255, 107, 46, .2));
  box-shadow: inset 0 0 0 1px rgba(18, 55, 40, .12);
}

.reminder-public .btn-primary {
  border-color: transparent !important;
  color: #fffdf8 !important;
  background: #123728 !important;
  box-shadow: 0 16px 30px rgba(18, 55, 40, .16);
}

.reminder-public .btn-primary:hover {
  background: linear-gradient(90deg, #ff4fa3, #ff6b2e) !important;
}

@media (max-width: 820px) {
  .custom-request-public .custom-request-split,
  .custom-request-public .custom-request-grid,
  .reminder-public .reminder-contact-grid,
  .reminder-public .reminder-wheel-row {
    grid-template-columns: 1fr;
  }

  .custom-request-public .custom-request-call {
    min-height: 260px;
  }
}

@media (max-width: 560px) {
  .reminder-public .reminder-wrap {
    width: min(100% - 24px, 960px);
  }

  .reminder-public .reminder-logo-link,
  .reminder-public .reminder-logo {
    width: min(238px, 74vw);
  }

  .reminder-public .reminder-hero h1,
  .reminder-public .reminder-done h1 {
    font-size: clamp(34px, 10vw, 46px);
  }

  .reminder-public .reminder-wheel-grid {
    grid-template-columns: minmax(0, 1fr) 78px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .reminder-public *,
  .reminder-public *::before,
  .reminder-public *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
  }
}

/* Product collection ordering */
.product-order-page {
  max-width: 1040px;
}
.product-order-hero {
  align-items: flex-end;
}
.product-order-hero .back-chip {
  display: inline-flex;
  margin-bottom: 18px;
}
.product-order-toolbar {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  padding: 20px;
}
.product-order-toolbar form {
  width: min(100%, 430px);
}
.product-order-toolbar label {
  display: block;
  margin-bottom: 8px;
  color: var(--ink);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.product-order-toolbar select {
  min-height: 52px;
  margin: 0;
  background-color: #fff;
  font-size: 16px;
  font-weight: 700;
}
.product-order-summary {
  display: flex;
  align-items: center;
  gap: 12px;
  white-space: nowrap;
}
.product-order-summary > span:first-child {
  color: var(--muted);
}
.product-order-summary > span:first-child strong {
  color: var(--ink);
  font-size: 20px;
}
.product-order-toolbar__note {
  max-width: 460px;
  margin: 0;
  color: var(--muted);
  line-height: 1.45;
}
.product-order-panel {
  position: relative;
  margin-top: 22px;
  padding: 22px;
  border: 1px solid #ded8d0;
  border-radius: 14px;
  background: rgba(255, 255, 255, .82);
  box-shadow: 0 14px 34px rgba(49, 40, 35, .06);
  scroll-margin-top: 24px;
}
.product-order-panel__head {
  position: relative;
  z-index: 22;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 16px;
}
.product-order-panel__head h2 {
  margin: 2px 0 3px;
  color: var(--ink);
  font-size: clamp(25px, 3vw, 34px);
}
.product-order-panel__head h2 small {
  display: inline-flex;
  margin-left: 8px;
  padding: 5px 9px;
  border-radius: 999px;
  background: #fce5ef;
  color: #9d4268;
  font-family: inherit;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
  vertical-align: middle;
}
.product-order-panel.is-family-overview {
  border-color: rgba(198, 89, 137, .28);
  background: linear-gradient(145deg, rgba(255,255,255,.94), rgba(255,245,250,.82));
}
.product-order-panel.is-syncing-membership {
  border-color: rgba(198, 89, 137, .34);
}
.product-order-panel.is-syncing-membership::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 18;
  border-radius: inherit;
  pointer-events: none;
  box-shadow: inset 0 0 0 2px rgba(198, 89, 137, .10);
}
.product-order-add.is-disabled > summary {
  opacity: .48;
  pointer-events: none;
}
.product-order-panel__head > div > span {
  color: var(--muted);
}
.product-order-panel__head > div > span strong {
  color: var(--ink);
}
.product-order-add {
  position: relative;
}
.product-order-add > summary {
  display: inline-flex;
  min-height: 46px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0 16px;
  border: 1px solid #dfadc2;
  border-radius: 999px;
  background: linear-gradient(135deg, #fff5fa, #fff9ee);
  color: #8e2d59;
  font-weight: 900;
  list-style: none;
  cursor: pointer;
  box-shadow: 0 8px 20px rgba(152, 61, 100, .08);
}
.product-order-add > summary::-webkit-details-marker {
  display: none;
}
.product-order-add > summary span {
  font-size: 22px;
  line-height: 1;
}
.product-order-add[open] > summary {
  border-color: #c75989;
  background: #ffeaf3;
}
.product-order-add__popover {
  position: absolute;
  z-index: 40;
  top: calc(100% + 9px);
  right: 0;
  width: min(430px, calc(100vw - 48px));
  padding: 14px;
  border: 1px solid #ddd4ce;
  border-radius: 12px;
  background: #fffdfa;
  box-shadow: 0 24px 60px rgba(38, 30, 28, .2);
}
.product-order-add__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 13px;
}
.product-order-add__head strong,
.product-order-add__head span {
  display: block;
}
.product-order-add__head strong {
  color: var(--ink);
  font-size: 17px;
}
.product-order-add__head span {
  margin-top: 3px;
  color: var(--muted);
  font-size: 12px;
}
.product-order-add__head button {
  display: grid;
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  padding: 0;
  place-items: center;
  border: 1px solid #e3d9d4;
  border-radius: 50%;
  background: #fff;
  color: var(--ink);
  font-size: 22px;
  cursor: pointer;
}
.product-order-add__popover > label {
  display: block;
  margin-bottom: 7px;
  color: var(--ink);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.product-order-add__popover > input {
  min-height: 46px;
  margin: 0 0 10px;
  background: #fff;
}
.product-order-add__list {
  display: grid;
  max-height: 390px;
  gap: 7px;
  overflow: auto;
  overscroll-behavior: contain;
}
.product-order-add__list [hidden] {
  display: none;
}
.product-order-add__option {
  display: grid;
  width: 100%;
  grid-template-columns: 52px minmax(0, 1fr) 28px;
  align-items: center;
  gap: 10px;
  padding: 7px;
  border: 1px solid #e6dfd9;
  border-radius: 9px;
  background: #fff;
  color: var(--ink);
  text-align: left;
  cursor: pointer;
}
.product-order-add__option:hover {
  border-color: #d99ab6;
  background: #fff7fa;
}
.product-order-add__option.is-selected {
  border-color: #c85a8b;
  background: linear-gradient(135deg, #fff0f7, #fff9ed);
  box-shadow: inset 0 0 0 1px rgba(200,90,139,.12);
}
.product-order-add__image {
  display: grid;
  width: 52px;
  height: 52px;
  overflow: hidden;
  place-items: center;
  border-radius: 7px;
  background: #f4eee8;
  color: var(--muted);
  font-weight: 900;
}
.product-order-add__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.product-order-add__copy {
  min-width: 0;
}
.product-order-add__copy strong,
.product-order-add__copy small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.product-order-add__copy small {
  margin-top: 3px;
  color: var(--muted);
}
.product-order-add__plus {
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  border-radius: 50%;
  background: #fce5ef;
  color: #a33b69;
  font-size: 20px;
}
.product-order-add__option.is-selected .product-order-add__plus {
  background: #c64980;
  color: #fff;
  font-size: 15px;
  font-weight: 900;
}
.product-order-add__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid #e7dfda;
}
.product-order-add__footer > span {
  color: var(--muted);
  font-size: 13px;
}
.product-order-add__footer > span strong {
  color: #9d4268;
  font-size: 18px;
}
.product-order-add__footer .btn {
  min-width: 150px;
}
.product-order-add__empty,
.product-order-panel__empty {
  color: var(--muted);
}
.product-order-add__empty {
  margin: 8px;
  text-align: center;
  list-style: none;
}
.product-order-panel__empty {
  display: grid;
  min-height: 106px;
  place-content: center;
  gap: 4px;
  border: 1px dashed #dccfd4;
  border-radius: 10px;
  background: #fffafc;
  text-align: center;
}
.product-order-panel__empty strong {
  color: var(--ink);
}
.product-order-form {
  margin-top: 0;
}
.product-order-tip {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 14px;
  padding: 13px 16px;
  border: 1px solid #e5ddd4;
  border-radius: 8px;
  background: #fffaf4;
}
.product-order-tip p {
  margin: 0;
  color: var(--muted);
}
.product-order-tip strong {
  color: var(--ink);
}
.product-order-tip__icon {
  display: grid;
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 50%;
  background: #f1e6ef;
  color: #9d4268;
  font-size: 20px;
  font-weight: 800;
}
.product-order-list {
  display: grid;
  gap: 9px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.product-order-item {
  display: grid;
  grid-template-columns: 36px 48px 72px minmax(0, 1fr) auto;
  align-items: center;
  gap: 13px;
  min-height: 94px;
  padding: 10px 12px;
  border: 1px solid #ded8d0;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 7px 20px rgba(50, 42, 37, .045);
  transition: border-color .16s ease, box-shadow .16s ease, opacity .16s ease, transform .16s ease;
}
.product-order-item:hover {
  border-color: #cdbbc4;
  box-shadow: 0 10px 24px rgba(50, 42, 37, .08);
}
.product-order-item.is-featured {
  border-color: rgba(199, 84, 136, .34);
  background: linear-gradient(100deg, rgba(255,245,250,.96), #fff 42%);
  box-shadow: 0 9px 24px rgba(157, 66, 104, .07);
}
.product-order-feature-divider {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 8px 0 2px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .1em;
  list-style: none;
  text-transform: uppercase;
}
.product-order-feature-divider::before,
.product-order-feature-divider::after {
  height: 1px;
  flex: 1;
  background: #e5dcd7;
  content: "";
}
.product-order-featured-badge {
  display: inline-flex !important;
  width: max-content;
  margin-top: 6px !important;
  padding: 4px 7px;
  border-radius: 999px;
  background: #fce5ef;
  color: #a23565 !important;
  font-size: 10px !important;
  font-style: normal;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.product-order-item.is-dragging {
  opacity: .55;
  border-color: #d65a91;
  box-shadow: 0 16px 30px rgba(94, 51, 72, .15);
  transform: scale(.99);
}
.product-order-handle,
.product-order-buttons button {
  display: grid;
  width: 36px;
  height: 36px;
  padding: 0;
  place-items: center;
  border: 1px solid transparent;
  border-radius: 50%;
  background: transparent;
  color: #756b77;
  cursor: pointer;
}
.product-order-handle {
  cursor: grab;
}
.product-order-handle:active {
  cursor: grabbing;
}
.product-order-handle:hover,
.product-order-buttons button:hover:not(:disabled) {
  border-color: #e2d7de;
  background: #faf3f7;
  color: #9d4268;
}
.product-order-buttons .product-order-remove {
  border-color: #f0d3d0;
  color: #ad453b;
}
.product-order-buttons .product-order-remove:hover:not(:disabled) {
  border-color: #dc8d86;
  background: #fff2ef;
  color: #9e3028;
}
.product-order-handle svg,
.product-order-buttons svg {
  width: 22px;
  height: 22px;
  fill: currentColor;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.product-order-position {
  width: 46px;
  height: 42px;
  padding: 0 4px;
  border: 1px solid #dfcbd5;
  border-radius: 10px;
  outline: 0;
  background: #fff8fb;
  color: #9d4268;
  font-family: inherit;
  font-size: 20px;
  font-weight: 900;
  text-align: center;
  -moz-appearance: textfield;
  transition: border-color .16s ease, box-shadow .16s ease, background .16s ease;
}
.product-order-position::-webkit-inner-spin-button,
.product-order-position::-webkit-outer-spin-button {
  margin: 0;
  -webkit-appearance: none;
}
.product-order-position:hover,
.product-order-position:focus {
  border-color: #c75488;
  background: #fff;
  box-shadow: 0 0 0 3px rgba(199, 84, 136, .13);
}
.product-order-image {
  display: grid;
  width: 72px;
  height: 72px;
  overflow: hidden;
  place-items: center;
  border-radius: 6px;
  background: #f3ece7;
  color: var(--muted);
  font-weight: 900;
}
.product-order-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.product-order-copy {
  min-width: 0;
}
.product-order-copy strong,
.product-order-copy span,
.product-order-copy em {
  display: block;
}
.product-order-copy strong {
  overflow: hidden;
  color: var(--ink);
  font-size: 17px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.product-order-copy span {
  margin-top: 4px;
  color: var(--muted);
  font-size: 14px;
}
.product-order-copy em {
  width: max-content;
  margin-top: 5px;
  color: #b2254a;
  font-size: 12px;
  font-style: normal;
  font-weight: 800;
  text-transform: uppercase;
}
.product-order-buttons {
  display: flex;
  gap: 4px;
}
.product-order-buttons button {
  border-color: #e5ddd7;
  background: #fff;
}
.product-order-buttons button:disabled {
  opacity: .25;
  cursor: default;
}
.product-order-save {
  position: sticky;
  z-index: 18;
  bottom: 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-top: 18px;
  padding: 14px 16px;
  border: 1px solid #dcd4cf;
  border-radius: 8px;
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 16px 38px rgba(44, 36, 33, .14);
  backdrop-filter: blur(14px);
}
.product-order-save strong,
.product-order-save span {
  display: block;
}
.product-order-save strong {
  color: #178356;
}
.product-order-save span {
  margin-top: 2px;
  color: var(--muted);
  font-size: 13px;
}
.product-order-save .btn {
  min-width: 160px;
}
.product-order-save .btn:disabled {
  opacity: .45;
}
.has-unsaved-order .product-order-save {
  border-color: #d9aac0;
}
.has-unsaved-order .product-order-save strong {
  color: #a63163;
}
.product-order-toast {
  position: fixed;
  z-index: 130;
  top: 22px;
  left: 50%;
  width: max-content;
  max-width: min(520px, calc(100vw - 28px));
  padding: 12px 18px;
  border: 1px solid rgba(18,55,40,.18);
  border-radius: 999px;
  background: #173f2e;
  color: #fff;
  font-weight: 800;
  text-align: center;
  box-shadow: 0 14px 34px rgba(18,55,40,.2);
  transform: translateX(-50%);
}
.product-order-toast.is-error {
  border-color: rgba(166,49,99,.28);
  background: #8e2d59;
}
@media (max-width: 760px) {
  .product-order-page {
    width: min(100% - 20px, 1040px);
  }
  .product-order-toolbar {
    align-items: stretch;
    flex-direction: column;
    padding: 16px;
  }
  .product-order-toolbar__note {
    font-size: 13px;
  }
  .product-order-panel {
    margin-top: 14px;
    padding: 14px 10px 12px;
    border-radius: 12px;
  }
  .product-order-panel__head {
    align-items: flex-start;
    gap: 10px;
  }
  .product-order-panel__head h2 {
    font-size: 22px;
  }
  .product-order-panel__head h2 small {
    display: flex;
    width: max-content;
    margin: 6px 0 0;
  }
  .product-order-add > summary {
    width: 44px;
    min-height: 44px;
    padding: 0;
    font-size: 0;
  }
  .product-order-add > summary span {
    font-size: 25px;
  }
  .product-order-add__popover {
    position: fixed;
    z-index: 80;
    top: max(76px, env(safe-area-inset-top));
    right: 10px;
    bottom: max(10px, env(safe-area-inset-bottom));
    left: 10px;
    width: auto;
    padding: 16px;
    border-radius: 18px;
  }
  .product-order-add__list {
    max-height: calc(100dvh - 275px);
  }
  .product-order-add__footer {
    padding-bottom: max(2px, env(safe-area-inset-bottom));
  }
  .product-order-toolbar form {
    width: 100%;
  }
  .product-order-summary {
    justify-content: space-between;
  }
  .product-order-tip {
    align-items: flex-start;
  }
  .product-order-item {
    grid-template-columns: 46px 58px minmax(0, 1fr) auto;
    min-height: 78px;
    gap: 9px;
    padding: 9px;
  }
  .product-order-handle {
    display: none;
  }
  .product-order-position {
    grid-column: 1;
    width: 44px;
    height: 40px;
    font-size: 17px;
  }
  .product-order-image {
    grid-column: 2;
    width: 58px;
    height: 58px;
  }
  .product-order-copy {
    grid-column: 3;
  }
  .product-order-copy strong {
    font-size: 15px;
  }
  .product-order-copy span {
    font-size: 12px;
  }
  .product-order-buttons {
    grid-column: 4;
    flex-direction: column;
    gap: 2px;
  }
  .product-order-buttons button {
    width: 32px;
    height: 28px;
  }
  .product-order-buttons .product-order-remove {
    height: 32px;
    margin-top: 2px;
  }
  .product-order-save {
    bottom: calc(8px + env(safe-area-inset-bottom));
    padding: 12px;
  }
  .product-order-save span {
    display: none;
  }
  .product-order-save .btn {
    min-width: 132px;
  }
}

@media print {
  @page { size: A6 landscape; margin: 8mm; }
  .gift-card-page {
    display: block;
    padding: 0;
    background: #fff;
  }
  .gift-card-sheet {
    width: auto;
    gap: 0;
  }
  .gift-card-face {
    min-height: 130mm;
    border: 0;
    border-radius: 0;
    padding: 4mm;
    box-shadow: none;
  }
  .gift-card-logo {
    width: 25mm;
    height: 25mm;
  }
  .gift-card-message {
    min-height: 48mm;
  }
  .gift-card-message p {
    font-size: 21pt;
  }
  .gift-card-qr-block {
    grid-template-columns: 30mm 1fr;
    padding: 3mm;
  }
  .gift-card-qr {
    width: 30mm;
    height: 30mm;
  }
  .gift-card-pack,
  .gift-card-actions {
    display: none !important;
  }
}

/* v2.1 dashboard, recipient card, and A6 card polish */
.order-list {
  grid-template-columns: 1fr !important;
}
.order-card,
.order-main,
.order-meta,
.dashboard-item-row,
.item-line {
  min-width: 0;
}
.order-main {
  overflow: hidden;
}
.order-meta {
  display: grid;
  grid-template-columns: auto auto auto auto;
  justify-content: start;
}
.order-meta .photo-badge {
  justify-self: end;
}
.dashboard-item-row {
  grid-template-columns: 58px minmax(0, 1fr);
}
.item-title,
.gift-line,
.note-line,
.addons-line {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
}
.recipient-card h2 {
  margin-bottom: 14px;
}
.recipient-detail-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.recipient-detail-card {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fffaf5;
  padding: 12px;
}
.recipient-detail-card span {
  display: block;
  color: var(--muted);
  font-size: 10px;
  font-weight: 950;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.recipient-detail-card strong {
  display: block;
  margin-top: 4px;
  overflow-wrap: anywhere;
}
.recipient-detail-card--address {
  position: relative;
  padding-right: 50px;
}
.recipient-map-action {
  display: inline-block;
  margin-top: 7px;
  color: #7b4ad9;
  font-size: 11px;
  font-style: normal;
  font-weight: 950;
  letter-spacing: .06em;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  text-transform: uppercase;
}
.recipient-map-action:hover { color: #5e30bb; }
.inline-map-link {
  color: #7b4ad9;
  font-weight: 900;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
.gift-card-page {
  display: block;
  min-height: 100vh;
  padding: 24px;
  background:
    radial-gradient(circle at 38% 20%, rgba(255, 218, 94, .14), transparent 24%),
    radial-gradient(circle at 60% 70%, rgba(236, 99, 162, .11), transparent 26%),
    #fffaf1;
}
.gift-card-shell {
  width: min(760px, 100%);
  margin: 0 auto;
  display: grid;
  gap: 14px;
}
.gift-card-face {
  position: relative;
  overflow: hidden;
  aspect-ratio: 148 / 105;
  min-height: auto;
  border: 1px solid #eadfd5;
  border-radius: 18px;
  background: #fff;
  padding: 0;
  box-shadow: 0 18px 46px rgba(39,31,61,.12);
}
.gift-card-inner {
  position: relative;
  z-index: 2;
  min-height: 100%;
  display: grid;
  grid-template-rows: auto auto 1fr auto;
  justify-items: center;
  padding: 26px 34px 24px;
  text-align: center;
}
.gift-card-soft-shape {
  position: absolute;
  z-index: 1;
  width: 58%;
  height: 32%;
  border-radius: 999px;
  filter: blur(2px);
  opacity: .58;
  pointer-events: none;
}
.gift-card-soft-shape--pink {
  left: 30%;
  top: 16%;
  background: radial-gradient(circle, rgba(242,106,162,.18), transparent 68%);
}
.gift-card-soft-shape--yellow {
  left: 35%;
  bottom: 18%;
  background: radial-gradient(circle, rgba(255,226,122,.24), transparent 68%);
}
.gift-card-logo {
  width: 70px;
  height: 70px;
}
.gift-card-kicker {
  margin: 7px 0 0;
  color: #746d82;
  font-size: 11px;
  font-weight: 950;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.gift-card-message {
  width: 100%;
  min-height: 0;
  margin: 12px 0 8px;
  border: 0;
  display: grid;
  place-items: center;
}
.gift-card-message p {
  max-width: 560px;
  color: #2f2540;
  font-family: "Snell Roundhand", "Apple Chancery", "Segoe Script", "Lucida Handwriting", cursive;
  font-size: clamp(34px, 5.2vw, 52px);
  font-style: italic;
  font-weight: 500;
  line-height: 1.08;
  letter-spacing: 0;
}
.gift-card-qr-block {
  width: min(520px, 82%);
  justify-self: start;
  align-self: end;
  grid-template-columns: 84px minmax(0, 1fr);
  background: rgba(255, 250, 244, .88);
  border-radius: 14px;
  padding: 9px 12px;
}
.gift-card-qr {
  width: 84px;
  height: 84px;
}
.gift-card-pack,
.gift-card-actions {
  width: 100%;
}

@media (max-width: 640px) {
  .order-meta {
    grid-template-columns: 1fr auto;
  }
  .order-meta .stage-pill,
  .order-meta .order-small-price,
  .order-meta .photo-badge {
    justify-self: start;
  }
  .recipient-detail-grid {
    grid-template-columns: 1fr;
  }
  .gift-card-page {
    padding: 14px;
  }
  .gift-card-inner {
    padding: 20px 18px 18px;
  }
  .gift-card-qr-block {
    width: 88%;
    grid-template-columns: 72px minmax(0, 1fr);
    gap: 10px;
  }
  .gift-card-qr {
    width: 72px;
    height: 72px;
  }
  .gift-card-message p {
    font-size: 34px;
  }
}

@media print {
  @page { size: A6 landscape; margin: 0; }
  html,
  body,
  .gift-card-page {
    width: 148mm;
    height: 105mm;
    min-width: 148mm;
    min-height: 0 !important;
    margin: 0;
    padding: 0;
    overflow: hidden;
    background: #fff !important;
  }
  .gift-card-shell {
    width: 148mm;
    height: 104.5mm;
    margin: 0;
    gap: 0;
    overflow: hidden;
    page-break-after: avoid;
    break-after: avoid;
    page-break-inside: avoid;
    break-inside: avoid;
  }
  .gift-card-face {
    width: 148mm;
    height: 104.5mm;
    aspect-ratio: auto;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    overflow: hidden;
    page-break-after: avoid;
    break-after: avoid;
    page-break-inside: avoid;
    break-inside: avoid;
  }
  .gift-card-inner {
    padding: 7mm 10mm 7mm;
  }
  .gift-card-logo {
    width: 17mm;
    height: 17mm;
  }
  .gift-card-kicker {
    margin-top: 2mm;
    font-size: 7pt;
  }
  .gift-card-message {
    margin: 3mm 0 2mm;
  }
  .gift-card-message p {
    max-width: 112mm;
    font-size: 25pt;
    line-height: 1.04;
  }
  .gift-card-qr-block {
    width: 94mm;
    grid-template-columns: 20mm 1fr;
    gap: 3mm;
    padding: 2.5mm 3mm;
    border-radius: 4mm;
  }
  .gift-card-qr-block strong {
    font-size: 9pt;
    line-height: 1.05;
  }
  .gift-card-qr-block span {
    margin-top: 1mm;
    font-size: 7.2pt;
    line-height: 1.25;
  }
  .gift-card-qr {
    width: 20mm;
    height: 20mm;
  }
  .gift-card-soft-shape--pink {
    left: 48mm;
    top: 22mm;
    width: 52mm;
    height: 28mm;
  }
  .gift-card-soft-shape--yellow {
    left: 55mm;
    bottom: 18mm;
    width: 50mm;
    height: 28mm;
  }
  .gift-card-pack,
  .gift-card-actions {
    display: none !important;
  }
}

/* v2.3 driver proof and admin email studio */
/* v2.4 readable status colors and icons */
.stage-pill,
.status-chip {
  gap: 6px;
}
.stage-pill svg,
.status-chip svg {
  width: 14px;
  height: 14px;
  flex: 0 0 14px;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  fill: none;
}
.stage-pill i,
.status-chip i {
  display: none;
}
.round-action svg,
.round-done svg {
  width: 23px;
  height: 23px;
  stroke: currentColor;
  stroke-width: 2.3;
  stroke-linecap: round;
  stroke-linejoin: round;
  fill: none;
}
.stage-work {
  background: #fff3df;
  color: #8a5a08;
  border-color: #f2d097;
}
.stage-courier {
  background: #fff7d8;
  color: #846012;
  border-color: #efd27c;
}
.stage-out {
  background: #e7f4ff;
  color: #176b9c;
  border-color: #b9dcf5;
}
.stage-bg-work {
  background: #f2a93b;
  color: #fff;
}
.stage-bg-courier {
  background: #f5c542;
  color: #3f2f06;
}
.stage-bg-out {
  background: #35a7db !important;
  color: #fff;
}
.stage-bg-ready {
  background: #26c767 !important;
  color: #fff;
}
.stage-bg-delivered {
  background: #8b56df !important;
  color: #fff;
}
.quick-col:has(.stage-bg-work) {
  background: linear-gradient(180deg,#fff6e8,#fff);
}
.quick-col:has(.stage-bg-courier) {
  background: linear-gradient(180deg,#fff9db,#fff);
}
.quick-col:has(.stage-bg-out) {
  background: linear-gradient(180deg,#e9f7ff,#fff);
}
textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 13px 14px;
  background: #fff;
  color: var(--ink);
  font: inherit;
  resize: vertical;
}
.email-studio-hero {
  align-items: end;
}
.email-studio-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr);
  gap: 22px;
  align-items: start;
}
.email-studio-form-panel {
  border-top: 6px solid #ff4fa3;
  background: #fffdf8;
}
.email-form {
  display: grid;
  gap: 18px;
}
.email-form-section {
  display: grid;
  gap: 12px;
  padding-bottom: 18px;
  border-bottom: 1px solid #e8ddca;
}
.email-form-section-title {
  display: flex;
  align-items: center;
  gap: 9px;
  color: #123728;
}
.email-form-section-title span {
  display: grid;
  place-items: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: #ffd65a;
  color: #123728;
  font-size: 12px;
  font-weight: 900;
}
.email-form-section-title strong {
  font-size: 16px;
}
.email-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.email-form input[type="file"] {
  min-height: 48px;
  background: #fff4e2;
}
.email-receipt-picker {
  display: grid;
  gap: 7px;
}
.email-form label small,
.email-receipt-picker label small {
  color: #7a8f4a;
  font-size: 10px;
  letter-spacing: .06em;
}
.email-form label small[hidden] {
  display: none;
}
.email-receipt-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
}
.email-receipt-row .btn {
  min-height: 48px;
  white-space: nowrap;
}
.email-receipt-status {
  margin: 0;
  color: #607264;
  font-size: 13px;
  line-height: 1.45;
}
.email-receipt-status.is-attached,
.email-receipt-status.is-error {
  padding: 10px 12px;
  border-radius: 12px;
  font-weight: 800;
}
.email-receipt-status.is-attached {
  border: 1px solid #cfe3c6;
  background: #f1f8ec;
  color: #2f6b3a;
}
.email-receipt-status.is-error {
  border: 1px solid #ffd1dc;
  background: #fff0f3;
  color: #9d2340;
}
.email-receipt-remove {
  justify-self: start;
  padding: 2px 0;
  border: 0;
  background: none;
  color: #a23d70;
  font-size: 12px;
  font-weight: 900;
  text-decoration: underline;
  cursor: pointer;
}
.email-receipt-remove[hidden] {
  display: none;
}
/* A text link, not one of the app's raised buttons. */
.email-form .email-receipt-picker .email-receipt-remove,
.email-form .email-receipt-picker .email-receipt-remove:hover,
.email-form .email-receipt-picker .email-receipt-remove:active {
  min-height: 0;
  border-radius: 0 !important;
  box-shadow: none !important;
  filter: none;
  transform: none;
}
.email-send-row {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}
.email-send-row .btn {
  min-width: 180px;
}
.email-preview-panel {
  position: sticky;
  top: 86px;
  border: 1px solid #e8ddca;
  background: #fff4e2;
  padding: 14px;
  box-shadow: 0 18px 40px rgba(18,55,40,.10);
}
.email-preview-label {
  margin: 0 0 10px;
  color: #607264;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 1.5px;
  text-transform: uppercase;
}
.email-preview-canvas {
  overflow: hidden;
  border: 1px solid #e8ddca;
  background: #fffdf8;
  color: #123728;
}
.email-preview-accent {
  height: 6px;
  background: #ff4fa3;
}
.email-preview-accent-bottom {
  background: #ff6b2e;
}
.email-preview-head {
  padding: 26px 24px 18px;
  text-align: center;
}
.email-preview-head img {
  display: block;
  width: min(100%, 250px);
  height: auto;
  margin: 0 auto 20px;
}
.email-preview-head p {
  margin: 0;
  color: #7a8f4a;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 1.5px;
  text-transform: uppercase;
}
.email-preview-head h2 {
  margin: 8px 0;
  color: #123728;
  font-family: "Trebuchet MS", Arial, sans-serif;
  font-size: 27px;
  line-height: 1.12;
  letter-spacing: 0;
}
.email-preview-intro {
  color: #607264;
  font-size: 15px;
  line-height: 1.5;
}
.email-preview-body {
  padding: 0 24px 26px;
  text-align: center;
}
.email-preview-image {
  display: block;
  width: 100%;
  max-height: 260px;
  margin: 0 auto 16px;
  border: 1px solid #e8ddca;
  object-fit: cover;
}
.email-preview-image[hidden],
.email-preview-button[hidden] {
  display: none;
}
.email-preview-message {
  min-height: 74px;
  padding: 16px;
  border: 1px solid #e8ddca;
  background: #fff4e2;
  color: #607264;
  font-size: 14px;
  line-height: 1.55;
  text-align: left;
  white-space: pre-wrap;
}
.email-preview-message[hidden],
.email-preview-receipt[hidden] {
  display: none;
}
/* The receipt is the email's own markup in a frame, out of reach of the app's
   table styles; email-studio.js sizes it to its content. */
.email-preview-receipt {
  display: block;
  width: 100%;
  height: 760px;
  margin-top: 16px;
  border: 0;
  background: transparent;
}
.email-preview-message[hidden] + .email-preview-receipt {
  margin-top: 0;
}
.email-preview-wordmark {
  display: none;
  margin: 0 auto 22px;
  color: #29362f;
  font-family: Arial, "Helvetica Neue", sans-serif;
  font-size: 23px;
  font-weight: 800;
  letter-spacing: 5px;
  line-height: 1;
}
.email-preview-wordmark small {
  display: block;
  margin-top: 8px;
  color: #6f776d;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 3.5px;
}
/* Sympathy orders: the calm grey design of their other emails. */
.email-preview-canvas.is-neutral .email-preview-accent {
  background: #858b80;
}
.email-preview-canvas.is-neutral .email-preview-accent-bottom {
  background: #a39e94;
}
.email-preview-canvas.is-neutral .email-preview-head img {
  display: none;
}
.email-preview-canvas.is-neutral .email-preview-wordmark {
  display: block;
}
.email-preview-canvas.is-neutral .email-preview-head p {
  color: #6f776d;
}
.email-preview-canvas.is-neutral .email-preview-head h2 {
  color: #29362f;
}
.email-preview-canvas.is-neutral .email-preview-button {
  background: #46524b;
  color: #f7f5ef;
}
.email-preview-canvas.is-neutral .email-preview-footer {
  background: #e8e7e2;
  color: #29362f;
}
.email-preview-canvas.is-neutral .email-preview-footer span {
  color: #626a64;
}
.email-preview-button {
  display: inline-flex;
  margin-top: 18px;
  border-radius: 999px;
  padding: 12px 22px;
  background: #ff4fa3;
  color: #123728;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 1px;
  text-transform: uppercase;
}
.email-preview-footer {
  display: grid;
  gap: 3px;
  padding: 18px 22px;
  background: #123728;
  color: #fff4e2;
  font-size: 11px;
  line-height: 1.5;
  text-align: center;
}
.email-preview-footer span {
  color: #ffd65a;
}
#delivery-proof {
  scroll-margin-top: 78px;
}
@media (max-width: 980px) {
  .email-studio-layout {
    grid-template-columns: 1fr;
  }
  .email-preview-panel {
    position: static;
  }
}
@media (max-width: 640px) {
  .email-form-grid,
  .email-receipt-row {
    grid-template-columns: 1fr;
  }
  .email-send-row .btn {
    width: 100%;
  }
  .email-preview-panel {
    padding: 8px;
  }
  .email-preview-head,
  .email-preview-body {
    padding-left: 18px;
    padding-right: 18px;
  }
}

/* v2.5 custom phone orders */
.custom-order-form,
.custom-order-public-card {
  display: grid;
  gap: 20px;
}
.custom-order-section {
  display: grid;
  gap: 12px;
}
.custom-order-section h2 {
  margin: 0;
  font-size: 24px;
  letter-spacing: 0;
}
.custom-order-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.custom-order-section-head p {
  margin: 3px 0 0;
}
.custom-order-add-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}
.custom-order-grid,
.custom-order-public-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.custom-order-public-grid {
  grid-template-columns: 1fr 1fr 120px;
}
.custom-order-form select,
.custom-order-public-form select {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 13px 14px;
  background: #fff;
  color: var(--ink);
  font: inherit;
}
.custom-product-picker {
  display: grid;
  gap: 8px;
}
.custom-product-picker input[type="search"] {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 13px 14px;
  background: #fffefb;
  color: var(--ink);
  font: inherit;
}
.custom-product-picker input[type="search"]::placeholder {
  color: rgba(18, 55, 40, .46);
}
.product-search-count {
  margin: -2px 0 0;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}
.custom-order-items {
  display: grid;
  gap: 10px;
}
.custom-order-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 100px auto;
  gap: 10px;
  align-items: end;
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 12px;
  background: #fffaf5;
}
.custom-order-custom-item {
  grid-template-columns: minmax(0, 1fr) 120px 90px auto;
}
.custom-order-custom-item .span-2 {
  grid-column: 1 / span 3;
}
.custom-order-custom-item textarea {
  min-height: 92px;
  background: #fff;
}
.custom-order-summary,
.custom-order-public-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.custom-order-public-summary {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.custom-order-summary div,
.custom-order-public-summary div {
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 13px;
  background: #fffaf5;
}
.custom-order-summary span,
.custom-order-public-summary span,
.custom-order-link-box span {
  display: block;
  color: var(--muted);
  font-size: 10px;
  font-weight: 950;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.custom-order-summary strong,
.custom-order-public-summary strong {
  display: block;
  margin-top: 4px;
  font-size: 20px;
  line-height: 1.15;
}
.custom-order-summary p {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 12px;
}
.custom-order-result h1 {
  margin-bottom: 8px;
}
.custom-order-link-box {
  display: grid;
  gap: 5px;
  margin: 18px 0;
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 13px;
  background: #fffaf5;
}
.custom-order-link-box a {
  color: #7b4ad9;
  font-weight: 900;
  overflow-wrap: anywhere;
}
.custom-order-mini-list {
  display: grid;
  gap: 8px;
  text-align: left;
}
.custom-order-mini-list div {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  border-top: 1px solid var(--line);
  padding-top: 8px;
}
.custom-order-mini-list div:first-child {
  border-top: 0;
  padding-top: 0;
}
.custom-order-actions {
  display: grid;
  gap: 8px;
  margin-top: 18px;
}
.custom-order-public-wrap {
  width: min(820px, calc(100% - 28px));
}
.custom-order-public-card {
  padding: 24px;
}
.custom-order-public-items {
  display: grid;
  gap: 10px;
}
.custom-order-public-item {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 10px;
  background: #fffaf5;
}
.custom-order-public-item img,
.custom-order-public-item .item-placeholder {
  width: 58px;
  height: 58px;
  border-radius: 15px;
  object-fit: cover;
}
.custom-order-public-item strong,
.custom-order-public-item b {
  font-weight: 950;
}
.custom-order-public-item p {
  margin: 3px 0 0;
  color: var(--muted);
  font-weight: 800;
}
.custom-order-public-form {
  display: grid;
  gap: 12px;
}
.custom-order-schedule { display:grid; gap:16px; padding-bottom:20px; border-bottom:1px solid var(--line); }
.custom-order-schedule h2 { margin:0; font-size:24px; }
.custom-order-schedule > p { margin:0; line-height:1.5; font-size:14px; }
.custom-order-schedule input[type="date"] { min-width:0; width:100%; font-size:16px; min-height:48px; }
.custom-order-windows { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; border:0; padding:0; margin:0; min-width:0; }
.custom-order-windows legend { margin-bottom:10px; font-size:12px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
.custom-order-window { position:relative; display:block; min-width:0; cursor:pointer; }
.custom-order-window--standard { grid-column:1 / -1; }
.custom-order-window input { position:absolute; opacity:0; width:1px; height:1px; }
.custom-order-window span { display:grid; gap:4px; min-height:88px; padding:13px; border:1px solid var(--line); border-radius:16px; background:#fff; text-transform:none; letter-spacing:0; }
.custom-order-window strong { font-size:16px; }
.custom-order-window small { font-size:13px; color:var(--muted); }
.custom-order-window b { font-size:13px; color:#725b8f; }
.custom-order-window input:checked + span { border-color:#ef4c9d; box-shadow:0 0 0 2px #fbe0ee; background:#fff9fc; }
.custom-order-window input:focus-visible + span { outline:3px solid var(--ink); outline-offset:3px; }
.custom-order-window input:disabled + span { opacity:.45; cursor:not-allowed; }
.custom-order-checkout-total { display:grid; gap:10px; padding:16px; border:1px solid var(--line); border-radius:16px; background:#fffaf5; }
.custom-order-checkout-total > div { display:flex; justify-content:space-between; align-items:baseline; gap:12px; }
.custom-order-checkout-total > div[hidden] { display:none; }
.custom-order-checkout-total strong { font-size:20px; white-space:nowrap; }
.custom-order-checkout-total small { color:var(--muted); font-size:13px; }
.custom-order-public-form .custom-order-sms-consent {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr);
  align-items: start;
  gap: 10px;
  padding: 14px 16px;
  border: 1px solid rgba(27, 66, 48, .16);
  border-radius: 16px;
  background: rgba(255, 250, 242, .72);
  color: #66736b;
  font-size: .78rem;
  font-weight: 500;
  line-height: 1.45;
}
.custom-order-public-form .custom-order-sms-consent input {
  width: 18px;
  height: 18px;
  margin: 1px 0 0;
  accent-color: #e2529b;
}
.custom-order-gift-toggle {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 15px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: #fffaf5;
  cursor: pointer;
}
.custom-order-gift-toggle input {
  width: 20px;
  height: 20px;
  margin: 0;
  flex: 0 0 auto;
  accent-color: var(--ink);
}
.custom-order-gift-toggle span,
.custom-order-gift-toggle strong,
.custom-order-gift-toggle small {
  display: block;
}
.custom-order-gift-toggle small {
  margin-top: 3px;
  color: var(--muted);
}
.custom-order-gift-fields {
  display: grid;
  gap: 12px;
  padding: 15px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: #fff;
}
.custom-order-gift-fields[hidden] {
  display: none;
}
.custom-order-payment-ready {
  box-shadow: none;
  margin: 0;
}
.custom-order-wait-card {
  min-height: min(640px, calc(100vh - 80px));
  display: grid;
  place-items: center;
  align-content: center;
  gap: 12px;
  text-align: center;
  background:
    radial-gradient(circle at 50% 28%, rgba(255, 205, 73, .20), transparent 24%),
    radial-gradient(circle at 50% 72%, rgba(227, 105, 165, .16), transparent 26%),
    #fff;
}
.custom-order-wait-card h1 {
  margin: 2px 0 0;
  max-width: 560px;
  font-size: clamp(42px, 8vw, 68px);
  line-height: .95;
  letter-spacing: 0;
}
.custom-order-wait-card p:not(.eyebrow) {
  max-width: 440px;
  margin: 0 auto;
  color: var(--muted);
  font-size: 18px;
  line-height: 1.45;
}
.checkout-spinner {
  width: 58px;
  height: 58px;
  border-radius: 999px;
  border: 6px solid rgba(139, 86, 223, .16);
  border-top-color: #8b56df;
  border-right-color: #e369a5;
  animation: checkout-spin .82s linear infinite;
}
.checkout-submit-overlay {
  position: fixed;
  inset: 0;
  z-index: 200;
  display: grid;
  place-items: center;
  padding: 22px;
  background:
    radial-gradient(circle at 20% 8%, rgba(255, 205, 73, .28), transparent 32%),
    radial-gradient(circle at 80% 18%, rgba(227, 105, 165, .20), transparent 34%),
    rgba(255, 250, 241, .92);
  backdrop-filter: blur(14px);
}
.checkout-submit-overlay[hidden] {
  display: none;
}
.checkout-submit-overlay > div {
  width: min(420px, 100%);
  border: 1px solid var(--line);
  border-radius: 30px;
  padding: 28px 22px;
  background: #fff;
  box-shadow: var(--shadow);
  display: grid;
  place-items: center;
  gap: 12px;
  text-align: center;
}
.checkout-submit-overlay img {
  width: 74px;
  height: 74px;
  object-fit: contain;
}
.checkout-submit-overlay strong {
  font-size: 30px;
  line-height: 1;
  color: var(--ink);
}
.checkout-submit-overlay p {
  margin: 0;
  color: var(--muted);
  font-weight: 800;
}
body.checkout-loading {
  overflow: hidden;
}
@keyframes checkout-spin {
  to { transform: rotate(360deg); }
}

/* v2.6 product management */
.product-admin-layout {
  display: grid;
  gap: 16px;
  align-items: start;
}
.product-admin-list {
  display: grid;
  gap: 12px;
  min-width: 0;
}
.product-admin-card {
  scroll-margin-top: 110px;
  display: grid;
  grid-template-columns: 108px minmax(0, 1fr);
  gap: 14px;
  border: 1px solid var(--line);
  border-radius: 24px;
  padding: 12px;
  background: rgba(255,255,255,.94);
  box-shadow: 0 10px 28px rgba(39,31,61,.05);
}
.product-admin-card.is-draft {
  background: #fffaf7;
}
.product-admin-media {
  position: relative;
  width: 108px;
  height: 108px;
  border: 1px solid var(--line);
  border-radius: 18px;
  overflow: hidden;
  background: linear-gradient(140deg, #fff7dd, #fff0f8);
  display: grid;
  place-items: center;
  color: #8b56df;
  font-weight: 950;
}
.product-admin-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.product-admin-download {
  position: absolute;
  top: 7px;
  right: 7px;
  z-index: 2;
  width: 32px;
  height: 32px;
  border: 1px solid rgba(255,255,255,.8);
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: var(--ink);
  background: rgba(255,255,255,.9);
  box-shadow: 0 5px 16px rgba(31,25,47,.18);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  transition: transform .16s ease, background-color .16s ease, box-shadow .16s ease;
}
.product-admin-download:hover,
.product-admin-download:focus-visible {
  color: var(--ink);
  background: #fff;
  transform: translateY(-1px);
  box-shadow: 0 7px 20px rgba(31,25,47,.24);
}
.product-admin-download svg {
  width: 17px;
  height: 17px;
}
.product-admin-main {
  min-width: 0;
  display: grid;
  gap: 10px;
}
.product-admin-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px;
}
.product-admin-top h2 {
  margin: 0;
  font-size: 22px;
  line-height: 1.05;
  letter-spacing: 0;
}
.product-admin-top p {
  margin: 4px 0 0;
  color: var(--muted);
  font-weight: 800;
}
.product-variant-list,
.product-tag-row {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}
.product-variant-list span {
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 6px 10px;
  background: #fffaf5;
  color: var(--muted);
  font-size: 12px;
  font-weight: 850;
}
.product-variant-list strong {
  color: var(--ink);
}
.product-variant-list em {
  color: var(--muted);
  font-style: normal;
}
.product-variant-list .is-sale em {
  color: #c23c55;
}
.product-variant-list del {
  color: #aaa0ad;
}
.product-tag-row span,
.product-tag-row button {
  border: 1px solid #eadff0;
  border-radius: 999px;
  padding: 7px 10px;
  background: #fff3fa;
  color: #7f3562;
  font-size: 11px;
  font-weight: 900;
}
.product-tag-row button {
  cursor: pointer;
}
.product-tag-panel {
  border: 1px solid var(--line);
  border-radius: 24px;
  padding: 16px;
  background: rgba(255,255,255,.9);
  box-shadow: 0 10px 28px rgba(39,31,61,.05);
}
.product-tag-panel h2,
.product-image-field h2,
.product-variants h2 {
  margin: 0;
  font-size: 22px;
  letter-spacing: 0;
}
.product-tag-panel h3 {
  margin: 16px 0 8px;
  font-size: 14px;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--muted);
}
.product-tag-library {
  margin-top: 10px;
}
.product-tag-create {
  display: grid;
  gap: 10px;
  margin-top: 14px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fffaf7;
}
.product-tag-create label {
  display: grid;
  gap: 5px;
  color: var(--ink);
  font-size: 12px;
  font-weight: 850;
}
.product-tag-create input,
.product-tag-create select {
  min-width: 0;
  min-height: 42px;
  border: 1px solid #ded7cf;
  border-radius: 8px;
  padding: 8px 10px;
  background: #fff;
  color: var(--ink);
  font: inherit;
}
.product-tag-library-groups {
  display: grid;
  gap: 14px;
  margin-top: 18px;
}
.product-tag-library-group + .product-tag-library-group {
  padding-top: 14px;
  border-top: 1px solid #eee8e1;
}
.product-tag-library-group h3 {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  color: var(--ink);
  font-size: 13px;
  text-transform: none;
  letter-spacing: 0;
}
.product-tag-row .product-tag-library-item {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 5px 4px 9px;
}
.product-tag-row .product-tag-library-item > span {
  border: 0;
  padding: 0;
  background: transparent;
  color: inherit;
  font: inherit;
}
.product-tag-library-item form { margin: 0; }
.product-tag-row .product-tag-library-item button {
  width: 19px;
  height: 19px;
  display: grid;
  place-items: center;
  border: 0;
  padding: 0;
  background: #c83e52;
  color: #fff;
  font: 800 14px/1 Arial, sans-serif;
}
.product-tag-row .product-tag-library-item button:hover { background: #a7283c; }
.product-admin-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}
.product-admin-actions form {
  margin: 0;
}
.product-delete-button {
  min-height: 39px;
  padding-inline: 14px;
}
.btn[disabled] {
  opacity: .45;
  cursor: not-allowed;
}
.weekly-drop-admin {
  display: grid;
  gap: 12px;
}
.weekly-drop-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
.weekly-drop-head h2 {
  margin: 0 0 4px;
  font-size: 24px;
  letter-spacing: 0;
}
.weekly-drop-head p {
  margin: 0;
}
.weekly-count {
  min-width: 62px;
  min-height: 42px;
  display: inline-grid;
  place-items: center;
  border-radius: 999px;
  background: #fff7d8;
  color: #7b5a17;
  border: 1px solid #f2dc8a;
  font-weight: 950;
}
.weekly-count.is-complete {
  background: #e9ffe8;
  color: #1f5b2f;
  border-color: #bfe9c0;
}
.weekly-count.is-over {
  background: #ffe7eb;
  color: #8b1d31;
  border-color: #ffc7d1;
}
.compact-alert {
  margin: 0;
}
.weekly-selected-row {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}
.weekly-selected-row span {
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 7px 10px;
  background: #fffaf5;
  color: var(--ink);
  font-size: 12px;
  font-weight: 900;
}
.weekly-selected-row .is-empty {
  color: var(--muted);
}
.weekly-warning {
  margin: 0;
}
.product-catalog-tools {
  display: grid;
  gap: 14px;
}
.product-catalog-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 360px);
  gap: 14px;
  align-items: end;
}
.product-catalog-head h2 {
  margin: 0 0 4px;
  font-size: 24px;
  letter-spacing: 0;
}
.product-catalog-head p {
  margin: 0;
}
.product-search-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
}
.product-search-combobox {
  position: relative;
  min-width: 0;
}
.product-search-form input {
  width: 100%;
  min-height: 44px;
}
.product-search-results {
  position: absolute;
  z-index: 80;
  top: calc(100% + 7px);
  left: 0;
  right: 0;
  max-height: min(540px, 68vh);
  overflow: auto;
  padding: 7px;
  border: 1px solid #ded6ce;
  border-radius: 18px;
  background: rgba(255, 253, 249, .99);
  box-shadow: 0 24px 55px rgba(29, 50, 39, .2);
}
.product-search-results[hidden] { display: none; }
.product-search-result {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr) auto;
  gap: 11px;
  align-items: center;
  padding: 8px;
  border-radius: 13px;
  color: var(--ink);
  text-decoration: none;
}
.product-search-result:hover,
.product-search-result.is-active {
  background: #fff0f7;
  outline: none;
}
.product-search-result__media {
  display: grid;
  place-items: center;
  overflow: hidden;
  width: 54px;
  height: 54px;
  border-radius: 12px;
  background: #f4eee8;
  color: #bd4e84;
  font-size: 11px;
  font-weight: 950;
}
.product-search-result__media img { width: 100%; height: 100%; object-fit: cover; }
.product-search-result__copy { display: grid; gap: 3px; min-width: 0; }
.product-search-result__copy strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; }
.product-search-result__copy small { color: var(--muted); font-size: 10px; }
.product-search-result__state {
  padding: 6px 8px;
  border-radius: 999px;
  background: #fff0ed;
  color: #944238;
  font-size: 8px;
  font-weight: 950;
  text-transform: uppercase;
  letter-spacing: .05em;
}
.product-search-result__state.is-available { background: #edf6e9; color: #3d6b41; }
.product-search-results__message { padding: 17px 14px; color: var(--muted); font-size: 12px; text-align: center; }
.product-search-results__message.is-error { color: #a13b4d; }
.product-filter-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.product-filter-tabs a {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 0 12px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  color: var(--ink);
  font-size: 12px;
  font-weight: 950;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.product-filter-tabs a.is-active {
  background: var(--ink);
  color: #fff;
  border-color: var(--ink);
}
.product-filter-tabs strong {
  min-width: 24px;
  min-height: 24px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: #f2ebff;
  color: var(--ink);
  font-size: 11px;
}
.product-filter-tabs a.is-active strong {
  background: rgba(255,255,255,.24);
  color: #fff;
}
.product-search-active {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 11px 14px;
  border: 1px solid #efd0df;
  border-radius: 14px;
  background: #fff4f8;
  color: var(--ink);
  font-size: 13px;
}
.product-search-active a {
  flex: 0 0 auto;
  color: #a72c67;
  font-weight: 900;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.product-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-top: 16px;
}
.product-pagination span {
  color: var(--muted);
  min-width: 116px;
  text-align: center;
}
.product-pagination-bottom {
  margin: 8px 0 24px;
}
.product-admin-card.is-weekly {
  border-color: #eac363;
  box-shadow: 0 12px 32px rgba(150, 105, 20, .09);
}
.stage-weekly {
  background: #fff7d8;
  color: #7b5a17;
  border-color: #f2dc8a;
}
.stage-bestseller,
.btn-bestseller {
  border-color: #efbbca;
  background: #d94a72;
  color: #fff;
}
.stage-bestseller {
  background: #fff0f5;
  color: #a82e53;
}
.legacy-tags span {
  background: #f7f5f1;
  border-color: #ded8ce;
  color: #6f6b66;
}
.product-form {
  display: grid;
  gap: 22px;
  min-width: 0;
}
.product-form > *,
.product-form-grid > label,
.product-image-field,
.product-image-slots {
  min-width: 0;
  max-width: 100%;
}
.product-form input,
.product-form select,
.product-form textarea {
  min-width: 0;
  max-width: 100%;
}
.product-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.product-form .span-2 {
  grid-column: 1 / -1;
}
.product-form select,
.product-form textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 13px 14px;
  background: #fff;
  color: var(--ink);
  font: inherit;
}
.product-form textarea {
  resize: vertical;
  min-height: 128px;
}
.product-tag-selector {
  padding: 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.product-tag-selector__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 18px 0;
  cursor: pointer;
  list-style: none;
}
.product-tag-selector__head::-webkit-details-marker {
  display: none;
}
.product-tag-selector__head:focus-visible {
  outline: 3px solid rgba(116, 71, 255, .22);
  outline-offset: 5px;
  border-radius: 12px;
}
.product-tag-selector__head h2 {
  margin: 0;
  font-size: 22px;
  letter-spacing: 0;
}
.product-tag-selector__head p {
  margin: 4px 0 0;
}
.product-tag-selector__status {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  flex: 0 0 auto;
}
.product-tag-selector__arrow {
  width: 12px;
  height: 12px;
  border-right: 3px solid var(--ink);
  border-bottom: 3px solid var(--ink);
  transform: rotate(45deg) translate(-2px, -2px);
  transition: transform .18s ease;
}
.product-tag-selector[open] .product-tag-selector__arrow {
  transform: rotate(225deg) translate(-2px, -2px);
}
.product-tag-selector__body {
  display: grid;
  gap: 18px;
  padding: 0 0 18px;
}
.product-tag-count {
  flex: 0 0 auto;
  border-radius: 999px;
  padding: 7px 10px;
  background: #edf8f1;
  color: #176b45;
  font-size: 12px;
  font-weight: 900;
}
.product-tag-group {
  display: grid;
  gap: 10px;
}
.product-tag-group + .product-tag-group {
  padding-top: 16px;
  border-top: 1px solid #eee8e1;
}
.product-tag-group__head {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}
.product-tag-group__head h3 {
  margin: 0;
  color: var(--ink);
  font-size: 15px;
  letter-spacing: 0;
}
.product-tag-group__head p,
.product-tag-group__hint {
  margin: 2px 0 0;
  color: var(--muted);
  font-size: 12px;
  font-weight: 750;
}
.product-tag-group__mark {
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  margin-top: 2px;
  border: 2px solid currentColor;
  color: #8b58ce;
}
.product-tag-group__mark--store { border-radius: 4px; color: #7a51c7; }
.product-tag-group__mark--occasion { border-radius: 50% 50% 50% 2px; color: #d64e78; transform: rotate(-45deg); }
.product-tag-group__mark--format { border-radius: 50%; color: #d48d32; }
.product-tag-group__mark--color { border-radius: 50%; border-style: double; border-width: 4px; color: #4f8fa8; }
.product-tag-group__mark--style { transform: rotate(45deg); border-radius: 3px; color: #27875b; }
.product-tag-group__mark--flowers { border-radius: 50% 2px 50% 50%; color: #aa4d91; }
.product-tag-group__mark--greens { border-radius: 2px 50% 50% 50%; color: #27875b; transform: rotate(35deg); }
.product-tag-group__mark--advanced { border-radius: 50%; color: #77716a; }
.product-tag-options {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.product-tag-choice {
  position: relative;
  display: inline-flex;
}
.product-tag-toggle {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 1px solid #ded7cf;
  border-radius: 999px;
  padding: 9px 12px;
  background: #fff;
  color: #55504b;
  font: inherit;
  font-size: 13px;
  font-weight: 850;
  cursor: pointer;
  transition: border-color .16s ease, background .16s ease, color .16s ease, transform .16s ease;
}
.product-tag-toggle:hover {
  border-color: #a997bc;
  transform: translateY(-1px);
}
.product-tag-toggle.is-active {
  border-color: #513d70;
  background: #f2ecfb;
  color: #2d2145;
  box-shadow: inset 0 0 0 1px rgba(81,61,112,.08);
}
.product-tag-toggle__check {
  display: none;
  width: 19px;
  height: 19px;
  place-items: center;
  border-radius: 50%;
  background: #21875b;
  color: #fff;
  font-size: 12px;
  line-height: 1;
}
.product-tag-toggle.is-active .product-tag-toggle__check { display: inline-grid; }
.product-tag-delete {
  position: absolute;
  z-index: 2;
  top: -6px;
  right: -6px;
  width: 19px;
  height: 19px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 2px solid #fff;
  border-radius: 50%;
  background: #c83e52;
  color: #fff;
  font: 800 14px/1 Arial, sans-serif;
  cursor: pointer;
  box-shadow: 0 2px 7px rgba(105, 28, 45, .2);
}
.product-tag-delete:hover { background: #a7283c; }
.product-tag-delete:disabled { opacity: .5; cursor: wait; }
.product-tag-swatch {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  border: 1px solid rgba(45,33,69,.18);
  border-radius: 50%;
  background: #aaa;
}
.product-tag-swatch--white { background: #fff; }
.product-tag-swatch--ivory { background: #fff2c9; }
.product-tag-swatch--pink { background: #ee8fb5; }
.product-tag-swatch--blue { background: #78a9dc; }
.product-tag-swatch--purple { background: #9c79c9; }
.product-tag-swatch--yellow { background: #f2ca42; }
.product-tag-swatch--red { background: #d64e58; }
.product-tag-swatch--green { background: #5f9a68; }
.product-tag-swatch--neutral { background: #aaa096; }
.product-tag-group--advanced summary {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  color: var(--ink);
  font-weight: 900;
  cursor: pointer;
}
.product-tag-group--advanced[open] summary { margin-bottom: 8px; }
.product-image-field p,
.product-variants p {
  margin: 4px 0 0;
}
.product-image-field {
  display: grid;
  gap: 14px;
  border: 1px solid var(--line);
  border-radius: 20px;
  padding: 14px;
  background: linear-gradient(140deg, #fff, #fffaf4);
}
.product-image-slots {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}
.product-form--balloon .product-image-slots {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.balloon-extra-images {
  display: grid;
  gap: 12px;
  padding-top: 14px;
  border-top: 1px solid #eee8e1;
}
.balloon-extra-images[hidden] { display: none; }
.balloon-extra-images__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.balloon-extra-images__head h3 { margin: 0; color: var(--ink); font-size: 17px; }
.balloon-extra-images__head p { max-width: 720px; color: var(--muted); font-size: 12px; line-height: 1.45; }
.balloon-extra-images__head .btn { flex: 0 0 auto; }
.balloon-extra-images__empty {
  margin: 0;
  padding: 12px 14px;
  border: 1px dashed var(--line);
  border-radius: 12px;
  background: rgba(255,255,255,.55);
  color: var(--muted);
  font-size: 12px;
}
.balloon-design-editor {
  display:grid;
  gap:8px;
  margin-top:10px;
  padding:10px;
  border:1px solid rgba(218,79,145,.22);
  border-radius:14px;
  background:linear-gradient(135deg,rgba(255,239,246,.78),rgba(255,250,235,.78));
}
.balloon-design-numbers { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.balloon-design-numbers > label:last-child { grid-column:1 / -1; }
.balloon-design-numbers .money-input { display:grid; grid-template-columns:auto minmax(0,1fr); align-items:center; min-height:40px; border:1px solid var(--line); border-radius:12px; background:#fff; overflow:hidden; }
.balloon-design-numbers .money-input b { padding-left:11px; color:var(--muted); }
.balloon-design-numbers .money-input input { min-width:0; border:0; box-shadow:none; padding-left:5px; }
.balloon-design-editor[hidden] { display:none; }
.balloon-design-editor label { display:grid; gap:5px; font-size:11px; font-weight:850; text-transform:none; letter-spacing:0; }
.balloon-design-editor input[type="text"], .balloon-design-editor input:not([type]) { min-height:40px; }
.balloon-design-editor .balloon-design-stock { display:flex; align-items:center; gap:8px; }
.balloon-design-editor .balloon-design-stock input { width:19px; height:19px; margin:0; accent-color:#d64f91; }
.balloon-design-editor small { color:var(--muted); font-size:10px; line-height:1.35; }
.balloon-pricing-lock{display:grid;grid-template-columns:minmax(250px,.85fr) minmax(360px,1.15fr);gap:18px;padding:20px;border:1px solid rgba(32,61,47,.14);border-radius:24px;background:radial-gradient(circle at 92% 0,rgba(232,210,247,.55),transparent 34%),linear-gradient(135deg,#fffaf2,#fff2f7)}.balloon-pricing-lock h2{margin:0 0 7px}.balloon-pricing-lock p:not(.eyebrow){margin:0;color:var(--muted);line-height:1.5}.balloon-pricing-lock__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.balloon-pricing-lock__grid span{display:grid;gap:3px;place-items:center;padding:11px 7px;border:1px solid rgba(32,61,47,.12);border-radius:15px;background:rgba(255,255,255,.86);text-align:center}.balloon-pricing-lock__grid strong{font-size:11px}.balloon-pricing-lock__grid b{color:#ae3c73;font-size:14px}@media(max-width:760px){.balloon-pricing-lock{grid-template-columns:1fr}.balloon-pricing-lock__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.product-image-slot {
  min-width: 0;
  display: grid;
  gap: 9px;
  align-content: start;
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 12px;
  background: #fff;
}
.product-image-slot__picker {
  min-width: 0;
  display: grid;
  gap: 9px;
  cursor: pointer;
}
.product-image-slot > strong {
  color: var(--ink);
  font-size: 13px;
  letter-spacing: .03em;
  text-transform: uppercase;
}
.product-image-role__hint {
  display: block;
  color: #718071;
  font-size: 11px;
  font-weight: 650;
  letter-spacing: 0;
  line-height: 1.35;
  text-transform: none;
}
.product-image-role {
  display: grid;
  gap: 5px;
  color: var(--muted);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.product-image-role select {
  width: 100%;
  min-height: 38px;
  padding: 7px 9px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fffaf7;
  color: var(--ink);
  font: inherit;
  letter-spacing: 0;
  text-transform: none;
}
.detail-item__properties{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}.detail-item__properties span{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--line);border-radius:999px;background:#fff7fb;padding:5px 9px;color:#6a5e79;font-size:12px;line-height:1.2}.detail-item__properties strong{color:var(--ink)}
.detail-item__vase-setup{display:grid;gap:.16rem;margin:.65rem 0 .3rem;padding:.72rem .82rem;max-width:31rem;border:1px solid rgba(198,67,126,.28);border-left:5px solid #d95294;border-radius:1rem;background:linear-gradient(135deg,#fff1f7,#fff9e9);box-shadow:0 .35rem 1rem rgba(55,37,47,.06)}.detail-item__vase-setup span{color:#9f3267;font-size:.68rem;font-weight:950;letter-spacing:.1em;text-transform:uppercase}.detail-item__vase-setup strong{color:var(--ink);font-size:.95rem}.detail-item__vase-setup small{color:var(--muted);font-weight:750}
.detail-item__balloon-set{display:flex;flex-wrap:wrap;gap:.42rem;margin:.65rem 0 .3rem;padding:.55rem;max-width:31rem;border:1px solid rgba(32,61,47,.13);border-radius:1rem;background:linear-gradient(135deg,rgba(255,239,246,.84),rgba(255,250,235,.8))}.detail-item__balloon-set button{width:3.35rem;height:3.35rem;padding:.18rem;border:1px solid rgba(32,61,47,.12);border-radius:50%;background:rgba(255,255,255,.88);cursor:zoom-in;overflow:hidden}.detail-item__balloon-set img{width:100%;height:100%;object-fit:contain}
.detail-item__vase-design{display:flex;align-items:center;gap:.8rem;margin:.65rem 0 .3rem;padding:.65rem .75rem;max-width:31rem;border:1px solid rgba(32,61,47,.13);border-radius:1rem;background:linear-gradient(135deg,rgba(255,249,244,.9),rgba(242,232,249,.78))}.detail-item__vase{position:relative;width:5.2rem;height:3.25rem;flex:0 0 auto;display:grid;place-items:center;border:1px solid #ddd6cf;border-radius:1rem .95rem .75rem .75rem;background:radial-gradient(circle at 23% 38%,rgba(85,80,72,.22) 0 1px,transparent 1.4px),radial-gradient(circle at 72% 68%,rgba(99,95,91,.18) 0 1px,transparent 1.5px),repeating-linear-gradient(180deg,#f7f3f0 0 2px,#e9e4df 2px 3px);box-shadow:inset .65rem 0 .7rem rgba(95,87,77,.08),inset -.65rem 0 .7rem rgba(95,87,77,.11),0 .35rem .7rem rgba(32,61,47,.12)}.detail-item__vase:before{content:"";position:absolute;left:.2rem;right:.2rem;top:-.22rem;height:.58rem;border-radius:50%;background:radial-gradient(ellipse,#bdb6af 0 43%,#f7f3f0 55%,#d7d1cb 74%);box-shadow:inset 0 .18rem .2rem rgba(60,54,47,.27)}.detail-item__vase:after{content:"";position:absolute;left:.75rem;right:.75rem;top:1.25rem;height:1.05rem;border:1px solid #d7d0c9;border-radius:.35rem;background:#f7f3f0;box-shadow:0 .12rem .25rem rgba(61,54,49,.17)}.detail-item__vase span{position:relative;z-index:1;max-width:3.5rem;margin-top:.2rem;color:#173d2e;font-family:Arial,sans-serif;font-size:.43rem;font-weight:900;line-height:1;text-align:center;text-shadow:0 1px #fff;overflow:hidden}.detail-item__vase[data-lettering="signature"] span{font-family:"Segoe Script",cursive}.detail-item__vase-design p{display:grid;gap:.15rem;margin:0}.detail-item__vase-design small{color:var(--muted)}
.product-image-slot__preview {
  position: relative;
  display: grid;
  width: 100%;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  place-items: center;
  border: 1px dashed #d9cedf;
  border-radius: 12px;
  background: linear-gradient(145deg, #fff7dc, #fff0f6);
  color: #9b8fa4;
  font-size: 28px;
  font-weight: 950;
}
.product-image-slot__preview.has-image {
  border-style: solid;
  background: #f6f3f0;
}
.product-image-slot__preview img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}
.product-image-slot__preview .product-image-download {
  top: 8px;
  right: 8px;
}
.product-image-slot input[type="file"] {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}
.product-image-slot__button {
  width: 100%;
  min-height: 42px;
  pointer-events: none;
}
.product-image-slot small {
  min-width: 0;
  overflow: hidden;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.product-media-delete {
  min-height: 34px;
  border: 0;
  border-radius: 9px;
  padding: 7px 10px;
  background: #fff0f3;
  color: #af2844;
  font: inherit;
  font-size: 11px;
  font-weight: 900;
  cursor: pointer;
}
.product-media-delete:hover { background: #ffe3e9; }
.product-media-delete-state {
  color: #af2844;
  font-size: 11px;
  font-weight: 850;
  line-height: 1.35;
}
.product-image-slot.is-pending-delete .product-image-slot__preview,
.product-model-slot.is-pending-delete .product-model-slot__picker {
  opacity: .35;
  filter: grayscale(1);
}
.product-model-field {
  display: grid;
  grid-template-columns: minmax(220px, .72fr) minmax(0, 1.28fr);
  gap: 16px;
  align-items: center;
  border-top: 1px solid #eee8e1;
  padding-top: 16px;
}
.product-model-field__copy {
  display: flex;
  gap: 12px;
  align-items: flex-start;
}
.product-model-field__copy h3 { margin: 0; color: var(--ink); font-size: 16px; }
.product-model-field__copy p { margin: 4px 0 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
.product-model-field__badge,
.product-model-slot__cube {
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  border-radius: 10px;
  background: #29213d;
  color: #fff;
  font-size: 12px;
  font-weight: 950;
  letter-spacing: .05em;
}
.product-model-field__badge { width: 40px; height: 40px; }
.product-model-slot {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 9px 12px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 11px;
  background: #fff;
}
.product-model-slot__picker {
  min-width: 0;
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  cursor: pointer;
}
.product-model-slot__preview {
  width: 72px;
  aspect-ratio: 1;
  display: grid;
  overflow: hidden;
  place-items: center;
  border: 1px solid #ded7cf;
  border-radius: 12px;
  background: linear-gradient(145deg, #fff7dc, #eee7ff);
}
.product-model-slot__preview img { width: 100%; height: 100%; display: block; object-fit: cover; }
.product-model-slot__cube { width: 46px; height: 46px; box-shadow: 0 8px 18px rgba(41,33,61,.16); }
.product-model-slot__details { min-width: 0; display: grid; gap: 3px; }
.product-model-slot__details strong { color: var(--ink); font-size: 13px; }
.product-model-slot__details small { color: var(--muted); font-size: 11px; line-height: 1.35; }
.product-model-slot input[type="file"] {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}
.product-model-slot__button { min-width: 126px; pointer-events: none; }
.product-model-slot > .product-media-delete { grid-column: 2; grid-row: 2; }
.product-model-slot > .product-media-delete-state { grid-column: 1; grid-row: 2; }
.product-variants {
  display: grid;
  gap: 12px;
}
.product-variant-rows {
  display: grid;
  gap: 10px;
}
.product-variant-row {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) 132px 112px 112px auto;
  gap: 10px;
  align-items: end;
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 12px;
  background: #fffaf5;
}
.product-variant-row .mini-danger {
  min-height: 44px;
  padding-inline: 14px;
}
.product-form-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: flex-end;
}
.product-form-actions .btn {
  min-width: 160px;
  text-align: center;
}
@media (min-width: 1120px) {
  .product-admin-layout {
    grid-template-columns: minmax(0, 1fr) 300px;
  }
  .product-tag-panel {
    position: sticky;
    top: 22px;
  }
}
@media (max-width: 720px) {
  .custom-order-section-head {
    align-items: stretch;
    flex-direction: column;
  }
  .custom-order-section-head .btn {
    width: 100%;
  }
  .custom-order-add-actions {
    display: grid;
    grid-template-columns: 1fr;
  }
  .custom-order-grid,
  .custom-order-public-grid,
  .custom-order-summary,
  .custom-order-public-summary {
    grid-template-columns: 1fr;
  }
  .custom-order-item {
    grid-template-columns: 1fr 92px;
  }
  .custom-order-custom-item {
    grid-template-columns: 1fr;
  }
  .custom-order-custom-item .span-2 {
    grid-column: 1 / -1;
  }
  .custom-order-item .mini-danger {
    grid-column: 1 / -1;
    width: 100%;
  }
  .custom-order-public-card {
    padding: 18px;
  }
  .custom-order-public-item {
    grid-template-columns: 52px minmax(0, 1fr);
  }
  .custom-order-public-item b {
    grid-column: 2;
    justify-self: start;
  }
  .custom-order-public-item img,
  .custom-order-public-item .item-placeholder {
    width: 52px;
    height: 52px;
  }
  .product-admin-card {
    grid-template-columns: 78px minmax(0, 1fr);
    padding: 10px;
  }
  .product-admin-media {
    width: 78px;
    height: 78px;
    border-radius: 16px;
  }
  .product-admin-download {
    top: 5px;
    right: 5px;
    width: 29px;
    height: 29px;
  }
  .product-admin-download svg {
    width: 15px;
    height: 15px;
  }
  .product-admin-top {
    display: grid;
  }
  .product-admin-actions {
    display: grid;
    grid-template-columns: 1fr;
  }
  .product-admin-actions .btn,
  .product-admin-actions .mini-danger {
    width: 100%;
    text-align: center;
  }
  .weekly-drop-head {
    display: grid;
  }
  .product-form-grid,
  .product-image-field,
  .product-variant-row {
    grid-template-columns: 1fr;
  }
  .product-tag-selector__head {
    display: grid;
  }
  .product-tag-count {
    justify-self: start;
  }
  .product-tag-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .product-tag-choice {
    width: 100%;
  }
  .product-tag-toggle {
    width: 100%;
    justify-content: flex-start;
    text-align: left;
  }
  .product-tag-toggle__check { margin-left: auto; }
  .product-image-slots {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }
  .balloon-extra-images__head { align-items: stretch; flex-direction: column; }
  .balloon-extra-images__head .btn { width: 100%; }
  .product-image-slot {
    gap: 7px;
    padding: 8px;
  }
  .product-image-slot > strong {
    min-height: 28px;
    font-size: 10px;
    line-height: 1.2;
  }
  .product-image-slot__button {
    min-height: 38px;
    padding-inline: 6px;
    font-size: 10px;
  }
  .product-image-slot small {
    display: none;
  }
  .product-media-delete {
    min-height: 30px;
    padding-inline: 5px;
    font-size: 9px;
  }
  .product-media-delete-state { font-size: 9px; }
  .product-model-field { grid-template-columns: 1fr; }
  .product-model-slot { grid-template-columns: 1fr; }
  .product-model-slot__picker { grid-template-columns: 60px minmax(0,1fr); }
  .product-model-slot__preview { width: 60px; }
  .product-model-slot__button { grid-column: 1 / -1; width: 100%; }
  .product-model-slot > .product-media-delete,
  .product-model-slot > .product-media-delete-state { grid-column: 1; grid-row: auto; }
  .product-form-actions {
    display: grid;
  }
  .product-form-actions .btn {
    width: 100%;
  }
}
@media (max-width: 520px) {
  .product-image-slots,
  .product-form--balloon .product-image-slots {
    grid-template-columns: minmax(0, 1fr);
  }
}

.product-photos-head{display:flex;align-items:center;justify-content:space-between;gap:16px}
.product-photos-head>.btn{flex:0 0 auto}
.product-media-grid{display:contents}
.product-form--balloon .product-media-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.product-form--balloon .product-media-grid .product-image-slots,
.product-form--balloon .product-media-grid .balloon-extra-images:not([hidden]){display:contents}
.product-form--balloon .balloon-extra-images__empty{grid-column:1/-1;order:1002}
.product-form--balloon .product-image-slot{padding:10px;gap:7px}
.product-form--balloon .product-image-slot__preview{height:160px;aspect-ratio:auto}
.product-form--balloon .product-image-slot__preview img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.product-form--balloon .product-image-slot>strong{font-size:11px;min-height:0}
.product-form--balloon .product-image-slot>.product-image-role__hint,
.product-form--balloon .product-image-role>small,
.product-form--balloon [data-product-image-name]{display:none}
.product-form--balloon .balloon-design-editor{padding:8px;gap:7px;margin-top:0}
.product-form--balloon .product-image-slot small{white-space:normal;line-height:1.35}
.product-form--balloon .balloon-design-stock small{display:inline}
.product-form--balloon input:not([type=checkbox]):not([type=file]){min-width:0}
.balloon-order-controls{display:flex;align-items:end;gap:5px}
.balloon-order-controls[hidden]{display:none}
.balloon-order-controls label{display:grid;gap:3px;flex:1;min-width:0;font-size:10px}
.balloon-order-controls input{width:100%;min-height:40px;padding:7px}
.balloon-order-controls button{width:40px;height:40px;flex:0 0 40px;border:1px solid var(--line);border-radius:10px;background:#fff8f0;color:var(--ink);font:inherit;font-size:19px;cursor:pointer}
.balloon-order-controls button:disabled{opacity:.35;cursor:default}
@media(max-width:1199px){.product-form--balloon .product-media-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){
  .product-photos-head{align-items:stretch;flex-direction:column}
  .product-form--balloon .product-media-grid{grid-template-columns:minmax(0,1fr)}
  .product-form--balloon .product-image-slot__preview{height:180px}
  .product-form--balloon .balloon-design-editor input{font-size:16px}
  .balloon-order-controls button{width:44px;height:44px;flex-basis:44px}
  .balloon-order-controls input{font-size:16px;min-height:44px}
}

/* v2.5 admin clarity, customer memory, safe theme sync, A6 adaptive card */
.admin-icon {
  width: 44px;
  height: 44px;
  display: inline-grid;
  place-items: center;
  border-radius: 16px;
  color: #211936;
  background: linear-gradient(135deg, rgba(255,226,122,.42), rgba(227,105,165,.2));
  border: 1px solid rgba(234,223,213,.9);
}
.admin-card .admin-icon { font-size: 0; }
.admin-icon svg {
  width: 24px;
  height: 24px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.1;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.admin-card:hover .admin-icon {
  color: #7b4ad9;
  background: linear-gradient(135deg, rgba(255,226,122,.55), rgba(123,74,217,.16));
}
.notice {
  border-radius: 18px;
  padding: 12px 14px;
  margin: 12px 0;
  font-weight: 850;
  border: 1px solid var(--line);
}
.notice.good { color: #4c4844; background: #f6f3ee; border-color: #ddd6ce; }
.notice.bad { color: #9d2340; background: #fff0f3; border-color: #f2cad3; }
.theme-sync-panel,
.theme-file-list,
.theme-backups,
.customer-search-card { margin-top: 14px; }
.theme-sync-head {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: flex-start;
  margin-bottom: 14px;
}
.theme-sync-head h2,
.theme-backups h2 { margin: 0 0 6px; }
.theme-picker,
.customer-search {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 10px;
  align-items: end;
}
.theme-picker select,
.customer-search input,
.theme-backup-row input {
  width: 100%;
  min-height: 46px;
  border: 1px solid var(--line);
  border-radius: 15px;
  padding: 11px 12px;
  background: #fffaf5;
  color: var(--ink);
  font: inherit;
  font-weight: 800;
}
.safety-check {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  border: 1px solid #efe4db;
  border-radius: 16px;
  padding: 12px;
  background: #fffaf5;
  color: #5f586b;
  font-weight: 850;
  line-height: 1.35;
  margin-bottom: 12px;
}
.safety-check input {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  margin-top: 2px;
}
.theme-file-rows { display: grid; gap: 8px; }
.theme-file-row {
  display: grid;
  grid-template-columns: auto minmax(0,1fr) auto;
  gap: 10px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 11px 12px;
  background: #fff;
}
.theme-file-row input { width: 18px; height: 18px; }
.theme-file-main { min-width: 0; }
.theme-file-main strong,
.theme-file-main small {
  display: block;
  overflow-wrap: anywhere;
}
.theme-file-main small {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}
.theme-status {
  border-radius: 999px;
  padding: 6px 9px;
  font-size: 11px;
  font-weight: 950;
  text-transform: uppercase;
  letter-spacing: .05em;
  background: #f4efe8;
  color: #5f586b;
}
.theme-file-changed .theme-status { background: #fff4d9; color: #8a5a00; }
.theme-file-missing .theme-status { background: #edf8ff; color: #1f5c85; }
.theme-file-same { opacity: .76; }
.theme-file-same .theme-status { background: #f6f3ee; color: #4c4844; }
.theme-backup-row {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(250px,auto);
  gap: 12px;
  align-items: center;
  border-top: 1px solid var(--line);
  padding: 13px 0;
}
.theme-backup-row:first-of-type { border-top: 0; }
.theme-backup-row p {
  margin: 4px 0 0;
  color: var(--muted);
  font-weight: 800;
}
.theme-backup-row form {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 8px;
  margin: 0;
}
.theme-pages-form {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 8px;
  margin: 0 0 10px;
}
.theme-pages-form input {
  width: 100%;
  min-height: 46px;
  border: 1px solid var(--line);
  border-radius: 15px;
  padding: 11px 12px;
  background: #fffaf5;
  color: var(--ink);
  font: inherit;
  font-weight: 800;
}
.scope-note {
  border: 1px solid #f0d7e1;
  border-radius: 18px;
  padding: 12px 14px;
  margin: 10px 0 12px;
  background: #fff7fb;
}
.scope-note strong {
  display: block;
  margin-bottom: 4px;
}
.scope-note p {
  margin: 4px 0 0;
  color: var(--muted);
  font-weight: 820;
  line-height: 1.35;
}
.scope-note b {
  color: #302A4A;
}
.customer-search { grid-template-columns: minmax(0,1fr) auto auto; }
.customer-list {
  display: grid;
  gap: 10px;
  margin-top: 14px;
}
.customer-row {
  display: grid;
  grid-template-columns: 50px minmax(0,1fr) auto;
  gap: 12px;
  align-items: center;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 22px;
  padding: 14px;
  box-shadow: 0 10px 28px rgba(39,31,61,.05);
  color: inherit;
}
.customer-avatar {
  width: 50px;
  height: 50px;
  border-radius: 18px;
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, #ffe27a, #e369a5);
  color: #211936;
  font-weight: 950;
  font-size: 20px;
}
.customer-main { min-width: 0; }
.customer-main strong,
.customer-main span,
.customer-main small {
  display: block;
  overflow-wrap: anywhere;
}
.customer-main span,
.customer-main small {
  color: var(--muted);
  font-weight: 800;
  margin-top: 3px;
}
.customer-stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(95px,1fr));
  gap: 8px;
}
.customer-stats span {
  background: #fffaf5;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 8px 10px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 850;
}
.customer-stats b {
  display: block;
  color: var(--ink);
  font-size: 16px;
}
.customer-product-grid,
.customer-reminder-list,
.customer-order-list {
  display: grid;
  gap: 10px;
  margin-top: 12px;
}
.customer-product-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.customer-product,
.customer-order-row,
.customer-reminder-list div {
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fffaf5;
  padding: 11px;
}
.customer-product {
  display: grid;
  grid-template-columns: 58px minmax(0,1fr);
  gap: 10px;
  align-items: center;
}
.customer-product img {
  width: 58px;
  height: 58px;
  object-fit: cover;
  border-radius: 14px;
}
.customer-product strong,
.customer-product span,
.customer-product small,
.customer-reminder-list strong,
.customer-reminder-list span,
.customer-reminder-list small { display: block; }
.customer-product span,
.customer-product small,
.customer-reminder-list span,
.customer-reminder-list small {
  color: var(--muted);
  font-weight: 800;
  margin-top: 3px;
}
.customer-order-row {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 10px;
  align-items: center;
  color: inherit;
}
.customer-order-row span,
.customer-order-row small {
  display: block;
  color: var(--muted);
  font-weight: 800;
  margin-top: 4px;
}
.customer-order-row > div:last-child {
  display: grid;
  justify-items: end;
  gap: 8px;
}
.customer-detail-hero { margin-top: 6px; }
.gift-card-face {
  background:
    radial-gradient(ellipse at 36% 35%, rgba(242,106,162,.18), transparent 30%),
    radial-gradient(ellipse at 62% 58%, rgba(255,205,55,.22), transparent 28%),
    #fff;
}
.gift-card-soft-shape {
  opacity: .78;
  filter: blur(1.5px);
}
.gift-card-soft-shape--pink { background: radial-gradient(circle, rgba(242,106,162,.28), transparent 68%); }
.gift-card-soft-shape--yellow { background: radial-gradient(circle, rgba(255,205,55,.34), transparent 68%); }
.gift-card-inner {
  grid-template-rows: auto auto minmax(0,1fr) auto;
  align-items: start;
}
.gift-card-message {
  align-self: stretch;
  margin: 8px 0 4px;
}
.gift-card-message p {
  font-family: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
  font-style: italic;
  font-weight: 400;
  color: #2b2238;
  letter-spacing: 0;
  text-wrap: balance;
}
.gift-card-message-short .gift-card-message p {
  font-size: clamp(42px, 7vw, 66px);
  max-width: 610px;
}
.gift-card-message-medium .gift-card-message p {
  font-size: clamp(32px, 5.1vw, 48px);
  max-width: 620px;
}
.gift-card-message-long .gift-card-message p {
  font-size: clamp(24px, 3.8vw, 36px);
  line-height: 1.12;
  max-width: 650px;
}
.gift-card-qr-block {
  width: min(470px, 76%);
  justify-self: start;
  margin-left: 8px;
  grid-template-columns: 70px minmax(0,1fr);
  gap: 11px;
  padding: 8px 11px;
}
.gift-card-qr { width: 70px; height: 70px; }
.gift-card-qr-block strong { font-size: 15px; }
.gift-card-qr-block span {
  font-size: 12px;
  line-height: 1.28;
}
@media (max-width: 760px) {
  .theme-picker,
  .theme-backup-row,
  .theme-backup-row form,
  .theme-pages-form,
  .customer-row,
  .customer-search,
  .customer-order-row { grid-template-columns: 1fr; }
  .theme-sync-head { display: grid; }
  .customer-stats,
  .customer-product-grid { grid-template-columns: 1fr; }
.customer-order-row > div:last-child { justify-items: start; }
}
@media print {
  .gift-card-face {
    background:
      radial-gradient(ellipse at 31% 34%, rgba(242,106,162,.24), transparent 31%),
      radial-gradient(ellipse at 62% 60%, rgba(255,205,55,.30), transparent 30%),
      #fff !important;
  }
  .gift-card-message-short .gift-card-message p {
    font-size: 34pt;
    max-width: 116mm;
  }
  .gift-card-message-medium .gift-card-message p {
    font-size: 25pt;
    max-width: 118mm;
  }
  .gift-card-message-long .gift-card-message p {
    font-size: 18pt;
    line-height: 1.12;
    max-width: 122mm;
  }
  .gift-card-qr-block {
    width: 92mm;
    grid-template-columns: 17mm 1fr;
    margin-left: 0;
    padding: 2mm 2.6mm;
  }
  .gift-card-qr {
    width: 17mm;
    height: 17mm;
  }
  .gift-card-qr-block strong { font-size: 8pt; }
  .gift-card-qr-block span {
    font-size: 6.5pt;
    line-height: 1.2;
  }
  .gift-card-inner { padding: 7mm 9mm 6mm; }
  .gift-card-soft-shape--pink {
    left: 33mm;
    top: 22mm;
    width: 66mm;
    height: 34mm;
  }
  .gift-card-soft-shape--yellow {
    left: 52mm;
    bottom: 17mm;
    width: 62mm;
    height: 32mm;
  }
}

/* v2.6 envelope name A6 print */
.print-card-actions {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 10px;
  margin-top: 10px;
}
.print-text-form {
  display: grid;
  gap: 12px;
}
.print-text-form textarea[name="gift_message"] {
  min-height: 118px;
  resize: vertical;
}
.print-text-form textarea[name="recipient_name"] {
  min-height: 76px;
  resize: vertical;
}
.print-text-form .btn {
  width: max-content;
}
.envelope-card-face {
  position: relative;
  overflow: hidden;
  aspect-ratio: 148 / 105;
  border: 1px solid #eadfd5;
  border-radius: 18px;
  background:
    radial-gradient(ellipse at 32% 35%, rgba(242,106,162,.20), transparent 31%),
    radial-gradient(ellipse at 68% 60%, rgba(255,205,55,.24), transparent 30%),
    #fff;
  box-shadow: 0 18px 46px rgba(39,31,61,.12);
}
.envelope-card-inner {
  position: relative;
  z-index: 2;
  min-height: 100%;
  display: grid;
  grid-template-rows: auto auto 1fr auto;
  justify-items: center;
  align-items: start;
  padding: 26px 34px 24px;
  text-align: center;
}
.envelope-name-block {
  align-self: center;
  display: grid;
  gap: 6px;
  width: 100%;
}
.envelope-name-block span {
  color: #746d82;
  font-size: 13px;
  font-weight: 950;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.envelope-name-block strong {
  color: #211936;
  font-family: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
  font-style: italic;
  font-weight: 400;
  line-height: .98;
  overflow-wrap: anywhere;
}
.envelope-name-short .envelope-name-block strong {
  font-size: clamp(58px, 9.2vw, 88px);
}
.envelope-name-medium .envelope-name-block strong {
  font-size: clamp(44px, 7vw, 66px);
}
.envelope-name-long .envelope-name-block strong {
  font-size: clamp(34px, 5.3vw, 50px);
  line-height: 1.05;
}
.envelope-card-foot {
  margin: 0;
  color: #746d82;
  font-size: 12px;
  font-weight: 850;
}
@media (max-width: 640px) {
  .print-card-actions {
    grid-template-columns: 1fr;
  }
}
@media print {
  .envelope-card-page,
  .envelope-card-page html,
  body.envelope-card-page {
    width: 148mm;
    height: 105mm;
  }
  .envelope-card-face {
    width: 148mm;
    height: 104.5mm;
    aspect-ratio: auto;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    overflow: hidden;
    background:
      radial-gradient(ellipse at 31% 34%, rgba(242,106,162,.26), transparent 31%),
      radial-gradient(ellipse at 66% 62%, rgba(255,205,55,.32), transparent 30%),
      #fff !important;
  }
  .envelope-card-inner {
    padding: 7mm 10mm 6mm;
  }
  .envelope-name-short .envelope-name-block strong {
    font-size: 47pt;
  }
  .envelope-name-medium .envelope-name-block strong {
    font-size: 36pt;
  }
  .envelope-name-long .envelope-name-block strong {
    font-size: 27pt;
  }
  .envelope-card-foot {
    font-size: 7pt;
  }
}

/* v2.6 admin cleanup and frictionless photo upload */
.mini-icon-danger,
.icon-danger {
  width: 30px;
  height: 30px;
  display: inline-grid;
  place-items: center;
  border: 1px solid rgba(157, 35, 64, .18);
  border-radius: 999px;
  background: rgba(255, 240, 243, .72);
  color: #9d2340;
  cursor: pointer;
}
.mini-icon-danger svg,
.icon-danger svg {
  width: 15px;
  height: 15px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.mini-icon-danger:hover,
.icon-danger:hover {
  background: #ffe5ec;
  border-color: rgba(157, 35, 64, .34);
}
.quiet-danger-form {
  margin: 0;
  align-self: center;
}
.gallery-media,
.photo-thumb {
  position: relative;
}
.gallery-media .mini-icon-danger,
.photo-thumb .icon-danger {
  position: absolute;
  top: 8px;
  right: 8px;
  box-shadow: 0 8px 18px rgba(39,31,61,.12);
}
.photo-thumb form,
.gallery-media form {
  margin: 0;
}
.photo-grid {
  align-items: start;
}
.photo-thumb img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: 14px;
}
.auto-photo-form {
  gap: 10px;
}
.photo-picker {
  display: grid;
  grid-template-columns: 44px minmax(0,1fr);
  grid-template-rows: auto auto;
  column-gap: 12px;
  align-items: center;
  border: 1px dashed rgba(123,74,217,.34);
  border-radius: 18px;
  padding: 14px;
  background: linear-gradient(135deg,#fffaf5,#fff);
  cursor: pointer;
  text-transform: none;
  letter-spacing: 0;
}
.photo-picker[hidden] {
  display: none;
}
.photo-picker input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}
.photo-picker__icon {
  grid-row: 1 / span 2;
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border-radius: 16px;
  background: linear-gradient(135deg, rgba(255,226,122,.52), rgba(227,105,165,.24));
  color: #211936;
}
.photo-picker__icon svg {
  width: 23px;
  height: 23px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.photo-picker strong {
  font-size: 15px;
  color: var(--ink);
}
.photo-picker small,
.photo-upload-state {
  color: var(--muted);
  font-weight: 800;
}
.photo-upload-state {
  margin: 0;
  font-size: 12px;
}
.auto-photo-form.is-uploading .photo-picker {
  opacity: .68;
  pointer-events: none;
}
.auto-photo-form.is-uploading .photo-upload-state {
  color: #7b4ad9;
}
.delivery-location-picker {
  display: grid;
  gap: 10px;
  border: 1px solid rgba(18,55,40,.12);
  border-radius: 18px;
  padding: 12px;
  background: rgba(255,253,248,.74);
}
.delivery-location-picker > strong {
  color: #123728;
  font-size: 13px;
}
.delivery-location-options {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.delivery-location-options label {
  display: inline-flex;
  text-transform: none;
  letter-spacing: 0;
  font-size: 12px;
}
.delivery-location-options input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.delivery-location-options span {
  display: inline-flex;
  align-items: center;
  border: 1px solid rgba(18,55,40,.16);
  border-radius: 999px;
  padding: 8px 11px;
  background: #fff;
  color: #496158;
  font-weight: 900;
}
.delivery-location-options input:checked + span {
  border-color: #123728;
  background: #123728;
  color: #FFF4E2;
}
.delivery-location-other[hidden] {
  display: none;
}
.delivery-handoff-record {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 14px;
  border: 1px solid rgba(227,105,165,.35);
  border-radius: 18px;
  padding: 14px;
  background: linear-gradient(135deg,rgba(255,235,244,.9),rgba(255,248,222,.78));
}
.delivery-handoff-record > span {
  display: grid;
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  place-items: center;
  border-radius: 50%;
  background: #123728;
  color: #fff;
  font-size: 22px;
  font-weight: 950;
}
.delivery-handoff-record div {
  display: grid;
  gap: 3px;
}
.delivery-handoff-record strong {
  color: #123728;
}
.delivery-handoff-record small {
  color: var(--muted);
  font-weight: 750;
}
.photo-thumb-caption {
  margin: 6px 0 0;
  color: var(--muted);
  font-size: 11px;
  font-weight: 850;
  line-height: 1.25;
}
.email-test-actions {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 8px;
  margin-top: 12px;
}
.email-test-actions form {
  margin: 0;
}
.email-test-actions .btn {
  width: 100%;
}
.customer-row--with-actions {
  grid-template-columns: minmax(0,1fr) auto;
  padding: 8px 10px 8px 8px;
}
.customer-row-link {
  display: grid;
  grid-template-columns: 50px minmax(0,1fr) auto;
  gap: 12px;
  align-items: center;
  color: inherit;
  text-decoration: none;
}
.customer-row--with-actions form {
  margin: 0;
}
.customer-detail-hero {
  align-items: flex-start;
}
.customer-detail-hero form {
  margin: 0;
}
@media (max-width:640px) {
  .customer-row--with-actions,
  .customer-row-link {
    grid-template-columns: 1fr;
  }
  .customer-row--with-actions form {
    justify-self: end;
  }
  .photo-picker {
    grid-template-columns: 38px minmax(0,1fr);
    padding: 12px;
  }
  .photo-picker__icon {
    width: 38px;
    height: 38px;
    border-radius: 14px;
  }
  .email-test-actions {
    grid-template-columns: 1fr 1fr;
  }
}

/* v2.7 graphite palette + brand colors */
:root {
  --green: #3f3c39;
  --green-soft: #f1eee9;
}
body {
  background: linear-gradient(140deg, #fffaf1, #fbf8f2 45%, #fff0f8);
}
.side-nav {
  background: linear-gradient(180deg, #3f3c39, #272522);
}
.side-nav {
  min-height: 100dvh;
  max-height: 100dvh;
  overflow: hidden;
  padding-bottom: max(18px, env(safe-area-inset-bottom));
}
.side-brand {
  flex: 0 0 auto;
}
.side-links {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  padding-right: 2px;
  scrollbar-width: thin;
  align-content: start;
}
.side-user {
  flex: 0 0 auto;
}
.side-bottom {
  flex: 0 0 auto;
  padding-top: 10px;
  background: linear-gradient(180deg, rgba(63,60,57,0), rgba(39,37,34,.92) 18%, rgba(39,37,34,1));
}
.side-links a.active {
  color: #3f3c39;
}
.side-links a.active svg {
  color: #3f3c39;
}
.back-chip,
.detail-price,
.reminder-saved-list strong {
  color: #3f3c39;
}
.pill.green,
.stage-ready,
.theme-file-same .theme-status {
  background: #f1eee9;
  color: #4c4844;
  border-color: #ddd6ce;
}
.order-card.status-manager_notified,
.order-card.status-ready {
  background: #fbf8f2;
  border-color: #ddd6ce;
}
.quick-col,
.quick-col:has(.stage-bg-ready) {
  background: linear-gradient(180deg, #fbf8f2, #fff);
}
.round-done,
.btn-green,
.round-action.stage-bg-ready {
  background: #6f6b66;
  color: #fff;
}
.mobile-menu-toggle em {
  background: #6f6b66;
  box-shadow: 0 0 0 4px rgba(111,107,102,.16);
}
.notice.good {
  color: #4c4844;
  background: #f6f3ee;
  border-color: #ddd6ce;
}
.brand-color-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.brand-color-card {
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr);
  gap: 14px;
  align-items: center;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 22px;
  padding: 14px;
  box-shadow: 0 10px 28px rgba(39,31,61,.05);
}
.brand-color-swatch {
  width: 64px;
  height: 64px;
  border-radius: 18px;
  border: 1px solid rgba(39,31,61,.10);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.28);
}
.brand-color-card strong,
.brand-color-card p {
  display: block;
}
.brand-color-card p {
  margin: 6px 0 0;
  color: var(--muted);
  font-weight: 780;
  line-height: 1.35;
}
.copy-color {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  margin-top: 4px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fffaf5;
  color: #3f3c39;
  padding: 0 10px;
  font-size: 12px;
  font-weight: 950;
  letter-spacing: .05em;
  cursor: pointer;
}
@media (max-width: 640px) {
  .brand-color-grid {
    grid-template-columns: 1fr;
  }
}

/* v2.8 A6 gift card watercolor brush background */
.gift-card-face {
  background: #fff !important;
}
.gift-card-soft-shape {
  display: none;
}
.gift-card-watercolor {
  position: absolute;
  z-index: 1;
  left: 50%;
  top: 47%;
  width: min(580px, 78%);
  height: 46%;
  transform: translate(-50%, -50%) rotate(-5deg);
  pointer-events: none;
  opacity: .9;
}
.gift-card-watercolor span {
  position: absolute;
  display: block;
  left: 50%;
  width: 86%;
  height: 30%;
  border-radius: 52% 38% 54% 44% / 42% 60% 35% 58%;
  transform-origin: center;
  filter: blur(.35px);
  mix-blend-mode: multiply;
}
.gift-card-watercolor span::before,
.gift-card-watercolor span::after {
  content: "";
  position: absolute;
  inset: 8% -4%;
  border-radius: inherit;
  background: inherit;
  opacity: .38;
  transform: translateY(18%) skewX(-14deg);
}
.gift-card-watercolor span::after {
  inset: 18% 7%;
  opacity: .28;
  transform: translateY(-18%) skewX(18deg);
}
.gift-card-watercolor span:nth-child(1) {
  top: 2%;
  background: linear-gradient(90deg, transparent 0%, rgba(246,139,165,.12) 8%, rgba(246,139,165,.38) 32%, rgba(245,197,184,.28) 72%, transparent 100%);
  transform: translateX(-48%) rotate(-9deg);
}
.gift-card-watercolor span:nth-child(2) {
  top: 19%;
  background: linear-gradient(90deg, transparent 0%, rgba(220,213,203,.20) 5%, rgba(176,178,172,.34) 36%, rgba(239,199,176,.24) 76%, transparent 100%);
  transform: translateX(-50%) rotate(4deg);
}
.gift-card-watercolor span:nth-child(3) {
  top: 37%;
  width: 92%;
  background: linear-gradient(90deg, transparent 0%, rgba(241,180,198,.16) 7%, rgba(239,157,183,.34) 38%, rgba(245,218,188,.28) 72%, transparent 100%);
  transform: translateX(-48%) rotate(-3deg);
}
.gift-card-watercolor span:nth-child(4) {
  top: 55%;
  width: 78%;
  background: linear-gradient(90deg, transparent 0%, rgba(213,204,194,.16) 6%, rgba(191,180,166,.32) 45%, rgba(244,200,181,.25) 82%, transparent 100%);
  transform: translateX(-42%) rotate(8deg);
}
.gift-card-watercolor span:nth-child(5) {
  top: 70%;
  width: 70%;
  background: linear-gradient(90deg, transparent 0%, rgba(238,138,174,.10) 8%, rgba(236,135,172,.28) 38%, rgba(237,223,207,.24) 76%, transparent 100%);
  transform: translateX(-58%) rotate(-11deg);
}
.gift-card-inner {
  z-index: 2;
}
.gift-card-kicker,
.gift-card-message,
.gift-card-qr-block {
  position: relative;
}
@media print {
  .gift-card-watercolor {
    left: 74mm;
    top: 45mm;
    width: 108mm;
    height: 52mm;
    opacity: .92;
  }
  .gift-card-watercolor span {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
}

/* v2.9 selectable A6 gift message styles */
.gift-card-style-panel {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 22px;
  padding: 16px;
  box-shadow: 0 10px 28px rgba(39,31,61,.05);
}
.gift-card-style-panel h2 {
  margin: 0 0 10px;
}
.gift-card-style-panel p {
  margin: 10px 0 0;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}
.gift-card-style-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
}
.gift-card-style-grid button {
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fffaf5;
  color: var(--ink);
  padding: 10px 8px;
  font-weight: 950;
  font-size: 11px;
  letter-spacing: .04em;
  cursor: pointer;
}
.gift-card-style-grid button span {
  display: block;
  margin-bottom: 4px;
  color: #8d8494;
  font-size: 10px;
  letter-spacing: .12em;
}
.gift-card-style-grid button[aria-pressed="true"] {
  border-color: #d6c4ee;
  background: linear-gradient(135deg, #fff7dd, #fff0f7);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.7), 0 10px 20px rgba(39,31,61,.06);
}
.gift-card-style-brush .gift-card-message p {
  font-family: "Snell Roundhand", "Apple Chancery", "Segoe Script", "Lucida Handwriting", cursive;
  font-weight: 500;
  letter-spacing: 0;
}
.gift-card-style-paint .gift-card-message p {
  font-family: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
  font-weight: 500;
  letter-spacing:0;
}
.gift-card-style-bands .gift-card-message p {
  font-family: "Segoe Script", "Brush Script MT", "Lucida Handwriting", cursive;
  font-weight: 500;
  letter-spacing: 0;
}
.gift-card-style-paper .gift-card-message p {
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
  letter-spacing:0;
}
.gift-card-style-cloud .gift-card-message p {
  font-family: "Trebuchet MS", "Avenir Next", Arial, sans-serif;
  font-style: normal;
  font-weight: 750;
  letter-spacing:0;
}
.gift-card-style-paint .gift-card-watercolor {
  top: 48%;
  width: min(610px, 80%);
  height: 50%;
  transform: translate(-50%, -50%) rotate(-7deg);
}
.gift-card-style-paint .gift-card-watercolor span {
  height: 38%;
  border-radius: 42% 58% 45% 55% / 52% 36% 64% 44%;
  filter: blur(.15px) drop-shadow(0 4px 0 rgba(255,255,255,.16));
}
.gift-card-style-paint .gift-card-watercolor span:nth-child(1) {
  top: 4%;
  width: 90%;
  background: linear-gradient(90deg, transparent 0%, rgba(255,144,178,.30) 10%, rgba(255,190,203,.56) 40%, rgba(175,226,239,.42) 82%, transparent 100%);
  transform: translateX(-49%) rotate(-8deg);
}
.gift-card-style-paint .gift-card-watercolor span:nth-child(2) {
  top: 28%;
  width: 94%;
  background: linear-gradient(90deg, transparent 0%, rgba(177,226,240,.50) 12%, rgba(255,244,182,.52) 50%, rgba(249,171,191,.48) 86%, transparent 100%);
  transform: translateX(-51%) rotate(3deg);
}
.gift-card-style-paint .gift-card-watercolor span:nth-child(3) {
  top: 50%;
  width: 86%;
  background: linear-gradient(90deg, transparent 0%, rgba(255,210,128,.38) 8%, rgba(232,210,245,.50) 52%, rgba(178,235,239,.42) 88%, transparent 100%);
  transform: translateX(-47%) rotate(-2deg);
}
.gift-card-style-paint .gift-card-watercolor span:nth-child(4),
.gift-card-style-paint .gift-card-watercolor span:nth-child(5) {
  display: none;
}
.gift-card-style-bands .gift-card-watercolor {
  top: 50%;
  width: min(560px, 74%);
  height: 68%;
  transform: translate(-50%, -50%) rotate(0deg);
}
.gift-card-style-bands .gift-card-watercolor span {
  left: 50%;
  width: 92%;
  height: 16%;
  border-radius: 28% 18% 26% 16% / 52% 41% 48% 39%;
  filter: blur(.25px);
}
.gift-card-style-bands .gift-card-watercolor span::before,
.gift-card-style-bands .gift-card-watercolor span::after {
  opacity: .22;
}
.gift-card-style-bands .gift-card-watercolor span:nth-child(1) {
  top: 5%;
  background: linear-gradient(90deg, transparent, rgba(160,215,244,.46), rgba(160,215,244,.30), transparent);
  transform: translateX(-50%) rotate(-1deg);
}
.gift-card-style-bands .gift-card-watercolor span:nth-child(2) {
  top: 22%;
  background: linear-gradient(90deg, transparent, rgba(207,176,245,.42), rgba(222,195,247,.34), transparent);
  transform: translateX(-50%) rotate(1deg);
}
.gift-card-style-bands .gift-card-watercolor span:nth-child(3) {
  top: 39%;
  background: linear-gradient(90deg, transparent, rgba(255,198,203,.42), rgba(255,224,221,.32), transparent);
  transform: translateX(-50%) rotate(-1deg);
}
.gift-card-style-bands .gift-card-watercolor span:nth-child(4) {
  top: 56%;
  background: linear-gradient(90deg, transparent, rgba(162,235,217,.42), rgba(176,239,224,.32), transparent);
  transform: translateX(-50%) rotate(1.5deg);
}
.gift-card-style-bands .gift-card-watercolor span:nth-child(5) {
  top: 73%;
  background: linear-gradient(90deg, transparent, rgba(255,215,167,.40), rgba(231,226,217,.30), transparent);
  transform: translateX(-50%) rotate(-1deg);
}
.gift-card-style-paper .gift-card-watercolor {
  top: 49%;
  width: min(500px, 66%);
  height: 58%;
  border-radius: 2px;
  background:
    radial-gradient(circle at 18% 18%, rgba(249,193,204,.36), transparent 31%),
    radial-gradient(circle at 70% 26%, rgba(238,206,196,.30), transparent 32%),
    radial-gradient(circle at 64% 82%, rgba(101,133,103,.28), transparent 38%),
    radial-gradient(circle at 20% 80%, rgba(222,218,210,.34), transparent 32%),
    rgba(255,246,246,.62);
  box-shadow: inset 0 -10px 0 rgba(76,92,72,.14);
  opacity: .86;
  transform: translate(-50%, -50%) rotate(0deg);
}
.gift-card-style-paper .gift-card-watercolor span {
  display: none;
}
.gift-card-style-cloud .gift-card-watercolor {
  top: 48%;
  width: min(560px, 74%);
  height: 58%;
  background:
    radial-gradient(circle at 18% 24%, rgba(238,111,129,.24), transparent 34%),
    radial-gradient(circle at 44% 20%, rgba(169,217,232,.28), transparent 34%),
    radial-gradient(circle at 72% 28%, rgba(236,129,151,.22), transparent 35%),
    radial-gradient(circle at 30% 70%, rgba(255,205,156,.22), transparent 35%),
    radial-gradient(circle at 58% 72%, rgba(150,205,226,.25), transparent 36%),
    radial-gradient(circle at 83% 72%, rgba(189,169,230,.22), transparent 35%);
  opacity: .86;
  transform: translate(-50%, -50%) rotate(0deg);
}
.gift-card-style-cloud .gift-card-watercolor span {
  display: none;
}
@media (max-width: 640px) {
  .gift-card-style-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media print {
  .gift-card-style-panel {
    display: none !important;
  }
  .gift-card-style-paint .gift-card-watercolor {
    left: 74mm;
    top: 47mm;
    width: 114mm;
    height: 52mm;
  }
  .gift-card-style-bands .gift-card-watercolor {
    left: 74mm;
    top: 50mm;
    width: 106mm;
    height: 64mm;
  }
  .gift-card-style-paper .gift-card-watercolor {
    left: 74mm;
    top: 48mm;
    width: 96mm;
    height: 58mm;
  }
  .gift-card-style-cloud .gift-card-watercolor {
    left: 74mm;
    top: 48mm;
    width: 106mm;
    height: 60mm;
  }
}

/* v3.0 polished selectable A6 gift cards */
.gift-card-face {
  background: #fff !important;
}
.gift-card-inner {
  grid-template-rows: auto auto minmax(0, 1fr) auto;
  padding: 24px 36px 22px;
}
.gift-card-logo {
  width: 58px;
  height: 58px;
}
.gift-card-kicker {
  margin-top: 6px;
  color: #5f586b;
  font-family: Arial, "Helvetica Neue", sans-serif;
  font-size: 10px;
  font-weight: 950;
  letter-spacing: .18em;
}
.gift-card-message {
  align-self: stretch;
  margin: 4px 0 8px;
  z-index: 3;
}
.gift-card-message p {
  max-width: 620px;
  color: #2a2238;
  font-weight: 500;
  line-height: 1.1;
  letter-spacing: 0;
  text-wrap: balance;
  text-shadow: 0 1px 0 rgba(255,255,255,.72);
}
.gift-card-message-short .gift-card-message p {
  font-size: clamp(38px, 5.4vw, 54px);
}
.gift-card-message-medium .gift-card-message p {
  font-size: clamp(30px, 4.45vw, 44px);
}
.gift-card-message-long .gift-card-message p {
  font-size: clamp(22px, 3.45vw, 34px);
  line-height: 1.14;
  max-width: 650px;
}
.gift-card-watercolor {
  left: 50%;
  top: 46%;
  width: min(570px, 76%);
  height: 50%;
  opacity: .96;
  transform: translate(-50%, -50%);
  filter: saturate(1.04);
  overflow: visible;
}
.gift-card-watercolor::before,
.gift-card-watercolor::after {
  content: "";
  position: absolute;
  inset: 0;
  display: none;
  pointer-events: none;
}
.gift-card-watercolor span {
  display: block;
  height: 23%;
  border-radius: 38% 52% 43% 57% / 56% 38% 62% 42%;
  filter: blur(.25px);
  opacity: .84;
  mix-blend-mode: multiply;
}
.gift-card-watercolor span::before,
.gift-card-watercolor span::after {
  opacity: .22;
}
.gift-card-qr-block {
  width: min(410px, 66%);
  margin-left: 8px;
  grid-template-columns: 62px minmax(0, 1fr);
  gap: 10px;
  padding: 8px 10px;
  border-radius: 14px;
  background: rgba(255, 252, 247, .88);
  box-shadow: 0 8px 22px rgba(39,31,61,.045);
}
.gift-card-qr {
  width: 62px;
  height: 62px;
}
.gift-card-qr-block strong {
  font-size: 13px;
}
.gift-card-qr-block span {
  margin-top: 2px;
  font-size: 10.5px;
  line-height: 1.22;
}
.gift-card-style-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}
.gift-card-style-grid button {
  min-height: 52px;
}
.gift-card-style-brush .gift-card-message p {
  font-family: "Segoe Script", "Lucida Handwriting", "Brush Script MT", cursive !important;
  font-style: normal;
  font-weight: 500;
}
.gift-card-style-brush .gift-card-watercolor {
  transform: translate(-50%, -49%) rotate(-5deg);
}
.gift-card-style-brush .gift-card-watercolor span:nth-child(1) {
  top: 4%;
  width: 88%;
  background: linear-gradient(90deg, transparent 0%, rgba(245, 144, 174, .28) 8%, rgba(255, 197, 201, .50) 44%, rgba(255, 222, 197, .30) 78%, transparent 100%);
  transform: translateX(-48%) rotate(-7deg);
}
.gift-card-style-brush .gift-card-watercolor span:nth-child(2) {
  top: 20%;
  width: 82%;
  background: linear-gradient(90deg, transparent 0%, rgba(227, 209, 199, .24) 9%, rgba(192, 184, 174, .32) 45%, rgba(255, 214, 193, .26) 78%, transparent 100%);
  transform: translateX(-51%) rotate(3deg);
}
.gift-card-style-brush .gift-card-watercolor span:nth-child(3) {
  top: 37%;
  width: 92%;
  background: linear-gradient(90deg, transparent 0%, rgba(244, 159, 190, .24) 8%, rgba(244, 180, 197, .42) 48%, rgba(247, 218, 185, .30) 82%, transparent 100%);
  transform: translateX(-48%) rotate(-2deg);
}
.gift-card-style-brush .gift-card-watercolor span:nth-child(4) {
  top: 55%;
  width: 70%;
  background: linear-gradient(90deg, transparent 0%, rgba(216, 206, 193, .22) 8%, rgba(200, 186, 170, .32) 45%, rgba(239, 196, 180, .24) 80%, transparent 100%);
  transform: translateX(-43%) rotate(8deg);
}
.gift-card-style-brush .gift-card-watercolor span:nth-child(5) {
  top: 70%;
  width: 62%;
  background: linear-gradient(90deg, transparent 0%, rgba(238, 143, 181, .18) 10%, rgba(240, 162, 191, .28) 46%, rgba(232, 220, 207, .22) 80%, transparent 100%);
  transform: translateX(-56%) rotate(-10deg);
}
.gift-card-style-paint .gift-card-message p {
  font-family: Georgia, "Times New Roman", serif !important;
  font-style: italic;
  font-weight: 500;
}
.gift-card-style-paint .gift-card-watercolor {
  height: 47%;
  transform: translate(-50%, -48%) rotate(-4deg);
}
.gift-card-style-paint .gift-card-watercolor span:nth-child(1) {
  top: 4%;
  width: 86%;
  height: 29%;
  background: repeating-linear-gradient(172deg, rgba(255,255,255,.26) 0 3px, transparent 3px 8px), linear-gradient(90deg, transparent 0%, rgba(245, 137, 181, .44) 8%, rgba(172, 229, 241, .48) 75%, transparent 100%);
  transform: translateX(-48%) rotate(-8deg);
}
.gift-card-style-paint .gift-card-watercolor span:nth-child(2) {
  top: 28%;
  width: 94%;
  height: 32%;
  background: repeating-linear-gradient(170deg, rgba(255,255,255,.23) 0 2px, transparent 2px 7px), linear-gradient(90deg, transparent 0%, rgba(183, 232, 242, .48) 9%, rgba(255, 232, 150, .46) 46%, rgba(249, 170, 198, .48) 86%, transparent 100%);
  transform: translateX(-52%) rotate(2deg);
}
.gift-card-style-paint .gift-card-watercolor span:nth-child(3) {
  top: 51%;
  width: 80%;
  height: 28%;
  background: repeating-linear-gradient(168deg, rgba(255,255,255,.23) 0 2px, transparent 2px 8px), linear-gradient(90deg, transparent 0%, rgba(225, 210, 246, .45) 10%, rgba(179, 237, 230, .38) 82%, transparent 100%);
  transform: translateX(-47%) rotate(-1deg);
}
.gift-card-style-paint .gift-card-watercolor span:nth-child(4),
.gift-card-style-paint .gift-card-watercolor span:nth-child(5) {
  display: none;
}
.gift-card-style-bands .gift-card-message p {
  font-family: "Lucida Handwriting", "Segoe Script", "Brush Script MT", cursive !important;
  font-style: normal;
  font-weight: 500;
}
.gift-card-style-bands .gift-card-watercolor {
  height: 64%;
  transform: translate(-50%, -50%);
}
.gift-card-style-bands .gift-card-watercolor span {
  width: 88%;
  height: 14%;
  border-radius: 22% 12% 20% 12% / 55% 40% 58% 42%;
}
.gift-card-style-bands .gift-card-watercolor span:nth-child(1) {
  top: 8%;
  background: linear-gradient(90deg, transparent, rgba(157, 217, 244, .42), rgba(157, 217, 244, .22), transparent);
  transform: translateX(-50%) rotate(-1deg);
}
.gift-card-style-bands .gift-card-watercolor span:nth-child(2) {
  top: 25%;
  background: linear-gradient(90deg, transparent, rgba(214, 185, 245, .38), rgba(226, 199, 247, .28), transparent);
  transform: translateX(-49%) rotate(1deg);
}
.gift-card-style-bands .gift-card-watercolor span:nth-child(3) {
  top: 42%;
  background: linear-gradient(90deg, transparent, rgba(255, 196, 205, .40), rgba(255, 222, 220, .25), transparent);
  transform: translateX(-51%) rotate(-1deg);
}
.gift-card-style-bands .gift-card-watercolor span:nth-child(4) {
  top: 59%;
  background: linear-gradient(90deg, transparent, rgba(167, 235, 219, .39), rgba(186, 241, 227, .25), transparent);
  transform: translateX(-50%) rotate(1.5deg);
}
.gift-card-style-bands .gift-card-watercolor span:nth-child(5) {
  top: 76%;
  background: linear-gradient(90deg, transparent, rgba(255, 216, 168, .34), rgba(236, 226, 212, .24), transparent);
  transform: translateX(-49%) rotate(-1deg);
}
.gift-card-style-paper .gift-card-message p {
  font-family: Garamond, "Times New Roman", serif !important;
  font-style: italic;
  font-weight: 500;
}
.gift-card-style-paper .gift-card-watercolor {
  width: min(500px, 66%);
  height: 55%;
  border-radius: 8px;
  background:
    radial-gradient(circle at 18% 18%, rgba(247, 183, 198, .34), transparent 31%),
    radial-gradient(circle at 70% 25%, rgba(230, 200, 190, .28), transparent 34%),
    radial-gradient(circle at 65% 82%, rgba(112, 139, 111, .25), transparent 39%),
    radial-gradient(circle at 20% 78%, rgba(226, 222, 212, .32), transparent 34%),
    rgba(255, 247, 247, .42);
  box-shadow: inset 0 -8px 0 rgba(76,92,72,.10);
  clip-path: polygon(1% 3%, 98% 0, 100% 94%, 96% 99%, 3% 96%, 0 8%);
  transform: translate(-50%, -49%) rotate(-1deg);
}
.gift-card-style-paper .gift-card-watercolor span {
  display: none;
}
.gift-card-style-cloud .gift-card-message p {
  font-family: Corbel, Candara, "Trebuchet MS", Arial, sans-serif !important;
  font-style: normal;
  font-weight: 500;
  letter-spacing:0;
}
.gift-card-style-cloud .gift-card-watercolor {
  width: min(550px, 72%);
  height: 58%;
  background:
    radial-gradient(circle at 18% 24%, rgba(238, 111, 129, .21), transparent 34%),
    radial-gradient(circle at 44% 20%, rgba(169, 217, 232, .26), transparent 34%),
    radial-gradient(circle at 72% 28%, rgba(236, 129, 151, .19), transparent 35%),
    radial-gradient(circle at 30% 70%, rgba(255, 205, 156, .20), transparent 35%),
    radial-gradient(circle at 58% 72%, rgba(150, 205, 226, .22), transparent 36%),
    radial-gradient(circle at 83% 72%, rgba(189, 169, 230, .19), transparent 35%);
  transform: translate(-50%, -50%);
}
.gift-card-style-cloud .gift-card-watercolor span {
  display: none;
}
.gift-card-style-vellum .gift-card-message p {
  font-family: "Baskerville Old Face", Baskerville, Georgia, serif !important;
  font-style: italic;
  font-weight: 400;
}
.gift-card-style-vellum .gift-card-watercolor {
  width: min(545px, 72%);
  height: 50%;
  border: 1px solid rgba(205, 184, 143, .28);
  border-radius: 34px;
  background:
    linear-gradient(115deg, transparent 4%, rgba(255, 238, 189, .30) 17%, rgba(255, 247, 224, .20) 44%, rgba(246, 201, 217, .18) 74%, transparent 96%),
    radial-gradient(circle at 24% 45%, rgba(255, 225, 149, .24), transparent 38%);
  transform: translate(-50%, -48%) rotate(-.8deg);
}
.gift-card-style-vellum .gift-card-watercolor span {
  display: none;
}
.gift-card-style-petal .gift-card-message p {
  font-family: "Brush Script MT", "Segoe Script", cursive !important;
  font-style: normal;
  font-weight: 500;
}
.gift-card-style-petal .gift-card-watercolor {
  width: min(560px, 74%);
  height: 58%;
  background:
    radial-gradient(ellipse at 19% 20%, rgba(255, 158, 183, .27), transparent 19%),
    radial-gradient(ellipse at 31% 34%, rgba(255, 217, 120, .20), transparent 18%),
    radial-gradient(ellipse at 78% 25%, rgba(142, 220, 232, .20), transparent 20%),
    radial-gradient(ellipse at 66% 72%, rgba(211, 180, 244, .22), transparent 20%),
    radial-gradient(ellipse at 27% 74%, rgba(255, 184, 204, .19), transparent 20%);
  transform: translate(-50%, -49%) rotate(1deg);
}
.gift-card-style-petal .gift-card-watercolor span {
  display: none;
}
.gift-card-style-sunrise .gift-card-message p {
  font-family: "Book Antiqua", Palatino, Georgia, serif !important;
  font-style: italic;
  font-weight: 500;
}
.gift-card-style-sunrise .gift-card-watercolor {
  height: 52%;
  transform: translate(-50%, -48%) rotate(-8deg);
}
.gift-card-style-sunrise .gift-card-watercolor span:nth-child(1) {
  top: 6%;
  width: 86%;
  background: linear-gradient(90deg, transparent 0%, rgba(255, 200, 92, .28) 8%, rgba(255, 154, 121, .34) 48%, rgba(255, 205, 175, .20) 82%, transparent 100%);
  transform: translateX(-50%) rotate(-5deg);
}
.gift-card-style-sunrise .gift-card-watercolor span:nth-child(2) {
  top: 24%;
  width: 92%;
  background: linear-gradient(90deg, transparent 0%, rgba(255, 224, 132, .30) 8%, rgba(249, 172, 122, .35) 55%, rgba(239, 142, 170, .24) 86%, transparent 100%);
  transform: translateX(-49%) rotate(4deg);
}
.gift-card-style-sunrise .gift-card-watercolor span:nth-child(3) {
  top: 44%;
  width: 78%;
  background: linear-gradient(90deg, transparent 0%, rgba(241, 156, 191, .24) 8%, rgba(251, 203, 169, .28) 48%, rgba(255, 237, 173, .20) 80%, transparent 100%);
  transform: translateX(-46%) rotate(-2deg);
}
.gift-card-style-sunrise .gift-card-watercolor span:nth-child(4) {
  top: 63%;
  width: 62%;
  background: linear-gradient(90deg, transparent 0%, rgba(244, 196, 148, .20) 10%, rgba(255, 221, 154, .22) 55%, transparent 100%);
  transform: translateX(-58%) rotate(7deg);
}
.gift-card-style-sunrise .gift-card-watercolor span:nth-child(5) {
  display: none;
}
.gift-card-style-lavender .gift-card-message p {
  font-family: Constantia, Georgia, serif !important;
  font-style: italic;
  font-weight: 500;
}
.gift-card-style-lavender .gift-card-watercolor {
  height: 52%;
  transform: translate(-50%, -48%) rotate(5deg);
}
.gift-card-style-lavender .gift-card-watercolor span:nth-child(1) {
  top: 6%;
  width: 88%;
  background: linear-gradient(90deg, transparent 0%, rgba(196, 177, 244, .30) 8%, rgba(216, 197, 247, .38) 52%, rgba(169, 220, 237, .22) 86%, transparent 100%);
  transform: translateX(-50%) rotate(4deg);
}
.gift-card-style-lavender .gift-card-watercolor span:nth-child(2) {
  top: 25%;
  width: 78%;
  background: linear-gradient(90deg, transparent 0%, rgba(168, 223, 240, .28) 10%, rgba(226, 198, 246, .35) 58%, rgba(255, 191, 210, .18) 86%, transparent 100%);
  transform: translateX(-47%) rotate(-5deg);
}
.gift-card-style-lavender .gift-card-watercolor span:nth-child(3) {
  top: 43%;
  width: 92%;
  background: linear-gradient(90deg, transparent 0%, rgba(233, 196, 246, .24) 8%, rgba(194, 180, 240, .34) 51%, rgba(255, 221, 237, .19) 86%, transparent 100%);
  transform: translateX(-50%) rotate(2deg);
}
.gift-card-style-lavender .gift-card-watercolor span:nth-child(4) {
  top: 62%;
  width: 68%;
  background: linear-gradient(90deg, transparent 0%, rgba(201, 229, 242, .22) 8%, rgba(210, 190, 239, .24) 55%, transparent 100%);
  transform: translateX(-56%) rotate(-8deg);
}
.gift-card-style-lavender .gift-card-watercolor span:nth-child(5) {
  display: none;
}
.gift-card-style-editorial .gift-card-message p {
  font-family: Cambria, Georgia, serif !important;
  font-style: italic;
  font-weight: 500;
  letter-spacing:0;
}
.gift-card-style-editorial .gift-card-watercolor {
  width: min(540px, 71%);
  height: 54%;
  border-radius: 28px;
  background:
    linear-gradient(90deg, rgba(255, 248, 234, .34), rgba(255,255,255,.10), rgba(255, 241, 249, .28)),
    radial-gradient(circle at 10% 20%, rgba(255, 214, 110, .20), transparent 26%),
    radial-gradient(circle at 90% 28%, rgba(241, 137, 183, .18), transparent 28%),
    radial-gradient(circle at 50% 88%, rgba(160, 219, 237, .18), transparent 28%);
  transform: translate(-50%, -49%);
}
.gift-card-style-editorial .gift-card-watercolor span {
  display: none;
}
@media (max-width: 640px) {
  .gift-card-style-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .gift-card-qr-block {
    width: 78%;
    grid-template-columns: 58px minmax(0, 1fr);
  }
  .gift-card-qr {
    width: 58px;
    height: 58px;
  }
  .gift-card-message-short .gift-card-message p,
  .gift-card-message-medium .gift-card-message p {
    font-size: 31px;
  }
  .gift-card-message-long .gift-card-message p {
    font-size: 24px;
  }
}
@media print {
  .gift-card-inner {
    padding: 6mm 9mm 6mm;
  }
  .gift-card-logo {
    width: 15mm;
    height: 15mm;
  }
  .gift-card-kicker {
    margin-top: 1.5mm;
    font-size: 6.5pt;
  }
  .gift-card-message {
    margin: 1mm 0 2mm;
  }
  .gift-card-message-short .gift-card-message p {
    font-size: 31pt;
    max-width: 112mm;
  }
  .gift-card-message-medium .gift-card-message p {
    font-size: 23pt;
    max-width: 116mm;
  }
  .gift-card-message-long .gift-card-message p {
    font-size: 17pt;
    max-width: 120mm;
  }
  .gift-card-qr-block {
    width: 82mm;
    grid-template-columns: 16mm 1fr;
    gap: 2.5mm;
    padding: 2mm 2.5mm;
    margin-left: 0;
  }
  .gift-card-qr {
    width: 16mm;
    height: 16mm;
  }
  .gift-card-qr-block strong {
    font-size: 7.4pt;
  }
  .gift-card-qr-block span {
    font-size: 5.9pt;
    line-height: 1.18;
  }
  .gift-card-watercolor,
  .gift-card-style-brush .gift-card-watercolor,
  .gift-card-style-paint .gift-card-watercolor,
  .gift-card-style-bands .gift-card-watercolor,
  .gift-card-style-paper .gift-card-watercolor,
  .gift-card-style-cloud .gift-card-watercolor,
  .gift-card-style-vellum .gift-card-watercolor,
  .gift-card-style-petal .gift-card-watercolor,
  .gift-card-style-sunrise .gift-card-watercolor,
  .gift-card-style-lavender .gift-card-watercolor,
  .gift-card-style-editorial .gift-card-watercolor {
    left: 74mm;
    top: 45mm;
    width: 104mm;
    height: 50mm;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
  .gift-card-watercolor span,
  .gift-card-watercolor::before,
  .gift-card-watercolor::after {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
}

/* v3.1 stronger A6 style separation */
.gift-card-style-brush .gift-card-message p {
  font-family: "Segoe Script", "Lucida Handwriting", "Brush Script MT", cursive !important;
}
.gift-card-style-paint .gift-card-message p {
  font-family: Georgia, "Times New Roman", serif !important;
  font-weight: 600;
}
.gift-card-style-bands .gift-card-message p {
  font-family: "Lucida Handwriting", "Segoe Script", cursive !important;
}
.gift-card-style-paper .gift-card-message p {
  font-family: "High Tower Text", Garamond, Georgia, serif !important;
  font-style: normal;
  font-weight: 500;
  letter-spacing: .01em;
}
.gift-card-style-cloud .gift-card-message p {
  font-family: "Segoe Print", "Comic Sans MS", "Trebuchet MS", sans-serif !important;
  font-style: normal;
  font-weight: 400;
  letter-spacing:0;
  line-height: 1.18;
}
.gift-card-style-vellum .gift-card-message p {
  font-family: "Baskerville Old Face", Baskerville, Georgia, serif !important;
  font-style: italic;
  font-weight: 500;
}
.gift-card-style-petal .gift-card-message p {
  font-family: "Brush Script MT", "Segoe Script", cursive !important;
}
.gift-card-style-sunrise .gift-card-message p {
  font-family: "Book Antiqua", Palatino, Georgia, serif !important;
}
.gift-card-style-lavender .gift-card-message p {
  font-family: Constantia, Georgia, serif !important;
}
.gift-card-style-editorial .gift-card-message p {
  font-family: "Century Gothic", "Avenir Next", Arial, sans-serif !important;
  font-style: normal;
  font-weight: 400;
  letter-spacing:0;
  line-height: 1.12;
}
.gift-card-style-paper .gift-card-watercolor {
  width: min(560px, 74%);
  height: 60%;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  clip-path: none;
  background:
    radial-gradient(ellipse at 18% 22%, rgba(247, 157, 181, .28), transparent 28%),
    radial-gradient(ellipse at 78% 24%, rgba(255, 211, 142, .24), transparent 26%),
    radial-gradient(ellipse at 35% 74%, rgba(176, 203, 165, .26), transparent 30%),
    radial-gradient(ellipse at 70% 78%, rgba(155, 213, 230, .22), transparent 29%);
  transform: translate(-50%, -49%) rotate(-2deg);
}
.gift-card-style-paper .gift-card-watercolor::before,
.gift-card-style-paper .gift-card-watercolor::after {
  display: block;
}
.gift-card-style-paper .gift-card-watercolor::before {
  inset: 14% 8% 28% 5%;
  border-radius: 58% 42% 55% 45% / 42% 60% 40% 58%;
  background: linear-gradient(95deg, transparent, rgba(255, 238, 224, .34), rgba(236, 247, 232, .20), transparent);
  transform: rotate(-8deg);
}
.gift-card-style-paper .gift-card-watercolor::after {
  inset: 44% 12% 16% 18%;
  border-radius: 48% 52% 42% 58% / 62% 39% 61% 38%;
  background: linear-gradient(90deg, transparent, rgba(244, 196, 214, .24), rgba(184, 225, 213, .22), transparent);
  transform: rotate(7deg);
}
.gift-card-style-paper .gift-card-watercolor span {
  display: none;
}
.gift-card-style-cloud .gift-card-watercolor {
  width: min(555px, 73%);
  height: 60%;
  border-radius: 0;
  background:
    radial-gradient(ellipse at 12% 24%, rgba(242, 106, 162, .20), transparent 16%),
    radial-gradient(ellipse at 24% 17%, rgba(255, 205, 55, .22), transparent 15%),
    radial-gradient(ellipse at 37% 25%, rgba(139, 86, 223, .18), transparent 15%),
    radial-gradient(ellipse at 84% 28%, rgba(28, 169, 183, .17), transparent 18%),
    linear-gradient(180deg, transparent 0 34%, rgba(255, 250, 241, .42) 35% 66%, transparent 67% 100%);
  transform: translate(-50%, -50%) rotate(0deg);
}
.gift-card-style-cloud .gift-card-watercolor::before {
  display: block;
  inset: 16% 4% 18% 48%;
  border-radius: 62% 38% 48% 52% / 58% 40% 60% 42%;
  background: radial-gradient(ellipse at 50% 50%, rgba(169, 217, 232, .28), transparent 65%);
}
.gift-card-style-cloud .gift-card-watercolor::after {
  display: block;
  inset: 56% 16% 8% 3%;
  border-radius: 999px;
  background: linear-gradient(90deg, transparent, rgba(255, 225, 160, .22), rgba(244, 177, 201, .16), transparent);
  transform: rotate(-3deg);
}
.gift-card-style-cloud .gift-card-watercolor span {
  display: none;
}
.gift-card-style-vellum .gift-card-watercolor {
  width: min(575px, 76%);
  height: 60%;
  border: 0;
  border-radius: 0;
  background: none;
  transform: translate(-50%, -50%) rotate(-1deg);
}
.gift-card-style-vellum .gift-card-watercolor::before,
.gift-card-style-vellum .gift-card-watercolor::after {
  display: block;
}
.gift-card-style-vellum .gift-card-watercolor::before {
  inset: 4% 8% 18% 6%;
  border-radius: 999px;
  background: linear-gradient(105deg, transparent 0%, rgba(255, 226, 122, .22) 14%, rgba(255, 250, 241, .48) 43%, rgba(242, 106, 162, .18) 75%, transparent 100%);
  transform: rotate(-8deg);
}
.gift-card-style-vellum .gift-card-watercolor::after {
  inset: 40% 2% 14% 14%;
  border-radius: 999px;
  background: linear-gradient(100deg, transparent 0%, rgba(144, 219, 228, .18) 20%, rgba(255, 244, 210, .28) 50%, rgba(139, 86, 223, .14) 78%, transparent 100%);
  transform: rotate(6deg);
}
.gift-card-style-vellum .gift-card-watercolor span {
  display: none;
}
.gift-card-style-editorial .gift-card-watercolor {
  width: min(535px, 71%);
  height: 58%;
  border-radius: 0;
  background:
    linear-gradient(90deg, rgba(255, 205, 55, .14), transparent 26%, transparent 73%, rgba(242, 106, 162, .14)),
    linear-gradient(180deg, transparent 0 24%, rgba(255, 250, 241, .46) 25% 75%, transparent 76% 100%);
  transform: translate(-50%, -50%);
}
.gift-card-style-editorial .gift-card-watercolor::before {
  display: block;
  inset: 10% 72% 10% 0;
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(242, 106, 162, .30), rgba(255, 205, 55, .26), rgba(28, 169, 183, .18));
}
.gift-card-style-editorial .gift-card-watercolor::after {
  display: block;
  inset: 18% 0 18% 74%;
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(139, 86, 223, .20), rgba(242, 106, 162, .20));
}
.gift-card-style-editorial .gift-card-watercolor span {
  display: none;
}
.gift-card-style-petal .gift-card-watercolor {
  background:
    radial-gradient(ellipse at 16% 20%, rgba(242, 106, 162, .30), transparent 18%),
    radial-gradient(ellipse at 28% 36%, rgba(255, 205, 55, .24), transparent 16%),
    radial-gradient(ellipse at 82% 24%, rgba(28, 169, 183, .22), transparent 17%),
    radial-gradient(ellipse at 68% 70%, rgba(139, 86, 223, .20), transparent 18%),
    radial-gradient(ellipse at 30% 78%, rgba(255, 149, 96, .18), transparent 18%);
}
.gift-card-style-lavender .gift-card-watercolor {
  width: min(580px, 76%);
}
.gift-card-style-sunrise .gift-card-watercolor {
  width: min(590px, 78%);
}
@media print {
  .gift-card-style-paper .gift-card-watercolor,
  .gift-card-style-cloud .gift-card-watercolor,
  .gift-card-style-vellum .gift-card-watercolor,
  .gift-card-style-editorial .gift-card-watercolor {
    left: 74mm;
    top: 45mm;
    width: 106mm;
    height: 56mm;
  }
}

/* v3.2 editorial cleanup */
.gift-card-style-editorial .gift-card-message p {
  font-family: "Century Gothic", "Avenir Next", Arial, sans-serif !important;
  font-style: normal;
  font-weight: 400;
  letter-spacing:0;
  line-height: 1.14;
  max-width: 570px;
}
.gift-card-style-editorial .gift-card-watercolor {
  width: min(535px, 71%);
  height: 58%;
  background:
    linear-gradient(90deg, rgba(255, 205, 55, .10), transparent 28%, transparent 72%, rgba(242, 106, 162, .10)),
    linear-gradient(180deg, transparent 0 27%, rgba(255, 250, 241, .50) 28% 72%, transparent 73% 100%);
}
.gift-card-style-editorial .gift-card-watercolor::before {
  inset: 18% 78% 18% 4%;
  background: linear-gradient(180deg, rgba(242, 106, 162, .24), rgba(255, 205, 55, .20), rgba(28, 169, 183, .14));
}
.gift-card-style-editorial .gift-card-watercolor::after {
  inset: 22% 5% 22% 80%;
  background: linear-gradient(180deg, rgba(139, 86, 223, .16), rgba(242, 106, 162, .16));
}

/* v3.3 anti-crop safety for wide/script variants */
.gift-card-message,
.gift-card-message p {
  overflow: visible;
}
.gift-card-face.gift-card-style-paper .gift-card-message p,
.gift-card-face.gift-card-style-cloud .gift-card-message p,
.gift-card-face.gift-card-style-petal .gift-card-message p,
.gift-card-face.gift-card-style-editorial .gift-card-message p {
  box-sizing: border-box;
  max-width: 540px;
  padding: 0 22px;
}
.gift-card-face.gift-card-style-paper.gift-card-message-short .gift-card-message p,
.gift-card-face.gift-card-style-editorial.gift-card-message-short .gift-card-message p {
  font-size: clamp(34px, 4.7vw, 46px);
}
.gift-card-face.gift-card-style-cloud.gift-card-message-short .gift-card-message p {
  font-size: clamp(31px, 4.35vw, 42px);
  line-height: 1.24;
}
.gift-card-face.gift-card-style-petal.gift-card-message-short .gift-card-message p {
  font-size: clamp(32px, 4.45vw, 43px);
  line-height: 1.23;
}
.gift-card-face.gift-card-style-paper.gift-card-message-medium .gift-card-message p,
.gift-card-face.gift-card-style-cloud.gift-card-message-medium .gift-card-message p,
.gift-card-face.gift-card-style-petal.gift-card-message-medium .gift-card-message p,
.gift-card-face.gift-card-style-editorial.gift-card-message-medium .gift-card-message p {
  font-size: clamp(25px, 3.7vw, 36px);
  line-height: 1.22;
}
.gift-card-face.gift-card-style-paper.gift-card-message-long .gift-card-message p,
.gift-card-face.gift-card-style-cloud.gift-card-message-long .gift-card-message p,
.gift-card-face.gift-card-style-petal.gift-card-message-long .gift-card-message p,
.gift-card-face.gift-card-style-editorial.gift-card-message-long .gift-card-message p {
  font-size: clamp(19px, 2.9vw, 28px);
  line-height: 1.24;
  max-width: 580px;
}
@media print {
  .gift-card-face.gift-card-style-paper .gift-card-message p,
  .gift-card-face.gift-card-style-cloud .gift-card-message p,
  .gift-card-face.gift-card-style-petal .gift-card-message p,
  .gift-card-face.gift-card-style-editorial .gift-card-message p {
    max-width: 105mm;
    padding: 0 6mm;
  }
  .gift-card-face.gift-card-style-paper.gift-card-message-short .gift-card-message p,
  .gift-card-face.gift-card-style-editorial.gift-card-message-short .gift-card-message p {
    font-size: 26pt;
  }
  .gift-card-face.gift-card-style-cloud.gift-card-message-short .gift-card-message p,
  .gift-card-face.gift-card-style-petal.gift-card-message-short .gift-card-message p {
    font-size: 24pt;
    line-height: 1.22;
  }
  .gift-card-face.gift-card-style-paper.gift-card-message-medium .gift-card-message p,
  .gift-card-face.gift-card-style-cloud.gift-card-message-medium .gift-card-message p,
  .gift-card-face.gift-card-style-petal.gift-card-message-medium .gift-card-message p,
  .gift-card-face.gift-card-style-editorial.gift-card-message-medium .gift-card-message p {
    font-size: 20pt;
    line-height: 1.22;
  }
  .gift-card-face.gift-card-style-paper.gift-card-message-long .gift-card-message p,
  .gift-card-face.gift-card-style-cloud.gift-card-message-long .gift-card-message p,
  .gift-card-face.gift-card-style-petal.gift-card-message-long .gift-card-message p,
  .gift-card-face.gift-card-style-editorial.gift-card-message-long .gift-card-message p {
    font-size: 15.5pt;
    line-height: 1.24;
  }
}

/* v3.4 remove hard watercolor edges and fix the small script card */
.gift-card-face.gift-card-style-paper .gift-card-watercolor,
.gift-card-face.gift-card-style-cloud .gift-card-watercolor,
.gift-card-face.gift-card-style-editorial .gift-card-watercolor {
  overflow: visible;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  clip-path: none;
}

.gift-card-face.gift-card-style-paper .gift-card-watercolor::before,
.gift-card-face.gift-card-style-paper .gift-card-watercolor::after,
.gift-card-face.gift-card-style-cloud .gift-card-watercolor::before,
.gift-card-face.gift-card-style-cloud .gift-card-watercolor::after,
.gift-card-face.gift-card-style-editorial .gift-card-watercolor::before,
.gift-card-face.gift-card-style-editorial .gift-card-watercolor::after,
.gift-card-face.gift-card-style-paper .gift-card-watercolor span,
.gift-card-face.gift-card-style-cloud .gift-card-watercolor span,
.gift-card-face.gift-card-style-editorial .gift-card-watercolor span {
  display: none !important;
}

.gift-card-face.gift-card-style-paper .gift-card-watercolor {
  width: min(630px, 84%);
  height: 66%;
  background:
    radial-gradient(ellipse at 19% 29%, rgba(242, 106, 162, .18), transparent 35%),
    radial-gradient(ellipse at 81% 24%, rgba(255, 205, 55, .17), transparent 36%),
    radial-gradient(ellipse at 42% 72%, rgba(28, 169, 183, .13), transparent 38%),
    radial-gradient(ellipse at 69% 69%, rgba(139, 86, 223, .10), transparent 36%);
  transform: translate(-50%, -50%) rotate(-2deg);
}

.gift-card-face.gift-card-style-cloud .gift-card-watercolor {
  width: min(640px, 86%);
  height: 68%;
  background:
    radial-gradient(ellipse at 17% 24%, rgba(242, 106, 162, .15), transparent 34%),
    radial-gradient(ellipse at 32% 20%, rgba(255, 205, 55, .14), transparent 31%),
    radial-gradient(ellipse at 44% 26%, rgba(139, 86, 223, .12), transparent 32%),
    radial-gradient(ellipse at 78% 29%, rgba(28, 169, 183, .14), transparent 36%),
    radial-gradient(ellipse at 40% 72%, rgba(255, 205, 55, .10), transparent 37%),
    radial-gradient(ellipse at 56% 70%, rgba(242, 106, 162, .09), transparent 37%);
  transform: translate(-50%, -50%);
}

.gift-card-face.gift-card-style-editorial .gift-card-watercolor {
  width: min(640px, 86%);
  height: 68%;
  background:
    radial-gradient(ellipse at 19% 45%, rgba(255, 205, 55, .16), transparent 35%),
    radial-gradient(ellipse at 81% 43%, rgba(242, 106, 162, .15), transparent 35%),
    radial-gradient(ellipse at 50% 68%, rgba(28, 169, 183, .10), transparent 38%);
  transform: translate(-50%, -50%);
}

.gift-card-style-petal .gift-card-message p {
  font-family: "Lucida Calligraphy", "Segoe Script", "Lucida Handwriting", cursive !important;
  font-weight: 500;
  letter-spacing: 0;
}

.gift-card-face.gift-card-style-petal .gift-card-message p {
  max-width: 640px;
  padding: 0 8px;
}

.gift-card-face.gift-card-style-petal.gift-card-message-short .gift-card-message p {
  font-size: clamp(40px, 5.7vw, 56px);
  line-height: 1.16;
}

.gift-card-face.gift-card-style-petal.gift-card-message-medium .gift-card-message p {
  font-size: clamp(30px, 4.4vw, 43px);
  line-height: 1.18;
}

.gift-card-face.gift-card-style-petal.gift-card-message-long .gift-card-message p {
  font-size: clamp(23px, 3.3vw, 32px);
  line-height: 1.22;
}

@media print {
  .gift-card-face.gift-card-style-paper .gift-card-watercolor,
  .gift-card-face.gift-card-style-cloud .gift-card-watercolor,
  .gift-card-face.gift-card-style-editorial .gift-card-watercolor {
    left: 74mm;
    top: 45mm;
    width: 118mm;
    height: 62mm;
  }

  .gift-card-face.gift-card-style-petal .gift-card-message p {
    max-width: 116mm;
    padding: 0 2mm;
  }

  .gift-card-face.gift-card-style-petal.gift-card-message-short .gift-card-message p {
    font-size: 30pt;
    line-height: 1.16;
  }

  .gift-card-face.gift-card-style-petal.gift-card-message-medium .gift-card-message p {
    font-size: 23pt;
    line-height: 1.18;
  }

  .gift-card-face.gift-card-style-petal.gift-card-message-long .gift-card-message p {
    font-size: 17pt;
    line-height: 1.22;
  }
}

/* v3.5 edge-proof watercolor fields for styles 04, 05, and 10 */
.gift-card-face.gift-card-style-paper .gift-card-watercolor,
.gift-card-face.gift-card-style-cloud .gift-card-watercolor,
.gift-card-face.gift-card-style-editorial .gift-card-watercolor {
  background-repeat: no-repeat;
  -webkit-mask-image: none;
  mask-image: none;
}

.gift-card-face.gift-card-style-paper .gift-card-watercolor {
  background:
    radial-gradient(ellipse 30% 24% at 26% 35%, rgba(242, 106, 162, .18) 0%, transparent 72%),
    radial-gradient(ellipse 30% 25% at 72% 35%, rgba(255, 205, 55, .17) 0%, transparent 72%),
    radial-gradient(ellipse 32% 26% at 44% 66%, rgba(28, 169, 183, .13) 0%, transparent 72%),
    radial-gradient(ellipse 30% 24% at 67% 65%, rgba(139, 86, 223, .10) 0%, transparent 74%);
}

.gift-card-face.gift-card-style-cloud .gift-card-watercolor {
  background:
    radial-gradient(ellipse 22% 18% at 22% 30%, rgba(242, 106, 162, .15) 0%, transparent 72%),
    radial-gradient(ellipse 20% 17% at 36% 29%, rgba(255, 205, 55, .14) 0%, transparent 72%),
    radial-gradient(ellipse 22% 18% at 50% 32%, rgba(139, 86, 223, .12) 0%, transparent 72%),
    radial-gradient(ellipse 26% 20% at 76% 34%, rgba(28, 169, 183, .14) 0%, transparent 74%),
    radial-gradient(ellipse 28% 22% at 43% 68%, rgba(255, 205, 55, .10) 0%, transparent 74%),
    radial-gradient(ellipse 28% 22% at 58% 68%, rgba(242, 106, 162, .09) 0%, transparent 74%);
}

.gift-card-face.gift-card-style-editorial .gift-card-watercolor {
  background:
    radial-gradient(ellipse 27% 29% at 24% 52%, rgba(255, 205, 55, .16) 0%, transparent 74%),
    radial-gradient(ellipse 27% 29% at 76% 52%, rgba(242, 106, 162, .15) 0%, transparent 74%),
    radial-gradient(ellipse 34% 26% at 50% 68%, rgba(28, 169, 183, .10) 0%, transparent 75%);
}

@media print {
  .gift-card-face.gift-card-style-paper .gift-card-watercolor {
    background:
      radial-gradient(ellipse 30% 24% at 26% 35%, rgba(242, 106, 162, .18) 0%, transparent 72%),
      radial-gradient(ellipse 30% 25% at 72% 35%, rgba(255, 205, 55, .17) 0%, transparent 72%),
      radial-gradient(ellipse 32% 26% at 44% 66%, rgba(28, 169, 183, .13) 0%, transparent 72%),
      radial-gradient(ellipse 30% 24% at 67% 65%, rgba(139, 86, 223, .10) 0%, transparent 74%);
  }

  .gift-card-face.gift-card-style-cloud .gift-card-watercolor {
    background:
      radial-gradient(ellipse 22% 18% at 22% 30%, rgba(242, 106, 162, .15) 0%, transparent 72%),
      radial-gradient(ellipse 20% 17% at 36% 29%, rgba(255, 205, 55, .14) 0%, transparent 72%),
      radial-gradient(ellipse 22% 18% at 50% 32%, rgba(139, 86, 223, .12) 0%, transparent 72%),
      radial-gradient(ellipse 26% 20% at 76% 34%, rgba(28, 169, 183, .14) 0%, transparent 74%),
      radial-gradient(ellipse 28% 22% at 43% 68%, rgba(255, 205, 55, .10) 0%, transparent 74%),
      radial-gradient(ellipse 28% 22% at 58% 68%, rgba(242, 106, 162, .09) 0%, transparent 74%);
  }

  .gift-card-face.gift-card-style-editorial .gift-card-watercolor {
    background:
      radial-gradient(ellipse 27% 29% at 24% 52%, rgba(255, 205, 55, .16) 0%, transparent 74%),
      radial-gradient(ellipse 27% 29% at 76% 52%, rgba(242, 106, 162, .15) 0%, transparent 74%),
      radial-gradient(ellipse 34% 26% at 50% 68%, rgba(28, 169, 183, .10) 0%, transparent 75%);
  }
}

/* v3.6 Uber, reminder QR, business cards, and mobile polish */
.integration-card {
  display: grid;
  gap: 10px;
}
.integration-row {
  display: grid;
  grid-template-columns: 130px 1fr auto;
  gap: 8px 12px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 12px;
  background: #fffaf5;
}
.integration-row span {
  color: var(--muted);
  font-size: 11px;
  font-weight: 950;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.integration-row strong {
  color: var(--ink);
}
.integration-row a {
  font-weight: 950;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.integration-row small,
.integration-row em {
  grid-column: 2 / -1;
  color: var(--muted);
  font-size: 12px;
}
.integration-row em {
  color: #9d2340;
  font-style: normal;
}
.reminder-contact-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.reminder-logo-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
}
.reminder-logo-link:focus-visible {
  outline: 3px solid rgba(116,70,232,.28);
  outline-offset: 4px;
}
.reminder-general-hero {
  margin-bottom: 20px;
}
.reminder-shop-cta {
  min-width: min(100%, 270px);
  margin-top: 14px;
  text-decoration: none;
  box-shadow: 0 18px 36px rgba(116,70,232,.18);
}
.reminder-general-card {
  box-shadow: 0 22px 50px rgba(39,31,61,.10);
}
.reminder-contact-error {
  margin-bottom: 14px;
  text-align: center;
}
.reminder-site-link,
.reminder-shop-link {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  margin-top: 14px;
  font-weight: 950;
  color: #3f3c39;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.reminder-shop-link {
  text-decoration: none;
  color: #fff;
}
.reminder-fineprint {
  margin: 12px 0 0;
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}
.reminder-admin-qr {
  margin-bottom: 12px;
}
.reminder-admin-qr a {
  color: var(--ink);
  font-weight: 900;
  overflow-wrap: anywhere;
}
.business-card-admin {
  max-width: 1120px;
}
.business-card-note {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 12px 14px;
  box-shadow: 0 8px 22px rgba(39,31,61,.04);
}
.business-card-note strong {
  font-size: 12px;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.business-card-note span {
  color: var(--muted);
  font-weight: 850;
}
.business-card-grid {
  display: grid;
  gap: 22px;
  margin-top: 18px;
}
.business-card-pair {
  display: grid;
  grid-template-columns: 110px repeat(2, minmax(0, 1fr));
  gap: 14px;
  align-items: start;
}
.business-card-label {
  display: grid;
  gap: 4px;
  padding-top: 10px;
}
.business-card-label span {
  color: var(--muted);
  font-weight: 950;
  letter-spacing: .12em;
}
.business-card-label strong {
  font-size: 18px;
}
.business-card-side {
  position: relative;
  overflow: hidden;
  width: 3.75in;
  height: 2.25in;
  max-width: 100%;
  aspect-ratio: 3.75 / 2.25;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 14px 32px rgba(39,31,61,.08);
  padding: .25in;
  display: grid;
  align-content: center;
  color: #211936;
}
.business-card-side h2 {
  position: relative;
  margin: 8px 0 6px;
  font-size: 24px;
  line-height: .98;
  letter-spacing:0;
}
.business-card-side p {
  position: relative;
  margin: 0;
  color: #5f586b;
  font-size: 11px;
  line-height: 1.35;
  font-weight: 750;
}
.business-card-brand {
  position: relative;
  color: #211936 !important;
  font-size: 8px !important;
  font-weight: 950 !important;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.business-card-logo {
  position: relative;
  width: 34px;
  height: 34px;
  object-fit: contain;
}
.business-card-qr {
  width: .86in;
  height: .86in;
  border-radius: 10px;
  border: 1px solid #efe4db;
  padding: 6px;
  background: #fff;
}
.business-card-back {
  grid-template-columns: 1fr auto;
  gap: 14px;
  align-items: center;
}
.business-card-back span {
  display: block;
  margin-top: 8px;
  color: #7a7188;
  font-size: 9px;
  font-weight: 900;
}
.business-card-art {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.business-card-soft .business-card-art {
  background:
    radial-gradient(circle at 18% 20%, rgba(242,106,162,.20), transparent 24%),
    radial-gradient(circle at 88% 16%, rgba(255,205,55,.22), transparent 24%),
    radial-gradient(circle at 62% 80%, rgba(28,169,183,.14), transparent 25%);
}
.business-card-bold .business-card-side {
  background: #302a4a;
  color: #fff;
}
.business-card-bold .business-card-side p,
.business-card-bold .business-card-brand,
.business-card-bold .business-card-back span {
  color: rgba(255,255,255,.78) !important;
}
.business-card-bold .business-card-art {
  background:
    radial-gradient(circle at 82% 22%, rgba(242,106,162,.40), transparent 24%),
    radial-gradient(circle at 18% 88%, rgba(255,205,55,.32), transparent 28%);
}
.business-card-minimal .business-card-side {
  background: #fffdf8;
}
.business-card-minimal .business-card-side h2 {
  font-family: Georgia, serif;
  font-weight: 500;
}
.business-card-paint .business-card-art {
  background:
    linear-gradient(110deg, transparent 12%, rgba(242,106,162,.16) 22%, rgba(255,205,55,.14) 40%, rgba(28,169,183,.13) 58%, transparent 76%);
  transform: rotate(-8deg) scale(1.15);
}
.business-card-datebook .business-card-side {
  background:
    repeating-linear-gradient(0deg, transparent 0 27px, rgba(236,226,216,.7) 28px 29px),
    #fff;
}
.business-card-datebook .business-card-side h2 {
  font-family: "Trebuchet MS", Arial, sans-serif;
}

@media (max-width: 720px) {
  .hero-line {
    align-items: flex-start;
  }
  .calendar-grid {
    border-radius: 18px;
    grid-template-columns: repeat(7, minmax(38px, 1fr));
  }
  .cal-head,
  .cal-day {
    min-height: 56px;
    padding: 6px 4px;
  }
  .cal-head {
    font-size: 9px;
  }
  .cal-date {
    font-size: 16px;
    line-height: 1;
  }
  .cal-chip {
    font-size: 8px;
    padding: 2px 3px;
    margin-top: 3px;
  }
  .detail-actions {
    grid-template-columns: 1fr;
  }
  .integration-row,
  .reminder-contact-grid {
    grid-template-columns: 1fr;
  }
  .integration-row small,
  .integration-row em {
    grid-column: auto;
  }
  .business-card-pair {
    grid-template-columns: 1fr;
  }
  .business-card-side {
    width: 100%;
    height: auto;
  }
}

@media print {
  .business-card-admin .hero-line,
  .business-card-note,
  .business-card-label,
  .mobile-menu-toggle,
  .side-nav,
  .drawer-overlay {
    display: none !important;
  }
  .business-card-admin,
  .business-card-grid,
  .business-card-pair {
    display: block;
    max-width: none;
    margin: 0;
    padding: 0;
  }
  .business-card-side {
    width: 3.75in;
    height: 2.25in;
    border-radius: 0;
    box-shadow: none;
    break-inside: avoid;
    page-break-inside: avoid;
    margin: 0 0 .18in;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
}

/* v3.7 custom request intake */
.custom-request-wrap {
  width: min(1040px, calc(100% - 32px));
}
.custom-request-hero {
  max-width: 820px;
}
.custom-request-split {
  display: grid;
  grid-template-columns: minmax(260px, .78fr) minmax(0, 1.22fr);
  gap: 18px;
  align-items: stretch;
}
.custom-request-call {
  min-height: 360px;
  display: grid;
  align-content: center;
  gap: 10px;
  text-align: left;
  text-decoration: none;
  background:
    radial-gradient(circle at 82% 14%, rgba(255,205,55,.30), transparent 32%),
    radial-gradient(circle at 18% 78%, rgba(242,106,162,.18), transparent 30%),
    #ffffff;
}
.custom-request-call span,
.custom-request-message span,
.custom-request-link span {
  color: var(--muted);
  font-size: 11px;
  font-weight: 950;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.custom-request-call strong {
  color: var(--ink);
  font-size: clamp(34px, 5vw, 54px);
  line-height: .95;
  letter-spacing:0;
}
.custom-request-call em {
  color: #3f3c39;
  font-style: normal;
  font-size: 20px;
  font-weight: 950;
}
.custom-request-call p,
.custom-request-note {
  margin: 0;
  color: var(--muted);
  font-weight: 780;
  line-height: 1.45;
}
.custom-request-form {
  display: grid;
  gap: 14px;
}
.custom-request-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.custom-request-form select,
.custom-request-form textarea,
.custom-request-status-form select,
.custom-request-status-form input {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 13px 14px;
  background: #fff;
  color: var(--ink);
}
.custom-request-form textarea {
  min-height: 148px;
  resize: vertical;
}
.hp-field {
  position: absolute !important;
  left: -9999px !important;
  width: 1px !important;
  height: 1px !important;
  opacity: 0 !important;
}
.custom-request-done {
  max-width: 660px;
  margin-inline: auto;
}
.custom-requests-page {
  max-width: 1080px;
}
.request-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: flex-end;
}
.request-inbox-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin: 16px 0;
}
.request-inbox-summary article {
  border: 1px solid var(--line);
  border-radius: 22px;
  padding: 15px 16px;
  background:
    radial-gradient(circle at 88% 12%, rgba(222, 91, 150, .10), transparent 36%),
    linear-gradient(135deg, rgba(255,255,255,.92), rgba(255,250,244,.78));
  box-shadow: 0 12px 28px rgba(39,31,61,.04);
}
.request-inbox-summary span,
.request-type-badge {
  display: block;
  color: var(--muted);
  font-size: 10px;
  font-weight: 950;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.request-inbox-summary strong {
  display: block;
  margin-top: 4px;
  color: var(--ink);
  font-size: clamp(28px, 4vw, 42px);
  line-height: 1;
  letter-spacing: -.04em;
}
.request-inbox-summary small {
  display: block;
  margin-top: 5px;
  color: var(--muted);
  font-weight: 800;
}
.custom-request-filters {
  flex-wrap: wrap;
}
.custom-request-list {
  display: grid;
  gap: 14px;
}
.custom-request-admin-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 24px;
  padding: 18px;
  box-shadow: 0 10px 28px rgba(39,31,61,.05);
}
.custom-request-admin-top {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
  margin-bottom: 14px;
}
.request-card-badges {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}
.request-type-badge {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 5px 9px;
  border: 1px solid rgba(32, 60, 43, .13);
  background: #fff;
  color: #203c2b;
}
.request-type-contact {
  color: #7a4d1f;
  background: #fff7e9;
}
.request-type-custom {
  color: #3a245f;
  background: #fff2f8;
}
.request-type-yelp {
  color: #9b271e;
  background: #fff0ed;
}
.sms-chat-list {
  max-width: 980px;
}
.sms-chat-card {
  display: block;
  color: inherit;
  text-decoration: none;
}
.sms-chat-card:hover {
  border-color: rgba(222, 91, 150, .32);
  box-shadow: 0 16px 34px rgba(39,31,61,.08);
  transform: translateY(-1px);
}
.custom-request-admin-top h2 {
  margin: 8px 0 4px;
  font-size: clamp(24px, 3.5vw, 34px);
  line-height: 1;
  letter-spacing:0;
}
.custom-request-admin-top p {
  margin: 0;
  color: var(--muted);
  font-weight: 780;
}
.custom-request-admin-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.custom-request-admin-grid div,
.custom-request-message,
.custom-request-link {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fffaf5;
  padding: 11px 12px;
}
.custom-request-admin-grid span {
  display: block;
  color: var(--muted);
  font-size: 10px;
  font-weight: 950;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.custom-request-admin-grid strong {
  display: block;
  margin-top: 4px;
  overflow-wrap: anywhere;
}
.custom-request-message,
.custom-request-link {
  margin-top: 10px;
}
.custom-request-message p {
  margin: 6px 0 0;
  color: var(--ink);
  font-weight: 760;
  line-height: 1.45;
  white-space: pre-wrap;
}
.custom-request-quick-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
}
.custom-request-quick-actions a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 8px 12px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  color: var(--ink);
  font-size: 12px;
  font-weight: 950;
  text-decoration: none;
}
.custom-request-quick-actions a:hover {
  border-color: rgba(32, 60, 43, .34);
  transform: translateY(-1px);
}
.custom-request-link a {
  display: inline-block;
  margin-top: 5px;
  color: #7446e8;
  font-weight: 950;
  overflow-wrap: anywhere;
}
.custom-request-status-form {
  display: grid;
  grid-template-columns: 180px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: end;
  margin-top: 12px;
}
.custom-order-source {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: flex-start;
}
.custom-order-source h2 {
  margin: 4px 0 8px;
  font-size: clamp(24px, 3vw, 34px);
}
.custom-order-source p:last-child {
  margin-bottom: 0;
  color: var(--muted);
  white-space: pre-wrap;
}

@media (max-width: 760px) {
  .custom-request-wrap {
    width: min(100% - 24px, 1040px);
  }
  .custom-request-split,
  .custom-request-grid,
  .custom-request-admin-grid,
  .request-inbox-summary,
  .custom-request-status-form {
    grid-template-columns: 1fr;
  }
  .custom-request-call {
    min-height: 260px;
  }
  .custom-request-admin-top,
  .custom-order-source {
    display: grid;
  }
  .custom-request-admin-top .btn,
  .custom-request-status-form .btn,
  .custom-order-source .btn {
    width: 100%;
  }
}

/* v3.8 storefront-aligned custom request page */
.custom-request-public {
  --ink: #302a4a;
  --muted: #6d6684;
  --line: #e7ded5;
  --cream: #fffaf4;
  --green: #403d39;
  --shadow: 0 14px 36px rgba(32,26,50,.07);
  background: #fffdf9;
  color: var(--ink);
  font-family: "Assistant", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
.custom-request-public .reminder-wrap {
  width: min(1080px, calc(100% - 32px));
  padding: 22px 0 56px;
}
.custom-request-public .reminder-logo {
  width: 54px;
  height: 54px;
}
.custom-request-public .reminder-hero h1,
.custom-request-public .reminder-done h1 {
  max-width: 760px;
  margin: 7px auto 10px;
  color: #2b2545;
  font-size: clamp(34px, 4.2vw, 52px);
  font-weight: 600;
  line-height: 1.08;
  letter-spacing:0;
}
.custom-request-public .reminder-hero p,
.custom-request-public .reminder-done p {
  max-width: 680px;
  color: var(--muted);
  font-size: 17px;
  line-height: 1.5;
}
.custom-request-public .eyebrow,
.custom-request-public .reminder-label {
  letter-spacing: .06em;
}
.custom-request-public .reminder-label,
.custom-request-public .custom-request-call span {
  font-size: 11px;
  font-weight: 700;
}
.custom-request-public .custom-request-call em {
  font-weight: 700;
}
.custom-request-public .custom-request-call p,
.custom-request-public .custom-request-note {
  font-weight: 600;
}
.custom-request-public .reminder-card {
  border-color: var(--line);
  border-radius: 8px;
  background: #fff;
  box-shadow: var(--shadow);
}
.custom-request-public input,
.custom-request-public select,
.custom-request-public textarea {
  min-height: 50px;
  border-color: var(--line);
  border-radius: 8px;
  color: var(--ink);
  font-size: 16px;
  font-weight: 600;
}
.custom-request-public textarea {
  line-height: 1.42;
}
.custom-request-public .btn-primary {
  min-height: 52px;
  background: var(--green);
  border-color: transparent;
  color: #fff;
  box-shadow: 0 12px 24px rgba(47,58,33,.14);
}
.custom-request-public .custom-request-call {
  min-height: 300px;
  border-top: 4px solid #f3c84b;
  background: #fffaf1;
}
.custom-request-public .custom-request-call strong {
  color: #2b2545;
  font-size: clamp(32px, 3.8vw, 44px);
  font-weight: 600;
  letter-spacing:0;
}
.custom-request-public .custom-request-call em {
  color: var(--green);
}
.df-date-picker {
  position: relative;
}
.df-date-picker__button {
  width: 100%;
  min-height: 50px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  color: var(--ink);
  padding: 13px 14px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-weight: 600;
  text-align: left;
}
.df-date-picker__panel {
  position: absolute;
  z-index: 20;
  left: 0;
  right: 0;
  top: calc(100% + 8px);
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 14px;
  box-shadow: 0 18px 42px rgba(48,42,74,.14);
}
.df-date-picker__panel[hidden] {
  display: none;
}
.df-date-picker__head {
  display: grid;
  grid-template-columns: 42px 1fr 42px;
  align-items: center;
  gap: .5rem;
  margin-bottom: .75rem;
}
.df-date-picker__head strong {
  text-align: center;
  color: var(--ink);
}
.df-date-picker__head button {
  height: 42px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #fff;
  color: var(--ink);
  font-size: 1.2rem;
  font-weight: 900;
}
.df-date-picker__head button:disabled {
  opacity: .35;
}
.df-date-picker__weekdays,
.df-date-picker__grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 6px;
}
.df-date-picker__weekdays span {
  text-align: center;
  color: var(--muted);
  font-size: .68rem;
  font-weight: 950;
  text-transform: uppercase;
  letter-spacing: .05em;
}
.df-date-picker__grid button {
  aspect-ratio: 1;
  border: 0;
  border-radius: 6px;
  background: #fffaf5;
  color: var(--ink);
  font-weight: 700;
  cursor: pointer;
}
.df-date-picker__grid button:hover {
  background: #f2ebff;
}
.df-date-picker__grid button:disabled {
  opacity: .25;
  cursor: not-allowed;
  text-decoration: line-through;
}
.df-date-picker__grid button.is-selected {
  background: linear-gradient(90deg, #7447ff, #f26aa2);
  color: #fff;
}

@media (max-width: 760px) {
  .custom-request-public .reminder-wrap {
    width: min(100% - 20px, 1080px);
    padding-top: 14px;
  }
  .custom-request-public .reminder-hero h1,
  .custom-request-public .reminder-done h1 {
    font-size: clamp(30px, 8vw, 38px);
  }
  .custom-request-public .reminder-hero p,
  .custom-request-public .reminder-done p {
    font-size: 16px;
  }
  .custom-request-public .custom-request-call {
    min-height: 190px;
  }
  .df-date-picker__panel {
    position: fixed;
    left: 12px;
    right: 12px;
    top: auto;
    bottom: max(12px, env(safe-area-inset-bottom));
    max-height: 72vh;
    overflow: auto;
  }
}

/* v4.1 order detail polish */
.order-detail.page {
  width: min(100%, 1220px);
  max-width: 1220px;
}
.order-proof-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 14px;
  align-items: stretch;
  margin: 12px 0;
}
.order-proof-row .proof-block {
  min-width: 0;
  height: 100%;
  margin: 0;
}
.proof-block h2 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.proof-block h2 span {
  display: inline-flex;
  min-width: 28px;
  height: 28px;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: #f2ebff;
  color: #6a4bc3;
  font-size: 13px;
  font-weight: 950;
}
.order-proof-row .photo-grid {
  grid-template-columns: repeat(auto-fit, minmax(128px, 180px));
  gap: 10px;
}
.order-proof-row .photo-thumb img {
  height: 168px;
  aspect-ratio: auto;
  object-fit: cover;
}
.section-headline {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 14px;
}
.section-headline h2,
.section-headline p {
  margin-bottom: 0;
}
.fulfillment-card .recipient-detail-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.fulfillment-card .recipient-detail-card--address {
  grid-column: span 2;
}
.delivery-note {
  margin: 14px 0 0;
  border: 1px solid rgba(18,55,40,.12);
  border-radius: 16px;
  padding: 12px 14px;
  background: #fffaf5;
  color: var(--muted);
  font-weight: 800;
  line-height: 1.45;
}
.timeline-panel {
  padding: 0;
  overflow: hidden;
}
.timeline-panel summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 56px;
  padding: 0 18px;
  cursor: pointer;
  list-style: none;
  color: var(--ink);
  font-weight: 950;
}
.timeline-panel summary::-webkit-details-marker {
  display: none;
}
.timeline-panel summary span {
  display: inline-flex;
  align-items: center;
  gap: 9px;
}
.timeline-panel summary span::before {
  content: "";
  width: 9px;
  height: 9px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(-45deg);
  transition: transform .18s ease;
}
.timeline-panel[open] summary span::before {
  transform: rotate(45deg);
}
.timeline-panel summary strong {
  display: inline-flex;
  min-width: 28px;
  height: 28px;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: #edf4ee;
  color: #496158;
  font-size: 12px;
}
.timeline-panel .timeline {
  padding: 0 18px 18px;
}
@media (max-width: 980px) {
  .order-proof-row,
  .fulfillment-card .recipient-detail-grid {
    grid-template-columns: 1fr;
  }
  .fulfillment-card .recipient-detail-card--address {
    grid-column: auto;
  }
  .section-headline {
    display: grid;
  }
}

/* v3.9 Uber Direct review and calmer order actions */
.order-detail {
  display: flex;
  flex-direction: column;
}
.order-detail .integration-card {
  order: 80;
  background: rgba(255,255,255,.78);
}
.order-detail .timeline,
.order-detail .wide[href*="myshopify"],
.order-detail .wide[href*="/admin/orders"] {
  order: 90;
}
.detail-actions .btn {
  min-height: 44px;
  border-color: #dfd6cc;
  box-shadow: 0 8px 18px rgba(39,31,61,.04);
}
.detail-actions .action-start,
.detail-actions .action-neutral {
  background: #fff;
  color: var(--ink);
}
.detail-actions .btn-green {
  background: #6f6b66;
  color: #fff;
}
.detail-actions .btn-courier {
  background: #f7f4ef;
  color: #403b36;
  border-color: #ddd4ca;
}
.detail-actions .btn-delivered {
  background: #eaf7ef;
  color: #1f6f42;
  border-color: #cfead9;
}
.detail-actions .action-track {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #fffaf5;
  color: #302a4a;
  border-color: #d9cfc4;
}
.detail-actions .action-live-route {
  grid-column: 1 / -1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  background: linear-gradient(135deg, #163f30, #286c50);
  color: #fff;
  border-color: transparent;
  box-shadow: 0 14px 28px rgba(18,55,40,.18);
}
.detail-actions .action-live-route::before {
  content: "\2197";
  margin-right: 8px;
  font-size: 17px;
}

.recipient-detail-card--date {
  position: relative;
  padding-right: 50px;
}
.recipient-date-edit {
  position: absolute;
  top: 8px;
  right: 8px;
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(18,55,40,.12);
  border-radius: 10px;
  background: rgba(255,255,255,.8);
  color: #68776e;
  cursor: pointer;
  transition: color .15s ease, border-color .15s ease, background .15s ease, transform .15s ease;
}
.recipient-date-edit:hover {
  border-color: rgba(255,79,163,.38);
  background: #fff;
  color: #a23d70;
  transform: translateY(-1px);
}
.recipient-date-edit svg {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.delivery-date-dialog {
  width: min(520px, calc(100vw - 28px));
}
.delivery-date-dialog__body {
  padding: 22px;
}
.delivery-date-dialog__current,
.delivery-date-editor__form,
.delivery-date-editor__history {
  display: flex;
  align-items: center;
  gap: 12px;
}
.delivery-date-editor__manual,
.delivery-date-email-status {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 5px 10px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 950;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.delivery-date-editor__manual {
  background: #fff0f7;
  color: #a23d70;
}
.delivery-date-dialog__current {
  flex-wrap: wrap;
  margin-bottom: 13px;
  padding: 13px 15px;
  border: 1px solid rgba(18,55,40,.11);
  border-radius: 16px;
  background: rgba(255,255,255,.82);
}
.delivery-date-dialog__current > span:first-child {
  color: var(--muted);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.delivery-date-dialog__current strong {
  margin-right: auto;
  font-size: 18px;
}
.delivery-date-editor__form {
  align-items: end;
}
.delivery-date-editor__form label { flex: 1 1 220px; }
.delivery-date-editor__form .btn {
  flex: 0 1 auto;
  min-height: 46px;
  background: linear-gradient(90deg, #ff4fa3, #ff7e5f);
  color: #123728;
}
.delivery-date-editor__help,
.delivery-date-editor__blocked {
  margin: 12px 0 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
}
.delivery-date-editor__blocked {
  padding: 12px 14px;
  border: 1px dashed #ddcfc5;
  border-radius: 14px;
  background: rgba(255,255,255,.7);
  font-weight: 850;
}
.delivery-date-editor__history {
  flex-wrap: wrap;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid rgba(18,55,40,.1);
  color: var(--muted);
  font-size: 12px;
}
.delivery-date-editor__history form { margin: 0 0 0 auto; }
.delivery-date-editor__history small {
  flex: 1 1 100%;
  color: #a04742;
}
.delivery-date-email-status.is-sent {
  background: #eaf7ef;
  color: #1f6f42;
}
.delivery-date-email-status.is-error {
  background: #fff0f3;
  color: #aa2547;
}
@media (max-width: 620px) {
  .delivery-date-dialog__body { padding: 18px; }
  .delivery-date-editor__form {
    display: grid;
  }
  .delivery-date-editor__form label { width: 100%; }
  .delivery-date-editor__form .btn { width: 100%; }
  .delivery-date-editor__history form { width: 100%; margin-left: 0; }
  .delivery-date-editor__history form .btn { width: 100%; }
}
.order-workbench__grid{display:grid;grid-template-columns:minmax(250px,.8fr) minmax(0,1.2fr);gap:24px;align-items:start}.order-workbench__print{display:grid;align-content:start;min-height:100%;padding:4px 2px}.order-workbench__print h2,.staff-notes__head h2{margin:2px 0 7px}.order-workbench__print .subtle{margin:0 0 18px}.order-workbench__print .print-card-actions{display:grid}.order-workbench__print .print-card-actions .wide{width:100%;margin:0}.staff-notes{min-width:0;padding:19px;border:1px solid rgba(18,55,40,.11);border-radius:22px;background:linear-gradient(145deg,#fffdf8,#fff7fb);box-shadow:0 12px 30px rgba(18,55,40,.06)}.staff-notes__head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.staff-notes__count{flex:0 0 auto;border-radius:999px;background:#f4e9ff;color:#7650a0;padding:7px 10px;font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.06em}.staff-note-add{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;margin:14px 0}.staff-note-add label{text-transform:none;letter-spacing:0;color:var(--muted)}.staff-note-add textarea{min-height:62px;resize:vertical}.staff-note-add .btn{min-height:48px}.staff-notes__list{display:grid;gap:8px}.staff-note{display:grid;grid-template-columns:38px minmax(0,1fr) 34px;gap:10px;align-items:start;margin:0;padding:11px;border:1px solid rgba(18,55,40,.1);border-radius:16px;background:rgba(255,255,255,.88)}.staff-note__check{display:grid;place-items:center;width:34px;height:34px;padding:0;border:2px solid #c8d2cc;border-radius:11px;background:#fff;color:#fff;font-size:20px;font-weight:950;cursor:pointer}.staff-note__check:hover{border-color:var(--pink);background:#fff4fa}.staff-note__delete{display:grid;place-items:center;width:34px;height:34px;padding:0;border:1px solid rgba(179,73,66,.22);border-radius:11px;background:#fff7f4;color:#a04742;cursor:pointer}.staff-note__delete:hover{border-color:#b94942;background:#ffe9e5;transform:translateY(-1px)}.staff-note__delete svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.staff-note p{margin:0;color:var(--ink);font-weight:800;line-height:1.38;white-space:pre-wrap;overflow-wrap:anywhere}.staff-note small{display:block;margin-top:5px;color:var(--muted);font-size:11px;font-weight:750}.staff-note.is-complete{opacity:.58;background:#f2f4f1}.staff-note.is-complete .staff-note__check{border-color:#4c9568;background:#4c9568}.staff-note.is-complete p{text-decoration:line-through}.staff-notes__empty{margin:7px 0;padding:14px;border:1px dashed var(--line);border-radius:15px;color:var(--muted);text-align:center}.staff-notes__reminder{margin:11px 0 0;color:var(--muted);font-size:11px;font-weight:750}.staff-notes__reminder::before{content:"\23f0";margin-right:6px}
@media(max-width:760px){.order-workbench__grid{grid-template-columns:1fr;gap:18px}.order-workbench__print{min-height:0}.staff-note-add{grid-template-columns:1fr}.staff-note-add .btn{width:100%}.staff-notes{padding:15px}.staff-notes__head h2{font-size:24px}}
.action-hint {
  grid-column: 1 / -1;
  margin: 0;
  border: 1px dashed var(--line);
  border-radius: 18px;
  background: rgba(255,255,255,.72);
  color: var(--muted);
  padding: 12px 14px;
  font-weight: 850;
  text-align: center;
}
.btn-uber {
  background: linear-gradient(135deg, #211f1d, #57514a);
  color: #fff;
  border-color: transparent;
  box-shadow: 0 14px 26px rgba(33,31,29,.15);
}
.btn-uber:disabled {
  opacity: .65;
}
.uber-dialog,
.issue-dialog {
  width: min(1060px, calc(100vw - 28px));
  max-height: min(92vh, 980px);
  overflow: auto;
  border: 1px solid var(--line);
  border-radius: 28px;
  background: #fffaf5;
  color: var(--ink);
  padding: 0;
  box-shadow: 0 26px 80px rgba(39,31,61,.24);
}
.uber-dialog::backdrop,
.issue-dialog::backdrop {
  background: rgba(39,31,61,.42);
  backdrop-filter: blur(4px);
}
.uber-review-form {
  display: grid;
  gap: 16px;
  padding: 22px;
}
.issue-review-form {
  display: grid;
  gap: 16px;
  padding: 20px;
}
.issue-dialog {
  width: min(620px, calc(100vw - 28px));
  max-height: min(86vh, 900px);
}
.issue-review-form label {
  display: grid;
  gap: 8px;
}
.issue-review-form select,
.issue-review-form textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fff;
  color: var(--ink);
  padding: 12px 13px;
}
.issue-review-form textarea {
  min-height: 130px;
  resize: vertical;
  line-height: 1.4;
  text-transform: none;
  letter-spacing: 0;
}
.issue-checkline {
  display: flex !important;
  grid-template-columns: none;
  align-items: flex-start;
  gap: 10px;
  border: 1px solid #ffd1dc;
  border-radius: 18px;
  background: #fff0f3;
  padding: 12px 13px;
  color: #8b1d31;
  letter-spacing: 0;
  text-transform: none;
}
.issue-checkline input {
  width: auto;
  margin-top: 2px;
}
.issue-checkline span {
  font-size: 14px;
  line-height: 1.35;
}
.owner-order-repair {
  display: grid;
  gap: 12px;
  border: 1px solid #d7cbe9;
  border-radius: 20px;
  background: linear-gradient(145deg, #fbf8ff, #f3eff9);
  padding: 15px;
}
.owner-order-repair__head,
.owner-order-repair__row,
.owner-order-repair__complete {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}
.owner-order-repair__head h3 {
  margin: 2px 0 0;
  font-size: 19px;
  line-height: 1.15;
}
.owner-order-repair__head > span {
  flex: 0 0 auto;
  border-radius: 999px;
  background: #e9ddf8;
  color: #644583;
  padding: 7px 10px;
  font-size: 10px;
  font-weight: 950;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.owner-order-repair__note,
.owner-order-repair__fine-print {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.45;
  text-transform: none;
  letter-spacing: 0;
}
.owner-order-repair__row {
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fff;
  padding: 12px;
}
.owner-order-repair__row > div {
  display: grid;
  gap: 3px;
}
.owner-order-repair__row small {
  max-width: 360px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.35;
}
.owner-order-repair__row .btn {
  flex: 0 0 auto;
  min-width: 112px;
}
.owner-order-repair__complete {
  align-items: end;
}
.owner-order-repair__complete label {
  flex: 1 1 auto;
  margin: 0;
}
.owner-order-repair__complete select {
  min-height: 44px;
}
.owner-silent-complete {
  flex: 0 0 auto;
  min-height: 44px;
  border-color: #49345f;
  background: #49345f;
  color: #fff;
}
.owner-silent-complete:hover {
  border-color: #382548;
  background: #382548;
}
.uber-dialog__head,
.uber-dialog__actions {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: flex-start;
}
.uber-dialog__head h2 {
  margin: 2px 0 6px;
  font-size: clamp(27px, 4vw, 42px);
  line-height: 1;
  letter-spacing:0;
}
.uber-dialog__head .icon-danger {
  flex: 0 0 auto;
}
.uber-autofill-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}
.uber-autofill-strip span {
  border: 1px solid #e8dfd5;
  border-radius: 14px;
  background: rgba(255,255,255,.72);
  color: var(--muted);
  padding: 10px 12px;
  font-size: 12px;
  font-weight: 760;
  line-height: 1.35;
  text-transform: none;
  letter-spacing: 0;
}
.uber-autofill-strip strong {
  display: block;
  margin-bottom: 2px;
  color: var(--ink);
  font-size: 10px;
  font-weight: 950;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.uber-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.uber-form-grid section,
.uber-advanced {
  min-width: 0;
  display: grid;
  gap: 10px;
  border: 1px solid var(--line);
  border-radius: 22px;
  background: #fff;
  padding: 14px;
}
.uber-form-grid h3 {
  margin: 0;
  font-size: 18px;
}
.uber-side-stack {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 12px;
}
.uber-section-head {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 2px;
}
.uber-section-head > span {
  display: grid;
  flex: 0 0 auto;
  width: 28px;
  height: 28px;
  place-items: center;
  border-radius: 10px;
  background: #211f1d;
  color: #fff;
  font-size: 11px;
  font-weight: 950;
}
.uber-section-head div {
  min-width: 0;
}
.uber-section-head small {
  display: block;
  margin-top: 3px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 720;
  line-height: 1.35;
  text-transform: none;
  letter-spacing: 0;
}
.uber-timing-card {
  align-content: start;
}
.uber-mode-list {
  display: grid;
  gap: 8px;
}
.uber-mode-option {
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: 10px !important;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fffaf5;
  padding: 11px 12px;
  cursor: pointer;
  transition: border-color .16s ease, box-shadow .16s ease, background .16s ease;
}
.uber-mode-option:hover {
  border-color: #c9b9d9;
}
.uber-mode-option.is-selected {
  border-color: #8c6daa;
  background: linear-gradient(135deg, #fff, #f5effb);
  box-shadow: 0 8px 22px rgba(83,58,109,.09);
}
.uber-mode-option input {
  width: 18px !important;
  height: 18px;
  margin: 2px 0 0;
  accent-color: #5c3f76;
}
.uber-mode-option > span {
  display: grid;
  gap: 3px;
}
.uber-mode-option strong {
  color: var(--ink);
  font-size: 14px;
  font-weight: 900;
  line-height: 1.25;
  text-transform: none;
  letter-spacing: 0;
}
.uber-mode-option small,
.uber-manual-time small,
.uber-safety-note {
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.35;
  text-transform: none;
  letter-spacing: 0;
}
.uber-manual-time {
  display: grid;
  gap: 7px;
  border: 1px solid #d8c6e8;
  border-radius: 16px;
  background: #faf6ff;
  padding: 11px;
}
.uber-manual-time[hidden] {
  display: none;
}
.uber-timing-summary {
  display: grid;
  gap: 6px;
  border-top: 1px solid #eee4da;
  margin-top: 2px;
  padding-top: 11px;
}
.uber-timing-summary > strong {
  display: inline-flex;
  width: max-content;
  max-width: 100%;
  border-radius: 999px;
  background: #fff3c7;
  color: #5e4310;
  padding: 8px 12px;
  font-size: 12px;
  font-weight: 950;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.uber-timing-summary p {
  margin: 2px 0 0;
  color: var(--ink);
  font-size: 16px;
  font-weight: 820;
  line-height: 1.35;
  text-transform: none;
  letter-spacing: 0;
}
.uber-timing-summary small {
  color: var(--muted);
  font-size: 13px;
  font-weight: 760;
  line-height: 1.4;
  text-transform: none;
  letter-spacing: 0;
}
.uber-form-grid input,
.uber-form-grid select,
.uber-form-grid textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fffaf5;
  color: var(--ink);
  padding: 11px 12px;
}
.uber-form-grid textarea {
  min-height: 96px;
  resize: vertical;
  line-height: 1.35;
  text-transform: none;
  letter-spacing: 0;
}
.uber-mini-grid,
.uber-schedule-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}
.uber-schedule-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.uber-source-box {
  border: 1px solid #ece2d8;
  border-radius: 16px;
  background: #fffaf5;
  padding: 10px 12px;
}
.uber-source-box span {
  display: block;
  color: var(--muted);
  font-size: 10px;
  font-weight: 950;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.uber-source-box p {
  margin: 5px 0 0;
  color: var(--ink);
  font-weight: 760;
  line-height: 1.35;
  white-space: pre-wrap;
}
.uber-safety-note {
  margin: 0;
  border-radius: 14px;
  background: #f5f1eb;
  padding: 10px 11px;
}
.uber-advanced {
  grid-column: 1 / -1;
  display: block;
  padding: 0;
  overflow: hidden;
}
.uber-advanced summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px;
  cursor: pointer;
  list-style: none;
  font-weight: 900;
}
.uber-advanced summary::-webkit-details-marker {
  display: none;
}
.uber-advanced summary::after {
  content: '+';
  order: 3;
  color: #74568f;
  font-size: 22px;
  line-height: 1;
}
.uber-advanced[open] summary::after {
  content: '−';
}
.uber-advanced summary strong {
  margin-left: auto;
  border-radius: 999px;
  background: #edf2e3;
  color: #53662e;
  padding: 6px 9px;
  font-size: 9px;
  font-weight: 950;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.uber-advanced__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  border-top: 1px solid var(--line);
  padding: 14px;
}
.uber-advanced__grid label {
  min-width: 0;
}
.uber-quote-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
  border: 1px solid #cdb8df;
  border-radius: 20px;
  background: linear-gradient(135deg, #fbf7ff, #fff8e7);
  padding: 14px 16px;
  box-shadow: 0 12px 30px rgba(79,55,101,.08);
}
.uber-quote-card[hidden] {
  display: none;
}
.uber-quote-card p,
.uber-quote-card small {
  margin: 0;
  text-transform: none;
  letter-spacing: 0;
}
.uber-quote-card > div > strong {
  display: block;
  margin-top: 2px;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 30px;
  line-height: 1;
}
.uber-quote-card > p {
  color: var(--ink);
  font-weight: 850;
  line-height: 1.35;
}
.uber-quote-card > small {
  max-width: 220px;
  color: var(--muted);
  font-weight: 700;
  line-height: 1.35;
  text-align: right;
}
.uber-dialog__actions {
  justify-content: flex-end;
  align-items: center;
  position: sticky;
  bottom: -22px;
  z-index: 3;
  border-top: 1px solid rgba(220,210,200,.92);
  background: rgba(255,250,245,.96);
  margin: 0 -22px -22px;
  padding: 14px 22px 22px;
  backdrop-filter: blur(12px);
}
.uber-dialog__actions .btn {
  min-width: 160px;
}

@media (max-width: 760px) {
  .uber-dialog,
  .issue-dialog {
    width: calc(100vw - 18px);
    max-height: 90vh;
    border-radius: 22px;
  }
  .uber-review-form,
  .issue-review-form {
    padding: 14px;
  }
  .uber-dialog__head { display: flex; }
  .uber-dialog__actions { display: grid; }
  .uber-autofill-strip,
  .uber-form-grid,
  .uber-mini-grid,
  .uber-schedule-grid,
  .uber-advanced__grid,
  .uber-quote-card {
    grid-template-columns: 1fr;
  }
  .uber-autofill-strip {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .uber-autofill-strip span {
    padding: 8px;
    font-size: 10px;
  }
  .uber-quote-card > small {
    max-width: none;
    text-align: left;
  }
  .uber-dialog__actions {
    bottom: -14px;
    margin: 0 -14px -14px;
    padding: 12px 14px 14px;
  }
  .uber-dialog__actions .btn {
    width: 100%;
  }
  .owner-order-repair__head,
  .owner-order-repair__row,
  .owner-order-repair__complete {
    align-items: stretch;
    flex-direction: column;
  }
  .owner-order-repair__head > span {
    align-self: flex-start;
  }
  .owner-order-repair__row .btn,
  .owner-silent-complete {
    width: 100%;
  }
}

/* v3.2 Twilio calls and messages */
.comms-status-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 10px;
  margin: 12px 0;
}
.comms-status-grid--bottom {
  margin-top: 16px;
}
.comms-status-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 14px;
  box-shadow: 0 10px 24px rgba(39,31,61,.04);
}
.comms-status-card span,
.comms-row small,
.comms-webhooks span {
  display: block;
  color: var(--muted);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.comms-status-card strong {
  display: block;
  margin-top: 4px;
  font-size: 20px;
  line-height: 1.05;
}
.comms-status-card small {
  display: block;
  margin-top: 6px;
  color: var(--muted);
  font-weight: 800;
  line-height: 1.35;
}
.comms-status-card.is-ready {
  background: #f7f5ef;
  border-color: #ddd6ce;
}
.comms-status-card.is-missing {
  background: #fff0f3;
  border-color: #f2cad3;
}
.comms-workspace {
  display: grid;
  grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr);
  gap: 12px;
  align-items: start;
}
.softphone-head,
.comms-history-head,
.comms-row-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
.softphone-state {
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 7px 10px;
  background: #fbf8f2;
  font-size: 11px;
  font-weight: 950;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.softphone-state[data-tone="ok"] { background: #f1eee9; color: #4c4844; }
.softphone-state[data-tone="warn"] { background: #fff7d8; color: #87631e; }
.softphone-state[data-tone="bad"] { background: #fff0f3; color: #9d2340; }
.call-screen {
  display: grid;
  place-items: center;
  gap: 6px;
  min-height: 142px;
  margin: 12px 0 14px;
  border: 1px solid #ddd6ce;
  border-radius: 24px;
  background:
    radial-gradient(circle at top left, rgba(242,106,162,.16), transparent 38%),
    linear-gradient(135deg,#fffaf1,#f7f3ec);
  text-align: center;
}
.call-screen span {
  max-width: 100%;
  color: var(--muted);
  font-weight: 900;
  overflow-wrap: anywhere;
}
.call-screen strong {
  color: var(--ink);
  font-size: clamp(42px, 9vw, 72px);
  line-height: .95;
  letter-spacing: .02em;
  font-variant-numeric: tabular-nums;
}
.call-screen small {
  max-width: 260px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 760;
  line-height: 1.35;
}
.softphone-actions,
.contact-action-row {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 8px;
  margin-top: 12px;
}
.softphone-audio-actions {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 8px;
  margin-top: 8px;
  align-items: center;
}
.softphone-audio-actions span {
  grid-column: 1 / -1;
  color: var(--muted);
  font-size: 12px;
  font-weight: 820;
  text-align: center;
}
.contact-action-row {
  grid-template-columns: repeat(2,minmax(0,1fr));
}
.softphone-actions .btn,
.softphone-audio-actions .btn,
.contact-action-row .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  text-align: center;
}
.incoming-call-card {
  margin-top: 12px;
  border: 1px solid #ddd6ce;
  border-radius: 18px;
  padding: 12px;
  background: #fbf8f2;
}
.incoming-call-card strong {
  display: block;
  margin-bottom: 10px;
}
.incoming-call-card div {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.sms-card textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 13px 14px;
  background: #fff;
  resize: vertical;
  min-height: 130px;
}
.comms-history-list {
  display: grid;
  gap: 10px;
}
.comms-row {
  display: grid;
  grid-template-columns: 58px minmax(0,1fr);
  gap: 12px;
  padding: 12px 0;
  border-top: 1px solid var(--line);
}
.comms-row:first-child { border-top: 0; }
.comms-row-icon {
  display: grid;
  place-items: center;
  height: 42px;
  border-radius: 14px;
  background: #f2ebff;
  color: #4d367d;
  font-size: 11px;
  font-weight: 950;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.comms-row.is-inbound .comms-row-icon {
  background: #fff0f8;
  color: #9d2a61;
}
.comms-row-main {
  min-width: 0;
}
.comms-row-main p {
  margin: 7px 0;
  color: #3f3c39;
  line-height: 1.45;
  white-space: pre-wrap;
}
.comms-row-top strong,
.comms-row-top span {
  min-width: 0;
}
.comms-row-top span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 850;
  text-align: right;
}
.comms-row-context {
  display: inline-flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
  margin-top: 8px;
  border-radius: 999px;
  background: #fbf8f2;
  padding: 6px 9px;
  font-size: 12px;
  font-weight: 900;
}
.comms-row-context em {
  color: var(--muted);
  font-style: normal;
}
.comms-error {
  display: block;
  margin-top: 7px;
  color: #9d2340;
  font-style: normal;
  font-size: 12px;
  font-weight: 850;
}
.comms-webhooks {
  display: grid;
  grid-template-columns: 140px minmax(0,1fr);
  gap: 9px 12px;
  align-items: center;
}
.comms-webhooks code {
  display: block;
  overflow-wrap: anywhere;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 9px 10px;
  background: #fbf8f2;
  font-size: 12px;
}
.call-ear-overlay {
  position: fixed;
  inset: 0;
  z-index: 200;
  display: grid;
  place-items: center;
  background: #000;
  color: #fff;
  touch-action: manipulation;
}
.call-ear-overlay[hidden] {
  display: none;
}
.call-ear-overlay div {
  display: grid;
  place-items: center;
  gap: 10px;
  padding: 28px;
  text-align: center;
}
.call-ear-overlay span,
.call-ear-overlay small {
  color: rgba(255,255,255,.56);
  font-weight: 850;
}
.call-ear-overlay strong {
  font-size: clamp(48px, 16vw, 96px);
  font-variant-numeric: tabular-nums;
  letter-spacing: .03em;
}
body.call-ear-mode .side-nav,
body.call-ear-mode .mobile-menu-toggle {
  visibility: hidden;
}

@media (max-width: 680px) {
  .comms-status-grid,
  .comms-workspace,
  .softphone-actions,
  .softphone-audio-actions,
  .contact-action-row,
  .comms-webhooks {
    grid-template-columns: 1fr;
  }
  .comms-row {
    grid-template-columns: 48px minmax(0,1fr);
  }
  .comms-row-top {
    display: grid;
    gap: 3px;
  }
  .comms-row-top span {
    text-align: left;
  }
}

/* v3.3 global phone layer */
.phone-console-head,
.comms-setup-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
.phone-console .subtle {
  margin-bottom: 0;
}
.softphone-actions--main {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.phone-reconnect {
  width: 100%;
  margin-top: 10px;
}
.df-phone-layer {
  position: relative;
  z-index: 150;
}
.df-phone-toast,
.df-active-call-bar {
  position: fixed;
  left: max(12px, env(safe-area-inset-left));
  right: max(12px, env(safe-area-inset-right));
  top: calc(12px + env(safe-area-inset-top));
  z-index: 180;
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) auto auto;
  gap: 10px;
  align-items: center;
  border: 1px solid rgba(39, 31, 61, .16);
  border-radius: 24px;
  background: rgba(255, 255, 255, .94);
  color: var(--ink);
  padding: 10px;
  box-shadow: 0 18px 52px rgba(39,31,61,.22);
  backdrop-filter: blur(18px);
}
.df-phone-toast[hidden],
.df-active-call-bar[hidden] {
  display: none;
}
.df-phone-toast-icon {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border-radius: 16px;
  background: #eaf8ef;
  color: #167247;
}
.df-phone-toast-icon svg {
  width: 23px;
  height: 23px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.df-phone-toast-copy {
  min-width: 0;
}
.df-phone-toast-copy strong,
.df-active-call-bar strong {
  display: block;
  line-height: 1.1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.df-phone-toast-copy span,
.df-active-call-bar span {
  display: block;
  margin-top: 3px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 850;
  overflow-wrap: anywhere;
}
.df-phone-answer,
.df-phone-decline {
  min-height: 40px;
  border: 0;
  border-radius: 999px;
  padding: 0 14px;
  color: #fff;
  font-size: 12px;
  font-weight: 950;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.df-phone-answer {
  background: #16834f;
}
.df-phone-decline {
  background: #443e39;
}
.df-active-call-bar {
  grid-template-columns: minmax(0, 1fr) auto;
}
.df-active-call-bar span {
  color: #167247;
  font-variant-numeric: tabular-nums;
}
body.has-sidebar .df-phone-toast,
body.has-sidebar .df-active-call-bar {
  top: calc(76px + env(safe-area-inset-top));
}
@media (min-width: 980px) {
  body.has-sidebar .df-phone-toast,
  body.has-sidebar .df-active-call-bar {
    left: calc(292px + env(safe-area-inset-left));
    top: calc(14px + env(safe-area-inset-top));
  }
}

.comms-row {
  appearance: none;
  cursor: pointer;
  border-radius: 18px;
  padding: 12px;
  transition: background .16s ease, transform .16s ease, box-shadow .16s ease;
}
.comms-row:hover,
.comms-row:focus-visible {
  background: #fffaf5;
  box-shadow: inset 0 0 0 1px #eee2d8;
  outline: none;
}
.comms-row:active {
  transform: scale(.995);
}
.comms-row-icon {
  width: 46px;
  height: 46px;
  border-radius: 16px;
}
.comms-row-icon svg {
  width: 22px;
  height: 22px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.comms-row.is-inbound .comms-row-icon {
  background: #eaf8ef;
  color: #167247;
}
.comms-row.is-outbound .comms-row-icon {
  background: #ebf4ff;
  color: #1c66a2;
}
.comms-row.is-bad .comms-row-icon {
  background: #fff0f3;
  color: #ad2548;
}
.comms-row.is-neutral .comms-row-icon {
  background: #f2ebff;
  color: #4d367d;
}
.comms-row-top > div:first-child {
  min-width: 0;
  display: grid;
  gap: 2px;
}
.comms-row-top strong {
  display: block;
  overflow-wrap: anywhere;
}
.comms-row-top span {
  display: block;
  color: var(--muted);
  font-size: 13px;
  font-weight: 820;
  text-align: left;
  overflow-wrap: anywhere;
}
.comms-row-signals {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}
.comms-row-signals span {
  font-variant-numeric: tabular-nums;
  color: var(--muted);
  font-size: 12px;
  font-weight: 950;
}
.comms-signal {
  display: none;
}
.comms-row-context {
  pointer-events: auto;
}

.phone-action-dialog {
  width: min(430px, calc(100vw - 24px));
  border: 1px solid var(--line);
  border-radius: 26px;
  background: #fff;
  color: var(--ink);
  padding: 20px;
  box-shadow: 0 28px 72px rgba(39,31,61,.24);
}
.phone-action-dialog::backdrop {
  background: rgba(39, 31, 61, .46);
  backdrop-filter: blur(4px);
}
.phone-action-dialog h2 {
  margin: 4px 42px 4px 0;
  font-size: 30px;
  line-height: 1;
  letter-spacing: 0;
  overflow-wrap: anywhere;
}
.phone-action-dialog label {
  margin-top: 14px;
}
.phone-action-dialog input {
  min-height: 48px;
}
.phone-action-close {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 42px;
  height: 42px;
}
.phone-action-dialog .wide {
  margin-top: 12px;
}

@media (max-width: 680px) {
  .phone-console-head,
  .comms-setup-head {
    display: grid;
  }
  .softphone-actions--main,
  .contact-action-row {
    grid-template-columns: 1fr;
  }
  .df-phone-toast {
    grid-template-columns: 52px minmax(0, 1fr) 104px;
    gap: 10px;
    padding: 12px;
  }
  .df-phone-toast-icon {
    grid-column: 1;
    grid-row: 1;
    width: 52px;
    height: 52px;
    border-radius: 18px;
  }
  .df-phone-toast-copy {
    grid-column: 2 / 4;
    grid-row: 1;
  }
  .df-phone-toast-copy strong {
    font-size: 18px;
  }
  .df-phone-toast-copy span {
    font-size: 14px;
  }
  .df-phone-toast .df-phone-answer,
  .df-phone-toast .df-phone-decline {
    width: 100%;
  }
  .df-phone-toast .df-phone-answer {
    grid-column: 1 / 3;
    grid-row: 2;
    min-height: 58px;
    font-size: 15px;
  }
  .df-phone-toast .df-phone-decline {
    grid-column: 3 / 4;
    grid-row: 2;
    min-height: 50px;
    align-self: center;
    border: 1px solid #eedfe0;
    background: #fff0f3;
    color: #9d2340;
  }
}

/* v3.11 phone recordings, product mobile cleanup, reminder public polish */
.comms-row-top {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
}
.comms-row-signals {
  min-width: 46px;
}
.comms-duration {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-width: 42px;
  min-height: 26px;
  border-radius: 999px;
  background: #f7f2ec;
  color: #5c5665 !important;
  font-size: 12px !important;
  font-weight: 950 !important;
  font-variant-numeric: tabular-nums;
  text-align: center;
}
.phone-recording-box {
  display: grid;
  gap: 8px;
  margin-top: 14px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: #fffaf5;
}
.phone-recording-box[hidden] {
  display: none;
}
.phone-recording-box p {
  margin: 0;
}
.df-audio-player {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) 38px;
  gap: 10px;
  align-items: center;
  width: 100%;
  border: 1px solid #eadfd5;
  border-radius: 18px;
  background: #fff;
  padding: 8px;
}
.df-audio-player audio {
  display: none;
}
.df-audio-play,
.df-audio-trash,
.df-audio-seek {
  appearance: none;
  border: 0;
  font: inherit;
}
.df-audio-play,
.df-audio-trash {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 14px;
  color: var(--ink);
  cursor: pointer;
}
.df-audio-play {
  background: #3f3935;
  color: #fff;
}
.df-audio-trash {
  background: #fff0f3;
  color: #ad2548;
}
.df-audio-play svg,
.df-audio-trash svg {
  width: 18px;
  height: 18px;
  fill: currentColor;
}
.df-audio-trash svg {
  fill: none;
  stroke: currentColor;
  stroke-width: 2.1;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.df-audio-icon-pause,
.df-audio-player.is-playing .df-audio-icon-play {
  display: none;
}
.df-audio-player.is-playing .df-audio-icon-pause {
  display: block;
}
.df-audio-meter {
  min-width: 0;
  display: grid;
  gap: 6px;
}
.df-audio-seek {
  position: relative;
  width: 100%;
  height: 10px;
  border-radius: 999px;
  background: #f2ece5;
  overflow: hidden;
  cursor: pointer;
}
.df-audio-seek span {
  position: absolute;
  inset: 0 auto 0 0;
  width: 0%;
  border-radius: inherit;
  background: linear-gradient(90deg, #7a45e5, #e85e9d);
}
.df-audio-times {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 900;
  font-variant-numeric: tabular-nums;
}
.df-audio-trash[disabled],
.df-audio-play[disabled] {
  opacity: .58;
  cursor: wait;
}
.recording-vault .subtle {
  max-width: 600px;
  margin: 6px 0 0;
}
.recording-vault-count {
  display: inline-grid;
  place-items: center;
  min-width: 42px;
  height: 42px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fbf8f2;
  color: var(--ink);
  font-weight: 950;
  font-variant-numeric: tabular-nums;
}
.recording-list {
  display: grid;
  gap: 10px;
  margin-top: 14px;
}
.recording-row {
  display: grid;
  gap: 12px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: #fff;
  padding: 12px;
}
.recording-row-head {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
}
.recording-row-icon {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border-radius: 16px;
  background: #fff7e5;
  color: #9b6b15;
}
.recording-row-icon svg {
  width: 22px;
  height: 22px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.1;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.recording-row strong,
.recording-row span,
.recording-row small {
  display: block;
  min-width: 0;
  overflow-wrap: anywhere;
}
.recording-row strong {
  color: var(--ink);
  line-height: 1.12;
}
.recording-row span {
  margin-top: 2px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 820;
}
.recording-row small {
  margin-top: 5px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
}
@media (max-width: 680px) {
  .df-audio-player {
    grid-template-columns: 42px minmax(0, 1fr) 38px;
    gap: 8px;
  }
  .recording-row {
    padding: 11px;
  }
  .recording-row-head {
    grid-template-columns: 42px minmax(0, 1fr);
  }
  .recording-row-icon {
    width: 42px;
    height: 42px;
  }
}
.phone-action-dialog .contact-action-row .btn[disabled] {
  opacity: .55;
  cursor: not-allowed;
}
.product-admin-actions .btn,
.product-admin-actions .mini-danger {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--ink);
  font-size: 13px;
  line-height: 1;
  text-align: center;
  white-space: normal;
}
.product-admin-actions .btn-primary,
.product-admin-actions .btn-green,
.product-admin-actions .btn-bestseller {
  color: #fff;
}
.product-admin-actions .btn[disabled] {
  opacity: 1;
  border-color: #eadfd5;
  background: #fbf8f2;
  color: #aaa0ad;
  box-shadow: none;
}
@media (max-width: 720px) {
  .product-catalog-head,
  .product-search-form {
    grid-template-columns: 1fr;
  }
  .product-filter-tabs {
    flex-wrap: nowrap;
    overflow-x: auto;
    padding-bottom: 4px;
  }
  .product-filter-tabs a {
    flex: 0 0 auto;
  }
  .product-admin-top h2 {
    font-size: 25px;
  }
  .product-admin-actions {
    gap: 9px;
  }
  .product-admin-actions .btn,
  .product-admin-actions .mini-danger {
    width: 100%;
    min-height: 48px;
  }
}
.reminder-public {
  min-height: 100vh;
  background:
    radial-gradient(circle at 12% 0%, rgba(255, 210, 90, .28), transparent 28%),
    radial-gradient(circle at 92% 10%, rgba(242, 106, 162, .18), transparent 30%),
    linear-gradient(165deg, #fffaf2 0%, #fffff8 48%, #fff7fb 100%);
  color: var(--ink);
}
.reminder-public .eyebrow,
.reminder-public .wheel-field legend,
.reminder-public .reminder-label {
  letter-spacing: 0;
}
.reminder-wrap {
  width: min(720px, calc(100% - 30px));
  padding: 28px 0 54px;
}
.reminder-hero {
  margin: 0 auto 18px;
  text-align: center;
}
.reminder-logo {
  width: 70px;
  height: 70px;
  margin-bottom: 10px;
}
.reminder-hero h1,
.reminder-done h1 {
  max-width: 650px;
  margin: 8px auto 12px;
  font-size: clamp(34px, 7vw, 56px);
  line-height: 1.02;
  letter-spacing: 0;
}
.reminder-hero p,
.reminder-done p {
  max-width: 610px;
  font-size: clamp(17px, 3.2vw, 22px);
  line-height: 1.38;
}
.reminder-shop-cta {
  width: fit-content;
  min-width: 0;
  min-height: 50px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 18px auto 0;
  padding: 0 28px;
  border-radius: 999px;
  text-decoration: none;
}
.reminder-card {
  border-radius: 26px;
  padding: 22px;
  box-shadow: 0 20px 54px rgba(39,31,61,.10);
}
.reminder-general-card {
  margin-top: 16px;
}
.reminder-contact-grid {
  gap: 12px;
}
.reminder-wheel-row {
  grid-template-columns: minmax(0, 1.15fr) minmax(190px, .85fr) auto;
  gap: 12px;
  border-radius: 22px;
  padding: 14px;
}
.reminder-wheel-grid {
  grid-template-columns: minmax(0, 1fr) 86px;
}
.date-wheel {
  height: 142px;
  border-radius: 16px;
}
.date-wheel-option {
  min-height: 36px;
  border-radius: 12px;
}
.reminder-label input {
  min-height: 50px;
  border-radius: 16px;
  font-size: 16px;
}
.reminder-card-actions {
  grid-template-columns: minmax(0, .7fr) minmax(0, 1fr);
}
@media (max-width: 760px) {
  .reminder-wrap {
    width: min(100% - 24px, 720px);
    padding-top: 18px;
  }
  .reminder-logo {
    width: 58px;
    height: 58px;
  }
  .reminder-hero h1,
  .reminder-done h1 {
    font-size: clamp(34px, 9vw, 44px);
    line-height: 1.04;
  }
  .reminder-card {
    padding: 16px;
    border-radius: 24px;
  }
  .reminder-contact-grid,
  .reminder-wheel-row,
  .reminder-card-actions {
    grid-template-columns: 1fr;
  }
  .reminder-wheel-grid {
    grid-template-columns: minmax(0, 1fr) 76px;
  }
  .date-wheel {
    height: 128px;
    padding: 7px;
  }
  .reminder-shop-cta,
  .reminder-card-actions .btn {
    width: 100%;
  }
}

/* Keep Final Bloom public form styling last so legacy public-page rules cannot override it. */
.reminder-public {
  --fb-forest: #123728;
  --fb-cream: #fff4e2;
  --fb-paper: #fffdf8;
  --fb-pink: #ff4fa3;
  --fb-palm: #5f7438;
  --fb-line: rgba(18, 55, 40, .16);
  position: relative;
  overflow-x: clip;
  color: var(--fb-forest);
  background-color: var(--fb-cream);
  background-image:
    linear-gradient(rgba(255, 244, 226, .86), rgba(255, 253, 248, .92)),
    url("/public/brand/df-final-paper.webp");
  background-position: center top;
  background-size: auto, 1280px auto;
  font-family: Inter, "Avenir Next", "Segoe UI", system-ui, sans-serif;
}
.reminder-public::before,
.reminder-public::after {
  content: "";
  position: fixed;
  z-index: 0;
  pointer-events: none;
}
.reminder-public::before {
  inset: 0;
  background: url("/public/brand/df-final-checker.svg") 50% 0 / 190px auto repeat;
  opacity: .045;
}
.reminder-public::after {
  top: 8vh;
  right: -54px;
  width: min(28vw, 320px);
  aspect-ratio: 1;
  background: url("/public/brand/df-final-petals.svg") center / contain no-repeat;
  opacity: .07;
}
.reminder-public .reminder-wrap {
  position: relative;
  z-index: 1;
  width: min(840px, calc(100% - 32px));
  padding: 38px 0 64px;
}
.reminder-public .reminder-hero {
  max-width: 710px;
  margin: 0 auto 24px;
}
.reminder-public .reminder-logo-link {
  width: min(260px, 72vw);
  margin: 0 auto 20px;
}
.reminder-public .reminder-logo {
  display: block;
  width: 100%;
  height: auto;
  max-height: 78px;
  margin: 0;
  object-fit: contain;
}
.reminder-public .eyebrow {
  margin: 0 0 12px;
  color: #a82e63;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
}
.reminder-public .reminder-hero h1,
.reminder-public .reminder-done h1 {
  max-width: 680px;
  margin: 0 auto 14px;
  color: var(--fb-forest);
  font-family: "Avenir Next", "Trebuchet MS", system-ui, sans-serif;
  font-size: clamp(36px, 6vw, 54px);
  font-weight: 700;
  line-height: 1.04;
}
.reminder-public .reminder-hero p,
.reminder-public .reminder-done p {
  max-width: 610px;
  color: rgba(18, 55, 40, .74);
  font-size: clamp(16px, 2.2vw, 19px);
  line-height: 1.55;
}
.reminder-public .reminder-hero p strong,
.reminder-public .reminder-done p strong {
  color: var(--fb-forest);
}
.reminder-public .reminder-shop-cta,
.reminder-public .btn-primary {
  border-color: var(--fb-forest);
  color: #fffdf8;
  background: var(--fb-forest);
  box-shadow: 0 10px 26px rgba(18, 55, 40, .16);
}
.reminder-public .reminder-card {
  border: 1px solid var(--fb-line);
  border-radius: 20px;
  padding: 24px;
  background: rgba(255, 253, 248, .96);
  box-shadow: 0 24px 64px rgba(18, 55, 40, .12);
}
.reminder-public .reminder-label,
.reminder-public .wheel-field legend {
  color: var(--fb-forest);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .055em;
}
.reminder-public .reminder-label input,
.reminder-public .reminder-label textarea,
.reminder-public .reminder-label select {
  min-height: 52px;
  border: 1px solid var(--fb-line);
  border-radius: 12px;
  color: var(--fb-forest);
  background: #fffdfa;
  box-shadow: none;
  font-size: 16px;
  font-weight: 650;
}
.reminder-public .reminder-label input:focus,
.reminder-public .reminder-label textarea:focus,
.reminder-public .reminder-label select:focus {
  border-color: var(--fb-pink);
  outline: 3px solid rgba(255, 79, 163, .13);
}
.reminder-public .reminder-wheel-row {
  grid-template-columns: minmax(0, 1.18fr) minmax(210px, .82fr) auto;
  gap: 14px;
  border: 1px solid rgba(18, 55, 40, .11);
  border-radius: 16px;
  padding: 16px;
  background: rgba(255, 244, 226, .42);
}
.reminder-public .reminder-wheel-grid {
  grid-template-columns: minmax(0, 1fr) 88px;
  gap: 8px;
}
.reminder-public .date-wheel {
  height: 148px;
  border: 1px solid var(--fb-line);
  border-radius: 12px;
  background: #fffdfa;
  scrollbar-color: rgba(18, 55, 40, .34) transparent;
}
.reminder-public .date-wheel-option {
  min-height: 38px;
  border-radius: 9px;
  color: rgba(18, 55, 40, .72);
  font-weight: 700;
}
.reminder-public .date-wheel-option.active {
  color: var(--fb-forest);
  background: #ffe3a0;
  box-shadow: inset 0 0 0 1px rgba(255, 79, 163, .3);
}
.reminder-public .date-preview {
  color: var(--fb-palm);
  font-weight: 800;
}
.reminder-public .btn-outline {
  border-color: var(--fb-line);
  color: var(--fb-forest);
  background: #fffdfa;
}

@media (max-width: 760px) {
  .reminder-public::after {
    top: 2vh;
    right: -92px;
    width: 250px;
    opacity: .045;
  }
  .reminder-public .reminder-wrap {
    width: min(100% - 24px, 840px);
    padding: 24px 0 42px;
  }
  .reminder-public .reminder-logo-link {
    width: min(226px, 68vw);
    margin-bottom: 18px;
  }
  .reminder-public .reminder-logo {
    width: 100%;
    height: auto;
    max-height: 68px;
  }
  .reminder-public .reminder-hero h1,
  .reminder-public .reminder-done h1 {
    font-size: clamp(34px, 9vw, 44px);
    line-height: 1.06;
  }
  .reminder-public .reminder-card {
    padding: 16px;
    border-radius: 16px;
  }
  .reminder-public .reminder-contact-grid,
  .reminder-public .reminder-wheel-row,
  .reminder-public .reminder-card-actions {
    grid-template-columns: 1fr;
  }
  .reminder-public .reminder-wheel-grid {
    grid-template-columns: minmax(0, 1fr) 80px;
  }
  .reminder-public .date-wheel {
    height: 140px;
  }
  .reminder-public .reminder-shop-cta,
  .reminder-public .reminder-card-actions .btn {
    width: 100%;
  }
}
/* Team bug inbox */
.side-links .side-feedback-link{margin-top:14px;border:1px solid rgba(255,244,226,.16);background:rgba(255,255,255,.055)}
.bug-reports-page{max-width:1120px}
.bug-reports-hero{display:flex;align-items:center;justify-content:space-between;gap:24px}
.bug-report-create{position:relative;flex:0 0 auto}
.bug-report-plus{display:grid;place-items:center;width:62px;height:62px;border-radius:50%;background:#ff4fa3;color:#123728;font-size:38px;line-height:1;cursor:pointer;box-shadow:0 14px 30px rgba(183,66,125,.2);list-style:none}
.bug-report-plus::-webkit-details-marker{display:none}
.bug-report-create[open] .bug-report-plus{transform:rotate(45deg)}
.bug-report-create form{position:absolute;right:0;top:76px;z-index:20;width:min(560px,calc(100vw - 38px));padding:22px;border:1px solid #eadccb;border-radius:24px;background:#fffdf8;box-shadow:0 22px 70px rgba(18,55,40,.2)}
.bug-report-create form label{display:grid;gap:7px;margin-bottom:14px;font-weight:800;color:#123728}
.bug-report-create textarea{min-height:145px;resize:vertical}
.bug-report-file{padding:14px;border:1px dashed #d9c9bc;border-radius:16px;background:#fff8f0}
.bug-report-file input{padding:0;border:0;background:transparent}
.bug-report-file small{font-weight:600;color:#708076}
.bug-report-list{display:grid;gap:16px;margin-top:20px}
.bug-report-card{padding:22px}
.bug-report-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.bug-report-card>header>div:first-child{display:grid;gap:4px}
.bug-report-card>header small{color:#75837b}
.bug-report-status{width:max-content;padding:5px 10px;border-radius:999px;background:#ffe4ef;color:#8f275d;font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.bug-report-card.is-resolved{background:#f4f7f2;border-color:#b7d8bd}
.bug-report-card.is-resolved .bug-report-status{background:#e3f1df;color:#315d3c}
.bug-report-description{max-width:850px;margin:18px 0 10px;white-space:pre-wrap;font-size:17px;line-height:1.55;color:#193f31}
.bug-report-location{margin:0 0 12px;color:#69796f}
.bug-report-actions{display:flex;align-items:center;gap:8px}
.bug-report-actions form{margin:0}
.bug-report-screenshots{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,220px));gap:10px;margin-top:16px}
.bug-report-screenshots a{display:block;overflow:hidden;border:1px solid #dfd4c9;border-radius:16px;background:#f5efe7;aspect-ratio:4/3}
.bug-report-screenshots img{width:100%;height:100%;object-fit:cover}
.bug-report-card>footer{margin-top:14px;padding-top:12px;border-top:1px solid #dfded8;color:#68776e;font-size:13px;font-weight:700}
@media(max-width:720px){.bug-reports-hero{align-items:flex-start}.bug-reports-hero h1{font-size:38px}.bug-report-plus{width:54px;height:54px}.bug-report-create form{position:fixed;top:88px;right:16px;left:16px;width:auto;max-height:calc(100dvh - 110px);overflow:auto}.bug-report-card>header{align-items:flex-start}.bug-report-actions{flex-direction:column;align-items:flex-end}.bug-report-screenshots{grid-template-columns:repeat(2,1fr)}}
.order-address-head-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.order-address-head-actions form{display:flex;margin:0}
.order-address-dialog{width:min(760px,calc(100vw - 28px));max-height:calc(100dvh - 32px);padding:0;border:0;border-radius:26px;background:#fffdf8;color:#123728;box-shadow:0 28px 90px rgba(18,55,40,.26)}
.order-address-dialog::backdrop{background:rgba(14,29,24,.55);backdrop-filter:blur(4px)}
.order-address-edit-form{padding:24px}
.order-address-dialog__head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:16px}
.order-address-dialog__head h2{margin:2px 0 4px}
.order-address-dialog .fake-address-status{margin:0 0 16px;padding:11px 14px;border-radius:14px;background:#f6f4e9;color:#627267;font-weight:700}
.order-address-dialog .fake-address-status[data-tone="ready"]{background:#e9f4e5;color:#315d3c}
.order-address-dialog .fake-address-status[data-tone="error"]{background:#fff0ed;color:#9a3b30}
@media(max-width:640px){.order-address-head-actions{width:100%;justify-content:stretch}.order-address-head-actions .btn,.order-address-head-actions form{flex:1}.order-address-head-actions form .btn{width:100%}.order-address-dialog{max-height:calc(100dvh - 14px)}.order-address-edit-form{padding:18px}.order-address-dialog .form-grid.two{grid-template-columns:1fr}}
.marketing-status-live{display:inline-flex;align-items:center;gap:7px;flex:0 0 auto;padding:8px 11px;border:1px solid rgba(49,93,60,.2);border-radius:999px;background:#edf7e9;color:#315d3c;font-size:10px;font-weight:950;letter-spacing:.08em;text-transform:uppercase}
.marketing-status-live::before{content:"";width:7px;height:7px;border-radius:50%;background:#64a457;box-shadow:0 0 0 4px rgba(100,164,87,.13)}

/* Staff email two-factor login */
.login-code-card .eyebrow{margin-top:8px}.login-code-input{text-align:center;font-size:30px;font-weight:900;letter-spacing:.28em;font-variant-numeric:tabular-nums}.login-code-help{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:16px 0;color:var(--muted);font-size:12px;font-weight:800}.login-code-help form{margin:0}.login-code-help .link-button{color:#9d2a61;cursor:pointer}.login-code-help .link-button:disabled{color:var(--muted);cursor:not-allowed;opacity:.7}.admin-staff-row{grid-template-columns:minmax(0,1fr) auto auto}.admin-staff-row .staff-email-form{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;padding:10px;border-radius:16px;background:#fffaf5;border:1px solid var(--line)}
@media(max-width:480px){.admin-staff-row .staff-email-form{grid-template-columns:1fr}.login-code-help{align-items:flex-start;flex-direction:column}}

/* Read-only Zoho mailbox inside Email Studio */
.mailbox-card{margin:14px 0 22px;border:1px solid var(--line);border-radius:26px;background:rgba(255,255,255,.92);box-shadow:0 16px 44px rgba(24,50,40,.07);overflow:hidden}.mailbox-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:22px 24px 16px}.mailbox-head h2{margin:2px 0 5px;font-size:26px;overflow-wrap:anywhere}.mailbox-head p{margin:0;color:var(--muted);line-height:1.45}.mailbox-connection{display:inline-flex;align-items:center;gap:7px;flex:0 0 auto;padding:8px 11px;border-radius:999px;background:#fff1ed;color:#914039;font-size:10px;font-weight:950;letter-spacing:.08em;text-transform:uppercase}.mailbox-connection::before{content:"";width:7px;height:7px;border-radius:50%;background:#d46a5e}.mailbox-connection.is-connected{background:#edf7e9;color:#315d3c}.mailbox-connection.is-connected::before{background:#64a457;box-shadow:0 0 0 4px rgba(100,164,87,.13)}.mailbox-tabs{display:flex;gap:8px;padding:0 24px 16px;border-bottom:1px solid var(--line)}.mailbox-tabs a{min-width:108px;padding:10px 18px;border:1px solid var(--line);border-radius:999px;text-align:center;font-size:12px;font-weight:950;text-transform:uppercase;letter-spacing:.06em;background:#fff;color:var(--ink)}.mailbox-tabs a.active{background:var(--ink);border-color:var(--ink);color:#fff}.mailbox-error{margin:20px 24px 24px;padding:18px;border:1px solid #f0c9c0;border-radius:18px;background:#fff6f2}.mailbox-error strong{display:block;font-size:17px}.mailbox-error p{color:#87433b;overflow-wrap:anywhere}.mailbox-layout{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(0,1.25fr);min-height:520px}.mailbox-list{max-height:650px;overflow:auto;border-right:1px solid var(--line);background:#fff}.mailbox-row{position:relative;display:grid;gap:5px;padding:15px 18px;border-bottom:1px solid var(--line);color:var(--ink);transition:background .15s ease}.mailbox-row:hover,.mailbox-row.active{background:#fff7fb}.mailbox-row.active::before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:4px;border-radius:0 8px 8px 0;background:#df5b9c}.mailbox-row-top{display:flex;justify-content:space-between;gap:12px;align-items:baseline;min-width:0}.mailbox-row-top strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mailbox-row-top time{flex:0 0 auto;color:var(--muted);font-size:10px}.mailbox-row>b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.mailbox-preview{display:-webkit-box;overflow:hidden;color:var(--muted);font-size:12px;line-height:1.35;-webkit-line-clamp:2;-webkit-box-orient:vertical}.mailbox-row small{width:max-content;padding:3px 7px;border-radius:999px;background:#f3edff;color:#6a4ca8;font-weight:850}.mailbox-empty{padding:30px 20px;text-align:center;color:var(--muted)}.mailbox-pages{display:flex;align-items:center;justify-content:center;gap:10px;padding:14px}.mailbox-pages .btn{padding:8px 12px}.mailbox-pages span{color:var(--muted);font-size:11px;font-weight:850}.mailbox-reader{position:relative;min-width:0;padding:24px;background:linear-gradient(145deg,#fffdfa,#fff)}.mailbox-reader h3{margin:5px 42px 18px 0;font-size:27px;line-height:1.1;overflow-wrap:anywhere}.mailbox-reader-close{position:absolute;right:18px;top:18px;display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--ink);font-size:24px}.mailbox-meta{display:grid;gap:8px;margin:0 0 22px;padding:13px 15px;border:1px solid var(--line);border-radius:16px;background:#fffaf5}.mailbox-meta div{display:grid;grid-template-columns:46px minmax(0,1fr);gap:10px}.mailbox-meta dt{color:var(--muted);font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.07em}.mailbox-meta dd{margin:0;overflow-wrap:anywhere;font-size:12px;font-weight:750}.mailbox-body{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.65;color:#263a31}.mailbox-reader-placeholder{min-height:430px;display:grid;place-content:center;justify-items:center;gap:8px;text-align:center;color:var(--muted)}.mailbox-reader-placeholder span{display:grid;place-items:center;width:58px;height:58px;border-radius:18px;background:#fff0f7;color:#ba4e81;font-size:28px}.mailbox-reader-placeholder strong{color:var(--ink);font-size:18px}.mailbox-reader-placeholder p{max-width:360px;margin:0;line-height:1.5}
@media(max-width:760px){.mailbox-head{display:grid;padding:18px}.mailbox-connection{width:max-content}.mailbox-tabs{padding:0 18px 14px}.mailbox-tabs a{flex:1;min-width:0}.mailbox-layout{display:flex;min-height:0;flex-direction:column}.mailbox-list{max-height:520px;border-right:0}.mailbox-reader{min-height:380px;border-top:1px solid var(--line);padding:20px}.mailbox-layout.has-selection .mailbox-reader{order:-1}.mailbox-layout.has-selection .mailbox-list{max-height:340px}.mailbox-reader-placeholder{min-height:280px}.mailbox-reader h3{font-size:23px}.mailbox-error{margin:16px 18px 20px}}

/* Flowers purchasing, package prices, and product recipes */
.flowers-page,.flower-recipe-page{max-width:1440px}.flowers-hero{position:relative;display:flex;align-items:flex-end;justify-content:space-between;gap:34px;overflow:hidden;margin-bottom:18px;padding:34px;border:1px solid #e4d9ce;border-radius:30px;background:radial-gradient(circle at 82% 20%,rgba(255,216,91,.24),transparent 26%),linear-gradient(135deg,#fffaf1 0%,#fff5fa 55%,#f1efe9 100%);box-shadow:0 20px 55px rgba(40,59,48,.08)}.flowers-hero::after{content:"";position:absolute;right:-50px;top:-65px;width:220px;height:220px;border:34px solid rgba(223,91,156,.08);border-radius:50%}.flowers-hero>div{position:relative;z-index:1}.flowers-hero h1{max-width:720px;margin:4px 0 10px;font-size:clamp(38px,5vw,66px);line-height:.98}.flowers-hero p{max-width:750px;margin:0;color:#61736a;font-size:16px;line-height:1.5}.flowers-hero__legend{display:grid;grid-template-columns:repeat(3,minmax(100px,1fr));flex:0 0 auto;overflow:hidden;border:1px solid #ded8ce;border-radius:20px;background:rgba(255,255,255,.84);box-shadow:0 12px 30px rgba(30,58,45,.08)}.flowers-hero__legend span{display:grid;gap:2px;padding:14px 16px;border-left:1px solid #e6ddd4;color:#718078;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.05em}.flowers-hero__legend span:first-child{border-left:0}.flowers-hero__legend b{color:#173c2d;font-size:18px;letter-spacing:0;text-transform:none}.flowers-controls{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:14px;margin:18px 0}.flowers-control-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 14px;align-items:end;padding:18px;border:1px solid #e3d9cf;border-radius:22px;background:#fffdf9;box-shadow:0 12px 32px rgba(36,57,46,.06)}.flowers-control-card>div{grid-column:1/-1}.flowers-control-card h2{margin:2px 0 4px;font-size:21px}.flowers-control-card p{margin:0;color:#758178;font-size:12px;line-height:1.45}.flowers-control-card label{display:grid;gap:5px;color:#435a4d;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.flowers-control-card input,.flowers-control-card select{min-width:0}.flowers-control-card .btn{min-height:46px}.money-input{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;border:1px solid #d9d6cf;border-radius:12px;background:#fff}.money-input:focus-within{border-color:#df5b9c;box-shadow:0 0 0 3px rgba(223,91,156,.12)}.money-input b{padding-left:12px}.money-input input{border:0!important;box-shadow:none!important}.flower-price-card,.flower-products-card{margin-top:18px;padding:0;overflow:hidden}.flower-price-head,.flower-products-head{padding:24px 26px 18px}.flower-price-head h2,.flower-products-head h2{margin:2px 0 5px}.flower-save-status{flex:0 0 auto;padding:8px 12px;border-radius:999px;background:#eef5ea;color:#526e4b;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.flower-save-status.is-dirty{background:#fff0f7;color:#a93d72}.flower-matrix-wrap{overflow:auto;max-height:72vh;border-block:1px solid #e4ddd5;background:#fff}.flower-matrix{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0}.flower-matrix th,.flower-matrix td{border-right:1px solid #e8e1da;border-bottom:1px solid #eee8e2}.flower-matrix thead th{position:sticky;top:0;z-index:4;min-width:205px;padding:14px;background:#1b3e2f;color:#fff;text-align:left;font-size:13px}.flower-matrix thead th:first-child{left:0;z-index:6;min-width:190px}.flower-matrix thead small{display:block;margin-top:3px;color:#c4d4cc;font-size:9px;font-weight:750;text-transform:uppercase;letter-spacing:.06em}.flower-matrix tbody>tr>th{position:sticky;left:0;z-index:3;min-width:190px;padding:13px 16px;background:#fffdf9;text-align:left}.flower-matrix tbody>tr>th strong{display:block;font-size:14px}.flower-matrix tbody>tr>th small{color:#849087;font-size:9px;text-transform:uppercase;letter-spacing:.05em}.flower-matrix tbody td{min-width:205px;padding:9px;background:#fff}.flower-matrix__group th{left:0!important;z-index:5!important;padding:8px 16px!important;background:#f0eee6!important;color:#7b774a!important;font-size:9px!important;text-transform:uppercase;letter-spacing:.12em}.flower-package-cell{display:grid;grid-template-columns:1fr 1fr;gap:6px}.flower-package-cell label{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;border:1px solid #ddd8d1;border-radius:10px;background:#fffdf9}.flower-package-cell label:focus-within{border-color:#df5b9c;box-shadow:0 0 0 2px rgba(223,91,156,.1)}.flower-package-cell label span{padding-left:8px;color:#8c776b;font-size:11px;font-weight:900}.flower-package-cell input{width:100%;min-width:0;padding:8px 6px;border:0!important;background:transparent!important;box-shadow:none!important;font-size:12px}.flower-package-cell>small{grid-column:1/-1;min-height:14px;color:#728077;font-size:9px;font-weight:800}.flower-matrix-actions{position:sticky;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 24px;background:#fffdf9;box-shadow:0 -10px 28px rgba(28,49,38,.07)}.flower-matrix-actions p{margin:0;color:#718078;font-size:12px}.flower-product-search{display:grid;gap:5px;min-width:min(340px,100%);color:#66776d;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.07em}.flower-product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:0 24px 26px}.flower-product-card{position:relative;display:grid;grid-template-columns:58px minmax(0,1fr) auto auto;gap:12px;align-items:center;min-width:0;padding:10px;border:1px solid #e2dcd4;border-radius:17px;background:#fff;color:#173c2d;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}.flower-product-card:hover{transform:translateY(-2px);border-color:#dfa5c1;box-shadow:0 12px 25px rgba(45,59,51,.09)}.flower-product-card__image{display:grid;place-items:center;overflow:hidden;width:58px;height:58px;border-radius:13px;background:#f6eee8;color:#c24883}.flower-product-card__image img{width:100%;height:100%;object-fit:cover}.flower-product-card__copy{display:grid;gap:4px;min-width:0}.flower-product-card__copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.flower-product-card__copy small{color:#75847b;font-size:9px;text-transform:uppercase;letter-spacing:.04em}.flower-product-card__status{padding:6px 8px;border-radius:999px;background:#fff0ed;color:#a04339;font-size:9px;font-weight:900;white-space:nowrap;text-transform:uppercase;letter-spacing:.04em}.flower-product-card__status.is-ready{background:#edf6e9;color:#3c703f}.flower-product-card__arrow{font-size:20px}.flower-product-empty{padding:30px;text-align:center;color:#718078}.flower-recipe-hero__product{display:flex;align-items:center;gap:18px}.flower-recipe-hero__product img{width:94px;height:94px;object-fit:cover;border-radius:22px;box-shadow:0 12px 28px rgba(36,54,44,.12)}.flower-recipe-editor{padding:0;overflow:hidden}.flower-recipe-fields{padding:24px}.product-form>.flower-recipe-fields{margin-top:20px;border:1px solid #e1d8cf;border-radius:22px;background:linear-gradient(145deg,#fffdf9,#fff8fb)}.flower-recipe-fields__head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.flower-recipe-fields__head h2{margin:2px 0 5px}.flower-recipe-table-wrap{overflow:auto;max-height:66vh;border:1px solid #e2dcd4;border-radius:17px;background:#fff}.flower-recipe-table{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0}.flower-recipe-table th,.flower-recipe-table td{border-right:1px solid #e9e2db;border-bottom:1px solid #eee9e3}.flower-recipe-table thead th{position:sticky;top:0;z-index:4;min-width:130px;padding:13px;background:#1b3e2f;color:#fff;text-align:center;font-size:12px}.flower-recipe-table thead th:first-child{left:0;z-index:6;min-width:190px;text-align:left}.flower-recipe-table thead small{display:block;margin-top:2px;color:#c1d0c8;font-size:8px;text-transform:uppercase;letter-spacing:.07em}.flower-recipe-table tbody>tr>th{position:sticky;left:0;z-index:3;padding:11px 14px;background:#fffdf9;text-align:left;font-size:12px}.flower-recipe-table tbody td{padding:7px;background:#fff;text-align:center}.flower-recipe-table input{width:74px;padding:9px;text-align:center}.flower-recipe-table__group th{left:0!important;z-index:5!important;background:#f1eee5!important;color:#777349!important;font-size:9px!important;text-transform:uppercase;letter-spacing:.1em}.flower-recipe-editor>.product-form-actions{padding:0 24px 24px}.order-procurement-card{overflow:hidden;background:linear-gradient(135deg,#fffdf9,#f6faef)}.order-procurement-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.order-procurement-head h2{margin:2px 0 4px}.procurement-route-badge{display:grid;place-items:center;min-width:64px;padding:8px 10px;border-radius:16px;background:#1b3e2f;color:#fff;font-size:9px;font-weight:900;text-align:center;text-transform:uppercase;letter-spacing:.06em}.procurement-route-badge b{font-size:22px;line-height:1}.procurement-needs{display:flex;flex-wrap:wrap;gap:7px;margin:16px 0}.procurement-needs span{padding:7px 10px;border:1px solid #dde4d5;border-radius:999px;background:#fff;color:#597066;font-size:10px;font-weight:750}.procurement-needs strong{color:#173c2d}.procurement-details{margin-top:14px;border:1px solid #dddcd3;border-radius:17px;background:#fff}.procurement-details>summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;cursor:pointer;color:#173c2d;font-weight:900;list-style:none}.procurement-details>summary::-webkit-details-marker{display:none}.procurement-details>summary::before{content:"+";display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#edf6e9;color:#315d3c}.procurement-details[open]>summary::before{content:"−"}.procurement-details>summary span{margin-left:auto;color:#a13569}.procurement-store-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:0 14px 14px}.procurement-store-card{overflow:hidden;border:1px solid #e4ddd5;border-radius:15px;background:#fffdf9}.procurement-store-card header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;background:#f2f5ec}.procurement-store-card header span{display:block;color:#76847b;font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.procurement-store-card h3{margin:1px 0 0;font-size:17px}.procurement-store-card header>strong{color:#a13569}.procurement-store-items{display:grid}.procurement-store-items>div{position:relative;display:grid;gap:3px;padding:11px 54px 11px 14px;border-top:1px solid #eee8e1}.procurement-store-items>div:first-child{border-top:0}.procurement-store-items span{font-size:12px}.procurement-store-items small{color:#738078;font-size:9px}.procurement-store-items em{position:absolute;right:13px;top:13px;color:#173c2d;font-size:11px;font-style:normal;font-weight:900}.procurement-explanation{margin:0;padding:12px 16px;border-top:1px solid #ebe5de;color:#6d7b73;font-size:10px;line-height:1.5}.procurement-warning{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:9px;align-items:center;margin-top:10px;padding:10px 12px;border:1px solid #f0d0b8;border-radius:13px;background:#fff7ee;font-size:10px}.procurement-warning strong{color:#8e4b25}.procurement-warning span{color:#6e766f}.procurement-warning a{font-weight:900;color:#a13569}
.flower-row-heading{display:flex;align-items:center;justify-content:space-between;gap:9px}.flower-row-heading>span{min-width:0}.flower-row-delete{display:grid;place-items:center;flex:0 0 auto;width:28px;height:28px;padding:0;border:1px solid #ead9dc;border-radius:9px;background:#fff6f7;color:#a24b58;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .15s ease}.flower-row-delete svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.flower-row-delete:hover,.flower-row-delete:focus-visible{transform:translateY(-1px);border-color:#cf7f8c;background:#ffe7eb;color:#812f3e;outline:0}.flower-row-delete:focus-visible{box-shadow:0 0 0 3px rgba(199,84,136,.14)}
@media(max-width:1050px){.flowers-hero{align-items:flex-start;flex-direction:column}.flowers-controls{grid-template-columns:1fr 1fr}.flowers-controls>:first-child{grid-column:1/-1}.flower-product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.flowers-hero{padding:24px 20px;border-radius:23px}.flowers-hero h1{font-size:42px}.flowers-hero__legend{grid-template-columns:repeat(3,1fr);width:100%}.flowers-hero__legend span{padding:11px 8px}.flowers-controls{grid-template-columns:1fr}.flowers-controls>:first-child{grid-column:auto}.flowers-control-card{grid-template-columns:1fr}.flowers-control-card .btn{width:100%}.flower-price-head,.flower-products-head{align-items:stretch;flex-direction:column;padding:20px}.flower-product-search{width:100%;min-width:0}.flower-product-grid{grid-template-columns:1fr;padding:0 14px 20px}.flower-product-card{grid-template-columns:52px minmax(0,1fr) auto}.flower-product-card__image{width:52px;height:52px}.flower-product-card__status{grid-column:2/3;width:max-content}.flower-product-card__arrow{grid-column:3;grid-row:1/3}.flower-matrix-actions{padding:13px 14px}.flower-matrix-actions .btn{flex:1}.flower-recipe-fields{padding:18px 14px}.flower-recipe-fields__head{flex-direction:column}.flower-recipe-fields__head .btn{width:100%}.flower-recipe-hero__product{align-items:flex-start}.flower-recipe-hero__product img{width:74px;height:74px}.procurement-store-grid{grid-template-columns:1fr}.procurement-warning{grid-template-columns:1fr}.procurement-warning a{width:max-content}.order-procurement-head{align-items:center}}

/* Order timeline: the note that explains a status event (for example why Shopify fulfillment failed). */
.timeline .timeline-note{font-size:13px;color:#5d5668;overflow-wrap:anywhere}

/* Recipient provenance: whether the customer typed a recipient name or we only
   have the name from the delivery address / the buyer. Reversible: remove this
   block and the markup falls back to plain text. */
.recipient-line{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px;margin:7px 0 0;border-radius:10px;padding:6px 9px;font-size:13px;line-height:1.3;background:#f4f1fb;color:#4a4159}
.recipient-line__label{font-size:10px;font-weight:950;letter-spacing:.08em;text-transform:uppercase;color:#7b7586}
.recipient-line__name{font-size:15px;font-weight:900;color:#2f2740;overflow-wrap:anywhere}
.recipient-line__hint{font-size:11px;font-weight:800;color:#7b7586}
.recipient-line--gift{background:#fff0f8;color:#9d2a61}
.recipient-line--gift .recipient-line__label,.recipient-line--gift .recipient-line__hint{color:#b8508a}
.recipient-line--gift .recipient-line__name{color:#8d1f56}
.recipient-line--warn{background:#fff7d8;color:#6b4d12}
.recipient-line--warn .recipient-line__label,.recipient-line--warn .recipient-line__hint{color:#a0741f}
.recipient-line--warn .recipient-line__name{color:#5c400c}
.recipient-line--missing{background:#fff0f3;color:#9d2340}
.recipient-line--missing .recipient-line__label,.recipient-line--missing .recipient-line__hint{color:#b5405c}
.recipient-line--missing .recipient-line__name{color:#9d2340}
.recipient-line+.gift-line{margin-top:4px}
.recipient-source{display:block;margin-top:4px;font-size:11px;font-weight:800;color:#7b7586}
.recipient-source--gift{color:#b8508a}
.recipient-source--warn{color:#a0741f}
.recipient-source--missing{color:#b5405c}
.recipient-detail-card--source-warn{border-color:#f2dfa3;background:#fffaf0}
.recipient-detail-card--source-gift{border-color:#f4c8de;background:#fff7fb}
.gift-box__for{display:block;margin-bottom:6px;font-size:12px;font-weight:800;color:#b8508a}
.gift-box__for--warn{color:#a0741f}
.gift-box__for--missing{color:#b5405c}
.print-text-hint{display:block;margin-top:6px;font-size:12px;font-weight:700;text-transform:none;letter-spacing:0;color:#7b7586}
.print-text-hint--warn{color:#a0741f}

/* Pickup -> delivery change (staff dialog + public page) */
.delivery-change-dialog .delivery-date-dialog__body{max-width:520px}
.delivery-change-current{display:grid;gap:8px;margin-bottom:14px}
.delivery-change-link{display:grid;gap:5px;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;color:#7b7586}
.delivery-change-link input{font-size:13px;font-weight:600;text-transform:none;letter-spacing:0;color:#2f2740}
.delivery-change-send{display:grid;gap:12px}
.delivery-change-check{display:flex;gap:10px;align-items:flex-start;font-size:13px;font-weight:700;text-transform:none;letter-spacing:0;color:#4a4159}
.delivery-change-check input{width:auto;margin-top:3px}
.delivery-change-section{display:grid;gap:12px;margin-top:22px}
.delivery-change-section h2{margin:0;font-size:20px}
.delivery-change-form .fake-address-grid{margin-top:4px}
.delivery-change-payment{margin-bottom:22px}
.delivery-change-public .custom-order-public-summary{display:grid;gap:10px;margin:0 0 18px}
.delivery-change-public .custom-order-public-summary div{display:grid;gap:3px}
.delivery-change-public .custom-order-public-summary span{font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;color:#7b7586}

/* Print cards shortcut in the order action grid */
.detail-actions .btn-print{display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;background:#fffaf5;border-color:#ddd6ce;color:#2f2740}

/* ===== flowers.css ===== */
/* Smart daily flower run, multi-package price book, and recipe controls. */
.flower-price-card .flower-matrix tbody tr:not(.flower-matrix__group)>th,
.flower-price-card .flower-matrix tbody tr:not(.flower-matrix__group)>td{vertical-align:top!important}
.flower-price-tools{display:grid;justify-items:end;gap:10px;flex:0 0 auto}.flower-print-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.flower-pdf-download{font-size:11px;font-weight:800;text-decoration:underline}.flower-reference-photo{position:relative;width:160px;margin:0 auto 11px;border-radius:15px;overflow:hidden;background:#f7f4ed}.flower-reference-photo>img{display:block;width:160px;height:112px;object-fit:contain}.flower-photo-edit{position:absolute;right:5px;bottom:5px;display:grid;place-items:center;width:36px;height:36px;padding:7px;border:1px solid #e5ddd5;border-radius:50%;background:rgba(255,255,255,.95);color:#305440;cursor:pointer;box-shadow:0 3px 9px #173c2d12}.flower-photo-edit:focus-visible{outline:3px solid #da73a3;outline-offset:-3px}.flower-photo-edit svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linejoin:round}.flower-photo-status{display:block;margin-top:5px;font-size:8px!important;text-transform:none!important;letter-spacing:0!important}.flower-photo-credits{padding:12px 24px;border-top:1px solid #e4ddd5;font-size:11px;color:#657168}.flower-photo-credits summary{cursor:pointer;font-weight:800}.flower-photo-credits li{margin-block:5px}.flower-price-card .flower-matrix tr:not(.flower-matrix__group)>th:first-child{width:200px;min-width:200px;max-width:200px;box-sizing:border-box}.flower-price-card .flower-matrix .flower-inventory-head,.flower-price-card .flower-inventory-cell{left:200px}
@media(max-width:760px){.flower-price-tools{justify-items:start}.flower-price-head{flex-wrap:wrap}.flower-photo-edit{width:40px;height:40px}.flower-photo-credits{padding-inline:14px}}
.flower-run-card{overflow:hidden;padding:0;background:linear-gradient(145deg,#fffdf9 0%,#fbf8ef 52%,#fff7fb 100%)}
.flower-run-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:25px 26px 20px;border-bottom:1px solid #e6ded6}
.flower-run-head h2{margin:2px 0 5px}.flower-run-head p{margin-bottom:0}
.flower-run-date{display:flex;align-items:flex-end;gap:8px;flex:0 0 auto}
.flower-run-date label{display:grid;gap:5px;color:#617268;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.07em}
.flower-run-date input{min-height:44px}
.flower-run-empty{display:flex;align-items:center;justify-content:center;gap:14px;min-height:170px;padding:28px;text-align:left}
.flower-run-empty>span{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:#eaf5e7;color:#34633d;font-size:22px;font-weight:900}
.flower-run-empty h3{margin:0 0 4px}.flower-run-empty p{margin:0;color:#748078}
.flower-run-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:#e8e0d7;border-bottom:1px solid #e8e0d7}
.flower-run-stats>div{display:grid;gap:4px;padding:16px 20px;background:rgba(255,253,249,.98)}
.flower-run-stats span{color:#748078;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.07em}
.flower-run-stats strong{font-size:19px}.flower-run-stats .is-accent{background:linear-gradient(135deg,#fff0f7,#fff9e9)}.flower-run-stats .is-accent strong{color:#a4366c}
.flower-run-orders{display:grid;gap:7px;padding:14px 24px 0}.flower-run-orders>span{color:#748078;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.07em}.flower-run-orders>div{display:flex;flex-wrap:wrap;gap:6px}.flower-run-orders a{display:grid;gap:1px;padding:7px 10px;border:1px solid #dddcd3;border-radius:11px;background:#fff;color:#173c2d}.flower-run-orders a:hover{border-color:#dfa5c1}.flower-run-orders a strong{font-size:10px}.flower-run-orders a small{color:#748078;font-size:8px}
.flower-run-needs{display:flex;flex-wrap:wrap;gap:7px;padding:17px 24px 0}
.flower-need-chip{display:grid;gap:2px;padding:9px 11px;border:1px solid #ead8c8;border-radius:13px;background:#fff8ef}
.flower-need-chip strong{font-size:11px}.flower-need-chip small{color:#786e67;font-size:9px}.flower-need-chip small b{color:#a13569}.flower-need-chip.is-covered{border-color:#d9e6d2;background:#f1f8ed}.flower-need-chip.is-covered small{color:#59715e}
.flower-run-route{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:17px 24px}
.flower-run-store{box-shadow:0 10px 24px rgba(32,54,42,.05)}
.procurement-pack-label{display:inline-block;margin-left:4px;padding:2px 5px;border-radius:999px;background:#f1e9f0;color:#8a4970;font-size:8px;font-style:normal;font-weight:850;vertical-align:1px}
.flower-run-summary{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 24px;border-top:1px solid #e6ded6;background:rgba(255,255,255,.62)}
.flower-run-summary p{max-width:820px;margin:0;color:#617168;font-size:11px;line-height:1.55}.flower-run-summary form{flex:0 0 auto}
.flower-run-card>.procurement-warning{margin:10px 24px}.flower-run-card>.procurement-warning:last-child{margin-bottom:20px}
.procurement-warning.is-neutral{border-color:#d9d9e6;background:#f7f6fb}.procurement-warning.is-neutral strong{color:#585275}
.flower-matrix--smart thead th:first-child{min-width:180px}.flower-matrix--smart thead .flower-inventory-head{left:180px;z-index:5;min-width:112px;background:#315845}.flower-inventory-cell{position:sticky;left:180px;z-index:2;min-width:112px!important;background:#f3f8ef!important;text-align:center}.flower-inventory-cell input{width:76px;padding:9px;text-align:center}.flower-inventory-cell small{display:block;margin-top:4px;color:#6e7d72;font-size:8px;font-weight:850;text-transform:uppercase;letter-spacing:.07em}
.flower-source-note{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 18px;align-items:center;margin:0 0 15px;padding:11px 13px;border:1px solid #d7e6d3;border-radius:13px;background:#f4fbf1;color:#36533c}.flower-source-note strong{font-size:12px}.flower-source-note span{grid-column:1;color:#5d7061;font-size:10px;line-height:1.45}.flower-source-note a{grid-column:2;grid-row:1 / span 2;color:#20523b;font-size:10px;font-weight:900}.flower-package-options{display:grid;gap:7px;min-width:198px}.flower-package-option{display:grid;gap:5px;padding:7px;border:1px solid #e1d9d2;border-radius:12px;background:#fffdf9}.flower-package-option__top{display:grid;grid-template-columns:minmax(0,1fr) 24px;gap:4px}.flower-package-option__top>input{padding:6px 7px;border:0;border-bottom:1px dashed #ddd2ca;border-radius:0;background:transparent;font-size:10px}.flower-package-option__top>button{display:grid;place-items:center;padding:0;border:0;border-radius:7px;background:#fbefeb;color:#9b4b3e;font-size:16px;cursor:pointer}.flower-package-option__values{display:grid;grid-template-columns:1fr 1fr;gap:5px}.flower-package-option__values label{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;border:1px solid #ddd8d1;border-radius:8px;background:#fff}.flower-package-option__values label span{padding-left:7px;color:#8c776b;font-size:10px;font-weight:900}.flower-package-option__values input{width:100%;min-width:0;padding:7px 5px;border:0!important;background:transparent!important;box-shadow:none!important;font-size:11px}.flower-package-option>small{color:#728077;font-size:8px;font-weight:800}.flower-package-option>.flower-package-source-note{color:#9a6a3b;font-weight:700;line-height:1.3}.flower-add-package{padding:6px;border:1px dashed #d9c9d1;border-radius:9px;background:#fff9fc;color:#a13c6d;font-size:9px;font-weight:900;cursor:pointer}.flower-add-package:hover{border-color:#df5b9c;background:#fff1f8}
.flower-product-filters{display:flex;gap:6px;padding:0 24px 14px}.flower-product-filters button{padding:7px 11px;border:1px solid #ded8d0;border-radius:999px;background:#fff;color:#5e7166;font-size:9px;font-weight:900;cursor:pointer}.flower-product-filters button.is-active{border-color:#1b3e2f;background:#1b3e2f;color:#fff}
.flower-recipe-tools{display:flex;align-items:end;gap:10px;margin-bottom:12px}.flower-recipe-tools>label:first-child{display:grid;gap:5px;min-width:220px;color:#66776d;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.07em}.flower-recipe-used-toggle{display:flex;align-items:center;gap:7px;min-height:44px;padding:0 10px;border:1px solid #ded8d0;border-radius:12px;background:#fff;color:#4d6256;font-size:10px;font-weight:850}.flower-recipe-used-toggle input{width:auto}.flower-recipe-tools .btn{margin-left:auto}.flower-recipe-totals{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:12px}.flower-recipe-totals>span{display:grid;gap:2px;padding:7px 10px;border-radius:11px;background:#edf5e9}.flower-recipe-totals small{color:#68786e;font-size:8px;text-transform:uppercase}.flower-recipe-totals strong{font-size:11px}.flower-recipe-totals .is-empty{background:#fff0ed;color:#9d4438}
.procurement-order-needs{margin:14px 0}.procurement-order-needs>span{display:block;margin-bottom:6px;color:#738078;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.07em}.procurement-daily-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:14px 0}.procurement-daily-summary>div{display:grid;gap:3px;padding:10px;border:1px solid #dde3d7;border-radius:13px;background:#fff}.procurement-daily-summary span{color:#738078;font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}.procurement-daily-summary strong{font-size:13px}.procurement-open-flowers{margin-top:14px}
.flower-activity-card{margin-top:18px;padding:0;overflow:hidden}.flower-activity-card>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:19px 24px;cursor:pointer;list-style:none}.flower-activity-card>summary::-webkit-details-marker{display:none}.flower-activity-card>summary h2{margin:2px 0 0}.flower-activity-card>summary>span{padding:7px 10px;border-radius:999px;background:#f1eee6;color:#65766c;font-size:9px;font-weight:900;text-transform:uppercase}.flower-activity-card[open]>summary>span{background:#1b3e2f;color:#fff}.flower-activity-list{border-top:1px solid #e6ded6}.flower-activity-list>div{display:grid;grid-template-columns:44px minmax(0,1fr) minmax(160px,.6fr);gap:12px;align-items:center;padding:10px 24px;border-top:1px solid #eee8e1}.flower-activity-list>div:first-child{border-top:0}.flower-activity-list>div>span{display:grid;gap:2px}.flower-activity-list small{color:#758178;font-size:9px}.flower-activity-delta{display:grid!important;place-items:center;width:38px;height:38px;border-radius:12px;font-size:12px;font-weight:900}.flower-activity-delta.is-positive{background:#edf6e9;color:#3f7042}.flower-activity-delta.is-negative{background:#fff0ed;color:#a24539}.flower-activity-note{margin:0;padding:12px 24px;border-top:1px solid #e6ded6;background:#fbfaf6;color:#68776e;font-size:10px}
@media(max-width:1050px){.flower-run-route{grid-template-columns:repeat(2,minmax(0,1fr))}.flower-matrix--smart thead .flower-inventory-head,.flower-inventory-cell{position:static}.flower-recipe-tools{flex-wrap:wrap}.flower-recipe-tools .btn{margin-left:0}}
@media(max-width:760px){.flowers-hero{align-items:stretch;padding:24px}.flowers-hero__legend{grid-template-columns:repeat(3,1fr)}.flowers-hero__legend span{padding:10px 8px}.flowers-controls{grid-template-columns:1fr}.flower-run-head{display:grid;padding:20px}.flower-run-date{display:grid;grid-template-columns:1fr auto}.flower-run-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.flower-run-orders{padding-inline:14px}.flower-run-route{grid-template-columns:1fr;padding:14px}.flower-run-needs{padding:14px 14px 0}.flower-run-summary{display:grid;padding:14px}.flower-run-summary form,.flower-run-summary button{width:100%}.flower-run-card>.procurement-warning{margin-inline:14px}.flower-product-grid{grid-template-columns:1fr;padding:0 14px 20px}.flower-products-head,.flower-price-head{padding:20px 14px 14px}.flower-source-note{grid-template-columns:1fr;margin-inline:14px}.flower-source-note span,.flower-source-note a{grid-column:1;grid-row:auto}.flower-product-filters{overflow:auto;padding-inline:14px}.flower-product-card{grid-template-columns:52px minmax(0,1fr) auto}.flower-product-card__arrow{display:none}.flower-matrix-actions{align-items:stretch;padding:12px 14px}.flower-matrix-actions p{display:none}.flower-matrix-actions .btn{width:100%}.flower-recipe-fields{padding:18px 12px}.flower-recipe-fields__head{display:grid}.flower-recipe-fields__head .btn{width:max-content}.flower-recipe-tools{display:grid;grid-template-columns:1fr}.flower-recipe-tools>label:first-child{min-width:0}.flower-recipe-used-toggle{width:max-content}.flower-recipe-tools .btn{width:100%}.procurement-daily-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.procurement-store-grid{grid-template-columns:1fr}.order-procurement-head{display:grid}.procurement-route-badge{justify-self:start}.procurement-open-flowers{width:100%}.flower-activity-card>summary{padding:16px}.flower-activity-list>div{grid-template-columns:40px minmax(0,1fr);padding:10px 14px}.flower-activity-list>div>span:last-child{grid-column:2}.flower-activity-note{padding:11px 14px}}
.flower-retail-source-help{margin:0 14px 15px;color:#5d7061;font-size:11px;line-height:1.5;max-width:1050px}.flower-package-source-link{display:block;width:fit-content;padding:4px 0;color:#246044;font-size:10px;font-weight:800;text-decoration:underline;text-underline-offset:2px}.flower-package-source-link:focus-visible{outline:2px solid #b44376;outline-offset:3px}
.recipe-save-bar{position:sticky;top:12px;z-index:4;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:#fffdf8;border:1px solid #dde2da;border-radius:16px;box-shadow:0 8px 24px #173c2810;margin-bottom:18px}.recipe-save-bar span{font-size:13px;font-weight:700;color:#6c6454}.recipe-state-label{display:grid;gap:6px;max-width:460px;margin:12px 0}.recipe-notes{margin:16px 0;padding:14px;border:1px solid #e2ded5;border-radius:14px;background:#fcfaf5}.recipe-notes summary{cursor:pointer;font-weight:700}.recipe-notes textarea{display:block;width:100%;box-sizing:border-box;margin-top:12px;min-height:110px;font:inherit;font-size:16px;line-height:1.5;padding:12px;resize:vertical}.recipe-notes ul{font-size:13px;color:#647266;padding-left:20px}.recipe-clear{margin-top:24px;font-size:13px;color:#81544c}.recipe-clear summary{cursor:pointer}.recipe-clear label{display:flex;gap:8px;margin-top:12px}.flower-recipe-table th small{display:block;font-size:11px;color:#69776d;font-weight:400;max-width:220px}.flower-recipe-tools p{font-size:12px;max-width:260px}.flower-recipe-hero__product img{object-fit:contain}.flower-recipe-table [hidden]{display:none!important}.recipe-replacement-warning label{display:flex;align-items:flex-start;gap:10px;margin-top:12px;font-weight:600}.recipe-replacement-warning input{flex:0 0 auto;width:20px;height:20px}@media(max-width:640px){.recipe-save-bar{top:64px;padding:10px}.recipe-save-bar .btn{white-space:nowrap;min-height:44px}.recipe-save-bar span{max-width:180px;font-size:12px}.flower-recipe-table input{font-size:16px!important;min-width:60px}.recipe-state-label select{font-size:16px}.flower-recipe-tools{align-items:start}.recipe-notes{padding:10px}}
.flower-recipe-editor{overflow:visible!important}.recipe-source-photos{margin:12px 0;padding:12px 16px;border:1px solid #e3ded4;border-radius:14px;background:#fffdf8}.recipe-source-photos summary{font-weight:700;cursor:pointer}.recipe-source-photos>div{display:flex;gap:12px;flex-wrap:wrap;padding-top:12px}.recipe-source-photos img{width:130px;height:145px;object-fit:contain;border-radius:10px;background:#f5f2ec}@media(max-width:640px){.recipe-source-photos img{width:110px;height:130px}}

/* ===== app-final-bloom.css ===== */
@font-face {
  font-family: "DF Comfortaa";
  src: url("/public/df-comfortaa-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
}

@font-face {
  font-family: "DF Assistant";
  src: url("/public/df-assistant-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
}

:root {
  --df-forest: #123728;
  --df-forest-2: #1f4a39;
  --df-forest-soft: #dce9e1;
  --df-cream: #fff4e2;
  --df-paper: #fffdf8;
  --df-paper-2: #f8f5ee;
  --df-pink: #ff4fa3;
  --df-pink-soft: #ffe5f1;
  --df-coral: #ff6b2e;
  --df-lavender: #b28ae3;
  --df-palm: #7a8f4a;
  --df-sun: #ffd65a;
  --df-ink: #173228;
  --df-muted: #627269;
  --df-line: rgba(18, 55, 40, 0.16);
  --df-shadow: 0 12px 30px rgba(18, 55, 40, 0.09);
  --df-shadow-small: 0 5px 14px rgba(18, 55, 40, 0.08);
  --df-radius: 8px;
  --df-font-display: "DF Comfortaa", system-ui, sans-serif;
  --df-font-body: "DF Assistant", system-ui, sans-serif;
}

html {
  background: var(--df-paper-2);
  touch-action: pan-x pan-y;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  touch-action: pan-x pan-y;
  color: var(--df-ink) !important;
  font-family: var(--df-font-body) !important;
  letter-spacing: 0 !important;
  background-color: var(--df-paper-2) !important;
  background-image:
    linear-gradient(45deg, rgba(18, 55, 40, 0.022) 25%, transparent 25%),
    linear-gradient(-45deg, rgba(18, 55, 40, 0.022) 25%, transparent 25%),
    linear-gradient(45deg, transparent 75%, rgba(18, 55, 40, 0.022) 75%),
    linear-gradient(-45deg, transparent 75%, rgba(18, 55, 40, 0.022) 75%) !important;
  background-position: 0 0, 0 8px, 8px -8px, -8px 0 !important;
  background-size: 16px 16px !important;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overscroll-behavior-x: none;
}

body,
button,
input,
select,
textarea {
  font-family: var(--df-font-body) !important;
  letter-spacing: 0 !important;
}

h1,
h2,
h3,
h4,
h5,
h6,
.page-title,
.section-title,
.brand,
.logo-text {
  color: var(--df-forest) !important;
  font-family: var(--df-font-display) !important;
  font-weight: 650 !important;
  letter-spacing: 0 !important;
}

a {
  color: var(--df-forest-2);
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}

a:hover {
  color: #a92763;
}

::selection {
  color: var(--df-paper);
  background: var(--df-forest);
}

*:focus-visible {
  outline: 3px solid rgba(255, 79, 163, 0.42) !important;
  outline-offset: 2px !important;
}

.app-header,
.topbar,
.mobile-header,
header[role="banner"] {
  color: var(--df-forest) !important;
  background: rgba(255, 244, 226, 0.96) !important;
  border-color: var(--df-line) !important;
  box-shadow: 0 3px 16px rgba(18, 55, 40, 0.07) !important;
  backdrop-filter: blur(16px) saturate(1.1);
  -webkit-backdrop-filter: blur(16px) saturate(1.1);
}

.app-header a,
.topbar a,
.mobile-header a,
.mobile-menu-toggle,
.back-chip {
  color: var(--df-forest) !important;
}

.sidebar,
.nav-drawer,
.side-nav {
  color: var(--df-forest) !important;
  background: var(--df-paper) !important;
  border-color: var(--df-line) !important;
  box-shadow: 12px 0 30px rgba(18, 55, 40, 0.08) !important;
}

.nav-link,
.sidebar a,
.nav-drawer a,
.side-nav a {
  color: var(--df-forest) !important;
  border-radius: 6px !important;
}

.nav-link:hover,
.sidebar a:hover,
.nav-drawer a:hover,
.side-nav a:hover {
  color: var(--df-forest) !important;
  background: var(--df-forest-soft) !important;
}

.nav-link.active,
.nav-link[aria-current="page"],
.sidebar a.active,
.sidebar a[aria-current="page"],
.nav-drawer a.active,
.nav-drawer a[aria-current="page"] {
  color: var(--df-paper) !important;
  background: var(--df-forest) !important;
  box-shadow: var(--df-shadow-small) !important;
}

.card,
.panel,
.table-card,
.form-card,
.summary-card,
.stat-card,
.empty-state,
.notice-card,
.settings-card,
.product-card,
.order-card,
.reminder-card {
  color: var(--df-ink) !important;
  background: rgba(255, 253, 248, 0.98) !important;
  border: 1px solid var(--df-line) !important;
  border-radius: var(--df-radius) !important;
  box-shadow: var(--df-shadow) !important;
}

.card .card,
.panel .card,
.panel .panel {
  box-shadow: none !important;
}

input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]),
select,
textarea {
  color: var(--df-ink) !important;
  background: var(--df-paper) !important;
  border: 1px solid rgba(18, 55, 40, 0.2) !important;
  border-radius: 7px !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8) !important;
  transition: border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease !important;
}

input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):hover,
select:hover,
textarea:hover {
  border-color: rgba(18, 55, 40, 0.38) !important;
}

input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):focus,
select:focus,
textarea:focus {
  background: #fff !important;
  border-color: var(--df-pink) !important;
  box-shadow: 0 0 0 4px rgba(255, 79, 163, 0.12) !important;
  outline: none !important;
}

input::placeholder,
textarea::placeholder {
  color: #829087 !important;
  opacity: 1 !important;
}

input[type="checkbox"],
input[type="radio"] {
  accent-color: var(--df-forest);
}

input[type="range"] {
  accent-color: var(--df-pink);
}

.btn,
button:not(.icon-button):not(.icon-btn),
input[type="submit"],
input[type="button"] {
  border-radius: 7px !important;
  font-weight: 750 !important;
  letter-spacing: 0 !important;
  box-shadow: var(--df-shadow-small) !important;
  transition: transform 140ms ease, box-shadow 140ms ease, filter 140ms ease !important;
}

.btn:hover,
button:not(.icon-button):not(.icon-btn):hover,
input[type="submit"]:hover,
input[type="button"]:hover {
  filter: brightness(1.025);
  box-shadow: 0 8px 18px rgba(18, 55, 40, 0.13) !important;
  transform: translateY(-1px);
}

.btn:active,
button:not(.icon-button):not(.icon-btn):active,
input[type="submit"]:active,
input[type="button"]:active {
  box-shadow: 0 3px 8px rgba(18, 55, 40, 0.1) !important;
  transform: translateY(0);
}

.btn-primary,
.btn-green,
.button-primary,
button[type="submit"]:not(.btn-danger):not(.danger) {
  color: var(--df-paper) !important;
  background: var(--df-forest) !important;
  border-color: var(--df-forest) !important;
}

.btn-secondary,
.button-secondary,
.btn-outline {
  color: var(--df-forest) !important;
  background: var(--df-paper) !important;
  border-color: rgba(18, 55, 40, 0.25) !important;
}

.btn-uber {
  color: #fff !important;
  background: #1f4a39 !important;
  border-color: #1f4a39 !important;
}

.btn-bestseller {
  color: var(--df-paper) !important;
  background: #a92763 !important;
  border-color: #a92763 !important;
}

.btn-danger,
.danger,
button[data-action="delete"] {
  color: #8c2a27 !important;
  background: #fff0ed !important;
  border-color: rgba(180, 57, 49, 0.28) !important;
}

.icon-button,
.icon-btn {
  color: var(--df-forest) !important;
  background: var(--df-paper) !important;
  border-color: var(--df-line) !important;
  border-radius: 7px !important;
  box-shadow: var(--df-shadow-small) !important;
}

.badge,
.pill,
.chip,
.tag {
  color: var(--df-forest) !important;
  background: var(--df-forest-soft) !important;
  border-color: rgba(18, 55, 40, 0.16) !important;
  border-radius: 999px !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
}

.badge-success,
.status-success,
.status-ready,
.status-delivered {
  color: #0d5136 !important;
  background: #dff3e8 !important;
}

.badge-warning,
.status-warning,
.status-pending {
  color: #6d4a00 !important;
  background: #fff1bf !important;
}

.badge-error,
.status-error,
.status-failed,
.status-cancelled {
  color: #8c2a27 !important;
  background: #ffe5e1 !important;
}

table {
  color: var(--df-ink) !important;
  background: var(--df-paper) !important;
  border-color: var(--df-line) !important;
}

thead,
th {
  color: var(--df-forest) !important;
  background: #edf3ef !important;
  font-weight: 750 !important;
  letter-spacing: 0 !important;
}

td,
th,
tr {
  border-color: var(--df-line) !important;
}

tbody tr:hover {
  background: rgba(220, 233, 225, 0.38) !important;
}

.modal,
.modal-content,
.dialog,
[role="dialog"] {
  color: var(--df-ink) !important;
  background: var(--df-paper) !important;
  border-color: var(--df-line) !important;
  border-radius: var(--df-radius) !important;
  box-shadow: 0 24px 70px rgba(18, 55, 40, 0.24) !important;
}

.modal-backdrop,
.overlay,
.dialog-backdrop {
  background: rgba(9, 28, 20, 0.5) !important;
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
}

.alert,
.notice,
.flash,
.message-banner {
  border-radius: 7px !important;
  border-color: var(--df-line) !important;
  box-shadow: var(--df-shadow-small) !important;
}

.alert-success,
.flash-success {
  color: #0d5136 !important;
  background: #e8f6ee !important;
}

.alert-error,
.flash-error {
  color: #8c2a27 !important;
  background: #fff0ed !important;
}

.muted,
.help-text,
.field-help,
.subtle,
small {
  color: var(--df-muted) !important;
}

hr,
.divider {
  border-color: var(--df-line) !important;
}

@media (max-width: 760px) {
  html,
  body {
    width: 100%;
    max-width: 100%;
    overflow-x: clip;
  }

  body {
    background-size: 14px 14px !important;
  }

  .page {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-inline: 0 !important;
    padding-inline: 16px !important;
    box-sizing: border-box !important;
  }

  .hero-line {
    align-items: flex-start !important;
    gap: 16px !important;
  }

  .hero-line,
  .hero-line > *,
  .hero-actions,
  .product-catalog-tools,
  .product-catalog-head,
  .product-admin-layout,
  .product-admin-list,
  .product-admin-card,
  .product-search-form {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  .product-catalog-head,
  .product-search-form {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .hero-actions {
    width: 100% !important;
    justify-content: flex-start !important;
    flex-wrap: wrap !important;
  }

  .hero-actions form {
    max-width: 100% !important;
  }

  .hero-actions .btn {
    min-width: 0 !important;
    max-width: 100% !important;
    white-space: normal !important;
  }

  .app-header,
  .topbar,
  .mobile-header {
    background: rgba(255, 244, 226, 0.985) !important;
  }

  .card,
  .panel,
  .table-card,
  .form-card,
  .product-card,
  .order-card,
  .reminder-card {
    border-radius: 7px !important;
    box-shadow: 0 8px 22px rgba(18, 55, 40, 0.08) !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}

/* ===== final-admin-polish.css ===== */
:root {
  --admin-forest: #123728;
  --admin-cream: #fff4e2;
  --admin-paper: #fffdf8;
  --admin-pink: #ff4fa3;
  --admin-coral: #ff6b2e;
  --admin-lavender: #b28ae3;
  --admin-palm: #7a8f4a;
  --admin-sun: #ffd65a;
  --admin-line: rgba(18, 55, 40, .15);
}

html {
  touch-action: manipulation;
  background: #f4f7f3;
}

body {
  color: var(--admin-forest);
  background:
    linear-gradient(rgba(255, 253, 248, .94), rgba(255, 253, 248, .94)),
    repeating-linear-gradient(0deg, transparent 0 23px, rgba(18, 55, 40, .035) 23px 24px);
}

button,
.button,
input[type="submit"],
input[type="button"] {
  min-height: 42px;
  border-radius: 6px !important;
  letter-spacing: .02em;
}

input,
select,
textarea {
  border-color: var(--admin-line) !important;
  border-radius: 6px !important;
  background: #fff !important;
}

.card,
.panel,
.admin-card,
[class*="card"] {
  border-color: var(--admin-line);
  border-radius: 8px;
  box-shadow: 0 10px 28px rgba(18, 55, 40, .055);
}

.df-admin-brand-strip {
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  height: 5px;
}

.df-admin-brand-strip span:nth-child(1) { background: var(--admin-forest); }
.df-admin-brand-strip span:nth-child(2) { background: var(--admin-pink); }
.df-admin-brand-strip span:nth-child(3) { background: var(--admin-coral); }
.df-admin-brand-strip span:nth-child(4) { background: var(--admin-lavender); }
.df-admin-brand-strip span:nth-child(5) { background: var(--admin-palm); }
.df-admin-brand-strip span:nth-child(6) { background: var(--admin-sun); }
.df-admin-brand-strip span:nth-child(7) { background: var(--admin-cream); }
.df-admin-brand-strip span:nth-child(8) { background: var(--admin-forest); }

.business-card,
[class*="business-card"],
.print-a6,
[class*="print-a6"],
.recipient-card,
[class*="recipient-name"] {
  position: relative;
  overflow: hidden;
  color: var(--admin-forest);
  background:
    radial-gradient(circle at 88% 12%, rgba(255, 79, 163, .11), transparent 30%),
    linear-gradient(135deg, #fffdf8, #fff4e2);
  border: 1px solid var(--admin-line);
  border-radius: 8px !important;
}

.business-card::after,
[class*="business-card"]::after,
.print-a6::after,
[class*="print-a6"]::after,
.recipient-card::after,
[class*="recipient-name"]::after {
  position: absolute;
  right: -24px;
  bottom: -24px;
  width: 92px;
  height: 92px;
  content: "";
  border: 18px solid rgba(18, 55, 40, .06);
  border-radius: 50%;
  pointer-events: none;
}

@media print {
  body {
    background: #fff !important;
  }

  .business-card,
  [class*="business-card"],
  .print-a6,
  [class*="print-a6"],
  .recipient-card,
  [class*="recipient-name"] {
    box-shadow: none !important;
  }
}

/* ===== doordash.css ===== */
.dd-page{max-width:1240px}.dd-hero{display:flex;align-items:center;gap:16px;margin:24px 0}.dd-hero>img{width:56px;height:56px;flex-shrink:0}.dd-hero h1{font-size:clamp(26px,4vw,42px);margin:0;overflow-wrap:anywhere}.dd-hero p{margin:4px 0}.dd-hero .eyebrow{color:#b72b1c}.dd-edit{margin-left:auto;display:grid;place-items:center;width:44px;height:44px;border:1px solid #ddd9d1;border-radius:12px;background:#fff;font-size:24px;color:#153e30}
.dd-review{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,1fr);gap:20px;align-items:start}.dd-review>.card-block{min-width:0;margin:0;padding:24px}.dd-page h2{font-size:22px;margin:0 0 20px}.dd-source{padding:24px;margin:0 0 20px}.dd-source summary,.dd-reconcile summary{cursor:pointer;font-weight:700}.dd-source form{display:grid;gap:16px;margin-top:20px}.dd-source textarea{width:100%;min-height:240px;resize:vertical;font-size:16px;line-height:1.5}.dd-source:not([open]){padding:18px 24px}.dd-field-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.dd-page label{display:grid;gap:8px;font-size:13px;font-weight:700}.dd-page label small{font-size:12px;font-weight:400;display:inline}.dd-page input:not([type=hidden]){width:100%;min-width:0;min-height:46px;font-size:16px;box-sizing:border-box}.dd-page .dd-explainer{font-size:13px;line-height:1.5;color:#6b746e;margin:16px 0}.dd-page .dd-button,.dd-order-card .dd-button{background:#dc321f;color:#fff;border:1px solid #dc321f;min-height:48px;box-shadow:none;text-transform:none;font-size:16px;letter-spacing:0;font-weight:750;border-radius:14px;padding:12px 20px}.dd-page .dd-button:hover,.dd-order-card .dd-button:hover{background:#bc2919}.dd-save,.dd-complete{width:100%;margin-top:16px}
.dd-items{list-style:none;margin:20px 0;padding:0}.dd-items>li{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:12px;padding:18px 0;border-bottom:1px solid #e7e3dd;align-items:start}.dd-items strong{font-size:17px;overflow-wrap:anywhere}.dd-items>li>b{font-size:15px;font-variant-numeric:tabular-nums}.dd-qty{display:grid;place-items:center;min-height:32px;border-radius:10px;background:#f9e7df;color:#ad2a1c;font-weight:750}.dd-addon-label{display:block;color:#8e675d;font-size:12px;margin-top:4px}.dd-item-notes{font-size:14px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere;margin:8px 0 0;color:#4e5c55}.dd-money{margin:0}.dd-money>div{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:10px 0}.dd-money dt{font-size:14px;color:#637067}.dd-money dd{margin:0;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.dd-money .dd-money-net{border-top:1px solid #e2d8cb;border-bottom:1px solid #e2d8cb;margin-top:12px;padding:18px 0}.dd-money-net dt{font-weight:750;color:#123e2c}.dd-money-net dd{font-size:28px;color:#123e2c}.dd-money .dd-money-tax{font-size:13px}.dd-reconcile{border-top:1px solid #e7e3dd;margin-top:20px;padding-top:16px}.dd-reconcile>form{margin-top:16px}.dd-reconcile summary{font-size:13px;color:#657069}.dd-times{display:grid;grid-template-columns:1fr 1fr;gap:12px}.dd-times>div{display:grid;gap:5px;background:#fff2eb;border-radius:14px;padding:16px}.dd-times span{font-size:12px;color:#7a6356}.dd-times strong{font-size:28px;line-height:1.2}.dd-times small{font-size:12px;color:#6b746e}.dd-done{text-align:center;padding:18px;background:#edf3e9;border-radius:14px;font-weight:700}.dd-activity{padding-left:20px;font-size:13px;line-height:1.5}.dd-activity li{margin:12px 0}.dd-activity small{display:block;color:#7b817b}
.dd-order-card{border:1px solid #edcfc4;border-left:5px solid #e93620;border-radius:20px;background:#fffcf7;overflow:hidden;box-shadow:0 6px 20px #6a321609}.dd-card-main{display:block;padding:20px;text-decoration:none;color:inherit}.dd-card-heading,.dd-card-customer{display:flex;justify-content:space-between;align-items:center;gap:14px}.dd-brand{display:flex;gap:9px;align-items:center;font-size:13px;font-weight:800;color:#b52c1c}.dd-brand img{height:28px;width:28px}.dd-status{font-size:12px;background:#f5e8dc;padding:5px 10px;border-radius:20px}.dd-card-customer{margin:15px 0}.dd-card-customer>strong{font-size:24px;overflow-wrap:anywhere}.dd-card-customer>span{text-align:right;white-space:nowrap}.dd-card-customer b{font-size:22px}.dd-card-customer small{display:block;font-size:11px;color:#748073}.dd-card-times{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;font-size:13px}.dd-card-times small{color:#788177;margin-left:auto}.dd-card-times>span{color:#bd927b;margin:0 3px}.dd-card-items p{font-size:15px;margin:10px 0}.dd-card-items small{display:block;font-size:13px;white-space:pre-wrap;margin:3px 0 0 24px;color:#637067}.dd-order-card>form{padding:0 20px 20px}.dd-order-card .dd-complete{margin:0}.dd-order-card.is-completed{border-left-color:#63976d}.dd-order-card.is-completed .dd-status{background:#e7efdf;color:#356443}.dd-add-order{display:inline-flex;align-items:center;gap:9px!important}.dd-add-order img{width:24px;height:24px}.dd-dashboard-nav{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.dd-accounting{margin:24px 0;border-left:4px solid #e93620}.dd-accounting-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:20px}.dd-accounting-grid span{font-size:12px;color:#6c756e;display:block}.dd-accounting-grid b{display:block;font-size:24px;margin-top:5px}
@media(max-width:720px){.dd-review{grid-template-columns:1fr}.dd-review>.card-block,.dd-source{padding:18px}.dd-field-grid{gap:14px 10px}.dd-hero{gap:12px}.dd-hero>img{width:44px;height:44px}.dd-times strong{font-size:24px}.dd-items>li{grid-template-columns:30px minmax(0,1fr) auto;gap:8px}.dd-card-main{padding:16px}.dd-card-customer>strong{font-size:21px}.dd-card-times small{margin-left:0;flex-basis:100%}.dd-accounting-grid{grid-template-columns:1fr 1fr}.dd-dashboard-nav{width:100%;justify-content:space-between}.dd-card-customer>span b{font-size:20px}}
body.has-sidebar .dd-page .btn.dd-button,body.has-sidebar .dd-order-card .btn.dd-button{background:#dc321f!important;color:#fff!important;border-color:#dc321f!important;background-image:none!important}body.has-sidebar .dd-page .btn.dd-button:hover,body.has-sidebar .dd-order-card .btn.dd-button:hover{background:#bc2919!important}.dd-page .dd-field-grid>label{grid-template-rows:auto 1fr;align-content:start}.dd-page .dd-field-grid>label>span{min-height:20px;font-size:12px;text-transform:none;letter-spacing:0}.dd-page .dd-field-grid input{align-self:end}.dd-page .dd-hero .eyebrow{color:#b72b1c!important}
.dd-proof { margin-top:20px; }
.dd-proof h2 small { font-size:13px; font-weight:500; color:#69736c; }
.dd-proof form { display:flex; flex-wrap:wrap; gap:14px; align-items:end; }
.dd-proof label { flex:1 1 230px; display:grid; gap:6px; }
.dd-proof input { width:100%; min-width:0; font-size:16px; }
.dd-proof-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:12px; margin-top:16px; }
.dd-proof-grid a { display:grid; gap:6px; overflow:hidden; }
.dd-proof-grid img { width:100%; aspect-ratio:1; object-fit:cover; border-radius:14px; }
.sales-money-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:16px; }
.sales-money-grid dt { font-size:13px; color:#69736c; }
.sales-money-grid dd { margin:4px 0 0; font-size:22px; font-weight:700; }
.sales-reconciliation { margin-bottom:20px; }
.dd-recipes { margin:24px 0; }
.dd-page .dd-recipes h2 { margin:0 0 6px; font-size:20px; }
.dd-recipe-help { color:#59675e; font-size:13px; line-height:1.5; margin:8px 0 12px; }
.dd-recipe { margin-top:12px; padding:14px; border:1px solid #d8e0d4; border-radius:16px; background:#f6f8f1; min-width:0; }
.dd-recipe-heading { display:flex; gap:10px; align-items:center; }
.dd-recipe-heading>div { flex:1; min-width:0; }
.dd-recipe-heading>img { flex:none; object-fit:cover; border-radius:8px; }
.dd-page .dd-recipe h3 { font-size:16px; line-height:1.4; margin:0; overflow-wrap:anywhere; }
.dd-recipe-draft { display:block; color:#755514; font-size:12px; margin-top:3px; }
.dd-recipe-edit { flex:none; display:grid; place-items:center; width:44px; height:44px; border:1px solid #d8e0d4; border-radius:10px; background:#fff; color:#153e30; font-size:22px; text-decoration:none; }
.dd-recipe-warning { font-size:13px; line-height:1.5; color:#765016; background:#fff4dc; border-radius:8px; padding:10px; overflow-wrap:anywhere; }
.dd-recipe-size { border-top:1px solid #dce3d8; margin-top:10px; }
.dd-recipe-size>summary,.dd-recipe-notes>summary { cursor:pointer; min-height:44px; padding:12px 0; box-sizing:border-box; font-size:14px; font-weight:700; }
.dd-recipe-size>summary>span { font-size:12px; color:#765016; font-weight:500; }
.dd-recipe-edit:focus-visible,.dd-recipe-size>summary:focus-visible,.dd-recipe-notes>summary:focus-visible { outline:2px solid #bd3268; outline-offset:3px; }
.dd-page .dd-recipe-table { width:100%; border-collapse:collapse; table-layout:fixed; margin:0; background:transparent; }
.dd-page .dd-recipe-table th,.dd-page .dd-recipe-table td { position:static; background:transparent; padding:8px 4px; border:0; border-bottom:1px solid #dce3d8; font-size:14px; text-align:right; width:64px; font-variant-numeric:tabular-nums; }
.dd-page .dd-recipe-table th:first-child { text-align:left; width:auto; font-weight:500; overflow-wrap:anywhere; }
.dd-page .dd-recipe-table thead th { font-size:11px; font-weight:700; text-transform:none; letter-spacing:0; color:#59675e; }
.dd-page .dd-recipe-table th small { display:block; font-size:11px; color:#8b4435; }
.dd-recipe-table .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; }
.dd-recipe-notes { margin-top:8px; }
.dd-recipe-notes>summary { color:#59675e; font-size:13px; font-weight:500; }
.dd-recipe-notes>p { font-size:13px; line-height:1.5; margin:0 0 6px; white-space:pre-wrap; overflow-wrap:anywhere; }

/* ===== app-polish-v6.css ===== */

:root{
  --brand-green:#173f2c;
  --brand-green-2:#24573e;
  --brand-cream:#fff8e9;
  --brand-paper:#fffdf8;
  --brand-pink:#ef4f9a;
  --brand-orange:#f47b35;
  --brand-lavender:#ad83d6;
  --brand-blue:#67c7dc;
  --brand-line:rgba(23,63,44,.16);
  --brand-shadow:0 14px 34px rgba(23,63,44,.10);
}

html{touch-action:manipulation;-webkit-text-size-adjust:100%}
body,button,input,select,textarea{font-family:"Avenir Next","Helvetica Neue",Arial,sans-serif!important;letter-spacing:0}
body{color:var(--brand-green);background-color:#eef4ed;background-image:linear-gradient(45deg,rgba(23,63,44,.024) 25%,transparent 25%),linear-gradient(-45deg,rgba(23,63,44,.024) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,rgba(23,63,44,.024) 75%),linear-gradient(-45deg,transparent 75%,rgba(23,63,44,.024) 75%);background-position:0 0,0 10px,10px -10px,-10px 0;background-size:20px 20px}
h1,h2,h3,h4{font-family:"Avenir Next","Helvetica Neue",Arial,sans-serif!important;letter-spacing:0;color:var(--brand-green)}
.card,.panel,.admin-card,.action-card,section[class*="card"]{border-color:var(--brand-line)!important;border-radius:8px!important;box-shadow:var(--brand-shadow)}
button,.button,input[type="submit"],a.button{border-radius:6px!important}
button.primary,.button.primary,input[type="submit"],[class*="primary-button"]{color:#fff!important;background:var(--brand-green)!important}
button.primary:hover,.button.primary:hover,input[type="submit"]:hover{background:var(--brand-green-2)!important}

.brand-palette-v6{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:16px 0 28px;gap:12px}
.brand-palette-v6>div{display:grid;grid-template-columns:42px 1fr;align-items:center;padding:12px;border:1px solid var(--brand-line);border-radius:8px;background:rgba(255,253,248,.86)}
.brand-palette-v6 span{grid-row:1/3;width:32px;height:32px;border:1px solid rgba(0,0,0,.12);border-radius:50%;background:var(--swatch)}
.brand-palette-v6 strong{font-size:13px}.brand-palette-v6 code{font-size:11px;color:#65776d}

.is-theme-sync-v6 form:has(button[data-theme-sync-v6="true"]){border:1px solid var(--brand-line);background:var(--brand-paper)}
.theme-sync-v6-note{max-width:70ch;margin:10px 0 0;color:#65776d;font-size:13px;line-height:1.45}
.theme-sync-v6-note.is-success{color:#157347}.theme-sync-v6-note.is-error{color:#b4233c}

.brand-print-a6-v6,.brand-recipient-v6{position:relative;padding-left:38px!important}
.brand-print-a6-v6::before,.brand-recipient-v6::before{position:absolute;left:14px;top:50%;width:14px;height:14px;content:"";transform:translateY(-50%);border:2px solid currentColor;border-radius:2px}
.brand-recipient-v6::before{border-radius:50%}
.is-brand-print-v6 main,.is-brand-print-v6 .content{max-width:900px;margin-inline:auto}

@media(max-width:720px){.brand-palette-v6{grid-template-columns:1fr 1fr}}
@media print{
  @page{size:A6 portrait;margin:8mm}
  body.is-brand-print-v6{color:#173f2c;background:#fff}
  body.is-brand-print-v6::before{display:block;margin-bottom:8mm;padding-bottom:4mm;content:"DOPAMINE FLOWERS · OAHU";font-size:13pt;font-weight:800;letter-spacing:.12em;border-bottom:2pt solid #ef4f9a}
  body.is-brand-print-v6 button,body.is-brand-print-v6 nav,body.is-brand-print-v6 header{display:none!important}
  body.is-brand-print-v6 [class*="recipient"]{padding:6mm;border:1pt solid rgba(23,63,44,.2);border-radius:3mm;background:#fff8e9}
}

/* ===== dopamine-admin-rebrand.css ===== */
@font-face {
  font-family: "DF Comfortaa";
  src: url("/public/df-comfortaa-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
}

@font-face {
  font-family: "DF Assistant";
  src: url("/public/df-assistant-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
}

:root {
  --df-admin-forest: #123728;
  --df-admin-forest-2: #1c4a36;
  --df-admin-cream: #fff4e2;
  --df-admin-paper: #fffdf8;
  --df-admin-pink: #ff4fa3;
  --df-admin-coral: #ff6b2e;
  --df-admin-lavender: #b28ae3;
  --df-admin-palm: #7a8f4a;
  --df-admin-sun: #ffd65a;
  --df-admin-blush: #f6a3c2;
  --df-admin-ink: #123728;
  --df-admin-muted: #65756c;
  --df-admin-line: rgba(18, 55, 40, .15);
  --df-admin-soft: #edf4ee;
  --df-admin-danger: #a33128;
  --df-admin-shadow: 0 14px 34px rgba(18, 55, 40, .09);
  --df-admin-radius: 8px;
  --df-admin-font-display: "DF Comfortaa", "Trebuchet MS", system-ui, sans-serif;
  --df-admin-font-body: "DF Assistant", Inter, Arial, sans-serif;
}

html {
  background: #f6f3eb;
  touch-action: pan-x pan-y;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  color: var(--df-admin-ink) !important;
  font-family: var(--df-admin-font-body) !important;
  letter-spacing: 0 !important;
  background: linear-gradient(135deg, rgba(255, 253, 248, .94), rgba(255, 244, 226, .9)), #fff4e2 !important;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body,
button,
input,
select,
textarea {
  font-family: var(--df-admin-font-body) !important;
  letter-spacing: 0 !important;
}

h1,
h2,
h3,
h4,
h5,
h6,
.page-title,
.hero-line h1,
.side-brand strong {
  color: var(--df-admin-forest) !important;
  font-family: var(--df-admin-font-display) !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
}

a {
  color: var(--df-admin-forest-2);
  text-underline-offset: 3px;
}

::selection {
  color: var(--df-admin-paper);
  background: var(--df-admin-forest);
}

*:focus-visible {
  outline: 3px solid rgba(255, 79, 163, .38) !important;
  outline-offset: 2px !important;
}

.df-admin-brand-strip {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr 1fr .8fr;
  height: 6px;
}

.df-admin-brand-strip span:nth-child(1) { background: var(--df-admin-forest); }
.df-admin-brand-strip span:nth-child(2) { background: var(--df-admin-pink); }
.df-admin-brand-strip span:nth-child(3) { background: var(--df-admin-coral); }
.df-admin-brand-strip span:nth-child(4) { background: var(--df-admin-lavender); }
.df-admin-brand-strip span:nth-child(5) { background: var(--df-admin-palm); }
.df-admin-brand-strip span:nth-child(6) { background: var(--df-admin-sun); }
.df-admin-brand-strip span:nth-child(n+7) { display: none; }

.mobile-menu-toggle,
.app-header,
.topbar,
.mobile-header {
  color: var(--df-admin-forest) !important;
  background: rgba(255, 253, 248, .96) !important;
  border-color: var(--df-admin-line) !important;
  box-shadow: 0 6px 22px rgba(18, 55, 40, .08) !important;
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

.side-nav {
  color: var(--df-admin-paper) !important;
  background:
    linear-gradient(rgba(18, 55, 40, .94), rgba(18, 55, 40, .98)),
    linear-gradient(135deg, rgba(255, 79, 163, .14), transparent 38%) !important;
  border-right: 1px solid rgba(255, 253, 248, .12) !important;
  box-shadow: 12px 0 34px rgba(18, 55, 40, .18) !important;
}

.side-brand,
.side-user,
.side-bottom {
  border-color: rgba(255, 253, 248, .14) !important;
}

.side-brand strong,
.side-brand small,
.side-user strong,
.side-user span,
.side-user small {
  color: var(--df-admin-paper) !important;
}

.side-logo {
  background: var(--df-admin-paper) !important;
  border: 1px solid rgba(255, 253, 248, .35) !important;
  border-radius: 8px !important;
}

.side-links a,
.side-action {
  color: rgba(255, 253, 248, .86) !important;
  border: 1px solid transparent !important;
  border-radius: 8px !important;
  background: transparent !important;
}

.side-links a svg,
.side-action svg {
  color: currentColor !important;
  stroke: currentColor !important;
}

.side-links a:hover,
.side-action:hover {
  color: var(--df-admin-paper) !important;
  background: rgba(255, 253, 248, .09) !important;
  border-color: rgba(255, 253, 248, .12) !important;
}

.side-links a.active {
  color: var(--df-admin-forest) !important;
  background: var(--df-admin-cream) !important;
  border-color: rgba(255, 253, 248, .52) !important;
  box-shadow: 0 12px 26px rgba(0, 0, 0, .14) !important;
}

.side-action.logout {
  color: #ffd6cf !important;
}

.page,
.content,
main.page {
  color: var(--df-admin-ink) !important;
}

.hero-line,
.card-block,
.card,
.panel,
.admin-card,
.table-card,
.form-card,
.summary-card,
.stat-card,
.order-card,
.product-admin-card,
.product-card,
.theme-sync-panel,
.theme-file-list,
.theme-backups,
.theme-pages-card,
.notice,
.empty-state {
  color: var(--df-admin-ink) !important;
  background: rgba(255, 253, 248, .96) !important;
  border: 1px solid var(--df-admin-line) !important;
  border-radius: var(--df-admin-radius) !important;
  box-shadow: var(--df-admin-shadow) !important;
}

.hero-line {
  background: linear-gradient(135deg, rgba(255, 253, 248, .98), rgba(255, 244, 226, .86)) !important;
}

.hero-line p,
.subtle,
.muted,
small,
.help-text,
.field-help {
  color: var(--df-admin-muted) !important;
}

.eyebrow,
.df-eyebrow {
  color: var(--df-admin-palm) !important;
  font-weight: 800 !important;
  letter-spacing: .08em !important;
}

.admin-card {
  transition: transform 140ms ease, box-shadow 140ms ease, border-color 140ms ease;
}

.admin-card:hover {
  border-color: rgba(255, 79, 163, .35) !important;
  box-shadow: 0 18px 42px rgba(18, 55, 40, .12) !important;
  transform: translateY(-1px);
}

input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]),
select,
textarea {
  color: var(--df-admin-ink) !important;
  background: var(--df-admin-paper) !important;
  border: 1px solid rgba(18, 55, 40, .22) !important;
  border-radius: 7px !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .86) !important;
}

input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):focus,
select:focus,
textarea:focus {
  border-color: var(--df-admin-pink) !important;
  box-shadow: 0 0 0 4px rgba(255, 79, 163, .12) !important;
  outline: none !important;
}

input::placeholder,
textarea::placeholder {
  color: #87948d !important;
  opacity: 1;
}

input[type="checkbox"],
input[type="radio"] {
  accent-color: var(--df-admin-forest);
}

button,
.btn,
.button,
input[type="submit"],
input[type="button"] {
  min-height: 42px;
  border-radius: 7px !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
  transition: transform 140ms ease, box-shadow 140ms ease, filter 140ms ease !important;
}

button:hover,
.btn:hover,
.button:hover,
input[type="submit"]:hover,
input[type="button"]:hover {
  filter: brightness(1.02);
  transform: translateY(-1px);
}

.btn-primary,
.btn-green,
.button-primary,
button[type="submit"]:not(.btn-danger):not(.danger),
input[type="submit"] {
  color: var(--df-admin-paper) !important;
  background: var(--df-admin-forest) !important;
  border-color: var(--df-admin-forest) !important;
  box-shadow: 0 10px 22px rgba(18, 55, 40, .16) !important;
}

.btn-outline,
.btn-secondary,
.button-secondary {
  color: var(--df-admin-forest) !important;
  background: var(--df-admin-paper) !important;
  border-color: rgba(18, 55, 40, .24) !important;
}

.btn-bestseller,
.stage-weekly,
.stage-pill.stage-new {
  color: var(--df-admin-paper) !important;
  background: var(--df-admin-pink) !important;
  border-color: rgba(255, 79, 163, .2) !important;
}

.btn-danger,
.danger,
button[data-action="delete"] {
  color: var(--df-admin-danger) !important;
  background: #fff0ed !important;
  border-color: rgba(163, 49, 40, .25) !important;
}

.badge,
.pill,
.chip,
.tag,
.stage-pill,
.theme-status {
  color: var(--df-admin-forest) !important;
  background: #eaf3eb !important;
  border-color: rgba(18, 55, 40, .15) !important;
  border-radius: 999px !important;
  font-weight: 800 !important;
}

.alert-success,
.notice.good,
.badge-success,
.status-success,
.stage-ready {
  color: #0f5b39 !important;
  background: #e5f6eb !important;
  border-color: rgba(15, 91, 57, .16) !important;
}

.alert-error,
.notice.bad,
.badge-error,
.status-failed,
.status-cancelled {
  color: var(--df-admin-danger) !important;
  background: #fff0ed !important;
  border-color: rgba(163, 49, 40, .18) !important;
}

table {
  color: var(--df-admin-ink) !important;
  background: var(--df-admin-paper) !important;
  border-color: var(--df-admin-line) !important;
}

thead,
th {
  color: var(--df-admin-forest) !important;
  background: #edf4ee !important;
  font-weight: 800 !important;
}

td,
th,
tr {
  border-color: var(--df-admin-line) !important;
}

tbody tr:hover {
  background: rgba(122, 143, 74, .08) !important;
}

.dopa-current-palette,
.brand-color-grid,
.dopa-swatches,
.brand-palette-v6 {
  position: relative;
}

.dopa-swatches button,
.brand-color-card,
.brand-palette-v6 > div {
  border-radius: 8px !important;
  border-color: var(--df-admin-line) !important;
  background-color: var(--df-admin-paper) !important;
  box-shadow: 0 10px 22px rgba(18, 55, 40, .07) !important;
}

.copy-color,
[data-copy],
[data-copy-color] {
  cursor: pointer;
}

.product-admin-card img,
.product-card img,
.gallery-card img,
.proof-photo img {
  border-radius: 8px !important;
}

.theme-sync-v6-note {
  margin: 10px 0 0;
  color: var(--df-admin-muted);
  font-weight: 700;
}

.theme-sync-v6-note.is-success {
  color: #0f5b39;
}

.theme-sync-v6-note.is-error {
  color: var(--df-admin-danger);
}

@media (max-width: 760px) {
  .page,
  main.page,
  .content {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    padding-inline: 14px !important;
    box-sizing: border-box !important;
  }

  .hero-line,
  .hero-actions,
  .product-catalog-tools,
  .product-catalog-head,
  .product-admin-layout,
  .product-admin-list,
  .product-admin-card,
  .product-search-form {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  .hero-actions,
  .print-card-actions {
    flex-wrap: wrap !important;
  }

  .hero-actions .btn,
  .print-card-actions .btn {
    white-space: normal !important;
  }
}

@media print {
  body {
    background: #fff !important;
  }

  .df-admin-brand-strip,
  .mobile-menu-toggle,
  .side-nav,
  .drawer-overlay,
  .no-print {
    display: none !important;
  }

  .card,
  .panel,
  .card-block {
    box-shadow: none !important;
  }
}

/* Rebrand finish: clearer admin surfaces, no overlapping hero controls, no muddy black actions. */
.side-brand .side-logo {
  background: rgba(255, 253, 248, .96) !important;
}

.side-brand .side-logo img {
  width: 112px !important;
  height: auto !important;
  max-height: 42px !important;
  object-fit: contain !important;
}

.side-bottom {
  display: grid !important;
  gap: 10px !important;
}

.side-action,
.side-bottom .side-action,
.side-bottom button.side-action,
.side-bottom a.side-action {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 10px !important;
  width: 100% !important;
  min-height: 44px !important;
  padding: 10px 14px !important;
  border: 1px solid rgba(255, 253, 248, .16) !important;
  border-radius: 14px !important;
  color: #fffdf8 !important;
  background: rgba(255, 253, 248, .08) !important;
  box-shadow: none !important;
  opacity: 1 !important;
}

.side-action svg {
  width: 20px !important;
  height: 20px !important;
  flex: 0 0 20px !important;
  stroke: currentColor !important;
}

.side-action:hover,
.side-action:focus-visible {
  color: #123728 !important;
  background: #fffdf8 !important;
}

.side-action[disabled],
.side-action.is-disabled,
.side-action[aria-disabled="true"] {
  color: rgba(255, 253, 248, .54) !important;
  background: rgba(255, 253, 248, .045) !important;
  border-color: rgba(255, 253, 248, .1) !important;
  cursor: not-allowed !important;
}

.hero-line {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 14px 18px !important;
}

.hero-line > div:first-child {
  min-width: min(100%, 280px) !important;
  flex: 1 1 360px !important;
}

.hero-line .date-nav,
.hero-line .hero-actions {
  margin-left: auto !important;
  flex: 0 1 auto !important;
}

.date-nav {
  flex-wrap: nowrap !important;
}

.date-nav a,
.date-nav .today,
.nav-arrow {
  border-radius: 16px !important;
  background: rgba(255, 253, 248, .94) !important;
  box-shadow: 0 10px 22px rgba(18, 55, 40, .08) !important;
}

.admin-grid,
.total-cards,
.card-block,
.theme-sync-simple .sync-status,
.theme-pages-card,
.admin-card {
  border-color: rgba(18, 55, 40, .13) !important;
}

.admin-card {
  min-height: 174px !important;
}

.admin-card strong,
.card-block h2,
.hero-line h1 {
  overflow-wrap: anywhere !important;
}

.theme-sync-simple .sync-status,
.theme-pages-card,
.theme-quiet-details,
.sync-stats div {
  border-radius: 20px !important;
}

.fake-order-form {
  display: grid !important;
  gap: 18px !important;
}

.form-grid.two {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 14px !important;
}

.form-actions {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 12px !important;
  align-items: center !important;
}

.sync-action .btn,
.theme-mini-actions .btn,
.admin-run-card .btn {
  color: #fffdf8 !important;
  background: #123728 !important;
  border-color: #123728 !important;
}

.theme-mini-actions .btn.btn-outline {
  color: #123728 !important;
  background: #fffdf8 !important;
}

@media (max-width: 680px) {
  .hero-line .date-nav,
  .hero-line .hero-actions {
    width: 100% !important;
    margin-left: 0 !important;
  }

  .date-nav {
    justify-content: space-between !important;
  }

  .date-nav .today {
    flex: 1 1 auto !important;
  }

  .form-grid.two {
    grid-template-columns: 1fr !important;
  }
}

/* Final app shell cleanup: icon-only sidebar mark + calmer frames */
.side-brand {
  gap: 12px !important;
  padding-bottom: 14px !important;
  margin-bottom: 14px !important;
}

.side-brand .side-logo {
  display: grid !important;
  place-items: center !important;
  width: 48px !important;
  height: 48px !important;
  flex: 0 0 48px !important;
  padding: 8px !important;
  overflow: visible !important;
  background: #fffdf8 !important;
  border: 1px solid rgba(255, 253, 248, .5) !important;
  border-radius: 14px !important;
  box-shadow: 0 12px 24px rgba(0, 0, 0, .16) !important;
}

.side-brand .side-logo img {
  display: block !important;
  width: 32px !important;
  height: 32px !important;
  object-fit: contain !important;
  object-position: center !important;
}

.side-brand > div {
  min-width: 0 !important;
}

.side-brand strong {
  margin: 0 !important;
  font-size: 20px !important;
  line-height: 1.05 !important;
  letter-spacing: -.03em !important;
}

.side-brand small {
  margin-top: 3px !important;
  font-size: 12px !important;
  line-height: 1.15 !important;
}

.hero-line,
.card-block,
.card,
.panel,
.admin-card,
.table-card,
.form-card,
.summary-card,
.stat-card,
.theme-sync-panel,
.theme-pages-card,
.empty-state {
  border-radius: 14px !important;
  border: 1px solid rgba(18, 55, 40, .14) !important;
  background: rgba(255, 253, 248, .95) !important;
  box-shadow: 0 12px 30px rgba(18, 55, 40, .06) !important;
}

.hero-line {
  min-height: 0 !important;
  padding: 18px 20px !important;
  margin: 14px 0 16px !important;
  align-items: center !important;
  background:
    linear-gradient(135deg, rgba(255, 253, 248, .98), rgba(255, 244, 226, .72)) !important;
}

.hero-line .eyebrow {
  margin: 0 0 6px !important;
  line-height: 1.1 !important;
}

.hero-line h1 {
  margin: 0 !important;
  line-height: 1.04 !important;
}

.hero-line p {
  margin: 8px 0 0 !important;
  line-height: 1.35 !important;
}

.card-block {
  padding: 18px !important;
}

.business-card::after,
[class*="business-card"]::after,
.print-a6::after,
[class*="print-a6"]::after,
.recipient-card::after,
[class*="recipient-name"]::after {
  display: none !important;
}

.date-nav {
  align-items: center !important;
  gap: 8px !important;
}

.date-nav a,
.date-nav .today,
.nav-arrow {
  min-width: 44px !important;
  height: 44px !important;
  border-radius: 14px !important;
  box-shadow: 0 8px 18px rgba(18, 55, 40, .07) !important;
}

html,
body {
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: hidden !important;
  overscroll-behavior-x: none !important;
}

body {
  touch-action: pan-y pinch-zoom;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

img,
video,
canvas,
svg,
iframe {
  max-width: 100%;
}

input,
textarea,
select,
button {
  max-width: 100%;
}

.mobile-menu-toggle,
.page,
.hero-line,
.card-block,
.detail-hero,
.order-card,
.detail-item,
.comms-workspace,
.comms-history-list,
.custom-request-list,
.custom-request-admin-card,
.sms-thread-shell,
.sms-thread-log,
.sms-thread-compose,
.comms-webhooks,
.table-card,
.admin-card,
.panel {
  min-width: 0 !important;
  max-width: 100% !important;
}

.page {
  overflow-x: clip !important;
}

.comms-webhooks code,
.custom-request-message,
.sms-bubble-copy,
.note-line,
.gift-line {
  overflow-wrap: anywhere;
  word-break: break-word;
}

.sms-thread-page {
  max-width: 920px !important;
  min-height: calc(100dvh - 40px);
}

.sms-thread-shell {
  display: grid;
  gap: 14px;
}

.sms-thread-head {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  padding: 16px;
  border: 1px solid rgba(18, 55, 40, .14);
  border-radius: 18px;
  background: rgba(255, 253, 248, .96);
  box-shadow: 0 14px 32px rgba(18, 55, 40, .06);
}

.sms-thread-head h1 {
  margin: 0;
  font-size: clamp(30px, 6vw, 54px);
  line-height: .95;
  letter-spacing: -.04em;
}

.sms-thread-log {
  display: grid;
  gap: 10px;
  min-height: min(56dvh, 620px);
  max-height: calc(100dvh - 300px);
  overflow-y: auto;
  padding: 18px;
  border: 1px solid rgba(18, 55, 40, .14);
  border-radius: 22px;
  background:
    radial-gradient(circle at 12% 8%, rgba(222, 91, 157, .06), transparent 28%),
    linear-gradient(135deg, rgba(255, 253, 248, .98), rgba(255, 244, 226, .72));
}

.sms-thread-empty {
  align-self: center;
  justify-self: center;
  text-align: center;
  color: rgba(18, 55, 40, .7);
}

.sms-bubble {
  display: flex;
}

.sms-bubble.is-staff {
  justify-content: flex-end;
}

.sms-bubble-copy {
  position: relative;
  width: fit-content;
  max-width: min(74%, 560px);
  padding: 12px 14px;
  border: 1px solid rgba(18, 55, 40, .12);
  border-radius: 20px;
  background: #fffdf8;
  box-shadow: 0 10px 24px rgba(18, 55, 40, .06);
}

.sms-bubble-copy.has-reactions {
  margin-bottom: 12px;
}

.sms-bubble-reactions {
  position: absolute;
  bottom: -14px;
  left: 14px;
  display: inline-flex;
  min-width: 30px;
  min-height: 26px;
  align-items: center;
  justify-content: center;
  gap: 2px;
  padding: 2px 7px;
  border: 2px solid #fffdf8;
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 5px 14px rgba(18, 55, 40, .16);
  color: #153f2c;
  font-size: 16px;
  line-height: 1;
}

.sms-bubble.is-staff .sms-bubble-reactions {
  right: 14px;
  left: auto;
}

.sms-bubble.is-staff .sms-bubble-copy {
  color: #fffdf8;
  border-color: rgba(18, 55, 40, .2);
  background: #153f2c;
}

.sms-bubble-copy p {
  margin: 0;
  line-height: 1.35;
}

.sms-bubble-copy small {
  display: block;
  margin-top: 8px;
  font-size: 11px;
  font-weight: 800;
  color: rgba(18, 55, 40, .55);
}

.sms-bubble.is-staff .sms-bubble-copy small {
  color: rgba(255, 253, 248, .72);
}

.sms-bubble-media {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 8px;
  margin-top: 10px;
}

.sms-bubble-media img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: 14px;
}

.sms-media-fallback {
  display: grid;
  min-height: 90px;
  place-items: center;
  border: 1px dashed currentColor;
  border-radius: 14px;
  color: inherit;
  font-weight: 850;
}

.sms-thread-compose {
  position: sticky;
  bottom: max(10px, env(safe-area-inset-bottom));
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 10px;
  align-items: end;
  padding: 12px;
  border: 1px solid rgba(18, 55, 40, .14);
  border-radius: 20px;
  background: rgba(255, 253, 248, .98);
  box-shadow: 0 -8px 28px rgba(18, 55, 40, .08);
}

.sms-compose-message {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.sms-compose-message textarea {
  min-height: 72px;
  resize: vertical;
}

.sms-compose-file {
  align-self: stretch;
  display: grid;
  place-items: center;
  min-width: 92px;
  padding: 0 12px;
  border: 1px dashed rgba(18, 55, 40, .24);
  border-radius: 16px;
  background: rgba(255, 255, 255, .76);
  cursor: pointer;
}

.sms-compose-file input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.sms-compose-file span {
  font-size: 12px;
  font-weight: 950;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.sms-thread-compose [data-sms-status] {
  grid-column: 1 / -1;
  margin: 0;
}

@media (max-width: 720px) {
  .sms-thread-head {
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  .sms-thread-log {
    max-height: none;
    min-height: 50dvh;
    padding: 12px;
  }

  .sms-bubble-copy {
    max-width: 88%;
  }

  .sms-thread-compose {
    grid-template-columns: 1fr;
  }
}

/* Mobile shell: every navigation label shares one left edge and the current page
   stays visible beside the live status dot. */
.side-links a .side-link-label {
  width: auto !important;
  min-width: 0 !important;
  flex: 1 1 auto !important;
  text-align: left !important;
  opacity: 1 !important;
}

.mobile-page-context {
  display: inline-flex;
  min-width: 0;
  align-items: center;
  gap: 11px;
  margin-left: auto;
}

.mobile-menu-toggle .mobile-page-context b {
  overflow: hidden;
  max-width: 42vw;
  color: rgba(18, 55, 40, .68);
  font-family: var(--df-admin-font-body, inherit);
  font-size: 12px;
  font-weight: 850;
  letter-spacing: .02em;
  line-height: 1;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mobile-menu-toggle .mobile-page-context em,
.mobile-menu-toggle .mobile-page-context em.sync-dot {
  margin-left: 0 !important;
  flex: 0 0 auto;
}

.menu-edge-swipe {
  display: none;
}

@media (max-width: 979px) {
  .menu-edge-swipe {
    position: fixed;
    z-index: 69;
    top: calc(58px + env(safe-area-inset-top));
    bottom: 0;
    left: 0;
    display: block;
    width: 30px;
    touch-action: none;
  }

  .menu-open .menu-edge-swipe {
    pointer-events: none;
  }
}

@media print {
  .menu-edge-swipe {
    display: none !important;
  }
}

/* Email Studio campaign planning */
.marketing-plan-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);gap:18px;margin-bottom:20px}.marketing-draft-card,.marketing-calendar-card{overflow:hidden;border:1px solid rgba(18,55,40,.12);border-radius:28px;background:rgba(255,253,248,.97);box-shadow:0 18px 46px rgba(18,55,40,.07)}.marketing-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:22px 24px 17px;border-bottom:1px solid rgba(18,55,40,.09);background:linear-gradient(135deg,rgba(255,239,220,.8),rgba(255,227,240,.72))}.marketing-card-head h2{margin:3px 0 6px}.marketing-card-head p:last-child{margin:0;color:rgba(18,55,40,.62)}.marketing-status-off{display:inline-flex;align-items:center;gap:7px;flex:0 0 auto;padding:8px 11px;border:1px solid rgba(157,46,100,.16);border-radius:999px;background:#fff;color:#9d2e64;font-size:10px;font-weight:950;letter-spacing:.08em;text-transform:uppercase}.marketing-status-off::before{content:"";width:7px;height:7px;border-radius:50%;background:#c9cbc6}.marketing-draft-preview{display:grid;gap:14px;padding:22px 24px}.marketing-draft-preview h3{margin:0;font-size:28px}.marketing-draft-preview>p{margin:0;color:rgba(18,55,40,.69);line-height:1.55}.marketing-draft-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.marketing-draft-meta span{display:grid;gap:3px;padding:12px;border:1px solid rgba(18,55,40,.1);border-radius:16px;background:#fff}.marketing-draft-meta small{color:rgba(18,55,40,.48);font-size:9px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.marketing-draft-meta b{font-size:12px}.marketing-trust-row{display:flex;flex-wrap:wrap;gap:7px}.marketing-trust-row span{padding:7px 10px;border-radius:999px;background:#edf4eb;color:#315d3a;font-size:10px;font-weight:850}.marketing-draft-note{padding:12px 14px;border-radius:15px;background:#fff6dc;color:#765c14;font-size:12px;line-height:1.45}.marketing-year-nav{display:flex;align-items:center;gap:7px}.marketing-year-nav a{display:grid;width:34px;height:34px;place-items:center;border:1px solid rgba(18,55,40,.13);border-radius:50%;background:#fff;color:#153f2c;text-decoration:none}.marketing-events{display:grid;max-height:500px;overflow:auto;padding:10px}.marketing-event{display:grid;grid-template-columns:54px minmax(0,1fr) auto;gap:12px;align-items:center;padding:11px 12px;border-bottom:1px solid rgba(18,55,40,.07)}.marketing-event:last-child{border-bottom:0}.marketing-event.is-tomorrow{border:1px solid rgba(226,91,155,.28);border-radius:16px;background:linear-gradient(90deg,rgba(255,225,238,.7),rgba(255,246,222,.48));box-shadow:0 8px 20px rgba(226,91,155,.08)}.marketing-event-date{display:grid;width:50px;height:50px;place-items:center;align-content:center;border-radius:15px;background:#f1f5ed;color:#153f2c}.marketing-event-date b{font-size:17px;line-height:1}.marketing-event-date small{margin-top:4px;font-size:8px;font-weight:950;letter-spacing:.08em;text-transform:uppercase}.marketing-event-copy{display:grid;min-width:0;gap:3px}.marketing-event-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.marketing-event-copy small{color:rgba(18,55,40,.57);line-height:1.3}.marketing-event-tag{padding:6px 8px;border-radius:999px;background:#fff0f6;color:#9d2e64;font-size:9px;font-weight:900;white-space:nowrap}.admin-marketing-alert{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px;padding:14px 17px;border:1px solid rgba(226,91,155,.24);border-radius:18px;background:linear-gradient(90deg,#ffe7f1,#fff6df);color:#153f2c;box-shadow:0 10px 24px rgba(226,91,155,.08)}.admin-marketing-alert strong{display:block}.admin-marketing-alert span{display:block;margin-top:3px;color:rgba(18,55,40,.62);font-size:12px}.admin-marketing-alert a{flex:0 0 auto;color:#8f2e60;font-size:12px;font-weight:900}.email-manual-heading{margin:24px 0 13px}.email-manual-heading h2{margin:2px 0 4px}.email-manual-heading p:last-child{margin:0;color:rgba(18,55,40,.6)}

@media(max-width:900px){.marketing-plan-grid{grid-template-columns:1fr}.marketing-events{max-height:430px}}
@media(max-width:620px){.mobile-menu-toggle .mobile-page-context b{max-width:36vw;font-size:11px}.marketing-card-head,.marketing-draft-preview{padding:18px}.marketing-card-head{align-items:center}.marketing-card-head h2{font-size:22px}.marketing-draft-preview h3{font-size:23px}.marketing-draft-meta{grid-template-columns:1fr}.marketing-event{grid-template-columns:48px minmax(0,1fr)}.marketing-event-date{width:44px;height:44px}.marketing-event-tag{grid-column:2;justify-self:start}.admin-marketing-alert{align-items:flex-start}.admin-marketing-alert a{margin-top:2px}}

/* Category membership writes immediately. Only expose Save order after a real reorder. */
.product-order-form:not(.has-unsaved-order) .product-order-save {
  display: none;
}

.product-order-form.has-unsaved-order .product-order-save {
  display: flex;
}

/* Desktop staff shell scroll guard.
   A few older polish layers turned parts of the app into fixed-height panes.
   Keep the main document as the vertical scroll owner so the mouse wheel always
   works on long order pages; only the left navigation keeps its own inner scroll. */
html,
body {
  height: auto !important;
  min-height: 100% !important;
  max-height: none !important;
  overflow-y: auto !important;
  overscroll-behavior-y: auto !important;
}

body.has-sidebar {
  min-height: 100dvh !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  touch-action: pan-y pinch-zoom !important;
}

body.has-sidebar .page {
  height: auto !important;
  min-height: calc(100dvh - 24px) !important;
  max-height: none !important;
  overflow-y: visible !important;
  overscroll-behavior-y: auto !important;
}

@media (min-width: 980px) {
  body.has-sidebar {
    overflow-y: auto !important;
  }

  body.has-sidebar .side-nav {
    height: 100dvh !important;
    min-height: 100dvh !important;
    max-height: 100dvh !important;
    overflow: hidden !important;
    overscroll-behavior: auto !important;
  }

  body.has-sidebar .side-links {
    overscroll-behavior: auto !important;
  }
}

.df-order-sound-toast {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 260;
  max-width: min(380px, calc(100vw - 36px));
  padding: 14px 16px;
  border: 1px solid rgba(18, 55, 40, .18);
  border-radius: 10px;
  color: #fffdf8;
  background: #123728;
  box-shadow: 0 18px 42px rgba(18, 55, 40, .24);
  font-weight: 900;
  text-decoration: none;
}

/* Accounting workspace */
body.has-sidebar .accounting-page {
  width: 100%;
  max-width: 1320px !important;
  margin-inline: auto;
  padding: 24px clamp(14px, 2.5vw, 34px) 64px;
}

.accounting-page .accounting-hero {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 136px;
  padding: clamp(20px, 3vw, 34px) !important;
  overflow: hidden;
  border: 1px solid rgba(18, 55, 40, .12) !important;
  border-radius: 26px !important;
  background:
    radial-gradient(circle at 93% 8%, rgba(255, 79, 163, .16), transparent 26%),
    radial-gradient(circle at 75% 125%, rgba(255, 214, 90, .25), transparent 32%),
    linear-gradient(135deg, #fffdf8 0%, #fff7ea 58%, #f2f7f0 100%) !important;
  box-shadow: 0 20px 52px rgba(18, 55, 40, .09) !important;
}

.accounting-hero-copy {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: 17px;
  min-width: 0;
}

.accounting-hero-copy h1 {
  margin: 2px 0 8px !important;
  font-size: clamp(28px, 4vw, 44px) !important;
  line-height: 1 !important;
}

.accounting-hero-copy p:last-child {
  margin: 0;
}

.accounting-hero-icon,
.card-spend-icon {
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  width: 58px;
  height: 58px;
  border-radius: 18px;
  color: #fffdf8;
  background: var(--df-admin-forest);
  box-shadow: 0 13px 28px rgba(18, 55, 40, .18);
}

.accounting-hero-icon svg,
.card-spend-icon svg {
  width: 28px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.accounting-page .accounting-actions {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: 10px;
  justify-items: initial;
}

.accounting-page .accounting-actions .date-nav {
  padding: 5px;
  border: 1px solid rgba(18, 55, 40, .11);
  border-radius: 18px;
  background: rgba(255, 253, 248, .78);
  box-shadow: 0 8px 22px rgba(18, 55, 40, .07);
}

.accounting-page .accounting-actions .date-nav a {
  height: 38px;
  min-width: 38px;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.accounting-page .accounting-actions .date-nav .today {
  min-width: 88px;
  color: #fffdf8 !important;
  background: var(--df-admin-forest) !important;
}

.accounting-page .accounting-export {
  height: 48px;
  padding-inline: 18px !important;
  border-color: rgba(18, 55, 40, .2) !important;
  background: rgba(255, 253, 248, .88) !important;
}

.accounting-page .accounting-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 12px;
  margin: 18px 0;
}

.accounting-page .accounting-stat {
  position: relative;
  min-height: 108px;
  padding: 20px 18px 17px !important;
  overflow: hidden;
  border: 1px solid rgba(18, 55, 40, .11) !important;
  border-radius: 21px !important;
  background: #fffdf8 !important;
  box-shadow: 0 13px 34px rgba(18, 55, 40, .07) !important;
}

.accounting-page .accounting-stat::before {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 5px;
  content: "";
  background: var(--stat-accent, var(--df-admin-forest));
}

.accounting-page .accounting-stat::after {
  position: absolute;
  top: -32px;
  right: -28px;
  width: 86px;
  height: 86px;
  border-radius: 999px;
  content: "";
  background: color-mix(in srgb, var(--stat-accent, var(--df-admin-forest)) 12%, transparent);
}

.accounting-page .accounting-stat span {
  color: var(--df-admin-muted) !important;
  font-size: 11px;
  letter-spacing: .08em !important;
}

.accounting-page .accounting-stat strong {
  position: relative;
  display: block;
  margin: 7px 0 4px;
  color: var(--df-admin-forest);
  font-family: var(--df-font-display) !important;
  font-size: clamp(24px, 2.6vw, 34px);
  line-height: 1;
}

.accounting-page .accounting-stat small {
  color: var(--df-admin-muted) !important;
  font-size: 11px;
  font-weight: 700;
}

.accounting-page .stat-sales { --stat-accent: #ff4fa3; }
.accounting-page .stat-bouquets { --stat-accent: #7a8f4a; }
.accounting-page .stat-addons { --stat-accent: #b28ae3; }
.accounting-page .stat-fees { --stat-accent: #d0a62f; }
.accounting-page .stat-expenses { --stat-accent: #d16355; }
.accounting-page .stat-profit { --stat-accent: #123728; }

.accounting-page .card-block {
  padding: clamp(18px, 2.4vw, 28px) !important;
  border-radius: 24px !important;
  box-shadow: 0 14px 38px rgba(18, 55, 40, .065) !important;
}

.accounting-page .card-spend-panel {
  border: 1px solid rgba(18, 55, 40, .14) !important;
  background:
    linear-gradient(145deg, rgba(255, 253, 248, .98), rgba(242, 247, 240, .92)) !important;
}

.accounting-page .card-spend-heading {
  display: flex;
  align-items: center;
  padding-bottom: 19px;
  border-bottom: 1px solid rgba(18, 55, 40, .1);
}

.accounting-page .card-spend-title {
  display: flex;
  align-items: center;
  gap: 15px;
  min-width: 0;
}

.accounting-page .card-spend-icon {
  width: 50px;
  height: 50px;
  color: var(--df-admin-forest);
  background: #ffe5f1;
  box-shadow: none;
}

.accounting-page .card-spend-heading h2 {
  margin: 1px 0 0;
}

.accounting-page .finance-balance-heading {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px 10px;
}

.accounting-page .finance-balance-heading strong {
  padding: 4px 8px;
  border: 1px solid rgba(196, 62, 128, .16);
  border-radius: 999px;
  color: #8f2d5d;
  background: #ffe5f1;
  font-family: var(--df-admin-font-display);
  font-size: 12px;
  letter-spacing: 0;
  box-shadow: 0 5px 14px rgba(196, 62, 128, .08);
}

.accounting-page .finance-balance-heading strong.is-unavailable {
  border-color: rgba(165, 47, 79, .15);
  color: #8b5966;
  background: #f5eeee;
  box-shadow: none;
}

.accounting-page .finance-count {
  min-width: 26px;
  height: 26px;
  color: #fff;
  background: #c43e80;
  box-shadow: 0 6px 15px rgba(196, 62, 128, .2);
}

.finance-live-status {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-left: auto;
  padding: 10px 13px;
  border: 1px solid rgba(79, 113, 75, .2);
  border-radius: 15px;
  background: rgba(232, 241, 229, .82);
}

.finance-live-status > i {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: #5f914e;
  box-shadow: 0 0 0 5px rgba(95, 145, 78, .13);
}

.finance-live-status > span {
  display: grid;
  gap: 1px;
}

.finance-live-status strong {
  color: #315331;
  font-size: 12px;
}

.finance-live-status small {
  color: #687d65 !important;
  font-size: 10px;
}

.accounting-page .finance-connections {
  margin: 14px 0 4px;
}

.accounting-page .finance-connection {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 12px;
  padding: 13px 15px;
  border: 1px solid rgba(18, 55, 40, .1) !important;
  border-left: 1px solid rgba(18, 55, 40, .1) !important;
  border-radius: 17px;
  background: rgba(255, 253, 248, .82);
  box-shadow: inset 0 1px rgba(255, 255, 255, .8);
}

.finance-connection-mark {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 10px;
  color: #fff;
  background: var(--df-admin-forest);
  font-size: 13px;
  font-weight: 950;
}

.accounting-page .finance-connection > div strong {
  color: var(--df-admin-forest);
  font-size: 14px;
}

.accounting-page .finance-connection > small {
  align-self: center;
  white-space: nowrap;
}

.accounting-page .finance-review-list {
  gap: 9px;
  margin-top: 17px;
}

.accounting-page .finance-review-row {
  grid-template-columns: minmax(210px, .8fr) auto minmax(430px, 1.35fr) auto;
  gap: 14px;
  padding: 16px;
  border: 1px solid rgba(18, 55, 40, .1);
  border-radius: 18px;
  background: rgba(255, 253, 248, .94);
  box-shadow: 0 6px 20px rgba(18, 55, 40, .045);
  transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}

.accounting-page .finance-review-row:hover {
  z-index: 1;
  border-color: rgba(18, 55, 40, .22);
  box-shadow: 0 12px 30px rgba(18, 55, 40, .08);
  transform: translateY(-1px);
}

.accounting-page .finance-transaction-main {
  position: relative;
  min-height: 44px;
  padding-left: 54px;
  justify-content: center;
}

.accounting-page .finance-transaction-main::before {
  position: absolute;
  top: 50%;
  left: 0;
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 13px;
  color: var(--df-admin-forest);
  content: "↗";
  background: #fff0f7;
  font-size: 18px;
  font-weight: 900;
  transform: translateY(-50%);
}

.accounting-page .finance-source {
  color: #466044;
  background: #eaf2e6;
}

.accounting-page .finance-review-row > b {
  color: var(--df-admin-forest);
  font-family: var(--df-font-display) !important;
  font-size: 18px;
}

.accounting-page .finance-review-form select,
.accounting-page .finance-review-form input,
.accounting-page .finance-expense-edit select,
.accounting-page .finance-expense-edit input {
  border-color: rgba(18, 55, 40, .14) !important;
  border-radius: 13px !important;
  background: #fffdf8 !important;
  box-shadow: inset 0 1px 2px rgba(18, 55, 40, .025);
}

.accounting-page .finance-review-form input:focus,
.accounting-page .finance-review-form select:focus {
  border-color: rgba(255, 79, 163, .55) !important;
}

.accounting-page .finance-ignore {
  padding: 8px 5px;
  color: #81716e;
  text-decoration-color: rgba(129, 113, 110, .42);
}

.accounting-section-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 16px;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(18, 55, 40, .1);
}

.accounting-section-heading h2,
.accounting-section-heading p {
  margin: 0;
}

.accounting-section-heading > p {
  max-width: 430px;
  color: var(--df-admin-muted);
  font-size: 13px;
  text-align: right;
}

.accounting-page .accounting-manual-entry {
  background: linear-gradient(135deg, #fffdf8, #fff8ec) !important;
}

.accounting-page .expense-form {
  gap: 10px;
}

.accounting-page .expense-form label {
  color: #50675d;
}

.accounting-page .expense-form input,
.accounting-page .expense-form select {
  min-height: 46px;
  border-color: rgba(18, 55, 40, .14) !important;
  border-radius: 14px !important;
  background: rgba(255, 253, 248, .96) !important;
}

.accounting-page .accounting-breakdown-grid {
  gap: 14px;
}

.accounting-page .accounting-breakdown-card {
  min-height: 250px;
}

.accounting-page .expense-row,
.accounting-page .total-row {
  margin-top: 8px;
  padding: 13px 14px;
  border: 1px solid rgba(18, 55, 40, .085);
  border-radius: 15px;
  background: rgba(255, 253, 248, .72);
}

.accounting-page .expense-row:first-of-type,
.accounting-page .total-row:first-of-type {
  border-top: 1px solid rgba(18, 55, 40, .085);
}

.accounting-page .expense-row b,
.accounting-page .total-row b {
  color: var(--df-admin-forest);
}

.accounting-page .order-account-row {
  transition: border-color .16s ease, background .16s ease;
}

.accounting-page .order-account-row:hover {
  border-color: rgba(255, 79, 163, .25);
  background: #fff8fb;
}

@media (min-width: 1180px) {
  .accounting-page .accounting-cards {
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 1050px) {
  .accounting-page .finance-review-row {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .accounting-page .finance-review-form,
  .accounting-page .finance-review-row > form:last-child {
    grid-column: 1 / -1;
  }
}

@media (max-width: 760px) {
  body.has-sidebar .accounting-page {
    padding: 74px 12px 42px;
  }

  .accounting-page .accounting-hero {
    display: grid;
    gap: 18px;
  }

  .accounting-hero-icon {
    width: 48px;
    height: 48px;
    border-radius: 15px;
  }

  .accounting-page .accounting-actions {
    display: grid;
    grid-template-columns: 1fr auto;
  }

  .accounting-page .accounting-actions .date-nav {
    width: 100%;
    justify-content: space-between;
  }

  .accounting-page .accounting-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .accounting-page .card-spend-heading,
  .accounting-section-heading {
    display: grid;
    align-items: start;
  }

  .finance-live-status {
    margin-left: 0;
    width: max-content;
  }

  .accounting-section-heading > p {
    text-align: left;
  }

  .accounting-page .finance-connection {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .accounting-page .finance-connection > small,
  .accounting-page .finance-connection > em {
    grid-column: 2;
  }
}

@media (max-width: 480px) {
  .accounting-hero-copy {
    align-items: flex-start;
  }

  .accounting-page .accounting-actions {
    grid-template-columns: 1fr;
  }

  .accounting-page .accounting-export {
    width: 100%;
  }

.accounting-page .accounting-stat {
    min-height: 112px;
    padding: 17px 14px 14px !important;
  }

  .accounting-page .accounting-stat strong {
    font-size: 22px;
  }

  .accounting-page .card-spend-title {
    align-items: flex-start;
  }

  .accounting-page .finance-review-row {
    padding: 13px;
  }
}

/* Shared staff workspace language: the accounting page is now the visual baseline. */
body.has-sidebar main.page:not(.narrow):not(.accounting-page):not(.calendar-page) {
  width: 100%;
  max-width: 1240px !important;
  margin-inline: auto;
  padding: 22px clamp(14px, 2.4vw, 30px) 60px;
}

body.has-sidebar main.page:not(.accounting-page):not(.calendar-page) > .hero-line {
  position: relative;
  min-height: 118px !important;
  padding: clamp(20px, 2.8vw, 28px) !important;
  overflow: hidden;
  border: 1px solid rgba(18, 55, 40, .12) !important;
  border-radius: 24px !important;
  background:
    radial-gradient(circle at 94% 4%, rgba(255, 79, 163, .13), transparent 28%),
    radial-gradient(circle at 78% 125%, rgba(255, 214, 90, .2), transparent 34%),
    linear-gradient(135deg, #fffdf8 0%, #fff7ea 62%, #f3f7f1 100%) !important;
  box-shadow: 0 18px 46px rgba(18, 55, 40, .075) !important;
}

body.has-sidebar main.page:not(.accounting-page):not(.calendar-page) > .hero-line::after {
  position: absolute;
  top: -46px;
  right: 16%;
  width: 118px;
  height: 118px;
  border: 22px solid rgba(255, 255, 255, .4);
  border-radius: 999px;
  content: "";
  pointer-events: none;
}

body.has-sidebar main.page:not(.accounting-page):not(.calendar-page) > .hero-line > * {
  position: relative;
  z-index: 1;
}

body.has-sidebar main.page:not(.accounting-page):not(.calendar-page) > .hero-line h1 {
  margin: 2px 0 7px !important;
  font-size: clamp(28px, 3.7vw, 42px) !important;
  line-height: 1 !important;
}

body.has-sidebar main.page:not(.accounting-page) .card-block,
body.has-sidebar main.page:not(.accounting-page) .admin-card,
body.has-sidebar main.page:not(.accounting-page) .table-card,
body.has-sidebar main.page:not(.accounting-page) .form-card,
body.has-sidebar main.page:not(.accounting-page) .panel {
  border: 1px solid rgba(18, 55, 40, .115) !important;
  border-radius: 21px !important;
  background: rgba(255, 253, 248, .965) !important;
  box-shadow: 0 13px 34px rgba(18, 55, 40, .06) !important;
}

body.has-sidebar main.page:not(.accounting-page) .card-block {
  padding: clamp(17px, 2.1vw, 24px) !important;
}

body.has-sidebar main.page:not(.accounting-page) .card-block h2,
body.has-sidebar main.page:not(.accounting-page) .admin-card strong {
  line-height: 1.12;
}

body.has-sidebar input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]),
body.has-sidebar select,
body.has-sidebar textarea {
  min-height: 44px;
  border-color: rgba(18, 55, 40, .15) !important;
  border-radius: 13px !important;
  background: rgba(255, 253, 248, .98) !important;
}

body.has-sidebar textarea {
  min-height: 96px;
}

body.has-sidebar button,
body.has-sidebar .btn,
body.has-sidebar .button,
body.has-sidebar input[type="submit"],
body.has-sidebar input[type="button"] {
  border-radius: 12px !important;
}

body.has-sidebar .btn-primary,
body.has-sidebar .btn-green,
body.has-sidebar .button-primary {
  box-shadow: 0 9px 22px rgba(18, 55, 40, .15) !important;
}

body.has-sidebar .notice {
  position: relative;
  min-height: 50px;
  margin: 12px 0 16px;
  padding: 14px 16px 14px 48px !important;
  border-radius: 16px !important;
  box-shadow: 0 8px 24px rgba(18, 55, 40, .045) !important;
  font-size: 14px;
  font-weight: 800;
}

body.has-sidebar .notice::before {
  position: absolute;
  top: 50%;
  left: 15px;
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border-radius: 8px;
  color: #fff;
  content: "i";
  background: var(--df-admin-forest);
  font-family: Georgia, serif;
  font-size: 14px;
  font-weight: 900;
  transform: translateY(-50%);
}

body.has-sidebar .notice.good::before {
  content: "\2713";
  background: #4f714b;
  font-family: inherit;
}

body.has-sidebar .notice.bad::before {
  content: "!";
  background: #a33128;
  font-family: inherit;
}

body.has-sidebar .empty-state {
  position: relative;
  padding: clamp(30px, 6vw, 54px) 24px !important;
  border-style: dashed !important;
  border-radius: 22px !important;
  background: linear-gradient(145deg, rgba(255, 253, 248, .96), rgba(242, 247, 240, .9)) !important;
  box-shadow: none !important;
}

body.has-sidebar .empty-state h2 {
  margin-top: 0;
}

/* Orders: clearer grouping and more tactile cards without adding visual noise. */
body.has-sidebar .pills {
  gap: 9px;
  padding: 2px 1px 13px;
}

body.has-sidebar .pill {
  min-height: 39px;
  padding: 9px 13px;
  border-color: rgba(18, 55, 40, .11) !important;
  background: rgba(255, 253, 248, .92) !important;
  box-shadow: 0 6px 18px rgba(18, 55, 40, .045);
}

body.has-sidebar .pill b {
  color: var(--df-admin-forest);
  background: #f0ece5;
}

body.has-sidebar .pill.green {
  color: #315331 !important;
  background: #eaf2e6 !important;
}

body.has-sidebar .pill.danger {
  color: #97372e !important;
  background: #fff0ed !important;
}

body.has-sidebar .order-group {
  margin: 19px 0 24px;
}

body.has-sidebar .order-group .group-title {
  padding: 11px 14px;
  border: 1px solid rgba(18, 55, 40, .095);
  border-radius: 15px;
  background: rgba(242, 247, 240, .8);
  box-shadow: inset 0 1px rgba(255, 255, 255, .7);
}

body.has-sidebar .order-group .group-title span {
  color: var(--df-admin-pink);
}

body.has-sidebar .order-group .group-title em {
  color: var(--df-admin-forest);
  background: rgba(255, 253, 248, .92);
}

body.has-sidebar .order-card {
  border: 1px solid rgba(18, 55, 40, .11) !important;
  border-radius: 19px !important;
  background: rgba(255, 253, 248, .98) !important;
  box-shadow: 0 9px 26px rgba(18, 55, 40, .055) !important;
  transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}

body.has-sidebar .order-card:hover {
  border-color: rgba(255, 79, 163, .25) !important;
  box-shadow: 0 15px 36px rgba(18, 55, 40, .09) !important;
  transform: translateY(-1px);
}

body.has-sidebar .order-card.status-arranging {
  border-color: rgba(208, 166, 47, .45) !important;
}

body.has-sidebar .order-card.status-manager_notified,
body.has-sidebar .order-card.status-ready {
  border-color: rgba(79, 113, 75, .28) !important;
  background: linear-gradient(135deg, #fffdf8, #f2f7f0) !important;
}

body.has-sidebar .order-card.status-issue {
  border-color: rgba(163, 49, 40, .3) !important;
  background: linear-gradient(135deg, #fffdf8, #fff2ef) !important;
}

body.has-sidebar .quick-col {
  border-color: rgba(18, 55, 40, .09);
  background: linear-gradient(180deg, #f6f8f3, #fffdf8);
}

body.has-sidebar .detail-hero {
  padding: clamp(20px, 2.8vw, 28px) !important;
  border: 1px solid rgba(18, 55, 40, .12) !important;
  border-radius: 23px !important;
  background:
    radial-gradient(circle at 95% 0%, rgba(178, 138, 227, .13), transparent 30%),
    linear-gradient(135deg, #fffdf8, #fff8eb) !important;
  box-shadow: 0 16px 42px rgba(18, 55, 40, .07) !important;
}

body.has-sidebar .back-chip {
  border-color: rgba(18, 55, 40, .11);
  background: rgba(255, 253, 248, .92);
  box-shadow: 0 7px 18px rgba(18, 55, 40, .045);
}

body.has-sidebar .gallery-card,
body.has-sidebar .product-admin-card,
body.has-sidebar .reminder-admin-row,
body.has-sidebar .custom-request-admin-card {
  border: 1px solid rgba(18, 55, 40, .11) !important;
  border-radius: 20px !important;
  background: rgba(255, 253, 248, .97) !important;
  box-shadow: 0 12px 31px rgba(18, 55, 40, .06) !important;
  transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}

body.has-sidebar .gallery-card:hover,
body.has-sidebar .product-admin-card:hover,
body.has-sidebar .custom-request-admin-card:hover {
  border-color: rgba(255, 79, 163, .24) !important;
  box-shadow: 0 17px 38px rgba(18, 55, 40, .085) !important;
  transform: translateY(-1px);
}

body.has-sidebar .total-cards > div:not(.accounting-stat) {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(18, 55, 40, .1) !important;
  border-radius: 18px !important;
  background: rgba(255, 253, 248, .96) !important;
  box-shadow: 0 10px 28px rgba(18, 55, 40, .055) !important;
}

body.has-sidebar .admin-grid {
  gap: 14px;
}

body.has-sidebar .admin-card {
  padding: 21px !important;
}

/* Calendar workspace */
body.has-sidebar .calendar-page {
  width: 100%;
  max-width: 1320px !important;
  margin-inline: auto;
  padding: 24px clamp(14px, 2.5vw, 34px) 64px;
  overflow-x: visible !important;
}

.calendar-page .calendar-hero {
  position: relative;
  display: flex;
  min-height: 136px !important;
  padding: clamp(20px, 3vw, 34px) !important;
  overflow: hidden;
  border: 1px solid rgba(18, 55, 40, .12) !important;
  border-radius: 26px !important;
  background:
    radial-gradient(circle at 93% 8%, rgba(178, 138, 227, .17), transparent 26%),
    radial-gradient(circle at 76% 125%, rgba(255, 214, 90, .23), transparent 33%),
    linear-gradient(135deg, #fffdf8 0%, #fff7ea 58%, #f2f7f0 100%) !important;
  box-shadow: 0 20px 52px rgba(18, 55, 40, .085) !important;
}

.calendar-hero-copy {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: 17px;
  min-width: 0;
}

.calendar-hero-copy h1 {
  margin: 2px 0 8px !important;
  font-size: clamp(28px, 4vw, 44px) !important;
  line-height: 1 !important;
}

.calendar-hero-copy p:last-child {
  margin: 0;
}

.calendar-hero-icon {
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  width: 58px;
  height: 58px;
  border-radius: 18px;
  color: #fffdf8;
  background: var(--df-admin-forest);
  box-shadow: 0 13px 28px rgba(18, 55, 40, .18);
}

.calendar-hero-icon svg {
  width: 29px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.calendar-page .calendar-month-nav {
  position: relative;
  z-index: 1;
  margin-left: auto;
  padding: 5px;
  border: 1px solid rgba(18, 55, 40, .11);
  border-radius: 18px;
  background: rgba(255, 253, 248, .8);
  box-shadow: 0 8px 22px rgba(18, 55, 40, .07);
}

.calendar-page .calendar-month-nav a {
  height: 38px !important;
  min-width: 38px !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.calendar-page .calendar-month-nav .today {
  min-width: 88px !important;
  color: #fffdf8 !important;
  background: var(--df-admin-forest) !important;
}

.calendar-page .calendar-month-nav .today.is-current::after {
  width: 6px;
  height: 6px;
  margin-left: 7px;
  border-radius: 999px;
  content: "";
  background: var(--df-admin-pink);
  box-shadow: 0 0 0 3px rgba(255, 79, 163, .2);
}

.calendar-overview {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px;
  margin: 18px 0 14px;
}

.calendar-summary {
  display: grid;
  grid-template-columns: 140px 140px minmax(220px, 1fr);
  gap: 10px;
}

.calendar-stat {
  position: relative;
  display: grid;
  align-content: center;
  min-height: 84px;
  padding: 14px 16px;
  overflow: hidden;
  border: 1px solid rgba(18, 55, 40, .1);
  border-radius: 18px;
  background: rgba(255, 253, 248, .95);
  box-shadow: 0 9px 26px rgba(18, 55, 40, .05);
}

.calendar-stat::before {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 4px;
  content: "";
  background: var(--calendar-stat-accent, var(--df-admin-forest));
}

.calendar-stat-orders { --calendar-stat-accent: var(--df-admin-pink); }
.calendar-stat-days { --calendar-stat-accent: var(--df-admin-palm); }
.calendar-stat-busy { --calendar-stat-accent: var(--df-admin-lavender); }

.calendar-stat span {
  color: var(--df-admin-muted);
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.calendar-stat strong {
  margin-top: 3px;
  color: var(--df-admin-forest);
  font-family: var(--df-admin-font-display);
  font-size: 24px;
  line-height: 1.08;
}

.calendar-stat-busy strong {
  font-size: 17px;
}

.calendar-stat small {
  margin-top: 3px;
  color: var(--df-admin-muted) !important;
  font-size: 11px;
  font-weight: 700;
}

.calendar-legend {
  display: flex;
  align-content: center;
  align-items: center;
  align-self: stretch;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px 12px;
  max-width: 370px;
  padding: 13px 16px;
  border: 1px solid rgba(18, 55, 40, .1);
  border-radius: 18px;
  background: rgba(255, 253, 248, .82);
}

.calendar-legend span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #51645a;
  font-size: 11px;
  font-weight: 800;
  white-space: nowrap;
}

.calendar-legend span::before,
.cal-chip::before {
  width: 7px;
  height: 7px;
  flex: 0 0 7px;
  border-radius: 999px;
  content: "";
  background: var(--calendar-chip-color, var(--df-admin-forest));
}

.calendar-key-orders,
.cal-orders { --calendar-chip-color: var(--df-admin-pink); }
.calendar-key-exact,
.cal-exact { --calendar-chip-color: #8b61bd; }
.calendar-key-pickup,
.cal-pickup { --calendar-chip-color: #c18a13; }
.calendar-key-ready,
.cal-ready { --calendar-chip-color: #5f914e; }
.calendar-key-issue,
.cal-issue { --calendar-chip-color: #bd4f43; }

.calendar-shell {
  position: relative;
  max-width: 100%;
  overflow-x: auto;
  border: 1px solid rgba(18, 55, 40, .13);
  border-radius: 24px;
  background: rgba(255, 253, 248, .96);
  box-shadow: 0 16px 42px rgba(18, 55, 40, .07);
  scrollbar-color: rgba(18, 55, 40, .25) transparent;
  scrollbar-width: thin;
}

.calendar-shell::-webkit-scrollbar {
  height: 8px;
}

.calendar-shell::-webkit-scrollbar-thumb {
  border: 2px solid transparent;
  border-radius: 999px;
  background: rgba(18, 55, 40, .24);
  background-clip: padding-box;
}

.calendar-page .calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(108px, 1fr));
  min-width: 756px;
  overflow: visible;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.calendar-page .cal-head,
.calendar-page .cal-day {
  border-right: 1px solid rgba(18, 55, 40, .085);
  border-bottom: 1px solid rgba(18, 55, 40, .085);
}

.calendar-page .cal-head:nth-child(7n),
.calendar-page .cal-day:nth-child(7n) {
  border-right: 0;
}

.calendar-page .cal-head {
  display: grid;
  place-items: center;
  min-height: 42px;
  padding: 8px;
  color: #607168;
  background: linear-gradient(180deg, #f3f7f1, #edf3ed);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.calendar-page .cal-day {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 136px;
  padding: 11px;
  color: var(--df-admin-forest);
  background: rgba(255, 253, 248, .98);
  text-decoration: none;
  transition: background .15s ease, box-shadow .15s ease, transform .15s ease;
}

.calendar-page a.cal-day:hover {
  z-index: 2;
  color: var(--df-admin-forest);
  background: #fff8ee;
  box-shadow: inset 0 0 0 2px rgba(255, 79, 163, .16), 0 10px 24px rgba(18, 55, 40, .08);
  transform: translateY(-1px);
}

.calendar-page .cal-weekend {
  background: rgba(255, 249, 239, .78);
}

.calendar-page .cal-muted {
  min-height: 136px;
  opacity: 1;
  background:
    linear-gradient(135deg, rgba(18, 55, 40, .018) 25%, transparent 25%) 0 0 / 14px 14px,
    linear-gradient(315deg, rgba(18, 55, 40, .018) 25%, transparent 25%) 0 0 / 14px 14px,
    #f5f4ef;
}

.calendar-page .cal-date-row {
  display: flex;
  align-items: center;
  min-height: 28px;
  margin-bottom: 5px;
}

.calendar-page .cal-date {
  display: grid;
  place-items: center;
  width: 29px;
  height: 29px;
  border-radius: 10px;
  color: var(--df-admin-forest);
  font-size: 16px;
  font-weight: 950;
  line-height: 1;
}

.calendar-page .cal-today {
  z-index: 3;
  background:
    radial-gradient(circle at 100% 0%, rgba(255, 79, 163, .15), transparent 44%),
    linear-gradient(145deg, #fffdf8, #f0f7ef) !important;
  box-shadow:
    inset 0 0 0 2px var(--df-admin-forest),
    inset 0 0 0 5px rgba(255, 253, 248, .9),
    0 10px 28px rgba(18, 55, 40, .14);
}

.calendar-page .cal-today .cal-date {
  color: #fffdf8;
  background: var(--df-admin-forest);
  box-shadow: 0 6px 14px rgba(18, 55, 40, .18);
}

.calendar-page .cal-today-label {
  margin-left: auto;
  padding: 4px 7px;
  border-radius: 999px;
  color: #9e2c64;
  background: #ffe5f1;
  font-size: 8px;
  font-weight: 950;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.calendar-page .cal-chip {
  display: flex;
  align-items: center;
  gap: 6px;
  min-height: 22px;
  margin-top: 4px;
  padding: 4px 7px;
  overflow: hidden;
  border: 1px solid transparent;
  border-radius: 8px;
  color: #40554a;
  background: #f3f1ec;
  font-size: 10px;
  font-weight: 800;
  line-height: 1.1;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.calendar-page .cal-orders {
  border-color: rgba(255, 79, 163, .12);
  background: #fff0f7;
}

.calendar-page .cal-exact {
  border-color: rgba(139, 97, 189, .13);
  background: #f2ebfa;
}

.calendar-page .cal-pickup {
  border-color: rgba(193, 138, 19, .14);
  background: #fff5d9;
}

.calendar-page .cal-ready {
  border-color: rgba(95, 145, 78, .14);
  background: #eaf3e7;
}

.calendar-page .cal-issue {
  border-color: rgba(189, 79, 67, .15);
  color: #96372e;
  background: #fff0ed;
}

.calendar-page .cal-no-orders {
  margin: auto 0 2px;
  color: #9aa49f;
  font-size: 9px;
  font-weight: 750;
}

@media (max-width: 980px) {
  .calendar-overview {
    grid-template-columns: 1fr;
  }

  .calendar-legend {
    max-width: none;
    justify-content: flex-start;
  }
}

@media (max-width: 760px) {
  body.has-sidebar main.page:not(.narrow):not(.accounting-page):not(.calendar-page) {
    padding: 72px 12px 42px;
  }

  body.has-sidebar main.page:not(.accounting-page):not(.calendar-page) > .hero-line {
    min-height: 0 !important;
    border-radius: 21px !important;
  }

  body.has-sidebar .calendar-page {
    padding: 74px 12px 44px;
  }

  .calendar-page .calendar-hero {
    display: grid !important;
    gap: 18px !important;
    border-radius: 22px !important;
  }

  .calendar-hero-icon {
    width: 48px;
    height: 48px;
    border-radius: 15px;
  }

  .calendar-page .calendar-month-nav {
    width: 100%;
    margin-left: 0 !important;
    justify-content: space-between;
  }

  .calendar-page .calendar-month-nav .today {
    flex: 1 1 auto;
  }

  .calendar-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .calendar-stat-busy {
    grid-column: 1 / -1;
  }

  .calendar-overview {
    margin-top: 14px;
  }

  .calendar-legend {
    padding: 11px 13px;
  }

  .calendar-shell::after {
    position: sticky;
    right: 8px;
    bottom: 8px;
    float: right;
    margin: -30px 8px 8px 0;
    padding: 5px 8px;
    border-radius: 999px;
    color: #607168;
    content: "Swipe to see the week \2192";
    background: rgba(255, 253, 248, .9);
    box-shadow: 0 5px 14px rgba(18, 55, 40, .08);
    font-size: 9px;
    font-weight: 800;
    pointer-events: none;
  }

  .calendar-page .calendar-grid {
    min-width: 770px;
    grid-template-columns: repeat(7, 110px);
  }

  .calendar-page .cal-head {
    min-height: 38px;
  }

  .calendar-page .cal-day,
  .calendar-page .cal-muted {
    min-height: 132px;
    padding: 10px;
  }
}

@media (max-width: 480px) {
  .calendar-hero-copy {
    align-items: flex-start;
  }

  .calendar-hero-copy h1 {
    font-size: 29px !important;
  }

  .calendar-stat {
    min-height: 76px;
    padding: 12px 13px;
  }

  .calendar-stat strong {
    font-size: 21px;
  }

  .calendar-stat-busy strong {
    font-size: 16px;
  }
}

/* Softer actions: primary no longer means a wall of dark green. */
body.has-sidebar .btn.btn-primary,
body.has-sidebar a.btn.btn-primary,
body.has-sidebar button.btn.btn-primary,
body.has-sidebar .btn.btn-green,
body.has-sidebar a.btn.btn-green,
body.has-sidebar button.btn.btn-green,
body.has-sidebar .button-primary,
body.has-sidebar input[type="submit"] {
  color: #74294f !important;
  border: 1px solid rgba(196, 62, 128, .23) !important;
  background: linear-gradient(135deg, #ffe4f0 0%, #fff0df 100%) !important;
  box-shadow: 0 9px 22px rgba(196, 62, 128, .11) !important;
}

body.has-sidebar .btn.btn-primary:hover,
body.has-sidebar .btn.btn-green:hover,
body.has-sidebar .button-primary:hover,
body.has-sidebar input[type="submit"]:hover {
  border-color: rgba(196, 62, 128, .38) !important;
  background: linear-gradient(135deg, #ffd9e9 0%, #ffe9d2 100%) !important;
  box-shadow: 0 12px 27px rgba(196, 62, 128, .16) !important;
}

body.has-sidebar button[type="submit"].btn:not(.btn-primary):not(.btn-green):not(.btn-danger):not(.btn-uber):not(.btn-bestseller),
body.has-sidebar .btn.btn-outline,
body.has-sidebar a.btn.btn-outline {
  color: var(--df-admin-forest) !important;
  border: 1px solid rgba(18, 55, 40, .17) !important;
  background: rgba(255, 253, 248, .96) !important;
  box-shadow: 0 7px 18px rgba(18, 55, 40, .055) !important;
}

body.has-sidebar button[type="submit"].btn:not(.btn-primary):not(.btn-green):not(.btn-danger):not(.btn-uber):not(.btn-bestseller):hover,
body.has-sidebar .btn.btn-outline:hover {
  border-color: rgba(255, 79, 163, .3) !important;
  background: #fff8fb !important;
}

body.has-sidebar .btn.btn-uber {
  color: #56356e !important;
  border-color: rgba(139, 97, 189, .24) !important;
  background: linear-gradient(135deg, #eee4fa, #fff0f7) !important;
  box-shadow: 0 9px 22px rgba(139, 97, 189, .11) !important;
}

body.has-sidebar button.mini-danger,
body.has-sidebar button.icon-danger,
body.has-sidebar button.mini-icon-danger,
body.has-sidebar button.btn-danger,
body.has-sidebar .btn.btn-danger {
  color: #9b352d !important;
  border-color: rgba(163, 49, 40, .2) !important;
  background: #fff0ed !important;
  box-shadow: none !important;
}

body.has-sidebar button.mini-danger[type="submit"],
body.has-sidebar button.icon-danger[type="submit"],
body.has-sidebar button.mini-icon-danger[type="submit"],
body.has-sidebar button.btn-danger[type="submit"] {
  color: #9b352d !important;
  border-color: rgba(163, 49, 40, .2) !important;
  background: #fff0ed !important;
  box-shadow: none !important;
}

body.has-sidebar button[type="submit"]:not([class]) {
  color: #8e3b35 !important;
  border-color: rgba(163, 49, 40, .16) !important;
  background: #fff5f2 !important;
  box-shadow: none !important;
}

/* Sidebar: grouped navigation with one tucked-away utility drawer. */
.side-nav {
  background:
    radial-gradient(circle at 18% -2%, rgba(255, 79, 163, .17), transparent 27%),
    radial-gradient(circle at 110% 36%, rgba(178, 138, 227, .13), transparent 30%),
    linear-gradient(180deg, #173f30 0%, #123728 62%, #102f23 100%) !important;
  box-shadow: 14px 0 42px rgba(18, 55, 40, .2) !important;
}

.side-brand {
  padding: 0 2px 16px !important;
  border-bottom: 1px solid rgba(255, 253, 248, .1);
}

.side-brand .side-logo {
  border-radius: 15px !important;
  box-shadow: 0 10px 25px rgba(0, 0, 0, .14) !important;
}

.side-brand strong {
  font-size: 19px !important;
}

.side-links {
  gap: 4px !important;
  padding: 4px 3px 16px 0 !important;
  scrollbar-width: none !important;
}

.side-links::-webkit-scrollbar {
  width: 0;
  height: 0;
}

.side-section-label {
  display: block;
  margin: 12px 10px 5px;
  color: rgba(255, 253, 248, .48);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .15em;
  line-height: 1;
  text-transform: uppercase;
}

.side-section-label:first-child {
  margin-top: 5px;
}

.side-links a {
  position: relative;
  min-height: 44px !important;
  padding: 7px 9px !important;
  border: 1px solid transparent !important;
  border-radius: 14px !important;
  color: rgba(255, 253, 248, .78) !important;
  font-size: 14px;
  transition: color .15s ease, background .15s ease, border-color .15s ease, transform .15s ease !important;
}

.side-links a svg {
  width: 31px !important;
  height: 31px !important;
  flex: 0 0 31px !important;
  padding: 7px;
  border-radius: 10px;
  color: rgba(255, 253, 248, .72) !important;
  background: rgba(255, 253, 248, .07);
}

.side-links a:hover {
  color: #fffdf8 !important;
  border-color: rgba(255, 253, 248, .1) !important;
  background: rgba(255, 253, 248, .07) !important;
  transform: translateX(2px);
}

.side-links a.active {
  color: var(--df-admin-forest) !important;
  border-color: rgba(255, 253, 248, .6) !important;
  background: linear-gradient(135deg, #fffdf8, #fff0df) !important;
  box-shadow: 0 10px 24px rgba(0, 0, 0, .13) !important;
}

.side-links a.active::after {
  position: absolute;
  top: 10px;
  right: 8px;
  width: 5px;
  height: 24px;
  border-radius: 999px;
  content: "";
  background: var(--df-admin-pink);
}

.side-links a.active svg {
  color: #9d2e64 !important;
  background: #ffe3ef;
}

.side-user {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 2px 10px;
  margin: 8px 0 !important;
  padding: 11px 13px !important;
  border: 1px solid rgba(255, 253, 248, .12) !important;
  border-radius: 16px !important;
  background: rgba(255, 253, 248, .065) !important;
  box-shadow: inset 0 1px rgba(255, 255, 255, .04);
}

.side-user strong {
  grid-column: 1;
  font-size: 14px;
}

.side-user span {
  grid-column: 2;
  grid-row: 1;
  align-self: center;
  padding: 3px 7px;
  border-radius: 999px;
  color: #ffd9e9 !important;
  background: rgba(255, 79, 163, .12);
  font-size: 9px !important;
  font-weight: 850;
  text-transform: uppercase;
}

.side-user small {
  grid-column: 1 / -1;
  margin-top: 1px !important;
  color: rgba(255, 253, 248, .56) !important;
  font-size: 10px !important;
}

.side-bottom {
  margin-top: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}

.side-tools {
  position: relative;
  margin: 0;
}

.side-tools > summary {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  padding: 9px 12px;
  border: 1px solid rgba(255, 253, 248, .13);
  border-radius: 14px;
  color: rgba(255, 253, 248, .78);
  background: rgba(255, 253, 248, .055);
  font-size: 13px;
  font-weight: 850;
  list-style: none;
  cursor: pointer;
  transition: color .15s ease, background .15s ease, border-color .15s ease;
}

.side-tools > summary::-webkit-details-marker {
  display: none;
}

.side-tools > summary:hover {
  color: #fffdf8;
  border-color: rgba(255, 253, 248, .22);
  background: rgba(255, 253, 248, .09);
}

.side-tools > summary svg {
  width: 22px;
  height: 22px;
  fill: currentColor;
  stroke: currentColor;
  stroke-width: 1;
}

.side-tools > summary span {
  flex: 1;
}

.side-tools > summary i {
  width: 8px;
  height: 8px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg) translate(-2px, -2px);
  transition: transform .15s ease;
}

.side-tools[open] > summary i {
  transform: rotate(225deg) translate(-1px, -1px);
}

.side-tools-menu {
  display: grid;
  gap: 5px;
  margin-top: 6px;
  padding: 7px;
  border: 1px solid rgba(255, 253, 248, .12);
  border-radius: 15px;
  background: rgba(9, 31, 22, .5);
  box-shadow: 0 12px 30px rgba(0, 0, 0, .14);
}

.side-tools-menu form {
  margin: 0;
}

.side-tools-menu .side-action,
.side-tools-menu button.side-action,
.side-tools-menu a.side-action {
  min-height: 40px !important;
  padding: 8px 10px !important;
  border: 1px solid transparent !important;
  border-radius: 11px !important;
  color: rgba(255, 253, 248, .76) !important;
  background: transparent !important;
  box-shadow: none !important;
  font-size: 12px;
}

.side-tools-menu .side-action:hover {
  color: #fffdf8 !important;
  border-color: rgba(255, 253, 248, .1) !important;
  background: rgba(255, 253, 248, .07) !important;
}

.side-tools-menu .side-action.logout {
  color: #ffc9c1 !important;
}

body.has-sidebar .side-tools-menu button.side-action[type="submit"] {
  color: #ffc9c1 !important;
  border-color: transparent !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.has-sidebar .side-tools-menu button.side-action[type="submit"]:hover {
  border-color: rgba(255, 201, 193, .12) !important;
  background: rgba(255, 201, 193, .07) !important;
}

.mobile-menu-toggle {
  min-height: calc(58px + env(safe-area-inset-top)) !important;
  height: calc(58px + env(safe-area-inset-top)) !important;
  padding: env(safe-area-inset-top) 16px 0 !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(18, 55, 40, .1) !important;
  border-radius: 0 0 18px 18px !important;
  background: rgba(255, 253, 248, .94) !important;
  box-shadow: 0 8px 26px rgba(18, 55, 40, .09) !important;
}

.mobile-menu-toggle svg {
  width: 36px !important;
  height: 36px !important;
  padding: 8px;
  border-radius: 12px;
  color: #9d2e64;
  background: #ffe6f1;
}

.mobile-menu-toggle strong {
  color: var(--df-admin-forest);
  font-family: var(--df-admin-font-display) !important;
  font-size: 19px !important;
}

.mobile-menu-toggle em,
.mobile-menu-toggle em.sync-dot,
.mobile-menu-toggle em.ok {
  width: 8px;
  height: 8px;
  background: #69945d !important;
  box-shadow: 0 0 0 5px rgba(105, 148, 93, .13) !important;
}

.accounting-page .accounting-actions .date-nav .today,
.calendar-page .calendar-month-nav .today {
  color: #74294f !important;
  border: 1px solid rgba(196, 62, 128, .18) !important;
  background: linear-gradient(135deg, #ffe4f0, #fff0df) !important;
  box-shadow: 0 7px 17px rgba(196, 62, 128, .1) !important;
}

/* Compact phone calendar: the whole month stays on screen, details stay one tap away. */
.cal-mobile-signals {
  display: none;
}

.calendar-page .cal-no-orders {
  display: none;
}

@media (max-width: 760px) {
  body.has-sidebar .calendar-page {
    overflow-x: clip !important;
  }

  .calendar-overview {
    gap: 10px;
  }

  .calendar-legend {
    gap: 7px 10px;
    padding: 10px 12px;
    overflow: hidden;
  }

  .calendar-legend span {
    gap: 5px;
    font-size: 9px;
  }

  .calendar-legend span::before {
    width: 6px;
    height: 6px;
    flex-basis: 6px;
  }

  .calendar-shell {
    width: 100%;
    overflow: hidden;
    border-radius: 20px;
  }

  .calendar-shell::after {
    display: none !important;
  }

  .calendar-page .calendar-grid {
    width: 100%;
    min-width: 0 !important;
    grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
  }

  .calendar-page .cal-head {
    min-width: 0;
    min-height: 30px;
    padding: 5px 1px;
    font-size: 8px;
    letter-spacing: .06em;
  }

  .calendar-page .cal-day,
  .calendar-page .cal-muted {
    min-width: 0;
    min-height: 74px;
    padding: 5px;
  }

  .calendar-page .cal-date-row {
    min-height: 25px;
    margin: 0;
  }

  .calendar-page .cal-date {
    width: 25px;
    height: 25px;
    border-radius: 9px;
    font-size: 13px;
  }

  .calendar-page .cal-today-label,
  .calendar-page .cal-no-orders,
  .calendar-page .cal-chip {
    display: none;
  }

  .calendar-page .cal-has-orders {
    background: linear-gradient(145deg, #fffdf8, #fff7fa);
  }

  .calendar-page .cal-orders {
    position: absolute;
    right: 5px;
    bottom: 6px;
    display: grid;
    place-items: center;
    width: 21px;
    min-height: 19px;
    height: 19px;
    margin: 0;
    padding: 0;
    border-color: rgba(255, 79, 163, .16);
    border-radius: 7px;
    color: #8f2d5d;
    background: #ffe4f0;
    font-size: 0;
  }

  .calendar-page .cal-orders::before {
    display: none;
  }

  .calendar-page .cal-orders::after {
    color: #8f2d5d;
    content: attr(data-count);
    font-size: 10px;
    font-weight: 950;
    line-height: 1;
  }

  .cal-mobile-signals {
    position: absolute;
    bottom: 9px;
    left: 6px;
    display: flex;
    align-items: center;
    gap: 2px;
    min-height: 7px;
  }

  .cal-mobile-signals i {
    width: 5px;
    height: 5px;
    border-radius: 999px;
    background: var(--signal-color, transparent);
  }

  .cal-mobile-signals .signal-exact { --signal-color: #8b61bd; }
  .cal-mobile-signals .signal-pickup { --signal-color: #c18a13; }
  .cal-mobile-signals .signal-ready { --signal-color: #5f914e; }
  .cal-mobile-signals .signal-issue { --signal-color: #bd4f43; }

  .calendar-page .cal-today {
    box-shadow:
      inset 0 0 0 2px var(--df-admin-forest),
      inset 0 0 0 4px rgba(255, 253, 248, .9),
      0 5px 15px rgba(18, 55, 40, .12);
  }

  .calendar-page a.cal-day:hover {
    transform: none;
  }
}

@media (max-width: 390px) {
  .calendar-page .cal-day,
  .calendar-page .cal-muted {
    min-height: 67px;
    padding: 4px;
  }

  .calendar-page .cal-date {
    width: 23px;
    height: 23px;
    font-size: 12px;
  }

  .calendar-page .cal-orders {
    right: 4px;
    bottom: 5px;
    width: 19px;
    height: 18px;
  }

  .cal-mobile-signals {
    bottom: 8px;
    left: 5px;
  }

  .calendar-legend {
    gap: 6px 8px;
  }
}

@media (max-width: 720px) {
  body.has-sidebar main.page.messenger-thread-page {
    height: calc(100dvh - 70px) !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
  }

  body.has-sidebar main.page.messenger-thread-page .messenger-thread-shell {
    height: calc(100dvh - 84px) !important;
  }
}

/* Personal settings + chat quick messages */
.staff-settings-page{max-width:1120px!important}.staff-settings-hero{margin-bottom:18px}.quick-replies-intro{display:flex;align-items:center;gap:18px;margin-bottom:18px;padding:22px 24px;border:1px solid rgba(18,55,40,.12);border-radius:26px;background:linear-gradient(135deg,rgba(255,253,248,.98),rgba(255,232,242,.68));box-shadow:0 16px 40px rgba(18,55,40,.06)}.quick-replies-intro h2,.quick-replies-section-head h2,.quick-reply-new h2{margin:2px 0 7px}.quick-replies-intro p:last-child{max-width:760px;margin:0;color:rgba(18,55,40,.65);line-height:1.55}.quick-replies-intro-icon{display:grid;width:62px;height:62px;flex:0 0 62px;place-items:center;border-radius:20px;background:#153f2c;color:#fff;box-shadow:0 12px 26px rgba(18,55,40,.18)}.quick-replies-intro-icon svg{width:29px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.quick-replies-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.75fr);gap:18px;align-items:start}.quick-replies-list{display:grid;gap:12px}.quick-replies-section-head{display:flex;align-items:end;justify-content:space-between;padding:4px 4px 2px}.quick-replies-section-head>span{display:grid;min-width:34px;height:34px;place-items:center;border-radius:50%;background:#ffe3ef;color:#9d2e64;font-weight:950}.quick-reply-card,.quick-reply-new{display:grid;gap:14px;padding:20px;border:1px solid rgba(18,55,40,.13);border-radius:24px;background:rgba(255,253,248,.96);box-shadow:0 13px 34px rgba(18,55,40,.055)}.quick-reply-card.is-paused{opacity:.7;background:rgba(244,244,239,.88)}.quick-reply-card label,.quick-reply-new label{display:grid;gap:7px;color:#153f2c;font-size:12px;font-weight:900;letter-spacing:.045em}.quick-reply-card-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:end}.quick-reply-title-field input{font-size:17px!important;font-weight:850}.quick-reply-shortcut-input{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;overflow:hidden;border:1px solid rgba(18,55,40,.15);border-radius:15px;background:#fff}.quick-reply-shortcut-input:focus-within{border-color:#df5b9b;box-shadow:0 0 0 3px rgba(223,91,155,.12)}.quick-reply-shortcut-input i{padding-left:14px;color:#b54177;font-size:17px;font-style:normal;font-weight:950}.quick-reply-shortcut-input input{border:0!important;box-shadow:none!important;background:transparent!important}.quick-reply-toggle{display:flex!important;align-items:center;gap:8px;padding-bottom:11px;cursor:pointer}.quick-reply-toggle input{position:absolute;opacity:0;pointer-events:none}.quick-reply-toggle>span{position:relative;width:42px;height:24px;border-radius:999px;background:#d9ddd8;transition:.18s ease}.quick-reply-toggle>span::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(0,0,0,.16);transition:.18s ease}.quick-reply-toggle input:checked+span{background:#4f8b59}.quick-reply-toggle input:checked+span::after{transform:translateX(18px)}.quick-reply-toggle b{font-size:12px}.quick-reply-actions{display:flex;gap:9px;justify-content:space-between}.quick-reply-new{position:sticky;top:18px;background:linear-gradient(155deg,#fffdf8,#fff2f7)}.quick-reply-new .btn{width:100%}

.messenger-compose{z-index:6}.sms-quick-reply-picker{position:absolute;right:10px;bottom:calc(100% + 8px);left:10px;z-index:10;overflow:hidden;border:1px solid rgba(18,55,40,.14);border-radius:20px;background:rgba(255,253,248,.985);box-shadow:0 22px 52px rgba(18,55,40,.18);backdrop-filter:blur(12px)}.sms-quick-reply-picker[hidden]{display:none!important}.sms-quick-reply-picker-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px 8px;border-bottom:1px solid rgba(18,55,40,.08);color:#9d2e64;font-size:10px;font-weight:950;letter-spacing:.09em;text-transform:uppercase}.sms-quick-reply-picker-head small{color:rgba(18,55,40,.48);font-size:9px;letter-spacing:.02em;text-transform:none}.sms-quick-reply-picker [data-quick-reply-options]{display:grid;max-height:270px;overflow:auto;padding:6px}.sms-quick-reply-picker button{display:flex;width:100%;min-width:0;align-items:center;gap:12px;padding:11px 12px!important;border:0!important;border-radius:14px!important;background:transparent!important;color:#153f2c!important;text-align:left;box-shadow:none!important;cursor:pointer}.sms-quick-reply-picker button:hover,.sms-quick-reply-picker button.is-active{background:linear-gradient(90deg,rgba(255,225,238,.88),rgba(255,244,220,.5))!important}.sms-quick-reply-picker button>span{display:grid;min-width:0;flex:1;gap:3px}.sms-quick-reply-picker button strong,.sms-quick-reply-picker button small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sms-quick-reply-picker button strong{font-size:13px}.sms-quick-reply-picker button small{color:rgba(18,55,40,.58);font-size:11px;font-weight:600}.sms-quick-reply-picker button>b{flex:0 0 auto;padding:5px 8px;border-radius:999px;background:#fff;color:#a4396c;font-size:11px}

@media(max-width:820px){.quick-replies-layout{grid-template-columns:1fr}.quick-reply-new{position:static}.quick-reply-card-head{grid-template-columns:minmax(0,1fr) auto}}
@media(max-width:720px){.staff-settings-page{padding-bottom:34px!important}.quick-replies-intro{align-items:flex-start;padding:18px;border-radius:22px}.quick-replies-intro-icon{width:48px;height:48px;flex-basis:48px;border-radius:16px}.quick-replies-intro-icon svg{width:24px}.quick-reply-card,.quick-reply-new{padding:16px;border-radius:20px}.quick-reply-actions{display:grid;grid-template-columns:1fr auto}.messenger-compose{position:relative!important}.sms-quick-reply-picker{right:6px;bottom:calc(100% + 6px);left:6px}.sms-quick-reply-picker-head small{display:none}}

/* Telegram-style shared customer inbox */
.side-link-label{min-width:0;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.side-nav-badge{display:inline-grid;min-width:24px;height:24px;flex:0 0 auto;place-items:center;margin-left:auto;padding:0 7px;border-radius:999px;background:#e25b9b;color:#fff;font-size:11px;font-weight:950;line-height:1;box-shadow:0 6px 14px rgba(226,91,155,.28)}
.side-nav-badge[hidden]{display:none!important}
.side-links a.active .side-nav-badge{background:#153f2c;color:#fff}
.messenger-page,.messenger-thread-page{max-width:980px!important}
.messenger-list-shell,.messenger-thread-shell{overflow:hidden;border:1px solid rgba(18,55,40,.13);border-radius:28px;background:rgba(255,253,248,.96);box-shadow:0 20px 54px rgba(18,55,40,.08)}
.messenger-list-head,.messenger-thread-head{display:flex;align-items:center;gap:12px;min-height:76px;padding:14px 18px;border-bottom:1px solid rgba(18,55,40,.1);background:linear-gradient(135deg,rgba(255,253,248,.98),rgba(255,235,244,.76))}
.messenger-list-head>div:first-child{flex:1}.messenger-list-head h1{margin:0;font-size:clamp(34px,5vw,52px);line-height:.95}.messenger-list-head .eyebrow{margin-bottom:5px}
.messenger-list-actions{display:flex;align-items:center;gap:9px}.new-chat-card .subtle{margin:-4px 0 2px}.new-chat-card label{display:grid;gap:8px;font-weight:800}.new-chat-card input{width:100%;min-height:52px;padding:0 15px;border:1px solid rgba(18,55,40,.17);border-radius:15px;background:#fff;color:#153f2c;font:inherit}.new-chat-card input:focus{outline:3px solid rgba(230,86,153,.17);border-color:#d94f91}
.messenger-head-action,.messenger-icon-button{display:inline-grid;width:44px;height:44px;flex:0 0 44px;place-items:center;padding:0;border:1px solid rgba(18,55,40,.14);border-radius:50%;background:#fffdf8;color:#153f2c;cursor:pointer}
.messenger-head-action svg,.messenger-icon-button svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.messenger-icon-button.is-working{opacity:.55}.messenger-icon-button.is-success{color:#fff;background:#4f8b59}
.messenger-chat-list{display:grid}.messenger-chat-row{display:flex;min-width:0;align-items:center;gap:14px;padding:14px 18px;border-bottom:1px solid rgba(18,55,40,.08);color:#153f2c;text-decoration:none;transition:background .15s ease}.messenger-chat-row:last-child{border-bottom:0}.messenger-chat-row:hover{background:rgba(255,232,242,.46)}.messenger-chat-row.has-unread{background:linear-gradient(90deg,rgba(255,226,239,.52),transparent 55%)}
.messenger-avatar{display:inline-grid;width:52px;height:52px;flex:0 0 52px;place-items:center;border-radius:50%;background:linear-gradient(145deg,#ffe3ef,#fff0d7);color:#9d2e64;font-size:20px;font-weight:950}.messenger-chat-copy{display:grid;min-width:0;flex:1;gap:3px}.messenger-chat-title,.messenger-chat-preview{display:flex;min-width:0;align-items:center;gap:10px}.messenger-chat-title strong{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:16px}.messenger-chat-title time{flex:0 0 auto;color:rgba(18,55,40,.52);font-size:12px}.messenger-chat-preview>span{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:rgba(18,55,40,.65)}.messenger-chat-preview b{display:grid;min-width:24px;height:24px;place-items:center;padding:0 6px;border-radius:999px;background:#e25b9b;color:#fff;font-size:11px}.messenger-chat-copy small{color:rgba(18,55,40,.46);font-size:11px}.messenger-empty{display:grid;min-height:360px;place-items:center;align-content:center;padding:30px;text-align:center}.messenger-empty span{color:#df5b9b;font-size:38px}.messenger-empty h2{margin:8px 0 0}.messenger-empty p{margin:4px 0 0;color:var(--muted)}
.messenger-thread-shell{display:grid;gap:0}.messenger-thread-head{position:relative;z-index:4}.messenger-thread-person{display:flex;min-width:0;flex:1;align-items:center;gap:11px}.messenger-thread-person .messenger-avatar{width:44px;height:44px;flex-basis:44px;font-size:17px}.messenger-thread-person h1{max-width:100%;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:18px;line-height:1.1;letter-spacing:0}.messenger-thread-person p{margin:3px 0 0;color:rgba(18,55,40,.58);font-size:12px}
.calls-page .comms-workspace{grid-template-columns:minmax(0,1fr)}
.messenger-more{position:relative}.messenger-more summary{list-style:none}.messenger-more summary::-webkit-details-marker{display:none}.messenger-more-menu{position:absolute;top:calc(100% + 8px);right:0;display:grid;width:190px;padding:7px;border:1px solid rgba(18,55,40,.13);border-radius:16px;background:#fffdf8;box-shadow:0 18px 46px rgba(18,55,40,.16)}.messenger-more-menu button{display:flex;justify-content:space-between;padding:11px 12px;border:0;border-radius:11px;background:transparent;color:#153f2c;font:inherit;font-weight:850;text-align:left;cursor:pointer}.messenger-more-menu button:hover{background:#fff0f6}
.messenger-thread-page .sms-thread-log{min-height:min(65dvh,720px);max-height:calc(100dvh - 250px);align-content:start;border:0;border-radius:0;box-shadow:none}.messenger-compose{bottom:0;grid-template-columns:auto minmax(0,1fr) auto;margin:0;border-width:1px 0 0;border-radius:0;box-shadow:0 -10px 32px rgba(18,55,40,.07)}.messenger-compose textarea{min-height:46px;max-height:130px;padding:12px 15px;border-radius:23px;resize:none}.messenger-paperclip{width:46px;min-width:46px;height:46px;align-self:end;padding:0;border-style:solid;border-radius:50%}.messenger-paperclip svg{width:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.messenger-paperclip.has-file{color:#fff;border-color:#e25b9b;background:#e25b9b}.messenger-send{display:grid;width:46px;height:46px;place-items:center;align-self:end;padding:0;border:0;border-radius:50%;background:#153f2c;color:#fff;cursor:pointer}.messenger-send svg{width:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round}.messenger-send:disabled{opacity:.45}.messenger-compose [data-sms-status]:empty{display:none}
.messenger-dialog{width:min(92vw,520px);padding:0;border:0;border-radius:24px;background:transparent}.messenger-dialog::backdrop{background:rgba(15,36,27,.5);backdrop-filter:blur(4px)}.messenger-dialog-card{position:relative;display:grid;gap:14px;max-height:82dvh;overflow:auto;margin:0;padding:24px;border-radius:24px;background:#fffdf8;box-shadow:0 28px 70px rgba(11,40,27,.24)}.messenger-dialog-card h2{margin:-8px 0 3px}.messenger-dialog-close{position:absolute;top:14px;right:14px;width:38px;height:38px;border:1px solid rgba(18,55,40,.13);border-radius:50%;background:#fff;color:#153f2c;font-size:24px;cursor:pointer}.messenger-media-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.messenger-media-grid img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:12px}
@media(max-width:720px){.messenger-page,.messenger-thread-page{width:100%;padding:0!important}body.has-sidebar .page.messenger-thread-page{height:calc(100dvh - 70px)!important;min-height:0!important;margin:0!important;padding:0!important;overflow:hidden!important}.messenger-list-shell{min-height:calc(100dvh - 88px)}.messenger-list-shell,.messenger-thread-shell{border-width:0;border-radius:0;box-shadow:none}.messenger-thread-shell{height:calc(100dvh - 70px)!important;min-height:0;grid-template-rows:auto minmax(0,1fr) auto}.messenger-thread-shell.has-sms-warning{grid-template-rows:auto auto minmax(0,1fr) auto}.messenger-list-head,.messenger-thread-head{padding:10px 12px}.messenger-chat-row{padding:12px 14px}.messenger-avatar{width:48px;height:48px;flex-basis:48px}.messenger-thread-person .messenger-avatar{display:none}.messenger-thread-page .sms-thread-log{min-height:0;max-height:none;overflow-y:auto}.messenger-compose{position:static;grid-template-columns:auto minmax(0,1fr) auto;padding-bottom:max(10px,env(safe-area-inset-bottom))}.messenger-media-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

@media (max-width: 979px) {
  .side-nav {
    width: min(88vw, 340px) !important;
    padding: max(14px, env(safe-area-inset-top)) 14px max(14px, env(safe-area-inset-bottom)) !important;
    border-radius: 0 24px 24px 0;
  }

  .drawer-overlay {
    background: rgba(18, 55, 40, .35);
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
  }
}

/* August 2026 mobile workflow pass */
.mobile-menu-toggle {
  justify-content: flex-start;
  cursor: pointer;
}

.mobile-menu-toggle strong {
  margin-left: 2px;
}

/* The calendar starts with the month itself; no dashboard-style preamble. */
.calendar-toolbar {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 10px;
  padding: 13px 15px;
  border: 1px solid rgba(18, 55, 40, .11);
  border-radius: 20px;
  background: rgba(255, 253, 248, .96);
  box-shadow: 0 10px 28px rgba(18, 55, 40, .06);
}

.calendar-toolbar-title {
  min-width: 0;
}

.calendar-toolbar-title .eyebrow {
  margin: 0 0 3px;
  font-size: 9px;
}

.calendar-toolbar-title h1 {
  margin: 0 !important;
  font-size: clamp(21px, 3vw, 29px) !important;
  line-height: 1.05 !important;
}

.calendar-toolbar .calendar-month-nav {
  margin-left: auto;
}

.calendar-page .cal-order-stack {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.calendar-page .cal-order-line {
  display: flex;
  align-items: center;
  gap: 4px;
  min-width: 0;
  min-height: 22px;
  padding: 4px 7px;
  overflow: hidden;
  border: 1px solid rgba(18, 55, 40, .08);
  border-radius: 8px;
  color: #40554a;
  background: #f3f1ec;
  font-size: 10px;
  line-height: 1.05;
  white-space: nowrap;
}

.calendar-page .cal-order-line b {
  overflow: hidden;
  text-overflow: ellipsis;
}

.calendar-page .cal-order-line em {
  color: inherit;
  font-style: normal;
  font-weight: 850;
}

.calendar-page .cal-order-exact {
  color: #674290;
  border-color: rgba(139, 97, 189, .16);
  background: #f2ebfa;
}

.calendar-page .cal-order-pickup {
  color: #7d5c12;
  border-color: rgba(193, 138, 19, .16);
  background: #fff5d9;
}

.calendar-page .cal-order-standard {
  color: #8f2d5d;
  border-color: rgba(255, 79, 163, .14);
  background: #fff0f7;
}

.cal-line-compact {
  display: none;
}

/* Product cards: compact facts and a predictable 1 + 2x2 action layout. */
.product-admin-facts {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.product-admin-facts .product-variant-list {
  display: contents;
}

/* One visual card is one order, with bouquet and delivery proofs paired. */
.gallery-order-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 16px;
}

.gallery-order-card {
  min-width: 0;
}

.gallery-photo-pair {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 3px;
  padding: 3px;
  background: rgba(18, 55, 40, .07);
}

.gallery-photo-pair.is-single {
  grid-template-columns: 1fr;
}

.gallery-photo-pair .gallery-media {
  min-width: 0;
  overflow: hidden;
  background: #f0eee8;
}

.gallery-photo-pair .gallery-media img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
}

.gallery-bouquet-slot {
  display: flex;
  aspect-ratio: 1;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 7px;
  padding: 16px 10px;
  text-align: center;
  color: #294737;
  background: radial-gradient(ellipse at 20% 15%, #f6e8ed, transparent 65%), linear-gradient(145deg, #fffaf1, #edf3e9) !important;
}
.gallery-bouquet-slot__icon { display: grid; place-items: center; width: 40px; height: 40px; border: 1px solid #cdd8cb; border-radius: 50%; background: #fffcf6; color: #738771; }
.gallery-bouquet-slot__icon svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linejoin: round; }
.gallery-bouquet-slot__label { font-size: 10px; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.gallery-bouquet-slot strong { font-size: clamp(16px, 2vw, 22px); line-height: 1.2; }
.gallery-bouquet-slot small { max-width: 150px; font-size: 11px; line-height: 1.4; color: #6b7b68; }

.gallery-pickup-slot {
  display: grid;
  aspect-ratio: 1;
  place-items: center;
  background:
    radial-gradient(circle at 22% 20%, rgba(255, 79, 163, .18), transparent 34%),
    radial-gradient(circle at 82% 78%, rgba(255, 205, 55, .2), transparent 38%),
    linear-gradient(145deg, #fffdf8, #f1f7f1) !important;
}

.gallery-pickup-slot__content {
  display: grid;
  max-width: 180px;
  justify-items: center;
  gap: 7px;
  padding: 18px;
  color: #123728;
  text-align: center;
}

.gallery-pickup-slot__icon {
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  border-radius: 18px;
  color: #fff;
  background: #123728;
  box-shadow: 0 12px 24px rgba(18, 55, 40, .18);
}

.gallery-pickup-slot__icon svg {
  width: 28px;
  height: 28px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.gallery-pickup-slot__content strong {
  font-size: 22px;
  line-height: 1;
}

.gallery-pickup-slot__content > span:last-child {
  color: #718071;
  font-size: 11px;
  font-weight: 750;
}

.gallery-proof-type {
  position: absolute;
  bottom: 8px;
  left: 8px;
  padding: 4px 7px;
  border: 1px solid rgba(255, 255, 255, .55);
  border-radius: 999px;
  color: #fff;
  background: rgba(18, 55, 40, .76);
  box-shadow: 0 4px 12px rgba(18, 55, 40, .15);
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
  backdrop-filter: blur(7px);
}

/* Daily / Weekly / Monthly is shared by Accounting and Sales. */
.accounting-period-tabs {
  display: grid;
  grid-template-columns: repeat(3, minmax(72px, 1fr));
  gap: 4px;
  padding: 4px;
  border: 1px solid rgba(18, 55, 40, .11);
  border-radius: 16px;
  background: rgba(255, 253, 248, .82);
  box-shadow: 0 7px 19px rgba(18, 55, 40, .055);
}

.accounting-period-tabs a {
  display: grid;
  place-items: center;
  min-height: 38px;
  padding: 7px 10px;
  border-radius: 12px;
  color: #53665c;
  font-size: 11px;
  font-weight: 900;
  text-decoration: none;
}

.accounting-period-tabs a.is-active {
  color: #74294f;
  background: linear-gradient(135deg, #ffe4f0, #fff0df);
  box-shadow: 0 6px 16px rgba(196, 62, 128, .1);
}

.accounting-step-nav {
  display: flex;
  align-items: center;
}

.accounting-step-nav > span {
  display: grid;
  flex: 1 1 auto;
  place-items: center;
  min-width: 96px;
  padding: 0 8px;
  color: var(--df-admin-forest);
  font-size: 11px;
  font-weight: 850;
  white-space: nowrap;
}

.period-action-stack {
  display: grid !important;
  gap: 8px !important;
  min-width: 280px;
}

.period-action-stack .accounting-step-nav {
  justify-self: end;
  width: 100%;
  max-width: 280px;
  padding: 4px;
  border: 1px solid rgba(18, 55, 40, .11);
  border-radius: 15px;
  background: rgba(255, 253, 248, .82);
}

.phone-route-choice {
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 11px !important;
  align-items: start;
  padding: 13px 14px;
  border: 1px solid rgba(18, 55, 40, .12);
  border-radius: 16px;
  background: linear-gradient(135deg, #f0f7ef, #fff8eb);
  cursor: pointer;
}

.phone-route-choice input {
  width: 20px;
  height: 20px;
  margin: 1px 0 0;
  accent-color: var(--df-admin-forest);
}

.phone-route-choice span,
.phone-route-choice strong,
.phone-route-choice small {
  display: block;
}

.phone-route-choice strong {
  color: var(--df-admin-forest);
  font-size: 13px;
}

.phone-route-choice small {
  margin-top: 3px;
  color: var(--df-admin-muted) !important;
  font-size: 11px;
  font-weight: 650;
  line-height: 1.35;
}

@media (max-width: 760px) {
  .mobile-menu-toggle {
    padding-inline: 18px !important;
  }

  body.has-sidebar main.page,
  body.has-sidebar main.page:not(.narrow):not(.accounting-page):not(.calendar-page),
  body.has-sidebar .accounting-page,
  body.has-sidebar .calendar-page {
    padding-top: 14px !important;
  }

  .calendar-toolbar {
    gap: 8px;
    padding: 8px 9px 8px 12px;
    border-radius: 17px;
  }

  .calendar-toolbar-title .eyebrow {
    display: none;
  }

  .calendar-toolbar-title h1 {
    font-size: 17px !important;
    white-space: nowrap;
  }

  .calendar-toolbar .calendar-month-nav {
    width: auto;
    min-width: 0;
    margin-left: auto !important;
    padding: 3px;
  }

  .calendar-toolbar .calendar-month-nav a {
    width: 32px !important;
    min-width: 32px !important;
    height: 32px !important;
  }

  .calendar-toolbar .calendar-month-nav .today {
    min-width: 57px !important;
    font-size: 9px;
  }

  .calendar-page .cal-day,
  .calendar-page .cal-muted {
    min-height: 88px !important;
    padding: 4px !important;
  }

  .calendar-page .cal-date-row {
    min-height: 23px;
  }

  .calendar-page .cal-order-stack {
    gap: 2px;
  }

  .calendar-page .cal-order-line {
    justify-content: center;
    gap: 2px;
    min-height: 16px;
    padding: 2px 3px;
    border-radius: 6px;
    font-size: 7.5px;
    letter-spacing: -.02em;
  }

  .calendar-page .cal-order-line b,
  .calendar-page .cal-order-line em {
    overflow: visible;
    font-weight: 900;
  }

  .cal-line-full {
    display: none;
  }

  .cal-line-compact {
    display: inline;
  }

  .product-admin-card {
    grid-template-columns: 104px minmax(0, 1fr) !important;
    gap: 12px !important;
    padding: 11px !important;
  }

  .product-admin-media {
    width: 104px !important;
    height: 104px !important;
    border-radius: 18px !important;
  }

  .product-admin-main {
    gap: 8px;
  }

  .product-admin-top h2 {
    font-size: 18px !important;
    line-height: 1.08;
  }

  .product-admin-facts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
  }

  .product-admin-facts > .stage-pill,
  .product-admin-facts .product-variant-list > span {
    width: 100%;
    min-width: 0;
    min-height: 38px;
    padding: 6px 7px;
    border-radius: 11px;
    justify-content: center;
    overflow: hidden;
    font-size: 9px;
    line-height: 1.1;
    text-align: center;
  }

  .product-admin-facts .product-variant-list > span {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 2px 4px;
  }

  .product-admin-actions {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 7px !important;
  }

  .product-admin-actions > a:first-child {
    grid-column: 1 / -1;
  }

  .product-admin-actions form,
  .product-admin-actions .btn,
  .product-admin-actions .mini-danger {
    width: 100%;
  }

  .product-admin-actions .btn,
  .product-admin-actions .mini-danger {
    min-height: 42px !important;
    padding: 7px 6px !important;
    font-size: 9px !important;
    line-height: 1.08;
  }

  .gallery-order-grid {
    grid-template-columns: 1fr !important;
    gap: 13px;
  }

  .accounting-page .accounting-actions {
    grid-template-columns: 1fr !important;
  }

  .accounting-period-tabs,
  .accounting-step-nav,
  .period-action-stack,
  .period-action-stack .accounting-step-nav {
    width: 100%;
    max-width: none;
  }

  .period-action-stack {
    min-width: 0;
  }

  .accounting-breakdown-card .compact-row {
    grid-template-columns: 46px minmax(0, 1fr) auto;
  }

  .accounting-breakdown-card .compact-row > span {
    grid-column: 2;
  }

  .accounting-breakdown-card .compact-row > b {
    grid-column: 3;
    grid-row: 1 / span 2;
  }
}

@media (max-width: 390px) {
  .calendar-page .cal-day,
  .calendar-page .cal-muted {
    min-height: 82px !important;
  }

  .product-admin-card {
    grid-template-columns: 96px minmax(0, 1fr) !important;
    gap: 9px !important;
  }

  .product-admin-media {
    width: 96px !important;
    height: 96px !important;
  }
}

@media (max-width: 720px) {
  body.has-sidebar main.page.messenger-thread-page {
    height: calc(100dvh - 70px) !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
  }

  body.has-sidebar main.page.messenger-thread-page .messenger-thread-shell {
    height: calc(100dvh - 84px) !important;
  }
}

/* Pinch-zoom is allowed again (accessibility). Without maximum-scale, iOS Safari zooms into any
   field whose text is under 16px when it gets focus, so keep fields at 16px on touch screens. */
@media (hover: none) and (pointer: coarse) {
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):not([type="submit"]):not([type="button"]),
  select,
  textarea {
    font-size: max(16px, 1em) !important;
  }
}

/* Orders cancelled in Shopify: a muted red pill/chip, and a dark red finished-state circle on the board. */
.stage-pill.stage-cancelled,
.status-chip.stage-cancelled,
.stage-cancelled {
  color: var(--df-admin-danger) !important;
  background: #fff0ed !important;
  border-color: rgba(163, 49, 40, .18) !important;
}

.stage-bg-cancelled,
.round-done.stage-bg-cancelled {
  color: #fff !important;
  background: #8c2a27 !important;
}

/* ===== polish-board.css ===== */
/* Order board (views/dashboard.ejs): design pass 2026-09. Loaded last in staff.bundle.css.
   Everything is scoped to main.board-page. Controls keep their places (staff know them by
   position); this sheet only changes size, colour and hierarchy. Older layers use !important
   on cards, pills and the hero, so the same properties need it here too. */

body.has-sidebar .board-page {
  --bd-forest: #123728;
  --bd-ink-soft: #3f5248;
  --bd-muted: #5f6f66;
  --bd-pink: #ff4fa3;
  --bd-pink-deep: #d42a80; /* white small text on it passes 4.5:1, the brand pink does not */
  --bd-berry: #b81d68;
  --bd-palm: #7a8f4a;
  --bd-tint: #fff3f8;
  --bd-paper: #fffdf8;
  --bd-sage: #f1f5ee;
  --bd-line: rgba(18, 55, 40, .12);
  --bd-shadow: 0 1px 2px rgba(18, 55, 40, .05), 0 8px 22px rgba(18, 55, 40, .06);
  --bd-display: "DF Comfortaa", "Trebuchet MS", system-ui, sans-serif;
  --bd-body: "DF Assistant", Inter, Arial, sans-serif;
  --bd-late: #c23b2a;
}

/* One colour per stage, used by the round button, the stage pill, the card stripe and the
   count chips: solid (--stage), tint (--stage-tint) and readable text on the tint (--stage-ink). */
body.has-sidebar .board-page :is(.board-stage-new, .stage-new, .stage-bg-new, .board-count--new) { --stage: #ff4fa3; --stage-tint: #ffeef6; --stage-ink: #a3195c; }
body.has-sidebar .board-page :is(.board-stage-work, .stage-work, .stage-bg-work, .board-count--work) { --stage: #e8962a; --stage-tint: #fff3de; --stage-ink: #7f4c00; }
body.has-sidebar .board-page :is(.board-stage-ready, .stage-ready, .stage-bg-ready, .board-count--ready) { --stage: #2f9a5d; --stage-tint: #e6f4ea; --stage-ink: #1b6238; }
body.has-sidebar .board-page :is(.board-stage-courier, .stage-courier, .stage-bg-courier, .board-count--courier) { --stage: #7d5fd0; --stage-tint: #f1ecfb; --stage-ink: #53389e; }
body.has-sidebar .board-page :is(.board-stage-out, .stage-out, .stage-bg-out) { --stage: #2b7fcc; --stage-tint: #e7f1fb; --stage-ink: #1b5a94; }
body.has-sidebar .board-page :is(.board-stage-delivered, .stage-delivered, .stage-bg-delivered, .board-count--done) { --stage: #7a8f4a; --stage-tint: #eef2e3; --stage-ink: #4b5a26; }
body.has-sidebar .board-page :is(.board-stage-issue, .stage-issue, .stage-bg-issue, .board-count--issue) { --stage: #c23b2a; --stage-tint: #fdecea; --stage-ink: #962a1c; }
body.has-sidebar .board-page :is(.board-stage-cancelled, .stage-cancelled, .stage-bg-cancelled) { --stage: #8b938f; --stage-tint: #f0f1ef; --stage-ink: #525b57; }

/* ---------- Header ---------- */
body.has-sidebar main.board-page.page:not(.accounting-page):not(.calendar-page) > .hero-line.board-hero {
  min-height: 0 !important;
  margin: 8px 0 14px !important;
  padding: 18px 20px !important;
  gap: 14px 18px !important;
  border-radius: 20px !important;
}

body.has-sidebar .board-page .board-hero .eyebrow {
  margin: 0 0 4px;
  color: var(--bd-berry) !important;
  font-size: 11.5px;
  font-weight: 800 !important;
  letter-spacing: .12em !important;
  text-transform: uppercase;
}

body.has-sidebar .board-page .board-hero__weekday {
  color: var(--bd-muted);
  letter-spacing: .08em;
}

body.has-sidebar main.board-page.page:not(.accounting-page):not(.calendar-page) > .hero-line.board-hero h1 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 10px;
  margin: 0 0 6px !important;
  font-size: clamp(26px, 3.2vw, 36px) !important;
  line-height: 1.05 !important;
}

body.has-sidebar .board-page .board-day-chip {
  display: inline-flex;
  align-items: center;
  padding: 5px 11px;
  border-radius: 999px;
  color: #fff;
  background: var(--bd-pink-deep);
  font-family: var(--bd-body);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .07em;
  line-height: 1;
  text-transform: uppercase;
}

body.has-sidebar .board-page .board-day-chip--tomorrow { background: #5f7236; }
body.has-sidebar .board-page .board-day-chip--yesterday { color: var(--bd-ink-soft); background: #ebeee8; }

body.has-sidebar .board-page .board-hero .subtle {
  margin: 0;
  color: var(--bd-muted) !important;
  font-size: 14.5px;
}

body.has-sidebar .board-page .board-hero .subtle b { color: var(--bd-forest); font-weight: 800; }

body.has-sidebar .board-page .board-hero .dd-dashboard-nav { gap: 10px; }

body.has-sidebar .board-page .board-hero .dd-add-order {
  min-height: 44px;
  padding: 8px 16px 8px 10px;
  border-radius: 14px !important;
  font-size: 13px;
  letter-spacing: .03em !important;
}

/* Day tools (Print day, Route). Placed before DoorDash on wide screens and on a row of their own
   on phones, so the existing buttons keep their places. */
body.has-sidebar .board-page .board-hero .board-hero-tools {
  order: -1;
  display: flex;
  gap: 10px;
}

body.has-sidebar .board-page .board-hero .board-hero-tools .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px !important;
  min-height: 44px;
  padding: 8px 16px 8px 12px;
  border-radius: 14px !important;
  font-size: 13px;
  letter-spacing: .03em !important;
}

body.has-sidebar .board-page .board-hero .board-hero-tools svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* Where the hero nav spreads over the full width (doordash.css, 720 px), a row of their own. */
@media (max-width: 720px) {
  body.has-sidebar .board-page .board-hero .board-hero-tools { order: 0; flex: 0 0 100%; }
  body.has-sidebar .board-page .board-hero .board-hero-tools .btn { flex: 1 1 0; }
}

body.has-sidebar .board-page .board-hero .date-nav { gap: 6px !important; }

body.has-sidebar .board-page .board-hero .date-nav a {
  min-width: 46px !important;
  height: 46px !important;
  border: 1px solid var(--bd-line);
  border-radius: 14px !important;
  color: var(--bd-forest);
  background: #fff !important;
  box-shadow: 0 1px 2px rgba(18, 55, 40, .06) !important;
}

body.has-sidebar .board-page .board-hero .date-nav .today {
  padding: 0 18px;
  font-size: 14px;
  font-weight: 800;
}

/* Viewing another day: "Today" is the way back, so it stands out. */
body.has-sidebar .board-page:not(.is-today) .board-hero .date-nav .today {
  border-color: rgba(255, 79, 163, .55);
  color: var(--bd-berry);
  background: var(--bd-tint) !important;
}

/* ---------- Count chips ---------- */
body.has-sidebar .board-page .board-counts {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 4px;
  padding: 0;
  overflow: visible;
}

body.has-sidebar .board-page .board-count {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 38px;
  margin: 0;
  padding: 5px 6px 5px 12px;
  border: 1px solid var(--bd-line) !important;
  border-radius: 999px !important;
  color: var(--bd-forest) !important;
  background: #fff !important;
  box-shadow: none;
  font-size: 14px;
  font-weight: 700 !important;
  white-space: nowrap;
}

body.has-sidebar .board-page .board-count::before {
  flex: none;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--stage);
  content: "";
}

body.has-sidebar .board-page .board-count b {
  display: inline-grid;
  place-items: center;
  min-width: 26px;
  height: 26px;
  margin: 0 0 0 auto;
  padding: 0 8px;
  border-radius: 999px;
  color: var(--stage-ink);
  background: var(--stage-tint);
  font-weight: 800;
}

body.has-sidebar .board-page .board-count.is-zero { color: var(--bd-muted) !important; }
body.has-sidebar .board-page .board-count.is-zero::before { opacity: .35; }
body.has-sidebar .board-page .board-count.is-zero b { color: var(--bd-muted); background: #f2f1ec; }

/* ---------- Group headers ----------
   One slim line between the cards (2026-10; the owner found the boxed headers with a second line
   of chips heavy): dot, "Pickup 6 PM – 9 PM" or "Delivery 12 PM – 7 PM", the count on the right.
   The countdown stays in the markup only to colour the dot (public/app.js keeps it current). */
body.has-sidebar .board-page .order-group { margin: 18px 0 8px; }

body.has-sidebar .board-page .order-group .group-title {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 0 0 7px;
  padding: 0 2px 0 6px;
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
}

body.has-sidebar .board-page .board-group__dot {
  flex: none;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--bd-palm);
  box-shadow: 0 0 0 3px rgba(122, 143, 74, .18);
}

body.has-sidebar .board-page .board-group__name {
  display: flex;
  flex: 1 1 auto;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0 9px;
  min-width: 0;
  color: var(--bd-forest);
  font-family: var(--bd-display);
  font-weight: 700;
}

/* (.group-title in these selectors: the old layer paints every span in the header pink.) */
body.has-sidebar .board-page .group-title .board-group__label {
  color: var(--bd-forest);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.25;
  white-space: nowrap;
}

body.has-sidebar .board-page .group-title .board-group__time {
  color: var(--bd-ink-soft);
  font-size: 17px;
  font-weight: 500;
  line-height: 1.25;
  white-space: nowrap;
}

body.has-sidebar .board-page .board-group__logo {
  align-self: center;
  width: 20px;
  height: 20px;
}

body.has-sidebar .board-page .board-group--doordash .board-group__dot { display: none; }

body.has-sidebar .board-page .order-group .group-title em {
  display: inline-grid;
  flex: none;
  place-items: center;
  min-width: 26px;
  height: 26px;
  padding: 0 7px;
  border: 1px solid var(--bd-line);
  border-radius: 999px;
  color: var(--bd-ink-soft);
  background: #fff;
  font-size: 13px;
  font-style: normal;
  font-weight: 800;
}

body.has-sidebar .board-page .board-group__status { display: none; }

/* The dot follows the window: pink while it runs, amber in the hour before, red (with the time)
   when it is over and orders in it are still not ready. */
body.has-sidebar .board-page .group-title:has(.board-urgency--soon:not([hidden])) .board-group__dot { background: #e8962a; box-shadow: 0 0 0 3px rgba(232, 150, 42, .2); }
body.has-sidebar .board-page .group-title:has(.board-urgency--now:not([hidden])) .board-group__dot { background: var(--bd-pink); box-shadow: 0 0 0 3px rgba(255, 79, 163, .22); }
body.has-sidebar .board-page .group-title:has(.board-urgency--late:not([hidden])) .board-group__dot { background: var(--bd-late); box-shadow: 0 0 0 3px rgba(194, 59, 42, .2); }
body.has-sidebar .board-page .group-title:has(.board-urgency--late:not([hidden])) .board-group__time { color: #962a1c; }

body.has-sidebar .board-page .board-group--issues .board-group__dot { background: var(--bd-late); box-shadow: 0 0 0 3px rgba(194, 59, 42, .18); }
body.has-sidebar .board-page .board-group--issues .group-title .board-group__label { color: #962a1c; }
body.has-sidebar .board-page :is(.board-group--cancelled, .board-group--tests) .board-group__dot { background: #a3aaa6; box-shadow: none; }
body.has-sidebar .board-page :is(.board-group--cancelled, .board-group--tests) .group-title .board-group__label { color: var(--bd-muted); }

/* ---------- Order cards ----------
   Compact since 2026-10 (a busy day is 15+ orders): one meta line, "For + gift message" in one
   strip, no footer. The status button and "Open" keep their place and size. */
body.has-sidebar .board-page .order-list { gap: 8px; }

body.has-sidebar .board-page .order-card {
  grid-template-columns: 76px minmax(0, 1fr);
  border: 1px solid var(--bd-line) !important;
  border-radius: 16px !important;
  background: var(--bd-paper) !important;
  box-shadow: var(--bd-shadow) !important;
}

body.has-sidebar .board-page .order-card:hover {
  border-color: rgba(255, 79, 163, .35) !important;
  box-shadow: 0 1px 2px rgba(18, 55, 40, .05), 0 12px 28px rgba(18, 55, 40, .09) !important;
}

/* Left column: the status button, "Open" right under it, and a stripe in the stage colour. */
body.has-sidebar .board-page .quick-col {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 7px;
  padding: 11px 6px 10px 10px;
  border-right: 1px solid var(--bd-line);
  background: linear-gradient(180deg, #f7f9f4, var(--bd-paper));
  box-shadow: inset 4px 0 0 var(--stage);
}

body.has-sidebar .board-page :is(.round-action, .round-done) {
  display: grid;
  place-items: center;
  flex: none;
  width: 50px;
  min-width: 50px;
  height: 50px;
  min-height: 50px;
  padding: 0;
  border: 0;
  border-radius: 50% !important;
}

body.has-sidebar .board-page .round-action {
  color: #fff !important;
  background: var(--stage) !important;
  box-shadow: 0 0 0 4px var(--stage-tint), 0 6px 14px rgba(18, 55, 40, .16) !important;
  cursor: pointer;
}

body.has-sidebar .board-page .round-action:hover { filter: brightness(1.05); }
body.has-sidebar .board-page .round-action:active { transform: scale(.96); }
body.has-sidebar .board-page .round-action:disabled { filter: saturate(.4); opacity: .75; }

/* Nothing to press: a flat tinted badge instead of a raised button. */
body.has-sidebar .board-page .round-done {
  color: var(--stage-ink) !important;
  background: var(--stage-tint) !important;
  box-shadow: inset 0 0 0 1.5px rgba(18, 55, 40, .08) !important;
}

body.has-sidebar .board-page :is(.round-action, .round-done) svg {
  width: 24px;
  height: 24px;
  stroke-width: 2.4;
}

body.has-sidebar .board-page .quick-col .tiny-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 2px;
  min-width: 52px;
  min-height: 34px;
  padding: 0 10px;
  border: 1px solid var(--bd-line);
  border-radius: 999px;
  color: var(--bd-forest);
  background: #fff;
  font-size: 12.5px;
  font-weight: 800;
  letter-spacing: .01em;
  text-decoration: none;
}

body.has-sidebar .board-page .quick-col a.tiny-link::after {
  content: "\203A";
  font-size: 15px;
  line-height: 1;
}

body.has-sidebar .board-page .quick-col .tiny-link:hover { border-color: rgba(255, 79, 163, .45); color: var(--bd-berry); }

body.has-sidebar .board-page .fake-order-delete-form { margin: 0; }

body.has-sidebar .board-page .quick-col .tiny-link--danger {
  min-height: 34px !important;
  border-color: rgba(194, 59, 42, .35) !important;
  color: #962a1c !important;
  background: #fff !important;
  box-shadow: none !important;
}

/* Right side */
body.has-sidebar .board-page .order-main {
  container-type: inline-size;
  padding: 11px 14px 12px;
}

/* Number, price and photos on the left; window, Late and stage stay together on the right and
   move under them only when the line is too short. */
body.has-sidebar .board-page .order-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 5px 6px;
}

body.has-sidebar .board-page .board-state {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 5px;
  margin-left: auto;
}

body.has-sidebar .board-page .order-meta > strong {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 7px;
  min-width: 0;
  margin-right: 1px;
  color: var(--bd-forest);
  font-family: var(--bd-display);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.2;
  overflow-wrap: anywhere;
}

body.has-sidebar .board-page :is(.external-source-badge, .fake-order-badge) {
  margin: 0;
  padding: 2px 8px;
  border-radius: 999px;
  font-family: var(--bd-body);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .06em;
  line-height: 1.4;
  text-transform: uppercase;
}

body.has-sidebar .board-page .external-source-badge { border: 1px solid rgba(233, 54, 32, .25); color: #b52c1c; background: #fdece9; }
body.has-sidebar .board-page .fake-order-badge { border: 1px dashed rgba(184, 29, 104, .45); color: var(--bd-berry); background: var(--bd-tint); }

body.has-sidebar .board-page :is(.board-state, .board-done__end) .stage-pill {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-height: 22px;
  padding: 2px 9px 2px 7px;
  border: 1px solid rgba(18, 55, 40, .06) !important;
  border-radius: 999px !important;
  color: var(--stage-ink) !important;
  background: var(--stage-tint) !important;
  font-size: 10.5px;
  font-weight: 800 !important;
  letter-spacing: .05em;
  white-space: nowrap;
}

body.has-sidebar .board-page :is(.board-state, .board-done__end) .stage-pill svg {
  width: 12px;
  height: 12px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}

body.has-sidebar .board-page :is(.order-small-price, .photo-badge, .board-when) {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-height: 22px;
  padding: 1px 8px;
  border: 0;
  border-radius: 999px;
  color: var(--bd-ink-soft);
  background: #f3f1ea;
  font-size: 12.5px;
  font-weight: 700;
  white-space: nowrap;
}

body.has-sidebar .board-page .photo-badge { gap: 3px; padding: 0 3px; color: var(--bd-muted); background: transparent; }
body.has-sidebar .board-page .photo-badge.has-photo { color: #4b5a26; }

/* The window, only on cards whose group header does not show it (mixed pickups, Issues). */
body.has-sidebar .board-page .board-when { padding-left: 6px; color: var(--bd-forest); background: var(--bd-sage); font-weight: 800; }

body.has-sidebar .board-page :is(.photo-badge, .board-when) svg {
  flex: none;
  width: 14px;
  height: 14px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

body.has-sidebar .board-page .dashboard-item-row {
  grid-template-columns: 48px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  margin-top: 8px;
}

body.has-sidebar .board-page .dash-product-thumb {
  width: 48px;
  height: 48px;
  border: 1px solid var(--bd-line);
  border-radius: 11px;
  object-fit: cover;
}

body.has-sidebar .board-page .thumb-placeholder {
  display: grid;
  place-items: center;
  color: var(--bd-pink);
  background: var(--bd-tint);
  font-family: var(--bd-display);
  font-size: 18px;
  font-weight: 700;
}

body.has-sidebar .board-page .item-title {
  display: block;
  color: #4f2785;
  font-family: var(--bd-display);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

body.has-sidebar .board-page .item-title em {
  display: block;
  margin-top: 1px;
  color: #6f4aa8;
  font-family: var(--bd-body);
  font-size: 13px;
  font-style: normal;
  font-weight: 700;
}

body.has-sidebar .board-page .addons-line {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin: 7px 0 0;
  white-space: normal;
}

body.has-sidebar .board-page .board-addon {
  padding: 2px 9px;
  border: 1px solid rgba(122, 143, 74, .3);
  border-radius: 999px;
  color: #45531f;
  background: #f0f4e5;
  font-size: 12.5px;
  font-weight: 700;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

/* Recipient, gift and note strips */
body.has-sidebar .board-page .board-strips {
  display: grid;
  gap: 5px;
  margin-top: 8px;
}

body.has-sidebar .board-page .board-strips > p { margin: 0 !important; }

/* "FOR Chloe ✓ 🎁 message" is one line ending in "…"; the note gets two lines. The full texts
   are on the order page and in the tooltip. */
body.has-sidebar .board-page :is(.recipient-line, .note-line) {
  display: block;
  overflow: hidden;
  padding: 4px 10px 5px;
  border-radius: 10px;
  font-size: 13px;
  line-height: 1.45;
}

body.has-sidebar .board-page .recipient-line {
  border: 1px solid rgba(255, 79, 163, .2);
  color: #5c1238;
  background: var(--bd-tint);
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* The clamp sits on an inner box without padding, so no slice of a third line shows. */
body.has-sidebar .board-page .note-line .board-strip-text {
  display: -webkit-box;
  overflow: hidden;
  overflow-wrap: anywhere;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
}

body.has-sidebar .board-page :is(.recipient-line__label, .board-strip-label) {
  margin-right: 1px;
  color: var(--bd-berry);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}

body.has-sidebar .board-page .recipient-line__name {
  color: var(--bd-forest);
  font-family: var(--bd-display);
  font-size: 14px;
  font-weight: 700;
}

/* Where the name came from, as a mark: ✓ entered by the customer (or staff), ! not entered.
   The words stay for screen readers and the tooltip; the order page spells them out. */
body.has-sidebar .board-page .recipient-line__hint::before {
  display: inline-grid;
  place-items: center;
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .9);
  font-size: 10px;
  font-weight: 900;
  line-height: 1;
  vertical-align: 1px;
}

body.has-sidebar .board-page .recipient-line--gift .recipient-line__hint::before { color: #4b5a26; content: "\2713"; }
body.has-sidebar .board-page :is(.recipient-line--warn, .recipient-line--missing) .recipient-line__hint::before { content: "!"; }

body.has-sidebar .board-page .recipient-line__hint-text {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

body.has-sidebar .board-page .recipient-line__gift { margin-left: 2px; }

body.has-sidebar .board-page .recipient-line__gift svg {
  width: 14px;
  height: 14px;
  margin-right: 4px;
  color: var(--bd-berry);
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  vertical-align: -2px;
}

body.has-sidebar .board-page .recipient-line--warn { border-color: rgba(214, 150, 30, .4); background: #fff7e2; }
body.has-sidebar .board-page .recipient-line--warn :is(.recipient-line__label, .recipient-line__hint) { color: #7f4c00; }

body.has-sidebar .board-page .recipient-line--neutral { border-color: var(--bd-line); background: var(--bd-sage); }
body.has-sidebar .board-page .recipient-line--neutral :is(.recipient-line__label, .recipient-line__hint) { color: var(--bd-muted); }

body.has-sidebar .board-page .recipient-line--missing { border: 1px dashed rgba(194, 59, 42, .45); background: #fff4f2; }
body.has-sidebar .board-page .recipient-line--missing :is(.recipient-line__label, .recipient-line__name, .recipient-line__hint) { color: #962a1c; }

body.has-sidebar .board-page .note-line { border: 1px solid rgba(214, 150, 30, .3); color: #4d3500; background: #fff8e4; white-space: normal; }
body.has-sidebar .board-page .note-line .board-strip-label { color: #7f4c00; }

/* "Late" sits in the meta line, next to the stage (app.js shows it when the window ends). */
body.has-sidebar .board-page .board-late {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 1px 8px;
  border-radius: 999px;
  color: #fff;
  background: var(--bd-late);
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: .07em;
  text-transform: uppercase;
}

body.has-sidebar .board-page .board-late[hidden] { display: none; }

/* ---------- Card states ---------- */
body.has-sidebar .board-page .order-card:has(.board-late:not([hidden])) { border-color: rgba(194, 59, 42, .45) !important; }
body.has-sidebar .board-page .order-card:has(.board-late:not([hidden])) .board-when { color: #962a1c; background: #fdecea; }

body.has-sidebar .board-page .order-card.status-issue {
  border-color: rgba(194, 59, 42, .4) !important;
  background: linear-gradient(90deg, #fff4f1, var(--bd-paper) 45%) !important;
}

body.has-sidebar .board-page .order-card.is-doordash { border-color: rgba(233, 54, 32, .28) !important; }

/* Done work steps back so the open orders stand out; it stays readable. */
body.has-sidebar .board-page .order-card.board-stage-delivered { background: #fafaf6 !important; box-shadow: none !important; }
body.has-sidebar .board-page .order-card.board-stage-delivered .order-main { opacity: .8; }

body.has-sidebar .board-page .order-card.status-cancelled {
  border-style: dashed !important;
  background: #f6f5f1 !important;
  box-shadow: none !important;
}

body.has-sidebar .board-page .order-card.status-cancelled .order-main { opacity: .7; }
body.has-sidebar .board-page .order-card.status-cancelled .dash-product-thumb { filter: grayscale(1); }
body.has-sidebar .board-page .order-card.status-cancelled .item-title { text-decoration: line-through; text-decoration-color: rgba(18, 55, 40, .35); }

body.has-sidebar .board-page .order-card.is-fake-order { border-style: dashed !important; border-color: rgba(184, 29, 104, .35) !important; }

/* ---------- Done group: finished orders shrink to one row at the end of the day ----------
   groupOrders moves delivered / picked-up orders here, so the window groups above only hold
   work that is still open. The row keeps the stage stripe and the done badge on the left. */
body.has-sidebar .board-page .board-group--done .board-group__dot { background: var(--bd-palm); box-shadow: 0 0 0 3px rgba(122, 143, 74, .18); }
body.has-sidebar .board-page .board-group--done .order-list { gap: 6px; }

body.has-sidebar .board-page .order-card.order-card--done {
  grid-template-columns: 52px minmax(0, 1fr);
  border-radius: 14px !important;
  background: #fafaf6 !important;
  box-shadow: none !important;
}

body.has-sidebar .board-page .order-card--done .quick-col {
  justify-content: center;
  padding: 6px 4px 6px 8px;
}

body.has-sidebar .board-page .order-card--done .round-done {
  width: 32px;
  min-width: 32px;
  height: 32px;
  min-height: 32px;
}

body.has-sidebar .board-page .order-card--done .round-done svg { width: 17px; height: 17px; }

body.has-sidebar .board-page .order-card--done .board-done {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  padding: 8px 12px;
  opacity: .88;
  text-decoration: none;
}

body.has-sidebar .board-page .order-card--done:hover .board-done { opacity: 1; }

body.has-sidebar .board-page .board-done .dash-product-thumb {
  flex: none;
  width: 40px;
  height: 40px;
  border-radius: 10px;
}

body.has-sidebar .board-page .board-done .thumb-placeholder { font-size: 13px; }

body.has-sidebar .board-page .board-done__what {
  display: grid;
  flex: 1 1 auto;
  gap: 1px;
  min-width: 0;
}

body.has-sidebar .board-page .board-done__top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 2px 8px;
  min-width: 0;
}

body.has-sidebar .board-page .board-done__name {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  color: var(--bd-forest);
  font-family: var(--bd-display);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.2;
}

/* What each finished order brought in (the Done header adds them up). */
body.has-sidebar .board-page :is(.board-done__price, .board-group__sum) {
  display: inline-flex;
  align-items: center;
  padding: 1px 8px;
  border-radius: 999px;
  color: #1b6238;
  background: #e6f4ea;
  font-family: var(--bd-body);
  font-size: 12.5px;
  font-weight: 800;
  letter-spacing: .01em;
  line-height: 1.45;
  white-space: nowrap;
}

body.has-sidebar .board-page .group-title .board-group__sum { align-self: center; padding: 2px 10px; color: #1b6238; font-size: 14px; }

body.has-sidebar .board-page .board-done__name .external-source-badge { font-size: 9.5px; }

body.has-sidebar .board-page :is(.board-done__item, .board-done__who) {
  overflow: hidden;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.3;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.has-sidebar .board-page .board-done__item { color: #6f4aa8; }

body.has-sidebar .board-page .board-done__who {
  flex: 0 1 auto;
  max-width: 32%;
  color: var(--bd-ink-soft);
}

body.has-sidebar .board-page .board-done__who small {
  color: var(--bd-muted);
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

body.has-sidebar .board-page .board-done__end {
  display: flex;
  flex: none;
  flex-direction: column;
  align-items: flex-end;
  gap: 3px;
}

body.has-sidebar .board-page .board-done__window {
  color: var(--bd-muted);
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
}

/* Narrow cards (phones): the recipient drops out, number / bouquet / status stay. */
@container (max-width: 440px) {
  body.has-sidebar .board-page .board-done__who { display: none; }
}

/* A finished manual DoorDash order in the Done group: heading and customer only. */
body.has-sidebar .board-page .board-group--done .dd-order-card .dd-card-main { padding: 10px 14px; }
body.has-sidebar .board-page .board-group--done .dd-order-card :is(.dd-card-items, .dd-card-times) { display: none; }
body.has-sidebar .board-page .board-group--done .dd-order-card .dd-card-customer { margin: 6px 0 0; }
body.has-sidebar .board-page .board-group--done .dd-order-card .dd-card-customer > strong { font-size: 16px; }
body.has-sidebar .board-page .board-group--done .dd-order-card .dd-card-customer b { font-size: 15px; }

/* Manual DoorDash cards (partials_doordash_card): same shape as the other cards. The old
   [class*="card"] rule gave every inner row a radius and a shadow. */
body.has-sidebar .board-page .dd-order-card {
  border-radius: 16px !important;
  box-shadow: var(--bd-shadow) !important;
}

body.has-sidebar .board-page .dd-order-card [class*="dd-card-"] {
  border-radius: 0;
  box-shadow: none;
}

body.has-sidebar .board-page .dd-order-card .dd-card-customer > strong {
  color: var(--bd-forest);
  font-family: var(--bd-display);
  font-weight: 700;
}

/* ---------- Empty day ---------- */
body.has-sidebar .board-page .board-empty {
  display: grid;
  justify-items: center;
  gap: 8px;
  margin-top: 14px;
  padding: 36px 20px !important;
  text-align: center;
}

body.has-sidebar .board-page .board-empty__icon {
  display: grid;
  place-items: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  color: var(--bd-berry);
  background: var(--bd-tint);
}

body.has-sidebar .board-page .board-empty__icon svg {
  width: 28px;
  height: 28px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

body.has-sidebar .board-page .board-empty h2 { margin: 4px 0 0; font-size: 20px; }
body.has-sidebar .board-page .board-empty p { max-width: 34ch; margin: 0; color: var(--bd-muted); font-size: 14.5px; }

/* ---------- Wide cards: what to make on the left, who it is for on the right ---------- */
@container (min-width: 620px) {
  body.has-sidebar .board-page .board-body.has-strips {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
    align-items: start;
    gap: 16px;
  }

  body.has-sidebar .board-page .board-body.has-strips .board-strips { margin-top: 8px; }
}

/* ---------- Phones ---------- */
@media (max-width: 640px) {
  body.has-sidebar main.board-page.page:not(.accounting-page):not(.calendar-page) > .hero-line.board-hero {
    margin: 4px 0 12px !important;
    padding: 16px !important;
    gap: 12px !important;
  }

  body.has-sidebar main.board-page.page:not(.accounting-page):not(.calendar-page) > .hero-line.board-hero h1 { font-size: 27px !important; }

  body.has-sidebar .board-page .board-hero .dd-dashboard-nav { gap: 8px; }
  body.has-sidebar .board-page .board-hero .date-nav a { min-width: 52px !important; height: 48px !important; }

  /* Count chips wrap into full rows instead of a sideways scroller that hid Courier/Issues. */
  body.has-sidebar .board-page .board-counts { gap: 6px; }

  body.has-sidebar .board-page .board-count {
    flex: 1 1 auto;
    gap: 6px;
    min-height: 40px;
    padding: 4px 5px 4px 10px;
    font-size: 13.5px;
  }

  body.has-sidebar .board-page .order-group { margin-top: 16px; }
  body.has-sidebar .board-page .group-title .board-group__label { font-size: 17px; }
  body.has-sidebar .board-page .group-title .board-group__time { font-size: 16px; }

  body.has-sidebar .board-page .order-card { grid-template-columns: 70px minmax(0, 1fr); }
  body.has-sidebar .board-page .quick-col { padding: 10px 5px 9px 9px; }
  body.has-sidebar .board-page .quick-col .tiny-link { min-width: 0; padding: 0 8px; font-size: 12px; }

  body.has-sidebar .board-page .order-main { padding: 10px 11px 11px; }
  body.has-sidebar .board-page .order-meta { column-gap: 5px; }

  body.has-sidebar .board-page .dashboard-item-row { grid-template-columns: 44px minmax(0, 1fr); gap: 10px; }
  body.has-sidebar .board-page .dash-product-thumb { width: 44px; height: 44px; border-radius: 10px; }
  body.has-sidebar .board-page .item-title { font-size: 14.5px; }
  body.has-sidebar .board-page .item-title em { font-size: 12.5px; }
}

/* ===== polish-order.css ===== */
/* Order page and courier screen: design pass 2026-09. Loaded last in staff.bundle.css.
   Scoped to main.order-detail (views/order.ejs) and main.delivery-run (views/courier_delivery.ejs).
   Buttons and controls keep their places (staff know them by position); this sheet only changes
   size, colour and hierarchy. Older layers use !important on cards, buttons, headings and inputs,
   so the same properties need it here too. Colours follow the order board (polish-board.css) and
   the printed cards: forest text, pink accents, berry small-caps labels, palm for "done". */

body.has-sidebar main.order-detail,
body.has-sidebar main.delivery-run {
  --od-forest: #123728;
  --od-forest-2: #1c4a36;
  --od-ink-soft: #3f5248;
  --od-muted: #5f6f66;
  --od-pink: #ff4fa3;
  --od-berry: #b81d68;
  --od-palm: #7a8f4a;
  --od-tint: #fff3f8;
  --od-paper: #fffdf8;
  --od-sage: #f1f5ee;
  --od-line: rgba(18, 55, 40, .12);
  --od-line-strong: rgba(18, 55, 40, .22);
  --od-shadow: 0 1px 2px rgba(18, 55, 40, .05), 0 8px 22px rgba(18, 55, 40, .06);
  --od-display: "DF Comfortaa", "Trebuchet MS", system-ui, sans-serif;
  --od-body: "DF Assistant", Inter, Arial, sans-serif;
  --od-danger: #a3312a;
  /* Line icons for buttons (drawn with the button's text colour through a mask). */
  --od-icon-play: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 5l11 7-11 7z'/%3E%3C/svg%3E");
  --od-icon-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
  --od-icon-truck: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 7h11v9H3z'/%3E%3Cpath d='M14 10h4l3 3v3h-7z'/%3E%3Ccircle cx='7' cy='18' r='2'/%3E%3Ccircle cx='17' cy='18' r='2'/%3E%3C/svg%3E");
  --od-icon-alert: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 8v5'/%3E%3Cpath d='M12 17h.01'/%3E%3Cpath d='M10.3 4.4 2.6 18a2 2 0 0 0 1.7 3h15.4a2 2 0 0 0 1.7-3L13.7 4.4a2 2 0 0 0-3.4 0Z'/%3E%3C/svg%3E");
  --od-icon-map: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 4 3 6v14l6-2 6 2 6-2V4l-6 2-6-2Z'/%3E%3Cpath d='M9 4v14M15 6v14'/%3E%3C/svg%3E");
  --od-icon-external: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 4h6v6'/%3E%3Cpath d='M20 4 10 14'/%3E%3Cpath d='M19 14v5a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h5'/%3E%3C/svg%3E");
  --od-icon-phone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6.5 3h3l1.6 4.2-2.1 1.3a11 11 0 0 0 6.5 6.5l1.3-2.1 4.2 1.6v3a2 2 0 0 1-2 2A16.5 16.5 0 0 1 4.5 5a2 2 0 0 1 2-2Z'/%3E%3C/svg%3E");
  --od-icon-chat: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5h16v11H9l-5 4z'/%3E%3C/svg%3E");
  --od-icon-mail: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m4 7 8 6 8-6'/%3E%3C/svg%3E");
  --od-icon-receipt: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 3h12v18l-3-2-3 2-3-2-3 2z'/%3E%3Cpath d='M9 8h6M9 12h6M9 16h3'/%3E%3C/svg%3E");
  --od-icon-gps: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='7'/%3E%3Ccircle cx='12' cy='12' r='2.5'/%3E%3Cpath d='M12 2v3M12 19v3M2 12h3M19 12h3'/%3E%3C/svg%3E");
}

/* ======================================================================================
   ORDER PAGE
   ====================================================================================== */

/* ---------- Header: what, when, for whom, what's next ---------- */
body.has-sidebar main.order-detail .detail-hero {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 0 16px;
  margin: 4px 0 12px !important;
  padding: 20px 22px 18px !important;
  border: 1px solid var(--od-line) !important;
  border-radius: 20px !important;
  background:
    radial-gradient(circle at 100% 0, rgba(255, 79, 163, .11), transparent 44%),
    linear-gradient(135deg, #fffdf8, #fff7ef) !important;
  box-shadow: var(--od-shadow) !important;
}

/* The wrapper steps aside so the status chip only shares the first two rows (label, number)
   and the date, the recipient and the next step get the full width. */
body.has-sidebar main.order-detail .detail-hero__main { display: contents; }
body.has-sidebar main.order-detail .detail-hero > .detail-hero__main > * { grid-column: 1 / -1; min-width: 0; }
body.has-sidebar main.order-detail .detail-hero > .detail-hero__main > .detail-source-line { grid-column: 1; grid-row: 1; }
body.has-sidebar main.order-detail .detail-hero > .detail-hero__main > h1 { grid-column: 1; grid-row: 2; }

body.has-sidebar main.order-detail .detail-hero .detail-source-line {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 8px;
  margin: 0 0 4px;
  color: var(--od-berry) !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  letter-spacing: .1em !important;
  text-transform: uppercase;
}

body.has-sidebar main.order-detail .detail-hero :is(.external-source-badge, .fake-order-badge) {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  margin: 0;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .06em;
}

body.has-sidebar main.order-detail .detail-hero .external-source-badge { border: 1px solid rgba(233, 54, 32, .25); color: #b52c1c; background: #fdece9; }
body.has-sidebar main.order-detail .detail-hero .fake-order-badge { border: 1px dashed rgba(184, 29, 104, .45); color: var(--od-berry); background: var(--od-tint); }

body.has-sidebar main.order-detail .detail-hero h1 {
  margin: 0 0 10px !important;
  font-size: clamp(30px, 3.4vw, 40px) !important;
  line-height: 1.05 !important;
  overflow-wrap: anywhere;
}

body.has-sidebar main.order-detail .detail-hero__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin: 0 0 12px;
}

body.has-sidebar main.order-detail .detail-hero__meta > span {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 4px 12px;
  border: 1px solid var(--od-line);
  border-radius: 999px;
  background: rgba(255, 255, 255, .88);
  color: var(--od-forest) !important;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.2;
}

body.has-sidebar main.order-detail .detail-hero__meta .detail-price {
  border-color: rgba(184, 29, 104, .16);
  background: var(--od-tint);
  color: var(--od-berry) !important;
  font-weight: 800;
}

body.has-sidebar main.order-detail .detail-hero__for {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 2px 8px;
  margin: 0;
  color: var(--od-ink-soft);
}

body.has-sidebar main.order-detail .detail-hero__for > span {
  color: var(--od-berry);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}

body.has-sidebar main.order-detail .detail-hero__for strong {
  color: var(--od-forest);
  font-family: var(--od-display);
  font-size: 19px;
  font-weight: 700;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

body.has-sidebar main.order-detail .detail-hero__for--missing strong {
  color: #962a1c;
  font-family: var(--od-body);
  font-size: 16px;
  font-weight: 800;
}

body.has-sidebar main.order-detail .detail-hero__for em {
  flex-basis: 100%;
  color: var(--od-muted);
  font-size: 15px;
  font-style: normal;
  font-weight: 600;
  overflow-wrap: anywhere;
}

body.has-sidebar main.order-detail .detail-hero__next {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 14px 0 0;
  padding: 11px 14px;
  border: 1px solid rgba(255, 79, 163, .25);
  border-radius: 14px;
  background: rgba(255, 255, 255, .92);
  color: var(--od-forest);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.3;
}

body.has-sidebar main.order-detail .detail-hero__next::before {
  flex: 0 0 auto;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--od-pink);
  box-shadow: 0 0 0 4px rgba(255, 79, 163, .2);
  content: "";
}

body.has-sidebar main.order-detail .detail-hero__next--done { border-color: rgba(122, 143, 74, .35); background: #f4f7ec; color: #3f4d1f; }
body.has-sidebar main.order-detail .detail-hero__next--done::before { background: var(--od-palm); box-shadow: 0 0 0 4px rgba(122, 143, 74, .22); }
body.has-sidebar main.order-detail .detail-hero__next--issue { border-color: rgba(194, 59, 42, .35); background: #fdf1ee; color: #7d2417; }
body.has-sidebar main.order-detail .detail-hero__next--issue::before { background: #c23b2a; box-shadow: 0 0 0 4px rgba(194, 59, 42, .18); }
body.has-sidebar main.order-detail .detail-hero__next--muted { border-color: var(--od-line); background: #f4f4f1; color: #525b57; }
body.has-sidebar main.order-detail .detail-hero__next--muted::before { background: #8b938f; box-shadow: none; }

/* Status chip: one colour per stage, the same as on the order board. */
body.has-sidebar main.order-detail .status-chip { --stage-tint: #ffeef6; --stage-ink: #a3195c; }
body.has-sidebar main.order-detail .status-chip.stage-work { --stage-tint: #fff3de; --stage-ink: #7f4c00; }
body.has-sidebar main.order-detail .status-chip.stage-ready { --stage-tint: #e6f4ea; --stage-ink: #1b6238; }
body.has-sidebar main.order-detail .status-chip.stage-courier { --stage-tint: #f1ecfb; --stage-ink: #53389e; }
body.has-sidebar main.order-detail .status-chip.stage-out { --stage-tint: #e7f1fb; --stage-ink: #1b5a94; }
body.has-sidebar main.order-detail .status-chip.stage-delivered { --stage-tint: #eef2e3; --stage-ink: #4b5a26; }
body.has-sidebar main.order-detail .status-chip.stage-issue { --stage-tint: #fdecea; --stage-ink: #962a1c; }
body.has-sidebar main.order-detail .status-chip.stage-cancelled { --stage-tint: #f0f1ef; --stage-ink: #525b57; }

body.has-sidebar main.order-detail .detail-hero .status-chip {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: start;
  display: inline-flex !important;
  align-items: center;
  gap: 7px !important;
  padding: 8px 14px 8px 11px !important;
  border: 1px solid rgba(18, 55, 40, .08) !important;
  border-radius: 999px !important;
  background: var(--stage-tint) !important;
  color: var(--stage-ink) !important;
  font-size: 14px !important;
  font-weight: 800 !important;
  line-height: 1.1;
  white-space: nowrap;
}

body.has-sidebar main.order-detail .detail-hero .status-chip svg { width: 16px; height: 16px; flex-basis: 16px; }

/* ---------- Actions: same buttons, same order; the next step is the solid one ---------- */
body.has-sidebar main.order-detail .detail-actions {
  gap: 10px !important;
  margin: 0 0 14px !important;
}

body.has-sidebar main.order-detail .detail-actions .btn {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-width: 0;
  min-height: 52px !important;
  margin: 0;
  padding: 12px 18px !important;
  border: 1px solid var(--od-line-strong) !important;
  border-radius: 14px !important;
  background: #fff !important;
  color: var(--od-forest) !important;
  box-shadow: 0 1px 2px rgba(18, 55, 40, .06) !important;
  font-family: var(--od-body) !important;
  font-size: 16px !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
  line-height: 1.15 !important;
  text-align: center;
  text-decoration: none !important;
  text-transform: none !important;
  filter: none !important;
}

body.has-sidebar main.order-detail .detail-actions .btn:hover { border-color: rgba(255, 79, 163, .5) !important; }
body.has-sidebar main.order-detail .detail-actions .btn:active { transform: scale(.99); }
body.has-sidebar main.order-detail .detail-actions .btn:disabled { opacity: .6; cursor: progress; }

body.has-sidebar main.order-detail .detail-actions .btn.is-primary {
  min-height: 58px !important;
  border-color: var(--od-forest) !important;
  background: var(--od-forest) !important;
  color: #fffdf8 !important;
  box-shadow: 0 10px 22px rgba(18, 55, 40, .2) !important;
  font-size: 17px !important;
}

body.has-sidebar main.order-detail .detail-actions .btn.is-primary:hover { border-color: var(--od-forest-2) !important; background: var(--od-forest-2) !important; }

body.has-sidebar main.order-detail .detail-actions .btn-print {
  border-color: rgba(184, 29, 104, .2) !important;
  background: var(--od-tint) !important;
  color: var(--od-berry) !important;
}

body.has-sidebar main.order-detail .detail-actions .btn-uber {
  border-color: #1f1d1b !important;
  background: #1f1d1b !important;
  color: #fff !important;
}

body.has-sidebar main.order-detail .detail-actions .btn-danger {
  border-color: rgba(194, 59, 42, .35) !important;
  background: #fff !important;
  color: var(--od-danger) !important;
}

body.has-sidebar main.order-detail .detail-actions .btn-danger:hover { background: #fdf1ee !important; }

body.has-sidebar main.order-detail .detail-actions .action-live-route {
  min-height: 56px !important;
  border: 2px solid var(--od-forest) !important;
  background: #fff !important;
  color: var(--od-forest) !important;
}

/* Icons, drawn with the button's own text colour. */
body.has-sidebar main.order-detail .detail-actions :is([data-status], [data-uber-order], [data-issue-order], .action-live-route, .action-track)::before {
  flex: 0 0 20px;
  width: 20px;
  height: 20px;
  margin: 0;
  background: currentColor;
  font-size: 0;
  content: "";
  -webkit-mask: var(--od-icon, var(--od-icon-check)) center / contain no-repeat;
  mask: var(--od-icon, var(--od-icon-check)) center / contain no-repeat;
}

body.has-sidebar main.order-detail .detail-actions [data-status="arranging"] { --od-icon: var(--od-icon-play); }
body.has-sidebar main.order-detail .detail-actions :is([data-status="courier_ordered"], [data-status="picked_up"], [data-uber-order]) { --od-icon: var(--od-icon-truck); }
body.has-sidebar main.order-detail .detail-actions [data-issue-order] { --od-icon: var(--od-icon-alert); }
body.has-sidebar main.order-detail .detail-actions .action-live-route { --od-icon: var(--od-icon-map); }
body.has-sidebar main.order-detail .detail-actions .action-track { --od-icon: var(--od-icon-external); }

body.has-sidebar main.order-detail .detail-actions .action-hint {
  padding: 12px 14px;
  border: 1px dashed var(--od-line-strong);
  border-radius: 14px;
  background: rgba(255, 255, 255, .7);
  color: var(--od-muted);
  font-size: 15px;
  font-weight: 700;
}

body.has-sidebar main.order-detail > .notice {
  margin: 0 0 14px !important;
  padding: 12px 16px !important;
  border-radius: 14px !important;
  font-size: 15px;
  font-weight: 700;
}

/* ---------- Cards ---------- */
body.has-sidebar main.order-detail > .card-block:not(.timeline-panel),
body.has-sidebar main.order-detail > .order-proof-row > .card-block {
  margin: 0 0 14px !important;
  padding: 20px 22px !important;
  border: 1px solid var(--od-line) !important;
  border-radius: 18px !important;
  background: rgba(255, 253, 248, .98) !important;
  box-shadow: var(--od-shadow) !important;
}

body.has-sidebar main.order-detail > .order-proof-row {
  gap: 14px;
  margin: 0 0 14px !important;
}

body.has-sidebar main.order-detail > .order-proof-row > .card-block { margin: 0 !important; }

body.has-sidebar main.order-detail .card-block h2 {
  margin: 0 0 14px !important;
  font-size: 22px !important;
  line-height: 1.2 !important;
}

body.has-sidebar main.order-detail .card-block .eyebrow {
  margin: 0 0 3px !important;
  color: var(--od-berry) !important;
  font-size: 11.5px !important;
  font-weight: 800 !important;
  letter-spacing: .1em !important;
  text-transform: uppercase;
}

body.has-sidebar main.order-detail .card-block .subtle {
  color: var(--od-muted) !important;
  font-size: 15px;
  line-height: 1.45;
}

/* Secondary buttons inside the cards: calm outline, sentence case, a comfortable tap size. */
body.has-sidebar main.order-detail .card-block :is(.btn, button.btn) {
  min-height: 48px;
  border-radius: 12px !important;
  font-size: 15px !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

body.has-sidebar main.order-detail .card-block .btn.btn-outline {
  border: 1px solid var(--od-line-strong) !important;
  background: #fff !important;
  color: var(--od-forest) !important;
  box-shadow: none !important;
}

body.has-sidebar main.order-detail .card-block .btn.btn-primary,
body.has-sidebar main.order-detail .card-block button.btn.btn-primary {
  border: 1px solid var(--od-forest) !important;
  background: var(--od-forest) !important;
  color: #fffdf8 !important;
  box-shadow: 0 8px 18px rgba(18, 55, 40, .16) !important;
}

/* ---------- Items: what to make ---------- */
body.has-sidebar main.order-detail .detail-item {
  grid-template-columns: 96px minmax(0, 1fr);
  gap: 16px;
  align-items: start;
  padding: 14px 0;
  border-top: 1px solid var(--od-line);
}

body.has-sidebar main.order-detail .detail-item:first-of-type { padding-top: 2px; border-top: 0; }
body.has-sidebar main.order-detail .detail-item:last-child { padding-bottom: 0; }

body.has-sidebar main.order-detail .detail-item > :is(.detail-item__image-button, .item-placeholder) {
  width: 96px;
  height: 96px;
  border-radius: 14px;
}

body.has-sidebar main.order-detail .detail-item > .item-placeholder {
  border: 1px dashed rgba(255, 79, 163, .35);
  background: var(--od-tint);
  color: var(--od-pink);
  font-family: var(--od-display);
  font-size: 24px;
}

body.has-sidebar main.order-detail .detail-item__body { min-width: 0; }

body.has-sidebar main.order-detail .detail-item__body > strong {
  color: var(--od-forest);
  font-family: var(--od-display);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

body.has-sidebar main.order-detail .detail-item__body > p {
  margin: 3px 0 0;
  color: var(--od-muted);
  font-size: 15px;
}

body.has-sidebar main.order-detail .detail-item__addon {
  display: inline-block;
  margin-left: 4px;
  padding: 3px 8px;
  border-radius: 999px;
  background: var(--od-tint);
  color: var(--od-berry);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
  line-height: 1.2;
  text-transform: uppercase;
  vertical-align: 3px;
}

body.has-sidebar main.order-detail .detail-item__properties { gap: 6px; margin: 8px 0 2px; }

body.has-sidebar main.order-detail .detail-item__properties span {
  padding: 5px 10px;
  border-color: rgba(184, 29, 104, .18);
  background: #fff;
  color: var(--od-ink-soft);
  font-size: 13.5px;
}

body.has-sidebar main.order-detail .detail-item__properties strong { color: var(--od-forest); }

body.has-sidebar main.order-detail .detail-item__body > .detail-item__qty {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 10px;
  margin-top: 9px;
}

body.has-sidebar main.order-detail .detail-item__qty b {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 2px 10px;
  border-radius: 8px;
  background: var(--od-sage);
  color: var(--od-forest);
  font-size: 14px;
  font-weight: 800;
}

body.has-sidebar main.order-detail .detail-item__qty b.is-multi { background: var(--od-pink); color: #fff; }
body.has-sidebar main.order-detail .detail-item__qty span { color: var(--od-muted); font-size: 15px; font-weight: 700; }

/* The tip: a quiet tip-jar mark in sage instead of the pink "DF" placeholder. */
body.has-sidebar main.order-detail .detail-item > .item-placeholder--tip {
  border: 1px solid rgba(122, 143, 74, .2);
  background: var(--od-sage);
  color: #8a9a70;
}

body.has-sidebar main.order-detail .item-placeholder--tip svg {
  width: 44%;
  height: 44%;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* A balloon set with premium designs: a star on those balloons and one line for the charge,
   which used to be a separate "Premium Balloon Design" item that read as one more balloon. */
body.has-sidebar main.order-detail .detail-item__balloon-set button { position: relative; overflow: visible; }
body.has-sidebar main.order-detail .detail-item__balloon-set button.is-premium { box-shadow: 0 0 0 2px #e2b04a; }
body.has-sidebar main.order-detail .detail-item__balloon-set img { border-radius: inherit; }

body.has-sidebar main.order-detail .detail-item__premium-mark {
  position: absolute;
  top: -5px;
  right: -5px;
  display: grid;
  place-items: center;
  width: 18px;
  height: 18px;
  border: 2px solid #fffdf8;
  border-radius: 50%;
  color: #fff;
  background: #d39a1f;
  font-size: 10px;
  line-height: 1;
}

body.has-sidebar main.order-detail .detail-item__body > .detail-item__premium {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 2px 8px;
  margin: 6px 0 2px;
  padding: 5px 12px;
  border: 1px solid rgba(211, 154, 31, .35);
  border-radius: 14px;
  background: #fff8e6;
  color: #6b4d12;
  font-size: 13.5px;
}

body.has-sidebar main.order-detail .detail-item__premium span { color: #94650a; font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
body.has-sidebar main.order-detail .detail-item__premium strong { color: var(--od-forest); }
body.has-sidebar main.order-detail .detail-item__premium em { color: #6b4d12; font-style: normal; font-weight: 800; }

/* ---------- Proof photos ---------- */
body.has-sidebar main.order-detail .proof-block h2 { margin-bottom: 8px !important; }

body.has-sidebar main.order-detail .proof-block h2 span {
  min-width: 32px;
  height: 32px;
  padding: 0 8px;
  background: var(--od-sage);
  color: var(--od-forest);
  font-family: var(--od-body);
  font-size: 15px;
  font-weight: 800;
}

body.has-sidebar main.order-detail .proof-block > .subtle { margin: 0 0 14px; }

body.has-sidebar main.order-detail .auto-photo-form { gap: 10px; }

body.has-sidebar main.order-detail .photo-picker {
  position: relative;
  overflow: hidden;
  grid-template-columns: 48px minmax(0, 1fr);
  min-height: 76px;
  padding: 14px 16px;
  border: 2px dashed rgba(255, 79, 163, .45);
  border-radius: 16px;
  background: var(--od-tint);
  transition: border-color .15s ease, background-color .15s ease;
}

body.has-sidebar main.order-detail .photo-picker:hover { border-color: var(--od-pink); background: #ffeaf4; }
body.has-sidebar main.order-detail .photo-picker:focus-within { outline: 3px solid rgba(255, 79, 163, .4); outline-offset: 2px; }

body.has-sidebar main.order-detail .photo-picker__icon {
  width: 48px;
  height: 48px;
  border-radius: 14px;
  background: #fff;
  color: var(--od-berry);
  box-shadow: 0 2px 8px rgba(184, 29, 104, .12);
}

body.has-sidebar main.order-detail .photo-picker strong { color: var(--od-forest); font-size: 17px; }
body.has-sidebar main.order-detail .photo-picker small { color: var(--od-muted) !important; font-size: 13px; font-weight: 600; }

body.has-sidebar main.order-detail .photo-picker__progress {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 5px;
  background: rgba(255, 79, 163, .16);
  opacity: 0;
  transition: opacity .2s ease;
}

body.has-sidebar main.order-detail .photo-picker__progress i {
  display: block;
  width: var(--upload-progress, 0%);
  height: 100%;
  background: var(--od-pink);
  transition: width .25s ease;
}

body.has-sidebar main.order-detail .auto-photo-form.is-uploading .photo-picker__progress { opacity: 1; }
body.has-sidebar main.order-detail .auto-photo-form.is-done .photo-picker__progress { animation: od-progress-done 1.4s ease forwards; }
body.has-sidebar main.order-detail .auto-photo-form.is-done .photo-picker__progress i { background: var(--od-palm); }

@keyframes od-progress-done {
  0%, 60% { opacity: 1; }
  100% { opacity: 0; }
}
body.has-sidebar main.order-detail .auto-photo-form.is-uploading .photo-picker { opacity: 1; cursor: progress; border-style: solid; }

body.has-sidebar main.order-detail .photo-form input[name="caption"],
body.has-sidebar main.order-detail .delivery-location-other {
  min-height: 48px;
  border-radius: 12px !important;
  font-size: 16px;
}

body.has-sidebar main.order-detail .photo-upload-state {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 10px;
  min-height: 20px;
  color: var(--od-muted);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.35;
}

body.has-sidebar main.order-detail .auto-photo-form.is-uploading .photo-upload-state { color: var(--od-berry); }
body.has-sidebar main.order-detail .auto-photo-form.is-done .photo-upload-state { color: #1b6238; }
body.has-sidebar main.order-detail .auto-photo-form.is-error .photo-upload-state { color: #962a1c; }

body.has-sidebar main.order-detail .photo-upload-state__action {
  min-height: 40px;
  padding: 6px 16px;
  border: 1px solid var(--od-forest) !important;
  border-radius: 10px !important;
  background: var(--od-forest) !important;
  color: #fffdf8 !important;
  font-size: 15px;
  font-weight: 800 !important;
  cursor: pointer;
}

body.has-sidebar main.order-detail .auto-photo-form.is-error .photo-upload-state__action {
  border-color: rgba(194, 59, 42, .4) !important;
  background: #fff !important;
  color: var(--od-danger) !important;
}

body.has-sidebar main.order-detail .order-proof-row .photo-grid { margin-top: 14px; }
body.has-sidebar main.order-detail .photo-thumb__preview { border-radius: 14px; box-shadow: 0 0 0 1px var(--od-line); }
body.has-sidebar main.order-detail .photo-thumb.is-new { animation: od-photo-in .35s ease-out; }
body.has-sidebar main.order-detail .photo-thumb-caption { color: var(--od-ink-soft); font-size: 13px; font-weight: 700; }

@keyframes od-photo-in {
  from { opacity: 0; transform: scale(.94); }
}

/* Delivery spot: large chips; the radio sits inside its chip, so it never widens the page. */
body.has-sidebar main.order-detail .delivery-location-picker {
  gap: 10px;
  padding: 14px;
  border: 1px solid var(--od-line);
  border-radius: 16px;
  background: #fff;
}

body.has-sidebar main.order-detail .delivery-location-picker > strong { color: var(--od-forest); font-size: 16px; }
body.has-sidebar main.order-detail .delivery-location-options { gap: 8px; }
body.has-sidebar main.order-detail .delivery-location-options label { position: relative; margin: 0; }

body.has-sidebar main.order-detail .delivery-location-options input {
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  margin: 0;
}

body.has-sidebar main.order-detail .delivery-location-options span {
  min-height: 44px;
  padding: 8px 14px;
  border: 1px solid var(--od-line-strong);
  border-radius: 12px;
  background: #fff;
  color: var(--od-ink-soft);
  font-size: 15px;
  font-weight: 700;
}

body.has-sidebar main.order-detail .delivery-location-options input:checked + span {
  border-color: var(--od-forest);
  background: var(--od-forest);
  color: #fffdf8;
}

body.has-sidebar main.order-detail .delivery-location-options input:checked + span::before {
  margin-right: 6px;
  font-weight: 900;
  content: "\2713";
}

body.has-sidebar main.order-detail .delivery-location-options input:focus-visible + span { outline: 3px solid rgba(255, 79, 163, .45); outline-offset: 2px; }

body.has-sidebar main.order-detail .delivery-handoff-record {
  border-color: rgba(122, 143, 74, .35);
  border-radius: 14px;
  background: #f4f7ec;
}

/* ---------- Recipient & delivery ---------- */
body.has-sidebar main.order-detail .fulfillment-card .section-headline { align-items: center; margin-bottom: 14px; }
body.has-sidebar main.order-detail .fulfillment-card .section-headline h2 { margin: 0 !important; }
body.has-sidebar main.order-detail .order-address-head-actions .btn { min-height: 44px; }

body.has-sidebar main.order-detail .recipient-detail-grid { gap: 10px; }

body.has-sidebar main.order-detail .recipient-detail-card {
  padding: 12px 14px;
  border: 1px solid var(--od-line);
  border-radius: 14px;
  background: #fff;
}

body.has-sidebar main.order-detail .recipient-detail-card > span {
  color: var(--od-berry);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .1em;
}

body.has-sidebar main.order-detail .recipient-detail-card > strong {
  margin-top: 3px;
  color: var(--od-forest);
  font-size: 17px;
  font-weight: 700;
  line-height: 1.3;
}

body.has-sidebar main.order-detail .recipient-detail-card:first-child > strong,
body.has-sidebar main.order-detail .recipient-detail-card--address > strong {
  font-family: var(--od-display);
  font-size: 18px;
}

body.has-sidebar main.order-detail .recipient-detail-card--source-gift { border-color: rgba(255, 79, 163, .3); background: var(--od-tint); }
body.has-sidebar main.order-detail .recipient-detail-card--source-warn { border-color: rgba(214, 150, 30, .4); background: #fff7e2; }
body.has-sidebar main.order-detail .recipient-detail-card .recipient-source { font-size: 12.5px; font-weight: 700; }

body.has-sidebar main.order-detail .recipient-map-action {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 36px;
  margin-top: 8px;
  padding: 6px 12px;
  border-radius: 10px;
  background: var(--od-sage);
  color: var(--od-forest);
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0;
  text-decoration: none;
  text-transform: none;
}

body.has-sidebar main.order-detail .recipient-map-action::before {
  width: 16px;
  height: 16px;
  background: currentColor;
  content: "";
  -webkit-mask: var(--od-icon-map) center / contain no-repeat;
  mask: var(--od-icon-map) center / contain no-repeat;
}

body.has-sidebar main.order-detail .recipient-map-action:hover { background: #e4ecdd; color: var(--od-forest); }

body.has-sidebar main.order-detail .recipient-detail-card:is(.recipient-detail-card--date, .recipient-detail-card--address) { padding-right: 58px; }

body.has-sidebar main.order-detail .recipient-date-edit {
  top: 8px;
  right: 8px;
  width: 42px;
  height: 42px;
  border-color: var(--od-line-strong);
  border-radius: 12px;
  background: #fff;
  color: var(--od-forest);
}

body.has-sidebar main.order-detail .recipient-date-edit svg { width: 18px; height: 18px; }

/* Gift message, florist instructions, order note, delivery instructions: labelled, line breaks kept. */
body.has-sidebar main.order-detail .order-note {
  display: block;
  margin: 0 0 12px;
  padding: 14px 16px;
  border: 1px solid var(--od-line);
  border-radius: 14px;
  background: #fff;
  color: var(--od-forest);
}

body.has-sidebar main.order-detail .order-note:last-child { margin-bottom: 0; }

body.has-sidebar main.order-detail .order-note__label {
  display: block;
  margin-bottom: 6px;
  color: var(--od-berry);
  font-size: 11.5px;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}

body.has-sidebar main.order-detail .order-note__text {
  margin: 0;
  color: var(--od-forest);
  font-size: 17px;
  font-weight: 600;
  line-height: 1.5;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

body.has-sidebar main.order-detail .order-note--gift {
  padding: 16px 18px;
  border-color: rgba(255, 79, 163, .28);
  background: var(--od-tint);
}

body.has-sidebar main.order-detail .order-note--gift .gift-box__for { margin: 0 0 8px; color: var(--od-berry); font-size: 13.5px; font-weight: 700; }
body.has-sidebar main.order-detail .order-note--gift .gift-box__for--warn { color: #7f4c00; }
body.has-sidebar main.order-detail .order-note--gift .gift-box__for--missing { color: #962a1c; }

body.has-sidebar main.order-detail .order-note--gift .order-note__text {
  font-family: var(--od-display);
  font-size: 18px;
  font-weight: 600;
  line-height: 1.6;
}

body.has-sidebar main.order-detail .order-note--florist { border-color: rgba(214, 150, 30, .32); background: #fff8e4; }
body.has-sidebar main.order-detail .order-note--florist .order-note__label { color: #7f4c00; }
body.has-sidebar main.order-detail .order-note--note { background: var(--od-sage); }
body.has-sidebar main.order-detail .order-note--note .order-note__label { color: #4b5a26; }

body.has-sidebar main.order-detail .fulfillment-card .order-note--delivery {
  margin: 14px 0 0;
  border-left: 4px solid var(--od-pink);
}

/* Contact buttons: same stack, clearer. */
body.has-sidebar main.order-detail .contact-action-row { gap: 10px; margin-top: 14px; }

body.has-sidebar main.order-detail .contact-action-row .btn {
  gap: 8px;
  min-height: 50px;
  border: 1px solid var(--od-line-strong) !important;
  background: #fff !important;
  color: var(--od-forest) !important;
  box-shadow: none !important;
}

body.has-sidebar main.order-detail .contact-action-row .btn.btn-green {
  border-color: var(--od-forest) !important;
  background: var(--od-forest) !important;
  color: #fffdf8 !important;
}

body.has-sidebar main.order-detail .contact-action-row .btn::before {
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
  background: currentColor;
  content: "";
  -webkit-mask: var(--od-icon-chat) center / contain no-repeat;
  mask: var(--od-icon-chat) center / contain no-repeat;
}

body.has-sidebar main.order-detail .contact-action-row .btn[data-direct-call]::before { -webkit-mask-image: var(--od-icon-phone); mask-image: var(--od-icon-phone); }
body.has-sidebar main.order-detail .contact-action-row .btn[href^="mailto:"]::before { -webkit-mask-image: var(--od-icon-mail); mask-image: var(--od-icon-mail); }
body.has-sidebar main.order-detail .contact-action-row .btn[data-email-receipt]::before { -webkit-mask-image: var(--od-icon-receipt); mask-image: var(--od-icon-receipt); }

/* ---------- Print text, print station, florist notes ---------- */
body.has-sidebar main.order-detail .print-text-form label,
body.has-sidebar main.order-detail .staff-note-add label {
  color: var(--od-berry);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}

body.has-sidebar main.order-detail .print-text-form textarea,
body.has-sidebar main.order-detail .staff-note-add textarea {
  margin-top: 6px;
  padding: 12px 14px;
  border-radius: 12px !important;
  color: var(--od-forest) !important;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.45;
  text-transform: none;
}

body.has-sidebar main.order-detail .order-workbench__print .print-card-actions { box-shadow: none !important; }

body.has-sidebar main.order-detail .order-workbench__print .print-card-actions .btn {
  border: 1px solid rgba(184, 29, 104, .22) !important;
  background: var(--od-tint) !important;
  color: var(--od-berry) !important;
  box-shadow: none !important;
}

body.has-sidebar main.order-detail .staff-notes {
  border-color: var(--od-line);
  border-radius: 16px;
  background: #fff;
  box-shadow: none;
}

body.has-sidebar main.order-detail .staff-notes__count { background: var(--od-tint); color: var(--od-berry); }

body.has-sidebar main.order-detail .staff-note {
  grid-template-columns: 42px minmax(0, 1fr) 42px;
  align-items: center;
  border-color: var(--od-line);
  border-radius: 14px;
  background: #fff;
}

body.has-sidebar main.order-detail .staff-note p { color: var(--od-forest); font-size: 16px; font-weight: 700; }
body.has-sidebar main.order-detail .staff-note small { font-size: 12px; font-weight: 600; }

/* Unticked must look unticked: the shared submit-button style painted these boxes solid. */
body.has-sidebar main.order-detail .staff-note .staff-note__check {
  width: 40px;
  height: 40px;
  min-height: 0;
  padding: 0;
  border: 2px solid rgba(18, 55, 40, .3) !important;
  border-radius: 12px !important;
  background: #fff !important;
  color: #fff !important;
  box-shadow: none !important;
  font-size: 20px;
}

body.has-sidebar main.order-detail .staff-note .staff-note__check:hover { border-color: var(--od-pink) !important; background: var(--od-tint) !important; }
body.has-sidebar main.order-detail .staff-note.is-complete .staff-note__check { border-color: var(--od-palm) !important; background: var(--od-palm) !important; }

body.has-sidebar main.order-detail .staff-note .staff-note__delete {
  width: 40px;
  height: 40px;
  min-height: 0;
  padding: 0;
  border: 1px solid rgba(194, 59, 42, .25) !important;
  border-radius: 12px !important;
  background: #fff !important;
  color: var(--od-danger) !important;
  box-shadow: none !important;
}

body.has-sidebar main.order-detail .staff-note .staff-note__delete:hover { background: #fdf1ee !important; }
body.has-sidebar main.order-detail .staff-note.is-complete { opacity: .7; background: #f6f7f3; }

/* ---------- Flower plan ---------- */
body.has-sidebar main.order-detail .order-procurement-card { background: linear-gradient(135deg, #fffdf8, #f5f9ef) !important; }
body.has-sidebar main.order-detail .procurement-details { border-color: var(--od-line); border-radius: 14px; }

body.has-sidebar main.order-detail .order-procurement-card .procurement-open-flowers {
  display: inline-flex;
  margin-top: 14px !important;
}

/* ---------- Integrations (shown at the bottom) ---------- */
body.has-sidebar main.order-detail .integration-row {
  border-color: var(--od-line);
  border-radius: 14px;
  background: #fff;
}

body.has-sidebar main.order-detail .integration-row > span { color: var(--od-berry); font-size: 11px; font-weight: 800; letter-spacing: .1em; }
body.has-sidebar main.order-detail .integration-row strong { color: var(--od-forest); font-size: 16px; }

/* ---------- Timeline ---------- */
body.has-sidebar main.order-detail.page > .timeline-panel.card-block {
  margin: 0 0 14px !important;
  padding: 0 !important;
  border: 1px solid var(--od-line) !important;
  border-radius: 18px !important;
  background: rgba(255, 253, 248, .98) !important;
  box-shadow: var(--od-shadow) !important;
}

body.has-sidebar main.order-detail .timeline-panel summary {
  min-height: 58px;
  padding: 0 20px;
  color: var(--od-forest);
  font-size: 16px;
  font-weight: 800;
}

body.has-sidebar main.order-detail .timeline-panel summary strong { min-width: 32px; height: 32px; background: var(--od-sage); color: var(--od-forest); font-size: 14px; }
body.has-sidebar main.order-detail .timeline-panel .timeline { gap: 0; padding: 2px 20px 18px; }

body.has-sidebar main.order-detail .timeline > div {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 2px 12px;
  padding: 10px 0 10px 24px;
  border: 0;
}

body.has-sidebar main.order-detail .timeline > div::after {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 6px;
  width: 2px;
  background: var(--od-line);
  content: "";
}

body.has-sidebar main.order-detail .timeline > div:first-child::after { top: 18px; }
body.has-sidebar main.order-detail .timeline > div:last-child::after { bottom: calc(100% - 18px); }

body.has-sidebar main.order-detail .timeline > div::before {
  position: absolute;
  z-index: 1;
  top: 13px;
  left: 2px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--od-pink);
  box-shadow: 0 0 0 3px #fffdf8;
  content: "";
}

body.has-sidebar main.order-detail .timeline > div > strong { grid-column: 1; color: var(--od-forest); font-size: 15px; }
body.has-sidebar main.order-detail .timeline > div > .timeline-status { grid-column: 1; color: var(--od-ink-soft); font-size: 15px; font-weight: 700; }
body.has-sidebar main.order-detail .timeline > div > .timeline-note { grid-column: 1 / -1; color: var(--od-muted); font-size: 14px; }
body.has-sidebar main.order-detail .timeline > div > small { grid-column: 2; grid-row: 1; color: var(--od-muted) !important; font-size: 12.5px; font-weight: 600; white-space: nowrap; }

body.has-sidebar main.order-detail > .btn.wide {
  min-height: 50px;
  margin: 0 0 14px;
  border: 1px solid var(--od-line-strong) !important;
  border-radius: 14px !important;
  background: #fff !important;
  color: var(--od-forest) !important;
  font-size: 15px !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

/* ---------- Phones ---------- */
@media (max-width: 640px) {
  body.has-sidebar main.order-detail .detail-hero {
    gap: 0 12px;
    padding: 16px !important;
    border-radius: 18px !important;
  }

  body.has-sidebar main.order-detail .detail-hero h1 { font-size: 30px !important; }
  body.has-sidebar main.order-detail .detail-hero .status-chip { padding: 7px 12px 7px 10px !important; font-size: 13px !important; }
  body.has-sidebar main.order-detail .detail-hero__meta > span { min-height: 30px; padding: 3px 10px; font-size: 14.5px; }
  body.has-sidebar main.order-detail .detail-hero__next { font-size: 15.5px; }

  body.has-sidebar main.order-detail > .card-block:not(.timeline-panel),
  body.has-sidebar main.order-detail > .order-proof-row > .card-block {
    padding: 16px !important;
    border-radius: 16px !important;
  }

  body.has-sidebar main.order-detail .card-block h2 { font-size: 20px !important; }

  body.has-sidebar main.order-detail .detail-item { grid-template-columns: 76px minmax(0, 1fr); gap: 12px; }
  body.has-sidebar main.order-detail .detail-item > :is(.detail-item__image-button, .item-placeholder) { width: 76px; height: 76px; }
  body.has-sidebar main.order-detail .detail-item__body > strong { font-size: 17px; }

  /* One list instead of nine separate boxes: same order, same edit buttons on the right. */
  body.has-sidebar main.order-detail .fulfillment-card .recipient-detail-grid {
    gap: 0;
    overflow: hidden;
    border: 1px solid var(--od-line);
    border-radius: 14px;
    background: #fff;
  }

  body.has-sidebar main.order-detail .fulfillment-card .recipient-detail-card {
    border: 0;
    border-top: 1px solid var(--od-line);
    border-radius: 0;
  }

  body.has-sidebar main.order-detail .fulfillment-card .recipient-detail-card:first-child { border-top: 0; }

  body.has-sidebar main.order-detail .timeline > div { grid-template-columns: minmax(0, 1fr); }
  body.has-sidebar main.order-detail .timeline > div > small { grid-column: 1; grid-row: auto; white-space: normal; }
}

/* ======================================================================================
   COURIER SCREEN (driving mode)
   Big, high-contrast text for a phone in the sun; every control where it was.
   ====================================================================================== */
body.has-sidebar main.delivery-run .delivery-run__hero {
  border-color: var(--od-line);
  border-radius: 20px;
  background:
    radial-gradient(circle at 100% 0, rgba(255, 79, 163, .12), transparent 40%),
    linear-gradient(135deg, #fffdf8, #fff7ef);
  box-shadow: var(--od-shadow);
}

body.has-sidebar main.delivery-run .delivery-run__back {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  margin-bottom: 10px;
  padding: 0 14px 0 12px;
  border: 1px solid rgba(184, 29, 104, .16);
  border-radius: 12px;
  background: var(--od-tint);
  color: var(--od-berry);
  font-size: 15px;
  font-weight: 800;
}

body.has-sidebar main.delivery-run .delivery-run__eyebrow { color: var(--od-berry); }
body.has-sidebar main.delivery-run .delivery-run__hero h1 { font-size: clamp(30px, 3.4vw, 44px) !important; }
body.has-sidebar main.delivery-run .delivery-run__hero > p:last-child { color: var(--od-ink-soft); font-size: 16px; }

body.has-sidebar main.delivery-run :is(.delivery-map-card, .delivery-stop-card, .delivery-share-card) {
  border-color: var(--od-line);
  border-radius: 20px;
  box-shadow: var(--od-shadow);
}

/* Start panel: the address is readable, the button is unmissable. */
body.has-sidebar main.delivery-run .driver-start-panel h2 {
  font-family: var(--od-display);
  font-size: clamp(22px, 2.6vw, 30px);
  line-height: 1.15;
  overflow-wrap: anywhere;
}

body.has-sidebar main.delivery-run .driver-start-panel > p:not(.delivery-run__eyebrow) {
  color: var(--od-forest);
  font-size: 17px;
  font-weight: 700;
  line-height: 1.35;
}

body.has-sidebar main.delivery-run .driver-start-panel small { color: var(--od-muted) !important; font-size: 12.5px; }

body.has-sidebar main.delivery-run .driver-start-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 60px;
  border-radius: 16px !important;
  background: var(--od-forest) !important;
  color: #fff !important;
  box-shadow: 0 12px 26px rgba(18, 55, 40, .28) !important;
  font-size: 19px;
  font-weight: 800 !important;
}

body.has-sidebar main.delivery-run .driver-start-button::before {
  width: 22px;
  height: 22px;
  background: var(--od-pink);
  content: "";
  -webkit-mask: var(--od-icon-play) center / contain no-repeat;
  mask: var(--od-icon-play) center / contain no-repeat;
}

body.has-sidebar main.delivery-run .delivery-map__status strong { color: var(--od-forest); font-size: 17px; }
body.has-sidebar main.delivery-run .delivery-map__status small { color: var(--od-muted) !important; font-size: 14px; }
body.has-sidebar main.delivery-run .delivery-route-status { color: var(--od-ink-soft); font-size: 13.5px; }
body.has-sidebar main.delivery-run .delivery-route-stats > div { border-color: var(--od-line); border-radius: 14px; background: var(--od-sage); }
body.has-sidebar main.delivery-run .delivery-route-stats span { color: var(--od-berry); letter-spacing: .1em; }
body.has-sidebar main.delivery-run .delivery-route-stats strong { font-size: 20px; }

/* A turn list that only holds a message ("Route steps will appear…") used to squeeze it into
   the 40 px icon column, one word per line. */
body.has-sidebar main.delivery-run .driver-next-turns li:not(:has(> *)) { display: block; padding: 14px 16px; }
body.has-sidebar main.delivery-run .driver-next-turns { border-color: var(--od-line); border-radius: 16px; }
body.has-sidebar main.delivery-run .driver-next-turns li strong { font-size: 15.5px; }

/* Dropoff card: who, where, how to reach them. */
body.has-sidebar main.delivery-run .delivery-stop-card h2 {
  font-family: var(--od-display);
  font-size: 25px;
  line-height: 1.15;
  overflow-wrap: anywhere;
}

body.has-sidebar main.delivery-run .delivery-stop-address,
body.has-sidebar main.delivery-run .driver-dropoff-sheet__address {
  color: var(--od-forest);
  font-size: 20px;
  font-weight: 700;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

body.has-sidebar main.delivery-run .driver-phone-link {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  grid-template-rows: auto auto;
  column-gap: 12px;
  align-items: center;
  min-height: 64px;
  margin: 14px 0 0;
  padding: 10px 16px 10px 10px;
  border: 1px solid var(--od-line);
  border-radius: 16px;
  background: var(--od-sage);
  color: var(--od-forest);
  text-decoration: none;
}

/* A cream phone on a forest tile. */
body.has-sidebar main.delivery-run .driver-phone-link::before {
  grid-row: 1 / span 2;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  content: "";
  background:
    center / 22px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fffdf8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6.5 3h3l1.6 4.2-2.1 1.3a11 11 0 0 0 6.5 6.5l1.3-2.1 4.2 1.6v3a2 2 0 0 1-2 2A16.5 16.5 0 0 1 4.5 5a2 2 0 0 1 2-2Z'/%3E%3C/svg%3E"),
    var(--od-forest);
}

body.has-sidebar main.delivery-run .driver-phone-link span {
  color: var(--od-berry);
  font-size: 11.5px;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}

body.has-sidebar main.delivery-run .driver-phone-link strong { color: var(--od-forest); font-size: 21px; font-weight: 800; line-height: 1.2; }
body.has-sidebar main.delivery-run .driver-phone-link:active { background: #e4ecdd; }

body.has-sidebar main.delivery-run .delivery-instructions {
  border-left-color: var(--od-pink);
  border-radius: 14px;
  background: var(--od-tint);
}

body.has-sidebar main.delivery-run .delivery-instructions span { color: var(--od-berry); }
body.has-sidebar main.delivery-run .delivery-instructions strong { color: var(--od-forest); font-size: 17px; font-weight: 700; white-space: pre-wrap; }

body.has-sidebar main.delivery-run .delivery-run__actions .btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 56px;
  border-radius: 14px !important;
  font-size: 16px !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

body.has-sidebar main.delivery-run .delivery-run__actions .btn::before {
  flex: 0 0 20px;
  width: 20px;
  height: 20px;
  background: currentColor;
  content: "";
  -webkit-mask: var(--od-icon-gps) center / contain no-repeat;
  mask: var(--od-icon-gps) center / contain no-repeat;
}

body.has-sidebar main.delivery-run .delivery-run__actions .delivery-secondary::before { -webkit-mask-image: var(--od-icon-map); mask-image: var(--od-icon-map); }
body.has-sidebar main.delivery-run .delivery-run__actions .delivery-secondary { border: 1px solid var(--od-line-strong) !important; }

body.has-sidebar main.delivery-run .delivery-share-card h2 { font-family: var(--od-display); font-size: 22px; line-height: 1.2; }
body.has-sidebar main.delivery-run .delivery-share-card p { font-size: 15px; line-height: 1.45; }
body.has-sidebar main.delivery-run .delivery-copy-row input { color: var(--od-ink-soft); font-size: 15px; }
body.has-sidebar main.delivery-run .delivery-copy-row button { min-width: 84px; border-radius: 14px !important; font-size: 15px; }

/* "Arrived?" is the last step of the drive: a real button, not a quiet card. */
body.has-sidebar main.delivery-run a.delivery-arrived {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 4px 14px;
  flex-wrap: wrap;
  min-height: 76px;
  padding: 16px 22px;
  border: 0;
  border-radius: 20px;
  background: var(--od-forest);
  color: #fffdf8;
  box-shadow: 0 12px 28px rgba(18, 55, 40, .24);
}

body.has-sidebar main.delivery-run a.delivery-arrived span { color: #ffc2de; font-size: 15px; font-weight: 800; }
body.has-sidebar main.delivery-run a.delivery-arrived strong { color: #fffdf8; font-size: 18px; font-weight: 800; }

/* While driving: the bar under the map and the dropoff sheet. */
body.has-sidebar main.delivery-run .driver-drive-bar__eta strong { font-size: 26px; }
body.has-sidebar main.delivery-run :is(.driver-drive-bar__notes, .driver-drive-bar__arrived) { min-height: 56px; border-radius: 16px; font-size: 16px; }
body.has-sidebar main.delivery-run .driver-dropoff-sheet h2 { font-family: var(--od-display); font-size: 24px; overflow-wrap: anywhere; }
body.has-sidebar main.delivery-run .driver-dropoff-sheet__notes { font-size: 17px; white-space: pre-wrap; }

@media (max-width: 760px) {
  body.has-sidebar main.delivery-run .driver-drive-bar__eta strong { font-size: 22px; }
  body.has-sidebar main.delivery-run :is(.driver-drive-bar__notes, .driver-drive-bar__arrived) { min-height: 52px; padding: 0 14px; font-size: 15px; }
}

@media (max-width: 620px) {
  body.has-sidebar main.delivery-run .delivery-run__back { min-height: 40px; margin: 0 0 6px; font-size: 14px; }
  body.has-sidebar main.delivery-run .delivery-run__hero h1 { font-size: 26px !important; }
  body.has-sidebar main.delivery-run .driver-start-panel > p:not(.delivery-run__eyebrow) { font-size: 16px; }
  body.has-sidebar main.delivery-run .driver-start-button { min-height: 58px; font-size: 18px; }
  body.has-sidebar main.delivery-run .delivery-route-stats strong { font-size: 17px; }
  body.has-sidebar main.delivery-run .delivery-stop-card { padding: 20px 18px; }
  body.has-sidebar main.delivery-run .delivery-stop-card h2 { font-size: 26px; }
  body.has-sidebar main.delivery-run a.delivery-arrived { flex-direction: row; }
}

@media print {
  body.has-sidebar main.order-detail .detail-hero__next { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  body.has-sidebar main.order-detail .photo-thumb.is-new { animation: none; }
  body.has-sidebar main.order-detail .photo-picker__progress i { transition: none; }
}

/* ===== polish-pages.css ===== */
/* Other staff pages and shared chrome: design pass 2026-09. Loaded last in staff.bundle.css.
   Page rules are scoped to "the other staff pages": main.page without [data-live] (the order
   board and the order page carry data-live and have their own sheets) and not the courier
   screen (.delivery-run). Controls keep their places; this sheet changes size, colour,
   spacing and hierarchy. Older layers use !important on cards, buttons, labels and inputs,
   so the same properties need it here too. Colours match polish-board.css / polish-order.css
   and the printed cards: forest text, pink accents, berry small-caps labels, palm for done. */

:root {
  --dfp-forest: #123728;
  --dfp-ink-soft: #3f5248;
  --dfp-muted: #5f6f66;
  --dfp-pink: #ff4fa3;
  --dfp-berry: #b81d68;
  --dfp-palm: #7a8f4a;
  --dfp-tint: #fff3f8;
  --dfp-paper: #fffdf8;
  --dfp-sage: #f1f5ee;
  --dfp-line: rgba(18, 55, 40, .12);
  --dfp-line-strong: rgba(18, 55, 40, .22);
  --dfp-shadow: 0 1px 2px rgba(18, 55, 40, .05), 0 8px 22px rgba(18, 55, 40, .06);
  --dfp-display: "DF Comfortaa", "Trebuchet MS", system-ui, sans-serif;
  --dfp-body: "DF Assistant", Inter, Arial, sans-serif;
  --dfp-danger: #a3312a;
}

/* Screen-reader-only text. It was only defined inside the DoorDash recipe table, so the
   chat composer showed its hidden "Message" label as a large visible heading. */
.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* ---------- Mobile top bar: the current page name as a small berry label ---------- */
.mobile-menu-toggle .mobile-page-context b {
  color: var(--dfp-berry) !important;
  font-size: 11.5px !important;
  font-weight: 800 !important;
  letter-spacing: .1em !important;
  text-transform: uppercase;
}

/* ---------- Sidebar (desktop): with Admin tools the list is taller than the window.
   The scrollbar was hidden, so the lower links looked missing; show a thin one and fit
   more rows on shorter screens. ---------- */
/* The list fades out at the bottom edge, a hint that it scrolls (phones and desktop). */
.side-links {
  -webkit-mask-image: linear-gradient(to bottom, #000 calc(100% - 26px), transparent);
  mask-image: linear-gradient(to bottom, #000 calc(100% - 26px), transparent);
}

.side-tools-menu .side-action {
  width: 100%;
  justify-content: flex-start;
  white-space: nowrap;
}

@media (min-width: 980px) {
  .side-links {
    scrollbar-width: thin !important;
    scrollbar-color: rgba(255, 253, 248, .3) transparent;
  }

  .side-links::-webkit-scrollbar {
    width: 6px !important;
  }

  .side-links::-webkit-scrollbar-thumb {
    border-radius: 999px;
    background: rgba(255, 253, 248, .28);
  }
}

@media (min-width: 980px) and (max-height: 1060px) {
  .side-links a {
    min-height: 40px !important;
    padding-block: 4px !important;
  }

  .side-links a svg {
    width: 29px !important;
    height: 29px !important;
    flex-basis: 29px !important;
    padding: 6px;
  }

  .side-section-label {
    margin: 10px 10px 4px;
  }
}

/* ---------- Mobile top bar: back arrow (views/partials_top.ejs, public/topbar-back.js) ----------
   A separate control left of the menu button. The bar itself (tap = menu) and the edge swipe
   are unchanged; the bar's content only moves right to make room while the arrow shows. */
.topbar-back {
  display: none;
}

@media (max-width: 979px) {
  .topbar-back {
    position: fixed;
    z-index: 61;
    top: calc(env(safe-area-inset-top) + 7px);
    left: 10px;
    display: grid;
    width: 44px;
    height: 44px;
    place-items: center;
    border-radius: 14px;
    color: #b81d68;
    -webkit-tap-highlight-color: transparent;
    text-decoration: none;
  }

  .topbar-back svg {
    width: 36px;
    height: 36px;
    padding: 7px;
    border: 1px solid rgba(184, 29, 104, .14);
    border-radius: 12px;
    background: #fff3f8;
    box-shadow: 0 4px 12px rgba(184, 29, 104, .1);
    fill: none;
    stroke: currentColor;
    stroke-width: 2.4;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: transform 140ms ease, background-color 140ms ease;
  }

  .topbar-back:active svg {
    transform: scale(.94);
    background: #ffe3ef;
  }

  .topbar-back:focus-visible {
    outline: 3px solid rgba(255, 79, 163, .45) !important;
    outline-offset: 0 !important;
  }

  .topbar-back:not([hidden]) + .mobile-menu-toggle {
    padding-left: 62px !important;
  }
}

.topbar-back[hidden],
body.call-ear-mode .topbar-back {
  display: none !important;
}

@media print {
  .topbar-back {
    display: none !important;
  }
}

/* ======================================================================================
   SHARED PAGE KIT (the other staff pages)
   ====================================================================================== */

/* The oldest layer (app.css) colours text and lines with a purple ink (#271f3d), a purple grey
   (#777187) and a brown-grey "green" (#3f3c39). On these pages they follow the brand palette. */
body.has-sidebar main.page:not([data-live]):not(.delivery-run) {
  --ink: #123728;
  --muted: #5f6f66;
  --line: rgba(18, 55, 40, .13);
  --green: #123728;
  --green-soft: #f1f5ee;
}

/* ---------- Page header: one calm card, like the board and the order page ---------- */
body.has-sidebar main.page:not([data-live]):not(.delivery-run) > :is(.hero-line, .detail-hero, .flowers-hero) {
  min-height: 0 !important;
  padding: 20px 22px 18px !important;
  border: 1px solid var(--dfp-line) !important;
  border-radius: 20px !important;
  background:
    radial-gradient(circle at 100% 0, rgba(255, 79, 163, .11), transparent 44%),
    linear-gradient(135deg, #fffdf8, #fff7ef) !important;
  box-shadow: var(--dfp-shadow) !important;
}

body.has-sidebar main.page:not([data-live]):not(.delivery-run) > :is(.hero-line, .detail-hero, .flowers-hero)::after,
body.has-sidebar main.page:not([data-live]):not(.delivery-run) > :is(.hero-line, .detail-hero, .flowers-hero)::before {
  content: none !important;
}

body.has-sidebar main.page:not([data-live]):not(.delivery-run) > :is(.hero-line, .detail-hero, .flowers-hero) h1 {
  margin: 0 0 6px !important;
  font-family: var(--dfp-display) !important;
  font-size: clamp(26px, 3.2vw, 36px) !important;
  letter-spacing: -.01em !important;
  line-height: 1.08 !important;
}

body.has-sidebar main.page:not([data-live]):not(.delivery-run) > :is(.hero-line, .detail-hero, .flowers-hero) :is(p.subtle, div > p:not(.eyebrow)) {
  max-width: 68ch;
  margin-bottom: 0;
  color: var(--dfp-muted) !important;
  font-size: 14.5px !important;
  line-height: 1.45;
}

/* Eyebrow labels: berry small caps everywhere (they were olive on some pages, grey on others). */
body.has-sidebar main.page:not([data-live]):not(.delivery-run) .eyebrow {
  margin-bottom: 4px;
  color: var(--dfp-berry) !important;
  font-family: var(--dfp-body) !important;
  font-size: 11.5px !important;
  font-weight: 800 !important;
  letter-spacing: .12em !important;
  line-height: 1.25 !important;
  text-transform: uppercase;
}

/* ---------- Cards ---------- */
body.has-sidebar main.page:not([data-live]):not(.delivery-run) :is(.card-block, .admin-card, .product-admin-card, .custom-request-admin-card, .reminder-admin-row, .customer-row, .quick-reply-card, .quick-reply-new, .flowers-control-card, .gallery-card, .product-order-panel) {
  border: 1px solid var(--dfp-line) !important;
  border-radius: 18px !important;
  box-shadow: var(--dfp-shadow) !important;
}

/* final-admin-polish.css gives a shadow and a rounded frame to anything whose class merely
   contains "card" - headers, BEM parts and grids too - which drew empty boxes behind a
   product name (Flowers), the name + switch row (Settings), the stat tiles row and the
   Accounting "Purchases to label" heading. Parts and grids are not cards. */
body.has-sidebar main.page:not([data-live]):not(.delivery-run) :is([class*="card__"], [class*="card-head"], [class*="card-title"], [class*="card-badges"], [class*="card-actions"], .card-spend-heading, .card-spend-title, .total-cards, .card-inner, .card-side, .card-pair, .card-foot) {
  box-shadow: none !important;
}

body.has-sidebar main.page:not([data-live]):not(.delivery-run) .total-cards {
  border: 0 !important;
  background: transparent !important;
}

/* The reminders "General QR" line is a note, not a business card with a decorative ring. */
body.has-sidebar main.page:not([data-live]):not(.delivery-run) .business-card-note {
  border: 1px solid rgba(184, 29, 104, .14) !important;
  border-radius: 14px !important;
  background: var(--dfp-tint) !important;
  box-shadow: none !important;
}

body.has-sidebar main.page:not([data-live]):not(.delivery-run) .business-card-note::after {
  content: none !important;
}

body.has-sidebar main.page:not([data-live]):not(.delivery-run) .business-card-note strong {
  color: var(--dfp-berry);
  font-size: 11.5px;
  letter-spacing: .1em;
  text-transform: uppercase;
}

body.has-sidebar main.page:not([data-live]):not(.delivery-run) .business-card-note a {
  color: var(--dfp-forest);
  font-size: 15px;
  font-weight: 700;
  overflow-wrap: anywhere;
}

body.has-sidebar main.page:not([data-live]):not(.delivery-run) .card-block h2,
body.has-sidebar main.page:not([data-live]):not(.delivery-run) :is(.reminder-admin-top, .custom-request-admin-top, .product-admin-top, .quick-replies-section-head, .quick-replies-intro, .comms-history-head, .analytics-card-head) h2 {
  font-family: var(--dfp-display) !important;
  font-size: clamp(19px, 2vw, 22px) !important;
  letter-spacing: -.005em !important;
  line-height: 1.2 !important;
}

/* Secondary text and helper text inside form labels: sentence case, readable. */
body.has-sidebar main.page:not([data-live]):not(.delivery-run) :is(.subtle, .muted, .help-text, .field-help) {
  color: var(--dfp-muted) !important;
}

body.has-sidebar main.page:not([data-live]):not(.delivery-run) label :is(small, .field-hint) {
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

/* ---------- Buttons: one size and shape; the same families as before ---------- */
body.has-sidebar main.page:not([data-live]):not(.delivery-run) :is(.btn, .mini-danger) {
  min-height: 44px !important;
  border-radius: 12px !important;
  font-size: 13px !important;
  letter-spacing: .03em !important;
  line-height: 1.15 !important;
}

body.has-sidebar main.page:not([data-live]):not(.delivery-run) .mini-danger {
  padding: 10px 14px !important;
  font-weight: 800 !important;
  text-transform: uppercase;
}

body.has-sidebar main.page:not([data-live]):not(.delivery-run) :is(.btn, .mini-danger):is(:disabled, [disabled]) {
  opacity: .48;
  box-shadow: none !important;
  cursor: not-allowed;
  filter: saturate(.6);
  transform: none !important;
}

/* "Bestseller" on: a light sun tint like the other on-states, not a heavy dark block. */
body.has-sidebar main.page:not([data-live]):not(.delivery-run) .btn.btn-bestseller {
  color: #6f4a00 !important;
  border: 1px solid rgba(201, 146, 0, .35) !important;
  background: #fff4d6 !important;
  box-shadow: none !important;
}

/* ---------- Inputs ---------- */
body.has-sidebar main.page:not([data-live]):not(.delivery-run) :is(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):not([type="hidden"]), select, textarea) {
  font-weight: 600 !important;
}

/* Typed text was 12-13px in many forms; 15px reads comfortably on the shop computer.
   Dense grids (price book, recipes, arrange list) keep their own size. */
@media (min-width: 761px) {
  body.has-sidebar main.page:not([data-live]):not(.delivery-run) :is(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):not([type="hidden"]), select, textarea):not(:is(.flower-matrix, .flower-recipe-table, .product-order-list, .flower-package-options) *) {
    font-size: 15px !important;
  }
}

body.has-sidebar main.page:not([data-live]):not(.delivery-run) :is(input, textarea)::placeholder {
  font-weight: 500 !important;
}

/* Inputs with a prefix ($, /) are one box; the field inside had its own second border. */
body.has-sidebar main.page:not([data-live]):not(.delivery-run) :is(.money-input, .quick-reply-shortcut-input) {
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  overflow: hidden;
  border: 1px solid rgba(18, 55, 40, .18) !important;
  border-radius: 13px !important;
  background: #fff !important;
}

body.has-sidebar main.page:not([data-live]):not(.delivery-run) :is(.money-input, .quick-reply-shortcut-input):focus-within {
  border-color: var(--dfp-pink) !important;
  box-shadow: 0 0 0 4px rgba(255, 79, 163, .12) !important;
}

body.has-sidebar main.page:not([data-live]):not(.delivery-run) :is(.money-input, .quick-reply-shortcut-input) :is(b, i) {
  padding: 0 2px 0 13px;
  color: var(--dfp-berry);
  font-style: normal;
  font-weight: 800;
}

body.has-sidebar main.page:not([data-live]):not(.delivery-run) :is(.money-input, .quick-reply-shortcut-input) input {
  min-width: 0;
  min-height: 44px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

/* Phones: 16px text so iOS does not zoom the page when a field is tapped. */
@media (max-width: 760px) {
  body.has-sidebar main.page:not([data-live]):not(.delivery-run) :is(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):not([type="hidden"]), select, textarea) {
    font-size: 16px !important;
  }
}

/* ---------- Stat tiles ---------- */
body.has-sidebar main.page:not([data-live]):not(.delivery-run) .total-cards > div {
  border: 1px solid var(--dfp-line) !important;
  border-radius: 16px !important;
  background: #fff !important;
  box-shadow: var(--dfp-shadow) !important;
}

body.has-sidebar main.page:not([data-live]):not(.delivery-run) .total-cards > div > span {
  color: var(--dfp-muted) !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  letter-spacing: .1em !important;
  text-transform: uppercase;
}

body.has-sidebar main.page:not([data-live]):not(.delivery-run) .total-cards > div > strong {
  color: var(--dfp-forest) !important;
  font-family: var(--dfp-display) !important;
  font-variant-numeric: tabular-nums;
}

@media (max-width: 760px) {
  body.has-sidebar main.page:not([data-live]):not(.delivery-run) > :is(.hero-line, .detail-hero, .flowers-hero) {
    padding: 16px 16px 15px !important;
    border-radius: 18px !important;
  }

  body.has-sidebar main.page:not([data-live]):not(.delivery-run) > :is(.hero-line, .detail-hero, .flowers-hero) h1 {
    font-size: 26px !important;
  }

  body.has-sidebar main.page:not([data-live]):not(.delivery-run) > :is(.hero-line, .detail-hero, .flowers-hero) :is(p.subtle, div > p:not(.eyebrow)) {
    font-size: 14px !important;
  }

  /* Header buttons share the row instead of each keeping its own odd width. */
  body.has-sidebar main.page:not([data-live]):not(.delivery-run) > .hero-line :is(.hero-actions, .request-hero-actions) {
    display: flex !important;
    width: 100%;
    flex-wrap: wrap;
    gap: 8px !important;
  }

  body.has-sidebar main.page:not([data-live]):not(.delivery-run) > .hero-line :is(.hero-actions, .request-hero-actions) > :is(.btn, form) {
    flex: 1 1 140px;
    margin: 0;
  }

  body.has-sidebar main.page:not([data-live]):not(.delivery-run) > .hero-line :is(.hero-actions, .request-hero-actions) .btn {
    justify-content: center;
    text-align: center;
  }

  body.has-sidebar main.page:not([data-live]):not(.delivery-run) > .hero-line :is(.hero-actions, .request-hero-actions) > form .btn {
    width: 100%;
  }

  body.has-sidebar main.page:not([data-live]):not(.delivery-run) .card-block {
    padding: 16px !important;
  }

  body.has-sidebar main.page:not([data-live]):not(.delivery-run) .total-cards {
    gap: 8px !important;
  }

  body.has-sidebar main.page:not([data-live]):not(.delivery-run) .total-cards > div {
    padding: 12px 13px !important;
  }

  body.has-sidebar main.page:not([data-live]):not(.delivery-run) .total-cards > div > strong {
    font-size: 22px !important;
    overflow-wrap: anywhere;
  }
}

/* ======================================================================================
   PAGES
   ====================================================================================== */

/* ---------- Sign in and the email code ---------- */
body.auth-page .login-card {
  border: 1px solid var(--dfp-line) !important;
  border-radius: 22px !important;
  background:
    radial-gradient(circle at 100% 0, rgba(255, 79, 163, .09), transparent 42%),
    #fffdf8 !important;
  box-shadow: var(--dfp-shadow) !important;
}

body.auth-page .login-card .login-logo {
  width: auto;
  max-width: 190px;
  height: 46px;
  object-fit: contain;
  object-position: left center;
}

body.auth-page .login-card h1 {
  font-size: clamp(28px, 7vw, 34px) !important;
  line-height: 1.1 !important;
}

body.auth-page .login-card > p:not(.eyebrow) {
  color: var(--dfp-muted) !important;
}

body.auth-page .login-card .eyebrow {
  color: var(--dfp-berry) !important;
  font-size: 11.5px !important;
  letter-spacing: .12em !important;
}

body.auth-page .login-card :is(input, select) {
  font-size: 16px !important;
}

body.auth-page .login-code-help {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  color: var(--dfp-muted);
}

/* "Send a new code" is a quiet second action (it rendered as a dark block with no padding). */
body.auth-page .login-card button.link-button {
  min-height: 44px;
  padding: 10px 14px !important;
  border: 1px solid var(--dfp-line-strong) !important;
  border-radius: 12px !important;
  color: var(--dfp-forest) !important;
  background: #fff !important;
  box-shadow: none !important;
  font-size: 13px !important;
}

body.auth-page .login-card button.link-button:disabled {
  color: var(--dfp-muted) !important;
  background: #f4f4f0 !important;
  cursor: default;
}

body.auth-page .login-card .tiny-link {
  display: inline-flex;
  min-height: 40px;
  align-items: center;
  color: var(--dfp-forest);
  font-weight: 700;
}

/* ---------- Settings: the hidden On/Off checkbox took the full window width, so the whole
   page scrolled sideways on phones (and zoomed out to ~685px). ---------- */
.quick-reply-toggle {
  min-height: 44px;
  cursor: pointer;
}

/* Theme Sync's feature switches had the same full-window-wide hidden checkbox. */
.quick-reply-toggle,
.sync-feature-toggle {
  position: relative;
}

.sync-feature-toggle input:focus-visible + .sync-feature-toggle__switch {
  outline: 3px solid rgba(255, 79, 163, .45);
  outline-offset: 2px;
}

.quick-reply-toggle input,
.sync-feature-toggle input {
  position: absolute !important;
  top: 0;
  left: 0;
  width: 1px !important;
  height: 1px !important;
  min-height: 0 !important;
  margin: 0 !important;
  opacity: 0;
}

.quick-reply-toggle input:focus-visible + span {
  outline: 3px solid rgba(255, 79, 163, .45);
  outline-offset: 2px;
}

body.has-sidebar main.staff-settings-page .quick-replies-intro {
  border-color: var(--dfp-line) !important;
  border-radius: 18px !important;
  background: linear-gradient(135deg, #fffdf8, #fff3f8) !important;
  box-shadow: var(--dfp-shadow) !important;
}

body.has-sidebar main.staff-settings-page .quick-replies-intro-icon {
  color: var(--dfp-berry);
  background: #ffe3ef;
  box-shadow: none;
}

body.has-sidebar main.staff-settings-page .quick-replies-intro p:last-child {
  color: var(--dfp-muted);
  font-size: 14.5px;
}

body.has-sidebar main.staff-settings-page :is(.quick-reply-card, .quick-reply-new) label {
  color: var(--dfp-ink-soft);
  font-size: 11.5px;
  letter-spacing: .08em;
}

body.has-sidebar main.staff-settings-page .quick-reply-new h2 {
  margin: 0 !important;
  font-size: clamp(19px, 2vw, 22px) !important;
}

body.has-sidebar main.staff-settings-page .quick-reply-new .subtle {
  margin: 0;
}

body.has-sidebar main.staff-settings-page .quick-reply-title-field input {
  font-size: 16px !important;
  font-weight: 700 !important;
}

body.has-sidebar main.staff-settings-page .quick-reply-card.is-paused {
  opacity: 1;
  background: #f7f7f3 !important;
}

body.has-sidebar main.staff-settings-page .quick-reply-card.is-paused :is(input, textarea) {
  color: var(--dfp-muted) !important;
}

/* ---------- Chats list ---------- */
body.has-sidebar main.messenger-page .messenger-head-action {
  width: 46px !important;
  height: 46px !important;
}

/* Round icon buttons in the chat headers (the <button> ones were square, the links round). */
body.has-sidebar main :is(.messenger-head-action, .messenger-icon-button, .messenger-send) {
  border-radius: 999px !important;
}

body.has-sidebar main.messenger-page .messenger-chat-row {
  min-height: 72px;
}

body.has-sidebar main.messenger-page .messenger-chat-row.has-unread .messenger-chat-title strong {
  color: var(--dfp-forest);
}

body.has-sidebar main.messenger-page .messenger-chat-preview b {
  min-width: 22px;
  height: 22px;
  color: #fff !important;
  background: var(--dfp-pink) !important;
}

body.has-sidebar main :is(.messenger-avatar) svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* ---------- Chat thread ---------- */
body.has-sidebar main.messenger-thread-page .sms-bubble.is-staff .sms-bubble-copy small {
  color: rgba(255, 253, 248, .74) !important;
}

body.has-sidebar main.messenger-thread-page .sms-bubble-copy small {
  font-weight: 700;
  letter-spacing: .01em;
}

/* The composer is meant to start one line tall; a generic textarea rule made it 96px. */
body.has-sidebar main.messenger-thread-page .messenger-compose textarea {
  min-height: 46px !important;
  max-height: 140px;
  font-weight: 500 !important;
  line-height: 1.35 !important;
}

body.has-sidebar main.messenger-thread-page .messenger-compose {
  align-items: end;
}

/* ---------- Phone ---------- */
body.has-sidebar main.calls-page .phone-console-head {
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

body.has-sidebar main.calls-page .phone-console-head h2 {
  margin: 0 !important;
}

body.has-sidebar main.calls-page .softphone-state {
  flex: 0 0 auto;
  width: auto !important;
  min-width: 0 !important;
  padding: 6px 11px !important;
  border-radius: 999px !important;
  font-size: 11px !important;
  letter-spacing: .08em !important;
}

body.has-sidebar main.calls-page .phone-route-choice strong {
  font-size: 13px !important;
  letter-spacing: .04em !important;
}

body.has-sidebar main.calls-page .phone-route-choice small {
  font-size: 13px !important;
  line-height: 1.4 !important;
}

body.has-sidebar main.calls-page .comms-status-grid {
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)) !important;
}

body.has-sidebar main.calls-page .comms-status-card small {
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

body.has-sidebar main.calls-page .comms-row-context :is(a, span) {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 0 12px !important;
}

body.has-sidebar main.calls-page :is(.df-audio-play, .df-audio-trash) {
  width: 44px !important;
  min-width: 44px !important;
  height: 44px !important;
}

/* ---------- Calendar: month arrows were 32px on phones ---------- */
@media (max-width: 760px) {
  body.has-sidebar main.calendar-page .calendar-toolbar .calendar-month-nav a {
    width: 44px !important;
    min-width: 44px !important;
    height: 44px !important;
    font-size: 20px;
  }

  body.has-sidebar main.calendar-page .calendar-toolbar .calendar-month-nav .today {
    width: auto !important;
    min-width: 70px !important;
    padding: 0 12px !important;
    font-size: 12px !important;
  }
}

.calendar-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  margin: 12px 4px 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: none !important;
  box-shadow: none !important;
  color: var(--dfp-muted);
  font-size: 13px;
  font-weight: 600;
  list-style: none;
}

.calendar-legend li {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

.calendar-legend i {
  width: 14px;
  height: 14px;
  border: 1px solid currentColor;
  border-radius: 5px;
}

/* Same colours as the day chips (.cal-order-exact / -pickup / -standard). */
.calendar-legend .is-exact i { border-color: rgba(139, 97, 189, .45); background: #f2ebfa; }
.calendar-legend .is-pickup i { border-color: rgba(193, 138, 19, .45); background: #fff5d9; }
.calendar-legend .is-standard i { border-color: rgba(255, 79, 163, .4); background: #fff0f7; }

/* ---------- Customers ---------- */
body.has-sidebar main.page:not([data-live]):not(.delivery-run) .customer-main strong {
  color: var(--dfp-forest);
  font-size: 16px;
}

body.has-sidebar main.page:not([data-live]):not(.delivery-run) .customer-main :is(span, small) {
  color: var(--dfp-muted);
  font-size: 13px;
  font-weight: 600;
}

body.has-sidebar main.page:not([data-live]):not(.delivery-run) .customer-avatar {
  color: var(--dfp-berry);
  background: linear-gradient(135deg, #ffe3ef, #fff0df);
}

body.has-sidebar main.page:not([data-live]):not(.delivery-run) .customer-stats span {
  border-color: var(--dfp-line) !important;
  color: var(--dfp-muted);
  background: var(--dfp-paper);
  font-weight: 700;
}

body.has-sidebar main.page:not([data-live]):not(.delivery-run) .customer-stats b {
  color: var(--dfp-forest);
  font-variant-numeric: tabular-nums;
}

@media (max-width: 640px) {
  body.has-sidebar main.page:not([data-live]):not(.delivery-run) .customer-row--with-actions {
    gap: 10px !important;
    padding: 12px !important;
  }

  body.has-sidebar main.page:not([data-live]):not(.delivery-run) .customer-row-link {
    grid-template-columns: 44px minmax(0, 1fr) !important;
    gap: 10px 12px !important;
  }

  body.has-sidebar main.page:not([data-live]):not(.delivery-run) .customer-avatar {
    width: 44px;
    height: 44px;
    border-radius: 14px;
    font-size: 18px;
  }

  body.has-sidebar main.page:not([data-live]):not(.delivery-run) .customer-stats {
    grid-column: 1 / -1;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 6px !important;
  }

  body.has-sidebar main.page:not([data-live]):not(.delivery-run) .customer-stats span {
    padding: 7px 4px !important;
    border-radius: 12px !important;
    font-size: 11px !important;
    text-align: center;
  }

  body.has-sidebar main.page:not([data-live]):not(.delivery-run) .customer-stats b {
    font-size: 14px !important;
    overflow-wrap: anywhere;
  }
}

body.has-sidebar main.page:not([data-live]):not(.delivery-run) .mini-icon-danger {
  width: 42px !important;
  min-width: 42px !important;
  height: 42px !important;
}

/* ---------- Products ---------- */
body.has-sidebar main.page:not([data-live]):not(.delivery-run) .product-admin-facts .stage-pill {
  font-size: 10.5px !important;
}

@media (max-width: 760px) {
  /* Status and prices are facts, not buttons: small flat chips instead of button-sized tiles. */
  body.has-sidebar main.page:not([data-live]):not(.delivery-run) .product-admin-facts {
    display: flex !important;
    flex-wrap: wrap;
    gap: 5px !important;
  }

  body.has-sidebar main.page:not([data-live]):not(.delivery-run) .product-admin-facts > .stage-pill,
  body.has-sidebar main.page:not([data-live]):not(.delivery-run) .product-admin-facts .product-variant-list > span {
    width: auto !important;
    min-height: 26px !important;
    padding: 4px 9px !important;
    border-radius: 999px !important;
    font-size: 11px !important;
    line-height: 1.15 !important;
  }

  body.has-sidebar main.page:not([data-live]):not(.delivery-run) .product-admin-actions :is(.btn, .mini-danger) {
    font-size: 11.5px !important;
    letter-spacing: .02em !important;
  }
}

body.has-sidebar main.page:not([data-live]):not(.delivery-run) :is(.product-image-slot__button, .product-model-slot__button) {
  justify-content: center;
  text-align: center;
}

/* Product name and Sale % share the first cell of the product form; the name stays clean
   and the store shows the sale from the prices. */
.product-name-field {
  display: grid;
  gap: 6px 10px;
  min-width: 0;
  align-content: start;
}
.product-name-field--sale {
  grid-template-columns: minmax(0, 1fr) 92px;
}
.product-name-field > label {
  min-width: 0;
}
.product-sale-field input {
  text-align: center;
}
body.has-sidebar main.page:not([data-live]):not(.delivery-run) .product-sale-hint {
  grid-column: 1 / -1;
  margin: 0;
  color: var(--dfp-muted);
  font-size: 12px;
  line-height: 1.35;
}

@media (max-width: 760px) {
  /* Four full-width 4:5 photo slots made the product form very long on a phone. */
  body.has-sidebar main.page:not([data-live]):not(.delivery-run) .product-form:not(.product-form--balloon) .product-image-slot__preview {
    aspect-ratio: 4 / 3;
  }
}

body.has-sidebar main.page:not([data-live]):not(.delivery-run) .product-admin-download {
  width: 36px !important;
  height: 36px !important;
}

body.has-sidebar main.page:not([data-live]):not(.delivery-run) .product-tag-library-item button {
  display: inline-grid !important;
  width: 30px !important;
  min-width: 30px !important;
  height: 30px !important;
  min-height: 30px !important;
  margin: -4px -6px -4px 0;
  padding: 0 !important;
  place-items: center;
  border: 0 !important;
  border-radius: 999px !important;
  color: var(--dfp-berry) !important;
  background: rgba(184, 29, 104, .08) !important;
  box-shadow: none !important;
  font-size: 16px !important;
}

body.has-sidebar main.page:not([data-live]):not(.delivery-run) .product-tag-panel > h3 {
  margin: 18px 0 8px;
  color: var(--dfp-berry);
  font-family: var(--dfp-body) !important;
  font-size: 11.5px !important;
  font-weight: 800 !important;
  letter-spacing: .12em !important;
  text-transform: uppercase;
}

/* ---------- Reminders ---------- */
body.has-sidebar main.page:not([data-live]):not(.delivery-run) .reminder-admin-grid div {
  border-color: var(--dfp-line) !important;
  background: var(--dfp-paper) !important;
}

body.has-sidebar main.page:not([data-live]):not(.delivery-run) .reminder-admin-actions .btn {
  justify-content: center;
  text-align: center;
}

body.has-sidebar main.page:not([data-live]):not(.delivery-run) .reminder-admin-grid a {
  display: inline-flex;
  min-height: 32px;
  align-items: center;
}

@media (max-width: 640px) {
  body.has-sidebar main.page:not([data-live]):not(.delivery-run) .reminder-admin-top {
    display: flex !important;
    align-items: flex-start;
    justify-content: space-between;
  }

  body.has-sidebar main.page:not([data-live]):not(.delivery-run) .reminder-admin-top .stage-pill {
    flex: 0 0 auto;
    width: auto !important;
  }

  body.has-sidebar main.page:not([data-live]):not(.delivery-run) .reminder-admin-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }

  body.has-sidebar main.page:not([data-live]):not(.delivery-run) .reminder-admin-grid div {
    padding: 9px 11px !important;
  }

  body.has-sidebar main.page:not([data-live]):not(.delivery-run) .reminder-admin-grid strong {
    font-size: 14px !important;
    overflow-wrap: anywhere;
  }
}

/* ---------- Accounting and Sales ---------- */
body.has-sidebar main.page:not([data-live]):not(.delivery-run) .accounting-period-tabs a {
  min-height: 44px !important;
}

/* "Not a business expense" is a quiet second choice, not a dark primary block. */
body.has-sidebar main.page:not([data-live]):not(.delivery-run) button.finance-ignore {
  min-height: 40px;
  padding: 8px 14px !important;
  border: 1px solid var(--dfp-line-strong) !important;
  border-radius: 12px !important;
  color: var(--dfp-ink-soft) !important;
  background: #fff !important;
  box-shadow: none !important;
  font-size: 12.5px !important;
  font-weight: 800 !important;
  text-decoration: none !important;
}

body.has-sidebar main.page:not([data-live]):not(.delivery-run) button.finance-ignore:hover {
  border-color: rgba(163, 49, 40, .3) !important;
  color: var(--dfp-danger) !important;
  background: #fff5f2 !important;
}

body.has-sidebar main.page:not([data-live]):not(.delivery-run) .finance-expense-edit summary,
body.has-sidebar main.page:not([data-live]):not(.delivery-run) .analytics-hero details summary {
  padding-block: 9px;
  cursor: pointer;
}

/* Sales: the "‹ month" / "month ›" links were set in a 22px display face next to a 13px
   "This month". */
body.has-sidebar main.analytics-page .analytics-filter .date-nav a {
  font-size: 13px !important;
  font-weight: 800 !important;
  letter-spacing: .02em;
}

@media (max-width: 760px) {
  body.has-sidebar main.analytics-page .analytics-hero .analytics-actions {
    width: 100%;
  }

  /* Six KPI tiles two per row (net revenue keeps the full width). */
  body.has-sidebar main.analytics-page .analytics-kpis {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }

  body.has-sidebar main.analytics-page .analytics-kpis article {
    min-width: 0;
    min-height: 0 !important;
    padding: 13px 14px !important;
  }

  body.has-sidebar main.analytics-page .analytics-kpis article:first-child {
    grid-column: 1 / -1;
  }

  body.has-sidebar main.analytics-page .analytics-kpis strong {
    font-size: 24px !important;
    overflow-wrap: anywhere;
  }

  body.has-sidebar main.analytics-page .analytics-kpis :is(em, small) {
    font-size: 12px !important;
    line-height: 1.35 !important;
  }
}

body.has-sidebar main.accounting-page .finance-review-form .btn {
  white-space: nowrap;
}

@media (max-width: 760px) {
  body.has-sidebar main.accounting-page .accounting-actions > :is(form, .btn),
  body.has-sidebar main.accounting-page .accounting-actions > form .btn {
    width: 100%;
  }
}

/* ---------- Flowers ---------- */
body.has-sidebar main.flowers-page > .flowers-hero {
  align-items: flex-end;
}

body.has-sidebar main.flowers-page .flowers-hero__legend span {
  border-color: var(--dfp-line) !important;
  background: #fff !important;
}

body.has-sidebar main.flowers-page .card-block h2 {
  font-size: clamp(19px, 2vw, 24px) !important;
}

body.has-sidebar main.flowers-page button.flower-row-delete {
  width: 40px !important;
  min-width: 40px !important;
  height: 40px !important;
  min-height: 40px !important;
  border: 1px solid rgba(163, 49, 40, .2) !important;
  border-radius: 12px !important;
  color: #9b352d !important;
  background: #fff0ed !important;
  box-shadow: none !important;
}

body.has-sidebar main.flowers-page .flower-product-card__copy {
  background: transparent !important;
  box-shadow: none !important;
}

body.has-sidebar main.flowers-page .flower-product-filters button {
  min-width: 56px;
  min-height: 44px !important;
}

body.has-sidebar main.flowers-page [data-remove-package] {
  width: 36px !important;
  min-width: 36px !important;
  height: 36px !important;
  min-height: 36px !important;
  border-radius: 10px !important;
}

body.has-sidebar main.flowers-page .flower-package-source-link {
  display: inline-flex;
  min-height: 30px;
  align-items: center;
}

body.has-sidebar main.flowers-page .procurement-warning a,
body.has-sidebar main.flowers-page .flower-source-note a,
body.has-sidebar main.flowers-page .flower-pdf-download {
  display: inline-flex;
  min-height: 36px;
  align-items: center;
}

body.has-sidebar main.flowers-page .flower-photo-credits summary {
  padding-block: 10px;
  cursor: pointer;
}

@media (max-width: 760px) {
  body.has-sidebar main.flowers-page .flowers-hero__legend {
    width: 100%;
  }
}

@media (max-width: 760px) {
  /* Recipe grid on a phone: a narrower flower column leaves room for two sizes side by side
     (the flower name stays pinned while the sizes scroll). */
  body.has-sidebar main.page:not([data-live]):not(.delivery-run) .flower-recipe-table thead th {
    min-width: 88px !important;
    padding: 10px 8px !important;
  }

  body.has-sidebar main.page:not([data-live]):not(.delivery-run) .flower-recipe-table thead th:first-child {
    min-width: 118px !important;
  }

  body.has-sidebar main.page:not([data-live]):not(.delivery-run) .flower-recipe-table tbody > tr > th {
    max-width: 134px;
    padding: 9px 10px !important;
  }

  body.has-sidebar main.page:not([data-live]):not(.delivery-run) .flower-recipe-table th small {
    font-size: 10.5px !important;
  }

  body.has-sidebar main.page:not([data-live]):not(.delivery-run) .flower-recipe-table input {
    width: 64px !important;
  }
}

/* ---------- Requests ---------- */
body.has-sidebar main.custom-requests-page .custom-request-quick-actions a {
  display: inline-flex;
  min-height: 40px;
  align-items: center;
}

body.has-sidebar main.custom-requests-page .custom-request-message p {
  font-size: 15px !important;
  font-weight: 500 !important;
  line-height: 1.5 !important;
}

body.has-sidebar main.custom-requests-page .custom-request-admin-top p {
  color: var(--dfp-muted) !important;
  font-size: 13.5px !important;
  font-weight: 600 !important;
}

@media (max-width: 760px) {
  /* Counts and request facts two per row instead of one tall card each. */
  body.has-sidebar main.custom-requests-page .request-inbox-summary,
  body.has-sidebar main.custom-requests-page .custom-request-admin-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }

  body.has-sidebar main.custom-requests-page .request-inbox-summary article {
    min-height: 0 !important;
    padding: 12px 13px !important;
  }

  body.has-sidebar main.custom-requests-page .request-inbox-summary strong {
    font-size: 24px !important;
  }

  body.has-sidebar main.custom-requests-page .request-inbox-summary small {
    font-size: 12px !important;
  }

  body.has-sidebar main.custom-requests-page .custom-request-admin-grid div {
    min-width: 0;
    padding: 9px 11px !important;
  }

  body.has-sidebar main.custom-requests-page .custom-request-admin-grid strong {
    font-size: 14px !important;
    overflow-wrap: anywhere;
  }
}

/* ---------- Small links and toggles that were under 40px tall ---------- */
body.has-sidebar main.page:not([data-live]):not(.delivery-run) :is(.recipe-source-photos, .recipe-notes, .recipe-clear) > summary {
  padding-block: 10px;
}

/* ---------- Admin: tool tiles ---------- */
body.has-sidebar main.page:not([data-live]):not(.delivery-run) .admin-card p {
  color: var(--dfp-muted) !important;
  font-size: 14px;
  font-weight: 500 !important;
  line-height: 1.45;
}

body.has-sidebar main.page:not([data-live]):not(.delivery-run) .admin-card .admin-icon {
  color: var(--dfp-berry);
  background: #ffe8f2 !important;
}

/* Same two columns, same order; tiles are only as tall as their text. */
body.has-sidebar main.page:not([data-live]):not(.delivery-run) .admin-grid .admin-card {
  min-height: 0 !important;
  padding: 18px 20px !important;
}

@media (max-width: 760px) {
  /* One line per tool: icon left, name and description right (the same order as before). */
  body.has-sidebar main.page:not([data-live]):not(.delivery-run) .admin-grid {
    gap: 10px !important;
  }

  body.has-sidebar main.page:not([data-live]):not(.delivery-run) .admin-card {
    display: grid !important;
    grid-template-columns: 44px minmax(0, 1fr);
    align-items: start;
    gap: 3px 14px !important;
    min-height: 0 !important;
    padding: 14px 16px !important;
    text-align: left;
  }

  body.has-sidebar main.page:not([data-live]):not(.delivery-run) .admin-card .admin-icon {
    grid-row: 1 / span 2;
    width: 44px !important;
    height: 44px !important;
    margin: 0 !important;
  }

  body.has-sidebar main.page:not([data-live]):not(.delivery-run) .admin-card > strong {
    grid-column: 2;
    margin: 2px 0 0 !important;
    font-size: 16px !important;
  }

  body.has-sidebar main.page:not([data-live]):not(.delivery-run) .admin-card > p {
    grid-column: 2;
    margin: 0 !important;
    font-size: 13.5px;
  }

  body.has-sidebar main.page:not([data-live]):not(.delivery-run) .admin-card > :is(button, .btn) {
    grid-column: 1 / -1;
    width: 100%;
    margin-top: 10px !important;
  }
}

body.has-sidebar main.page:not([data-live]):not(.delivery-run) .gallery-foot a {
  display: inline-flex;
  min-height: 36px;
  align-items: center;
  color: var(--dfp-berry) !important;
  font-weight: 800;
}

body.has-sidebar main.page:not([data-live]):not(.delivery-run) .product-media-delete {
  min-height: 40px !important;
}

@media (max-width: 760px) {
  body.has-sidebar main.product-order-page .product-order-toolbar select {
    width: 100%;
  }
}

body.has-sidebar main.page:not([data-live]):not(.delivery-run) :is(.product-order-buttons button, .product-order-handle) {
  min-width: 40px !important;
  min-height: 40px !important;
}

body.has-sidebar main.page:not([data-live]):not(.delivery-run) .bug-report-actions .icon-danger {
  width: 44px !important;
  min-width: 44px !important;
  height: 44px !important;
}

body.has-sidebar main.page:not([data-live]):not(.delivery-run) .copy-color {
  min-height: 36px;
}

/* Gallery: the second tile says how the order reached the customer when there is no
   delivery photo (views/gallery.ejs). Pick up and "in progress" keep the forest icon. */
.gallery-outcome--handed .gallery-pickup-slot__icon { background: #d42a80; box-shadow: 0 12px 24px rgba(212, 42, 128, .22); }
.gallery-outcome--delivered .gallery-pickup-slot__icon { background: #5e7336; box-shadow: 0 12px 24px rgba(94, 115, 54, .22); }
.gallery-outcome--doordash .gallery-pickup-slot__icon { background: #eb1700; box-shadow: 0 12px 24px rgba(235, 23, 0, .2); }
.gallery-outcome--cancelled .gallery-pickup-slot__icon { background: #a3312a; box-shadow: none; }
.gallery-outcome--cancelled { filter: saturate(.6); }
.gallery-outcome--progress .gallery-pickup-slot__content > span:last-child { color: #8a6a1f; }
/* Courier route (/route, owner 2026-10): tick the day's deliveries, Google orders them, the
   stops list has the arrival time, Navigate, Call and the order. */
body.has-sidebar main.route-page .route-hero { align-items: flex-start; }
body.has-sidebar main.route-page .route-pick__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
body.has-sidebar main.route-page .route-pick__head h2 { margin: 0; }
body.has-sidebar main.route-page .route-pick__quick { display: flex; gap: 6px; }
body.has-sidebar main.route-page .route-pick__quick button {
  width: auto;
  min-height: 34px;
  margin: 0;
  padding: 6px 12px !important;
  border: 1px solid var(--dfp-line-strong) !important;
  border-radius: 999px !important;
  color: var(--dfp-forest);
  background: #fff !important;
  font-size: 13px !important;
  font-weight: 800;
  text-align: center;
}
body.has-sidebar main.route-page .route-pick__list { display: grid; gap: 8px; }
body.has-sidebar main.route-page .route-pick__row {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  padding: 10px 12px;
  border: 1px solid var(--dfp-line);
  border-radius: 14px;
  background: var(--dfp-paper);
  text-transform: none;
  letter-spacing: 0;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
}
body.has-sidebar main.route-page .route-pick__row input { width: 20px; height: 20px; accent-color: var(--dfp-pink); }
body.has-sidebar main.route-page .route-pick__row.is-done { opacity: .55; cursor: default; }
body.has-sidebar main.route-page .route-pick__main { display: grid; gap: 2px; min-width: 0; }
body.has-sidebar main.route-page .route-pick__main strong { color: var(--dfp-forest); font: 700 15px/1.25 var(--dfp-display); }
body.has-sidebar main.route-page .route-pick__main strong small { color: var(--dfp-muted); font: 800 12px/1 var(--dfp-body); }
body.has-sidebar main.route-page .route-pick__main span { overflow: hidden; color: var(--dfp-ink-soft); font-weight: 600; white-space: nowrap; text-overflow: ellipsis; }
body.has-sidebar main.route-page .route-pick__side { display: grid; justify-items: end; gap: 3px; }
body.has-sidebar main.route-page .route-pick__side em { color: var(--dfp-berry); font-size: 12px; font-style: normal; font-weight: 800; white-space: nowrap; }
body.has-sidebar main.route-page .route-pick__side small { color: var(--dfp-muted); font-size: 12px; font-weight: 700; white-space: nowrap; }
body.has-sidebar main.route-page .route-start { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 14px 0 12px; }
body.has-sidebar main.route-page .route-start label { display: inline-flex; align-items: center; gap: 8px; text-transform: none; letter-spacing: 0; font-size: 14px; font-weight: 700; color: var(--dfp-forest); }
body.has-sidebar main.route-page .route-start input { width: 18px; height: 18px; accent-color: var(--dfp-pink); }
body.has-sidebar main.route-page .route-plan { width: 100%; min-height: 50px; }
body.has-sidebar main.route-page .route-error { margin: 10px 0 0; color: var(--dfp-danger); font-weight: 800; }
body.has-sidebar main.route-page .route-result__head h2 { margin: 0 0 4px; }
body.has-sidebar main.route-page .route-result__links { display: grid; gap: 8px; margin: 12px 0 16px; }
body.has-sidebar main.route-page .route-open { width: 100%; min-height: 48px; display: inline-flex; align-items: center; justify-content: center; }
body.has-sidebar main.route-page .route-stops { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
body.has-sidebar main.route-page .route-stop { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 12px; padding: 12px; border: 1px solid var(--dfp-line); border-radius: 16px; background: #fff; }
body.has-sidebar main.route-page .route-stop__number { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; color: #fff; background: var(--dfp-forest); font: 700 15px/1 var(--dfp-display); }
body.has-sidebar main.route-page .route-stop__body { display: grid; gap: 4px; min-width: 0; }
body.has-sidebar main.route-page .route-stop__body strong { color: var(--dfp-forest); font: 700 16px/1.25 var(--dfp-display); }
body.has-sidebar main.route-page .route-stop__body strong small { color: var(--dfp-muted); font: 800 12px/1 var(--dfp-body); }
body.has-sidebar main.route-page .route-stop__address { color: var(--dfp-ink-soft); font-size: 14px; font-weight: 600; }
body.has-sidebar main.route-page .route-stop__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 13px; }
body.has-sidebar main.route-page .route-stop__eta { color: var(--dfp-forest); font-weight: 900; }
body.has-sidebar main.route-page .route-stop__late { color: var(--dfp-danger); font-style: normal; font-weight: 800; }
body.has-sidebar main.route-page .route-stop__window { color: var(--dfp-berry); font-weight: 800; }
body.has-sidebar main.route-page .route-stop__note { padding: 6px 9px; border-radius: 10px; color: #87631e; background: #fff7d8; font-size: 13px; font-weight: 700; }
body.has-sidebar main.route-page .route-stop__actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 6px; }
body.has-sidebar main.route-page .route-stop__actions .btn { min-height: 38px; padding: 8px 14px; }
