.calendar-row {
    display: grid;
    grid-template-columns:
        2.5ch   /* day number */
        4ch     /* day name */
        1.2rem  /* marker */
        1fr;    /* title */
    align-items: baseline;
    column-gap: 0.6rem;
    padding: 0.35rem 0;
    text-decoration: none;
        font-weight:600; 
    font-size:18px;
    padding-left:40px; 
}


.calendar-date {
    display: contents; /* let strong + em live in grid */
}

.calendar-date strong {
    text-align: right;
    font-weight: 600;
}

.calendar-date em {
    text-align: left;
    font-style: normal;
    opacity: 0.8;
}


.calendar-month {
    padding-bottom: 1.5px;
    padding-top: 2px;
}
.calendar-list-paper {
    margin-left: 100px;
}
@media (max-width: 1024px) {
.calendar-list-paper {
    margin-left:0; 
}
.calendar-row {
    padding-left:0;
}
}

.calendar-marker {
    display: inline-block;
    width: 0.9rem;
    height: 0.9rem;
    border-radius: 2px;
    margin-bottom : -5px !important;
    line-height: 1;
/*    font-size: 0; /* hide the ▓ glyph */
}
.calendar-item.is-meeting .calendar-marker {
    color: #7a6a4a; /* neutral event tone */

}

.calendar-item.is-social .calendar-marker {
    color: #ec7725; /* softer social green */
}

.calendar-item.is-event .calendar-marker {
    color: #4f8a5b; /* softer social green */
}
.calendar-title {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.calendar-count {
    margin-left: 0.35rem;
    opacity: 0.7;
    font-size: 0.9em;
}
.calendar-item.is-cancelled .calendar-title-text {
    text-decoration: line-through;
    text-decoration-thickness: 1px;
    text-decoration-color: #B7410E; /* rust */
}

.calendar-item.is-cancelled .calendar-cancelled-label {
    margin-left: 0.4em;
    font-size: 0.9em;
    color: #B7410E; /* rust */
    font-weight: 500;
}


/* GRID */
.calendar-grid-year {
    margin-top: 1.5rem;
}

.calendar-year-title {
    margin-bottom: 0.8rem;
}

.calendar-month-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 1rem;
}

.calendar-month-cell h4 {
    font-size: 0.95rem;
    margin-bottom: 0.3rem;
}

.calendar-days {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 0.2rem;
}

.calendar-day {
    display: block;
    text-align: center;
    padding: 0.3rem 0;
    font-size: 0.85rem;
    border-radius: 2px;
    background: #e6e1d2;
    text-decoration: none;
}

/* Type colours */
.calendar-day.is-meeting { background: #7b6a4a; color: #fff; }
.calendar-day.is-social  { background: #e67e22; color: #fff; }
.calendar-day.is-event   { background: #4f7f5f; color: #fff; }

/* Cancelled */
.calendar-day.is-cancelled {
    background: #b7410e;
    text-decoration: line-through;
    opacity: 0.8;
}

.calendar-day.is-multi .calendar-block {
    background: #b0b0b0; /* neutral */
}

/* ============================================================
   YEAR GRID LAYOUT (3 months wide × 4 rows)
   ============================================================ */

.calendar-year {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2.5rem;
    align-items: start;
}

/* Each month is a self-contained block */
.calendar-month {
    display: block;
}
/* ============================================================
   DAY CELLS
   ============================================================ */

.calendar-month-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 0.5rem;
}

.calendar-day {
    background: rgba(0,0,0,0.04);
    border-radius: 4px;
    padding: 0.4rem 0.25rem;
    text-align: center;
    font-size: 0.9rem;
    position: relative;
}

/* Day number */
.calendar-day-number {
    position: relative;
    z-index: 2;
}

/* ============================================================
   EVENT INDICATOR (single block per day)
   ============================================================ */

.calendar-day.has-event {
    background: #c68a2d; /* heritage gold for now */
    color: #fff;
    font-weight: 600;
}

.calendar-day.has-meeting {
    background: #6c8c74; /* sage */
}

.calendar-day.has-event {
    background: #c68a2d; /* gold */
}

.calendar-day.has-cancelled {
    background: #b7410e; /* rust */
}
.calendar-day {
    cursor: default;
}

.calendar-day.has-event,
.calendar-day.has-meeting,
.calendar-day.has-cancelled {
    cursor: pointer;
}



.calendar-day-link {
    display: block;
    width: 100%;
    height: 100%;
    text-decoration: none;
    color: inherit;
}
.calendar-day.has-meeting {
    background: #8c7a5a; /* meeting brown */
}

.calendar-day.has-social-event {
    background: #d98c2f; /* social orange */
}

.calendar-day.is-cancelled {
    background: #b7410e; /* rust */
    text-decoration: line-through;
}


/* ============================================================
   GRID VIEW — Day state colours
   ============================================================ */

/* Meetings */
.calendar-day.has-meeting {
    background: #8c7a5a; /* meeting brown */
    color: #fff;
}

/* Events */
.calendar-day.has-event {
    background: #4f7f5f; /* green */
    color: #fff;
}

/* Social events */
.calendar-day.has-social-event {
    background: #d98c2f; /* orange */
    color: #fff;
}

/* Cancelled overrides everything */
.calendar-day.has-cancelled {
    background: #b7410e; /* rust */
    color: #fff;
    text-decoration: line-through;
}



.calendar-grid-swap {
margin-top: -15px;
    padding-bottom: 17px;
}

.calendar .softintro,
.calendar-grid .softintro {
    margin-top: 25px;
}

.softframe-calendar {
    min-height: calc(100vh - 360px) !important;
}







