/* Isolated lab presentation. Original controllers retain billing and generation. */
.st-grid.stx.ald { display: grid; grid-template-columns: minmax(0,1fr); gap: 20px; padding-bottom: 56px; }
.ald > *, .ald .stx-left, .ald #stWork, .ald #stGal { min-width: 0; }
.ald .stx-left #stWork { padding: 0; background: transparent; box-shadow: none; border: 0; }
.ald .stx-left .pricebox { margin-top: 16px; }
.ald-nav { display: flex; grid-column: 1 / -1; flex-wrap: wrap; gap: 6px; border-bottom: 1px solid var(--line); padding: 0 0 14px; }
.ald-nav button { display: inline-flex; align-items: center; justify-content: center; gap: 9px; padding: 11px 18px; min-height: 44px; border-radius: 10px; color: #a9aec6; font-size: 13px; }
.ald-nav button svg { width: 18px; height: 18px; }
.ald-nav button:hover { background: var(--panel-2); color: var(--ink); }
.ald-nav button[aria-current] { color: var(--mint); background: rgba(169,243,225,.08); box-shadow: inset 0 0 0 1px rgba(169,243,225,.2); }
.ald .ald-panel { background: var(--panel); border: 1px solid rgba(190,202,230,.09); border-radius: 16px; }
.ald .ald-kicker { color: #b4bdd3; font-size: 11px; font-weight: 650; letter-spacing: .09em; text-transform: uppercase; }
.ald .ald-muted { color: #a0a7bf; line-height: 1.6; }
.ald .stx-h { white-space: normal; font-size: 26px; line-height: 1.15; letter-spacing: -.025em; }
.ald .stx-head { gap: 9px; }
.ald .stx-sub { line-height: 1.6; color: #a0a7bf; }
.ald .stx-eyebrow { letter-spacing: .08em; font-size: 11px; }
.ald .ws-ed { font-size: 11px; }
.ald .m-lab { color: #b4bdd3; }
.ald .m-err:not(:empty) { padding: 10px 0; line-height: 1.5; }
.ald button:disabled { cursor: not-allowed; }
.ald [hidden] { display: none !important; }
/* The global bottom blur otherwise obscures mobile form controls. */
body:has(.ald)::after { content: none; }
@media (max-width: 640px) {
  body:has(.ald) .main { padding-left: 14px; padding-right: 14px; }
  .st-grid.stx.ald { gap: 16px; padding-bottom: 90px; }
  .ald-nav { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 4px; padding-bottom: 12px; }
  .ald-nav button { padding: 9px 2px; flex-direction: column; gap: 5px; font-size: 10px; }
  .ald .stx-h { font-size: 24px; }
}
@media (prefers-reduced-motion: reduce) { .ald *, .ald *::before, .ald *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }
/* APPICS brand surfaces inherit app.css tokens; preserve Lab text and mint contrast. */
body:has(.ald) { --ink:#f5f5f5; --muted:#b4b4b4; --line:#343434; --mint:#94FAE2; --teal:#94FAE2; background:var(--bg); }
.ald { color:#f5f5f5; font-family:'Outfit',sans-serif; }
.ald-header { grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; gap:16px; min-width:0; }
.ald-header > strong { font-size:20px; letter-spacing:-.02em; }
.ald-header-actions { display:flex; align-items:center; gap:12px; }
.ald-header .ald-create,.ald-header .ald-credits { display:inline-flex; align-items:center; justify-content:center; gap:8px; height:40px; padding:0 14px; border:1px solid #343434; border-radius:9px; font-size:12px; color:#94FAE2; text-decoration:none; }
.ald-header svg { width:17px; height:17px; }
.ald .ald-panel { background:var(--panel); border-color:#303030; }
.ald .stx-sub,.ald .ald-muted,.ald .m-lab { color:#b4b4b4; }
.ald .cat-chips .catc { min-height:40px; border-radius:9px; }
.ald .btn-primary { background:#94FAE2; color:#10231e; border-radius:9px; min-height:44px; }
.ald .btn-ghost { border-radius:9px; min-height:40px; }
.ald button:focus-visible,.ald a:focus-visible,.alv-player button:focus-visible,.alv-player a:focus-visible { outline:2px solid #94FAE2; outline-offset:3px; }
@media(max-width:640px) { .ald-header { gap:8px; } .ald-header > strong { font-size:17px; } .ald-header-actions { gap:6px; } .ald-header .ald-create,.ald-header .ald-credits { padding:0 9px; font-size:11px; } }
/* Leave clear space below the original account chip fixed at the top right. */
.ald-header { padding-top:28px; }
/* The original Nova card belongs to the form flow in every decorated Lab.
   Old mobile overlay offsets may still exist on the node; neutralize them only
   while docked, preserving the original style for reset/fallback. */
.ald .ag-ping.ald-assistant {
  position: relative; inset: auto !important; width: 100%; max-width: none;
  min-width: 0; margin: 20px 0 0; padding: 20px 0 0;
  background: transparent; border: 0; border-top: 1px solid #343434;
  border-radius: 0; box-shadow: none; z-index: auto; animation: none;
}
.ald-assistant .agp-who { min-height: 32px; padding-right: 44px; color: #94fae2; letter-spacing: 0; text-transform: none; line-height: 1.5; }
.ald-assistant .agp-txt { color: #c7c7c7; font-size: 13px; line-height: 1.55; margin: 8px 0 12px; overflow-wrap: anywhere; }
.ald-assistant .agp-x { top: 8px; right: 0; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; opacity: 1; color: #b4b4b4; }
.ald-assistant .agp-x:hover { color: #f5f5f5; background: var(--panel-2); }
.ald-assistant .agp-btn { min-height: 44px; min-width: 72px; }
