@font-face{font-family:'DM Sans';font-style:normal;font-weight:100 1000;font-display:swap;src:url('assets/fonts/dm-sans.woff2') format('woff2')}
@font-face{font-family:'Manrope';font-style:normal;font-weight:200 800;font-display:swap;src:url('assets/fonts/manrope.woff2') format('woff2')}
:root{font-family:'DM Sans',sans-serif;color:#20211f;background:#f9faf8;font-synthesis:none;--lime:#dfff00;--line:#e4e6df;--muted:#767a70;--dark:#20211f}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}button:focus-visible,input:focus-visible,#viewport:focus-visible{outline:3px solid #889b00;outline-offset:3px}button{transition:background .18s,transform .18s}button:hover{filter:brightness(.97)}[hidden]{display:none!important}.topbar{height:88px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 34px;background:white}.brand{display:flex;align-items:center;gap:5px;text-decoration:none;color:var(--dark);font:800 25px 'Manrope',sans-serif;letter-spacing:-1.1px}.brand-icon{background:var(--lime);width:36px;height:39px;border-radius:12px;display:grid;place-items:center;font:800 32px 'Manrope';margin-right:9px;letter-spacing:-3px;padding-right:3px}.brand-light{font-weight:400}.alpha{font:600 10px 'DM Sans';letter-spacing:1px;border:1px solid var(--line);border-radius:4px;padding:5px 7px;margin-left:16px;color:#74786d}.top-actions{display:flex;gap:22px;align-items:center}.text-button{border:0;background:none;padding:9px 0;font-size:14px;color:#55594f}.primary{border:0;background:var(--lime);color:#222615;padding:14px 19px;border-radius:9px;display:flex;justify-content:space-between;align-items:center;gap:22px;font-size:14px;font-weight:700}.primary:hover{background:#d4f000}.workspace{display:grid;grid-template-columns:294px minmax(400px,1fr) 274px;min-height:calc(100dvh - 88px)}.sidebar{padding:36px 25px 20px;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column}.eyebrow{font-size:10px;font-weight:700;letter-spacing:1.8px;color:#767b6d;margin:0 0 14px}h1{font:650 36px/1.12 'Manrope';letter-spacing:-1.8px;margin:0 0 12px}.subtle{font-size:14px;line-height:1.6;color:var(--muted);margin:0}.steps{margin:30px 0 28px;display:flex;flex-direction:column;gap:5px}.step{display:flex;gap:11px;align-items:center;text-align:left;border:0;background:transparent;border-radius:8px;padding:10px;font-size:14px;color:#777d6e}.step>span{width:22px;height:22px;border:1px solid #d7dcce;border-radius:50%;display:grid;place-items:center;font-size:11px}.step.active{background:#f2f5e9;color:#293014;font-weight:700}.step.active>span{background:var(--lime);border-color:var(--lime)}.panel-title{display:flex;justify-content:space-between;align-items:center}h2{font:700 16px 'Manrope';margin:0}.mini-button{font-size:12px;text-decoration:underline;background:none;border:0;color:#73796a}.helper{font-size:13px;line-height:1.6;color:#757b6c;margin:10px 0 18px}.photo-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.photo-upload{position:relative;border:1px dashed #cfd5c7;border-radius:9px;overflow:hidden;background:#f8f9f6;cursor:pointer;transition:border-color .2s}.photo-upload:hover,.photo-upload.drag-over{border-color:#8a9c1f;background:#f3f8dc}.photo-upload img{width:100%;height:105px;object-fit:contain;mix-blend-mode:multiply;padding:8px}.photo-upload input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}.photo-upload:focus-within{outline:3px solid #8a9c1f}.photo-label{display:flex;justify-content:space-between;align-items:center;padding:9px;font-size:12px;border-top:1px solid #e6e9df}.photo-label>span{font-size:17px;color:#727b62}.field-label{display:block;margin:22px 0 8px;font-size:12px;color:#626a55}input[type=text],select{width:100%;padding:11px 12px;border:1px solid #dce0d4;border-radius:7px;background:white;color:#272e1d;font-size:14px}.note{display:flex;align-items:flex-start;gap:8px;margin:16px 0 23px}.note>span{font-size:20px;color:#859324}.note p{font-size:12px;line-height:1.6;color:#7e8572;margin:0}.full{width:100%}.local-note{text-align:center;font-size:11px;color:#8b9281;line-height:1.6}.sidebar-foot{margin-top:auto;padding-top:26px;display:flex;gap:13px;align-items:center}.sidebar-foot p{font-size:11px;color:#999f90;line-height:1.5}.tiny-mark{font:700 28px 'Manrope';color:#b8c199}.stage{background:radial-gradient(ellipse at 48% 45%,#fefefc 0,#f0f2ea 78%);position:relative;min-height:740px;overflow:hidden}.stage-top{position:absolute;z-index:2;top:34px;left:32px;right:30px;display:flex;justify-content:space-between;align-items:center}.stage-title{font:600 17px 'Manrope';margin-bottom:9px}.stage-meta{display:flex;align-items:center;gap:9px;font-size:11px;color:#858d78}.sample-badge{font-size:9px;letter-spacing:1px;padding:4px 6px;border:1px solid #d6dcc9;border-radius:4px;color:#687254}.icon-button{border:1px solid #dfe3d5;background:#ffffffa6;border-radius:50%;width:36px;height:36px;font-size:20px;display:grid;place-items:center;color:#5d6950}#viewport{position:absolute;inset:90px 0 100px;touch-action:none;cursor:grab}#viewport:active{cursor:grabbing}#viewport canvas{display:block;width:100%;height:100%}.stage-overlay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:14px;background:white;padding:16px 23px;border-radius:10px;box-shadow:0 6px 35px #2221;z-index:5;white-space:nowrap}.stage-bottom{position:absolute;bottom:58px;left:0;right:0;display:flex;align-items:center;flex-direction:column;gap:14px}.view-tabs{padding:5px;background:#ffffffca;border:1px solid #dce2d0;border-radius:10px;display:flex;gap:4px;box-shadow:0 4px 16px #20251005}.view-tabs button{padding:9px 16px;border:0;border-radius:6px;background:transparent;color:#7a836b;font-size:12px}.view-tabs button.selected,.view-tabs button[aria-pressed=true]{background:#252d1b;color:white}.stage-bottom p{font-size:11px;color:#929a86;margin:0}.stage-bottom p>span{padding:0 8px}.stage-caption{position:absolute;bottom:21px;left:30px;right:30px;display:flex;justify-content:space-between;font-size:9px;letter-spacing:1.7px;color:#9ba38e}.details{padding:39px 24px 24px;background:#fff;border-left:1px solid var(--line)}.detail-heading h2{font-size:21px;letter-spacing:-.6px;margin:9px 0 23px}.detail-image{height:222px;overflow:hidden;border-radius:9px;background:#f0f1ed}.detail-image img{width:100%;height:100%;object-fit:cover;transform:scale(1.6);object-position:50% 37%;mix-blend-mode:multiply}.detail-copy{padding:19px 0 9px}.detail-copy h3{font-size:14px;line-height:1.5;margin:0 0 9px}.detail-copy p,.honesty-note p{font-size:12px;line-height:1.8;color:#818774}.secondary{border:1px solid #dce2d0;background:white;padding:12px;border-radius:8px;font-size:12px;color:#59644a;display:flex;justify-content:space-between;gap:10px}.honesty-note{border-top:1px solid var(--line);margin-top:28px;padding-top:25px}.pill{font-size:9px;letter-spacing:1.2px;color:#899572;border:1px solid #e0e5d5;padding:5px 8px;border-radius:4px}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);padding:15px 22px;background:#23291d;color:white;border-radius:9px;box-shadow:0 5px 30px #0002;z-index:30;font-size:14px;max-width:90vw}dialog{border:1px solid #e0e5d5;border-radius:17px;padding:26px;width:min(860px,94vw);color:var(--dark)}dialog::backdrop{background:#1c21189e;backdrop-filter:blur(5px)}.dialog-head{display:flex;justify-content:space-between;align-items:center}.dialog-head h2{font-size:24px}.compare-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.compare-grid figure{margin:24px 0}.compare-grid img{width:100%;aspect-ratio:1;object-fit:contain;background:#f7f8f4;border-radius:9px}.compare-grid figcaption{font-size:14px;margin-top:8px}.control-label{display:flex;justify-content:space-between;font-size:13px;margin:22px 0 12px}.segmented{display:flex;border:1px solid #dce2d0;border-radius:8px;padding:4px;gap:3px}.segmented button{flex:1;border:0;border-radius:5px;background:white;color:#7d866e;padding:8px 4px;font-size:12px}.segmented button.selected{background:#edf3d6;color:#344021}input[type=range]{width:100%;accent-color:#7c8b20}.swatches{display:flex;gap:10px}.swatch{width:33px;height:33px;border-radius:50%;border:3px solid white;outline:1px solid #dde3d2}.swatch.selected{outline:2px solid #77882f}.export-option{width:100%;margin-top:12px;padding:14px;border:1px solid #dce2d0;border-radius:9px;background:white;display:flex;align-items:center;gap:12px;text-align:left}.export-icon{font-size:11px;font-weight:700;background:#f0f5df;padding:9px 7px;border-radius:6px;color:#566536}.export-option strong{font-size:13px;display:block}.export-option small{font-size:11px;color:#879175;display:block;margin-top:4px}details{margin:24px 0}summary{font-size:12px;color:#687454;cursor:pointer}.divider{height:1px;background:var(--line);margin:24px 0}.primary.dark{background:#242d19;color:#fff}.ready{display:flex;gap:10px;align-items:center;background:#f4f8e7;border:1px solid #dfe8c3;border-radius:9px;padding:14px;color:#667b2d;font-size:13px;margin:15px 0}.export-note{font-size:12px;line-height:1.7;color:#7e896c}.fit-hint{color:#8a947a;font-size:11px;line-height:1.6;margin-top:8px}
@media(min-width:1600px){.workspace{grid-template-columns:330px minmax(400px,1fr) 300px}.sidebar{padding:40px 33px}.details{padding:40px 30px}.stage{min-height:calc(100dvh - 88px)}}@media(max-width:1150px){.workspace{grid-template-columns:270px minmax(300px,1fr)}.details{display:none}.topbar{padding:0 23px}.alpha{display:none}}@media(max-width:700px){.topbar{height:72px;padding:0 16px}.brand{font-size:21px}.brand-icon{width:29px;height:32px;font-size:27px;border-radius:9px;margin-right:5px}.top-actions{gap:12px}.top-actions .text-button{font-size:12px}#saveProject{display:none}#exportTop{padding:11px 13px;font-size:12px;gap:7px}.workspace{display:flex;flex-direction:column}.sidebar{order:2;padding:23px;border-right:0}.side-heading,.sidebar-foot{display:none}.steps{flex-direction:row;gap:4px;margin:0 0 23px}.step{flex:1;padding:8px 3px;font-size:11px;gap:6px;justify-content:center;white-space:nowrap}.step>span{width:19px;height:19px;font-size:10px}.stage{order:1;min-height:510px}.stage-top{top:20px;left:21px;right:20px}.stage-title{font-size:16px}.stage-caption{left:22px;right:22px}.stage-bottom{bottom:40px;gap:10px}.stage-bottom p{font-size:10px}.stage-caption{bottom:12px;font-size:8px}#viewport{inset:70px 0 85px}.view-tabs button{padding:8px 13px}.photo-upload img{height:130px}.photo-grid{max-width:380px}.compare-grid{gap:8px}.stage-meta{font-size:10px}.alpha{display:none}}

/* Readable controls and alternate studio surfaces. */
.helper,.detail-copy p,.honesty-note p,.export-note{font-size:14px;line-height:1.65}.field-label,.control-label,.secondary,.segmented button,.view-tabs button{font-size:14px}.photo-label,.note p,.export-option strong{font-size:13px}.export-option small,.local-note,.fit-hint{font-size:12px}.photo-upload.empty{min-height:147px;display:flex;align-items:end}.photo-upload.empty:before{content:'Add photo';position:absolute;inset:0 0 38px;display:grid;place-items:center;font-size:12px;color:#858e77}.photo-upload.empty .photo-label{width:100%}.dark-stage .stage-title{color:#f7f9ef}.dark-stage .stage-meta,.dark-stage .stage-bottom p,.dark-stage .stage-caption{color:#c1c9b5}.dark-stage .sample-badge{color:#d6dfc6;border-color:#82926e}.details .eyebrow,.alpha{font-size:11px}.sidebar-foot{padding-top:18px}.stage{min-height:790px}.export-option>span:last-child{margin-left:auto}.step-panel{animation:appear .18s ease-out}@keyframes appear{from{opacity:.4;transform:translateY(4px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}@media(max-width:700px){.stage{min-height:505px}.helper,.note p{font-size:14px}.top-actions{gap:10px}.topbar{padding:0 12px}#openProject{font-size:11px}#exportTop{font-size:11px;padding:10px}.brand{font-size:19px}.view-tabs button{font-size:12px}.step{font-size:12px}.photo-upload img{height:140px}}

.topbar{position:sticky;top:0;z-index:15}#downloadReady{margin-top:18px}#downloadLink{overflow-wrap:anywhere;display:block}
.cancel-drape{position:absolute;z-index:6;top:calc(50% + 45px);left:50%;transform:translateX(-50%);width:auto;min-width:130px;justify-content:center}
.stage-overlay{max-width:90%;white-space:normal;text-align:center;min-width:220px}
#redrape{margin-top:20px;justify-content:center}#drapeSummary{line-height:1.7}
.presentation-options button{min-height:56px;line-height:1.35;padding:10px 8px}
.range-ends{display:flex;justify-content:space-between;gap:12px;font-size:14px;color:#606a52;margin-top:6px}
#stiffness{display:block;height:28px;cursor:ew-resize}
#stiffnessValue{font-size:14px;font-weight:600;color:#4b5b24}
.flow-controls{margin:22px 0;padding:16px 13px;border:1px solid #dde4cf;border-radius:10px;background:#f8faef}
.flow-heading{font-size:14px;font-weight:700;color:#384329}.flow-heading span{display:block;font-size:12px;font-weight:400;color:#69745c;margin-top:4px}
.flow-controls .control-label{margin-top:18px;font-size:14px}.flow-controls output{font-weight:600;color:#4b5b24}
.flow-controls input[type=range]{display:block;height:28px;cursor:ew-resize}.flow-controls .range-ends{font-size:14px}.flow-controls .fit-hint{font-size:14px;color:#68745a;line-height:1.55}
#replayDrape{justify-content:center;min-height:42px;font-size:14px;margin-top:17px}#replayDrape[aria-pressed=true]{background:#e9efdb;color:#354522}
.motion-caption{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:#647250;margin:12px 0 6px}
#drapeProgress{display:block;width:100%;height:4px;border:0;border-radius:2px;background:#e0e7d4;accent-color:#829443}#drapeProgress::-webkit-progress-bar{background:#e0e7d4;border-radius:2px}#drapeProgress::-webkit-progress-value{background:#829443;border-radius:2px}#drapeProgress::-moz-progress-bar{background:#829443;border-radius:2px}
#presentationHint,#drapeHint,#exportPresentation{font-size:14px;line-height:1.55}
.alpha,.eyebrow,.sample-badge,.pill,.local-note,.fit-hint{font-size:12px}
.helper,.detail-copy p,.honesty-note p,.export-note{font-size:16px}
.photo-label,.field-label,.note p,.mini-button,summary,.segmented button,.stage-meta{font-size:14px}
.stage-meta{flex-wrap:wrap}#fabric{font-size:14px;min-height:42px}.workspace{grid-template-columns:310px minmax(360px,1fr) 270px}
@media(max-width:1150px){.workspace{grid-template-columns:290px minmax(280px,1fr)}}
@media(max-width:700px){.workspace{display:flex}.stage-meta{font-size:12px}.step{font-size:12px}.helper{font-size:16px}}
@media(min-width:701px){.stage{position:sticky;top:88px;height:calc(100dvh - 88px);min-height:480px;align-self:start}}

/* Collections keep the three-step workflow, with a reviewable photo board. */
.workspace.collection-mode .stage,.workspace.collection-mode .details{display:none}
.collection-board{grid-column:2/-1;min-width:0;padding:38px 36px 64px;background:#f7f8f4}
.collection-toolbar{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:24px}
.collection-toolbar h2{font-size:26px;letter-spacing:-.7px;overflow-wrap:anywhere}
.collection-toolbar .eyebrow{margin-bottom:10px}.collection-toolbar p:last-child{font-size:14px;color:#72796a;margin:10px 0 0}
.collection-toolbar-actions{display:flex;gap:10px;flex-wrap:wrap}.collection-toolbar-actions button{white-space:nowrap;justify-content:center}
.collection-intro>h2{font-size:21px}.collection-intro .helper{font-size:15px}
.collection-intro .fit-hint,.collection-adjust .fit-hint,.collection-export .fit-hint{font-size:14px;color:#68745a}
.batch-drop{position:relative;display:flex;align-items:center;flex-direction:column;gap:8px;text-align:center;border:1px dashed #aab792;border-radius:12px;padding:23px 10px;background:#f7faee;cursor:pointer;margin:22px 0}
.batch-drop:hover,.batch-drop.drag-over{background:#edf5d4;border-color:#768b32}.batch-drop:focus-within{outline:3px solid #899c31;outline-offset:3px}
.batch-drop input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.batch-drop span{font-size:14px;color:#687653}.batch-drop small{font-size:12px;color:#7b866b}.batch-drop .upload-mark{font-size:26px;color:#4a5d29}.batch-drop strong{font-size:16px}
.pair-actions{display:flex;flex-direction:column;gap:6px;margin-top:18px}.pair-actions .secondary{justify-content:center}#toBatchExport{margin-top:10px}#loadDemo{margin-top:20px;text-decoration:underline}
.photo-set-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:20px;align-items:start}
.photo-set-card{min-width:0;border:1px solid #e0e5d7;border-radius:14px;background:white;padding:17px;box-shadow:0 3px 14px #252d1b03}
.photo-set-card.model-ready{border-color:#bbc992}.photo-set-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:15px}.photo-set-heading h3{font-size:16px;font-weight:600;margin:0;overflow-wrap:anywhere}.set-type{font-size:12px;color:#64764a;background:#f0f4e7;padding:5px 7px;border-radius:5px;white-space:nowrap}
.set-photos{display:grid;grid-template-columns:1fr 1fr;gap:10px}.set-photo{display:flex;flex-direction:column;align-items:stretch;min-width:0;padding:0;border:1px solid #e3e7dc;background:#f7f8f3;border-radius:8px;overflow:hidden;text-align:left;color:#3b4531}.set-photo img{height:170px;width:100%;object-fit:contain;padding:9px}.set-photo>span:not(.missing-photo){padding:8px 9px 2px;font-size:13px;font-weight:600}.set-photo>small{padding:2px 9px 9px;font-size:12px;color:#78816c;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.missing-photo{height:170px;display:flex;align-items:center;justify-content:center;flex-direction:column;font-size:27px;color:#8a9874}.missing-photo small{font-size:13px;margin-top:7px}.empty-set{min-height:130px;justify-content:center;align-items:center;grid-column:1/-1}
.set-status{display:flex;justify-content:space-between;gap:10px;margin:16px 0 12px;font-size:14px;color:#758167}.set-status span:first-child{color:#536338;font-weight:600}.model-ready .set-status span:first-child{color:#48641d}.pair-check,.pair-confirmation{display:flex;align-items:center;gap:8px;font-size:14px;line-height:1.5;color:#59674a}.pair-check input,.pair-confirmation input,.multi-photo-picker input{accent-color:#718734;width:17px;height:17px;flex-shrink:0}
.set-actions{display:flex;align-items:center;gap:9px;margin-top:16px;flex-wrap:wrap}.set-actions .secondary{padding:9px;font-size:14px}.set-actions .text-button{font-size:14px}.remove-set{margin-left:auto;width:30px;height:30px;border:0;background:transparent;font-size:23px;color:#849076;border-radius:5px}.remove-set:hover{background:#faf0e9;color:#9c4c2a}
.batch-notice{font-size:14px;line-height:1.6;color:#5b6b46;margin:0 0 22px}.batch-notice:empty{display:none}.batch-run{display:grid;grid-template-columns:1fr auto;gap:14px;padding:19px;border:1px solid #d5dfbe;background:#f0f5df;border-radius:10px;margin-bottom:20px}.batch-run strong,.batch-run span{display:block;font-size:14px}.batch-run span{font-size:13px;color:#6c7958;margin-top:7px}.batch-run progress{grid-column:1/-1;width:100%;height:6px;accent-color:#728a2a}.set-error,.pair-error{color:#995334;font-size:13px;line-height:1.5}
.unassigned-section{margin-top:36px;padding-top:26px;border-top:1px solid var(--line)}.unassigned-heading{display:flex;align-items:center;gap:15px}.unassigned-heading h3{font-size:16px;margin:0}.unassigned-heading span{font-size:13px;color:#737e63}.unassigned-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(105px,1fr));gap:12px}.unassigned-photos figure{position:relative;margin:0;min-width:0}.remove-photo{position:absolute;right:3px;top:3px;width:26px;height:26px;border:1px solid #dce2d0;border-radius:50%;background:white;color:#59644a;font-size:18px}.unassigned-photos img{width:100%;height:120px;object-fit:contain;background:white;border:1px solid #e0e5d7;border-radius:8px;padding:5px}.unassigned-photos figcaption{font-size:12px;color:#737e63;margin-top:7px;overflow-wrap:anywhere}.collection-empty{grid-column:1/-1;padding:70px 25px;text-align:center;border:1px dashed #d4ddc8;border-radius:12px;color:#6c785c}.collection-empty h3{font-size:22px;font-weight:500}.collection-empty p{font-size:15px;line-height:1.6}
.collection-adjust{padding-bottom:24px;margin-bottom:25px;border-bottom:1px solid var(--line)}.collection-adjust .control-label:first-child{margin-top:0}.collection-adjust .text-button{text-align:left;line-height:1.5}.collection-adjust .secondary,.collection-export .secondary{margin-top:12px}.collection-export h2{font-size:22px;overflow-wrap:anywhere}.collection-export .helper{font-size:15px}.collection-export .eyebrow{margin-bottom:10px}
.pair-dialog{max-width:760px;max-height:90dvh;overflow:auto}.pair-fields{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:22px}.pair-preview{background:#f6f8f1;border-radius:9px;margin-top:13px;height:240px}.pair-preview img{width:100%;height:100%;object-fit:contain;padding:10px}.pair-fields select{font-size:13px}.multi-photo-picker{grid-column:1/-1;display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px;max-height:340px;overflow:auto;margin-top:20px}.multi-photo-picker label{position:relative;border:1px solid #dce3d0;border-radius:7px;padding:8px}.multi-photo-picker img{width:100%;height:95px;object-fit:contain}.multi-photo-picker span{display:block;font-size:12px;overflow-wrap:anywhere}.multi-photo-picker label:has(input:checked){background:#eef5db;border-color:#8ca357}.multi-photo-picker label:has(input:disabled){opacity:.5}select:focus-visible,a:focus-visible{outline:3px solid #889b00;outline-offset:3px}button:disabled{cursor:default}
@media(max-width:1150px){.collection-board{padding:28px 23px}.collection-toolbar{align-items:flex-start;flex-direction:column;gap:17px}.photo-set-grid{grid-template-columns:repeat(auto-fill,minmax(270px,1fr))}}
@media(max-width:700px){.workspace.collection-mode .sidebar{order:0}.collection-board{order:1;padding:26px 18px 45px}.collection-toolbar h2{font-size:24px}.collection-toolbar-actions{width:100%}.collection-toolbar-actions button{flex:1;font-size:12px}.photo-set-grid{grid-template-columns:1fr}.set-photo img,.missing-photo{height:190px}.collection-intro .batch-drop{padding:20px}.pair-actions{flex-direction:row;align-items:center;justify-content:space-between}.pair-actions .secondary{font-size:13px}.pair-fields{gap:10px}.pair-preview{height:180px}.pair-dialog{padding:20px}.pair-dialog .dialog-head h2{font-size:21px}.top-actions{gap:9px}#exportTop{font-size:10px}#openProject{font-size:10px}.collection-empty{padding:40px 20px}}

.set-category-label{display:block;font-size:14px;color:#68745a;margin-bottom:7px}.set-category{margin-bottom:15px;font-size:14px;min-height:40px}#activeGarmentType,#newGarmentType,#pairGarmentType{font-size:14px}#pairCategory .control-label{margin-top:17px}#garmentTypeHint{font-size:14px;color:#68745a}

.detected-type{font-size:12px;color:#68745a;margin:-7px 0 13px}

/* Object construction shares the garment studio and its export flow. */
.object-photo-review{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0 8px}.object-photo-review figure{margin:0;min-width:0}.object-photo-review img{width:100%;height:135px;object-fit:contain;border:1px solid #d9ddd2;border-radius:10px;background:repeating-conic-gradient(#eee 0% 25%,#fff 0% 50%) 50%/16px 16px}.object-photo-review figcaption{font-size:13px;color:#606855;margin-top:5px}.object-limit{font-size:14px;line-height:1.55;background:#f2f4ed;border:1px solid #dce1d2;padding:12px;border-radius:8px;margin:18px 0}.object-view-assignments{grid-column:1/-1}.object-view-assignments select{width:100%}.object-view-assignments .control-label{margin-top:14px}#objectAdjustments input[type=number]{width:100%;padding:11px 12px;border:1px solid #d4d7cd;border-radius:8px;background:white;font:inherit}#objectCleanupWarning:empty{display:none}.compare-grid:has(figure:only-child){grid-template-columns:1fr}.compare-grid:has(figure:nth-child(3)){grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:600px){.compare-grid:has(figure:nth-child(3)){grid-template-columns:1fr}.object-photo-review img{height:115px}}

[hidden]{display:none!important}

#objectAdjustments .fit-hint,#newObjectCategory .fit-hint,.object-view-assignments .fit-hint{font-size:14px;line-height:1.5}

.object-parts,.object-finish{margin:20px 0;border-top:1px solid var(--line);padding-top:16px}.object-parts summary,.object-finish summary{font-weight:600;cursor:pointer}.part-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 8px;margin-top:16px}.part-fields label{font-size:12px;color:#657153}.part-fields input{margin-top:6px;padding:9px 6px!important}.part-reset{display:flex;justify-content:space-between;gap:10px;margin-top:14px}.part-reset button{font-size:12px}.object-parts .pair-check{margin-top:14px}
.photo-editor{width:min(850px,calc(100vw - 24px));max-width:850px;max-height:94dvh;overflow:auto;padding:28px}.photo-editor .helper{font-size:15px;line-height:1.5}.cleanup-tools{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.cleanup-tools button{flex:1;border:1px solid #d4dcc7;border-radius:7px;padding:10px 14px;background:#fff;font:inherit;font-size:14px;white-space:nowrap}.cleanup-tools button[aria-pressed=true]{background:#e9efd9;border-color:#7f924a;color:#34491b}.cleanup-brush{display:grid;grid-template-columns:1fr 1fr;gap:26px}.cleanup-brush label{font-size:13px;color:#566545}.cleanup-brush output{float:right}.cleanup-brush input{display:block;width:100%;margin-top:10px}.cleanup-canvas-wrap{display:flex;justify-content:center;background:repeating-conic-gradient(#e2e5dd 0% 25%,#f8f9f5 0% 50%) 50%/20px 20px;border:1px solid #d3dbc7;border-radius:8px;overflow:hidden}.cleanup-canvas-wrap canvas{display:block;max-width:100%;max-height:48dvh;width:auto;height:auto;touch-action:none;cursor:crosshair}.cleanup-crop-fields{margin-top:14px}.cleanup-crop-fields summary{cursor:pointer;font-size:13px}.crop-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0}.crop-fields label{font-size:12px;color:#657153}.crop-fields input{display:block;width:100%;font:inherit;background:white;border:1px solid #d4d7cd;border-radius:6px;padding:9px;margin-top:5px}.cleanup-footer{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:20px}.cleanup-footer #cleanupCancel{margin-left:auto}.photo-editor .fit-hint{font-size:13px;line-height:1.5}.cleanup-footer button{font-size:14px}#cleanupStatus{min-height:20px}@media(max-width:600px){.photo-editor{padding:20px}.cleanup-footer{gap:9px}.cleanup-footer button{padding:10px;font-size:13px}.cleanup-tools button{padding:10px 8px}.photo-editor .dialog-head h2{font-size:22px}}

.photo-editor .cleanup-footer{position:sticky;bottom:-28px;background:#fff;border-top:1px solid #e0e5d7;padding:14px 0;margin-bottom:-14px;z-index:1}@media(max-width:600px){.photo-editor .cleanup-footer{bottom:-20px}}
.studio-tools{padding:0 0 18px;border-bottom:1px solid var(--line);margin-bottom:18px}.studio-tools .full{margin-top:8px}.photo-treatment{margin:18px 0}.photo-treatment summary{cursor:pointer}.prepared-large{margin:18px 0}.prepared-large img{display:block;max-width:100%;max-height:320px;margin:auto;background:repeating-conic-gradient(#e5e8dd 0% 25%,#fff 0% 50%) 50%/16px 16px}.prepared-large figcaption{font-size:12px;margin-top:8px;color:#667153}.match-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:16px 0}.match-actions label{display:flex;align-items:center;gap:8px;font-size:13px}.match-actions input{width:110px}#matchCanvas{display:block;width:min(100%,61.1dvh);height:auto;margin-inline:auto;touch-action:none;border:1px solid #d9dfcd;border-radius:9px}.match-numbers{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:16px}.match-numbers label{font-size:12px;color:#657153}.match-numbers input,.match-numbers select{display:block;width:100%;padding:9px 6px;margin-top:6px;border:1px solid #d4d7cd;border-radius:6px;background:white;font:inherit}.match-numbers button{grid-column:1/-1;justify-self:start}.recovery-status{border-top:1px solid var(--line);margin-top:20px;padding-top:12px}.recovery-status p{font-size:12px;line-height:1.5;color:#64714e}.recovery-row{padding:14px 0;border-bottom:1px solid var(--line)}.recovery-row p{font-size:14px;line-height:1.5}.quality-check{margin-top:14px;font-size:13px;color:#626e53}.quality-check summary{font-size:13px;cursor:pointer}.quality-check ul{padding-left:19px;line-height:1.5}.quality-check p{font-size:12px;line-height:1.5}.quality-check button{font-size:12px}.suggestion-row{border-bottom:1px solid var(--line);padding:18px 0}.suggestion-row figure{margin:0}.suggestion-row img{width:100%;height:180px;object-fit:contain}.suggestion-row figcaption,.suggestion-row p{font-size:13px;overflow-wrap:anywhere}.photo-editor #matchApply{margin-left:auto}@media(max-width:600px){.match-numbers{grid-template-columns:1fr 1fr}.match-actions button{font-size:12px}.cleanup-tools button{flex:auto}}

.trace-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:12px 0}.trace-controls button,.trace-controls label{font-size:14px}.trace-controls label{display:flex;align-items:center;gap:8px;margin-left:auto}.trace-controls select{width:auto}.photo-editor .cleanup-canvas-wrap{max-height:48dvh;overflow:auto;justify-content:flex-start;align-items:flex-start}.photo-editor .cleanup-canvas-wrap canvas{flex:none;max-width:none;max-height:none;height:auto;margin:auto}

/* Installed apps respect screen cutouts and retain accessible touch targets. */
body{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom)}
.install-app{display:flex;align-items:center;justify-content:space-between;margin-top:28px;border-top:1px solid var(--line);padding-top:18px;text-align:left}
.install-dialog{max-width:740px;width:calc(100% - 28px);max-height:90dvh;overflow:auto}.install-dialog h2{font-size:25px}.install-options{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin:24px 0}.install-options h3{font-size:20px}.install-options p{font-size:15px;line-height:1.7;color:#626e53}.install-options a{text-decoration:none;justify-content:center}.install-options small{display:block;font-size:12px;line-height:1.6;color:#626e53;margin-top:10px}
@media(display-mode:standalone){.topbar{padding-top:env(safe-area-inset-top);height:calc(88px + env(safe-area-inset-top))}}
@media(max-width:700px){.topbar{gap:10px;flex-wrap:wrap;height:auto;min-height:100px;padding:15px 18px}.top-actions{width:100%;justify-content:flex-end}.top-actions button,#openProject,#exportTop{font-size:14px;min-height:44px}.top-actions #saveProject{display:block;margin-right:auto}.brand{font-size:23px}.install-options{grid-template-columns:1fr;gap:12px}.install-dialog{padding:22px}.install-dialog h2{font-size:22px}.view-tabs button,.icon-button,.step,.text-button{min-height:44px}input[type=text],input[type=number],select{font-size:16px!important}.photo-editor .dialog-head{gap:12px}.photo-editor .icon-button{min-width:44px}.stage-overlay{max-width:calc(100% - 28px);white-space:normal;text-align:center}}
