/* Shared local-only picker; deliberately scoped to avoid changing site forms. */
.hsp-picker { display:block; min-width:0; width:100%; box-sizing:border-box; margin:1.25rem 0; padding:1rem; border:1px solid #cbd5e1; border-radius:12px; background:#fff; color:#172033; text-align:left; font-family:inherit; line-height:1.5; }
.hsp-picker *, .hsp-picker *::before, .hsp-picker *::after { box-sizing:border-box; }
.hsp-picker legend { width:auto; float:none; padding:0 .35rem; margin:0; font-size:1rem; font-weight:700; color:#172033; letter-spacing:normal; text-transform:none; }
.hsp-picker p, .hsp-picker ul { margin:0 0 .7rem; padding:0; font-size:.875rem; line-height:1.5; color:inherit; }
.hsp-picker .hsp-help { color:#475569; }
.hsp-picker .hsp-notice { padding:.75rem; border-left:3px solid #415a77; background:#f1f5f9; color:#172033; }
.hsp-picker .hsp-label { display:block; margin:.6rem 0 .35rem; color:#172033; font-size:.95rem; font-weight:700; }
.hsp-picker .hsp-input { display:block; position:static; width:100%; min-width:0; max-width:100%; min-height:44px; height:auto; margin:0 0 .75rem; padding:.35rem; border:1px solid #64748b; border-radius:5px; background:#fff; color:#172033; font-family:inherit; font-size:.875rem; line-height:1.5; text-overflow:ellipsis; }
.hsp-picker .hsp-input::file-selector-button { min-height:36px; margin-right:.5rem; padding:.4rem .7rem; border:1px solid #64748b; border-radius:4px; background:#eef2f6; color:#172033; font-family:inherit; cursor:pointer; }
.hsp-picker .hsp-input:disabled { opacity:.65; cursor:wait; }
.hsp-picker .hsp-status { color:#334155; font-weight:600; }
.hsp-picker .hsp-errors:not(:empty) { margin:.75rem 0; padding:.75rem; border:1px solid #b42318; border-radius:6px; background:#fff5f4; color:#8a1c13; overflow-wrap:anywhere; }
.hsp-picker .hsp-errors ul { padding-left:1.2rem; }
.hsp-picker .hsp-errors p { font-weight:700; }
.hsp-picker .hsp-list { display:grid; grid-template-columns:minmax(0,1fr); gap:.6rem; list-style:none; }
.hsp-picker .hsp-item { display:grid; grid-template-columns:64px minmax(0,1fr) auto; align-items:center; gap:.7rem; padding:.6rem; margin:0; border:1px solid #dce2e8; border-radius:7px; background:#fff; color:#172033; list-style:none; }
.hsp-picker .hsp-preview { display:flex; align-items:center; justify-content:center; width:64px; height:64px; overflow:hidden; border-radius:4px; background:#edf1f5; color:#475569; text-align:center; font-size:.65rem; line-height:1.3; }
.hsp-picker .hsp-preview img { display:block; width:100%; height:100%; object-fit:cover; border:0; border-radius:0; }
.hsp-picker .hsp-details { min-width:0; }
.hsp-picker .hsp-name, .hsp-picker .hsp-size, .hsp-picker .hsp-preview-note { display:block; overflow-wrap:anywhere; word-break:normal; }
.hsp-picker .hsp-name { color:#172033; font-size:.875rem; font-weight:600; }
.hsp-picker .hsp-size, .hsp-picker .hsp-preview-note { color:#475569; font-size:.75rem; }
.hsp-picker .hsp-remove, .hsp-picker .hsp-clear { display:inline-flex; align-items:center; justify-content:center; width:auto; min-width:44px; min-height:44px; height:auto; padding:.45rem .65rem; border:1px solid #64748b; border-radius:5px; background:#fff; color:#172033; font-family:inherit; font-size:.8rem; font-weight:600; line-height:1.3; text-transform:none; letter-spacing:normal; cursor:pointer; box-shadow:none; }
.hsp-picker .hsp-remove:hover, .hsp-picker .hsp-clear:hover { background:#eef2f6; color:#172033; }
.hsp-picker input:focus-visible, .hsp-picker button:focus-visible { outline:3px solid #155eef; outline-offset:3px; }
.hsp-picker [hidden] { display:none !important; }
@media (max-width:380px) { .hsp-picker { padding:.7rem; } .hsp-picker .hsp-item { grid-template-columns:52px minmax(0,1fr); gap:.5rem; } .hsp-picker .hsp-preview { width:52px; height:52px; } .hsp-picker .hsp-remove { grid-column:2; justify-self:start; } }
@media (forced-colors:active) { .hsp-picker .hsp-notice { border:1px solid CanvasText; } .hsp-picker input:focus-visible, .hsp-picker button:focus-visible { outline-color:Highlight; } }

[data-photo-picker-mount] .hsp-unavailable { margin:1rem 0; padding:.8rem 1rem; border:1px solid #cbd5e1; border-radius:8px; background:#f1f5f9; color:#334155; font-family:inherit; font-size:.875rem; line-height:1.5; text-align:left; }
