/* «Ловим вместе» (update/51_TOGETHER.md): удочка друга слева, его имя, полоса «Вместе» с общим косяком, улов друга.
   Двигается только обёртка удочки (transform), тень — на картинке внутри, как у своей (app.css #rod-box). */
#rod2-box { position: absolute; left: 0; top: 0; pointer-events: none; will-change: transform; transform-origin: 14% 93%; }
#rod2 { display: block; width: 100%; height: 100%; transform: scaleX(-1); filter: brightness(.9) drop-shadow(0 6px 12px rgba(0, 0, 0, .4)); }
#fishing.duo-on #pet-box { display: none; }        /* слева — друг, питомец уступает ему мостки */


#fishing .kn-duo { width: 40px; height: 34px; display: grid; place-items: center; position: relative;
  color: rgba(246, 243, 236, .82); filter: drop-shadow(0 1px 6px rgba(0, 0, 0, .7)); }
#fishing .kn-duo .icon { width: 22px; height: 22px; }
#fishing .kn-duo.on { color: #A9E4D0; }
#fishing .kn-duo.on::after { content: ""; position: absolute; right: 6px; top: 4px; width: 8px; height: 8px; border-radius: 50%;
  background: #A9E4D0; box-shadow: 0 0 10px rgba(169, 228, 208, .9); }

/* полоса «Вместе»: кто рядом, общий косяк, сильный клёв */
.duo-bar { position: absolute; left: 12px; right: 12px; top: calc(var(--safe-top, 0px) + 150px); z-index: 6;
  display: flex; align-items: center; gap: 10px; padding: 7px 8px 7px 12px; border-radius: 16px;
  background: rgba(6, 16, 20, .66); border: 1px solid rgba(169, 228, 208, .3); color: #F6F3EC; transition: opacity .3s; }
.duo-bar.hidden { display: none; }
.duo-bar.wait { flex-direction: column; align-items: flex-start; gap: 2px; padding: 8px 12px; }
.duo-bar.wait small { font: 500 12.5px/1.25 var(--f-text, sans-serif); color: rgba(246, 243, 236, .72); }
.duo-who { display: inline-flex; align-items: center; gap: 6px; font: italic 800 17px/1 var(--f-display, sans-serif); color: #A9E4D0; white-space: nowrap; }
.duo-who svg { flex: none; width: 18px; height: 18px; }
.duo-school { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.duo-school small { font: 600 12.5px/1 var(--f-text, sans-serif); color: rgba(246, 243, 236, .8); }
.duo-school i { display: block; height: 6px; border-radius: 3px; background: rgba(255, 255, 255, .14); overflow: hidden; }
.duo-school em { display: block; height: 100%; background: linear-gradient(90deg, #A9E4D0, #F3D28B); transform-origin: 0 50%; transition: transform .5s; }
.duo-school b { font: italic 900 17px/1 var(--f-display, sans-serif); color: #F3D28B; }
.duo-bar.strong { border-color: rgba(243, 210, 139, .7); background: rgba(40, 28, 6, .7); }
.duo-x { flex: none; width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; color: rgba(246, 243, 236, .75);
  background: rgba(255, 255, 255, .08); }
.duo-x svg { width: 16px; height: 16px; }
#fishing[data-st="fight"] .duo-bar, #fishing[data-st="landing"] .duo-bar { opacity: .5; pointer-events: none; }

/* улов друга — карточкой слева */
.duo-catch { position: absolute; left: 12px; top: var(--duo-under, calc(var(--safe-top, 0px) + 206px)); z-index: 7; max-width: calc(100% - 24px);
  display: flex; align-items: center; gap: 10px; padding: 8px 14px 8px 8px; border-radius: 18px; pointer-events: none;
  background: rgba(6, 16, 20, .78); border: 1px solid rgba(169, 228, 208, .35); color: #F6F3EC;
  opacity: 0; transform: translate3d(-24px, 0, 0); transition: opacity .35s, transform .35s; }
.duo-catch.on { opacity: 1; transform: none; }
.duo-catch img { width: 64px; height: 44px; object-fit: contain; }
.duo-catch small { display: block; font: 600 12px/1.2 var(--f-text, sans-serif); color: #A9E4D0; }
.duo-catch b { display: block; font: italic 800 17px/1.1 var(--f-display, sans-serif); }
.duo-catch.trophy, .duo-catch.giant { border-color: rgba(243, 210, 139, .8); }
.duo-catch.giant b { color: #F3D28B; }

/* окно «Ловим вместе» */
.duo-sheet { padding-bottom: 8px; }
.duo-p { margin: 10px 0 12px; font: 500 15px/1.4 var(--f-text, sans-serif); color: rgba(246, 243, 236, .9); }
.duo-why { list-style: none; margin: 0 0 12px; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.duo-why li { display: flex; gap: 10px; align-items: flex-start; font: 500 14px/1.35 var(--f-text, sans-serif); color: rgba(246, 243, 236, .88); }
.duo-why li svg { flex: none; width: 20px; height: 20px; margin-top: 1px; color: #A9E4D0; }
.duo-why b { color: #F3D28B; font-weight: 700; }
.duo-note { margin: 10px 0; font: 500 13px/1.35 var(--f-text, sans-serif); color: rgba(246, 243, 236, .65); }
.duo-sheet .tp-btn { margin-top: 8px; }
.duo-sheet .tp-btn svg { flex: none; width: 18px; height: 18px; margin-right: 6px; }
.duo-go { display: inline-flex; align-items: center; gap: 4px; height: 32px; padding: 0 10px; border-radius: 11px; font-size: 14px;
  color: #0E2320; background: linear-gradient(100deg, #C6F5E5, #7FD8BE); }
.duo-go svg { width: 15px; height: 15px; }
.duo-sheet .sheet-head .sub svg { width: 14px; height: 14px; margin-right: 4px; vertical-align: -2px; }
.duo-catch > span svg { width: 28px; height: 28px; color: #A9E4D0; }
/* друг не у воды — пара ждёт его до 10 минут (владелец 24.10) */
.duo-school .duo-away { color: rgba(246, 243, 236, .7); }
