
/* Coalition FlashChat
   Dark-gold FlashChat recreation fitted to the Coalition index theme.
*/

.coalition-chat{
  width:100%;
  margin-top:14px;
  overflow:hidden;
  position:relative;
  background:
    radial-gradient(circle at 54% 0,rgba(218,197,141,.06),transparent 34%),
    linear-gradient(180deg,rgba(10,15,14,.96),rgba(3,6,6,.98));
}

.coalition-chat:before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(90deg,rgba(184,154,88,.06),transparent 14%,transparent 86%,rgba(184,154,88,.04)),
    repeating-linear-gradient(0deg,rgba(255,255,255,.015) 0 1px,transparent 1px 3px);
  opacity:.32;
}

.fc-chat-header{
  min-height:50px;
  padding:13px 16px 12px 18px;
  border-bottom:1px solid rgba(184,154,88,.32);
  display:flex;
  align-items:center;
  justify-content:space-between;
  position:relative;
  z-index:1;
  color:var(--gold2);
  font-family:Cinzel,serif;
  letter-spacing:.18em;
  text-transform:uppercase;
  background:
    linear-gradient(90deg,rgba(184,154,88,.08),rgba(184,154,88,.025),rgba(184,154,88,.06));
}

.fc-chat-title{
  display:flex;
  align-items:center;
  gap:12px;
  font-size:17px;
}

.fc-chat-sigil{
  width:22px;
  height:22px;
  display:grid;
  place-items:center;
  color:var(--gold);
  border:1px solid rgba(184,154,88,.5);
  border-radius:50%;
  font-size:12px;
  box-shadow:0 0 12px rgba(218,197,141,.12);
}

.fc-chat-minimize{
  width:26px;
  height:24px;
  border:1px solid rgba(184,154,88,.55);
  border-radius:4px;
  display:grid;
  place-items:center;
  background:rgba(4,6,6,.72);
  color:var(--gold2);
  font:700 17px/1 Inter,system-ui,sans-serif;
  cursor:pointer;
}

.fc-chat-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) 262px;
  gap:0;
  padding:14px;
  position:relative;
  z-index:1;
}

.fc-chat-main{
  display:grid;
  grid-template-rows:36px minmax(270px,370px) 58px;
  min-width:0;
  border:1px solid rgba(184,154,88,.34);
  border-right:0;
  background:
    radial-gradient(circle at 50% 0,rgba(184,154,88,.045),transparent 32%),
    rgba(4,8,8,.72);
}

.fc-message-stream{
  overflow:auto;
  min-height:270px;
  padding:0;
  scrollbar-width:thin;
  scrollbar-color:rgba(184,154,88,.55) rgba(4,7,7,.8);
}

.fc-message-stream::-webkit-scrollbar,
.fc-online-list::-webkit-scrollbar{
  width:10px;
}

.fc-message-stream::-webkit-scrollbar-track,
.fc-online-list::-webkit-scrollbar-track{
  background:rgba(3,6,6,.95);
  border-left:1px solid rgba(184,154,88,.16);
}

.fc-message-stream::-webkit-scrollbar-thumb,
.fc-online-list::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg,rgba(184,154,88,.65),rgba(69,56,31,.8));
  border:2px solid rgba(3,6,6,.95);
  border-radius:99px;
}

.fc-message{
  display:grid;
  grid-template-columns:58px minmax(0,1fr);
  gap:14px;
  min-height:68px;
  padding:10px 14px;
  border-bottom:1px solid rgba(184,154,88,.14);
}

.fc-message:hover{
  background:rgba(184,154,88,.035);
}

.fc-avatar{
  width:48px;
  height:48px;
  border:1px solid rgba(184,154,88,.62);
  border-radius:4px;
  display:grid;
  place-items:center;
  color:var(--gold2);
  background:
    radial-gradient(circle at 50% 36%,rgba(218,197,141,.18),transparent 35%),
    linear-gradient(180deg,rgba(12,16,15,.96),rgba(3,6,6,.96));
  font-family:Cinzel,serif;
  font-size:25px;
  overflow:hidden;
}

.fc-avatar img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.fc-avatar-glyph{
  text-shadow:0 0 12px rgba(218,197,141,.38);
}

.fc-message-body{
  min-width:0;
}

.fc-message-meta{
  display:grid;
  grid-template-columns:minmax(0,1fr) 84px 18px;
  gap:10px;
  align-items:center;
  min-height:22px;
  color:var(--muted);
  font-size:12px;
}

.fc-message-meta strong{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--gold2);
  font-size:14px;
  font-weight:500;
  letter-spacing:.04em;
}

.fc-message-meta time{
  color:#8d877d;
  text-align:right;
}

.fc-message-kind{
  color:var(--gold);
  text-align:right;
}

.fc-message-body p{
  margin:3px 0 0;
  color:var(--text);
  font-size:14px;
  line-height:1.45;
}

.fc-message-system .fc-message-body p{
  color:#bdb5a8;
}

.fc-input-row{
  display:grid;
  grid-template-columns:132px minmax(0,1fr) 48px 86px;
  gap:10px;
  align-items:center;
  padding:10px 12px;
  border-top:1px solid rgba(184,154,88,.22);
  background:
    linear-gradient(180deg,rgba(8,12,11,.95),rgba(3,6,6,.98));
}

.fc-input-row select,
.fc-input-row input{
  height:38px;
  border:1px solid rgba(184,154,88,.42);
  border-radius:4px;
  color:var(--text);
  background:
    linear-gradient(180deg,rgba(9,13,12,.98),rgba(4,7,7,.98));
  padding:0 14px;
  outline:none;
  font:14px Inter,system-ui,sans-serif;
}

.fc-input-row select{
  appearance:auto;
  color:#d2c7b7;
}

.fc-input-row input::placeholder{
  color:#777167;
}

.fc-input-row input:focus,
.fc-input-row select:focus{
  border-color:var(--gold);
  box-shadow:0 0 0 1px rgba(184,154,88,.18),0 0 18px rgba(218,197,141,.08);
}

.fc-glyph-button,
.fc-send{
  height:38px;
  border:1px solid rgba(184,154,88,.5);
  border-radius:4px;
  background:
    linear-gradient(180deg,rgba(24,22,17,.95),rgba(6,8,8,.95));
  color:var(--gold2);
  cursor:pointer;
}

.fc-glyph-button{
  font-family:Cinzel,serif;
  font-size:22px;
}

.fc-send{
  text-transform:uppercase;
  letter-spacing:.18em;
  font:700 12px Inter,system-ui,sans-serif;
}

.fc-glyph-button:hover,
.fc-send:hover{
  color:#fff3c8;
  border-color:var(--gold2);
  background:
    linear-gradient(180deg,rgba(184,154,88,.18),rgba(25,19,10,.95));
}

.fc-users-panel{
  min-width:0;
  border:1px solid rgba(184,154,88,.34);
  background:
    radial-gradient(circle at 30% 0,rgba(218,197,141,.05),transparent 30%),
    rgba(4,8,8,.78);
  padding:14px 16px;
}

.fc-users-panel h3{
  margin:0 0 12px;
  padding-bottom:10px;
  border-bottom:1px solid rgba(184,154,88,.18);
  display:flex;
  align-items:center;
  gap:8px;
  color:var(--gold2);
  font-family:Cinzel,serif;
  font-weight:500;
  font-size:13px;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.fc-status-dot,
.fc-dot{
  width:10px;
  height:10px;
  border-radius:50%;
  background:#b7d878;
  box-shadow:0 0 12px rgba(183,216,120,.35);
  flex:0 0 auto;
}

.fc-online-list{
  height:320px;
  overflow:auto;
  list-style:none;
  margin:0;
  padding:0;
  color:#b9b0a3;
  font-size:14px;
  line-height:1.65;
}

.fc-online-list li{
  display:flex;
  align-items:center;
  gap:9px;
  min-height:24px;
  white-space:nowrap;
}

.fc-online-list b{
  color:var(--gold2);
  font-weight:500;
}

.fc-online-list .fc-user-role-admin b{
  color:#f0cf7a;
}

.fc-online-list .fc-user-role-moderator b{
  color:#d6b260;
}

.fc-hidden{
  display:none !important;
}

.sr-only{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

@media(max-width:1000px){
  .fc-chat-layout{
    grid-template-columns:1fr;
  }

  .fc-chat-main{
    border-right:1px solid rgba(184,154,88,.34);
  }

  .fc-users-panel{
    border-top:0;
  }

  .fc-online-list{
    height:auto;
    max-height:180px;
  }

  .fc-input-row{
    grid-template-columns:1fr;
    height:auto;
  }
}


.fc-chat-controls{
  display:flex;
  align-items:center;
  gap:10px;
}

.fc-room-select{
  height:28px;
  min-width:162px;
  border:1px solid rgba(184,154,88,.42);
  border-radius:4px;
  color:var(--gold2);
  background:
    linear-gradient(180deg,rgba(9,13,12,.98),rgba(4,7,7,.98));
  padding:0 10px;
  outline:none;
  font:11px Inter,system-ui,sans-serif;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.fc-chat-mode{
  min-height:36px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:0 14px;
  border-bottom:1px solid rgba(184,154,88,.18);
  color:var(--gold);
  background:rgba(184,154,88,.035);
  font:11px Inter,system-ui,sans-serif;
  letter-spacing:.18em;
  text-transform:uppercase;
}

.fc-exit-pm{
  border:1px solid rgba(184,154,88,.42);
  border-radius:4px;
  background:rgba(3,6,6,.8);
  color:var(--gold2);
  padding:5px 10px;
  cursor:pointer;
  font:10px Inter,system-ui,sans-serif;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.fc-exit-pm:hover{
  color:#fff3c8;
  border-color:var(--gold2);
}

.fc-online-list li[data-user-id]{
  cursor:pointer;
}

.fc-online-list li[data-user-id]:hover{
  color:#fff3c8;
  background:rgba(184,154,88,.055);
}

.fc-role-admin,
.fc-role-system{
  color:#f0cf7a !important;
}

.fc-role-moderator{
  color:#d6b260 !important;
}

@media(max-width:1000px){
  .fc-chat-header{
    align-items:flex-start;
    gap:10px;
    flex-direction:column;
  }

  .fc-chat-controls{
    width:100%;
    justify-content:space-between;
  }

  .fc-room-select{
    flex:1;
  }
}


/* v39 FlashChat centered manifesto header */
.fc-chat-header{
  justify-content:center;
}
.fc-chat-title{
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  justify-content:center;
  text-align:center;
  width:calc(100% - 280px);
  max-width:760px;
  gap:10px;
}
.fc-chat-title span:last-child{
  display:block;
  width:100%;
}
.fc-chat-controls{
  margin-left:auto;
  position:relative;
  z-index:2;
}
@media (max-width:760px){
  .fc-chat-header{
    align-items:flex-start;
    flex-direction:column;
    gap:10px;
  }
  .fc-chat-title{
    position:relative;
    left:auto;
    transform:none;
    width:100%;
    max-width:none;
  }
  .fc-chat-controls{
    margin-left:0;
    align-self:flex-end;
  }
}


/* v40 FlashChat header no-leading-sigil alignment */
.fc-chat-title{
  gap:0;
}
.fc-chat-title .fc-chat-sigil{
  display:none !important;
}


/* v43 FlashChat header-click toggle and dropdown removal */
.fc-chat-header{
  cursor:pointer;
  user-select:none;
}
.fc-chat-header:focus-visible{
  outline:1px solid rgba(218,197,141,.72);
  outline-offset:-4px;
}
.fc-chat-controls{
  gap:8px;
}
.fc-chat-title{
  pointer-events:none;
}
.fc-room-select,
.fc-chat-header label[for="fcRoomSelect"]{
  display:none !important;
}
.fc-chat-collapsed .fc-chat-header{
  border-bottom:0;
}



/* v47 FlashChat broadcast notification relay */
.fc-sound-toggle{
  width:26px;
  height:24px;
  border:1px solid rgba(184,154,88,.55);
  border-radius:4px;
  display:grid;
  place-items:center;
  background:
    radial-gradient(circle at 50% 35%,rgba(218,197,141,.13),transparent 42%),
    rgba(4,6,6,.72);
  color:var(--gold2);
  font:700 14px/1 Cinzel,serif;
  cursor:pointer;
  box-shadow:0 0 0 rgba(218,197,141,0);
  transition:color .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease;
}

.fc-sound-toggle:hover,
.fc-sound-toggle.fc-sound-active{
  color:#fff3c8;
  border-color:var(--gold2);
  background:
    radial-gradient(circle at 50% 35%,rgba(218,197,141,.22),transparent 46%),
    linear-gradient(180deg,rgba(42,34,20,.88),rgba(6,8,8,.95));
  box-shadow:0 0 16px rgba(218,197,141,.14);
}

.fc-notification-stack{
  position:absolute;
  right:18px;
  bottom:74px;
  z-index:5;
  width:min(360px,calc(100% - 36px));
  display:grid;
  gap:10px;
  pointer-events:none;
}

.fc-notification{
  display:grid;
  grid-template-columns:34px minmax(0,1fr);
  gap:10px;
  align-items:center;
  padding:11px 13px;
  border:1px solid rgba(184,154,88,.5);
  background:
    radial-gradient(circle at 20% 0,rgba(218,197,141,.12),transparent 42%),
    linear-gradient(180deg,rgba(11,17,16,.97),rgba(3,6,6,.97));
  color:var(--text);
  box-shadow:0 12px 30px rgba(0,0,0,.34),0 0 26px rgba(218,197,141,.08);
  opacity:0;
  transform:translateY(10px);
  transition:opacity .22s ease,transform .22s ease;
}

.fc-notification-visible{
  opacity:1;
  transform:translateY(0);
}

.fc-notification-sigil{
  width:30px;
  height:30px;
  border:1px solid rgba(218,197,141,.56);
  border-radius:50%;
  display:grid;
  place-items:center;
  color:var(--gold2);
  font-family:Cinzel,serif;
  text-shadow:0 0 10px rgba(218,197,141,.44);
}

.fc-notification-text{
  min-width:0;
  display:grid;
  gap:2px;
}

.fc-notification-text b{
  color:var(--gold2);
  font:600 12px/1.25 Inter,system-ui,sans-serif;
  letter-spacing:.12em;
  text-transform:uppercase;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.fc-notification-text em{
  color:#c9c0b2;
  font:400 13px/1.35 Inter,system-ui,sans-serif;
  font-style:normal;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

@media(max-width:760px){
  .fc-notification-stack{
    right:12px;
    bottom:68px;
    width:calc(100% - 24px);
  }
}


/* v48 FlashChat mobile usability repair
   Fixes the mobile input overlap caused by a fixed chat-main grid row and
   gives messages, controls, and the online list touch-friendly spacing.
*/
@media (max-width:760px){
  .coalition-chat{
    margin-top:10px;
    overflow:hidden;
  }

  .fc-chat-header{
    padding:12px 10px;
    align-items:center;
    text-align:center;
    gap:9px;
  }

  .fc-chat-title{
    width:100%;
    font-size:11px;
    line-height:1.55;
    letter-spacing:.12em;
  }

  .fc-chat-controls{
    width:100%;
    justify-content:center;
    align-self:center;
    gap:10px;
  }

  .fc-sound-toggle,
  .fc-chat-minimize{
    width:44px;
    height:34px;
    min-width:44px;
    min-height:34px;
    font-size:16px;
  }

  .fc-chat-layout{
    display:flex;
    flex-direction:column;
    gap:10px;
    padding:10px;
  }

  .fc-chat-main{
    display:flex;
    flex-direction:column;
    min-height:0;
    border:1px solid rgba(184,154,88,.34);
  }

  .fc-chat-mode{
    min-height:0;
    padding:9px 10px;
    flex-wrap:wrap;
    align-items:flex-start;
    line-height:1.45;
    font-size:10px;
    letter-spacing:.13em;
  }

  .fc-exit-pm{
    min-height:32px;
    padding:6px 9px;
  }

  .fc-message-stream{
    height:min(52vh,460px);
    min-height:300px;
    max-height:52vh;
    overflow:auto;
    -webkit-overflow-scrolling:touch;
  }

  .fc-message{
    grid-template-columns:50px minmax(0,1fr);
    gap:10px;
    min-height:0;
    padding:11px 10px;
  }

  .fc-avatar{
    width:44px;
    height:44px;
    font-size:22px;
  }

  .fc-message-meta{
    grid-template-columns:minmax(0,1fr) auto 16px;
    gap:8px;
    min-height:20px;
  }

  .fc-message-meta strong{
    font-size:15px;
  }

  .fc-message-meta time{
    font-size:12px;
    white-space:nowrap;
  }

  .fc-message-body p{
    margin-top:5px;
    font-size:15px;
    line-height:1.42;
    overflow-wrap:anywhere;
    word-break:break-word;
  }

  .fc-input-row{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:9px;
    height:auto;
    min-height:0;
    padding:10px;
    border-top:1px solid rgba(184,154,88,.28);
    position:relative;
    z-index:2;
  }

  .fc-input-row select,
  .fc-input-row input{
    width:100%;
    min-width:0;
    height:44px;
    font-size:16px;
    border-radius:6px;
  }

  .fc-input-row select,
  .fc-input-row input{
    grid-column:1 / -1;
  }

  .fc-glyph-button,
  .fc-send{
    height:44px;
    min-height:44px;
    border-radius:6px;
  }

  .fc-send{
    letter-spacing:.2em;
    font-size:12px;
  }

  .fc-users-panel{
    border:1px solid rgba(184,154,88,.34);
    padding:11px 10px;
  }

  .fc-users-panel h3{
    margin-bottom:9px;
    padding-bottom:9px;
    font-size:12px;
    letter-spacing:.13em;
    justify-content:center;
  }

  .fc-online-list{
    height:auto;
    max-height:172px;
    overflow:auto;
    -webkit-overflow-scrolling:touch;
    display:grid;
    grid-template-columns:1fr;
    gap:6px;
    font-size:15px;
    line-height:1.25;
  }

  .fc-online-list li{
    min-height:38px;
    padding:0 9px;
    border:1px solid rgba(184,154,88,.16);
    border-radius:6px;
    background:rgba(3,6,6,.45);
    overflow:hidden;
  }

  .fc-online-list b,
  .fc-online-list span:last-child{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }

  .fc-dot,
  .fc-status-dot{
    width:11px;
    height:11px;
  }

  .fc-notification-stack{
    right:10px;
    bottom:10px;
    width:calc(100% - 20px);
  }
}

@media (max-width:420px){
  .fc-chat-layout{
    padding:8px;
  }

  .fc-message-stream{
    height:50vh;
    min-height:280px;
  }

  .fc-message{
    grid-template-columns:44px minmax(0,1fr);
    gap:9px;
    padding:10px 8px;
  }

  .fc-avatar{
    width:40px;
    height:40px;
    font-size:20px;
  }

  .fc-message-meta{
    grid-template-columns:minmax(0,1fr) auto;
  }

  .fc-message-kind{
    display:none;
  }

  .fc-input-row{
    gap:8px;
    padding:9px;
  }
}


/* v52 FlashChat admin clear control */
.fc-clear-chat{
  min-width:58px;
  height:24px;
  border:1px solid rgba(184,154,88,.55);
  border-radius:4px;
  display:grid;
  place-items:center;
  padding:0 9px;
  background:rgba(4,6,6,.72);
  color:var(--gold2);
  font:700 10px/1 Inter,system-ui,sans-serif;
  letter-spacing:.12em;
  text-transform:uppercase;
  cursor:pointer;
}
.fc-clear-chat:hover{
  color:#fff3c8;
  border-color:var(--gold2);
  box-shadow:0 0 14px rgba(218,197,141,.12);
}
.fc-clear-chat:disabled{
  opacity:.48;
  cursor:wait;
}
@media(max-width:760px){
  .fc-clear-chat{
    width:auto;
    min-width:72px;
    height:34px;
    min-height:34px;
  }
}


/* v53 FlashChat clear button/header-toggle separation */
.fc-chat-controls{
  position:relative;
  z-index:3;
  pointer-events:auto;
}
.fc-chat-title{
  z-index:1;
}
.fc-clear-chat,
.fc-sound-toggle,
.fc-chat-minimize{
  pointer-events:auto;
}

