/* THE EMPLOYEE WORK SCHEDULE — live production calendar for 9 to 5 */
.schedule{
  --c-acting:#1fd1c4;--c-dance:#ff1f8f;--c-music:#8a3ffc;--c-full:#1a5cff;--c-performance:#f5b800;--c-special:#ff6b5b;--c-general:#b9adc9;
  position:relative;isolation:isolate;overflow:hidden;
  background:#f6eaff;
}
.schedule:before{content:"";position:absolute;inset:0;z-index:-1;
  background:
    radial-gradient(circle at 92% 8%,#ffda43 0 7%,transparent 7.3%),
    radial-gradient(circle at 4% 92%,#4ed9d1 0 10%,transparent 10.3%),
    repeating-linear-gradient(0deg,transparent 0 31px,#c9b3e855 31px 32px);
}
.schedule h2 span{color:var(--pink);text-shadow:4px 4px 0 var(--ink)}
.sched-sub{font-weight:800;font-size:clamp(18px,2.2vw,24px);margin:0 0 28px}

/* Category colors */
[data-cat=acting]{--cat:var(--c-acting)}[data-cat=dance]{--cat:var(--c-dance)}[data-cat=music]{--cat:var(--c-music)}
[data-cat=full]{--cat:var(--c-full)}[data-cat=performance]{--cat:var(--c-performance)}[data-cat=special]{--cat:var(--c-special)}[data-cat=general]{--cat:var(--c-general)}

/* Toolbar: legend filters + subscribe */
.sched-toolbar{display:flex;flex-wrap:wrap;gap:18px;align-items:center;justify-content:space-between;margin-bottom:28px}
.sched-legend{display:flex;flex-wrap:wrap;gap:8px}
.chip{display:inline-flex;align-items:center;gap:8px;border:2px solid var(--ink);background:white;color:var(--ink);border-radius:100px;padding:8px 14px 8px 10px;font-weight:800;font-size:12px;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;transition:transform .15s,opacity .15s}
.chip i{width:14px;height:14px;border-radius:50%;background:var(--cat);border:2px solid var(--ink)}
.chip:hover{transform:translateY(-2px)}
.chip[aria-pressed=false]{opacity:.45;text-decoration:line-through}
.chip:focus-visible,.sched-tabs button:focus-visible,.month-nav:focus-visible,.month-today:focus-visible,.day:focus-visible,.retry:focus-visible,.past-toggle input:focus-visible{outline:4px solid var(--aqua);outline-offset:2px}
.sched-subscribe{display:flex;flex-wrap:wrap;gap:12px}
.sched-subscribe .pill{padding:12px 18px;font-size:13px;box-shadow:4px 4px 0 var(--ink)}

/* Your Next Shift — a punch-card */
.next-shift{background:var(--ink);color:white;border:3px solid var(--ink);border-radius:22px;box-shadow:10px 10px 0 var(--pink);margin-bottom:38px;overflow:hidden}
.timecard-head{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--yellow);color:var(--ink);padding:12px 22px;font-weight:900;letter-spacing:.16em;font-size:13px;border-bottom:3px dashed var(--ink)}
.punch{border:2px solid var(--ink);border-radius:6px;padding:4px 9px;transform:rotate(-4deg);font-size:11px;background:white}
.next-body{padding:28px 26px;min-height:150px}
.next-grid{display:grid;grid-template-columns:auto 1fr;gap:28px;align-items:center}
.next-date{background:white;color:var(--ink);border:3px solid var(--cat,var(--yellow));border-radius:16px;text-align:center;min-width:128px;padding:14px 16px;box-shadow:6px 6px 0 var(--cat,var(--yellow))}
.next-date .dow{font-weight:900;letter-spacing:.16em;font-size:12px}
.next-date .dnum{font:64px/1 "Archivo Black",sans-serif}
.next-date .mon{font-weight:900;letter-spacing:.2em;font-size:13px}
.next-info .countdown{display:inline-block;background:var(--cat,var(--aqua));color:var(--ink);font-weight:900;font-size:12px;letter-spacing:.12em;text-transform:uppercase;padding:6px 12px;border-radius:100px;margin-bottom:10px}
.next-info .countdown.live{animation:blink 1.4s ease-in-out infinite}
@keyframes blink{50%{opacity:.55}}
.next-info h3{font:clamp(26px,3.6vw,44px)/1.02 "Archivo Black",sans-serif;text-transform:uppercase;letter-spacing:-.03em;margin:4px 0 10px}
.next-info .when{font-weight:800;font-size:18px;color:var(--yellow);margin:0 0 12px}
.next-shift .facts-list dt{color:var(--aqua)}
.next-shift .facts-list dd{color:#f1e9f8}
.next-shift .notes{color:#e8ddf2}
.next-empty{font-weight:700;font-size:18px;line-height:1.6;margin:0}

/* Shared event details */
.facts-list{display:grid;grid-template-columns:max-content 1fr;gap:6px 14px;margin:0;font-size:15px;line-height:1.45}
.facts-list dt{font-weight:900;text-transform:uppercase;font-size:11px;letter-spacing:.12em;padding-top:3px}
.facts-list dd{margin:0;font-weight:600;overflow-wrap:anywhere}
.notes{white-space:pre-line;margin:12px 0 0;font-size:14px;line-height:1.6;overflow-wrap:anywhere}
.notes a,.facts-list a{font-weight:800}
.badge{display:inline-block;font-weight:900;font-size:11px;letter-spacing:.1em;text-transform:uppercase;padding:4px 9px;border-radius:6px;border:2px solid var(--ink);vertical-align:middle}
.badge.canceled{background:#ff3b3b;color:white}
.badge.rescheduled,.badge.postponed{background:var(--yellow);color:var(--ink)}
.cat-tag{display:inline-flex;align-items:center;gap:6px;font-weight:900;font-size:11px;letter-spacing:.1em;text-transform:uppercase}
.cat-tag:before{content:"";width:11px;height:11px;border-radius:50%;background:var(--cat);border:2px solid currentColor}

/* Tabs */
.sched-views{background:white;border:3px solid var(--ink);border-radius:22px;box-shadow:9px 9px 0 var(--ink);overflow:hidden}
.sched-tabs{display:flex;background:var(--ink);padding:8px 8px 0;gap:6px}
.sched-tabs button{flex:1 1 0;border:0;border-radius:14px 14px 0 0;background:#3a2a4d;color:white;font-weight:900;text-transform:uppercase;letter-spacing:.1em;font-size:13px;padding:14px 10px;cursor:pointer}
.sched-tabs button[aria-selected=true]{background:white;color:var(--ink)}
.sched-panel{padding:24px}

/* Month grid */
.month-head{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.month-head h3{font:clamp(24px,3.2vw,38px) "Archivo Black",sans-serif;text-transform:uppercase;letter-spacing:-.03em;margin:0;flex:1;text-align:center;min-width:180px}
.month-nav,.month-today{border:2px solid var(--ink);background:var(--yellow);color:var(--ink);font-weight:900;border-radius:100px;cursor:pointer;box-shadow:3px 3px 0 var(--ink)}
.month-nav{width:44px;height:44px;font-size:14px}
.month-today{padding:10px 16px;font-size:12px;text-transform:uppercase;letter-spacing:.1em;background:white}
.month-nav:hover,.month-today:hover{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink)}
.month-table{width:100%;border-collapse:separate;border-spacing:6px;table-layout:fixed}
.month-table th{font-size:11px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;padding:4px 0}
.month-table td{padding:0;vertical-align:top}
.day{display:flex;flex-direction:column;align-items:stretch;gap:4px;width:100%;min-height:108px;border:2px solid #d9cce8;background:#fdfbff;border-radius:12px;padding:6px;text-align:left;cursor:pointer;color:var(--ink);font:inherit;transition:border-color .15s,background .15s}
.day:hover{border-color:var(--ink)}
.day .num{font-weight:900;font-size:14px}
.day.other{opacity:.42}
.day.today{border-color:var(--ink);background:#fff4ce}
.day.today .num{background:var(--pink);color:white;border-radius:100px;width:26px;height:26px;display:grid;place-items:center}
.day[aria-pressed=true]{border-color:var(--ink);box-shadow:inset 0 0 0 2px var(--ink);background:#efe6ff}
.day .ev{display:block;font-size:11px;font-weight:800;line-height:1.25;padding:3px 6px;border-radius:6px;background:var(--cat);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-left:3px solid var(--ink)}
.day .ev[data-cat=full],.day .ev[data-cat=music],.day .ev[data-cat=dance]{color:white}
.day .ev.canceled{text-decoration:line-through;opacity:.6}
.day .more{font-size:11px;font-weight:900}
.day .dots{display:none;gap:3px;flex-wrap:wrap}
.day .dots i{width:9px;height:9px;border-radius:50%;background:var(--cat);border:1.5px solid var(--ink)}
.day-detail{margin-top:20px}
.day-detail h4{font:22px "Archivo Black",sans-serif;text-transform:uppercase;margin:0 0 14px}
.day-detail .none{font-weight:700;margin:0}

/* Agenda + rehearsal cards */
.agenda-tools{display:flex;justify-content:flex-end;margin-bottom:12px}
.past-toggle{font-weight:800;font-size:13px;display:inline-flex;gap:8px;align-items:center;cursor:pointer}
.past-toggle input{width:18px;height:18px;accent-color:var(--pink)}
.agenda-month{font:clamp(20px,2.6vw,28px) "Archivo Black",sans-serif;text-transform:uppercase;letter-spacing:-.02em;margin:26px 0 12px;padding-bottom:6px;border-bottom:3px solid var(--ink)}
.agenda-month:first-child{margin-top:0}
.agenda-day{display:grid;grid-template-columns:86px 1fr;gap:16px;margin-bottom:16px}
.agenda-date{text-align:center;border:2px solid var(--ink);border-radius:14px;padding:10px 4px;background:var(--paper);align-self:start;position:sticky;top:96px}
.agenda-date .dow{font-weight:900;font-size:11px;letter-spacing:.14em}
.agenda-date .dnum{font:34px/1 "Archivo Black",sans-serif}
.agenda-date.is-today{background:var(--yellow)}
.cards{display:grid;gap:12px}
.card{position:relative;background:white;border:2px solid var(--ink);border-left:12px solid var(--cat);border-radius:14px;padding:16px 18px;box-shadow:5px 5px 0 var(--ink)}
.card.canceled{background:#f4f0f7}
.card.canceled h5{text-decoration:line-through;opacity:.7}
.card .card-top{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin-bottom:6px}
.card .time{font-weight:900;font-size:14px}
.card h5{font:clamp(18px,2.2vw,23px)/1.15 "Archivo Black",sans-serif;text-transform:uppercase;letter-spacing:-.02em;margin:2px 0 10px}
.card .moved{font-size:13px;font-weight:700;margin:-4px 0 10px}
.agenda-empty,.sched-error{font-weight:700;font-size:16px;line-height:1.6}

/* Loading + errors */
.sched-loading{display:flex;align-items:center;gap:12px;font-weight:800;padding:18px 0}
.spinner{width:26px;height:26px;border-radius:50%;border:4px solid var(--pink);border-right-color:transparent;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.sched-error{background:#fff4ce;color:var(--ink);border:2px solid var(--ink);border-radius:14px;padding:18px 20px}
.sched-error strong{display:block;font:20px "Archivo Black",sans-serif;text-transform:uppercase;margin-bottom:4px}
.retry{margin-top:12px;border:2px solid var(--ink);background:var(--pink);color:white;font-weight:900;border-radius:100px;padding:9px 16px;cursor:pointer;text-transform:uppercase;letter-spacing:.08em;font-size:12px}
.sched-footnote{font-size:13px;font-weight:600;margin:22px 0 0;line-height:1.6}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

@media(max-width:800px){
  .sched-toolbar{flex-direction:column;align-items:stretch}
  .sched-subscribe .pill{flex:1}
  .next-grid{grid-template-columns:1fr;gap:18px}
  .next-date{display:flex;align-items:baseline;justify-content:center;gap:10px;min-width:0}
  .next-date .dnum{font-size:40px}
  .day{min-height:64px;align-items:center;text-align:center}
  .day .ev,.day .more{display:none}
  .day .dots{display:flex;justify-content:center}
  .month-table{border-spacing:3px}
}
@media(max-width:560px){
  .sched-panel{padding:16px 12px}
  .next-body{padding:22px 18px}
  .agenda-day{grid-template-columns:1fr;gap:8px}
  .agenda-date{position:static;display:flex;gap:10px;align-items:baseline;justify-content:flex-start;padding:6px 12px;text-align:left}
  .agenda-date .dnum{font-size:22px}
  .day{min-height:48px;padding:4px 2px;border-radius:8px}
  .day .num{font-size:12px}
  .month-table th{font-size:9px;letter-spacing:.04em}
  .facts-list{grid-template-columns:1fr;gap:2px}
  .facts-list dd{margin-bottom:6px}
  .sched-tabs button{font-size:11px;letter-spacing:.06em}
}
@media(prefers-reduced-motion:reduce){.spinner{animation:none!important;border-right-color:var(--pink)}.next-info .countdown.live{animation:none}}
