/* ===== Host room page ===== */
.host-wrap{ display:flex; flex-direction:column; gap:16px; }

.host-top{
  display:grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: 16px;
  align-items: start;
}

.video-card{ overflow:hidden; }
.video-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 12px;
  padding: 12px 12px 10px;
  border-bottom: 1px solid rgba(255,255,255,.06);
}
.vh-left{ display:flex; align-items:center; gap:10px; min-width:0; }
.avatar{
  width:34px; height:34px; border-radius: 12px;
  background: linear-gradient(135deg, rgba(0,210,255,.25), rgba(127,92,255,.25)), #2a2f55;
  border: 1px solid rgba(255,255,255,.08);
}
.vh-meta{ min-width:0; }
.vh-title{ display:flex; align-items:center; gap:8px; font-weight:900; }
.pill-live{
  font-size:11px; padding:2px 8px; border-radius:999px;
  background:#ff3b3b; color:#fff; font-weight:900;
}
.vh-sub{ margin-top:2px; font-size:12px; color: rgba(230,232,240,.65); display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.dot-sep{ opacity:.6; }
.vh-right{ display:flex; align-items:center; gap:10px; }
.ico{ font-size:14px; line-height:1; }

.video-stage{ position:relative; padding: 12px; }
.video-placeholder{
  height: 520px;
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,.06);
  background:
    radial-gradient(circle at 70% 30%, rgba(127,92,255,.18), transparent 55%),
    radial-gradient(circle at 20% 40%, rgba(0,210,255,.16), transparent 55%),
    linear-gradient(135deg, rgba(26,31,54,.6), rgba(14,17,36,.8));
  display:flex; align-items:center; justify-content:center;
  color: rgba(230,232,240,.75);
  font-weight: 900;
}

.goal-bar{
  position:absolute;
  left: 22px;
  right: 22px;
  bottom: 18px;
  display:flex;
  align-items:center;
  gap: 12px;
}
.goal-label{ font-size:12px; color: rgba(230,232,240,.8); }
.goal-track{
  flex:1;
  height: 6px;
  border-radius: 999px;
  background: rgba(255,255,255,.12);
  overflow:hidden;
}
.goal-fill{
  height:100%;
  background: linear-gradient(90deg, #00d2ff, #7f5cff);
  border-radius:999px;
}
.goal-pct{ font-size:12px; color: rgba(230,232,240,.9); min-width:44px; text-align:right; }

/* side panel */
.side-card{ overflow:hidden; height: 100%; display:flex; flex-direction:column; }
.side-tabs{
  position:relative;
  display:flex; align-items:center; gap: 8px;
  padding: 10px 10px;
  border-bottom: 1px solid rgba(255,255,255,.06);
}
.tab-btn{
  background: transparent;
  border: 0;
  color: rgba(230,232,240,.72);
  padding: 8px 10px;
  border-radius: 12px;
  cursor: pointer;
  font-weight: 800;
  font-size: 13px;
}
.tab-btn:hover{ background: rgba(255,255,255,.05); color: rgba(230,232,240,.92); }
.tab-btn.active{
  color: var(--text);
  position: relative;
}
.tab-btn.active::after{
  content:"";
  position:absolute;
  left: 10px;
  right: 10px;
  bottom: 4px;
  height: 3px;
  border-radius: 999px;
  background: linear-gradient(90deg, #00d2ff, #7f5cff);
}
.badge{
  margin-left:6px;
  font-size:11px;
  padding: 2px 7px;
  border-radius: 999px;
  background: rgba(255,255,255,.08);
  color: rgba(230,232,240,.9);
}
.side-close{
  margin-left:auto;
  width: 34px; height: 34px;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,.08);
  background: rgba(255,255,255,.04);
  color: var(--text);
  cursor:pointer;
  display:none; /* mobile only */
}

.tab-panel{ display:none; flex:1; min-height:0; }
.tab-panel.show{ display:flex; flex-direction:column; }

.chat-list{
  padding: 10px;
  overflow:auto;
  min-height:0;
  display:flex;
  flex-direction:column;
  gap: 10px;
}
.chat-item{ display:flex; gap: 8px; align-items:flex-start; flex-wrap:wrap; }
.c-name{ font-weight: 900; }
.c-msg{ color: rgba(230,232,240,.86); }
.chat-item.system{
  padding: 10px;
  border-radius: 14px;
  background: rgba(255,185,74,.10);
  border: 1px solid rgba(255,185,74,.18);
}
.chat-item.host .c-badge{
  font-size: 10px;
  padding: 2px 7px;
  border-radius: 999px;
  background: rgba(0,210,255,.12);
  border: 1px solid rgba(0,210,255,.22);
  color: rgba(230,232,240,.92);
  font-weight: 900;
}
.c-badge{
  font-size: 10px;
  padding: 2px 7px;
  border-radius: 999px;
  background: rgba(255,255,255,.08);
  color: rgba(230,232,240,.9);
  font-weight: 900;
}

.chat-tools{
  display:flex; gap: 8px;
  padding: 10px;
  border-top: 1px solid rgba(255,255,255,.06);
}
.chip{
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.04);
  color: rgba(230,232,240,.88);
  padding: 6px 10px;
  border-radius: 999px;
  cursor:pointer;
  font-weight: 800;
  font-size: 12px;
}
.chip:hover{ background: rgba(255,255,255,.07); }

.chat-input{
  display:flex;
  gap: 10px;
  padding: 10px;
  border-top: 1px solid rgba(255,255,255,.06);
}

.users-head{
  display:flex; gap: 10px;
  padding: 10px;
  border-bottom: 1px solid rgba(255,255,255,.06);
}
.users-list{
  padding: 10px;
  overflow:auto;
  min-height:0;
  display:flex;
  flex-direction:column;
  gap: 10px;
}
.user-row{
  display:flex; align-items:center; gap: 10px;
  padding: 10px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.06);
  background: rgba(255,255,255,.03);
}
.u-dot{
  width: 10px; height: 10px; border-radius: 999px;
  background: #34d399;
  box-shadow: 0 0 0 4px rgba(52,211,153,.12);
}
.u-name{ font-weight: 900; flex:1; }
.u-tag{
  font-size: 11px;
  padding: 2px 8px;
  border-radius: 999px;
  background: rgba(127,92,255,.14);
  border: 1px solid rgba(127,92,255,.22);
  color: rgba(230,232,240,.9);
}
.u-btn{
  width: 34px; height: 34px;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,.08);
  background: rgba(255,255,255,.04);
  color: rgba(230,232,240,.9);
  cursor:pointer;
}
.u-btn:hover{ background: rgba(255,255,255,.07); }

.events-list{
  padding: 10px;
  overflow:auto;
  min-height:0;
  display:flex; flex-direction:column; gap: 10px;
}
.event-row{
  display:flex; align-items:center; gap: 10px;
  padding: 10px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.06);
  background: rgba(255,255,255,.03);
}
.ev-pill{
  font-size: 10px;
  padding: 3px 8px;
  border-radius: 999px;
  font-weight: 900;
}
.ev-pill.tip{ background: rgba(255,185,74,.14); border:1px solid rgba(255,185,74,.22); }
.ev-pill.goal{ background: rgba(0,210,255,.12); border:1px solid rgba(0,210,255,.22); }
.ev-pill.join{ background: rgba(52,211,153,.12); border:1px solid rgba(52,211,153,.22); }
.ev-text{ flex:1; color: rgba(230,232,240,.9); }
.ev-time{ color: rgba(230,232,240,.55); font-size: 12px; }

/* Bottom controls */
.host-bottom{ padding: 12px; }
.hb-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
.hb-card{
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,.06);
  background: rgba(255,255,255,.03);
  padding: 12px;
}

.hb-card .hb-form{
  gap: 12px;
}

.hb-card .input{
  border-radius: 14px;
  border-color: rgba(255,255,255,.10);
}

.hb-title{ font-weight: 900; margin-bottom: 10px; }
.hb-row{ display:flex; align-items:center; justify-content:space-between; gap: 10px; margin-top: 10px; }
.hb-actions{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 10px;
}
.hb-btn{
  padding: 10px 12px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.08);
  background: rgba(255,255,255,.04);
  color: rgba(230,232,240,.9);
  cursor:pointer;
  font-weight: 900;
}
.hb-btn:hover{ background: rgba(255,255,255,.07); }
.hb-btn.danger{ border-color: rgba(251,113,133,.25); background: rgba(251,113,133,.10); }

.hb-form{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.status-pill{
  display:inline-flex; align-items:center; gap:8px;
  padding: 8px 10px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.08);
  background: rgba(255,255,255,.04);
  font-weight: 900;
  font-size: 12px;
}
.status-pill .s-dot{
  width: 10px; height: 10px; border-radius: 999px;
  background: #34d399;
  box-shadow: 0 0 0 4px rgba(52,211,153,.12);
}
.status-pill.on{ border-color: rgba(52,211,153,.20); }
.textarea{
  width:100%;
  height: 120px;
  resize: vertical;
  padding: 10px 12px;
  border-radius: 14px;
  background: rgba(26,31,54,.75);
  border: 1px solid rgba(255,255,255,.06);
  color: var(--text);
  outline:none;
}
.textarea:focus{ border-color: rgba(0,210,255,.25); }

.goal-mini{ border:1px solid rgba(255,255,255,.06); background: rgba(0,0,0,.12); border-radius: 14px; padding: 10px; }
.gm-top{ display:flex; justify-content:space-between; gap:10px; }
.gm-track{ height: 8px; border-radius: 999px; background: rgba(255,255,255,.12); overflow:hidden; margin-top: 8px; }
.gm-fill{ height:100%; background: linear-gradient(90deg, #00d2ff, #7f5cff); }
.gm-bottom{ margin-top: 8px; font-size: 12px; }

.device-row{ display:flex; align-items:center; justify-content:space-between; gap: 10px; }
.device-status{ display:flex; align-items:center; gap: 10px; }
.dev-dot{ width: 10px; height: 10px; border-radius: 999px; background:#fb7185; box-shadow:0 0 0 4px rgba(251,113,133,.12); }
.dev-dot.off{ background:#fb7185; }
.dev-dot.on{ background:#34d399; box-shadow:0 0 0 4px rgba(52,211,153,.12); }
.dev-name{ font-weight: 900; }
.toy-grid{
  margin-top: 10px;
  display:grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}
.toy-btn{
  padding: 10px 10px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.08);
  background: rgba(255,255,255,.04);
  color: rgba(230,232,240,.9);
  cursor:pointer;
  font-weight: 900;
}
.toy-btn:hover{ background: rgba(255,255,255,.07); }

.hb-note{ margin-top: 10px; font-size: 12px; line-height: 1.35; }

.hide-desktop{ display:none; }

/* Responsive */
@media (max-width: 1200px){
  .host-top{ grid-template-columns: minmax(0, 1fr) 340px; }
  .hb-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .video-placeholder{ height: 460px; }
}
@media (max-width: 900px){
  .host-top{ grid-template-columns: 1fr; }
  .side-card{
    position: fixed;
    top: 110px; /* topbar+tabs 아래 느낌 */
    right: 12px;
    left: 12px;
    bottom: calc(var(--footer-h) + 12px);
    z-index: 8000;
    transform: translateY(120%);
    transition: transform .18s ease;
  }
  .side-card.open{ transform: translateY(0); }
  .side-close{ display:inline-flex; align-items:center; justify-content:center; }
  .hide-desktop{ display:inline-flex; }
  .video-placeholder{ height: 380px; }
}
@media (max-width: 640px){
  .hb-grid{ grid-template-columns: 1fr; }
  .hb-form{ grid-template-columns: 1fr; }
  .toy-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .goal-bar{ left: 14px; right: 14px; bottom: 14px; }
}

.cardx{ border:1px solid rgba(255,255,255,.06); background: rgba(255,255,255,.02); border-radius: 16px; }






