/* Shared detail surfaces, using the same neutral material in both themes. */
.segmented { display:flex;gap:4px;padding:4px;border:1px solid var(--line);border-radius:14px;background:var(--control); }
.segmented button { flex:1;min-height:39px;padding:8px 12px;border:0;border-radius:10px;background:transparent;color:var(--ink-3);font-size:13px; }
.segmented button.is-active,.segmented button[aria-selected="true"],.segmented button[aria-pressed="true"] { color:var(--ink);background:var(--glass-2);box-shadow:0 2px 6px #00000012,inset 0 1px 0 var(--highlight); }
.gear-overview { display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0; }
.gear-overview>div { display:flex;align-items:baseline;gap:8px;border:1px solid var(--line);border-radius:18px;padding:16px;background:var(--control); }
.gear-overview strong { font-size:30px;font-weight:600;letter-spacing:-1px; }
.gear-overview span { color:var(--ink-3);font-size:12px; }
.gear-overview>p { grid-column:1/-1;color:var(--ink-2);font-size:12px;line-height:1.7; }
.collection-head { display:flex;align-items:center;justify-content:space-between;margin:22px 0 12px;gap:10px; }
.collection-head h3 { font-size:16px;margin:0; }
.collection-head>span { font-size:11px;color:var(--ink-3); }
.gear-modal .gear-quick { display:block;border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin-top:15px; }
.gear-quick summary,.gear-advanced summary { cursor:pointer;min-height:28px;font-size:13px;color:var(--ink-2); }
.gear-quick .presets { padding-top:14px; }
.gear-modal .gear-item { padding:14px;gap:10px;border:1px solid var(--line-soft);background:var(--control);border-radius:14px; }
.gear-item>div:first-child { min-width:0;overflow-wrap:anywhere; }
.gear-item .gi-actions { flex:none;display:flex;gap:6px; }
.gear-item .gi-actions button { min-height:36px; }
.field-group { padding:18px 0;border-bottom:1px solid var(--line); }
.field-group h3 { display:flex;align-items:center;gap:9px;font-size:15px;margin:0 0 12px; }
.field-group h3>span { font-size:10px;color:var(--ink-3);border:1px solid var(--line);padding:4px 6px;border-radius:7px; }
.field-location-label { display:flex;flex-direction:column;gap:8px;font-size:12px;color:var(--ink-3); }
.field-location-label select { width:100%;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--control);color:var(--ink); }
.field-group .field-context { margin:10px 0 4px; }
.field-group .field-section { margin-top:16px; }
.field-more { margin-top:18px;border:1px solid var(--line);border-radius:14px;padding:12px; }
.field-more>summary { cursor:pointer;min-height:30px;font-size:12px;line-height:1.8; }
.field-more>summary>span { color:var(--ink-3);margin-left:6px; }
.field-more .field-grid { margin-top:15px; }
.water-color-chips button:before { content:"";display:inline-block;vertical-align:middle;width:12px;height:12px;margin-right:6px;border-radius:50%;background:var(--wc);box-shadow:inset 0 0 0 1px #0002; }
.water-color-key { display:none; }
.action-steps { margin-top:18px; }
.coverage-note { font-size:10px;color:var(--ink-3);line-height:1.7;margin-bottom:10px; }
.action-step { border:1px solid var(--line);border-radius:14px;overflow:hidden;margin:8px 0;background:var(--control); }
.action-step summary { display:flex;align-items:center;gap:9px;min-height:52px;padding:10px;list-style:none;cursor:pointer;font-size:12px;font-weight:600; }
.action-step summary::-webkit-details-marker { display:none; }
.action-step summary>svg { margin-left:auto;width:14px;height:14px; }
.action-step[open] summary>svg { transform:rotate(180deg); }
.action-number { width:24px;height:24px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;font-size:11px;flex:none; }
.action-body { padding:0 12px 12px;font-size:12px;line-height:1.75; }
.action-reason { color:var(--ink-3);margin:0 0 10px; }
.action-body dl { margin:0; }
.action-body dl>div { display:grid;grid-template-columns:40px 1fr;gap:6px;padding:8px 0;border-top:1px solid var(--line-soft); }
.action-body dt { color:var(--ink-3);font-size:10px; }
.action-body dd { margin:0;overflow-wrap:anywhere; }
.action-confidence { font-size:10px;color:var(--ink-3);margin-top:9px; }
.ai-panel { border:1px solid var(--line);border-radius:17px;background:var(--control);padding:14px;margin-top:20px; }
.ai-heading { display:flex;justify-content:space-between;gap:8px;align-items:center;font-size:12px; }
.ai-heading>span { font-size:9px;color:var(--ink-3); }
.ai-panel>p { font-size:11px;line-height:1.7;color:var(--ink-3);margin-top:8px; }
.ai-question-label { display:block;margin:14px 0 10px;font-size:10px;color:var(--ink-3); }
.ai-question-label input { display:block;width:100%;min-width:0;border:1px solid var(--line);border-radius:10px;background:var(--control);color:var(--ink);padding:10px;font-size:12px;margin-top:6px; }
.ai-panel>.pill { width:100%; }
#ai-result { margin-top:15px;font-size:12px;line-height:1.8; }
#ai-result h3 { font-size:11px;color:var(--ink-3);margin:14px 0 6px; }
#ai-result ul { list-style:disc;padding-left:17px; }
#ai-result li+li { margin-top:6px; }
.data-status { margin-top:12px;padding-top:10px;border-top:1px solid var(--line);font-size:10px;color:var(--ink-3); }
.data-status summary { cursor:pointer;min-height:30px; }
.data-status p { white-space:pre-line;line-height:1.8; }
.water-column { margin-top:18px;overflow:hidden;border:1px solid var(--line);border-radius:18px;background:linear-gradient(180deg,#e2e7eb66,#b6c0c933 40%,#5c687744); }
[data-theme="night"] .water-column { background:linear-gradient(180deg,#ffffff18,#ffffff08 40%,#00000033); }
.water-surface { display:flex;align-items:center;gap:10px;padding:10px 14px;font-size:10px;color:var(--ink-3);border-bottom:2px solid var(--highlight); }
.water-surface i { flex:1;height:3px;border-top:1px solid var(--line);border-bottom:1px solid var(--highlight); }
.column-zone { display:grid;grid-template-columns:58px minmax(0,1fr);padding:12px 9px;min-height:100px;border-bottom:1px dashed var(--line);gap:5px; }
.column-zone.is-recommended { background:var(--control-hover);box-shadow:inset 3px 0 0 var(--ink-2); }
.column-label { display:flex;flex-direction:column;gap:5px;padding-top:8px; }
.column-label strong { font-size:12px; }
.column-label small { font-size:8px;color:var(--ink-3); }
.column-label em { font-size:8px;color:var(--ink-2);font-style:normal; }
.column-fish { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:8px; }
.column-species { display:flex;flex-direction:column;align-items:center;min-width:0;font-size:10px; }
.column-species small { font-size:8px;color:var(--ink-3); }
.column-fish-art { margin:0;width:100%; }
.column-fish-art img { height:46px;width:100%;object-fit:contain; }
.column-fish-art figcaption { text-align:center;font-size:8px;color:var(--ink-3); }
.column-empty { grid-column:1/-1;font-size:10px;color:var(--ink-3);text-align:center; }
.water-bed { padding:9px 12px;background:var(--line-soft);font-size:9px;color:var(--ink-3);text-align:right; }
.column-caption { font-size:9px;line-height:1.6;color:var(--ink-3);margin-top:8px; }
.fish-illustration { margin:0; }
.fish-illustration img { width:82px;height:46px;object-fit:contain; }
.fish-illustration figcaption { font-size:8px;color:var(--ink-3);line-height:1.3; }
.weather-modal { width:min(700px,calc(100vw - 32px)); }
.weather-chip { cursor:pointer; }
.weather-controls { display:flex;align-items:center;gap:14px;margin:20px 0 12px; }
.weather-controls .segmented { flex:1; }
.weather-date-label { font-size:10px;color:var(--ink-3);display:flex;gap:8px;align-items:center; }
.weather-date-label select { min-width:0;max-width:170px;border:1px solid var(--line);border-radius:10px;padding:10px;background:var(--control);color:var(--ink);font-size:12px; }
.weather-metrics { margin-bottom:14px; }
#weather-status { font-size:12px;color:var(--ink-3);line-height:1.6; }
#weather-chart { margin-top:12px;min-height:180px; }
#weather-chart svg { display:block;width:100%;height:auto;overflow:visible;touch-action:pan-y;border-radius:12px; }
#weather-chart svg:focus-visible { outline:2px solid var(--ink-2);outline-offset:3px; }
#weather-chart text { fill:var(--ink-3);font:11px var(--font); }
#weather-chart .weather-line { stroke:var(--ink); }
.weather-hit-area { cursor:crosshair;pointer-events:all;touch-action:pan-y; }
.weather-selection { display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px 16px;margin:0 0 8px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--control);font-size:12px;line-height:1.5; }
.weather-selection:empty { display:none; }
.weather-selection span { color:var(--ink-2); }
.weather-selection strong { font-size:18px;font-weight:650;color:var(--ink); }
.weather-chart-help { font-size:11px;color:var(--ink-3);line-height:1.6;margin:8px 0 16px; }
.weather-retry { margin-left:10px;min-height:44px;padding:8px 14px;border:1px solid var(--line);border-radius:10px;background:var(--control);color:var(--ink);font:inherit;cursor:pointer; }
#weather-detail { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px; }
#weather-detail>div { border:1px solid var(--line);border-radius:14px;background:var(--control);padding:12px;font-size:12px; }
#weather-detail strong { font-size:18px;display:block;font-weight:600;margin:5px 0; }
#weather-detail small { color:var(--ink-3);font-size:10px; }
.weather-source { margin-top:18px;font-size:10px;color:var(--ink-3);line-height:1.8; }
@media(max-width:900px) {
  .weather-modal { padding:20px 15px; }
  .weather-controls { flex-wrap:wrap;gap:10px; }
  .weather-date-label { width:100%;justify-content:space-between; }
  .weather-date-label select { max-width:none;flex:1; }
  #weather-chart text { font-size:19px; }
  #weather-chart { min-height:0; }
  .weather-selection { padding:10px 12px; }
  .weather-selection strong { font-size:17px; }
  #weather-detail { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ai-question-label input { font-size:16px; }
  .gear-item { flex-wrap:wrap; }
  .gear-item .gi-actions { margin-left:auto; }
  .segmented button { min-height:44px; }
}

/* Legible text and touch targets on the compact water profile. */
.column-label small,.column-label em,.column-species small,.column-fish-art figcaption,.fish-art-note { font-size:10px;line-height:1.5; }
.column-caption,.water-bed { font-size:10px;line-height:1.6; }
.column-fish-art { margin:0; }
.column-fish-art figcaption { text-align:center; }
#weather-detail strong { overflow-wrap:anywhere; }
.weather-summary,.weather-note { font-size:12px;line-height:1.7;color:var(--ink-2); }
.weather-note { color:var(--ink-3); }
@media(max-width:900px) {
  .weather-date-label select { font-size:16px;min-height:44px; }
  #weather-detail strong { font-size:16px; }
  .field-modal .field-chips button { padding:10px 12px; }
}
.evidence-panel { margin-top:16px;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--control);font-size:12px;line-height:1.7; }
.evidence-panel summary { cursor:pointer;min-height:28px;font-weight:600; }
.evidence-panel dl { margin:10px 0; }
.evidence-panel dl>div { padding:8px 0;border-top:1px solid var(--line-soft); }
.evidence-panel dt { font-size:10px;color:var(--ink-3); }
.evidence-panel dd { margin:3px 0 0; }
.evidence-panel p { font-size:10px;color:var(--ink-3); }

/* Functional map colors use the system palette; glass and brand stay neutral. */
:root { --method-hand:#007aff;--method-lure:#ff9500;--score-priority:#248a3d;--score-alternative:#a86600;--score-limited:#636366;--score-unknown:#8e8e93; }
[data-theme="night"] { --method-hand:#0a84ff;--method-lure:#ff9f0a;--score-priority:#30d158;--score-alternative:#ffd60a;--score-limited:#aeaeb2;--score-unknown:#8e8e93; }
/* Opaque system colors keep score pins visible over every map. Text colors stay
   darker on light panels; these fills never inherit the neutral brand palette. */
:root { --score-priority-fill:#34c759;--score-alternative-fill:#ffcc00;--score-limited-fill:#aeaeb2;--score-marker-ink:#171719; }
[data-theme="night"] { --score-priority-fill:#30d158;--score-alternative-fill:#ffd60a;--score-limited-fill:#aeaeb2; }
.spot-methods { display:flex;gap:5px;margin:10px 0; }
.spot-method-filter { display:flex;align-items:center;justify-content:center;gap:6px;flex:1;min-height:40px;border:1px solid var(--line);border-radius:11px;background:var(--control);color:var(--ink-2);font:500 12px var(--font);cursor:pointer; }
.spot-method-filter.is-on { background:var(--ink);color:var(--surface); }
.method-badge { display:inline-flex;align-items:center;gap:4px;font-size:10px;line-height:1.6;font-weight:600;white-space:nowrap;color:var(--ink-2); }
.method-badge::before,.method-dot { content:'';display:inline-block;width:7px;height:7px;border-radius:50%;flex-shrink:0; }
.method-hand::before,.method-dot.method-hand { background:var(--method-hand); }
.method-lure::before,.method-dot.method-lure { background:var(--method-lure); }
.spot-priority { font-style:normal;color:var(--c);font-size:10px;font-weight:600; }
.spot-line { flex-wrap:wrap;column-gap:6px;row-gap:4px; }
.spot-type,.spot-score,.spot-priority,.spot-layer { white-space:nowrap;flex-shrink:0; }
.spot-main { min-width:0; }.spot-layer { flex-basis:100%; }
.spot-score { color:var(--c);background:color-mix(in srgb,var(--c) 12%,transparent);font-weight:700; }
.spot-item .spot-rank,.spot-item.is-top .spot-rank { background:color-mix(in srgb,var(--c) 10%,var(--surface));color:var(--c);border:1px solid color-mix(in srgb,var(--c) 40%,transparent);box-shadow:none; }
.spot-item.is-active { border-color:var(--c); }
.spot-legend { font-size:11px;color:var(--ink-2);margin-bottom:10px; }
.spot-legend summary { cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:6px;min-height:36px;padding:6px 0;list-style:none; }
.spot-legend summary::-webkit-details-marker { display:none; }
.spot-legend summary>svg { width:13px;height:13px;flex:none; }
.spot-legend[open] summary>svg { transform:rotate(180deg); }
.score-key { display:flex;flex-wrap:wrap;gap:5px 10px; }
.score-key>span { display:inline-flex;align-items:center;gap:4px;white-space:nowrap; }
.legend-row { display:flex;flex-wrap:wrap;gap:8px 12px;margin-top:8px; }
.legend-row span { display:inline-flex;align-items:center;gap:5px; }
.score-dot { width:10px;height:10px;border-radius:50%;flex:none;background:var(--score-limited-fill);box-shadow:inset 0 0 0 1px #0002; }
.score-dot.priority { background:var(--score-priority-fill); }.score-dot.alternative { background:var(--score-alternative-fill); }
.spot-legend p { font-size:10px;line-height:1.6;color:var(--ink-3);margin:8px 0; }
.spot-method-detail,.popup-methods { display:flex;flex-wrap:wrap;gap:8px;font-size:11px;margin:8px 0; }
.method-gear { border:1px solid var(--line);padding:10px;margin-bottom:8px;border-radius:12px;font-size:12px;line-height:1.6; }
.method-gear p { margin:5px 0; }.method-gear small { color:var(--ink-3); }
.card { animation:none;transform:none; }
.mk-spot { width:40px;height:42px;--spot-fill:var(--score-limited-fill); }
.mk-spot.score-priority { --spot-fill:var(--score-priority-fill); }
.mk-spot.score-alternative { --spot-fill:var(--score-alternative-fill); }
.mk-spot i { inset:3px 4px 9px;border-radius:50% 50% 50% 8px;background:var(--spot-fill);border-color:#fff; }
.mk-spot b { align-self:start;margin-top:10px;color:var(--score-marker-ink);font-size:12px;text-shadow:none; }
.mk-methods { position:absolute;top:36px;left:50%;transform:translateX(-50%);display:flex;gap:5px;padding:2px 5px;border:1px solid var(--line);border-radius:6px;background:var(--surface);white-space:nowrap;box-shadow:0 2px 6px #0002; }
.mk-methods .method-badge { font-size:9px;gap:3px; }
.mk-spot em { bottom:-34px;font-size:10px;letter-spacing:0; }
.marker-spot.is-top .mk-spot::before { border-color:var(--spot-fill);box-shadow:0 0 10px color-mix(in srgb,var(--spot-fill) 25%,transparent);animation:none;inset:-2px -1px 4px; }
.hide-spot-labels .mk-methods { top:32px; }.hide-spot-labels .mk-spot em { display:none; }
.hide-spot-labels .mk-methods .method-badge { font-size:0;gap:0; }
.marker-spot.is-cast-active .mk-spot,.marker-spot.is-cast-active .mk-spot:hover { transform:translate(calc(-100% - 18px),-50%); }
.marker-spot.is-cast-active::after { content:"";position:absolute;right:5px;top:0;width:13px;border-top:1px dotted var(--ink-3);pointer-events:none; }
@media(max-width:900px) { .spot-method-filter { min-height:44px; }.spot-line { gap:4px; }.spot-method-detail { line-height:1.7; } }
@media(max-width:900px) and (min-height:500px) {
  body.has-plan .sheet-scroll>[data-card="location"] { padding:10px 5px 12px; }
  body.has-plan [data-card="location"] .card-head { display:none; }
  body.has-plan [data-card="location"] .place { font-size:22px; }
  body.has-plan[data-analysis="ready"] [data-card="location"] .sub { display:none; }
  body.has-plan .trip-settings { margin-top:8px; }
  body.has-plan .sheet-scroll>[data-card="spots"] { padding-top:12px; }
  .spot-methods { margin:8px 0 4px; }
  body.has-plan[data-analysis="ready"] .sheet-scroll>[data-card="location"] { display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px; }
  body.has-plan[data-analysis="ready"] .trip-settings { margin:0; }
  body.has-plan[data-analysis="ready"] .trip-settings[open] { grid-column:1/-1; }
  .spot-types { flex-wrap:nowrap;overflow-x:auto; }
  .spot-type-chip { flex-shrink:0; }
  .layer-verdict { flex-direction:column;align-items:flex-start;gap:5px; }
}

/* Four absolute condition bands; method badges keep their independent colors. */
:root { --score-alternative:#007aff;--score-moderate:#916000;--score-limited:#c93400;--score-alternative-fill:#5ac8fa;--score-moderate-fill:#ffcc00;--score-limited-fill:#ff9f0a; }
[data-theme="night"] { --score-alternative:#64d2ff;--score-moderate:#ffd60a;--score-limited:#ff9f0a;--score-alternative-fill:#64d2ff;--score-moderate-fill:#ffd60a;--score-limited-fill:#ff9f0a; }
.score-dot.moderate { background:var(--score-moderate-fill); }
.mk-spot.score-moderate { --spot-fill:var(--score-moderate-fill); }
.mk-spot.score-unknown { --spot-fill:var(--score-unknown); }
.trip-time-row { margin-top:10px; }
.trip-time-row input { width:100%;min-width:0;box-sizing:border-box;min-height:38px;background:var(--control);border:1px solid var(--line);border-radius:10px;padding:6px 9px;color:var(--ink);font:inherit; }
.trip-time-note { font-size:11px;color:var(--ink-3);line-height:1.5;margin:7px 0 0; }

.trip-rod-label { display:grid;gap:6px;margin-top:12px;color:var(--ink-2);font-size:12px; }
.trip-rod-label select { width:100%;min-width:0;min-height:40px;border:1px solid var(--line);border-radius:10px;background:var(--control);color:var(--ink);padding:8px;font:inherit; }
.bait-stage { margin-top:12px;padding:12px;border:1px solid var(--line-soft);background:var(--control);border-radius:12px; }
.bait-stage h4 { display:flex;align-items:center;flex-wrap:wrap;gap:7px;font-size:13px;margin:0 0 10px; }
.bait-stage h4 span { display:grid;place-items:center;width:23px;height:23px;border:1px solid var(--line);border-radius:50%; }
.bait-stage h4 small { margin-left:auto;font-size:10px;font-weight:400; }
.bait-stage p { line-height:1.65;margin:7px 0;font-size:12px; }
.bait-stage .bait-switch { color:var(--ink);font-weight:500; }
.bait-stage>small { display:block;font-size:10px;line-height:1.5;color:var(--ink-3); }
.bait-stage>b,.bait-alternative { overflow-wrap:anywhere; }
.bait-alternative { margin-top:9px;padding:8px 10px;border-left:2px solid var(--line);border-radius:0 8px 8px 0;background:var(--control);font-size:12px; }
.bait-alternative>b { font-size:11px;color:var(--ink-3);font-weight:500; }
.bait-alternative p { margin:4px 0; }
.bait-alternative small { display:block;line-height:1.5; }

.gear-fit { display:inline-flex;font-size:10px;padding:3px 7px;border:1px solid var(--line);border-radius:7px;color:var(--ink-2);margin-top:5px;line-height:1.5; }
.gear-fit-limited,.gear-fit-incompatible { color:var(--score-limited);border-color:color-mix(in srgb,var(--score-limited) 35%,transparent);background:color-mix(in srgb,var(--score-limited) 7%,transparent); }
.gear-fit-compatible { color:var(--score-priority); }
.gear-fit-detail { font-size:11px;color:var(--ink-2);line-height:1.6; }.gear-fit-detail p { margin:5px 0; }.gear-fit-detail small { color:var(--ink-3); }
.mk-gear-alert { position:absolute;z-index:4;top:-5px;right:-3px;background:var(--surface);color:var(--ink);border:1.5px solid var(--ink);width:16px;height:16px;line-height:16px;text-align:center;border-radius:50%;font-size:11px;font-weight:700; }

.bait-compare { margin-top:12px;padding-top:10px;border-top:1px solid var(--line-soft); }.bait-compare p { font-size:12px;line-height:1.65; }.bait-compare small { font-size:10px;color:var(--ink-3);line-height:1.5; }
