/* Unified components layer: integrations/requests -> modal UX. */

/* Friend search (sidebar + modals) */
.friend-search{margin:0 0 10px;direction:rtl;text-align:right}.friend-search::placeholder{direction:rtl;text-align:right}
.day-card.today>.date{display:flex;width:max-content;margin:3px auto 0}

/* Integrations + requests */
.overnight-hint{margin-top:8px;padding:8px 10px;border-radius:10px;background:var(--accent-soft);color:var(--pending-t);font-size:12px;font-weight:700;border:1px solid var(--border)}
.dot.google{background:var(--accent)}.timeline-block.google{background:color-mix(in srgb,var(--busy) 70%,var(--card));color:var(--busy-t);border-color:color-mix(in srgb,var(--busy-t) 28%,var(--border))}.month-item.google{background:color-mix(in srgb,var(--busy) 70%,var(--card));color:var(--busy-t)}.google-tag{display:inline-block;margin-inline-start:5px;padding:1px 4px;border:1px solid color-mix(in srgb,var(--busy-t) 28%,var(--border));border-radius:999px;font-size:10px;font-weight:700;vertical-align:1px}.google-connected{background:var(--accent-soft);border-color:var(--accent);color:var(--text)}.privacy-note{padding:10px 12px;background:var(--accent-soft);border:1px solid var(--hairline);border-radius:var(--radius-md);color:var(--muted);font-size:12px;line-height:1.5}.google-source{font-size:11px;font-weight:700;color:var(--muted);margin-bottom:6px}.google-event-details{white-space:pre-wrap;line-height:1.55;color:var(--muted);margin-top:10px}.google-link{display:flex;align-items:center;justify-content:center;text-decoration:none}.timeline-block.google .block-label{font-weight:600}
.busy-ack{margin-top:12px;padding:11px 12px;border:1px solid color-mix(in srgb,var(--pending-t) 28%,var(--border));border-radius:var(--radius-md);background:var(--danger-soft);color:var(--text);font-size:12px;line-height:1.5}.busy-ack label{display:flex;align-items:flex-start;gap:9px;cursor:pointer}.busy-ack input{width:auto;margin-top:2px;flex:0 0 auto}.timeline-block[style*="width:calc"]{padding-left:4px;padding-right:4px}.timeline-block[style*="width:calc"] .block-label{font-size:10px}
.change-note-box{margin:10px 0 14px;padding:11px 12px;border-radius:var(--radius-md);background:var(--accent-soft);border:1px solid var(--hairline);color:var(--text);line-height:1.5}.change-note-box strong{display:block;margin-bottom:4px;color:var(--text)}.request-card.change-waiting{border-color:color-mix(in srgb,var(--pending-t) 40%,var(--border));box-shadow:var(--shadow-micro);border-inline-start:3px solid var(--pending)}.change-request-banner{margin-top:9px;padding:9px 10px;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--pending) 22%,var(--card));border:1px solid color-mix(in srgb,var(--pending-t) 28%,var(--border));color:var(--pending-t);font-size:13px;line-height:1.45}.change-request-banner.resolved{background:color-mix(in srgb,var(--card) 88%,var(--bg));border-color:var(--hairline);color:var(--muted)}#meetingChangeModal,#meetingEditModal{z-index:70}

/* Modal UX */
.modal{position:fixed;display:flex;flex-direction:column;overflow:hidden}.modal>.modal-body{flex:1 1 auto;min-height:0;overflow:auto;overscroll-behavior:contain}.modal>.actions{flex:0 0 auto;margin-top:16px}.modal-x{position:absolute;top:12px;inset-inline-start:14px;z-index:6;width:36px;height:36px;margin:0;border:1px solid var(--border);border-radius:999px;background:var(--card);color:var(--text);font-size:24px;line-height:28px;cursor:pointer;box-shadow:var(--shadow-micro)}.modal-x:hover{background:var(--accent-soft)}.modal-x:active{box-shadow:var(--shadow-none)}.modal h2{padding-inline-end:42px}
.modal-bg:not(.hidden){animation:cfLayerIn .16s ease-out both}.modal-bg:not(.hidden)>.modal{animation:cfPopoverIn .18s cubic-bezier(.2,.8,.2,1) both;transform-origin:top center}.modal-bg.is-closing{animation:cfLayerOut .16s ease-in both;pointer-events:none}.modal-bg.is-closing>.modal{animation:cfPopoverOut .16s ease-in both}
@keyframes cfLayerIn{from{opacity:0}to{opacity:1}}@keyframes cfLayerOut{from{opacity:1}to{opacity:0}}@keyframes cfPopoverIn{from{opacity:0;transform:translateY(-5px) scale(.985)}to{opacity:1;transform:none}}@keyframes cfPopoverOut{from{opacity:1;transform:none}to{opacity:0;transform:translateY(-4px) scale(.99)}}@keyframes cfSheetIn{from{opacity:.7;transform:translateY(36px)}to{opacity:1;transform:none}}@keyframes cfSheetOut{from{opacity:1;transform:none}to{opacity:.7;transform:translateY(28px)}}
.request-card{animation:cfCardIn .18s ease-out both}@keyframes cfCardIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
.error:not(.hidden),.success:not(.hidden),.change-request-banner,.busy-ack:not(.hidden){animation:cfSoftIn .18s ease-out both}@keyframes cfSoftIn{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}
button,input,select,textarea,.request-card,.timeline-block{transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease,opacity .16s ease,background-color .16s ease}button:active:not(:disabled){transform:scale(.985)}.timeline-block{animation:cfEventIn .20s ease-out both}@keyframes cfEventIn{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}
.modal>.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:stretch}.modal>.actions>*{min-width:120px}.request-card>.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:stretch}.request-card>.actions>*{flex:1 1 120px;min-width:0}.action-note{font-size:12px;color:var(--muted);line-height:1.5;margin-top:7px}.pending-invite-list{display:grid;gap:6px;margin-top:9px}.pending-invite-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 9px;border:1px solid var(--border);border-radius:10px;background:var(--card)}.pending-invite-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-line{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:7px}
#googleDisconnectBtn{width:100%;margin-top:0;background:transparent;color:var(--danger);box-shadow:none;border:0}
.modal-actions-stack{flex-direction:column;align-items:stretch}
.modal-actions-stack>.primary,.modal-actions-stack>.secondary{flex:1 1 auto;width:100%}
.modal-secondary-full{width:100%}
.modal-destructive-btn{flex:1 1 100%;width:100%;min-height:var(--tap-min);margin-top:2px;border:0;border-radius:var(--radius-md);background:transparent;color:var(--danger);font-weight:700;cursor:pointer;box-shadow:none}
.modal-destructive-btn:hover{background:var(--danger-soft);color:var(--danger)}#sharedInviteBox.is-disabled{opacity:.58}#sharedInviteBox.is-disabled .hint::after{content:' · הזמנות חדשות זמינות שוב לאחר סגירת השינוי הממתין.'}.friend-add-row{display:flex;gap:8px;align-items:stretch}.friend-add-row input{min-width:0;flex:1 1 auto}.friend-add-row button{flex:0 0 auto;white-space:nowrap}.modal button,.request-card button{overflow-wrap:anywhere}.modal .actions>a,.modal .actions>button,.request-card>.actions>button{display:flex;align-items:center;justify-content:center;text-align:center;line-height:1.25}
@media(max-width:700px){.modal-bg:not(.hidden)>.modal{animation:cfSheetIn .22s cubic-bezier(.2,.8,.2,1) both;transform-origin:center bottom}.modal-bg.is-closing>.modal{animation:cfSheetOut .17s ease-in both}.modal{overflow:hidden}.modal>.modal-body{max-width:100%}.modal>.actions{max-width:none}.modal-x{width:40px;height:40px}.modal>.actions{gap:8px;margin-top:0}.modal>.actions>*{flex:1 1 100%;width:100%;min-height:var(--tap-min)}.request-card>.actions{gap:7px}.request-card>.actions>*{flex:1 1 calc(50% - 4px);min-width:0;min-height:var(--tap-min)}.friend-add-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.friend-add-row button{min-width:72px;min-height:var(--tap-min)}.time-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.time-grid>*{min-width:0}.time-grid select{width:100%;min-width:0}.field-label{margin-top:13px}.repeat-box{padding:10px}.pending-invite-row{align-items:flex-start;flex-direction:column}.check-list{max-width:100%}.check-row{min-width:0;min-height:44px}.check-row>*{min-width:0}.pending-invite-row button{width:100%;min-height:44px}}
@media(max-width:430px){.request-card>.actions>*{flex-basis:100%;width:100%}.friend-add-row{grid-template-columns:1fr}.friend-add-row button{width:100%}.time-grid{grid-template-columns:1fr!important}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}

/* Meeting content polls */
.meeting-content-mode{margin:12px 0 4px}.meeting-mode-switch{display:grid;grid-template-columns:1fr 1fr}
.meeting-poll-composer{margin-top:9px;padding:var(--space-3);border:1px solid color-mix(in srgb,var(--accent) 30%,var(--border));border-radius:var(--radius-lg);background:linear-gradient(180deg,color-mix(in srgb,var(--accent-soft) 54%,var(--card)),var(--card));box-shadow:var(--shadow-micro)}.meeting-poll-option-editors{display:grid;gap:7px;margin-top:9px}.meeting-poll-option-editor{display:grid;grid-template-columns:34px minmax(0,1fr) 30px;gap:7px;align-items:center}.meeting-poll-option-editor>input{min-width:0;margin:0}.meeting-poll-radio{position:relative;display:grid;place-items:center;width:34px;height:34px;cursor:pointer}.meeting-poll-radio input{position:absolute;opacity:0;pointer-events:none}.meeting-poll-radio span{display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--border);border-radius:50%;background:var(--card);color:var(--muted);font-size:11px;font-weight:700;box-shadow:var(--shadow-micro)}.meeting-poll-radio:has(input:checked) span{border-color:var(--accent);background:var(--accent);color:var(--card);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 15%,transparent)}.meeting-poll-remove{width:30px;height:30px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--muted);font-size:20px;line-height:1;cursor:pointer}.meeting-poll-remove:hover{background:var(--accent-soft);color:var(--text)}.meeting-poll-remove-spacer{width:30px}.meeting-poll-add{display:flex;align-items:center;justify-content:center;width:100%;min-height:36px;margin-top:8px;border:1px dashed color-mix(in srgb,var(--accent) 44%,var(--border));border-radius:var(--radius-md);background:transparent;color:var(--text);font-size:12px;font-weight:700;cursor:pointer}.meeting-poll-add:hover{background:var(--accent-soft)}
.meeting-poll-card{position:relative;overflow:hidden;border-color:color-mix(in srgb,var(--accent) 38%,var(--border));background:linear-gradient(145deg,color-mix(in srgb,var(--accent-soft) 34%,var(--card)),var(--card) 50%);box-shadow:var(--shadow-micro);border-inline-start:3px solid color-mix(in srgb,var(--accent) 62%,transparent)}.meeting-poll-card.poll-closed{border-inline-start-color:color-mix(in srgb,var(--shared-t) 68%,transparent)}.meeting-poll-badge{display:inline-flex;align-items:center;width:max-content;max-width:100%;margin-bottom:7px;padding:3px 8px;border-radius:999px;background:color-mix(in srgb,var(--accent) 13%,var(--card));border:1px solid color-mix(in srgb,var(--accent) 32%,var(--border));color:var(--text);font-size:11px;font-weight:700;letter-spacing:.01em}.meeting-poll-badge.resolved{background:color-mix(in srgb,var(--shared-t) 11%,var(--card));border-color:color-mix(in srgb,var(--shared-t) 30%,var(--border))}.meeting-poll-options{display:grid;gap:7px;margin:10px 0}.meeting-poll-option{display:flex;align-items:center;gap:8px;min-height:42px;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--card) 92%,var(--accent-soft));color:var(--text);position:relative;overflow:hidden}.meeting-poll-option::before{content:'';position:absolute;inset-block:0;inset-inline-start:0;width:var(--poll-fill,0);max-width:100%;background:color-mix(in srgb,var(--accent) 10%,transparent);pointer-events:none;transition:width .2s ease}label.meeting-poll-option{cursor:pointer}.meeting-poll-option input{width:auto;flex:0 0 auto;margin:0;position:relative;z-index:1}.meeting-poll-option-text,.meeting-poll-count,.meeting-poll-winner-mark{position:relative;z-index:1}.meeting-poll-option.poll-selectable:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--border));background:color-mix(in srgb,var(--accent-soft) 46%,var(--card))}.meeting-poll-option.poll-selectable:has(input:checked){border-color:var(--accent);background:color-mix(in srgb,var(--accent-soft) 72%,var(--card));box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 10%,transparent)}.meeting-poll-option.winner{border-color:color-mix(in srgb,var(--shared-t) 55%,var(--border));background:color-mix(in srgb,var(--shared-t) 9%,var(--card))}.meeting-poll-option-text{min-width:0;flex:1 1 auto;font-size:13px;font-weight:700;overflow-wrap:anywhere}.meeting-poll-count{flex:0 0 auto;padding:2px 7px;border-radius:999px;background:color-mix(in srgb,var(--accent-soft) 74%,var(--card));color:var(--muted);font-size:11px;font-weight:700;white-space:nowrap}.meeting-poll-winner-mark{flex:0 0 auto;padding:2px 7px;border-radius:999px;background:color-mix(in srgb,var(--shared-t) 17%,var(--card));color:var(--text);font-size:11px;font-weight:700}.poll-progress-wrap{margin-top:8px}.poll-progress-bar{height:4px;border-radius:999px;background:color-mix(in srgb,var(--accent-soft) 70%,var(--border));overflow:hidden;margin-bottom:6px}.poll-progress-bar::after{content:'';display:block;height:100%;width:var(--poll-progress,0);max-width:100%;background:var(--accent);border-radius:inherit;transition:width .25s ease}.poll-progress{margin-top:0;color:var(--muted);font-size:12px;font-weight:700}.meeting-poll-tie{margin:10px 0 7px;padding:9px 10px;border:1px solid color-mix(in srgb,var(--pending-t) 38%,var(--border));border-radius:var(--radius-sm);background:color-mix(in srgb,var(--pending-t) 7%,var(--card))}.meeting-poll-tie .field-label{margin-top:0}.meeting-poll-tie select{margin-top:6px}.meeting-poll-tie-options{display:flex;flex-wrap:wrap;gap:7px;margin-top:8px}.meeting-poll-tie-btn{flex:1 1 auto;min-height:var(--tap-min)}.meeting-poll-joined{border-color:color-mix(in srgb,var(--shared-t) 45%,var(--border))}.meeting-poll-load-failed{border-color:color-mix(in srgb,var(--pending-t) 40%,var(--border))}.meeting-poll-load-error{margin-top:8px;color:var(--pending-t)}.request-secondary-actions{margin-top:8px}
@media(max-width:700px){.meeting-poll-composer{padding:10px}.meeting-poll-option-editor{grid-template-columns:38px minmax(0,1fr) 34px}.meeting-poll-radio{width:38px;height:38px}.meeting-poll-radio span{width:32px;height:32px}.meeting-poll-remove{width:34px;height:34px}.meeting-poll-add{min-height:42px}.meeting-poll-option{min-height:46px;padding:9px 10px}.meeting-poll-option-text{font-size:13px}.meeting-poll-card .request-primary-actions>*{min-height:44px}}
