.photo-viewer{width:min(100vw - 20px,420px);max-height:calc(100dvh - 32px);padding:14px;background:#fff8fc;border:1px solid #efdae5;border-radius:24px;overflow:auto}
.photo-viewer::backdrop{background:#3d253dd9;backdrop-filter:blur(5px)}
.viewer-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.viewer-heading b{font-size:15px}.viewer-heading button{flex:none}
.viewer-heading .icon-button{min-width:44px;min-height:44px}
.viewer-stage{position:relative;display:flex;align-items:center;justify-content:center;min-height:220px;height:min(62dvh,600px);background:#f3e9f0;border-radius:16px;overflow:hidden;touch-action:pan-y}
.viewer-stage img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;transition:transform .2s}.viewer-stage.zoomed{overflow:auto}.viewer-stage.zoomed img{transform:scale(1.6);transform-origin:center}
.viewer-arrow{position:absolute;top:calc(50% - 24px);width:44px;height:48px;border:0;border-radius:18px;background:#fffaffde;color:#76536d;font-size:32px;z-index:2}.viewer-prev{left:5px}.viewer-next{right:5px}.viewer-arrow:disabled{opacity:.3}
.viewer-counter{text-align:center;color:#94798b;font-size:12px;margin:12px 0}.viewer-actions{display:flex;flex-wrap:wrap;gap:8px}.viewer-actions button{flex:1;min-width:120px;min-height:44px;margin:0}.viewer-actions .text-button{flex-basis:100%}
.photo-frame .photo-thumbnail{padding:0;background:transparent;border:0;width:100%;display:block;border-radius:17px;overflow:hidden;margin:0}.photo-frame .photo-thumbnail img{display:block;width:100%;aspect-ratio:2/3;object-fit:cover}.photo-frame .photo-thumbnail:focus-visible{outline:3px solid #b878a0}
.photo-spinner{display:inline-block;width:18px;height:18px;border:2px solid #e4bbd2;border-top-color:#b7679a;border-radius:50%;animation:photo-spin 1s linear infinite;margin:0 6px -3px 0}.photo-spinner[hidden]{display:none}
.photo-pose-picker{font-size:12px;margin:10px 0}.photo-pose-picker select{min-height:44px;width:100%;margin-top:6px}.photo-frame .photo-frame-error{font-size:12px;line-height:1.6}.photo-save-actions{display:grid;gap:8px;margin-top:16px}.photo-save-actions button{margin:0}.photo-start-action{position:static;padding:8px 0;background:transparent}.photo-start-action .primary{margin:0}.photo-plan-card:not([open]){margin-bottom:16px}.live-note-dialog{max-width:380px}
.photo-consent,#photo-cost{color:#765b6d;font-size:12px;line-height:1.7}
.gallery-categories{scroll-snap-type:x proximity}.gallery-category{scroll-snap-align:center}.works-grid .work-open{border:0;padding:0;background:none;width:100%;margin:0}.works-grid .work-open img{width:100%;display:block}.works-grid .work-open:focus-visible{outline:3px solid #b878a0}
.gallery-swipe-actions{display:flex;justify-content:space-between;padding:0 18px}.gallery-swipe-actions button{min-width:100px;min-height:44px}
.task-activity{display:block;width:calc(100% - 32px);margin:0 16px 12px;min-height:44px;border:1px solid #eacdde;border-radius:16px;background:#fff4fb;color:#95658c;font-size:13px}.task-activity[hidden]{display:none}
@keyframes photo-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.photo-spinner{animation:none}.viewer-stage img{transition:none}}
.photo-viewer{max-width:420px}.viewer-heading b{min-width:0;overflow-wrap:anywhere}.viewer-stage{height:min(49dvh,480px);min-height:180px}.viewer-actions{display:grid;grid-template-columns:1fr 1fr}.viewer-actions button{min-width:0;font-size:12px;padding:11px 8px}.viewer-actions .primary,.viewer-actions .text-button{grid-column:1/-1}.viewer-counter{margin:10px 0}.photo-thumbnail img{object-fit:contain!important;background:#faf1f7}
@media(max-height:650px){.viewer-stage{height:40dvh;min-height:150px}.photo-viewer{padding:11px}.viewer-heading{margin-bottom:7px}}
