:root { --bg:#0b1020; --text:#e8eaff; --accent:#cee90e; --card:#121735; --line:#333; --today:#cee90e; } .calendar-cover { isolation:isolate; z-index:0; position:relative; min-height:100%; } .calendar-cover::before { content:""; position:absolute; inset:0; pointer-events:none; z-index:0; } .calendar-inner { position:relative; z-index:1; } .custom-month-wrapper { max-width:1200px; margin:20px auto; padding:20px; color:var(--text); box-sizing:border-box; margin-bottom:0!important; border:1px solid #FFF; border-radius:6px; overflow:hidden; background:rgba(51,76,107,0.9); } .month-head { display:flex; justify-content:space-between; align-items:center; margin-bottom:10px; } .month-title { color:var(--accent); font-size:22px; text-transform:uppercase; font-weight:700; } .month-nav a { color:var(--text); text-decoration:none; padding:6px 10px; border:1px solid var(--line); border-radius:6px; background:var(--card); } .month-nav a:hover { color:var(--accent); border-color:var(--accent); } .weekdays { display:grid; grid-template-columns:repeat(7,1fr); gap:4px; margin-bottom:4px; } .weekday { text-align:center; font-size:11px; color:#fff; font-weight:700; text-transform:uppercase; } .month-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:4px; width:100%; } .month-day { background:var(--card); border:1px solid var(--line); padding:6px; min-height:110px; border-radius:6px; } .month-day.today { border:2px solid var(--today); } .month-day-number { font-weight:bold; color:var(--accent); margin-bottom:6px; } .day-events { display:flex; flex-direction:column; gap:3px; } .event-pill { display:flex; flex-direction:column; align-items:flex-start; gap:4px; background:rgba(255,255,255,0.04); border:1px solid var(--line); padding:3px 5px; border-radius:6px; font-size:12px; line-height:1.2; } .event-time { font-weight:700; color:var(--accent); font-size:11px; } .event-title { color:var(--text); white-space:normal; overflow:visible; word-break:break-word; } .event-title a { color:var(--text); text-decoration:none; display:block; } .event-title a:hover { color:var(--accent); text-decoration:underline; } /* === Mobile list view (do not affect desktop) === */ @media (max-width: 720px) { /* Mobile: month title on top, nav buttons side-by-side */ .month-head { flex-direction: column; align-items: stretch; gap:10px; } .month-title { text-align:center; font-size:18px; line-height:1.2; } .month-nav { display:flex; flex-direction:row; gap:8px; flex-wrap:nowrap; } .month-nav a { min-width:0; flex:1; display:block; text-align:center; padding:10px 12px; white-space:nowrap; box-sizing:border-box; } /* Hide weekday header row on small screens */ .weekdays { display:none; } /* Turn month grid into a 1-column list */ .month-grid { grid-template-columns:1fr; gap:10px; } /* Remove the empty placeholder cells at the beginning of the month */ .month-grid > div:empty { display:none; } /* Hide days without events ONLY in mobile list view */ .month-day:not(.has-events) { display:none; } /* Make day cards taller by content, not forced grid height */ .month-day { min-height:0; padding:10px; border-radius:8px; } /* Day header */ .month-day-number { margin-bottom:8px; font-size:16px; display:flex; align-items:baseline; gap:8px; } .month-day-number::before { content: attr(data-mobile-label); font-size:14px; font-weight:700; color:#fff; opacity:.95; letter-spacing:.01em; } .month-day-number .day-num { display:none; } /* Event pills on mobile */ .event-pill { padding:8px 10px; gap:6px; font-size:13px; } .event-time { font-size:12px; } .event-title { word-break: normal; overflow-wrap:anywhere; hyphens:auto; } }