.meeting-envelope{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:none;width:64px;height:56px;padding:0;overflow:visible;line-height:1}
.meeting-envelope svg{display:block;flex:none;width:46px;height:46px}
.meeting-badge{position:absolute;z-index:1;top:1px;display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 4px;border-radius:999px;background:#EF4444;color:#fff;font-size:11px;font-weight:700;line-height:1;white-space:nowrap;pointer-events:none}
.meeting-badge.left{left:3px}
.meeting-badge.right{right:3px}
@media(max-width:600px){.topbar:has(.meeting-envelope){padding-inline:12px}.top-actions:has(.meeting-envelope){gap:8px;min-width:0;overflow:visible}.top-actions:has(.meeting-envelope)>div:not(.notification-anchor){min-width:0;max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.meeting-envelope{width:58px;height:54px}.meeting-envelope svg{width:44px;height:44px}.meeting-badge.left{left:0}.meeting-badge.right{right:0}}
.meeting-page{max-width:100%;min-width:0}.meeting-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.meeting-heading h1{margin:0}.meeting-heading button,.meeting-actions button{padding:8px 12px;border:1px solid #b5c8df;border-radius:7px;background:#fff;color:#123a70;cursor:pointer}.meeting-panels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.meeting-panel{min-width:0;background:#fff;border:1px solid #dce5f0;border-radius:12px;padding:14px;display:flex;flex-direction:column;max-height:calc(100vh - 190px)}.meeting-panel h2{font-size:17px;margin:0 0 12px}.meeting-list{overflow-y:auto;min-height:0}.meeting-card{display:flex;flex-direction:column;gap:6px;background:#fff;border:1px solid #e1e7ef;border-radius:9px;padding:12px;margin-bottom:9px;overflow-wrap:anywhere}.meeting-card.highlight{background:#fff0f3}.meeting-card p{margin:0;white-space:pre-wrap}.meeting-card small{display:block}.meeting-card textarea{min-height:65px}.meeting-actions{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}.meeting-month{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.meeting-month button{border:0;background:transparent;cursor:pointer;font-size:24px}.meeting-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;margin-bottom:14px}.meeting-grid b{text-align:center;font-size:11px}.meeting-day{min-height:46px;min-width:0;border:1px solid transparent;border-radius:6px;background:#f6f8fb;cursor:pointer;font-size:12px}.meeting-day.outside{color:#aab1ba}.meeting-day.today{border-color:#2265b0}.meeting-day.selected{background:#ffe8ec}.meeting-dots{display:flex;justify-content:center;gap:4px;flex-wrap:wrap}.meeting-dots i{width:9px;height:3px;background:#d5314a;border-radius:2px}.meeting-popup{position:fixed;right:22px;top:80px;z-index:9999;display:flex;flex-direction:column;gap:6px;max-width:330px;padding:17px;background:#fff;border:1px solid #bdd1eb;border-radius:12px;box-shadow:0 12px 35px #152b4b35}.meeting-popup p{margin:0}#meeting-dialog{width:min(720px,calc(100vw - 24px));max-height:90vh;border:0;border-radius:12px;padding:22px;box-shadow:0 15px 50px #122c4d50}#meeting-dialog::backdrop{background:#132c4e80}#meeting-dialog form,#meeting-dialog form>label{display:flex;flex-direction:column;gap:8px}#meeting-dialog form{gap:14px}#meeting-dialog input:not([type=checkbox]),#meeting-dialog textarea{box-sizing:border-box;width:100%;padding:9px;border:1px solid #bac9da;border-radius:7px}#meeting-dialog textarea{min-height:90px}.meeting-two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px}.meeting-picker{min-width:0;border:1px solid #dce5ef;border-radius:8px;padding:10px;max-height:220px;overflow:auto}.meeting-picker label{display:flex;gap:7px;padding:3px 0}.meeting-picker input[type=checkbox]{width:auto}.meeting-groups{max-height:200px;overflow:auto}@media(max-width:900px){.meeting-panels{grid-template-columns:1fr}.meeting-panel{max-height:none}.meeting-list{max-height:370px}.meeting-two-col{grid-template-columns:1fr}}
.meeting-recipient-dropdown{border:1px solid #dce5ef;border-radius:8px;padding:10px}.meeting-recipient-dropdown summary{cursor:pointer;font-weight:600}.meeting-recipient-dropdown .meeting-two-col{margin-top:12px}
.meeting-popup-overlay{position:fixed;inset:0;z-index:20000;display:grid;place-items:center;padding:16px;background:rgba(12,33,61,.48);backdrop-filter:blur(3px)}
.meeting-popup-overlay .meeting-popup{position:relative;inset:auto;box-sizing:border-box;width:min(420px,100%);max-width:100%;padding:0;gap:0;overflow:hidden;border:1px solid #e1e9f4;border-radius:16px;background:#fff;box-shadow:0 22px 60px rgba(14,36,68,.28)}
.meeting-popup-content{display:flex;flex-direction:column;align-items:center;gap:8px;padding:30px 24px 25px;text-align:center;color:#102c50}
.meeting-popup-content strong{font-size:22px;line-height:1.35;font-weight:700}
.meeting-popup-content span,.meeting-popup-content p{font-size:14px;line-height:1.4}
.meeting-popup-actions{display:flex;justify-content:center;gap:12px;padding:0 24px 28px}
.meeting-popup-actions button{min-width:118px;min-height:42px;border:0;border-radius:8px;padding:9px 16px;font:inherit;font-size:14px;font-weight:700;cursor:pointer;transition:filter .15s ease}
.meeting-popup-actions button:hover{filter:brightness(.94)}
.meeting-popup-actions [data-view]{background:#0878f9;color:#fff}
.meeting-popup-actions [data-later]{background:#facc15;color:#263348}
@media(max-width:420px){.meeting-popup-content{padding:26px 16px 22px}.meeting-popup-content strong{font-size:20px}.meeting-popup-actions{padding:0 16px 24px}.meeting-popup-actions button{flex:1;min-width:0}}
.meeting-list h3{margin:14px 0 8px;color:#36577e;font-size:13px}.meeting-list h3:first-child{margin-top:2px}.meeting-past{color:#657990;background:#f8fafc}.meeting-past-label{align-self:flex-start;border-radius:999px;background:#e9eef5;color:#586f8d;padding:2px 8px;font-size:11px;font-weight:600}.meeting-file-section{display:flex;flex-direction:column;gap:7px;min-width:0;border-top:1px solid #e8eef5;padding-top:9px}.meeting-file-section>button{align-self:flex-start;border:1px solid #b8cee8;border-radius:7px;padding:6px 10px;background:#eff7ff;color:#1563a8;font:inherit;font-size:12px;font-weight:600;cursor:pointer}.meeting-file-section>button:hover{background:#dfefff}.meeting-file-section>small{color:#74869b;font-size:11px;line-height:1.35}.meeting-file-list{display:flex;flex-direction:column;gap:4px;min-width:0}.meeting-file-row{display:flex;align-items:center;gap:6px;min-width:0;font-size:12px}.meeting-file-type{flex:none;border-radius:4px;background:#eaf1fa;color:#365f8d;padding:2px 4px;font-size:10px;font-weight:700}.meeting-file-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.meeting-file-row button{flex:none;border:0;background:transparent;color:#0878f9;font:inherit;font-weight:600;cursor:pointer}
.meeting-organizer{font-size:13px;color:#46627f}

/* Contact group management uses the project staff picker without replacing its controls. */
#meeting-dialog:has(.contact-manager){box-sizing:border-box;width:min(620px,calc(100vw - 24px));max-height:calc(100dvh - 24px);padding:0;overflow-y:auto;background:#fff}
#meeting-dialog .contact-manager-header{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid #e1eaf5}
#meeting-dialog .contact-manager-header h2{margin:0;font-size:21px}
#meeting-dialog .contact-manager-header button{display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:7px;background:transparent;color:#385675;cursor:pointer}
#meeting-dialog .contact-manager-header svg{width:20px;height:20px}
#meeting-dialog .contact-manager .meeting-groups{max-height:240px;padding:10px 22px;overflow-y:auto}
#meeting-dialog .contact-group-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #e7edf4}
#meeting-dialog .contact-group-info{display:flex;flex-direction:column;gap:3px;min-width:0}
#meeting-dialog .contact-group-info strong{color:#173353;font-size:14px}
#meeting-dialog .contact-group-info small{overflow:hidden;color:#6e819d;font-size:12px;text-overflow:ellipsis;white-space:nowrap}
#meeting-dialog .contact-group-actions{display:flex;flex:none;gap:4px}
#meeting-dialog .contact-group-actions button{display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:7px;background:transparent;color:#446486;cursor:pointer}
#meeting-dialog .contact-group-actions button:hover,#meeting-dialog .contact-manager-header button:hover{background:#eaf4ff;color:#0878f9}
#meeting-dialog .contact-group-actions button:last-child:hover{background:#fff0f1;color:#c23948}
#meeting-dialog .contact-group-actions svg{width:17px;height:17px}
#meeting-dialog .contact-manager #group-form{padding:18px 22px 22px;border-top:1px solid #e1eaf5}
#meeting-dialog .contact-manager #group-form h3{margin:0;font-size:16px}
#meeting-dialog .contact-name-label{display:flex;flex-direction:column;gap:6px;color:#345677;font-weight:600}
#meeting-dialog .contact-name-label input{min-height:42px}
#meeting-dialog .contact-manager .project-person-picker .managed-dropdown{z-index:10001}
#meeting-dialog .contact-manager .project-person-picker .managed-list{height:140px;max-height:140px}
#meeting-dialog .contact-manager .project-person-picker .managed-empty[hidden],#meeting-dialog .contact-manager [data-cancel-edit][hidden]{display:none}
#meeting-dialog .contact-manager .meeting-actions{justify-content:flex-end;margin-top:6px}
#meeting-dialog .contact-manager .meeting-actions button{min-height:38px}
#meeting-dialog .contact-manager [data-save-group]{border-color:#0878f9;background:#0878f9;color:#fff}
#meeting-dialog .contact-error{margin:0;color:#b73742;font-size:13px}
#meeting-dialog .contact-error[hidden],#meeting-dialog .contact-confirm[hidden]{display:none}
#meeting-dialog .contact-confirm{position:fixed;inset:0;z-index:10002;display:grid;place-items:center;padding:18px;background:#142c48a1}
#meeting-dialog .contact-confirm-card{width:min(400px,100%);padding:22px;border-radius:10px;background:#fff;box-shadow:0 18px 45px #0c244850}
#meeting-dialog .contact-confirm-card h3{margin:0;font-size:18px}
#meeting-dialog .contact-confirm-card p{margin:14px 0 20px}
#meeting-dialog .contact-delete-button{border-color:#dc3545!important;background:#dc3545!important;color:#fff!important}
@media(max-width:600px){#meeting-dialog .contact-manager-header,#meeting-dialog .contact-manager #group-form{padding-inline:16px}#meeting-dialog .contact-manager .meeting-groups{padding-inline:16px}}

/* Meeting creation dialog */
#meeting-dialog.meeting-create-dialog{box-sizing:border-box;width:min(900px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 32px);padding:0;overflow:hidden;border:1px solid #dce5f0;border-radius:12px;background:#fff;color:#0d2340;box-shadow:0 24px 70px #0c24485c}
#meeting-dialog.meeting-create-dialog::backdrop{background:#152c46a3;backdrop-filter:blur(2px)}
#meeting-dialog .meeting-create-form{height:min(100%,calc(100dvh - 32px));max-height:calc(100dvh - 32px);min-width:0;display:flex;flex-direction:column;gap:0}
#meeting-dialog .meeting-modal-header{flex:none;display:flex;align-items:center;justify-content:space-between;margin:0;padding:19px 28px;border-bottom:1px solid #e6ecf4}
#meeting-dialog .meeting-modal-header h2{margin:0;font-size:23px;line-height:1.35;font-weight:700;color:#0b2344}
#meeting-dialog .meeting-close{display:grid;place-items:center;width:36px;height:36px;border:0;border-radius:8px;background:transparent;color:#314b6f;cursor:pointer}
#meeting-dialog .meeting-close svg{width:21px;height:21px}
#meeting-dialog .meeting-form-body{flex:1 1 auto;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;gap:18px;padding:19px 28px 16px;min-height:0;min-width:0}
#meeting-dialog .meeting-field{display:flex;flex-direction:column;gap:7px;min-width:0}
#meeting-dialog .meeting-field>label{display:block;margin:0;color:#102039;font-size:14px;font-weight:600;line-height:1.35}
#meeting-dialog .meeting-field .required{color:#ef4444}
#meeting-dialog .meeting-date-time{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;min-width:0}
#meeting-dialog .meeting-field input:not([type=checkbox]),#meeting-dialog .meeting-field textarea,#meeting-dialog .meeting-recipient-toggle{box-sizing:border-box;width:100%;min-width:0;margin:0;border:1px solid #c7d5e6;border-radius:8px;background:#fff;color:#102039;font-family:inherit;font-size:14px;box-shadow:none}
#meeting-dialog .meeting-field input:not([type=checkbox]){height:44px;min-height:44px;padding:0 13px}
#meeting-dialog .meeting-field input::placeholder,#meeting-dialog .meeting-field textarea::placeholder{color:#7085a4;opacity:1}
#meeting-dialog .meeting-field input:focus,#meeting-dialog .meeting-field textarea:focus,#meeting-dialog .meeting-recipient-toggle:focus-visible{outline:none;border-color:#0878f9;box-shadow:0 0 0 2px #0878f925}
#meeting-dialog .meeting-icon-input{position:relative;min-width:0}
#meeting-dialog .meeting-icon-input>svg{position:absolute;z-index:1;top:50%;left:14px;transform:translateY(-50%);width:19px;height:19px;color:#7189a9;pointer-events:none}
#meeting-dialog .meeting-icon-input input:not([type=checkbox]){padding-left:43px}
#meeting-dialog .meeting-icon-input input[type=date]{color-scheme:light}
#meeting-dialog .meeting-field textarea{display:block;height:100px;min-height:100px;padding:11px 13px;line-height:1.45;resize:vertical}
#meeting-dialog .meeting-recipient-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:5px 12px;text-align:left;cursor:pointer}
#meeting-dialog.meeting-create-dialog #meeting-recipient-toggle{height:auto;min-height:44px}
#meeting-dialog .meeting-recipient-toggle[aria-expanded=true]{border-color:#0878f9;box-shadow:0 0 0 1px #0878f9}
#meeting-dialog .meeting-recipient-toggle>svg{flex:none;width:18px;height:18px;color:#173c65;transition:transform .18s}
#meeting-dialog .meeting-recipient-toggle[aria-expanded=true]>svg{transform:rotate(180deg)}
#meeting-dialog .meeting-selected-chips{display:flex;align-items:center;flex-wrap:wrap;gap:5px;min-width:0}
#meeting-dialog .meeting-recipient-placeholder{color:#7085a4}
#meeting-dialog .meeting-recipient-placeholder[hidden],#meeting-dialog .meeting-add-chip[hidden]{display:none}
#meeting-dialog .meeting-selected-people,#meeting-dialog .meeting-selected-groups{display:flex;align-items:center;flex-wrap:wrap;gap:5px;min-width:0}
#meeting-dialog .meeting-chip,#meeting-dialog .meeting-add-chip{display:inline-flex;align-items:center;gap:5px;min-height:29px;padding:2px 8px;border-radius:999px;background:#edf4ff;color:#143553;font-size:13px;white-space:nowrap}
#meeting-dialog .meeting-chip>svg{width:18px;height:18px;color:#0878f9}
#meeting-dialog .meeting-chip-remove{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;color:#5f7796;font-size:19px;line-height:1;cursor:pointer}
#meeting-dialog .meeting-chip-remove:hover{background:#d6e5fb;color:#183d64}
#meeting-dialog .meeting-add-chip{background:#e8f2ff;color:#0878f9;font-weight:600}
#meeting-dialog .meeting-add-chip svg{width:16px;height:16px}
#meeting-dialog .meeting-invite-panel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));min-width:0;height:318px;margin-top:0;border:1px solid #c7d5e6;border-radius:8px;background:#fff;box-shadow:0 9px 18px #173d661c}
#meeting-dialog .meeting-invite-panel[hidden]{display:none}
#meeting-dialog .meeting-invite-column{display:flex;flex-direction:column;min-width:0;min-height:0;padding:12px 0 0}
#meeting-dialog .meeting-invite-column+.meeting-invite-column{border-left:1px solid #e1e8f1}
#meeting-dialog .meeting-invite-heading{display:flex;align-items:center;gap:8px;padding:0 15px 10px;color:#102a4b;font-size:14px}
#meeting-dialog .meeting-invite-heading svg{width:19px;height:19px}
#meeting-dialog .meeting-invite-staff .project-person-picker{display:flex;flex-direction:column;flex:1;min-height:0;margin:0 14px}
#meeting-dialog .meeting-invite-staff .managed-search{flex:none}
#meeting-dialog .meeting-invite-staff .managed-search input[type=search]{height:36px;min-height:36px;margin:0;padding:6px 0;border:0;border-radius:0;background:transparent;box-shadow:none}
#meeting-dialog .meeting-invite-staff .managed-list{flex:1;min-height:0;height:auto;max-height:none;margin:6px -14px 0;overflow-y:auto;overscroll-behavior:contain}
#meeting-dialog .meeting-invite-scroll{min-height:0;overflow-y:auto;overscroll-behavior:contain}
#meeting-dialog .meeting-invite-row{display:flex;align-items:center;gap:10px;min-height:46px;padding:5px 15px;cursor:pointer}
#meeting-dialog .meeting-invite-row:hover{background:#f3f8ff}
#meeting-dialog .meeting-invite-row.selected{background:#e8f3ff}
#meeting-dialog .meeting-invite-row[hidden]{display:none}
#meeting-dialog .meeting-invite-row input[type=checkbox]{appearance:none;flex:none;width:18px;height:18px;margin:0;border:1.5px solid #8ea3bb;border-radius:4px;background:#fff;cursor:pointer}
#meeting-dialog .meeting-invite-row input[type=checkbox]:checked{border-color:#0878f9;background:#0878f9}
#meeting-dialog .meeting-invite-row input[type=checkbox]:checked::after{content:'✓';display:block;color:#fff;font-size:15px;font-weight:700;line-height:16px;text-align:center}
#meeting-dialog .meeting-group-avatar{display:grid;place-items:center;flex:none;width:34px;height:34px;border-radius:50%;font-size:11px;font-weight:700}
#meeting-dialog .meeting-group-avatar{background:#e7f3ff;color:#0878f9}
#meeting-dialog .meeting-group-avatar svg{width:20px;height:20px}
#meeting-dialog .meeting-invite-copy{display:flex;flex-direction:column;min-width:0;line-height:1.25}
#meeting-dialog .meeting-invite-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#15243d;font-size:13px;font-weight:500}
#meeting-dialog .meeting-invite-copy small{margin-top:3px;color:#7186a3;font-size:11px}
#meeting-dialog .meeting-invite-empty{padding:8px 15px;color:#7186a3;font-size:13px}
#meeting-dialog .meeting-modal-actions{flex:none;display:flex;justify-content:flex-end;gap:12px;margin:0;padding:13px 28px;border-top:1px solid #e6ecf4}
#meeting-dialog .meeting-modal-actions button{display:inline-flex;align-items:center;justify-content:center;gap:9px;height:43px;min-height:43px;padding:0 22px;border-radius:8px;font-family:inherit;font-size:14px;font-weight:600;cursor:pointer}
#meeting-dialog .meeting-modal-actions .ghost{border:1px solid #adbed2;background:#fff;color:#19314e}
#meeting-dialog .meeting-modal-actions .ghost:hover{background:#f1f5fb}
#meeting-dialog .meeting-modal-actions .primary{border:1px solid #0878f9;background:#0878f9;color:#fff}
#meeting-dialog .meeting-modal-actions .primary:hover{background:#0569dc}
#meeting-dialog .meeting-modal-actions .primary:disabled{opacity:.6;cursor:wait}
#meeting-dialog .meeting-modal-actions svg{width:18px;height:18px}
@media(max-width:600px){#meeting-dialog.meeting-create-dialog{width:calc(100vw - 20px);max-height:calc(100dvh - 20px)}#meeting-dialog .meeting-create-form{max-height:calc(100dvh - 20px)}#meeting-dialog .meeting-modal-header{padding:15px 18px}#meeting-dialog .meeting-modal-header h2{font-size:20px}#meeting-dialog .meeting-form-body{padding:16px 18px;gap:15px}#meeting-dialog .meeting-date-time{grid-template-columns:1fr;gap:15px}#meeting-dialog .meeting-invite-panel{grid-template-columns:1fr;height:350px}#meeting-dialog .meeting-invite-column{min-height:0;height:175px;padding-top:9px}#meeting-dialog .meeting-invite-column+.meeting-invite-column{border-left:0;border-top:1px solid #e1e8f1}#meeting-dialog .meeting-modal-actions{padding:12px 18px}#meeting-dialog .meeting-modal-actions button{flex:1 1 0;padding:0 10px}}
