:root {
    --navy: #1b2a4a;
    --navy-dark: #11192e;
    --gold: #b88a2e;
    --gold-light: #d9b463;
    --bg: #f6f5f2;
    --card: #ffffff;
    --text: #1f2430;
    --muted: #6b7280;
    --border: #e3e1da;
    --danger: #b3261e;
    --success: #2e7d32;
}

* { box-sizing: border-box; }

body {
    margin: 0;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    background: var(--bg);
    color: var(--text);
    line-height: 1.5;
}

a { color: var(--navy); }

.login-wrap {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(160deg, var(--navy) 0%, var(--navy-dark) 100%);
}

.login-card {
    background: var(--card);
    padding: 40px 36px;
    border-radius: 10px;
    box-shadow: 0 20px 50px rgba(0,0,0,.35);
    width: 100%;
    max-width: 360px;
}

.login-card h1 {
    font-size: 1.3rem;
    margin: 0 0 4px;
    color: var(--navy);
}

.login-card p.sub {
    margin: 0 0 24px;
    color: var(--muted);
    font-size: .9rem;
}

.login-card label {
    display: block;
    font-size: .85rem;
    font-weight: 600;
    margin-bottom: 6px;
    color: var(--navy);
}

.login-card input[type=text],
.login-card input[type=password] {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid var(--border);
    border-radius: 6px;
    margin-bottom: 18px;
    font-size: 1rem;
}

.btn {
    display: inline-block;
    background: var(--navy);
    color: #fff;
    border: none;
    padding: 10px 18px;
    border-radius: 6px;
    font-size: .95rem;
    cursor: pointer;
    text-decoration: none;
}
.btn:hover { background: var(--navy-dark); }
.btn-gold { background: var(--gold); color: #2a1f00; }
.btn-gold:hover { background: var(--gold-light); }
.btn-danger { background: var(--danger); }
.btn-secondary { background: #fff; color: var(--navy); border: 1px solid var(--border); }
.btn-block { width: 100%; text-align: center; }
.btn-small { padding: 5px 10px; font-size: .8rem; }

.error-banner {
    background: #fdecea;
    color: var(--danger);
    border: 1px solid #f5c6c2;
    padding: 10px 14px;
    border-radius: 6px;
    margin-bottom: 18px;
    font-size: .88rem;
}

header.topbar {
    background: var(--navy);
    color: #fff;
    padding: 14px 28px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
/* Test instance (Lazarus): red nav so the environment is unmistakable at a
   glance, no matter what page you're on or how far you've scrolled. */
header.topbar.topbar-test {
    background: #b00020;
    box-shadow: inset 0 -3px 0 #8a0018;
}
header.topbar.topbar-test .brand span { color: #ffd9d9; }
header.topbar .brand { font-weight: 700; letter-spacing: .02em; }
header.topbar .brand span { color: var(--gold-light); }
header.topbar nav a {
    color: #d8dcea;
    text-decoration: none;
    margin-left: 18px;
    font-size: .9rem;
}
header.topbar nav a:hover { color: #fff; }

main {
    max-width: 1600px;
    margin: 0 auto;
    padding: 28px;
}

.flash { padding: 10px 14px; border-radius: 6px; margin-bottom: 16px; font-size: .9rem; }
.flash a { font-weight: 600; text-decoration: underline; color: inherit; }
.flash-success { background: #e9f6ea; color: var(--success); border: 1px solid #c5e6c8; }
.flash-error { background: #fdecea; color: var(--danger); border: 1px solid #f5c6c2; }
.flash-info { background: #eef1f8; color: var(--navy); border: 1px solid #d6dcec; }
.flash-warning { background: #fff3cd; color: #5a4400; border: 1px solid #e0b94d; font-weight: 600; }

table { width: 100%; border-collapse: collapse; background: var(--card); border-radius: 8px; overflow: hidden; }
th, td { text-align: left; padding: 10px 14px; border-bottom: 1px solid var(--border); font-size: .9rem; vertical-align: top; }
th { background: #efeee9; color: var(--navy); font-weight: 600; }
tr:last-child td { border-bottom: none; }

.card { background: var(--card); border-radius: 8px; padding: 20px; margin-bottom: 20px; border: 1px solid var(--border); }
.card h2 { margin-top: 0; color: var(--navy); font-size: 1.1rem; }

/* v4.18.7 -- THE PILLS DID NOT LOOK LIKE CONTROLS.
   Owner: "the search pills need to be visually improved."
   A flat grey lozenge with no border and no hover reads as a label, so a row of
   filters looked like a row of tags — and the selected one was distinguishable
   only by an inline background set at each call site. Now: a real edge, a hover
   that moves, and a pressed state that is unmistakable. The inline
   background:#333;color:#fff the pages already set for "active" still wins,
   because it is applied after this and the pages were not touched. */
.tag-pill {
  display: inline-block;
  background: #f4f2ed;
  color: var(--navy);
  border: 1px solid #ddd8cd;
  padding: 4px 11px;
  border-radius: 999px;
  font-size: .78rem;
  line-height: 1.35;
  margin: 2px 3px 2px 0;
  text-decoration: none;
  transition: background .12s ease, border-color .12s ease, transform .08s ease;
}
a.tag-pill:hover, button.tag-pill:hover {
  background: #ece7db;
  border-color: #c3b795;
  transform: translateY(-1px);
}
a.tag-pill:active, button.tag-pill:active { transform: translateY(0); }
/* The pages mark the ACTIVE filter with an inline dark background. Without this
   the selected pill kept a pale border and read as a dark chip in a light frame. */
.tag-pill[style*="#333"] { border-color: #333; }
.tag-pill.gold { background: #fbeed3; color: #6e4e0c; }

.badge { display: inline-block; padding: 2px 8px; border-radius: 10px; font-size: .72rem; font-weight: 600; text-transform: uppercase; letter-spacing: .03em; }
.badge-pending { background: #eef1f8; color: var(--navy); }
.badge-approved { background: #fff3da; color: #7a5400; }
.badge-applied { background: #e9f6ea; color: var(--success); }
.badge-rejected { background: #f4f4f4; color: var(--muted); }
/* v2.72.0 -- print-quality verdicts (per-size art slots). Distinct from the
   workflow badges above: these grade how far Printify must upscale art to
   fill a print area, so 'bad' must read as a real defect, not a grey nothing. */
.badge-quality-ok { background: #e9f6ea; color: var(--success); }
.badge-quality-warn { background: #fff3cd; color: #5a4400; }
.badge-quality-bad { background: #fdecea; color: var(--danger); }

/* Sync job status pills — run_jobs.php / job_detail.php */
.tag-pill.status-pending { background: #eef1f8; color: var(--navy); }
.tag-pill.status-running { background: #fff3da; color: #7a5400; }
.tag-pill.status-succeeded { background: #e9f6ea; color: var(--success); }
.tag-pill.status-failed { background: #fbe4e1; color: #a33; }
.tag-pill.status-blocked { background: #f0f0f0; color: #555; }
.tag-pill.status-needs_review { background: #fde8c8; color: #8a4b00; font-weight: 600; }
.tag-pill.status-cancelled { background: #edf0f3; color: #58616b; }

/* v4.44.7 -- Sync Jobs is a table on desktop and complete job cards on phones.
   The former 980px minimum width made the owner swipe between identity and error
   columns, so no mobile viewport could show one actionable job as a unit. */
.sync-job-help { flex: 1 1 100%; font-size: .74rem; }
.sync-job-help summary { cursor: pointer; font-weight: 600; }
.sync-job-help p { margin: 6px 0 0; }
.sync-jobs-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.sync-jobs-table { width: 100%; min-width: 980px; }
.sync-job-created { font-size: .8rem; }
.sync-job-error { font-size: .78rem; max-width: 280px; overflow-wrap: anywhere; }
.sync-job-type { overflow-wrap: anywhere; }

@media (max-width: 760px) {
    .sync-jobs-table-wrap { overflow: visible; }
    .sync-jobs-table,
    .sync-jobs-table tbody { display: block; width: 100%; min-width: 0; }
    .sync-jobs-table thead { display: none; }
    .sync-jobs-table tr {
        display: block;
        margin: 0 0 12px;
        padding: 10px 12px;
        border: 1px solid var(--border);
        border-radius: 8px;
        background: #fff;
    }
    .sync-jobs-table td {
        display: grid;
        grid-template-columns: 6.25rem minmax(0, 1fr);
        gap: 10px;
        width: auto;
        max-width: none;
        padding: 7px 0;
        border: 0;
        border-bottom: 1px solid var(--border);
        text-align: left;
        overflow-wrap: anywhere;
    }
    .sync-jobs-table td::before {
        content: attr(data-label);
        color: var(--navy);
        font-size: .72rem;
        font-weight: 700;
        letter-spacing: .02em;
        text-transform: uppercase;
    }
    .sync-jobs-table td:last-child { border-bottom: 0; }
    .sync-jobs-table .sync-job-select {
        display: flex;
        align-items: center;
        justify-content: flex-end;
        min-height: 26px;
    }
    .sync-jobs-table .sync-job-select::before {
        content: "Select job";
        margin-right: auto;
    }
    .sync-jobs-table .sync-job-type { font-size: .8rem; }
    .sync-jobs-table .sync-job-created,
    .sync-jobs-table .sync-job-error { font-size: .78rem; }
    .sync-jobs-table .sync-job-actions { display: block; }
    .sync-jobs-table .sync-job-actions::before {
        display: block;
        margin-bottom: 8px;
    }
    .sync-jobs-table .sync-job-actions form { display: inline-block !important; margin: 4px 4px 0 0; }
    .sync-jobs-table .sync-job-actions > a { display: inline-block; margin: 4px 6px 4px 0; }
}

.diff-old { color: var(--danger); text-decoration: line-through; opacity: .75; }
.diff-new { color: var(--success); font-weight: 600; }

.toolbar { display: flex; gap: 10px; align-items: center; margin-bottom: 18px; flex-wrap: wrap; }

.muted { color: var(--muted); font-size: .85rem; }

footer.sitefooter {
    text-align: center;
    color: var(--muted);
    font-size: .78rem;
    padding: 30px 20px 40px;
}

.cf-turnstile { margin-bottom: 18px; }

.checkbox-row { display: flex; align-items: flex-start; gap: 8px; padding: 8px 0; border-bottom: 1px solid var(--border); }
.checkbox-row:last-child { border-bottom: none; }

input[type=text], input[type=number], select, textarea {
    padding: 8px 10px;
    border: 1px solid var(--border);
    border-radius: 6px;
    font-size: .9rem;
    width: 100%;
}

.form-row { margin-bottom: 16px; max-width: 420px; }
.form-row label { display: block; font-weight: 600; font-size: .85rem; margin-bottom: 5px; color: var(--navy); }
.form-row .hint { color: var(--muted); font-size: .78rem; margin-top: 4px; }

.inline-meta-form { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.inline-meta-form .meta-input-text { width: 160px; padding: 5px 8px; font-size: .82rem; }
.inline-meta-form .meta-input-number { width: 70px; padding: 5px 8px; font-size: .82rem; }

/* ===================================================================
   v1.4 additions
   =================================================================== */

/* Generic table/utility helpers used by the new pages */
table.compact th, table.compact td { padding: 6px 10px; font-size: 0.92rem; }
.nowrap { white-space: nowrap; }

/* Filter rows (dashboard, cross-reference, audit log, discounts) */
.filter-row { display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-end; }
.filter-row label { display: flex; flex-direction: column; font-size: 0.85rem; color: #555; gap: 3px; }
.filter-row select, .filter-row input { padding: 6px 8px; }
.filter-presets { display: inline-flex; gap: 6px; align-items: center; }

/* Shop niche-composition bar on the dashboard */
.health-bar { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }

/* Health page card grid */
.health-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; }
.health-grid .card { margin: 0; }
.health-grid h3 { margin-top: 0; }

/* De-emphasized out-of-scope rows */
tr.row-muted { opacity: 0.55; }
tr.row-muted:hover { opacity: 1; }

/* Recommended-keeper highlight in duplicate clusters */
tr.row-keeper { background: #fff8e1; }

/* Tag conflict highlighting on the review page */
.tag-conflict { background: #fde0e0 !important; color: #a12020 !important; text-decoration: line-through; }

/* Inline niche-fit dropdown on dashboard rows */
.niche-select { font-size: 0.8rem; padding: 2px 4px; }

/* Inline SVG sparklines */
.sparkline { display: inline-block; vertical-align: middle; }

/* Seasonal calendar + banners */
.season-card { border-left: 5px solid #ccc; }
.season-green  { border-left-color: #2e7d32; }
.season-amber  { border-left-color: #f5a623; }
.season-red    { border-left-color: #c0392b; }
.season-banner { background: #f4f8fb; border: 1px solid #d6e4ef; display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }

/* AI diagnosis panel */
.diagnosis { background: #f4f8fb; border-left: 5px solid #1b6ca8; }

/* Review-page action row */
.action-row { display: flex; gap: 8px; margin-top: 10px; }

/* Section opportunity bars on the health page */
.oppbar { border-radius: 2px; }

/* Pagination on the audit log */
.pagination { display: flex; gap: 12px; align-items: center; margin-top: 14px; }

/* Gold tag pills (suggested tags) */
.tag-pill.gold { background: #f5e7c4; border-color: #d9b96a; }

/* v1.5 reconciliation */
.orphan-card { background: #fafafa; }
.orphan-head { display: flex; gap: 14px; align-items: center; margin-bottom: 10px; }
.orphan-thumb { width: 64px; height: 64px; object-fit: cover; border-radius: 6px; border: 1px solid #ddd; }
.orphan-actions { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.orphan-actions label { font-size: 0.85rem; color: #555; }

/* v1.6.1 Etsy-side match dropdown */
.match-select { max-width: 280px; font-size: 0.85rem; padding: 3px 5px; }

/* Bulk select toolbar */
.bulk-toolbar {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 8px 12px;
    background: #f4f4f2;
    border: 1px solid #ddd;
    border-radius: 6px;
    margin-bottom: 10px;
    flex-wrap: wrap;
}

/* Copyable Printify product ID chip */
.printify-id {
    font-size: 0.78rem;
    color: #888;
    font-family: monospace;
    background: #f0f0ee;
    border-radius: 3px;
    padding: 1px 4px;
    display: inline-block;
    margin-top: 2px;
}
.printify-id:hover { background: #e0e0dd; color: #444; }

/* SEO tab */
.seo-product-card { background: #fafaf8; }
.seo-field-block { margin-bottom: 14px; }
.seo-compare { display: flex; gap: 12px; align-items: flex-start; flex-wrap: wrap; }
.seo-current { flex: 1; min-width: 180px; opacity: 0.7; }
.seo-suggested { flex: 2; min-width: 220px; }
.seo-arrow { font-size: 1.4rem; color: #c0a060; padding-top: 20px; flex-shrink: 0; }
.seo-label { font-size: 0.78rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; color: #777; display: block; margin-bottom: 4px; }
.seo-value { font-size: 0.88rem; background: #f0f0ed; border-radius: 4px; padding: 6px 8px; }
.seo-desc-preview { font-size: 0.82rem; max-height: 80px; overflow: hidden; }
.seo-edit-field { width: 100%; box-sizing: border-box; font-size: 0.88rem; border: 1px solid #c8b87a; border-radius: 4px; padding: 6px 8px; background: #fffef8; }
.seo-edit-field:focus { outline: 2px solid #c0a060; border-color: #c0a060; }
.seo-tags { display: flex; flex-wrap: wrap; gap: 4px; }
.tag-chip { background: #e8e0d0; border-radius: 12px; padding: 2px 8px; font-size: 0.78rem; }

/* Backup tab */
.backup-entry-card { background: #fafaf8; margin-bottom: 12px; }
.backup-diff-table td { vertical-align: top; padding: 6px 8px; font-size: 0.85rem; }
.backup-current { background: #fff8f8; color: #666; }
.backup-restore { background: #f8fff8; color: #2a5a2a; }

/* Manual-step warning banner (free shipping toggle, discount removal) */
.manual-step-banner {
    background: #fff3cd;
    border: 1px solid #e0b94d;
    border-left: 5px solid #c08a1a;
    border-radius: 6px;
    padding: 10px 14px;
    margin-bottom: 14px;
    font-size: 0.9rem;
    color: #5a4400;
}

/* Designs/Groupings redesigned layout */
.designs-layout { display: flex; gap: 24px; align-items: flex-start; }
.designs-sidebar { width: 260px; flex-shrink: 0; position: sticky; top: 12px; }
.designs-main { flex: 1; min-width: 0; }

.design-list { list-style: none; padding: 0; margin: 0; border: 1px solid #e2ddd0; border-radius: 8px; overflow: hidden; }
.design-list li { border-bottom: 1px solid #ece7da; }
.design-list li:last-child { border-bottom: none; }
.design-list li a {
    display: flex; align-items: center; gap: 8px;
    padding: 8px 10px; text-decoration: none; color: inherit;
}
.design-list li.active a { background: #f4ecd8; font-weight: 600; }
.design-list li a:hover { background: #faf6ec; }
.design-list-thumb { width: 24px; height: 24px; border-radius: 4px; object-fit: cover; flex-shrink: 0; }
.design-list-thumb-empty { background: #e6e0d0; display: inline-block; }
.design-list-name { flex: 1; font-size: 0.9rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.design-list-count { font-size: 0.78rem; }

.designs-tabs {
    display: flex; gap: 2px; margin-bottom: 14px; border-bottom: 2px solid #e2ddd0;
}
.designs-tabs a {
    padding: 8px 14px; text-decoration: none; color: #777; font-size: 0.88rem;
    border-bottom: 2px solid transparent; margin-bottom: -2px;
}
.designs-tabs a.active { color: #8a6d1a; border-bottom-color: #c0a060; font-weight: 600; }
.designs-tabs a:hover { color: #5a4400; }

@media (max-width: 800px) {
    .designs-layout { flex-direction: column; }
    .designs-sidebar { width: 100%; position: static; }
}

/* Hero Images tab */
.hero-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 14px;
}
.hero-card { display: flex; gap: 10px; padding: 10px; }
.hero-current { flex-shrink: 0; display: flex; flex-direction: column; gap: 4px; align-items: center; }
.hero-thumb { width: 90px; height: 90px; object-fit: cover; border-radius: 6px; border: 1px solid #ddd; }
.hero-thumb-empty {
    display: flex; align-items: center; justify-content: center;
    background: #f0f0ed; color: #999; font-size: 0.72rem; text-align: center;
}
.hero-info { flex: 1; min-width: 0; }
.hero-generated { margin-top: 8px; padding-top: 8px; border-top: 1px dashed #ddd; }

/* Dashboard last-visited and today-touched row highlights */
tr.row-last-visited td {
    background: #d4edda !important;
    border-top: 2px solid #28a745 !important;
    border-bottom: 2px solid #28a745 !important;
}
tr.row-last-visited td:first-child {
    border-left: 4px solid #28a745 !important;
}
tr.row-last-visited td:last-child {
    border-right: 2px solid #28a745 !important;
}
tr.row-touched-today td {
    background: #fffde8 !important;
    border-top: 1px solid #f0c040 !important;
    border-bottom: 1px solid #f0c040 !important;
}
tr.row-touched-today td:first-child {
    border-left: 3px solid #f0c040 !important;
}

/* =====================================================================
   v2.84.0 — THE MOBILE SHELL
   =====================================================================
   Until this release the entire stylesheet had exactly ONE media query,
   and it was for the Designs sidebar — on a tool driven from a phone.
   Everything below is presentation only: no page's behaviour changes,
   and every desktop rule above is left exactly as it was.

   Two deliberate scoping choices:
     - Layout changes are gated on max-width, so a desktop browser is
       byte-for-byte unaffected.
     - Touch-target changes are gated on `pointer: coarse`, NOT on width.
       A narrow desktop window has a mouse and should keep the dense rows;
       a phone needs 44px whatever its width reports.
   ===================================================================== */

/* --- Horizontal table scroll -----------------------------------------
   Applied by the runtime wrapper in includes/partials/footer.php, which
   wraps every <main> table on load. Done there rather than by hand
   because there are 114 <table> tags across 56 files: one edit that
   cannot break a page beats 114 that can. A table inside this scrolls
   sideways INSIDE its own box, so the page itself never scrolls
   sideways — the thing that makes a 16-column table usable on a phone. */
.table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border-radius: 8px;
    /* Hint that there is more to the right, without a scrollbar to see. */
    background:
        linear-gradient(to right, var(--card) 30%, rgba(255,255,255,0)),
        linear-gradient(to right, rgba(255,255,255,0), var(--card) 70%) 100% 0,
        radial-gradient(farthest-side at 0 50%, rgba(27,42,74,.18), rgba(0,0,0,0)),
        radial-gradient(farthest-side at 100% 50%, rgba(27,42,74,.18), rgba(0,0,0,0)) 100% 0;
    background-repeat: no-repeat;
    background-size: 40px 100%, 40px 100%, 14px 100%, 14px 100%;
    background-attachment: local, local, scroll, scroll;
}
.table-wrap > table { border-radius: 0; }

/* Sticky column headers — a 16-column table you are scrolling sideways
   is unreadable without them. */
table thead th {
    position: sticky;
    top: 0;
    z-index: 2;
}

/* --- Touch targets ---------------------------------------------------
   .btn-small is 5px/10px padding ≈ 24px tall, and it is the class on
   nearly every row action in the app (Requeue, Force Cancel, every
   Gallery action). 44px is the floor for a thumb. */
@media (pointer: coarse) {
    .btn,
    .btn-small,
    button,
    input[type="submit"] {
        min-height: 44px;
    }
    .btn-small {
        padding: 10px 14px;
        font-size: .85rem;
    }
    input[type="checkbox"],
    input[type="radio"] {
        width: 22px;
        height: 22px;
    }
    /* 16px prevents iOS Safari from zooming the viewport on focus — the
       single most disorienting thing a form can do on a phone. */
    input[type="text"], input[type="search"], input[type="password"],
    input[type="number"], input[type="url"], select, textarea {
        font-size: 16px;
        min-height: 44px;
    }
    textarea { min-height: 88px; }
    .filter-row select, .filter-row input { min-height: 44px; }
    /* Row action clusters get breathing room so neighbouring buttons
       aren't a coin flip under a fingertip. */
    td .btn-small { margin: 2px 0; }
}

/* --- The shell at phone width ---------------------------------------- */
@media (max-width: 800px) {
    main {
        padding: 14px;
    }
    .card {
        padding: 14px;
        margin-bottom: 14px;
    }
    h1 { font-size: 1.4rem; }
    .card h2 { font-size: 1rem; }

    /* Filters stack full-width instead of squeezing onto one line. */
    .filter-row { flex-direction: column; align-items: stretch; gap: 10px; }
    .filter-row label { width: 100%; }
    .filter-row select, .filter-row input { width: 100%; }
    .filter-presets { flex-wrap: wrap; }

    /* Long-form comparison panes stack rather than fight for 390px. */
    .seo-current, .seo-suggested { flex: 1 1 100%; min-width: 0; }

    table th, table td { padding: 8px 10px; font-size: .85rem; }

    footer.sitefooter { padding: 20px 14px 28px; }
}


/* v4.30.0 — Unified Panel Review / LifecycleTracker.
   Warm operational cards, evidence first, and phone-safe regions. */
.panel-review {
    --panel-tomato: #c94f3d;
    --panel-oven: #d9942f;
    --panel-dough: #fbf4e8;
    --panel-crust: #ead8bd;
    --panel-green: #3f7c4a;
    --panel-violet: #6757a8;
    scroll-margin-top: 16px;
    background: linear-gradient(180deg, #fffdfa 0%, #fff 38%);
    border-color: var(--panel-crust);
}
.panel-review__heading,
.panel-review__toolbar,
.panel-stage-tools__heading,
.panel-quality-acceptance,
.panel-surface__header,
.panel-region__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}
.panel-review__heading h3 { margin: 0; color: var(--navy); }
.panel-review__eyebrow {
    margin: 0 0 2px;
    color: var(--panel-tomato);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.panel-review__mode {
    background: #fff1dc;
    border: 1px solid #e6bd7f;
    border-radius: 999px;
    color: #74440f;
    font-size: .76rem;
    font-weight: 700;
    padding: 5px 10px;
}
.lifecycle-tracker {
    display: grid;
    grid-template-columns: repeat(6, minmax(120px, 1fr));
    gap: 6px;
    margin: 16px 0 12px;
    overflow-x: auto;
    padding-bottom: 3px;
}
.lifecycle-step {
    position: relative;
    min-width: 120px;
    padding: 9px 10px 9px 30px;
    border: 1px solid #e4ded4;
    border-radius: 8px;
    background: #f8f6f2;
    color: #746f67;
    font-size: .72rem;
    font-weight: 700;
    white-space: nowrap;
}
.lifecycle-step__dot {
    position: absolute;
    left: 10px;
    top: 50%;
    width: 11px;
    height: 11px;
    border-radius: 50%;
    transform: translateY(-50%);
    background: #b9b4aa;
    box-shadow: 0 0 0 3px #ebe8e1;
}
.lifecycle-step--done { background: #edf7ee; border-color: #b9d8bd; color: #285e31; }
.lifecycle-step--done .lifecycle-step__dot { background: var(--panel-green); box-shadow: 0 0 0 3px #d9ecdc; }
.lifecycle-step--current { background: #fff0eb; border-color: #e4a99c; color: #863223; }
.lifecycle-step--current .lifecycle-step__dot { background: var(--panel-tomato); box-shadow: 0 0 0 3px #f6d7d0; }
.lifecycle-step--attention { background: #fff6df; border-color: #e6c777; color: #6f4a08; }
.lifecycle-step--attention .lifecycle-step__dot { background: var(--panel-oven); box-shadow: 0 0 0 3px #f5e7bd; }
.panel-review__summary {
    display: grid;
    grid-template-columns: repeat(5, minmax(100px, 1fr));
    gap: 8px;
    margin: 10px 0;
}
.panel-review__summary > div {
    background: var(--panel-dough);
    border: 1px solid var(--panel-crust);
    border-radius: 8px;
    padding: 8px 10px;
}
.panel-review__summary strong { display: block; color: var(--navy); font-size: 1.05rem; }
.panel-review__summary span { display: block; color: var(--muted); font-size: .7rem; }
.panel-review__toolbar { margin: 8px 0 12px; }
.panel-review__toolbar form { margin: 0; }
.panel-review__empty,
.panel-region__empty {
    border: 1px dashed #d8c9b1;
    border-radius: 8px;
    background: #fffaf2;
    color: #786a56;
    padding: 14px;
    font-size: .82rem;
}
.panel-surface {
    border: 1px solid #ded7cc;
    border-radius: 10px;
    padding: 12px;
    margin-top: 12px;
    background: #fff;
}
.panel-surface__header { margin-bottom: 10px; }
.panel-region-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}
.panel-region {
    min-width: 0;
    border: 1px solid #e5dfd5;
    border-radius: 9px;
    background: #fcfbf8;
    padding: 9px;
}
.panel-region--spanning,
.panel-region--unresolved { grid-column: 1 / -1; }
.panel-region__header {
    margin-bottom: 8px;
    color: var(--navy);
    font-size: .82rem;
}
.panel-region__header span { color: var(--muted); font-size: .7rem; }
.panel-layer-card {
    border: 1px solid #ddd5c8;
    border-radius: 9px;
    background: #fff;
    padding: 9px;
    margin-top: 8px;
}
.panel-layer-card:first-of-type { margin-top: 0; }
.panel-layer-card__top { display: flex; gap: 10px; align-items: flex-start; }
.panel-layer-card__preview {
    width: 92px;
    height: 92px;
    flex: 0 0 92px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 7px;
    border: 1px solid #e4dfd8;
    background: #f8f6f2;
    overflow: hidden;
    color: var(--muted);
    font-size: .68rem;
}
.panel-layer-card__preview img { width: 100%; height: 100%; object-fit: contain; }
.panel-layer-card__identity { min-width: 0; flex: 1 1 auto; }
.panel-layer-card__identity > strong { display: block; overflow-wrap: anywhere; font-size: .86rem; }
.panel-layer-card__badges { display: flex; gap: 5px; flex-wrap: wrap; margin-bottom: 5px; }
.panel-layer-evidence,
.panel-layer-tools,
.panel-stage-tools details { margin-top: 8px; }
.panel-layer-evidence summary,
.panel-layer-tools summary,
.panel-stage-tools summary {
    cursor: pointer;
    color: var(--navy);
    font-size: .76rem;
    font-weight: 700;
}
.panel-layer-evidence dl {
    display: grid;
    grid-template-columns: minmax(100px, .35fr) 1fr;
    gap: 4px 8px;
    margin: 8px 0 0;
    font-size: .72rem;
}
.panel-layer-evidence dt { color: var(--muted); }
.panel-layer-evidence dd { margin: 0; overflow-wrap: anywhere; }
.panel-layer-card__unmanaged {
    display: grid;
    gap: 2px;
    margin-top: 8px;
    padding: 8px;
    background: #fff6df;
    border-left: 3px solid var(--panel-oven);
    font-size: .76rem;
}
.panel-quality-acceptance,
.panel-stage-tools {
    margin-top: 14px;
    padding: 11px;
    border: 1px solid var(--panel-crust);
    border-radius: 9px;
    background: var(--panel-dough);
}
.panel-quality-acceptance__form { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.panel-quality-acceptance__form input[type=text] { width: 190px; }
.panel-stage-gallery {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
    gap: 8px;
    margin-top: 9px;
    max-height: 330px;
    overflow-y: auto;
}
.panel-stage-gallery article {
    display: grid;
    gap: 5px;
    align-content: start;
    padding: 7px;
    background: #fff;
    border: 1px solid #e2d8c8;
    border-radius: 8px;
    font-size: .7rem;
}
.panel-stage-gallery img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 6px; }
.panel-upload-form { display: grid; gap: 8px; margin-top: 8px; max-width: 500px; }
.panel-upload-form label { font-size: .8rem; font-weight: 600; }
.panel-upload-form input { display: block; margin-top: 3px; }
.panel-ai-flag { margin-top: 12px; font-size: .82rem; }
.panel-ai-flag label { cursor: pointer; }
.managed-artwork-transition > summary {
    cursor: pointer;
    font-weight: 700;
    color: var(--navy);
    list-style: none;
}
.managed-artwork-transition > summary::before { content: "▸ "; }
.managed-artwork-transition[open] > summary::before { content: "▾ "; }

@media (max-width: 800px) {
    .lifecycle-tracker { grid-template-columns: repeat(6, 145px); }
    .panel-review__summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .panel-region-grid { grid-template-columns: 1fr; }
    .panel-region--spanning, .panel-region--unresolved { grid-column: auto; }
    .panel-layer-card__top { flex-direction: column; }
    .panel-layer-card__preview { width: 100%; height: 150px; flex-basis: auto; }
    .panel-layer-evidence dl { grid-template-columns: 1fr; }
    .panel-quality-acceptance__form,
    .panel-quality-acceptance__form input[type=text] { width: 100%; }
}

.panel-stage-gallery__pager {
  display:flex; gap:.65rem; align-items:center; flex-wrap:wrap; margin:.6rem 0;
  font-size:.78rem; color:#6f6258;
}
.panel-stage-gallery__pager a { font-weight:700; }
.panel-stage-tools__transition-note { margin:.7rem 0 0; }

/* The live provider read is the entry point to every safe panel decision. */
.panel-read-layout-button {
  min-height: 48px;
  padding: .75rem 1.1rem;
  background: #17365f;
  color: #fff;
  border: 2px solid #0d2849;
  box-shadow: 0 2px 5px rgba(13,40,73,.24);
  font-size: .95rem;
  font-weight: 900;
}
.panel-read-layout-button:hover,
.panel-read-layout-button:focus-visible {
  background: #0d2849;
  color: #fff;
  outline: 3px solid #e2ad39;
  outline-offset: 2px;
}
@media (max-width: 680px) {
  .panel-review__toolbar form,
  .panel-read-layout-button { width: 100%; }
}


/* v4.30.1 — mobile workflow correction */
.persistent-flash { position:relative; padding-right:3rem; scroll-margin-top:7rem; }
.flash-dismiss { position:absolute; top:.45rem; right:.55rem; border:0; background:transparent; color:inherit; font-size:1.6rem; line-height:1; cursor:pointer; }
.panel-action-outcome { border:2px solid #d7a32e; background:#fff7dd; border-radius:12px; padding:14px 48px 14px 14px; margin:12px 0; position:relative; scroll-margin-top:7rem; }
.panel-action-outcome--success { border-color:#68a56f; background:#effaf0; }
.panel-staged-candidates { border:2px solid #8d6bc8; background:#f7f2ff; border-radius:14px; padding:14px; margin:16px 0; scroll-margin-top:7rem; }
.panel-staged-candidates__heading { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.panel-staged-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:12px; margin-top:12px; }
.panel-staged-card { background:#fff; border:1px solid #cbb9e7; border-radius:12px; padding:12px; }
.panel-staged-card img { width:100%; max-height:260px; object-fit:contain; border-radius:8px; background:#fafafa; }
.panel-staged-badge { display:inline-block; background:#6e4cab; color:#fff; font-weight:800; padding:4px 9px; border-radius:999px; font-size:.72rem; letter-spacing:.03em; }
.panel-staged-meta { color:#5f5670; font-size:.82rem; }
.panel-write-unavailable { display:block; border:1px dashed #b9a568; background:#f7f1dc; color:#5f542a; border-radius:8px; padding:9px 11px; font-size:.78rem; font-weight:700; }
.art-lock-control { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:-6px 0 10px; }
.art-lock-state { display:inline-flex; align-items:center; gap:6px; font-weight:800; padding:5px 10px; border-radius:999px; }
.art-lock-state--locked { background:#fde8e8; color:#8c1c1c; border:1px solid #dca0a0; }
.art-lock-state--unlocked { background:#e9f6ea; color:#245c24; border:1px solid #76a976; }
@media (max-width:800px) {
  .persistent-flash, .panel-action-outcome { font-size:1rem; line-height:1.45; }
  .panel-staged-grid { grid-template-columns:1fr; }
  .panel-staged-card .btn { width:100%; margin-bottom:8px; }
}

/* v4.31.0 — Safe Region Writer */
.panel-preview-build-form,
.panel-plan-action {
  display: grid;
  gap: .65rem;
  margin-top: .8rem;
}
.panel-preview-build-form label { display: grid; gap: .35rem; font-weight: 700; }
.panel-preview-build-form select { width: 100%; }
.panel-writer-safety-note,
.panel-change-plan__warning,
.panel-plan-job-state,
.panel-plan-verified,
.panel-change-plan__error {
  margin-top: .75rem;
  padding: .8rem .9rem;
  border-radius: 12px;
  line-height: 1.45;
}
.panel-writer-safety-note { background: #eef6ff; border: 1px solid #b9d3ec; color: #183b5a; }
.panel-change-plans {
  margin: 1rem 0;
  padding: 1rem;
  border: 2px solid #1e365f;
  border-radius: 18px;
  background: #f7f9fd;
}
.panel-change-plans__heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .8rem;
  margin-bottom: .8rem;
}
.panel-change-plan {
  margin-top: .9rem;
  padding: 1rem;
  border: 1px solid #cad3e0;
  border-left: 6px solid #64748b;
  border-radius: 16px;
  background: #fff;
}
.panel-change-plan--ok { border-left-color: #2f8a4c; }
.panel-change-plan--warn { border-left-color: #c79222; }
.panel-change-plan--bad { border-left-color: #b73d37; }
.panel-change-plan__top { display: flex; gap: .9rem; align-items: flex-start; }
.panel-change-plan__top img {
  width: 96px;
  height: 96px;
  object-fit: contain;
  border: 1px solid #ddd;
  border-radius: 12px;
  background: #fafafa;
  flex: 0 0 auto;
}
.panel-change-plan__facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .6rem;
  margin-top: .9rem;
}
.panel-change-plan__facts > div {
  display: grid;
  gap: .18rem;
  padding: .65rem;
  border-radius: 10px;
  background: #f3f5f8;
  overflow-wrap: anywhere;
}
.panel-change-plan__facts span { color: #56606d; font-size: .88rem; }
.panel-change-plan__warning { background: #fff3d6; border: 1px solid #e2bd63; color: #5b4208; }
.panel-change-plan__evidence { margin-top: .8rem; }
.panel-change-plan__evidence > div { padding: .35rem 0; border-bottom: 1px solid #ececec; overflow-wrap: anywhere; }
.panel-plan-job-state { background: #fff3d6; border: 1px solid #e2bd63; }
.panel-plan-verified { background: #eaf7ed; border: 1px solid #9ac9a5; color: #235d31; }
.panel-change-plan__error { background: #fdebea; border: 1px solid #e1aaa6; color: #7b2722; }
.panel-plan-action button[disabled] { opacity: .58; cursor: not-allowed; }

@media (max-width: 680px) {
  .panel-change-plans { padding: .75rem; }
  .panel-change-plans__heading { display: grid; }
  .panel-change-plan__top { display: grid; }
  .panel-change-plan__top img { width: 100%; height: 180px; }
  .panel-change-plan__facts { grid-template-columns: 1fr; }
  .panel-plan-action .btn,
  .panel-preview-build-form .btn { width: 100%; min-height: 48px; }
}

/* v4.31.1 — staged quality decisions and visual write evidence */
.panel-stage-remediation{margin:12px 0;padding:14px;border:2px solid #d7a72b;border-radius:16px;background:#fff9e8}
.panel-stage-remediation__actions{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
.panel-stage-remediation__actions form{margin:0}
.panel-stage-accept-form{display:grid;gap:8px;margin-top:10px}
.panel-stage-accept-form input[type=text]{width:100%}
.panel-stage-accepted{display:grid;gap:6px;padding:10px;border-radius:12px;background:#edf8ef;border:1px solid #74a87a}
.panel-plan-visual-evidence{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:14px 0}
.panel-plan-visual-evidence>div{display:grid;gap:7px;padding:10px;border:1px solid #d8dde8;border-radius:14px;background:#fff}
.panel-plan-visual-evidence img{width:100%;max-height:240px;object-fit:contain;border-radius:10px;background:#f7f7f4}
.panel-plan-visual-evidence code{word-break:break-all;font-size:.72rem}
.panel-change-plan__preservation-statement{padding:12px;border-left:5px solid #2f7a43;background:#eef8f0;border-radius:8px;margin:10px 0}


/* v4.31.2 — Draft Change Proposal, provider reconciliation, and verified restore */
.panel-provider-changed-alert{margin:12px 0;padding:14px;border:2px solid #b43a32;border-radius:12px;background:#fff0ef;color:#651f1b}
.panel-provider-changed-alert p,.panel-merchandising-gate p{margin:6px 0 0}
.panel-merchandising-gate{margin:12px 0;padding:14px;border-left:6px solid #c79222;border-radius:10px;background:#fff8e8;color:#513d0d}
.panel-plan-superseded{margin:12px 0;padding:12px;border:1px solid #bbb;border-radius:10px;background:#f3f3f3;color:#555}
.panel-job-tracker{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:6px;margin:10px 0;overflow-x:auto}
.panel-job-tracker span{padding:8px 10px;border-radius:999px;background:#edf1f5;white-space:nowrap;text-align:center;font-size:.78rem}
.panel-job-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:8px}
.panel-plan-job-state{padding:14px;border:1px solid #d3bd82;background:#fff9e9;border-radius:12px}
.btn-danger{background:#a92e2a!important;color:#fff!important;border-color:#87231f!important}
@media(max-width:700px){.panel-job-tracker{grid-template-columns:repeat(5,150px)}.panel-plan-action .btn{width:100%;min-height:52px}.panel-job-actions{display:grid}}

/* v4.32.0 — humane panel workflow and reusable persisted-work tracker */
.panel-owner-journey {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin:16px 0;
}
.panel-owner-journey__step {
  display:grid;
  grid-template-columns:auto 1fr;
  align-items:center;
  gap:10px;
  min-height:62px;
  padding:12px 14px;
  border:1px solid #ded8cf;
  border-radius:14px;
  background:#f7f5f1;
  color:#77716a;
}
.panel-owner-journey__step>span {
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border-radius:999px;
  background:#ddd8cf;
  font-weight:900;
}
.panel-owner-journey__step strong { font-size:.9rem; }
.panel-owner-journey__step--done { background:#edf7ee;border-color:#a9d0af;color:#265e31; }
.panel-owner-journey__step--done>span { background:#3f7c4a;color:#fff; }
.panel-owner-journey__step--current { background:#fff2df;border-color:#d5a03a;color:#6c4304;box-shadow:0 0 0 2px rgba(213,160,58,.12); }
.panel-owner-journey__step--current>span { background:#d9942f;color:#fff; }
.panel-workflow-kicker {
  display:block;
  margin-bottom:4px;
  color:#bd4d3c;
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.07em;
  text-transform:uppercase;
}
.panel-proposal-builder {
  margin-top:12px;
  padding:14px;
  border:2px solid #d7a72b;
  border-radius:16px;
  background:#fffaf0;
}
.panel-proposal-builder__comparison {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin-bottom:12px;
}
.panel-proposal-builder__comparison>div {
  display:grid;
  gap:8px;
  padding:10px;
  border:1px solid #e2d8c8;
  border-radius:12px;
  background:#fff;
}
.panel-proposal-builder__comparison img {
  width:100%;
  height:220px;
  object-fit:contain;
  border-radius:10px;
  background:#f7f7f4;
}
.panel-auto-target {
  margin:0;
  padding:10px 12px;
  border-left:5px solid #3f7c4a;
  border-radius:9px;
  background:#edf7ee;
  color:#265e31;
}
.panel-primary-action { width:100%;min-height:52px;font-size:1rem; }
.panel-technical-evidence { margin-top:10px;color:#263650; }
.panel-technical-evidence>summary { cursor:pointer;font-weight:800; }
.panel-technical-evidence p { margin:8px 0 0;color:#58616c; }
.panel-proposal-history {
  margin-top:14px;
  padding-top:12px;
  border-top:1px solid #d9dde6;
}
.panel-proposal-history>summary { cursor:pointer;font-weight:800;color:#536073; }
.panel-proposal-history__list { display:grid;gap:8px;margin-top:10px; }
.panel-proposal-history__list>a { font-size:.82rem; }
.workflow-tracker {
  margin:12px 0;
  padding:12px;
  border:1px solid #cbd5e1;
  border-radius:14px;
  background:#f8fafc;
}
.workflow-tracker--complete { border-color:#9ac9a5;background:#edf8ef; }
.workflow-tracker--attention { border-color:#dfaaa6;background:#fff3f2; }
.workflow-tracker__steps {
  display:grid;
  grid-template-columns:repeat(var(--workflow-step-count,5),minmax(105px,1fr));
  gap:7px;
  overflow-x:auto;
  padding-bottom:4px;
}
.workflow-tracker__step {
  --workflow-process:#7b8491;
  display:flex;
  align-items:center;
  gap:8px;
  min-width:105px;
  padding:8px 10px;
  border:1px solid #e0e4e9;
  border-radius:999px;
  background:#eef1f5;
  color:#68717d;
  font-size:.74rem;
  font-weight:800;
  white-space:nowrap;
  box-shadow:inset 4px 0 0 var(--workflow-process);
}
.workflow-tracker__step--kind-generation { --workflow-process:#7657b6; }
.workflow-tracker__step--kind-preparation { --workflow-process:#d18424; }
.workflow-tracker__step--kind-decision { --workflow-process:#bd9b13; }
.workflow-tracker__step--kind-provider { --workflow-process:#287ab8; }
.workflow-tracker__step--kind-panel { --workflow-process:#2a8c82; }
.workflow-tracker__step--kind-complete { --workflow-process:#3f7c4a; }
.workflow-tracker__marker {
  width:11px;
  height:11px;
  flex:0 0 11px;
  border-radius:999px;
  background:var(--workflow-process);
  box-shadow:0 0 0 3px #dde1e6;
}
.workflow-tracker--pizza { border-width:2px;border-color:#d8b65a;background:#fffaf0; }
.workflow-tracker--pizza .workflow-tracker__marker { width:24px;height:24px;flex-basis:24px;color:#fff;font-size:.68rem;font-weight:900;box-shadow:none; }
.workflow-tracker__step--done { background:#eaf7ed;border-color:#a8cfb0;color:#285e31; }
.workflow-tracker__step--done .workflow-tracker__marker { box-shadow:0 0 0 3px #d4ead8; }
.workflow-tracker__step--current { background:#fff0dc;border-color:#e3bb6c;color:#6c4304; }
.workflow-tracker__step--current .workflow-tracker__marker { box-shadow:0 0 0 3px #f4e3ba; }
.workflow-tracker__step--attention { background:#fdebea;border-color:#dfa9a5;color:#7b2722; }
.workflow-tracker__step--attention .workflow-tracker__marker { box-shadow:0 0 0 3px #f2cfcc; }
.workflow-tracker__summary {
  display:flex;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap;
  margin-top:9px;
  font-size:.82rem;
}
.workflow-tracker__summary span { color:#68717d; }
.calendar-readiness-delta { display:flex;justify-content:space-between;align-items:center;gap:12px;margin:12px 0;padding:10px;border-left:5px solid #3f7c4a;border-radius:8px;background:#edf7ef; }
.calendar-readiness-delta>div { display:grid;gap:3px; }
.calendar-readiness-delta span { color:#68717d;font-size:.76rem; }
.panel-change-plan__top>div { min-width:0; }
.panel-change-plan__top>div>strong { display:block;font-size:1.05rem; }
.panel-plan-job-state .panel-job-actions { align-items:stretch; }
.panel-plan-job-state .panel-job-actions form { flex:1 1 260px; }

@media (max-width:700px) {
  .panel-owner-journey { grid-template-columns:1fr; }
  .panel-owner-journey__step { min-height:54px; }
  .panel-proposal-builder__comparison { grid-template-columns:1fr; }
  .panel-proposal-builder__comparison img { height:230px; }
  .workflow-tracker__steps { grid-template-columns:1fr;overflow:visible; }
  .workflow-tracker__step { min-width:0;border-radius:12px; }
  .workflow-tracker__summary { display:grid; }
  .calendar-readiness-delta { display:grid; }
  .panel-review__summary { font-size:.9rem; }
}

/* v4.32.1 — explicit multi-layer targeting and spanning-layer correction */
.panel-action-outcome--inline { margin:12px 0 4px; }
.panel-target-comparison { grid-template-columns:repeat(3,minmax(0,1fr)); }
.panel-target-comparison__preview { min-height:220px; display:grid; place-items:center; }
.panel-target-comparison__current>strong,
.panel-target-comparison__preserved>strong { font-size:.95rem; }
.panel-target-picker { border:0; padding:0; margin:0; }
.panel-target-picker legend { font-size:1rem; font-weight:900; margin-bottom:3px; }
.panel-target-picker__options { display:grid; gap:10px; margin-top:10px; }
.panel-target-option {
  display:grid;
  grid-template-columns:auto 96px 1fr;
  align-items:center;
  gap:10px;
  padding:10px;
  border:2px solid #d8d3c9;
  border-radius:14px;
  background:#fff;
  cursor:pointer;
}
.panel-target-option:hover { border-color:#c69b32; }
.panel-target-option--selected { border-color:#3f7c4a; background:#edf7ee; box-shadow:0 0 0 2px rgba(63,124,74,.12); }
.panel-target-option input[type=radio] { width:22px; height:22px; margin:0; }
.panel-target-option__preview {
  display:grid;
  place-items:center;
  width:96px;
  height:96px;
  overflow:hidden;
  border:1px solid #ddd;
  border-radius:10px;
  background:#f7f7f4;
  color:#777;
  text-align:center;
  font-size:.72rem;
}
.panel-target-option__preview img { width:100%; height:100%; object-fit:contain; }
.panel-target-option__text { display:grid; gap:3px; min-width:0; }
.panel-target-option__text strong { font-size:.95rem; }
.panel-target-option__text small { color:#606873; overflow-wrap:anywhere; }
.panel-form-refusal { padding:10px 12px; border:1px solid #dfa9a5; border-radius:10px; background:#fdebea; color:#7b2722; font-weight:800; }
.panel-primary-action[disabled] { opacity:.55; cursor:not-allowed; }
.panel-layer-card__source { font-size:.78rem; }
@media (max-width:700px) {
  .panel-target-comparison { grid-template-columns:1fr; }
  .panel-target-option { grid-template-columns:auto 78px 1fr; }
  .panel-target-option__preview { width:78px; height:78px; }
}

/* v4.32.2 — owner-adjusted placement, tiling preservation, and draft exit controls */
.badge-placement-adjusted {
  background:#efe7fb;
  border-color:#bfa6df;
  color:#5f398f;
}
.badge-placement-standard {
  background:#eef2f5;
  border-color:#cfd6dc;
  color:#4f5d68;
}
.panel-placement-summary {
  padding:8px 10px;
  border-left:4px solid #7b55ad;
  border-radius:7px;
  background:#f5f0fb;
  color:#41344e;
  font-size:.82rem;
  line-height:1.45;
}
.panel-proposal-draft-controls {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:9px;
  margin-top:10px;
  padding-top:10px;
  border-top:1px solid #e4ded2;
}
.panel-proposal-draft-controls form,
.panel-proposal-draft-controls .btn {
  width:100%;
}
@media (max-width:700px) {
  .panel-proposal-draft-controls { grid-template-columns:1fr; }
}

/* v4.49.4 — Review decision bar + separated recipe/image factory workflow */
.review-top-actions {
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  margin:-2px 0 14px;
  padding:10px;
  border:1px solid #ddd5c8;
  border-radius:12px;
  background:#fff;
  box-shadow:0 3px 14px rgba(37,31,20,.06);
}
.review-top-delete { display:inline-flex;margin:0 0 0 auto; }
.review-top-approve { display:inline-flex;margin:0; }
.review-image-status { display:flex;justify-content:space-between;align-items:center;gap:18px;border-left:5px solid #1f5f74; }
.review-image-status h3 { margin:7px 0 3px; }
.review-image-status p { margin:0; }
.review-image-status--top { margin-top:-4px;border-top:4px solid #1f5f74; }
.image-workflow-heading,.image-factory-topbar { display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap; }
.workflow-scope-banner { display:flex;justify-content:space-between;align-items:center;gap:16px;margin:10px 0 14px;padding:12px 14px;border:1px solid #c8dbe2;border-left:5px solid #1f5f74;border-radius:10px;background:#f4f9fb; }
.workflow-scope-banner>div { display:grid;gap:3px; }
.workflow-scope-banner strong { font-size:.9rem; }
.workflow-scope-banner span { color:#52636d;font-size:.76rem; }
.workflow-scope-banner--recipe { border-left-color:#8b6d22;background:#fffaf0; }
.workflow-scope-next { flex:0 0 auto;padding:6px 9px;border-radius:999px;background:#fff;font-weight:800;white-space:nowrap; }
.image-setup-selectors,.image-setup-fields { display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px; }
.image-setup-selectors label,.image-setup-fields label { display:grid;gap:5px; }
.image-setup-selectors select,.image-setup-fields select,.image-setup-fields input { width:100%; }
.image-master-grid,.hero-source-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:10px; }
.image-master-card,.hero-source-option { display:grid;gap:7px;padding:8px;border:1px solid #d7d7d7;border-radius:10px;background:#fff;cursor:pointer;font-size:.76rem; }
.image-master-card img { width:100%;height:150px;object-fit:contain;background:#f4f4f4;border-radius:7px; }
.image-factory-hero { display:grid;grid-template-columns:minmax(280px,1.15fr) minmax(260px,.85fr);gap:22px;align-items:center;border-top:5px solid #1f5f74; }
.image-factory-working { min-height:360px;display:grid;place-items:center;overflow:hidden;border-radius:12px;background:#f2f1ee; }
.image-factory-working img { display:block;width:100%;height:440px;object-fit:contain; }
.image-factory-empty { max-width:300px;padding:24px;text-align:center;color:#777; }
.image-factory-primary-actions { display:flex;gap:8px;flex-wrap:wrap;margin-top:16px; }
.image-next-reason { display:inline-block;margin:8px 0 0;padding:7px 9px;border-radius:8px;background:#fff3cd;font-size:.78rem; }
.image-delivery-overview { display:flex;justify-content:space-between;align-items:center;gap:12px;margin:10px 0;padding:12px;border:2px solid #287ab8;border-radius:11px;background:#f2f8fc; }
.image-delivery-overview>div { display:grid;gap:3px; }
.image-delivery-overview span { color:#68717d;font-size:.76rem; }
.image-health-operation { display:grid;grid-template-columns:minmax(220px,1.5fr) repeat(3,minmax(110px,.7fr)) auto;gap:9px;align-items:center;padding:9px;border:1px solid;border-radius:8px;font-size:.76rem; }
.eyebrow { margin:0 0 5px;color:#1f5f74;font-size:.72rem;font-weight:900;letter-spacing:.13em; }
.hero-working-preview { display:grid;grid-template-columns:minmax(250px,1.4fr) minmax(200px,.6fr);gap:16px;align-items:center;margin:8px 0 14px;padding:12px;border:2px solid #1f5f74;border-radius:12px;background:#f4f9fb; }
.hero-working-preview img { width:100%;height:430px;object-fit:contain;background:#fff;border-radius:8px; }
.image-factory-list { display:grid;gap:8px; }
.image-factory-listing { display:grid;grid-template-columns:minmax(0,1fr) repeat(5,auto);gap:10px;align-items:center;text-decoration:none;color:inherit;margin:0; }
.image-factory-listing div { min-width:0; }
.image-factory-listing strong,.image-factory-listing small { display:block; }
.image-factory-listing small { margin-top:3px;color:#777; }
.image-queue-dashboard { display:grid;grid-template-columns:repeat(8,minmax(105px,1fr));gap:8px;margin:12px 0;overflow-x:auto; }
.image-queue-card { display:grid;gap:2px;min-width:105px;padding:11px;border:1px solid #d8d3c9;border-radius:11px;background:#fff;color:inherit;text-decoration:none; }
.image-queue-card strong { font-size:1.5rem;line-height:1; }
.image-queue-card span { color:#68717d;font-size:.72rem; }
.image-queue-card.is-active { border-color:#1f5f74;box-shadow:0 0 0 2px rgba(31,95,116,.15); }
.image-queue-card.has-attention { border-color:#d6a09b;background:#fdebea;color:#7b2722; }
.image-job-receipts { display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px;margin:10px 0 14px; }
.image-job-receipts a { display:grid;gap:3px;padding:10px;border:1px solid #ddd5c8;border-radius:10px;background:#fff;color:inherit;text-decoration:none; }
.image-job-receipts span,.image-job-receipts small { color:#68717d;font-size:.74rem; }
.listing-standard-receipt { display:flex;justify-content:space-between;align-items:center;gap:10px;margin:12px 0;padding:10px;border:1px solid #a8cfb0;border-radius:9px;background:#edf7ef; }
.listing-standard-receipt.needs-attention { border-color:#e0c78a;background:#fff7df; }
.listing-standard-receipt>div { display:grid;gap:2px; }
.listing-standard-receipt small { color:#68717d; }
.listing-standard-rebuild { display:flex;justify-content:space-between;align-items:center;gap:10px;margin:-5px 0 12px;padding:10px;border:1px solid #d6a15a;border-radius:9px;background:#fff8ef; }
.listing-standard-rebuild>div { display:grid;gap:3px; }
.listing-standard-rebuild small { color:#68717d; }
.listing-standard-view-confirm { display:grid;gap:9px;margin:12px 0;padding:12px;border:2px solid #b89642;border-radius:10px;background:#fffaf0; }
.listing-standard-view-confirm>div { display:grid;gap:3px; }
.listing-standard-view-confirm small { color:#68717d; }
.listing-standard-view-confirm label { display:flex;align-items:flex-start;gap:7px;font-size:.78rem;font-weight:800; }
.listing-standard-view-confirm .btn { justify-self:start; }
.listing-delivery-operation { display:grid;gap:9px;margin:12px 0;padding:12px;border:2px solid #287ab8;border-radius:10px;background:#f2f8fc; }
.listing-delivery-operation.needs-attention { border-color:#a33;background:#fff3f1; }
.listing-delivery-operation__heading { display:flex;justify-content:space-between;align-items:flex-start;gap:10px; }
.listing-delivery-operation__heading>div { display:grid;gap:3px; }
.listing-delivery-operation__heading small { color:#68717d; }
.listing-delivery-operation__bar { height:9px;overflow:hidden;border-radius:999px;background:#dce5eb; }
.listing-delivery-operation__bar>span { display:block;height:100%;border-radius:999px;background:#287ab8; }
.listing-delivery-operation__facts { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px; }
.listing-delivery-operation__facts span { display:grid;gap:2px;padding:7px;border-radius:7px;background:rgba(255,255,255,.75);font-size:.72rem; }
.listing-view-calibration { display:grid;grid-template-columns:repeat(2,minmax(95px,150px));gap:8px;margin:7px 0 9px; }
.listing-view-calibration>div { display:grid;gap:3px;padding:5px;border:1px solid #d8d3c9;border-radius:8px;background:#f7f6f3; }
.listing-view-calibration span { color:#68717d;font-size:.68rem;font-weight:800; }
.listing-view-calibration img { width:100%;height:90px;object-fit:contain;background:#fff;border-radius:5px; }
.listing-set-approval { display:grid;gap:9px;margin-top:12px;padding:11px;border:2px solid #b89642;border-radius:9px;background:#fffaf0; }
.listing-set-approval.is-approved { display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;border-color:#3f7c4a;background:#edf7ef; }
.listing-set-approval.is-approved>div { display:grid;gap:2px; }
.listing-set-approval small { color:#68717d; }
.listing-set-approval label { display:flex;gap:7px;align-items:flex-start;font-size:.78rem;font-weight:700; }
.listing-set-approval label:last-of-type { display:grid;gap:4px; }
.recipe-reference-picker { border-top:5px solid #1f5f74; }
.recipe-reference-exclusions { display:grid;gap:5px;margin-top:10px;padding:10px;border-left:4px solid #b56b35;border-radius:8px;background:#fff8ef;font-size:.78rem; }
.recipe-auto-stage-status { display:flex;justify-content:space-between;align-items:center;gap:16px;border-left:5px solid #1f5f74; }
.recipe-auto-stage-status>div { display:grid;gap:5px; }
.recipe-auto-stage-status p { margin:0; }
.recipe-reference-actions { display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px; }
.recipe-reference-locked { border-left:5px solid #3f7c4a;background:#f4fbf5; }
.recipe-reference-strip { display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px;margin-top:12px; }
.recipe-reference-strip>div { display:grid;gap:4px;padding:7px;border:1px solid #cfe1d2;border-radius:9px;background:#fff; }
.recipe-reference-strip img { width:100%;height:120px;object-fit:contain;background:#f4f4f4;border-radius:6px; }
.recipe-reference-strip strong,.recipe-reference-strip small { font-size:.7rem; }
.recipe-reference-strip small { color:#68717d; }
.recipe-reference-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin:14px 0; }
.recipe-reference-image-card { position:relative;display:grid;grid-template-rows:250px auto;overflow:hidden;border:1px solid #d8d3c9;border-radius:12px;background:#fff; }
.recipe-reference-image-card>img { width:100%;height:250px;object-fit:contain;background:#f2f1ee; }
.recipe-reference-image-card--primary { grid-template-rows:210px auto; }
.recipe-reference-image-card--primary>img { height:210px;box-sizing:border-box;padding:22px; }
.recipe-reference-rank { position:absolute;top:8px;left:8px;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#1f5f74;color:#fff;font-weight:900;box-shadow:0 2px 8px rgba(0,0,0,.2); }
.recipe-reference-map { display:grid;gap:8px;padding:10px; }
.recipe-reference-map label { display:grid;gap:3px;font-size:.73rem;font-weight:800; }
.recipe-reference-map select { width:100%;font-size:.78rem; }
.recipe-reference-template { margin:16px 0;padding:14px;border:1px solid #c8dbe2;border-radius:11px;background:#f4f9fb; }
.recipe-reference-template h2 { margin-top:0; }
.recipe-reference-template>label,.recipe-reference-reason { display:grid;gap:5px;font-weight:800; }
.recipe-reference-template textarea,.recipe-reference-reason textarea { width:100%; }
.recipe-reference-reason { margin:12px 0; }
.recipe-reference-evidence { display:grid;gap:9px;margin:12px 0;padding:13px;border:1px solid #c8dbe2;border-radius:11px;background:#f4f9fb; }
.recipe-reference-evidence legend { padding:0 6px;font-weight:900; }
.recipe-reference-evidence p { margin:0; }
.recipe-reference-evidence>label { display:grid;gap:5px;font-weight:800; }
.recipe-model-listing{display:grid;grid-template-columns:minmax(150px,240px) 1fr;gap:18px;align-items:start;border-left:5px solid #c49a32}
.recipe-model-listing--accepted{border-left-color:#2f7d4a;background:#f5fbf7}
.recipe-model-listing__image{min-height:150px;border-radius:12px;background:#f3f1ea;display:grid;place-items:center;overflow:hidden}
.recipe-model-listing__image img{width:100%;height:220px;object-fit:contain}
.recipe-product-stage--compact img{display:block!important;width:70%!important;max-width:260px!important;height:180px!important;margin:auto!important;box-sizing:border-box;padding:10px;object-fit:contain!important}
.recipe-reference-image-card--primary.recipe-product-stage--compact>img{height:190px!important;padding:20px}
.recipe-model-listing__decision{display:grid;gap:10px;margin-top:12px}
.recipe-model-listing__decision>label{display:grid;gap:5px;font-weight:800}
.recipe-reference-template--hero-studio{display:flex;justify-content:space-between;gap:16px;align-items:center}
@media(max-width:640px){.recipe-model-listing{grid-template-columns:1fr}.recipe-model-listing__image img{height:190px}.recipe-reference-template--hero-studio{align-items:stretch;flex-direction:column}.workflow-scope-banner{align-items:stretch;flex-direction:column}.workflow-scope-next{white-space:normal}.recipe-product-stage--compact img{height:165px!important}}
.recipe-reference-replace { display:block;margin:12px 0;padding:12px;border:1px solid #d5a19c;border-radius:9px;background:#fff1ef;color:#772b25;font-weight:800; }
.recipe-reference-diff { display:inline-block;margin:7px 0 0;padding:6px 9px;border-radius:7px;background:#fff3cd;font-size:.78rem;font-weight:800; }
.recipe-reference-history { display:grid;gap:7px;margin-top:10px; }
.recipe-reference-history>div { display:grid;grid-template-columns:auto minmax(180px,1fr) minmax(220px,auto);gap:10px;padding:8px;border-bottom:1px solid #eee; }
.recipe-reference-history small { color:#68717d; }

/* v4.50.1 — recipe truth, editable Review copy, observed galleries, and scene families */
.recipe-readiness-summary { border-top:5px solid #a33;background:#fff6f4; }
.recipe-readiness-summary.is-ready { border-color:#3f7c4a;background:#f1f9f2; }
.recipe-readiness-summary>strong { display:block;font-size:1.08rem;letter-spacing:.04em; }
.recipe-readiness-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px;margin-top:12px; }
.recipe-readiness-grid a { display:flex;align-items:center;gap:7px;padding:9px;border:1px solid #ddd5c8;border-radius:9px;background:#fff;color:inherit;text-decoration:none;font-size:.8rem;font-weight:800; }
.fact-receipt { margin:10px 0;padding:9px;border-radius:8px;background:#f4f2ec;font-size:.78rem; }
.recipe-facts-form { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px; }
.recipe-facts-form label,.recipe-card-actions label { display:grid;gap:5px;font-weight:800; }
.recipe-facts-form textarea,.recipe-card-actions input,.recipe-card-actions select { width:100%; }
.recipe-facts-form small { color:#68717d;font-weight:400; }
.product-info-card-current { display:grid;grid-template-columns:minmax(180px,300px) 1fr;gap:16px;align-items:center;margin:12px 0; }
.product-info-card-current img { width:100%;max-height:380px;object-fit:contain;border:1px solid #ddd5c8;border-radius:10px;background:#f3f1eb; }
.recipe-card-actions { display:grid;grid-template-columns:minmax(180px,.55fr) minmax(280px,1fr);gap:16px;align-items:start; }
.recipe-card-actions form { display:grid;gap:8px;padding:11px;border:1px solid #ddd5c8;border-radius:10px;background:#faf9f6; }
.recipe-card-map-warning { padding:10px;border-left:5px solid #b56b35;border-radius:8px;background:#fff8ef; }
.scene-family-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:12px 0; }
.scene-family-grid article { display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:11px;border:1px solid #d8d3c9;border-radius:10px;background:#fff; }
.scene-family-grid article>strong,.scene-family-grid article>p { grid-column:1/-1; }
.scene-family-grid article p { min-height:2.7em;margin:0;color:#68717d;font-size:.76rem; }
.scene-family-grid article label { font-size:.74rem;font-weight:800; }
.hero-scene-rule { padding:8px;border-left:4px solid #1f5f74;border-radius:7px;background:#f4f9fb;color:#44515d;font-size:.77rem; }
.observed-etsy-gallery { border-left:5px solid #6c7480; }
.observed-etsy-strip { display:grid;grid-template-columns:repeat(auto-fill,minmax(115px,1fr));gap:8px;margin:12px 0; }
.observed-etsy-strip figure { position:relative;margin:0;overflow:hidden;border:1px solid #d8d3c9;border-radius:9px;background:#f3f2ef; }
.observed-etsy-strip img { display:block;width:100%;height:125px;object-fit:contain; }
.observed-etsy-strip span { position:absolute;top:5px;left:5px;display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#17243a;color:#fff;font-size:.7rem;font-weight:900; }
.listing-copy-editor { border-top:5px solid #8b6914; }
.listing-copy-editor form { display:grid;gap:12px; }
.listing-copy-editor label { display:grid;gap:5px;font-weight:800; }
.listing-copy-editor input,.listing-copy-editor textarea { width:100%; }
.copy-count { float:right;color:#68717d;font-size:.72rem;font-weight:500; }
.copy-warning-list { display:grid;gap:4px;margin:9px 0;padding:9px;border-radius:8px;background:#fff3cd;color:#6b5200;font-size:.76rem; }
.ai-disclosure-contract { padding:11px;border:1px solid #d7bd7a;border-radius:9px;background:#fffaf0; }
.ai-disclosure-contract p { margin:5px 0;font-size:.83rem; }
.ai-disclosure-contract small { color:#68717d; }
.copy-fact-reference { padding:10px;border:1px solid #ddd5c8;border-radius:9px;background:#faf9f6; }
.copy-fact-reference dl { display:grid;grid-template-columns:minmax(140px,.35fr) 1fr;gap:6px 12px;margin-bottom:0; }
.copy-fact-reference dt { font-weight:900; }.copy-fact-reference dd { margin:0; }
.custom-order-fast-lane { border-left:5px solid #b56b35;background:#fffaf3; }
.custom-order-fast-lane form { display:grid;gap:10px;margin-top:10px; }
.custom-order-fast-lane label { display:flex;gap:7px;align-items:flex-start;font-size:.8rem;font-weight:800; }
.custom-order-fast-lane label:has(input[type=text]) { display:grid; }
.custom-order-fast-lane input[type=text] { width:100%; }

/* v4.50.8 — one visual font registry for every server-rendered text surface. */
.font-library-toolbar{display:flex;justify-content:space-between;align-items:end;gap:18px;flex-wrap:wrap}
.font-library-toolbar form{display:flex;align-items:end;gap:8px;flex-wrap:wrap;min-width:min(100%,520px)}
.font-library-toolbar label{flex:1;min-width:240px}
.font-default-grid,.font-upload-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;align-items:end}
.font-library-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px}
.font-library-card{min-width:0}
.font-library-card.is-archived{opacity:.65}
.font-rendered-sample{display:block;width:100%;height:auto;border:1px solid #d8c99f;border-radius:7px;background:#f6efd7;margin:10px 0}
.font-library-card dl{display:grid;grid-template-columns:max-content 1fr;gap:4px 10px;font-size:.8rem}
.font-library-card dt{font-weight:700;color:#49556a}.font-library-card dd{margin:0;overflow-wrap:anywhere}
.font-card-actions{display:flex;gap:7px;flex-wrap:wrap}.font-card-actions form{margin:0}
.font-upload-wide{grid-column:1/-1}

@media (max-width:700px) {
  .review-top-actions { display:grid;grid-template-columns:1fr 1fr;position:sticky;top:0;z-index:20; }
  .review-top-actions .btn,.review-top-actions form,.review-top-actions button { width:100%;min-height:44px; }
  .review-top-delete { margin:0; }
  .review-image-status { display:grid; }
  .review-image-status .btn { width:100%;min-height:48px; }
  .image-factory-hero,.hero-working-preview { grid-template-columns:1fr; }
  .image-delivery-overview { display:grid; }
  .image-health-operation { grid-template-columns:1fr 1fr; }
  .image-health-operation>div:first-child,.image-health-operation>a { grid-column:1/-1; }
  .image-factory-working { min-height:260px; }
  .image-factory-working img,.hero-working-preview img { height:320px; }
  .image-master-grid,.hero-source-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .image-factory-listing { grid-template-columns:1fr auto; }
  .image-factory-listing div { grid-column:1/-1; }
  .image-queue-dashboard { grid-template-columns:repeat(8,112px); }
  .image-job-receipts { grid-template-columns:1fr; }
  .listing-standard-receipt { align-items:flex-start; }
  .listing-standard-rebuild { display:grid; }
  .listing-standard-rebuild .btn { width:100%;min-height:44px; }
  .listing-standard-view-confirm .btn { width:100%;min-height:46px; }
  .listing-delivery-operation__heading { display:grid; }
  .listing-delivery-operation__facts { grid-template-columns:1fr 1fr; }
  .listing-view-calibration { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .listing-set-approval.is-approved { align-items:flex-start; }
  .recipe-reference-grid { grid-template-columns:1fr; }
  .recipe-auto-stage-status { display:grid; }
  .recipe-auto-stage-status form,.recipe-auto-stage-status .btn { width:100%; }
  .recipe-reference-image-card { grid-template-rows:300px auto; }
  .recipe-reference-image-card>img { height:300px; }
  .recipe-reference-history>div { grid-template-columns:1fr;gap:3px; }
  .recipe-facts-form,.recipe-card-actions,.product-info-card-current { grid-template-columns:1fr; }
  .recipe-readiness-grid,.scene-family-grid { grid-template-columns:1fr; }
  .listing-copy-editor .action-row,.observed-etsy-gallery .action-row,.custom-order-fast-lane .action-row { display:grid;grid-template-columns:1fr; }
  .listing-copy-editor .btn,.observed-etsy-gallery .btn,.observed-etsy-gallery form,.custom-order-fast-lane .btn { width:100%;min-height:46px; }
  .copy-fact-reference dl { grid-template-columns:1fr;gap:3px; }
  .font-library-grid { grid-template-columns:1fr; }
  .font-library-toolbar form { min-width:100%; }
}
