﻿:root {
  --color-primary:#121212; --color-background:#fff; --color-background-secondary:#f3f3f3;
  --color-accent:#d94f00; --color-border:#9ca3aa; --color-success:#2e7d32;
  --color-warning:#ed6c02; --color-danger:#d32f2f; --color-info:#0288d1;
  --generator-silver:#c7cdd1; --generator-silver-dark:#687078; --generator-hyper:#e9ff32; --generator-steel:#202429; --generator-steel-deep:#0b0d0f;
  --font-heading:"Oswald",Arial,sans-serif; --font-body:"Rubik",Arial,sans-serif;
  --space-1:4px; --space-2:8px; --space-3:16px; --space-4:24px; --space-5:32px;
  --radius-sm:4px; --radius-md:8px; --radius-lg:16px; --shadow:0 12px 36px rgba(18,18,18,.16);
}
*{box-sizing:border-box} html{background:var(--color-background-secondary)} body{margin:0;color:var(--color-primary);font-family:var(--font-body);background:var(--color-background-secondary)}
html[data-generator-theme="black"]{color-scheme:dark;--color-background:#0b0d0f;--color-background-secondary:#050607;--color-primary:#fff;--color-border:#626970}
button,input,select,textarea{font:inherit} button,a{touch-action:manipulation} button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}
.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}.skip-link{position:fixed;z-index:1000;top:8px;left:8px;transform:translateY(-150%);background:#fff;color:#121212;padding:12px}.skip-link:focus{transform:none}
.eyebrow{margin:0 0 4px;color:#666;font:600 11px/1 var(--font-body);text-transform:uppercase}.button,.icon-button,.tool-button{min-height:44px;border:1px solid transparent;border-radius:var(--radius-md);font-weight:700;cursor:pointer;text-decoration:none}.button{padding:10px 16px}.button--primary{background:var(--color-accent);color:#121212}.button--outline{background:#fff;color:#121212;border-color:#121212}.button--ghost{background:transparent;color:#121212;border-color:var(--color-border)}.button--wide{width:100%}.icon-button{min-width:44px;background:#fff;border-color:var(--color-border);color:#121212;font-size:20px}.button:disabled,.icon-button:disabled{cursor:not-allowed;opacity:.45}
.editor-header{position:sticky;z-index:30;top:0;display:grid;grid-template-columns:auto auto minmax(170px,1fr) auto auto;gap:12px;align-items:center;padding:10px 20px;background:#fff;border-bottom:1px solid var(--color-border)}.brand-lockup{display:flex;align-items:baseline;gap:9px;font:700 22px/1 var(--font-heading)}.brand-lockup small{padding-left:9px;border-left:1px solid #aaa;font:600 12px/1 var(--font-body);color:#666}.design-name input{width:100%;max-width:420px;padding:9px 10px;border:1px solid transparent;border-radius:6px;font-weight:700}.design-name input:hover,.design-name input:focus{border-color:var(--color-border)}.save-status{display:flex;gap:7px;align-items:center;font-size:13px;white-space:nowrap}.save-status span:first-child{width:8px;height:8px;border-radius:50%;background:var(--color-success)}.save-status[data-state="error"] span:first-child{background:var(--color-danger)}.save-status[data-state="saving"] span:first-child{background:var(--color-warning)}.header-actions{display:flex;gap:8px;align-items:center}
.editor-main{max-width:1600px;margin:auto;padding:16px 20px 40px}.progress-stepper{display:grid;grid-template-columns:repeat(5,1fr);margin:0 0 12px;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.progress-stepper button{position:relative;display:flex;justify-content:center;align-items:center;gap:8px;min-height:52px;background:#fff;border:0;border-right:1px solid var(--color-border);cursor:pointer}.progress-stepper button:last-child{border-right:0}.progress-stepper span{display:grid;place-items:center;width:25px;height:25px;border:1px solid #999;border-radius:50%;font-size:12px}.progress-stepper .is-active{box-shadow:inset 0 -4px var(--color-accent)}.progress-stepper .is-complete span{background:var(--color-success);border-color:var(--color-success);color:#fff}.progress-stepper button:disabled{opacity:.48;cursor:not-allowed}
.progress-stepper button[hidden]{display:none!important}html[data-admin-studio="true"] .progress-stepper{grid-template-columns:repeat(4,1fr)}
.canvas-section{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:12px 16px}.canvas-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.canvas-heading h1{margin:0;font:600 21px/1.15 var(--font-heading);text-transform:uppercase}.toggle-row{display:flex;align-items:center;gap:8px;min-height:44px;font-size:13px}.toggle-row input{width:20px;height:20px;accent-color:var(--color-accent)}.canvas-scroll{width:100%;padding:10px 0;overflow:hidden}.artboard{--insert-aspect:12.094;position:relative;isolation:isolate;width:100%;aspect-ratio:var(--insert-aspect);min-height:70px;max-height:190px;overflow:hidden;background:#181818;border:2px solid #333;box-shadow:inset 0 0 24px rgba(0,0,0,.7)}.artboard[data-ready="false"]{background:repeating-linear-gradient(135deg,#151515,#151515 14px,#1f1f1f 14px,#1f1f1f 28px)}.canvas-placeholder{position:absolute;z-index:0;inset:0;display:grid;place-items:center;color:#9b9b9b;font:600 clamp(14px,2vw,25px)/1 var(--font-heading);letter-spacing:.06em}.safe-zone{position:absolute;z-index:20;inset:9% 3%;border:1px dashed rgba(249,102,1,.92);pointer-events:none}.safe-zone span{position:absolute;top:2px;left:4px;color:#fff;background:rgba(18,18,18,.78);font-size:12px}.layer-stage{position:absolute;z-index:2;inset:0}.canvas-layer{position:absolute;display:flex;align-items:center;justify-content:center;margin:0;padding:0;overflow:visible;background:transparent;border:1px solid transparent;color:#fff;cursor:move;touch-action:none}.canvas-layer[aria-pressed="true"]{border:2px solid #fff;box-shadow:0 0 0 2px var(--color-accent)}.canvas-layer.is-locked{cursor:not-allowed}.canvas-layer img{width:100%;height:100%;display:block}.canvas-layer--background,.canvas-layer--skin,.canvas-layer--aiImage{border:0}.canvas-text{white-space:pre-wrap}.asset-placeholder,.logo-placeholder{display:grid;place-items:center;width:100%;height:100%;padding:2px;background:rgba(249,102,1,.28);border:1px dashed #fff;color:#fff;font:700 12px/1.1 var(--font-heading);text-align:center}.transform-handle{position:absolute;width:12px;height:12px;border:2px solid #121212;border-radius:50%;background:#fff;touch-action:none}.transform-handle--nw{left:-7px;top:-7px}.transform-handle--ne{right:-7px;top:-7px}.transform-handle--sw{left:-7px;bottom:-7px}.transform-handle--se{right:-7px;bottom:-7px}.transform-handle--rotate{left:50%;top:-31px;width:23px;height:23px;transform:translateX(-50%);font-size:14px}.canvas-toolbar{display:flex;justify-content:center;gap:5px;flex-wrap:wrap}.canvas-toolbar button{min-height:44px;padding:6px 12px;border:1px solid var(--color-border);border-radius:6px;background:#fff;font-weight:600}
.control-grid{display:grid;grid-template-columns:minmax(280px,1.15fr) minmax(260px,.9fr) minmax(280px,.95fr);gap:14px;margin-top:14px}.control-panel{min-width:0;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:16px}.panel-heading{display:flex;align-items:center;gap:11px;margin-bottom:14px}.panel-heading h2{margin:0;font:600 20px/1.1 var(--font-heading);text-transform:uppercase}.walter-badge,.panel-icon{display:grid;place-items:center;flex:0 0 42px;height:42px;border-radius:8px;background:#121212;color:#f96601;font:700 22px/1 var(--font-heading)}.field{display:grid;gap:6px;margin-bottom:12px}.field>span:first-child,.field>label{font-size:12px;font-weight:700}.field input,.field select,.field textarea{width:100%;min-height:44px;padding:10px;border:1px solid #bcbcbc;border-radius:6px;background:#fff}.field textarea{resize:vertical}.preset-field{margin:0 0 12px;padding:0;border:0}.preset-field legend{margin-bottom:7px;font-size:12px;font-weight:700}.preset-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.preset-grid button{min-height:44px;padding:4px;border:1px solid var(--color-border);border-radius:6px;background:#fff;font-size:11px;font-weight:700}.preset-grid button.is-selected{background:#121212;color:#fff;border-color:#121212}.generation-meta{min-height:20px;margin:8px 0;color:#555;font-size:12px}.generation-results{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.concept-card{overflow:hidden;border:1px solid var(--color-border);border-radius:6px}.concept-preview{position:relative;display:grid;place-items:center;aspect-ratio:4/1;background:#181818;color:#fff;font-size:11px}.concept-preview img{width:100%;height:100%;object-fit:cover}.concept-card footer{padding:7px}.concept-card footer span{display:block;margin-bottom:5px;font-size:12px}.concept-card button{width:100%;min-height:40px;border:0;border-radius:4px;background:#121212;color:#fff;font-weight:700}.fitment-summary{display:grid;grid-template-columns:92px 1fr;gap:10px;margin:8px 0 12px;padding:10px;background:var(--color-background-secondary);border-radius:7px}.fitment-summary img{width:92px;height:70px;object-fit:cover}.fitment-summary div{display:flex;flex-direction:column;gap:4px}.fitment-summary span,.fitment-summary small{color:#666;font-size:11px}.fitment-summary[data-status="valid"]{border-left:4px solid var(--color-success)}.fitment-summary[data-status="pending"]{border-left:4px solid var(--color-warning)}.tool-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.tool-grid button,.tool-button{display:flex;align-items:center;gap:9px;min-height:56px;padding:8px;background:#fff;border:1px solid var(--color-border);border-radius:7px;color:#121212;font-size:12px;font-weight:700;cursor:pointer}.tool-grid span{display:grid;place-items:center;width:29px;height:29px;border-radius:5px;background:#f3f3f3;font:700 16px/1 var(--font-heading)}.tool-button--ideas{grid-column:1/-1;background:#121212;color:#fff;border-color:#121212}.tool-button--ideas span{background:var(--color-accent);color:#121212}
dialog{padding:0;border:0;border-radius:var(--radius-lg);box-shadow:var(--shadow);color:#121212}dialog::backdrop{background:rgba(18,18,18,.72)}.tool-dialog{width:min(720px,calc(100vw - 24px));max-height:min(800px,calc(100vh - 24px))}.dialog-header,.preview-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0;padding:16px 20px;border-bottom:1px solid var(--color-border)}.dialog-header h2,.preview-header h2{margin:0;font:600 24px/1 var(--font-heading);text-transform:uppercase}.dialog-body{max-height:calc(100vh - 120px);padding:20px;overflow:auto}.color-row{display:grid;grid-template-columns:60px 1fr;gap:8px}.segmented{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:14px}.segmented button,.effect-presets button,.filter-chips button{min-height:40px;border:1px solid var(--color-border);border-radius:6px;background:#fff;font-weight:600}.field-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.field-grid--four{grid-template-columns:repeat(4,1fr)}fieldset{margin:14px 0;border:1px solid var(--color-border);border-radius:8px}fieldset legend{font-weight:700}.effect-presets,.filter-chips{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 16px}.effect-presets button,.filter-chips button{padding:7px 10px}.asset-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.asset-tile{min-height:100px;padding:8px;border:1px solid var(--color-border);border-radius:7px;background:#fff;text-align:left}.asset-tile img{width:100%;height:54px;object-fit:contain;background:#f3f3f3}.asset-tile strong,.asset-tile small{display:block;margin-top:4px}.asset-gap,.finish-truth{padding:14px;border-left:4px solid var(--color-warning);background:#fff4e8}.upload-zone{display:grid;place-items:center;min-height:180px;padding:18px;border:2px dashed #aaa;border-radius:8px;text-align:center;cursor:pointer}.upload-zone>span{font-size:32px}.upload-zone input{position:absolute;opacity:0;pointer-events:none}.layer-list{display:grid;gap:8px;padding:0;list-style:none}.layer-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px;border:1px solid var(--color-border);border-radius:7px}.layer-row.is-selected{border-color:var(--color-accent);box-shadow:inset 3px 0 var(--color-accent)}.layer-main{display:grid;grid-template-columns:34px 1fr;grid-template-rows:auto auto;gap:0 8px;align-items:center;min-width:130px;padding:0;border:0;background:transparent;text-align:left}.layer-thumb{grid-row:1/3;display:grid;place-items:center;width:34px;height:34px;background:#121212;color:#fff;border-radius:5px}.layer-copy{font-weight:700}.layer-main small{color:#666}.layer-actions{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}.layer-action{min-height:36px;padding:5px 7px;border:1px solid var(--color-border);border-radius:5px;background:#fff;font-size:11px}
.tutorial-dialog{width:min(650px,calc(100vw - 24px));overflow:visible}.tutorial-card{padding:28px}.tutorial-card h2{margin:0 0 10px;font:600 30px/1.1 var(--font-heading);text-transform:uppercase}.tutorial-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:24px}.tutorial-actions label{display:flex;align-items:center;gap:6px;margin-right:auto;font-size:12px}.vehicle-preview-dialog{width:100vw;max-width:none;height:100vh;max-height:none;border-radius:0;background:#0e0e0e;color:#fff}.vehicle-preview-dialog .preview-header{border-color:#333}.vehicle-preview-dialog .eyebrow{color:#aaa}.vehicle-composite{position:relative;height:calc(100vh - 150px);overflow:hidden}.vehicle-composite>img{width:100%;height:100%;object-fit:cover;filter:grayscale(.25) brightness(.58);opacity:.72}.vehicle-insert-slot{position:absolute;left:14%;top:61%;width:72%;height:7.5%;overflow:hidden;background:#111;box-shadow:0 0 6px rgba(255,255,255,.18)}.vehicle-composite.is-lit .vehicle-insert-slot{filter:brightness(1.24);box-shadow:0 0 18px 8px rgba(255,255,255,.7);mix-blend-mode:screen}.development-label{position:absolute;left:20px;bottom:20px;padding:7px;background:#121212;color:#fff;font-size:11px}.preview-actions{position:absolute;right:24px;bottom:20px;display:flex;gap:8px}.finish-dialog{width:min(720px,calc(100vw - 24px))}.finish-checklist{display:grid;gap:8px;padding:20px}.check-item{display:grid;grid-template-columns:28px 1fr auto;gap:10px;align-items:center;padding:11px;border:1px solid var(--color-border);border-radius:7px}.check-icon{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--color-success);color:#fff}.check-item.is-failed .check-icon{background:var(--color-warning);color:#121212}.check-item p{margin:3px 0;color:#666;font-size:12px}.check-item button{min-height:40px;border:1px solid var(--color-border);border-radius:5px;background:#fff}.finish-truth{margin:0 20px 20px}.toast{position:fixed;z-index:100;left:50%;bottom:20px;transform:translate(-50%,150%);padding:12px 18px;border-radius:7px;background:#121212;color:#fff;box-shadow:var(--shadow);transition:transform .18s}.toast.is-visible{transform:translate(-50%,0)}.toast[data-error="true"]{background:var(--color-danger)}.rotate-interstitial{position:fixed;z-index:200;inset:0;display:none;place-items:center;align-content:center;padding:28px;background:#121212;color:#fff;text-align:center}.rotate-interstitial span{font-size:52px}.rotate-interstitial h1{font:600 30px/1 var(--font-heading)}
@media(max-width:1180px){.editor-header{grid-template-columns:auto auto 1fr auto}.save-status{display:none}.header-actions .button--ghost{display:none}.control-grid{grid-template-columns:1fr 1fr}.tools-panel{grid-column:1/-1}.tool-grid{grid-template-columns:repeat(4,1fr)}.tool-button--ideas{grid-column:auto}}
@media(max-width:800px) and (orientation:landscape){.editor-header{position:relative;grid-template-columns:auto auto 1fr auto;padding:6px 8px}.brand-lockup small,.design-name{display:none}.header-actions{gap:4px}.header-actions .button{padding:6px 9px;font-size:11px}.header-actions .button--outline{display:none}.editor-main{padding:8px}.progress-stepper{margin-bottom:7px}.progress-stepper button{min-height:44px}.progress-stepper strong{display:none}.canvas-section{padding:6px 8px}.canvas-heading{display:none}.artboard{min-height:64px}.canvas-toolbar{display:none}.control-grid{grid-template-columns:1.1fr .9fr .9fr;gap:7px;margin-top:7px}.control-panel{padding:8px}.panel-heading{margin-bottom:6px}.panel-heading h2{font-size:15px}.panel-heading .eyebrow,.panel-icon,.walter-badge{display:none}.field{margin-bottom:6px}.field>span:first-child{display:none}.field input,.field select,.field textarea{min-height:44px;padding:7px}.field textarea{height:48px}.preset-grid{grid-template-columns:repeat(4,1fr);gap:3px}.preset-grid button{font-size:12px}.generation-results{display:none}.fitment-summary{display:none}.tool-grid{grid-template-columns:repeat(2,1fr);gap:4px}.tool-grid button,.tool-button{min-height:44px;padding:4px;font-size:12px}.tool-grid span{width:22px;height:22px}.tool-button--ideas{grid-column:1/-1}.button--wide{min-height:44px;padding:5px}.generation-meta{display:none}.tools-panel{grid-column:auto}.tool-dialog{width:min(520px,88vw);height:92vh;max-height:none;margin:auto 0 auto auto;border-radius:12px 0 0 12px}.dialog-body{max-height:calc(92vh - 76px)}}
@media(max-width:700px){.field-grid,.field-grid--four{grid-template-columns:1fr}.layer-row{align-items:flex-start;flex-direction:column}.layer-actions{justify-content:flex-start}.asset-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:800px) and (orientation:portrait){html,body{width:100%;overflow:hidden}dialog[open]{display:none}
/* The sign-in gate opens as a MODAL on first entry, and hiding an open modal
   makes the whole page inert with nothing visible to tap: a fresh portrait
   phone visitor was frozen on the rotate screen with no Escape key to save
   them. The gate stays visible in portrait (the dialog top layer paints over
   the interstitial), so it can be dismissed before the rotate message takes
   over. Every other dialog keeps the portrait hide because none of them can
   open while the editor is hidden. */
#signinDialog[open]{display:block}
.rotate-interstitial{display:grid;width:100vw;height:100vh}.editor-header,.editor-main{visibility:hidden}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Consolidated single-mode tool workflows. */
.tool-grid{grid-template-columns:repeat(5,1fr)}
.mobile-action-dock{display:none}
.background-ideas-link{display:grid;grid-template-columns:42px 1fr;gap:1px 10px;align-items:center;margin-bottom:14px;padding:10px;border-radius:8px;background:#121212;color:#fff;text-decoration:none}
.background-ideas-link>span{grid-row:1/3;display:grid;place-items:center;width:42px;height:42px;border-radius:6px;background:#f96601;color:#121212;font-weight:800}
.background-ideas-link small{color:#d8d8d8}
.background-color-preview{--background-preview-color:#121212;position:relative;display:grid;place-items:center;width:100%;aspect-ratio:12.094;min-height:76px;margin-bottom:14px;overflow:hidden;border:2px solid #121212;border-radius:7px;background:var(--background-preview-color);box-shadow:inset 0 0 18px rgba(0,0,0,.3)}.background-color-preview::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(135deg,transparent 0 16px,rgba(255,255,255,.07) 16px 32px);pointer-events:none}.background-color-preview span{position:relative;z-index:1;color:#fff;font:700 18px/1 var(--font-heading);letter-spacing:.05em;text-shadow:0 1px 4px #121212}.background-color-preview small{position:absolute;z-index:1;right:8px;bottom:5px;color:#fff;font-size:11px;text-shadow:0 1px 3px #121212}.background-ideas-link{margin-bottom:10px}
.background-fill-note,.selection-required{margin:8px 0 14px;padding:9px;border-left:3px solid #f96601;background:#f3f3f3;font-size:12px}
.text-editor-layout{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(390px,1.25fr);gap:16px}
.tool-dialog.is-text-tool{width:min(980px,calc(100vw - 24px))}
.text-mock-column h3{margin:0 0 12px;font:600 20px/1 var(--font-heading);text-transform:uppercase}
.text-mock-artboard{position:relative;isolation:isolate;width:100%;aspect-ratio:12.094;min-height:92px;overflow:hidden;background:#000;border:2px solid #333;box-shadow:inset 0 0 20px #000}
.text-mock-design-stage{z-index:1;pointer-events:none}.text-mock-design-stage .canvas-layer{border:0;pointer-events:none}
.text-mock-safe-zone{position:absolute;z-index:5;inset:9% 3%;border:1px dashed #f96601;color:#fff;font-size:11px;pointer-events:none}
.text-mock-layer{position:absolute;z-index:4;left:50%;top:50%;width:86%;transform:translate(-50%,-50%);text-align:center;white-space:pre-wrap}
.text-mock-layer span{position:absolute;inset:0;display:block;transform:translateY(-50%);font:700 30px/1 var(--font-heading);white-space:pre-wrap;text-align:inherit}
.text-mock-layer span:last-child{z-index:2}
.placement-controls{margin-top:14px}
.text-editor-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-bottom:10px}
.text-editor-tabs button{min-height:44px;border:1px solid #d8d8d8;border-radius:6px;background:#fff;font-size:12px;font-weight:700}
.text-editor-tabs button[aria-selected="true"]{background:#121212;color:#fff}
.outline-control{display:grid;grid-template-columns:1fr 90px;gap:10px}
.color-only input[type="color"]{padding:4px}
.compact-effects{display:grid;grid-template-columns:1.2fr .8fr;gap:8px}
.compact-effects fieldset{margin:4px 0;padding:6px}
.compact-effects .field{margin-bottom:4px}
.text-add-button{width:100%;margin-top:4px}
.font-preview-select{font-size:18px;font-weight:700}
.canvas-text{position:relative}
.canvas-text-outline{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;width:100%;height:100%;white-space:pre-wrap}
.canvas-text-outline--inner{z-index:2}
.mobile-panel-dialog{width:min(620px,calc(100vw - 16px));max-height:calc(100vh - 16px)}
.mobile-panel-close{position:absolute;z-index:5;right:8px;top:8px}
.mobile-panel-dialog .control-panel{border:0}

/* Landscape mobile is a fixed, artwork-first workspace with no page or panel scrolling. */
@media(max-width:960px) and (orientation:landscape){
  .text-style-panel>.text-entry-row{grid-column:1/-1;grid-row:1;height:23px}.text-entry-row input,.text-entry-row .text-style-add{min-height:23px!important;height:23px!important;padding:1px 5px;font-size:11px}.text-entry-row .text-style-add{grid-column:auto!important;width:auto!important}
  html,body{height:100dvh;overflow:hidden}
  .editor-header{position:relative;height:54px;grid-template-columns:auto auto 1fr auto;padding:5px 8px}
  .brand-lockup{font-size:18px}.brand-lockup small,.design-name,.save-status{display:none}
  .header-actions{gap:4px}.header-actions .button{min-height:44px;padding:5px 9px;font-size:11px}.header-actions .button--outline,.header-actions .button--ghost{display:none}
  .editor-main{height:calc(100dvh - 54px);padding:6px;display:grid;grid-template-rows:40px minmax(0,1fr) 52px;gap:6px;overflow:hidden}
  .progress-stepper{height:40px;margin:0}.progress-stepper button{min-height:40px}.progress-stepper strong{display:block;font-size:11px}.progress-stepper span{width:22px;height:22px}
  .canvas-section{min-height:0;padding:5px 8px;overflow:hidden}.canvas-heading{display:none}.canvas-scroll{height:100%;padding:0;display:grid;align-items:center}.artboard{min-height:64px;max-height:none}.canvas-toolbar{display:none}
  .control-grid{display:none}.mobile-action-dock{display:grid;grid-template-columns:repeat(8,1fr);gap:4px;height:52px}
  .mobile-action-dock button{display:grid;grid-template-columns:auto 1fr;gap:4px;align-items:center;justify-content:center;min-width:0;min-height:48px;padding:3px;border:1px solid #d8d8d8;border-radius:6px;background:#fff;font-size:12px;font-weight:700}
  .mobile-action-dock span{display:grid;place-items:center;width:22px;height:22px;border-radius:4px;background:#121212;color:#f96601;font:700 13px/1 var(--font-heading)}
  .tool-dialog,.mobile-panel-dialog{width:calc(100vw - 12px);height:calc(100dvh - 12px);max-height:none;margin:auto;border-radius:10px;overflow:hidden}
  .dialog-header{height:48px;padding:5px 10px}.dialog-header h2{font-size:19px}.dialog-header .eyebrow{display:none}
  .dialog-body{height:calc(100dvh - 60px);max-height:none;padding:7px;overflow:hidden}.dialog-body>[data-tool-panel]{height:100%;overflow:hidden}
  .mobile-panel-dialog{padding:6px}.mobile-panel-dialog .control-panel{height:100%;padding:8px;overflow:hidden}.mobile-panel-dialog .panel-heading{margin-bottom:5px}.mobile-panel-dialog .panel-heading h2{font-size:16px}.mobile-panel-dialog .panel-icon,.mobile-panel-dialog .walter-badge,.mobile-panel-dialog .eyebrow{display:none}
  .mobile-panel-dialog .field{margin-bottom:5px}.mobile-panel-dialog textarea{height:44px;resize:none}.mobile-panel-dialog .preset-grid{gap:3px}.mobile-panel-dialog .preset-grid button{min-height:36px;font-size:12px}
  .mobile-panel-dialog .generation-results{grid-template-columns:repeat(4,1fr);gap:4px}.mobile-panel-dialog .concept-card footer span{display:none}.mobile-panel-dialog .concept-card button{min-height:34px;font-size:12px}
  .mobile-panel-dialog .fitment-summary{grid-template-columns:70px 1fr;margin:4px 0;padding:5px}.mobile-panel-dialog .fitment-summary img{width:70px;height:48px}
  .text-editor-layout{height:100%;grid-template-columns:minmax(260px,.85fr) minmax(0,1.25fr);gap:8px}.text-mock-column h3{margin-bottom:5px;font-size:15px}.text-mock-artboard{min-height:68px}.placement-controls{margin-top:6px;gap:6px}
  .text-editor-controls{min-height:0}.text-editor-tabs{margin-bottom:5px}.text-editor-tabs button{min-height:36px;font-size:12px}.text-editor-controls .field{gap:2px;margin-bottom:4px}.text-editor-controls .field input,.text-editor-controls .field select,.text-editor-controls .field textarea{min-height:34px;height:34px;padding:4px}.text-editor-controls .field textarea{resize:none}.text-editor-controls .field-grid{gap:5px}
  .effect-presets{gap:3px;margin:3px 0 5px}.effect-presets button{min-height:30px;padding:3px 5px;font-size:12px}.outline-control{grid-template-columns:1fr 72px;gap:5px}.compact-effects{gap:5px}.compact-effects fieldset{margin:2px 0;padding:4px}.compact-effects input{max-width:100%}.text-add-button{min-height:38px;padding:5px}
  .background-ideas-link{margin-bottom:6px;padding:5px}.background-ideas-link small{display:none}.asset-grid{grid-template-columns:repeat(3,1fr);gap:5px}.asset-tile{min-height:82px}.upload-zone{min-height:220px}.layer-list{grid-template-columns:repeat(2,1fr);gap:4px}.layer-row{padding:4px}.layer-actions{gap:2px}
}

/* AeroForge machine skin: an industrial generator shell around the artwork-first workflow. */
html,body{min-height:100%;background-color:#d7dadd}
body{background-image:linear-gradient(rgba(235,238,240,.88),rgba(214,218,221,.9)),url("/apps/creativeos/custom-insert/assets/aeroforge-steel.webp");background-size:auto,cover;background-attachment:fixed}
.editor-header{background:linear-gradient(180deg,#f7f8f8,#c1c6ca 48%,#8c9399 49%,#d9dde0 100%);border-bottom:3px solid var(--generator-steel-deep);box-shadow:0 6px 0 rgba(18,18,18,.3),0 16px 30px rgba(18,18,18,.3)}
.brand-lockup{align-items:center;text-transform:uppercase;text-shadow:0 1px #fff}.brand-lockup span{font-size:27px;font-weight:700}.brand-lockup small{color:#30353a;font:800 11px/1 var(--font-heading);letter-spacing:.05em}
.generator-theme-toggle{display:flex;align-items:center;gap:6px;background:#15181b;color:#fff;border-color:#c7cdd1;box-shadow:inset 0 1px #697078,0 3px 0 #000}.generator-theme-toggle span{color:var(--generator-hyper)}
.progress-stepper,.canvas-section,.creation-chooser,.control-panel,dialog{border:1px solid #454b51;border-radius:3px;box-shadow:inset 0 1px rgba(255,255,255,.85),0 3px 0 #5c6369,0 12px 22px rgba(10,12,14,.28)}
.progress-stepper{background:linear-gradient(180deg,#f8f9f9,#b8bdc1)}.progress-stepper button{background:transparent;border-color:#8c9399}.progress-stepper .is-active{background:linear-gradient(180deg,#fff,#d7dadd);box-shadow:inset 0 -5px var(--generator-hyper)}.progress-stepper .is-complete span{background:#202429;border-color:var(--generator-hyper);color:var(--generator-hyper)}
.canvas-section,.control-panel{background:linear-gradient(135deg,rgba(255,255,255,.95),rgba(207,211,214,.95)),url("/apps/creativeos/custom-insert/assets/aeroforge-steel.webp");background-size:auto,760px auto;background-blend-mode:normal,luminosity}
.canvas-section::before,.control-panel::before,.text-option-group::before{content:"";position:absolute;pointer-events:none;inset:5px;border:1px solid rgba(255,255,255,.72);clip-path:polygon(0 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%)}
.creation-chooser{background:linear-gradient(115deg,#171a1d 0 34%,#2b3035 34% 68%,#111315 68%);color:#fff}.creation-chooser .eyebrow{color:var(--generator-hyper)}
.panel-heading{position:relative;padding-bottom:9px;border-bottom:2px solid #70777d}.panel-heading::after{content:"";position:absolute;left:0;bottom:-2px;width:92px;height:2px;background:var(--generator-hyper);box-shadow:110px 0 var(--color-accent)}
.panel-heading h2,.dialog-header h2,.preview-header h2,.creation-chooser h2{text-shadow:0 1px rgba(255,255,255,.65);letter-spacing:.025em}
.walter-badge,.panel-icon{border:1px solid #777f86;border-radius:3px;background:linear-gradient(145deg,#30363b,#050607);color:var(--generator-hyper);box-shadow:inset 0 1px #899198,0 4px 0 #050607}
.button,.icon-button,.panel-close,.dialog-close,.canvas-toolbar button,.alignment-buttons button,.font-preview-button,.tool-grid button,.liquid-button,.text-asset-actions button{border-radius:2px!important;text-transform:uppercase;font-family:var(--font-heading);font-weight:800;letter-spacing:.02em;box-shadow:inset 0 1px rgba(255,255,255,.72),0 3px 0 #5b6268,0 7px 12px rgba(10,12,14,.2)}
.button--primary{background:linear-gradient(#e65a08,#a93400);color:#fff;border-color:#6f2600}.button--outline,.button--ghost,.icon-button,.panel-close,.dialog-close{background:linear-gradient(#fff,#b8bdc1);color:#111;border-color:#555b60}
.button:hover:not(:disabled),.icon-button:hover:not(:disabled),.tool-grid button:hover,.text-asset-actions button:hover{transform:translateY(-1px);filter:brightness(1.07)}
.tool-grid button,.liquid-tool{min-height:76px;background:linear-gradient(150deg,#f8f9f9,#aeb4b9 60%,#e2e5e7);border:1px solid #656c72;color:#121212}.tool-grid svg,.liquid-tool svg,.text-asset-actions svg{color:var(--generator-hyper);background:#15181b;border:1px solid #70777d}
.tool-grid button::after{content:"";width:22px;height:4px;margin-left:auto;background:repeating-linear-gradient(90deg,var(--generator-hyper) 0 4px,transparent 4px 7px)}
.eyebrow{color:#4f565c;font-weight:800;letter-spacing:.06em}.dialog-header .eyebrow,.preview-header .eyebrow{color:var(--generator-hyper)}
dialog{background:#d9dde0}.dialog-header,.preview-header,.nested-panel-header{background:linear-gradient(110deg,#101214,#30353a 65%,#151719);color:#fff;border-bottom:3px solid var(--generator-hyper)}.dialog-body{background:linear-gradient(rgba(225,228,230,.96),rgba(176,181,185,.96)),url("/apps/creativeos/custom-insert/assets/aeroforge-steel.webp");background-size:auto,cover}
.text-option-group{position:relative;border-color:#555b60;border-radius:2px;background:linear-gradient(145deg,#f7f8f8,#bcc1c5);box-shadow:inset 0 1px #fff,0 4px 0 #686f75,0 10px 18px rgba(18,18,18,.22)}.text-option-group>legend{padding:3px 10px;background:#202429;color:#fff;border-left:5px solid var(--generator-hyper);font-family:var(--font-heading);text-transform:uppercase}
.text-style-effects{grid-template-rows:1fr!important}.text-style-effects>.outline-control{align-self:center}.shadow-controls,.text-delete-handle,.text-rotate-handle{display:none!important}
.alignment-buttons button[aria-pressed="true"]{background:#15181b;color:var(--generator-hyper);border-color:var(--generator-hyper);box-shadow:inset 0 0 0 1px #000,0 3px 0 #000}
.text-mock-layer{cursor:move;touch-action:none}.text-mock-layer:active{cursor:grabbing}
.effect-presets button{border-radius:2px!important;border-color:#666d73!important;box-shadow:inset 0 1px rgba(255,255,255,.9),0 3px 0 #5e656b!important}
.field input,.field select,.field textarea,.text-entry-row input{border-radius:2px;background:linear-gradient(#fff,#e6e8e9);border-color:#646b70;box-shadow:inset 0 2px 4px rgba(18,18,18,.14)}

html[data-generator-theme="black"] body{color:#fff;background-image:linear-gradient(rgba(2,3,4,.62),rgba(2,3,4,.84)),url("/apps/creativeos/custom-insert/assets/aeroforge-steel.webp")}
html[data-generator-theme="black"] .editor-header{background:linear-gradient(#282d31,#090a0c);color:#fff;border-color:var(--generator-hyper)}
html[data-generator-theme="black"] .brand-lockup{text-shadow:0 1px #000}html[data-generator-theme="black"] .brand-lockup small{color:var(--generator-silver)}
html[data-generator-theme="black"] .progress-stepper,html[data-generator-theme="black"] .canvas-section,html[data-generator-theme="black"] .control-panel{color:#fff;background:linear-gradient(135deg,rgba(24,27,30,.96),rgba(7,8,10,.97)),url("/apps/creativeos/custom-insert/assets/aeroforge-steel.webp");background-size:auto,760px auto}
html[data-generator-theme="black"] .progress-stepper button{color:#fff}html[data-generator-theme="black"] .progress-stepper .is-active{background:#202429}
html[data-generator-theme="black"] .eyebrow{color:var(--generator-hyper)}html[data-generator-theme="black"] .field input,html[data-generator-theme="black"] .field select,html[data-generator-theme="black"] .field textarea{background:#111418;color:#fff;border-color:#737b82}
html[data-generator-theme="black"] .fitment-summary{background:#16191c;color:#fff}html[data-generator-theme="black"] .fitment-summary span,html[data-generator-theme="black"] .fitment-summary small{color:#c7cdd1}
html[data-generator-theme="black"] .tool-grid button{background:linear-gradient(145deg,#343a3f,#111315);color:#fff;border-color:#747c83}
html[data-generator-theme="black"] .creation-chooser{border-color:var(--generator-hyper)}

@media(max-width:960px) and (orientation:landscape){.generator-theme-toggle strong{display:none}.generator-theme-toggle{min-width:44px;padding:4px}.tool-grid button,.liquid-tool{min-height:44px}.text-style-effects{grid-template-rows:1fr!important}}
.editor-main>*{grid-column:1}.creation-chooser{order:0;grid-column:1}

/* Bounded correction: shared liquid-glass component and viewport-safe composition. */
:root{--liquid-top:#fff9f4;--liquid-mid:#ffc89f;--liquid-bottom:#f96601;--liquid-border:rgba(255,255,255,.88);--liquid-focus:#121212;--liquid-shadow:0 7px 16px rgba(167,61,0,.2)}
html,body{height:100%;overflow:hidden}.editor-main{height:calc(100vh - 65px);display:grid;grid-template-rows:44px minmax(160px,1.15fr) 86px minmax(220px,1fr);gap:8px;padding:8px 20px 10px;overflow:hidden}.progress-stepper{margin:0}.canvas-section{min-height:0;padding:8px 16px;overflow:hidden}.canvas-heading h1{font-size:19px}.canvas-scroll{padding:6px 0}.artboard{min-height:70px;max-height:150px}.canvas-toolbar button{min-height:36px}.control-grid{min-height:0;display:grid;grid-template-columns:minmax(270px,.62fr) minmax(0,1.38fr);gap:8px;margin:0;overflow:hidden}.control-panel{min-height:0;height:100%;padding:10px;overflow:hidden}.fit-panel{order:0;grid-column:1}.walter-panel,.tools-panel{order:0;grid-column:2}.control-grid:not([data-creation-path]) .fit-panel{grid-column:1/-1;max-width:560px}.panel-heading{margin-bottom:7px}.fitment-summary{grid-template-columns:70px 1fr;margin:4px 0 7px;padding:6px}.fitment-summary img{width:70px;height:48px}.field{margin-bottom:7px}.field input,.field select,.field textarea{min-height:40px;padding:7px}.walter-panel{display:grid;grid-template-columns:minmax(260px,.82fr) minmax(0,1.18fr);grid-template-rows:auto auto auto 1fr;gap:5px 10px}.walter-panel .panel-heading{grid-column:1/-1}.walter-panel .field,.walter-panel .preset-field{margin:0}.walter-panel .preset-grid{gap:4px}.walter-panel .preset-grid button{min-height:36px}.walter-panel #generateButton{grid-column:1}.walter-panel .generation-explainer,.walter-panel .generation-meta,.walter-panel .generation-autofill{grid-column:1;margin:0}.walter-panel .generation-results{grid-column:2;grid-row:2/5;align-content:start}.generation-results{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.concept-preview{aspect-ratio:12.094}.concept-card{border-radius:10px}.concept-card footer{padding:5px}.concept-card button{min-height:36px}.tools-panel{display:grid;grid-template-rows:auto 1fr}.tool-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;align-items:stretch}
.creation-chooser{display:grid;grid-template-columns:minmax(210px,.36fr) minmax(0,1fr);align-items:center;gap:12px;width:100%;min-height:0;padding:8px 12px;border:1px solid #f7b27f;border-radius:16px;background:linear-gradient(135deg,#fff 0%,#fff6ef 60%,#ffe4cf 100%);box-shadow:0 7px 18px rgba(249,102,1,.1)}.creation-chooser h2{margin:0;font:600 20px/1 var(--font-heading);text-transform:uppercase}.creation-choice-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.liquid-button,.mobile-action-dock button,.effect-presets button{position:relative;isolation:isolate;overflow:hidden;border:1px solid var(--liquid-border);background:linear-gradient(180deg,var(--liquid-top) 0%,var(--liquid-mid) 52%,rgba(249,102,1,.72) 100%);box-shadow:inset 0 1px 0 #fff,inset 0 -7px 12px rgba(138,45,0,.13),var(--liquid-shadow);color:#121212;cursor:pointer;transition:transform .14s ease,filter .14s ease,box-shadow .14s ease}.liquid-button::before,.mobile-action-dock button::before,.effect-presets button::before{content:"";position:absolute;z-index:-1;left:8%;right:22%;top:4px;height:27%;border-radius:999px;background:rgba(255,255,255,.7)}.liquid-button:hover,.mobile-action-dock button:hover,.effect-presets button:hover{transform:translateY(-2px);filter:saturate(1.08);box-shadow:inset 0 1px 0 #fff,inset 0 -7px 12px rgba(138,45,0,.12),0 10px 20px rgba(167,61,0,.25)}.liquid-button:active,.mobile-action-dock button:active,.effect-presets button:active{transform:translateY(1px);box-shadow:inset 0 3px 9px rgba(102,33,0,.22),0 3px 8px rgba(167,61,0,.16)}.liquid-button:focus-visible,.mobile-action-dock button:focus-visible,.effect-presets button:focus-visible{outline:3px solid var(--liquid-focus);outline-offset:2px}.liquid-button.is-selected,.liquid-button[aria-pressed="true"]{filter:saturate(1.2) brightness(1.05);border-color:#f96601;box-shadow:inset 0 0 0 2px #fff,0 0 0 3px #f96601,0 10px 20px rgba(167,61,0,.26)}.liquid-button:disabled,.mobile-action-dock button:disabled{cursor:not-allowed;filter:grayscale(.38);opacity:.62;box-shadow:inset 0 1px 0 rgba(255,255,255,.7)}.liquid-choice{display:grid;grid-template-columns:42px minmax(0,1fr);gap:9px;align-items:center;min-height:62px;padding:7px 12px;border-radius:999px;text-align:left}.liquid-choice svg,.liquid-tool svg,.liquid-mini svg,.mobile-action-dock svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.liquid-choice svg{width:38px;height:38px;padding:8px;border-radius:50%;background:#121212;color:#f96601}.liquid-choice strong,.liquid-choice small{display:block}.liquid-choice strong{font-size:13px}.liquid-choice small{margin-top:2px;color:#503626;font-size:12px;line-height:1.15}.tool-grid .liquid-tool{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;width:100%;min-width:0;min-height:76px;height:100%;padding:7px 4px;border-radius:22px;text-align:center}.tool-grid .liquid-tool svg{width:28px;height:28px;padding:5px;border-radius:50%;background:#121212;color:#f96601}.tool-grid .liquid-tool span{display:-webkit-box;width:100%;height:auto;max-width:100%;overflow:hidden;background:none;font:700 12px/1.15 var(--font-body);-webkit-box-orient:vertical;-webkit-line-clamp:2}.effect-presets{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin:0 0 6px}.effect-presets button{min-height:32px;padding:3px 5px;border-radius:999px;font-size:12px}.alignment-buttons,.nudge-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.nudge-buttons{grid-template-columns:repeat(4,1fr)}.alignment-buttons button,.nudge-buttons button{min-height:36px;border:1px solid #d8d8d8;border-radius:8px;background:#fff;font-weight:700}.alignment-buttons button[aria-pressed="true"]{background:#121212;color:#fff}.text-window-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.text-window-actions .button{min-height:44px}.text-options-workspace{height:100%;grid-template-rows:auto minmax(0,1fr);gap:6px}.text-mock-heading h3{font-size:17px}.text-mock-artboard{min-height:66px;max-height:88px}.placement-controls{margin-top:4px}.text-options-title{margin-bottom:4px;padding:5px 9px}.text-options-grid{grid-template-columns:1fr 1.15fr 1fr;gap:6px}.text-option-group{padding:6px}.text-option-group .field{margin-bottom:4px}.text-option-group .field input,.text-option-group .field select,.text-option-group .field textarea{min-height:34px;height:34px;padding:4px}.text-option-group .field textarea{resize:none}.tool-dialog.is-text-tool{width:min(1120px,calc(100vw - 20px));height:min(740px,calc(100vh - 20px));max-height:none}.tool-dialog.is-text-tool .dialog-body{height:calc(100% - 65px);max-height:none;padding:10px;overflow:hidden}.tool-dialog.is-text-tool [data-tool-panel="textOptions"]{height:100%}.tutorial-entry-actions{display:grid;grid-template-columns:1fr 1.5fr;gap:8px;margin-top:12px}.tutorial-permanent{display:flex;align-items:center;gap:6px;margin-top:10px;font-size:12px}.tutorial-actions[hidden],.tutorial-entry-actions[hidden]{display:none}
@media(max-width:1100px) and (min-width:961px){.editor-main{padding-inline:10px}.creation-chooser{grid-template-columns:190px 1fr}.creation-chooser h2{font-size:17px}.liquid-choice{grid-template-columns:34px 1fr;padding-inline:8px}.liquid-choice svg{width:32px;height:32px}.tool-grid{gap:5px}.tool-grid .liquid-tool{border-radius:17px}.walter-panel{grid-template-columns:.9fr 1.1fr}.fitment-summary small{display:none}}
@media(max-width:960px) and (orientation:landscape){
  .editor-main{height:calc(100dvh - 48px);grid-template-rows:32px minmax(78px,1fr) 52px 52px;gap:4px;padding:4px}.editor-header{height:48px}.progress-stepper{height:32px}.progress-stepper button{min-height:32px}.progress-stepper strong{font-size:12px}.canvas-section{padding:3px 6px}.artboard{min-height:58px;max-height:none}.creation-chooser{display:grid;grid-template-columns:120px 1fr;height:52px;padding:3px 6px;border-radius:10px}.creation-chooser .eyebrow{display:none}.creation-chooser h2{font-size:13px}.creation-choice-buttons{gap:4px}.liquid-choice{grid-template-columns:25px 1fr;min-height:44px;padding:3px 6px;border-radius:16px}.liquid-choice svg{width:24px;height:24px;padding:4px}.liquid-choice strong{font-size:12px}.liquid-choice small{display:none}.control-grid{display:none}.mobile-action-dock{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:3px;height:52px}.mobile-action-dock button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-width:0;min-height:44px;padding:2px;border-radius:14px;font-size:11px}.mobile-action-dock button svg{width:21px;height:21px;padding:3px;border-radius:50%;background:#121212;color:#f96601}.mobile-action-dock button span{display:block;width:100%;height:auto;overflow:hidden;background:none;color:#121212;font:700 11px/1 var(--font-body);text-overflow:ellipsis;white-space:nowrap}.tool-dialog,.mobile-panel-dialog{height:calc(100dvh - 8px)}.tool-dialog.is-text-tool{width:calc(100vw - 8px);height:calc(100dvh - 8px)}.tool-dialog.is-text-tool .dialog-header{height:40px}.tool-dialog.is-text-tool .dialog-body{height:calc(100% - 40px);padding:4px}.text-options-workspace{grid-template-rows:82px minmax(0,1fr);gap:3px}.text-mock-heading{height:25px}.text-mock-heading h3{font-size:12px}.text-mock-artboard{min-height:47px;max-height:50px}.placement-controls{position:absolute;right:6px;top:43px;width:38%;gap:3px}.text-editor-controls{min-height:0}.text-options-title{height:25px;padding:2px 6px}.text-options-title h3{font-size:13px}.text-options-grid{grid-template-columns:1fr 1fr;gap:3px}.text-option-group{padding:3px}.text-option-group:nth-child(3){grid-column:1/-1;display:grid;grid-template-columns:1fr auto;gap:3px}.text-option-group legend{font-size:12px}.text-option-group .field{gap:1px;margin-bottom:2px}.text-option-group .field>span:first-child{font-size:11px}.text-option-group .field input,.text-option-group .field select,.text-option-group .field textarea{min-height:25px;height:25px;padding:1px;font-size:12px}.text-option-group .field-grid{gap:2px}.effect-presets{grid-template-columns:repeat(4,1fr);gap:2px;margin-bottom:2px}.effect-presets button{min-height:23px;padding:1px 3px;font-size:11px}.outline-control{grid-template-columns:1fr 42px;gap:2px}.compact-effects{grid-template-columns:1fr 1fr}.compact-effects fieldset{padding:2px}.alignment-buttons button,.nudge-buttons button{min-height:25px;padding:1px;font-size:11px}.text-window-actions{position:absolute;right:7px;bottom:6px;width:34%;gap:4px}.text-window-actions .button{min-height:30px;padding:2px;font-size:12px}.tutorial-dialog{right:5px;bottom:5px;width:min(365px,48vw);max-height:calc(100dvh - 10px)}.tutorial-card{padding:8px}.tutorial-entry-actions{gap:4px}.tutorial-entry-actions .button{min-height:34px;padding:4px;font-size:11px}
}

/* Orange liquid controls and explicit AI/manual creation paths. */
.icon-sprite{position:absolute;width:0;height:0;overflow:hidden}
.control-grid{grid-template-columns:minmax(280px,.72fr) minmax(520px,1.28fr)}
.fit-panel{order:1;grid-column:1}.creation-chooser{order:1;grid-column:2;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 16px;border:1px solid #f7b27f;border-radius:16px;background:linear-gradient(135deg,#fff 0%,#fff6ef 60%,#ffe4cf 100%);box-shadow:0 10px 24px rgba(249,102,1,.1)}
.walter-panel,.tools-panel{order:2;grid-column:1/-1}.control-grid:not([data-creation-path]) .walter-panel,.control-grid:not([data-creation-path]) .tools-panel{display:none}
.creation-chooser h2{margin:0;font:600 22px/1 var(--font-heading);text-transform:uppercase}
.creation-choice-buttons{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:10px;flex:1;max-width:760px}
.liquid-choice,.liquid-tool,.liquid-mini,.mobile-action-dock button{position:relative;isolation:isolate;overflow:hidden;border:1px solid rgba(249,102,1,.5);background:linear-gradient(145deg,rgba(255,255,255,.96) 0%,rgba(255,220,194,.94) 45%,rgba(249,102,1,.35) 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.95),inset 0 -8px 18px rgba(249,102,1,.12),0 7px 16px rgba(249,102,1,.14);color:#121212;cursor:pointer}
.liquid-choice::before,.liquid-tool::before,.liquid-mini::before,.mobile-action-dock button::before{content:"";position:absolute;z-index:-1;left:8%;right:28%;top:5px;height:28%;border-radius:999px;background:rgba(255,255,255,.65);filter:blur(1px)}
.liquid-choice{display:grid;grid-template-columns:48px 1fr;gap:10px;align-items:center;min-height:68px;padding:9px 12px;border-radius:999px;text-align:left}
.liquid-choice svg,.liquid-tool svg,.liquid-mini svg,.mobile-action-dock svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.liquid-choice svg{width:42px;height:42px;padding:9px;border-radius:50%;background:#121212;color:#f96601}
.liquid-choice strong,.liquid-choice small{display:block}.liquid-choice strong{font-size:13px}.liquid-choice small{margin-top:3px;color:#5e4637;font-size:12px;line-height:1.2}
.liquid-choice.is-selected{border-color:#121212;box-shadow:inset 0 0 0 2px #f96601,0 9px 22px rgba(249,102,1,.25)}
.control-grid[data-creation-path="ai"] .tools-panel,.control-grid[data-creation-path="manual"] .walter-panel{display:none}
.tool-grid{grid-template-columns:repeat(5,minmax(0,1fr));align-items:stretch}
.tool-grid .liquid-tool{justify-content:center;flex-direction:column;gap:6px;min-height:82px;padding:8px 5px;border-radius:24px;text-align:center}
.tool-grid .liquid-tool svg{width:29px;height:29px;padding:5px;border-radius:50%;background:#121212;color:#f96601}
.tool-grid .liquid-tool span{display:block;width:auto;height:auto;background:none;font:700 11px/1.1 var(--font-body)}
.generation-explainer{margin:7px 0 0;color:#5d5d5d;font-size:11px}.generation-autofill{min-height:18px;color:#9a3e00;font-size:11px;font-weight:700}.generation-results{grid-template-columns:repeat(3,1fr)}

/* One compact Text Options workspace with the insert mockup at the top. */
.tool-dialog.is-text-tool{width:min(1120px,calc(100vw - 24px))}
.text-options-workspace{display:grid;gap:10px}
.text-mock-heading{display:flex;align-items:end;justify-content:space-between;gap:12px}.text-mock-heading h3{margin:0 0 4px;font:600 20px/1 var(--font-heading);text-transform:uppercase}
.liquid-mini{display:flex;align-items:center;gap:6px;min-height:40px;padding:7px 14px;border-radius:999px;font-weight:700}.liquid-mini svg{width:20px;height:20px}
.text-mock-artboard{min-height:72px;max-height:112px}
.placement-controls{margin-top:6px}.placement-controls .field{margin-bottom:0}
.text-editor-controls{min-width:0}.text-options-title{display:flex;align-items:center;gap:9px;margin:0 0 6px;padding:7px 11px;border-radius:12px;background:#121212;color:#fff}.text-options-title svg{width:25px;height:25px;fill:none;stroke:#f96601;stroke-width:1.8}.text-options-title .eyebrow{color:#bbb}.text-options-title h3{margin:0;font:600 19px/1 var(--font-heading);text-transform:uppercase}
.text-options-grid{display:grid;grid-template-columns:1fr 1.15fr 1fr;gap:8px;align-items:start}.text-option-group{min-width:0;margin:0;padding:8px}.text-option-group .field{gap:3px;margin-bottom:6px}.text-option-group .field input,.text-option-group .field select,.text-option-group .field textarea{min-height:38px;padding:5px}.text-option-group .field textarea{height:42px;resize:none}.text-option-group .effect-presets{margin:0 0 6px}.text-option-group .compact-effects{grid-template-columns:1fr}.text-option-group .compact-effects fieldset{margin:0 0 5px}.text-add-button{min-height:44px}

/* Non-modal coach: the highlighted control remains usable and Next stays gated. */
.tutorial-dialog{position:fixed;z-index:80;right:14px;bottom:14px;left:auto;top:auto;width:min(430px,calc(100vw - 28px));margin:0;border:1px solid rgba(249,102,1,.65);border-radius:16px;box-shadow:0 18px 50px rgba(18,18,18,.3)}
.tutorial-dialog::backdrop{background:transparent}.tutorial-card{padding:18px}.tutorial-card h2{font-size:23px}.tutorial-card>p:not(.eyebrow){margin:7px 0;font-size:13px}.tutorial-requirement{padding:8px 10px;border-left:4px solid #f96601;background:#fff1e7;font-weight:700}.tutorial-requirement.is-complete{border-color:#2e7d32;background:#edf7ee}.tutorial-finish-choices{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.tutorial-finish-choices[hidden]{display:none}.tutorial-actions{margin-top:12px}.tutorial-target{position:relative;z-index:75;outline:4px solid #f96601!important;outline-offset:4px;box-shadow:0 0 0 8px rgba(249,102,1,.18)!important}

@media(max-width:1180px){.control-grid{grid-template-columns:minmax(250px,.7fr) minmax(430px,1.3fr)}.creation-chooser{align-items:stretch;flex-direction:column}.creation-choice-buttons{max-width:none}.tool-grid{grid-template-columns:repeat(5,1fr)}}
@media(max-width:960px) and (orientation:landscape){
  .mobile-action-dock button{display:flex;flex-direction:column;gap:1px;border-radius:16px;background:linear-gradient(145deg,#fff 0%,#ffd9bd 60%,rgba(249,102,1,.5) 100%);font-size:11px}
  .mobile-action-dock button svg{width:21px;height:21px;padding:3px;border-radius:50%;background:#121212;color:#f96601}.mobile-action-dock button span{display:block;width:auto;height:auto;background:none;color:#121212;font:700 11px/1 var(--font-body)}
  .mobile-panel-dialog .generation-results{grid-template-columns:repeat(3,1fr)}.mobile-panel-dialog .generation-explainer{display:none}
  .text-options-workspace{height:100%;grid-template-rows:auto minmax(0,1fr);gap:5px}.text-mock-heading h3{font-size:14px}.text-mock-heading .eyebrow{display:none}.liquid-mini{min-height:32px;padding:4px 10px;font-size:12px}.text-mock-artboard{min-height:58px;max-height:64px}.placement-controls{grid-template-columns:repeat(2,1fr);gap:5px;margin-top:3px}.placement-controls .field>span:first-child{display:none}
  .text-options-title{margin-bottom:3px;padding:3px 7px}.text-options-title h3{font-size:15px}.text-options-title .eyebrow{display:none}.text-options-title svg{width:19px;height:19px}
  .text-options-grid{grid-template-columns:1fr 1.12fr 1fr;gap:4px}.text-option-group{padding:4px}.text-option-group legend{font-size:12px}.text-option-group .field{margin-bottom:2px}.text-option-group .field>span:first-child{font-size:12px}.text-option-group .field input,.text-option-group .field select,.text-option-group .field textarea{min-height:28px;height:28px;padding:2px;font-size:12px}.text-option-group .field-grid{gap:3px}.text-option-group .effect-presets{gap:2px;margin:0 0 2px}.text-option-group .effect-presets button{min-height:25px;padding:2px 4px;font-size:11px}.text-option-group .outline-control{grid-template-columns:1fr 52px;gap:2px}.text-option-group .compact-effects{gap:2px}.text-option-group .compact-effects fieldset{padding:2px}.text-option-group .field-grid--four{grid-template-columns:repeat(4,1fr)}.text-option-group .field-grid--four label{font-size:11px}.text-add-button{min-height:32px;height:32px;padding:3px}
  .tutorial-dialog{right:6px;bottom:6px;width:min(380px,46vw)}.tutorial-card{padding:10px}.tutorial-card h2{font-size:18px}.tutorial-card>p:not(.eyebrow){font-size:12px}.tutorial-requirement{padding:5px}.tutorial-actions{gap:4px;margin-top:6px}.tutorial-actions .button{min-height:34px;padding:4px 7px;font-size:12px}.tutorial-actions label{font-size:12px}
}

/* Final cascade guards for the bounded correction. */
.editor-main{grid-template-columns:minmax(0,1fr);grid-template-rows:44px 210px 86px minmax(220px,1fr)}.editor-main>*{grid-column:1!important}.creation-chooser{order:0!important;grid-column:1!important}.control-grid{grid-template-columns:minmax(270px,.62fr) minmax(0,1.38fr)}.fit-panel{grid-column:1}.walter-panel,.tools-panel{grid-column:2}.control-grid:not([data-creation-path]) .fit-panel{grid-column:1/-1}.tools-panel{grid-template-rows:auto auto;align-content:start}.tool-grid{grid-template-columns:repeat(7,minmax(0,1fr));align-items:start;align-content:start}.tool-grid .liquid-tool{height:96px;min-height:96px;border-radius:30px}
@media(max-width:960px) and (orientation:landscape){.editor-main{grid-template-columns:minmax(0,1fr);grid-template-rows:32px minmax(78px,1fr) 52px 52px}.creation-chooser{display:grid!important;grid-template-columns:120px 1fr!important;height:52px}.control-grid{display:none}.mobile-action-dock{display:grid;grid-template-columns:repeat(8,minmax(0,1fr))}.text-options-grid{grid-template-columns:1fr 1.12fr 1fr}.text-option-group .field{margin-bottom:1px}.text-option-group .field input,.text-option-group .field select,.text-option-group .field textarea{min-height:22px;height:22px}.text-option-group .alignment-buttons button,.text-option-group .nudge-buttons button{min-height:22px;height:22px}.text-option-group:nth-child(2){display:grid;grid-template-columns:1fr 1fr;gap:2px}.text-option-group:nth-child(2)>legend,.text-option-group:nth-child(2)>.effect-presets,.text-option-group:nth-child(2)>.nudge-buttons{grid-column:1/-1}.text-option-group:nth-child(2)>.effect-presets button{min-height:18px;height:18px}.text-option-group:nth-child(2)>.outline-control{grid-template-columns:1fr 42px}.text-option-group:nth-child(3){display:block;grid-column:auto}.text-option-group:nth-child(3) .compact-effects{grid-template-columns:1fr 1fr}.text-option-group:nth-child(3) #resetEffects{min-height:22px;height:22px;padding:1px 7px;font-size:11px}}

@media(min-width:961px){.tool-dialog.is-text-tool{height:min(800px,calc(100vh - 20px));overflow:hidden}.tool-dialog.is-text-tool .dialog-body{height:calc(100% - 77px)}}
@media(min-width:961px) and (max-height:800px){.tool-dialog.is-text-tool .dialog-header{height:64px;padding-block:5px}.tool-dialog.is-text-tool .dialog-body{height:calc(100% - 64px);padding-block:5px}.text-options-workspace{gap:3px}.text-mock-heading{height:30px}.text-mock-heading h3{font-size:15px}.text-mock-artboard{min-height:56px;max-height:64px}.placement-controls{margin-top:2px}.placement-controls .field{gap:2px;margin-bottom:1px}.placement-controls .field input{min-height:28px;height:28px}.text-options-title{height:38px;margin-bottom:2px;padding-block:3px}.text-options-grid{gap:4px}.text-option-group{padding:4px}.text-option-group .field{margin-bottom:2px}.text-option-group .field input,.text-option-group .field select,.text-option-group .field textarea{min-height:28px;height:28px}.effect-presets{margin-bottom:3px}.effect-presets button{min-height:24px}.alignment-buttons button,.nudge-buttons button{min-height:28px;height:28px}.compact-effects fieldset{padding:3px}.text-window-actions .button{min-height:38px;height:38px}}

/* Goal A structural correction. */
/* The tutorial was retired here pending contextual Goal B guidance. It is
   sold scope for the show and his point 5 asks for it on both paths, so it is
   live again: the walkthrough already covers vehicle, insert size, path
   choice, both branches, text, graphic, vehicle preview and finish. Restore
   this line when Goal B replaces it with contextual guidance. */
.brand-lockup:empty{display:block;width:170px;height:36px}
.canvas-toolbar{position:static;min-height:42px;margin-top:2px;align-items:center}
.canvas-scroll{padding:2px 0}
.canvas-section{position:relative;padding-top:8px}.canvas-safe-toggle{position:absolute;z-index:4;right:14px;top:5px;min-height:32px;padding:0 8px;border-radius:999px;background:rgba(255,255,255,.88)}
.canvas-zoom-toggle{position:absolute;z-index:4;left:14px;top:5px;display:flex;align-items:center;gap:6px;min-height:32px;padding:0 12px;border:1px solid var(--color-border);border-radius:999px;background:rgba(255,255,255,.88);font:800 12px/1 var(--font-body);text-transform:uppercase;letter-spacing:.04em}
.canvas-zoom-toggle svg{width:15px;height:15px}
.canvas-zoom-toggle[aria-pressed="true"]{background:var(--color-accent);border-color:var(--color-accent);color:#fff}
html[data-generator-theme="black"] .canvas-zoom-toggle{background:rgba(24,27,30,.88);color:#fff}
html[data-generator-theme="black"] .canvas-zoom-toggle[aria-pressed="true"]{background:var(--color-accent)}
.canvas-toolbar{z-index:5;transform:none}.canvas-toolbar button{flex:0 0 auto}
.canvas-toolbar button{position:relative;overflow:hidden;min-width:42px;min-height:38px;border:1px solid rgba(249,102,1,.48);border-radius:999px;background:linear-gradient(180deg,#fff9f4,#ffc89f 55%,rgba(249,102,1,.7));box-shadow:inset 0 1px #fff,0 4px 10px rgba(167,61,0,.16);font-size:11px}
.canvas-toolbar [data-quick="center-x"],.canvas-toolbar [data-quick="center-y"]{min-width:72px;font-weight:800}
.canvas-toolbar button:disabled{filter:grayscale(.5);opacity:.45}
.control-grid{grid-template-columns:repeat(12,minmax(0,1fr));overflow:visible}
.fit-panel{order:0!important;grid-column:span 4!important;position:relative;z-index:6;overflow:visible}
.walter-panel,.tools-panel,.path-prompt{order:1!important;grid-column:span 8!important}
.control-grid:not([data-creation-path]) .fit-panel{grid-column:span 4!important;max-width:none}
.control-grid:not([data-creation-path]) .path-prompt{display:grid;grid-template-columns:minmax(240px,.9fr) minmax(300px,1.1fr);gap:18px;align-items:center;text-align:left}
.control-grid[data-creation-path] .path-prompt{display:none}
.path-prompt>img{width:100%;height:100%;max-height:270px;border-radius:12px;object-fit:cover}.path-prompt h2{margin:0 0 8px;font:600 26px/1.05 var(--font-heading);text-transform:uppercase}.path-prompt p{max-width:560px;margin:0 0 8px;color:#555;line-height:1.4}.path-prompt ul{display:grid;gap:4px;margin:8px 0 12px;padding-left:18px;font-size:12px}.path-prompt-copy>small{display:block;margin-top:5px;color:#666;font-size:12px;line-height:1.3}
.checkout-offers{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.checkout-offer{display:grid;grid-template-columns:42px minmax(0,1fr);gap:8px;align-items:center;min-width:0;min-height:70px;padding:8px 10px;border:1px solid rgba(249,102,1,.65);border-radius:14px;background:linear-gradient(145deg,#fff 0%,#ffe0c8 58%,#ffb179 100%);box-shadow:inset 0 1px #fff,0 5px 12px rgba(167,61,0,.14);color:#121212;text-align:left;cursor:pointer}.checkout-offer:hover{transform:translateY(-1px);box-shadow:inset 0 1px #fff,0 8px 16px rgba(167,61,0,.2)}.checkout-offer.is-selected,.checkout-offer[aria-pressed="true"]{border-color:#121212;box-shadow:inset 0 0 0 2px #f96601,0 7px 16px rgba(249,102,1,.22)}.checkout-offer-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#121212;color:#f96601;font:700 24px/1 var(--font-heading)}.checkout-offer strong,.checkout-offer small{display:block}.checkout-offer strong{font:700 15px/1 var(--font-heading);text-transform:uppercase}.checkout-offer small{margin-top:4px;color:#4d3728;font-size:12px;line-height:1.18}.path-prompt-copy>.checkout-offer-note{display:block;margin-top:5px;color:#666;font-size:11px;line-height:1.25}
.panel-heading{position:relative}.panel-heading>div{min-width:0}.panel-close,.dialog-close{min-height:40px;padding:7px 12px;border:1px solid #121212;border-radius:999px;background:#fff;color:#121212;font-size:11px;font-weight:800;white-space:nowrap}.panel-close{margin-left:auto}.dialog-close{font-size:12px}.dialog-close:hover,.panel-close:hover{background:#121212;color:#fff}
.control-panel.is-user-closed{display:none!important}.control-grid:has(.fit-panel.is-user-closed) .path-prompt,.control-grid:has(.fit-panel.is-user-closed) .walter-panel,.control-grid:has(.fit-panel.is-user-closed) .tools-panel{grid-column:1/-1!important}
.concept-rail{min-height:0;padding:8px 10px;border:1px solid #f7b27f;border-radius:12px;background:#fff;overflow:hidden}
.concept-rail[hidden]{display:none}.concept-rail-heading{display:flex;align-items:baseline;gap:10px;margin-bottom:5px}.concept-rail-heading h2{margin:0;font:600 17px/1 var(--font-heading);text-transform:uppercase}.concept-rail-heading span{color:#666;font-size:12px}.concept-rail .generation-results{grid-template-columns:repeat(3,minmax(0,1fr))}
.editor-main:has(.concept-rail:not([hidden])){grid-template-rows:44px minmax(126px,.9fr) 76px minmax(96px,.65fr) minmax(188px,1fr)}
.vehicle-combobox{position:relative}.vehicle-combobox>label{font-size:12px;font-weight:700}.vehicle-combobox input{width:100%;min-height:40px;padding:7px 36px 7px 10px;border:1px solid #bcbcbc;border-radius:6px;background:#fff}
.vehicle-options{position:absolute;z-index:40;left:0;right:0;top:calc(100% - 5px);max-height:300px;overflow:auto;border:1px solid #bcbcbc;border-radius:8px;background:#fff;box-shadow:0 12px 28px rgba(18,18,18,.22)}.vehicle-options[hidden]{display:none}.vehicle-group{position:sticky;top:0;padding:7px 9px;background:#121212;color:#fff;font:600 11px/1 var(--font-heading);text-transform:uppercase}.vehicle-options button{display:grid;grid-template-columns:66px 1fr;gap:8px;width:100%;padding:7px 9px;border:0;border-bottom:1px solid #eee;background:#fff;text-align:left}.vehicle-options button:hover,.vehicle-options button:focus{background:#fff2e8}.vehicle-options strong,.vehicle-options small{display:block}.vehicle-options strong{font-size:11px}.vehicle-options small{margin-top:2px;color:#666;font-size:12px}.vehicle-option-thumb{display:grid;place-items:center;width:64px;height:42px;border-radius:7px;background:#f3f3f3;color:#f96601;font:700 16px/1 var(--font-heading);object-fit:cover}.vehicle-empty{padding:12px;font-size:11px}.fitment-summary[data-status="preview"]{border-left:4px solid var(--color-warning)}
@media(max-width:960px) and (orientation:landscape){.concept-rail{display:none!important}.editor-main:has(.concept-rail:not([hidden])){grid-template-rows:32px minmax(78px,1fr) 52px 52px}.canvas-scroll{align-items:start}.canvas-safe-toggle{display:none}.creation-chooser{grid-template-columns:minmax(150px,.42fr) minmax(0,1fr)!important;height:52px!important}.creation-choice-buttons{gap:8px;transform:translateY(-4px)}.liquid-choice{min-width:0;min-height:44px;height:44px;padding:3px 8px}.control-grid{display:grid!important;grid-template-columns:repeat(12,minmax(0,1fr));position:fixed;z-index:45;inset:52px 5px 58px;padding:0;background:#f3f3f3}.control-grid:not([data-creation-path]){display:none!important}.control-grid .fit-panel{grid-column:span 4!important}.control-grid .walter-panel,.control-grid .tools-panel{grid-column:span 8!important}.control-panel{border-radius:10px}.mobile-action-dock{z-index:50}.vehicle-options{position:fixed;z-index:100;left:8px;right:8px;top:50px;bottom:8px;max-height:none}.panel-close{display:block}}

/* Walter is one guided workspace: illustrated directions, editable layer brief, and all four results. */
.walter-panel{display:grid;grid-template-columns:minmax(360px,.92fr) minmax(0,1.08fr);grid-template-rows:auto minmax(0,1fr);gap:8px 14px}
.walter-panel>.panel-heading{grid-column:1/-1;margin:0}
.walter-builder{min-height:0;display:flex;flex-direction:column;gap:6px;overflow:hidden}
/* Round 22, item 2: the quick free-text box is the default, hero input. */
.walter-quick{display:flex;flex-direction:column;gap:5px;padding:10px;border:1px solid #121212;border-radius:8px;background:var(--color-background-secondary)}
.walter-quick-label{font:700 13px/1.1 var(--font-body);text-transform:uppercase;letter-spacing:.02em}
/* The quick box is a light island in both themes. In Blackout the body text
   colour flips to #fff, so without an explicit dark colour the typed text and
   caret were white on this white field: invisible. Pin dark text/caret and a
   readable placeholder so it works in Steel and Blackout alike. */
.walter-quick-input{width:100%;min-height:56px;padding:9px 10px;border:1px solid #bcbcbc;border-radius:6px;background:#fff;color:#121212;caret-color:#121212;font:600 14px/1.35 var(--font-body);resize:vertical}
.walter-quick-input:focus{outline:2px solid var(--color-accent);outline-offset:1px}
.walter-quick-input::placeholder{color:#6b7280;opacity:1}
.walter-quick-hint{margin:0;color:#555;font-size:12px;line-height:1.3}
.walter-builder .preset-field,.walter-builder .field{margin:0}
.walter-builder .preset-field legend,.walter-prompt-field>span{font:700 12px/1 var(--font-body);text-transform:uppercase;letter-spacing:.02em}
.walter-prompt-field>small{color:#666;font-size:12px;line-height:1.25}
.walter-prompt-field textarea{height:148px;min-height:92px;padding:9px 10px;resize:none;background:#fff;color:#121212;caret-color:#121212;font:500 12px/1.32 var(--font-body);white-space:pre-wrap}
.walter-prompt-field textarea::placeholder{color:#6b7280;opacity:1}
/* Grok target: directions as a 2-across grid of big cards, not a strip of
   small chips. Eight directions make the 2x4 layout the mockups imply. */
.preset-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.preset-grid button{position:relative;display:grid;grid-template-columns:40px minmax(0,1fr);gap:8px;align-items:center;min-width:0;min-height:60px;padding:7px 10px;border:1px solid #e3c0a8;border-radius:12px;background:linear-gradient(145deg,#fff 0%,#fff6ef 56%,#ffd5b6 100%);box-shadow:0 4px 9px rgba(129,50,0,.1);color:#121212;text-align:left;cursor:pointer}
.preset-grid button strong{font-size:15px;line-height:1.1}
.preset-grid button:hover{transform:translateY(-1px);border-color:#f96601;box-shadow:0 7px 15px rgba(180,64,0,.17)}
.preset-grid button.is-selected{background:#121212;color:#fff;border-color:#f96601;box-shadow:inset 0 0 0 2px #f96601,0 7px 15px rgba(18,18,18,.22)}
.preset-grid button strong{min-width:0;font-size:12px;line-height:1.1;text-align:left;white-space:normal;overflow-wrap:normal;word-break:normal;hyphens:none}
.preset-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:#121212;color:#f96601}
.preset-grid button.is-selected .preset-icon{background:#f96601;color:#121212}
.preset-icon svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.walter-results{min-height:0;padding:9px;border:1px solid #f2c6a6;border-radius:12px;background:linear-gradient(145deg,#fff9f4,#fff);overflow:hidden}
.walter-results .concept-rail-heading{display:flex;align-items:end;justify-content:space-between;gap:10px;margin-bottom:7px}
.walter-results .concept-rail-heading h3{margin:0;font:600 18px/1 var(--font-heading);text-transform:uppercase}
.walter-results .concept-rail-heading span{max-width:190px;color:#666;font-size:12px;text-align:right}
.concept-rail-tools{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.concept-rail-tools #walterStartOver{min-height:44px;padding:6px 16px;font-weight:800;white-space:nowrap}
.walter-results .generation-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:8px;height:calc(100% - 39px)}
.walter-results .concept-card{display:grid;grid-template-rows:minmax(50px,1fr) auto;min-height:0;border:1px solid #d8d8d8;border-radius:10px;background:#fff;overflow:hidden}
.walter-results .concept-card.is-active{border-color:#f96601;box-shadow:inset 0 0 0 2px #f96601}
.walter-results .concept-preview{height:100%;min-height:50px;aspect-ratio:auto;background:repeating-linear-gradient(135deg,#151515 0 14px,#202020 14px 28px)}
.walter-results .concept-card--empty .concept-preview{display:flex;gap:7px;color:#a9a9a9}.walter-results .concept-card--empty .concept-preview span{font:600 12px/1 var(--font-body);letter-spacing:.09em}.walter-results .concept-card--empty .concept-preview strong{color:#f96601;font:600 28px/1 var(--font-heading)}
.walter-results .concept-card footer{display:grid;grid-template-columns:minmax(0,1fr) minmax(98px,.55fr);gap:6px;align-items:center;padding:5px 6px;color:#666;font-size:11px;line-height:1.15}
.walter-results .concept-card footer span{margin:0}.walter-results .concept-card footer button{min-height:42px;font-size:13px;font-weight:800}.walter-results .concept-card footer button:disabled{background:#f96601;color:#121212;opacity:1}
/* One clear primary action per concept, the Grok cards' strongest idea. */
.walter-results .concept-card footer button[data-concept-action="place"]{background:var(--color-accent);border-color:var(--color-accent);color:#fff}
.walter-results .concept-card footer button[data-concept-action="return"]{background:#121212;color:#fff}
.walter-results .concept-card--empty footer{display:block;padding:6px 8px;color:#777;font-size:11px}
.walter-builder .generation-explainer,.walter-builder .generation-meta,.walter-builder .generation-autofill{margin:0;font-size:12px;line-height:1.2}

@media(max-width:1100px) and (min-width:961px){.walter-panel{grid-template-columns:minmax(330px,.9fr) minmax(0,1.1fr)}.walter-prompt-field textarea{height:126px}.preset-grid button{grid-template-columns:27px minmax(0,1fr);padding:4px}.preset-icon{width:27px;height:27px}.preset-icon svg{width:20px;height:20px}}
@media(max-width:960px) and (orientation:landscape){.mobile-panel-dialog .walter-panel{display:grid!important;grid-template-columns:minmax(300px,.9fr) minmax(0,1.1fr)!important;grid-template-rows:auto minmax(0,1fr);gap:4px 7px}.mobile-panel-dialog .walter-builder{gap:3px}.mobile-panel-dialog .preset-grid{grid-template-columns:repeat(auto-fit,minmax(104px,1fr));gap:4px}.mobile-panel-dialog .preset-grid button{grid-template-columns:22px minmax(0,1fr);min-height:31px;padding:2px 3px;border-radius:8px}.mobile-panel-dialog .preset-icon{width:22px;height:22px;border-radius:6px}.mobile-panel-dialog .preset-icon svg{width:17px;height:17px}.mobile-panel-dialog .preset-grid button strong{font-size:11px}.mobile-panel-dialog .walter-prompt-field>small{display:none}.mobile-panel-dialog .walter-prompt-field textarea{height:96px;min-height:70px;font-size:11px;line-height:1.2}.mobile-panel-dialog .walter-results{display:block!important;padding:5px}.mobile-panel-dialog .walter-results .concept-rail-heading{margin-bottom:3px}.mobile-panel-dialog .walter-results .concept-rail-heading h3{font-size:13px}.mobile-panel-dialog .walter-results .concept-rail-heading span{display:none}.mobile-panel-dialog .walter-results .generation-results{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));height:calc(100% - 20px);gap:3px}.mobile-panel-dialog .walter-results .concept-card{grid-template-rows:minmax(30px,1fr) auto}.mobile-panel-dialog .walter-results .concept-card footer{grid-template-columns:1fr;padding:2px}.mobile-panel-dialog .walter-results .concept-card footer span{display:none}.mobile-panel-dialog .walter-results .concept-card footer button{min-height:24px;font-size:11px}.mobile-panel-dialog .generation-explainer,.mobile-panel-dialog .generation-meta,.mobile-panel-dialog .generation-autofill{font-size:11px}.mobile-panel-dialog .walter-quick{grid-column:1/-1;padding:6px;gap:3px}.mobile-panel-dialog .walter-quick-input{min-height:40px;font-size:12px;line-height:1.25}.mobile-panel-dialog .walter-quick-hint{display:none}}

/* Responsive review: preserve the insert ratio, reclaim dead space, and keep every label inside its control. */
@media(min-width:961px) and (max-height:800px){
  .editor-main{grid-template-rows:44px 168px 78px minmax(0,1fr)}
  .canvas-section{padding-inline:8px}.canvas-scroll{padding:2px 0}.artboard,.canvas-toolbar{width:100%}
  .creation-chooser{min-height:0;height:78px;padding:9px 14px}.liquid-choice{min-height:58px;height:58px}
  .control-grid{min-height:0}.control-panel{height:100%}
  .path-prompt>img{max-height:100%}.path-prompt-copy{min-width:0}
}
@media(min-width:961px) and (max-width:1100px){
  .creation-chooser{display:grid;grid-template-columns:240px minmax(0,1fr);align-items:center;gap:12px}
  .creation-choice-buttons{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-width:none}
  .control-grid:not([data-creation-path]) .path-prompt{grid-template-columns:minmax(250px,.85fr) minmax(0,1.15fr);gap:12px}
  .path-prompt h2{margin-bottom:5px;font-size:21px}.path-prompt p{margin-bottom:5px;font-size:12px;line-height:1.28}
  .path-prompt ul{gap:2px;margin:5px 0 7px;font-size:12px}.checkout-offers{gap:5px;margin-top:5px}.checkout-offer{grid-template-columns:32px 1fr;min-height:54px;padding:5px 7px}.checkout-offer-icon{width:30px;height:30px;font-size:18px}.checkout-offer strong{font-size:12px}.checkout-offer small{font-size:11px}
  .path-prompt-copy>small{font-size:11px}
}
@media(max-width:960px) and (orientation:landscape){
  .canvas-section{display:grid;align-items:center;padding-inline:3px}.canvas-scroll{display:grid;width:100%;height:100%;align-content:center}.artboard{width:100%}
  .creation-chooser{grid-template-columns:190px minmax(0,1fr)!important;padding:3px 6px;overflow:hidden}
  .creation-chooser h2{font-size:16px;line-height:.92}.creation-choice-buttons{align-items:center;transform:none}
  .liquid-choice{grid-template-columns:34px minmax(0,1fr);gap:6px}.liquid-choice svg{width:32px;height:32px;padding:6px}
  .liquid-choice strong{overflow:hidden;font-size:11px;line-height:1.05;text-overflow:ellipsis;white-space:nowrap}.liquid-choice small{display:none!important}
  .mobile-action-dock button{height:52px}.mobile-action-dock button span{display:grid;height:16px;place-items:center;overflow:hidden;font-size:11px;line-height:1;white-space:normal}
}
@media(max-width:780px) and (orientation:landscape){
  .creation-chooser{grid-template-columns:170px minmax(0,1fr)!important}.creation-chooser h2{font-size:15px}
  .creation-choice-buttons{gap:5px}.liquid-choice{grid-template-columns:30px minmax(0,1fr);gap:4px;padding-inline:6px}.liquid-choice svg{width:30px;height:30px}
  .liquid-choice strong{font-size:12px}
}

/* Text Options: direct-on-insert editing with one Style column and one Effects column. */
.tool-dialog.is-text-tool .dialog-body{padding:6px 10px}.text-options-workspace{grid-template-rows:minmax(88px,auto) minmax(0,1fr);gap:5px}
.text-mock-column{min-height:0}.text-mock-artboard{min-height:76px;max-height:none}.text-mock-layer{width:48%;height:54%;border:0;box-shadow:none;cursor:move;touch-action:none}
.text-mock-layer>span{inset:50% 0 auto;min-height:1.1em;outline:0}
.text-size-dot{position:absolute;z-index:6;width:12px;height:12px;border:2px solid #121212;border-radius:50%;background:#fff;cursor:nwse-resize;touch-action:none}.dot-nw{left:-8px;top:-8px}.dot-ne{right:-8px;top:-8px}.dot-sw{left:-8px;bottom:-8px}.dot-se{right:-8px;bottom:-8px}.text-mock-layer[data-size-locked="true"] .text-size-dot{opacity:.28;pointer-events:none}.text-mock-layer[data-size-locked="true"]{border-style:dashed}
.placement-controls{display:grid;grid-template-columns:minmax(0,1fr) 126px minmax(0,1fr);gap:10px;align-items:end;margin-top:3px}.placement-controls .field{min-width:0;margin:0}.placement-controls .field>span{display:block;overflow:visible;white-space:nowrap}.placement-controls .liquid-mini{justify-content:center;min-height:38px;padding:5px 10px}
.text-editor-controls{display:grid;grid-template-rows:minmax(0,1fr) 42px;gap:5px}.text-options-grid{grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);gap:8px;height:100%;min-height:0}.text-option-group{height:100%;min-height:0;padding:7px 9px;overflow:hidden}.text-option-group>legend{font:600 17px/1 var(--font-heading);text-transform:uppercase}
.text-style-panel{display:grid;grid-template-rows:auto auto auto auto auto;align-content:start;gap:5px}.style-slider-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.style-curve-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.style-slider-row .field,.style-curve-row .field{margin:0}.text-style-panel .alignment-buttons{margin-top:0}
.text-effects-panel{display:grid;grid-template-rows:minmax(0,1fr) auto auto auto auto;gap:5px}.effect-presets{grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;margin:0;align-content:start}.effect-presets button{min-height:34px;padding:3px;border-radius:9px;background:#f3f3f3}.effect-presets button span{display:grid;place-items:center;width:100%;height:100%;font:800 12px/1 var(--font-body)}
.effect-presets [data-effect-style="aged"] span{color:#6d4c41;text-shadow:1px 1px #d7ccc8}.effect-presets [data-effect-style="wet"] span{color:#0086a8;text-shadow:0 1px #fff}.effect-presets [data-effect-style="cracking"] span{color:#eee;text-shadow:-1px 0 #111,1px 1px #111}.effect-presets [data-effect-style="muddy"] span{color:#6d3b1f;text-shadow:2px 2px #c49a6c}.effect-presets [data-effect-style="spray-painted"] span{color:#f96601;font-style:italic;letter-spacing:.06em}.effect-presets [data-effect-style="scary"] span{color:#d32f2f;text-shadow:2px 2px #121212}.effect-presets [data-effect-style="christmas"] span{color:#2e7d32;text-shadow:1px 1px #d32f2f}.effect-presets [data-effect-style="distressed"] span{color:#777;text-decoration:line-through}.effect-presets [data-effect-style="patriotic"] span{color:#fff;text-shadow:-2px 0 #1746a2,2px 0 #d62828}.effect-presets [data-effect-style="beachy"] span{color:#00a6c8;text-shadow:1px 1px #ffe082}.effect-presets [data-effect-style="cartoonish"] span{color:#ffd54f;text-shadow:2px 2px #121212}.effect-presets [data-effect-style="fantasy"] span{color:#ce93d8;text-shadow:0 0 4px #6a1b9a}.effect-presets [data-effect-style="metal"] span{color:#d7dce2;text-shadow:1px 1px #525a63}.effect-presets [data-effect-style="rusty-metal"] span{color:#b85c2b;text-shadow:1px 1px #4e2a1a}.effect-presets [data-effect-style="wood"] span{color:#b9824f;text-shadow:1px 1px #4e2c17}.effect-presets [data-effect-style="carbon-fiber"] span{color:#777;background:repeating-linear-gradient(45deg,#222,#222 2px,#555 2px,#555 4px)}.effect-presets [data-effect-style="ocean"] span{color:#4dd0e1;text-shadow:0 2px #005b96}.effect-presets [data-effect-style="rocks"] span{color:#a89f91;text-shadow:2px 2px #47423d}.effect-presets [data-effect-style="stones"] span{color:#c4bcaf;text-shadow:1px 2px #5d5850}.effect-presets [data-effect-style="sticks"] span{color:#b47a3c;text-shadow:2px 1px #51351f}
.outline-control{grid-template-columns:minmax(0,1fr) 58px;gap:6px}.shadow-controls{margin:0;padding:5px 7px}.shadow-controls>legend{font-weight:800}.shadow-direction{display:grid;grid-template-columns:1fr 1fr;gap:5px}.shadow-direction button{min-height:30px;border:1px solid #ccc;border-radius:7px;background:#fff;font-weight:800}.shadow-direction button[aria-pressed="true"]{background:#121212;color:#fff}.shadow-slider-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.shadow-slider-row .field{margin:3px 0 0}.text-effects-panel #resetEffects{min-height:32px;padding:4px 10px;justify-self:start}
.text-window-actions{grid-template-columns:.65fr 1.35fr}.text-window-actions .button{min-height:42px}
.text-mock-layer>span{transform:translateY(-50%)}
.text-mock-layer>span,.canvas-text-outline{display:flex;align-items:center;justify-content:center}.text-mock-layer>span b,.canvas-text-outline b{display:inline-block;font:inherit;color:inherit;-webkit-text-stroke:inherit;transform:translateY(var(--curve-y,0)) rotate(var(--curve-r,0));transform-origin:50% 100%}.text-mock-layer>span:not(.is-curved) b,.canvas-text-outline:not(.is-curved) b{transform:none}
@media(max-width:960px) and (orientation:landscape){.tool-dialog.is-text-tool .dialog-body{padding:3px}.text-options-workspace{grid-template-rows:88px minmax(0,1fr)}.text-mock-artboard{min-height:48px;max-height:52px}.placement-controls{position:static;right:auto;top:auto;width:auto;height:33px;grid-template-columns:1fr 92px 1fr;align-items:end;gap:4px}.placement-controls .field{display:grid;grid-template-rows:9px 20px;gap:0;margin:0}.placement-controls .field>span{display:block!important;overflow:visible;font-size:11px;line-height:9px;white-space:nowrap}.placement-controls .field input{min-height:20px!important;height:20px!important;padding:0}.placement-controls .liquid-mini{align-self:end;min-height:26px;height:26px;padding:2px 5px}.text-editor-controls{grid-template-rows:minmax(0,1fr) 30px}.text-options-grid{grid-template-columns:.86fr 1.14fr}.text-option-group{padding:3px 5px}.text-option-group>legend{font-size:11px}.effect-presets{grid-template-columns:repeat(5,1fr);gap:2px}.effect-presets button{min-height:22px;height:22px}.effect-presets button span{font-size:11px}.style-slider-row,.style-curve-row{gap:3px}.text-style-panel{gap:2px}.shadow-controls{padding:2px 4px}.shadow-direction button{min-height:21px;height:21px;font-size:11px}.text-effects-panel{gap:2px}.text-effects-panel #resetEffects{min-height:21px;height:21px}.text-window-actions .button{min-height:28px;height:28px}}

/* Unified Text tool, compact asset browsers, and grouped insert management. */
.tool-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}
.mobile-action-dock{grid-template-columns:repeat(5,minmax(0,1fr))!important}
.text-options-workspace{position:relative}
.text-size-dot{display:grid;place-items:center;width:25px;height:20px;border-radius:5px;font:900 15px/1 var(--font-body);color:#121212}.dot-sw{left:-13px;bottom:-11px;cursor:nesw-resize}.dot-se{right:-13px;bottom:-11px;cursor:nwse-resize}
.font-preview-button{width:100%;min-height:34px;padding:5px 9px;border:1px solid #bcbcbc;border-radius:6px;background:#fff;font-weight:800;text-align:left}
.text-effects-panel{display:flex;flex-direction:column!important;gap:7px}.text-effects-panel .text-asset-actions{order:1}.text-effects-panel .effect-presets{order:2;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,minmax(40px,1fr));height:auto}.text-effects-panel .effect-presets button{min-height:40px;border-radius:9px}.text-effects-panel .effect-presets button span{font-size:12px!important}
.text-asset-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}.text-asset-actions button{display:grid;grid-template-columns:32px 1fr;align-items:center;gap:7px;min-height:58px;padding:7px;border:2px solid #f96601;border-radius:10px;background:#fff;text-align:left}.text-asset-actions svg{width:30px;height:30px;padding:5px;border-radius:50%;background:#121212;color:#f96601;fill:none;stroke:currentColor;stroke-width:1.8}.text-asset-actions strong,.text-asset-actions small{display:block}.text-asset-actions small{margin-top:2px;color:#666;font-size:12px}
.text-asset-drawer,.font-browser{position:absolute;z-index:30;inset:0;padding:12px;background:#fff;overflow:hidden}.nested-panel-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px;padding-bottom:8px;border-bottom:1px solid #ddd}.nested-panel-header h3{margin:0;font:600 23px/1 var(--font-heading);text-transform:uppercase}.nested-panel-header .eyebrow{margin:0}.compact-asset-grid{grid-template-columns:repeat(5,minmax(0,1fr));max-height:calc(100% - 105px);overflow:auto}.compact-asset-grid .asset-tile{min-height:82px;text-align:center}.compact-asset-grid .asset-tile img{height:42px;background:#fff}.compact-asset-grid .asset-tile small{font-size:11px}/* Gabe's 3:24 AM screenshot: the phone-upload QR sat below an overflow:hidden
   fold on a phone whose browser chrome shortens the viewport, cut off with no
   way to reach it. The section scrolls now and the upload zone gives back the
   height it does not need. */
.text-asset-drawer>section{height:calc(100% - 58px);overflow:auto}.text-asset-drawer .upload-zone{min-height:clamp(120px,40%,60%)}
/* Round 22, item 4: import staging (preview + remove-background toggle). */
.import-stage{display:flex;flex-direction:column;gap:10px;margin-top:12px;padding:12px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-background-secondary)}
.import-preview-head{font:700 12px/1 var(--font-body);text-transform:uppercase;letter-spacing:.02em}
/* No object-fit/max-height letterbox and no white fill: the canvas draws its own
   checkerboard edge to edge, so removed (transparent) areas never read as white. */
.import-preview-canvas{display:block;width:100%;height:auto;border:1px solid #bcbcbc;border-radius:6px;background:transparent}
.import-bg-toggle{display:grid;grid-template-columns:auto 1fr;gap:9px;align-items:start;padding:8px;border:1px solid var(--color-border);border-radius:6px;background:#fff}
.import-bg-toggle input{width:20px;height:20px;margin-top:2px}
.import-bg-toggle strong{display:block;font-size:13px}
.import-bg-toggle small{display:block;margin-top:2px;color:#666;font-size:12px}
.import-bg-toggle input:disabled+span{opacity:.5}
.import-stage-actions{display:grid;grid-template-columns:1fr auto;gap:8px}
.font-browser{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto}.font-browser[hidden],.text-asset-drawer[hidden]{display:none}.font-browser-search{margin:0 0 8px}.font-browser-layout{display:grid;grid-template-columns:180px minmax(0,1fr);gap:9px;min-height:0}.font-categories{display:grid;align-content:start;gap:3px;overflow:auto}.font-categories button{min-height:31px;padding:4px 8px;border:1px solid #ccc;background:#f3f3f3;text-align:left}.font-categories button.is-selected{border-color:#f96601;background:#fff4eb;color:#b54400}.font-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-content:start;gap:7px;overflow:auto}.font-grid button{display:grid;place-items:center;min-height:61px;padding:6px;border:1px solid #ccc;background:#fff}.font-grid button strong{font-size:18px}.font-grid button small{margin-top:3px;color:#666;font:500 11px/1 var(--font-body)}.font-grid button:disabled{background:#f3f3f3;color:#777}.font-license-note{margin:7px 0 0;padding:7px;border-left:4px solid #f96601;background:#fff4eb;font-size:12px}
[data-tool-panel="insertLayers"]{overflow:auto}.insert-manager-heading{display:grid;grid-template-columns:.8fr 1.2fr;gap:20px;align-items:end}.insert-manager-heading h3,.layer-groups-title{margin:0;font:600 23px/1.05 var(--font-heading);text-transform:uppercase}.insert-manager-heading>p{margin:0;color:#555}.insert-design-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:14px 0}.insert-design-card{display:grid;grid-template-columns:auto 1fr;gap:7px;padding:9px;border:1px solid #ccc;border-radius:10px;background:#fff}.insert-design-card.is-current{border-color:#f96601}.insert-design-card input{width:20px;height:20px;accent-color:#f96601}.insert-card-preview{grid-column:1/-1;display:grid;place-items:center;aspect-ratio:12.094;background:repeating-linear-gradient(135deg,#121212 0 12px,#222 12px 24px);color:#fff;font-size:12px}.insert-design-card strong,.insert-design-card small{display:block}.insert-design-card small{color:#666;font-size:12px}.insert-card-actions{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.insert-card-actions button{min-height:32px;border:1px solid #aaa;border-radius:5px;background:#fff;font-weight:800}.insert-card-actions button:not(:disabled):first-child{background:#f96601;border-color:#f96601}.insert-design-card.is-empty{align-content:center;min-height:118px;background:#f3f3f3}.insert-design-card.is-empty>span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#121212;color:#f96601;font-weight:900}.layer-group-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:8px}.layer-group-row{display:grid;grid-template-columns:36px 1fr;gap:8px;align-items:center;padding:8px;border:1px solid #ccc;border-radius:8px}.layer-group-row>span{display:grid;place-items:center;width:36px;height:36px;border-radius:7px;background:#121212;color:#f96601;font-weight:900}.layer-group-row strong,.layer-group-row small{display:block}.layer-group-row small{overflow:hidden;color:#666;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.automatic-logo-note{padding:9px;border-left:4px solid #f96601;background:#fff4eb;font-size:11px}
@media(max-width:960px) and (orientation:landscape){.text-effects-panel .effect-presets{grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,22px)}.text-asset-actions{gap:3px}.text-asset-actions button{grid-template-columns:23px 1fr;min-height:32px;height:32px;padding:2px 4px}.text-asset-actions svg{width:22px;height:22px;padding:3px}.text-asset-actions small{display:none}.compact-asset-grid{grid-template-columns:repeat(6,1fr)}.font-browser-layout{grid-template-columns:130px 1fr}.font-grid{grid-template-columns:repeat(4,1fr)}.font-grid button{min-height:43px}.font-grid button strong{font-size:12px}.insert-design-list{grid-template-columns:repeat(4,1fr)}.insert-manager-heading>p,.automatic-logo-note{font-size:12px}.layer-group-list{grid-template-columns:repeat(4,1fr)}}

/* Text Style owns every precision control; Text Effects is a visual preset gallery. */
.text-style-panel{display:flex;flex-direction:column;gap:4px;align-content:initial}
.text-style-add{order:-1;width:100%;min-height:42px}
.size-field-heading{display:flex;align-items:center;justify-content:space-between;gap:4px}.size-field-heading>span{font-weight:700}.size-field-heading button{min-height:18px;padding:1px 7px;border:1px solid #f96601;border-radius:999px;background:#fff4eb;color:#121212;font:800 11px/1 var(--font-body);white-space:nowrap}.size-field-heading button[aria-pressed="true"]{background:#121212;border-color:#121212;color:#fff}.size-field>input:disabled{opacity:.38;cursor:not-allowed}
.text-style-panel .outline-control .field{margin-bottom:0}
.text-style-panel #resetEffects{align-self:flex-start;min-height:32px;padding:4px 10px}
.text-style-effects{display:grid;grid-template-columns:1fr 1fr;gap:4px 6px;min-height:0}
.text-style-effects>.shadow-controls{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:6px;align-items:end}
.text-style-effects>.shadow-controls .shadow-direction,.text-style-effects>.shadow-controls .shadow-slider-row{min-width:0}
.text-style-effects>#resetEffects{grid-column:1/-1}
.text-effects-panel{display:block;padding:9px}
.text-effects-panel .effect-presets{display:grid;height:100%;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(5,minmax(0,1fr));gap:8px}
.text-effects-panel .effect-presets button{min-height:0;height:auto;padding:7px;border:1px solid rgba(18,18,18,.22);border-radius:15px;background-color:#ddd;background-position:center;background-size:cover;box-shadow:inset 0 1px 0 rgba(255,255,255,.9),inset 0 -12px 24px rgba(18,18,18,.18),0 4px 10px rgba(18,18,18,.1)}
.text-effects-panel .effect-presets button::before{left:7%;right:30%;top:6px;height:22%;background:rgba(255,255,255,.46)}
.text-effects-panel .effect-presets button span{align-self:end;justify-self:stretch;display:block;height:auto;padding:4px 5px;border-radius:999px;background:rgba(255,255,255,.86);color:#121212!important;font:800 12px/1 var(--font-body)!important;text-align:center;text-decoration:none!important;text-shadow:none!important;letter-spacing:0!important}
.text-effects-panel .effect-presets button[aria-pressed="true"]{border-color:#f96601;box-shadow:inset 0 0 0 3px #fff,0 0 0 3px #f96601,0 6px 14px rgba(249,102,1,.3)}
.text-effects-panel [data-effect-style="aged"]{background:repeating-linear-gradient(118deg,#d7bf98 0 8px,#8c6b48 8px 11px,#c7a878 11px 20px)}
.text-effects-panel [data-effect-style="wet"]{background:radial-gradient(circle at 25% 22%,#fff 0 3%,transparent 4%),radial-gradient(circle at 70% 35%,#bdf5ff 0 5%,transparent 6%),linear-gradient(145deg,#006d8f,#3dd9ff 55%,#004c69)}
.text-effects-panel [data-effect-style="cracking"]{background:repeating-conic-gradient(from 18deg,#ece9df 0 8deg,#353535 9deg 11deg,#c8c3b7 12deg 21deg)}
.text-effects-panel [data-effect-style="muddy"]{background:radial-gradient(circle at 18% 30%,#4e2a16 0 10%,transparent 11%),radial-gradient(circle at 75% 62%,#6b3a1c 0 14%,transparent 15%),#a36d3d}
.text-effects-panel [data-effect-style="spray-painted"]{background:radial-gradient(circle,#121212 0 2px,transparent 3px) 0 0/18px 18px,linear-gradient(135deg,#ff9a4d,#f96601)}
.text-effects-panel [data-effect-style="scary"]{background:radial-gradient(circle at 50% 45%,#b71c1c 0 8%,#3b0505 38%,#121212 72%)}
.text-effects-panel [data-effect-style="christmas"]{background:repeating-linear-gradient(135deg,#b71c1c 0 12px,#fff 12px 18px,#1b7d39 18px 30px)}
.text-effects-panel [data-effect-style="distressed"]{background:repeating-linear-gradient(25deg,#555 0 5px,#aaa 5px 9px,#e5e5e5 9px 12px)}
.text-effects-panel [data-effect-style="patriotic"]{background:linear-gradient(90deg,rgba(20,65,145,.96) 0 35%,transparent 35%),repeating-linear-gradient(#c5162e 0 10px,#fff 10px 20px)}
.text-effects-panel [data-effect-style="beachy"]{background:linear-gradient(#62d7ed 0 43%,#fff4b0 44% 54%,#d9ad62 55% 100%)}
.text-effects-panel [data-effect-style="cartoonish"]{background:radial-gradient(circle at 22% 30%,#fff 0 4%,transparent 5%),radial-gradient(circle at 78% 65%,#f96601 0 8%,transparent 9%),#ffd54f}
.text-effects-panel [data-effect-style="fantasy"]{background:radial-gradient(circle at 30% 25%,#fff 0 2%,transparent 3%),radial-gradient(circle at 70% 70%,#e1bee7 0 7%,transparent 8%),linear-gradient(145deg,#25104f,#8e44ad,#1b0736)}
.text-effects-panel [data-effect-style="metal"]{background:linear-gradient(105deg,#42484e,#f2f5f7 28%,#777f86 48%,#e7ebed 67%,#30353a)}
.text-effects-panel [data-effect-style="rusty-metal"]{background:radial-gradient(circle at 25% 35%,#4a2415 0 12%,transparent 13%),radial-gradient(circle at 76% 60%,#d0793a 0 9%,transparent 10%),#8b4a27}
.text-effects-panel [data-effect-style="wood"]{background:repeating-linear-gradient(96deg,#4e2c17 0 3px,#b9824f 3px 13px,#7a4828 13px 16px)}
.text-effects-panel [data-effect-style="carbon-fiber"]{background:repeating-linear-gradient(45deg,#121212 0 5px,#454545 5px 10px,#222 10px 15px)}
.text-effects-panel [data-effect-style="ocean"]{background:radial-gradient(ellipse at 50% 105%,transparent 0 36%,#4dd0e1 37% 48%,transparent 49%),linear-gradient(#005b96,#02a7c7)}
.text-effects-panel [data-effect-style="rocks"]{background:radial-gradient(ellipse at 20% 70%,#80786d 0 16%,transparent 17%),radial-gradient(ellipse at 55% 35%,#aaa095 0 22%,transparent 23%),radial-gradient(ellipse at 85% 75%,#5f5952 0 18%,transparent 19%),#d0c7bb}
.text-effects-panel [data-effect-style="stones"]{background:radial-gradient(ellipse at 20% 55%,#d7d0c8 0 18%,transparent 19%),radial-gradient(ellipse at 53% 60%,#908b84 0 24%,transparent 25%),radial-gradient(ellipse at 82% 40%,#bbb4aa 0 20%,transparent 21%),#5d5850}
.text-effects-panel [data-effect-style="sticks"]{background:repeating-linear-gradient(24deg,transparent 0 12px,#51351f 13px 17px,transparent 18px 27px),repeating-linear-gradient(154deg,#d19a5c 0 4px,#7c4c28 5px 9px)}
.text-window-actions{grid-template-columns:1fr}
.text-entry-row{display:grid;grid-template-columns:1fr 1fr;gap:6px}.text-entry-row input{min-width:0;min-height:42px;padding:8px 10px;border:1px solid #999;border-radius:6px}.text-entry-row .text-style-add{width:auto;order:initial}.shadow-controls{border:2px solid #121212}.shadow-direction button{min-height:36px;font-size:12px}

@media(max-width:960px) and (orientation:landscape){
  .text-style-panel{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:23px 27px 25px 26px 24px 54px;gap:1px 4px}
  .text-style-add,.text-style-panel>.field-grid,.text-style-panel>.style-slider-row{grid-column:1/-1}
  .text-style-add{grid-row:1}.text-style-panel>.field-grid{grid-row:2}.text-style-panel>.style-slider-row{grid-row:3}
  .text-style-add{min-height:23px;height:23px;padding:1px;font-size:11px}
  .text-style-panel>.field,.text-style-panel>.alignment-buttons,.text-style-panel>.style-curve-row,.text-style-panel>.outline-control{min-width:0;margin:0}
  .text-style-panel>.field{grid-column:1;grid-row:4}.text-style-panel>.alignment-buttons{grid-column:2;grid-row:4;align-self:end}
  .text-style-panel>.style-curve-row{grid-column:1/-1;grid-row:5}
  .text-style-panel>.field input,.text-style-panel>.field select{min-height:18px!important;height:18px!important;padding:0}
  .text-style-panel>.field>span,.text-style-panel .style-slider-row .field>span,.text-style-panel .style-curve-row .field>span{font-size:11px!important;line-height:8px}
  .size-field-heading button{min-height:22px;height:22px;padding:0 6px;font-size:11px}.size-field-heading>span{font-size:11px;line-height:8px}.size-field>input{min-height:13px!important;height:13px!important;padding:0}
  .text-style-panel>.alignment-buttons button{min-height:18px!important;height:18px!important}
  .text-style-effects{grid-column:1/-1;grid-row:6;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:18px 21px 13px;align-self:stretch;gap:1px 3px}
  .text-style-effects>.outline-control{height:18px;grid-template-columns:1fr 32px;gap:2px}
  .text-style-effects>.outline-control .field{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:2px;margin:0}
  .text-style-effects>.outline-control .field>span{font-size:11px;line-height:7px;white-space:nowrap}
  .text-style-effects>.outline-control .field input{min-height:12px!important;height:12px!important;padding:0}
  .text-style-effects>.outline-control .color-only{display:block}
  .text-style-effects>.outline-control .color-only>span{display:none!important}
  .text-style-effects>.outline-control .color-only input{width:32px;min-height:18px!important;height:18px!important}
  .text-style-effects>.shadow-controls{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:2px;padding:0 2px}
  .text-style-effects>.shadow-controls>legend{font-size:11px;line-height:6px}
  .text-style-effects>.shadow-controls .shadow-direction{gap:2px}.text-style-effects>.shadow-controls .shadow-direction button{min-height:14px;height:14px;padding:0;font-size:11px}
  .text-style-effects>.shadow-controls .shadow-slider-row{gap:2px}.text-style-effects>.shadow-controls .shadow-slider-row .field{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:1px;margin:0}
  .text-style-effects>.shadow-controls .shadow-slider-row .field>span{font-size:11px;line-height:6px}.text-style-effects>.shadow-controls .shadow-slider-row input{min-height:12px!important;height:12px!important}
  .text-style-effects>#resetEffects{grid-column:1/-1;min-height:13px;height:13px;padding:0 4px;font-size:11px;line-height:1}
  .text-effects-panel{padding:3px}
  .text-effects-panel .effect-presets{grid-template-columns:repeat(5,1fr);grid-template-rows:repeat(4,1fr);gap:3px}
  .text-effects-panel .effect-presets button{min-height:0;height:auto;padding:3px;border-radius:7px}
  .text-effects-panel .effect-presets button span{padding:2px;font-size:11px!important}
}

/* Make the two primary creation paths impossible to miss. */
.liquid-choice{min-height:74px}
.liquid-choice strong{font:700 20px/.98 var(--font-heading);letter-spacing:.015em;text-transform:uppercase}
.liquid-choice small{margin-top:5px;font-size:12px;line-height:1.2}
@media(min-width:961px) and (max-height:800px){.liquid-choice{min-height:58px}.liquid-choice strong{font-size:18px}.liquid-choice small{margin-top:2px;font-size:12px}}
@media(max-width:960px) and (orientation:landscape){.liquid-choice{min-height:44px}.liquid-choice strong{font-size:15px;line-height:1}.liquid-choice small{display:none!important}}
@media(max-width:780px) and (orientation:landscape){.liquid-choice strong{font-size:14px}}

/* Final unified Text layout overrides must remain after legacy effect-gallery rules. */
.text-effects-panel{display:flex!important;flex-direction:column!important;gap:7px;padding:7px 9px}
.text-effects-panel .text-asset-actions{order:1;flex:0 0 auto}
.text-effects-panel .effect-presets{order:2;flex:1 1 auto;display:grid;height:auto;min-height:0;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);gap:6px}
.text-effects-panel .effect-presets button{min-height:0;height:auto;padding:4px;border-radius:10px}
.text-effects-panel .effect-presets button span{font-size:11px!important}
.shadow-controls legend{width:100%;padding-right:5px}.shadow-controls legend #resetEffects{float:right;min-height:22px;padding:2px 7px;border:1px solid #999;border-radius:5px;background:#fff;font:800 11px/1 var(--font-body)}
.transform-handle--text-rotate{left:auto;right:-12px;top:-27px;transform:none}.transform-handle--delete{left:-12px;top:-27px;display:grid;place-items:center;width:23px;height:23px;padding:0;background:#121212;color:#f96601;font:900 15px/1 var(--font-body);cursor:pointer}.insert-card-actions button{padding:2px;font-size:12px}
@media(min-width:961px) and (max-height:800px){
  .text-style-panel{gap:2px}.text-style-panel .field{gap:2px;margin-bottom:0}.text-style-panel .field input,.text-style-panel .field select{min-height:30px;height:30px;padding:3px 6px}.text-entry-row input,.text-entry-row .button{min-height:36px;height:36px}.style-slider-row input,.style-curve-row input{height:20px!important}.alignment-buttons button{min-height:32px}.text-style-effects{gap:2px 5px}.shadow-controls{padding:2px 5px}.shadow-direction button{min-height:27px}.shadow-slider-row .field{margin:0}.text-style-panel #resetEffects{min-height:25px}
  .text-effects-panel .effect-presets{height:auto;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(5,minmax(0,1fr))}.text-effects-panel .effect-presets button{height:auto}
}
@media(max-width:960px) and (orientation:landscape){
  .text-effects-panel{gap:3px;padding:3px 5px}.text-effects-panel .effect-presets{flex:1 1 auto;height:auto;grid-template-columns:repeat(5,1fr);grid-template-rows:repeat(4,minmax(0,1fr));gap:3px}.text-effects-panel .effect-presets button{height:auto;padding:1px}.text-effects-panel .effect-presets button span{font-size:11px!important}
}

/* Vehicle preview is a clean customer rendering, not another editable canvas. */
.vehicle-composite{background:#f3f3f3}
.vehicle-composite>img{object-fit:contain;object-position:center;filter:none;opacity:1}
.vehicle-insert-slot{display:flex;align-items:center;justify-content:center;overflow:hidden;background:#111;box-shadow:0 0 6px rgba(18,18,18,.28)}
/* The slot's mask fractions are meaningful only against the IMAGE box. The
   zoom wrapper shrink-wraps the image so the band lands on the light bar even
   when the dialog is wider than the photo, which is what floated Gabe's band
   up onto the windshield in his screenshots. On phones the wrapper also zooms
   toward the band so the insert reads at booth distance. */
.vehicle-composite{display:flex;justify-content:center;overflow:hidden}
.vehicle-zoom{position:relative;height:100%;flex:0 0 auto}
.vehicle-zoom>img{display:block;height:100%;width:auto;object-fit:contain;filter:none;opacity:1}
@media(max-width:960px) and (orientation:landscape){
  .vehicle-zoom{transform:scale(var(--band-zoom,1.55));transform-origin:var(--band-cx,50%) var(--band-cy,58%)}
}
.vehicle-insert-stage{position:relative;width:100%;height:100%}
.vehicle-insert-slot .canvas-layer{cursor:default;pointer-events:none}

/* Premium AeroLidz presentation: larger type, branded texture, and graphic energy. */
body{background:
  radial-gradient(circle at 8% 18%,rgba(249,102,1,.12),transparent 22%),
  radial-gradient(circle at 92% 82%,rgba(18,18,18,.08),transparent 26%),
  #f3f3f3}
.editor-main{max-width:1760px;position:relative}
.editor-main::before{content:"";position:absolute;z-index:-1;inset:0 6px;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='84' height='48' viewBox='0 0 84 48'%3E%3Cpath d='M21 1 41 12v24L21 47 1 36V12L21 1Zm42 0 20 11v24L63 47 43 36V12L63 1Z' fill='none' stroke='%23F96601' stroke-opacity='.11'/%3E%3C/svg%3E");background-size:84px 48px;opacity:.65}
.progress-stepper,.canvas-section,.creation-chooser,.control-panel{box-shadow:0 8px 24px rgba(18,18,18,.07)}
.canvas-section,.control-panel{position:relative;isolation:isolate;background:
  linear-gradient(120deg,transparent 0 74%,rgba(249,102,1,.055) 74% 78%,transparent 78%),
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='42' viewBox='0 0 72 42'%3E%3Cpath d='M18 1 35 10.5v20L18 40 1 30.5v-20L18 1Zm36 0 17 9.5v20L54 40l-17-9.5v-20L54 1Z' fill='none' stroke='%23121212' stroke-opacity='.045'/%3E%3C/svg%3E"),
  radial-gradient(circle at 95% 3%,rgba(249,102,1,.12),transparent 24%),
  #fff;background-size:auto,72px 42px,auto,auto}
.control-panel::after{content:"";position:absolute;z-index:-1;right:-20px;bottom:12px;width:180px;height:32px;transform:skewX(-28deg);border-left:13px solid rgba(249,102,1,.28);background:repeating-linear-gradient(90deg,rgba(18,18,18,.06) 0 9px,transparent 9px 17px);pointer-events:none}
.creation-chooser{position:relative;isolation:isolate;overflow:hidden;background:
  linear-gradient(115deg,transparent 0 57%,rgba(249,102,1,.11) 57% 60%,transparent 60%),
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='42' viewBox='0 0 72 42'%3E%3Cpath d='M18 1 35 10.5v20L18 40 1 30.5v-20L18 1Zm36 0 17 9.5v20L54 40l-17-9.5v-20L54 1Z' fill='none' stroke='%23F96601' stroke-opacity='.14'/%3E%3C/svg%3E"),
  linear-gradient(135deg,#fff 0%,#fff7f1 58%,#ffd9bd 100%);background-size:auto,72px 42px,auto}
.creation-chooser::after{content:"";position:absolute;z-index:-1;right:-48px;top:-78px;width:300px;height:210px;border:28px solid rgba(18,18,18,.05);border-radius:50%;box-shadow:0 0 0 18px rgba(249,102,1,.07);pointer-events:none}
.walter-results{background:
  linear-gradient(145deg,rgba(255,255,255,.96),rgba(255,246,239,.96)),
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='38' viewBox='0 0 64 38'%3E%3Cpath d='M16 1 31 9.5v18L16 36 1 27.5v-18L16 1Zm32 0 15 8.5v18L48 36l-15-8.5v-18L48 1Z' fill='none' stroke='%23F96601' stroke-opacity='.10'/%3E%3C/svg%3E");box-shadow:inset 0 0 0 1px rgba(255,255,255,.75),0 8px 18px rgba(129,50,0,.08)}
.walter-results .concept-card{box-shadow:0 6px 14px rgba(18,18,18,.1)}
.walter-results .concept-preview{background:
  radial-gradient(circle at 85% 18%,rgba(249,102,1,.24),transparent 24%),
  repeating-linear-gradient(135deg,#111 0 14px,#222 14px 28px)}

@media(min-width:961px){
  body{font-size:16px}.editor-header{font-size:15px}.brand-lockup{font-size:25px}.brand-lockup small{font-size:12px}.design-name input{font-size:16px}.save-status{font-size:14px}
  .progress-stepper strong{font-size:15px}.progress-stepper span{width:28px;height:28px;font-size:13px}
  .eyebrow{font-size:13px;font-weight:700;letter-spacing:.025em}.canvas-heading h1{font-size:24px}.canvas-placeholder{font-size:clamp(24px,2.1vw,34px);font-weight:700}.canvas-toolbar button{font-size:13px;font-weight:800}
  .creation-chooser h2{font-size:29px;letter-spacing:.01em}.liquid-choice strong{font-size:22px}.liquid-choice small{font-size:14px;font-weight:500}.liquid-choice svg{width:46px;height:46px}
  .panel-heading h2{font-size:26px;letter-spacing:.01em}.panel-heading .eyebrow{font-size:12px}.walter-badge,.panel-icon{flex-basis:48px;height:48px;font-size:25px}.panel-close{font-size:12px}
  .field>span:first-child,.field>label,.vehicle-combobox>label{font-size:14px}.field input,.field select,.field textarea,.vehicle-combobox input{font-size:16px;font-weight:500}
  .fitment-summary strong{font-size:17px}.fitment-summary span{font-size:13px;font-weight:500}.fitment-summary small{font-size:11px}.fit-panel>.button{font-size:16px}
  .walter-builder .preset-field legend,.walter-prompt-field>span{font-size:15px}.walter-prompt-field>small{font-size:11px;font-weight:500}.walter-prompt-field textarea{font-size:13px;font-weight:600;line-height:1.38}
  .preset-grid button{grid-template-columns:32px minmax(0,1fr);gap:4px;min-height:54px;padding:6px 4px}.preset-icon{width:32px;height:32px}.preset-icon svg{width:24px;height:24px}.preset-grid button strong{font-size:11.5px;font-weight:800}
  .walter-results .concept-rail-heading h3{font-size:24px}.walter-results .concept-rail-heading span{font-size:11px;font-weight:500}.walter-results .concept-card--empty .concept-preview span{font-size:12px;font-weight:700}.walter-results .concept-card--empty .concept-preview strong{font-size:38px}.walter-results .concept-card footer,.walter-results .concept-card--empty footer{font-size:12px;font-weight:600}.walter-results .concept-card footer button{font-size:11px;font-weight:800}
  .walter-builder #generateButton{font-size:18px}.walter-builder .generation-explainer,.walter-builder .generation-meta,.walter-builder .generation-autofill{font-size:11px;font-weight:500}
}

@media(max-width:960px) and (orientation:landscape){
  .mobile-panel-dialog .panel-heading h2{font-size:18px}.mobile-panel-dialog .preset-grid button{grid-template-columns:22px minmax(0,1fr);min-height:34px}.mobile-panel-dialog .preset-icon{width:20px;height:20px}.mobile-panel-dialog .preset-icon svg{width:16px;height:16px}.mobile-panel-dialog .preset-grid button strong{font-size:12px;font-weight:800;letter-spacing:-.015em}.mobile-panel-dialog .walter-prompt-field textarea{font-size:12px;font-weight:600;line-height:1.22}.mobile-panel-dialog .walter-results .concept-rail-heading h3{font-size:15px}.mobile-panel-dialog .walter-results .concept-card--empty .concept-preview span{font-size:11px}.mobile-panel-dialog .walter-results .concept-card--empty .concept-preview strong{font-size:26px}.mobile-panel-dialog .walter-results .concept-card--empty footer{font-size:11px;font-weight:600}.mobile-panel-dialog .walter-results .concept-card footer button{font-size:11px;font-weight:800}
}

/* Text sizing is owned by Text Style; the mockup is movable and rotatable without a resize frame. */
.text-size-dot{display:none!important}.text-mock-layer{border:0!important;box-shadow:none!important;background:transparent!important}

/* Themed effects alter the actual lettering as well as previewing the treatment on each tile. */
.text-mock-layer[data-text-preset="Aged"],.canvas-text[data-text-preset="Aged"]{--preset-fill:repeating-linear-gradient(118deg,#d7bf98 0 8px,#8c6b48 8px 11px,#c7a878 11px 20px)}
.text-mock-layer[data-text-preset="Wet"],.canvas-text[data-text-preset="Wet"]{--preset-fill:linear-gradient(180deg,#e8fdff 0 18%,#3dd9ff 32%,#006d8f 82%,#004c69 100%)}
.text-mock-layer[data-text-preset="Cracking"],.canvas-text[data-text-preset="Cracking"]{--preset-fill:repeating-conic-gradient(from 18deg,#ece9df 0 8deg,#353535 9deg 11deg,#c8c3b7 12deg 21deg)}
.text-mock-layer[data-text-preset="Muddy"],.canvas-text[data-text-preset="Muddy"]{--preset-fill:radial-gradient(circle at 20% 30%,#4e2a16 0 9%,transparent 10%),radial-gradient(circle at 75% 62%,#6b3a1c 0 13%,transparent 14%),#a36d3d}
.text-mock-layer[data-text-preset="Spray Painted"],.canvas-text[data-text-preset="Spray Painted"]{--preset-fill:radial-gradient(circle,#121212 0 2px,transparent 3px) 0 0/18px 18px,linear-gradient(135deg,#ff9a4d,#f96601)}
.text-mock-layer[data-text-preset="Scary"],.canvas-text[data-text-preset="Scary"]{--preset-fill:linear-gradient(#ff5d5d,#b71c1c 45%,#3b0505)}
.text-mock-layer[data-text-preset="Christmas"],.canvas-text[data-text-preset="Christmas"]{--preset-fill:repeating-linear-gradient(135deg,#b71c1c 0 12px,#fff 12px 18px,#1b7d39 18px 30px)}
.text-mock-layer[data-text-preset="Distressed"],.canvas-text[data-text-preset="Distressed"]{--preset-fill:repeating-linear-gradient(25deg,#555 0 5px,#aaa 5px 9px,#e5e5e5 9px 12px)}
.text-mock-layer[data-text-preset="Patriotic"],.canvas-text[data-text-preset="Patriotic"]{--preset-fill:linear-gradient(90deg,#144191 0 34%,transparent 34%),repeating-linear-gradient(#c5162e 0 10px,#fff 10px 20px)}
.text-mock-layer[data-text-preset="Beachy"],.canvas-text[data-text-preset="Beachy"]{--preset-fill:linear-gradient(#62d7ed 0 43%,#fff4b0 44% 54%,#d9ad62 55% 100%)}
.text-mock-layer[data-text-preset="Cartoonish"],.canvas-text[data-text-preset="Cartoonish"]{--preset-fill:linear-gradient(135deg,#fff176,#ffd54f 55%,#f96601)}
.text-mock-layer[data-text-preset="Fantasy"],.canvas-text[data-text-preset="Fantasy"]{--preset-fill:linear-gradient(135deg,#f4ddff,#9c5fd1 48%,#25104f)}
.text-mock-layer[data-text-preset="Metal"],.canvas-text[data-text-preset="Metal"]{--preset-fill:linear-gradient(105deg,#42484e,#f2f5f7 28%,#777f86 48%,#e7ebed 67%,#30353a)}
.text-mock-layer[data-text-preset="Rusty Metal"],.canvas-text[data-text-preset="Rusty Metal"]{--preset-fill:radial-gradient(circle at 25% 35%,#4a2415 0 12%,transparent 13%),radial-gradient(circle at 76% 60%,#d0793a 0 9%,transparent 10%),#8b4a27}
.text-mock-layer[data-text-preset="Wood"],.canvas-text[data-text-preset="Wood"]{--preset-fill:repeating-linear-gradient(96deg,#4e2c17 0 3px,#b9824f 3px 13px,#7a4828 13px 16px)}
.text-mock-layer[data-text-preset="Carbon Fiber"],.canvas-text[data-text-preset="Carbon Fiber"]{--preset-fill:repeating-linear-gradient(45deg,#121212 0 5px,#606060 5px 10px,#222 10px 15px)}
.text-mock-layer[data-text-preset="Ocean"],.canvas-text[data-text-preset="Ocean"]{--preset-fill:linear-gradient(#9bf3ff,#02a7c7 48%,#005b96)}
.text-mock-layer[data-text-preset="Rocks"],.canvas-text[data-text-preset="Rocks"]{--preset-fill:radial-gradient(ellipse at 20% 70%,#80786d 0 16%,transparent 17%),radial-gradient(ellipse at 55% 35%,#aaa095 0 22%,transparent 23%),#d0c7bb}
.text-mock-layer[data-text-preset="Stones"],.canvas-text[data-text-preset="Stones"]{--preset-fill:radial-gradient(ellipse at 20% 55%,#d7d0c8 0 18%,transparent 19%),radial-gradient(ellipse at 53% 60%,#908b84 0 24%,transparent 25%),#5d5850}
.text-mock-layer[data-text-preset="Sticks"],.canvas-text[data-text-preset="Sticks"]{--preset-fill:repeating-linear-gradient(24deg,transparent 0 12px,#51351f 13px 17px,transparent 18px 27px),repeating-linear-gradient(154deg,#d19a5c 0 4px,#7c4c28 5px 9px)}
.text-mock-layer[data-text-preset]:not([data-text-preset=""])>span b,.canvas-text[data-text-preset]:not([data-text-preset=""]) .canvas-text-outline--inner b{background:var(--preset-fill);background-position:center;background-size:cover;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}

/* Keep every Text Style setting visible above the fixed dialog actions. */
@media(min-width:961px){
  .text-style-panel{display:grid!important;grid-template-columns:1fr 1fr;grid-template-rows:42px 52px 44px 48px 42px minmax(118px,1fr);gap:4px 7px;align-content:stretch}
  .text-style-panel>.text-entry-row,.text-style-panel>.field-grid,.text-style-panel>.style-slider-row,.text-style-panel>.style-curve-row,.text-style-panel>.text-style-effects{grid-column:1/-1;min-height:0}
  .text-style-panel>.text-entry-row{grid-row:1}.text-style-panel>.field-grid{grid-row:2}.text-style-panel>.style-slider-row{grid-row:3}.text-style-panel>.field{grid-column:1;grid-row:4;margin:0}.text-style-panel>.alignment-buttons{grid-column:2;grid-row:4;align-self:end}.text-style-panel>.style-curve-row{grid-row:5}.text-style-panel>.text-style-effects{grid-row:6;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:44px minmax(68px,1fr);gap:4px 7px}
  .text-style-panel .field{gap:2px;margin-bottom:0}.text-style-panel .field input,.text-style-panel .field select{min-height:30px;height:30px;padding:3px 6px}.text-entry-row input,.text-entry-row .button{min-height:38px;height:38px}.style-slider-row input,.style-curve-row input{height:20px!important}.alignment-buttons button{min-height:34px;height:34px}
  .text-style-effects>.outline-control{height:44px}.text-style-effects>.shadow-controls{grid-row:2;grid-column:1/-1;min-height:0;margin:0;padding:3px 6px}.shadow-direction button{min-height:27px}.shadow-slider-row .field{margin:0}.shadow-slider-row input{height:18px!important}
  .text-effects-panel .effect-presets{grid-template-columns:repeat(4,minmax(0,1fr))!important;grid-template-rows:repeat(5,minmax(0,1fr))!important;flex:1 1 auto!important;height:auto!important;min-height:0}.text-effects-panel .effect-presets button{height:auto!important;min-height:0!important;background-position:center!important;background-size:cover!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.9),inset 0 -12px 24px rgba(18,18,18,.18),0 4px 10px rgba(18,18,18,.1)!important}.text-effects-panel .effect-presets button::before{display:block}.text-effects-panel .effect-presets button span{padding:4px 5px;border-radius:999px;background:rgba(255,255,255,.88);font-size:12px!important}
}

@media(max-width:960px) and (orientation:landscape){
  .text-style-panel{display:grid!important;grid-template-columns:1fr 1fr;grid-template-rows:21px 22px 17px 20px 17px minmax(52px,1fr);gap:1px 3px;align-content:stretch}
  .text-style-panel>.text-entry-row,.text-style-panel>.field-grid,.text-style-panel>.style-slider-row,.text-style-panel>.style-curve-row,.text-style-panel>.text-style-effects{grid-column:1/-1;min-height:0}
  .text-style-panel>.text-entry-row{grid-row:1}.text-style-panel>.field-grid{grid-row:2}.text-style-panel>.style-slider-row{grid-row:3}.text-style-panel>.field{grid-column:1;grid-row:4;margin:0}.text-style-panel>.alignment-buttons{grid-column:2;grid-row:4;align-self:stretch}.text-style-panel>.style-curve-row{grid-row:5}.text-style-panel>.text-style-effects{grid-row:6;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:19px minmax(30px,1fr);gap:1px 3px;min-height:0}
  .text-style-panel .field{gap:0;margin:0}.text-style-panel .field>span{display:none!important}.text-style-panel .field input,.text-style-panel .field select,.text-style-panel .font-preview-button{min-height:17px!important;height:17px!important;padding:0 3px!important}.text-entry-row input,.text-entry-row .button{min-height:21px!important;height:21px!important}.alignment-buttons button{min-height:20px!important;height:20px!important}.style-slider-row input,.style-curve-row input{height:17px!important}
  .text-style-effects>.outline-control{height:19px}.text-style-effects>.shadow-controls{grid-row:2;grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:3px;min-height:0;height:auto;margin:0;padding:1px 3px}.text-style-effects>.shadow-controls>legend{font-size:11px;line-height:8px}.text-style-effects .shadow-direction{grid-column:1}.text-style-effects .shadow-slider-row{grid-column:2;align-items:center;gap:3px}.text-style-effects .shadow-direction button{min-height:20px!important;height:20px!important}.text-style-effects .shadow-slider-row input{height:18px!important}
}

/* Calibrated Type Press: slider-only placement, safe-zone stops, and industrial controls. */
.text-mock-layer{pointer-events:none!important;cursor:default!important;touch-action:auto!important}
.text-options-workspace{grid-template-rows:146px minmax(0,1fr)!important;gap:7px!important}
.text-options-workspace>.text-mock-column,.text-options-workspace>.text-editor-controls{min-width:0!important;max-width:100%!important}.text-mock-column{min-height:0}.text-mock-artboard{min-height:134px!important;max-height:134px!important}
.text-editor-controls{overflow:hidden!important}.text-options-grid{width:100%!important;min-width:0!important;grid-template-columns:minmax(0,.96fr) minmax(0,1.18fr)!important;gap:8px!important}.text-options-grid>.text-option-group{min-width:0!important;max-width:100%!important}
/* Gabe's 3:24 PM panel photo: the outline labels sat on top of the color
   controls. The Text fill row was pinned at 42px while its content (label,
   swatches, hex row) needs ~95px, so it spilled into the effects row below.
   The fill row is auto now; the rows above give back the few pixels. */
.text-style-panel{display:grid!important;grid-template-columns:1fr 1fr;grid-template-rows:42px 50px 44px 44px 46px auto minmax(50px,1fr)!important;gap:4px 8px!important;align-content:stretch!important}
.text-style-panel>.text-entry-row,.text-style-panel>.field-grid,.text-style-panel>.style-slider-row,.text-style-panel>.text-style-placement,.text-style-panel>.style-precision-row,.text-style-panel>.field,.text-style-panel>.text-style-effects{grid-column:1/-1!important;min-height:0}
.text-style-panel>.text-entry-row{grid-row:1!important}.text-style-panel>.field-grid{grid-row:2!important}.text-style-panel>.style-slider-row{grid-row:3!important}.text-style-panel>.text-style-placement{grid-row:4!important}.text-style-panel>.style-precision-row{grid-row:5!important}.text-style-panel>.field{grid-row:6!important;margin:0}.text-style-panel>.text-style-effects{grid-row:7!important}
.text-style-placement{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;margin:0!important}.text-style-placement .field{margin:0!important}.text-style-placement .field>span{display:block!important;font:800 11px/1 var(--font-body)!important;text-transform:uppercase;letter-spacing:.03em}.text-style-placement input{height:24px!important}
.style-precision-row{display:grid;grid-template-columns:1fr 1fr;align-items:end;gap:8px;min-width:0}.style-precision-row>.alignment-buttons,.style-precision-row>.style-curve-row{min-width:0}.style-precision-row .style-curve-row{gap:5px}
.alignment-buttons{gap:6px!important}.alignment-buttons button{min-height:38px!important;height:38px!important;border:1px solid #515960!important;border-radius:2px!important;background:linear-gradient(180deg,#f3f5f6,#aeb5ba 48%,#7a8288)!important;box-shadow:inset 0 1px #fff,0 3px 0 #3e454a!important;color:#121212!important;font:800 15px/1 var(--font-heading)!important;text-transform:uppercase}.alignment-buttons button[aria-pressed="true"]{border-color:var(--generator-hyper)!important;background:linear-gradient(180deg,#33393e,#0d0f11)!important;box-shadow:inset 0 0 0 2px var(--generator-hyper),0 3px 0 #000!important;color:var(--generator-hyper)!important}
.text-style-effects{display:grid!important;grid-template-columns:1fr 1fr!important;grid-template-rows:1fr!important;gap:8px!important}.text-style-effects>.outline-control{height:auto!important;align-self:stretch!important}
.text-effects-panel{gap:8px!important;padding:8px!important;background:linear-gradient(145deg,#dce0e3,#929aa0)!important}
.text-asset-actions{gap:8px!important}.text-asset-actions button{min-height:62px!important;border:1px solid #444b50!important;border-radius:2px!important;background:linear-gradient(160deg,#f5f6f7 0%,#aab1b6 48%,#747c82 100%)!important;box-shadow:inset 0 1px #fff,0 4px 0 #353b40,0 8px 14px rgba(0,0,0,.23)!important}.text-asset-actions strong{font:800 19px/1 var(--font-heading)!important;text-transform:uppercase}.text-asset-actions small{margin-top:4px!important;background:none!important;color:#202428!important;font:700 15px/1 var(--font-heading)!important;text-transform:uppercase}
.text-effects-panel .effect-presets{gap:7px!important}.text-effects-panel .effect-presets button{min-width:0!important;width:auto!important;overflow:hidden!important;border:2px solid #4f565b!important;border-radius:2px!important;box-shadow:inset 0 1px rgba(255,255,255,.7),inset 0 -7px rgba(0,0,0,.18),0 4px 0 #3d4348!important;transform:none!important;filter:none!important}.text-effects-panel .effect-presets button::before{display:none!important}.text-effects-panel .effect-presets button span{display:grid!important;place-items:center!important;align-self:stretch!important;min-width:0!important;width:100%!important;height:100%!important;padding:3px!important;border-radius:0!important;background:transparent!important;color:#fff!important;font:800 14px/.95 var(--font-heading)!important;white-space:normal!important;overflow-wrap:anywhere;text-transform:uppercase;text-shadow:-1px -1px 0 #111,1px -1px 0 #111,-1px 1px 0 #111,1px 1px 0 #111!important}.text-effects-panel .effect-presets button[aria-pressed="true"]{border-color:var(--generator-hyper)!important;box-shadow:inset 0 0 0 2px #121212,0 0 0 2px var(--generator-hyper),0 4px 0 #111!important}

@media(max-width:960px) and (orientation:landscape){
  .text-options-workspace{grid-template-rows:84px minmax(0,1fr)!important;gap:3px!important}.text-mock-artboard{min-height:80px!important;max-height:80px!important}.text-options-grid{grid-template-columns:.9fr 1.1fr!important;gap:3px!important}
  .text-editor-controls{grid-template-rows:minmax(0,1fr)!important;gap:0!important}.text-window-actions{display:none!important}
  .text-style-panel{grid-template-rows:23px 27px 24px 25px 24px 22px minmax(42px,1fr)!important;gap:1px 3px!important;padding:3px 5px!important}.text-style-panel .field>span{display:block!important;font-size:11px!important;line-height:8px!important}.text-style-placement{gap:4px!important}.text-style-placement .field>span{font-size:11px!important;line-height:8px!important}.text-style-placement input{min-height:16px!important;height:16px!important}.alignment-buttons{gap:2px!important}.alignment-buttons button{min-height:22px!important;height:22px!important;padding:0!important;font-size:11px!important}.text-style-effects{gap:3px!important}.text-style-effects>.outline-control{height:auto!important}
  .style-precision-row{gap:3px}.style-precision-row .style-curve-row{gap:2px}.style-precision-row .style-curve-row .field>span{font-size:11px!important}
  .text-effects-panel{gap:3px!important;padding:3px 5px!important}.text-asset-actions{gap:3px!important}.text-asset-actions button{min-height:36px!important;height:36px!important;padding:2px 4px!important}.text-asset-actions strong{font-size:12px!important}.text-asset-actions small{display:block!important;margin-top:1px!important;font-size:11px!important}.text-effects-panel .effect-presets{gap:3px!important;grid-template-columns:repeat(5,1fr)!important;grid-template-rows:repeat(4,minmax(0,1fr))!important}.text-effects-panel .effect-presets button{padding:1px!important}.text-effects-panel .effect-presets button span{font-size:11px!important}
}

/* Final main-page composition override. */
.editor-main{grid-template-rows:44px 178px 96px minmax(220px,1fr)!important}
.canvas-section{padding:7px 16px!important}.canvas-scroll{height:100%;padding:3px 0!important;display:grid;align-items:center;touch-action:pan-y}.artboard{width:100%;max-height:none!important;transition:transform .18s ease;transform-origin:center}.canvas-layer--text{pointer-events:none!important;cursor:default!important;border:0!important;box-shadow:none!important}
.canvas-scroll.is-insert-zoomed{cursor:grab;touch-action:none}.canvas-scroll.is-insert-zoomed.is-panning{cursor:grabbing}.canvas-scroll.is-insert-zoomed .artboard{transform:translate3d(var(--insert-zoom-x,0),0,0) scale(1.72);transition:none}.canvas-scroll.is-insert-zoomed .layer-stage{pointer-events:none}
.creation-chooser{display:grid!important;grid-template-columns:minmax(200px,.3fr) minmax(0,1fr)!important;gap:14px!important;padding:7px 12px!important;border-radius:2px!important}.creation-chooser .eyebrow{color:var(--generator-hyper)!important;text-shadow:-1px -1px 0 #121212,1px -1px 0 #121212,-1px 1px 0 #121212,1px 1px 0 #121212}.creation-choice-buttons{display:grid!important;grid-template-columns:repeat(2,minmax(250px,440px))!important;align-items:center;justify-content:center;gap:clamp(24px,5vw,88px)!important;max-width:none!important}
.liquid-choice{min-height:72px!important;border:2px solid var(--generator-hyper)!important;border-radius:2px!important;background:linear-gradient(155deg,#f77a20,#b84205 55%,#4d1900)!important;color:#fff!important;box-shadow:inset 0 1px rgba(255,255,255,.65),inset 0 -8px rgba(0,0,0,.18),0 0 0 1px #121212,0 0 18px rgba(223,255,0,.42),0 5px 0 #111!important}.liquid-choice svg{color:var(--generator-hyper)!important}.liquid-choice small{color:#fff!important}.liquid-choice strong{font-weight:900!important;text-shadow:0 2px #121212}
.canvas-toolbar{display:grid!important;grid-template-rows:28px minmax(0,1fr)!important;align-items:stretch!important;justify-content:stretch!important;gap:3px!important;min-width:250px!important;min-height:78px!important;height:78px!important;margin:0!important;padding:4px!important;border:1px solid #687178!important;background:linear-gradient(145deg,#2d3337,#08090a)!important;box-shadow:inset 0 1px #8b949a,0 4px 0 #050607,0 8px 16px rgba(0,0,0,.22)!important}.canvas-toolbar button{min-width:0!important;min-height:19px!important;margin:0!important;border-radius:2px!important;background:linear-gradient(180deg,#f1ff50,#dfff00 55%,#90a500)!important;border:1px solid #121212!important;color:#121212!important;font:900 12px/1 var(--font-heading)!important;box-shadow:inset 0 1px #fff,0 2px 0 #000!important}.canvas-toolbar button[hidden]{display:none!important}.object-quick-controls,.canvas-toolbar.has-object-selection .object-quick-controls{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px}.canvas-toolbar.has-object-selection{min-width:250px!important}.object-quick-controls button{min-height:19px!important;height:19px!important;padding:1px 2px!important;font-size:11px!important}.object-quick-controls button:disabled{opacity:.38!important;cursor:not-allowed!important}.canvas-toolbar .insert-zoom-action{min-height:28px!important;height:28px!important;font-size:11px!important}
.panel-heading .panel-icon{display:grid!important;place-items:center;flex:0 0 46px!important;height:46px!important;border:0!important;border-radius:0!important;background:transparent!important;color:var(--generator-hyper)!important;box-shadow:none!important}.panel-heading .panel-icon svg{width:42px;height:42px;padding:2px;fill:none;stroke:currentColor;stroke-width:1.8;filter:drop-shadow(0 2px #121212)}.panel-icon--tools svg{transform:rotate(-8deg)}
.tool-grid .liquid-tool svg{width:34px!important;height:34px!important;padding:5px!important}.tool-grid .liquid-tool span{font:900 15px/1 var(--font-heading)!important;text-transform:uppercase;letter-spacing:.025em}.tool-grid .liquid-tool{gap:7px!important}#insertSpecSelect[data-status="needs-vehicle"]{border-color:var(--generator-hyper)!important;box-shadow:inset 0 0 0 1px #121212,0 0 10px rgba(223,255,0,.34)!important}
@media(max-width:1180px){.creation-choice-buttons{grid-template-columns:repeat(2,minmax(190px,1fr))!important;gap:22px!important}.liquid-choice strong{font-size:17px!important}.liquid-choice small{font-size:11px!important}}
@media(max-width:960px) and (orientation:landscape){.editor-main{grid-template-rows:32px minmax(82px,1fr) 58px 52px!important}.canvas-scroll{padding:2px 0!important}.artboard{height:112px!important;min-height:112px!important;aspect-ratio:auto!important}.creation-chooser{grid-template-columns:minmax(0,1fr)!important;height:58px!important;padding:3px 10px!important}.creation-chooser>div:first-child{display:none!important}.creation-choice-buttons{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:24px!important}.liquid-choice{height:48px!important;min-height:48px!important;padding:3px 10px!important;border-width:1px!important}.liquid-choice strong{font-size:12px!important}.liquid-choice svg{width:27px!important;height:27px!important;padding:4px!important}.panel-heading .panel-icon{display:none!important}}

/* Guided Walter questions and four persistent concept-library slots. */
.control-grid[data-creation-path="ai"] .fit-panel{grid-column:span 3!important}.control-grid[data-creation-path="ai"] .walter-panel{grid-column:span 9!important}.walter-panel{grid-template-columns:minmax(285px,.58fr) minmax(0,1.42fr)!important}.walter-builder{position:relative;overflow:visible!important}.prompt-launch-summary{display:grid;gap:4px}.prompt-launch-summary .button{min-height:43px}.prompt-launch-summary p{margin:0;padding:5px 7px;border-left:4px solid var(--generator-hyper);background:rgba(255,255,255,.72);font-size:11px;font-weight:700;line-height:1.2}
.walter-prompt-builder{position:absolute;z-index:20;inset:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:7px;padding:9px;border:2px solid var(--generator-hyper);background:linear-gradient(145deg,#20252a,#090b0d);color:#fff;box-shadow:0 14px 35px rgba(0,0,0,.46)}.walter-prompt-builder[hidden]{display:none!important}.walter-prompt-builder header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-bottom:6px;border-bottom:1px solid #6d767d}.walter-prompt-builder h3{margin:0;font:800 19px/1 var(--font-heading);text-transform:uppercase}.walter-prompt-builder header button{min-height:34px;padding:4px 9px;border:1px solid #90999f;background:#d7dbde;color:#121212;font-weight:800}.prompt-question-grid{display:grid;grid-template-columns:1fr 1fr;align-content:start;gap:5px 7px;min-height:0;overflow:auto}.prompt-question-grid label{display:grid;gap:2px;min-width:0}.prompt-question-grid label>span{color:var(--generator-hyper);font:800 12px/1 var(--font-heading);text-transform:uppercase}.prompt-question-grid input{width:100%;min-height:34px;padding:5px 7px;border:1px solid #737c82;border-radius:2px;background:#f8f9f9;color:#121212;font:700 12px/1.1 var(--font-body)}.prompt-question-wide{grid-column:1/-1}.walter-prompt-builder footer{display:grid;grid-template-columns:.72fr 1.28fr;gap:7px}.walter-prompt-builder footer .button{min-height:39px;padding:4px}
/* Booth (1920x1080) cutoff: forcing four cards into two fixed 1fr rows clipped
   each card's footer (Place on Designer / Add Text buttons) and the bottom row
   ran past the screen. Let the rows grow to their content and scroll the 2x2
   grid INSIDE the panel, so nothing is ever clipped or pushed past the edge. */
.walter-results .generation-results{grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-template-rows:repeat(2,minmax(min-content,1fr))!important;min-height:0!important;overflow:auto!important;overscroll-behavior:contain}.walter-results .concept-card{grid-template-rows:auto auto auto!important;border-radius:3px!important}.concept-card-head{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:6px;min-height:32px;padding:3px 5px;background:linear-gradient(180deg,#30363b,#111315);color:#fff}.concept-buy-choice{display:flex;align-items:center;gap:5px;font:800 11px/1 var(--font-heading);text-transform:uppercase}.concept-buy-choice input{width:18px;height:18px;accent-color:var(--generator-hyper)}.concept-trash{display:grid;place-items:center;width:30px;min-height:26px!important;padding:0!important;border:1px solid #8b949a!important;background:#16191b!important;color:#ff7b35!important;font-size:18px!important}.walter-results .concept-preview{position:relative;z-index:1;width:100%;height:auto!important;min-height:34px!important;aspect-ratio:12.094!important;overflow:hidden;border-block:1px solid #5f676d;background:#121212}.walter-results .concept-preview img{position:absolute;inset:0;display:block;width:100%;height:100%!important;object-fit:cover}.walter-results .concept-card footer{position:relative;z-index:2;grid-template-columns:minmax(0,1fr) minmax(125px,.48fr)!important;min-height:42px;background:#f4f5f5}.walter-results .concept-card footer span{font-size:12px;font-weight:700}.walter-results .concept-card footer button{min-height:34px!important;background:linear-gradient(#e65a08,#9d3100)!important;color:#fff!important}.walter-results .concept-card.is-active{border:2px solid var(--generator-hyper)!important;box-shadow:0 0 18px rgba(223,255,0,.45)!important}
.insert-card-preview img{width:100%;height:100%;object-fit:cover}.finish-selection-summary{display:grid;grid-template-columns:minmax(220px,.75fr) minmax(0,1.25fr);gap:12px;margin:10px;padding:10px;border:1px solid #596168;background:linear-gradient(145deg,#f8f9f9,#b7bdc1)}.finish-selection-summary strong{font:800 20px/1 var(--font-heading);text-transform:uppercase}.finish-selection-summary p{margin:4px 0 0;font-size:12px}.finish-selected-previews{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.finish-selected-previews img{width:100%;aspect-ratio:12.094;object-fit:cover;border:2px solid #121212}
@media(max-width:1180px){.control-grid[data-creation-path="ai"] .fit-panel{grid-column:span 3!important}.control-grid[data-creation-path="ai"] .walter-panel{grid-column:span 9!important}.walter-panel{grid-template-columns:minmax(250px,.52fr) minmax(0,1.48fr)!important}.prompt-question-grid input{font-size:12px}.concept-buy-choice{font-size:12px}}
@media(max-width:960px) and (orientation:landscape){.mobile-panel-dialog .walter-panel{grid-template-columns:minmax(245px,.72fr) minmax(0,1.28fr)!important}.walter-prompt-builder{inset:0;padding:4px;gap:3px}.walter-prompt-builder h3{font-size:13px}.walter-prompt-builder header{padding-bottom:2px}.walter-prompt-builder header button{min-height:26px}.prompt-question-grid{grid-template-columns:repeat(2,1fr);gap:2px 4px}.prompt-question-grid label>span{font-size:11px}.prompt-question-grid input{min-height:24px;height:24px;padding:2px 4px;font-size:11px}.walter-prompt-builder footer .button{min-height:27px}.concept-card-head{min-height:24px;padding:1px 3px}.concept-buy-choice{font-size:11px}.concept-buy-choice input{width:14px;height:14px}.concept-trash{width:24px;min-height:21px!important}.walter-results .concept-preview{min-height:24px!important}.walter-results .concept-card footer{grid-template-columns:1fr!important;min-height:24px}.walter-results .concept-card footer span{display:none}.walter-results .concept-card footer button{min-height:23px!important}}

/* Keep the flat industrial surface treatment without overriding the calibrated visual hierarchy. */
.liquid-button::before,.liquid-tool::before,.liquid-mini::before,.mobile-action-dock button::before,.effect-presets button::before{display:none!important;content:none!important}

/* Checkout inside the finish dialog: the engine graft's cart handoff. Same
   orange as the FINISH action so buying reads as the same family of act. */
.finish-checkout-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;margin-top:10px;padding:10px 22px;border:2px solid #0d0f11;border-radius:8px;background:linear-gradient(180deg,#ff8a2a,#f96601);color:#121212;font:700 15px/1 "Oswald",sans-serif;letter-spacing:.04em;text-transform:uppercase;cursor:pointer}
.finish-checkout-button:disabled{opacity:.45;cursor:not-allowed}
.finish-checkout-button:not(:disabled):hover{filter:brightness(1.06)}

/* --- Show round: his 23 points, batch 1 ------------------------------------
   1: the path chooser centres in the page, copy above the buttons.
   8/9: the big Aerolidz logo carries the header instead of the wordmark.
   10: the design-name box is gone from the top of the screen. */
/* The chooser row is a fixed-height band in the page grid, so the two big
   buttons take it alone, centered; their own labels already say what the
   choice is, which is how the client's own Codex pass solved the same
   collision. */
.creation-chooser--centered{display:grid!important;grid-template-columns:1fr!important;justify-items:center!important;align-content:center!important;padding:8px 16px!important}
.creation-chooser--centered .creation-chooser-copy{display:none!important}
.creation-chooser--centered .creation-choice-buttons{width:min(720px,96%)!important;margin:0 auto!important}
.brand-logo{display:block;height:44px;width:auto}
@media(max-width:800px) and (orientation:landscape){.brand-logo{height:30px}}
.design-name[hidden]{display:none !important}

/* --- Show round batch 2: quick colors and a rotation centre mark ----------- */
.quick-colors{display:grid;grid-template-columns:repeat(12,1fr);gap:4px;margin:4px 0 6px}
.quick-color{aspect-ratio:1;min-height:22px;border:1px solid rgba(18,18,18,.4);border-radius:5px;cursor:pointer;padding:0}
.quick-color:hover{transform:scale(1.12)}
.quick-color:focus-visible{outline:2px solid var(--generator-hyper);outline-offset:1px}
#textRotation{background:linear-gradient(90deg,transparent calc(50% - 1px),#f96601 calc(50% - 1px),#f96601 calc(50% + 1px),transparent calc(50% + 1px))}

/* --- Show round batch 3: backgrounds-only switch --------------------------- */
.backgrounds-only-row{display:flex;align-items:center;gap:9px;margin:0 0 8px;padding:8px 10px;border:1px solid #d8d8d8;border-radius:10px;background:#fff;cursor:pointer}
.backgrounds-only-row input{width:18px;height:18px;accent-color:#f96601}
.backgrounds-only-row strong{display:block;font-size:13px}
.backgrounds-only-row small{color:#555;font-size:11px}
.concept-card footer{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.concept-card footer button{min-height:36px}

/* A status readout must never eat a tap: the toast sits over the generate
   button at the bottom centre, and on the booth touchscreen a visitor's press
   right after any toast landed on the toast, not the button under it. */
.toast{pointer-events:none}

/* --- Show round: phone QR in the import panel ------------------------------ */
.phone-upload-block{display:flex;align-items:center;gap:12px;margin:8px 0;padding:9px 12px;border:1px dashed #b9752e;border-radius:10px;background:#fff8f2}
.phone-upload-block strong{display:block;font-size:13px}
.phone-upload-block small{color:#555;font-size:11px}
#phoneUploadQr{border:1px solid #ddd;border-radius:6px;background:#fff}

/* --- Show round: layer counts + zoom button state -------------------------- */
.layer-counts{margin:0 0 8px;padding:6px 10px;border-radius:8px;background:#12141614;font:700 12px/1.2 var(--font-body)}
#textZoomButton[aria-pressed="true"]{filter:saturate(1.2) brightness(1.05);border-color:#f96601;box-shadow:inset 0 0 0 2px #fff,0 0 0 3px #f96601}

/* --- Show round: the buy-more ladder in the finish dialog ------------------ */
.ladder-strip{margin:10px 0 2px;padding:10px 12px;border:1px solid #e0c4a4;border-radius:10px;background:#fff8f2}
.ladder-strip strong{display:block;margin-bottom:6px;font-size:13px;text-transform:uppercase;letter-spacing:.04em}
.ladder-strip ol{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:0;padding:0;list-style:none}
.ladder-strip li{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 4px;border:1px solid #ddd;border-radius:8px;background:#fff;font-size:11px}
.ladder-strip li b{font-size:15px}
.ladder-strip li.is-reached{border-color:#f96601;background:#f96601;color:#fff}
.ladder-strip small{display:block;margin-top:7px;font-size:12px;font-weight:700}

/* --- Round 6: booth port ------------------------------------------------- */
/* The credit chip. Free designs on a show weekend, plain credits otherwise,
   nothing at all on the booth panel, which spends nothing. */
.credit-chip[hidden]{display:none}
.credit-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid rgba(249,102,1,.55);border-radius:999px;background:rgba(249,102,1,.08);font-size:11px;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}
.credit-chip strong{font-size:14px}
/* The signed-out warning chip. Same silhouette as the credit chip so the header
   reads as one family, but it is a button: tapping it reopens the sign-in gate. */
.signin-chip[hidden]{display:none}
.signin-chip{display:inline-flex;align-items:center;padding:4px 10px;border:1px solid rgba(200,40,40,.6);border-radius:999px;background:rgba(200,40,40,.1);color:inherit;font:inherit;font-size:11px;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;cursor:pointer}
/* The gate borrows the tutorial card's skin but not its posture: the tutorial
   docks bottom-right as a coach panel, while the gate is a centered decision
   with a dimmed backdrop, because it is the one thing worth reading first. */
.signin-dialog[open]{position:fixed;inset:0;margin:auto;width:min(430px,calc(100vw - 28px));height:fit-content;z-index:150}
.signin-dialog::backdrop{background:rgba(18,18,18,.55)}
.signin-dialog .tutorial-entry-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.signin-dialog a.button{text-decoration:none}
/* Booth mode: staff and shared-library surfaces never appear on a public
   screen. The studio has no admin entry of its own, so this is the back door
   out of the app and the theme toggle a visitor should not be flipping. */
body[data-booth="on"] #backButton,
body[data-booth="on"] #themeToggle{display:none}
/* The landscape header hides every ghost and outline button, which at the show
   viewport took the Help / Tutorial button with it: the walkthrough was then
   unreachable on the one screen size the booth actually runs. Help stays at
   every width because it is the only way back in once the offer is dismissed.
   Save is left hidden on purpose, the studio autosaves and the status sits
   next to it. */
.header-actions #helpButton{display:inline-flex}
/* While the walkthrough is running, the guide floats above the tool panel it
   just opened. At the show viewport that panel fills the screen, so without
   this the guide was technically alive and completely hidden behind it. It
   sits bottom right, clear of the panel's own close and reset controls. */
.tutorial-dialog[open]{z-index:140}
/* A modal dialog is laid out in the top layer, fixed and centred. A non-modal
   one is positioned in normal document flow, so opening these panels
   non-modally for the walkthrough dropped them below the fold at the show
   viewport: the panel was open, correct and completely off screen. These
   restore the modal geometry, under the guide and above the page. */
.mobile-panel-dialog.is-guided[open],
.tool-dialog.is-guided[open]{position:fixed;inset:0;margin:auto;z-index:100}
/* The guide steps out of its own way: when the control a step points at is
   underneath it, it moves to the top corner instead. */
.tutorial-dialog.is-raised{top:14px;bottom:auto}
@media(max-width:960px){.tutorial-dialog.is-raised{top:6px;bottom:auto}}

/* Gabe photographed two CLOSE buttons side by side in AI mode: one on Insert
   Setup, one on the Walter panel. On the wide layouts the Insert Setup panel is
   a permanent column rather than something you dismiss, and closing it only
   leaves a hole, so the Close belongs to the panel you actually opened. The
   narrow landscape overlay still shows it, because there the panel really is a
   sheet over the canvas and needs a way out. */
@media(min-width:961px){.fit-panel .panel-close{display:none}}

/* The hidden attribute is only a UA-level display:none, so every author rule
   that gives .creation-chooser a display beats it, including the !important
   ones in the narrow landscape blocks. Setting element.hidden looked like it
   worked and changed nothing on screen. This is what actually takes the path
   chooser off the layout once a path is chosen. */
.creation-chooser[hidden]{display:none!important}
/* .editor-main is a fixed four track grid at every breakpoint, and the chooser
   owns the third track. Taking it out of flow slid the control grid up into
   that short track and squashed the whole panel to a sliver. Rather than
   restate eight different grid-template-rows, let the control grid take the
   freed track as well: this holds whatever the track sizes are, and is inert
   where the control grid is display:none or position:fixed. */
.editor-main:has(.creation-chooser[hidden]) .control-grid{grid-row:span 2}

/* The QR sits beside the upload zone on a phone, same height, whole code on
   screen. Last in the file on purpose: the base .phone-upload-block rules sit
   mid-file and would otherwise win the cascade and reintroduce the top margin
   that made the two cards sit misaligned. */
@media(max-width:960px) and (orientation:landscape){
  #importBrowserPanel{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:8px;align-items:stretch}
  #importBrowserPanel .upload-zone{min-height:0;height:auto}
  #importBrowserPanel progress,#importBrowserPanel #uploadStatus,#importBrowserPanel #cancelUpload{grid-column:1/-1}
  .phone-upload-block{flex-direction:column;justify-content:center;text-align:center;margin:0;padding:10px}
  .phone-upload-block img{width:132px;height:132px}
  .phone-upload-block strong{font-size:15px}
  .phone-upload-block small{font-size:12px}
}

/* R14 part 1: the text tool was untouchable on phones. The cram layers above
   force fixed pixel rows with overflow:hidden at every level, so the panel
   "fits" by letting rows overlap: the Arch label painted over the vertical
   placement slider, and sliders rendered 12-17px tall with no thumb a finger
   can land on. Gabe's own suggestion applies: scroll instead of cram. Panels
   scroll, every slider and color well is at least 40px, and no fixed row
   template survives, so rows size to their content and nothing overlaps.
   Deliberately last in the file: it must out-cascade every layer above. */
@media(max-width:960px) and (orientation:landscape){
  .dialog-body{overflow-y:auto!important;-webkit-overflow-scrolling:touch}
  .dialog-body>[data-tool-panel]{height:auto!important;min-height:100%;overflow:visible!important}
  .text-options-workspace{height:auto!important;grid-template-rows:84px auto!important}
  .text-editor-controls{height:auto!important;overflow:visible!important;grid-template-rows:auto!important}
  .text-options-grid{height:auto!important}
  .text-options-grid>.text-option-group{height:auto!important;overflow:visible!important}
  .text-style-panel{grid-template-rows:none!important;grid-auto-rows:auto!important;gap:7px 8px!important;padding:6px 8px!important}
  .text-style-panel .field>span,.text-style-placement .field>span,.style-precision-row .style-curve-row .field>span{display:block!important;font-size:12px!important;line-height:1.15!important}
  .text-style-panel .field input,.text-style-panel .field select,.text-style-panel .font-preview-button{min-height:40px!important;height:40px!important;padding:2px 8px!important;font-size:14px!important}
  .style-slider-row input,.style-curve-row input,.text-style-placement input,.shadow-slider-row input{min-height:44px!important;height:44px!important;padding:0!important}
  .text-entry-row input,.text-entry-row .button,.text-entry-row .text-style-add{min-height:44px!important;height:44px!important;font-size:14px!important}
  .alignment-buttons button{min-height:40px!important;height:40px!important;font-size:13px!important}
  .text-style-effects{grid-template-rows:none!important;grid-auto-rows:auto!important}
  .text-style-effects>.outline-control{height:auto!important}
  .outline-control input[type=color],.text-editor-controls input[type=color]{min-height:44px!important;height:44px!important;padding:2px!important}
  .shadow-direction button{min-height:40px!important;height:40px!important}
  .text-effects-panel .effect-presets{grid-template-rows:none!important;grid-auto-rows:minmax(40px,auto)!important}
  .text-effects-panel .effect-presets button{min-height:40px!important}
  .text-asset-actions button{min-height:44px!important;height:auto!important}
  .text-style-effects>.outline-control{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:6px!important;align-items:end!important}
  .text-style-effects>.outline-control .field{display:grid!important;grid-template-columns:1fr!important;grid-template-rows:auto auto!important;gap:3px!important}
  .text-style-effects>.outline-control .field input{min-height:44px!important;height:44px!important;padding:0!important}
  .text-style-effects>.outline-control .color-only input{width:64px!important;min-height:44px!important;height:44px!important}
  .text-style-effects>.shadow-controls .shadow-slider-row input{min-height:44px!important;height:44px!important}
  .text-style-effects>.shadow-controls .shadow-direction button{min-height:40px!important;height:40px!important}
  .text-style-effects>#resetEffects{min-height:40px!important;height:40px!important;font-size:13px!important}
  .text-style-effects>.outline-control .field>span,.text-style-effects>.shadow-controls>legend,.text-style-effects>.shadow-controls .shadow-slider-row .field>span{font-size:12px!important;line-height:1.15!important;white-space:normal!important}
  .text-style-panel .quick-color{width:38px!important;height:38px!important;min-width:38px!important;min-height:38px!important}
}

/* R14 part 2, applied as Gabe stated at 4:16 AM. On the phone the Manual
   Tools tile grid repeats the dock button for button, which is the
   duplication he circled; the dock is the phone's navigation, so the tile
   grid stands down there and the panel that held it hides once empty. The
   three drawer buttons in the text window shrink to a compact strip (his
   photo 6: "reduce size of tool buttons") and the freed column lets the
   effect tiles spread out ("spread out the effects buttons"). */
@media(max-width:960px) and (orientation:landscape){
  #toolsPanel{display:none!important}
  /* R22-1, Gabe from the booth: "the background gallery is broken: as soon as
     I select it and send it to the insert it takes me back to insert setup."
     On a phone the manual lane's control grid is a fixed opaque overlay, and
     R14 (above) hid its tool tiles as dock duplicates, so the only inline panel
     left was the fit panel; every reload and every Skin Vault return therefore
     landed the manual designer on the Insert Setup panel with the just-applied
     background hidden behind it. In the manual lane the dock is the whole
     navigation (Insert reopens setup as a sheet, Background/Text/Layers open
     their tools), so the overlay has nothing left to show; standing it down
     lets the insert canvas be the base view, and the applied background is what
     the customer sees. The AI lane still needs its Walter panel, so this is
     scoped to the manual lane only; desktop and portrait are untouched. */
  .control-grid[data-creation-path="manual"]{display:none!important}
  .text-asset-actions{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px!important}
  .text-asset-actions button{min-height:44px!important;height:44px!important;padding:4px 6px!important}
  .text-asset-actions strong{font-size:13px!important}
  .text-asset-actions small{display:none!important}
  .text-effects-panel .effect-presets{gap:7px!important;grid-template-columns:repeat(4,1fr)!important;grid-auto-rows:minmax(44px,auto)!important}
  .text-effects-panel .effect-presets button span{font-size:12px!important}
  .fit-panel:has(#fitmentSummary:not([data-status="empty"])):not(.show-vehicle-picker) .vehicle-combobox{display:none!important}
  #fitmentSummary:not([data-status="empty"]){cursor:pointer}
}

/* The viewport-locked workspace above assumes the booth panel's full 1080px
   of height. On anything shorter, including a maximized desktop browser on a
   1080 screen whose chrome eats into the viewport, the locked grid clips the
   setup steps, tool panels, and purchase offers with no way to reach them.
   Below the panel's exact height the editor falls back to the classic
   scrolling page; only the fullscreen 1080 panel keeps the locked workspace. */
@media (min-width:961px) and (max-height:1079px){
  html,body{height:auto;overflow:auto}
  .editor-main{height:auto;display:block;overflow:visible;padding:16px 20px 40px}
  .editor-main>*{margin-bottom:14px}
}

/* Round 18: booth safety valve + honest checklist. Each layer gets its own
   Delete inside the group rows (text layers have no other reachable delete),
   and the automatic production check renders as a neutral step, not a warning
   with a dead Fix button. */
.layer-group-row{align-items:start}
.layer-group-row>div{min-width:0}
.layer-chip-list{display:grid;grid-template-columns:minmax(0,1fr);gap:4px;margin-top:4px}
.layer-chip{display:flex;align-items:center;justify-content:space-between;gap:6px;min-width:0;min-height:34px;padding:2px 2px 2px 8px;border:1px solid #ddd;border-radius:6px;background:#fafafa}
.layer-chip small{flex:1;min-width:0;overflow:hidden;color:#444;font-size:12px;text-overflow:ellipsis;white-space:nowrap}
.layer-chip button{flex:none}
.layer-chip button{min-height:30px;padding:2px 10px;border:1px solid #c33;border-radius:5px;background:#fff;color:#c33;font-weight:800;cursor:pointer}
.layer-chip button:disabled{border-color:#bbb;color:#999;cursor:not-allowed}
/* The label is a select button (more specific than the red Delete rule above). */
.layer-chip .layer-chip-select{flex:1;min-width:0;min-height:30px;overflow:hidden;padding:6px 8px;border:1px solid transparent;border-radius:5px;background:transparent;color:#333;font-size:12px;font-weight:700;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}
.layer-chip .layer-chip-select:hover{background:#eef0f2}
.layer-chip.is-active{border-color:#1a73e8;background:#eef4ff}
.layer-chip.is-active .layer-chip-select{color:#0b57d0}
.check-item.is-auto .check-icon{background:#121212;color:#f96601}

/* The finish dialog outgrew the booth panel: at exactly 1080 its content runs
   113px past the native dialog cap, which parks Add to cart below the fold of
   a scrollbar nobody notices on a touch screen. The dialog becomes a grid:
   header, summary, and the checkout block stay pinned while the checklist
   alone scrolls, so the buy button is always on screen at any height. */
.finish-dialog{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;overflow:hidden}
.finish-dialog .finish-checklist{min-height:0;overflow-y:auto}
.finish-dialog .finish-truth{margin-top:8px}

/* Round 19 night: the text tool's preview kept a padded height, so a placed
   AI concept rendered as a zoomed, cropped patch behind the Add Text area
   (the mock was 8:1 while the insert is 12:1, and cover-fit magnified the
   art by half again). The preview now holds the insert's true proportions
   at every width, so what sits behind the draft text is the real scene. */
.text-mock-artboard{height:auto!important;aspect-ratio:12.094!important;min-height:0!important;max-height:none!important}
.text-window-actions{grid-template-columns:1fr 1fr}
.text-window-actions .button--danger{border:1px solid #c33;background:#fff;color:#c33}
/* Text layers rejoined the draggable set (day-1 report); the old lock that
   made them untouchable on the canvas is lifted. The generic .canvas-text
   rule also declared position:relative, which beat .canvas-layer's absolute
   (same specificity, later in the file): with two or more text layers each
   one was displaced by the flow height of the ones before it, drawing text
   below where its saved coordinates say it lives. Absolute wins here. */
.canvas-layer--text{position:absolute!important;pointer-events:auto!important;cursor:move!important}
.canvas-layer--text[aria-pressed="true"]{border:2px solid #fff!important;box-shadow:0 0 0 2px var(--color-accent)!important}

/* Day-2 phone repro, trap 2: on a landscape phone the prompt builder sits
   absolute inside a Walter panel that is taller than the locked viewport, so
   Use These Answers and Back to Styles rendered below a screen that cannot
   scroll and the builder could be neither applied nor backed out of. On
   phone landscape the builder becomes a fixed full-screen sheet that
   scrolls internally, so every question and both action buttons are always
   reachable. */
@media (max-width:900px) and (orientation:landscape){
  .walter-prompt-builder{position:fixed;inset:4px;z-index:120;grid-template-rows:auto auto auto;overflow-y:auto}
}

/* Round 21, spec S3: the path fork is one clean choice. The marketing panel
   (essay plus offers) leaves the choice stage entirely; the ladder pricing
   already lives in the Finish dialog, which is where the spec puts offers.
   The chooser's copy block returns so the locked vehicle and size sit right
   above the two cards. */
.path-prompt{display:none!important}
.creation-chooser--centered .creation-chooser-copy{display:block!important;margin:0;text-align:center}
.creation-chooser--centered .creation-chooser-copy h2{display:none}
.creation-chooser--centered .creation-chooser-copy .eyebrow{margin:0}
/* The finish dialog's grid display (the header-pinning fix) also overrode the
   browser's closed-dialog hiding, so the closed checklist painted inline at
   the page bottom whenever the layout above it ran short. A closed dialog is
   invisible, full stop. */
.finish-dialog:not([open]){display:none!important}
/* The fork row was sized for two bare pills; with the S3 context line above
   the cards it sizes to its content on desktop instead of clipping. Phones
   keep their own row template. */
@media(min-width:961px){
.editor-main:has(.creation-chooser:not([hidden])){grid-template-rows:44px minmax(150px,1.1fr) auto minmax(210px,1fr)!important}
.creation-chooser:not([hidden]){height:auto!important;min-height:0!important}
}

/* Round 21, spec S7: the save-time dialog's guest note. Quiet small print
   under the actions; the warning is honest, not alarmed. */
.signin-dialog .signin-guest-note{display:block;margin-top:10px;color:#666;font-size:12px;line-height:1.35}

/* Text Press owns layer interaction; the main insert is a read-only preview. */
#layerStage { pointer-events:none; }
#textMockLayer { display:none!important; }
#textMockDesignStage, #textMockDesignStage .canvas-layer { pointer-events:auto; touch-action:none; }
#textMockDesignStage .canvas-layer.is-selected { outline:2px solid var(--color-accent,#F96601); }
.tool-dialog.is-text-tool { width:min(1450px,98vw); height:auto!important; max-height:96dvh; overflow:auto; }
.tool-dialog.is-text-tool [data-tool-panel="textOptions"] { height:auto!important; }
.tool-dialog.is-text-tool .dialog-body { height:auto!important; overflow:visible; }
.tool-dialog.is-text-tool .text-options-workspace { height:auto!important; grid-template-rows:auto auto!important; }
.tool-dialog.is-text-tool .text-editor-controls { display:block; overflow:visible!important; }
.tool-dialog.is-text-tool .text-options-grid { height:auto!important; overflow:visible; }
.tool-dialog.is-text-tool .text-window-actions { position:static!important; width:auto!important; display:flex!important; flex-wrap:wrap; gap:var(--space-2,8px); margin-top:var(--space-3,16px); }
.tool-dialog.is-text-tool .text-window-actions button { min-height:44px!important; height:auto!important; }
.tool-dialog.is-text-tool .text-entry-row { display:flex; flex-wrap:wrap; height:auto; }
.tool-dialog.is-text-tool .text-entry-row input { flex:1 1 200px; min-width:0; }
#textPressSelection { margin:var(--space-2,8px) 0; }
#textPressBackgroundControls:not([hidden]) { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin:8px 0; }
#textPressBackgroundControls button, #duplicateImage { min-height:44px; padding:8px 12px; }
.import-stage-actions { flex-wrap:wrap; }
.import-stage-actions small { flex-basis:100%; }
#textPressObjectControls:not([hidden]) { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--space-2,8px); }
#textPressObjectControls input { width:100%; min-height:44px; }
@media(max-width:720px) {
  .tool-dialog.is-text-tool .text-options-grid { grid-template-columns:1fr!important; }
  #textPressObjectControls:not([hidden]) { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
:root .admin-studio-status:not([hidden]) { margin: 0; padding: var(--space-2, 8px) var(--space-3, 16px); background: var(--color-background-secondary, #F3F3F3); color: var(--color-primary, #121212); border-left: var(--space-1, 4px) solid var(--color-accent, #F96601); font-family: var(--font-body, Rubik), sans-serif; }
html[data-admin-studio="true"] [data-insert-action="cart"], html[data-admin-studio="true"] [data-checkout-offer] { display: none; }
/* Vehicle preview is a clean customer rendering, not another editable canvas. */
.vehicle-composite{background:#121212}
.vehicle-composite.is-paint-loading .vehicle-zoom{visibility:hidden}
.vehicle-composite.is-paint-loading::after{content:"Preparing paint preview…";position:absolute;inset:0;display:grid;place-items:center;color:#fff;font:500 16px/1.4 var(--font-heading)}
.vehicle-color-field small{font-size:11px;line-height:1.4;color:#555;font-weight:400}
#vehicleColorSelect{min-height:44px}
#retryVehicleColor{min-height:44px;margin-block:0 8px}
.vehicle-options .vehicle-selector-icon,.fitment-summary .vehicle-selector-icon{object-fit:contain;background:#f3f3f3;border-radius:6px;padding:3px}
html[data-generator-theme="black"] .vehicle-color-field small{color:#ddd}
.vehicle-composite>img{object-fit:contain;object-position:center;filter:none;opacity:1}
.vehicle-insert-slot{display:block;overflow:hidden;isolation:isolate;background:#000;box-shadow:0 0 6px rgba(18,18,18,.28)}
.vehicle-composite.is-lit .vehicle-insert-slot{filter:none;mix-blend-mode:normal;box-shadow:0 0 0 1px rgba(255,255,255,.12)}
/* The slot's mask fractions are meaningful only against the IMAGE box. The
   zoom wrapper shrink-wraps the image so the band lands on the light bar even
   when the dialog is wider than the photo, which is what floated Gabe's band
   up onto the windshield in his screenshots. On phones the wrapper also zooms
   toward the band so the insert reads at booth distance. */
.vehicle-composite{display:flex;justify-content:center;overflow:hidden}
.vehicle-zoom{position:relative;height:100%;flex:0 0 auto}
.vehicle-zoom>img{display:block;height:100%;width:auto;object-fit:contain;filter:none;opacity:1;transition:filter var(--duration-slow,260ms) var(--ease-standard,ease)}
.vehicle-composite.is-lit .vehicle-zoom>img{filter:brightness(.38) saturate(.78)}
.vehicle-artwork-glow{position:absolute;pointer-events:none;opacity:0;overflow:hidden;filter:blur(12px) brightness(1.3) saturate(1.15);mix-blend-mode:screen;transform:scale(1.025,1.8);transform-origin:center;transition:opacity var(--duration-slow,260ms) var(--ease-standard,ease)}
.vehicle-composite.is-lit .vehicle-artwork-glow{opacity:.64}
.vehicle-composite.is-lit .vehicle-insert-slot>.vehicle-insert-stage{filter:brightness(1.13) saturate(1.03)}
@media(max-width:960px) and (orientation:landscape){
  .vehicle-zoom{transform:scale(var(--band-zoom,1.55));transform-origin:var(--band-cx,50%) var(--band-cy,58%)}
}
@media(max-width:720px) and (orientation:portrait){
  /* A tall viewport must not scale the photo so far that the bar leaves both
     sides of the screen. Keep the complete aperture visible on a phone. */
  .vehicle-zoom{width:180%;height:auto;align-self:flex-start}
  .vehicle-zoom>img{width:100%;height:auto}
}
.vehicle-insert-stage{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;transform-origin:top left}
.vehicle-insert-slot .canvas-layer{cursor:default;pointer-events:none}
@media(prefers-reduced-motion:reduce){.vehicle-zoom>img,.vehicle-artwork-glow{transition:none}}

/* Owner-guided artboards and local Off/On comparison share the same photo and
   artwork renderer. A gray empty board is never added to the production layers. */
.vehicle-insert-slot.has-owner-outline,
.vehicle-composite.is-lit .vehicle-insert-slot.has-owner-outline{box-shadow:0 0 0 var(--vehicle-artboard-outline,0px) #000}
.vehicle-preview-dialog[open]{display:flex;flex-direction:column;height:100dvh;max-height:100dvh;overflow:hidden;background:#121212}
.vehicle-preview-dialog>.preview-header{flex:0 0 auto;padding:var(--space-2,8px) var(--space-3,16px)}
.vehicle-preview-dialog>.vehicle-composite{flex:1 1 auto;min-height:0;height:auto}
.vehicle-preview-dialog [hidden]{display:none!important}
.vehicle-preview-dialog>.preview-actions{position:static;flex:0 0 auto;justify-content:flex-end;flex-wrap:wrap;gap:var(--space-2,8px);padding:var(--space-2,8px) var(--space-3,16px);background:#121212}
.vehicle-preview-dialog .preview-actions button,.vehicle-preview-dialog .dialog-close{min-height:44px}
.vehicle-preview-note{flex:0 0 auto;margin:0;padding:var(--space-1,4px) var(--space-3,16px);font:400 12px/1.3 var(--font-body);color:#fff;background:#121212}
.vehicle-comparison{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));flex:1 1 auto;min-height:0;gap:var(--space-2,8px);padding:var(--space-2,8px)}
.vehicle-comparison figure{display:grid;grid-template-rows:auto minmax(0,1fr);gap:var(--space-2,8px);margin:0;min-width:0;min-height:0}
.vehicle-comparison figcaption{position:relative;z-index:1;color:#fff;font:600 20px/1.2 var(--font-heading);text-align:center}
.vehicle-comparison .vehicle-composite{height:100%;min-height:0;align-items:center}
.vehicle-comparison .vehicle-zoom{flex:none;align-self:center;transform:none!important}
.vehicle-comparison .vehicle-zoom>img{width:100%;height:100%;object-fit:contain}
.vehicle-comparison .development-label{left:var(--space-2,8px);right:var(--space-2,8px);bottom:var(--space-2,8px);padding:var(--space-1,4px);font-size:10px}
@media(max-width:960px) and (orientation:landscape){
  .vehicle-preview-dialog .preview-header h2{font-size:20px}
  .vehicle-preview-dialog .preview-actions{padding:var(--space-1,4px) var(--space-2,8px)}
  .vehicle-preview-dialog .preview-actions button{padding:var(--space-2,8px);font-size:13px}
  .vehicle-preview-note{font-size:10px;padding:var(--space-1,4px) var(--space-2,8px)}
  .vehicle-comparison{gap:var(--space-1,4px);padding:var(--space-1,4px)}
  .vehicle-comparison figure{gap:var(--space-1,4px)}
  .vehicle-comparison figcaption{font-size:16px}
  .vehicle-comparison .development-label{font-size:8px;line-height:1.2}
}
@media(max-width:800px) and (orientation:portrait){.vehicle-preview-dialog[open]{display:none}}
.vehicle-view-controls{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2,8px);padding:var(--space-2,8px) var(--space-3,16px);color:#fff;background:#121212;font-family:var(--font-body,Rubik)}
.vehicle-view-controls select,.vehicle-view-controls button{min-height:44px;font-family:var(--font-body,Rubik);padding:var(--space-2,8px)}
.vehicle-view-controls select{background:#fff;color:#121212}
.vehicle-composite.is-photo-contained .vehicle-zoom{transform:none!important}
.vehicle-composite.is-unavailable .vehicle-zoom{visibility:hidden}
.vehicle-composite.is-unavailable::after{content:attr(data-message);position:absolute;inset:0;display:grid;place-items:center;padding:var(--space-4,24px);color:#fff;text-align:center;font:500 18px/1.4 var(--font-body,Rubik)}
@media(max-width:960px) and (orientation:landscape) {
  html[data-admin-studio="true"] .header-actions #saveButton { display: inline-flex; min-height: 44px; }
}
