/* =========================================================================
   CHAT (Spolecznosc) re-skin - motyw sonar/glebia
   Port z handoff designu "Czat FishRadar.dc.html". Uzywa istniejacych tokenow
   z styles.css (--color-void/abyss/.../sonar/buoy/reef, fonty Instrument, glass).
   Prefiks klas: .frc-  (FishRadar Chat)
   ========================================================================= */

/* --- keyframes --- */
@keyframes frc-msgIn   { from{opacity:0;transform:translateY(10px) scale(.985)} to{opacity:1;transform:none} }
@keyframes frc-fadeUp  { from{opacity:0;transform:translateY(12px)} to{opacity:1;transform:none} }
@keyframes frc-livePulse{ 0%{box-shadow:0 0 0 0 var(--color-sonar-50)} 70%{box-shadow:0 0 0 5px rgba(46,236,193,0)} 100%{box-shadow:0 0 0 0 rgba(46,236,193,0)} }
@keyframes frc-buoyPulse{ 0%{box-shadow:0 0 0 0 rgba(255,159,67,.5)} 70%{box-shadow:0 0 0 5px rgba(255,159,67,0)} 100%{box-shadow:0 0 0 0 rgba(255,159,67,0)} }
@keyframes frc-typing  { 0%,60%,100%{transform:translateY(0);opacity:.35} 30%{transform:translateY(-4px);opacity:1} }
@keyframes frc-echo    { 0%{transform:scale(.5);opacity:.55} 100%{transform:scale(2.4);opacity:0} }

/* --- shell: sidebar 248 | panel | rail 264 --- */
.frc-shell{
  display:grid; grid-template-columns:248px 1fr 264px;
  height:100%; min-height:0;
  background:var(--color-abyss); color:var(--color-ink);
  font-family:var(--font-sans);
}
.frc-shell *{box-sizing:border-box}

/* --- sidebar --- */
.frc-side{background:var(--color-void);border-right:1px solid var(--color-ink-06);display:flex;flex-direction:column;min-height:0}
.frc-side__search{margin:16px 14px 12px;display:flex;align-items:center;gap:9px;background:var(--color-deep);border:1px solid var(--color-ink-10);border-radius:10px;padding:9px 12px;color:var(--color-ink-40);font-size:13px}
.frc-side__nav{padding:2px 10px 8px;display:flex;flex-direction:column;gap:2px}
.frc-navitem{cursor:pointer;display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:9px;transition:background var(--duration-fast,.15s)}
.frc-navitem:hover{background:var(--color-ink-06)}
.frc-navitem--active{background:var(--color-sonar-10)}
.frc-navitem__ico{width:18px;display:flex;justify-content:center;color:var(--color-ink-40)}
.frc-navitem--active .frc-navitem__ico,.frc-navitem--active .frc-navitem__label{color:var(--color-sonar)}
.frc-navitem__label{font-size:13.5px;font-weight:600;color:var(--color-ink)}
.frc-navitem__badge{margin-left:auto;font-family:var(--font-mono);font-size:10px;font-weight:600;color:var(--color-sonar);background:var(--color-sonar-10);padding:2px 7px;border-radius:50px}

.frc-side__scroll{flex:1;overflow-y:auto;min-height:0;padding:6px 10px 10px}
.frc-side__head{display:flex;align-items:center;justify-content:space-between;padding:10px 8px 6px}
.frc-side__head--gap{padding-top:16px}
.frc-side__title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--color-ink-40)}
.frc-side__plus{font-size:14px;color:var(--color-ink-40);cursor:pointer}

.frc-chrow{cursor:pointer;display:flex;align-items:center;gap:9px;padding:8px 9px;border-radius:9px;margin-bottom:1px;transition:background var(--duration-fast,.15s)}
.frc-chrow:hover{background:var(--color-ink-06)}
.frc-chrow--active{background:var(--color-ink-06)}
.frc-chrow__hash{font-family:var(--font-mono);font-size:14px;color:var(--color-ink-40);width:14px}
.frc-chrow--active .frc-chrow__hash{color:var(--color-sonar)}
.frc-chrow__spot{width:14px;display:flex;justify-content:center;color:var(--color-beacon);font-size:11px}
.frc-chrow__name{font-size:13.5px;font-weight:500;color:var(--color-ink-70);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}
.frc-chrow--active .frc-chrow__name{font-weight:700;color:var(--color-ink)}
.frc-chrow__live{display:flex;align-items:center;gap:4px}
.frc-dot{width:6px;height:6px;border-radius:50%;background:var(--color-sonar)}
.frc-dot--buoy{background:var(--color-buoy)}
.frc-chrow__livenum{font-family:var(--font-mono);font-size:10.5px;color:var(--color-ink-40)}
.frc-unread{font-family:var(--font-mono);font-size:10px;font-weight:700;color:var(--color-void);background:var(--color-sonar);min-width:18px;height:18px;display:flex;align-items:center;justify-content:center;border-radius:50px;padding:0 5px}

/* DM row in sidebar */
.frc-dmrow{cursor:pointer;display:flex;align-items:center;gap:10px;padding:7px 8px;border-radius:9px;margin-bottom:1px}
.frc-dmrow:hover{background:var(--color-ink-06)}
.frc-avatar{border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;color:var(--color-ink);flex-shrink:0;background:var(--color-ridge)}
.frc-avatar--30{width:30px;height:30px;font-size:11px}
.frc-avatar--34{width:34px;height:34px;font-size:12px}
.frc-avatar--38{width:38px;height:38px;font-size:13px}
.frc-avatar--72{width:72px;height:72px;font-size:22px}
.frc-avwrap{position:relative;flex-shrink:0}
.frc-status{position:absolute;right:-1px;bottom:-1px;width:10px;height:10px;border-radius:50%;border:2px solid var(--color-void)}
.frc-status--avail{background:var(--color-sonar)}
.frc-status--fishing{background:var(--color-buoy)}
.frc-status--dnd{background:var(--color-reef)}
.frc-status--invisible{background:var(--color-ink-40)}
.frc-dmrow__body{flex:1;min-width:0}
.frc-dmrow__nick{display:block;font-size:13px;font-weight:600;color:var(--color-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.frc-dmrow__prev{display:block;font-size:11.5px;color:var(--color-ink-40);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* own status bar */
.frc-mestatus{cursor:pointer;margin:8px;padding:9px 11px;border-radius:11px;background:var(--color-deep);border:1px solid var(--color-ink-06);display:flex;align-items:center;gap:10px;transition:border-color var(--duration-fast,.15s)}
.frc-mestatus:hover{border-color:var(--color-sonar-20)}
.frc-mestatus__nick{display:block;font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.frc-mestatus__label{display:block;font-size:11px;font-weight:500}

/* --- main panel --- */
.frc-main{display:flex;flex-direction:column;min-height:0;background:linear-gradient(180deg,var(--color-abyss),var(--color-deep))}
.frc-conv{display:flex;flex-direction:column;height:100%;min-height:0}
.frc-conv__head{flex-shrink:0;padding:15px 22px;border-bottom:1px solid var(--color-ink-06);display:flex;align-items:center;gap:14px;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur)}
.frc-conv__hash{font-family:var(--font-serif);font-size:24px;color:var(--color-sonar)}
.frc-conv__name{font-size:16px;font-weight:700;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.frc-conv__desc{font-size:11.5px;color:var(--color-ink-40);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.frc-livepill{display:flex;align-items:center;gap:7px;padding:6px 12px;border-radius:50px;background:var(--color-sonar-06);border:1px solid var(--color-sonar-20)}
.frc-livepill__dot{width:7px;height:7px;border-radius:50%;background:var(--color-sonar);animation:frc-livePulse 2.4s var(--ease-out) infinite}
.frc-livepill__num{font-family:var(--font-mono);font-size:12px;font-weight:600;color:var(--color-sonar)}
.frc-iconbtn{width:34px;height:34px;border-radius:9px;background:var(--color-ink-06);display:flex;align-items:center;justify-content:center;color:var(--color-ink-40);cursor:pointer;border:none;transition:background var(--duration-fast,.15s),color var(--duration-fast,.15s)}
.frc-iconbtn:hover{background:var(--color-ink-10);color:var(--color-ink)}

/* messages */
.frc-msgs{flex:1;overflow-y:auto;min-height:0;padding:18px 22px 8px;display:flex;flex-direction:column;gap:2px}
.frc-dmbanner{display:flex;align-items:center;gap:10px;padding:11px 13px;margin-bottom:10px;border-radius:12px;background:var(--color-sonar-06);border:1px solid var(--color-sonar-20);font-size:12px;color:var(--color-ink-70)}
.frc-dmbanner__ico{color:var(--color-sonar);font-size:15px}
.frc-dmbanner em{color:var(--color-ink-40);font-style:normal}
.frc-daysep{display:flex;align-items:center;gap:14px;margin:6px 0 14px}
.frc-daysep__line{flex:1;height:1px;background:var(--color-ink-06)}
.frc-daysep__txt{font-family:var(--font-mono);font-size:10.5px;color:var(--color-ink-40);letter-spacing:.05em;text-transform:uppercase}
.frc-sys{display:flex;align-items:center;justify-content:center;gap:10px;margin:10px 0}
.frc-sys__line{flex:1;height:1px;background:var(--color-ink-06)}
.frc-sys__txt{font-size:11.5px;color:var(--color-ink-40)}
.frc-sys__txt .frc-sys__arrow{color:var(--color-sonar)}

.frc-msgrow{position:relative;display:flex;gap:11px;padding:3px 0;animation:frc-msgIn .25s var(--ease-out)}
.frc-msgrow--mine{justify-content:flex-end}
.frc-msgrow__av{position:relative;flex-shrink:0;width:38px}
.frc-msgrow__name{font-size:12.5px;font-weight:600;color:var(--color-ink);margin-bottom:2px}
.frc-msgrow__time{font-family:var(--font-mono);font-size:10px;color:var(--color-ink-40);margin-left:7px;font-weight:400}
.frc-bubble{max-width:560px;padding:9px 13px;border-radius:14px;font-size:13.5px;line-height:1.5;color:var(--color-ink);background:var(--color-shelf);border:1px solid var(--color-ink-06)}
.frc-msgrow--mine .frc-bubble{background:var(--color-sonar-10);border-color:var(--color-sonar-20)}
.frc-mention{color:var(--color-sonar);font-weight:600}
.frc-receipt{font-family:var(--font-mono);font-size:10px;color:var(--color-sonar);margin-top:3px;text-align:right}
.frc-receipt--pending{color:var(--color-ink-40)}

/* typing */
.frc-typing{display:flex;align-items:center;gap:6px;padding:6px 0 4px 49px;color:var(--color-ink-40);font-size:11.5px}
.frc-typing__dots{display:inline-flex;gap:3px}
.frc-typing__dots i{width:5px;height:5px;border-radius:50%;background:var(--color-sonar);display:inline-block;animation:frc-typing 1.2s infinite}
.frc-typing__dots i:nth-child(2){animation-delay:.2s}
.frc-typing__dots i:nth-child(3){animation-delay:.4s}

/* composer */
.frc-composer{flex-shrink:0;padding:12px 18px 16px;border-top:1px solid var(--color-ink-06);background:var(--color-abyss)}
.frc-chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.frc-chip{cursor:pointer;display:inline-flex;align-items:center;gap:6px;padding:7px 13px;border-radius:50px;font-size:12.5px;font-weight:600;background:var(--color-deep);border:1px solid var(--color-ink-10);color:var(--color-ink-70);transition:all var(--duration-fast,.15s)}
.frc-chip:hover{border-color:var(--color-sonar-20);color:var(--color-ink)}
.frc-chip--bite{color:var(--color-buoy);border-color:var(--color-buoy-20,rgba(255,159,67,.22))}
.frc-chip--warn{color:var(--color-reef);border-color:var(--color-reef-20,rgba(255,107,107,.2))}
.frc-inputrow{display:flex;align-items:flex-end;gap:10px;background:var(--color-deep);border:1px solid var(--color-ink-10);border-radius:14px;padding:8px 10px 8px 14px}
.frc-inputrow:focus-within{border-color:var(--color-sonar-20)}
.frc-input{flex:1;background:transparent;border:none;outline:none;resize:none;color:var(--color-ink);font-family:var(--font-sans);font-size:13.5px;line-height:1.5;max-height:120px;padding:4px 0}
.frc-input::placeholder{color:var(--color-ink-40)}
.frc-send{flex-shrink:0;width:36px;height:36px;border-radius:10px;border:none;cursor:pointer;background:var(--color-sonar);color:var(--color-void);display:flex;align-items:center;justify-content:center;font-size:16px}
.frc-send:disabled{background:var(--color-ink-10);color:var(--color-ink-40);cursor:default}

/* --- contextual rail --- */
.frc-rail{background:var(--color-void);border-left:1px solid var(--color-ink-06);display:flex;flex-direction:column;min-height:0;overflow-y:auto;padding:18px 16px}
.frc-rail__title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--color-ink-40);margin-bottom:12px}
.frc-railuser{display:flex;align-items:center;gap:10px;padding:7px 6px;border-radius:9px;cursor:pointer}
.frc-railuser:hover{background:var(--color-ink-06)}
.frc-railuser__nick{font-size:13px;font-weight:600;color:var(--color-ink)}
.frc-railuser__meta{font-size:11px;color:var(--color-ink-40)}

/* badges / pills shared */
.frc-pill{display:inline-flex;align-items:center;gap:9px;padding:8px 14px;border-radius:50px;background:var(--color-abyss);border:1px solid var(--color-ink-10);font-size:12px;color:var(--color-ink-40)}
.frc-pill__num{font-family:var(--font-mono);font-size:13px;font-weight:600;color:var(--color-ink)}
.frc-tag{display:inline-flex;align-items:center;padding:2px 9px;border-radius:50px;font-size:10.5px;font-weight:600;background:var(--color-sonar-10);color:var(--color-sonar)}

/* --- mobile (bottom-sheet / single column) --- */
@media (max-width:760px){
  .frc-shell{grid-template-columns:1fr}
  .frc-side,.frc-rail{display:none}
  .frc-shell--side .frc-side{display:flex;position:absolute;inset:0;z-index:5}
  .frc-shell--rail .frc-rail{display:flex;position:absolute;inset:0;z-index:5}
  .frc-bubble{max-width:78vw}
}

/* === HUB === */
.frc-hub{flex:1;overflow-y:auto;min-height:0;padding:26px 30px 40px}
.frc-greet{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:22px;flex-wrap:wrap}
.frc-greet__h{font-family:var(--font-serif);font-size:30px;line-height:1.1;letter-spacing:-.01em}
.frc-greet__h em{color:var(--color-sonar);font-style:italic}
.frc-greet__sub{font-size:13px;color:var(--color-ink-40);margin-top:5px}
.frc-greet__sub .frc-mono-buoy{font-family:var(--font-mono);color:var(--color-buoy)}
.frc-greet__sub .frc-mono-sonar{font-family:var(--font-mono);color:var(--color-sonar)}
.frc-statuspill{cursor:pointer;display:flex;align-items:center;gap:10px;padding:9px 14px;border-radius:50px;background:var(--color-surface);border:1px solid var(--color-ink-10)}
.frc-statuspill:hover{border-color:var(--color-sonar-20)}
.frc-statuspill__dot{width:9px;height:9px;border-radius:50%;background:var(--color-sonar);box-shadow:0 0 8px var(--color-sonar)}
.frc-sectionlabel{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--color-ink-40)}
.frc-countpill{font-family:var(--font-mono);font-size:11px;color:var(--color-sonar);background:var(--color-sonar-10);padding:2px 8px;border-radius:50px}
.frc-livenow{display:flex;gap:16px;flex-wrap:wrap}
.frc-livenow__item{cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:7px;width:64px}
.frc-livenow__av{width:50px;height:50px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:600}
.frc-livenow__status{position:absolute;right:0;bottom:0;width:14px;height:14px;border-radius:50%;border:3px solid var(--color-abyss)}
.frc-livenow__status--pulse{animation:frc-livePulse 2.4s var(--ease-out) infinite}
.frc-livenow__nick{font-size:11px;color:var(--color-ink-70);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:64px;text-align:center}
.frc-hubcols{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.frc-card{background:var(--color-surface);border:1px solid var(--color-ink-06);border-radius:16px;padding:6px}
.frc-card__title{padding:13px 14px 9px;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--color-ink-40)}
.frc-hubrow{cursor:pointer;display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:11px}
.frc-hubrow:hover{background:var(--color-ink-06)}
.frc-hubrow__hash{font-family:var(--font-serif);font-size:19px;color:var(--color-sonar);width:16px}
.frc-hubrow__ico{width:34px;height:34px;border-radius:10px;background:var(--color-deep);border:1px solid var(--color-ink-10);display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0;font-family:var(--font-serif)}
.frc-hubrow__name{font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.frc-hubrow__sub{font-size:11px;color:var(--color-ink-40);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.frc-hubrow__live{display:flex;align-items:center;gap:6px;flex-shrink:0}
.frc-hubrow__live .frc-dot{animation:frc-livePulse 2.4s infinite}
.frc-hubrow__livenum{font-family:var(--font-mono);font-size:12px;color:var(--color-sonar);font-weight:600}
.frc-hubrow__time{font-family:var(--font-mono);font-size:10px;color:var(--color-ink-40)}

/* === FRIENDS === */
.frc-fr{display:flex;flex-direction:column;height:100%;min-height:0}
.frc-fr__head{flex-shrink:0;padding:18px 26px 14px;border-bottom:1px solid var(--color-ink-06)}
.frc-fr__title{font-family:var(--font-serif);font-size:24px;letter-spacing:-.01em;margin-bottom:13px}
.frc-fr__search{display:flex;align-items:center;background:var(--color-deep);border:1px solid var(--color-ink-10);border-radius:10px;padding:9px 13px;gap:9px;margin-bottom:14px;color:var(--color-ink-40);font-size:13px}
.frc-fr__tabs{display:flex;gap:7px;flex-wrap:wrap}
.frc-fr__tab{cursor:pointer;display:flex;align-items:center;gap:7px;padding:8px 14px;border-radius:50px;background:transparent;border:1px solid var(--color-ink-10);color:var(--color-ink-70);font-family:var(--font-sans);font-size:13px;font-weight:600}
.frc-fr__tab--active{background:var(--color-sonar-10);border-color:var(--color-sonar-20);color:var(--color-sonar)}
.frc-fr__tab span{font-family:var(--font-mono);font-size:10px;color:var(--color-ink-40)}
.frc-fr__list{flex:1;overflow-y:auto;min-height:0;padding:14px 18px 30px}
.frc-frrow{display:flex;align-items:center;gap:13px;padding:11px 12px;border-radius:12px}
.frc-frrow:hover{background:var(--color-ink-06)}
.frc-frrow__name{font-size:14px;font-weight:600}
.frc-frrow__meta{font-size:11.5px;color:var(--color-ink-40)}
.frc-btn{cursor:pointer;padding:8px 15px;border-radius:9px;border:none;background:var(--color-sonar);color:var(--color-void);font-family:var(--font-sans);font-size:12.5px;font-weight:600}
.frc-btn--ghost{background:var(--color-ink-06);border:1px solid var(--color-ink-10);color:var(--color-ink)}
.frc-btn--reject{background:transparent;border:1px solid var(--color-ink-10);color:var(--color-ink-40)}
.frc-btn--sent{cursor:default;background:var(--color-ink-06);border:1px solid var(--color-ink-10);color:var(--color-ink-40)}
.frc-btn--unblock{background:rgba(255,107,107,.08);border:1px solid var(--color-reef);color:var(--color-reef)}
.frc-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:70px 20px;color:var(--color-ink-40);text-align:center}
.frc-empty__echo{position:relative;width:64px;height:64px;display:flex;align-items:center;justify-content:center}
.frc-empty__echo span:nth-child(1){position:absolute;width:8px;height:8px;border-radius:50%;background:var(--color-sonar-50)}
.frc-empty__echo span:nth-child(2){position:absolute;width:64px;height:64px;border-radius:50%;border:1px solid var(--color-sonar-20);animation:frc-echo 2.8s var(--ease-out) infinite}

/* mobile sidebar toggle */
.frc-mobtoggle{display:none}
@media (max-width:760px){
  .frc-mobtoggle{display:flex;align-items:center;justify-content:center;position:absolute;top:10px;left:10px;z-index:10;width:38px;height:38px;border-radius:10px;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--color-ink-10);color:var(--color-ink);font-size:18px;cursor:pointer}
  .frc-shell--side .frc-side{box-shadow:0 0 60px rgba(0,0,0,.7)}
  .frc-main{padding-top:0}
  .frc-conv__head,.frc-fr__head,.frc-hub{padding-left:56px}
}
