/* Shared calendar/date styles used by both family and personal spaces. */
.calendar-layout{display:grid;grid-template-columns:minmax(300px,1fr) minmax(250px,1fr);gap:28px}.calendar-panel{min-width:0}.month-nav{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}.month-nav h3{font-size:19px;font-weight:400;margin:0}.calendar-today{margin-bottom:14px}.weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;text-align:center}.weekdays{font-size:13px;color:#c7c2d4;margin-bottom:12px}.weekdays>span:first-child{color:#ffaaaa}.weekdays>span:last-child{color:#9dcaff}.calendar-grid button{position:relative;min-width:0;min-height:64px;aspect-ratio:auto;padding:7px 2px 12px;border:1px solid transparent;border-radius:9px;background:transparent;color:#d6cfe3;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:3px}.calendar-grid button:hover{background:#ffffff0b;border-color:#ffffff20}.calendar-grid .calendar-day-number{font-size:14px;line-height:1.5}.calendar-grid .calendar-holiday-name{display:block;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px;line-height:1.4}.calendar-grid button.day-sunday,.calendar-grid button.day-holiday{color:#ffaaaa}.calendar-grid button.day-saturday:not(.day-holiday){color:#9dcaff}.calendar-grid button.today{border-color:#bfa6e8}.calendar-grid button.selected{background:#c9afe51a;outline:1px solid #c9afe5;outline-offset:-1px}.calendar-grid button.has-event::after{content:'';position:absolute;width:4px;height:4px;border-radius:50%;bottom:5px;left:calc(50% - 2px);background:#e1c5ff}.calendar-source{font-size:11px;display:inline-block;color:#b9adc9;text-decoration:underline}.family-calendar .section-head p{font-size:14px;line-height:1.8;color:#aaa2ba;margin-top:10px}.family-calendar .section-head .button{font-size:13px;white-space:nowrap}.family-calendar-tools{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}.calendar-legend{display:flex;gap:8px;align-items:center;font-size:12px;color:#c5bdd1}.calendar-legend i{width:7px;height:7px;border-radius:50%;display:inline-block}.legend-holiday{background:#ffaaaa}.legend-saturday{background:#9dcaff;margin-left:10px}.family-event-card{padding:22px;border:1px solid #ffffff19;border-radius:12px;background:#181625;margin:0 0 14px;overflow-wrap:anywhere}.family-event-top{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px;color:#c8b4e3}.family-event-card h4{font-size:20px;font-weight:400;color:#eee8f7;line-height:1.6;margin:14px 0 9px}.family-event-time{font-size:13px;color:#d7c9eb;margin:0}.family-event-body{white-space:pre-wrap;font-size:14px;color:#bdb3cb;line-height:1.9}.family-event-card>.quiet{display:inline-block;font-size:12px;margin-top:12px}.calendar-empty{display:grid;gap:10px;text-align:center;border:1px dashed #ffffff25;border-radius:12px;padding:35px 22px;color:#bdb3cb}.calendar-empty>span{font-size:30px;color:#cfb4ec}.calendar-empty strong{font-size:17px;font-weight:400}.calendar-empty p{font-size:13px;line-height:1.8;margin:0}.family-calendar .scope-pill{font-size:10px;padding:3px 9px;border:1px solid #ffffff22;border-radius:20px}.family-calendar .hint{font-size:12px;line-height:1.8;color:#a69ab6}.family-calendar .weekdays{margin-top:8px}.family-calendar .calendar-panel{padding:24px}.family-calendar .section-head{margin-bottom:24px}
@media(max-width:1000px){.calendar-layout{grid-template-columns:1fr}}@media(max-width:650px){.calendar-grid{gap:2px}.calendar-grid button{min-height:53px;padding:6px 1px 11px}.calendar-grid .calendar-day-number{font-size:13px}.calendar-grid .calendar-holiday-name{font-size:8px}.family-calendar .calendar-panel{padding:17px}.family-calendar .section-head{display:block}.family-calendar .section-head .button{display:inline-flex;margin-top:12px}.calendar-legend{font-size:10px;gap:5px}.family-calendar-tools{gap:8px}.family-calendar-tools>.quiet{font-size:11px}.family-event-card{padding:18px}.family-event-card h4{font-size:18px}.month-nav h3{font-size:18px}}

/* Give day cells enough room for real titles; details follow the full-width month. */
.calendar-layout{grid-template-columns:minmax(0,1fr);gap:26px}
.calendar-grid{align-items:stretch}
.calendar-grid button{min-height:132px;padding:10px 6px 12px;align-items:stretch;text-align:left;background:#ffffff03;border-color:#ffffff0a;gap:5px}
.calendar-grid .calendar-day-number{font-size:16px;padding-left:3px}
.calendar-grid .calendar-holiday-name{font-size:11px;padding-left:3px}
.calendar-event-titles{display:grid;gap:5px;min-width:0;width:100%}
.calendar-event-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;overflow-wrap:anywhere;white-space:normal;line-height:1.45;max-height:calc(2.9em + 4px);font-size:12px;color:#e5d7f5;background:#b394df18;border-left:2px solid #bca1df;border-radius:3px;padding:2px 4px;text-align:left}
.calendar-more{font-size:10px;color:#c4b0df;padding-left:4px}
.calendar-more-mobile{display:none}
.calendar-grid button.has-event::after{display:none}
.calendar-selected-lunar{font-size:15px;color:#d5bfef;margin:0 0 18px;padding:10px 14px;background:#b395dd12;border-left:2px solid #bca1df;border-radius:4px}
@media(max-width:650px){.calendar-grid button{min-height:106px;padding:7px 2px 9px;gap:4px}.calendar-grid .calendar-day-number{font-size:14px}.calendar-grid .calendar-holiday-name{font-size:9px}.calendar-event-title{font-size:10px;padding:2px;line-height:1.5;max-height:calc(3em + 4px)}.calendar-event-title:nth-child(n+2){display:none}.calendar-more-desktop{display:none}.calendar-more-mobile{display:block}.calendar-more{font-size:9px;padding-left:2px}.calendar-selected-lunar{font-size:14px}}

.calendar-lunar-in-day{font-size:11px;color:#d9bff3;line-height:1.5;overflow-wrap:anywhere;padding-left:3px}
@media(max-width:650px){.calendar-lunar-in-day{font-size:9px;padding-left:1px}}
