.photo-panel{margin:0 0 18px;padding:15px;border:1px solid #ded5e7;background:#faf7fd;color:#17131d}.photo-heading{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 12px}.photo-source-actions{display:flex;flex-wrap:wrap;gap:6px}.photo-camera-note{font-size:10px;line-height:1.65;color:#655b70;margin:4px 0 0}.photo-heading b{display:block;font-size:14px}.photo-heading span{display:block;font-size:10px;color:#655b70;margin-top:3px}.photo-panel button{font-size:11px;min-height:35px;padding:6px 10px}.photo-heading button{border-color:#7928ca;color:#7928ca;white-space:nowrap}.photo-intro,.photo-help{font-size:11px;line-height:1.7;color:#655b70;margin:10px 0 0}.photo-status{font-size:11px;line-height:1.65;color:#655b70;margin:9px 0 0;overflow-wrap:anywhere}.photo-status.error{color:#8e2944;background:#fff0f3;border-left:3px solid #ad247c;padding:7px 9px}.photo-file-input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden;pointer-events:none}.photo-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.photo-actions [aria-pressed="true"][data-photo-action="edit"]{background:#7928ca;border-color:#7928ca;color:#fff}.photo-mode-note{font-size:11px;line-height:1.7;color:#6420aa;background:#eee0fc;border-left:3px solid #7928ca;padding:8px 10px;margin:10px 0}.photo-adjustments{margin-top:12px;border-top:1px solid #e6dced;padding-top:10px}.photo-adjustments summary{font-size:12px;font-weight:700;cursor:pointer}.photo-range-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px 18px;margin-top:14px}.photo-range-grid label{font-size:11px;color:#493e55;display:grid;grid-template-columns:1fr auto;gap:4px}.photo-range-grid output{font-variant-numeric:tabular-nums;color:#7928ca;font-weight:700}.photo-range-grid input{grid-column:1/-1;width:100%;accent-color:#7928ca;min-height:27px;margin:0}.photo-reset-row{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:10px}.photo-reset-row span{font-size:10px;color:#655b70}.photo-panel [hidden]{display:none!important}.wall-board.photo-adjusting{cursor:grab;touch-action:none;outline:2px solid #7928ca;outline-offset:2px}.wall-board.photo-adjusting [data-hold-id]{cursor:grab!important}.wall-board.photo-panning,.wall-board.photo-panning [data-hold-id]{cursor:grabbing!important}
.photo-crop-dialog{box-sizing:border-box;width:min(740px,calc(100vw - 24px));max-height:calc(100vh - 28px);padding:22px;border:1px solid #a47ac6;border-radius:10px;background:#fff;color:#17131d;overflow:auto;box-shadow:0 24px 90px #17131d55}.photo-crop-dialog::backdrop{background:#17131dbb}.photo-crop-header{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.photo-crop-header h2{font-size:22px;line-height:1.35;margin:0}.photo-crop-header p,.photo-crop-help{font-size:12px;line-height:1.7;color:#655b70;margin:8px 0 14px}.photo-crop-header>button{font-size:24px;line-height:1;padding:4px 9px;min-width:36px;min-height:36px}.photo-crop-viewport{width:100%;background:#1d1727;border:1px solid #ded5e7;overflow:hidden;padding:0;line-height:0}.photo-crop-stage{position:relative;margin:auto;overflow:hidden;touch-action:none;user-select:none;cursor:crosshair;max-width:100%}.photo-crop-stage img{display:block;width:100%;height:100%;max-width:none;object-fit:fill;pointer-events:none;user-select:none}.photo-crop-box{position:absolute;box-sizing:border-box;border:2px solid #fff;outline:1px solid #7928ca;box-shadow:0 0 0 9999px #17131d99;cursor:move;touch-action:none}.photo-crop-box:before,.photo-crop-box:after{content:"";position:absolute;pointer-events:none}.photo-crop-box:before{top:0;bottom:0;left:33.333%;right:33.333%;border-left:1px solid #ffffff88;border-right:1px solid #ffffff88}.photo-crop-box:after{left:0;right:0;top:33.333%;bottom:33.333%;border-top:1px solid #ffffff88;border-bottom:1px solid #ffffff88}.photo-crop-box [data-crop-handle]{position:absolute;width:24px;height:24px;background:#7928ca;border:2px solid #fff;z-index:2;border-radius:3px}.photo-crop-box [data-crop-handle="nw"]{top:-3px;left:-3px;cursor:nwse-resize}.photo-crop-box [data-crop-handle="ne"]{top:-3px;right:-3px;cursor:nesw-resize}.photo-crop-box [data-crop-handle="sw"]{bottom:-3px;left:-3px;cursor:nesw-resize}.photo-crop-box [data-crop-handle="se"]{bottom:-3px;right:-3px;cursor:nwse-resize}.photo-crop-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:15px}.photo-crop-fields label{font-size:11px;color:#655b70;display:flex;flex-direction:column;gap:5px;min-width:0}.photo-crop-fields input{width:100%;min-width:0;border:1px solid #d8cce4;border-radius:4px;min-height:38px;padding:6px 9px;font-size:13px;color:#17131d;background:#fff}.photo-crop-help{margin-bottom:14px}.photo-crop-footer{display:flex;justify-content:space-between;gap:10px;border-top:1px solid #e6dced;padding-top:15px}.photo-crop-footer>div{display:flex;gap:8px}.photo-crop-footer button{min-height:38px;font-size:12px;padding:7px 11px}.photo-crop-footer .photo-apply{background:#7928ca;border-color:#7928ca;color:#fff}.photo-crop-dialog :focus-visible,.photo-panel :focus-visible{outline:3px solid #b88add;outline-offset:3px}
@media(max-width:760px){.photo-panel{padding:12px}.photo-source-actions button{min-height:42px}.photo-crop-dialog{padding:16px}.photo-crop-header h2{font-size:19px}.photo-crop-fields{grid-template-columns:1fr 1fr}.photo-crop-footer{flex-wrap:wrap}.photo-crop-footer>div{margin-left:auto}.photo-range-grid{gap:10px}.photo-reset-row{align-items:flex-start;flex-direction:column}}@media(max-width:380px){.photo-heading{align-items:flex-start;flex-direction:column;gap:10px}.photo-range-grid{grid-template-columns:1fr}.photo-actions{gap:5px}.photo-crop-footer button{font-size:11px;padding:6px 9px}}@media print{.photo-panel,.photo-crop-dialog{display:none!important}}
