
:root{
  --pink:#ff2f8a; --pink-2:#ff4da6; --muted:#f3f3f6; --bg:#ffffff;
  --card:#ffffff; --text:#222;
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0; font-family:Inter, system-ui, -apple-system, 'Segoe UI', Roboto, Arial; background:var(--bg); color:var(--text);}
.app{max-width:1200px;margin:16px auto;border-radius:14px;overflow:visible;padding:8px}
.header{display:flex;align-items:center;gap:12px;padding:12px 18px;background:transparent}
.logo{font-weight:800;color:var(--pink);font-size:28px}
.header-title{font-size:18px;color:#222;margin:0}
.main{display:flex;padding:18px;background:#fff;border-radius:12px}
.admin{flex-direction:column;gap:18px}
.create{display:flex;gap:8px;align-items:center}
.create input{flex:1;padding:10px;border-radius:10px;border:1px solid #eee}
.create .btn{padding:10px 14px;border-radius:10px;background:linear-gradient(90deg,var(--pink-2),var(--pink));color:#fff;border:none;cursor:pointer}
.rooms{display:flex;flex-direction:column;gap:10px;margin-top:8px}
.room-card{display:flex;align-items:center;justify-content:space-between;padding:12px;border-radius:10px;background:#fbfbfb;border:1px solid #f0f0f0}
.room-card .meta{display:flex;flex-direction:column}
.room-card .meta .name{font-weight:600}
.room-card .meta .link{font-size:12px;color:#666}
.room-card .actions{display:flex;gap:8px}
.btn-plain{padding:8px 10px;border-radius:8px;border:1px solid #e6e6e6;background:white;cursor:pointer}

/* Room layout */
.room-shell{display:flex;gap:18px;padding:18px;background:linear-gradient(180deg,#fff,#fff);border-radius:10px;align-items:flex-start}
.left-panel{width:360px;flex:0 0 360px}
.wave-canvas-wrap {
  height: 140px;
  background: #fafafa;
  border-radius: 10px;
  padding: 8px;
  margin-bottom: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden; /* не даёт волне выходить за границы */
}
canvas#wave {
  width: 100%;
  height: 100%;
  display: block;
}

.pad-wrap{background:#fff;border-radius:10px;padding:12px;border:1px solid #f2f2f2}
.pad{height:320px;border-radius:10px;background:#fbfbfb;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;min-width:320px}
.ticks{position:absolute;left:12px;top:12px;bottom:12px;width:10px;display:flex;flex-direction:column;justify-content:space-between;opacity:0.6}
.ticks::before{content:'';display:block;height:1px;background:#eee}
.knob{width:84px;height:84px;border-radius:50%;background:linear-gradient(135deg,var(--pink-2),var(--pink));display:flex;align-items:center;justify-content:center;color:white;font-weight:600;box-shadow:0 8px 30px rgba(255,77,166,0.18);position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);cursor:grab;user-select:none;transition:filter .2s}
.label-top{position:absolute;left:76px;top:12px;color:#bdbdbd;font-size:12px}
.label-bottom{position:absolute;left:12px;bottom:10px;color:#bdbdbd;font-size:12px}
.controls-row{display:flex;align-items:center;justify-content:space-between;margin-top:12px}
.open-remote{padding:8px 12px;border-radius:10px;border:1px solid #efefef;background:white;cursor:pointer}
.time-indicator{color:#666}

/* right panel */
.right-panel{flex:1;display:flex;flex-direction:column;gap:12px;min-width:320px}
.room-info{display:flex;align-items:center;gap:12px;justify-content:space-between}
.room-link{font-size:14px;color:#666;word-break:break-all}
.status-badge{padding:10px 12px;border-radius:10px;background:#f1f1f4;color:#666;min-width:180px;text-align:center}
.timer-row{display:flex;align-items:center;gap:12px}
.timer-label{color:#666;font-size:14px}
.session-timer{font-weight:700;font-size:20px;background:#fff;border-radius:8px;padding:8px 12px;border:1px solid #eee;min-width:90px;text-align:center}

/* chat */
.chat-area{background:#fff;border-radius:10px;padding:12px;border:1px solid #f2f2f2;display:flex;flex-direction:column;gap:8px}
.messages{height:240px;overflow:auto;padding:8px;background:#fbfbfd;border-radius:8px}
.chat-controls{display:flex;gap:8px}
.chat-controls input{flex:1;padding:10px;border-radius:8px;border:1px solid #eee}
.btn{padding:8px 12px;border-radius:8px;border:none;cursor:pointer;background:linear-gradient(90deg,var(--pink-2),var(--pink));color:#fff}

/* footer small */
.footer-small{padding:14px;text-align:center;color:#888;display:flex;justify-content:center;align-items:center;gap:6px}
.footer-small span{font-weight:700}

.blurred{filter:blur(4px);pointer-events:none;opacity:.9}
.hidden{display:none}
.message{background:#eaf1ff;padding:8px 10px;border-radius:10px;margin:6px 0;max-width:80%}
.message.self{background:#ffeef6;margin-left:auto}

/* responsive */
@media (max-width:900px){
  .room-shell{flex-direction:column}
  .left-panel{width:100%;flex:0 0 auto}
  .right-panel{width:100%}
