/* Phase 21N.1 — Fishing Conditions / Fishing Intelligence */

#fishing-conditions{scroll-margin-top:18px}
.dvh21n-fishing{
  margin:14px 0 2px;
  padding:18px;
  border:1px solid rgba(18,63,56,.11);
  border-radius:22px;
  background:linear-gradient(145deg,#f8fbf7 0%,#fffdf8 52%,#f4f7f1 100%);
  box-shadow:0 12px 30px rgba(16,43,39,.06);
}
.dvh21n-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}
.dvh21n-head h2{margin:.2rem 0 .3rem;color:#102b27;font-size:1.35rem;line-height:1.08}
.dvh21n-head p{margin:0;color:#63706c;font-size:.8rem;line-height:1.45}
.dvh21n-spot-button{min-width:190px;padding:10px 12px;border:1px solid rgba(18,63,56,.12);border-radius:15px;background:#fff;color:#123f38;text-align:left;cursor:pointer}
.dvh21n-spot-button span,.dvh21n-spot-button small{display:block;color:#74807c;font-size:.57rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.dvh21n-spot-button strong{display:block;margin:3px 0;font-size:.78rem;line-height:1.25}
.dvh21n-spot-button small{color:#c37c0b;text-transform:none;letter-spacing:0}
.dvh21n-status{min-height:0;margin:0 0 10px;color:#65726d;font-size:.72rem;font-weight:700}
.dvh21n-status:empty{display:none}
.dvh21n-status.is-error{padding:9px 11px;border-radius:12px;background:#fff0ed;color:#9f3020}
.dvh21n-status.is-ok{color:#37675e}
.dvh21n-empty{display:flex;align-items:center;gap:14px;padding:17px;border:1px dashed rgba(18,63,56,.18);border-radius:17px;background:rgba(255,255,255,.8)}
.dvh21n-empty-icon{display:grid;place-items:center;flex:0 0 46px;height:46px;border-radius:50%;background:#123f38;color:#fff;font-size:1.25rem}
.dvh21n-empty strong{display:block;color:#102b27;font-size:.9rem}
.dvh21n-empty p{margin:4px 0 0;color:#697570;font-size:.72rem;line-height:1.4}
.dvh21n-empty .btn{margin-left:auto;white-space:nowrap}
.dvh21n-outlook-row{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:10px}
.dvh21n-score-card,.dvh21n-current-card,.dvh21n-window-card{min-width:0;padding:14px;border:1px solid rgba(18,63,56,.1);border-radius:17px;background:rgba(255,255,255,.88)}
.dvh21n-score-card>span,.dvh21n-current-card>span,.dvh21n-window-card>span{display:block;color:#7b8782;font-size:.56rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.dvh21n-score-card>div{display:flex;align-items:baseline;gap:3px;margin:6px 0 1px}
.dvh21n-score-card>div strong{color:#102b27;font-size:2rem;line-height:1}
.dvh21n-score-card>div em{color:#8a9691;font-size:.7rem;font-style:normal;font-weight:800}
.dvh21n-score-card>b,.dvh21n-window-card>b{display:inline-flex;margin-top:4px;padding:4px 8px;border-radius:999px;background:#edf3ee;color:#123f38;font-size:.62rem}
.dvh21n-score-card p,.dvh21n-window-card p{margin:7px 0 0;color:#68746f;font-size:.66rem;line-height:1.4}
.dvh21n-current-card>strong{display:block;margin:6px 0 10px;color:#102b27;font-size:1.65rem;line-height:1}
.dvh21n-current-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.dvh21n-current-grid span{padding:7px 8px;border-radius:10px;background:#f6f8f5}
.dvh21n-current-grid small{display:block;color:#82908a;font-size:.52rem;font-weight:800;text-transform:uppercase}
.dvh21n-current-grid b{display:block;margin-top:2px;color:#143f38;font-size:.66rem}
.dvh21n-window-card>strong{display:block;margin:7px 0 1px;color:#102b27;font-size:1.28rem;line-height:1.1}
.dvh21n-tabs{display:flex;gap:5px;margin:12px 0 8px;padding:4px;border-radius:13px;background:#edf2ed}
.dvh21n-tabs button{flex:1;border:0;border-radius:10px;padding:8px 10px;background:transparent;color:#52615c;font-size:.68rem;font-weight:900;cursor:pointer}
.dvh21n-tabs button.is-active{background:#123f38;color:#fff;box-shadow:0 4px 10px rgba(18,63,56,.13)}
.dvh21n-view{min-height:88px}
.dvh21n-hourly{display:grid;grid-template-columns:repeat(6,minmax(90px,1fr));gap:7px;overflow-x:auto;padding-bottom:3px;scrollbar-width:thin}
.dvh21n-hour{min-width:90px;padding:10px;border:1px solid rgba(18,63,56,.09);border-radius:13px;background:#fff}
.dvh21n-hour time{display:block;color:#76827d;font-size:.55rem;font-weight:900}
.dvh21n-hour strong{display:block;margin:4px 0;color:#102b27;font-size:.95rem}
.dvh21n-hour small{display:block;color:#6d7974;font-size:.56rem;line-height:1.45}
.dvh21n-hour b{display:inline-flex;margin-top:6px;padding:3px 6px;border-radius:999px;background:#f0f4ef;color:#123f38;font-size:.53rem}
.dvh21n-seven{display:grid;grid-template-columns:repeat(7,minmax(105px,1fr));gap:7px;overflow-x:auto;padding-bottom:3px}
.dvh21n-day{min-width:105px;padding:10px;border:1px solid rgba(18,63,56,.09);border-radius:13px;background:#fff}
.dvh21n-day>span{display:block;color:#75817c;font-size:.55rem;font-weight:900}
.dvh21n-day>strong{display:block;margin:5px 0 2px;color:#102b27;font-size:.78rem}
.dvh21n-day>em{display:block;color:#c37c0b;font-size:.55rem;font-style:normal;font-weight:900}
.dvh21n-day small{display:block;margin-top:5px;color:#6d7974;font-size:.54rem;line-height:1.45}
.dvh21n-meta{display:flex;justify-content:space-between;gap:10px;margin-top:8px;color:#89938f;font-size:.54rem}
.dvh21n-disclaimer{margin:9px 0 0;color:#69746f;font-size:.58rem;line-height:1.45}
.dvh21n-attribution{margin:5px 0 0;color:#87918d;font-size:.55rem}
.dvh21n-attribution a{color:#526a64;text-decoration:underline;text-underline-offset:2px}
.dvh21n-location-panel{margin-top:12px;padding:15px;border:1px solid rgba(18,63,56,.13);border-radius:17px;background:#fff}
.dvh21n-location-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.dvh21n-location-head h3{margin:.2rem 0 0;color:#102b27;font-size:1rem}
.dvh21n-location-head button{display:grid;place-items:center;width:30px;height:30px;border:0;border-radius:50%;background:#edf2ee;color:#123f38;font-size:1rem;cursor:pointer}
.dvh21n-location-panel>p{margin:8px 0 12px;color:#6b7772;font-size:.68rem;line-height:1.45}
.dvh21n-location-actions{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.dvh21n-location-actions span{color:#7a8581;font-size:.62rem}
.dvh21n-location-form{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:9px}
.dvh21n-location-form label{color:#52615c;font-size:.6rem;font-weight:900}
.dvh21n-location-form input{width:100%;margin-top:4px;padding:9px 10px;border:1px solid #d7dfda;border-radius:10px;background:#fbfcfa;color:#102b27;font:inherit;font-size:.7rem;box-sizing:border-box}
.dvh21n-location-save{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:11px}
.dvh21n-location-save span{color:#60706a;font-size:.62rem}
.dvh21n-location-save span.is-error{color:#a43728}
.dvh21n-location-save span.is-ok{color:#2f675b}

@media(max-width:850px){
  .dvh21n-outlook-row{grid-template-columns:1fr 1fr}
  .dvh21n-score-card{grid-column:1/-1}
  .dvh21n-location-form{grid-template-columns:1fr 1fr}
  .dvh21n-location-form label:first-child{grid-column:1/-1}
}
@media(max-width:700px){
  body .dvh21b-shell .dvh21m611-nav a{flex:0 0 auto!important}
  .dvh21n-fishing{padding:13px;border-radius:18px}
  .dvh21n-head{display:block}
  .dvh21n-spot-button{width:100%;min-width:0;margin-top:9px}
  .dvh21n-empty{align-items:flex-start;flex-wrap:wrap}
  .dvh21n-empty .btn{width:100%;margin-left:0}
  .dvh21n-outlook-row{grid-template-columns:1fr}
  .dvh21n-score-card{grid-column:auto}
  .dvh21n-current-card,.dvh21n-window-card{padding:12px}
  .dvh21n-location-actions{align-items:stretch;flex-direction:column}
  .dvh21n-location-actions .btn{width:100%}
  .dvh21n-location-form{grid-template-columns:1fr}
  .dvh21n-location-form label:first-child{grid-column:auto}
  .dvh21n-location-save .btn{flex:1 1 100%}
  .dvh21n-meta{display:block}
  .dvh21n-meta span{display:block;margin-top:3px}
}


/* Phase 21N.2 — Fishing Intelligence UX polish */
.dvh21n2-head{margin-bottom:8px}
.dvh21n2-titleblock{min-width:0}
.dvh21n2-spotline{display:flex;align-items:center;gap:7px;margin:5px 0 4px;color:#123f38}
.dvh21n2-spotline>span{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#123f38;color:#fff;font-size:.72rem}
.dvh21n2-spotline strong{font-size:.84rem;line-height:1.2}
.dvh21n2-score-card{position:relative}
.dvh21n2-why{margin-top:9px;border-top:1px solid rgba(18,63,56,.08);padding-top:8px}
.dvh21n2-why summary{display:inline-flex;align-items:center;gap:5px;color:#b1710c;font-size:.6rem;font-weight:900;cursor:pointer;list-style:none}
.dvh21n2-why summary::-webkit-details-marker{display:none}
.dvh21n2-why summary::after{content:'+';display:inline-grid;place-items:center;width:17px;height:17px;border-radius:50%;background:#f3efe5;color:#8e620d}
.dvh21n2-why[open] summary::after{content:'–'}
.dvh21n2-factors{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:8px}
.dvh21n2-factor{padding:7px 8px;border-radius:10px;background:#f6f8f5}
.dvh21n2-factor>span{display:block;color:#7b8782;font-size:.5rem;font-weight:900;text-transform:uppercase;letter-spacing:.05em}
.dvh21n2-factor>b{display:block;margin:2px 0;color:#173f38;font-size:.61rem}
.dvh21n2-factor>small{display:block;color:#68746f;font-size:.52rem;line-height:1.35}
.dvh21n2-factor.is-good{background:#eff6f0}
.dvh21n2-factor.is-caution{background:#fff5e8}
.dvh21n2-current-top{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin:6px 0 10px}
.dvh21n2-current-top>strong{margin:0!important;white-space:nowrap}
.dvh21n2-condition{display:flex;align-items:center;gap:8px;min-width:0}
.dvh21n2-condition>i{display:grid;place-items:center;flex:0 0 35px;height:35px;border-radius:12px;background:#edf3ee;color:#123f38;font-size:1.2rem;font-style:normal}
.dvh21n2-condition b{display:block;color:#173f38;font-size:.7rem;line-height:1.2}
.dvh21n2-condition small{display:block;margin-top:2px;color:#7c8883;font-size:.5rem}
.dvh21n2-refreshbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:10px 0 8px;padding:8px 10px;border-radius:12px;background:#f2f5f1}
.dvh21n2-refreshbar>div{min-width:0}
.dvh21n2-refreshbar span,.dvh21n2-refreshbar small{display:block;color:#6f7b76;font-size:.54rem;line-height:1.35}
.dvh21n2-refreshbar small{margin-top:2px;color:#8b9591}
.dvh21n2-refreshbar button{border:0;border-radius:999px;padding:7px 10px;background:#123f38;color:#fff;font-size:.57rem;font-weight:900;white-space:nowrap;cursor:pointer}
.dvh21n2-refreshbar button:disabled{opacity:.6;cursor:wait}
.dvh21n2-refreshbar button.is-loading span{display:inline-block;animation:dvh21n2spin .8s linear infinite}
@keyframes dvh21n2spin{to{transform:rotate(360deg)}}
.dvh21n2-daystrip{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:7px}
.dvh21n2-daystrip>div{padding:7px 8px;border-radius:10px;background:#f5f7f4}
.dvh21n2-daystrip span{display:block;color:#83908a;font-size:.48rem;font-weight:900;text-transform:uppercase}
.dvh21n2-daystrip strong{display:block;margin-top:2px;color:#123f38;font-size:.59rem}
.dvh21n2-hour-main{display:flex;align-items:center;gap:5px;margin:4px 0 1px}
.dvh21n2-hour-main span{font-size:1rem}
.dvh21n2-hour-main strong{margin:0}
.dvh21n2-hour-condition{min-height:1.2em;color:#445f58!important;font-weight:800}
.dvh21n2-day-condition{display:flex;align-items:center;gap:5px;margin:5px 0 3px}
.dvh21n2-day-condition i{font-style:normal;font-size:.95rem}
.dvh21n2-day-condition small{margin:0!important;color:#53655f!important;font-weight:800}
.dvh21n2-fishing .dvh21n-attribution{margin-top:7px}
.dvh21n2-fishing .dvh21n-disclaimer{padding-top:7px;border-top:1px solid rgba(18,63,56,.07)}

@media(max-width:700px){
  .dvh21n2-fishing{padding:11px}
  .dvh21n2-head{margin-bottom:6px}
  .dvh21n2-titleblock p{font-size:.68rem}
  .dvh21n2-spotline{margin:4px 0 2px}
  .dvh21n2-spotline strong{font-size:.78rem}
  .dvh21n2-spot-button{padding:8px 10px;margin-top:7px}
  .dvh21n2-outlook-row{gap:7px}
  .dvh21n2-score-card,.dvh21n2-current-card,.dvh21n2-window-card{padding:10px}
  .dvh21n-score-card>div strong{font-size:1.75rem}
  .dvh21n-score-card p,.dvh21n-window-card p{margin-top:5px;font-size:.61rem}
  .dvh21n2-why{margin-top:7px;padding-top:6px}
  .dvh21n2-factors{grid-template-columns:1fr;gap:4px}
  .dvh21n2-factor{padding:6px 7px}
  .dvh21n2-current-top{margin:5px 0 7px}
  .dvh21n2-condition>i{flex-basis:31px;height:31px;border-radius:10px;font-size:1.05rem}
  .dvh21n-current-grid{gap:5px}
  .dvh21n-current-grid span{padding:6px 7px}
  .dvh21n2-refreshbar{margin:8px 0 6px;padding:7px 8px}
  .dvh21n2-refreshbar button{padding:7px 9px}
  .dvh21n-tabs{margin:8px 0 6px}
  .dvh21n2-daystrip{gap:4px}
  .dvh21n2-daystrip>div{padding:6px}
  .dvh21n-hour{padding:8px}
  .dvh21n-day{padding:8px}
}


/* Phase 21N.2A — fishing-location CTA repair + compact refresh */
.dvh21n-empty[hidden],.dvh21n-location-panel[hidden]{display:none!important}
.dvh21n-location-panel:not([hidden]){display:block}
.dvh21n2-refreshbar button{padding:5px 8px;font-size:.53rem;line-height:1.15}
@media(max-width:700px){
  .dvh21n2-refreshbar{padding:6px 7px}
  .dvh21n2-refreshbar button{padding:5px 7px;font-size:.51rem}
}
