/* Fishing owns a bounded one-column frame. Even landscape keeps its full pond
   width instead of losing 124px to the generic side tool shelf. */
#game #playroom-focus.fit-activity.activity-fishing,
#game #playroom-focus.fit-activity.short-play.activity-fishing{
  grid-template-columns:minmax(0,1fr)!important;
  grid-template-rows:44px minmax(0,1fr) 48px!important;
  gap:5px!important;
  background:radial-gradient(ellipse at 50% 36%,#f8ecd1 0,#ecdbb8 70%,#e4cfaa 100%)!important;
}
#game .fit-activity.activity-fishing .play-head{grid-column:1!important;grid-row:1!important;grid-template-rows:44px!important}
#game .fit-activity.activity-fishing .play-head h1{align-self:center;margin:0;font-size:21px!important;line-height:28px}
#game .fit-activity.activity-fishing .play-head p,
#game .fit-activity.activity-fishing .play-save{display:none!important}
#game .fit-activity.activity-fishing #play-stage{grid-column:1!important;grid-row:2!important;position:relative;overflow:hidden!important}
#game .fit-activity.activity-fishing #play-tools{
  grid-column:1!important;grid-row:3!important;display:flex!important;
  align-self:stretch!important;direction:ltr;height:48px!important;gap:12px!important;
  flex-wrap:nowrap!important;justify-content:center!important;
}
#game .fit-activity.activity-fishing #play-feedback{
  position:absolute!important;left:0!important;top:0!important;width:1px!important;height:1px!important;overflow:hidden!important;clip-path:inset(50%);clip:rect(0,0,0,0);white-space:nowrap;
}
.fishing-scene{position:relative;flex:none;isolation:isolate;touch-action:manipulation;user-select:none;-webkit-user-select:none;font-family:Thmanyah,sans-serif}
.fishing-scene img{pointer-events:none;-webkit-user-drag:none;user-select:none}
.fishing-order{position:absolute;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;z-index:2;direction:rtl}
.fishing-journey{display:flex;direction:rtl;align-items:center;gap:16px;height:21px;flex:none}
.fishing-level{position:relative;display:grid;place-items:center;width:19px;height:19px;border:1px solid #b8a17c;border-radius:50%;color:#7b765e;background:#f6e8c9;font-size:12px;line-height:1}
.fishing-level:not(:last-child):after{content:'';position:absolute;right:22px;top:8px;width:11px;border-top:2px dotted #b8a17c}
.fishing-level.current{background:#315b60;color:#fff4d9;border-color:#315b60}
.fishing-level.done{background:#71916a;color:#fff8e2;border-color:#587352}
.fishing-order-title{margin:0;font-size:18px;line-height:24px;font-weight:700;color:#31565e;text-align:center}
.fishing-sequence{direction:rtl;display:flex;align-items:center;justify-content:center;gap:5px;height:calc(var(--fishing-slot,64px)*.72 + 8px);min-height:0;flex:none}
.fishing-order-fish{position:relative;display:grid;place-items:center;width:var(--fishing-slot,64px);height:calc(var(--fishing-slot,64px)*.72);box-sizing:border-box;flex:none;border:2px solid #d2bc91;background:#3e83a1;border-radius:17px 21px 17px 20px;box-shadow:0 2px 0 #b6a17b;transform:rotate(-2deg)}
.fishing-order-fish:nth-child(4n+1){transform:rotate(2deg)}
.fishing-order-fish.current{border-color:#c48f32;box-shadow:0 0 0 3px #fff0b8,0 3px 0 #a67d3a}
.fishing-order-fish.caught{border-color:#587d5d;box-shadow:0 2px 0 #587d5d;opacity:.78}
.fishing-order-fish.covered{background:repeating-linear-gradient(45deg,#dec695 0 5px,#e5d1a7 5px 9px);border-color:#ac9164}
.fishing-order-fish .fishing-fish-picture{width:100%;height:100%;border-radius:13px 17px 13px 16px}
.fishing-order-number{position:absolute;bottom:-6px;right:-5px;min-width:19px;height:19px;padding:0 2px;box-sizing:border-box;display:grid;place-items:center;border-radius:50%;font-size:11px;line-height:1;background:#fff6d9;color:#5e6859;border:1px solid #b6a17b}
.caught .fishing-order-number{background:#5f865d;border-color:#4d7251;color:#fff8df}
.fishing-sequence-arrow{width:17px;flex:none;text-align:center;font:700 17px/1 Thmanyah,sans-serif;color:#9c7c4e}
.fishing-question{font-size:29px;line-height:1;color:#6e795f;text-shadow:1px 1px #fff1cd}
.fishing-orders{display:flex;direction:rtl;gap:7px;align-items:center;height:9px;flex:none}
.fishing-order-dot{width:5px;height:5px;border-radius:50%;border:1px solid #a89168;background:#ecdcba}
.fishing-order-dot.current{background:#e0ad52;border-color:#af7d35}
.fishing-order-dot.done{background:#6c9468;border-color:#597b54}
.fishing-pond{position:absolute;overflow:hidden;pointer-events:none}
.fishing-pond-art{position:absolute;left:0;max-width:none!important;max-height:none!important;display:block}
#game .activity-fishing .fish-target{position:absolute;z-index:3;border:3px solid transparent!important;border-radius:10px!important;background:transparent!important;box-shadow:none!important;padding:0!important;min-width:44px!important;min-height:44px!important;touch-action:manipulation;transition:background .15s,border-color .15s}
#game .activity-fishing .fish-target:disabled{opacity:1!important}
#game .activity-fishing .fish-target:after{content:none!important}
#game .activity-fishing .fish-target:focus-visible{outline:3px dashed #fff2ba!important;outline-offset:2px;box-shadow:none!important}
#game .activity-fishing .fish-target.fish-hint{border-color:transparent!important;box-shadow:none!important;background:transparent!important}
#game .activity-fishing .fish-target.fish-lifted{border-color:transparent!important;box-shadow:none!important;background:transparent!important}
.fish-target kbd{display:none;position:absolute;left:0;bottom:0;font:12px/18px Thmanyah,sans-serif;min-width:18px;color:#214a61;background:#fff4d9;border-radius:6px}
.fish-target:focus-visible kbd{display:block}
.fishing-net{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:3px;box-sizing:border-box;direction:rtl;z-index:4;pointer-events:none}
.fishing-net-slots{height:37px;min-width:115px;max-width:100%;box-sizing:border-box;padding:0 10px 6px;display:flex;direction:rtl;align-items:center;justify-content:center;gap:5px;border:3px solid #ad8955;border-top:4px solid #d4af74;border-radius:6px 6px 38% 38%;background:repeating-linear-gradient(45deg,transparent 0 7px,#b5965b55 7px 8px),repeating-linear-gradient(-45deg,#fbf0d188 0 7px,#b5965b55 7px 8px);box-shadow:0 2px 0 #735c3922}
.fishing-net-slot{width:39px;height:25px;display:grid;place-items:center;flex:none;border-radius:50%;background:#d9c9a535}
.fishing-net-slot.filled{background:#3d81a1;box-shadow:0 0 0 2px #f4ddb0;transform:rotate(-5deg)}
.fishing-net-slot:nth-child(2n){transform:rotate(7deg)}
.fishing-net-slot .fishing-fish-picture{width:100%;height:100%;border-radius:50%}
.fishing-message{font-size:15px;line-height:20px;text-align:center;white-space:nowrap;color:#496961;font-weight:700}
.fishing-fish-picture{position:relative;display:block;overflow:hidden;pointer-events:none;background:#3e84a1}
.fishing-fish-picture>img{position:absolute;max-width:none!important;max-height:none!important;width:var(--fish-image-width)!important;height:var(--fish-image-height)!important;left:var(--fish-image-left);top:var(--fish-image-top);display:block}
.fishing-flight{position:absolute;z-index:7;border:0;border-radius:0;box-shadow:none;background:transparent;animation:fishing-to-net .5s cubic-bezier(.24,.66,.4,1) both}
@keyframes fishing-to-net{0%{transform:translate(0,0) scale(1.05);opacity:1}30%{transform:translate(calc(var(--flight-x)*.25),calc(var(--flight-y)*.1 - 15px)) scale(1.13);opacity:1}100%{transform:translate(var(--flight-x),var(--flight-y)) scale(.6);opacity:0}}
#game .fit-activity.activity-fishing #play-tools .fishing-action{display:flex;flex-direction:row;direction:rtl;align-items:center;justify-content:center;gap:5px;box-sizing:border-box;height:48px;min-width:64px;min-height:48px;padding:3px 9px;border:0;box-shadow:none;border-radius:14px;background:#fff2d04f;font-size:14px;line-height:18px;color:#315960;white-space:nowrap}
#game .fit-activity.activity-fishing #play-tools .fishing-action img{width:33px;height:33px;object-fit:contain;flex:none}
#game .fit-activity.activity-fishing #play-tools .fishing-action:hover{background:#fff4d5}
#game .fit-activity.activity-fishing #play-tools .fishing-action[hidden]{display:none!important}
#game .fit-activity.activity-fishing #play-tools #fishing-start{border:1px solid #baa174;background:#fff3d7;min-width:102px;box-shadow:0 3px 0 #b49a6c55;font-size:16px;font-weight:700}
.fishing-next-left img{transform:none}
.fishing-wide .fishing-order-title{font-size:16px;line-height:20px}
.fishing-wide .fishing-order{gap:5px}
.fishing-wide .fishing-message{font-size:13px;line-height:18px}
.fishing-wide .fishing-net-slots{gap:3px;padding-inline:6px}
.fishing-wide .fishing-net-slot{width:35px;height:24px}
.fishing-wide .fishing-sequence{gap:4px}
.fishing-wide .fishing-order-fish{border-radius:11px}
.fishing-wide .fishing-sequence-arrow{font-size:13px;width:13px}
.fishing-wide .fishing-order-number{min-width:16px;height:16px;font-size:10px;bottom:-5px}
.fishing-wide .fishing-question{font-size:24px}
.fishing-wide .fishing-sequence .fishing-fish-picture{border-radius:9px}
.fishing-net-complete .fishing-net-slots{border-color:#78945d;box-shadow:0 2px 0 #58735255}
@media(prefers-reduced-motion:reduce){.fishing-flight{animation:none;display:none}.fish-target{transition:none!important}}

.fishing-line-icon{display:block;width:13px;height:13px;overflow:visible;flex:none}
.fishing-line-icon path{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.fishing-sequence-arrow .fishing-line-icon{width:100%;height:17px}
.fishing-wide .fishing-sequence-arrow .fishing-line-icon{height:15px}
.fishing-order-number .fishing-line-icon,.fishing-level .fishing-line-icon{width:12px;height:12px}

#game .activity-fishing .fish-target,#game .activity-fishing .fish-target:active{transform:none!important}

/* The painted rod is a non-interactive visual cursor; real fish targets stay44px. */
.fishing-rod-canvas{position:absolute;left:0;top:0;z-index:6;pointer-events:none!important;display:block;max-width:none!important;max-height:none!important}
.fishing-flight[data-lift-fish="0"]{clip-path:polygon(3% 29%,22% 14%,40% 17%,40% 0,53% 0,54% 19%,70% 37%,91% 29%,99% 35%,94% 59%,99% 83%,74% 84%,61% 94%,35% 87%,17% 68%,4% 53%)}
.fishing-flight[data-lift-fish="1"]{clip-path:polygon(0 22%,15% 15%,28% 25%,43% 15%,46% 0,61% 0,63% 17%,86% 24%,100% 41%,96% 66%,79% 83%,58% 87%,35% 73%,18% 83%,7% 73%,11% 52%)}
.fishing-flight[data-lift-fish="2"]{clip-path:polygon(1% 23%,28% 19%,30% 0,46% 0,49% 20%,70% 37%,80% 60%,97% 50%,100% 61%,91% 90%,77% 97%,55% 75%,34% 78%,12% 62%,2% 41%)}
.fishing-flight[data-lift-fish="3"]{clip-path:polygon(0 23%,19% 16%,22% 0,38% 0,42% 17%,61% 27%,70% 42%,88% 23%,99% 24%,95% 55%,94% 80%,77% 84%,58% 91%,34% 80%,13% 67%,2% 47%)}

#game .activity-fishing .fish-target.ready,#game .activity-fishing .fish-target.requested{border-color:transparent!important;background:transparent!important;box-shadow:none!important}
#game .activity-fishing .fish-target:before,#game .activity-fishing .fish-target:after{content:none!important}

.fishing-scene.rod-visible,.fishing-scene.rod-visible .fish-target{cursor:none}

/* The real Ready/Next buttons are prominent only while waiting. Their bounds
   come from fishingFit, so the reference cards and safe-area edges stay clear. */
#game .fit-activity.activity-fishing .fishing-center-action{
  position:absolute;z-index:8;display:flex;flex-direction:row;direction:rtl;
  align-items:center;justify-content:center;gap:12px;box-sizing:border-box;
  min-width:44px;min-height:44px;margin:0;padding:8px 15px;
  border:2px solid #b69a67;border-radius:24px 29px 25px 21px;
  background:radial-gradient(ellipse at 40% 22%,#fff9e8 0,#fff0cd 68%,#efdaa8 100%);
  box-shadow:inset 0 0 0 3px #fff8df,0 5px 0 #8f713cb3,0 8px 13px #4e4a3030;
  color:#315960;font:700 23px/1.25 Thmanyah,sans-serif;white-space:nowrap;
  cursor:pointer;touch-action:manipulation;
}
#game .fit-activity.activity-fishing .fishing-center-action img{width:44px;height:44px;object-fit:contain;flex:none;filter:drop-shadow(0 2px 1px #6b492a30)}
#game .fit-activity.activity-fishing .fishing-center-action.fishing-next-left{direction:ltr}
#game .fit-activity.activity-fishing .fishing-center-action span{direction:rtl}
#game .fit-activity.activity-fishing .fishing-center-action:hover{filter:brightness(1.04)}
#game .fit-activity.activity-fishing .fishing-center-action:active{transform:translateY(2px);box-shadow:inset 0 0 0 3px #fff8df,0 3px 0 #8f713cb3}
#game .fit-activity.activity-fishing .fishing-center-action:focus-visible{outline:3px solid #315b60;outline-offset:5px}
#game .fit-activity.activity-fishing .fishing-center-action:disabled{opacity:.82;cursor:default;filter:none}
#game .fit-activity.activity-fishing .fishing-center-action[hidden]{display:none!important}
#game .fit-activity.activity-fishing .fishing-wide .fishing-center-action{gap:9px;padding:6px 12px;font-size:21px;border-radius:20px 24px 21px 19px}
#game .fit-activity.activity-fishing .fishing-wide .fishing-center-action img{width:38px;height:38px}
