/* Photo Manager: scoped styles for desktop and mobile. */
.photo-toolbar{display:grid;grid-template-columns:minmax(180px,1fr) repeat(3,minmax(110px,auto));gap:10px;align-items:end;margin:18px 0}
.photo-control-label{display:flex;flex-direction:column;gap:5px;font-size:10px;color:var(--muted)}
.photo-toolbar .field{width:100%;font-size:12px}
.photo-controls{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin:8px 0}
.photo-controls .actions{margin-top:0}.photo-controls .btn{font-size:11px;padding:8px 12px}
.photo-count,.photo-small{font-size:11px;color:var(--muted)}
.photo-feedback{min-height:20px;color:#e5c18b;font-size:12px;overflow-wrap:anywhere}
.photo-workspace{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:18px;align-items:start}
.photo-gallery{min-width:0}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:13px}
.photo-card{position:relative;border:1px solid #7e9b9566;border-radius:12px;overflow:hidden;background:#15272c;min-width:0}
.photo-card.inspected{border-color:#e3ba77;box-shadow:0 0 0 1px #e3ba77}
.photo-card.selected{border-color:#f1c876;box-shadow:0 0 0 2px #e2b66b80}
.photo-thumb-button{width:100%;display:block;padding:0;border:0;background:#1d353b;cursor:pointer}
.photo-scene{width:100%;height:auto;display:block;aspect-ratio:4/3}
.photo-card-top{position:absolute;left:9px;right:9px;top:9px;display:flex;justify-content:space-between;pointer-events:none}
.photo-selection,.photo-favorite{pointer-events:auto}
.photo-selection{padding:4px;border-radius:5px;display:grid;place-items:center;background:#0d192dcc}
.photo-selection input{margin:0;width:16px;height:16px;accent-color:#c89b52}
.photo-favorite{width:30px;height:30px;display:grid;place-items:center;border:1px solid #c9d5df70;border-radius:50%;font-size:19px;background:#0d192dcc;color:#eee7db;padding:0}
.photo-favorite.on{color:#ffce77;border-color:#d6b172}
.photo-caption{padding:10px}.photo-caption strong{display:block;color:#f1e7d8;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.photo-caption small{display:block;color:#b8c5cd;font-size:10px;margin-top:5px;min-height:15px}
.photo-card-bottom{display:flex;justify-content:space-between;gap:4px;align-items:center;margin-top:9px}
.photo-text-button{border:0;background:transparent;color:#e0bd85;font-size:11px;padding:3px 0;text-align:left;cursor:pointer}
.photo-text-button:hover{text-decoration:underline;color:#ffda99}
.photo-review-badge{font-size:8px;border:1px solid #a5885c;border-radius:15px;padding:2px 5px;color:#e6ca9c}
.photo-details{position:sticky;top:98px;background:linear-gradient(140deg,#172b2ded,#102126f0);border:1px solid #7e9b9566;border-radius:14px;padding:16px;min-width:0;scroll-margin-top:145px}
.photo-details h2,.photo-empty h2,.photo-viewer-info h2{font:19px Georgia,serif;margin:0 0 14px}
.photo-details-heading{display:flex;justify-content:space-between;gap:8px;align-items:start}
.photo-details>.photo-scene{border-radius:9px;overflow:hidden;margin-bottom:10px}
.photo-details>.btn{width:100%;font-size:12px}
.photo-muted{color:var(--muted);font-size:12px;line-height:1.8}
.photo-metadata-form{display:grid;gap:12px;margin-top:15px}
.photo-metadata-form label{display:flex;flex-direction:column;font-size:11px;gap:5px;color:#c7d2d8}
.photo-metadata-form label small{font-size:9px;color:#adbcc7}.photo-metadata-form .field{width:100%;font-size:12px;padding:9px}
.photo-metadata-form .photo-check{flex-direction:row;align-items:center;gap:8px}.photo-check input{accent-color:#c89b52}
.photo-empty{background:#11282bcc;border:1px solid #57716a;border-radius:12px;padding:28px;text-align:center;color:var(--muted)}
.photo-viewer{position:fixed;inset:0;width:100%;height:100dvh;max-width:none;max-height:none;border:0;margin:0;padding:0;background:#07111d;color:var(--ink);border-radius:0;overflow:hidden}
.photo-viewer::backdrop{background:#07111dfa}.photo-viewer:fullscreen{width:100%;height:100%;max-width:none;max-height:none}
.photo-viewer-bar{display:flex;align-items:center;gap:9px;min-height:70px;padding:14px 20px;border-bottom:1px solid #b9a17044;background:#0d1b2c}
.photo-viewer-bar .btn{font-size:12px;padding:9px 12px}.photo-viewer-position{color:#bfccd5;font-size:11px;white-space:nowrap}
.photo-viewer-push{flex:1}.photo-viewer-body{height:calc(100% - 70px);display:grid;grid-template-columns:minmax(0,1fr)}
.photo-viewer-body.info-open{grid-template-columns:minmax(0,1fr) 300px}
.photo-viewer-stage{position:relative;display:flex;align-items:center;justify-content:center;min-width:0;min-height:0;padding:20px 76px 30px}
.photo-viewer-stage figure{width:min(100%,950px);margin:0;text-align:center;display:flex;flex-direction:column;align-items:center;max-height:100%}
.photo-viewer-stage .photo-scene{width:auto;height:auto;max-width:100%;max-height:calc(100dvh - 210px);aspect-ratio:4/3;border:1px solid #c2a47766;border-radius:10px}
.photo-viewer-stage figcaption h2{font:22px Georgia,serif;margin:18px 0 7px;overflow-wrap:anywhere}
.photo-viewer-stage figcaption p{color:#b8c5cf;font-size:11px;margin:0}
.photo-viewer-arrow{position:absolute;top:50%;transform:translateY(-50%);width:45px;height:45px;display:grid;place-items:center;border:1px solid #b9a07388;background:#182b3f;color:#f4e4bb;border-radius:50%;font-size:33px;padding:0 0 4px}
.photo-viewer-arrow.prev{left:16px}.photo-viewer-arrow.next{right:16px}
.photo-viewer-info{padding:24px 18px;overflow-y:auto;min-width:0;border-left:1px solid #b9a17044;background:#102033}
#photo-album-dialog label{display:grid;gap:8px;font-size:12px}
.photo-recent{padding:0;border:1px solid #c2a47466;border-radius:7px;overflow:hidden;background:#173045;color:#eee4d3;min-width:0}
.photo-recent span{display:block;padding:5px 3px;font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(min-width:851px){.photo-card{background:#0c1b2e}.photo-details{background:linear-gradient(140deg,#0b1b2fed,#091725f0)}}
@media(max-width:1100px){
 .photo-workspace{grid-template-columns:1fr}.photo-details{position:static;display:none;grid-row:1}.photo-details.has-photo{display:block}
 .photo-details.has-photo>.photo-scene{width:200px;max-width:100%}.photo-details.has-photo>.btn{width:auto}
 .photo-metadata-form{grid-template-columns:1fr 1fr}.photo-metadata-form .photo-small,.photo-metadata-form>.btn{grid-column:1/-1}
 .photo-viewer-info .photo-metadata-form{grid-template-columns:1fr}
 .photo-toolbar{grid-template-columns:1fr 1fr}.photo-toolbar>input{grid-column:1/-1}
 .photo-viewer-stage{padding-left:60px;padding-right:60px}
}
@media(max-width:700px){
 .photo-viewer-bar{padding:10px;gap:6px;flex-wrap:wrap;min-height:92px}.photo-viewer-bar .btn{padding:7px 9px;font-size:11px}
 .photo-viewer-body{height:calc(100% - 92px)}.photo-viewer-body.info-open{grid-template-columns:1fr;grid-template-rows:minmax(180px,44%) minmax(0,56%)}
 .photo-viewer-stage{padding:10px 44px 20px}.photo-viewer-stage .photo-scene{max-height:calc(100dvh - 240px)}
 .info-open .photo-viewer-stage .photo-scene{max-height:calc(40dvh - 90px)}
 .photo-viewer-stage figcaption h2{font-size:17px;margin-top:10px}.photo-viewer-stage figcaption p{font-size:9px}
 .photo-viewer-info{border-left:0;border-top:1px solid #b9a17044;padding:16px}
 .photo-viewer-arrow{width:31px;height:36px;font-size:29px}.photo-viewer-arrow.prev{left:6px}.photo-viewer-arrow.next{right:6px}
}
@media(max-width:450px){
 .photo-toolbar{grid-template-columns:1fr 1fr;gap:8px}.photo-toolbar>.photo-control-label:last-child{grid-column:1/-1}
 .photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.photo-caption{padding:8px}
 .photo-caption strong{font-size:11px}.photo-caption small{font-size:9px}.photo-review-badge{font-size:7px}
 .photo-controls .actions{gap:6px}.photo-controls .btn{font-size:10px;padding:8px 9px}
 .photo-metadata-form{grid-template-columns:1fr}
 .photo-details{scroll-margin-top:130px}
 .photo-manager .heading>.btn{font-size:11px;padding:8px 10px}
}

