/* Launch dashboard, Stripe test mode banner and the buy page plan highlight. Uses the portal palette tokens from style.css. */
/* The banner sits above the page in normal flow. The sidebar is position:fixed above 800px,
   so it has to be pushed down by the measured banner height or it loses its logo behind it. */
.launch-test-banner{position:sticky;top:0;z-index:40;background:var(--brass);color:#fff;text-align:center;font-weight:650;font-size:13px;line-height:1.5;padding:9px 16px}
@media(min-width:801px){body.has-test-banner aside{top:var(--test-banner-h,38px)}}
.launch-panel h3{font-size:var(--h3);margin:28px 0 12px}
.launch-panel h4{font-size:var(--h4);margin:20px 0 8px}
.launch-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}
.launch-head h2{margin:0 0 4px}
.launch-switch{display:flex;align-items:center;gap:8px;font-weight:600;min-height:44px}
.launch-switch input,.launch-check input{min-height:auto;width:18px;height:18px;accent-color:var(--ox)}
.launch-alert{background:#fbf1e1;border:1px solid #e7c98f;color:#5c3a07;border-radius:var(--radius-sm);padding:10px 12px;margin:12px 0}
.launch-filters{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin:16px 0 4px;padding:12px 0;border-block:1px solid var(--line)}
.launch-filters label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}
.launch-filters .launch-check{flex-direction:row;align-items:center;min-height:44px;font-size:13px;color:var(--ink)}
.launch-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.launch-tile{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:var(--space);display:flex;flex-direction:column;gap:4px;min-width:0}
.launch-tile span{font-size:12px;color:var(--muted)}
.launch-tile strong{font-size:24px;font-weight:650;font-variant-numeric:tabular-nums;line-height:1.2;overflow-wrap:anywhere}
.launch-tile small{font-size:12px;color:var(--muted)}
.launch-tile-strong{border-color:var(--ox)}
.launch-tile-warn{border-color:var(--brass);background:#fffaf2}
.launch-of{font-size:14px;color:var(--muted);font-weight:400}
.launch-chip{display:inline-block;background:#fbe9d0;color:#6b4208;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:650}
.launch-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-top:14px;align-items:start}
.launch-funnel{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;counter-reset:step}
.launch-funnel li{background:#fff;border:1px solid var(--line);border-left:4px solid var(--ox);border-radius:var(--radius);padding:12px 14px;display:flex;flex-direction:column;gap:2px}
.launch-funnel strong{font-size:22px;font-variant-numeric:tabular-nums}
.launch-funnel small,.launch-funnel span{font-size:12px;color:var(--muted)}
.launch-charts{margin-top:16px}
.launch-figure{margin:0 0 10px}
.launch-figure figcaption{font-size:12px;color:var(--muted);margin-bottom:4px}
.launch-figure figcaption strong{color:var(--ink)}
.launch-chart{display:block;width:100%;height:56px;background:#faf7f4;border-radius:6px}
.launch-bar-views{fill:#b98a95}
.launch-bar-checkouts{fill:#8f4a5a}
.launch-bar-purchases{fill:var(--ox)}
.launch-sectionbar{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.launch-sectionbar a{font-size:13px}
.launch-table td,.launch-table th{vertical-align:top}
.launch-table input[type=checkbox]{min-height:auto;width:18px;height:18px;accent-color:var(--ox)}
.launch-note{min-width:180px;min-height:var(--control-height);padding:6px 8px}
/* Same empty-state pattern as .empty in style.css. */
.launch-empty{display:block;background:#fff;border:1px dashed #d8c5cd;border-radius:var(--radius);padding:16px 18px;margin:8px 0;color:var(--muted);font-size:var(--text-body);line-height:1.55}
.access-plan-picked{border:2px solid var(--ox)}
.access-picked{margin:0 0 4px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ox)}
@media(max-width:640px){.launch-tile strong{font-size:20px}.launch-filters{flex-direction:column;align-items:stretch}.launch-note{min-width:140px}}
