:root {
  --pr-navy: #07182b;
  --pr-blue: #075fb8;
  --pr-blue-deep: #034a91;
  --pr-border: rgba(20, 72, 124, .16);
}

.home-hero-v2::after {
  background: linear-gradient(118deg, rgba(255,255,255,.98) 0%, rgba(225,241,255,.96) 44%, rgba(17,109,194,.9) 100%) !important;
}
.page-title h2, .app-header h1 {
  background: linear-gradient(90deg, #fff 0%, #cfeaff 28%, #1685dd 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.astronomy-panel { margin-bottom: 1.25rem; }
.astronomy-head { display:flex; justify-content:space-between; gap:1rem; align-items:flex-start; }
.astronomy-status { padding:.5rem .8rem; border-radius:999px; background:#e9f5ff; color:#07569f; font-weight:800; white-space:nowrap; }
.astronomy-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:.75rem; margin-top:1rem; }
.astronomy-grid > div { padding:1rem; border:1px solid var(--pr-border); border-radius:16px; background:linear-gradient(180deg,#fff,#f4f9fd); min-width:0; }
.astronomy-grid span,.astronomy-grid small { display:block; color:#64748b; }
.astronomy-grid strong { display:block; margin:.4rem 0; color:var(--pr-navy); font-size:1.18rem; }

.pr-nav-fact { display:grid; grid-template-columns:110px 1fr auto; gap:.6rem; align-items:start; padding:.7rem 0; border-bottom:1px solid rgba(15,45,75,.1); }
.pr-nav-fact span { color:#64748b; font-size:.78rem; text-transform:uppercase; letter-spacing:.04em; }
.pr-nav-fact strong { font-size:.92rem; color:var(--pr-navy); line-height:1.35; }
.pr-nav-fact button { border:0; background:#e8f3ff; color:#075da9; border-radius:8px; padding:.35rem .55rem; cursor:pointer; }
.pr-map-links { display:flex; flex-wrap:wrap; gap:.55rem; margin-top:.9rem; }
.pr-map-links a,.fish-id-regulations a { text-decoration:none; font-weight:800; background:#eaf5ff; color:#075ba6; border:1px solid #bcdcf8; border-radius:10px; padding:.55rem .75rem; }
.verify-local-signs { margin-top:.8rem; border:1px solid #efcf7b; background:#fff9e9; border-radius:12px; padding:.7rem .85rem; }
.verify-local-signs summary { font-weight:800; cursor:pointer; color:#6e4d00; }
.verify-local-signs p { margin:.55rem 0 0; color:#624f24; font-size:.86rem; }

.beach-status-card.photo-loaded { position:relative; overflow:hidden; isolation:isolate; }
.beach-status-card.photo-loaded::before { content:""; position:absolute; inset:0; z-index:-2; background-image:linear-gradient(90deg,rgba(4,20,38,.93),rgba(4,20,38,.72),rgba(4,20,38,.36)),var(--pr-place-photo); background-size:cover; background-position:center; }
.beach-status-card.photo-loaded::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,transparent,rgba(3,20,38,.25)); }
.beach-status-card.photo-loaded h2,.beach-status-card.photo-loaded p,.beach-status-card.photo-loaded strong,.beach-status-card.photo-loaded span { color:#fff; }
.pr-photo-attribution { display:block; margin-top:.6rem; color:rgba(255,255,255,.82); font-size:.7rem; }

.fish-id-loading,.fish-id-warning { display:flex; flex-direction:column; gap:.35rem; padding:1rem; border-radius:14px; }
.fish-id-loading { background:#eef7ff; color:#064f91; }
.fish-id-warning { background:#fff7df; border:1px solid #efd387; color:#6e5000; }
.fish-id-header { display:flex; justify-content:space-between; gap:1rem; align-items:flex-start; padding:1.1rem; border-radius:16px; margin-bottom:1rem; }
.fish-id-header.google-active { background:linear-gradient(135deg,#062b50,#0968bb); color:#fff; }
.fish-id-header.regional-only { background:#f5f8fb; border:1px solid var(--pr-border); }
.fish-id-header h2 { margin:.25rem 0; }
.fish-id-header em { font-weight:500; }
.fish-id-candidates { display:grid; gap:.65rem; margin:1rem 0; }
.fish-id-candidates article { display:grid; grid-template-columns:1fr auto; gap:.45rem 1rem; padding:.9rem 1rem; border:1px solid var(--pr-border); border-radius:14px; background:#fff; }
.fish-id-candidates article.top { border-color:#52a7e9; box-shadow:0 10px 25px rgba(7,95,184,.1); }
.fish-id-candidates article div { display:flex; flex-direction:column; }
.fish-id-candidates article p,.fish-id-candidates article small { grid-column:1/-1; margin:0; }
.fish-id-candidates article b { font-size:1.25rem; color:#075da9; }
.fish-id-detail-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; }
.fish-id-detail-grid section { padding:1rem; border-radius:14px; background:#f6f9fc; border:1px solid var(--pr-border); }
.fish-id-detail-grid ul { padding-left:1.1rem; margin:.55rem 0 0; }
.fish-id-regulations { margin-top:1rem; padding:1rem; border-radius:14px; background:#fff7e8; border:1px solid #f0cf85; }
.fish-id-regulations a { display:inline-flex; margin:.3rem .4rem 0 0; }
.visual-evidence { display:flex; flex-wrap:wrap; gap:.4rem; margin-top:.6rem; }
.visual-evidence span { padding:.35rem .55rem; border-radius:999px; background:#eef4f8; font-size:.78rem; }
.visual-evidence small { color:#64748b; }

.regional-species-panel { margin:1rem 0; }
.regional-species-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:.7rem; }
.regional-species-grid article { display:flex; flex-direction:column; padding:.85rem; border:1px solid var(--pr-border); background:linear-gradient(180deg,#fff,#f6faff); border-radius:14px; min-width:0; }
.regional-species-grid strong { color:var(--pr-navy); }
.regional-species-grid em { color:#64748b; font-size:.75rem; margin:.2rem 0 .45rem; }
.regional-species-grid span { color:#075da9; font-weight:800; font-size:.8rem; }
.regional-species-grid small { margin-top:.35rem; color:#64748b; }

.pr-map-layout { display:grid !important; grid-template-columns:240px minmax(0,1fr) 340px !important; gap:1rem !important; align-items:start; }
.pr-map-sidebar { border:1px solid var(--pr-border); background:#fff; border-radius:18px; padding:1rem; position:sticky; top:1rem; max-height:78vh; overflow:auto; }
.pr-map-sidebar h3 { margin:.25rem 0; }
.pr-map-sidebar p { color:#64748b; font-size:.82rem; }
.pr-map-filter { margin:1rem 0; display:flex; flex-direction:column; gap:.35rem; }
.pr-map-filter > strong { font-size:.78rem; text-transform:uppercase; color:#64748b; letter-spacing:.05em; }
.pr-map-filter button,.pr-map-list button { border:1px solid #d8e4ef; background:#f8fbfd; border-radius:10px; padding:.55rem .65rem; text-align:left; color:#18334c; cursor:pointer; }
.pr-map-filter button.active,.pr-map-list button.active { background:#075fae; border-color:#075fae; color:#fff; }
.pr-map-filter button small { display:block; opacity:.75; margin-top:.2rem; }
.pr-map-list { display:flex; flex-direction:column; gap:.35rem; }
.pr-map-list button { display:flex; justify-content:space-between; gap:.4rem; }
.coast-map { min-height:650px !important; padding:0 !important; overflow:hidden; border-radius:20px !important; position:relative; }
.pr-map-canvas { position:relative; min-height:650px; height:100%; background:linear-gradient(145deg,#e9ece9,#f7f6ed); overflow:hidden; }
.pr-map-water { position:absolute; right:-10%; top:-10%; width:47%; height:125%; background:linear-gradient(160deg,#83c9ee,#5ca9d9); transform:rotate(-7deg); border-left:6px solid rgba(255,255,255,.75); }
.pr-map-road { position:absolute; height:9px; background:#fff; border:2px solid #d8d5c7; border-radius:999px; transform-origin:left center; opacity:.9; }
.road-one { width:85%; left:4%; top:42%; transform:rotate(-13deg); }
.road-two { width:75%; left:12%; top:66%; transform:rotate(8deg); }
.pr-heat-layer { position:absolute; inset:0; pointer-events:none; }
.pr-heat-layer i { position:absolute; width:170px; height:170px; transform:translate(-50%,-50%); border-radius:50%; background:radial-gradient(circle,rgba(255,56,40,calc(var(--strength)*.45)) 0%,rgba(255,180,30,calc(var(--strength)*.24)) 40%,transparent 72%); filter:blur(4px); }
.pr-map-pins { position:absolute; inset:0; }
.pr-map-pin { position:absolute; transform:translate(-50%,-50%); z-index:4; border:0; background:transparent; cursor:pointer; min-width:42px; }
.pr-map-pin b { display:grid; place-items:center; width:42px; height:42px; margin:auto; border-radius:50% 50% 50% 8px; transform:rotate(-45deg); background:#6b7280; color:#fff; border:3px solid #fff; box-shadow:0 5px 15px rgba(0,0,0,.25); }
.pr-map-pin b::first-line { transform:rotate(45deg); }
.pr-map-pin[data-tier="hot"] b { background:#e53b32; }
.pr-map-pin[data-tier="good"] b { background:#f59e0b; }
.pr-map-pin[data-tier="fair"] b { background:#1f9c69; }
.pr-map-pin[data-tier="watch"] b { background:#64748b; }
.pr-map-pin span { display:block; max-width:130px; margin:.3rem auto 0; padding:.2rem .4rem; background:rgba(255,255,255,.94); border-radius:6px; font-size:.7rem; font-weight:800; color:#14304a; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pr-map-pin em { display:block; width:max-content; margin:.2rem auto 0; background:#063; color:#fff; border-radius:999px; padding:.15rem .45rem; font-size:.65rem; font-style:normal; }
.pr-map-pin.fishing-now b { animation:prPulse 1.7s infinite; }
.pr-map-pin.selected { z-index:8; scale:1.12; }
.pr-map-pin.selected span { background:#052d53; color:#fff; }
@keyframes prPulse { 0%,100%{box-shadow:0 0 0 0 rgba(0,150,90,.4),0 5px 15px rgba(0,0,0,.25)} 50%{box-shadow:0 0 0 14px rgba(0,150,90,0),0 5px 15px rgba(0,0,0,.25)} }
.pr-map-legend { position:absolute; left:1rem; bottom:1rem; display:flex; flex-wrap:wrap; gap:.35rem; padding:.55rem; background:rgba(255,255,255,.94); border-radius:12px; box-shadow:0 8px 20px rgba(0,0,0,.12); }
.pr-map-legend span { display:flex; align-items:center; gap:.25rem; font-size:.68rem; }
.pr-map-legend i { width:9px; height:9px; border-radius:50%; background:#64748b; }
.pr-map-legend i[data-tier="hot"]{background:#e53b32}.pr-map-legend i[data-tier="good"]{background:#f59e0b}.pr-map-legend i[data-tier="fair"]{background:#1f9c69}
.pr-map-empty { display:grid; place-items:center; align-content:center; gap:.5rem; min-height:600px; text-align:center; padding:2rem; background:#f4f8fb; }
.pr-map-score { display:flex; justify-content:space-between; align-items:center; }
.pr-map-score strong { font-size:2.3rem; }
.pr-place-photo { min-height:190px; position:relative; overflow:hidden; background-image:linear-gradient(180deg,rgba(2,18,35,.1),rgba(2,18,35,.88)),var(--pr-place-photo,url('assets/welcome-beach.png')); background-size:cover; background-position:center; color:#fff; display:flex; align-items:flex-end; }
.pr-place-photo > div { position:relative; z-index:1; }
.pr-place-photo .pr-photo-attribution { position:absolute; right:.7rem; bottom:.5rem; }

.gear-library-toolbar { display:grid; grid-template-columns:1fr 180px 160px; gap:.55rem; margin:1rem 0; }
.gear-library-toolbar input,.gear-library-toolbar select { width:100%; }
.pr-gear-card { display:grid !important; grid-template-columns:64px minmax(0,1fr) auto; }
.pr-inline-gear-form { grid-column:1/-1; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.6rem; margin-top:.8rem; padding:.9rem; border-radius:14px; background:#f4f8fb; }
.pr-inline-gear-form label { display:flex; flex-direction:column; gap:.25rem; font-size:.75rem; color:#526579; }
.pr-inline-gear-form input { width:100%; }
.pr-inline-gear-form .wide { grid-column:1/-1; }
.pr-inline-actions { display:flex; gap:.5rem; }
.gear-empty-filter { text-align:center; padding:2rem; border:1px dashed #b9c9d8; border-radius:14px; }

.species-hub-toolbar { display:grid; grid-template-columns:1fr 220px; gap:.6rem; margin-bottom:1rem; }
.species-hub-head { display:flex; justify-content:space-between; gap:1rem; }
.species-hub-list { display:grid; gap:.55rem; max-height:620px; overflow:auto; }
.species-hub-list article { display:flex; justify-content:space-between; gap:1rem; padding:.8rem; border:1px solid var(--pr-border); border-radius:12px; }
.species-hub-list article > div { display:flex; flex-direction:column; gap:.15rem; }
.species-hub-list em,.species-hub-list span,.species-hub-list small { color:#64748b; font-size:.78rem; }
.species-hub-list button { border:0; background:#e9f4ff; color:#075ca7; border-radius:8px; padding:.4rem .65rem; cursor:pointer; }
.pr-species-dialog { position:fixed; inset:0; z-index:9999; display:grid; place-items:center; }
.pr-dialog-backdrop { position:absolute; inset:0; background:rgba(1,15,28,.72); }
.pr-species-editor { position:relative; z-index:1; width:min(820px,92vw); max-height:88vh; overflow:auto; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.7rem; padding:1.2rem; border-radius:20px; background:#fff; box-shadow:0 25px 70px rgba(0,0,0,.35); }
.pr-species-editor header { grid-column:1/-1; display:flex; justify-content:space-between; }
.pr-species-editor label { display:flex; flex-direction:column; gap:.3rem; color:#526579; font-size:.8rem; }
.pr-species-editor .wide { grid-column:1/-1; }
.pr-species-editor textarea { min-height:90px; }

.surf-frame-workspace { margin:1rem 0; }
.surf-frame-toolbar { display:flex; flex-wrap:wrap; gap:.4rem; margin-bottom:.6rem; }
.surf-frame-toolbar button,.surf-frame-controls button { border:1px solid #c7d8e7; background:#f5f9fc; border-radius:9px; padding:.45rem .65rem; cursor:pointer; }
.surf-frame-toolbar button.active { background:#075fae; color:#fff; }
.surf-frame-stage { background:#061728; border-radius:14px; overflow:hidden; }
.surf-frame-stage canvas { display:block; width:100%; height:auto; cursor:crosshair; }
.surf-frame-controls { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:.55rem; margin-top:.55rem; }

@media (max-width: 1180px) {
  .astronomy-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .regional-species-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .pr-map-layout { grid-template-columns:210px minmax(0,1fr) !important; }
  .pr-map-layout #zoneDetail { grid-column:1/-1; }
}
@media (max-width: 760px) {
  .astronomy-head,.species-hub-head,.fish-id-header { flex-direction:column; }
  .astronomy-grid,.fish-id-detail-grid,.regional-species-grid { grid-template-columns:1fr 1fr; }
  .pr-map-layout { grid-template-columns:1fr !important; }
  .pr-map-sidebar { position:static; max-height:none; }
  .coast-map,.pr-map-canvas { min-height:520px !important; }
  .gear-library-toolbar,.species-hub-toolbar,.pr-inline-gear-form,.pr-species-editor { grid-template-columns:1fr; }
  .pr-species-editor header,.pr-species-editor .wide,.pr-inline-gear-form .wide { grid-column:1; }
  .pr-gear-card { grid-template-columns:52px minmax(0,1fr); }
  .pr-gear-card .gear-item-actions { grid-column:1/-1; }
}
@media (max-width: 470px) {
  .astronomy-grid,.regional-species-grid { grid-template-columns:1fr; }
  .pr-nav-fact { grid-template-columns:1fr; }
  .fish-id-candidates article { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .pr-map-pin.fishing-now b { animation:none; }
  * { scroll-behavior:auto !important; }
}

.integration-status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.integration-status-card{display:grid;gap:5px;padding:16px;border:1px solid rgba(148,163,184,.22);border-radius:16px;background:rgba(4,19,38,.68)}.integration-status-card span{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.integration-status-card.ready span{color:#55e6b1}.integration-status-card.missing span{color:#ffbf69}.integration-status-card strong{color:#fff}.integration-status-card small{color:#aebfd0;line-height:1.4}

/* Production Revision 3 — Fish Intelligence studio */
.catch-photo-field { display:flex; flex-direction:column; gap:.55rem; min-width:0; }
.catch-field-label { color:inherit; font-weight:800; font-size:.82rem; }
.catch-field-label small { color:#8ca3bb; font-weight:700; }
.catch-photo-uploader { position:relative; min-height:112px; display:grid !important; grid-template-columns:62px minmax(0,1fr) auto; align-items:center; gap:1rem; padding:1rem 1.1rem !important; border:1px dashed rgba(81,168,239,.55) !important; border-radius:18px !important; background:linear-gradient(145deg,rgba(9,38,68,.95),rgba(5,24,44,.9)) !important; box-shadow:inset 0 1px 0 rgba(255,255,255,.04); cursor:pointer; overflow:hidden; }
.catch-photo-uploader::after { content:""; position:absolute; inset:auto -35px -55px auto; width:150px; height:150px; border-radius:50%; background:radial-gradient(circle,rgba(37,139,236,.18),transparent 70%); pointer-events:none; }
.catch-photo-uploader:hover { border-color:#4ba6f5 !important; transform:translateY(-1px); box-shadow:0 12px 30px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.05); }
.catch-photo-uploader input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.catch-upload-icon { width:58px; height:58px; display:grid; place-items:center; border-radius:17px; background:linear-gradient(145deg,#1f8cf2,#0c57aa); box-shadow:0 10px 25px rgba(8,102,190,.35); }
.catch-upload-icon svg { width:38px; height:38px; fill:none; stroke:#fff; stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round; }
.catch-upload-copy { display:flex; flex-direction:column; gap:.2rem; min-width:0; }
.catch-upload-copy strong { color:#f8fbff; font-size:1rem; }
.catch-upload-copy > span { color:#bcd1e4; font-size:.82rem; }
.catch-upload-copy small { color:#7f9ab3; line-height:1.35; }
.catch-upload-button { position:relative; z-index:1; padding:.62rem .9rem; border-radius:12px; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.12); color:#e9f5ff; font-weight:800; font-size:.78rem; white-space:nowrap; }
.catch-photo-preview-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.55rem; }
.catch-photo-preview-grid:empty { display:none; }
.catch-photo-preview-grid article { position:relative; min-height:108px; overflow:hidden; border-radius:14px; background:#06192b; border:1px solid rgba(94,160,215,.24); }
.catch-photo-preview-grid img { display:block; width:100%; height:108px; object-fit:cover; }
.catch-photo-preview-grid article > span { position:absolute; top:.45rem; left:.45rem; width:25px; height:25px; display:grid; place-items:center; border-radius:50%; background:rgba(2,16,30,.8); color:#fff; font-weight:900; font-size:.72rem; }
.catch-photo-preview-grid small { position:absolute; inset:auto .4rem .35rem .4rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; padding:.25rem .4rem; border-radius:7px; background:rgba(2,16,30,.76); color:#d8e7f5; font-size:.64rem; }
.catch-photo-meta { display:flex; align-items:center; justify-content:space-between; gap:.7rem; padding:.72rem .85rem; border:1px solid rgba(57,185,143,.35); border-radius:13px; background:rgba(11,75,65,.2); }
.catch-photo-meta > div:first-child { display:flex; flex-direction:column; gap:.12rem; }
.catch-photo-meta strong { color:#dffdf4; font-size:.8rem; }
.catch-photo-meta small { color:#93c8b8; font-size:.68rem; }
.catch-meta-chips { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:.3rem; }
.catch-meta-chips span { padding:.28rem .45rem; border-radius:999px; background:rgba(255,255,255,.07); color:#bbd2e7; font-size:.64rem; font-weight:800; }
.catch-meta-chips span.good { background:rgba(32,193,135,.16); color:#8ff0ca; }
.catch-analyze-button { display:inline-flex !important; align-items:center; justify-content:center; gap:.45rem; min-height:48px; }
.catch-analyze-button span { font-size:1.05rem; }

.fish-id-loading { min-height:108px; display:flex; flex-direction:row; align-items:center; gap:1rem; padding:1.1rem 1.2rem; border:1px solid rgba(68,161,239,.25); background:linear-gradient(145deg,#092b4b,#071f38); color:#eff8ff; }
.fish-id-loading > div:last-child { display:flex; flex-direction:column; gap:.3rem; }
.fish-id-loading span { color:#9fbad0; }
.fish-loading-icon { width:48px; height:48px; display:grid; place-items:center; flex:0 0 auto; border-radius:50%; background:linear-gradient(145deg,#2d9af6,#0a5fb6); box-shadow:0 0 0 8px rgba(47,151,239,.09); animation:fishLoadingPulse 1.5s ease-in-out infinite; }
@keyframes fishLoadingPulse { 50% { transform:scale(1.07); box-shadow:0 0 0 15px rgba(47,151,239,0); } }

.fish-id-report { margin-top:1rem; padding:1rem; border-radius:24px; background:linear-gradient(155deg,#061a2e 0%,#071f36 45%,#071a2b 100%); border:1px solid rgba(90,163,220,.22); box-shadow:0 22px 60px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.035); color:#d9e9f5; }
.fish-id-hero { display:flex; align-items:center; justify-content:space-between; gap:1.2rem; padding:1.3rem 1.4rem; border-radius:19px; background:radial-gradient(circle at 90% 15%,rgba(55,161,247,.22),transparent 32%),linear-gradient(135deg,#0a3a67,#0d69b5); overflow:hidden; }
.fish-id-kicker { display:block; color:#8ed0ff; font-size:.7rem; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.fish-id-hero h2 { margin:.25rem 0 .1rem; color:#fff; font-size:clamp(1.9rem,4vw,3rem); line-height:1; }
.fish-id-hero p { display:flex; flex-wrap:wrap; align-items:center; gap:.45rem; margin:0; color:#c7e5fa; }
.fish-id-hero em { color:#a9d8f8; }
.fish-confidence-orbit { width:104px; height:104px; display:grid; place-items:center; align-content:center; flex:0 0 auto; border-radius:50%; background:conic-gradient(#67c5ff calc(var(--confidence,83)*1%),rgba(255,255,255,.13) 0); position:relative; box-shadow:0 12px 30px rgba(0,0,0,.2); }
.fish-confidence-orbit::before { content:""; position:absolute; inset:7px; border-radius:50%; background:#0a4a82; }
.fish-confidence-orbit strong,.fish-confidence-orbit span { position:relative; z-index:1; }
.fish-confidence-orbit strong { color:#fff; font-size:1.42rem; }
.fish-confidence-orbit span { color:#a9d8f8; font-size:.62rem; text-transform:uppercase; letter-spacing:.06em; }

.fish-reference-gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.75rem; margin-top:.85rem; }
.fish-reference-card { min-width:0; overflow:hidden; border-radius:17px; border:1px solid rgba(93,160,214,.22); background:#0a2238; box-shadow:0 10px 24px rgba(0,0,0,.14); }
.fish-reference-card header { display:flex; align-items:center; justify-content:space-between; gap:.55rem; padding:.65rem .75rem; }
.fish-reference-card header span { color:#f1f8fd; font-size:.78rem; font-weight:900; }
.fish-reference-card header b { max-width:58%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#7dc8ff; font-size:.58rem; text-transform:uppercase; letter-spacing:.05em; }
.fish-reference-media { height:220px; display:grid; place-items:center; background:linear-gradient(145deg,#071827,#0c2b46); overflow:hidden; }
.fish-reference-media img { width:100%; height:100%; object-fit:cover; display:block; }
.official-reference .fish-reference-media img { object-fit:contain; padding:.35rem; background:radial-gradient(circle,#173a55,#071827); }
.fish-reference-card footer { min-height:45px; display:flex; align-items:center; padding:.55rem .7rem; background:rgba(255,255,255,.025); }
.fish-reference-card footer a,.fish-reference-card footer span { color:#91adc2; font-size:.64rem; line-height:1.3; text-decoration:none; }
.fish-reference-card footer a:hover { color:#7dc8ff; }
.fish-reference-placeholder { height:100%; width:100%; display:grid; place-items:center; align-content:center; gap:.35rem; padding:1rem; text-align:center; color:#7e9ab1; }
.fish-reference-placeholder > span { width:45px; height:45px; display:grid; place-items:center; border-radius:14px; background:rgba(45,144,224,.12); color:#69bdfa; font-size:1.2rem; }
.fish-reference-placeholder strong { color:#b9cedf; font-size:.8rem; }
.fish-reference-placeholder small { color:#7892a6; }

.fish-id-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.65rem; margin:.8rem 0; }
.fish-id-metrics article { min-width:0; display:flex; flex-direction:column; gap:.2rem; padding:.85rem; border-radius:15px; background:rgba(255,255,255,.035); border:1px solid rgba(95,158,208,.16); }
.fish-id-metrics span { color:#7898b1; font-size:.63rem; font-weight:900; text-transform:uppercase; letter-spacing:.07em; }
.fish-id-metrics strong { color:#f2f8fc; font-size:.95rem; }
.fish-id-metrics small { color:#8da8bc; font-size:.65rem; line-height:1.35; }

.fish-id-overview { display:grid; grid-template-columns:1.2fr .8fr; gap:.75rem; margin:.75rem 0; }
.fish-summary-card,.fish-profile-card { padding:1rem; border-radius:17px; border:1px solid rgba(91,158,209,.17); background:linear-gradient(145deg,rgba(17,48,74,.86),rgba(8,32,53,.9)); }
.fish-summary-card h3,.fish-profile-card h3 { margin:.2rem 0 .7rem; color:#f1f8fd; }
.fish-summary-card ul { margin:0; padding-left:1.15rem; color:#b6ccdc; }
.fish-summary-card li { margin:.35rem 0; }
.fish-profile-card p { margin:.48rem 0; color:#a7bfD1; font-size:.76rem; line-height:1.45; }
.fish-profile-card strong { color:#e7f2fa; }
.fish-signal-row { display:flex; flex-wrap:wrap; gap:.35rem; margin-top:.75rem; }
.fish-signal-row span { padding:.32rem .5rem; border-radius:999px; background:rgba(53,160,238,.12); color:#80c8fb; border:1px solid rgba(83,172,239,.18); font-size:.64rem; font-weight:800; }

.fish-id-report .fish-id-detail-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:.65rem; }
.fish-id-report .fish-id-detail-grid section { position:relative; min-height:170px; padding:1rem; border-radius:16px; background:rgba(255,255,255,.03); border:1px solid rgba(90,156,205,.15); color:#a9c0d1; }
.fish-id-report .fish-id-detail-grid section > strong { display:block; margin:.45rem 0 .65rem; color:#eef7fd; }
.fish-id-report .fish-id-detail-grid ul { margin:0; padding-left:1rem; }
.fish-id-report .fish-id-detail-grid li { margin:.32rem 0; font-size:.72rem; line-height:1.4; }
.fish-id-report .fish-id-detail-grid p { font-size:.75rem; line-height:1.5; }
.detail-icon { width:32px; height:32px; display:grid; place-items:center; border-radius:10px; background:rgba(45,151,234,.12); color:#78c6fb; font-weight:900; }

.fish-alternatives { margin-top:.9rem; padding:.9rem; border-radius:18px; background:rgba(2,16,28,.35); }
.fish-alternatives h3 { margin:.15rem 0; color:#eaf5fc; }
.fish-id-report .fish-id-candidates { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.55rem; margin:.65rem 0 0; }
.fish-id-report .fish-id-candidates article { display:grid; grid-template-columns:1fr auto; gap:.35rem .8rem; padding:.75rem; border-radius:14px; border:1px solid rgba(91,156,205,.14); background:linear-gradient(145deg,#0c2942,#091f34); color:#a9c1d2; box-shadow:none; }
.fish-id-report .fish-id-candidates article > div { display:flex; flex-direction:row; align-items:center; gap:.55rem; }
.fish-id-report .fish-id-candidates article > div > span { width:25px; height:25px; display:grid; place-items:center; border-radius:8px; background:rgba(65,164,237,.1); color:#77c5fb; font-size:.68rem; font-weight:900; }
.fish-id-report .fish-id-candidates article > div > div { display:flex; flex-direction:column; }
.fish-id-report .fish-id-candidates strong { color:#eef7fd; }
.fish-id-report .fish-id-candidates em { color:#7e9bb1; font-size:.66rem; }
.fish-id-report .fish-id-candidates b { color:#6fc0fb; }
.fish-id-report .fish-id-candidates p,.fish-id-report .fish-id-candidates small { grid-column:1/-1; color:#91aabd; font-size:.68rem; line-height:1.4; }
.fish-id-report .fish-id-candidates small { color:#bd9e73; }

.fish-id-report .fish-id-regulations { display:flex; justify-content:space-between; align-items:center; gap:1rem; margin-top:.85rem; padding:1rem; border-radius:16px; background:linear-gradient(145deg,rgba(103,74,19,.25),rgba(72,48,12,.17)); border:1px solid rgba(231,177,72,.24); color:#e6d2a8; }
.fish-id-report .fish-id-regulations p { margin:.25rem 0 0; max-width:750px; color:#bba77e; font-size:.72rem; }
.fish-id-report .fish-id-regulations a { background:rgba(255,255,255,.06); color:#f0d292; border-color:rgba(233,190,101,.25); }
.fish-estimate-note { margin:.75rem .15rem; color:#829caf; font-size:.68rem; line-height:1.5; }
.fish-evidence-details { margin-top:.7rem; padding:.7rem .8rem; border-radius:13px; background:rgba(255,255,255,.025); border:1px solid rgba(91,157,207,.12); }
.fish-evidence-details summary { color:#9fc9e7; font-size:.72rem; font-weight:800; cursor:pointer; }
.fish-id-report .visual-evidence span { background:rgba(64,145,207,.09); color:#9fb7c8; border:1px solid rgba(86,155,209,.12); }
.fish-id-report .visual-evidence small { color:#6f8ca2; }

@media (max-width:1100px) {
  .fish-id-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .fish-id-report .fish-id-detail-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:760px) {
  .catch-photo-uploader { grid-template-columns:52px minmax(0,1fr); }
  .catch-upload-icon { width:50px; height:50px; }
  .catch-upload-button { grid-column:1/-1; text-align:center; }
  .catch-photo-meta { align-items:flex-start; flex-direction:column; }
  .catch-meta-chips { justify-content:flex-start; }
  .fish-id-report { padding:.65rem; border-radius:18px; }
  .fish-id-hero { align-items:flex-start; padding:1rem; }
  .fish-confidence-orbit { width:82px; height:82px; }
  .fish-reference-gallery { grid-template-columns:1fr; }
  .fish-reference-media { height:235px; }
  .fish-id-overview,.fish-id-report .fish-id-detail-grid,.fish-id-report .fish-id-candidates { grid-template-columns:1fr; }
  .fish-id-report .fish-id-regulations { align-items:flex-start; flex-direction:column; }
}
@media (max-width:520px) {
  .catch-photo-preview-grid { grid-template-columns:1fr; }
  .catch-photo-preview-grid img { height:150px; }
  .fish-id-hero { flex-direction:column; }
  .fish-confidence-orbit { align-self:flex-end; margin-top:-4.3rem; }
  .fish-id-metrics { grid-template-columns:1fr; }
}
