/* Mobile rhythm, tactile paper, and short, interruptible transitions. */
:root{--ease-out:cubic-bezier(.2,.8,.2,1);--ease-spring:cubic-bezier(.22,1.2,.4,1)}
html{scroll-padding-bottom:100px;-webkit-text-size-adjust:100%}
body{overflow-x:clip}
.app{height:100dvh;min-height:0;display:flex;flex-direction:column;padding-bottom:calc(var(--nav) + env(safe-area-inset-bottom))}
.app>.app-header{flex:none;padding-top:max(17px,env(safe-area-inset-top))}
.app>main{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}
.create-view{display:flex;flex-direction:column;flex:1;min-height:0}
.live-room-picker{height:auto;flex:none;padding-bottom:10px}
#production-live-note{margin:0;padding:3px 0 7px;font-size:11px;line-height:1.5}
.journey{flex:none}
.stage{flex:1;height:auto;min-height:0}
.stage-panel{min-width:0;padding-bottom:28px;scroll-padding:20px;scrollbar-width:none}
.stage-panel::-webkit-scrollbar{display:none}
.secondary-view{overflow-y:auto;min-height:0;flex:1;padding-bottom:30px;overscroll-behavior-y:contain;scroll-padding:22px;scrollbar-width:none}
.secondary-view::-webkit-scrollbar{display:none}
.secondary-view>.account-paper+.account-paper{margin-top:20px}
.mode-banner{flex:none;margin-bottom:10px}
button,summary,a,input,select,textarea{touch-action:manipulation}
button,summary,.logo,.marking-options label{transition:scale 160ms var(--ease-spring),background-color 180ms ease,color 180ms ease,box-shadow 180ms ease,translate 180ms var(--ease-out)}
.is-pressed{scale:.965}
button:disabled{scale:1;cursor:default}
button[aria-busy=true]{cursor:progress}
.primary{line-height:1.4}
.primary svg{transition:translate 180ms var(--ease-out)}
.primary.is-pressed svg{translate:3px 0}
.primary:active{background:var(--lime)}
.danger-primary:active{background:#edb38f}
.secondary-button,.text-button,.reuse-listing{min-height:44px}
.text-button{line-height:1.45;text-decoration-thickness:1px;text-underline-offset:4px}
button:focus-visible,a:focus-visible,summary:focus-visible{outline-width:2px;outline-offset:4px}
.field input,.field textarea,.field select,#refinement-input{font-size:16px;min-height:44px;transition:border-color 160ms,background-color 160ms}
.field:focus-within>span{color:var(--orange-dark)}
.field input:focus,.field textarea:focus,.field select:focus{background:#f6eacc55;box-shadow:0 1px 0 var(--orange)}
.title-field textarea{font-size:25px;line-height:1.24;min-height:72px}
.description-field textarea{font-size:16px;line-height:1.55}
.money-field input,.quantity-field input{font-size:27px}
.field>span{font-size:11px;line-height:1.45}
.field small{line-height:1.6}
fieldset{min-width:0}
legend{max-width:100%;line-height:1.35}
.responsible-fields legend{font-size:18px}
.refinement{align-items:stretch}
#refinement-input{width:100%;border:1px solid var(--line);border-radius:12px;background:var(--sheet);padding:11px 12px}
#refinement-input::placeholder{font-size:13px;color:var(--muted)}
#refine-draft{width:46px;min-height:46px;font-size:22px;padding:6px;background:var(--yellow)}
.format-switch{position:relative;isolation:isolate}
.format-switch:before{content:'';position:absolute;left:0;top:0;width:var(--selection-width,0px);height:var(--selection-height,0px);translate:var(--selection-x,0px) var(--selection-y,0px);background:var(--yellow);border:1px solid var(--ink);border-radius:9px;box-shadow:1px 2px 0 #30372a50;transition:translate 230ms var(--ease-spring),width 230ms var(--ease-out),background 180ms;pointer-events:none;z-index:-1}
.format-switch[data-selection=buy_now]:before{background:var(--lime)}
.format-switch.has-slider button[aria-pressed=true]{background:transparent;border-color:transparent;box-shadow:none}
.format-switch button,.capture-format .format-switch button{min-height:40px;font-size:12px;padding:9px 8px}
.capture-guides button{min-height:62px;font-size:12px;gap:6px}
.capture-guide-hint{font-size:11px;line-height:1.55;min-height:34px;margin:12px 0}
.capture-plans button{font-size:11px}
.photo-board[data-count] .photo-slot{border-radius:14px 11px 15px 10px;transition:transform 220ms var(--ease-spring),scale 160ms var(--ease-spring),box-shadow 160ms}
.photo-board[data-count] .photo-slot:active{box-shadow:1px 2px 0 var(--ink)}
.photo-board[data-count] .empty-photo>span:last-child{font-size:11px}
.photo-board[data-count] .empty-photo strong{font-size:18px;line-height:1.25}
.photo-board[data-count] .photo-caption{font-size:10px;line-height:1.4}
.photo-board[data-count] .slot-overline{font-size:9px;letter-spacing:1.2px}
.photo-board[data-count] .empty-photo{padding:12px 0;gap:6px}
.photo-board[data-count='3'] .label-slot .empty-photo strong,.photo-board[data-count='3'] .compliance-slot .empty-photo strong{font-size:16px}
.photo-board[data-count='3'] .empty-photo>span:last-child{font-size:10px}
.photo-board[data-count] .photo-slot>img{height:100px;object-fit:contain}
.photo-board[data-count='1'] .product-slot>img{height:220px}
.photo-board[data-count] .camera-circle{width:42px;height:42px;margin-bottom:6px}
.photo-board[data-count] .label-drawing{width:30px;height:33px;margin-bottom:6px}
.capture-count{font-variant-numeric:tabular-nums}
.bottom-nav{isolation:isolate}
.bottom-nav button{min-height:48px;min-width:0;flex:1;padding:2px 7px;gap:6px;font-size:11px}
.bottom-nav button svg{transition:translate 220ms var(--ease-spring),rotate 220ms var(--ease-spring),background 180ms;box-sizing:content-box}
.bottom-nav button[aria-current=page] svg{translate:0 -2px;rotate:-5deg}
.bottom-nav button[aria-current=page]:after{animation:nav-dot 240ms var(--ease-spring)}
.journey .step-number{transition:transform 240ms var(--ease-spring),background 180ms,box-shadow 180ms}
.journey-arrow{transition:color 200ms}
.journey:has(#listing-step.active) .journey-arrow{color:var(--orange)}
.test-mode-control input{margin:0;transition:background 200ms}
.test-mode-control input:before{transition:transform 220ms var(--ease-spring)}
.inline-check input{accent-color:var(--green)}
.marking-options span{transition:background 150ms,box-shadow 150ms,scale 150ms}
.marking-options input:checked+span{animation:paper-select 220ms var(--ease-spring)}
.reuse-actions{flex-wrap:wrap;gap:6px 12px}
.last-used{font-size:11px}
.saved-info h2{font-size:15px;line-height:1.45}
.saved-info time{font-size:10px;line-height:1.5}
.saved-card summary>img{flex:none}
.saved-item{transition:box-shadow 180ms,background 180ms}
.saved-item:has(details[open]){box-shadow:3px 5px 0 #bfc5af}
.rp-saved{align-items:flex-start;flex-wrap:wrap}
.rp-saved>div:first-child{flex:1;min-width:140px}
.rp-actions{gap:12px}
.legal-links a{display:inline-flex;align-items:center;min-height:44px}
.auth-gate{padding:0 22px max(24px,env(safe-area-inset-bottom))}
.auth-gate .app-header{padding-left:0;padding-right:0}
#auth-language{font-size:12px;background:var(--sheet);border:1.5px solid var(--ink);border-radius:20px;min-height:36px;padding:6px 10px;box-shadow:1px 2px 0 #30372a40}
.auth-paper{margin:clamp(30px,8vh,90px) 0 24px;animation:auth-arrive 440ms var(--ease-out)}
.auth-paper .primary{font-size:14px;line-height:1.45}
.auth-paper .subtle{font-size:12px}
.auth-paper #auth-status:empty{display:none}
.auth-paper #auth-privacy{display:inline-flex;align-items:center;min-height:44px}
dialog{max-height:calc(100dvh - 48px);overflow-y:auto;overscroll-behavior:contain;opacity:0;translate:0 16px;scale:.97;transition:opacity 180ms var(--ease-out),translate 240ms var(--ease-out),scale 240ms var(--ease-out),display 240ms allow-discrete,overlay 240ms allow-discrete}
dialog[open]{opacity:1;translate:0 0;scale:1}
dialog::backdrop{opacity:0;transition:opacity 180ms,display 240ms allow-discrete,overlay 240ms allow-discrete}
dialog[open]::backdrop{opacity:1}
@starting-style{dialog[open]{opacity:0;translate:0 16px;scale:.97}dialog[open]::backdrop{opacity:0}}
.help-dialog li p{font-size:13px;line-height:1.6}
.toast{pointer-events:none;font-size:13px;animation:toast-in 240ms var(--ease-spring)}
@keyframes paper-select{0%{scale:.94}65%{scale:1.04}100%{scale:1}}
@keyframes nav-dot{from{scale:0}to{scale:1}}
@keyframes auth-arrive{from{opacity:0;translate:0 16px;rotate:1deg}to{opacity:1;translate:0 0;rotate:0deg}}
@media(hover:hover){.photo-slot:hover{transform:rotate(0deg) translateY(-2px)}.primary:hover:not(:disabled){box-shadow:4px 5px 0 var(--ink);translate:0 -1px}.text-button:hover{color:var(--orange-dark)}.capture-guides button:hover:not([aria-pressed=true]){background:#f0f2e3}.saved-card summary:hover{background:#f5f5e955}}
@media(max-width:359px){.stage-panel,.secondary-view{padding-left:18px;padding-right:18px}.account-paper{padding:18px}.form-row{gap:14px}.capture-guides button{font-size:11px}.format-switch button{font-size:11px}.photo-board[data-count] .empty-photo strong{font-size:17px}.photo-board[data-count='3'] .empty-photo strong{font-size:15px}.responsible-fields{padding:12px}.responsible-fields legend{font-size:16px}.confirm-actions{gap:8px}.confirm-dialog{padding:22px 18px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.is-pressed{scale:1}}
.rp-confirm{margin:8px 0 20px}
.connection-heading h2{min-width:0;overflow-wrap:anywhere}
button,summary{-webkit-user-select:none;user-select:none}
#ready-dot:not([hidden]){animation:ready-pulse 600ms ease-out 2}
@keyframes ready-pulse{50%{box-shadow:0 0 0 5px #ec794c20}}
@media(prefers-reduced-motion:reduce){#ready-dot:not([hidden]){animation:none}}

.field textarea{overflow-y:hidden}
/* An offscreen legend must not enlarge the page outside its scroll container. */
.sr-only{left:0;top:0}

/* Account entry: a compact paper card with one-tap email methods. */
.auth-paper{transform:none;margin:clamp(16px,4vh,42px) 0 24px;padding:28px 24px;border-radius:18px 14px 20px 13px}
.auth-paper>.hand-star{display:block;font-size:34px;line-height:1;margin-bottom:14px}
.auth-paper h1{font-size:clamp(28px,7vw,36px);line-height:1.12;margin:0 0 12px;letter-spacing:-1.1px}
.auth-paper #auth-hint{font-size:14px;line-height:1.6;margin:0 0 24px;color:var(--muted)}
.auth-providers{display:grid;gap:12px}.auth-providers .primary{margin:0}
.auth-apple{min-height:48px;width:100%;border:2px solid #111;background:#111;color:white;border-radius:9px;font:600 15px 'DM Sans',sans-serif;cursor:pointer}
.auth-divider{display:flex;gap:12px;align-items:center;font-size:11px;color:var(--muted);margin:8px 0}
.auth-divider:before,.auth-divider:after{content:'';flex:1;border-top:1px dashed #b7bba9}
.auth-methods{display:flex;background:#e8e9de;padding:4px;border-radius:10px;gap:4px;margin-bottom:20px}
.auth-methods button{flex:1;min-width:0;min-height:42px;border:1px solid transparent;background:transparent;color:var(--muted);font:600 12px 'DM Sans',sans-serif;padding:8px;border-radius:7px;transition:background 160ms,color 160ms,box-shadow 160ms}
.auth-methods button[aria-pressed=true]{background:var(--sheet);border-color:#ced0c2;color:var(--ink);box-shadow:0 2px 3px #30372a12}
.auth-field{display:grid;text-align:left;gap:8px;margin:0 0 16px;font-size:12px;font-weight:600}
.auth-field input{box-sizing:border-box;min-width:0;width:100%;min-height:48px;border:1.5px solid #b7bba9;border-radius:8px;background:#fffef8;font:400 16px 'DM Sans',sans-serif;padding:12px;color:var(--ink);transition:border-color 160ms,box-shadow 160ms}
.auth-field input:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px #d5e6a970}
.auth-password-wrap{position:relative;display:block}.auth-password-wrap input{padding-right:78px}
.auth-password-wrap button{position:absolute;right:4px;top:4px;bottom:4px;border:0;background:transparent;color:var(--muted);font-size:11px;padding:0 9px;min-width:66px}
.auth-paper #auth-password-hint,.auth-paper #auth-method-hint{margin:-6px 0 16px;text-align:left;font-size:11px;line-height:1.5}
.auth-paper .auth-submit{margin:0}.auth-text-actions{display:grid;justify-items:center;gap:0;margin-top:8px}
.auth-paper .text-button{font-size:12px;min-height:44px;line-height:1.5;padding:8px 0}
.auth-status{font-size:12px;line-height:1.65;padding:12px 14px;background:#ebeedf;border-radius:8px;margin:16px 0 0;overflow-wrap:anywhere;text-align:left}
.auth-status:empty{display:none}.auth-verify-email{overflow-wrap:anywhere;font-size:14px;font-weight:600;margin:0 0 24px}
.auth-footer{display:flex;justify-content:center;align-items:center;gap:6px 14px;flex-wrap:wrap;margin-top:18px;color:var(--muted);font-size:10px}
.auth-paper .auth-footer #auth-privacy{min-height:32px;font-size:10px}.auth-confirm .text-button{min-height:44px;font-size:13px}
.auth-confirm p{font-size:13px;line-height:1.6}.auth-confirm .primary{width:100%}
#auth-email-area:not([hidden]),#auth-verification:not([hidden]){animation:auth-arrive 220ms var(--ease-out)}
@media(max-width:359px){.auth-gate{padding-left:16px;padding-right:16px}.auth-paper{padding:24px 18px}.auth-methods button{font-size:11px}}
@media(prefers-reduced-motion:reduce){#auth-email-area,#auth-verification{animation:none}}

/* Shared photo cards: the evidence type must never change a two-photo layout. */
.photo-board[data-count]{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:3px 3px 6px 0;align-items:stretch}
.photo-board[data-count] .photo-slot{min-width:0;padding:12px;transform:rotate(-.4deg);box-shadow:3px 4px 0 var(--ink);background:linear-gradient(160deg,#e9f2f7 0%,#f7faf9 68%,var(--sheet) 68%)}
.photo-board[data-count] .label-slot{background:linear-gradient(160deg,#f9eccc 0%,#fff8e8 68%,var(--sheet) 68%);transform:rotate(.4deg)}
.photo-board[data-count] .compliance-slot{background:linear-gradient(160deg,#edf0dc 0%,#f7f8ec 68%,var(--sheet) 68%);transform:rotate(.4deg)}
.photo-board[data-count] .photo-slot.has-photo{background:var(--sheet)}
.photo-board[data-count='2'] .photo-slot{grid-column:1/-1;min-height:200px}
.photo-board[data-count='1'] .product-slot{min-height:240px}
.photo-board[data-count='3'] .product-slot{min-height:148px}
.photo-board[data-count='3'] .label-slot,.photo-board[data-count='3'] .compliance-slot{min-height:184px}
.photo-board[data-count] .empty-photo{padding:8px 0;gap:6px;text-align:center}
.photo-board[data-count] .empty-photo strong{font-size:19px;line-height:1.2;max-width:100%;text-wrap:balance}
.photo-board[data-count] .empty-photo>span:last-child{font-size:11px;line-height:1.45;min-height:32px;max-width:260px;text-align:center;text-wrap:pretty}
.photo-board[data-count] .camera-circle{width:40px;height:40px;margin:0 0 4px}
.photo-board[data-count] .label-drawing{width:34px;height:40px;margin:0 0 4px}
.photo-board[data-count] .packaging-drawing{width:34px;height:40px}
.photo-board[data-count] .slot-overline{font-size:9px;line-height:16px;letter-spacing:1.2px}
.photo-board[data-count] .photo-caption{font-size:10px;line-height:1.45;margin-top:auto;padding-top:7px;gap:6px}
.photo-board[data-count] .photo-slot>img{flex:1;min-height:0;height:120px;max-height:140px;width:100%;object-fit:contain;border-radius:7px;margin:9px 0;background:#eaece250}
.photo-board[data-count='1'] .product-slot>img{height:190px;max-height:220px}
.photo-board[data-count='3'] .product-slot>img{height:90px;max-height:100px}
.photo-board[data-count='3'] .photo-slot .empty-photo strong{font-size:17px}
.photo-board[data-count='3'] .product-slot .empty-photo{grid-template-columns:40px minmax(0,1fr);gap:4px 13px;text-align:left}
.photo-board[data-count='3'] .product-slot .empty-photo>span:last-child{text-align:left;min-height:0}
.photo-slot[aria-busy=true] .slot-index{animation:ink-breathe 900ms ease-in-out infinite}
.photo-slot .camera-circle,.photo-slot .label-drawing{transition:rotate 220ms var(--ease-spring),translate 220ms var(--ease-spring)}
.photo-slot.is-pressed .camera-circle,.photo-slot.is-pressed .label-drawing{rotate:-7deg;translate:0 -2px}
.photo-board[data-count] .photo-slot:active{transform:rotate(0);box-shadow:1px 2px 0 var(--ink)}

/* Sliding paper selections share the same timing across the app. */
.capture-guides,.capture-plans,.auth-methods{position:relative;isolation:isolate}
.capture-guides:before,.capture-plans:before,.auth-methods:before{content:'';position:absolute;left:0;top:0;width:var(--selection-width,0px);height:var(--selection-height,0px);translate:var(--selection-x,0px) var(--selection-y,0px);border-radius:11px;background:#e9edc9;border:1.5px solid var(--ink);box-shadow:2px 3px 0 var(--ink);pointer-events:none;z-index:-1;transition:translate 220ms var(--ease-spring),width 220ms var(--ease-out),height 220ms var(--ease-out)}
.capture-guides.has-slider button[aria-pressed=true],.capture-plans.has-slider button[aria-pressed=true],.auth-methods.has-slider button[aria-pressed=true]{background:transparent;box-shadow:none;border-color:transparent;transform:none}
.capture-guides button{min-height:60px;border:1.5px solid #d4d7c7;background:#fffef980;box-shadow:0 1px 0 #fff8;font-weight:600}
.capture-guides button svg{width:20px;height:20px;transition:rotate 200ms var(--ease-spring),translate 200ms var(--ease-spring)}
.capture-guides button[aria-pressed=true] svg{rotate:-6deg;translate:0 -1px}
.capture-plans:before{border:1px solid #9ea989;box-shadow:0 2px 0 #d0d5c2;border-radius:8px;background:#edf0df}
.auth-methods:before{border:1px solid #c8ceba;box-shadow:0 2px 3px #30372a12;border-radius:7px;background:var(--sheet)}
.capture-guide-hint{margin:12px 0 10px;min-height:34px;color:#66705d;text-wrap:pretty}
.capture-plans button{min-height:44px}
.journey{gap:18px;height:50px}
.journey.has-slider .journey-track{display:block;position:absolute;left:0;bottom:-1px;width:var(--selection-width,0px);height:3px;background:var(--orange);border-radius:3px;translate:var(--selection-x,0px) 0;transition:translate 250ms var(--ease-out),width 250ms var(--ease-out)}
.journey.has-slider button.active:after{display:none}
.bottom-nav{padding-top:8px;padding-bottom:calc(8px + env(safe-area-inset-bottom));box-shadow:0 -4px 20px #343c2805}
.bottom-nav:before{content:'';position:absolute;left:0;top:0;width:var(--selection-width,0px);height:var(--selection-height,0px);translate:var(--selection-x,0px) var(--selection-y,0px);border-radius:15px;background:#e9ecda;pointer-events:none;z-index:-1;transition:translate 240ms var(--ease-spring),width 240ms var(--ease-out)}
.bottom-nav button{min-height:52px;gap:5px;font-size:11px;color:#76816b}
.bottom-nav button[aria-current=page]{font-weight:650}
.bottom-nav button[aria-current=page]:after{display:none}
.bottom-nav button[aria-current=page] svg{background:transparent;outline:0;box-shadow:none;transform:none;rotate:-5deg;translate:0 -1px}
#listing-count{min-width:15px;height:15px;line-height:15px;top:1px;right:calc(50% - 26px);font-size:9px;border:1px solid var(--sheet)}

/* Readable forms and consistent, thumb-friendly actions. */
.panel-heading h1,.secondary-view>.panel-heading h1{letter-spacing:-.9px;text-wrap:balance}
.secondary-view .panel-heading{margin-bottom:22px}
.account-paper{padding:22px;border-color:#99a38a;box-shadow:2px 4px 0 #c9cfbc;border-radius:17px 14px 18px 14px}
.identity-paper{background:linear-gradient(125deg,#eef1dc,var(--sheet) 75%)}
.identity-paper h2{font-size:25px;line-height:1.25;margin-bottom:8px}
.identity-paper p{font-size:13px;line-height:1.6;margin:8px 0 10px}
.account-paper .subtle,.connection-card p{line-height:1.65}
.test-mode-control{gap:16px}.test-mode-control strong{font-size:19px;font-weight:500;font-family:'Fredoka',sans-serif}
.test-mode-control small{font-size:12px;line-height:1.55}
.test-mode-control input{min-width:48px;flex-shrink:0}
.test-mode-control input:before{transition:transform 220ms var(--ease-spring)}
.field{min-width:0}.field input,.field select,.field textarea{width:100%;max-width:100%}
.field input,.field textarea{border-radius:5px 5px 0 0}
.field>span{color:#657059;font-weight:550}
.field small{font-size:11px}.form-row{gap:18px}
.brand-actions{align-items:center;gap:10px;flex-wrap:wrap}
.details-grid{column-gap:18px;row-gap:4px}
.responsible-fields{background:linear-gradient(145deg,#edf1dd,#f5f6e9);border-color:#afba96}
.responsible-fields .field>span{color:#596b4a}
.rp-actions .text-button{font-size:12px;min-height:44px}
.parcel-defaults summary{gap:8px}.parcel-defaults summary>small{margin-left:auto}
.parcel-defaults summary>span:last-child{margin-left:4px;transition:transform 200ms var(--ease-out)}
.photo-adjustments summary>span:last-child{transition:transform 200ms var(--ease-out)}
.photo-adjustments[open] summary>span:last-child{transform:rotate(45deg)}
.help-button{min-width:36px;min-height:44px}.help-button:before{transition:background 160ms,scale 160ms}
.help-button.is-pressed:before{background:var(--yellow);scale:1.1}
.capture-heading-tools .help-button{min-height:40px}
.regulatory-question{font-size:11px}.regulatory-question>span{max-width:170px}
.marking-options span{height:44px;min-width:44px}
.saved-item{border-radius:16px;border-color:#a7b098;box-shadow:2px 3px 0 #c8cfba;overflow:clip}
.saved-info{min-width:0}.saved-info h2{font-size:16px;line-height:1.4;overflow-wrap:anywhere;margin-bottom:7px}
.saved-info time{font-size:11px}
.saved-price{gap:9px;flex-wrap:wrap}.saved-format{font-size:10px;line-height:1.45}
.saved-body{font-size:13px;line-height:1.65;overflow-wrap:anywhere}
.reuse-actions{border-top:1px dashed #d8ddcc;margin:0 14px;padding:8px 0 10px;gap:6px 12px}
.reuse-listing{padding:8px 12px;background:#edf1dc;border:1px solid #c8d1b6;border-radius:8px;font-size:12px}
.last-used{font-size:10px;line-height:1.5;flex:1;min-width:110px}
.delete-listing{width:44px;height:44px;right:8px;top:10px;border-radius:10px}
.delete-listing:active{background:#f4e3d8}
.empty-collection{border:1.5px dashed #bbc4ac;border-radius:18px;background:#fbfaf180;padding:34px 22px;margin-top:8px}
.empty-collection>span{display:inline-block;color:var(--orange);text-shadow:2px 2px 0 #e7d9aa}
.empty-collection h2{font-size:25px;line-height:1.2}.empty-collection p{font-size:13px;line-height:1.65}
.primary{min-height:50px}.primary:disabled{opacity:.58}
.primary[aria-busy=true],.reuse-listing[aria-busy=true]{opacity:1;background-image:linear-gradient(100deg,transparent 20%,#ffffff55 50%,transparent 80%);background-size:220% 100%;animation:paper-busy 1200ms linear infinite}
#toast{max-width:calc(100vw - 36px);width:max-content;padding:13px 18px;border-radius:12px;box-shadow:0 6px 22px #29352222;line-height:1.5}
.auth-paper #auth-password-field{transform-origin:top center}
@keyframes paper-busy{from{background-position:150% 0}to{background-position:-100% 0}}
@keyframes ink-breathe{50%{opacity:.35}}
@media(max-width:359px){.photo-board[data-count] .photo-slot{padding:11px}.photo-board[data-count] .empty-photo strong{font-size:18px}.photo-board[data-count='3'] .photo-slot .empty-photo strong{font-size:16px}.photo-board[data-count='3'] .photo-slot{padding:10px}.photo-board[data-count='3'] .empty-photo>span:last-child{font-size:10px}.form-row{gap:14px}.account-paper{padding:18px}.capture-guides button{font-size:11px}.regulatory-question>span{max-width:134px}}
@media(hover:hover){.photo-board[data-count] .photo-slot:hover{transform:rotate(0);translate:0 -2px}.reuse-listing:hover{background:#e3ebca}.delete-listing:hover{background:#f4e3d8}}
@media(prefers-reduced-motion:reduce){.photo-slot[aria-busy=true] .slot-index,.primary[aria-busy=true],.reuse-listing[aria-busy=true]{animation:none}}
/* JS handles entrance motion once; avoid stacking legacy keyframes. */
.number-dialog[open],.toast,#auth-email-area:not([hidden]),#auth-verification:not([hidden]){animation:none}

/* Voice correction: a small paper control, always within reach after the photo. */
.voice-editor{margin:14px 0 22px;padding:13px 12px 10px;border:1.5px solid var(--ink,#33392d);border-radius:13px 16px 12px 17px;background:#f0f3e3;box-shadow:2px 3px 0 #d3dac3;transition:background-color 160ms,box-shadow 160ms}
.voice-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;font-weight:650;letter-spacing:.01em}
.voice-editor .refinement{margin:9px 0 3px;gap:7px;align-items:center}
.voice-editor .dictate-button{width:46px;height:46px;flex-basis:46px;border:1.5px solid var(--ink,#33392d);border-radius:50%;padding:12px;background:#d6eaa3;box-shadow:1px 2px 0 #35402a;transition:transform 130ms,background 130ms,box-shadow 130ms}
.voice-editor .dictate-button:active{transform:translateY(2px) scale(.95);box-shadow:0 0 0 #35402a}
.voice-editor #refinement-input{border:0;background:transparent;padding:10px 2px;font-size:16px;min-height:46px;border-radius:4px}
.voice-editor #refinement-input:focus{outline:2px solid #829557;outline-offset:2px}
.voice-editor #refine-draft{border:0;background:transparent;box-shadow:none;flex-basis:40px;padding:10px;min-height:44px}
#refine-draft svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.voice-feedback{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
#voice-status{font-size:12px;line-height:1.4;margin:5px 0;flex:1;min-width:140px}
.voice-feedback .text-button{font-size:12px;min-height:36px;padding:5px 0}
.voice-editor #voice-hint{font-size:10px;line-height:1.5;margin:5px 0 0;color:#676d5a}
.voice-bars{display:flex;align-items:center;gap:3px;height:15px;opacity:0;transition:opacity 120ms}
.voice-bars i{width:3px;height:5px;background:currentColor;border-radius:3px}
.voice-editor[data-phase=listening],.voice-editor[data-phase=recording]{background:#fff0e4;box-shadow:2px 3px 0 #e5c7b3}
.voice-editor[data-phase=listening] .dictate-button,.voice-editor[data-phase=recording] .dictate-button{background:#f4bea9}
.voice-editor:is([data-phase=listening],[data-phase=recording],[data-phase=correcting],[data-phase=transcribing]) .voice-bars{opacity:1}
.voice-editor:is([data-phase=listening],[data-phase=recording],[data-phase=correcting],[data-phase=transcribing]) .voice-bars i{animation:voice-wave 700ms ease-in-out infinite alternate}
.voice-bars i:nth-child(2){animation-delay:-300ms!important}.voice-bars i:nth-child(3){animation-delay:-550ms!important}.voice-bars i:nth-child(4){animation-delay:-150ms!important}
@keyframes voice-wave{from{transform:scaleY(.7)}to{transform:scaleY(2.6)}}
@media(prefers-reduced-motion:reduce){.voice-editor .voice-bars i{animation:none!important}.voice-editor,.voice-editor .dictate-button{transition:none}}

/* One field treatment throughout the fiche; the category hierarchy is its header. */
#listing-form .field{margin:0 0 20px;min-width:0}
#listing-form .field>span,#listing-form .field>label{display:block;margin:0 0 6px;font:500 11px/1.5 'DM Sans',sans-serif;letter-spacing:.1px;color:#777d6d}
#listing-form .field input,#listing-form .field textarea,#listing-form .field select{font:400 16px/1.5 'DM Sans',sans-serif;letter-spacing:normal;min-height:48px;padding:10px 0 11px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;color:var(--ink);box-shadow:none}
#listing-form .field textarea{min-height:48px}
#listing-form .field select[multiple]{min-height:112px}
#listing-form .field input:focus,#listing-form .field textarea:focus,#listing-form .field select:focus{border-color:var(--orange);background:#f6eacc55;box-shadow:0 1px 0 var(--orange)}
#listing-form .field:focus-within>span,#listing-form .field:focus-within>label{color:var(--orange-dark)}
#listing-form .field.invalid input,#listing-form .field.invalid textarea,#listing-form .field.invalid select{border-color:#b9563a;background:#ffebe22b}
#listing-form .field small{font:400 11px/1.5 'DM Sans',sans-serif;margin-top:6px}
#listing-form .money-field input{padding-right:24px}
#listing-form .money-field>span{top:10px;font:400 16px/1.5 'DM Sans',sans-serif;color:var(--muted)}
#listing-form .form-row,#listing-form .details-grid,#listing-form .parcel-grid{gap:0 20px}
#listing-form :is(.responsible-fields,.label-fields,.parcel-fields){margin:24px 0 0;padding:16px 0 0;border:0;border-top:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none}
#listing-form :is(.responsible-fields,.label-fields,.parcel-fields) legend{padding:0 8px 0 0;font:600 14px/1.5 'DM Sans',sans-serif}
#listing-form :is(.responsible-fields,.label-fields,.parcel-fields)>p{font-size:11px;line-height:1.5}
#listing-form .category-requirements h3{font:600 14px/1.5 'DM Sans',sans-serif;margin:24px 0 16px}
#listing-form .category-evidence{border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;padding:0 0 16px;margin:0 0 20px}
#listing-form .category-evidence h4{font:500 11px/1.5 'DM Sans',sans-serif;color:#777d6d;margin:0 0 6px}
#category-summary{margin-bottom:20px}
#category-summary .category-result{margin:0;border:1px solid #cbd3bb;border-radius:14px;background:#eaf0dc;padding:14px 16px}
#category-summary .category-result-top{font-size:10px;letter-spacing:.2px}
#category-summary .category-result-top button{font-size:11px;min-height:32px;padding:4px 0}
#category-summary .category-path{font-size:11px;line-height:1.6;margin:8px 0 4px;overflow-wrap:anywhere}
#category-summary .category-leaf{font:500 20px/1.3 'Fredoka',sans-serif;margin:0;overflow-wrap:anywhere}
#category-summary .category-result small{display:block;font-size:11px;line-height:1.5;margin-top:8px;color:var(--muted)}
#category-summary>input{width:100%;min-height:48px;font-size:16px;padding:11px 12px;border:1px solid var(--line);border-radius:10px;margin:12px 0 6px;background:var(--sheet)}

/* A compact vertical fiche: explanations live in the optional controls. */
#listing-form .form-row,#listing-form .details-grid,#listing-form .parcel-grid{display:block}
#listing-form :is(.responsible-fields,.label-fields,.parcel-fields){margin:0;padding:0;border:0}
#listing-form .field{margin-bottom:18px}
#listing-form .field .ai-field-label,#listing-form .field .needs-detail{color:var(--muted)}
#listing-form .field .field-sources{display:flex;gap:12px;margin:6px 0 0;font-size:11px;color:var(--muted)}
#listing-form .field-sources a{text-underline-offset:3px;min-height:24px;display:inline-flex;align-items:center}
#listing-form .category-evidence{padding:0;border:0;margin-bottom:18px}
#listing-form .evidence-picker>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:10px 0 11px;border-bottom:1px solid var(--line);list-style:none}
#listing-form .evidence-picker>summary::-webkit-details-marker{display:none}
#listing-form .evidence-status{color:var(--muted)!important;font:400 16px/1.5 'DM Sans',sans-serif;margin:0}
#listing-form .evidence-edit{font-size:11px;color:var(--muted);text-decoration:underline;text-underline-offset:3px}
#listing-form .evidence-picker[open]>.requirement-photos{margin-top:12px}
#listing-form .evidence-instructions summary{min-height:40px;font-size:11px;color:var(--muted)}
#listing-form .voice-editor{padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;margin:10px 0 20px}
#listing-form .voice-editor .refinement{margin:0}
#listing-form .voice-feedback:has(#voice-status:empty):has(#voice-cancel[hidden]):has(#undo-correction[hidden]){display:none}
#listing-form .draft-review-note{font-size:11px;color:var(--muted);margin:0 0 10px}
#listing-form .brand-actions{margin:-12px 0 18px}
#listing-form #brand-warning,.review-label-hidden{display:none!important}

/* Each field settles as its value arrives; no full-form replacement animation. */
#listing-form .field{position:relative}
#listing-form .field-loader{position:absolute;left:0;top:0;width:22px;height:22px;margin:0;border:3px solid #d2dfb8;border-top-color:#35482b;border-right-color:#35482b;border-radius:50%;background:var(--sheet);box-shadow:0 0 0 4px #edf2e2;animation:field-loading 750ms linear infinite;pointer-events:none}
#listing-form .field-loading>:is(span:first-child,label:first-child){padding-left:34px;min-height:24px;display:block}
#listing-form .field-loading input::placeholder,#listing-form .field-loading textarea::placeholder{color:transparent}
#listing-form .field-loading>.ai-field-label{visibility:hidden}
#listing-form .field-loading .evidence-edit{visibility:hidden}
#analysis-error.stream-error{text-align:left;padding:12px 0 20px;display:flex;align-items:center;gap:12px}
#analysis-error.stream-error :is(.error-symbol,h2,#back-to-photo){display:none}
#analysis-error.stream-error p{margin:0;font-size:12px;flex:1}
#analysis-error.stream-error #retry{width:auto;font-size:12px;min-height:40px;margin:0;padding:9px 12px}
@keyframes field-loading{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){#listing-form .field-loader{animation:none}}

#listing-form .requirement-photos input[type=checkbox]{width:18px;height:18px;min-height:18px;padding:0;border:0;box-shadow:none;background:initial}
#listing-form .requirement-photos{padding:4px;margin-left:-4px;margin-right:-4px}

/* Login: quiet paper styling and immediate feedback for every sign-in method. */
.auth-gate{max-width:480px;padding-inline:22px}
.auth-gate .app-header{height:88px}
.auth-paper{margin:clamp(12px,3vh,28px) 0 24px;padding:28px 24px 18px;border:1.5px solid #afb69f;border-radius:22px;box-shadow:0 4px 0 #dce1cd;background:var(--sheet)}
.auth-paper h1{font-size:clamp(28px,7.5vw,34px);line-height:1.12;margin:0 0 8px}
.auth-paper #auth-hint{font-size:14px;line-height:1.5;margin:0 0 24px;max-width:30ch;color:#6a7360}
.auth-paper .primary,.auth-apple{display:flex;align-items:center;justify-content:center;gap:10px;min-height:50px;border-radius:12px;box-shadow:0 2px 0 #bbc6a0;transition:background-color 160ms,box-shadow 160ms,opacity 160ms,scale 160ms;font-size:14px}
.auth-paper .auth-google{background:white;border:1px solid #c8cdbc;box-shadow:0 1px 2px #30382c0a}
.auth-provider-icon{width:20px;height:20px;flex:0 0 20px;stroke:none}
.auth-providers{gap:10px}
.auth-divider{font-size:11px;margin:12px 0 18px;gap:14px}
.auth-divider:before,.auth-divider:after{border-top-style:solid;border-color:#dfe2d7}
.auth-methods{margin-bottom:18px;border-radius:12px;background:#edf0e5}
.auth-methods button{font-size:12px;min-height:40px;border-radius:9px}
.auth-methods:before{border-radius:9px}
.auth-field{gap:7px;margin-bottom:18px;font-size:12px;color:#626d59}
.auth-field input{border:1px solid #c8cdbc;border-radius:11px;background:#fffefb;min-height:50px;padding:12px 14px}
.auth-field input::placeholder{color:#92988a}
.auth-password-wrap input{padding-right:78px}
.auth-text-actions{margin-top:6px}
.auth-paper .text-button{font-size:12px;text-underline-offset:4px}
.auth-footer{margin-top:22px;gap:6px 16px;font-size:11px}
.auth-paper .auth-footer #auth-privacy{font-size:11px}
.auth-status{font-size:13px;margin-top:18px;background:#f0f2e8;border:1px solid #dfe4d3;border-radius:12px;padding:12px 14px;line-height:1.5}
.auth-status[data-tone=success]{background:#edf3df;border-color:#d0dcba}
.auth-progress{min-height:310px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;text-align:center;animation:auth-arrive 180ms var(--ease-out)}
.auth-paper .auth-progress p{margin:0;max-width:24ch;font-size:16px;line-height:1.5;font-weight:550;color:var(--ink)}
.auth-spinner,.auth-paper button[aria-busy=true]:before{content:'';display:block;flex-shrink:0;width:20px;height:20px;border:2.5px solid #80946440;border-top-color:#40562d;border-radius:50%;animation:auth-spin 700ms linear infinite}
.auth-spinner{width:42px;height:42px;border-width:3px}
.auth-paper button[aria-busy=true]{opacity:1;background-image:none;animation:none;cursor:wait}
.auth-paper button[aria-busy=true] .auth-provider-icon{display:none}
.auth-paper .text-button[aria-busy=true]{display:inline-flex;align-items:center;justify-content:center;gap:9px}
.auth-apple[aria-busy=true]:before{border-color:#ffffff40;border-top-color:white}
@keyframes auth-spin{to{transform:rotate(360deg)}}
@media(hover:hover){.auth-paper .primary:hover:not(:disabled){translate:0 0;box-shadow:0 3px 0 #bbc6a0}.auth-paper .auth-google:hover:not(:disabled){background:#f8faf3;box-shadow:0 1px 3px #30382c12}}
@media(max-width:359px){.auth-gate{padding-inline:16px}.auth-paper{padding:24px 18px 16px}.auth-paper .primary,.auth-methods button{font-size:12px}}
@media(prefers-reduced-motion:reduce){.auth-progress,.auth-spinner,.auth-paper button[aria-busy=true]:before{animation:none}.auth-spinner,.auth-paper button[aria-busy=true]:before{border-style:dotted}}
.auth-paper .primary .auth-provider-icon,.auth-paper .primary .auth-button-label{margin:0}

/* Publication is reviewed in the same fiche, with the same field rhythm. */
#listing-form.inline-publication-active > .responsible-fields,
#listing-form.inline-publication-active > .label-fields,
#listing-form.inline-publication-active .category-evidence{display:none!important}
#inline-publication{display:block;margin:0;min-width:0}
#inline-publication[hidden]{display:none}
#inline-publication .field{display:flex;flex-direction:column;gap:.65rem;margin:0 0 1.3rem;min-width:0}
#inline-publication input,#inline-publication select,#inline-publication textarea{width:100%;min-width:0;font:inherit;color:inherit;background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:.7rem 0;box-sizing:border-box}
#inline-publication input[type=file]{font-size:.88rem}
#inline-publication .requirement-photos input{width:auto}
.inline-publication-status{font-size:.86rem;color:var(--muted);padding:.8rem 0;margin:0 0 1rem;position:relative}
.inline-publication-status.field-loading{padding-left:1.7rem}
.inline-publication-status.field-loading::before{content:'';position:absolute;left:0;top:1rem;width:.85rem;height:.85rem;border:2px solid #b4bf96;border-top-color:#344032;border-radius:50%;animation:spin .7s linear infinite}
#inline-publication .invalid{outline:1px solid #adb499;outline-offset:5px;border-radius:4px}
.inline-publication-feedback{font-size:.9rem;color:var(--muted)}
@media(prefers-reduced-motion:reduce){.inline-publication-status.field-loading::before{animation:none;border-top-width:4px}}

/* Keep preparation visible exactly where the next action will be taken. */
.voice-editor .dictate-button.is-loading{position:relative;opacity:1;cursor:progress}
.voice-editor .dictate-button.is-loading svg{opacity:.35;transform:scale(.85)}
.voice-editor .dictate-button.is-loading::after{content:"";position:absolute;inset:5px;border:3px solid rgba(47,55,40,.16);border-top-color:var(--ink,#303829);border-radius:50%;animation:preparing-spin .75s linear infinite}
@keyframes preparing-spin{to{transform:rotate(360deg)}}
#number-error{white-space:pre-line;line-height:1.5}
#review-number-errors{margin:0 0 18px}
.number-dialog{max-height:calc(100dvh - 32px);overflow:auto;overscroll-behavior:contain}
.number-dialog #confirm-number{white-space:normal;min-height:56px}
#listing-form .field.invalid input,#listing-form .field.invalid textarea,#listing-form .field.invalid select{border-bottom-color:#a35133}
#listing-form .field.invalid>span:first-child{color:#87482e}
@media(prefers-reduced-motion:reduce){.voice-editor .dictate-button.is-loading::after{animation-duration:1.8s}}
