/* Request flow at /sell and /vender (PRODUCT_SPEC.md section 6; DESIGN.md 6.2 and 7).
   Linked after tokens.css and base.css; every value comes from the tokens. One 600 px column at
   every width, 18 px body, 56 px inputs and primary actions, 64 px choice tiles, nothing with a
   fixed width so Spanish strings wrap instead of overflowing at 320 px. */

/* ---------- Chrome: back link, language, step label, progress ---------- */
.flow-bar{background:var(--surface);border-bottom:var(--border-w) solid var(--line);padding:var(--space-1) var(--gutter) 0}
.flow-bar__row,.flow-bar>.flow-step,.flow-bar>.progress{max-width:600px;margin-inline:auto}
.flow-bar__row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}
.flow-back{display:inline-flex;align-items:center;gap:var(--space-1);min-height:var(--tap-min);padding-right:var(--space-2);font-weight:600;text-decoration:none}
.flow-back:hover{text-decoration:underline}
.flow-lang{background:none;border:0;color:var(--brand);font:600 var(--fs-label)/1.2 var(--font-body);cursor:pointer;touch-action:manipulation}
.flow-step{margin:var(--space-1) 0 var(--space-2);font-size:var(--fs-meta);font-weight:600;color:var(--ink-2);font-variant-numeric:tabular-nums}
.flow-bar .progress{display:block}

/* ---------- The column ---------- */
.flow{font-size:var(--fs-flow);padding-block:var(--space-5) var(--space-7)}
.flow:focus{outline:none}
.step__title{font-size:var(--fs-h2);line-height:var(--lh-h2);margin-bottom:var(--space-5)}
.step__title:focus{outline:none}
.step__title:focus-visible{outline:var(--focus-w) solid var(--focus);outline-offset:var(--focus-offset)}
.fieldset{margin-bottom:var(--space-6)}
.fieldset .fieldset{margin:var(--space-4) 0}
.fieldset .summary-card:last-child{margin-bottom:0}
.step__lead{margin-bottom:var(--space-5)}
.reveal{margin-top:var(--space-4);display:grid;gap:0}
.flow .field{margin-bottom:var(--space-5)}
.flow .field--check{margin-bottom:var(--space-4)}
.fieldset>.field--check{margin-top:var(--space-4)}
.check__desc{display:block;font-size:var(--fs-meta);color:var(--ink-2)}
.flow .legend{display:block}
.flow legend.field__label{margin-bottom:var(--space-2)}
.flow .segmented__item{max-width:100%}
.flow .segmented__face{text-align:center}
.flow .choice__face{min-height:var(--tile)}
.flow .error-summary:focus{outline:var(--focus-w) solid var(--focus);outline-offset:var(--focus-offset)}
.flow .error-summary h2{font-family:var(--font-body);font-stretch:normal}
.flow .error-summary li+li{margin-top:var(--space-1)}
.flow .error-summary a{display:block}
.flow-link{display:inline-flex;align-items:center;min-height:var(--tap-min);font-weight:600}
.flow .btn--quiet{min-height:var(--tap-min)}
.flow details.more{margin:0 0 var(--space-5);padding:var(--space-2) var(--space-4) var(--space-1);border:var(--border-w) solid var(--line);border-radius:var(--r-card);background:var(--surface)}
.flow details.more>summary{display:flex;align-items:center;gap:var(--space-1);min-height:var(--tap-min);font-weight:600;cursor:pointer;list-style:none}
.flow details.more>summary::-webkit-details-marker{display:none}
/* A drawn chevron that turns on open, so the state never depends on the native marker. */
.flow details.more>summary::after{content:"";flex:none;margin-left:auto;width:.55em;height:.55em;border:solid var(--ink-2);border-width:0 2px 2px 0;transform:translateY(-.15em) rotate(45deg);transition:transform var(--dur-hover) var(--ease-enter)}
.flow details.more[open]>summary::after{transform:translateY(.15em) rotate(-135deg)}
.flow details.more[open]>summary{margin-bottom:var(--space-3)}
.flow .notice{font-size:var(--fs-body)}
.flow .notice p{margin:0 0 var(--space-3)}
.flow .notice p:last-child{margin-bottom:0}
.flow .notice .cluster{margin-top:var(--space-3)}
.promise{margin:var(--space-4) 0 0;font-size:var(--fs-meta);color:var(--ink-2)}
.d20{margin:var(--space-4) 0 var(--space-5);font-size:var(--fs-meta);color:var(--ink-2)}

/* ---------- Step 1: photos ---------- */
.pick-stack{display:grid;gap:var(--space-3);margin-bottom:var(--space-2)}
.file-input{position:absolute;opacity:0;width:1px;height:1px;margin:0;overflow:hidden}
.pick{display:flex;align-items:center;justify-content:center;gap:var(--space-2);border-radius:var(--r-control);font-weight:600;text-align:center;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background-color var(--dur-hover) var(--ease-enter)}
.pick--main{min-height:var(--tile);padding:var(--space-3) var(--space-4);background:var(--brand-tint);color:var(--brand);border:calc(var(--border-w) * 2) solid var(--brand);font-size:var(--fs-flow)}
.pick--sub{min-height:var(--tap-primary);padding:var(--space-2) var(--space-4);background:var(--surface);color:var(--ink);border:var(--border-w) solid var(--line-strong)}
.pick--sub:hover{background:var(--surface-2)}
.pick .icon{width:24px;height:24px}
.file-input:focus-visible+.pick{outline:var(--focus-w) solid var(--focus);outline-offset:var(--focus-offset)}
.pick[aria-disabled="true"]{opacity:.55;cursor:not-allowed}
.up-status{margin:var(--space-4) 0 var(--space-3);font-weight:600}
.up-status:empty{margin:0}
.flow .photo-grid{margin-bottom:var(--space-5)}
/* Tiles share a grid row; without this the shorter tile spreads its rows to match the taller one. */
.flow .photo-tile{align-content:start}
.flow .photo-tile__status{margin:0;display:flex;flex-wrap:wrap;gap:var(--space-1);align-items:center;font-size:var(--fs-meta)}
.flow .photo-tile>.btn{min-height:var(--tap-min);padding-inline:var(--space-2)}
.flow .photo-tile__actions .icon{width:24px;height:24px}

/* ---------- Step 2: what is it ---------- */
.line-list{list-style:none;margin:0 0 var(--space-5);padding:0;display:grid;gap:var(--space-3)}
.line-editor{margin-bottom:var(--space-5)}
.chosen{display:grid;gap:var(--space-1);margin-bottom:var(--space-5);padding:var(--space-4);border:var(--border-w) solid var(--brand);border-radius:var(--r-card);background:var(--brand-tint)}
.chosen__label{margin:0;font-size:var(--fs-meta);font-weight:600;color:var(--ink-2)}
.chosen__name{margin:0;font-weight:700}
.chosen__name:focus{outline:none}
.chosen__alt{display:block;font-weight:400;color:var(--ink-2)}
.chosen .btn--quiet{justify-self:start;padding-inline:0}
.sub{margin:var(--space-5) 0 var(--space-3);font:600 var(--fs-label)/1.3 var(--font-body);color:var(--ink-2)}
.tile-grid,.result-list{list-style:none;margin:0 0 var(--space-4);padding:0;display:grid;gap:var(--space-2)}
.tile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.tile{display:grid;align-content:center;gap:var(--space-1);width:100%;height:100%;min-height:var(--tile);padding:var(--space-2) var(--space-3);border:var(--border-w) solid var(--line-strong);border-radius:var(--r-control);background:var(--surface);color:var(--ink);font:inherit;text-align:left;cursor:pointer;touch-action:manipulation;transition:background-color var(--dur-hover) var(--ease-enter),border-color var(--dur-hover) var(--ease-enter)}
.tile:hover{background:var(--surface-2);border-color:var(--brand)}
.tile__name{font-weight:600;line-height:1.3}
.tile__alt,.tile__syn,.tile__note{font-size:var(--fs-meta);color:var(--ink-2);line-height:1.35}
.tile__syn{font-style:normal}
.use-text{margin-top:var(--space-2);white-space:normal}

/* ---------- Steps 3 and 4: one block per product ---------- */
.block{margin:0 0 var(--space-6);padding-top:var(--space-5);border-top:var(--border-w) solid var(--line-strong)}
.block__title{font-size:var(--fs-h3);line-height:var(--lh-h3);font-weight:600;margin-bottom:var(--space-4)}
.block__sub{display:block;margin-top:var(--space-1);font:400 var(--fs-meta)/1.4 var(--font-body);color:var(--ink-2)}

/* ---------- Step 5: price ---------- */
.money{position:relative}
.money__sign{position:absolute;left:var(--space-4);top:50%;transform:translateY(-50%);font-family:var(--font-mono);color:var(--ink-2);pointer-events:none}
.input--money{padding-left:var(--space-6);font-family:var(--font-mono);font-variant-numeric:tabular-nums}

/* ---------- Step 6: pickup ---------- */
.unit-chosen{margin:var(--space-3) 0 var(--space-2);font-weight:600}
.stepper__input::placeholder{font:400 var(--fs-label)/1 var(--font-body);color:var(--ink-2)}
.flow .select-wrap .select{min-height:var(--tap-primary)}

/* ---------- Step 7: contact ---------- */
.summary-card{display:grid;gap:var(--space-2);margin-bottom:var(--space-5);padding:var(--space-4);border:var(--border-w) solid var(--line);border-radius:var(--r-card);background:var(--surface)}
.summary-card__label{margin:0;font-size:var(--fs-meta);font-weight:600;color:var(--ink-2)}
.summary-card__text{margin:0;font-weight:600}
.summary-card__text:focus{outline:none}
.summary-card .btn--quiet{justify-self:start;padding-inline:0}

/* ---------- Step 8: the draft load ticket (DESIGN.md 7) ---------- */
.ticket--draft{margin-bottom:var(--space-2)}
.ticket__draft{font-family:var(--font-body);font-weight:600}
.tk-sec{padding-top:var(--space-4);margin-top:var(--space-4);border-top:var(--border-w) solid var(--line)}
.tk-sec:first-of-type{margin-top:0}
.tk-sec__head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:0 var(--space-3)}
.tk-sec__title{margin:0;font:600 var(--fs-label)/1.3 var(--font-body);color:var(--ink)}
.tk-change{display:inline-flex;align-items:center;min-height:var(--tap-min);font-weight:600}
.tk-changes{gap:0 var(--space-5)}
.tk-name{display:block;font-weight:600}
.tk-meta{display:block;font-size:var(--fs-meta);color:var(--ink-2)}
.ticket__table td.tk-cond{font-size:var(--fs-meta)}
.tk-dl{display:grid;grid-template-columns:minmax(7rem,38%) minmax(0,1fr);gap:var(--space-2) var(--space-4);margin:var(--space-2) 0 0}
.tk-dl dt{color:var(--ink-2);font-size:var(--fs-meta);font-weight:600}
.tk-dl dd{margin:0}
.thumb-row{list-style:none;display:flex;flex-wrap:wrap;gap:var(--space-2);margin:var(--space-2) 0 0;padding:0}
.thumb-row img{display:block;width:64px;height:64px;object-fit:cover;border-radius:var(--r-control);border:var(--border-w) solid var(--line);background:var(--surface-2)}
@media (max-width:479.98px){
  .ticket--draft .ticket__table .num{text-align:left;white-space:normal}
  .ticket--draft .ticket__table td.tk-cond{grid-column:span 2}
  .ticket--draft .ticket__table td.tk-cond[data-label]::before{content:attr(data-label);display:block;font-size:var(--fs-meta);font-weight:400;color:var(--ink-2)}
  .tk-dl{grid-template-columns:minmax(0,1fr);gap:0}
  .tk-dl dd{margin-bottom:var(--space-3)}
}
.ts-review{margin:0 0 var(--space-5);min-height:var(--tile)}

/* ---------- Resume banner (6.11) ---------- */
.resume{padding-top:var(--space-5)}
.resume .btn-row{gap:var(--space-3)}

/* ---------- Offline banner and the queue's check ---------- */
.offline-banner .cluster{gap:var(--space-2)}
.ts-box{flex-basis:100%}
.ts-box--open{margin-top:var(--space-2)}

/* ---------- Footer ---------- */
.flow-footer{margin-top:var(--space-6);margin-bottom:var(--space-3)}
.flow-footer>p,.flow-footer>ul,.flow-footer>.cluster{max-width:600px;margin-inline:auto}
.flow-footer>.cluster{margin-top:var(--space-3)}
