.upload-photo{--up-line:#dfdfd5;max-width:1320px;margin:auto;padding:24px max(3vw,18px) 48px}.upload-photo [hidden]{display:none!important}.up-heading{display:flex;align-items:center;gap:20px;margin-bottom:20px}.up-heading h1{font:normal 34px var(--pc-display);letter-spacing:-1px;margin:0}.up-heading a{font-size:12px}.up-local{margin-left:auto;font-size:11px;color:var(--muted)}.up-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:26px;align-items:start}.up-photo-column{min-width:0;position:sticky;top:12px}.up-stage{height:min(53dvh,510px);min-height:240px;position:relative;background:#e8e9e2;border:1px solid var(--up-line);border-radius:14px;overflow:hidden}.up-stage canvas,.up-stage svg{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.up-stage svg{touch-action:auto}.up-stage[data-editing=true] svg{touch-action:none;cursor:crosshair}.up-stage svg [role=button]{cursor:grab;outline:none}.up-stage svg [role=button]:focus{fill:#232b2b;stroke:#fff;stroke-width:4px}.up-placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:20px;text-align:center}.up-placeholder h2{font:normal 25px var(--pc-display);margin:0 0 12px}.up-placeholder p{font-size:12px;color:var(--muted);line-height:1.7;max-width:270px}.up-choose{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.up-file{position:relative;cursor:pointer;overflow:hidden}.up-file input{position:absolute;inset:0;opacity:0;width:100%;cursor:pointer}.up-file:focus-within{outline:3px solid #bf9554;outline-offset:3px}.up-file.button{font-size:12px;padding:12px 16px;min-height:44px;gap:7px}.up-example{margin-top:12px;font-size:12px}.up-toolbar{display:flex;flex-wrap:wrap;gap:7px;align-items:center;padding:12px 0}.upload-photo .button.small{font-size:12px;min-height:40px;padding:9px 12px}.up-hint{font-size:12px;line-height:1.65;min-height:20px;margin:0;color:#5f6e57}.up-preview-actions{display:flex;gap:8px;flex-wrap:wrap;padding:14px 0;border-top:1px solid var(--up-line);margin-top:12px}.up-preview-actions button[aria-pressed=true]{background:#232b2b;color:white;border-color:#232b2b}.up-fine{font-size:11px;line-height:1.7;color:var(--muted);margin:10px 0}.up-empty-panel{padding:26px 22px;background:#eeeee6;border-radius:12px;font-size:13px;line-height:1.7;color:var(--muted)}.up-side{min-width:0}.up-section{padding-bottom:22px;margin-bottom:22px;border-bottom:1px solid var(--up-line)}.up-section h2{font-size:14px;margin:0 0 13px}.up-wall-list{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:12px}.up-wall{display:flex;align-items:center;gap:8px;border:1px solid #d2d7ca;background:transparent;border-radius:7px;min-height:42px;padding:8px 12px;font-size:12px}.up-wall[aria-pressed=true]{border:2px solid #232b2b;padding:7px 11px}.up-wall span{width:17px;height:17px;border-radius:4px;border:1px solid #0002}.up-surface-actions{display:flex;gap:8px;flex-wrap:wrap}.up-surface-actions button{font-size:11px;min-height:36px}.up-mask-options{margin-top:12px;font-size:12px;color:var(--muted)}.up-mask-options summary{cursor:pointer}.up-holes{padding:10px 0;display:grid;gap:6px}.up-hole-row{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:12px}.up-category{display:flex;gap:8px;align-items:center;justify-content:space-between;margin:0 0 12px}.upload-photo select{min-height:40px;padding:8px;border:1px solid var(--up-line);border-radius:6px;background:#fffdf8;color:var(--ink);max-width:100%;font-size:12px}.up-picker-tabs{display:flex;padding:4px;gap:4px;background:#eeeee6;border-radius:8px;margin-bottom:14px}.up-picker-tabs button{flex:1;border:0;border-radius:5px;background:transparent;min-height:40px;font-size:12px;color:var(--muted)}.up-picker-tabs button[aria-selected=true]{background:#fffdf8;color:var(--ink);box-shadow:0 1px 4px #0001}.up-products{display:flex;gap:8px;overflow-x:auto;padding:4px 1px 10px;scroll-snap-type:x proximity}.up-product{flex:0 0 99px;scroll-snap-align:start;display:flex;align-items:center;flex-direction:column;gap:6px;min-height:135px;border:1px solid var(--up-line);background:transparent;border-radius:8px;padding:10px 6px;font-size:10px;text-align:center;color:var(--ink)}.up-product[aria-pressed=true]{border:2px solid #232b2b;padding:9px 5px;background:#eef0e7}.up-product img{width:63px;height:77px;object-fit:contain;mix-blend-mode:multiply}.up-product strong{font-weight:500;line-height:1.4}.up-mode-row{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:12px 0}.up-mode-row label{font-size:11px;color:var(--muted)}.up-search{display:block;width:100%;margin:12px 0;padding:12px;border:1px solid var(--up-line);border-radius:7px;background:#fffdf8;font-size:14px;color:var(--ink)}.up-color-grid,.upload-photo .color-family-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.up-color-tile,.upload-photo .tile{padding:0;border:1px solid transparent;background:transparent;text-align:left;font-size:10px;color:var(--ink);border-radius:6px;overflow:hidden;min-width:0}.up-color-tile span,.upload-photo .tile span:last-child{display:block;padding:6px 3px;line-height:1.4;overflow-wrap:anywhere}.up-color-tile .up-swatch,.upload-photo .tile .swatch{height:53px;display:block;background:var(--swatch);padding:0;border:1px solid #0001;border-radius:5px}.up-color-tile[aria-pressed=true],.upload-photo .tile[aria-pressed=true]{border:2px solid #232b2b}.up-color-tile[aria-pressed=true] span,.upload-photo .tile[aria-pressed=true] span:last-child{padding:5px 2px}.up-pagination{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:16px;font-size:11px}.up-pagination button{min-height:38px;border:1px solid var(--up-line);border-radius:6px;background:transparent;padding:8px;color:var(--ink)}.up-color-selection{display:flex;gap:9px;align-items:center;padding:12px 0;font-size:12px;line-height:1.5}.up-color-selection>span{width:35px;height:35px;border-radius:6px;border:1px solid #0002;flex-shrink:0}.up-color-selection small{display:block;color:var(--muted);font-size:10px}.upload-photo .color-family{padding:12px 0;border-bottom:1px solid var(--up-line)}.upload-photo .color-family h3{font-size:12px;margin:0 0 10px}.upload-photo .color-sort-note{font-size:10px;color:var(--muted)}.upload-photo #color-browser-pane{max-height:560px;overflow:auto;scrollbar-width:thin}.up-confirm{padding:25px;max-width:380px;width:calc(100vw - 28px);border-radius:12px}.up-confirm h2{font:normal 26px var(--pc-display)}.up-confirm p{font-size:13px;line-height:1.7;color:var(--muted)}
@media(max-width:760px){.upload-photo{padding:16px 12px 32px}.up-heading{gap:14px;margin-bottom:15px}.up-heading h1{font-size:27px}.up-local{font-size:9px;max-width:70px;text-align:right}.up-layout{display:block}.up-photo-column{position:static}.up-stage{height:42dvh;min-height:250px;max-height:400px;border-radius:10px}.up-side{margin-top:24px;padding-top:22px;border-top:1px solid var(--up-line)}.up-placeholder h2{font-size:24px}.up-color-grid,.upload-photo .color-family-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.upload-photo #color-browser-pane{max-height:550px}.up-product{flex-basis:105px}.up-search{font-size:16px}.up-hint{font-size:11px}.up-toolbar{gap:6px}.upload-photo .button.small{font-size:11px;padding:8px 10px}.up-preview-actions{gap:6px}.up-category select{font-size:16px;max-width:195px}.up-mode-row select{font-size:16px;max-width:200px}}
@media(max-width:380px){.up-color-grid,.upload-photo .color-family-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.up-heading{gap:10px}.up-heading h1{font-size:25px}}
@media(max-width:760px){.up-photo-column{display:contents}.up-stage{position:sticky;top:env(safe-area-inset-top,0px);z-index:10;height:32dvh;min-height:210px;max-height:300px;box-shadow:0 8px 12px -12px #26362970}.up-stage[data-editing=true]{height:44dvh;max-height:400px}.up-side{margin-top:22px}.upload-photo input{scroll-margin-top:calc(32dvh + 20px)}body[data-route=upload] .site-header{position:relative;z-index:20}}
.up-paint-tools{padding:12px 0;border-bottom:1px solid var(--up-line)}.up-tool-row{display:flex;gap:6px;flex-wrap:wrap}.up-tool-row button{min-height:42px;padding:8px 13px;border:1px solid var(--up-line);border-radius:7px;background:transparent;color:var(--ink);font-size:12px}.up-tool-row button[aria-pressed=true]{border-color:#232b2b;background:#232b2b;color:#fff}.up-tolerance{display:flex;align-items:center;gap:10px;max-width:430px;margin-top:12px;font-size:11px;color:var(--muted)}.up-tolerance output{min-width:20px;color:var(--ink)}.up-tolerance input{flex:1;min-width:70px;accent-color:#232b2b;height:28px}.up-stage[data-paint-tool=fill] svg{touch-action:pan-y;cursor:crosshair}.up-stage[data-paint-tool=brush] svg,.up-stage[data-paint-tool=erase] svg{touch-action:none;cursor:crosshair}.up-stage svg:focus-visible{outline:3px solid #bf9554;outline-offset:-3px}.up-stage[data-paint-tool=manual] svg{touch-action:none}@media(max-width:760px){.up-paint-tools{padding:10px 0}.up-tool-row{gap:5px}.up-tool-row button{flex:1;min-height:42px;padding:8px 6px;font-size:11px;white-space:nowrap}}
.up-wand-note{align-self:center;color:var(--muted);font-size:11px}.up-advanced-tools{margin-top:10px;font-size:11px;color:var(--muted)}.up-advanced-tools summary{cursor:pointer;min-height:32px;display:list-item;padding:8px 0}.up-advanced-tools .up-tool-row{margin-top:6px}
