.quick-link-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:14px;
  margin:22px 0;
}

.quick-link-card{
  display:block;
  text-decoration:none;
  background:linear-gradient(135deg,#13084a,#28106c);
  color:#fff;
  border:1px solid rgba(224,182,76,.45);
  border-radius:14px;
  padding:18px 20px;
  box-shadow:0 8px 20px rgba(14,7,44,.12);
}

.quick-link-card span{
  display:block;
  color:var(--gold2);
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  margin-bottom:5px;
}

.quick-link-card strong{
  font-family:Georgia,serif;
  font-size:1.12rem;
}

.next-event-card{
  margin:20px 0;
  padding:18px 20px;
  border-radius:14px;
  background:linear-gradient(90deg,#fff8e9,#fff);
  border:1px solid #e4d4ad;
  border-left:5px solid var(--orange);
}

.next-event-label{
  color:var(--orange);
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase;
  margin-bottom:7px;
}

.next-event-main{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}

.next-event-main h2{margin:0 0 4px;color:var(--navy)}
.next-event-main p{margin:0;color:var(--muted)}

.filter-bar{
  display:flex;
  gap:14px;
  align-items:end;
  margin:22px 0;
}

.filter-field{min-width:170px}
.filter-field.search-field{flex:1}
.filter-field label{margin-top:0}
.filter-actions{display:flex;gap:8px}

.member-event-list{display:grid;gap:14px}
.member-event-card{
  display:grid;
  grid-template-columns:86px 1fr auto;
  gap:18px;
  align-items:center;
}

.member-event-date{
  width:68px;
  height:76px;
  border-radius:12px;
  background:linear-gradient(180deg,var(--navy),var(--purple));
  color:#fff;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  box-shadow:0 6px 16px rgba(20,10,50,.16);
}

.member-event-date span{
  color:var(--gold2);
  font-size:.78rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.1em;
}

.member-event-date strong{
  font-size:2rem;
  line-height:1;
  margin-top:4px;
}

.member-event-topline{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:4px;
}

.event-time{color:var(--muted);font-size:.9rem}
.member-event-main h2{margin:4px 0 6px;color:var(--navy)}
.member-event-main p{margin:5px 0}
.empty-state{text-align:center;padding:36px}

.calendar-head{
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:20px;
  text-align:center;
  margin-bottom:20px;
}

.calendar-head .section-title{margin-bottom:4px}

.calendar-grid{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  background:#d9ceb9;
  gap:1px;
  border:1px solid #d9ceb9;
  border-radius:14px;
  overflow:hidden;
  box-shadow:0 8px 20px rgba(21,12,35,.07);
}

.calendar-weekday{
  background:var(--navy);
  color:#fff;
  text-align:center;
  padding:10px 6px;
  font-weight:800;
  font-size:.85rem;
}

.calendar-day{
  min-height:130px;
  background:#fffdf8;
  padding:8px;
  position:relative;
}

.calendar-day.outside{
  background:#f4efe5;
  color:#a79f91;
}

.calendar-day.today{
  box-shadow:inset 0 0 0 3px var(--gold2);
}

.calendar-day-number{
  font-weight:900;
  color:var(--navy);
  margin-bottom:8px;
}

.calendar-day.outside .calendar-day-number{color:#9f9789}

.calendar-events{
  display:grid;
  gap:5px;
}

.calendar-event{
  display:block;
  text-decoration:none;
  border-radius:6px;
  padding:5px 6px;
  font-size:.74rem;
  line-height:1.25;
  font-weight:800;
  overflow:hidden;
}

.calendar-event.public{background:#e6f3e7;color:#215c27;border-left:3px solid #4f8f55}
.calendar-event.district{background:#ece3f7;color:#482875;border-left:3px solid var(--purple)}
.calendar-event.lodge{background:#fff0da;color:#764000;border-left:3px solid var(--orange)}

.calendar-event-time{
  display:block;
  font-size:.68rem;
  opacity:.8;
}

.calendar-legend{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:18px;
  margin-top:14px;
  color:var(--muted);
  font-size:.88rem;
}

.legend-dot{
  display:inline-block;
  width:10px;
  height:10px;
  border-radius:50%;
  margin-right:5px;
}

.legend-dot.public{background:#4f8f55}
.legend-dot.district{background:var(--purple)}
.legend-dot.lodge{background:var(--orange)}

.lodge-hero-card{
  display:grid;
  grid-template-columns:1.4fr .8fr;
  gap:28px;
  align-items:start;
  padding:28px;
}

.lodge-hero-card h1{
  margin:0 0 12px;
  color:var(--navy);
  font-family:Georgia,serif;
}

.lodge-meta p{
  background:#f8f2e5;
  border:1px solid #eadfca;
  border-radius:10px;
  padding:12px;
  margin:0 0 10px;
}

.lodge-meta span{
  display:block;
  color:var(--muted);
  font-size:.76rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
  margin-bottom:4px;
}

.split-grid{
  display:grid;
  grid-template-columns:1.25fr .75fr;
  gap:18px;
  margin-top:18px;
}

.section-row{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:center;
}

.compact-event{
  display:flex;
  gap:12px;
  align-items:center;
  padding:12px 0;
  border-bottom:1px solid #eadfca;
}

.compact-event:last-child{border-bottom:0}

.compact-event-date{
  width:48px;
  height:52px;
  background:var(--navy);
  color:#fff;
  border-radius:8px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
}

.compact-event-date strong{font-size:1.25rem;line-height:1}
.compact-event-date span{font-size:.68rem;color:var(--gold2);text-transform:uppercase}

.account-row{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
  padding:11px 0;
  border-bottom:1px solid #eadfca;
}

.account-row:last-child{border-bottom:0}
.account-row span{display:block;color:var(--muted);font-size:.85rem}
.account-row small{color:var(--muted)}
.card-link-row{display:flex;gap:12px;flex-wrap:wrap}

@media(max-width:980px){
  .filter-bar{flex-wrap:wrap}
  .filter-field.search-field{flex-basis:100%}
  .calendar-day{min-height:110px}
  .lodge-hero-card,.split-grid{grid-template-columns:1fr}
}

@media(max-width:720px){
  .next-event-main{align-items:flex-start;flex-direction:column}
  .member-event-card{grid-template-columns:66px 1fr}
  .member-event-actions{grid-column:1/-1}
  .calendar-head{grid-template-columns:1fr;gap:10px}
  .calendar-grid{
    display:block;
    border-radius:10px;
  }
  .calendar-weekday{display:none}
  .calendar-day{
    min-height:auto;
    border-bottom:1px solid #ddd1ba;
    padding:12px;
  }
  .calendar-day.outside{display:none}
  .calendar-day-number{
    display:inline-block;
    width:32px;
    margin-bottom:6px;
  }
  .calendar-events{display:inline-grid;width:calc(100% - 42px);vertical-align:top}
  .filter-actions{width:100%}
  .filter-actions .btn{flex:1;text-align:center}
}
