/* Zhakaw 3.1 — private calls and WebGL 3D arcade.
   This file only styles new components; the existing interface theme is unchanged. */

/* Private voice/video calls */
.private-call-modal{max-width:920px}
.private-call-body{display:flex;flex-direction:column;gap:12px}
.private-call-status{display:flex;align-items:center;gap:10px;padding:9px 11px;border:1px solid var(--classic-border,var(--line));border-radius:8px;background:var(--classic-panel-soft,var(--panel2))}
.private-call-status>div{min-width:0;display:flex;flex:1;flex-direction:column}
.private-call-status strong{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.private-call-status small{margin-top:2px;color:var(--classic-muted,var(--muted));font-size:9px}
.private-call-status time{font-size:11px;font-weight:800;font-variant-numeric:tabular-nums;color:var(--accent)}
.call-status-dot{width:9px;height:9px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 4px color-mix(in srgb,#22c55e 15%,transparent);animation:callPulse 1.5s ease-in-out infinite}
@keyframes callPulse{50%{transform:scale(.82);opacity:.7}}
.private-call-stage{position:relative;min-height:440px;overflow:hidden;border:1px solid var(--classic-border,var(--line));border-radius:10px;background:#080b15;display:grid;place-items:center}
.private-call-stage video{display:block;width:100%;height:100%;min-height:440px;object-fit:cover;background:#080b15}
.private-call-stage [hidden]{display:none!important}
.private-call-stage #localCallVideo{position:absolute;right:12px;bottom:12px;width:180px;height:112px;min-height:0;border:2px solid rgba(255,255,255,.78);border-radius:8px;box-shadow:0 8px 25px rgba(0,0,0,.32);object-fit:cover;z-index:2}
.private-call-audio-placeholder{display:flex;min-height:440px;flex-direction:column;align-items:center;justify-content:center;padding:28px;text-align:center;color:#fff;background:radial-gradient(circle at 50% 35%,color-mix(in srgb,var(--accent) 35%,#111827),#080b15 70%)}
.private-call-audio-placeholder>span{display:grid;place-items:center;width:94px;height:94px;border-radius:50%;font-size:42px;background:rgba(255,255,255,.1);box-shadow:0 0 0 12px rgba(255,255,255,.035)}
.private-call-audio-placeholder strong{margin-top:20px;font-size:20px}
.private-call-audio-placeholder small{max-width:500px;margin-top:7px;line-height:1.55;color:rgba(255,255,255,.68);font-size:10px}
.private-call-stage.is-audio-call #remoteCallVideo,.private-call-stage.is-audio-call #localCallVideo{display:none}
.private-call-controls{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap}
.private-call-controls button{display:flex;min-width:78px;height:48px;align-items:center;justify-content:center;gap:6px;border:1px solid var(--classic-border,var(--line));border-radius:8px;background:var(--classic-panel-soft,var(--panel2));color:var(--classic-text,var(--text));font-size:10px;font-weight:800;cursor:pointer}
.private-call-controls button[hidden]{display:none!important}
.private-call-controls button:hover{border-color:var(--accent);color:var(--accent)}
.private-call-controls button .ui-icon{width:17px;height:17px}
.private-call-controls button.is-off{background:color-mix(in srgb,#f43f5e 10%,var(--classic-panel-soft,var(--panel2)));border-color:color-mix(in srgb,#f43f5e 42%,var(--classic-border,var(--line)));color:#f43f5e}
.private-call-controls .call-end-btn{background:#dc2626;border-color:#dc2626;color:#fff}
.private-call-controls .call-end-btn:hover{background:#b91c1c;border-color:#b91c1c;color:#fff}
.private-call-note{margin:0;color:var(--classic-muted,var(--muted));font-size:9px;line-height:1.55;text-align:center}
.incoming-call-modal{max-width:390px}
.incoming-call-person{display:flex;flex-direction:column;align-items:center;padding:18px 8px 24px;text-align:center}
.incoming-call-avatar{display:grid;place-items:center;width:92px;height:92px;border-radius:50%;background:color-mix(in srgb,var(--accent) 13%,var(--classic-panel-soft,var(--panel2)));font-size:41px;box-shadow:0 0 0 10px color-mix(in srgb,var(--accent) 6%,transparent);animation:incomingRing 1.1s ease-in-out infinite}
@keyframes incomingRing{50%{transform:scale(1.045);box-shadow:0 0 0 16px color-mix(in srgb,var(--accent) 2%,transparent)}}
.incoming-call-person strong{margin-top:20px;font-size:19px}
.incoming-call-person small{margin-top:5px;color:var(--classic-muted,var(--muted));font-size:11px}
.incoming-call-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.incoming-call-actions .primary-btn,.incoming-call-actions .secondary-btn{width:100%;height:43px}
.call-history-list{display:flex;flex-direction:column;gap:5px;max-height:450px;overflow:auto}
.call-history-row{display:flex;align-items:center;gap:9px;padding:8px;border:1px solid var(--classic-border,var(--line));border-radius:7px;background:var(--classic-panel-soft,var(--panel2))}
.call-history-row>span{font-size:22px}
.call-history-row>div{min-width:0;flex:1}
.call-history-row strong,.call-history-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.call-history-row strong{font-size:11px}.call-history-row small{margin-top:2px;color:var(--classic-muted,var(--muted));font-size:8px}
.call-history-note{margin:12px 0 0!important;line-height:1.5}

/* WebGL 3D Arcade */
.game3d-modal{max-width:1000px}
.game3d-body{display:flex;flex-direction:column;gap:10px}
.game3d-hud{display:flex;align-items:center;gap:14px;padding:8px 10px;border:1px solid var(--classic-border,var(--line));border-radius:8px;background:var(--classic-panel-soft,var(--panel2))}
.game3d-hud>div:first-child{min-width:0;display:flex;flex:1;flex-direction:column}
.game3d-hud strong{font-size:12px}.game3d-hud small{margin-top:2px;color:var(--classic-muted,var(--muted));font-size:9px}
.game3d-score{display:flex;align-items:center;gap:7px}.game3d-score span{color:var(--classic-muted,var(--muted));font-size:9px;text-transform:uppercase;font-weight:900}.game3d-score b{min-width:58px;text-align:right;font-size:18px;color:var(--accent);font-variant-numeric:tabular-nums}
.game3d-canvas-wrap{position:relative;overflow:hidden;border:1px solid var(--classic-border,var(--line));border-radius:10px;background:#070b17;aspect-ratio:16/9;box-shadow:inset 0 0 40px rgba(0,0,0,.25)}
#game3dCanvas{display:block;width:100%;height:100%;touch-action:none;background:#070b17}
.game3d-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px;text-align:center;color:#fff;background:rgba(5,8,18,.74);backdrop-filter:blur(4px);opacity:0;pointer-events:none;transition:.2s}
.game3d-overlay.show{opacity:1;pointer-events:auto}.game3d-overlay strong{font-size:26px}.game3d-overlay p{max-width:520px;margin:8px 0 17px;color:rgba(255,255,255,.74);font-size:11px;line-height:1.55}.game3d-overlay .primary-btn{width:auto;min-width:140px}
.game3d-touch-controls{display:none;grid-template-columns:1fr 1fr 1fr;gap:8px}
.game3d-touch-controls button{height:48px;border:1px solid var(--classic-border,var(--line));border-radius:8px;background:var(--classic-panel-soft,var(--panel2));color:var(--classic-text,var(--text));font-size:18px;font-weight:900;cursor:pointer;touch-action:manipulation}
.game3d-touch-controls button:active{transform:translateY(1px);border-color:var(--accent);color:var(--accent)}
.game3d-footer{display:flex;gap:6px;flex-wrap:wrap}.game3d-footer .secondary-btn{width:auto;height:34px;padding:0 11px;font-size:9px}
.game3d-menu-card{border-color:color-mix(in srgb,var(--accent) 45%,var(--classic-border,var(--line)))!important;background:color-mix(in srgb,var(--accent) 8%,var(--classic-panel-soft,var(--panel2)))!important}

@media(max-width:700px){
  .private-call-modal,.game3d-modal{width:calc(100vw - 12px);max-width:none;max-height:calc(100dvh - 12px)}
  .private-call-body,.game3d-body{padding:9px!important}
  .private-call-stage,.private-call-stage video,.private-call-audio-placeholder{min-height:52dvh}
  .private-call-stage #localCallVideo{right:8px;bottom:8px;width:112px;height:82px}
  .private-call-controls{gap:5px}.private-call-controls button{min-width:67px;height:45px;padding:0 7px;font-size:8px}
  .private-call-note{font-size:8px}
  .game3d-canvas-wrap{aspect-ratio:auto;height:min(58dvh,520px)}
  .game3d-touch-controls{display:grid}
  .game3d-footer .secondary-btn{flex:1 1 42%;height:36px}
  .game3d-hud small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
}

@media(prefers-reduced-motion:reduce){.call-status-dot,.incoming-call-avatar{animation:none}.game3d-overlay{transition:none}}
