/* SU-12k v9: calm, above the fold, scannable. Loads last. Evolves the live v8 look (same fonts, colours, yellow accents, confirm column);
   changes sizes, weights, greys, spacing and WHEN things appear. Registers: value = ink 16/400; label = #555 14/500; helper = #767676 14/400;
   placeholder = lighter grey. Layout rules that differ per breakpoint live in the two media blocks at the end. */

/* ---------- page, head, steps ---------- */
.v9 .page-column{max-width:var(--column-v9)}
.v9 header{min-height:56px}
.v9 main{margin-top:var(--s5);margin-bottom:var(--s6);padding-bottom:0}
.v9 .page-title{margin:0 0 var(--s4)}
.v9 h1#page-title{font-size:var(--text-eyebrow);font-weight:600;line-height:1.2;letter-spacing:var(--tracking-eyebrow);color:var(--ink)}
.v9 .step{margin-top:var(--s7)}
.v9 #text-zone{margin-top:0}
.v9 .step-head{column-gap:var(--s6)}
.v9 .step h2:is(#text-title,#details-title,#images-title){display:flex;flex-direction:column;gap:var(--step-gap);font-size:var(--text-step-name);font-weight:700;line-height:1.05;letter-spacing:-.01em;color:var(--ink);text-transform:uppercase}
.v9 .step h2 .step-n{font-size:var(--text-step-n);font-weight:400;letter-spacing:.14em;line-height:1.2;color:var(--step-grey);text-transform:uppercase}
.v9 .step h2 .step-name{font-size:inherit;font-weight:700;color:var(--ink)}
.v9 .step h2 .step-dot{display:none}
.v9 .step-desc{margin:var(--s2) 0 0;max-width:46em;font-size:16px;line-height:1.5;color:var(--label-grey)}
.v9 .step[data-depth=active] .step-marker{top:2px}
/* completed bar: one centre line for check, "STEP n · NAME", receipt and Edit; Edit is centred in its button */
.v9 .step[data-depth=done] h2:is(#text-title,#details-title,#images-title){flex-direction:row;align-items:baseline;gap:6px;font-size:15px;font-weight:700;line-height:1.2;letter-spacing:.02em;color:var(--ink);white-space:nowrap}
.v9 .step[data-depth=done] h2 .step-n{font-size:12.5px;font-weight:400;color:var(--step-grey)}
.v9 .step[data-depth=done] h2 .step-dot{display:inline;color:var(--step-grey);font-weight:400}
.v9 .step[data-depth=done] h2 .step-name{color:var(--ink);font-weight:700}
.v9 .step[data-depth=done] .step-check{width:24px;height:24px}
.v9 .step[data-depth=done] .step-check::after{left:8px;top:3px;width:5px;height:10px}
.v9 .step[data-depth=done] .step-summary{font-size:15px;line-height:1.35;color:var(--label-grey)}
.v9 .step[data-depth=done] :is(#text-receipt,#details-receipt,#images-receipt){display:inline-flex;align-items:center;justify-content:center;gap:0;flex-wrap:nowrap;min-height:36px;min-width:72px;padding:0 var(--s5);font-size:15px;font-weight:600;line-height:1;text-align:center}
.v9 .quiet-link{font-size:14px;font-weight:400;color:var(--helper);min-height:32px;text-underline-offset:3px}
.v9 .quiet-link:hover{color:var(--ink);text-decoration-color:var(--accent);text-decoration-thickness:3px}
/* future steps: one faint line */
.v9 .step[data-depth=back]{margin-top:var(--s6);padding-top:var(--s4);border-top:1px solid var(--hair)}
.v9 .step[data-depth=back] h2:is(#text-title,#details-title,#images-title){flex-direction:row;align-items:baseline;gap:8px;font-size:16px;font-weight:500;letter-spacing:0;color:#8c8c8c}
.v9 .step[data-depth=back] h2 span{font-size:inherit;font-weight:inherit;letter-spacing:0;color:inherit}
.v9 .step[data-depth=back] h2 .step-dot{display:inline}
/* step 2 counter: quiet text, no bar */
.v9 .step[data-step=details][data-depth=active] .step-counter{align-self:end}
.v9 .zone-heading #images-info{grid-row:1;align-self:start;justify-self:end}
.v9 .zone-heading .step-desc{grid-row:2}
.v9 .link-note{display:none;margin:var(--s2) 0 0;font-size:14px;color:var(--helper)}
.v9 #confirm-progress{font-size:13px;font-weight:400;color:var(--helper)}
.v9 .progress-line{display:none}

/* ---------- step 1: one calm screen ---------- */
.v9 #text-entry{margin-top:var(--s4)}
.v9 .option-paste{position:relative}
.v9 #press-text{height:calc(7 * 1.55 * 16px + 28px);padding:14px 48px 14px 16px;border:1px solid var(--rule-line);font-size:16px;line-height:1.55;font-weight:400;color:var(--ink)}
.v9 #press-text.reading{height:calc(15 * 1.6 * 16px + 40px);line-height:1.6;padding:20px 48px 20px 24px}
.v9 textarea::placeholder{color:var(--instruction);font-size:16px;text-decoration-thickness:6px}
.v9 .opt-head{position:absolute;top:2px;right:2px;min-height:0;gap:0}
.v9 .minimums summary{width:36px;height:36px;min-height:36px}
.v9 .minimums summary span{width:20px;height:20px;font-size:12px}
.v9 .or-divider{margin:var(--s3) 0;gap:var(--s4);font-size:14px;color:var(--helper)}
.v9 .or-divider::before,.v9 .or-divider::after{background:var(--hair)}
.v9 .alt-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s5);align-items:start}
.v9 .alt-row .option{min-width:0}
.v9 .docx-drop{min-height:72px;padding:var(--s3) var(--s4);border:1px dashed var(--rule-line)}
.v9 .docx-drop .drop-title{font-size:15px;font-weight:400;line-height:1.4;color:var(--instruction)}
.v9 .alt-word{font-weight:500;color:var(--ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.v9 .docx-drop .quiet{font-size:15px;font-weight:400;min-width:0;min-height:32px;padding:0 2px;color:var(--instruction);text-decoration:underline;text-decoration-color:currentColor;text-decoration-thickness:1px;text-underline-offset:3px}
.v9 .docx-drop .quiet:hover{color:var(--ink)}
.v9 .docx-drop:hover,.v9 .docx-drop.dragover{background:var(--accent);border-style:solid;border-color:var(--ink)}
.v9 .docx-drop:hover .drop-title{color:var(--ink)}
.v9 #docs-url{min-height:72px;padding:0 var(--s4);border:1px solid var(--rule-line);font-size:15px;color:var(--ink)}
.v9 .option-link{position:relative}
.v9 #docs-url::placeholder{color:transparent;font-size:15px}
.v9 .link-cue{position:absolute;left:0;top:0;width:100%;height:72px;display:block;padding:0 var(--s4);font-size:15px;line-height:72px;text-overflow:ellipsis;color:var(--instruction);white-space:pre;overflow:hidden;pointer-events:none}
.v9 .link-cue .cue-note{color:var(--instruction)}
.v9 #docs-url:not(:placeholder-shown)+.link-cue{display:none}
.v9 .option .notice{font-size:14px;font-weight:400;margin:var(--s2) 0 0}
.v9 .conditions{font-size:14px;color:var(--helper)}
.v9 #close-text{font-size:15px;min-height:36px}

/* ---------- step 2: the spec sheet, quieter ---------- */
.v9 #project-details{margin-top:0}
.v9 .spec-group{margin-top:var(--s2);padding-top:var(--s1);border-top:1px solid var(--hair)}
.v9 .spec-group:first-child{margin-top:0;padding-top:0;border-top:0}
.v9 .spec-heading{padding:0 0 2px;border:0;font-size:var(--text-group-v9);font-weight:600;letter-spacing:.14em;color:var(--helper)}
/* progressive disclosure: the split address and the "my category is not here" helper show only while they are relevant */
.v9 [data-field=location]:not(:focus-within):not([data-partial]):not(:has([data-need])) .loc-parts,.v9 [data-field=type]:not(:focus-within):not(:has(.suggest-check input:checked)):not(:has(.type-warning:not([hidden]))) .suggest-check{position:absolute;width:1px;height:1px;min-height:0;margin:0;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.v9 .field{border:0}
.v9 .field>dt{margin:0}
.v9 .field>dt label{min-height:var(--row-h);font-size:var(--text-label-v9);font-weight:500;line-height:1.3;color:var(--label-grey)}
.v9 .field[data-field=title]>dt label{min-height:var(--title-row-h)}
.v9 .field[data-confirmed=true]>dt label::after{content:none}
.v9 .field>dd{position:relative}
.v9 .boxes>.box+.box{border-top:0}
.v9 .edit-value{min-height:var(--row-h);margin-left:-12px;padding-left:12px}
.v9 .field[data-field=title] .edit-value{min-height:var(--title-row-h)}
.v9 .edit-value input{min-height:var(--row-h);font-size:var(--text-value-v9);font-weight:400;line-height:1.4;color:#000}
.v9 .edit-value input::placeholder,.v9 .loc-parts input::placeholder{color:var(--placeholder);font-size:var(--text-helper);opacity:1}
.v9 button#project-title{font-size:20px;min-height:var(--title-row-h);font-weight:600}
.v9 button#project-title strong.ttl,.v9 button#project-title strong.sl,.v9 button#project-title strong.off{font-weight:600}
.v9 .field[data-field=title] input#title{min-height:var(--title-row-h);font-size:20px;font-weight:600}
/* confirm column: pending "Confirm" is a helper */
.v9 .edit-value button[data-confirm]{font-size:var(--text-helper)}
.v9 .edit-value button[data-confirm]:not(:disabled):not([aria-pressed=true])::before{font-size:var(--text-helper);font-weight:400;color:var(--placeholder)}
.v9 .edit-value button[data-confirm]:not(:disabled):not([aria-pressed=true]):hover::before{color:var(--ink)}
/* helpers: tags, hints, add links, suggestions, sub-labels */
.v9 .mark{font-size:var(--text-helper);font-weight:400;line-height:22px;color:var(--helper);border:1px solid var(--hair);padding:0 8px}
.v9 .field-hint{font-size:var(--text-helper);font-weight:400;line-height:1.4;color:var(--helper);margin:0 0 var(--s2)}
.v9 .add-another{position:absolute;width:1px;height:1px;min-height:0;margin:0;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.v9 .field[data-add-open] .add-another{position:static;width:auto;height:auto;min-height:32px;overflow:visible;clip-path:none;display:inline-flex;align-items:center;margin:0 0 var(--s1);font-size:var(--text-helper);font-weight:400;color:var(--helper);text-decoration:underline;text-decoration-color:#c4c4c4;text-underline-offset:3px}
.v9 .field[data-add-open] .add-another:hover{color:var(--ink);text-decoration-color:var(--accent);text-decoration-thickness:3px}
.v9 .suggest{border:1px solid #cfcfcf;box-shadow:0 6px 18px #00000022}
.v9 .suggest li{min-height:36px;padding:6px 12px;font-size:var(--text-helper);font-weight:400;color:var(--label-grey)}
.v9 .suggest li[aria-selected=true],.v9 .suggest li:hover{background:var(--accent);color:var(--ink)}
.v9 .suggest li[data-adjacent]::after{font-size:13px;color:var(--helper)}
.v9 .loc-parts{gap:var(--s5);padding-bottom:var(--s2)}
.v9 .loc-parts .part{gap:0}
.v9 .loc-parts label{font-size:var(--text-helper);font-weight:400;color:var(--helper)}
.v9 .loc-parts input{min-height:36px;font-size:var(--text-value-v9);color:#000}
.v9 .area-pair .unit{font-size:var(--text-helper);color:var(--helper)}
.v9 .area-pair input{width:96px}
.v9 .area-eq{color:var(--helper)}
.v9 .type-warning{font-size:var(--text-helper);font-weight:400;color:var(--label-grey)}
.v9 .suggest-check{min-height:32px;font-size:var(--text-helper)}
.v9 .suggest-check span{font-size:var(--text-helper);font-weight:400;color:var(--helper)}
.v9 .type-free label{font-size:var(--text-helper);font-weight:400;color:var(--helper)}
.v9 .type-free input{min-height:40px;font-size:var(--text-value-v9);color:#000}
.v9 .extra{margin-top:0}
.v9 .extra summary{min-height:26px;font-size:var(--text-helper);font-weight:400;color:var(--helper);text-decoration-color:#c4c4c4}
.v9 .extra summary:hover{color:var(--ink)}
.v9 .extra p{font-size:var(--text-helper);color:var(--helper)}
.v9 .extra-row label{font-size:var(--text-helper);font-weight:400;color:var(--helper)}
.v9 .extra-row select,.v9 .extra-row input{min-height:40px;font-size:var(--text-value-v9);color:#000}
.v9 .extra-row .btn{min-height:40px}
/* missing rows (pressing Confirm while incomplete): faint yellow mark + a short note, no pop-up */
.v9 .edit-value[data-need]{box-shadow:inset 3px 0 0 var(--accent);background:rgba(255,229,0,.12)}
.v9 .edit-value .need,.v9 .tile-editor .need,.v9 .image-drop .need{font-size:13px;font-weight:500;line-height:1.3;color:var(--need-ink)}
.v9 .edit-value .need{grid-column:1 / -1;grid-row:2;margin:-6px 0 6px}
.v9 .tile-editor[data-need]{box-shadow:inset 3px 0 0 var(--accent);background:rgba(255,229,0,.12);padding:2px 0 2px 8px}
.v9 .permission[data-need]{box-shadow:inset 3px 0 0 var(--accent);background:rgba(255,229,0,.12)}
.v9 .image-drop[data-need]{border-style:solid;border-color:var(--accent);background:rgba(255,229,0,.12)}
/* action line: calm sentence beside the button; button greyed (not disabled) while incomplete */
.v9 .required-note{margin:0;font-size:13px;color:var(--helper)}
.v9 .detail-actions{margin-top:var(--s2);padding:6px 0;gap:var(--s3) var(--s5);background:var(--paper);border-top:1px solid var(--hair)}
.v9 .action-line{display:flex;align-items:center;gap:var(--s5)}
.v9 .detail-actions .notice,.v9 .send-row .notice{margin:0;font-size:var(--text-helper);font-weight:400;line-height:1.4;color:#3a3a3c;border-left:3px solid var(--accent);padding-left:var(--s3)}
.v9 .detail-actions .notice:empty,.v9 .send-row .notice:empty{display:none}
.v9 .detail-actions .btn{min-height:40px;min-width:160px;margin:0;font-size:16px;font-weight:600}
.v9 .btn[aria-disabled=true]{background:var(--paper);color:#8a8a8e;border-color:#c9c9cc;cursor:default}
.v9 .btn[aria-disabled=true]:hover{text-decoration:none}

/* ---------- step 3: smaller tiles, slim drop bar, footer ---------- */
.v9 #image-content{margin-top:var(--s4)}
.v9 .gal .g{grid-template-columns:repeat(auto-fill,minmax(var(--tile-min),1fr));gap:20px 12px;margin-top:var(--s4)}
.v9 .gallery-instruction{margin:var(--s2) 0 0;font-size:14px;color:var(--helper)}
.v9 .image-drop,.v9 .gal.has-images .image-drop{flex-direction:row;min-height:var(--drop-h-v91);margin-top:0;padding:0 var(--s5);gap:var(--s3);border:1px dashed var(--rule-line);background:var(--paper)}
.v9 .drop-cross,.v9 .gal.has-images .drop-cross{width:18px;height:18px}
.v9 .drop-text{font-size:15px;font-weight:400;line-height:1.3}
.v9 .drop-text strong{font-weight:600}
.v9 .drop-sub{font-size:var(--text-helper);color:var(--helper)}
.v9 .image-drop:hover,.v9 .gal.files-over .image-drop{background:var(--accent);border-style:solid;border-color:var(--ink)}
.v9 .image-drop:hover .drop-sub{color:var(--ink)}
.v9 .gal .g .cover-link[aria-current=true]{outline-width:4px;outline-offset:-4px}
.v9 .cover-label{bottom:6px;left:6px;padding:0 6px;font-size:12px;line-height:1.6}
.v9 .image-box::before{height:64px;background:linear-gradient(to bottom,var(--scrim) 0,var(--scrim) 28px,transparent)}
.v9 figure:not(.is-cover) .image-box::after{height:56px;background:linear-gradient(to top,var(--scrim) 0,var(--scrim) 24px,transparent)}
.v9 .tile-controls [data-image-action=grab]{font-size:16px}
.v9 .tile-controls [data-image-action=delete]{font-size:20px}
.v9 .tile-controls button{font-size:16px}
.v9 .tile-controls [data-image-action=cover]{font-size:13px;bottom:0;min-width:0}
.v9 .tile-editor{margin-top:6px}
.v9 .tile-editor>input,.v9 .photo-choice>input{min-height:32px;padding:4px 0;font-size:14px;font-weight:400;color:#000;border-bottom:1px solid var(--hair)}
.v9 .tile-editor input::placeholder{color:var(--placeholder);font-size:14px}
.v9 .photo-choice{gap:2px}
.v9 .chips{gap:4px;margin-top:4px}
.v9 .chip,.v9 .chip input{min-height:26px}
.v9 .chip{max-width:100%}
.v9 .chip span{display:block;min-height:26px;max-width:100%;padding:0 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;line-height:24px}
.v9 #upload-status{font-size:14px}
.v9 #undo-region{margin-top:var(--s2);font-size:14px;color:var(--helper)}
.v9 #undo-region .quiet{min-height:32px;font-size:14px}
/* image errors: compact, open when new, Dismiss visible, dismissed ones collapse (R11-5) */
.v9 .refused{margin-top:var(--s3);padding:2px 0 2px var(--s4);border-left:3px solid var(--warning)}
.v9 .refused-title{font-size:13px;font-weight:600;line-height:1.4;color:var(--ink)}
.v9 .refused ul{margin:2px 0 0}
.v9 .refused li{justify-content:flex-start;min-height:28px;gap:0 var(--s4);flex-wrap:nowrap;font-size:14px}
.v9 .refused-text{font-size:14px;font-weight:400;line-height:1.35;color:var(--warning)}
.v9 .refused .quiet{flex:none;min-width:0;min-height:28px;padding:0 var(--s2);font-size:13px;font-weight:600;color:var(--ink);text-decoration-color:var(--accent);text-decoration-thickness:3px;text-underline-offset:3px}
.v9 .refused-foot{display:flex;flex-wrap:wrap;gap:0 var(--s5)}
.v9 .refused-foot .quiet{font-weight:500;color:var(--helper)}
.v9 #refused-dismissed{margin-top:2px;padding:0;list-style:none}
.v9 #refused-dismissed .refused-text{color:var(--helper)}
.v9 .disclaimer{margin:var(--s5) 0 0;max-width:none;font-size:13px;line-height:1.5;color:var(--helper)}
.v9 .completion{margin-top:var(--s3);padding:var(--s3) 0;background:var(--paper);border-top:1px solid var(--hair);display:flex;align-items:center;gap:var(--s5)}
.v9 .completion .permission{font-size:15px}
.v9 .completion .send-row{display:flex;flex-direction:row-reverse;align-items:center;gap:var(--s4);margin:0 0 0 auto}
.v9 #send{min-height:48px;min-width:180px;padding:0 var(--s7);font-size:16px;font-weight:600}
.v9 #send[aria-disabled=true]{background:var(--paper)}
.v9 .send-row .notice{max-width:32em}

/* ---------- sent: calm band, no icon, no title line (R12-4/5/6/7) ---------- */
body[data-state=sent].v9 main{margin-top:0;margin-bottom:0}
.v9 .success{position:relative;margin:0;padding:var(--s10) 0 var(--s10);background:var(--wash);box-shadow:0 0 0 100vmax var(--wash);clip-path:inset(0 -100vmax)}
.v9 .sent-inner{max-width:760px}
.v9 .success h1#sent-title:focus{outline:0}
.v9 .success h1#sent-title{margin:0;font-size:var(--text-sent);font-weight:700;line-height:1.05;letter-spacing:var(--tracking-title)}
.v9 .sent-rows{margin-top:var(--s7)}
.v9 .sent-row{margin:0;padding:0;border:0;overflow-wrap:anywhere}
.v9 .sent-what{font-size:19px;line-height:1.55;color:var(--ink)}
.v9 .sent-what+.sent-what{margin-top:var(--s4)}
.v9 .sent-note{font-size:15px;line-height:1.55;color:var(--label-grey)}
.v9 .sent-what+.sent-note{margin-top:var(--s6)}
.v9 .sent-note+.sent-note{margin-top:var(--s2)}
.v9 .sent-note:last-child{margin-top:var(--s5)}
/* status link + attached copy icon (R12-6) */
.v9 .status-line{display:flex;align-items:center;gap:var(--s1);margin-top:var(--s3)}
.v9 .status-line #status-link{display:inline;flex:0 1 auto;min-width:0;min-height:0;font-size:16px;font-weight:500;color:var(--ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.v9 .status-line #status-link [aria-hidden]{margin-left:.2em}
.v9 .status-line #status-link:hover{text-decoration-thickness:2px}
.v9 .copy-wrap{position:relative;display:inline-flex}
.v9 .copy-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:0;border-radius:0;background:transparent;color:var(--helper);cursor:pointer}
.v9 .copy-icon:hover{color:var(--ink);background:var(--accent)}
.v9 .copy-tip{position:absolute;left:100%;top:50%;transform:translateY(-50%);margin-left:var(--s1);padding:3px 8px;background:var(--ink);color:#fff;font-size:12px;line-height:1.4;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s}
.v9 .status-line[data-copied=true] .copy-tip{opacity:1}
.v9 .success .notice{margin:var(--s1) 0 0;font-size:14px;color:var(--helper)}
.v9 .success .notice:empty{display:none}
/* "Submit another project": the Fields masthead "Submit Your Project" treatment (office-m28-8: Inter 13px/400 ink, 1 px ink underline, no fill) */
.v9 .success #another{position:relative;display:inline-block;min-height:0;width:auto;margin-top:var(--s8);padding:0;border:0;border-bottom:1px solid var(--ink);border-radius:0;background:transparent;font:400 13px/1.5 var(--font-sans);letter-spacing:normal;text-transform:none;color:var(--ink);cursor:pointer}
.v9 .success #another::after{content:'';position:absolute;inset:-14px -12px}
.v9 .success #another:hover{background:transparent;text-decoration:none;border-bottom-color:var(--ink);box-shadow:0 1px 0 var(--ink)}
.v9 .success .reference{margin-top:var(--s8)}

/* ---------- desk list (R11-1): filters sit on the counters' grid ---------- */
.v9.desk td a{min-height:0}
.v9.desk .filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s4);align-items:end}
.v9.desk .filters label{display:block;min-width:0;flex:none}
.v9.desk .filters label:first-child{grid-column:1}
.v9.desk .filters label:last-child{grid-column:2}
.v9.desk .filters :is(select,input){display:block;width:100%;min-height:44px;margin-top:4px;padding:0 var(--s3);font-size:16px;color:var(--ink);border:1px solid var(--ink);border-radius:0;background:var(--paper)}
.v9.desk .filters input::placeholder{color:var(--placeholder)}

/* ---------- desktop-only layout ---------- */
@media(min-width:701px){
 .v9 .step[data-depth=done] .step-head{grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;column-gap:var(--s4);min-height:56px;padding:var(--s2) var(--s3) var(--s2) var(--s4)}
 .v9 .spec-group{display:grid;grid-template-columns:var(--group-col-v9) minmax(0,1fr)}
 .v9 .spec-group>*{grid-column:2}
 .v9 .spec-group>.spec-heading{grid-column:1;grid-row:1;align-self:start;display:flex;align-items:center;min-height:var(--row-h);padding:0}
 .v9 #spec-h-project{min-height:var(--title-row-h)}
 .v9 .field{display:grid;grid-template-columns:var(--label-col-v9) minmax(0,1fr);column-gap:var(--s6)}
 .v9 .edit-value{grid-template-columns:minmax(0,1fr) auto var(--tick-col-v9)}
 .v9 .edit-value button[data-confirm]{width:var(--tick-col-v9);min-width:var(--tick-col-v9)}
 .v9 .suggest{right:var(--tick-col-v9)}
 .v9 .loc-parts{grid-template-columns:repeat(3,minmax(0,1fr));padding-right:var(--tick-col-v9)}
 .v9 .type-free{margin-right:var(--tick-col-v9)}
 .v9 .detail-actions{display:flex;align-items:center;justify-content:space-between;position:sticky;bottom:0;z-index:20}
 .v9 .completion{position:sticky;bottom:0;z-index:20}
}

/* ---------- phone ---------- */
@media(max-width:700px){
 .v9 .page-column{padding:0 var(--s5)}
 .v9 main{margin-top:var(--s4)}
 .v9 .step h2:is(#text-title,#details-title,#images-title){font-size:var(--text-step-name-phone)}
 .v9 .step-head{grid-template-columns:minmax(0,1fr)}
 .v9 .step[data-depth=done] .step-head{grid-template-columns:auto minmax(0,1fr) auto;column-gap:var(--s3);padding:var(--s2) var(--s3) var(--s2) var(--s4)}
 .v9 .step[data-depth=done] h2:is(#text-title,#details-title,#images-title){font-size:14px;white-space:normal;flex-wrap:wrap}
 .v9 .step[data-depth=done] .step-summary{font-size:14px}
 .v9 .step[data-depth=back] h2:is(#text-title,#details-title,#images-title){font-size:16px}
 .v9 .step[data-step=details][data-depth=active] .step-counter{margin-top:var(--s2)}
 .v9 #press-text{height:176px;padding:12px 44px 12px 14px;font-size:16px}
 .v9 #press-text.reading{height:420px;padding:16px 44px 16px 16px}
 .v9 .alt-row{grid-template-columns:minmax(0,1fr);gap:var(--s3)}
 .v9 .docx-drop,.v9 #docs-url{min-height:64px}
 .v9 .link-note{display:block}
 .v9 .link-cue{height:64px;line-height:64px}
 .v9 .field>dt label{min-height:0;padding:var(--s3) 0 0;font-size:var(--text-label-v9)}
 .v9 .field[data-field=title]>dt label{min-height:0}
 .v9 .edit-value{grid-template-columns:minmax(0,1fr) var(--tick-hit);min-height:var(--row-h)}
 .v9 .field[data-field=title] .edit-value{min-height:var(--title-row-h)}
 .v9 .edit-value button[data-confirm]{width:var(--tick-hit);min-width:var(--tick-hit)}
 .v9 .edit-value .need{grid-column:1;margin:-4px 0 6px}
 .v9 .loc-parts{grid-template-columns:minmax(0,1fr);padding-right:0;gap:var(--s2)}
 .v9 .type-free{margin-right:0}
 .v9 .suggest{right:0}
 .v9 button#project-title{font-size:20px}
 .v9 .field[data-field=title] input#title{font-size:20px}
 .v9 .detail-actions{flex-direction:column;align-items:stretch;position:static}
 .v9 .action-line{flex-direction:column;align-items:stretch}
 .v9 .detail-actions .btn{width:100%}
 .v9 .gal .g{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 10px}
 .v9 .image-drop,.v9 .gal.has-images .image-drop{padding:var(--s3) var(--s4);flex-wrap:wrap;justify-content:center;align-content:center;min-height:var(--drop-h-v91-phone);max-height:var(--drop-h-v91-phone)}
 .v9 .drop-text{font-size:15px}
 .v9 .completion{flex-direction:column;align-items:stretch;gap:var(--s3);position:static}
 .v9 .completion .send-row{flex-direction:column-reverse;align-items:stretch;margin:0;gap:var(--s3)}
 .v9 #send{width:100%;min-width:0;min-height:52px}
 .v9 .send-row .notice{max-width:none}
 .v9 .success{padding:var(--s8) 0 var(--s9)}
 .v9 .success h1#sent-title{font-size:var(--text-sent-phone)}
 .v9 .sent-what{font-size:17px}
 .v9 .link-cue .cue-note{display:none}
 .v9.desk .filters{grid-template-columns:minmax(0,1fr)}
 .v9.desk .filters label:first-child,.v9.desk .filters label:last-child{grid-column:1}
}
@media(prefers-reduced-motion:reduce){.v9 *{scroll-behavior:auto!important}}
/* SU-14 feedback uses the existing palette, spacing and text sizes. */
.v9 #gallery figure[data-image-problem] .image-box{outline:var(--rule) solid var(--ink);box-shadow:0 0 0 var(--s1) var(--accent)}
.v9 .image-problem-note,.v9 #image-problem-list li,.v9 #also-found-list li{overflow-wrap:anywhere}
.v9 #image-problem-list .quiet,.v9 #also-found-list .quiet,.v9 .image-problem-note .quiet{margin-left:var(--s3)}
