/* === Day detail panel (popover / bottom sheet) */ /* Блокировка фона при открытом bottom sheet: прокрутка и свайпы отключены */ body.day-detail-sheet-open { position: fixed; left: 0; right: 0; overflow: hidden; } .day-detail-overlay { position: fixed; inset: 0; z-index: 999; background: rgba(0, 0, 0, 0.4); -webkit-tap-highlight-color: transparent; opacity: 0; pointer-events: none; transition: opacity var(--transition-normal) ease-out; } .day-detail-overlay.day-detail-overlay--visible { opacity: 1; pointer-events: auto; } .day-detail-panel { position: fixed; z-index: 1000; max-width: min(360px, calc(100vw - 24px)); max-height: 70vh; overflow: auto; background: var(--surface); color: var(--text); border-radius: 12px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35); padding: 12px 16px; padding-top: 36px; } .day-detail-panel--sheet { left: 0; right: 0; bottom: 0; top: auto; width: 100%; max-width: none; max-height: 70vh; border-radius: 16px 16px 0 0; padding-top: 12px; padding-left: 16px; padding-right: 16px; /* Комфортный отступ снизу: safe area + дополнительное поле */ padding-bottom: calc(24px + env(safe-area-inset-bottom, 0px)); transform: translateY(100%); transition: transform var(--transition-normal) var(--ease-out); } .day-detail-panel--sheet.day-detail-panel--open { transform: translateY(0); } .day-detail-panel--sheet::before { content: ""; display: block; width: 40px; height: 4px; margin: 0 auto 8px; background: color-mix(in srgb, var(--muted) 80%, var(--text)); border-radius: 2px; } .day-detail-close { position: absolute; top: 8px; right: 8px; width: 32px; height: 32px; padding: 0; border: none; background: transparent; color: var(--muted); line-height: 1; cursor: pointer; border-radius: 8px; display: inline-flex; align-items: center; justify-content: center; transition: opacity var(--transition-fast), background-color var(--transition-fast); } .day-detail-close svg { display: block; } .day-detail-close:focus { outline: none; } .day-detail-close:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; } .day-detail-close:hover { color: var(--text); background: color-mix(in srgb, var(--muted) 25%, transparent); } .day-detail-title { margin: 0 0 12px 0; font-size: 1.1rem; font-weight: 600; } .day-detail-sections { display: flex; flex-direction: column; gap: 12px; } .day-detail-section-title { margin: 0 0 4px 0; font-size: 0.8rem; font-weight: 600; color: var(--muted); } .day-detail-section--duty .day-detail-section-title { color: var(--duty); } .day-detail-section--unavailable .day-detail-section-title { color: var(--unavailable); } .day-detail-section--vacation .day-detail-section-title { color: var(--vacation); } .day-detail-section--events .day-detail-section-title { color: var(--accent); } .day-detail-list { margin: 0; padding-left: 1.2em; font-size: 0.9rem; line-height: 1.45; } .day-detail-list li { margin-bottom: 2px; } .day-detail-time { color: var(--muted); } /* Contact info: phone (tel:) and Telegram username links in day detail */ .day-detail-contact-row { margin-top: 4px; font-size: 0.85rem; color: var(--muted); } .day-detail-contact { display: inline-block; margin-right: 0.75em; } .day-detail-contact:last-child { margin-right: 0; } .day-detail-contact-link, .day-detail-contact-phone, .day-detail-contact-username { color: var(--accent); text-decoration: none; } .day-detail-contact-link:hover, .day-detail-contact-phone:hover, .day-detail-contact-username:hover { text-decoration: underline; } .day-detail-contact-link:focus, .day-detail-contact-phone:focus, .day-detail-contact-username:focus { outline: none; } .day-detail-contact-link:focus-visible, .day-detail-contact-phone:focus-visible, .day-detail-contact-username:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; } .info-btn { position: absolute; top: 0; right: 0; width: 22px; height: 22px; padding: 0; border: none; background: var(--accent); color: var(--bg); font-size: 0.7rem; font-weight: 700; line-height: 1; cursor: pointer; display: inline-flex; align-items: flex-start; justify-content: flex-end; flex-shrink: 0; clip-path: path("M 0 0 L 14 0 Q 22 0 22 8 L 22 22 Z"); padding: 2px 3px 0 0; } .info-btn:active { opacity: 0.9; } .day-markers { display: flex; flex-direction: row; flex-wrap: nowrap; justify-content: center; gap: 2px; align-items: center; margin-top: 2px; min-width: 0; }