/* Calendar surfaces follow the navbar's soft-corner language without becoming capsules. */
#calendarCard.calendar-card { border-radius: 28px; overflow: visible; }
#compactCalendarFilterRow { border-radius: 22px; }
@media (min-width:701px) {
  #compactCalendarFilterRow { grid-template-columns:minmax(0,2fr) minmax(0,3fr); }
  #compactCalendarResponsible { grid-column:1; }
  #compactCalendarWork { grid-column:2; }
  #compactCalendarSources { grid-column:1/-1; margin-top:8px; padding:8px 0 0!important; border-top:1px solid rgba(203,213,225,.58); border-left:0!important; }
}
.calendar-scroll-viewport { overflow: hidden; border-radius: 18px; }
.calendar-grid { grid-auto-rows: minmax(130px, auto); }
.calendar-skeleton-loading { pointer-events: none; }
.calendar-skeleton-cell { min-height: 130px; }
.calendar-skeleton { position: relative; display: block; overflow: hidden; background: #edf2f7; }
.calendar-skeleton::after { content: ''; position: absolute; inset: 0; transform: translateX(-100%); background: linear-gradient(90deg, transparent, rgba(255,255,255,.78), transparent); animation: calendar-skeleton-shimmer 1.35s ease-in-out infinite; }
.calendar-skeleton-day { width: 28px; height: 20px; margin: 12px 0 16px 12px; border-radius: 7px; }
.calendar-skeleton-event { width: 68%; height: 30px; margin: 0 10px 8px; border-radius: 9px; }
.calendar-skeleton-event.wide { width: calc(100% - 20px); }
@keyframes calendar-skeleton-shimmer { to { transform: translateX(100%); } }
.calendar-day-trigger { appearance: none; padding: 0; border: 0; background: transparent; color: inherit; cursor: pointer; touch-action: none; user-select: none; -webkit-user-select: none; transition: background-color .14s ease, box-shadow .14s ease, transform .14s ease; }
.calendar-day-trigger:hover,.calendar-day-trigger:focus-visible { outline: 0; background: rgba(36,119,212,.12); box-shadow: 0 0 0 5px rgba(36,119,212,.06); transform: scale(1.08); }
.calendar-day-trigger.today { background: #ef4444; }
.calendar-day-trigger.today:hover,.calendar-day-trigger.today:focus-visible { background: #ef4444; box-shadow: 0 0 0 5px rgba(239,68,68,.14); }
.calendar-day-trigger.is-holding { animation: calendar-day-hold 1s linear both; }
.calendar-range-selecting { cursor: crosshair; user-select: none; -webkit-user-select: none; }
.calendar-grid .day.drag-range { outline: 2px solid rgba(36,119,212,.36); outline-offset: -2px; background: rgba(36,119,212,.07); }
@keyframes calendar-day-hold { from { box-shadow: 0 0 0 0 rgba(36,119,212,.08); } to { box-shadow: 0 0 0 7px rgba(36,119,212,.2); } }
.cal-event { display: flex; align-items: center; gap: 5px; min-width: 0; border-left: 0; background: color-mix(in srgb, var(--event-color, #8b5cf6) 22%, white); color: color-mix(in srgb, var(--event-color, #8b5cf6) 72%, #172033); }
.cal-event-title { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cal-event-avatars { display: inline-flex; flex: 0 0 auto; margin-left: auto; }
.cal-event-avatars img { width: 20px; height: 20px; margin-left: -5px; border: 2px solid #fff; border-radius: 50%; object-fit: cover; background: #fff; }
@media (max-width: 760px) {
  #calendarCard.calendar-card { padding-inline: 10px; border-radius: 22px; }
  #calendarCard .calendar-title-row { padding-bottom: 14px; }
  #compactCalendarFilterRow { border-radius: 18px; }
  .calendar-scroll-viewport { overflow-x: auto; overflow-y: hidden; border: 1px solid #e1e9f2; border-radius: 14px; overscroll-behavior-x: contain; scroll-behavior: smooth; scrollbar-gutter: stable; -webkit-overflow-scrolling: touch; }
  .calendar-scroll-viewport:focus-visible { outline: 3px solid rgba(36,119,212,.28); outline-offset: 2px; }
  .calendar-scroll-viewport .weekdays,.calendar-scroll-viewport .calendar-grid { width: 784px; min-width: 784px; }
  .calendar-scroll-viewport .weekdays { position: sticky; top: 0; z-index: 2; padding: 7px 0; background: rgba(255,255,255,.97); border-bottom: 1px solid #e6edf5; font-size: .75rem; font-weight: 650; }
  .calendar-grid { grid-auto-rows: minmax(118px, auto); }
  .calendar-grid .day { min-height: 118px; padding: 7px; }
  .calendar-grid .daynum { width: 30px; height: 30px; margin-bottom: 5px; font-size: .78rem; }
  .calendar-grid .cal-event { min-height: 31px; padding: 6px 7px; border-radius: 8px; font-size: .7rem; line-height: 1.35; }
  .calendar-skeleton-cell { min-height: 118px; }
  .calendar-skeleton-day { width: 23px; margin: 10px 0 13px 8px; }
  .calendar-skeleton-event { width: calc(100% - 14px); height: 31px; margin-inline: 7px; }
  .cal-event-avatars img { width: 18px; height: 18px; }
}
@media (prefers-reduced-motion: reduce) { .calendar-skeleton::after,.calendar-day-trigger.is-holding { animation: none; } }

/* Calendar result list — keep source, people, schedule and place independently scannable. */
.calendar-list-heading { display:grid; grid-template-columns:34px max-content 34px minmax(24px,1fr); align-items:center; gap:10px; margin:20px 4px 10px; }
.calendar-list-heading-icon { display:grid; place-items:center; width:34px; height:34px; border-radius:10px; background:#eaf3ff; color:#2477d4; }
.calendar-list-heading-icon svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; }
.calendar-list-heading h2 { margin:0; color:#253858; font-size:1rem; font-weight:800; line-height:1.35; }
.calendar-list-heading-rule { height:1px; background:linear-gradient(90deg,#d7e4f2,rgba(215,228,242,0)); }
.calendar-list-heading .calendar-filter-visibility { width:34px; height:34px; min-height:34px; padding:7px; }
.calendar-list-heading .calendar-filter-visibility svg { width:18px; height:18px; }
.list-control-panel { margin:0 0 13px; padding:12px; border:1px solid #dbe5ef; border-radius:18px; background:#fff; box-shadow:0 7px 24px rgba(31,52,84,.04); }
.list-view-controls { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0; padding:0 0 11px; border-bottom:1px solid #e4ebf3; }
.list-group-tabs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:center; flex:1 1 auto; gap:7px; min-width:0; }
.list-group-button { display:inline-flex; align-items:center; justify-content:center; gap:8px; width:100%; min-width:0; min-height:42px; padding:8px 12px; border:1px solid #d7e1ec; border-radius:12px; background:#f8fafc; color:#526174; font:inherit; font-size:.82rem; font-weight:750; white-space:nowrap; cursor:pointer; }
.list-group-button:hover { border-color:#a8c8ed; background:#f1f7ff; color:#185fae; }
.list-group-button:focus-visible { outline:3px solid rgba(36,119,212,.2); outline-offset:2px; }
.list-group-button.active { border-color:#8bb9ed; background:#eaf3ff; color:#155ca8; box-shadow:inset 0 0 0 1px rgba(36,119,212,.08); }
.list-group-count { display:inline-grid; place-items:center; min-width:25px; height:25px; padding:0 7px; border-radius:999px; background:#e7edf4; color:#526174; font-size:.72rem; font-variant-numeric:tabular-nums; }
.list-group-button.active .list-group-count { background:#2477d4; color:#fff; }
.list-page-size { display:flex; align-items:center; gap:7px; flex:0 0 auto; color:#667085; font-size:.78rem; font-weight:650; }
.list-page-size>span { margin:0; white-space:nowrap; }
.list-page-size select { min-width:84px; min-height:42px; padding:7px 30px 7px 10px; border:1px solid #d3dde8; border-radius:11px; background:#fff; color:#344054; font:inherit; font-weight:700; cursor:pointer; }
.list-page-size select:focus-visible { outline:3px solid rgba(36,119,212,.2); border-color:#77aef0; }
.table-head,.row { grid-template-columns:44px minmax(0,2.2fr) minmax(280px,.8fr); }
.table-head>span { color:#667085; font-size:.78rem; font-weight:700; }
.list-rank { display:grid; place-items:center; width:34px; height:34px; border-radius:10px; background:#edf3f9; color:#526174; font-size:.78rem; font-weight:800; font-variant-numeric:tabular-nums; }
.list-control-panel .toolbar { align-items:stretch; margin:11px 0 0; }
.list-compact-filter-row { margin:11px 0 0; padding-top:11px; border-top:1px solid #e4ebf3; }
.list-compact-filter-row { position:relative; z-index:4200; display:grid; grid-template-columns:minmax(0,2fr) minmax(0,3fr); align-items:start; gap:0; width:100%; min-width:0; overflow:visible; }
.list-compact-filter-row>.compact-filter:first-child { padding-left:0; }
.list-compact-filter-row>.compact-filter:nth-child(2) { border-left:1px solid rgba(203,213,225,.58); }
.list-compact-filter-row>#compactListSources { grid-column:1/-1; margin-top:8px; padding:8px 0 0!important; border-top:1px solid rgba(203,213,225,.58); }
#compactListSources .compact-chip { border-color:color-mix(in srgb,var(--chip-color,#94a3b8) 42%,#dfe4eb); background:color-mix(in srgb,var(--chip-color,#94a3b8) 12%,white); color:color-mix(in srgb,var(--chip-color,#475467) 60%,#263238); font-weight:600; }
#compactListSources .compact-chip-x { color:color-mix(in srgb,var(--chip-color,#94a3b8) 55%,#667085); }
#compactListSources .compact-chip-x:hover,#compactListSources .compact-chip-x:focus-visible { color:#d92d20; background:#feeceb; }
.list-compact-filter-row[hidden] { display:none!important; }
.toolbar .list-search { position:relative; display:flex; flex:1 1 58%; min-width:0; }
.toolbar .list-search>input { width:100%; padding-right:46px; }
.toolbar .list-search .search-clear { right:7px; }
.toolbar-work-filter { flex:1 1 42%; min-width:300px; }
.toolbar-work-filter>.compact-filter { height:100%; padding:0; border:0; }
.toolbar-work-filter .compact-filter-head { min-height:50px; padding:7px 10px; border:1px solid #d3dde8; border-radius:14px; background:#fff; }
.toolbar-work-filter .compact-filter-panel { z-index:120; }
.toolbar-work-filter .work-choice-chip { max-width:220px; }
.list-title-row { display:flex; align-items:center; flex-wrap:wrap; gap:7px 9px; min-width:0; }
.list-title-row>.title { min-width:0; max-width:100%; overflow-wrap:anywhere; }
.list-meta-row { display:grid; grid-template-columns:25px minmax(0,1fr); align-items:start; gap:7px; margin-top:8px; min-width:0; }
.list-field-content { grid-column:2; display:flex; align-items:flex-start; flex-wrap:wrap; gap:6px 12px; min-width:0; }
.list-mobile-field-icon { display:inline-grid; grid-column:1; }
.list-row-label { flex:0 0 auto; align-self:center; color:#667085; font-size:.72rem; font-weight:750; }
.list-empty-value { align-self:center; color:#98a2b3; font-family:inherit; font-size:.78rem; font-style:normal; font-weight:400; letter-spacing:normal; line-height:1.45; }
.list-calendar-badge { display:inline-flex; align-items:center; gap:6px; max-width:260px; padding:0; border:0; border-radius:0; background:transparent; color:color-mix(in srgb,var(--chip-color,#64748b) 82%,#172033); font-size:.74rem; font-weight:750; line-height:1.3; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.list-person-chip { display:inline-flex; align-items:center; flex:0 1 auto; gap:6px; min-width:0; max-width:100%; padding:0; border:0; border-radius:0; background:transparent; color:#667085; font-size:.78rem; }
.list-person-chip>span:last-child { min-width:0; overflow:visible; overflow-wrap:anywhere; text-overflow:clip; white-space:normal; }
.list-person-avatar { width:24px; height:24px; flex:0 0 24px; display:grid; place-items:center; overflow:hidden; border:1px solid #fff; border-radius:50%; background:#e9eef4; box-shadow:0 0 0 1px #d8e1eb; object-fit:cover; }
.list-attachments { display:grid; grid-template-columns:25px minmax(0,1fr); align-items:start; gap:7px; min-width:0; margin-top:8px; }
.list-attachments .list-field-content { flex-direction:column; gap:3px; }
.list-attachments .list-empty-value { display:inline-flex; align-items:center; align-self:flex-start; min-height:25px; text-align:left; }
.list-attachments-label { flex:0 0 auto; }
.list-attachment-badge { display:inline; width:auto; max-width:100%; padding:0; border:0; border-radius:0; background:transparent; color:#185fae; font:inherit; font-size:.78rem; font-weight:700; line-height:1.45; text-align:left; text-decoration:none; cursor:pointer; }
.list-attachment-badge.link { border:0; background:transparent; color:#16835b; }
.list-attachment-badge:hover,.list-attachment-badge:focus-visible { color:#124f91; text-decoration:underline; outline:0; }
.list-attachment-badge.link:hover,.list-attachment-badge.link:focus-visible { color:#106a47; }
.list-attachment-name { min-width:0; max-width:none; overflow:visible; overflow-wrap:anywhere; text-overflow:clip; white-space:normal; }
.list-attachment-size { display:none; }
.side-info { display:flex; flex-direction:column; gap:7px; }
.list-info-line { display:flex; align-items:center; flex-wrap:wrap; gap:7px; min-width:0; }
.list-info-icon { display:inline-grid; place-items:center; width:25px; height:25px; flex:0 0 25px; border-radius:8px; background:#edf5ff; color:#2477d4; }
.list-meta-row>.list-info-icon,.list-attachments>.list-info-icon,.location>.list-info-icon { align-self:start; }
.list-info-icon svg { width:15px; height:15px; }
.list-info-line .list-info-icon:not(:first-child) { margin-left:5px; }
.list-time { display:inline-flex; align-items:center; gap:7px; white-space:nowrap; }
.list-time .list-info-icon { margin-left:5px; }
.weekday-badge { display:inline-grid; place-items:center; min-width:25px; height:25px; padding:0 6px; border:1px solid var(--weekday-border,#cbd5e1); border-radius:8px; background:var(--weekday-bg,#f1f5f9); color:var(--weekday-text,#475569); font-size:.7rem; font-weight:850; line-height:1; }
.weekday-0 { --weekday-bg:#fff0f1; --weekday-border:#f5b9be; --weekday-text:#b4232f; }
.weekday-1 { --weekday-bg:#fff8d9; --weekday-border:#ead37a; --weekday-text:#775b00; }
.weekday-2 { --weekday-bg:#fff0f6; --weekday-border:#efb3ce; --weekday-text:#a82c64; }
.weekday-3 { --weekday-bg:#eaf8ef; --weekday-border:#9ed7b1; --weekday-text:#18733a; }
.weekday-4 { --weekday-bg:#fff2e7; --weekday-border:#f2bd8e; --weekday-text:#9a4b08; }
.weekday-5 { --weekday-bg:#eaf3ff; --weekday-border:#a9c9f1; --weekday-text:#185fae; }
.weekday-6 { --weekday-bg:#f2edff; --weekday-border:#c5b3ed; --weekday-text:#6442a4; }
.relative-day { color:#667085; white-space:nowrap; }
.list-date-short { display:none; }
@media (min-width:761px) and (max-width:1320px) {
  .row .date>.relative-day { flex:0 0 calc(100% - 32px); margin-left:32px; }
}
.location.list-info-line { display:grid; grid-template-columns:25px minmax(0,1fr); align-items:start; color:#667085; }
.location.list-info-line>span:last-child { min-width:0; overflow-wrap:anywhere; }
.location.list-info-line>.list-location-empty { display:inline-flex; align-items:center; min-height:25px; }
.location.list-info-line>.list-location-link { min-width:0; color:#185fae; font-weight:700; text-decoration:none; overflow-wrap:anywhere; }
.location.list-info-line>.list-location-link:hover,.location.list-info-line>.list-location-link:focus-visible { color:#124f91; text-decoration:underline; }
.row .location.list-info-line>span:last-child,.row .location.list-info-line>.list-location-link,.row .list-person-chip,.row .list-attachment-badge,.row .list-empty-value { font-size:.78rem; line-height:1.45; }
.row .list-empty-value { color:#98a2b3; font-family:inherit; font-style:normal; font-weight:400; letter-spacing:normal; }
@media(max-width:760px){
  .calendar-list-heading { grid-template-columns:30px max-content 30px minmax(18px,1fr); gap:8px; margin:16px 2px 8px; }
  .calendar-list-heading-icon { width:30px; height:30px; border-radius:9px; }
  .calendar-list-heading-icon svg { width:16px; height:16px; }
  .calendar-list-heading h2 { font-size:.92rem; }
  .calendar-list-heading .calendar-filter-visibility { width:30px; height:30px; min-height:30px; padding:6px; }
  .row .list-date-full { display:none; }
  .row .list-date-short { display:inline; }
  .list-control-panel { padding:8px; border-radius:16px; }
  .list-compact-filter-row { display:block; margin-top:8px; padding:5px 0 0; }
  .list-compact-filter-row>.compact-filter { width:100%; padding:7px 0!important; border-left:0!important; border-top:1px solid rgba(203,213,225,.52); }
  .list-compact-filter-row>.compact-filter:first-child { border-top:0; }
  .list-compact-filter-row>#compactListSources { margin-top:0; }
  .list-view-controls { align-items:center; flex-direction:row; gap:6px; padding:0 0 8px; }
  .list-control-panel .toolbar { gap:7px; margin-top:8px; }
  .list-group-tabs { gap:4px; }
  .list-group-button { gap:4px; min-height:40px; padding:6px 4px; font-size:.68rem; }
  .list-group-count { min-width:22px; height:22px; padding:0 5px; font-size:.66rem; }
  .list-page-size { justify-content:flex-end; gap:4px; font-size:.68rem; }
  .list-page-size select { min-width:82px; min-height:40px; padding:6px 24px 6px 7px; }
  .row { grid-template-columns:38px minmax(0,1fr); gap:8px 9px; }
  .row .list-rank { grid-column:1; grid-row:1; width:32px; height:32px; }
  .row .subject-cell { display:contents; }
  .row .list-title-row { grid-column:2; grid-row:1; }
  .row .side-info { grid-column:2; grid-row:2; }
  .row .list-meta-row { grid-column:2; grid-row:3; margin-top:0; }
  .row .list-attachments { grid-column:2; grid-row:4; margin-top:0; }
  .row .list-meta-row,.row .list-attachments { display:grid; grid-template-columns:25px minmax(0,1fr); align-items:start; gap:7px; }
  .row .list-mobile-field-icon { display:inline-grid; grid-column:1; }
  .row .list-meta-row>.list-row-label,.row .list-attachments>.list-row-label { display:none; }
  .row .list-field-content { grid-column:2; display:flex; align-items:flex-start; flex-wrap:wrap; gap:6px; min-width:0; }
  .row .list-meta-row .list-field-content { row-gap:4px; column-gap:12px; }
  .row .list-person-chip { gap:6px; padding:0; border:0; border-radius:0; background:transparent; font-size:.78rem; }
  .row .list-person-avatar { width:24px; height:24px; flex-basis:24px; border-width:1px; }
  .row .list-attachments .list-field-content { row-gap:3px; column-gap:12px; }
  .row .list-attachment-badge { display:inline; width:auto; max-width:100%; padding:0; border:0; border-radius:0; background:transparent; color:#185fae; font:inherit; font-size:.78rem; font-weight:700; line-height:1.45; text-align:left; text-decoration:none; cursor:pointer; }
  .row .list-attachment-badge.link { border:0; background:transparent; color:#16835b; }
  .row .list-attachment-badge:hover,.row .list-attachment-badge:focus-visible { color:#124f91; text-decoration:underline; outline:0; }
  .row .list-attachment-badge.link:hover,.row .list-attachment-badge.link:focus-visible { color:#106a47; }
  .row .list-attachment-name { display:inline; overflow-wrap:anywhere; }
  .row .list-attachment-size { display:none; }
  .toolbar-work-filter { width:100%; min-width:0; }
  .toolbar-work-filter .compact-filter-panel { position:fixed; left:10px; right:10px; top:auto; bottom:calc(10px + env(safe-area-inset-bottom)); max-height:62dvh; }
  .list-meta-row { gap:6px; }
  .list-calendar-badge { max-width:100%; }
  .list-person-chip { max-width:100%; }
  .list-attachments { gap:6px; }
  .list-attachment-badge { max-width:100%; }
  .list-attachment-name { max-width:100%; }
  .side-info { padding-top:2px; }
}
@media(max-width:520px){
  .list-control-panel { padding:7px; }
  .list-view-controls { gap:5px; padding:0 0 7px; }
  .list-group-button { font-size:.64rem; }
  .list-page-size>span { display:none; }
  .list-page-size select { width:78px; min-width:78px; }
}
.event-editor-dialog { width: min(760px, calc(100vw - 24px)); max-height: calc(100dvh - 24px); overflow: hidden; }
.event-editor-dialog form { padding: 24px; overflow-y: auto; overflow-x: hidden; max-height: calc(100dvh - 24px); overscroll-behavior: contain; }
.event-name-input { min-height:52px; max-height:160px; resize:none; overflow-y:hidden; line-height:1.45; }
.calendar-form-note { margin: -7px 0 0; color: #667085; font-size: .82rem; }
.event-calendar-controls { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:12px; padding:14px; border:1px solid #dbe5ef; border-radius:16px; background:#f8fbff; }
.event-calendar-controls>label,.event-calendar-controls>fieldset { min-width:0; margin:0; }
.event-calendar-controls fieldset { padding:0; border:0; }
.event-calendar-controls legend { margin-bottom:7px; color:#344054; font-size:.86rem; font-weight:700; }
.event-calendar-controls select { width:100%; min-height:46px; }
.event-calendar-controls>small { grid-column:1/-1; color:#667085; font-size:.78rem; }
.event-calendar-controls { align-items:start; padding:18px; background:#fff; }
.event-calendar-controls>label { display:grid; gap:7px; color:#344054; font-size:.86rem; font-weight:700; }
.event-calendar-controls select { appearance:none; min-height:54px; margin:0; padding:11px 48px 11px 15px; border:1.5px solid #cbd8e8; border-radius:14px; background-color:#fff; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%2356677f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 15px center; color:#172033; font:inherit; font-size:1rem; font-weight:750; }
.event-calendar-controls select:hover:not(:disabled) { border-color:#8eb8e8; background-color:#fbfdff; }
.event-calendar-controls select:focus { border-color:#2477d4; outline:4px solid rgba(36,119,212,.14); }
.event-calendar-controls select:disabled { border-color:#e0e6ee; background-color:#f4f6f8; color:#667085; cursor:not-allowed; opacity:1; }
.event-color-choices { display:grid; grid-template-columns:repeat(6,36px); align-items:center; gap:12px 14px; min-height:84px; }
.event-color-choice { position:relative; display:grid!important; place-items:center; width:36px!important; height:36px!important; min-width:36px!important; min-height:36px!important; margin:0!important; padding:0!important; border:0!important; border-radius:50%!important; background:transparent!important; cursor:pointer; }
.event-color-choice input { position:absolute!important; width:1px!important; height:1px!important; min-height:0!important; margin:0!important; padding:0!important; clip:rect(0 0 0 0); clip-path:inset(50%); opacity:0; }
.event-color-swatch { display:block!important; width:34px!important; height:34px!important; min-width:34px!important; min-height:34px!important; border:0!important; border-radius:50%!important; background-color:var(--event-swatch-color,#4285f4)!important; box-shadow:none!important; }
.event-color-choice:hover .event-color-swatch { filter:brightness(.92); transform:scale(1.06); }
.event-color-choice:has(input:focus-visible) { outline:3px solid rgba(36,119,212,.28); outline-offset:3px; }
.event-color-choice:has(input:checked)::after { content:'✓'; position:absolute; inset:0; display:grid; place-items:center; color:#111827; font-size:22px; font-weight:900; line-height:1; pointer-events:none; }
.field-label-line { display: flex; align-items: baseline; gap: 8px; min-width: 0; flex-wrap: wrap; }
.msh-event-ids { color: #98a2b3; font: 400 10px/1.3 ui-monospace,SFMono-Regular,Menlo,monospace; }
.field-error,.form-error { margin-top: 6px; color: #b42318; font-size: .82rem; font-weight: 650; }
#calendarEventForm [aria-invalid="true"] { border-color: #f04438; background: #fff8f7; box-shadow: 0 0 0 3px rgba(240,68,56,.1); }
#calendarEventForm [aria-invalid="true"]:focus { border-color: #d92d20; box-shadow: 0 0 0 4px rgba(217,45,32,.12); }
#calendarEventForm .form-grid .field-error { grid-column: 1 / -1; }
#calendarEventForm textarea { resize: none; width: 100%; margin-top: 6px; }
.combo { position: relative; margin-top: 6px; }
.combo>input { width: 100%; }
.combo-results { position: absolute; z-index: 110; top: calc(100% + 5px); left: 0; right: 0; max-height: min(260px,45dvh); overflow: auto; padding: 5px; border: 1px solid #d9e2ec; border-radius: 14px; background: #fff; box-shadow: 0 18px 44px rgba(31,45,61,.18); }
.combo-option { display: block; width: 100%; padding: 9px 10px; border: 0; border-radius: 9px; background: transparent; color: #344054; text-align: left; cursor: pointer; }
.combo-option.active,.combo-option:hover { background: #edf5ff; }
.combo-option small { display: block; max-width: 100%; margin-top: 2px; overflow: hidden; color: #98a2b3; text-overflow: ellipsis; white-space: nowrap; }
.person-combo-option { display: grid; grid-template-columns: 42px minmax(0,1fr); align-items: center; gap: 11px; min-height: 58px; padding: 8px 10px; }
.person-combo-avatar { width: 40px; height: 40px; border: 2px solid #fff; border-radius: 50%; background: #eef2f6; box-shadow: 0 0 0 1px #dce3ec; object-fit: cover; overflow: hidden; }
.person-combo-copy { min-width: 0; display: flex; flex-direction: column; justify-content: center; }
.person-combo-copy b,.person-combo-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.person-combo-copy b { color: #344054; font-size: .92rem; line-height: 1.35; }
.person-combo-copy small { margin-top: 1px; color: #8b98ab; font-size: .78rem; line-height: 1.3; }
.compact-option-copy small { display: block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#compactCalendarWork .work-choice-chip { max-width: 190px; }
#compactCalendarWork .work-choice-chip .compact-chip-label { min-width: 0; max-width: 128px; flex-shrink: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width:640px) { #compactCalendarWork .work-choice-chip { max-width:min(160px,100%); } #compactCalendarWork .work-choice-chip .compact-chip-label { max-width:98px; } }
.selected-people,.selected-works { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 8px; }
.selected-person { display: flex; align-items: center; gap: 6px; max-width: 100%; padding: 5px 8px 5px 5px; border: 1px solid #e2e8ef; border-radius: 999px; background: #f2f5f8; font-size: .78rem; }
.selected-person span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.selected-person .avatar { width: 36px; height: 36px; margin: 0; flex: 0 0 auto; }
.selected-person button,.selected-work button { border: 0; background: transparent; color: #98a2b3; cursor: pointer; }
.selected-work { display: flex; align-items: center; gap: 9px; max-width: 100%; padding: 7px 9px 7px 11px; border: 1px solid #d8e1eb; border-radius: 14px; background: #f3f7fb; color: #344054; }
.selected-work>span { display: flex; align-items: baseline; gap: 7px; min-width: 0; flex-wrap: nowrap; }
.selected-work b { max-width: 420px; overflow: hidden; font-size: .82rem; text-overflow: ellipsis; white-space: nowrap; }
.selected-work small { min-width: 0; max-width: 240px; overflow: hidden; color: #7b8797; font-size: .7rem; text-overflow: ellipsis; white-space: nowrap; }
.selected-works:empty { display: none; }
.file-manager { margin-top: 18px; padding-top: 13px; border-top: 1px solid #e8edf3; }
.file-manager-head { display: flex; align-items: center; justify-content: flex-start; gap: 8px; flex-wrap: wrap; }
.file-manager-head>b { margin-right: auto; font-size: 1rem; }
.file-manager-head #addEventFiles,.file-manager-head #addEventUrl { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-width: 148px; height: 40px; margin: 0; padding: 0 14px; border-radius: 11px; font-size: .78rem; font-weight: 650; white-space: nowrap; }
.event-file-drop-hint { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; min-height:74px; margin-top:10px; padding:12px; border:2px dashed #c9d8ea; border-radius:13px; background:#f8fbff; color:#475467; text-align:center; transition:border-color .18s ease,background-color .18s ease,box-shadow .18s ease; }
.event-file-drop-hint b { color:#344054; font-size:.84rem; }
.event-file-drop-hint span { color:#7b8798; font-size:.72rem; }
.file-manager.is-dragover .event-file-drop-hint { border-color:#2477d4; background:#eaf3ff; box-shadow:0 0 0 4px rgb(36 119 212 / 12%); }
.file-manager.is-uploading .event-file-drop-hint { border-style:solid; border-color:#8fb8e8; background:#eef6ff; }
.event-url-dialog { width:min(520px,calc(100vw - 24px)); }
.event-url-dialog form { display:grid; gap:14px; }
.event-url-dialog label { display:grid; gap:7px; color:#344054; font-weight:700; }
.event-url-dialog input { width:100%; }
.detail-files { display: flex; flex-direction: column; gap: 7px; margin-top: 9px; }
.detail-file { display: grid; grid-template-columns: 34px minmax(0,1fr); gap: 10px; align-items: center; padding: 9px 10px; border: 1px solid #e7edf3; border-radius: 12px; background: #f7f9fb; }
.detail-file-summary { grid-template-columns:minmax(0,1fr); }
.detail-file-rank { display:block; flex:0 0 auto; overflow:visible!important; color:#344054; font-size:.82rem; font-weight:800; font-variant-numeric:tabular-nums; }
.detail-file-icon { display: inline-grid; place-items: center; width: 34px; height: 34px; flex: 0 0 auto; border-radius: 10px; background: #eaf3ff; color: #2477d4; }
.detail-file-icon.web { background: #e9f8f4; color: #16835b; }
.detail-file-icon svg { width: 19px; height: 19px; }
.file-manager-head .detail-file-icon { width: 20px; height: 20px; border-radius: 0; background: transparent; color: currentColor; }
.file-manager-head .detail-file-icon svg { width: 18px; height: 18px; }
.detail-file-main { min-width: 0; }
.detail-file-main a,.detail-file-main span { display: block; overflow: hidden; color: #344054; text-decoration: none; text-overflow: ellipsis; white-space: nowrap; }
.detail-file-main a:hover,.detail-file-main a:focus-visible { text-decoration: none; color: #185fae; }
.detail-file-main small { display: block; margin-top: 2px; color: #98a2b3; font-size: .72rem; }
.detail-file-top { display:flex; align-items:center; justify-content:space-between; gap:12px; min-width:0; }
.detail-file-top .detail-file-name { flex:1 1 auto; min-width:0; }
.detail-file-summary .detail-file-name { font-weight:800; }
.detail-file-type { flex:0 0 auto; padding:4px 9px; border-radius:999px; background:#e9f2ff; color:#185fae; font-size:.68rem; font-weight:800; line-height:1.2; }
.detail-file-type.link { background:#e8f8ef; color:#16835b; }
.detail-file-meta { margin-top:5px!important; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.editable-file { grid-template-columns:34px minmax(0,1fr) auto; }
.file-row-actions { display:flex; align-items:center; gap:5px; }
.file-row-action { display:grid; place-items:center; width:36px; height:36px; padding:0; border:1px solid #dce5ef; border-radius:10px; background:#fff; color:#526174; cursor:pointer; }
.file-row-action:hover { border-color:#9ec5f2; background:#edf5ff; color:#185fae; }
.file-row-action:focus-visible { outline:3px solid rgba(36,119,212,.2); outline-offset:1px; }
.file-row-action.trash:hover,.file-row-action.trash.armed { border-color:#f0aaa4; background:#fff1f0; color:#b42318; }
.file-row-action svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.file-rename-input { width:100%; min-width:0; height:38px; margin:0!important; padding:7px 9px!important; border-radius:9px!important; font-size:.86rem!important; }
@media(max-width:520px){.editable-file{grid-template-columns:34px minmax(0,1fr)}.file-row-actions{grid-column:2;justify-content:flex-end}.file-row-action{width:40px;height:40px}}
@media(max-width:520px){.detail-file-summary{grid-template-columns:minmax(0,1fr)}.detail-file-top{gap:8px}.detail-file-rank{font-size:.78rem}}
#calendarEventForm .dialog-actions { position: sticky; bottom: -24px; padding: 12px 0 calc(4px + env(safe-area-inset-bottom)); background: linear-gradient(180deg,rgba(255,255,255,0),rgba(255,255,255,.98) 28%); }
@media (max-width:760px) { .event-editor-dialog { width: calc(100vw - 12px); max-width: calc(100vw - 12px); max-height: calc(100dvh - 12px); border-radius: 20px; } .event-editor-dialog form { padding: 16px; max-height: calc(100dvh - 12px); } .selected-people { flex-direction: column; } .selected-person { width: 100%; border-radius: 14px; } .file-manager-head>b { width: 100%; margin-right: 0; } .file-manager-head #addEventFiles,.file-manager-head #addEventUrl { flex: 1; min-width: 0; } #calendarEventForm .dialog-actions { bottom: -16px; } }
@media (max-width:600px) {
  #calendarEventForm .form-grid { grid-template-columns:minmax(0,1fr); gap:10px; width:100%; min-width:0; }
  #calendarEventForm .form-grid>label { width:100%; min-width:0; max-width:100%; }
  #calendarEventForm .form-grid input[type="date"],#calendarEventForm .form-grid input[type="time"] { box-sizing:border-box; width:100%; min-width:0; min-inline-size:0; max-width:100%; max-inline-size:100%; }
}
.calendar-detail-dialog { width: min(760px,calc(100vw - 24px)); }
#calendarDetailSource { min-height: 18px; margin-bottom: 3px; color: color-mix(in srgb,var(--chip-color,#64748b) 82%,#172033); font-size: .74rem; font-weight: 650; }
#calendarDetailTitle { margin-bottom: 18px; color: #1d2939; line-height: 1.35; }
#calendarDetailBody { display: grid; grid-template-columns: 132px minmax(0,1fr); gap: 13px 18px; align-items: start; }
#calendarDetailBody>div:not(.msh-files-row):not(.event-email-block):not(.msh-date-hero) { display: contents; }
#calendarDetailBody>div:not(.msh-files-row):not(.event-email-block):not(.msh-date-hero)>b { grid-column: 1; margin: 0; color: #667085; font-size: .82rem; }
#calendarDetailBody>div:not(.msh-files-row):not(.event-email-block):not(.msh-date-hero)>span,#calendarDetailBody>div:not(.msh-files-row):not(.event-email-block):not(.msh-date-hero)>a { grid-column: 2; min-width: 0; color: #344054; overflow-wrap: anywhere; }
.msh-date-hero { grid-column: 1/-1; display: grid; grid-template-columns: 44px minmax(0,1fr); gap: 12px; align-items: center; padding: 13px 15px; border: 1px solid #dce8f5; border-radius: 16px; background: linear-gradient(135deg,#f1f7ff,#f8fbff); }
.msh-date-hero-icon { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 12px; background: #e1efff; color: #2477d4; }
.msh-date-hero-copy { display: flex; flex-direction: column; min-width: 0; }
.msh-date-hero-copy b { color: #27364c; font-size: .92rem; }
.msh-date-hero-copy small { margin-top: 2px; color: #667085; }
#calendarDetailBody .msh-responsible-block.full-row { display: contents; }
#calendarDetailBody .msh-responsible-block.full-row>b { grid-column: 1; color: #667085; font-size: .82rem; }
#calendarDetailBody .detail-people { grid-column: 2; display: flex; flex-wrap: wrap; gap: 7px; min-width: 0; }
.detail-person { display: inline-flex; align-items: center; gap: 7px; max-width: 100%; padding: 5px 9px 5px 5px; border: 1px solid #dce4ed; border-radius: 999px; background: #fff; }
.detail-person-rank { display:block; width:auto; height:auto; flex:0 0 auto; border-radius:0; background:transparent; color:#526174; font-size:.76rem; font-weight:800; font-variant-numeric:tabular-nums; }
.detail-person .avatar { width: 34px; height: 34px; margin: 0; flex: 0 0 auto; }
.detail-person>span:last-child { overflow: hidden; font-size: .78rem; text-overflow: ellipsis; white-space: nowrap; }
#calendarDetailBody .msh-files-row,#calendarDetailBody .event-email-block { grid-column: 1/-1; display: block; width: 100%; }
#calendarDetailBody .msh-files-title { display: block; margin: 5px 0 8px; color: #344054; }
#calendarDetailBody .event-email-block { margin-top: 4px; padding: 14px; border: 1px solid #e2e8f0; border-radius: 16px; background: linear-gradient(180deg,#fbfdff,#f8fafc); }
@media(max-width:700px){#calendarDetailBody{grid-template-columns:1fr;gap:10px}#calendarDetailBody>div:not(.msh-files-row):not(.event-email-block):not(.msh-date-hero)>b,#calendarDetailBody>div:not(.msh-files-row):not(.event-email-block):not(.msh-date-hero)>span,#calendarDetailBody>div:not(.msh-files-row):not(.event-email-block):not(.msh-date-hero)>a,#calendarDetailBody .msh-responsible-block.full-row>b,#calendarDetailBody .detail-people{grid-column:1}.calendar-detail-wrap{padding:16px}.detail-person{width:100%;border-radius:13px}.event-communication-actions{grid-template-columns:1fr}}

/* Event detail — one-column reading flow with communication below. */
.calendar-detail-dialog { width:min(1180px,calc(100vw - 24px)); height:auto!important; max-height:calc(100dvh - 24px); overflow:hidden; }
.calendar-detail-dialog[open] { inset:50% auto auto 50%!important; margin:0; transform:translate(-50%,-50%); }
.calendar-detail-wrap { display:flex; flex-direction:column; height:auto!important; max-height:calc(100dvh - 24px); padding:24px; overflow:hidden; }
.calendar-detail-wrap>.dialog-head { flex:0 0 auto; }
#calendarDetailTitle { margin-bottom:14px; line-height:1.3; }
.calendar-detail-title-row { display:flex; align-items:baseline; flex-wrap:wrap; gap:8px 10px; min-width:0; }
.calendar-detail-title-row #calendarDetailTitle { min-width:0; margin:0; overflow-wrap:anywhere; }
.detail-calendar-badge { display:inline-flex; align-items:center; gap:6px; width:max-content; max-width:min(100%,360px); margin-bottom:8px; padding:0; border:0; border-radius:0; background:transparent; color:color-mix(in srgb,var(--chip-color,#64748b) 82%,#172033); font-size:.78rem; font-weight:750; line-height:1.3; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.calendar-detail-title-row .detail-calendar-badge { flex:0 1 auto; margin:0; }
#calendarEventDialog #calendarDetailBody { display:grid!important; grid-template-columns:minmax(0,1fr)!important; gap:16px!important; min-height:0; overflow:auto; align-items:start; }
body.msh-calendar-route #calendarEventDialog #calendarDetailBody>.event-detail-main { display:flex!important; flex-direction:column; align-items:stretch; width:100%; gap:12px; min-width:0; }
#calendarDetailBody>.event-detail-side { display:block; min-width:0; height:auto; padding:16px 0 0; border-top:1px solid #dce5ef; }
.event-detail-facts { display:grid; width:100%; gap:12px; min-width:0; }
.event-detail-section { min-width:0; padding:0; border:0; border-radius:0; background:transparent; }
.event-detail-section-head { display:grid; grid-template-columns:44px minmax(0,1fr) auto; align-items:center; gap:12px; padding:12px 0; border-bottom:1px solid #e5ebf2; }
.event-detail-section-title { display:contents; }
.event-detail-section-title .detail-file-icon { width:36px; height:36px; flex:0 0 36px; border-radius:10px; }
.event-detail-section-title .detail-file-icon svg { width:20px; height:20px; }
.event-detail-section-head h3 { margin:0; color:#475467; font-size:.84rem; font-weight:700; line-height:1.35; }
.event-detail-section-head small { color:#667085; font-size:.78rem; font-weight:650; white-space:nowrap; }
#calendarDetailBody .event-detail-fact,#calendarDetailBody .event-detail-section>.msh-files-row { display:grid!important; grid-template-columns:44px minmax(0,1fr)!important; gap:12px!important; align-items:center!important; padding:12px 0; border-bottom:1px solid #e5ebf2; }
#calendarDetailBody .event-detail-fact.msh-date-hero { border:0; border-bottom:1px solid #e5ebf2; border-radius:0; background:#fff; }
.event-detail-section>*:last-child { border-bottom:0!important; }
#calendarDetailBody .event-detail-fact-label { display:grid; place-items:center; width:36px; height:36px; margin:0; border-radius:10px; background:#edf5ff; color:#2477d4; }
#calendarDetailBody .event-detail-fact-label .detail-file-icon { width:36px; height:36px; border-radius:10px; background:transparent; color:inherit; }
#calendarDetailBody .event-detail-fact-label .detail-file-icon svg { width:20px; height:20px; }
#calendarEventDialog .event-detail-fact-label,#calendarEventDialog .event-detail-fact-label .detail-file-icon,#calendarEventDialog .event-detail-section-title .detail-file-icon { background:#edf5ff; color:#2477d4; }
#calendarDetailBody .event-detail-section .msh-files-title { margin:0!important; color:#526174!important; font-size:.86rem!important; }
#calendarDetailBody .event-detail-fact>span,#calendarDetailBody .event-detail-fact>a { min-width:0; color:#344054; overflow-wrap:anywhere; }
#calendarDetailBody .event-detail-fact-value { padding-left:0!important; }
#calendarDetailBody .event-detail-fact.works>span { white-space:pre-line; }
#calendarDetailBody .event-detail-fact.location>.event-detail-fact-value,
#calendarDetailBody .event-detail-fact.works>.event-detail-fact-value { font-size:.95rem; font-weight:400; line-height:1.55; }
#calendarDetailBody .event-detail-fact.location>.event-location-link { color:#185fae; font-weight:700; text-decoration:none; }
#calendarDetailBody .event-detail-fact.location>.event-location-link:hover,#calendarDetailBody .event-detail-fact.location>.event-location-link:focus-visible { color:#124f91; text-decoration:underline; }
.msh-date-hero-line { display:flex; align-items:center; gap:14px; min-width:0; }
.msh-date-value { display:flex; align-items:center; min-width:0; color:#253858; font-size:1rem; font-weight:750; line-height:1.45; }
.msh-date-value .detail-file-icon { width:34px; height:34px; flex:0 0 34px; margin-right:8px; border-radius:10px; }
.msh-date-value .detail-file-icon svg { width:19px; height:19px; }
#calendarDetailBody .msh-date-part .weekday-badge { min-width:34px; height:34px; border-radius:10px; }
.msh-date-range,.msh-date-part { display:inline-flex; align-items:center; gap:8px; min-width:0; }
.msh-date-range { flex-wrap:wrap; column-gap:10px; }
.msh-date-part { white-space:nowrap; }
.msh-calendar-date { color:#253858; font-weight:750; white-space:nowrap; }
.msh-date-to { color:#667085; font-size:.8rem; font-weight:700; white-space:nowrap; }
.detail-relative-day { font-size:.9rem; font-weight:650; }
#calendarDetailBody .event-detail-section>.msh-files-row.no-title { grid-template-columns:minmax(0,1fr)!important; }
.event-google-calendar-action { display:flex; align-items:center; gap:12px; min-height:58px; padding:10px 14px; border:1px solid #d7e5f5; border-radius:16px; background:#fff; color:#185fae; font-size:.94rem; font-weight:750; text-decoration:none; }
.event-google-calendar-action:hover { border-color:#9ec5f2; background:#f5f9ff; text-decoration:none; }
.event-google-calendar-action:focus-visible { outline:3px solid rgba(36,119,212,.22); outline-offset:2px; }
.event-google-calendar-action img { width:34px; height:34px; object-fit:contain; }
.event-google-calendar-arrow { margin-left:auto; font-size:1.15rem; }
#calendarDetailBody .event-detail-facts .detail-people { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2px 12px; min-width:0; max-height:190px; padding:6px 0 3px 56px; overflow:auto; overscroll-behavior:contain; }
#calendarDetailBody .event-detail-facts .detail-person { display:inline-flex; width:100%; min-width:0; max-width:none; gap:10px; padding:4px 0; border:0; border-radius:0; background:transparent; }
#calendarDetailBody .event-detail-facts .detail-person-rank { width:18px; flex-basis:18px; text-align:left; }
#calendarDetailBody .event-detail-facts .detail-person>span:last-child { font-size:.86rem; }
#calendarDetailBody .event-detail-section>.msh-files-row { width:100%; }
#calendarDetailBody .event-detail-section>.msh-files-row.no-title { padding:6px 0 3px 56px!important; }
#calendarDetailBody .event-detail-section>.msh-files-row .detail-files { display:grid; grid-template-columns:minmax(0,1fr); gap:2px; max-height:240px; margin:0; overflow:auto; overscroll-behavior:contain; }
#calendarDetailBody .event-detail-section .event-email-empty { min-height:0; padding:0; }
#calendarDetailBody .event-detail-facts .detail-file { min-width:0; padding:4px 0; border:0; border-radius:0; background:transparent; }
#calendarDetailBody .event-detail-facts .detail-file-top { display:grid; grid-template-columns:18px minmax(0,1fr) auto; gap:10px; }
#calendarDetailBody .event-detail-facts .detail-file-meta { padding-left:28px; }
#calendarDetailBody>.event-detail-side .event-email-block { display:block!important; width:100%; margin:0; padding:0; border:0; background:transparent; }
.event-detail-side .event-communication-head { display:flex!important; align-items:center; justify-content:flex-start; gap:12px; margin:0; }
.event-detail-side .event-communication-head>b { color:#475467!important; font-size:.84rem!important; font-weight:700!important; }
.event-detail-side .event-communication-head small { display:block; }
.event-detail-side .event-communication-actions { display:flex; grid-template-columns:none; gap:8px; margin-left:0; }
.event-detail-side .event-communication-action { display:grid; place-items:center; flex:0 0 42px; width:42px!important; min-width:42px!important; max-width:42px; height:42px; min-height:42px; padding:0; border-radius:11px; }
.event-detail-side .event-communication-action.email { border:1px solid #bfd8f5; background:#edf6ff; color:#1769c2; }
.event-detail-side .event-communication-action.line { border:1px solid #abe4c3; background:#effbf4; color:#06a747; }
.event-detail-side .event-communication-icon { display:grid; place-items:center; width:23px; height:23px; border-radius:0; background:transparent; }
.event-detail-side .event-communication-icon svg { width:22px; height:22px; }
.event-detail-side .line-brand-icon img { display:block; width:23px; height:23px; }
.event-detail-side .event-line-section { margin-top:10px; padding-top:0; border-top:0; }
.event-detail-side .event-line-section-label { display:none; }
@media(max-width:1040px) and (min-width:801px){#calendarDetailBody .event-detail-facts .detail-people{grid-template-columns:repeat(2,minmax(0,1fr))}}
.event-email-recipient-dialog { width:min(680px,calc(100vw - 32px)); max-width:680px; max-height:calc(100dvh - 32px); margin:auto; padding:0; border:1px solid #d7e3ef; border-radius:22px; background:#fff; box-shadow:0 24px 70px rgba(23,32,51,.24); overflow:hidden; color:#172033; }
.event-email-recipient-dialog[open] { inset:50% auto auto 50%!important; transform:translate(-50%,-50%); }
.event-email-recipient-dialog::backdrop { background:rgba(23,32,51,.5); backdrop-filter:blur(3px); }
.event-email-recipient-dialog .event-email-panel { display:flex; flex-direction:column; width:100%; max-height:calc(100dvh - 34px); margin:0; padding:0; border:0; border-radius:0; background:#fff; }
.event-email-recipient-dialog .event-email-panel-head { display:grid; grid-template-columns:minmax(0,1fr) auto 42px; align-items:center; gap:12px; padding:20px 22px; border-bottom:1px solid #e2e8f0; background:#fff; }
.event-email-panel-heading { display:flex; align-items:center; gap:12px; min-width:0; }
.event-email-heading-icon { display:grid; place-items:center; flex:0 0 44px; width:44px; height:44px; border-radius:13px; background:#eaf3ff; color:#185fae; font-size:20px; }
.event-email-recipient-dialog .event-email-panel-head b { color:#172033!important; font-size:1.05rem!important; }
.event-email-recipient-dialog .event-email-panel-head small { margin-top:3px; color:#667085; font-size:.78rem; }
.event-email-recipient-dialog .event-email-count { padding:6px 10px; border-radius:999px; background:#eaf3ff; color:#185fae; font-size:.76rem; font-weight:700; white-space:nowrap; }
.event-email-close { width:42px; height:42px; min-width:42px; border-radius:13px; }
.event-email-panel-body { display:flex; flex:1 1 auto; flex-direction:column; min-height:0; padding:18px 22px 12px; overflow:hidden; }
.event-email-recipient-dialog .event-email-presets { flex:0 0 auto; margin:0 0 12px; }
.event-email-search-wrap { position:relative; flex:0 0 auto; }
.event-email-recipient-dialog #eventEmailSearch { width:100%; min-height:48px; margin:0; padding-right:48px; }
.event-email-search-clear { position:absolute; top:50%; right:7px; display:grid; place-items:center; width:36px; height:36px; padding:0; border:0; border-radius:10px; background:transparent; color:#667085; cursor:pointer; transform:translateY(-50%); }
.event-email-search-clear:hover { background:#eef4fb; color:#172033; }
.event-email-search-clear:focus-visible { outline:3px solid rgba(36,119,212,.2); outline-offset:1px; }
.event-email-search-clear[hidden] { display:none; }
.event-email-recipient-dialog .event-email-recipient-list { flex:1 1 auto; min-height:230px; max-height:min(48dvh,440px); margin-top:12px; padding-right:4px; overflow-y:auto; overscroll-behavior:contain; scrollbar-gutter:stable; }
.event-email-recipient-dialog .event-email-person { min-height:72px; }
.event-email-recipient-dialog .event-email-status { flex:0 0 auto; margin:10px 0 0; }
.event-email-recipient-dialog .event-email-footer { flex:0 0 auto; margin:0; padding:14px 22px calc(14px + env(safe-area-inset-bottom)); border-top:1px solid #e2e8f0; background:#fff; box-shadow:0 -8px 22px rgba(52,64,84,.04); }
.event-email-recipient-dialog .event-email-footer button { min-height:46px; border-radius:13px; }
.calendar-detail-wrap>.dialog-actions { flex:0 0 auto; margin:14px -24px -24px; padding:14px 24px; border-top:1px solid #e2e8f0; background:#fff; }
.event-google-calendar-footer { display:grid; place-items:center; width:48px; height:48px; padding:8px; border:1px solid #d7e5f5; border-radius:14px; background:#fff; }
.event-google-calendar-footer[hidden] { display:none; }
.event-google-calendar-footer:hover { border-color:#9ec5f2; background:#f3f8fe; }
.event-google-calendar-footer:focus-visible { outline:3px solid rgba(36,119,212,.22); outline-offset:2px; }
.event-google-calendar-footer img { width:32px; height:32px; object-fit:contain; }
.copy-primary-action { min-height:48px; color:#185fae; font-weight:750; }
#calendarSourceWarning.source-warning { display:flex; align-items:center; justify-content:space-between; gap:14px; margin:0 0 14px; padding:13px 14px; border:1px solid #f3c77b; border-radius:14px; background:#fff8e8; color:#7a4b00; }
#calendarSourceWarning.source-warning[hidden] { display:none; }
#calendarSourceWarning.source-warning>span { display:grid; gap:3px; min-width:0; }
#calendarSourceWarning.source-warning b { color:inherit; font-size:.9rem; }
#calendarSourceWarning.source-warning small { color:#825b1b; font-size:.78rem; line-height:1.45; }
#calendarSourceWarning.source-warning.checking { justify-content:flex-start; border-color:#cfe0f4; background:#f5f9ff; color:#526174; }
#calendarSourceWarning.source-warning.error { display:grid; justify-content:stretch; border-color:#f0b8b3; background:#fff4f2; color:#b42318; }
.source-warning-action { flex:0 0 auto; min-height:42px; padding:8px 13px; border:1px solid #c47b00; border-radius:11px; background:#fff; color:#875500; font-weight:750; cursor:pointer; }
.source-warning-action:hover { background:#fff1cc; }
.source-warning-action:focus-visible { outline:3px solid rgba(196,123,0,.24); outline-offset:2px; }
.source-warning-action[disabled] { cursor:wait; opacity:.68; }
@media(max-width:800px){
  .calendar-detail-dialog{width:calc(100vw - 12px);max-width:calc(100vw - 12px);max-height:calc(100dvh - 12px);border-radius:24px}
  .calendar-detail-wrap{max-height:calc(100dvh - 12px);padding:18px 16px 16px}
  .calendar-detail-wrap>.dialog-head{align-items:flex-start;gap:12px;margin-bottom:14px}
  #calendarDetailSource{margin:0 0 5px;color:#7b8798;font-size:.7rem;letter-spacing:.01em}
  #calendarDetailSource.detail-calendar-badge{margin:0;padding:0;color:color-mix(in srgb,var(--chip-color,#64748b) 82%,#172033);font-size:.72rem}
  #calendarDetailTitle{margin:0;color:#172033;font-size:clamp(1.28rem,6vw,1.58rem);line-height:1.32}
  .calendar-detail-wrap>.dialog-head .icon{width:42px;height:42px;min-width:42px;border:1px solid #cfe2f8;border-radius:14px;background:#f3f8fe;color:#2477d4}
  #calendarSourceWarning.source-warning{align-items:stretch;flex-direction:column;padding:12px}
  .source-warning-action{width:100%;min-height:46px}
  #calendarEventDialog #calendarDetailBody{grid-template-columns:1fr!important;gap:14px!important}
  #calendarDetailBody .event-detail-main{gap:10px!important}
  #calendarDetailBody .event-detail-main .msh-date-hero{grid-template-columns:40px minmax(0,1fr)!important}
  #calendarDetailBody .msh-date-hero-line{gap:7px;flex-wrap:wrap}
  #calendarDetailBody .msh-date-value{font-size:.9rem;white-space:normal}
  #calendarDetailBody .msh-date-value .detail-file-icon{width:24px;height:24px;flex-basis:24px;margin-right:4px;border-radius:8px}
  #calendarDetailBody .msh-date-part .weekday-badge{min-width:24px;height:24px;border-radius:8px}
  #calendarDetailBody .msh-date-range{gap:7px}
  #calendarDetailBody .msh-date-part{gap:6px}
  #calendarDetailBody .msh-calendar-date{font-size:.88rem}
  #calendarDetailBody .event-detail-facts{display:grid;gap:10px}
  #calendarDetailBody>.event-detail-side{order:2;height:auto;padding:14px 0 0;border-top:1px solid #dce5ef}
  #calendarDetailBody .event-detail-section{padding:0;border:0;border-radius:0;background:transparent}
  #calendarDetailBody .event-detail-section-head{grid-template-columns:40px minmax(0,1fr) auto;gap:10px;padding:10px 0}
  #calendarDetailBody .event-detail-section-head h3{font-size:.84rem}
  #calendarDetailBody .event-detail-fact,#calendarDetailBody .event-detail-section>.msh-files-row{display:grid!important;grid-template-columns:40px minmax(0,1fr)!important;gap:10px!important;align-items:center!important;padding:10px 0;border:0!important;border-bottom:1px solid #e8edf3!important;border-radius:0;background:transparent}
  #calendarDetailBody .event-detail-section>*:last-child{border-bottom:0!important}
  #calendarDetailBody .event-detail-section .msh-files-title{width:auto;margin:0!important;color:#526174!important;font-size:.82rem!important;font-weight:700;line-height:1.45}
  #calendarDetailBody .event-detail-fact>span,#calendarDetailBody .event-detail-fact>a{font-size:.94rem;line-height:1.5}
  #calendarDetailBody .event-detail-fact-label,#calendarDetailBody .event-detail-fact-label .detail-file-icon{width:34px;height:34px}
  #calendarDetailBody .event-detail-fact-label .detail-file-icon svg{width:18px;height:18px}
  #calendarDetailBody .event-detail-facts .detail-people{display:grid;grid-template-columns:1fr;gap:2px;max-height:180px;padding:5px 0 3px 50px}
  #calendarDetailBody .event-detail-facts .detail-person{width:100%;max-width:none;padding:5px 0;border:0;border-radius:0;background:transparent}
  #calendarDetailBody .event-detail-facts .detail-person .avatar{width:36px;height:36px}
  #calendarDetailBody .event-detail-facts .detail-person-rank{width:18px;height:auto;flex-basis:18px;text-align:left}
  #calendarDetailBody .event-detail-facts .detail-person>span:last-child{font-size:.9rem}
  #calendarDetailBody .event-detail-section>.msh-files-row.no-title{padding:5px 0 3px 50px!important}
  #calendarDetailBody .event-detail-section>.msh-files-row .detail-files{grid-template-columns:1fr;gap:2px;max-height:180px}
  #calendarDetailBody .event-detail-section>.msh-files-row .event-email-empty{padding:0;color:#98a2b3;text-align:left}
  .event-email-recipient-dialog{width:100%;max-width:none;max-height:calc(100dvh - max(12px,env(safe-area-inset-top)));margin:auto 0 0;border-width:1px 0 0;border-radius:22px 22px 0 0}
  .event-email-recipient-dialog[open]{inset:auto 0 0 0!important;transform:none}
  .event-email-recipient-dialog .event-email-panel{max-height:calc(100dvh - max(12px,env(safe-area-inset-top)))}
  .event-email-recipient-dialog .event-email-panel-head{grid-template-columns:minmax(0,1fr) 42px;padding:16px}
  .event-email-recipient-dialog .event-email-panel-heading{gap:10px}
  .event-email-recipient-dialog .event-email-heading-icon{width:40px;height:40px;flex-basis:40px;border-radius:12px}
  .event-email-recipient-dialog .event-email-count{grid-column:1/-1;grid-row:2;justify-self:start;margin-top:-2px}
  .event-email-close{grid-column:2;grid-row:1}
  .event-email-panel-body{padding:14px 16px 10px}
  .event-email-recipient-dialog .event-email-presets{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
  .event-email-recipient-dialog .event-email-presets button{flex:1 1 auto;min-height:42px;padding-inline:12px}
  .event-email-recipient-dialog .event-email-recipient-list{min-height:180px;max-height:none}
  .event-email-recipient-dialog .event-email-person{min-height:76px}
  .event-email-recipient-dialog .event-email-footer{display:grid;grid-template-columns:minmax(96px,.55fr) minmax(150px,1fr);gap:10px;padding:12px 16px calc(12px + env(safe-area-inset-bottom))}
  .event-email-recipient-dialog .event-email-footer button{width:100%}
  .calendar-detail-wrap>.dialog-actions{gap:8px;margin:14px -16px -16px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));box-shadow:0 -8px 24px rgba(52,64,84,.05)}
  .calendar-detail-wrap>.dialog-actions button{min-height:46px;border-radius:14px}
  .calendar-detail-wrap>.dialog-actions .primary{flex:1}
  .calendar-detail-wrap>.dialog-actions .copy-primary-action{order:2;flex:1 1 100%}
  .event-calendar-controls{grid-template-columns:1fr;padding:12px}
  .event-calendar-controls>small{grid-column:1}
}

/* Event bars share the day grid, so a multi-day segment spans real date columns. */
#calendarGrid > .calendar-event-span {
  position: relative;
  z-index: 1;
  align-self: start;
  width: auto;
  height: 32px;
  min-height: 32px;
  margin: calc(44px + var(--event-lane) * 36px) 5px 4px !important;
  border-radius: 7px;
  background: color-mix(in srgb, var(--event-color, #8b5cf6) 22%, white);
}
#calendarGrid > .calendar-event-span.continues-before { margin-left: 0 !important; border-top-left-radius: 0; border-bottom-left-radius: 0; }
#calendarGrid > .calendar-event-span.continues-after { margin-right: 0 !important; border-top-right-radius: 0; border-bottom-right-radius: 0; }
