*{box-sizing:border-box}body{margin:0;min-height:100dvh;background:#f4f6fb;color:#1c2940;font:16px/1.5 system-ui,sans-serif;display:flex;flex-direction:column}header{background:#fff;border-bottom:1px solid #dde3ee;padding:18px 26px;display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}header strong{font-size:20px}header span{margin-left:12px;color:#64748b}.controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap}button,a{font:inherit}button{cursor:pointer;background:#334bb8;color:#fff;border:0;border-radius:8px;padding:11px 18px;font-weight:600}button:disabled{opacity:.55;cursor:wait}.secondary{background:#eaf0fa;color:#33415c}#record.recording{background:#b62836}.card{width:min(560px,calc(100% - 32px));margin:44px auto;padding:30px;background:#fff;border:1px solid #dbe2ee;border-radius:16px;box-shadow:0 12px 36px #24395b08}h1{font-size:30px;line-height:1.2;margin:8px 0 16px}.eyebrow{font-size:12px;font-weight:700;letter-spacing:.12em;color:#536db4}label{display:block;font-weight:600;margin:18px 0 7px}input{width:100%;padding:12px 14px;font:inherit;border:1px solid #b6c2d6;border-radius:8px}form button{margin-top:20px;width:100%}.notice{border-top:1px solid #e1e7f0;margin-top:26px;padding-top:20px;color:#536179;font-size:14px}.notice p{margin:7px 0}#login-error{color:#a32936}#results{padding:14px 24px;background:#fff;border-bottom:1px solid #dce4ef}.result-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}#record-status{margin:0 0 10px}#downloads{display:flex;gap:12px;flex-wrap:wrap}#downloads a{display:inline-block;padding:7px 12px;border:1px solid #c5d2ef;border-radius:7px;color:#334bb8;font-weight:600;text-decoration:none}details{margin-top:12px}summary{cursor:pointer;font-weight:600}#summary-text,pre{white-space:pre-wrap;max-height:260px;overflow:auto;font:inherit;color:#46536a}#meeting-tools{padding:9px 24px;background:#eef2fa;display:flex;align-items:center;gap:16px;flex-wrap:wrap}#conference{flex:1;min-height:65dvh}#conference iframe{min-height:65dvh;width:100%}[hidden]{display:none!important}@media(max-width:600px){header{padding:14px 16px}.card{margin:24px auto;padding:24px}header span{margin-left:7px}#results,#meeting-tools{padding:12px 16px}h1{font-size:26px}.controls{gap:8px}}
select{width:100%;padding:12px 14px;font:inherit;border:1px solid #b6c2d6;border-radius:8px;background:white}.button-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.button-row button{width:auto;margin:0;padding:9px 13px}.muted,#schedule-timezone,#invitation-output p{font-size:14px;color:#64748b}#guest-error,#schedule-error{color:#a32936}.meeting-list{width:min(960px,calc(100% - 32px));margin:0 auto 32px}.meeting-list h2{font-size:22px}.scheduled-card{background:white;padding:20px;border:1px solid #dbe2ee;border-radius:12px;margin-bottom:14px}.scheduled-card h3{margin:0 0 5px}.scheduled-card p{margin:0}.calendar-link{display:inline-flex;align-items:center;padding:9px 13px;border-radius:8px;background:#eaf0fa;color:#33415c;font-weight:600;text-decoration:none}#invitation-output{margin:0 auto 32px}#invitation-link{font-size:13px}#guest-panel #host-login{margin-top:8px}#schedule-panel{width:min(640px,calc(100% - 32px))}

/* Keep the call in the viewport; files and invitations open over it. */
#recording-panel{width:min(960px,calc(100% - 32px));margin:0 auto 32px;background:#fff;border:1px solid #dbe2ee;border-radius:12px;overflow:hidden}
#recording-panel>summary{padding:14px 20px;color:#33415c}
#recording-panel>#close-recording-panel{display:none}
#recording-panel #results{border:0;padding:8px 20px 20px}
.meeting-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
#capture-status{font-size:12px;padding:4px 9px;border-radius:20px;background:#dce6f5;color:#33415c;white-space:nowrap}
#capture-status.recording{background:#ffe6e8;color:#a32936}
#link-status:empty{display:none}
body.meeting-mode{height:100dvh;min-height:0;overflow:hidden;background:#111}
.meeting-mode header{flex:0 0 auto;padding:8px 14px;gap:10px;flex-wrap:nowrap;font-size:14px}
.meeting-mode header strong{font-size:18px}
.meeting-mode .controls{gap:8px;flex-wrap:nowrap}
.meeting-mode button{font-size:13px;padding:7px 11px}
.meeting-mode #user-name{max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.meeting-mode #meeting-tools{flex:0 0 auto;padding:6px 14px;gap:10px;font-size:13px}
.meeting-mode #room-label{min-width:0;max-width:30vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.meeting-mode .meeting-actions{margin-left:auto;min-width:0;max-width:100%}
.meeting-mode #conference{flex:1 1 0;min-height:0;position:relative;overflow:hidden;width:100%}
.meeting-mode #conference iframe{display:block;min-height:0!important;height:100%!important;width:100%!important;border:0}
.meeting-mode #recording-panel,.meeting-mode #invitation-output{position:fixed;z-index:40;right:16px;bottom:16px;width:min(440px,calc(100vw - 32px));max-height:calc(100dvh - 160px);margin:0;overflow:auto;box-shadow:0 12px 44px #0005}
.meeting-mode #recording-panel:not([open]){display:none}
.meeting-mode #recording-panel>summary{display:none}
.meeting-mode #recording-panel>#close-recording-panel{display:block;margin:12px 14px 0 auto}
.meeting-mode #recording-panel #results{padding:16px 20px 20px}
.meeting-mode #link-status{max-width:320px;font-size:12px}
@media(max-width:600px){
 .meeting-mode header{padding:6px 10px;flex-wrap:wrap}
 .meeting-mode header strong{font-size:16px}
 .meeting-mode header>div:first-child>span,.meeting-mode #user-name,.meeting-mode #room-label{display:none}
 .meeting-mode #meeting-tools{padding:6px 10px;gap:6px}
 .meeting-mode .meeting-actions{gap:6px;margin-left:0;flex:1}
 .meeting-mode #recording-panel,.meeting-mode #invitation-output{right:10px;bottom:10px;width:calc(100vw - 20px);max-height:calc(100dvh - 170px)}
}
/* People and private messages float above the launcher or call. */
#chat-panel{position:fixed;z-index:60;right:16px;bottom:16px;width:min(700px,calc(100vw - 32px));height:min(610px,calc(100dvh - 100px));display:flex;flex-direction:column;background:#fff;border:1px solid #dbe2ee;border-radius:14px;box-shadow:0 12px 44px #0004;overflow:hidden;font-size:14px}
.chat-heading{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid #e1e7f0;gap:10px}
.chat-heading strong{font-size:17px}.chat-note{font-size:12px;color:#64748b;margin:8px 16px}.chat-retention{border-top:1px solid #e1e7f0;padding-top:8px}
.chat-layout{display:flex;flex:1;min-height:0;border-top:1px solid #e1e7f0}
.chat-directory{width:220px;flex-shrink:0;border-right:1px solid #e1e7f0;display:flex;flex-direction:column;padding:12px 8px;min-height:0}
.chat-directory label{font-size:12px;margin:0 4px 5px}.chat-directory input{padding:7px 8px;font-size:13px}.chat-directory>p{font-size:12px;color:#64748b;margin:8px 4px}
#chat-people{overflow:auto;min-height:0}.chat-person{display:flex;flex-direction:column;align-items:flex-start;position:relative;width:100%;text-align:left;border-radius:8px;padding:9px 10px!important;margin-bottom:4px;background:transparent;color:#1c2940;font-size:13px!important;overflow-wrap:anywhere}
.chat-person strong{max-width:100%;padding-right:12px}.chat-person span{font-size:11px;font-weight:400}.chat-person.selected{background:#eaf0fa}.person-online{color:#237448}.person-online:before{content:'● ';font-size:10px}.person-offline{color:#64748b}
.chat-person .unread-count{position:absolute;right:4px;top:5px;border-radius:20px;background:#334bb8;color:white;padding:1px 5px;font-size:10px}
#chat-badge{margin:0;padding:1px 6px;background:#334bb8;color:#fff;border-radius:20px;font-size:11px}
.chat-conversation{display:flex;flex-direction:column;flex:1;min-width:0;min-height:0}#chat-peer{padding:12px;border-bottom:1px solid #e1e7f0;font-weight:600;font-size:13px;overflow-wrap:anywhere}
#chat-messages{flex:1;overflow:auto;min-height:0;padding:12px;display:flex;flex-direction:column;align-items:flex-start;gap:10px;background:#f8faff}
.chat-message{max-width:90%;background:#fff;border:1px solid #e0e6f0;border-radius:10px;padding:8px 10px;flex-shrink:0;overflow-wrap:anywhere}.chat-message.mine{align-self:flex-end;background:#eaf0fa;border-color:#d9e3f5}
.chat-message p{margin:0;white-space:pre-wrap}.chat-message small{display:block;font-size:10px;color:#64748b;margin-top:4px}.chat-empty{color:#64748b;font-size:12px;margin:12px 4px}
#chat-form{padding:10px;border-top:1px solid #e1e7f0;display:flex;gap:8px;align-items:flex-end}#chat-form label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}#chat-input{font:inherit;border:1px solid #b6c2d6;border-radius:8px;padding:8px;resize:none;flex:1;min-width:0;width:100%;max-height:120px}#chat-form button{width:auto;margin:0;font-size:13px;padding:9px 12px}
#chat-error{color:#a32936;font-size:12px;margin:0 16px;overflow-wrap:anywhere}#chat-error:empty{display:none}
.meeting-mode header .controls{min-width:0;flex-wrap:wrap}.meeting-mode #user-name{max-width:120px}.meeting-mode header>div:first-child{flex-shrink:0}
@media(max-width:600px){#chat-panel{right:8px;bottom:8px;width:calc(100vw - 16px);height:calc(100dvh - 110px)}.chat-directory{width:125px;padding:8px 5px}.chat-person{padding:8px 5px!important}.chat-message{max-width:100%}.chat-heading{padding:10px 12px}.chat-note{margin:6px 12px}.chat-message p{font-size:13px}#chat-messages{padding:8px}#chat-form{flex-wrap:wrap;padding:8px}#chat-form button{margin-left:auto}#chat-input{flex-basis:100%;font-size:16px}.meeting-mode header .controls{margin-left:auto}.meeting-mode header strong{font-size:14px}.meeting-mode header .controls button{font-size:12px;padding:6px 8px}}
.chat-peer-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;border-bottom:1px solid #e1e7f0;flex-wrap:wrap}.chat-peer-toolbar #chat-peer{border:0;padding:0;min-width:0;overflow-wrap:anywhere;flex:1}.chat-peer-toolbar #chat-invite{font-size:12px;padding:7px 10px;white-space:nowrap}.chat-invitation{min-width:180px}.chat-invitation p{font-weight:600}.chat-join{display:block;margin:9px 0 4px;font-size:13px;padding:8px 12px}#chat-error.invitation-sent{color:#237448}@media(max-width:600px){.chat-peer-toolbar{padding:8px;gap:6px}.chat-peer-toolbar #chat-peer{flex-basis:100%}.chat-invitation{min-width:0;width:100%}.chat-join{width:100%;font-size:12px;padding:7px}.chat-peer-toolbar #chat-invite{white-space:normal}}

.meeting-employees{border:1px solid #dbe2ee;border-radius:10px;padding:14px;margin:22px 0;min-width:0}.meeting-employees legend{font-weight:700;padding:0 6px}.meeting-employees label:first-of-type{margin-top:0}#selected-employees{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.employee-chip{display:inline-flex;align-items:center;gap:8px;background:#eaf0fa;color:#33415c;border-radius:8px;padding:7px 10px;max-width:100%;overflow-wrap:anywhere}.employee-chip button{width:auto;margin:0;padding:3px 8px;flex-shrink:0;background:transparent;color:#33415c}#employee-error,.email-warning{color:#a32936}#employee-error:empty{display:none}#reload-employees{width:auto;margin-top:0}.scheduled-card .employee-summary,.scheduled-card .email-summary{font-size:14px;margin-top:8px;overflow-wrap:anywhere}

/* Compact meeting rows: details on the left, accessible actions on the right. */
.meeting-list h2{margin:0 0 14px;font-size:21px}
#schedule-list-message:empty{display:none}
.scheduled-card{display:flex;align-items:center;gap:16px;padding:12px 16px;margin-bottom:8px;border-radius:10px}
.meeting-details{flex:1;min-width:0}
.meeting-row-heading{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.scheduled-card h3{font-size:16px;line-height:1.35;margin:0;overflow-wrap:anywhere}
.meeting-status{font-size:11px;line-height:1.6;font-weight:600;color:#365285;background:#edf2fc;border-radius:20px;padding:1px 7px;white-space:nowrap}
.meeting-status.is-cancelled{color:#7a4850;background:#f9edef}
.scheduled-card .muted{font-size:12px;margin-top:4px}
.scheduled-card .employee-summary,.scheduled-card .email-summary{font-size:12px;margin-top:3px}
.scheduled-card .button-row{flex:0 1 auto;justify-content:flex-end;gap:6px;margin:0;max-width:48%}
.scheduled-card .button-row button,.scheduled-card .calendar-link{font-size:12px;padding:7px 10px;min-height:34px;border-radius:7px}
.delete-meeting{background:#fff;color:#a32936;border:1px solid #e6bbc1}
.delete-meeting:hover{background:#fff0f1}
.scheduled-card button:focus-visible,.scheduled-card a:focus-visible{outline:3px solid #536db4;outline-offset:2px}
@media(max-width:600px){.scheduled-card{align-items:flex-start;flex-direction:column;gap:9px;padding:12px}.scheduled-card .button-row{max-width:100%;justify-content:flex-start}.scheduled-card .button-row button,.scheduled-card .calendar-link{min-height:40px;padding:8px 11px}.meeting-list h2{font-size:20px}}

/* Simple, consistent meeting actions and call state. */
.meeting-status.is-live{background:#dff4e8;color:#15633c}.meeting-status.is-ended{background:#edf0f5;color:#536179}.meeting-status.is-scheduled{background:#edf2fc;color:#365285}
.scheduled-card .button-row{max-width:45%;align-items:center}.meeting-more{position:relative;margin:0}.meeting-more>summary{list-style:none;display:inline-flex;align-items:center;justify-content:center;padding:7px 12px;min-height:34px;border-radius:7px;background:#eaf0fa;color:#33415c;font-size:12px;font-weight:600;cursor:pointer}.meeting-more>summary::-webkit-details-marker{display:none}.meeting-more>summary::after{content:'▾';margin-left:7px;font-size:10px}.meeting-more[open]{z-index:20}.meeting-menu{position:absolute;right:0;top:calc(100% + 5px);min-width:190px;max-width:calc(100vw - 40px);padding:6px;background:white;border:1px solid #dbe2ee;border-radius:9px;box-shadow:0 10px 30px #24395b24}.meeting-menu button,.meeting-menu a{display:block!important;width:100%!important;text-align:left;border-radius:5px!important;background:transparent!important;color:#33415c;text-decoration:none;font-size:13px!important;padding:9px 11px!important;white-space:nowrap;border:0}.meeting-menu button:hover,.meeting-menu a:hover{background:#f0f4fa!important}.meeting-menu .delete-meeting{color:#a32936}.meeting-more>summary:focus-visible{outline:3px solid #536db4;outline-offset:2px}
.sound-check{border-top:1px solid #e1e7f0;margin-top:24px;padding-top:18px}.sound-check h2{font-size:16px;margin:0}.sound-check .button-row{margin-top:12px}.sound-check p{font-size:13px;line-height:1.5}.sound-check p:empty{display:none}#mic-level{width:100%;height:18px;margin-top:8px}#room-code-details{font-size:14px;color:#536179}#room-code-details summary{font-weight:500}#room-code-details input{font-size:13px;margin-top:8px}#room-code-details label{font-size:13px}
.recordings-content{padding:0 20px 20px}.recordings-content h2{font-size:17px;margin:8px 0}.recordings-content>p{font-size:13px;color:#64748b}.recording-entry{border-top:1px solid #e1e7f0;padding:15px 0 3px}.recording-entry h3{font-size:14px;margin:0 0 5px}.recording-entry .muted{font-size:12px;margin:0 0 10px}.recording-entry audio{display:block;width:100%;min-width:0;height:42px;margin:10px 0}.recording-entry>a{display:inline-block;color:#334bb8;font-size:13px;font-weight:600;padding:7px 11px;border:1px solid #c5d2ef;border-radius:7px;text-decoration:none}.recording-error{font-size:12px;color:#a32936}.recording-error:empty{display:none}#rename-error{color:#a32936}#rename-panel{margin:20px auto}
@media(max-width:600px){.scheduled-card .button-row{max-width:100%;width:100%;justify-content:flex-start}.scheduled-card .meeting-more{margin-left:auto}.meeting-more>summary{min-height:40px;padding:8px 13px}.meeting-menu{min-width:190px}.sound-check .button-row{gap:8px}.sound-check button{font-size:13px;padding:10px 12px}.recordings-content{padding:0 14px 16px}}
.recording-error.playback-preparing{color:#536179}.recording-entry audio[hidden]{display:none!important}

.external-guests .muted{font-size:13px;line-height:1.5}.external-guest-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) auto;gap:12px;align-items:end;margin:14px 0}.external-guest-row label{font-size:13px;margin:0}.external-guest-row input{margin:7px 0 0;min-width:0;width:100%}.external-guest-row button{margin:0;min-height:44px;font-size:13px}.external-guests>button{font-size:14px}@media(max-width:600px){.external-guest-row{grid-template-columns:1fr;padding:12px 0;border-bottom:1px solid #e1e7f0}.external-guest-row button{justify-self:start}}

.meeting-status.is-closed{background:#edf0f5;color:#536179}
