/* FP Digital Portal 10 — responsive communications, DM orbit rail, voice transfers, modular themes */

/* Keep the fixed Command Center usable at every desktop height. */
.sidebar{
  overflow-y:auto!important;
  overflow-x:hidden;
  overscroll-behavior:contain;
  scrollbar-width:thin;
  scrollbar-color:color-mix(in srgb,var(--accent) 36%,transparent) transparent;
}
.sidebar::-webkit-scrollbar{width:6px}.sidebar::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--accent) 32%,transparent);border-radius:999px}
.sidebar .brand{flex:0 0 auto;padding-bottom:clamp(12px,2vh,22px)}
.sidebar .workspace{flex:0 0 auto;margin-bottom:clamp(10px,1.6vh,18px)}
.sidebar .label{margin-top:clamp(8px,1.25vh,14px)}
.sidebar .nav{flex:0 0 auto;gap:clamp(2px,.45vh,4px)}
.sidebar .nav button{padding-block:clamp(8px,1.05vh,11px)}
.sidebar .secure{flex:0 0 auto;margin-top:16px}
.content{min-width:0;max-width:100%;overflow-x:hidden}

/* DM-only Messages workspace: the avatar rail sits immediately beside Command Center. */
#view-messages.active{height:calc(100dvh - 108px);min-height:560px;overflow:hidden}
.messages-page-head-v10{margin-bottom:12px;flex:0 0 auto}
.messages-shell-v10{
  --dm-orbit-width:84px;
  display:grid!important;
  grid-template-columns:var(--dm-orbit-width) minmax(0,1fr) minmax(210px,250px)!important;
  min-height:0!important;
  height:100%;
  border-radius:22px;
  overflow:hidden;
}
.dm-orbit-rail-v10{
  display:flex!important;
  flex-direction:column;
  align-items:center;
  gap:8px;
  width:auto!important;
  padding:12px 8px!important;
  overflow-x:visible!important;
  overflow-y:auto!important;
  background:color-mix(in srgb,var(--sidebar-bg) 96%,#000 4%)!important;
  border-right:1px solid var(--border);
}
.dm-rail-top-v10{display:grid;place-items:center;gap:7px;width:100%}
.dm-home-orb-v10,.dm-rail-team-v10,.dm-empty-orb-v10{
  position:relative;display:grid;place-items:center;width:48px;height:48px;flex:0 0 48px;
  border:1px solid var(--border);border-radius:17px;background:var(--surface);color:var(--accent);
  font-size:1.25rem;font-weight:900;transition:.18s ease;
}
.dm-home-orb-v10:hover,.dm-rail-team-v10:hover{border-radius:13px;background:var(--accent);color:var(--logo-ink);box-shadow:0 0 24px color-mix(in srgb,var(--accent) 28%,transparent)}
.dm-connection-v10{width:11px;height:11px;padding:0;border:0;background:transparent}.dm-connection-v10 span{display:none}.dm-connection-v10 i{width:9px;height:9px}
.dm-rail-divider-v10{width:36px;height:1px;flex:0 0 1px;background:var(--border)}
.dm-avatar-list-v10{display:flex!important;flex-direction:column;align-items:center;gap:8px;width:100%}
.dm-rail-spacer-v10{flex:1}
.dm-orb-button-v10{
  position:relative!important;display:grid!important;place-items:center!important;width:54px!important;height:54px!important;
  flex:0 0 54px;padding:0!important;border:0!important;border-radius:19px!important;background:transparent!important;
  overflow:visible!important;transition:.18s ease!important;
}
.dm-orb-button-v10 .dm-orb-avatar-v10{width:48px!important;height:48px!important;border-radius:17px!important;transition:.18s ease;overflow:hidden;background:linear-gradient(145deg,var(--surface),var(--panel2));border:1px solid var(--border);font-size:.72rem}
.dm-orb-button-v10 .dm-orb-avatar-v10 img{width:100%;height:100%;object-fit:cover}
.dm-orb-button-v10:hover .dm-orb-avatar-v10,.dm-orb-button-v10.active .dm-orb-avatar-v10{border-radius:13px!important;border-color:var(--bright);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 15%,transparent),0 0 22px color-mix(in srgb,var(--accent) 24%,transparent)}
.dm-orb-button-v10.active:before,.dm-orb-button-v10.has-unread:before{content:"";position:absolute;left:-9px;width:4px;border-radius:0 5px 5px 0;background:var(--text)}
.dm-orb-button-v10.active:before{height:32px}.dm-orb-button-v10.has-unread:not(.active):before{height:10px;background:var(--accent)}
.dm-orb-button-v10.has-unread .dm-orb-avatar-v10{animation:dmUnreadPulseV10 1.65s ease-in-out infinite;border-color:var(--accent)}
@keyframes dmUnreadPulseV10{0%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 0%,transparent)}50%{box-shadow:0 0 0 5px color-mix(in srgb,var(--accent) 16%,transparent),0 0 24px color-mix(in srgb,var(--accent) 42%,transparent)}}
.dm-orb-unread-v10{position:absolute!important;right:-2px!important;top:-2px!important;z-index:3;min-width:20px!important;height:20px!important;padding:0 5px!important;display:grid!important;place-items:center;background:var(--danger)!important;color:#fff!important;border:3px solid var(--sidebar-bg);font-size:.54rem!important}
.dm-orb-indicator-v10{position:absolute;right:2px;bottom:2px;width:11px;height:11px;border:3px solid var(--sidebar-bg);border-radius:50%;background:var(--muted)}
.dm-orb-button-v10 .presence-status.online~.dm-orb-tooltip-v10+.dm-orb-unread-v10+.dm-orb-indicator-v10,.dm-orb-button-v10 .presence-status.online{background:var(--green)}
.dm-orb-tooltip-v10{position:fixed;z-index:5000;left:calc(var(--sidebar) + 92px);display:none;min-width:150px;max-width:240px;padding:9px 11px;border:1px solid var(--border);border-radius:10px;background:var(--panel2);box-shadow:var(--shadow);pointer-events:none;text-align:left}
.dm-orb-tooltip-v10 b,.dm-orb-tooltip-v10 small{display:block}.dm-orb-tooltip-v10 b{color:var(--text);font-size:.67rem}.dm-orb-tooltip-v10 small{margin-top:3px;color:var(--muted);font-size:.54rem}
.dm-orb-button-v10:hover .dm-orb-tooltip-v10{display:block}
.dm-empty-orb-v10 span{position:absolute;left:60px;white-space:nowrap;display:none;padding:7px 9px;border:1px solid var(--border);border-radius:9px;background:var(--panel2);font-size:.56rem}.dm-empty-orb-v10:hover span{display:block}
.dm-conversation-panel-v10{min-width:0;min-height:0;height:100%}
.dm-conversation-panel-v10 .chat-message-list{min-height:0!important}
.dm-profile-panel-v10{display:block!important;min-width:0!important;overflow:auto!important}
.chat-room-header{min-width:0}.chat-room-heading{min-width:0}.chat-room-heading>div{min-width:0}.chat-room-heading h3,.chat-room-heading p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dm-header-avatar-v10{overflow:hidden}.dm-header-avatar-v10 img{width:100%;height:100%;object-fit:cover;border-radius:inherit}

/* Voice room participant transfer UI. */
.voice-room-group-v10{border:1px solid transparent;border-radius:13px;padding:3px;transition:.16s ease}
.voice-room-group-v10.drag-over{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 24%,transparent)}
.voice-room-group-v10 .voice-room-button-v9{margin:0}
.voice-room-occupants-v10{display:grid;gap:3px;padding:1px 4px 5px 31px}
.voice-room-person-v10{display:flex;align-items:center;gap:7px;min-width:0;padding:5px 6px;border:1px solid transparent;border-radius:9px;color:var(--muted);cursor:grab;user-select:none}
.voice-room-person-v10:hover{background:var(--hover);color:var(--text)}.voice-room-person-v10:active{cursor:grabbing}.voice-room-person-v10.dragging{opacity:.38}
.voice-room-person-v10 .mini-avatar{display:grid;place-items:center;width:22px;height:22px;flex:0 0 22px;border-radius:50%;overflow:hidden;background:var(--surface);font-size:.48rem;font-weight:900}.voice-room-person-v10 .mini-avatar img{width:100%;height:100%;object-fit:cover}.voice-room-person-v10 b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.55rem}.voice-room-person-v10 i{margin-left:auto;width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 8px var(--green)}
.voice-transfer-hint-v10{margin:10px 3px 2px;padding:8px 9px;border:1px dashed color-mix(in srgb,var(--accent) 38%,var(--border));border-radius:10px;color:var(--muted);font-size:.52rem;line-height:1.45}
.voice-participant-card-v9[draggable="true"]{cursor:grab}.voice-participant-card-v9[draggable="true"]:active{cursor:grabbing}

/* Persistent music monitor, available over every portal tab. */
.music-monitor-v10{left:calc(var(--sidebar) + 24px)!important;right:24px!important;bottom:14px!important;width:auto!important;max-width:760px;margin-inline:auto;grid-template-columns:minmax(0,1fr) auto!important;padding:7px!important;z-index:900!important}
.music-monitor-controls-v10{display:flex;align-items:center;gap:5px;padding-right:3px}
.music-monitor-controls-v10 button{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);font-size:.65rem}.music-monitor-controls-v10 button:hover{border-color:var(--bright);background:var(--hover)}
.music-mini-volume-v10{display:flex;align-items:center;gap:5px;padding:0 6px;color:var(--muted);font-size:.62rem}.music-mini-volume-v10 input{width:86px;accent-color:var(--accent)}
.music-mini-art{background-size:cover!important;background-position:center!important}

/* Modular sound and theme settings. */
.sound-setting-grid-v10{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}
.sound-setting-grid-v10 label{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end;padding:12px;border:1px solid var(--border);border-radius:14px;background:var(--surface)}
.sound-setting-grid-v10 label>span{grid-column:1/-1;color:var(--muted);font-size:.59rem;font-weight:800}.sound-setting-grid-v10 select{min-width:0;width:100%;padding:9px 10px;border:1px solid var(--border);border-radius:10px;background:var(--panel2);color:var(--text)}
.theme-studio-shell-v10{overflow:hidden}.legacy-theme-studio-v10{display:none!important}.theme-studio-heading-v10{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.theme-module-tabs-v10{display:flex;gap:6px;margin:14px 0 11px;padding:5px;border:1px solid var(--border);border-radius:13px;background:var(--panel2);overflow-x:auto}.theme-module-tabs-v10 button{flex:1;min-width:max-content;padding:8px 10px;border:0;border-radius:9px;background:transparent;color:var(--muted);font-size:.57rem;font-weight:900}.theme-module-tabs-v10 button.active{background:var(--accent);color:var(--logo-ink);box-shadow:0 0 18px color-mix(in srgb,var(--accent) 20%,transparent)}
.theme-module-grid-v10{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.theme-token-v10{display:grid;grid-template-columns:44px minmax(0,1fr);gap:9px;align-items:center;padding:10px;border:1px solid var(--border);border-radius:13px;background:var(--surface)}.theme-token-v10 input{width:44px;height:40px;padding:2px;border:1px solid var(--border);border-radius:9px;background:transparent}.theme-token-v10 b,.theme-token-v10 small{display:block}.theme-token-v10 b{font-size:.59rem}.theme-token-v10 small{margin-top:3px;color:var(--muted);font-size:.48rem}

/* Calls are global overlays and remain visible regardless of active tab. */
.call-modal-v9{position:fixed!important;inset:0!important;z-index:10050!important;display:none!important;align-items:flex-start!important;justify-content:flex-end!important;padding:88px 24px 24px!important;background:linear-gradient(90deg,transparent 45%,rgba(0,0,0,.42))!important;pointer-events:none!important}
.call-modal-v9.open{display:flex!important}.call-modal-v9 .incoming-call-card-v9{pointer-events:auto!important;width:min(390px,calc(100vw - 32px))!important;margin:0!important;border-color:color-mix(in srgb,var(--accent) 55%,var(--border))!important;box-shadow:0 28px 90px rgba(0,0,0,.55),0 0 46px color-mix(in srgb,var(--accent) 20%,transparent)!important;animation:callSlideV10 .24s ease both}
@keyframes callSlideV10{from{opacity:0;transform:translateX(30px) scale(.96)}to{opacity:1;transform:none}}
body.fp-call-ringing .notify-button{animation:globalRingV10 1s infinite}@keyframes globalRingV10{0%,100%{transform:rotate(0)}20%{transform:rotate(-9deg)}40%{transform:rotate(9deg)}60%{transform:rotate(-5deg)}80%{transform:rotate(5deg)}}

/* Responsive portal shell. */
@media(max-height:780px) and (min-width:821px){
  .sidebar{padding:11px 14px}.sidebar .brand{padding:4px 6px 10px}.sidebar .workspace{padding:9px;margin-bottom:7px}.sidebar .label{margin:7px 9px 5px}.sidebar .nav button{padding:7px 10px;font-size:.76rem}.sidebar .secure{padding:10px}.sidebar .secure p{display:none}
}
@media(max-width:1180px){
  .messages-shell-v10{grid-template-columns:78px minmax(0,1fr)!important}.dm-profile-panel-v10{display:none!important}
  .voice-discord-shell-v9{grid-template-columns:220px minmax(0,1fr)}.voice-info-rail-v9{display:none}
  .theme-module-grid-v10{grid-template-columns:repeat(2,minmax(0,1fr))}.sound-setting-grid-v10{grid-template-columns:1fr}
}
@media(max-width:820px){
  #view-messages.active,#view-voice.active{height:auto;min-height:calc(100dvh - 92px);overflow:visible}
  .content{padding:12px!important}
  .topbar{gap:8px}.actions{gap:5px}.actions>.icon{width:36px;height:36px}.user{padding:4px!important}
  .sidebar{height:100dvh;max-height:100dvh;padding-bottom:max(18px,env(safe-area-inset-bottom));overflow-y:auto!important}
  .messages-page-head-v10{display:none!important}
  .messages-shell-v10{display:flex!important;flex-direction:column;min-height:calc(100dvh - 112px)!important;height:calc(100dvh - 112px)!important;border-radius:16px}
  .dm-orbit-rail-v10{order:0;flex:0 0 70px;min-height:70px!important;width:100%!important;flex-direction:row!important;padding:8px!important;overflow-x:auto!important;overflow-y:hidden!important;border-right:0;border-bottom:1px solid var(--border)}
  .dm-rail-top-v10{display:flex;width:auto}.dm-connection-v10,.dm-rail-divider-v10,.dm-rail-spacer-v10,.dm-rail-team-v10{display:none!important}.dm-avatar-list-v10{flex-direction:row!important;width:auto!important}.dm-orb-button-v10{flex:0 0 50px!important;width:50px!important;height:50px!important}.dm-orb-button-v10 .dm-orb-avatar-v10{width:44px!important;height:44px!important}.dm-orb-tooltip-v10{display:none!important}
  .dm-conversation-panel-v10{order:1;flex:1;min-height:0}.chat-room-header{padding:9px 10px!important}.livekit-signal-strip{display:none}.chat-search-wrap{padding:7px 9px!important}.chat-message-list{padding:8px 7px 14px!important}.chat-compose-wrap{padding-bottom:env(safe-area-inset-bottom)}
  .chat-header-tools .chat-tool{padding:7px 8px!important;font-size:.55rem!important;width:auto!important}.chat-header-tools .chat-tool:before{display:none!important}
  .voice-discord-shell-v9{display:flex!important;flex-direction:column;min-height:calc(100dvh - 160px);border-radius:16px;overflow:visible}.voice-channel-rail-v9{flex:0 0 auto;max-height:270px;border-right:0;border-bottom:1px solid var(--border)}.voice-stage-v9{min-height:520px}.voice-page-head-v9{margin-bottom:10px}.voice-page-head-v9 p{display:none}.voice-info-rail-v9{display:none!important}.voice-control-dock-v9{position:sticky;bottom:0;z-index:7;overflow-x:auto;justify-content:flex-start}.voice-control-v9{min-width:58px;flex:0 0 58px}.voice-participant-grid-v9{grid-template-columns:1fr 1fr;padding:10px}.voice-participant-card-v9{min-height:140px}
  .music-monitor-v10{left:8px!important;right:8px!important;bottom:8px!important;max-width:none}.music-mini-main{min-width:0}.music-monitor-controls-v10{gap:3px}.music-mini-volume-v10{display:none}.music-monitor-controls-v10 button{width:31px;height:31px}
  .call-modal-v9{padding:74px 12px 12px!important;justify-content:center!important;background:rgba(0,0,0,.56)!important}.call-modal-v9 .incoming-call-card-v9{width:100%!important}
  .theme-module-grid-v10{grid-template-columns:1fr}.theme-studio-heading-v10{flex-direction:column}
}
@media(max-width:520px){
  .topbar .title small{display:none}.topbar .title h1{font-size:.86rem}.topbar{min-height:62px;padding:9px 10px!important}.content{padding:8px!important}.section-head h2{font-size:1.35rem}.section-head p{font-size:.65rem}
  .messages-shell-v10{height:calc(100dvh - 80px)!important;min-height:calc(100dvh - 80px)!important}.chat-room-heading p{display:none}.chat-room-icon{width:34px!important;height:34px!important}.chat-header-tools #openVoiceTab{display:none}.chat-compose-v2 textarea,.chat-composer-v2 textarea{font-size:16px!important}
  .voice-participant-grid-v9{grid-template-columns:1fr}.voice-stage-head-v9{padding:10px}.voice-head-actions-v9{display:none}.voice-control-dock-v9{padding-inline:7px}
  .music-monitor-controls-v10 #musicMiniPreviousV10{display:none}
}

/* Public site mobile nav hardening. */
@media(max-width:900px){
  body.site-nav-open{overflow:hidden}
  #siteNav{max-height:calc(100dvh - 84px);overflow:auto;overscroll-behavior:contain}
}
.nav button.message-flash-v10{animation:messageNavFlashV10 1.45s ease;border-color:var(--accent)!important}
@keyframes messageNavFlashV10{0%,100%{box-shadow:none}35%{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 15%,transparent),0 0 24px color-mix(in srgb,var(--accent) 42%,transparent);background:color-mix(in srgb,var(--accent) 18%,var(--surface));color:var(--text)}}
.dm-orb-button-v10.online .dm-orb-indicator-v10{background:var(--green);box-shadow:0 0 9px var(--green)}


/* Portal 10.1 repair: non-blocking calls and reliable staged theme editor. */
.theme-studio-shell-v10{overflow:visible!important}
.theme-token-v101{display:grid;grid-template-columns:minmax(0,1fr) 108px;gap:8px;align-items:stretch;padding:8px;border:1px solid var(--border);border-radius:14px;background:var(--surface)}
.theme-token-main-v101{min-width:0;display:grid;grid-template-columns:42px minmax(0,1fr);gap:10px;align-items:center;padding:0;border:0;background:transparent;color:var(--text);text-align:left}
.theme-token-main-v101:hover b{color:var(--accent)}
.theme-swatch-v101{width:42px;height:42px;border:1px solid color-mix(in srgb,var(--text) 24%,transparent);border-radius:11px;background:var(--theme-swatch);box-shadow:inset 0 0 0 3px color-mix(in srgb,#fff 10%,transparent),0 7px 18px rgba(0,0,0,.16)}
.theme-token-main-v101 b,.theme-token-main-v101 small{display:block}.theme-token-main-v101 b{font-size:.61rem}.theme-token-main-v101 small{margin-top:3px;color:var(--muted);font-size:.48rem}
.theme-hex-v101{display:grid;gap:4px;align-content:center}.theme-hex-v101 span{font-size:.45rem;font-weight:900;letter-spacing:.1em;color:var(--muted)}.theme-hex-v101 input,.theme-editor-hex-v101 input{width:100%;padding:8px 9px;border:1px solid var(--border);border-radius:9px;background:var(--panel2);color:var(--text);font:700 .58rem ui-monospace,SFMono-Regular,Consolas,monospace;text-transform:lowercase}.theme-hex-v101 input:focus,.theme-editor-hex-v101 input:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent)}.theme-hex-v101 input.invalid{border-color:var(--danger)}
.theme-editor-v101{margin-top:12px;padding:15px;border:1px solid color-mix(in srgb,var(--accent) 48%,var(--border));border-radius:16px;background:linear-gradient(145deg,var(--panel2),var(--surface));box-shadow:0 18px 50px rgba(0,0,0,.18)}
.theme-editor-head-v101{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:14px}.theme-editor-head-v101 small,.theme-editor-head-v101 code{display:block;color:var(--muted);font-size:.52rem}.theme-editor-head-v101 h4{margin:3px 0;font-size:.82rem}.theme-editor-head-v101>span{width:62px;height:62px;flex:0 0 62px;border:1px solid var(--border);border-radius:17px;background:var(--theme-editor-color);box-shadow:0 10px 30px rgba(0,0,0,.22)}
.theme-slider-v101{display:grid;grid-template-columns:150px minmax(0,1fr);align-items:center;gap:12px;margin-top:10px}.theme-slider-v101 label{display:flex;justify-content:space-between;gap:8px;color:var(--muted);font-size:.58rem;font-weight:800}.theme-slider-v101 output{color:var(--text);font-variant-numeric:tabular-nums}.theme-slider-v101 input{width:100%;accent-color:var(--accent)}
.theme-editor-hex-v101{display:grid;grid-template-columns:150px minmax(0,1fr);align-items:center;gap:12px;margin-top:12px}.theme-editor-hex-v101 span{color:var(--muted);font-size:.58rem;font-weight:800}
.theme-editor-actions-v101,.theme-studio-actions-v101{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:14px}.theme-studio-actions-v101{padding-top:12px;border-top:1px solid var(--border)}.theme-studio-actions-v101>span{margin-right:auto;color:var(--muted);font-size:.55rem}.theme-studio-actions-v101>span[data-state="dirty"]{color:var(--yellow)}.theme-studio-actions-v101>span[data-state="saved"]{color:var(--green)}.theme-studio-actions-v101 button:disabled{opacity:.45;cursor:not-allowed}

/* Call cards are notifications, not screen-blocking modals. */
.call-modal-v9,.call-modal-v9.open{
  position:fixed!important;inset:78px 18px auto auto!important;z-index:10050!important;
  display:none!important;width:min(390px,calc(100vw - 36px))!important;height:auto!important;
  padding:0!important;background:transparent!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
  pointer-events:none!important;overflow:visible!important;
}
.call-modal-v9.open{display:block!important}
.call-modal-v9 .incoming-call-card-v9{pointer-events:auto!important;width:100%!important;max-width:none!important;margin:0!important;padding:20px!important;border-radius:20px!important;background:color-mix(in srgb,var(--panel2) 96%,transparent)!important;backdrop-filter:blur(18px)!important;-webkit-backdrop-filter:blur(18px)!important}
.call-modal-v9 .incoming-call-rings-v9,.call-modal-v9 .outgoing-wave-v9{width:76px;height:76px;margin-bottom:10px}.call-modal-v9 .incoming-call-rings-v9 span,.call-modal-v9 .outgoing-wave-v9 span{width:54px;height:54px}.call-modal-v9 .incoming-call-actions-v9{margin-top:14px}.call-modal-v9 .incoming-call-actions-v9 button{min-width:104px;padding:9px 12px}
body.fp-call-ringing{overflow:auto!important}

@media(max-width:1180px){.theme-token-v101{grid-template-columns:minmax(0,1fr) 96px}}
@media(max-width:820px){
  .call-modal-v9,.call-modal-v9.open{inset:70px 10px auto 10px!important;width:auto!important;background:transparent!important}
  .call-modal-v9 .incoming-call-card-v9{width:100%!important;padding:15px!important}
  .theme-token-v101{grid-template-columns:minmax(0,1fr) 96px}.theme-slider-v101,.theme-editor-hex-v101{grid-template-columns:1fr;gap:6px}.theme-studio-actions-v101{flex-wrap:wrap}.theme-studio-actions-v101>span{width:100%;margin-right:0}.theme-studio-actions-v101 button{flex:1}
}
@media(max-width:480px){.theme-token-v101{grid-template-columns:1fr}.theme-hex-v101{grid-template-columns:42px minmax(0,1fr);align-items:center}.theme-editor-actions-v101 button{flex:1}.call-modal-v9 .incoming-call-rings-v9,.call-modal-v9 .outgoing-wave-v9{display:none}.call-modal-v9 .incoming-call-card-v9{text-align:left!important}.call-modal-v9 .incoming-call-actions-v9{justify-content:flex-start}}


/* Portal 10.2 — local media preview and persistent active-call dock. */
.voice-self-preview-v102{
  margin:14px 14px 0;padding:12px;border:1px solid color-mix(in srgb,var(--accent) 36%,var(--border));
  border-radius:18px;background:linear-gradient(145deg,color-mix(in srgb,var(--panel2) 96%,transparent),color-mix(in srgb,var(--surface) 94%,transparent));
  box-shadow:0 18px 48px rgba(0,0,0,.16);overflow:hidden;
}
.voice-self-preview-v102[hidden]{display:none!important}
.voice-self-preview-head-v102,.voice-self-preview-foot-v102{display:flex;align-items:center;justify-content:space-between;gap:12px}
.voice-self-preview-head-v102 h3{margin:3px 0 0;font-size:.88rem}.voice-preview-privacy-v102{max-width:270px;color:var(--muted);font-size:.5rem;text-align:right;line-height:1.4}
.voice-self-preview-media-v102,.global-call-preview-media-v102{
  position:relative;display:grid;place-items:center;overflow:hidden;isolation:isolate;background:
  radial-gradient(circle at 50% 38%,color-mix(in srgb,var(--accent) 18%,transparent),transparent 52%),
  linear-gradient(145deg,color-mix(in srgb,var(--sidebar-bg) 86%,#000),color-mix(in srgb,var(--panel2) 94%,#000));
}
.voice-self-preview-media-v102{width:100%;aspect-ratio:16/8.4;margin-top:11px;border:1px solid var(--border);border-radius:15px;min-height:210px}
.voice-preview-video-v102{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#05070a}.voice-preview-video-v102.mirror{transform:scaleX(-1);object-fit:cover}
.voice-preview-avatar-v102{position:relative;display:grid;place-items:center;width:104px;height:104px;border:1px solid color-mix(in srgb,var(--accent) 55%,var(--border));border-radius:34px;background:linear-gradient(145deg,var(--surface),var(--panel2));box-shadow:0 0 0 8px color-mix(in srgb,var(--accent) 7%,transparent),0 0 45px color-mix(in srgb,var(--accent) 22%,transparent);font-size:1.45rem;font-weight:950;color:var(--accent);overflow:hidden}
.voice-preview-avatar-v102 img{width:100%;height:100%;object-fit:cover}.voice-preview-avatar-v102>span{letter-spacing:.06em}.voice-preview-avatar-v102 i{position:absolute;right:8px;bottom:8px;width:14px;height:14px;border:3px solid var(--panel2);border-radius:50%;background:var(--green);box-shadow:0 0 12px var(--green)}
.voice-preview-avatar-v102.compact{width:72px;height:72px;border-radius:24px;font-size:1rem}.voice-preview-avatar-v102.compact i{right:5px;bottom:5px;width:11px;height:11px}
.voice-preview-overlay-v102{position:absolute;z-index:3;left:10px;right:10px;bottom:9px;display:flex;align-items:flex-end;justify-content:space-between;gap:10px;padding:8px 10px;border:1px solid color-mix(in srgb,#fff 11%,transparent);border-radius:11px;background:linear-gradient(90deg,rgba(3,7,12,.82),rgba(3,7,12,.58));backdrop-filter:blur(10px);color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.7)}
.voice-preview-overlay-v102 b,.voice-preview-overlay-v102 small{display:block}.voice-preview-overlay-v102 b{font-size:.61rem}.voice-preview-overlay-v102 b span{margin-left:5px;padding:2px 5px;border-radius:999px;background:color-mix(in srgb,var(--accent) 28%,transparent);color:var(--bright);font-size:.42rem}.voice-preview-overlay-v102 small{margin-top:2px;color:rgba(255,255,255,.7);font-size:.47rem}.voice-preview-overlay-v102 em{font-style:normal;font-size:.43rem;font-weight:900;letter-spacing:.12em;color:var(--bright)}
.voice-self-preview-foot-v102{padding:9px 2px 0;color:var(--muted);font-size:.53rem}.voice-self-preview-foot-v102 button{padding:7px 9px;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--text);font-size:.51rem}.voice-self-preview-foot-v102 button:hover{border-color:var(--accent);color:var(--accent)}

.global-call-preview-dock-v102{
  position:fixed;right:18px;bottom:18px;z-index:9800;width:min(340px,calc(100vw - 36px));padding:9px;border:1px solid color-mix(in srgb,var(--accent) 45%,var(--border));border-radius:19px;
  background:color-mix(in srgb,var(--panel2) 94%,transparent);box-shadow:0 24px 70px rgba(0,0,0,.34),0 0 0 1px color-mix(in srgb,var(--accent) 8%,transparent);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);animation:callPreviewInV102 .22s ease-out;
}
.global-call-preview-dock-v102[hidden]{display:none!important}@keyframes callPreviewInV102{from{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:none}}
.global-call-preview-head-v102{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:2px 2px 8px}.global-call-preview-title-v102{display:flex;align-items:center;gap:9px;min-width:0}.global-call-preview-title-v102>i{width:9px;height:9px;flex:0 0 9px;border-radius:50%;background:var(--green);box-shadow:0 0 12px var(--green);animation:callLivePulseV102 1.8s ease-in-out infinite}@keyframes callLivePulseV102{50%{opacity:.45;transform:scale(.78)}}.global-call-preview-title-v102 b,.global-call-preview-title-v102 small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.global-call-preview-title-v102 b{font-size:.62rem}.global-call-preview-title-v102 small{margin-top:2px;color:var(--muted);font-size:.47rem;font-variant-numeric:tabular-nums}
.global-call-preview-window-actions-v102{display:flex;gap:4px}.global-call-preview-window-actions-v102 button{display:grid;place-items:center;width:29px;height:29px;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--text)}.global-call-preview-window-actions-v102 button:hover{border-color:var(--accent);color:var(--accent)}
.global-call-preview-media-v102{width:100%;aspect-ratio:16/9;border:1px solid var(--border);border-radius:13px;min-height:154px}.global-call-preview-media-v102 .voice-preview-overlay-v102{left:7px;right:7px;bottom:7px;padding:6px 8px}.global-call-preview-media-v102 .voice-preview-overlay-v102 small{display:none}
.global-call-preview-controls-v102{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding-top:8px}.global-call-preview-controls-v102 button{display:grid;place-items:center;gap:2px;min-width:0;padding:7px 4px;border:1px solid var(--border);border-radius:11px;background:var(--surface);color:var(--text)}.global-call-preview-controls-v102 button span{font-size:.75rem}.global-call-preview-controls-v102 button small{font-size:.43rem}.global-call-preview-controls-v102 button:hover,.global-call-preview-controls-v102 button.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,var(--surface));color:var(--bright)}.global-call-preview-controls-v102 button.leave:hover{border-color:var(--danger);background:color-mix(in srgb,var(--danger) 16%,var(--surface));color:#fff}
.global-call-preview-dock-v102.minimized{width:min(300px,calc(100vw - 36px))}.global-call-preview-dock-v102.minimized .global-call-preview-media-v102,.global-call-preview-dock-v102.minimized .global-call-preview-controls-v102{display:none}.global-call-preview-dock-v102.minimized .global-call-preview-head-v102{padding-bottom:2px}

@media(max-width:1100px){.voice-self-preview-media-v102{min-height:180px}.voice-preview-privacy-v102{display:none}}
@media(max-width:820px){
  .voice-self-preview-v102{margin:9px 9px 0;padding:9px}.voice-self-preview-media-v102{min-height:180px;aspect-ratio:16/9}.voice-self-preview-head-v102 h3{font-size:.76rem}
  .global-call-preview-dock-v102{right:8px;bottom:max(8px,env(safe-area-inset-bottom));width:min(330px,calc(100vw - 16px));border-radius:16px}.global-call-preview-media-v102{min-height:138px}
}
@media(max-width:520px){
  .voice-self-preview-media-v102{min-height:160px}.voice-self-preview-foot-v102{align-items:flex-start;flex-direction:column}.voice-self-preview-foot-v102 button{width:100%}
  .global-call-preview-dock-v102{left:8px;right:8px;width:auto}.global-call-preview-controls-v102 button{padding-block:6px}.global-call-preview-controls-v102 button small{font-size:.4rem}.global-call-preview-media-v102{min-height:128px}.global-call-preview-dock-v102.minimized{left:auto;width:calc(100vw - 16px)}
}
