/* Weekly calendar refresh, aligned with the main calendar timeline. */
.weekly-page{padding-bottom:4px;}

.weekly-nav{
  display:grid;
  grid-template-columns:auto 1fr auto auto;
  align-items:center;
  gap:14px;
  margin:-8px 0 18px;
  padding:10px;
  border:1px solid var(--border);
  border-radius:16px;
  background:rgba(255,255,255,.55);
  box-shadow:0 5px 16px rgba(15,23,42,.035);
}
.weekly-nav__button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:36px;
  padding:8px 12px;
  border-radius:11px;
  border:1px solid var(--border);
  background:var(--panel-solid);
  font-size:12px;
  font-weight:750;
  color:var(--text);
}
.weekly-nav__button:hover{border-color:rgba(79,70,229,.28);box-shadow:0 5px 14px rgba(15,23,42,.055);}
.weekly-nav__pdf{color:#4338ca;border-color:rgba(79,70,229,.20);background:rgba(79,70,229,.055);}
.weekly-nav__pdf:hover{border-color:rgba(79,70,229,.38);background:rgba(79,70,229,.085);}
.weekly-nav__range{text-align:center;color:var(--muted);font-size:12px;font-weight:700;}

.weekly-grid{display:grid;gap:14px;}
.weekly-grid--workdays{grid-template-columns:repeat(5,minmax(0,1fr));}
.weekly-grid--weekend{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:14px;}

.weekly-day{
  min-width:0;
  min-height:210px;
  padding:14px;
  border:1px solid var(--border);
  border-radius:18px;
  background:rgba(255,255,255,.72);
  box-shadow:0 5px 18px rgba(15,23,42,.025);
}
.weekly-day__head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:12px;}
.weekly-day__dow{font-size:16px;font-weight:850;line-height:1.1;letter-spacing:-.01em;}
.weekly-day__date{margin-top:4px;color:var(--muted);font-size:11px;font-weight:650;}
.weekly-today-badge{
  display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;
  color:#16833b;background:rgba(34,197,94,.12);border:1px solid rgba(34,197,94,.22);
  font-size:9px;font-weight:900;letter-spacing:.04em;
}
.weekly-matchday{
  margin:0 0 10px;
  padding:7px 9px;
  border-radius:10px;
  background:rgba(249,115,22,.08);
  border:1px solid rgba(249,115,22,.18);
  color:#c65a10;
  font-size:9px;
  font-weight:850;
  letter-spacing:.045em;
  text-transform:uppercase;
}
.weekly-empty{padding:24px 4px;color:var(--muted);font-size:11px;text-align:center;opacity:.65;}
.weekly-events{display:flex;flex-direction:column;gap:8px;}
.weekly-event{
  padding:9px;
  border:1px solid var(--border);
  border-radius:13px;
  background:rgba(255,255,255,.84);
}
.weekly-event__status{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-bottom:7px;
  padding:4px 6px;
  border-radius:8px;
  font-size:9px;
  font-weight:900;
  letter-spacing:.04em;
}
.weekly-event__status span{width:7px;height:7px;border-radius:50%;background:currentColor;flex:0 0 auto;}
.weekly-event__main{min-width:0;}
.weekly-event__top{display:flex;align-items:baseline;gap:7px;min-width:0;font-size:11px;}
.weekly-event__top strong{font-size:11px;font-weight:900;font-variant-numeric:tabular-nums;}
.weekly-event__top span{font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.weekly-event__detail{margin-top:4px;color:var(--muted);font-size:10.5px;line-height:1.25;overflow-wrap:anywhere;}

.weekly-event--open{border-color:rgba(79,70,229,.15);background:rgba(79,70,229,.025);}
.weekly-event--open .weekly-event__status{color:#5146df;background:rgba(79,70,229,.06);}
.weekly-event--close{border-color:rgba(239,68,68,.15);background:rgba(239,68,68,.022);}
.weekly-event--close .weekly-event__status{color:#dc3434;background:rgba(239,68,68,.055);}
.weekly-event--memo{border-color:rgba(202,138,4,.18);background:rgba(250,204,21,.055);}
.weekly-event--memo .weekly-event__status{color:#a16207;background:rgba(250,204,21,.11);}

/* Today stays deliberately prominent, matching the main timeline. */
.weekly-day--today{
  border-color:rgba(34,197,94,.58);
  background:linear-gradient(145deg,rgba(34,197,94,.14),rgba(255,255,255,.76) 76%);
  box-shadow:0 0 0 3px rgba(34,197,94,.075),0 8px 22px rgba(22,163,74,.09);
}
.weekly-day--today .weekly-day__dow{color:#147a34;}

@media (prefers-color-scheme: dark){
  .weekly-nav{background:rgba(17,24,39,.62);}
  .weekly-nav__button{background:rgba(255,255,255,.055);}
  .weekly-nav__pdf{color:#a9a3ff;background:rgba(79,70,229,.14);border-color:rgba(129,140,248,.24);}
  .weekly-day{background:rgba(17,24,39,.62);}
  .weekly-event{background:rgba(17,24,39,.72);}
  .weekly-event--open{background:rgba(79,70,229,.10);}
  .weekly-event--close{background:rgba(239,68,68,.085);}
  .weekly-event--memo{background:rgba(202,138,4,.09);}
  .weekly-matchday{color:#fb923c;background:rgba(249,115,22,.11);border-color:rgba(249,115,22,.22);}
  .weekly-day--today{background:linear-gradient(145deg,rgba(34,197,94,.20),rgba(17,24,39,.68) 78%);}
  .weekly-day--today .weekly-day__dow{color:#7fe29b;}
}

@media (max-width:980px){
  .weekly-grid--workdays{grid-template-columns:repeat(2,minmax(0,1fr));}
}

@media (max-width:680px){
  .weekly-nav{grid-template-columns:1fr 1fr;gap:8px;margin-top:-4px;}
  .weekly-nav__range{grid-column:1 / -1;grid-row:1;padding:2px 0 4px;}
  .weekly-nav__button{width:100%;}
  .weekly-nav__pdf{grid-column:1 / -1;}
  .weekly-grid--workdays,.weekly-grid--weekend{grid-template-columns:1fr;}
  .weekly-day{min-height:0;padding:13px;}
  .weekly-day__dow{font-size:17px;}
  .weekly-event__top{font-size:12px;}
  .weekly-event__top strong{font-size:12px;}
  .weekly-event__detail{font-size:11px;}
}
