:root{color:#1c1c1e;font-synthesis:none;text-rendering:optimizelegibility;background:#f7f8fa;font-family:Inter,Noto Sans JP,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{color:#1c1c1e;cursor:pointer;background:#fff;border:1px solid #c7cad5;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-width:0;min-height:40px;padding:8px 12px;display:inline-flex}button:disabled{cursor:not-allowed;opacity:.55}input,select{background:#fff;border:1px solid #c7cad5;border-radius:8px;width:100%;min-height:40px;padding:8px 10px}label{gap:6px;font-size:13px;font-weight:600;display:grid}h1,h2,p{margin:0}h1{font-size:22px}h2{align-items:center;gap:8px;font-size:16px;display:flex}.auth-shell,.loading{place-items:center;min-height:100vh;display:grid}.auth-panel{background:#fff;border:1px solid #e0e2e8;border-radius:8px;gap:18px;width:min(420px,100vw - 32px);padding:32px;display:grid}.brand-mark{color:#050038;background:#ffd02f;border-radius:8px;align-items:center;gap:6px;width:max-content;padding:8px 10px;font-weight:800;display:inline-flex}.org-logo{object-fit:contain;border-radius:4px;width:auto;height:24px}.primary{color:#fff;background:#1c1c1e;border-color:#1c1c1e}.danger{color:#8a1f1f}.toggle-on{background:#e9fbf3;border-color:#00b473}.muted{color:#6b6f7e;font-size:13px}.error{color:#600000;background:#fbd4d4;border:1px solid #e3c5c5;border-radius:8px;padding:8px 10px}.app-shell{grid-template-rows:1fr;grid-template-columns:320px minmax(0,1fr) 360px;height:100vh;display:grid;overflow:hidden}.app-shell.sidebar-collapsed{grid-template-columns:0 minmax(0,1fr) 360px}.app-shell.right-panel-collapsed{grid-template-columns:320px minmax(0,1fr) 0}.app-shell.sidebar-collapsed.right-panel-collapsed{grid-template-columns:0 minmax(0,1fr) 0}.sidebar,.right-panel{background:#fff;border-color:#e0e2e8;gap:18px;min-height:0;padding:18px;transition:padding .16s;display:grid;overflow:hidden auto}.sidebar{border-right:1px solid #e0e2e8;align-content:start;min-width:0}.sidebar-collapsed .sidebar,.right-panel-collapsed .right-panel{border:0;padding:0;overflow:hidden}.icon-only{width:36px;min-height:36px;padding:0}.right-panel{border-left:1px solid #e0e2e8;align-content:start;min-width:0}.button-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.button-grid button{white-space:nowrap}.stack{gap:10px;display:grid}.admin-box{gap:12px;display:grid}.device-box{gap:10px;display:grid}.menu-section{border-top:1px solid #e0e2e8;gap:12px;min-width:0;padding-top:16px;display:grid}.device-preview{background:#1c1c1e;border-radius:8px;width:100%}.admin-user-row{border:1px solid #e0e2e8;border-radius:8px;grid-template-columns:minmax(0,1fr) 96px 40px;gap:8px;padding:8px;display:grid}.admin-user-row .inline-check{grid-column:1/3}.inline-check{align-items:center;gap:6px;display:flex}.inline-check input{width:auto;min-height:auto}.file-button{cursor:pointer;border:1px solid #c7cad5;border-radius:8px;align-items:center;gap:8px;min-height:40px;padding:8px 12px;display:flex}.file-button input{display:none}.office-panel{grid-template-rows:64px minmax(0,1fr);min-width:0;min-height:0;display:grid}.office-toolbar{background:#fff;border-bottom:1px solid #e0e2e8;justify-content:space-between;align-items:center;padding:0 20px;display:flex}.toolbar-left,.toolbar-actions{align-items:center;gap:12px;min-width:0;display:flex}.toolbar-left h1{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.toolbar-status,.toolbar-zoom,.presence-search{background:#f7f8fa;border:1px solid #e0e2e8;border-radius:8px;align-items:center;gap:8px;min-height:36px;padding:0 8px;display:flex}.toolbar-status select,.toolbar-liveview select{background:0 0;border:0;min-height:32px;padding:0 4px}.toolbar-liveview{color:#383d49;background:#f7f8fa;border:1px solid #e0e2e8;border-radius:8px;align-items:center;gap:6px;min-height:36px;padding:0 8px;display:flex}.toolbar-liveview.active{color:#0b5fff;background:#e8f0fe;border-color:#0b5fff}.toolbar-liveview select:focus{outline:none}.toolbar-zoom span{color:#383d49;text-align:center;min-width:42px;font-size:13px}.toolbar-zoom input{accent-color:#0b5fff;width:110px}.presence-search{width:100%;margin-bottom:10px}.presence-search input{background:0 0;border:0;width:100%;min-width:0}.presence-search input:focus,.toolbar-status select:focus{outline:none}.office-scroll{padding:24px;overflow:auto}.office-board{background:#fff8e0;border:1px solid #e0e2e8;border-radius:8px;min-height:400px;position:relative;overflow:hidden}.floor-image,.floor-placeholder{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.floor-placeholder{background-color:#fff;background-image:linear-gradient(#eef0f3 1px,#0000 1px),linear-gradient(90deg,#eef0f3 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:64px 64px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box}.avatar{height:calc(54px * var(--zoom,1));min-height:calc(54px * var(--zoom,1));width:calc(54px * var(--zoom,1));z-index:3;border:3px solid #00b473;border-radius:999px;padding:0;font-weight:800;position:absolute;transform:translate(-50%,-50%);box-shadow:0 6px 18px #0500382e}.avatar img{object-fit:cover;border-radius:999px;width:100%;height:100%}.avatar-label{bottom:calc(-24px * var(--zoom,1));color:#fff;font-size:calc(12px * var(--zoom,1));max-width:160px;padding:calc(3px * var(--zoom,1)) calc(8px * var(--zoom,1));text-overflow:ellipsis;white-space:nowrap;background:#1c1c1e;border-radius:999px;font-weight:600;position:absolute;left:50%;overflow:hidden;transform:translate(-50%)}.avatar-emoji{font-size:calc(16px * var(--zoom,1));pointer-events:none;right:calc(-4px * var(--zoom,1));top:calc(-4px * var(--zoom,1));z-index:4;line-height:1;position:absolute}.avatar-comment{color:#eef2ff;font-size:calc(11px * var(--zoom,1));max-width:calc(140px * var(--zoom,1));padding:calc(2px * var(--zoom,1)) calc(6px * var(--zoom,1));pointer-events:none;text-overflow:ellipsis;left:50%;top:calc(-26px * var(--zoom,1));white-space:nowrap;z-index:4;background:#050038b8;border-radius:6px;font-weight:500;position:absolute;overflow:hidden;transform:translate(-50%)}.avatar.comment-below .avatar-comment{bottom:calc(-46px * var(--zoom,1));top:auto}.avatar.me{cursor:grab}.avatar.dragging{cursor:grabbing;opacity:.88;z-index:10;transition:none}.avatar.busy{border-color:#f99}.avatar.away{border-color:#fcb900}.avatar.highlighted{outline-offset:3px;z-index:8;outline:3px solid #0b5fff;animation:1.1s ease-in-out infinite avatar-focus-pulse;box-shadow:0 0 0 9px #0b5fff61,0 10px 22px #05003833}@keyframes avatar-focus-pulse{0%,to{transform:translate(-50%,-50%)scale(1)}50%{transform:translate(-50%,-50%)scale(1.12)}}.meeting-area{color:#050038;cursor:pointer;touch-action:none;z-index:2;background:#4262ff17;border:2px solid #4262ff80;border-radius:4px;transition:background .15s,border-color .15s,box-shadow .15s;position:absolute;overflow:hidden}.meeting-area:not(.editing):hover{background:#4262ff2e;border-color:#4262ffd9;box-shadow:0 0 0 3px #4262ff2e,0 4px 14px #0500381f}.meeting-area.editing{cursor:move;z-index:4;background:#ffd02f47;border-color:#1c1c1e;box-shadow:0 8px 20px #0500382e}.meeting-area .room-label{color:#fff;pointer-events:none;text-overflow:ellipsis;text-shadow:0 1px 2px #00000080;white-space:nowrap;background:#050026a3;border-radius:4px;max-width:calc(100% - 12px);padding:3px 7px;font-size:11px;font-weight:600;position:absolute;top:6px;left:6px;overflow:hidden}.room-resize-handle{color:#fff;cursor:nwse-resize;background:#1c1c1e;border-radius:6px 0 4px;justify-content:center;align-items:center;width:24px;height:24px;display:inline-flex;position:absolute;bottom:0;right:0}.floor-label{pointer-events:none;-webkit-user-select:none;user-select:none;white-space:pre-wrap;word-break:break-word;z-index:2;border-radius:4px;max-width:280px;padding:4px 8px;font-weight:600;line-height:1.4;position:absolute}.floor-label.editing{cursor:move;outline-offset:2px;pointer-events:auto;z-index:5;outline:2px dashed #ffd02fe6}.seat-marker{z-index:2;background:#ffd02f;border:2px solid #1c1c1e;border-radius:999px;justify-content:center;align-items:center;width:28px;height:28px;display:flex;position:absolute;transform:translate(-50%,-50%)}.seat-marker.own{background:#a8edaf}.seat-marker-label{color:#fff;font-size:calc(9px * var(--zoom,1));pointer-events:none;white-space:nowrap;z-index:2;background:#0000008c;border-radius:4px;padding:1px 4px;position:absolute;top:calc(100% + 4px);left:50%;transform:translate(-50%)}.avatar.idle{opacity:.38;filter:grayscale(60%)}.live-view-dot{pointer-events:none;z-index:10;background:#e53935;border-radius:999px;width:9px;height:9px;position:absolute;top:-2px;right:-2px;box-shadow:0 0 5px #e53935}.live-view-range{aspect-ratio:1;pointer-events:none;z-index:1;border:1.5px dashed #e5393547;border-radius:50%;width:30%;position:absolute;transform:translate(-50%,-50%)}.live-view-popup{z-index:12;background:#1c1c1e;border:1.5px solid #ffffff2e;border-radius:8px;width:160px;min-width:100px;position:absolute;overflow:hidden;box-shadow:0 4px 16px #00000080}.live-view-popup.maximized{z-index:20;border-radius:4px;height:100%;bottom:0;right:0;box-shadow:0 8px 32px #000000b3;width:100%!important;top:0!important;left:0!important;transform:none!important}.live-view-popup.maximized video,.live-view-popup.sized video{object-fit:contain;height:calc(100% - 22px)}.live-view-resize-handle{position:absolute}.live-view-resize-handle.right{cursor:ew-resize;width:8px;top:0;bottom:0;right:0}.live-view-resize-handle.se{cursor:nwse-resize;z-index:1;width:14px;height:14px;bottom:0;right:0}.live-view-resize-handle:hover{background:#ffffff2e}.live-view-header{color:#fff;cursor:grab;-webkit-user-select:none;user-select:none;background:#000000b3;justify-content:space-between;align-items:center;gap:4px;padding:2px 6px;font-size:11px;display:flex}.live-view-header button{cursor:pointer}.live-view-header span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.live-view-popup video{width:100%;height:auto;display:block}.right-panel section{gap:12px;display:grid}.conn-quality{border-radius:4px;align-items:center;gap:6px;padding:1px 6px;font-size:11px;font-weight:600;display:inline-flex}.conn-quality-excellent{color:#00b473;background:#00b47326}.conn-quality-good{color:#64b400;background:#64b40026}.conn-quality-poor{color:#e08000;background:#ffa0002e}.conn-quality-lost{color:#e53935;background:#dc323226}.livekit-stats-meta{color:#888;margin-left:auto;font-size:11px;font-weight:400}.livekit-stats-empty{color:#aaa;padding:4px 0;font-size:12px}.livekit-room-card{background:#f7f8fa;border:1px solid #e0e2e8;border-radius:6px;gap:4px;padding:6px 8px;display:grid}.livekit-room-name{align-items:center;gap:6px;font-size:12px;font-weight:700;display:flex}.livekit-room-badge{color:#fff;background:#1c1c1e;border-radius:999px;padding:1px 6px;font-size:10px;font-weight:600}.livekit-participant{align-items:center;gap:6px;font-size:11px;display:flex}.livekit-participant-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.livekit-track{align-items:center;gap:2px;display:inline-flex}.livekit-track.active{color:#00b473}.livekit-track.muted{color:#c0c0c8}.collapsible-section{min-width:0}.section-toggle{color:#101827;text-align:left;background:0 0;border:0;justify-content:flex-start;align-items:center;gap:6px;width:100%;min-height:34px;padding:0;font-weight:700;display:inline-flex}.section-toggle span{min-width:0}.section-toggle .tab-badge{margin-left:auto}.rtc-hidden-media{display:none}.conference-overlay{color:#fff;z-index:20;background:#101318;border:1px solid #ffffff1f;border-radius:8px;grid-template-rows:auto minmax(0,1fr);gap:12px;min-height:0;padding:14px;display:grid;position:fixed;inset:18px;box-shadow:0 24px 80px #0000006b}.conference-overlay.chat-open{grid-template-columns:minmax(0,1fr) 280px}.conference-overlay.chat-open .conference-toolbar{grid-column:1/-1}.conference-overlay.chat-open .conference-stage,.conference-overlay.chat-open .conference-participants{grid-column:1}.conference-chat-panel{border-left:1px solid #2b3441;flex-direction:column;grid-area:2/2/span 2;gap:8px;min-width:0;min-height:0;padding:8px 8px 8px 12px;display:flex;overflow:hidden}.conference-chat-panel .chat-form{flex-direction:row;flex:1;align-self:stretch;align-items:stretch;gap:8px;min-width:0;min-height:80px;display:flex}.conference-chat-panel .chat-form textarea{color:#dfe7f1;background:#1a2130;border-color:#2b3441;flex:1;min-width:0;min-height:0;max-height:none}.conference-chat-panel .chat-form textarea::placeholder{color:#4a5568}.conference-chat-panel .chat-form button[type=submit]{color:#89a;background:#232e3d;border-color:#2b3441;flex:0 0 44px;align-self:flex-end;height:44px}.conference-chat-panel .chat-form button[type=submit]:not(:disabled):hover{color:#dfe7f1;background:#2b3a4e}.conference-chat-messages{flex:1;min-height:0;padding-bottom:8px;overflow-y:auto}.conference-chat-messages p{color:#dfe7f1;word-break:break-word;margin:0 0 8px;font-size:13px}.conference-chat-messages p.mine{text-align:right}.conference-chat-messages .sender-name{color:#89a;margin-bottom:2px;font-size:11px;display:block}.conference-chat-empty{color:#b8c0cc;text-align:center;margin-top:20px;font-size:12px}.conference-toolbar{justify-content:space-between;align-items:center;gap:12px;display:flex}.conference-toolbar strong,.conference-toolbar span{display:block}.conference-toolbar span{color:#b8c0cc;margin-top:2px;font-size:12px}.conference-controls{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.conference-quality{color:#fff;background:#232a34;border:1px solid #384251;border-radius:8px;align-items:center;gap:6px;min-height:36px;padding:0 8px;display:inline-flex}.conference-quality select{color:inherit;font:inherit;background:0 0;border:0;outline:0}.conference-quality select option{color:#101318}.conference-note{color:#b8c0cc;align-items:center;min-height:36px;font-size:12px;display:inline-flex}.conference-controls button,.conference-fab{color:#fff;background:#232a34;border-color:#384251}.conference-stage{background:#05070a;border-radius:8px;justify-content:center;align-items:center;min-height:0;display:flex;position:relative;overflow:hidden}.conference-stage.empty{border:1px dashed #384251}.conference-empty{color:#b8c0cc;place-items:center;gap:8px;display:grid}.conference-participants{border-top:1px solid #2b3441;flex-direction:column;min-height:80px;padding-top:8px;display:flex;position:relative;overflow:hidden}.conference-strip-divider-h{cursor:ns-resize;z-index:1;border-radius:2px;height:8px;transition:background .15s;position:absolute;top:0;left:0;right:0}.conference-strip-divider-h:hover{background:#fff3}.conference-participants-header{color:#b8c0cc;justify-content:space-between;align-items:center;gap:12px;font-size:12px;display:flex}.conference-participants-header label{align-items:center;gap:8px;margin:0;display:flex}.conference-participants-header input{accent-color:#55a7ff;width:130px}.conference-strip{flex-direction:row;flex:1;gap:6px;padding-bottom:2px;display:flex;overflow:auto hidden}.conference-tile{color:#fff;cursor:zoom-in;background:#05070a;border:1px solid #2b3441;border-radius:8px;align-items:stretch;height:100%;min-height:108px;padding:0;display:grid;position:relative;overflow:hidden}.conference-tile.selected{border-color:#55a7ff;box-shadow:0 0 0 2px #55a7ff38}.conference-tile.speaking{border-color:#22c55e;box-shadow:0 0 0 2px #22c55e59}.conference-tile.stage{border:0;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.conference-tile.stage video{object-fit:contain;width:100%;height:100%}.conference-tile video{object-fit:contain;width:100%;height:100%;display:block}.conference-tile:not(.stage) video{object-fit:cover}.conference-tile.screen video{object-fit:contain}.conference-tile.avatar-tile{cursor:pointer;place-items:center}.conference-tile:not(.stage){aspect-ratio:16/9;flex:none;height:100%;min-height:0}.conference-avatar{color:#fff;background:#283241;border:1px solid #405064;border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;font-size:28px;font-weight:700;display:flex;overflow:hidden}.conference-tile.stage .conference-avatar{width:min(28vh,210px);height:min(28vh,210px);font-size:clamp(42px,8vh,74px)}.conference-avatar img{object-fit:cover;width:100%;height:100%}.conference-tile:not(.stage) .conference-avatar{width:56px;height:56px;font-size:22px}.conference-label{color:#fff;pointer-events:none;text-overflow:ellipsis;white-space:nowrap;background:#0009;border-radius:3px;max-width:calc(100% - 16px);padding:4px 8px;font-size:12px;line-height:1;position:absolute;bottom:8px;left:8px;overflow:hidden}.conference-kind{color:#f4f8fc;pointer-events:none;background:#080d14b8;border:1px solid #ffffff2e;border-radius:3px;padding:4px 7px;font-size:11px;font-weight:700;line-height:1;position:absolute;top:8px;left:8px}.conference-kind.screen{background:#285234d1;border-color:#84da9580}.conference-kind.camera{background:#1e4c74d1;border-color:#6fb4ee7a}.conference-kind.participant{background:#3a4452d1}.conference-reconnecting{color:#7a5c00;background:#fcb9002e;border:1px solid #fcb900;border-radius:4px;padding:2px 8px;font-size:12px;animation:1.2s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.45}}.conference-recovering{color:#dfe7f1;pointer-events:none;white-space:nowrap;background:#05070ab8;border:1px solid #ffffff2e;border-radius:4px;padding:5px 9px;font-size:12px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.conference-fab{z-index:19;position:fixed;bottom:18px;right:18px}.conference-mic-off{color:#fff;pointer-events:none;background:#ff3b30d1;border-radius:3px;justify-content:center;align-items:center;padding:2px 4px;display:flex;position:absolute;bottom:8px;right:6px}.conference-media-icons{color:#fff;pointer-events:none;background:#0000008c;border-radius:4px;align-items:center;gap:3px;padding:2px 4px;display:flex;position:absolute;bottom:26px;right:6px}.conference-media-badges{pointer-events:none;align-items:center;gap:3px;display:flex;position:absolute;bottom:8px;right:6px}.conference-media-badges .badge-cam-off,.conference-media-badges .badge-mic-off{color:#fff;border-radius:3px;justify-content:center;align-items:center;padding:2px 4px;display:flex}.conference-media-badges .badge-cam-off{background:#464650d1}.conference-media-badges .badge-mic-off{background:#ff3b30d1}.chat-panel{min-height:0}.chat-toast{color:#fff;text-align:left;z-index:35;background:#101827;border:1px solid #2e405f;border-radius:8px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;width:min(360px,100vw - 32px);min-height:72px;padding:10px 14px;display:grid;position:fixed;top:76px;right:18px;box-shadow:0 14px 34px #05003847}.chat-toast.mention{border-color:#fcb900;box-shadow:0 0 0 3px #fcb9003d,0 14px 34px #05003847}.chat-toast.all{border-color:#2dd4bf}.chat-toast span{min-width:0}.chat-toast strong,.chat-toast small,.chat-toast span span{display:block}.chat-toast small{color:#b8c0cc;margin-top:2px}.chat-toast span span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.room-toast{color:#fff;pointer-events:none;text-align:left;z-index:35;background:#101827;border:1px solid #2b3441;border-radius:8px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;width:min(320px,100vw - 32px);min-height:64px;padding:10px 14px;display:grid;position:fixed;top:18px;right:18px;box-shadow:0 14px 34px #05003847}.room-toast.joined{border-color:#22c55e}.room-toast.left{border-color:#64748b}.room-toast span{min-width:0}.room-toast strong,.room-toast small,.room-toast span span{display:block}.room-toast small{color:#b8c0cc;margin-top:2px}.room-toast span span{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.conference-overlay.strip-vertical{grid-template-columns:minmax(0,1fr) 8px 180px}.conference-overlay.strip-vertical .conference-toolbar{grid-column:1/-1}.conference-overlay.strip-vertical .conference-stage{grid-area:2/1}.conference-strip-divider{cursor:ew-resize;border-radius:2px;grid-area:2/2;transition:background .15s}.conference-strip-divider:hover{background:#fff3}.conference-overlay.strip-vertical .conference-participants{border-top:none;border-left:1px solid #2b3441;grid-area:2/3;min-height:0;max-height:none;padding-top:4px;padding-left:8px;overflow:hidden}.conference-overlay.strip-vertical .conference-strip{flex-direction:unset;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));align-content:start;gap:6px;display:grid;overflow:hidden auto}.conference-overlay.strip-vertical .conference-strip .conference-tile:not(.stage){flex:none;height:auto}.conference-overlay.strip-vertical.chat-open .conference-stage{grid-column:1}.conference-overlay.strip-vertical.chat-open .conference-participants{grid-column:3}.conference-overlay.strip-vertical.chat-open .conference-chat-panel{grid-area:2/3}.chat-tabs{background:#eef2f7;border-radius:8px;grid-template-columns:1fr 1fr;gap:4px;padding:4px;display:grid}.chat-tabs button{color:#42526a;background:0 0;border:0;justify-content:center;align-items:center;gap:6px;min-height:34px;padding:6px 10px;display:inline-flex}.chat-tabs button.active{color:#101827;background:#fff;box-shadow:0 1px 4px #0d182b1f}.tab-badge{color:#fff;text-align:center;background:#e23636;border-radius:999px;min-width:18px;padding:3px 5px;font-size:11px;line-height:1}.messages{background:#f7f8fa;border-radius:8px;align-content:start;gap:8px;min-height:160px;padding:10px;display:grid;overflow:auto}.messages p{background:#fff;border-radius:8px;padding:8px 10px}.messages .mine{background:#c3faf5;justify-self:end}.messages .mentioned{border:1px solid #fcb900;box-shadow:inset 4px 0 #fcb900}.messages .sender-name{color:#546179;margin-bottom:4px;font-size:12px;display:block}.chat-form{grid-template-columns:minmax(0,1fr) 44px;gap:8px;display:grid}.chat-form textarea{font-family:inherit;font-size:inherit;resize:none;border:1px solid #c7cad5;border-radius:8px;min-width:0;min-height:64px;max-height:120px;padding:8px;line-height:1.4;overflow-y:auto}.chat-form input{min-width:0}.messages p{position:relative}.msg-delete{color:#aaa;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:0 4px;font-size:13px;line-height:1;display:none;position:absolute;top:50%;right:-4px;transform:translateY(-50%)}.messages p:hover .msg-delete{display:inline-flex}.msg-delete:hover{color:#ef4444;background:#fee2e2}.msg-time{color:#9ba3b3;margin-top:3px;font-size:10px;display:block}.chat-form.all-chat-form{grid-template-columns:1fr 44px}.presence-list{gap:8px;display:grid}.presence-row{cursor:pointer;border:1px solid #e0e2e8;border-radius:8px;grid-template-columns:34px minmax(0,1fr) auto auto;align-items:center;gap:4px 6px;padding:8px;display:grid}.presence-avatar{color:#26446f;background:#dfe9ff;border:1px solid #c8d6f0;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:12px;font-weight:700;display:flex;overflow:hidden}.presence-avatar img{object-fit:cover;width:100%;height:100%}.presence-row:hover,.presence-row.focused{background:#f2f6ff;border-color:#8bb8ff}.presence-row:focus-visible{outline-offset:2px;outline:2px solid #0b5fff}.presence-row small{color:#6b6f7e;grid-column:2/-1}.room-row{border:1px solid #e0e2e8;border-radius:8px;grid-template-columns:1fr auto 40px;align-items:center;gap:8px;padding:8px;display:grid}.panel-section{border-top:1px solid #e0e2e8;min-width:0}.section-header{color:#050038;cursor:pointer;background:0 0;border:none;border-radius:0;justify-content:flex-start;align-items:center;gap:6px;width:100%;min-height:40px;padding:8px 2px;font-size:14px;font-weight:700;display:flex}.section-header:hover{background:#f7f8fa;border-radius:6px}.section-body{gap:10px;padding:4px 0 12px;display:grid}.mic-level-bar{background:#e0e2e8;border-radius:999px;width:100%;height:8px;overflow:hidden}.mic-level-fill{background:#00b473;border-radius:999px;height:100%;transition:width .1s}.mic-active{color:#00b473;font-size:12px;font-weight:600}.mic-inactive{color:#6b6f7e;font-size:12px}.smtp-details{border:1px solid #e0e2e8;border-radius:8px;padding:8px 12px}.smtp-details summary{cursor:pointer;align-items:center;gap:6px;min-height:32px;font-size:13px;font-weight:600;list-style:none;display:flex}.smtp-form{margin-top:10px}.success{color:#005e3b;background:#e9fbf3;border:1px solid #00b473;border-radius:8px;padding:8px 10px}.logout-btn{margin-top:4px}h3{margin:0;font-size:14px;font-weight:700}.remote-screen{aspect-ratio:16/9;cursor:pointer;border-radius:8px;width:100%}.video-modal{cursor:pointer;z-index:9999;background:#000c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.video-modal video{border-radius:10px;width:auto;max-width:90vw;max-height:90vh}.avatar-popup{z-index:10000;background:#fff;border:1px solid #c7cad5;border-radius:10px;flex-direction:column;gap:4px;min-width:148px;padding:8px;display:flex;position:fixed;box-shadow:0 4px 16px #00000024}.avatar-popup-name{border-bottom:1px solid #e0e2e8;padding:2px 8px 6px;font-size:12px;font-weight:700}.avatar-popup button{min-height:34px;font-size:13px}.unread-badge{color:#fff;text-align:center;background:#f44336;border-radius:999px;min-width:16px;margin-left:5px;padding:2px 5px;font-size:10px;font-weight:700;line-height:1}.avatar-unread{color:#fff;z-index:5;background:#f44336;border:2px solid #fff;border-radius:999px;min-width:14px;padding:1px 4px;font-size:9px;font-weight:700;line-height:1;position:absolute;top:-4px;right:-4px}.has-unread{color:#0a84ff}.crop-overlay{z-index:10001;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.crop-modal{background:#fff;border-radius:12px;flex-direction:column;gap:16px;width:320px;padding:24px;display:flex}.crop-modal h3{margin:0}.crop-container{cursor:grab;border-radius:50%;flex-shrink:0;align-self:center;position:relative;overflow:hidden;box-shadow:0 0 0 4px #0a84ff}.crop-container:active{cursor:grabbing}.invite-notification{z-index:10000;background:#fff;border:1px solid #c7cad5;border-radius:12px;flex-direction:column;gap:12px;width:300px;padding:20px 24px;display:flex;position:fixed;bottom:32px;left:50%;transform:translate(-50%);box-shadow:0 8px 32px #0000002e}.invite-notification p{text-align:center;margin:0}.invite-notification .invite-buttons{gap:8px;display:flex}.invite-notification .invite-buttons button{flex:1}.status-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px;display:inline-block}.status-dot.status-available{background:#00b473}.status-dot.status-busy{background:#f44}.status-dot.status-away{background:#fcb900}.status-dot.status-offline{background:#aaa}@media (width<=1100px){.app-shell{grid-template-columns:minmax(280px,320px) minmax(0,1fr)}.app-shell.sidebar-collapsed{grid-template-columns:0 minmax(0,1fr)}.app-shell.right-panel-collapsed,.app-shell.sidebar-collapsed.right-panel-collapsed{grid-template-columns:minmax(280px,320px) minmax(0,1fr)}.app-shell.sidebar-collapsed.right-panel-collapsed{grid-template-columns:0 minmax(0,1fr)}.right-panel,.right-panel-collapsed .right-panel{display:none}}.audit-filter{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.audit-filter select,.audit-filter input{border:1px solid #c7cad5;border-radius:6px;padding:4px 8px;font-size:12px}.audit-log-table{overflow-x:auto}.audit-log-table table{border-collapse:collapse;width:100%;font-size:12px}.audit-log-table th,.audit-log-table td{text-align:left;vertical-align:top;border-bottom:1px solid #e8eaf0;padding:5px 8px}.audit-log-table th{background:#f4f5f8;font-weight:600}.log-action{color:#0a84ff;white-space:nowrap;font-family:monospace}.log-time{color:#888;white-space:nowrap;font-size:11px}.log-ip{color:#aaa;font-family:monospace;font-size:11px}.audit-modal-overlay{z-index:1200;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.audit-modal{background:#fff;border-radius:12px;flex-direction:column;width:92vw;max-width:1100px;height:85vh;display:flex;overflow:hidden;box-shadow:0 8px 40px #00000038}.audit-modal-header{border-bottom:1px solid #e8eaf0;flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.audit-modal-title{align-items:center;gap:6px;font-size:15px;font-weight:600;display:flex}.audit-modal-filters{background:#f7f8fa;border-bottom:1px solid #e8eaf0;flex-wrap:wrap;flex-shrink:0;align-items:flex-end;gap:12px;padding:12px 18px;display:flex}.audit-filter-item{flex-direction:column;align-items:flex-start;gap:4px;font-size:12px;display:flex}.audit-filter-item span{color:#666;font-weight:500}.audit-filter-item select,.audit-filter-item input[type=date]{border:1px solid #c7cad5;border-radius:6px;padding:5px 8px;font-size:12px}.audit-modal-count{color:#666;flex-shrink:0;padding:6px 18px;font-size:12px}.audit-modal-body{flex:1;padding:0 18px 18px;overflow-y:auto}.audit-empty{text-align:center;margin-top:32px}.audit-table{border-collapse:collapse;width:100%;min-width:720px;font-size:12px}.audit-table th,.audit-table td{text-align:left;vertical-align:top;border-bottom:1px solid #e8eaf0;padding:6px 10px}.audit-table thead th{z-index:1;background:#f4f5f8;font-weight:600;position:sticky;top:0}.audit-table .col-no{color:#aaa;text-align:right;width:40px}.audit-table .col-time{white-space:nowrap;width:140px}.audit-table .col-user{width:130px}.audit-table .col-action{width:160px}.audit-table .col-detail{word-break:break-all}.audit-table .col-ip{color:#aaa;white-space:nowrap;width:130px;font-family:monospace}.log-action-badge{white-space:nowrap;border-radius:4px;padding:2px 6px;font-family:monospace;font-size:11px;display:inline-block}.log-action-user{color:#0a74cc;background:#e8f4fd}.log-action-chat{color:#2a7a36;background:#edf7ee}.log-action-meeting{color:#b06020;background:#fdf3e8}.invite-modal-overlay{z-index:10000;background:#0000008c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.invite-modal{text-align:center;background:#fff;border-radius:16px;flex-direction:column;gap:20px;width:90vw;max-width:360px;padding:32px 28px 24px;display:flex;box-shadow:0 12px 48px #0000004d}.invite-modal-icon{color:#0a84ff;justify-content:center;animation:.7s ease-in-out infinite alternate invite-ring;display:flex}@keyframes invite-ring{0%{transform:rotate(-10deg)scale(1)}to{transform:rotate(10deg)scale(1.1)}}.invite-modal h2{margin:0;font-size:18px;font-weight:700}.invite-modal p{color:#555;margin:0;font-size:14px}.invite-modal-buttons{justify-content:center;gap:10px;display:flex}.invite-modal-buttons button{flex:1;min-height:44px;font-size:14px}.calling-overlay{z-index:9900;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.calling-card{color:#fff;text-align:center;background:#1a2130;border-radius:16px;flex-direction:column;gap:20px;width:90vw;max-width:320px;padding:32px 28px 24px;display:flex;box-shadow:0 12px 48px #00000080}.calling-animation{color:#30d158;justify-content:center;animation:1.2s ease-in-out infinite calling-pulse;display:flex}@keyframes calling-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.2)}}.calling-card h2{margin:0;font-size:16px;font-weight:600}.calling-card p{color:#b8c0cc;margin:0;font-size:14px}.calling-cancel{cursor:pointer;color:#fff;background:#ff3b30;border:none;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;margin:0 auto;display:inline-flex}.calling-cancel:hover{background:#d93025}.room-join-overlay{z-index:9800;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.room-join-modal{background:#fff;border-radius:14px;flex-direction:column;gap:16px;width:92vw;max-width:340px;padding:24px;display:flex;box-shadow:0 10px 40px #00000038}.room-join-modal h2{margin:0;font-size:16px;font-weight:700}.room-join-options{flex-direction:column;gap:10px;display:flex}.room-join-toggle{cursor:pointer;border:1px solid #e0e3ea;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;display:flex}.room-join-toggle.active{background:#f0f7ff;border-color:#0a84ff}.room-join-toggle span{align-items:center;gap:6px;font-size:14px;display:flex}.toggle-pill{background:#e0e3ea;border-radius:12px;padding:2px 8px;font-size:11px;font-weight:600}.toggle-pill.on{color:#fff;background:#0a84ff}.room-join-actions{gap:10px;margin-top:4px;display:flex}.room-join-actions button{flex:1}.usermgmt-modal-overlay{z-index:1200;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.usermgmt-modal{background:#fff;border-radius:12px;flex-direction:column;width:92vw;max-width:900px;height:85vh;display:flex;overflow:hidden;box-shadow:0 8px 40px #00000038}.usermgmt-modal-header{border-bottom:1px solid #e8eaf0;flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.usermgmt-modal-title{align-items:center;gap:6px;font-size:15px;font-weight:600;display:flex}.usermgmt-filters{background:#f7f8fa;border-bottom:1px solid #e8eaf0;flex-wrap:wrap;flex-shrink:0;align-items:flex-end;gap:10px;padding:10px 18px;display:flex}.usermgmt-filters input,.usermgmt-filters select{border:1px solid #c7cad5;border-radius:6px;padding:5px 8px;font-size:12px}.usermgmt-filters input[type=text]{min-width:180px}.usermgmt-body{flex:1;padding:0 18px 18px;overflow-y:auto}.usermgmt-table{border-collapse:collapse;width:100%;font-size:13px}.usermgmt-table th,.usermgmt-table td{text-align:left;vertical-align:middle;border-bottom:1px solid #e8eaf0;padding:8px 10px}.usermgmt-table thead th{z-index:1;background:#f4f5f8;font-weight:600;position:sticky;top:0}.usermgmt-table input[type=text],.usermgmt-table select{border:1px solid #c7cad5;border-radius:5px;width:100%;padding:3px 6px;font-size:12px}.usermgmt-table .col-actions{white-space:nowrap}.usermgmt-table .col-actions button{margin-right:4px}.usermgmt-inactive td{color:#aaa}.pwd-result{background:#f0f7ff;border:1px solid #0a84ff;border-radius:8px;margin:8px 18px;padding:10px 14px;font-size:12px}.pwd-result strong{letter-spacing:1px;-webkit-user-select:all;user-select:all;margin-top:4px;font-family:monospace;font-size:14px;display:block}.tile-mic-badge{pointer-events:none;background:#0000008c;border-radius:4px;justify-content:center;align-items:center;width:18px;height:18px;display:flex;position:absolute;bottom:24px;right:4px}.tile-mic-badge.muted{color:#ff453a}.tile-mic-badge.active{color:#30d158}.conference-quality,.conference-quality select,.conference-controls button{font-family:inherit;font-size:13px}.outgoing-call-bar{background:#f0f4ff;border:1px solid #c0cdf0;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;display:flex}.outgoing-call-bar span{align-items:center;gap:6px;font-size:13px;display:flex}.call-history-btn{position:relative}.call-history-btn.has-history:after{content:"";background:#ff453a;border-radius:50%;width:7px;height:7px;position:absolute;top:5px;right:5px}.call-history-modal{max-width:560px}.call-history-list{margin:0;padding:0;list-style:none}.call-history-item{border-bottom:1px solid #e8eaf0;grid-template-columns:22px 1fr auto auto;align-items:center;gap:0 10px;padding:9px 4px;display:grid}.call-history-item:last-child{border-bottom:none}.ch-dir-icon{display:flex}.ch-icon{color:#aaa}.ch-icon.incoming{color:#0a84ff}.ch-icon.accepted{color:#30d158}.ch-icon.missed{color:#ff453a}.ch-icon.cancelled{color:#ff9f0a}.ch-name{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.ch-event{color:#666;white-space:nowrap;font-size:12px}.ch-time{color:#aaa;white-space:nowrap;font-size:11px}.join-confirm-overlay{z-index:1300;background:#0a0f1e99;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.join-confirm-modal{color:#e8eaf0;background:#1a2030;border:1px solid #2e3a4e;border-radius:16px;width:380px;padding:28px 28px 24px;box-shadow:0 20px 60px #00000080}.join-confirm-room-name{color:#fff;align-items:center;gap:8px;margin-bottom:4px;font-size:17px;font-weight:700;display:flex}.join-confirm-subtitle{color:#7a8494;margin:0 0 24px 26px;font-size:12px}.join-confirm-toggles{gap:14px;margin-bottom:24px;display:flex}.join-device-card{color:#7a8494;cursor:pointer;background:#242d3e;border:2px solid #2e3a4e;border-radius:14px;flex-direction:column;flex:1;align-items:center;gap:8px;padding:20px 12px 16px;transition:background .15s,border-color .15s,color .15s;display:flex}.join-device-card.on{color:#fff;background:#0d1f38;border-color:#0a84ff}.join-device-card.off{color:#4a5060;background:#1e252f;border-color:#3a404c}.join-device-card:hover.on{background:#0f2645}.join-device-card:hover.off{background:#252d38}.join-device-icon{display:flex}.join-device-label{font-size:13px;font-weight:600}.join-device-badge{letter-spacing:.05em;border-radius:5px;padding:2px 8px;font-size:10px;font-weight:700}.join-device-badge.on{color:#0a84ff;background:#0a84ff22}.join-device-badge.off{color:#5a6070;background:#3a404c44}.join-confirm-actions{justify-content:flex-end;gap:10px;display:flex}.join-confirm-actions button{color:#b0b8c8;background:#2a3348;border:1px solid #3a4460;border-radius:8px;min-height:38px;padding:0 18px;font-size:13px}.join-confirm-actions button:hover{background:#33404e}.join-enter-btn{align-items:center;gap:6px;font-weight:600;display:inline-flex;color:#fff!important;background:#0a84ff!important;border-color:#0a84ff!important;padding:0 22px!important}.join-enter-btn:hover{background:#1a94ff!important}.user-mgmt-table{min-width:640px}.user-mgmt-name-input{border:1px solid #c7cad5;border-radius:5px;width:130px;padding:3px 7px;font-size:12px}.user-mgmt-actions{gap:4px;display:flex}.user-mgmt-actions button{min-height:26px;padding:2px 7px}.user-temp-password{white-space:nowrap;background:#fffbe6;border:1px solid #ffe58f;border-radius:4px;align-items:center;gap:6px;margin-top:4px;padding:3px 7px;font-size:11px;display:flex}.user-temp-password code{font-family:monospace;font-weight:600}.sys-mon-modal{color:#c8d0dc;background:#12181f;border:1px solid #232d3a;border-radius:14px;flex-direction:column;width:92vw;max-width:760px;max-height:88vh;display:flex;overflow:hidden;box-shadow:0 20px 60px #00000080}.sys-mon-modal .audit-modal-header{color:#e0e6f0;background:#12181f;border-bottom-color:#232d3a}.sys-mon-modal .audit-modal-title{color:#e0e6f0}.sys-mon-body{padding:16px 18px 20px;overflow-y:auto}.sys-mon-top{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:12px;display:grid}.sys-mon-panel{background:#1a2230;border:1px solid #232d3a;border-radius:10px;padding:12px 14px 10px}.sys-mon-net-panel{margin-bottom:10px}.sys-mon-panel-header{justify-content:space-between;align-items:baseline;margin-bottom:6px;display:flex}.sys-mon-label{color:#7a8898;letter-spacing:.06em;text-transform:uppercase;font-size:10px;font-weight:600}.sys-mon-cur{font-family:monospace;font-size:18px;font-weight:700}.sys-mon-bar{background:#232d3a;border-radius:3px;height:4px;margin-bottom:4px;overflow:hidden}.sys-mon-fill{border-radius:3px;max-width:100%;height:100%;transition:width .5s}.sys-mon-fill.cpu{background:#0a84ff}.sys-mon-fill.mem{background:#30d158}.sys-mon-fill.disk{background:#ff9f0a}.sys-mon-detail{color:#5a6878;margin-bottom:6px;font-size:10px}.sys-mon-chart{width:100%;height:72px;margin-top:4px;display:block}.sys-mon-chart.net{height:88px}.sys-chart-grid{stroke:#232d3a;stroke-width:.5px}.sys-mon-net-legend{gap:12px;font-family:monospace;font-size:11px;display:flex}.sys-mon-note{color:#3a4858;text-align:center;margin:0;font-size:10px}.stage-zoom-bar{z-index:5;background:#080d14b8;border:1px solid #ffffff24;border-radius:6px;align-items:center;gap:2px;padding:2px;display:flex;position:absolute;bottom:44px;right:10px}.stage-zoom-bar .icon-only{color:#fff;background:0 0;border:none;width:26px;height:26px;min-height:26px}.stage-zoom-bar .icon-only:hover{background:#ffffff24}.stage-zoom-pct{color:#b8c0cc;text-align:center;min-width:36px;font-size:11px}.stage-zoom-reset{color:#fff!important;background:#ffffff1f!important;border:none!important;border-radius:4px!important;min-height:22px!important;padding:0 6px!important;font-size:11px!important}.stage-zoom-reset:hover{background:#ffffff38!important}.hand-raise-badge{pointer-events:none;z-index:2;font-size:28px;line-height:1;position:absolute;top:6px;right:6px}@keyframes emoji-float{0%{opacity:1;transform:translate(-50%)translateY(0)scale(1)}to{opacity:0;transform:translate(-50%)translateY(-120px)scale(1.6)}}.reaction-emoji{pointer-events:none;z-index:3;font-size:36px;animation:3s ease-out forwards emoji-float;position:absolute;bottom:40px;left:50%}.emoji-picker-popup{z-index:30;background:#232a34;border:1px solid #384251;border-radius:8px;gap:4px;padding:6px;display:flex;position:absolute;bottom:calc(100% + 6px);left:0}.emoji-picker-popup button{cursor:pointer;background:0 0;border:none;border-radius:6px;width:34px;min-height:34px;padding:4px;font-size:20px;line-height:1}.emoji-picker-popup button:hover{background:#ffffff1f}
