/* CastSight AI Production Revision 5 — unified visual system, real-map layout, and Tackle Studio */
:root {
  --r5-navy: #061525;
  --r5-panel: rgba(7, 24, 42, .91);
  --r5-panel-2: rgba(10, 31, 53, .88);
  --r5-line: rgba(127, 184, 238, .22);
  --r5-text: #eef7ff;
  --r5-muted: #9db2c7;
  --r5-blue: #3aa8ff;
  --r5-blue-dark: #1682d2;
  --r5-green: #55d59a;
  --r5-amber: #f0ba52;
  --r5-danger: #ff7979;
}

html.castsight-r5 body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -3;
  background: linear-gradient(rgba(3, 14, 26, .88), rgba(3, 14, 26, .94)), url("assets/welcome-beach.png") center/cover fixed no-repeat;
  filter: saturate(.78) contrast(.94);
}
html.castsight-r5 body::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -2;
  pointer-events: none;
  background: radial-gradient(circle at 62% 5%, rgba(34, 134, 214, .14), transparent 36%), linear-gradient(90deg, rgba(3, 13, 25, .28), transparent 40%, rgba(3, 13, 25, .18));
}

/* Only a true page title may use the title gradient. */
.castsight-r5 .panel h1,
.castsight-r5 .panel h2,
.castsight-r5 .panel h3,
.castsight-r5 .section-head h1,
.castsight-r5 .section-head h2,
.castsight-r5 .section-head h3,
.castsight-r5 .species-card h2,
.castsight-r5 .condition-card strong,
.castsight-r5 .source-card strong,
.castsight-r5 p,
.castsight-r5 strong,
.castsight-r5 span,
.castsight-r5 small,
.castsight-r5 label,
.castsight-r5 blockquote {
  -webkit-text-fill-color: initial !important;
  background-image: none !important;
  -webkit-background-clip: border-box !important;
  background-clip: border-box !important;
}
.castsight-r5 .page > .page-title h2,
.castsight-r5 .app-header #pageLabel {
  color: transparent !important;
  -webkit-text-fill-color: transparent !important;
  background: linear-gradient(100deg, #fff 0%, #f3f9ff 58%, #4baef3 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
}
.castsight-r5 .panel,
.castsight-r5 .beach-status-card,
.castsight-r5 .bite-map-panel {
  background: linear-gradient(145deg, rgba(9, 28, 48, .94), rgba(4, 17, 31, .91)) !important;
  border: 1px solid var(--r5-line) !important;
  box-shadow: 0 20px 48px rgba(0, 7, 16, .28), inset 0 1px rgba(255,255,255,.045) !important;
  backdrop-filter: blur(12px);
}
.castsight-r5 .panel h2,
.castsight-r5 .panel h3,
.castsight-r5 .panel strong { color: var(--r5-text) !important; }
.castsight-r5 .panel p,
.castsight-r5 .panel small,
.castsight-r5 .panel span:not(.eyebrow):not(.beach-status-pill) { color: var(--r5-muted) !important; }
.castsight-r5 .eyebrow { color: #77bdf1 !important; }

/* Navigation and access: no white pills, no unreadable dark values. */
.castsight-r5 .pr-nav-fact,
.castsight-r5 .beach-access-list > div {
  background: rgba(3, 15, 28, .55) !important;
  border-color: rgba(121, 178, 229, .16) !important;
}
.castsight-r5 .pr-nav-fact strong,
.castsight-r5 .beach-access-list strong { color: #f2f8ff !important; }
.castsight-r5 .pr-nav-buttons a,
.castsight-r5 .beach-access-list a,
.castsight-r5 .beach-status-actions button,
.castsight-r5 .secondary-action,
.castsight-r5 .ghost-action {
  background: rgba(8, 29, 51, .92) !important;
  border: 1px solid rgba(75, 167, 235, .35) !important;
  color: #e9f5ff !important;
  box-shadow: none !important;
}
.castsight-r5 .verify-signs,
.castsight-r5 .pr-sign-warning {
  background: rgba(88, 61, 16, .23) !important;
  color: #ffe7b0 !important;
  border-color: rgba(240, 186, 82, .34) !important;
}

/* Source cards resolve with readable statuses. */
.castsight-r5 .source-card strong { color: #fff !important; font-size: 1.05rem; }
.castsight-r5 .source-card strong:not(:empty)::before { content: "●"; color: var(--r5-green); margin-right: .45rem; font-size: .7rem; }

/* Nearby services */
.nearby-fishing-directory { margin-top: 24px; }
.nearby-tabs { display: flex; gap: 8px; flex-wrap: wrap; }
.nearby-tabs button { border: 1px solid var(--r5-line); background: rgba(2,14,27,.66); color: #c8d9e8; border-radius: 999px; padding: 9px 14px; cursor: pointer; }
.nearby-tabs button.active { color: #fff; border-color: rgba(58,168,255,.7); background: rgba(30,118,190,.28); }
.nearby-place-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(260px,1fr)); gap: 14px; }
.nearby-place-card { display: grid; grid-template-columns: 88px 1fr; gap: 14px; min-height: 126px; padding: 12px; border-radius: 16px; border: 1px solid var(--r5-line); background: rgba(3,15,29,.62); }
.nearby-place-card img,.nearby-place-icon { width: 88px; height: 100%; min-height: 100px; object-fit: cover; border-radius: 12px; background: rgba(32,108,169,.18); display:grid; place-items:center; font-size:2rem; }
.nearby-place-card div > span { display:block; font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; color:#67b7ef !important; }
.nearby-place-card div > strong { display:block; margin:4px 0; }
.nearby-place-card div > small { display:block; }
.nearby-place-card div > div { display:flex; gap:8px; flex-wrap:wrap; }
.nearby-place-card a { color:#9cd5ff; text-decoration:none; font-weight:700; }

/* Real Bite Map */
.castsight-r5 .map-layout { display:grid !important; grid-template-columns:minmax(0,1.65fr) minmax(320px,.75fr) !important; gap:16px; align-items:stretch; }
.castsight-r5 #coastMap.r5-real-google-map { min-height:680px !important; border-radius:20px; overflow:hidden; border:1px solid var(--r5-line); padding:0 !important; background:#d9e6ee !important; }
.r5-map-controls { display:flex; align-items:center; justify-content:space-between; gap:16px; grid-column:1/-1; padding:12px 14px; border:1px solid var(--r5-line); border-radius:16px; background:rgba(4,17,31,.84); }
.r5-map-controls > div { display:flex; gap:10px; }
.r5-map-controls button { display:flex; flex-direction:column; align-items:flex-start; min-width:190px; padding:11px 14px; border:1px solid rgba(96,156,211,.24); border-radius:13px; background:rgba(12,35,58,.7); cursor:pointer; }
.r5-map-controls button strong { color:#fff !important; }
.r5-map-controls button span { font-size:.75rem; color:#9db2c7 !important; }
.r5-map-controls button.active { border-color:#4db1fa; background:rgba(36,126,196,.28); box-shadow:inset 0 0 0 1px rgba(79,176,247,.2); }
.r5-map-controls > small { max-width:420px; }
.r5-map-detail { height:100%; padding:20px; border:1px solid var(--r5-line); border-radius:20px; background:linear-gradient(160deg,rgba(10,32,54,.96),rgba(3,15,28,.96)); }
.r5-opportunity { padding:14px; border-radius:15px; background:rgba(23,72,108,.3); border:1px solid rgba(87,164,218,.2); }
.r5-opportunity > span,.r5-opportunity > small { display:block; }
.r5-opportunity > strong { display:block; font-size:1.7rem; margin:3px 0; }
.r5-map-fact { padding:14px 0; border-bottom:1px solid rgba(120,173,219,.13); }
.r5-map-fact > span,.r5-map-fact > strong,.r5-map-fact > small { display:block; }
.r5-map-fact > span { text-transform:uppercase; letter-spacing:.08em; font-size:.7rem; color:#6bbaf2 !important; }
.r5-map-fact > strong { margin:5px 0; line-height:1.4; }
#biteMapParking { display:grid; gap:8px; margin-top:8px; }
#biteMapParking a { display:flex; flex-direction:column; padding:9px 10px; border-radius:10px; background:rgba(255,255,255,.04); text-decoration:none; }
#biteMapParking a strong { font-size:.88rem; }
#biteMapParking a span { font-size:.73rem; }
.r5-map-actions { display:flex; gap:10px; padding-top:17px; }
.r5-map-fallback { min-height:500px; display:grid; place-items:center; padding:30px; text-align:center; }
.r5-map-empty { padding:28px; text-align:center; }

/* Submit catch review */
.catch-review-actions { margin-top:22px; display:flex; gap:10px; align-items:center; flex-wrap:wrap; padding:18px; border-radius:17px; border:1px solid rgba(75,174,242,.28); background:linear-gradient(135deg,rgba(13,51,80,.62),rgba(4,20,36,.7)); }
.catch-review-actions > div { flex:1 1 100%; }
.catch-review-actions .danger-action { border:1px solid rgba(255,121,121,.4); background:rgba(110,24,31,.36); color:#ffd5d5; border-radius:12px; padding:11px 15px; cursor:pointer; }

/* AI Coach */
.castsight-r5 .coach-layout { max-width:1500px; margin-inline:auto; grid-template-columns:minmax(360px,.8fr) minmax(520px,1.2fr) !important; }
.castsight-r5 .chat-message.ai small { display:block; margin-top:9px; color:#6faed9 !important; }
.castsight-r5 .surf-frame-toolbar button.active { background:#207fbe !important; color:#fff !important; }
.castsight-r5 .surf-video-result span { display:block; margin-top:8px; padding:8px 10px; border-left:3px solid rgba(65,171,239,.65); background:rgba(7,28,48,.5); }

/* Tackle Box Studio */
.castsight-r5 .gear-layout { max-width:1600px; }
.castsight-r5 .gear-form { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.castsight-r5 .gear-form > .gear-media-field,
.castsight-r5 .gear-form > .gear-type-options,
.castsight-r5 .gear-form > .gear-relationship-fields,
.castsight-r5 .gear-form > .gear-autofill-review,
.castsight-r5 .gear-form > button { grid-column:1/-1; }
.castsight-r5 .gear-form input,
.castsight-r5 .gear-form select,
.castsight-r5 .gear-form textarea,
.source-hub-form input,.source-hub-form select {
  color:#eef7ff !important;
  background:rgba(3,15,28,.72) !important;
  border:1px solid rgba(111,171,224,.25) !important;
}
.castsight-r5 .gear-form option,.source-hub-form option { color:#071727; background:#eef6fd; }
.gear-options-head { display:flex; justify-content:space-between; gap:12px; align-items:center; grid-column:1/-1; }
#gearRequiredStatus { font-size:.75rem; color:#ffb6a7 !important; }
#gearRequiredStatus.is-ready { color:#70dda8 !important; }
.special-spec-field { grid-column:1/-1; padding:16px; border:1px solid var(--r5-line); border-radius:15px; background:rgba(3,15,28,.45); }
.special-spec-field legend { padding:0 8px; color:#fff; font-weight:800; }
.unit-mode-switch { display:flex; gap:18px; margin-bottom:12px; }
.rod-length-imperial,.rod-length-metric,.inline-number-unit { display:flex; align-items:center; gap:8px; }
.rod-length-imperial input,.rod-length-metric input,.inline-number-unit input { max-width:160px; }
.reel-capacity-field > p { margin-top:0; }
#reelCapacityRows { display:grid; gap:9px; }
.reel-capacity-row { display:grid; grid-template-columns:1.2fr .8fr .55fr .8fr .55fr .8fr .55fr auto; gap:7px; align-items:center; }
.capacity-remove { width:38px; height:38px; border-radius:10px; border:1px solid rgba(255,120,120,.35); color:#ffbcbc; background:rgba(100,23,29,.3); }
.gear-relationship-fields { grid-column:1/-1; padding:16px; border-radius:15px; border:1px solid rgba(87,170,229,.2); background:rgba(8,31,52,.5); }
.relationship-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.gear-media-field { padding:16px; border-radius:16px; border:1px dashed rgba(91,175,233,.38); background:rgba(5,21,37,.5); }
.gear-media-head { display:flex; justify-content:space-between; gap:14px; align-items:center; margin-bottom:12px; }
.gear-media-head strong,.gear-media-head small { display:block; }
.gear-photo-strip { display:flex; gap:10px; overflow-x:auto; padding:10px 0 2px; min-height:88px; }
.gear-photo-draft { position:relative; flex:0 0 118px; margin:0; padding:5px; border-radius:13px; border:1px solid var(--r5-line); background:rgba(2,12,23,.72); }
.gear-photo-draft.is-cover { border-color:#43aef5; box-shadow:0 0 0 1px rgba(67,174,245,.25); }
.gear-photo-draft img { width:108px; height:84px; object-fit:cover; border-radius:9px; }
.gear-photo-draft figcaption { font-size:.7rem; padding:4px; }
.gear-photo-actions { position:absolute; top:7px; right:7px; display:flex; gap:3px; flex-wrap:wrap; max-width:80px; justify-content:flex-end; }
.gear-photo-actions button { width:23px; height:23px; padding:0; border:0; border-radius:7px; background:rgba(3,14,26,.84); color:#fff; cursor:pointer; }
.gear-identification-results { margin-top:12px; padding:13px; border-radius:13px; background:rgba(3,15,28,.7); }
.gear-match-candidate { display:flex; flex-direction:column; width:100%; text-align:left; margin:6px 0; padding:10px; border-radius:10px; border:1px solid rgba(82,163,220,.2); background:rgba(19,61,91,.3); color:#fff; }
.gear-library-toolbar { display:grid !important; grid-template-columns:1fr 180px 160px; gap:10px; margin:18px 0 12px; }
.r5-gear-card { cursor:default; border:1px solid rgba(107,169,222,.17) !important; background:rgba(4,17,30,.58) !important; }
.r5-gear-card .gear-item-main em { display:block; margin-top:7px; color:#7dd3aa; font-style:normal; font-size:.78rem; }
.r5-gear-card .gear-item-actions { display:flex; gap:6px; flex-wrap:wrap; }
.r5-gear-card .gear-item-actions button { border:1px solid rgba(94,166,220,.25); background:rgba(8,31,51,.78); color:#eaf7ff; border-radius:9px; padding:8px 10px; cursor:pointer; }
.gear-empty-state { padding:25px; text-align:center; border:1px dashed var(--r5-line); border-radius:15px; }
.gear-empty-state strong,.gear-empty-state span { display:block; }

.gear-detail-modal { width:min(1180px,94vw); max-height:92vh; padding:0; border:1px solid rgba(101,181,236,.3); border-radius:22px; background:#061728; color:#eef7ff; box-shadow:0 30px 90px rgba(0,0,0,.62); }
.gear-detail-modal::backdrop { background:rgba(0,7,14,.78); backdrop-filter:blur(7px); }
.gear-detail-shell { position:relative; display:grid; grid-template-columns:minmax(360px,1fr) minmax(360px,.9fr); gap:24px; padding:24px; }
.gear-modal-close { position:absolute; z-index:2; top:12px; right:12px; width:38px; height:38px; border-radius:50%; border:1px solid rgba(255,255,255,.15); background:rgba(2,12,22,.82); color:#fff; font-size:1.4rem; }
.gear-detail-gallery > img { width:100%; aspect-ratio:4/3; object-fit:contain; border-radius:16px; background:#020b13; }
.gear-detail-gallery > div { display:flex; gap:8px; margin-top:10px; overflow-x:auto; }
.gear-detail-gallery > div button { flex:0 0 88px; border:1px solid var(--r5-line); border-radius:10px; padding:3px; background:rgba(4,17,29,.8); }
.gear-detail-gallery > div img { width:80px; height:64px; object-fit:cover; border-radius:7px; }
.gear-detail-copy h2 { font-size:2rem; margin:.25em 0; }
.gear-detail-specs { display:grid; gap:7px; margin:18px 0; }
.gear-detail-specs > div { display:flex; justify-content:space-between; gap:18px; padding:9px 0; border-bottom:1px solid rgba(110,169,218,.13); }
.gear-detail-specs > div span { text-transform:capitalize; color:#94abc0 !important; }
.gear-detail-links,.gear-detail-actions { display:flex; gap:10px; flex-wrap:wrap; margin-top:16px; }
.gear-detail-links a { padding:10px 13px; border-radius:10px; border:1px solid rgba(71,166,230,.3); color:#9cd8ff; text-decoration:none; }

/* Owner Source Hub */
.source-hub-form { display:grid; grid-template-columns:1.1fr 1.4fr 1fr .8fr .8fr auto; gap:9px; }
#sourceHubList { display:grid; gap:9px; margin-top:16px; }
#sourceHubList article { display:flex; align-items:center; gap:12px; padding:12px; border:1px solid var(--r5-line); border-radius:13px; background:rgba(4,17,30,.55); }
#sourceHubList article > div { flex:1; }
#sourceHubList article span,#sourceHubList article strong,#sourceHubList article small { display:block; }
#sourceHubList article a,#sourceHubList article button { padding:8px 10px; border-radius:9px; border:1px solid rgba(75,164,226,.28); background:rgba(9,35,57,.7); color:#dff2ff; text-decoration:none; }

@media (max-width: 1050px) {
  .castsight-r5 .map-layout,.castsight-r5 .coach-layout,.gear-detail-shell { grid-template-columns:1fr !important; }
  .castsight-r5 #coastMap.r5-real-google-map { min-height:520px !important; }
  .source-hub-form { grid-template-columns:1fr 1fr; }
  .reel-capacity-row { grid-template-columns:repeat(4,1fr); }
}
@media (max-width: 720px) {
  .castsight-r5 .gear-form,.relationship-grid,.gear-library-toolbar,.source-hub-form { grid-template-columns:1fr !important; }
  .r5-map-controls { align-items:stretch; flex-direction:column; }
  .r5-map-controls > div { flex-direction:column; }
  .r5-map-controls button { min-width:0; width:100%; }
  .castsight-r5 #coastMap.r5-real-google-map { min-height:440px !important; }
  .reel-capacity-row { grid-template-columns:1fr 1fr; }
  .gear-detail-shell { padding:16px; }
  .nearby-place-card { grid-template-columns:72px 1fr; }
  .nearby-place-card img,.nearby-place-icon { width:72px; }
}
