/* One photo and one task at a time. The form is a separate, deliberate step. */
.brand-workspace .bw-content>.bt-editor { width:100%; max-width:1200px; margin-inline:auto; padding:16px 20px 100px; gap:14px; min-height:0; }
.bt-editor * { box-sizing:border-box; }
.bt-editor :is(button,summary,input,select) { font:inherit; }
.bt-editor :is(button,summary) { min-height:44px; cursor:pointer; }
.bt-editor :is(button,summary,select,input):focus-visible { outline:3px solid var(--es-focus,#956FFF); outline-offset:3px; }
.bt-editor button:disabled { opacity:.4; cursor:default; }
.bt-heading { display:grid; gap:12px; }
.bt-heading strong { flex:1; min-width:0; overflow-wrap:anywhere; font-size:17px; }
/* Navigation stays with the athlete identity; counters belong to the selection summary. */
html[data-theme] #app .bt-heading { background:transparent!important; }
.bt-composition { display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,340px); align-items:start; gap:24px; }
.bt-composition > * { min-width:0; }
.bt-photo-column { min-width:0; }
.bt-pager { display:flex; align-items:center; justify-content:space-between; gap:8px; padding-bottom:8px; }
.bt-pager button { border:1px solid var(--es-line,#3B3548); border-radius:50%; background:var(--es-panel,#15121D); color:var(--es-ink,#F6F3FA); width:44px; flex:0 0 44px; font-size:21px; }
.bt-pager > span { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:8px; text-align:center; line-height:1.4; }
.bt-pager b { font-size:15px; font-weight:600; }
.bt-pager small { color:var(--es-muted,#BAB3C8); font-size:13px; white-space:nowrap; }
.p36-placement.bt-editor .p35-photo { height:clamp(330px,58dvh,760px); min-height:0; }
.bt-editor .p35-photo .v30-stage,.bt-editor .p35-photo svg { height:100%; width:100%; min-height:0; max-height:none; aspect-ratio:auto; }
.bt-editor [data-brand-zone] [data-patch-group] { pointer-events:all; cursor:pointer; }
.bt-editor [data-brand-zone] .v30-patch-boundary { fill:#7657FF; fill-opacity:.07; stroke:#956FFF; stroke-width:1.5; }
.bt-editor [data-selected=true] .v30-patch-boundary { stroke-width:2.5; }
.bt-editor [data-brand-logo-handle] { pointer-events:all; cursor:nwse-resize; }
.bt-photo-tools { display:flex; flex-direction:column; gap:2px; }
.bt-photo-tools p { color:var(--es-muted,#BAB3C8); font-size:13px; line-height:1.45; text-align:center; margin:8px 0 0; }
.bt-photo-tools > div { display:flex; justify-content:center; gap:16px; }
.bt-photo-tools button,.bt-saved button,.bt-precise button { border:0; background:transparent; color:var(--es-ink,#F6F3FA); padding:8px; text-decoration:underline; text-underline-offset:4px; font-size:14px; }
.bt-tools { display:grid; gap:10px; padding-top:2px; }
.bt-zone { display:grid; gap:5px; color:var(--es-ink,#F6F3FA); font-size:14px; }
.bt-zone select,.bt-precise input:not([type=range]) { width:100%; min-width:0; min-height:46px; padding:10px 12px; border:1px solid var(--es-line,#3B3548); border-radius:9px; background:var(--es-panel,#15121D); color:var(--es-ink,#F6F3FA); font-size:16px; }
.bt-zone-price,.bt-empty,.bt-review-note { margin:0; font-size:13px; line-height:1.5; color:var(--es-muted,#BAB3C8); }
.bt-review-note { color:#ffdeb2; }
.bt-logo-heading { display:flex; align-items:center; justify-content:space-between; gap:10px; font-size:14px; }
.bt-upload { position:relative; display:inline-flex; align-items:center; min-height:44px; padding:8px; color:var(--es-ink,#F6F3FA); text-decoration:underline; text-underline-offset:4px; cursor:pointer; }
.bt-upload input { position:absolute; inset:0; opacity:0; width:100%; cursor:pointer; }
.bt-upload:focus-within { outline:3px solid var(--es-focus,#956FFF); outline-offset:2px; }
.bt-logos { display:flex; gap:8px; overflow-x:auto; padding:3px 3px 7px; scrollbar-width:thin; }
.bt-logos > button { flex:0 0 82px; width:82px; display:grid; grid-template-rows:48px auto; gap:5px; background:var(--es-panel,#15121D); border:1px solid var(--es-line,#3B3548); border-radius:10px; color:var(--es-ink,#F6F3FA); padding:7px; }
.bt-logos > button[aria-pressed=true] { outline:2px solid var(--es-accent-ink,#956FFF); outline-offset:0; background:var(--es-accent-soft,#1B1627); }
.bt-logos > button > span { display:flex; align-items:center; justify-content:center; border-radius:4px; min-width:0; overflow:hidden; background:linear-gradient(135deg,#F4F3F6 50%,#4B4654 50%); }
.bt-logos img { width:100%; height:100%; object-fit:contain; }
.bt-logos small { font-size:12px; line-height:1.35; white-space:normal; overflow-wrap:anywhere; }
.bt-logos p { font-size:14px; margin:0; }
.bt-saved { display:flex; align-items:center; justify-content:space-between; gap:8px; font-size:13px; color:var(--es-accent-ink,#956FFF); }
.bt-precise { border-top:1px solid var(--es-line,#3B3548); }
.bt-precise summary { display:list-item; padding:10px 0; font-size:14px; color:var(--es-ink,#F6F3FA); }
.bt-precise p { font-size:13px; color:var(--es-muted,#BAB3C8); line-height:1.5; }
.bt-precise-fields { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.bt-precise-fields label { min-width:0; display:grid; gap:5px; font-size:13px; }
.bt-photo-recap { border-top:1px solid var(--es-line,#3B3548); padding-top:10px; font-size:13px; line-height:1.5; }
.bt-photo-recap > strong { font-size:14px; }
.bt-photo-recap ul { margin:5px 0 0; padding:0; list-style:none; }
.bt-photo-recap li { display:grid; grid-template-columns:1fr 1fr; gap:5px 12px; padding:5px 0; }
.bt-photo-recap li span { min-width:0; overflow-wrap:anywhere; }
.bt-photo-recap li span:last-of-type { color:var(--es-muted,#BAB3C8); text-align:right; }
.bt-photo-recap li small { color:#ffdeb2; }
.bt-continue { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:10px; padding-top:8px; border-top:1px solid var(--es-line,#3B3548); }
.bt-continue > span { color:var(--es-muted,#BAB3C8); font-size:13px; }
.bt-editor .bt-continue button { min-width:140px; }
.bt-editor[data-placement-step=request] .p35-review { position:static; display:grid; grid-template-columns:minmax(0,1fr) minmax(260px,.75fr); width:100%; max-width:none; padding:0; gap:18px; }
.bt-editor[data-placement-step=request] .p37-summary { width:100%; }
.touch-demo-menu { margin:8px 12px; border-bottom:1px solid var(--es-line,#3B3548); }
.touch-demo-menu>summary { min-height:44px; padding:10px 2px; font-size:13px; line-height:1.6; color:var(--es-muted,#BAB3C8); cursor:pointer; }
@media (max-width:760px) {
  .brand-workspace .bw-content>.bt-editor { padding:8px 12px calc(90px + env(safe-area-inset-bottom,0px)); gap:10px; }
  .bt-heading strong { font-size:15px; }
  .bt-composition { grid-template-columns:minmax(0,1fr); gap:12px; }
  .p36-placement.bt-editor .p35-photo { height:clamp(240px,44dvh,480px); }
  .bt-tools { gap:8px; }
  .bt-editor[data-placement-step=request] .p35-review { grid-template-columns:minmax(0,1fr); }
  .bt-editor .bt-continue { position:sticky; bottom:calc(var(--sg-nav-clearance,var(--elan-tabbar-h,calc(56px + env(safe-area-inset-bottom,0px)))) + 12px); background:var(--es-bg,#0B0910); border-top:1px solid var(--es-line,#3B3548); padding:10px 2px; z-index:2; }
  /* Room under the sticky bar: at the end of the page it rests above the menu, never over the logos and settings. */
  .bt-editor .bt-tools { padding-bottom:calc(var(--sg-nav-clearance,var(--elan-tabbar-h,calc(56px + env(safe-area-inset-bottom,0px)))) + 12px); }
}
@media (prefers-reduced-motion:no-preference) {
  .bt-photo-column .p35-photo { animation:bt-photo-enter .18s ease-out; }
  @keyframes bt-photo-enter { from { opacity:.65; } to { opacity:1; } }
}

/* Held zones stay visible for orientation, with no editable logo. */
[data-placement-available="false"] .v30-patch-boundary{fill:rgba(21,20,24,.42);stroke:#B4B1BA;stroke-dasharray:4 3;}
[data-availability-notice]:empty{display:none;}
[data-existing-athlete-requests]{display:grid;gap:8px;margin-top:12px;}
[data-existing-athlete-requests] button{white-space:normal;text-align:left;}

/* Light theme: warnings need a darker tone than on the dark surface. */
html[data-theme="light"] :is(.bt-review-note,.bt-photo-recap li small){color:#8a4b00}
/* styles.css centres .v29-content with margin:auto; brand.css resets only the left side, so the
   right auto margin let the column shrink to the editor's content. The column always fills. */
.brand-workspace>.bw-content{margin-right:0}
