/** * rightbar-calendar-fullcalendar.css * Стили для календаря в правой панели (FullCalendar + недельная лента) */ /* ───────────────────────────────────────────────────────────── БАЗА КАЛЕНДАРЯ ────────────────────────────────────────────────────────────── */ .calendar-wrap { min-height: 360px; border-radius: 10px; overflow: hidden; background: var(--bs-body-bg); box-shadow: inset 0 1px 3px color-mix(in srgb, var(--bs-body-color), transparent 92%); border: 0; } .rightbar-card { height: 100%; display: flex; flex-direction: column; border-radius: 16px; overflow: hidden; border: 1px solid color-mix(in srgb, var(--bs-border-color), transparent 10%); background: var(--bs-body-bg); box-shadow: 0 1px 2px rgba(0,0,0,.04), 0 8px 24px rgba(0,0,0,.08); min-height: 0; } .rightbar-card .card-header { flex: 0 0 auto; background: var(--bs-tertiary-bg); border-bottom: 1px solid var(--bs-border-color); padding: var(--space-1) var(--space-2); } .rightbar-card .card-body { flex: 1 1 auto; min-height: 0; overflow-y: auto; -webkit-overflow-scrolling: touch; padding: .75rem; } @media (min-width: 992px) { .rightbar { position: sticky; top: var(--navbar-h); height: calc(100dvh - var(--navbar-h)); padding: 1rem 1rem 1rem .75rem; overflow: hidden; } } /* ───────────────────────────────────────────────────────────── FULLCALENDAR — КОМПАКТНО ────────────────────────────────────────────────────────────── */ .fc { font-size: 0.7rem; --fc-border-color: var(--bs-border-color); --fc-page-bg-color: transparent; --fc-neutral-bg-color: transparent; --fc-today-bg-color: color-mix(in srgb, var(--bs-primary), transparent 85%); --fc-event-bg-color: var(--bs-primary); --fc-event-border-color: var(--bs-primary); --fc-event-text-color: var(--bs-body-bg); } .fc-theme-standard .fc-scrollgrid { border: 0 !important; } .fc-theme-standard td, .fc-theme-standard th { border: 0 !important; } .fc .fc-toolbar { padding: var(--space-1) var(--space-2); background: var(--bs-tertiary-bg); border-bottom: 1px solid var(--bs-border-color); justify-content: space-between; } .fc .fc-toolbar-title { font-size: 1rem; font-weight: 600; color: var(--bs-body-color); } .fc .fc-button { border-radius: 8px; font-size: .82rem; padding: var(--space-1); background: transparent; border: none; color: var(--bs-primary); } .fc .fc-button:hover { background: rgba(var(--bs-primary-rgb), .1); } .fc .fc-daygrid-day-frame { padding: 2px 3px !important; } .fc .fc-daygrid-day-number { font-size: .82rem; width: 100%; height: 1.6rem; display: flex; align-items: center; justify-content: center; font-weight: 600; color: var(--bs-body-color); text-decoration: none !important; } .fc .fc-day-today { background: none !important; } .fc .fc-day-today .fc-daygrid-day-number { color: var(--bs-primary); font-weight: 700; border: 1px solid var(--bs-primary); border-radius: 50%; } .fc .fc-day-other .fc-daygrid-day-number { opacity: .4; } .fc .fc-daygrid-day-events { padding: 0 2px 2px !important; row-gap: 2px !important; } .fc .fc-daygrid-event-harness { margin: 0 0 2px 0 !important; } .fc .fc-daygrid-event .fc-event-time { display: none !important; } .fc .fc-daygrid-event { border-radius: 6px; padding: var(--space-1) !important; line-height: 1.02 !important; background: color-mix(in srgb, var(--bs-primary), var(--bs-body-bg) 75%); border: 1px solid color-mix(in srgb, var(--bs-primary), transparent 60%); color: var(--bs-body-color); } .fc .fc-daygrid-event .fc-event-title { font-size: .62rem !important; line-height: 1.02 !important; letter-spacing: -0.2px; font-weight: 600; font-family: "Arial Narrow","Roboto Condensed",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif; display: -webkit-box !important; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden !important; white-space: normal !important; text-overflow: ellipsis; max-height: calc(1.02em * 3); } /* ───────────────────────────────────────────────────────────── ВЕРТИКАЛЬНАЯ ЛЕНТА НЕДЕЛИ ────────────────────────────────────────────────────────────── */ .week-strip-header { margin-top: .6rem; display: flex; align-items: center; justify-content: space-between; color: var(--bs-secondary-color); font-size: .8rem; } .week-vertical { margin-top: .6rem; display: flex; flex-direction: column; gap: .4rem; } .week-vertical .week-row { display: grid; grid-template-columns: 56px 1fr; align-items: start; gap: var(--space-1); padding: var(--space-1); border-radius: 12px; background: color-mix(in srgb, var(--bs-primary), var(--bs-body-bg) 86%); border: 1px solid color-mix(in srgb, var(--bs-primary), transparent 70%); } .week-vertical .week-row:hover { background: color-mix(in srgb, var(--bs-primary), var(--bs-body-bg) 82%); } .date-badge { display: grid; place-items: center; border-radius: 10px; padding: .35rem .25rem; background: color-mix(in srgb, var(--bs-primary), var(--bs-body-bg) 92%); border: 1px solid color-mix(in srgb, var(--bs-primary), transparent 75%); text-align: center; line-height: 1.05; } .date-badge .dow { font-size: .7rem; font-weight: 700; color: var(--bs-primary); text-transform: uppercase; } .date-badge .md { font-size: .74rem; font-weight: 700; color: var(--bs-body-color); } .week-vertical .content .title { font-size: .8rem; font-weight: 600; color: var(--bs-body-color); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; text-overflow: ellipsis; white-space: normal; } .week-vertical .content .meta { margin-top: .15rem; font-size: .72rem; color: var(--bs-secondary-color); } /* ───────────────────────────────────────────────────────────── OFFCANVAS (МОБАЙЛ) ────────────────────────────────────────────────────────────── */ #rightbarOffcanvas { height: 100dvh; height: 100svh; } #rightbarOffcanvas .offcanvas-body { display: flex; flex-direction: column; gap: .6rem; height: calc(100dvh - var(--rb-offcanvas-head, 56px)); height: calc(100svh - var(--rb-offcanvas-head, 56px)); min-height: 0; overflow-y: auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; } #rightbarOffcanvas .calendar-wrap { flex: 0 0 auto; } #rightbarOffcanvas .week-vertical { flex: 0 0 auto; } /* Calendar FAB removed - now using navbar button */ /* .calendar-fab { position: fixed; right: 1rem; bottom: 1rem; z-index: 1060; width: 52px; height: 52px; border-radius: 9999px; box-shadow: 0 8px 24px rgba(0,0,0,.18); } */ /* ───────────────────────────────────────────────────────────── COLOR PICKER (PALETTE) ────────────────────────────────────────────────────────────── */ .color-swatch { width: 26px; height: 26px; border: 1px solid var(--bs-border-color); border-radius: 9999px; padding: 0; cursor: pointer; background: transparent; } .color-swatch.active { outline: 2px solid var(--bs-primary); outline-offset: 2px; } /* ───────────────────────────────────────────────────────────── EVENT DETAILS MODAL ────────────────────────────────────────────────────────────── */ .color-dot { width: 12px; height: 12px; border-radius: 9999px; display: inline-block; vertical-align: middle; margin-right: 6px; border: 1px solid #00000022; }