
.calendar-popup { position: fixed; top: calc(var(--topbar-height) + 8px); right: 18px; left: auto; width: min(298px, calc(100vw - 36px)); background: radial-gradient(circle at top, rgba(122, 244, 255, 0.14) 0%, rgba(122, 244, 255, 0) 48%), linear-gradient(180deg, rgba(4, 11, 24, 0.99) 0%, rgba(7, 14, 28, 0.96) 100%); color: #ffffff; border: 1px solid rgba(117, 226, 255, 0.22); clip-path: polygon(18px 0, calc(100% - 18px) 0, 100% 18px, 100% calc(100% - 18px), calc(100% - 18px) 100%, 18px 100%, 0 calc(100% - 18px), 0 18px); box-shadow: 0 24px 62px rgba(0,0,0,0.52), inset 0 1px 0 rgba(255,255,255,0.04), 0 0 38px rgba(89, 215, 255, 0.12); padding: 12px; z-index: 1200; display: none; backdrop-filter: blur(18px); }
.calendar-popup::before { content: ""; position: absolute; inset: 1px; border: 1px solid rgba(140, 237, 255, 0.07); clip-path: inherit; pointer-events: none; }
.calendar-popup.open { display:block; }
.calendar-header { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:10px; }
.calendar-title { font-weight:800; text-transform:uppercase; letter-spacing:0.12em; color:#ecfeff; font-size:12px; }
.calendar-nav,.calendar-today-btn { border:1px solid rgba(123,225,255,0.18); clip-path: polygon(10px 0, calc(100% - 10px) 0, 100% 10px, 100% calc(100% - 10px), calc(100% - 10px) 100%, 10px 100%, 0 calc(100% - 10px), 0 10px); background: linear-gradient(180deg, rgba(17,39,71,.96) 0%, rgba(8,20,39,.96) 100%); color:#eafcff; cursor:pointer; box-shadow: inset 0 1px 0 rgba(255,255,255,0.03); font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.calendar-nav { width:32px; height:32px; font-size:17px; }
.calendar-nav:disabled { opacity:0.35; cursor:not-allowed; }
.calendar-nav:hover:not(:disabled), .calendar-today-btn:hover { border-color: rgba(123,225,255,0.34); box-shadow: 0 0 0 1px rgba(84, 213, 255, 0.08), 0 8px 18px rgba(0, 0, 0, 0.26), 0 0 18px rgba(84, 213, 255, 0.12); }
.calendar-weekdays,.calendar-grid { display:grid; grid-template-columns: repeat(7, 1fr); gap:5px; }
.calendar-weekdays { margin-bottom:8px; }
.calendar-weekday { text-align:center; font-size:9px; color:#87a5bc; padding:3px 0; letter-spacing:0.14em; text-transform:uppercase; }
.calendar-empty { height:32px; }
.calendar-day { height:32px; border:1px solid rgba(123,225,255,0.1); clip-path: polygon(8px 0, calc(100% - 8px) 0, 100% 8px, 100% calc(100% - 8px), calc(100% - 8px) 100%, 8px 100%, 0 calc(100% - 8px), 0 8px); background: linear-gradient(180deg, rgba(255,255,255,0.05) 0%, rgba(255,255,255,0.025) 100%); color:#fff; cursor:pointer; font-size:12px; font-weight:700; }
.calendar-day:hover:not(:disabled) { background: rgba(97, 221, 255, 0.16); border-color: rgba(123,225,255,0.3); }
.calendar-day.is-selected { background: linear-gradient(180deg, rgba(124, 243, 255, 0.98) 0%, rgba(111, 123, 255, 0.92) 100%); color:#041018; font-weight:800; box-shadow: 0 0 18px rgba(89,215,255,0.26); }
.calendar-day.is-disabled { opacity:0.22; cursor:not-allowed; }
.calendar-footer { display:flex; justify-content:flex-end; margin-top:10px; }
.calendar-today-btn { padding:8px 14px; font-size:11px; }
@media (max-width: 980px) { .calendar-popup { left: auto !important; right: 12px !important; width: min(292px, calc(100vw - 24px)); top: calc(var(--topbar-height) + 118px) !important; } }
