:root {
    --fc-blue-900:#315f9d;
    --fc-blue-800:#4779b7;
    --fc-blue-700:#5f91c9;
    --fc-blue-500:#94b9df;
    --fc-blue-300:#c7dced;
    --fc-blue-200:#dce9f5;
    --fc-blue-100:#eef5fb;
    --fc-border:#9aaec0;
    --fc-border-soft:#c3d1dc;
    --fc-ink:#253746;
    --fc-muted:#6b7f90;
    --fc-orange:#f19a22;
    --fc-yellow:#ffd55c;
    --fc-bg:#dbe6ef;
}

* { box-sizing:border-box; }
html, body { width:100%; height:100%; margin:0; }
body.flashchat-body {
    overflow:hidden;
    background:var(--fc-bg);
    color:var(--fc-ink);
    font-family:Tahoma, Verdana, Arial, sans-serif;
    font-size:11px;
}
button, input, textarea, select { font:inherit; }
button { color:inherit; }

.fc-app {
    width:100vw;
    height:100dvh;
    min-height:470px;
    display:grid;
    grid-template-rows:54px minmax(0,1fr) 24px;
    background:#edf3f8;
    border:1px solid #7893ab;
    overflow:hidden;
}

/* Classic 123FlashChat-like chrome */
.fc-header {
    min-width:0;
    display:flex;
    align-items:center;
    gap:10px;
    padding:0 10px 0 12px;
    border-bottom:1px solid #839bb0;
    background:
        linear-gradient(180deg,rgba(255,255,255,.94) 0%,rgba(255,255,255,.74) 41%,rgba(220,234,246,.94) 42%,rgba(193,214,232,.98) 100%);
    box-shadow:inset 0 -1px 0 rgba(255,255,255,.7);
}
.fc-brand {
    height:100%;
    min-width:175px;
    display:flex;
    align-items:center;
    gap:7px;
    user-select:none;
}
.fc-brand-mark {
    width:37px;
    height:37px;
    border-radius:50% 50% 50% 20%;
    transform:rotate(-12deg);
    display:flex;
    align-items:center;
    justify-content:center;
    color:white;
    font-size:19px;
    border:2px solid #4f88c4;
    background:linear-gradient(145deg,#d7f2ff 0%,#8dc9f2 45%,#3f86c6 100%);
    box-shadow:inset 0 0 0 2px rgba(255,255,255,.72),0 1px 2px rgba(30,64,92,.25);
}
.fc-brand-mark i { transform:rotate(12deg); text-shadow:0 1px 1px rgba(0,0,0,.22); }
.fc-brand-copy { display:flex; align-items:baseline; gap:3px; line-height:1; }
.fc-brand-123 { font-weight:700; font-size:15px; color:#6e8496; letter-spacing:.4px; }
.fc-brand-flash { font-weight:700; font-size:20px; color:var(--fc-orange); letter-spacing:-.8px; text-shadow:0 1px #fff; }
.fc-header-spacer { flex:1; min-width:10px; }
.fc-header-tools { display:flex; align-items:center; gap:8px; white-space:nowrap; color:#3d5367; }
.fc-header-tools a { color:#2d5f96; text-decoration:none; margin-left:9px; }
.fc-header-tools a:hover { text-decoration:underline; }
.fc-welcome strong { color:#183f71; }
.fc-header-separator { width:1px; height:18px; background:#a9bbc9; box-shadow:1px 0 #fff; }
.fc-mobile-toggle { display:none; }

.fc-body {
    min-height:0;
    min-width:0;
    display:grid;
    grid-template-columns:184px minmax(320px,1fr) 228px;
    background:#d4e0ea;
}
.fc-panel {
    min-height:0;
    min-width:0;
    background:linear-gradient(90deg,#edf3f8,#e5eef5);
    color:#34495a;
}
.fc-rooms { border-right:1px solid var(--fc-border); display:grid; grid-template-rows:29px minmax(0,1fr) 25px auto auto; }
.fc-users { border-left:1px solid var(--fc-border); display:grid; grid-template-rows:31px 52px minmax(0,1fr) 28px; }
.fc-panel-title,
.fc-panel-section-title {
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:0 8px;
    font-weight:700;
    color:#36556d;
    border-bottom:1px solid #bdccd8;
    background:linear-gradient(#f7fafc,#d8e4ed);
    text-shadow:0 1px #fff;
}
.fc-panel-title i { color:#6d8ea8; margin-right:4px; }
.fc-panel-section-title { min-height:25px; text-transform:uppercase; font-size:9px; letter-spacing:.35px; color:#6e7d89; background:linear-gradient(#e6edf2,#ced9e2); border-top:1px solid #b3c2cd; }
.fc-title-icon {
    width:22px; height:20px; padding:0; border:0; background:transparent; color:#66849c; cursor:pointer;
}
.fc-title-icon:hover { color:#244f79; }
.fc-room-list,
.fc-user-list,
.fc-message-area { scrollbar-width:thin; scrollbar-color:#91a8ba #eef4f8; }
.fc-room-list { overflow:auto; padding:3px 0; background:#edf3f7; }
.fc-room-item {
    min-height:28px;
    display:grid;
    grid-template-columns:21px minmax(0,1fr) auto;
    align-items:center;
    gap:3px;
    padding:2px 7px;
    border-top:1px solid transparent;
    border-bottom:1px solid transparent;
    cursor:pointer;
    color:#31485b;
}
.fc-room-item:hover { background:#dceaf5; border-color:#c4d7e6; }
.fc-room-item.active {
    color:#163e6b;
    font-weight:700;
    border-color:#93b2cf;
    background:linear-gradient(#e7f3fd,#bcd8ee);
    box-shadow:inset 0 1px rgba(255,255,255,.86);
}
.fc-room-icon { color:#6590b5; text-align:center; }
.fc-room-item.active .fc-room-icon { color:#e59a15; }
.fc-room-name { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fc-room-count {
    min-width:19px; height:17px; padding:0 4px; border-radius:8px;
    display:inline-flex; align-items:center; justify-content:center;
    background:#d5e1eb; border:1px solid #afc0cf; color:#5a6d7e; font-size:9px;
}
.fc-room-item.active .fc-room-count { background:#f5fbff; color:#315f8e; }
.fc-room-private { font-size:8px; color:#8f6e22; }
.fc-room-actions { padding:7px 8px 5px; background:#e9f0f5; }
.fc-panel-help { padding:7px 8px 8px; color:#7a8994; font-size:9px; line-height:1.35; border-top:1px solid #d0dbe3; background:#e9f0f5; }
.fc-loading-row { padding:12px 9px; color:#7e8e9a; font-style:italic; }

.fc-classic-button,
.fc-send-primary,
.fc-send-secondary,
.fc-format-btn,
.fc-tab-tool,
.fc-mobile-toggle {
    border:1px solid #8fa4b6;
    border-radius:2px;
    background:linear-gradient(#ffffff,#dce6ee);
    box-shadow:inset 0 1px #fff,0 1px 0 rgba(255,255,255,.55);
    cursor:pointer;
}
.fc-classic-button:hover,
.fc-format-btn:hover,
.fc-tab-tool:hover,
.fc-mobile-toggle:hover { background:linear-gradient(#fff,#cbddeb); border-color:#6f91ad; }
.fc-classic-button:active,
.fc-format-btn:active,
.fc-tab-tool:active { background:linear-gradient(#cbd9e4,#eef4f8); box-shadow:inset 0 1px 2px rgba(50,70,90,.16); }
.fc-classic-button { min-height:26px; padding:3px 10px; }
.fc-classic-button.primary { color:white; border-color:#477eab; background:linear-gradient(#76aadb,#4a7fb5); text-shadow:0 -1px rgba(0,0,0,.2); }
.fc-wide { width:100%; }

/* Main room */
.fc-chat {
    min-width:0;
    min-height:0;
    position:relative;
    display:grid;
    grid-template-rows:31px minmax(0,1fr) 116px;
    background:#fff;
}
.fc-room-tabbar {
    display:flex;
    align-items:end;
    padding:3px 6px 0;
    background:linear-gradient(#e7f0f7,#c9d9e7);
    border-bottom:1px solid #8da8be;
}
.fc-room-tab {
    height:27px;
    max-width:280px;
    display:flex;
    align-items:center;
    gap:6px;
    padding:0 13px;
    color:#31516b;
    border:1px solid #8ca8be;
    border-bottom:0;
    border-radius:5px 5px 0 0;
    background:linear-gradient(#fbfdff,#e4eef6);
    font-weight:700;
    box-shadow:inset 0 1px #fff;
}
.fc-room-tab.active { background:white; color:#234c72; position:relative; top:1px; }
.fc-room-tab i { color:#5f8eb3; }
.fc-room-tab span { overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.fc-room-tabbar-fill { flex:1; }
.fc-tab-tool { width:25px; height:23px; margin:0 0 3px 4px; color:#5b7992; }

.fc-message-area {
    min-height:0;
    overflow-y:auto;
    overflow-x:hidden;
    background:
        linear-gradient(rgba(250,253,255,.9),rgba(255,255,255,.9)),
        repeating-linear-gradient(0deg,#fff 0,#fff 27px,#f8fbfd 28px);
    padding:4px 8px 10px;
}
.fc-empty-state {
    height:100%; min-height:160px;
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    gap:5px; color:#8395a4; text-align:center;
}
.fc-empty-state strong { color:#66839b; font-size:12px; }
.fc-empty-icon { width:48px; height:48px; display:flex; align-items:center; justify-content:center; border-radius:50%; background:#eff5fa; color:#9ab0c2; font-size:24px; border:1px solid #d4e0e8; }
.fc-message-row {
    display:grid;
    grid-template-columns:34px minmax(0,1fr);
    gap:6px;
    padding:5px 4px 6px;
    border-bottom:1px solid #edf2f5;
    line-height:1.45;
}
.fc-message-row:hover { background:#f8fbfd; }
.fc-message-row.own { background:#f5f9fd; }
.fc-message-row.whisper { background:#f1f8ff; border-left:3px solid #74a6d0; padding-left:5px; }
.fc-message-avatar,
.fc-user-avatar,
.fc-compose-avatar,
.fc-profile-preview-avatar {
    overflow:hidden;
    display:flex;
    align-items:center;
    justify-content:center;
    background:linear-gradient(#f5f7f9,#cbd5dc);
    color:white;
    border:1px solid #b0bcc5;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.75);
}
.fc-message-avatar { width:30px; height:30px; border-radius:3px; color:#8295a4; }
.fc-message-avatar img,
.fc-user-avatar img,
.fc-compose-avatar img,
.fc-profile-preview-avatar img { width:100%; height:100%; object-fit:cover; display:block; }
.fc-message-head { min-height:16px; display:flex; align-items:baseline; gap:5px; flex-wrap:wrap; }
.fc-message-name { font-weight:700; color:#1d5689; cursor:pointer; }
.fc-message-name:hover { text-decoration:underline; }
.fc-message-row.role-admin .fc-message-name { color:#9f2e28; }
.fc-message-row.role-moderator .fc-message-name { color:#2d7a3e; }
.fc-message-time { color:#8b9aa6; font-size:9px; }
.fc-message-recipient { color:#537a9b; font-size:9px; font-style:italic; }
.fc-message-text { color:#2c3d49; word-break:break-word; white-space:pre-wrap; }
.fc-message-text a { color:#1c66a6; text-decoration:underline; }
.fc-message-text img.fc-inline-image { display:block; max-width:min(420px,92%); max-height:280px; margin:5px 0; border:1px solid #9fb4c5; padding:2px; background:white; }
.fc-message-system {
    margin:5px 2px;
    padding:5px 8px;
    color:#6c642a;
    border:1px solid #dfd494;
    background:#fffbe5;
    box-shadow:inset 0 1px white;
}
.fc-message-system i { color:#d5a625; margin-right:5px; }
.fc-role-badge {
    display:inline-flex; align-items:center; height:14px; padding:0 4px; border-radius:2px;
    color:white; font-size:8px; font-weight:700; line-height:14px;
}
.fc-role-badge.admin { background:#d8524c; }
.fc-role-badge.moderator { background:#57a367; }

/* Composer */
.fc-composer { min-height:0; border-top:1px solid #8fa8bc; background:#d8e6f1; display:grid; grid-template-rows:31px minmax(0,1fr); }
.fc-formatbar { display:flex; align-items:center; gap:4px; padding:3px 6px; background:linear-gradient(#eef5fa,#c8dce9); border-bottom:1px solid #a8bdcc; }
.fc-target-wrap { width:105px; height:23px; position:relative; }
.fc-target-select { width:100%; height:23px; border:1px solid #8fa5b6; background:white; color:#40596e; padding:1px 21px 1px 5px; }
.fc-tool-sep { width:1px; height:18px; margin:0 2px; background:#a7bdcd; box-shadow:1px 0 rgba(255,255,255,.9); }
.fc-format-btn { width:27px; height:23px; padding:0; color:#29475f; }
.fc-format-btn.active { background:linear-gradient(#bcd4e8,#edf5fb); box-shadow:inset 0 1px 2px rgba(40,70,95,.22); }
.fc-format-fill { flex:1; }
.fc-big-t { font-size:14px; font-weight:700; }
.fc-small-t { font-size:8px; }
.fc-compose-row { min-height:0; display:grid; grid-template-columns:38px minmax(0,1fr) 78px; gap:6px; padding:7px; background:#eef4f8; }
.fc-compose-avatar { width:36px; height:36px; border-radius:2px; align-self:start; color:#8093a2; }
#messageInput {
    width:100%; height:100%; min-height:56px; resize:none;
    border:1px solid #9cafbe; outline:none; background:white; color:#233744;
    padding:6px 7px; line-height:1.35;
    box-shadow:inset 0 1px 2px rgba(70,92,108,.1);
}
#messageInput:focus { border-color:#6e98ba; box-shadow:0 0 0 1px #d2e7f7,inset 0 1px 2px rgba(70,92,108,.1); }
.fc-send-buttons { display:grid; grid-template-rows:1fr 28px; gap:5px; min-height:0; }
.fc-send-primary,
.fc-send-secondary { width:100%; cursor:pointer; border-radius:2px; }
.fc-send-primary { color:#284c6c; font-weight:700; border-color:#7999b3; background:linear-gradient(#fff,#cfe0ed); }
.fc-send-primary:hover { background:linear-gradient(#fff,#bcd6e9); }
.fc-send-secondary { color:#607586; background:linear-gradient(#f9fbfc,#e1e8ed); }

/* Users */
.fc-user-tabs { display:grid; grid-template-columns:1fr 1fr; background:#c8d9e6; border-bottom:1px solid #9bb1c2; padding:3px 4px 0; gap:2px; }
.fc-user-tabs button {
    border:1px solid #91a9bb; border-bottom:0; border-radius:4px 4px 0 0;
    background:linear-gradient(#edf5fa,#cfdee9); color:#526b7f; height:27px; cursor:pointer;
}
.fc-user-tabs button.active { background:white; color:#315d83; font-weight:700; position:relative; top:1px; }
.fc-self-strip { display:grid; grid-template-columns:38px minmax(0,1fr) 12px; gap:6px; align-items:center; padding:5px 7px; background:#f8fbfd; border-bottom:1px solid #c7d4dd; }
.fc-user-avatar-large { width:36px!important; height:36px!important; }
.fc-self-copy { min-width:0; display:flex; flex-direction:column; gap:3px; }
.fc-self-copy strong { color:#285782; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fc-self-copy span { color:#7f8e99; font-size:9px; }
.fc-status-dot { width:8px; height:8px; border-radius:50%; border:1px solid rgba(0,0,0,.18); }
.fc-status-dot.online { background:#4eb664; box-shadow:0 0 0 1px #dff5e4; }
.fc-status-dot.away { background:#e6b73b; }
.fc-status-dot.busy { background:#d65b55; }
.fc-status-dot.offline { background:#aeb8bf; }
.fc-user-list { overflow:auto; background:#f6f9fb; }
.fc-user-row {
    min-height:34px;
    display:grid;
    grid-template-columns:28px minmax(0,1fr) 10px;
    gap:6px;
    align-items:center;
    padding:3px 7px;
    border-bottom:1px solid #e2e9ee;
    cursor:pointer;
}
.fc-user-row:hover,.fc-user-row.selected { background:#dcecf8; }
.fc-user-avatar { width:26px; height:26px; border-radius:2px; color:#8799a7; }
.fc-user-copy { min-width:0; display:flex; align-items:center; gap:4px; }
.fc-user-name { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#2d506e; }
.fc-user-row.role-admin .fc-user-name { color:#aa332d; font-weight:700; }
.fc-user-row.role-moderator .fc-user-name { color:#327a42; font-weight:700; }
.fc-user-footer { display:flex; align-items:center; padding:0 7px; color:#7b8c99; font-size:9px; border-top:1px solid #c8d6e0; background:#e6eef4; }
.fc-user-footer i { color:#7598b3; margin-right:4px; }

/* Status bar */
.fc-statusbar {
    min-width:0;
    display:flex;
    align-items:center;
    gap:7px;
    padding:0 8px;
    color:#596d7c;
    border-top:1px solid #91a7b8;
    background:linear-gradient(#edf3f7,#cddae4);
    box-shadow:inset 0 1px white;
    font-size:9px;
}
.fc-statusbar strong { color:#355a77; }
.fc-status-separator { width:1px; height:13px; background:#9eb0bd; box-shadow:1px 0 white; }
.fc-status-flex { flex:1; text-align:center; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#667f93; }
.fc-connection-dot { color:#55ad62; font-size:7px; }
.fc-disconnected .fc-connection-dot { color:#cf5a52; }

/* Popovers and old-style windows */
.fc-popover {
    position:absolute;
    z-index:80;
    bottom:110px;
    left:118px;
    width:244px;
    border:1px solid #708da5;
    background:#eef5fa;
    box-shadow:2px 3px 8px rgba(31,54,73,.25);
}
.fc-color-popover { width:176px; left:196px; }
.fc-popover[hidden] { display:none!important; }
.fc-popover-title,
.fc-window-title {
    height:25px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:0 6px 0 8px;
    color:white;
    font-weight:700;
    border-bottom:1px solid #4d7396;
    background:linear-gradient(#79add3,#4f86b5);
    text-shadow:0 -1px rgba(0,0,0,.18);
}
.fc-popover-title button,
.fc-window-title button { width:19px; height:18px; border:1px solid rgba(255,255,255,.55); background:#6292b9; color:white; line-height:14px; cursor:pointer; }
.fc-emoji-grid { display:grid; grid-template-columns:repeat(6,1fr); gap:2px; padding:7px; }
.fc-emoji-grid button { height:31px; border:1px solid transparent; background:transparent; font-size:17px; cursor:pointer; }
.fc-emoji-grid button:hover { border-color:#a5bdce; background:white; }
.fc-color-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:6px; padding:9px; }
.fc-color-grid button { height:27px; border:1px solid #7890a4; background:var(--swatch); cursor:pointer; box-shadow:inset 0 0 0 2px white; }

.fc-context-menu {
    position:fixed; z-index:120; width:168px; padding:2px;
    border:1px solid #6e8ca5; background:#f4f8fb; box-shadow:2px 3px 8px rgba(25,45,62,.3);
}
.fc-context-menu[hidden] { display:none!important; }
.fc-context-head { padding:5px 7px; color:white; font-weight:700; background:linear-gradient(#77a9d1,#4c83b1); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fc-context-menu button { width:100%; border:0; background:transparent; text-align:left; padding:6px 8px; cursor:pointer; color:#344f64; }
.fc-context-menu button i { width:18px; color:#6392b7; }
.fc-context-menu button:hover { background:#d8ebf8; }
.fc-context-sep { height:1px; margin:2px 4px; background:#c2d0da; }

.fc-modal-backdrop,
.fc-drawer-scrim {
    position:fixed; inset:0; z-index:150; background:rgba(40,60,75,.28);
    display:flex; align-items:center; justify-content:center;
}
.fc-modal-backdrop[hidden],.fc-drawer-scrim[hidden] { display:none!important; }
.fc-window {
    width:min(390px,calc(100vw - 28px));
    border:1px solid #597a96;
    background:#edf4f9;
    box-shadow:0 6px 24px rgba(21,42,59,.34);
}
.fc-window-body { padding:12px; }
.fc-window-body > label { display:block; margin-bottom:10px; font-weight:700; color:#486174; }
.fc-window-body input[type=text],
.fc-window-body input[type=password],
.fc-window-body textarea { display:block; width:100%; margin-top:4px; border:1px solid #9bb0c0; background:white; padding:6px; outline:none; }
.fc-window-body textarea { resize:vertical; }
.fc-window-body .fc-check { display:flex; align-items:center; gap:6px; font-weight:400; }
.fc-window-actions { display:flex; justify-content:flex-end; gap:6px; padding:8px 10px; border-top:1px solid #c5d3dd; background:#e4edf4; }
.fc-profile-window { width:min(340px,calc(100vw - 28px)); }
.fc-profile-preview { padding:16px; display:grid; grid-template-columns:66px 1fr; gap:12px; align-items:center; background:white; }
.fc-profile-preview-avatar { width:64px; height:64px; border-radius:3px; color:#8195a4; font-size:25px; }
.fc-profile-preview strong { display:block; color:#24577f; font-size:14px; margin-bottom:5px; }
.fc-profile-preview div div { margin-top:4px; color:#718391; }

/* Responsive: keep the classic flow, turn side panels into drawers instead of destroying layout */
@media (max-width:1050px) {
    .fc-body { grid-template-columns:164px minmax(300px,1fr) 210px; }
    .fc-brand { min-width:150px; }
    .fc-brand-flash { font-size:18px; }
}
@media (max-width:820px) {
    .fc-app { grid-template-rows:48px minmax(0,1fr) 23px; }
    .fc-body { display:block; position:relative; }
    .fc-chat { width:100%; height:100%; grid-template-rows:31px minmax(0,1fr) 110px; }
    .fc-panel { position:absolute; z-index:190; top:0; bottom:0; width:min(270px,82vw); box-shadow:4px 0 15px rgba(25,45,62,.25); transition:transform .18s ease; }
    .fc-rooms { left:0; transform:translateX(-105%); }
    .fc-users { right:0; transform:translateX(105%); box-shadow:-4px 0 15px rgba(25,45,62,.25); }
    .fc-panel.drawer-open { transform:translateX(0); }
    .fc-drawer-scrim { z-index:180; }
    .fc-mobile-toggle { display:inline-flex; align-items:center; justify-content:center; width:27px; height:25px; }
    .fc-welcome,.fc-header-separator { display:none; }
    .fc-header-tools { gap:4px; }
    .header-right a { margin-left:6px; }
    .fc-brand { min-width:135px; }
    .fc-brand-mark { width:32px; height:32px; }
    .fc-brand-123 { font-size:13px; }
    .fc-brand-flash { font-size:17px; }
}
@media (max-width:560px) {
    .fc-header { padding-left:7px; }
    .fc-brand { min-width:auto; }
    .fc-brand-123 { display:none; }
    .fc-brand-flash { font-size:15px; }
    .fc-brand-mark { width:29px; height:29px; font-size:15px; }
    .header-right a:nth-of-type(n+2) { display:none; }
    .fc-compose-row { grid-template-columns:minmax(0,1fr) 70px; }
    .fc-compose-avatar { display:none; }
    .fc-target-wrap { width:92px; }
    .fc-format-btn { width:25px; }
    .fc-formatbar { overflow-x:auto; overflow-y:hidden; }
    .fc-format-fill { min-width:5px; }
    .fc-statusbar > span:nth-child(2),
    #connectionStatus { display:none; }
    .fc-popover { left:6px; bottom:108px; }
    .fc-color-popover { left:74px; }
}

@media (prefers-reduced-motion:reduce) {
    *,*::before,*::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; }
}

/* ======================================================================
   123FlashChat v10 precision shell
   This block intentionally overrides the earlier broad "classic" pass.
   ====================================================================== */
.fc-v10 {
    --v10-sky:#a9d6ef;
    --v10-sky-2:#c8e7f7;
    --v10-line:#79acd0;
    --v10-line-soft:#b7d8ec;
    --v10-panel:#eef7fc;
    --v10-toolbar:#93c8e8;
    --v10-toolbar-dark:#76b8df;
    --v10-blue:#2586c1;
    --v10-orange:#ff9f00;
    --v10-red:#bf2020;
    --v10-ink:#2d4b5f;
}

.fc-v10.flashchat-body {
    background:#d8edf9;
    font-family:Tahoma,Verdana,Arial,sans-serif;
    font-size:11px;
    color:var(--v10-ink);
}

.fc-v10 .fc-app {
    width:100vw;
    height:100dvh;
    min-height:470px;
    display:grid;
    grid-template-rows:35px minmax(0,1fr) 0;
    overflow:hidden;
    border:1px solid #6aa4ca;
    background:#fff;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.8);
}

/* top chrome */
.fc-v10 .fc-header {
    min-height:35px;
    height:35px;
    padding:0 8px 0 7px;
    gap:7px;
    border:0;
    border-bottom:1px solid #84b9d8;
    background:linear-gradient(#e9f7ff 0%,#d8eef9 53%,#c4e3f5 54%,#b8dcf1 100%);
    box-shadow:inset 0 1px #fff,inset 0 -1px rgba(255,255,255,.72);
}
.fc-v10 .fc-brand {
    position:relative;
    min-width:113px;
    width:113px;
    height:34px;
    gap:3px;
    padding-left:31px;
}
.fc-v10 .fc-brand-mark {
    position:absolute;
    left:0;
    top:3px;
    width:29px;
    height:29px;
    border-radius:55% 55% 55% 22%;
    transform:rotate(-17deg);
    border:1px solid #5aa6d4;
    color:#248fc9;
    font-size:15px;
    background:radial-gradient(circle at 37% 31%,#fff 0 20%,#c9edff 22%,#83cef3 56%,#4ba7dc 100%);
    box-shadow:inset 0 0 0 2px rgba(255,255,255,.64),0 1px 1px rgba(64,123,158,.2);
}
.fc-v10 .fc-brand-mark i { transform:rotate(17deg); text-shadow:none; }
.fc-v10 .fc-brand-copy {
    position:relative;
    display:block;
    height:31px;
    width:80px;
    line-height:1;
}
.fc-v10 .fc-brand-123 {
    position:absolute;
    left:0;
    top:4px;
    font:bold 8px/1 Tahoma,sans-serif;
    color:#6b7c88;
    letter-spacing:1.4px;
}
.fc-v10 .fc-brand-flash {
    position:absolute;
    left:0;
    top:12px;
    font:bold 16px/1 Arial,sans-serif;
    font-style:italic;
    color:#f79a12;
    letter-spacing:-1px;
    text-shadow:0 1px #fff;
}
.fc-v10 .fc-header-launchers {
    height:100%;
    display:flex;
    align-items:center;
    gap:3px;
}
.fc-v10 .fc-top-launcher,
.fc-v10 .fc-mobile-toggle {
    height:24px;
    min-width:30px;
    padding:0 7px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:4px;
    text-decoration:none;
    color:#3678a5;
    border:1px solid transparent;
    border-radius:4px;
    background:transparent;
    box-shadow:none;
    cursor:pointer;
}
.fc-v10 .fc-top-launcher:hover,
.fc-v10 .fc-mobile-toggle:hover {
    border-color:#9cc7e2;
    background:linear-gradient(#fff,#d8eefb);
}
.fc-v10 .fc-top-launcher i { font-size:14px; color:#3b99cf; }
.fc-v10 .fc-top-launcher span { font-size:10px; font-weight:700; color:#58798f; }
.fc-v10 .fc-header-tools { gap:4px; color:#50748b; }
.fc-v10 .fc-welcome {
    max-width:130px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    padding:2px 6px;
}
.fc-v10 .fc-welcome strong { color:#245d82; font-weight:700; }
.fc-v10 .header-right { display:flex; align-items:center; gap:2px; }
.fc-v10 .header-right a {
    margin:0;
    padding:3px 5px;
    color:#337ca9;
    text-decoration:none;
    border-radius:3px;
}
.fc-v10 .header-right a:hover { background:rgba(255,255,255,.65); text-decoration:none; }

/* main two-column layout: chat + user dock */
.fc-v10 .fc-body {
    min-width:0;
    min-height:0;
    display:grid;
    grid-template-columns:minmax(420px,1fr) 214px;
    background:#d7edf9;
}
.fc-v10 .fc-chat {
    position:relative;
    min-width:0;
    min-height:0;
    display:grid;
    grid-template-rows:25px minmax(0,1fr) 73px;
    border-right:1px solid #76acd0;
    background:#fff;
}

/* room tab - this is the persistent room affordance used by FlashChat */
.fc-v10 .fc-room-tabbar {
    height:25px;
    padding:3px 5px 0;
    align-items:end;
    border-bottom:1px solid #88b8d5;
    background:linear-gradient(#c7e6f6,#a9d4ed);
}
.fc-v10 .fc-room-tab {
    position:relative;
    top:1px;
    height:22px;
    min-width:110px;
    max-width:285px;
    padding:0 8px;
    display:flex;
    align-items:center;
    gap:4px;
    color:#385d74;
    font-weight:700;
    font-size:11px;
    border:1px solid #78abc9;
    border-bottom-color:#fff;
    border-radius:4px 4px 0 0;
    background:#fff;
    box-shadow:inset 0 1px #fff;
    cursor:pointer;
}
.fc-v10 .fc-room-tab:hover { background:#f9fdff; }
.fc-v10 .fc-room-tab > i:first-child { color:#f09b19; font-size:11px; }
.fc-v10 .fc-room-caret { margin-left:auto; color:#6b90a8!important; font-size:9px!important; }
.fc-v10 .fc-room-edge-tools { height:22px; display:flex; align-items:center; }
.fc-v10 .fc-tab-tool {
    width:21px;
    height:19px;
    margin:0 0 2px;
    border:0;
    background:transparent;
    box-shadow:none;
    color:#4d88ad;
}
.fc-v10 .fc-tab-tool:hover { background:rgba(255,255,255,.6); }

/* FlashChat-like popup room chooser (replaces a persistent left column) */
.fc-v10 .fc-room-browser {
    position:absolute;
    z-index:95;
    left:5px;
    top:24px;
    width:min(330px,calc(100% - 10px));
    max-height:min(430px,calc(100% - 92px));
    display:none;
    grid-template-rows:28px minmax(80px,1fr) 37px;
    border:1px solid #5f9bc2;
    border-radius:0 4px 5px 5px;
    background:#eef8fd;
    box-shadow:2px 4px 12px rgba(46,91,120,.3);
    overflow:hidden;
}
.fc-v10 .fc-room-browser.open { display:grid; }
.fc-v10 .fc-room-browser-head {
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:0 7px;
    color:#2f678d;
    font-weight:700;
    border-bottom:1px solid #8ebbd5;
    background:linear-gradient(#e9f7ff,#c6e6f7);
}
.fc-v10 .fc-room-browser .fc-room-list { padding:2px; background:#fff; }
.fc-v10 .fc-room-item {
    min-height:34px;
    padding:3px 7px;
    grid-template-columns:25px minmax(0,1fr) 28px;
    border:0;
    border-bottom:1px solid #d7eaf5;
    color:#37617c;
    background:#fff;
}
.fc-v10 .fc-room-item:nth-child(even) { background:#f5fbfe; }
.fc-v10 .fc-room-item:hover { background:#dff1fb; }
.fc-v10 .fc-room-item.active {
    color:#205c82;
    font-weight:700;
    background:#cbe7f7;
    box-shadow:inset 0 0 0 1px #acd5ec;
}
.fc-v10 .fc-room-icon { font-size:14px; color:#4eb8d6; }
.fc-v10 .fc-room-item.active .fc-room-icon { color:#ef9a12; }
.fc-v10 .fc-room-count {
    height:17px;
    min-width:19px;
    padding:0 4px;
    border:0;
    border-radius:8px;
    background:#72b9df;
    color:#fff;
    font-size:9px;
}
.fc-v10 .fc-room-browser-foot {
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:5px;
    padding:5px 6px;
    border-top:1px solid #a8cde2;
    background:#dceff9;
}
.fc-v10 .fc-room-browser-foot .fc-classic-button { min-height:25px; padding:2px 8px; }

/* transcript */
.fc-v10 .fc-message-area {
    padding:3px 5px 6px;
    overflow:auto;
    background:#fff;
    scrollbar-color:#88b6d2 #e9f4fa;
}
.fc-v10 .fc-message-row {
    min-height:24px;
    display:grid;
    grid-template-columns:19px minmax(0,1fr);
    gap:3px;
    align-items:start;
    padding:2px 3px 3px;
    border:0;
    border-bottom:1px solid #e5f1f7;
    line-height:18px;
    color:#485f6e;
}
.fc-v10 .fc-message-row:nth-child(even) { background:#fbfdfe; }
.fc-v10 .fc-message-row:hover { background:#eef8fd; }
.fc-v10 .fc-message-row.own { background:#f7fbfe; }
.fc-v10 .fc-message-row.whisper {
    padding-left:3px;
    border-left:0;
    background:#fff5f5;
}
.fc-v10 .fc-message-avatar {
    width:17px;
    height:17px;
    margin-top:1px;
    border:1px solid #a6becd;
    border-radius:1px;
    color:#809ba9;
    font-size:9px;
    background:#e9f4fa;
    box-shadow:none;
}
.fc-v10 .fc-message-copy { min-width:0; display:block; }
.fc-v10 .fc-message-head { display:inline; white-space:nowrap; }
.fc-v10 .fc-message-name {
    color:#b52a2a;
    font-weight:700;
    cursor:pointer;
}
.fc-v10 .role-moderator .fc-message-name { color:#4b8c31; }
.fc-v10 .fc-message-recipient { color:#d06767; font-style:italic; margin-left:2px; }
.fc-v10 .fc-message-time {
    margin-left:4px;
    color:#95a7b1;
    font-size:9px;
    font-weight:400;
}
.fc-v10 .fc-message-text { display:inline; margin-left:3px; color:#3d5969; word-break:break-word; }
.fc-v10 .fc-message-text::before { content:''; }
.fc-v10 .fc-message-text a { color:#1686c0; }
.fc-v10 .fc-message-system {
    min-height:23px;
    padding:3px 5px;
    color:#2784bd;
    border-bottom:1px solid #e3f0f7;
    background:#f7fcff;
}
.fc-v10 .fc-message-system i { color:#f0a11b; margin-right:4px; }
.fc-v10 .fc-role-badge {
    display:inline-flex;
    height:13px;
    align-items:center;
    padding:0 3px;
    margin-left:2px;
    vertical-align:1px;
    border-radius:2px;
    font-size:8px;
    line-height:13px;
    color:#fff;
}
.fc-v10 .fc-role-badge.admin { background:#cf3b3b; }
.fc-v10 .fc-role-badge.moderator { background:#63a54a; }
.fc-v10 .fc-inline-image { display:block; max-width:min(360px,90%); max-height:260px; margin:4px 0; border:1px solid #9ec6dc; }
.fc-v10 .fc-empty-state { color:#92a8b5; }
.fc-v10 .fc-empty-icon { width:38px; height:38px; border:0; background:#eff8fd; color:#8fc7e4; font-size:19px; }

/* bottom toolbar/input: sized after the actual FlashChat client */
.fc-v10 .fc-composer {
    min-height:0;
    display:grid;
    grid-template-rows:25px 48px;
    border-top:1px solid #77abd0;
    background:#d6edf9;
}
.fc-v10 .fc-formatbar {
    min-width:0;
    height:25px;
    display:flex;
    align-items:center;
    gap:2px;
    padding:2px 4px;
    overflow:visible;
    border:0;
    border-bottom:1px solid #72abd0;
    background:linear-gradient(#c3e5f7,#8fc7e8);
}
.fc-v10 .fc-target-wrap { width:82px; height:20px; }
.fc-v10 .fc-target-select {
    width:100%;
    height:20px;
    padding:0 17px 0 3px;
    color:#39576a;
    border:1px solid #7fa7c0;
    border-radius:0;
    background:#fff;
    outline:0;
    font-size:10px;
}
.fc-v10 .fc-tool-sep { width:1px; height:17px; margin:0 2px; background:#70acd0; box-shadow:1px 0 rgba(255,255,255,.6); }
.fc-v10 .fc-format-btn {
    width:25px;
    height:21px;
    padding:0;
    border:1px solid transparent;
    border-radius:2px;
    background:transparent;
    box-shadow:none;
    color:#257baa;
    font-size:12px;
}
.fc-v10 .fc-format-btn:hover,
.fc-v10 .fc-format-btn.active { border-color:#70a9cd; background:#e8f7ff; }
.fc-v10 .fc-format-btn[data-format="bold"] { color:#244f68; }
.fc-v10 .fc-format-btn[data-format="italic"] { color:#244f68; }
.fc-v10 .fc-format-btn[data-format="underline"] { color:#244f68; }
.fc-v10 .fc-big-t { font-size:14px; font-weight:700; }
.fc-v10 .fc-format-fill { flex:1; }
.fc-v10 .fc-typing-inline {
    max-width:160px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    color:#47758e;
    font-size:9px;
    font-style:italic;
}
.fc-v10 .fc-compose-row {
    min-height:0;
    display:grid;
    grid-template-columns:42px minmax(0,1fr) 70px;
    gap:4px;
    padding:3px 4px;
    background:#f8fdff;
}
.fc-v10 .fc-compose-avatar {
    width:38px;
    height:38px;
    border:1px solid #9dbfd2;
    border-radius:1px;
    align-self:center;
    color:#759aac;
    background:#e8f4fa;
    box-shadow:none;
}
.fc-v10 .fc-compose-row textarea {
    width:100%;
    height:41px;
    min-height:41px;
    max-height:41px;
    resize:none;
    padding:3px 5px;
    border:1px solid #9dbdd0;
    border-radius:0;
    outline:0;
    background:#fff;
    color:#2c4657;
    line-height:16px;
}
.fc-v10 .fc-compose-row textarea:focus { border-color:#6ca8cc; box-shadow:inset 0 0 0 1px #d6edf9; }
.fc-v10 .fc-send-buttons { display:grid; grid-template-rows:22px 19px; gap:2px; align-self:center; }
.fc-v10 .fc-send-primary,
.fc-v10 .fc-send-secondary {
    width:68px;
    padding:0;
    border-radius:4px;
    cursor:pointer;
}
.fc-v10 .fc-send-primary {
    height:22px;
    color:#fff;
    font-weight:700;
    border:1px solid #eb8900;
    background:linear-gradient(#ffb52f,#f29300);
    box-shadow:inset 0 1px rgba(255,255,255,.55);
    text-shadow:0 -1px rgba(134,71,0,.25);
}
.fc-v10 .fc-send-primary:hover { background:linear-gradient(#ffc151,#f59b0d); }
.fc-v10 .fc-send-secondary {
    height:19px;
    color:#537084;
    border:1px solid #9cb8c9;
    background:linear-gradient(#fff,#e8f1f6);
    box-shadow:inset 0 1px #fff;
}

/* right user dock */
.fc-v10 .fc-users {
    min-width:0;
    min-height:0;
    display:grid;
    grid-template-columns:minmax(0,1fr) 27px;
    border:0;
    background:#c3e4f6;
}
.fc-v10 .fc-user-main {
    min-width:0;
    min-height:0;
    display:grid;
    grid-template-rows:60px 26px 28px minmax(0,1fr) 32px;
    border-right:1px solid #6ba6cd;
    background:#f3f9fc;
}
.fc-v10 .fc-self-strip {
    min-height:60px;
    display:grid;
    grid-template-columns:43px minmax(0,1fr) 19px;
    gap:6px;
    align-items:center;
    padding:5px 4px 4px 6px;
    border:0;
    border-bottom:1px solid #9fc8df;
    background:linear-gradient(#f8fdff,#e6f4fb);
}
.fc-v10 .fc-user-avatar-large {
    width:41px;
    height:41px;
    border:1px solid #91b8cc;
    border-radius:1px;
    background:#e8f4fa;
    box-shadow:none;
}
.fc-v10 .fc-self-copy { min-width:0; }
.fc-v10 .fc-self-copy strong {
    display:block;
    overflow:hidden;
    text-overflow:ellipsis;
    color:#273d49;
    font-size:11px;
    line-height:16px;
}
.fc-v10 .fc-self-meta { display:flex; align-items:center; gap:4px; color:#5d8399; font-size:9px; }
.fc-v10 .fc-self-menu { width:18px; height:20px; padding:0; border:0; background:transparent; color:#517a91; cursor:pointer; }
.fc-v10 .fc-user-search-wrap {
    position:relative;
    padding:3px 5px;
    border-bottom:1px solid #a7cbdf;
    background:#e4f3fb;
}
.fc-v10 .fc-user-search-wrap i {
    position:absolute;
    left:10px;
    top:8px;
    color:#9aaeb9;
    font-size:9px;
}
.fc-v10 .fc-user-search-wrap input {
    width:100%;
    height:19px;
    padding:1px 4px 1px 18px;
    border:1px solid #a2bfd0;
    border-radius:1px;
    background:#fff;
    outline:0;
    font-size:9px;
}
.fc-v10 .fc-user-stats {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    border-bottom:1px solid #8dbbd6;
    background:linear-gradient(#c8e7f6,#a8d3eb);
}
.fc-v10 .fc-user-stats button {
    height:27px;
    border:0;
    border-right:1px solid #8ab8d4;
    background:transparent;
    color:#56798e;
    cursor:pointer;
    font-size:10px;
}
.fc-v10 .fc-user-stats button:last-child { border-right:0; }
.fc-v10 .fc-user-stats button.active,
.fc-v10 .fc-user-stats button:hover { background:rgba(255,255,255,.58); color:#2b79a6; }
.fc-v10 .fc-user-stats i { margin-right:3px; color:#397fa7; }
.fc-v10 .fc-user-list { min-height:0; padding:0; overflow:auto; background:#fff; }
.fc-v10 .fc-user-row {
    min-height:31px;
    display:grid;
    grid-template-columns:27px minmax(0,1fr) 13px;
    gap:3px;
    align-items:center;
    padding:2px 4px;
    border:0;
    border-bottom:1px solid #e1edf4;
    background:#fff;
    cursor:pointer;
}
.fc-v10 .fc-user-row:nth-child(even) { background:#f4f9fc; }
.fc-v10 .fc-user-row:hover { background:#dff1fb; }
.fc-v10 .fc-user-row.selected { background:#a9d2e9; box-shadow:inset 0 0 0 1px #8cbfdc; }
.fc-v10 .fc-user-row .fc-user-avatar {
    width:25px;
    height:25px;
    border:1px solid #abc4d2;
    border-radius:1px;
    color:#7e9dad;
    background:#eef7fb;
    box-shadow:none;
}
.fc-v10 .fc-user-copy { min-width:0; display:flex; align-items:center; gap:3px; }
.fc-v10 .fc-user-name {
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    color:#34586d;
}
.fc-v10 .role-admin .fc-user-name { color:#c32e2e; font-weight:700; }
.fc-v10 .role-moderator .fc-user-name { color:#4e9334; font-weight:700; }
.fc-v10 .fc-status-dot {
    width:7px;
    height:7px;
    border-radius:50%;
    border:1px solid rgba(0,0,0,.12);
    box-shadow:inset 0 1px rgba(255,255,255,.5);
}
.fc-v10 .fc-status-dot.online { background:#37b65d; }
.fc-v10 .fc-status-dot.away { background:#f5b83b; }
.fc-v10 .fc-status-dot.busy { background:#e05050; }
.fc-v10 .fc-status-dot.offline { background:#b9c4ca; }
.fc-v10 .fc-mini-player {
    display:grid;
    grid-template-columns:19px 23px 19px minmax(20px,1fr) 12px;
    align-items:center;
    gap:2px;
    padding:3px 4px;
    border-top:1px solid #77acd0;
    background:linear-gradient(#a9d7ef,#79badd);
}
.fc-v10 .fc-player-btn,
.fc-v10 .fc-player-play {
    height:20px;
    padding:0;
    border:0;
    background:transparent;
    color:#245d7c;
    cursor:pointer;
}
.fc-v10 .fc-player-play {
    width:21px;
    border-radius:50%;
    color:#fff;
    background:#198fcb;
    box-shadow:inset 0 1px rgba(255,255,255,.5);
}
.fc-v10 .fc-player-level { height:5px; border:1px solid #789fb4; background:#e8f4fa; }
.fc-v10 .fc-player-level span { display:block; width:58%; height:100%; background:#ed8f22; }
.fc-v10 .fc-mini-connection { text-align:right; }

.fc-v10 .fc-module-rail {
    min-width:27px;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:1px;
    padding:2px 1px;
    background:linear-gradient(90deg,#c8e6f6,#a5d2ea);
}
.fc-v10 .fc-module-rail button,
.fc-v10 .fc-module-rail a {
    position:relative;
    width:25px;
    min-height:43px;
    display:flex;
    align-items:center;
    justify-content:center;
    border:1px solid transparent;
    border-radius:3px;
    background:transparent;
    color:#2788bb;
    text-decoration:none;
    cursor:pointer;
}
.fc-v10 .fc-module-rail button:hover,
.fc-v10 .fc-module-rail a:hover,
.fc-v10 .fc-module-rail .active {
    border-color:#83b7d3;
    background:linear-gradient(#eaf8ff,#bfdef0);
}
.fc-v10 .fc-module-rail i { font-size:14px; }
.fc-v10 .fc-module-rail span {
    position:absolute;
    right:1px;
    bottom:2px;
    min-width:12px;
    height:12px;
    padding:0 2px;
    border-radius:6px;
    color:#e45b22;
    font-size:8px;
    line-height:12px;
    text-align:center;
    background:#fff;
}

/* v10 user popup menu */
.fc-v10 .fc-context-menu {
    width:171px;
    padding:0 3px 5px;
    overflow:hidden;
    border:2px solid #1da5e4;
    border-radius:0 0 13px 13px;
    background:#f9fdff;
    box-shadow:2px 3px 7px rgba(36,86,115,.28);
}
.fc-v10 .fc-context-head {
    height:24px;
    margin:0 -3px 3px;
    padding:0 5px 0 8px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    color:#fff;
    font-weight:700;
    background:linear-gradient(#6fa8c6,#4e829f);
}
.fc-v10 .fc-context-head button { width:18px!important; height:18px; padding:0!important; color:#fff; text-align:center!important; background:transparent!important; font-size:14px; }
.fc-v10 .fc-context-menu > button {
    height:25px;
    padding:3px 7px;
    color:#49616f;
    font-size:10px;
    border-radius:3px;
}
.fc-v10 .fc-context-menu > button:hover { background:#dff3fe; }
.fc-v10 .fc-context-menu > button i { width:18px; color:#4ea7cb; }
.fc-v10 .fc-context-menu > button[data-action="private"] i { color:#4ebd5e; }
.fc-v10 .fc-context-menu > button[data-action="ignore"] i { color:#ef8a33; }
.fc-v10 .fc-context-menu > button[data-action="friends"] i { color:#4ab8a2; }
.fc-v10 .fc-context-sep { background:#d4e5ef; }

/* popovers/windows tuned to the same shell */
.fc-v10 .fc-popover { bottom:72px; border-color:#62a5cd; background:#f5fbfe; }
.fc-v10 .fc-popover-title,
.fc-v10 .fc-window-title { background:linear-gradient(#7fb8d7,#4e91b9); border-bottom-color:#4f8cb0; }
.fc-v10 .fc-window { border-color:#619fc4; background:#eef8fd; }
.fc-v10 .fc-window-actions { background:#dceff9; border-top-color:#a8cde2; }

/* no modern global status strip in the v10 lobby */
.fc-v10 .fc-statusbar { display:none!important; }

/* room/user drawers on smaller screens while preserving the desktop proportions */
@media (max-width:820px) {
    .fc-v10 .fc-app { min-height:430px; }
    .fc-v10 .fc-body { grid-template-columns:minmax(0,1fr); position:relative; }
    .fc-v10 .fc-chat { border-right:0; }
    .fc-v10 .fc-users {
        position:absolute;
        z-index:190;
        top:0;
        right:0;
        bottom:0;
        width:min(230px,86vw);
        transform:translateX(104%);
        transition:transform .16s ease;
        box-shadow:-3px 0 10px rgba(35,81,108,.25);
    }
    .fc-v10 .fc-users.drawer-open { transform:translateX(0); }
    .fc-v10 .fc-mobile-toggle { display:inline-flex; }
    .fc-v10 .fc-top-launcher span { display:none; }
    .fc-v10 .fc-top-launcher { padding:0 4px; }
    .fc-v10 .fc-welcome { display:none; }
    .fc-v10 .header-right a { padding:3px; }
    .fc-v10 .fc-drawer-scrim { z-index:180; }
}

@media (max-width:560px) {
    .fc-v10 .fc-header { padding-left:4px; gap:2px; }
    .fc-v10 .fc-brand { width:98px; min-width:98px; transform:scale(.92); transform-origin:left center; }
    .fc-v10 .fc-header-launchers { gap:0; }
    .fc-v10 .fc-top-launcher:nth-of-type(n+3) { display:none; }
    .fc-v10 .header-right a:nth-child(n+2) { display:none; }
    .fc-v10 .fc-chat { grid-template-rows:25px minmax(0,1fr) 75px; }
    .fc-v10 .fc-formatbar { overflow-x:auto; overflow-y:hidden; }
    .fc-v10 .fc-typing-inline { display:none; }
    .fc-v10 .fc-compose-row { grid-template-columns:minmax(0,1fr) 68px; }
    .fc-v10 .fc-compose-avatar { display:none; }
    .fc-v10 .fc-send-primary,.fc-v10 .fc-send-secondary { width:66px; }
    .fc-v10 .fc-message-row { grid-template-columns:17px minmax(0,1fr); }
    .fc-v10 .fc-message-time { display:none; }
    .fc-v10 .fc-room-browser { width:calc(100% - 8px); left:4px; }
    .fc-v10 .fc-popover { left:4px; max-width:calc(100vw - 8px); }
}

/* === Functional polish / Control Center v4.0 === */
.fc-room-item.unread .fc-room-name { font-weight:700; color:#163f70; }
.fc-room-item.full { opacity:.78; }
.fc-room-item.full .fc-room-count { color:#8c4747; border-color:#c7a1a1; background:#faecec; }
.fc-unread-dot { display:inline-block; width:6px; height:6px; border-radius:50%; margin-left:5px; vertical-align:1px; background:#df4a43; box-shadow:0 0 0 1px #fff; }
.fc-history-loader { position:relative; z-index:2; margin:2px auto 5px; width:max-content; max-width:90%; padding:4px 9px; border:1px solid #b8cad8; background:#edf5fb; color:#567187; font-size:9px; box-shadow:0 1px 2px #3452; }
.fc-new-message-notice { position:absolute; z-index:20; right:16px; bottom:126px; min-height:25px; padding:3px 10px; border:1px solid #6e91ad; border-radius:12px; background:linear-gradient(#fff,#cfe2f0); color:#315b7e; font:700 10px Tahoma,Verdana,sans-serif; box-shadow:0 2px 7px #2345; cursor:pointer; }
.fc-new-message-notice:hover { background:linear-gradient(#fff,#b9d7eb); }
.fc-message-mode { min-width:43px; height:19px; padding:0 5px; display:inline-flex; align-items:center; justify-content:center; border:1px solid #9fb2c0; border-radius:2px; background:#edf3f7; color:#657887; font-size:8px; font-weight:700; text-transform:uppercase; }
.fc-message-mode.personal { background:#eef6ff; color:#38688f; border-color:#9cb8cf; }
.fc-message-mode.whisper { background:#fff3d9; color:#8b641a; border-color:#d9bf82; }
.fc-char-count { margin-left:5px; min-width:52px; text-align:right; color:#728494; font-size:8px; }
.fc-char-count.warn { color:#a76a17; font-weight:700; }
.fc-char-count.over { color:#b42626; }
.fc-message-row.personal { border-left:3px solid #8eb8dc; padding-left:5px; background:#f8fbff; }
.fc-friend-mark { margin-left:4px; color:#6a9a4d; font-size:8px; }
.fc-user-row.ignored { opacity:.52; }
.fc-user-row.self { background:#f3f7fa; }
.fc-status-hint { margin-left:auto; margin-right:10px; color:#718493; }

.fc-toast-stack { position:fixed; z-index:5000; top:44px; left:50%; transform:translateX(-50%); width:min(360px,calc(100vw - 24px)); display:grid; gap:5px; pointer-events:none; }
.fc-toast { pointer-events:auto; min-height:34px; display:grid; grid-template-columns:18px minmax(0,1fr) 20px; align-items:center; gap:6px; padding:6px 7px 6px 9px; border:1px solid #94aabe; background:linear-gradient(#fff,#e3edf4); color:#314b60; box-shadow:0 4px 15px #20394e40; animation:fc-toast-in .16s ease-out; font-size:10px; }
.fc-toast.success { border-color:#8eb897; background:linear-gradient(#f8fff9,#e3f3e5); color:#35603c; }
.fc-toast.error { border-color:#c39797; background:linear-gradient(#fffafa,#f7e3e3); color:#7e3838; }
.fc-toast button { border:0; background:transparent; color:inherit; font-size:17px; line-height:1; cursor:pointer; }
.fc-toast.leaving { opacity:0; transform:translateY(-5px); transition:.18s; }
@keyframes fc-toast-in { from { opacity:0; transform:translateY(-7px); } }

.fc-status-menu { position:fixed; z-index:4400; width:145px; padding:3px; border:1px solid #7f9aaf; background:#f4f8fb; box-shadow:2px 3px 9px #2345; }
.fc-status-menu button,.fc-status-menu a { width:100%; min-height:25px; display:flex; align-items:center; gap:7px; padding:3px 7px; border:0; background:transparent; color:#334f65; text-decoration:none; font:10px Tahoma,Verdana,sans-serif; text-align:left; cursor:pointer; }
.fc-status-menu button:hover,.fc-status-menu a:hover { background:#dbeaf5; }
.fc-status-menu .fc-status-dot { position:static; flex:0 0 auto; }
.fc-danger-action { color:#8d3030 !important; }
.fc-context-menu button:disabled { opacity:.5; cursor:default; background:transparent !important; }

.fc-private-windows { position:fixed; z-index:2900; right:12px; bottom:28px; display:flex; flex-direction:row-reverse; align-items:flex-end; gap:7px; pointer-events:none; max-width:calc(100vw - 24px); }
.fc-private-window { pointer-events:auto; width:290px; height:310px; display:grid; grid-template-rows:29px minmax(0,1fr) 48px; border:1px solid #6889a5; background:#fff; box-shadow:0 5px 18px #1c385660; font:10px Tahoma,Verdana,Arial,sans-serif; }
.fc-private-window.minimized { height:29px; grid-template-rows:29px; }
.fc-private-window.minimized .fc-private-body,.fc-private-window.minimized .fc-private-compose { display:none; }
.fc-private-head { display:flex; align-items:center; min-width:0; padding-left:5px; color:#274e70; background:linear-gradient(#eef7fd,#c3daea); border-bottom:1px solid #7d9bb2; cursor:default; user-select:none; }
.fc-private-title { flex:1; min-width:0; display:flex; align-items:center; gap:5px; }
.fc-private-title .fc-user-avatar { width:20px; height:20px; border-radius:2px; }
.fc-private-title strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fc-private-controls { display:flex; align-self:stretch; }
.fc-private-controls button { width:27px; border:0; border-left:1px solid #aac0d0; background:transparent; color:#3b617f; cursor:pointer; font-weight:700; }
.fc-private-controls button:hover { background:#eaf3f9; }
.fc-private-badge { min-width:15px; height:15px; padding:0 3px; display:inline-flex; align-items:center; justify-content:center; border-radius:8px; background:#d34842; color:#fff; font-size:8px; }
.fc-private-body { min-height:0; background:#fff; }
.fc-private-messages { height:100%; overflow:auto; padding:5px 6px; background:linear-gradient(#fff,#fbfdff); }
.fc-private-message { padding:3px 2px; border-bottom:1px dotted #dbe3e9; color:#344b5d; line-height:1.35; word-break:break-word; }
.fc-private-message.own strong { color:#205f91; }
.fc-private-message strong { color:#8c3c38; }
.fc-private-message-time { margin-right:4px; color:#8a9aa7; font-size:8px; }
.fc-private-system { margin:4px 1px; padding:4px 5px; border:1px solid #ddd3a0; background:#fffbe8; color:#746c37; font-size:9px; }
.fc-private-empty { height:100%; display:flex; align-items:center; justify-content:center; color:#8798a5; font-style:italic; }
.fc-private-compose { display:grid; grid-template-columns:minmax(0,1fr) 40px; gap:4px; padding:4px; border-top:1px solid #a4bacb; background:#e7eff5; }
.fc-private-compose textarea { min-width:0; resize:none; border:1px solid #9fb2c0; padding:4px 5px; outline:none; font:10px Tahoma,Verdana,sans-serif; }
.fc-private-compose textarea:focus { border-color:#6f99b9; }
.fc-private-compose button { border:1px solid #7898b1; background:linear-gradient(#fff,#c9ddeb); color:#315c7d; cursor:pointer; }

.fc-room-password-name { margin-bottom:8px; padding:7px; border:1px solid #c1d1dd; background:#eff6fb; color:#375d79; font-weight:700; }
.fc-profile-preview-copy { min-width:0; flex:1; }
.fc-profile-detail { margin-top:4px; color:#718493; font-size:9px; }
.fc-profile-bio { margin-top:7px; max-height:72px; overflow:auto; padding:6px; border:1px solid #d4e0e8; background:#f8fbfd; color:#4c6170; white-space:pre-wrap; }

@media (max-width:720px) {
    .fc-toast-stack { top:38px; }
    .fc-private-windows { right:6px; bottom:25px; left:6px; max-width:none; justify-content:flex-start; overflow-x:auto; }
    .fc-private-window { flex:0 0 min(290px,calc(100vw - 24px)); }
    .fc-new-message-notice { bottom:120px; right:9px; }
    .fc-char-count { display:none; }
    .fc-message-mode { min-width:37px; padding:0 3px; }
}

/* === FlashChat Professional Control Theme v4.0 === */
body.flashchat-body{font-family:var(--fc-font,Tahoma,Verdana,Arial,sans-serif);color:var(--fc-text,#263847);background:#d9e5ee}
.fc-v10 .fc-header{background:linear-gradient(180deg,#ffffff 0%,#f8fbfd 48%,color-mix(in srgb,var(--fc-panel,#dbe8f2) 78%,#fff) 49%,var(--fc-panel,#dbe8f2) 100%);border-bottom-color:color-mix(in srgb,var(--fc-primary,#376fa9) 45%,#b9c8d4);box-shadow:inset 0 -1px rgba(255,255,255,.8),0 1px 3px rgba(44,76,101,.08)}
.fc-v10 .fc-brand-image{display:block;max-height:38px;max-width:190px;object-fit:contain}.fc-v10 .fc-brand-mark{border-color:color-mix(in srgb,var(--fc-primary,#376fa9) 70%,#fff);background:linear-gradient(145deg,#eaf7ff,color-mix(in srgb,var(--fc-primary,#376fa9) 52%,#d8f1ff),var(--fc-primary,#376fa9))}.fc-v10 .fc-brand-flash{color:var(--fc-accent,#f3a51b)}
.fc-v10 .fc-body{background:color-mix(in srgb,var(--fc-panel,#dbe8f2) 78%,#eef7fc)}.fc-v10 .fc-chat{background:var(--fc-chat-bg,#fff);border-right-color:color-mix(in srgb,var(--fc-primary,#376fa9) 42%,#b8d6e8)}
.fc-v10 .fc-room-tabbar{background:linear-gradient(color-mix(in srgb,var(--fc-panel,#dbe8f2) 70%,#fff),color-mix(in srgb,var(--fc-primary,#376fa9) 28%,#e7f4fb));border-bottom-color:color-mix(in srgb,var(--fc-primary,#376fa9) 40%,#b6cedd)}.fc-v10 .fc-room-tab{border-color:color-mix(in srgb,var(--fc-primary,#376fa9) 45%,#bdd1df);border-bottom-color:#fff;color:var(--fc-primary-dark,#285780)}.fc-v10 .fc-room-tab>i:first-child{color:var(--fc-accent,#f3a51b)}
.fc-v10 .fc-message-area{background:var(--fc-chat-bg,#fff);padding:6px 9px 11px}.fc-v10 .fc-message-row{border-bottom:1px solid #edf1f4;padding-top:4px;padding-bottom:5px}.fc-v10 .fc-message-row:hover{background:color-mix(in srgb,var(--fc-primary,#376fa9) 3%,#fff)}.fc-message-name{color:var(--fc-primary-dark,#285780)}.fc-message-text{color:var(--fc-text,#263847)}
.fc-v10 .fc-composer{border-top-color:color-mix(in srgb,var(--fc-primary,#376fa9) 42%,#b9cbd8);background:color-mix(in srgb,var(--fc-panel,#dbe8f2) 76%,#fff)}.fc-v10 .fc-formatbar{background:linear-gradient(#f9fbfd,color-mix(in srgb,var(--fc-panel,#dbe8f2) 68%,#fff));border-bottom-color:#c4d2dc}.fc-v10 .fc-compose-row{background:#f2f6f9}.fc-v10 .fc-send-primary{border-color:color-mix(in srgb,var(--fc-accent,#f3a51b) 72%,#a66d18);background:linear-gradient(color-mix(in srgb,var(--fc-accent,#f3a51b) 83%,#fff),var(--fc-accent,#f3a51b));color:#fff;text-shadow:0 -1px rgba(0,0,0,.16);font-weight:800}.fc-v10 .fc-send-primary:hover{background:linear-gradient(color-mix(in srgb,var(--fc-accent,#f3a51b) 68%,#fff),color-mix(in srgb,var(--fc-accent,#f3a51b) 90%,#a85f00))}
.fc-v10 .fc-users{background:linear-gradient(90deg,color-mix(in srgb,var(--fc-panel,#dbe8f2) 52%,#fff),#f7fbfd);border-left-color:color-mix(in srgb,var(--fc-primary,#376fa9) 38%,#c0d3df)}.fc-v10 .fc-self-strip,.fc-v10 .fc-user-search-wrap,.fc-v10 .fc-user-stats{background:rgba(255,255,255,.82)}.fc-v10 .fc-user-row:hover,.fc-v10 .fc-user-row.selected{background:color-mix(in srgb,var(--fc-primary,#376fa9) 12%,#fff)}
.fc-v10 .fc-module-rail{background:linear-gradient(color-mix(in srgb,var(--fc-primary,#376fa9) 78%,#fff),var(--fc-primary,#376fa9));border-left-color:var(--fc-primary-dark,#285780)}.fc-v10 .fc-module-rail button,.fc-v10 .fc-module-rail a{color:#eff7fc}.fc-v10 .fc-module-rail button:hover,.fc-v10 .fc-module-rail a:hover,.fc-v10 .fc-module-rail button.active{background:rgba(255,255,255,.18)}
.fc-v10 .fc-room-browser{border-color:color-mix(in srgb,var(--fc-primary,#376fa9) 64%,#aac6d9);box-shadow:0 8px 24px rgba(37,75,102,.22)}.fc-v10 .fc-room-browser-head{color:var(--fc-primary-dark,#285780);background:linear-gradient(#fbfdff,color-mix(in srgb,var(--fc-panel,#dbe8f2) 72%,#fff));border-bottom-color:#bdd0de}.fc-v10 .fc-room-item.active{background:color-mix(in srgb,var(--fc-primary,#376fa9) 14%,#fff);box-shadow:inset 3px 0 var(--fc-accent,#f3a51b)}.fc-v10 .fc-room-count{background:color-mix(in srgb,var(--fc-primary,#376fa9) 72%,#fff)}
.fc-v10 .fc-statusbar{background:linear-gradient(#edf4f8,#d9e4ec);border-top-color:#bbcbd7;color:#5d7385}.fc-v10 .fc-classic-button.primary{background:linear-gradient(color-mix(in srgb,var(--fc-primary,#376fa9) 68%,#fff),var(--fc-primary,#376fa9));border-color:var(--fc-primary-dark,#285780)}
.fc-density-comfortable.fc-v10 .fc-chat{grid-template-rows:29px minmax(0,1fr) 92px}.fc-density-comfortable.fc-v10 .fc-message-row{padding-top:7px;padding-bottom:8px}.fc-density-comfortable.fc-v10 .fc-user-row{min-height:39px}.fc-density-comfortable.fc-v10 .fc-compose-row{padding:8px}.fc-density-comfortable.fc-v10 #messageInput{min-height:58px}
.fc-hide-message-avatars .fc-message-row{grid-template-columns:minmax(0,1fr)!important}.fc-hide-message-avatars .fc-message-avatar{display:none}.fc-hide-timestamps .fc-message-time{display:none!important}.fc-hide-statusbar .fc-app{grid-template-rows:43px minmax(0,1fr)!important}.fc-hide-statusbar .fc-statusbar{display:none!important}.fc-hide-miniplayer .fc-mini-player{display:none!important}
.fc-role-badge.rank-custom{background:var(--rank-color,#52677a)!important;color:#fff!important;border-color:color-mix(in srgb,var(--rank-color,#52677a) 72%,#000)!important;}

/* v4 brand subtitle */
.fc-brand-tagline{font-size:10px;font-weight:600;color:#5f7488;margin-left:8px;padding-left:8px;border-left:1px solid #b8c9d8;white-space:nowrap;max-width:180px;overflow:hidden;text-overflow:ellipsis}
@media(max-width:900px){.fc-brand-tagline{display:none}}

/* === FlashChat v5 professional responsive shell === */
.fc-v10 .fc-top-launcher span{display:none!important}.fc-v10 .fc-top-launcher,.fc-v10 .fc-mobile-toggle{width:30px;min-width:30px;padding:0;border-radius:6px}.fc-v10 .fc-header-launchers{gap:1px}.fc-v10 .fc-header-tools{margin-left:2px}.fc-v10 .fc-welcome{display:none}.fc-v10 .header-right{gap:1px}.fc-v10 .header-right a{width:27px;height:24px;margin:0;padding:0;display:grid;place-items:center;border:1px solid transparent;color:#377fae;border-radius:5px}.fc-v10 .header-right a:hover{border-color:#9bc7e1;background:#fff}.fc-v10 .header-right i{font-size:12px}
.fc-v10 .fc-body{grid-template-columns:minmax(0,1fr) 236px}.fc-v10 .fc-user-main{grid-template-rows:56px 26px 28px minmax(0,1fr) 38px}.fc-v10 .fc-module-rail{width:31px}.fc-v10 .fc-users{grid-template-columns:minmax(0,1fr) 31px}.fc-v10 .fc-module-rail button,.fc-v10 .fc-module-rail a{width:29px;min-height:40px}.fc-v10 .fc-user-row{min-height:31px}.fc-v10 .fc-user-copy{min-width:0}.fc-v10 .fc-user-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fc-v10 .fc-chat{grid-template-rows:27px minmax(0,1fr) 76px}.fc-v10 .fc-message-row{grid-template-columns:28px minmax(0,1fr);gap:5px;padding:4px 5px}.fc-v10 .fc-message-avatar{width:24px;height:24px}.fc-v10 .fc-message-head{min-height:14px}.fc-v10 .fc-message-text{font-size:11px;line-height:1.42}.fc-v10 .fc-formatbar{min-height:25px;padding:2px 5px;gap:2px}.fc-v10 .fc-format-btn{width:23px;height:20px;border-radius:3px}.fc-v10 .fc-compose-row{padding:4px 5px;gap:5px}.fc-v10 .fc-compose-avatar{width:29px;height:29px}.fc-v10 .fc-compose-row textarea{min-height:39px}.fc-v10 .fc-send-buttons{grid-template-rows:24px 18px}.fc-v10 .fc-send-primary{height:24px}.fc-v10 .fc-send-secondary{height:18px}

/* live camera stage floats above the transcript so more cameras never push the composer down */
.fc-live-stage{position:absolute;z-index:72;top:31px;right:8px;width:min(760px,calc(100% - 16px));max-height:min(48vh,410px);display:grid;grid-template-rows:34px minmax(0,1fr);border:1px solid #6f9dbb;border-radius:7px;background:#0c1720;box-shadow:0 10px 32px rgba(19,49,70,.32);overflow:hidden}.fc-live-stage[hidden]{display:none}.fc-live-stage-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 7px;background:linear-gradient(#f9fcfe,#d8ebf6);border-bottom:1px solid #78a7c5;color:#31556c}.fc-live-stage-head>div{display:flex;align-items:center;gap:7px}.fc-live-pill{height:19px;padding:0 6px;display:inline-flex;align-items:center;gap:4px;border-radius:10px;background:#d73535;color:#fff;font-size:9px;font-weight:800}.fc-live-pill i{font-size:6px}.fc-live-count{color:#6c8798;font-size:9px}.fc-live-actions{margin-left:auto}.fc-live-actions button{height:24px;min-width:25px;padding:0 6px;border:1px solid #9ab5c6;border-radius:4px;background:linear-gradient(#fff,#e1edf4);color:#456a82;cursor:pointer}.fc-live-actions button:hover{background:#fff}.fc-live-actions button.off{color:#ad3c3c}.fc-live-go{display:flex;align-items:center;gap:4px!important}.fc-live-go.live{border-color:#a12d2d!important;background:linear-gradient(#e55656,#c73535)!important;color:#fff!important}.fc-live-stage-tiles{min-height:110px;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-auto-rows:minmax(110px,190px);gap:2px;padding:2px;background:#071018;overflow:auto}.fc-live-tile{position:relative;min-width:0;min-height:0;background:#101d27;overflow:hidden}.fc-live-media{position:absolute;inset:0;display:grid;place-items:center}.fc-live-video{width:100%;height:100%;object-fit:cover;background:#0c141b}.fc-live-audio{position:absolute;width:1px;height:1px;opacity:.01}.fc-live-label{position:absolute;left:5px;right:5px;bottom:5px;display:flex;align-items:center;justify-content:space-between;gap:6px;padding:3px 6px;border-radius:4px;background:rgba(0,0,0,.55);color:#fff;font-size:9px}.fc-live-label span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fc-live-label i{color:#58d87b;font-size:8px}

/* radio + DJ */
.fc-radio-mini-copy{min-width:0;flex:1;display:flex;flex-direction:column;line-height:12px}.fc-radio-mini-copy strong,.fc-radio-mini-copy span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fc-radio-mini-copy strong{font-size:9px;color:#315e7b}.fc-radio-mini-copy span{font-size:8px;color:#748b9a}.fc-radio-mini-volume{width:47px;height:15px}.fc-mini-idle{display:flex;align-items:center;gap:5px;color:#628094}.fc-floating-panel{position:fixed;z-index:4300;right:44px;top:42px;width:280px;border:1px solid #6d9cba;border-radius:6px;background:#f4faff;box-shadow:0 8px 26px rgba(31,73,102,.28);overflow:hidden}.fc-floating-panel[hidden]{display:none}.fc-floating-head{height:31px;display:flex;align-items:center;justify-content:space-between;padding:0 8px;background:linear-gradient(#83bad9,#4d92bb);color:#fff;font-weight:700}.fc-floating-head button{width:24px;height:24px;border:0;background:transparent;color:#fff;cursor:pointer}.fc-radio-panel-body{display:grid;grid-template-columns:54px minmax(0,1fr);gap:9px;padding:12px}.fc-radio-art{width:52px;height:52px;display:grid;place-items:center;border-radius:5px;background:linear-gradient(145deg,#d6effd,#7bb8dc);color:#fff;font-size:22px}.fc-radio-panel-body strong,.fc-radio-panel-body span{display:block}.fc-radio-panel-body span{margin-top:4px;color:#718898;font-size:9px}.fc-dj-panel{padding-bottom:8px}.fc-dj-state{display:flex;flex-direction:column;padding:10px 10px 4px}.fc-dj-state strong{color:#315b79}.fc-dj-state span{color:#738997;font-size:9px}.fc-dj-panel label{display:block;padding:5px 10px;color:#536f82;font-weight:700}.fc-dj-panel input{width:100%;height:27px;margin-top:4px;border:1px solid #aac0cf;padding:4px 6px}.fc-floating-actions{display:flex;gap:6px;padding:4px 10px}

/* private chat windows keep classic separate-conversation behavior but are cleaner and mobile safe */
.fc-private-windows{right:10px;bottom:8px;gap:5px}.fc-private-window{width:304px;height:326px;border-radius:5px;overflow:hidden;border-color:#6c98b5;box-shadow:0 9px 28px rgba(22,57,82,.28)}.fc-private-head{height:30px;background:linear-gradient(#f9fdff,#d7ebf6)}.fc-private-window.minimized{height:30px}.fc-private-compose{grid-template-columns:minmax(0,1fr) 44px;background:#edf5f9}.fc-private-compose button{border-radius:4px}

/* admin theme cards */
.fc-theme-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;padding:4px}.fc-theme-card{display:grid;grid-template-columns:54px minmax(0,1fr);gap:10px;padding:12px;border:1px solid #d8e1e8;border-radius:10px;background:#fff}.fc-theme-card.active{border-color:#7ca7c6;box-shadow:inset 0 0 0 1px #cbe2f1}.fc-theme-swatch{width:52px;height:52px;display:grid;place-items:center;border-radius:10px;background:linear-gradient(145deg,#e8f6ff,#7bb4d8);color:#fff;font-size:20px}.fc-theme-card h4{margin:0 0 4px;font-size:14px}.fc-theme-card p{margin:0 0 5px;color:#72808c;font-size:11px}.fc-theme-card small{color:#96a2ac}.fc-theme-actions{grid-column:1/-1;display:flex;align-items:center;gap:6px}.fc-theme-actions form{margin:0}.fc-info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.fc-info-grid>div{padding:12px;border:1px solid #dbe4ea;border-radius:8px;background:#f9fbfc}.fc-info-grid i{display:block;margin-bottom:8px;color:#4d8eb8;font-size:18px}.fc-info-grid strong,.fc-info-grid span{display:block}.fc-info-grid span{margin-top:4px;color:#75838e;font-size:11px}

@media(max-width:980px){.fc-v10 .fc-body{grid-template-columns:minmax(0,1fr) 215px}.fc-v10 .fc-users{grid-template-columns:minmax(0,1fr) 29px}.fc-v10 .fc-module-rail{width:29px}.fc-live-stage{max-height:42vh}}
@media(max-width:820px){.fc-v10 .fc-body{grid-template-columns:minmax(0,1fr)}.fc-v10 .fc-users{width:min(270px,88vw)}.fc-live-stage{right:5px;top:29px;width:calc(100% - 10px);max-height:45vh}.fc-live-stage-tiles{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(100px,150px)}.fc-floating-panel{right:8px;top:39px;width:min(290px,calc(100vw - 16px))}.fc-info-grid{grid-template-columns:1fr}}
@media(max-width:560px){.fc-v10 .fc-header{height:38px}.fc-v10 .fc-app{grid-template-rows:38px minmax(0,1fr) 0}.fc-v10 .fc-brand{width:88px;min-width:88px}.fc-v10 .fc-header-spacer{min-width:0}.fc-v10 .fc-header-launchers{margin-left:auto}.fc-v10 .fc-header-tools{display:none}.fc-v10 .fc-top-launcher,.fc-v10 .fc-mobile-toggle{width:28px;min-width:28px}.fc-v10 .fc-top-launcher:nth-of-type(n){display:inline-flex}.fc-v10 .fc-chat{grid-template-rows:27px minmax(0,1fr) 78px}.fc-v10 .fc-target-wrap{max-width:92px}.fc-v10 .fc-message-mode{display:none}.fc-v10 .fc-tool-sep{display:none}.fc-v10 .fc-format-btn:nth-of-type(n+6){display:none}.fc-v10 .fc-compose-row{grid-template-columns:minmax(0,1fr) 62px}.fc-v10 .fc-send-primary,.fc-v10 .fc-send-secondary{width:60px}.fc-live-stage{max-height:40vh}.fc-live-stage-tiles{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:100px}.fc-live-go span{display:none}.fc-private-windows{left:4px;right:4px;bottom:4px;max-width:none}.fc-private-window{width:min(330px,calc(100vw - 8px));height:50vh;flex:0 0 auto}}
/* v5.2 profile + icon-navigation polish */
.fc-header-launchers .fc-top-launcher>span{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.fc-header-launchers .fc-top-launcher{width:31px;justify-content:center;padding:0}.fc-header-launchers{gap:1px}.fc-profile-rich{width:min(440px,calc(100vw - 24px))}.fc-preview-cover{height:100px;background:linear-gradient(135deg,#bdd6e7,#edf5fa);background-position:center;background-size:cover;border-bottom:1px solid #c6d8e4}.fc-profile-rich .fc-profile-preview{margin-top:-28px;padding-top:0;background:transparent;grid-template-columns:74px 1fr}.fc-profile-rich .fc-profile-preview-avatar{width:72px;height:72px;border:3px solid #fff;border-radius:5px;background:#e5eef4;box-shadow:0 2px 8px #264c6426}.fc-preview-details{background:#fff;padding:0 14px 12px}.fc-profile-moodline{font-style:italic;color:#4c6f86!important}.fc-preview-details .fc-profile-detail{margin-top:6px;color:#617d8f;line-height:1.4}.fc-preview-details .fc-profile-bio{margin-top:10px;padding-top:9px;border-top:1px solid #e6edf2;white-space:pre-wrap;color:#344f61;line-height:1.45}.fc-preview-website{display:inline-block;margin-top:8px;color:#287eb6;text-decoration:none}.fc-preview-music{display:grid;grid-template-columns:auto 1fr minmax(150px,230px);gap:8px;align-items:center;padding:9px 14px;background:#edf6fb;border-top:1px solid #cfe1ec;color:#356d91}.fc-preview-music audio{width:100%;height:30px}.fc-message-text{overflow-wrap:anywhere}@media(max-width:620px){.fc-header-launchers .fc-top-launcher{width:30px}.fc-preview-music{grid-template-columns:auto 1fr}.fc-preview-music audio{grid-column:1/-1}.fc-profile-rich{width:calc(100vw - 10px)}}


/* v5.2 Cody-style identity backend rendered inside classic FlashChat UI */
.fc-avatar-framed{position:relative;display:grid;place-items:center;width:100%;height:100%}.fc-avatar-framed>.fc-avatar-image{width:78%!important;height:78%!important;object-fit:cover;border-radius:50%}.fc-avatar-frame-image{position:absolute!important;inset:-6%!important;width:112%!important;height:112%!important;max-width:none!important;object-fit:contain!important;pointer-events:none;border-radius:0!important;z-index:2}.fc-fancy-name{color:var(--name-c1);font-weight:inherit}.fc-fancy-name.gradient{display:inline-block;background:linear-gradient(90deg,var(--name-c1),var(--name-c2));-webkit-background-clip:text;background-clip:text;color:transparent}.fc-message-name .fc-fancy-name,.fc-user-name .fc-fancy-name{font-weight:700}

/* ========================================================================== 
   v5.2 CodyFlow — one interaction model, complete semantic theme palette
   ========================================================================== */
:root{
  --fc-theme-page:#edf3f8;
  --fc-theme-header-top:#ffffff;
  --fc-theme-header-bottom:var(--fc-panel,#dbe8f2);
  --fc-theme-panel:color-mix(in srgb,var(--fc-panel,#dbe8f2) 52%,#fff);
  --fc-theme-panel-alt:#f7fbfd;
  --fc-theme-chat:var(--fc-chat-bg,#fff);
  --fc-theme-input:#fff;
  --fc-theme-border:color-mix(in srgb,var(--fc-primary,#376fa9) 38%,#bcced9);
  --fc-theme-border-soft:#d9e5ec;
  --fc-theme-text:var(--fc-text,#263847);
  --fc-theme-muted:#6f8594;
  --fc-theme-link:var(--fc-primary,#376fa9);
  --fc-theme-hover:color-mix(in srgb,var(--fc-primary,#376fa9) 9%,#fff);
  --fc-theme-selected:color-mix(in srgb,var(--fc-primary,#376fa9) 18%,#fff);
  --fc-theme-toolbar:color-mix(in srgb,var(--fc-panel,#dbe8f2) 58%,#fff);
  --fc-theme-toolbar-alt:#f8fbfd;
  --fc-theme-accent:var(--fc-accent,#f3a51b);
  --fc-theme-danger:#c74747;
  --fc-theme-success:#2e9b5e;
  --fc-theme-shadow:rgba(30,60,82,.20);
}

body.flashchat-body{background:var(--fc-theme-page);color:var(--fc-theme-text)}
.fc-v10 .fc-app{background:var(--fc-theme-page);color:var(--fc-theme-text);border-color:var(--fc-theme-border)}
.fc-v10 .fc-header{background:linear-gradient(180deg,var(--fc-theme-header-top),var(--fc-theme-header-bottom));border-bottom-color:var(--fc-theme-border);color:var(--fc-theme-text)}
.fc-v10 .fc-header-launchers{display:flex;align-items:center;gap:2px;overflow:visible}
.fc-v10 .fc-top-launcher,.fc-v10 .fc-mobile-toggle{width:29px;min-width:29px;height:27px;padding:0;display:grid;place-items:center;border:1px solid transparent;border-radius:4px;background:transparent;color:var(--fc-theme-link);cursor:pointer;text-decoration:none}
.fc-v10 .fc-top-launcher:hover,.fc-v10 .fc-mobile-toggle:hover{border-color:var(--fc-theme-border);background:var(--fc-theme-hover);color:var(--fc-theme-text)}
.fc-v10 .fc-top-launcher i,.fc-v10 .fc-mobile-toggle i{font-size:12px;color:currentColor}
.fc-v10 .fc-header-tools,.fc-v10 .header-right{display:none!important}

.fc-v10 .fc-room-tabbar,.fc-v10 .fc-formatbar,.fc-v10 .fc-statusbar{background:linear-gradient(180deg,var(--fc-theme-toolbar-alt),var(--fc-theme-toolbar));border-color:var(--fc-theme-border);color:var(--fc-theme-text)}
.fc-v10 .fc-room-tab{background:linear-gradient(180deg,var(--fc-theme-toolbar-alt),var(--fc-theme-panel));border-color:var(--fc-theme-border);color:var(--fc-theme-text)}
.fc-v10 .fc-room-tab i,.fc-v10 .fc-tab-tool,.fc-v10 .fc-format-btn{color:var(--fc-theme-link)}
.fc-v10 .fc-format-btn:hover,.fc-v10 .fc-tab-tool:hover{background:var(--fc-theme-hover);border-color:var(--fc-theme-border)}
.fc-v10 .fc-chat,.fc-v10 .fc-message-area{background:var(--fc-theme-chat);color:var(--fc-theme-text)}
.fc-v10 .fc-message-row{border-color:var(--fc-theme-border-soft);color:var(--fc-theme-text)}
.fc-v10 .fc-message-row:hover{background:var(--fc-theme-hover)}
.fc-v10 .fc-message-head,.fc-v10 .fc-message-time,.fc-v10 .fc-message-recipient{color:var(--fc-theme-muted)}
.fc-v10 .fc-message-text{color:inherit}
.fc-v10 .fc-empty-state,.fc-v10 .fc-loading-row,.fc-v10 .fc-history-loader{color:var(--fc-theme-muted)}
.fc-v10 .fc-compose-wrap,.fc-v10 .fc-compose-row{background:var(--fc-theme-toolbar);border-color:var(--fc-theme-border)}
.fc-v10 .fc-compose-row textarea,.fc-v10 .fc-target-wrap select{background:var(--fc-theme-input);color:var(--fc-theme-text);border-color:var(--fc-theme-border)}
.fc-v10 .fc-compose-row textarea::placeholder{color:var(--fc-theme-muted)}
.fc-v10 .fc-send-primary{background:linear-gradient(180deg,color-mix(in srgb,var(--fc-theme-accent) 76%,#fff),var(--fc-theme-accent));border-color:color-mix(in srgb,var(--fc-theme-accent) 80%,#784600);color:#fff}
.fc-v10 .fc-send-secondary{background:var(--fc-theme-toolbar-alt);border-color:var(--fc-theme-border);color:var(--fc-theme-text)}

.fc-v10 .fc-users{background:var(--fc-theme-panel);border-left-color:var(--fc-theme-border);color:var(--fc-theme-text)}
.fc-v10 .fc-user-main{background:var(--fc-theme-panel)}
.fc-v10 .fc-self-strip,.fc-v10 .fc-user-search-wrap,.fc-v10 .fc-user-stats,.fc-v10 .fc-mini-player{background:var(--fc-theme-panel-alt);border-color:var(--fc-theme-border-soft);color:var(--fc-theme-text)}
.fc-v10 .fc-self-copy strong{color:var(--fc-theme-text)}
.fc-v10 .fc-self-copy span,.fc-v10 .fc-user-meta{color:var(--fc-theme-muted)}
.fc-v10 .fc-user-search-wrap input{background:var(--fc-theme-input);color:var(--fc-theme-text);border-color:var(--fc-theme-border)}
.fc-v10 .fc-user-search-wrap input::placeholder{color:var(--fc-theme-muted)}
.fc-v10 .fc-user-stats button{color:var(--fc-theme-muted);border-color:var(--fc-theme-border-soft)}
.fc-v10 .fc-user-stats button.active,.fc-v10 .fc-user-stats button:hover{background:var(--fc-theme-selected);color:var(--fc-theme-link)}
.fc-v10 .fc-user-list{background:var(--fc-theme-panel);padding:2px 0}
.fc-v10 .fc-user-row{min-height:43px;display:grid;grid-template-columns:34px minmax(0,1fr) 10px;gap:7px;align-items:center;padding:4px 7px;background:transparent;border-bottom:1px solid var(--fc-theme-border-soft);color:var(--fc-theme-text)}
.fc-v10 .fc-user-row:nth-child(even){background:color-mix(in srgb,var(--fc-theme-panel-alt) 60%,transparent)}
.fc-v10 .fc-user-row:hover{background:var(--fc-theme-hover)}
.fc-v10 .fc-user-row.selected{background:var(--fc-theme-selected);box-shadow:inset 2px 0 var(--fc-theme-link)}
.fc-v10 .fc-user-row .fc-user-avatar{width:32px;height:32px;border-radius:4px;background:var(--fc-theme-toolbar);border:1px solid var(--fc-theme-border);overflow:visible}
.fc-v10 .fc-user-copy{display:flex;flex-direction:column;min-width:0;gap:2px}
.fc-v10 .fc-user-line{display:flex;align-items:center;gap:4px;min-width:0}
.fc-v10 .fc-user-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;color:var(--fc-theme-text)}
.fc-v10 .fc-user-meta{display:flex;align-items:center;gap:4px;min-width:0;font-size:8px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fc-v10 .fc-user-mood{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fc-v10 .fc-user-mood:before{content:"·";margin-right:4px}
.fc-v10 .fc-friend-mark{font-size:8px;color:var(--fc-theme-link)}
.fc-v10 .fc-role-badge{flex:none}
.fc-v10 .fc-module-rail{background:linear-gradient(180deg,color-mix(in srgb,var(--fc-primary,#376fa9) 88%,#fff),var(--fc-primary-dark,#285780));border-left-color:var(--fc-theme-border)}
.fc-v10 .fc-module-rail button,.fc-v10 .fc-module-rail a{color:#f4f9fc}

.fc-room-browser,.fc-context-menu,.fc-status-menu,.fc-popover,.fc-floating-panel{background:var(--fc-theme-panel-alt);color:var(--fc-theme-text);border-color:var(--fc-theme-border);box-shadow:0 8px 30px var(--fc-theme-shadow)}
.fc-room-browser-head,.fc-floating-head,.fc-window-title{border-color:var(--fc-theme-border)}
.fc-room-list{background:var(--fc-theme-panel)}
.fc-room-item{color:var(--fc-theme-text);border-color:transparent}
.fc-room-item:hover{background:var(--fc-theme-hover);border-color:var(--fc-theme-border-soft)}
.fc-room-item.active{background:var(--fc-theme-selected);border-color:var(--fc-theme-border);color:var(--fc-theme-text)}
.fc-context-menu button,.fc-status-menu button{color:var(--fc-theme-text)}
.fc-context-menu button:hover,.fc-status-menu button:hover{background:var(--fc-theme-hover)}

/* CodyChat-style floating app panels while retaining FlashChat window chrome */
.fc-app-modal-backdrop{z-index:5000;background:rgba(10,24,34,.38);backdrop-filter:blur(1px)}
.fc-app-modal-window{width:min(620px,calc(100vw - 28px));max-height:min(760px,calc(100dvh - 36px));display:grid;grid-template-rows:31px minmax(0,1fr);background:var(--fc-theme-panel-alt);color:var(--fc-theme-text);border:1px solid var(--fc-theme-border);border-radius:6px;box-shadow:0 18px 60px var(--fc-theme-shadow);overflow:hidden}
.fc-app-modal-window.size-large{width:min(780px,calc(100vw - 28px))}.fc-app-modal-window.size-small{width:min(440px,calc(100vw - 28px))}
.fc-app-modal-titlebar{background:linear-gradient(180deg,color-mix(in srgb,var(--fc-primary,#376fa9) 65%,#fff),var(--fc-primary,#376fa9));color:#fff;text-shadow:0 1px rgba(0,0,0,.2)}
.fc-app-modal-titlebar button{color:#fff}
.fc-app-modal-body{min-height:0;overflow:auto;background:var(--fc-theme-panel-alt);color:var(--fc-theme-text)}
.fc-app-modal-loading,.fc-app-modal-error{min-height:190px;display:grid;place-items:center;align-content:center;gap:8px;color:var(--fc-theme-muted)}
.fc-app-modal-error i{font-size:28px;color:var(--fc-theme-danger)}
.fc-cody-profile-form,.fc-modal-settings-form{background:var(--fc-theme-panel-alt);color:var(--fc-theme-text)}
.fc-cody-cover{height:142px;position:relative;background:linear-gradient(135deg,var(--fc-theme-toolbar),var(--fc-theme-panel));background-position:center;background-size:cover;border-bottom:1px solid var(--fc-theme-border)}
.fc-media-chip,.fc-avatar-camera{cursor:pointer}.fc-media-chip input,.fc-avatar-camera input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.fc-media-chip{position:absolute;right:10px;bottom:9px;height:27px;padding:0 9px;display:flex;align-items:center;gap:5px;border:1px solid var(--fc-theme-border);border-radius:4px;background:var(--fc-theme-panel-alt);color:var(--fc-theme-text);box-shadow:0 1px 4px var(--fc-theme-shadow)}
.fc-media-remove{position:absolute;right:84px;bottom:9px;width:28px;height:27px;display:grid;place-items:center;border:1px solid var(--fc-theme-border);border-radius:4px;background:var(--fc-theme-panel-alt);color:var(--fc-theme-danger);cursor:pointer}.fc-media-remove input{display:none}
.fc-cody-profile-head{position:relative;min-height:74px;padding:9px 14px 8px 102px;display:flex;align-items:center;gap:10px;background:var(--fc-theme-panel-alt);border-bottom:1px solid var(--fc-theme-border-soft)}
.fc-cody-avatar{position:absolute;left:16px;top:-35px;width:78px;height:78px;display:grid;place-items:center;border:3px solid var(--fc-theme-panel-alt);border-radius:7px;background:var(--fc-theme-toolbar);box-shadow:0 4px 14px var(--fc-theme-shadow);font-size:27px;overflow:visible}.fc-cody-avatar>img:not(.fc-avatar-frame-image){width:100%;height:100%;object-fit:cover;border-radius:4px}
.fc-avatar-camera{position:absolute;left:71px;top:29px;width:26px;height:26px;display:grid;place-items:center;border-radius:50%;background:var(--fc-theme-link);color:#fff;border:2px solid var(--fc-theme-panel-alt)}
.fc-cody-profile-title{min-width:0;display:flex;flex-direction:column}.fc-cody-profile-title strong{font-size:14px;color:var(--fc-theme-text)}.fc-cody-profile-title span{font-size:9px;color:var(--fc-theme-muted)}
.fc-inline-check{display:inline-flex!important;align-items:center;gap:5px;font-size:9px;color:var(--fc-theme-muted)}
.fc-modal-tabs,.fc-friends-tabs{height:34px;display:flex;align-items:end;gap:2px;padding:0 10px;border-bottom:1px solid var(--fc-theme-border);background:var(--fc-theme-toolbar)}
.fc-modal-tabs button,.fc-friends-tabs button{height:28px;padding:0 11px;border:1px solid transparent;border-bottom:0;border-radius:4px 4px 0 0;background:transparent;color:var(--fc-theme-muted);cursor:pointer}
.fc-modal-tabs button.active,.fc-friends-tabs button.active{background:var(--fc-theme-panel-alt);border-color:var(--fc-theme-border);color:var(--fc-theme-link);font-weight:700}
.fc-modal-tabpanel{display:none;padding:14px}.fc-modal-tabpanel.active{display:block}
.fc-modal-form-grid{display:grid;gap:10px}.fc-modal-form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.fc-modal-form-grid .wide{grid-column:1/-1}
.fc-modal-form-grid label,.fc-dj-panel label{display:flex;flex-direction:column;gap:4px;color:var(--fc-theme-muted);font-weight:700;font-size:9px}
.fc-modal-form-grid input,.fc-modal-form-grid select,.fc-modal-form-grid textarea,.fc-modal-settings-form input,.fc-modal-settings-form select{width:100%;min-height:31px;padding:6px 8px;border:1px solid var(--fc-theme-border);border-radius:4px;background:var(--fc-theme-input);color:var(--fc-theme-text);outline:none}.fc-modal-form-grid textarea{resize:vertical}.fc-modal-form-grid input:focus,.fc-modal-form-grid select:focus,.fc-modal-form-grid textarea:focus{border-color:var(--fc-theme-link);box-shadow:0 0 0 2px color-mix(in srgb,var(--fc-theme-link) 14%,transparent)}
.fc-modal-color{display:flex;align-items:center;gap:8px}.fc-modal-color input,.fc-modal-color-pair input{width:42px!important;padding:2px!important}.fc-modal-color span{font-weight:400;color:var(--fc-theme-muted)}.fc-modal-color-pair{display:flex;gap:6px}
.fc-modal-frame-row{display:flex;gap:7px;overflow-x:auto;padding:10px 1px 2px}.fc-frame-mini{flex:0 0 66px;display:grid;grid-template-rows:44px auto;gap:3px;text-align:center;cursor:pointer}.fc-frame-mini input{position:absolute;opacity:0}.fc-frame-mini span{display:grid;place-items:center;border:1px solid var(--fc-theme-border);border-radius:5px;background:var(--fc-theme-toolbar);overflow:hidden}.fc-frame-mini input:checked+span{border-color:var(--fc-theme-link);box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--fc-theme-link) 20%,transparent)}.fc-frame-mini img{max-width:42px;max-height:42px}.fc-frame-mini small{color:var(--fc-theme-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fc-upload-health,.fc-modal-note{display:flex;align-items:center;gap:7px;margin-bottom:10px;padding:8px 10px;border:1px solid var(--fc-theme-border-soft);border-radius:5px;background:var(--fc-theme-toolbar);color:var(--fc-theme-muted)}
.fc-current-music{margin:10px 0;display:flex;align-items:center;gap:10px}.fc-current-music audio{max-width:330px;width:100%}
.fc-cody-switches{display:grid;gap:7px}.fc-cody-switches>label{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:10px;border:1px solid var(--fc-theme-border-soft);border-radius:5px;background:var(--fc-theme-panel)}.fc-cody-switches b,.fc-cody-switches small{display:block}.fc-cody-switches small{margin-top:3px;color:var(--fc-theme-muted);font-weight:400}
.fc-modal-section{padding:14px;border-bottom:1px solid var(--fc-theme-border-soft)}.fc-modal-section h4{margin:0 0 11px;color:var(--fc-theme-text)}.fc-modal-section h4 i{margin-right:5px;color:var(--fc-theme-link)}
.fc-modal-savebar{position:sticky;bottom:0;display:flex;align-items:center;justify-content:flex-end;gap:7px;padding:9px 12px;border-top:1px solid var(--fc-theme-border);background:var(--fc-theme-panel-alt);box-shadow:0 -4px 12px color-mix(in srgb,var(--fc-theme-shadow) 45%,transparent)}.fc-modal-savebar>span{margin-right:auto;color:var(--fc-theme-muted)}
.fc-modal-btn{height:30px;padding:0 12px;border:1px solid var(--fc-theme-border);border-radius:4px;background:var(--fc-theme-toolbar);color:var(--fc-theme-text);cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:5px}.fc-modal-btn.primary{background:var(--fc-theme-link);border-color:var(--fc-theme-link);color:#fff}.fc-modal-btn.ghost:hover{background:var(--fc-theme-hover)}

.fc-friends-modal{padding:10px}.fc-friends-search{height:32px;display:flex;align-items:center;gap:7px;padding:0 8px;border:1px solid var(--fc-theme-border);border-radius:5px;background:var(--fc-theme-input);color:var(--fc-theme-muted)}.fc-friends-search input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:var(--fc-theme-text)}.fc-friends-tabs{margin:10px -10px 0}.fc-friends-list{max-height:430px;overflow:auto;margin:0 -10px -10px}.fc-friend-row{min-height:56px;display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:8px;align-items:center;padding:7px 10px;border-bottom:1px solid var(--fc-theme-border-soft);background:var(--fc-theme-panel-alt)}.fc-friend-row:hover{background:var(--fc-theme-hover)}.fc-friend-avatar{position:relative;width:38px;height:38px;display:grid;place-items:center;border:1px solid var(--fc-theme-border);border-radius:5px;background:var(--fc-theme-toolbar);overflow:hidden}.fc-friend-avatar img{width:100%;height:100%;object-fit:cover}.fc-friend-avatar .fc-status-dot{position:absolute;right:2px;bottom:2px}.fc-friend-copy{display:flex;flex-direction:column;gap:2px;min-width:0}.fc-friend-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fc-theme-text)}.fc-friend-copy span,.fc-friend-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fc-theme-muted)}.fc-friend-actions{display:flex;gap:4px}.fc-friend-actions button{width:29px;height:29px;border:1px solid var(--fc-theme-border);border-radius:4px;background:var(--fc-theme-toolbar);color:var(--fc-theme-link);cursor:pointer}.fc-friend-actions button:hover{background:var(--fc-theme-hover)}.fc-friend-actions button.good{color:var(--fc-theme-success)}.fc-request-sent{color:var(--fc-theme-muted);font-size:9px}

.fc-modal-backdrop .fc-window:not(.fc-app-modal-window){background:var(--fc-theme-panel-alt);color:var(--fc-theme-text);border-color:var(--fc-theme-border)}
.fc-profile-rich .fc-preview-cover{background-color:var(--fc-theme-toolbar);border-color:var(--fc-theme-border)}
.fc-profile-rich .fc-profile-preview,.fc-preview-details{background:var(--fc-theme-panel-alt)!important;color:var(--fc-theme-text)}
.fc-profile-rich .fc-profile-preview-copy strong,.fc-preview-details .fc-profile-bio{color:var(--fc-theme-text)}
.fc-profile-rich .fc-profile-preview-copy div,.fc-preview-details .fc-profile-detail,.fc-profile-moodline{color:var(--fc-theme-muted)!important}
.fc-preview-music{background:var(--fc-theme-toolbar);border-color:var(--fc-theme-border);color:var(--fc-theme-link)}
.fc-private-window{background:var(--fc-theme-panel-alt);color:var(--fc-theme-text);border-color:var(--fc-theme-border)}.fc-private-messages{background:var(--fc-theme-chat)}.fc-private-compose{background:var(--fc-theme-toolbar);border-color:var(--fc-theme-border)}.fc-private-compose input{background:var(--fc-theme-input);color:var(--fc-theme-text);border-color:var(--fc-theme-border)}

@media(max-width:820px){
  .fc-v10 .fc-users{width:min(300px,91vw)}
  .fc-app-modal-window,.fc-app-modal-window.size-large,.fc-app-modal-window.size-medium{width:min(680px,calc(100vw - 14px));max-height:calc(100dvh - 14px)}
}
@media(max-width:560px){
  .fc-v10 .fc-brand{width:88px;min-width:88px}.fc-v10 .fc-brand-mark{width:28px;height:28px}.fc-v10 .fc-brand-copy{transform:scale(.82);transform-origin:left center}
  .fc-v10 .fc-header-launchers{max-width:calc(100vw - 96px);overflow-x:auto;scrollbar-width:none}.fc-v10 .fc-header-launchers::-webkit-scrollbar{display:none}
  .fc-v10 .fc-top-launcher,.fc-v10 .fc-mobile-toggle{flex:0 0 27px;width:27px;min-width:27px}
  .fc-modal-form-grid.two{grid-template-columns:1fr}.fc-modal-form-grid .wide{grid-column:auto}
  .fc-cody-cover{height:116px}.fc-cody-profile-head{padding-left:88px}.fc-cody-avatar{width:66px;height:66px;left:12px;top:-30px}.fc-avatar-camera{left:58px;top:26px}
  .fc-modal-tabs,.fc-friends-tabs{overflow-x:auto;scrollbar-width:none}.fc-modal-tabs button,.fc-friends-tabs button{flex:0 0 auto}
  .fc-friend-row{grid-template-columns:38px minmax(0,1fr)}.fc-friend-actions{grid-column:2;justify-content:flex-start}
}
body[data-message-size="small"] .fc-message-text{font-size:10px!important}body[data-message-size="medium"] .fc-message-text{font-size:11px!important}body[data-message-size="large"] .fc-message-text{font-size:13px!important;line-height:1.5!important}
.fc-v10 .fc-message-row:nth-child(even),.fc-v10 .fc-message-row.own{background:color-mix(in srgb,var(--fc-theme-panel-alt) 34%,transparent)}
.fc-v10 .fc-message-row.whisper{background:color-mix(in srgb,var(--fc-theme-link) 9%,var(--fc-theme-chat));border-left-color:var(--fc-theme-link)}
.fc-v10 .fc-message-row.personal{background:color-mix(in srgb,var(--fc-theme-accent) 7%,var(--fc-theme-chat));border-left-color:var(--fc-theme-accent)}
.fc-v10 .fc-message-name,.fc-v10 .fc-fancy-name{color:var(--name-c1,var(--fc-theme-link))}.fc-v10 .fc-fancy-name.gradient{color:transparent}

/* v5.2.1 header responsibility fix: mobile user toggle must never duplicate desktop user controls. */
.fc-v10 .fc-mobile-toggle{display:none!important}
@media(max-width:820px){.fc-v10 .fc-mobile-toggle{display:grid!important}}

/* v5.2 account/security modal */
.fc-account-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.fc-account-summary>div{padding:10px;border:1px solid var(--fc-theme-border-soft);border-radius:5px;background:var(--fc-theme-panel)}.fc-account-summary span,.fc-account-summary strong{display:block}.fc-account-summary span{font-size:8px;text-transform:uppercase;letter-spacing:.04em;color:var(--fc-theme-muted);margin-bottom:3px}.fc-account-summary strong{font-size:10px;color:var(--fc-theme-text);overflow:hidden;text-overflow:ellipsis}.fc-account-form-foot{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:10px}.fc-account-form-foot [data-account-status]{margin-right:auto;color:var(--fc-theme-muted);font-size:9px}.fc-account-danger{background:color-mix(in srgb,var(--fc-theme-danger) 5%,var(--fc-theme-panel-alt));border-top:1px solid color-mix(in srgb,var(--fc-theme-danger) 35%,var(--fc-theme-border))}.fc-account-danger h4{color:var(--fc-theme-danger)}.fc-modal-btn.danger{background:var(--fc-theme-danger);border-color:var(--fc-theme-danger);color:#fff}@media(max-width:620px){.fc-account-summary{grid-template-columns:1fr}.fc-account-action-form .fc-modal-form-grid.three{grid-template-columns:1fr}}

/* ========================================================================== 
   v5.2.1 CodyFlow footer + composer spacing
   Real application footer replaces the old hidden v10 status strip.
   ========================================================================== */
.fc-v10 .fc-app{
    grid-template-rows:35px minmax(0,1fr) 25px;
}

/* Composer now naturally sits above the footer instead of touching viewport. */
.fc-v10 .fc-chat{
    min-height:0;
}
.fc-v10 .fc-composer{
    position:relative;
    z-index:5;
    box-shadow:0 -1px 0 color-mix(in srgb,var(--fc-theme-border) 70%,transparent);
}

.fc-v10 .fc-statusbar.fc-cody-footer{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
    align-items:center;
    min-width:0;
    height:25px;
    padding:0 7px;
    gap:8px;
    border-top:1px solid var(--fc-theme-border);
    background:linear-gradient(180deg,var(--fc-theme-toolbar-alt),var(--fc-theme-toolbar));
    color:var(--fc-theme-muted);
    font:9px/1 Tahoma,Verdana,Arial,sans-serif;
    overflow:hidden;
    user-select:none;
}
.fc-cody-footer>div{
    min-width:0;
    height:100%;
    display:flex;
    align-items:center;
    gap:7px;
}
.fc-cody-footer .fc-footer-left{justify-content:flex-start;overflow:hidden}
.fc-cody-footer .fc-footer-center{justify-content:center;overflow:hidden;color:var(--fc-theme-muted)}
.fc-cody-footer .fc-footer-right{justify-content:flex-end;overflow:hidden;white-space:nowrap}
.fc-cody-footer .fc-footer-room,
.fc-cody-footer .fc-footer-connection,
.fc-cody-footer .fc-footer-users,
.fc-cody-footer .fc-footer-clock{
    display:inline-flex;
    align-items:center;
    min-width:0;
    gap:4px;
    white-space:nowrap;
}
.fc-cody-footer .fc-footer-room{overflow:hidden}
.fc-cody-footer .fc-footer-room strong{
    max-width:180px;
    overflow:hidden;
    text-overflow:ellipsis;
    color:var(--fc-theme-text);
    font-weight:700;
}
.fc-cody-footer .fc-footer-room>i,
.fc-cody-footer .fc-footer-users>i{color:var(--fc-theme-link)}
.fc-cody-footer .fc-footer-users strong{color:var(--fc-theme-text);font-weight:700}
.fc-cody-footer .fc-footer-connection{color:var(--fc-theme-success)}
.fc-cody-footer .fc-footer-connection>i{font-size:6px}
.fc-cody-footer .fc-footer-site{
    max-width:180px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    color:var(--fc-theme-muted);
}
.fc-cody-footer .fc-status-hint:not(:empty)::after{
    content:"·";
    margin-left:7px;
    color:var(--fc-theme-border);
}
.fc-cody-footer .fc-footer-divider{
    width:1px;
    height:12px;
    flex:0 0 1px;
    background:var(--fc-theme-border-soft);
}

/* Existing admin switch still controls footer visibility. */
.fc-v10.fc-hide-statusbar .fc-app{
    grid-template-rows:35px minmax(0,1fr)!important;
}
.fc-v10.fc-hide-statusbar .fc-statusbar{
    display:none!important;
}

/* Keep floating private chats above the new footer. */
.fc-v10 .fc-private-windows{bottom:33px}

@media(max-width:820px){
    .fc-v10 .fc-statusbar.fc-cody-footer{
        grid-template-columns:minmax(0,1fr) auto;
        height:25px;
        padding-inline:6px;
    }
    .fc-cody-footer .fc-footer-center{display:none}
    .fc-cody-footer .fc-footer-room strong{max-width:120px}
    .fc-v10 .fc-private-windows{bottom:31px}
}

@media(max-width:560px){
    .fc-v10 .fc-app{
        grid-template-rows:38px minmax(0,1fr) 24px;
    }
    .fc-v10 .fc-statusbar.fc-cody-footer{
        height:24px;
        font-size:8px;
        gap:4px;
    }
    .fc-cody-footer .fc-footer-left{gap:5px}
    .fc-cody-footer .fc-footer-right{gap:5px}
    .fc-cody-footer .fc-footer-label,
    .fc-cody-footer .fc-footer-divider,
    .fc-cody-footer .fc-footer-clock{display:none}
    .fc-cody-footer .fc-footer-room strong{max-width:110px}
    .fc-v10 .fc-private-windows{bottom:29px}
}
.fc-cody-footer .fc-footer-connection.is-offline{color:var(--fc-theme-danger)}
.fc-cody-footer .fc-footer-connection.is-offline>i{animation:fcFooterPulse 1s ease-in-out infinite alternate}
@keyframes fcFooterPulse{from{opacity:.35}to{opacity:1}}


/* ========================================================================== 
   v5.2.2 room-user dock + message moderation polish
   ========================================================================== */
/* v10 inherits a legacy row template from .fc-users; explicitly reset it so
   the user list receives the full available height instead of collapsing. */
.fc-v10 .fc-users{
    grid-template-rows:minmax(0,1fr)!important;
    align-items:stretch;
    overflow:hidden;
}
.fc-v10 .fc-user-main{
    height:100%;
    min-height:0;
    overflow:hidden;
}
.fc-v10 .fc-user-main.no-radio{
    grid-template-rows:56px 26px 28px minmax(0,1fr)!important;
}
.fc-v10 .fc-user-main.has-radio{
    grid-template-rows:56px 26px 28px minmax(0,1fr) 38px!important;
}
.fc-v10 .fc-user-list{
    height:100%;
    min-height:0;
    overflow-y:auto;
    overflow-x:hidden;
    align-self:stretch;
}
.fc-v10 .fc-user-row{
    width:100%;
}
.fc-v10 .fc-module-rail{
    height:100%;
    min-height:0;
    align-self:stretch;
    justify-content:flex-start;
    overflow:hidden auto;
    border-left:1px solid var(--fc-theme-border-soft);
}
.fc-v10 .fc-module-rail button,
.fc-v10 .fc-module-rail a{
    flex:0 0 36px;
    min-height:36px;
}

/* Timestamp is a true right-edge metadata column now. */
.fc-v10 .fc-message-copy{
    min-width:0;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:start;
    gap:8px;
}
.fc-v10 .fc-message-main{
    min-width:0;
    line-height:18px;
    overflow-wrap:anywhere;
}
.fc-v10 .fc-message-head{
    display:inline;
    white-space:normal;
}
.fc-v10 .fc-message-text{
    display:inline;
    margin-left:3px;
}
.fc-v10 .fc-message-right{
    min-width:max-content;
    display:inline-flex;
    align-items:center;
    justify-content:flex-end;
    gap:5px;
    white-space:nowrap;
    padding-left:4px;
}
.fc-v10 .fc-message-time{
    margin-left:0;
    text-align:right;
    white-space:nowrap;
}
.fc-message-delete{
    width:20px;
    height:18px;
    padding:0;
    display:inline-grid;
    place-items:center;
    border:1px solid transparent;
    border-radius:3px;
    background:transparent;
    color:var(--fc-theme-muted);
    opacity:0;
    cursor:pointer;
    transition:opacity .12s ease,background .12s ease,color .12s ease;
}
.fc-message-row:hover .fc-message-delete,
.fc-message-delete:focus-visible{
    opacity:1;
}
.fc-message-delete:hover{
    color:var(--fc-theme-danger);
    border-color:color-mix(in srgb,var(--fc-theme-danger) 35%,transparent);
    background:color-mix(in srgb,var(--fc-theme-danger) 10%,var(--fc-theme-panel));
}
.fc-v10 .fc-message-system{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
}
.fc-v10 .fc-message-system-main{min-width:0;overflow-wrap:anywhere}

/* Footer clock remains the final/right-most element at desktop widths. */
.fc-cody-footer .fc-footer-right{margin-left:auto}
.fc-cody-footer .fc-footer-clock{margin-left:auto;text-align:right}

@media(max-width:820px){
    .fc-v10 .fc-user-main.no-radio{grid-template-rows:56px 26px 28px minmax(0,1fr)!important}
    .fc-v10 .fc-user-main.has-radio{grid-template-rows:56px 26px 28px minmax(0,1fr) 38px!important}
}
@media(max-width:560px){
    .fc-v10 .fc-message-copy{gap:4px}
    .fc-v10 .fc-message-right{padding-left:2px}
    .fc-v10 .fc-message-time{display:none}
    .fc-message-delete{opacity:.72;width:22px;height:22px}
}
.fc-message-system:hover .fc-message-delete{opacity:1}


/* v5.3 Cody-inspired backend UI primitives */
.fc-user-group{display:block;border-bottom:1px solid var(--fc-theme-border-soft,#c9d8e4)}
.fc-user-group-title{height:24px;display:flex;align-items:center;gap:6px;padding:0 8px;background:var(--fc-theme-toolbar-alt,#e6eef5);color:var(--fc-theme-muted,#5c7285);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--fc-theme-border-soft,#c9d8e4)}
.fc-user-group-title b{margin-left:auto;font-size:10px;font-weight:700}.fc-user-group-title .fa-headphones,.fc-onair-mark{color:#e96c21}.fc-onair-mark{font-size:9px;margin-left:3px}
.fc-message-reply,.fc-message-delete{opacity:0;transition:opacity .12s ease}.fc-message-row:hover .fc-message-reply,.fc-message-row:hover .fc-message-delete{opacity:1}
.fc-message-reply{border:0;background:transparent;color:var(--fc-theme-muted,#6a8295);padding:1px 4px;cursor:pointer;font-size:10px}.fc-message-reply:hover{color:var(--fc-theme-link,#2783bd)}
.fc-message-quote{display:flex;align-items:center;gap:7px;max-width:520px;margin:0 0 3px;border:0;border-left:3px solid var(--fc-theme-link,#2783bd);background:var(--fc-theme-toolbar-alt,#edf4f9);color:var(--fc-theme-muted,#607789);padding:3px 7px;cursor:pointer;text-align:left;font:inherit}.fc-message-quote strong{color:var(--fc-theme-link,#2783bd);white-space:nowrap}.fc-message-quote span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fc-message-flash{animation:fcMessageFlash 1.4s ease}@keyframes fcMessageFlash{0%,100%{background:transparent}35%{background:color-mix(in srgb,var(--fc-theme-accent,#f3a51b) 20%,transparent)}}
.fc-reply-bar{min-height:30px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 8px;border-top:1px solid var(--fc-theme-border,#aac0d1);background:var(--fc-theme-toolbar-alt,#e8f1f8);color:var(--fc-theme-text,#263847)}.fc-reply-bar[hidden]{display:none}.fc-reply-bar>div{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:6px;min-width:0}.fc-reply-bar small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fc-theme-muted,#6d8192)}.fc-reply-bar button{border:0;background:transparent;color:var(--fc-theme-muted,#667f91);cursor:pointer}
@media(max-width:700px){.fc-user-group-title{height:27px}.fc-message-quote{max-width:75vw}.fc-reply-bar small{display:none}}

/* ========================================================================== 
   v5.4 UI polish: theme-aware composer + SVG rank icons + cleaner mobile copy
   ========================================================================== */
.fc-sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

.fc-v10 .fc-composer{
    background:linear-gradient(180deg,var(--fc-theme-toolbar-alt),var(--fc-theme-toolbar));
    border-top:1px solid var(--fc-theme-border);
}
.fc-v10 .fc-formatbar{
    background:linear-gradient(180deg,color-mix(in srgb,var(--fc-theme-toolbar-alt) 82%,#fff),var(--fc-theme-toolbar));
    border-bottom:1px solid var(--fc-theme-border-soft);
    color:var(--fc-theme-text);
}
.fc-v10 .fc-format-btn,
.fc-v10 .fc-tab-tool,
.fc-v10 .fc-target-wrap select,
.fc-v10 .fc-message-mode{
    border-color:var(--fc-theme-border);
}
.fc-v10 .fc-target-wrap select,
.fc-v10 .fc-compose-row textarea,
.fc-v10 .fc-user-search-wrap input,
.fc-private-compose input{
    background:var(--fc-theme-input)!important;
    color:var(--fc-theme-text)!important;
    border:1px solid var(--fc-theme-border)!important;
    box-shadow:inset 0 1px 0 color-mix(in srgb,var(--fc-theme-toolbar-alt) 65%,transparent);
}
.fc-v10 .fc-target-wrap select:focus,
.fc-v10 .fc-compose-row textarea:focus,
.fc-v10 .fc-user-search-wrap input:focus,
.fc-private-compose input:focus{
    border-color:var(--fc-theme-link)!important;
    box-shadow:0 0 0 2px color-mix(in srgb,var(--fc-theme-link) 15%,transparent), inset 0 1px 0 color-mix(in srgb,var(--fc-theme-toolbar-alt) 65%,transparent);
    outline:0;
}
.fc-v10 .fc-target-wrap select,
.fc-v10 .fc-message-mode,
.fc-v10 .fc-format-btn,
.fc-v10 .fc-send-secondary{
    background:var(--fc-theme-toolbar-alt);
    color:var(--fc-theme-link);
}
.fc-v10 .fc-compose-row{
    background:linear-gradient(180deg,var(--fc-theme-toolbar),var(--fc-theme-toolbar-alt));
    border-top:1px solid color-mix(in srgb,var(--fc-theme-border) 40%,transparent);
}
.fc-v10 .fc-compose-avatar{
    background:var(--fc-theme-panel);
    border:1px solid var(--fc-theme-border);
    color:var(--fc-theme-muted);
    box-shadow:inset 0 1px 0 color-mix(in srgb,var(--fc-theme-toolbar-alt) 75%,transparent);
}
.fc-v10 .fc-compose-row textarea{
    min-height:42px;
    border-radius:4px;
    padding:8px 10px;
}
.fc-v10 .fc-compose-row textarea::placeholder{color:var(--fc-theme-muted)!important;opacity:.95}
.fc-v10 .fc-send-primary{
    box-shadow:inset 0 1px 0 rgba(255,255,255,.22);
}
.fc-v10 .fc-send-secondary:hover,
.fc-v10 .fc-format-btn:hover,
.fc-v10 .fc-target-wrap select:hover,
.fc-v10 .fc-message-mode:hover{
    background:var(--fc-theme-hover);
    color:var(--fc-theme-text);
}
.fc-v10 .fc-char-count,
.fc-v10 .fc-typing-inline,
.fc-v10 .fc-footer-site,
.fc-v10 .fc-status-hint{color:var(--fc-theme-muted)}

.fc-v10 .fc-role-badge.fc-rank-icon{
    width:18px;
    height:18px;
    padding:0;
    margin-left:3px;
    display:inline-grid;
    place-items:center;
    flex:none;
    border-radius:999px;
    border:1px solid color-mix(in srgb,var(--rank-color,#52677a) 68%,#0b1822);
    background:radial-gradient(circle at 30% 25%,color-mix(in srgb,var(--rank-color,#52677a) 76%,#fff),var(--rank-color,#52677a));
    color:#fff;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 1px rgba(0,0,0,.10);
    vertical-align:middle;
}
.fc-v10 .fc-role-badge.fc-rank-icon .fc-rank-svg{width:12px;height:12px;display:block;fill:currentColor}
.fc-v10 .fc-role-badge.fc-rank-icon .fc-rank-svg path,
.fc-v10 .fc-role-badge.fc-rank-icon .fc-rank-svg circle,
.fc-v10 .fc-role-badge.fc-rank-icon .fc-rank-svg rect{vector-effect:non-scaling-stroke}

.fc-v10 .fc-user-line{gap:5px}
.fc-v10 .fc-user-meta{gap:5px}
.fc-v10 .fc-user-pill{display:inline-flex;align-items:center;height:15px;padding:0 5px;border:1px solid var(--fc-theme-border);border-radius:999px;background:var(--fc-theme-toolbar-alt);color:var(--fc-theme-muted);font-size:8px;line-height:1}
.fc-v10 .fc-user-mood:before{content:'';margin:0}

@media(max-width:700px){
    .fc-v10 .fc-compose-row textarea{min-height:38px;padding:7px 9px}
    .fc-v10 .fc-role-badge.fc-rank-icon{width:17px;height:17px}
    .fc-v10 .fc-role-badge.fc-rank-icon .fc-rank-svg{width:11px;height:11px}
    .fc-v10 .fc-user-pill{display:none}
}

/* ========================================================================== 
   v5.5 multi-room tabs + persistent footer radio player
   ========================================================================== */
.fc-v10 .fc-room-tabbar{overflow:hidden;min-width:0}
.fc-v10 .fc-joined-room-tabs{display:flex;align-items:stretch;gap:2px;min-width:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;max-width:min(56vw,760px)}
.fc-v10 .fc-joined-room-tabs::-webkit-scrollbar{display:none}
.fc-v10 .fc-joined-room-tab{position:relative;flex:0 0 auto;max-width:180px;height:25px;padding:0 6px 0 8px;display:flex;align-items:center;gap:5px;border:1px solid var(--fc-theme-border);border-bottom-color:var(--fc-theme-border);border-radius:4px 4px 0 0;background:color-mix(in srgb,var(--fc-theme-panel) 70%,var(--fc-theme-toolbar-alt));color:var(--fc-theme-muted);font:9px Tahoma,Verdana,Arial,sans-serif;cursor:pointer}
.fc-v10 .fc-joined-room-tab:hover{background:var(--fc-theme-hover);color:var(--fc-theme-text)}
.fc-v10 .fc-joined-room-tab>span{max-width:105px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fc-v10 .fc-joined-room-tab>b{min-width:16px;height:16px;padding:0 4px;display:grid;place-items:center;border-radius:999px;background:var(--fc-theme-danger);color:#fff;font-size:8px;line-height:1}
.fc-v10 .fc-joined-room-tab.unread{color:var(--fc-theme-text);font-weight:700}
.fc-v10 .fc-joined-room-tab.unread:before{content:'';width:5px;height:5px;border-radius:50%;background:var(--fc-theme-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--fc-theme-accent) 18%,transparent)}
.fc-v10 .fc-room-tab-close{width:14px;height:14px;display:grid;place-items:center;border-radius:50%;font-size:8px;color:var(--fc-theme-muted)}
.fc-v10 .fc-room-tab-close:hover{background:color-mix(in srgb,var(--fc-theme-danger) 13%,transparent);color:var(--fc-theme-danger)}

/* Footer is now a tiny application dock. Without radio it stays one line. */
.fc-v10 .fc-statusbar.fc-cody-footer{display:block!important;height:25px;padding:0!important;overflow:hidden;background:var(--fc-theme-toolbar);border-top:1px solid var(--fc-theme-border);color:var(--fc-theme-muted)}
.fc-v10 .fc-footer-statusline{height:24px;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;padding:0 7px;gap:8px;background:linear-gradient(180deg,var(--fc-theme-toolbar-alt),var(--fc-theme-toolbar));font:9px/1 Tahoma,Verdana,Arial,sans-serif}
.fc-v10 .fc-footer-statusline>div{display:flex;align-items:center;gap:7px;min-width:0}.fc-v10 .fc-footer-left{justify-content:flex-start}.fc-v10 .fc-footer-center{justify-content:center}.fc-v10 .fc-footer-right{justify-content:flex-end;white-space:nowrap}
.fc-v10 .fc-footer-room{max-width:210px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fc-v10 .fc-footer-room strong{color:var(--fc-theme-text)}

.fc-radio-enabled .fc-app{grid-template-rows:35px minmax(0,1fr) 59px!important}
.fc-radio-enabled.fc-hide-statusbar .fc-app{grid-template-rows:35px minmax(0,1fr)!important}
.fc-radio-enabled .fc-statusbar.fc-cody-footer{height:59px}
.fc-footer-radio{height:34px;display:grid;grid-template-columns:30px 27px minmax(120px,1fr) minmax(0,140px) auto minmax(86px,120px);align-items:center;gap:7px;padding:2px 7px;border-bottom:1px solid var(--fc-theme-border-soft);background:linear-gradient(90deg,color-mix(in srgb,var(--fc-theme-panel-alt) 88%,var(--fc-theme-link)),var(--fc-theme-toolbar-alt));color:var(--fc-theme-text)}
.fc-footer-radio-art{width:30px;height:30px;display:grid;place-items:center;border:1px solid var(--fc-theme-border);border-radius:4px;background:linear-gradient(135deg,var(--fc-theme-link),var(--fc-theme-accent));background-position:center;background-size:cover;color:#fff;overflow:hidden;box-shadow:0 1px 3px var(--fc-theme-shadow)}
.fc-footer-radio-art.has-art{background-color:var(--fc-theme-panel);color:transparent}.fc-footer-radio-art i{font-size:12px}
.fc-footer-radio-play{width:27px;height:27px;display:grid;place-items:center;border:1px solid var(--fc-theme-border);border-radius:50%;background:var(--fc-theme-panel-alt);color:var(--fc-theme-link);cursor:pointer;box-shadow:0 1px 2px var(--fc-theme-shadow)}
.fc-footer-radio.playing .fc-footer-radio-play{background:var(--fc-theme-link);color:#fff;border-color:var(--fc-theme-link)}
.fc-footer-radio-copy{min-width:0;display:flex;flex-direction:column;gap:2px}.fc-footer-radio-title{display:flex;align-items:center;gap:6px;min-width:0}.fc-footer-radio-title strong{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px;color:var(--fc-theme-text)}.fc-footer-radio-copy>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:8px;color:var(--fc-theme-muted)}
.fc-radio-live-pill{flex:none;height:14px;padding:0 5px;display:inline-grid;place-items:center;border-radius:999px;background:var(--fc-theme-toolbar);border:1px solid var(--fc-theme-border);color:var(--fc-theme-muted);font-size:7px;font-weight:800;letter-spacing:.04em}.fc-radio-live-pill.live{background:color-mix(in srgb,var(--fc-theme-danger) 86%,#fff);border-color:var(--fc-theme-danger);color:#fff;box-shadow:0 0 0 2px color-mix(in srgb,var(--fc-theme-danger) 10%,transparent)}
.fc-footer-station-select{min-width:0;width:100%;height:23px;border:1px solid var(--fc-theme-border);border-radius:3px;background:var(--fc-theme-input);color:var(--fc-theme-text);font-size:8px;padding:0 5px}
.fc-footer-radio-listeners{display:inline-flex;align-items:center;gap:4px;color:var(--fc-theme-muted);font-size:8px}.fc-footer-radio-listeners b{color:var(--fc-theme-text)}
.fc-footer-radio-volume{display:grid;grid-template-columns:12px minmax(0,1fr);align-items:center;gap:4px;color:var(--fc-theme-muted)}.fc-footer-radio-volume input{width:100%;accent-color:var(--fc-theme-link)}

@media(max-width:820px){
  .fc-v10 .fc-joined-room-tabs{max-width:calc(100vw - 240px)}
  .fc-v10 .fc-joined-room-tab{max-width:130px}.fc-v10 .fc-joined-room-tab>span{max-width:70px}
  .fc-footer-radio{grid-template-columns:28px 26px minmax(90px,1fr) auto minmax(70px,92px)}.fc-footer-station-select{display:none}.fc-footer-radio-title strong{max-width:150px}
}
@media(max-width:560px){
  .fc-radio-enabled .fc-app{grid-template-rows:38px minmax(0,1fr) 57px!important}.fc-radio-enabled .fc-statusbar.fc-cody-footer{height:57px}
  .fc-v10 .fc-joined-room-tabs{max-width:calc(100vw - 155px)}.fc-v10 .fc-joined-room-tab{max-width:102px;padding-left:5px}.fc-v10 .fc-joined-room-tab>span{max-width:52px}.fc-v10 .fc-joined-room-tab i:first-child{display:none}
  .fc-footer-radio{height:34px;grid-template-columns:27px 25px minmax(70px,1fr) minmax(56px,72px);gap:5px;padding:2px 5px}.fc-footer-radio-art{width:27px;height:27px}.fc-footer-radio-play{width:25px;height:25px}.fc-footer-radio-listeners{display:none}.fc-footer-radio-volume{grid-template-columns:minmax(0,1fr)}.fc-footer-radio-volume i{display:none}.fc-footer-radio-title strong{max-width:110px}.fc-radio-live-pill{display:none}
  .fc-v10 .fc-footer-statusline{height:22px;padding:0 5px;grid-template-columns:minmax(0,1fr) auto}.fc-v10 .fc-footer-center{display:none}.fc-v10 .fc-footer-users,.fc-v10 .fc-footer-divider{display:none}.fc-v10 .fc-footer-clock{font-size:8px}
}
@media(max-width:390px){.fc-footer-radio-volume{display:none}.fc-footer-radio{grid-template-columns:27px 25px minmax(0,1fr)}.fc-v10 .fc-joined-room-tabs{max-width:calc(100vw - 132px)}}
/* v5.5 status-bar visibility with radio dock */
.fc-hide-statusbar:not(.fc-radio-enabled) .fc-statusbar.fc-cody-footer{display:none!important}
.fc-radio-enabled.fc-hide-statusbar .fc-app{grid-template-rows:35px minmax(0,1fr) 34px!important}
.fc-radio-enabled.fc-hide-statusbar .fc-statusbar.fc-cody-footer{display:block!important;height:34px!important}
.fc-radio-enabled.fc-hide-statusbar .fc-footer-statusline{display:none!important}
@media(max-width:560px){.fc-radio-enabled.fc-hide-statusbar .fc-app{grid-template-rows:38px minmax(0,1fr) 34px!important}}
.fc-v10 .fc-room-joined-mark{margin-left:5px;font-size:8px;color:var(--fc-theme-success)}
.fc-v10 .fc-room-item.joined:not(.active){box-shadow:inset 2px 0 color-mix(in srgb,var(--fc-theme-success) 70%,transparent)}

/* ========================================================================== 
   v5.5.1 stability pass
   One intrinsic layout owns header/body/composer/footer sizing. Older fixed-height
   rules above remain for compatibility but are intentionally overridden here.
   ========================================================================== */
.fc-v10 .fc-app{
    grid-template-rows:auto minmax(0,1fr) auto!important;
    min-height:0!important;
}
.fc-v10 .fc-header{height:35px;min-height:35px;max-height:35px}
.fc-v10 .fc-body{min-height:0!important;height:auto!important;overflow:hidden!important}
.fc-v10 .fc-chat{
    min-height:0!important;
    height:auto!important;
    grid-template-rows:27px minmax(0,1fr) auto!important;
    overflow:hidden!important;
}
.fc-v10 .fc-message-area{min-height:0!important;overflow:auto!important}
.fc-v10 .fc-composer{
    position:relative!important;
    inset:auto!important;
    min-height:74px!important;
    height:auto!important;
    display:grid!important;
    grid-template-rows:auto auto!important;
    align-self:stretch!important;
    overflow:visible!important;
    z-index:8;
}
.fc-v10 .fc-formatbar{height:26px!important;min-height:26px!important;flex:none!important;overflow:hidden!important}
.fc-v10 .fc-compose-row{
    min-height:48px!important;
    height:auto!important;
    align-items:stretch!important;
    padding:4px 5px 5px!important;
}
.fc-v10 .fc-compose-avatar{align-self:center!important}
.fc-v10 .fc-compose-row textarea{
    height:auto!important;
    min-height:42px!important;
    max-height:70px!important;
    align-self:stretch!important;
    resize:none!important;
    margin:0!important;
}
.fc-v10 .fc-send-buttons{
    min-height:42px!important;
    height:auto!important;
    display:grid!important;
    grid-template-rows:minmax(24px,1fr) 19px!important;
    align-self:stretch!important;
    gap:2px!important;
}
.fc-v10 .fc-send-primary,.fc-v10 .fc-send-secondary{height:auto!important;min-height:0!important;margin:0!important}

/* Footer is a normal grid row, never an overlay. */
.fc-v10 .fc-statusbar.fc-cody-footer,
.fc-radio-enabled .fc-statusbar.fc-cody-footer,
.fc-radio-enabled.fc-hide-statusbar .fc-statusbar.fc-cody-footer{
    position:relative!important;
    inset:auto!important;
    height:auto!important;
    min-height:25px!important;
    max-height:none!important;
    overflow:hidden!important;
    z-index:9;
}
.fc-v10 .fc-footer-statusline{height:25px!important;min-height:25px!important}
.fc-radio-enabled .fc-app,
.fc-radio-enabled.fc-hide-statusbar .fc-app{
    grid-template-rows:auto minmax(0,1fr) auto!important;
}
.fc-radio-enabled.fc-hide-statusbar .fc-footer-statusline{display:none!important}
.fc-hide-statusbar:not(.fc-radio-enabled) .fc-statusbar.fc-cody-footer{display:none!important}

/* Footer radio dock: intentionally visible and more app-like when a station exists. */
.fc-footer-radio{
    min-height:42px!important;
    height:42px!important;
    grid-template-columns:34px 31px minmax(140px,1fr) minmax(100px,160px) auto minmax(90px,125px)!important;
    gap:8px!important;
    padding:4px 8px!important;
    background:linear-gradient(90deg,color-mix(in srgb,var(--fc-theme-panel-alt) 92%,var(--fc-theme-link)),var(--fc-theme-toolbar-alt))!important;
}
.fc-footer-radio-art{width:34px!important;height:34px!important;border-radius:6px!important}
.fc-footer-radio-play{width:31px!important;height:31px!important}
.fc-footer-radio-title strong{font-size:10px!important;max-width:260px!important}
.fc-footer-radio-copy>span{font-size:9px!important}
.fc-footer-station-select{height:26px!important}
.fc-footer-radio-volume input{min-width:0!important}

/* Real image avatars in Control Center instead of letter placeholders. */
.fc-admin-avatar{overflow:hidden!important;background:#edf4f9!important;color:#617b90!important}
.fc-admin-avatar img{width:100%!important;height:100%!important;display:block!important;object-fit:cover!important;border-radius:inherit!important}
.fc-admin-avatar i{font-size:12px}
.fc-admin-user .fc-admin-avatar{border-radius:50%!important}
.fc-user-summary .fc-admin-avatar{border-radius:50%!important}

@media(max-width:820px){
    .fc-v10 .fc-header{height:38px;min-height:38px;max-height:38px}
    .fc-v10 .fc-chat{grid-template-rows:27px minmax(0,1fr) auto!important}
    .fc-footer-radio{grid-template-columns:32px 29px minmax(90px,1fr) auto minmax(72px,95px)!important}
    .fc-footer-station-select{display:none!important}
}
@media(max-width:560px){
    .fc-v10 .fc-app,.fc-radio-enabled .fc-app,.fc-radio-enabled.fc-hide-statusbar .fc-app{grid-template-rows:auto minmax(0,1fr) auto!important}
    .fc-v10 .fc-composer{min-height:72px!important}
    .fc-v10 .fc-compose-row{grid-template-columns:minmax(0,1fr) 62px!important;min-height:46px!important}
    .fc-v10 .fc-compose-row textarea{min-height:40px!important;max-height:62px!important}
    .fc-footer-radio{height:40px!important;min-height:40px!important;grid-template-columns:30px 27px minmax(0,1fr) minmax(62px,80px)!important;padding:3px 5px!important;gap:5px!important}
    .fc-footer-radio-art{width:30px!important;height:30px!important}.fc-footer-radio-play{width:27px!important;height:27px!important}
    .fc-footer-radio-listeners,.fc-footer-station-select{display:none!important}
    .fc-footer-radio-title strong{max-width:120px!important}
    .fc-v10 .fc-footer-statusline{height:23px!important;min-height:23px!important}
}
@media(max-width:390px){.fc-footer-radio-volume{display:none!important}.fc-footer-radio{grid-template-columns:30px 27px minmax(0,1fr)!important}}

/* Live reactions stay in a narrow right-side lane so they never cover faces in the center. */
.fc-live-reaction-lane{position:absolute;z-index:6;right:4px;top:38px;bottom:44px;width:54px;pointer-events:none;overflow:hidden}
.fc-live-reaction{position:absolute;left:50%;bottom:0;transform:translateX(-50%);font-size:25px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.55));animation:fcReactionRise var(--rd,3s) ease-out forwards;will-change:transform,opacity}
@keyframes fcReactionRise{0%{transform:translate(-50%,12px) scale(.78);opacity:0}12%{opacity:1}65%{opacity:.95}100%{transform:translate(calc(-50% + var(--rx,0px)),-240px) scale(1.18);opacity:0}}
.fc-live-reaction-bar{position:absolute;z-index:7;right:5px;bottom:5px;display:flex;flex-direction:column;gap:3px;padding:3px;border-radius:16px;background:rgba(6,17,25,.56);backdrop-filter:blur(4px)}
.fc-live-reaction-bar button{width:29px;height:29px;padding:0;display:grid;place-items:center;border:1px solid rgba(255,255,255,.16);border-radius:50%;background:rgba(255,255,255,.10);font-size:16px;cursor:pointer;transition:transform .12s ease,background .12s ease}
.fc-live-reaction-bar button:hover{transform:scale(1.08);background:rgba(255,255,255,.2)}
@media(max-width:560px){.fc-live-reaction-lane{right:2px;width:42px;bottom:38px}.fc-live-reaction-bar{right:3px;bottom:3px}.fc-live-reaction-bar button{width:25px;height:25px;font-size:14px}.fc-live-reaction-bar button:nth-child(n+4){display:none}}

/* ========================================================================== 
   v5.5.2 footer simplification
   The generic status footer is removed. Radio is the only optional bottom dock.
   ========================================================================== */
.fc-v10 .fc-app{
    grid-template-rows:auto minmax(0,1fr)!important;
}
.fc-radio-enabled .fc-app{
    grid-template-rows:auto minmax(0,1fr) auto!important;
}
.fc-radio-dock{
    position:relative;
    z-index:12;
    min-height:0;
    overflow:hidden;
    border-top:1px solid var(--fc-theme-border);
    background:var(--fc-theme-toolbar-alt);
    color:var(--fc-theme-text);
}
.fc-radio-dock .fc-footer-radio{
    height:44px!important;
    min-height:44px!important;
    display:grid!important;
    grid-template-columns:35px 31px minmax(150px,1fr) minmax(100px,160px) auto minmax(90px,125px)!important;
    align-items:center!important;
    gap:8px!important;
    padding:4px 8px!important;
    border:0!important;
    background:linear-gradient(90deg,color-mix(in srgb,var(--fc-theme-panel-alt) 92%,var(--fc-theme-link)),var(--fc-theme-toolbar-alt))!important;
}
.fc-footer-radio-listeners{
    display:inline-flex!important;
    align-items:center;
    justify-content:center;
    gap:4px;
    min-width:72px;
    white-space:nowrap;
    color:var(--fc-theme-muted);
    font-size:8px;
}
.fc-footer-radio-listeners i{color:var(--fc-theme-link)}
.fc-footer-radio-listeners b{color:var(--fc-theme-text);font-size:9px;font-weight:800}
.fc-footer-radio-listeners em{font-style:normal;color:var(--fc-theme-muted)}

/* Old status footer selectors must never reserve space in v5.5.2. */
.fc-v10 .fc-statusbar.fc-cody-footer,
.fc-v10 .fc-footer-statusline{display:none!important;height:0!important;min-height:0!important;max-height:0!important;padding:0!important;border:0!important;overflow:hidden!important}

@media(max-width:820px){
    .fc-radio-dock .fc-footer-radio{
        grid-template-columns:32px 29px minmax(100px,1fr) auto minmax(74px,96px)!important;
    }
    .fc-footer-station-select{display:none!important}
    .fc-footer-radio-listeners{min-width:68px!important}
}
@media(max-width:560px){
    .fc-radio-enabled .fc-app{grid-template-rows:auto minmax(0,1fr) auto!important}
    .fc-radio-dock .fc-footer-radio{
        height:42px!important;
        min-height:42px!important;
        grid-template-columns:30px 27px minmax(0,1fr) auto!important;
        gap:5px!important;
        padding:3px 5px!important;
    }
    .fc-footer-radio-volume,.fc-footer-station-select{display:none!important}
    .fc-footer-radio-listeners{display:inline-flex!important;min-width:auto!important;padding-right:3px;font-size:8px}
    .fc-footer-radio-listeners em{display:none}
    .fc-footer-radio-title strong{max-width:120px!important}
}
@media(max-width:370px){
    .fc-footer-radio-copy>span{max-width:120px}
    .fc-footer-radio-listeners i{display:none}
}
.fc-v10 .fc-private-windows{bottom:8px!important}
.fc-radio-enabled .fc-private-windows{bottom:52px!important}
@media(max-width:560px){.fc-radio-enabled .fc-private-windows{bottom:48px!important}}
