/* CastSight AI Production Revision 13 — water-aware map, fast GPS, multi-photo catches, private fishing spots. */
:root { --r13-blue:#1d78bb; --r13-panel:rgba(3,24,43,.94); --r13-border:rgba(76,169,231,.26); }

.r13-gps-status { position:fixed; z-index:9999; right:18px; bottom:18px; max-width:min(420px,calc(100vw - 36px)); padding:11px 14px; border:1px solid var(--r13-border); border-radius:12px; background:rgba(4,25,44,.96); color:#fff; box-shadow:0 8px 30px rgba(0,0,0,.35); transition:.25s; }
.r13-gps-status.success { border-color:rgba(65,215,154,.5); }
.r13-gps-status.warning { border-color:rgba(232,182,68,.55); }
.r13-gps-status.hidden { opacity:0; transform:translateY(8px); pointer-events:none; }

[data-view="map"] .bite-map-panel { padding:0 !important; min-height:760px; overflow:hidden; }
#r11BiteMapRoot, #r12MapRecovery { display:none !important; }
.r13-bite-map-root { display:grid; grid-template-columns:300px minmax(520px,1fr) 330px; gap:14px; min-height:760px; padding:14px; border-radius:20px; background:rgba(2,18,33,.96); }
.r13-map-sidebar, .r13-map-details { min-width:0; border:1px solid var(--r13-border); border-radius:17px; background:rgba(4,27,48,.96); }
.r13-map-sidebar { display:flex; flex-direction:column; gap:11px; padding:16px; overflow:hidden; }
.r13-map-sidebar h2 { margin:4px 0 0; color:#fff; }
.r13-map-sidebar p { margin:0; color:#aec1d0; line-height:1.45; }
.r13-water-switch { display:grid; grid-template-columns:1fr 1fr; gap:7px; padding:4px; border-radius:13px; background:#061725; }
.r13-water-switch button { min-height:42px; border:0; border-radius:10px; background:transparent; color:#a9bdcc; font-weight:850; cursor:pointer; }
.r13-water-switch button.active { background:#176db7; color:#fff; box-shadow:0 0 0 1px rgba(94,193,255,.3) inset; }
#r13MapSearch { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:7px; }
#r13MapSearch input, .r13-map-selects select { width:100%; min-width:0; min-height:43px; padding:0 11px; border:1px solid var(--r13-border); border-radius:11px; background:#061724; color:#fff; }
#r13MapSearch button, .r13-map-selects button, #r13AddSpot { min-height:43px; padding:0 12px; border:1px solid #429fe0; border-radius:11px; background:#176db7; color:#fff; font-weight:850; cursor:pointer; }
.r13-map-selects { display:grid; grid-template-columns:1fr 1fr; gap:7px; }
.r13-layer { width:100%; padding:11px 12px; border:1px solid #286f9f; border-radius:12px; background:#0e3859; color:#fff; text-align:left; cursor:pointer; }
.r13-layer strong, .r13-layer span { display:block; }
.r13-layer span { margin-top:3px; color:#aec1d0; font-size:.8rem; }
.r13-layer.active { background:#176db7; border-color:#52b2ef; }
.r13-check { display:flex; align-items:center; gap:8px; color:#d4e1ea; font-size:.84rem; }
.r13-check input { width:18px; height:18px; }
.r13-spot-layers { display:grid; grid-template-columns:1fr 1fr; gap:7px; padding:11px; border:1px solid rgba(78,172,232,.2); border-radius:13px; background:rgba(8,42,70,.72); }
.r13-spot-layers > strong, .r13-spot-layers > button { grid-column:1/-1; }
.r13-spot-layers label { color:#c2d2de; font-size:.8rem; }
.r13-map-status { min-height:34px; padding:8px 10px; border-radius:10px; background:rgba(13,57,91,.66); color:#bcd0de; font-size:.78rem; }
.r13-beach-list { display:grid; gap:7px; min-height:0; overflow:auto; padding-right:3px; }
.r13-beach-list button { display:flex; align-items:center; justify-content:space-between; gap:8px; width:100%; padding:10px 11px; border:1px solid rgba(74,164,224,.22); border-radius:12px; background:#0a2d49; color:#fff; text-align:left; cursor:pointer; }
.r13-beach-list button span, .r13-beach-list button strong, .r13-beach-list button small { display:block; min-width:0; }
.r13-beach-list button small { margin-top:3px; color:#a9bdcb; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.r13-beach-list button.selected { background:#176db7; border-color:#65bcf2; }
.r13-beach-list button.fishing { box-shadow:inset 4px 0 #2ad18a; }
.r13-beach-list button.dimmed { opacity:.48; }
.r13-map-stage { position:relative; min-height:730px; overflow:hidden; border:1px solid var(--r13-border); border-radius:17px; background:#dfe6ea; }
#r13LeafletMap { position:absolute; inset:0; width:100%; height:100%; min-height:730px; }
.r13-heat-legend { position:absolute; z-index:600; left:16px; bottom:16px; width:205px; padding:10px 12px; border-radius:12px; background:rgba(3,22,40,.9); color:#fff; }
.r13-heat-legend i { display:block; height:9px; margin:7px 0 4px; border-radius:999px; background:linear-gradient(90deg,#267ec0,#36c2af,#ffd74a,#eb6530,#c82a2a); }
.r13-heat-legend span { display:flex; justify-content:space-between; color:#aac0cf; font-size:.74rem; }
.r13-heat-legend em { font-style:normal; }
.r13-score-marker, .r13-spot-marker { background:transparent !important; border:0 !important; }
.r13-score-marker span { display:grid; place-items:center; width:35px; height:35px; border:3px solid #fff; border-radius:50% 50% 50% 0; transform:rotate(-45deg); background:var(--marker); color:#fff; font-weight:900; box-shadow:0 4px 13px rgba(0,0,0,.4); }
.r13-score-marker b { transform:rotate(45deg); }
.r13-spot-marker span { display:grid; place-items:center; width:34px; height:34px; border:2px solid #fff; border-radius:50%; background:#173e60; box-shadow:0 4px 13px rgba(0,0,0,.35); font-size:16px; }
.r13-map-details { padding:16px; overflow:auto; max-height:730px; }
.r13-map-details h2 { margin:7px 0 10px; color:#fff; font-size:clamp(1.6rem,2vw,2.15rem); }
.r13-score { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:13px; border-radius:13px; background:#123f64; }
.r13-score strong { color:#fff; font-size:1.45rem; }
.r13-score span { color:#afc2d1; }
.r13-detail-block { padding:13px 0; border-bottom:1px solid rgba(142,184,213,.17); }
.r13-detail-block > span { display:block; margin-bottom:7px; color:#8ea8bb; font-size:.74rem; text-transform:uppercase; letter-spacing:.05em; }
.r13-detail-block div { display:flex; justify-content:space-between; gap:10px; margin:6px 0; padding:8px 9px; border-radius:9px; background:rgba(19,64,98,.62); color:#fff; }
.r13-detail-block small, .r13-detail-block p, .r13-detail-block em { color:#b3c5d2; }
.r13-live { display:grid; grid-template-columns:1fr 1fr; gap:7px; padding:13px 0; }
.r13-live div { padding:9px; border-radius:10px; background:#123f64; }
.r13-live span { display:block; color:#8ea8bb; font-size:.7rem; text-transform:uppercase; }
.r13-live strong { display:block; margin-top:3px; color:#fff; }
.r13-actions { display:flex; flex-wrap:wrap; gap:7px; padding-top:14px; }
.r13-actions button, .r13-actions a { min-height:41px; padding:0 12px; display:grid; place-items:center; border:1px solid #3f9edc; border-radius:999px; background:#176db7; color:#fff; font-weight:850; text-decoration:none; cursor:pointer; }
.r13-actions .danger { background:#5b1f2a; border-color:#a84c5d; }
.r13-empty { min-height:130px; display:grid; place-items:center; text-align:center; color:#a9bdcc; }

/* Submit Catch — consistent grid and multi-photo privacy controls. */
[data-view="submit"] .submit-panel { max-width:1500px; margin-inline:auto; }
[data-view="submit"] #catchForm { grid-template-columns:minmax(320px,1.12fr) repeat(4,minmax(160px,.78fr)) !important; align-items:start; gap:14px 16px !important; }
[data-view="submit"] .catch-photo-field { grid-row:span 3; }
[data-view="submit"] .r13-length-field { min-width:210px; }
.r13-length-row { display:grid; grid-template-columns:minmax(78px,1fr) minmax(104px,.8fr); gap:7px; }
.r13-length-row input, .r13-length-row select { width:100%; min-width:0; }
.r13-ai-estimate { display:flex !important; align-items:center; gap:7px; margin-top:8px; color:#b8cad7 !important; font-size:.8rem; }
.r13-ai-estimate input { width:18px !important; height:18px; }
.r13-face-field { grid-column:2 / -2; }
.r13-face-field select { width:100%; }
.r13-face-field button { margin-top:8px; }
#facePrivacyStatus { margin-top:6px; color:#9fb5c5; font-size:.78rem; }
.r13-catch-preview { position:relative; overflow:hidden; border-radius:12px; }
.r13-catch-preview img { width:100%; height:100px; object-fit:cover; }
.r13-catch-preview > span { position:absolute; top:6px; left:6px; width:24px; height:24px; display:grid; place-items:center; border-radius:50%; background:rgba(5,24,41,.85); color:#fff; font-weight:850; }
.r13-catch-preview small { display:block; padding:5px; color:#d6e1e9; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.r13-face-preview, .r13-spot-dialog { width:min(900px,calc(100vw - 28px)); max-height:90vh; overflow:auto; padding:18px; border:1px solid var(--r13-border); border-radius:18px; background:#061b2f; color:#fff; }
.r13-face-preview::backdrop, .r13-spot-dialog::backdrop { background:rgba(0,7,14,.75); backdrop-filter:blur(3px); }
.r13-dialog-head { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; }
.r13-dialog-head h2 { margin:0; color:#fff; }
.r13-dialog-head button { width:38px; height:38px; border:1px solid #448fc1; border-radius:50%; background:#103a5a; color:#fff; font-size:1.4rem; }
#r13FacePreviewGrid { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:10px; margin:14px 0; }
#r13FacePreviewGrid img { width:100%; height:220px; object-fit:cover; border-radius:12px; }
.r13-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:11px; margin-top:15px; }
.r13-form-grid label { display:grid; gap:6px; color:#d5e1e9; font-weight:750; }
.r13-form-grid input, .r13-form-grid select, .r13-form-grid textarea { width:100%; min-height:42px; padding:9px 10px; border:1px solid var(--r13-border); border-radius:10px; background:#041522; color:#fff; }
.r13-form-grid .wide { grid-column:1/-1; }
.r13-dialog-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:14px; }
.r13-dialog-actions button { min-height:42px; padding:0 15px; border:1px solid #3d91ca; border-radius:999px; background:#0d3553; color:#fff; }

/* Catch galleries. */
.r13-catch-card { display:grid !important; grid-template-columns:190px minmax(0,1fr) auto !important; gap:16px !important; align-items:start; }
.r13-gallery { position:relative; min-width:0; }
.r13-gallery > img, .r13-no-photo { width:190px; height:150px; object-fit:cover; border-radius:14px; background:#0c2b43; }
.r13-gallery .prev, .r13-gallery .next { position:absolute; top:57px; width:34px; height:34px; border:1px solid rgba(255,255,255,.7); border-radius:50%; background:rgba(2,20,35,.82); color:#fff; font-size:1.4rem; cursor:pointer; }
.r13-gallery .prev { left:7px; } .r13-gallery .next { right:7px; }
.r13-gallery .count { position:absolute; top:8px; right:8px; padding:4px 7px; border-radius:999px; background:rgba(2,20,35,.82); color:#fff; font-size:.72rem; }
.r13-gallery .thumbs { display:flex; gap:5px; margin-top:6px; overflow:auto; }
.r13-gallery .thumbs button { width:36px; height:30px; padding:0; border:2px solid transparent; border-radius:6px; overflow:hidden; background:none; }
.r13-gallery .thumbs button.active { border-color:#55b8f2; }
.r13-gallery .thumbs img { width:100%; height:100%; object-fit:cover; }
.r13-catch-copy { min-width:0; }
.r13-catch-copy > strong { color:#fff; font-size:1.05rem; }
.r13-catch-copy p, .r13-catch-copy small { color:#b4c6d2; }
.r13-report-actions { display:grid; gap:7px; min-width:110px; }
.r13-report-actions button { min-height:38px; border:1px solid #3f91c8; border-radius:10px; background:#0e3958; color:#fff; cursor:pointer; }
.r13-report-actions .danger { background:#5b1e29; border-color:#9f4a58; }

/* Admin spot moderation. */
#r13AdminSpotList { display:grid; gap:10px; }
.r13-admin-spot { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:13px; border:1px solid var(--r13-border); border-radius:13px; background:rgba(7,36,61,.85); }
.r13-admin-spot strong, .r13-admin-spot span, .r13-admin-spot small { display:block; }
.r13-admin-spot strong { color:#fff; }
.r13-admin-spot span, .r13-admin-spot small { color:#aec0cd; margin-top:3px; }
.r13-admin-spot > div:last-child { display:flex; flex-wrap:wrap; gap:6px; }
.r13-admin-spot button { min-height:36px; padding:0 10px; border:1px solid #3f91c8; border-radius:9px; background:#0e3958; color:#fff; }
.r13-admin-spot .danger { background:#5b1e29; border-color:#9f4a58; }

@media (max-width:1250px) {
  .r13-bite-map-root { grid-template-columns:280px minmax(480px,1fr); }
  .r13-map-details { grid-column:1/-1; max-height:none; }
  [data-view="submit"] #catchForm { grid-template-columns:minmax(300px,1fr) repeat(3,minmax(160px,1fr)) !important; }
  .r13-face-field { grid-column:2/-1; }
}
@media (max-width:820px) {
  .r13-bite-map-root { grid-template-columns:1fr; min-height:0; }
  .r13-map-stage, #r13LeafletMap { min-height:540px; }
  .r13-map-details { max-height:none; }
  [data-view="submit"] #catchForm { grid-template-columns:1fr !important; }
  [data-view="submit"] .catch-photo-field, .r13-face-field { grid-column:1; grid-row:auto; }
  .r13-catch-card { grid-template-columns:1fr !important; }
  .r13-gallery > img, .r13-no-photo { width:100%; height:240px; }
  .r13-report-actions { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .r13-form-grid { grid-template-columns:1fr; }
  .r13-form-grid .wide { grid-column:1; }
  .r13-admin-spot { align-items:flex-start; flex-direction:column; }
}
.r13-spot-photo-strip { display:flex; gap:7px; overflow:auto; margin:8px 0 12px; }
.r13-spot-photo-strip img { width:92px; height:78px; object-fit:cover; border-radius:10px; border:1px solid rgba(91,180,239,.25); }
