.bunz-schedule{--bunz-ink:#282124;--bunz-muted:#746a6e;--bunz-accent:#d8bec5;--bunz-line:#e9e2e4;color:var(--bunz-ink);font-family:inherit;width:100%}.bunz-schedule *{box-sizing:border-box}.bunz-schedule__toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}.bunz-schedule__week-nav{display:flex;align-items:center;gap:12px}.bunz-schedule__week-label{font-weight:700;font-size:clamp(16px,2vw,21px)}.bunz-schedule__nav,.bunz-schedule__today{border:1px solid var(--bunz-line);background:#fff;color:var(--bunz-ink);border-radius:999px;min-height:40px;padding:8px 14px;cursor:pointer;font:inherit}.bunz-schedule__nav{width:40px;padding:0;font-size:20px}.bunz-schedule__today{font-size:13px}.bunz-schedule__nav:hover,.bunz-schedule__today:hover{background:var(--bunz-ink);color:#fff}.bunz-schedule__filters{display:flex;align-items:flex-end;gap:14px;margin:0 0 26px;padding:16px 18px;flex-wrap:wrap;background:#faf7f8;border:1px solid var(--bunz-line);border-radius:14px}.bunz-schedule__filter{display:flex;flex:1 1 220px;flex-direction:column;gap:7px;min-width:0}.bunz-schedule__filter-label{font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--bunz-muted)}.bunz-schedule__filters select{width:100%;min-width:0;max-width:100%;min-height:46px;appearance:none;-webkit-appearance:none;border:1px solid #e3d9dd;border-radius:9px;background-color:#fff;background-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2714%27 height=%2714%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27%23746a6e%27 stroke-width=%272%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27m6 9 6 6 6-6%27/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding:11px 40px 11px 13px;color:var(--bunz-ink);font:inherit;font-size:14px;cursor:pointer;transition:border-color .2s,box-shadow .2s}.bunz-schedule__filters select:hover{border-color:#c9aab5}.bunz-schedule__filters select:focus{border-color:#a77c8b;box-shadow:0 0 0 3px rgba(167,124,139,.13);outline:none}.bunz-schedule__announcement{background:#f8f3f4;border-left:3px solid var(--bunz-accent);padding:13px 16px;margin-bottom:20px;border-radius:4px}.bunz-schedule__day{margin:0 0 28px}.bunz-schedule__day-title{font-size:20px;font-weight:700;margin:0 0 14px;padding-bottom:10px;border-bottom:1px solid var(--bunz-line)}.bunz-schedule__location-group{margin:0 0 18px}.bunz-schedule__location-title{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--bunz-muted);margin:0 0 10px}.bunz-schedule__cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.bunz-schedule__card{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid var(--bunz-line);border-radius:12px;padding:17px 18px;background:#fff;min-width:0}.bunz-schedule__card h5{font-size:16px;font-weight:700;margin:0 0 5px;color:var(--bunz-ink)}.bunz-schedule__time{font-size:14px;margin:0;color:var(--bunz-muted)}.bunz-schedule__note{font-size:12px;margin:6px 0 0;color:var(--bunz-muted)}.bunz-schedule__status{flex:0 0 auto;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:700;white-space:nowrap;background:#edf5ef;color:#326744}.bunz-schedule__status--limited{background:#fbf2df;color:#805d18}.bunz-schedule__status--booked{background:#f5e9eb;color:#8a4652}.bunz-schedule__status--unavailable{background:#efeeee;color:#686266}.bunz-schedule__empty,.bunz-schedule--empty{padding:20px;border:1px solid var(--bunz-line);border-radius:10px;color:var(--bunz-muted);background:#faf8f8}.bunz-schedule button:focus-visible,.bunz-schedule select:focus-visible{outline:2px solid var(--bunz-ink);outline-offset:3px}@media(max-width:767px){.bunz-schedule__toolbar{align-items:flex-start;flex-direction:column}.bunz-schedule__cards{grid-template-columns:1fr}.bunz-schedule__card{padding:14px}.bunz-schedule__filters{gap:10px;padding:13px}.bunz-schedule__filter{flex-basis:100%}.bunz-schedule__filters select{min-height:44px}.bunz-schedule__week-nav{width:100%;justify-content:space-between}.bunz-schedule__week-label{flex:1;text-align:center}}


/* Upcoming-first schedule emphasis */
.bunz-schedule__day-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px;padding-bottom:10px;border-bottom:1px solid var(--bunz-line)}
.bunz-schedule__day-title{margin:0;padding:0;border:0}
.bunz-schedule__day-badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 10px;background:#f8edf0;color:#875d6b;font-size:10px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;white-space:nowrap}
.bunz-schedule__day-badge--today{background:#ead3da;color:#633d4a}
.bunz-schedule__day-badge--past{background:#f1eff0;color:#898186}
.bunz-schedule__day--upcoming .bunz-schedule__card--upcoming{border-color:#dfc2cb;background:#fffafb;box-shadow:0 3px 12px rgba(92,57,69,.06)}
.bunz-schedule__day--today .bunz-schedule__card--today{border-color:#c99eac;background:#fff7f9;box-shadow:0 4px 16px rgba(92,57,69,.10)}
.bunz-schedule__day--past{opacity:.62}
.bunz-schedule__day--past .bunz-schedule__day-title,.bunz-schedule__day--past .bunz-schedule__location-title{color:#938a8e}
.bunz-schedule__card--past{background:#f8f7f7;border-color:#eee9eb;color:#81797d;box-shadow:none}
.bunz-schedule__card--past h5,.bunz-schedule__card--past .bunz-schedule__time,.bunz-schedule__card--past .bunz-schedule__note{color:#81797d}
@media(max-width:767px){.bunz-schedule__day-heading{align-items:center}.bunz-schedule__day-title{font-size:18px}.bunz-schedule__day-badge{font-size:9px;padding:5px 8px}}


/* Minimal current-week indicator */
.bunz-schedule__week-label{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px}
.bunz-schedule__week-nav--current .bunz-schedule__week-label{color:#684653}
.bunz-schedule__current-week-tag{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;background:#f4e9ed;color:#805b68;font-size:9px;font-weight:800;letter-spacing:.08em;line-height:1.3;text-transform:uppercase;white-space:nowrap}
.bunz-schedule__today{border-color:#e6d8dd;background:#faf7f8;color:#684653;font-weight:600;transition:background .2s,border-color .2s,color .2s}
.bunz-schedule__today:hover:not(:disabled){border-color:#c9aab5;background:#f4e9ed;color:#684653}
.bunz-schedule__today:disabled{cursor:default;opacity:.55}
@media(max-width:767px){.bunz-schedule__week-label{gap:6px}.bunz-schedule__current-week-tag{font-size:8px;padding:3px 7px}}

/* Public schedule view switch and weekly calendar */
.bunz-schedule__toolbar-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.bunz-schedule__view-toggle{display:inline-flex;align-items:center;gap:2px;padding:3px;border:1px solid var(--bunz-line);border-radius:999px;background:#fff}
.bunz-schedule__view-toggle button{border:0;border-radius:999px;background:transparent;color:var(--bunz-muted);padding:7px 13px;font:inherit;font-size:12px;cursor:pointer;transition:background .2s,color .2s}
.bunz-schedule__view-toggle button.is-active{background:#f4e9ed;color:#684653;font-weight:700}
.bunz-schedule__view-toggle button:focus-visible{outline:2px solid var(--bunz-ink);outline-offset:2px}
.bunz-schedule__calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;align-items:start}
.bunz-schedule__calendar-day{min-width:0;margin:0;padding:12px 9px;border:1px solid var(--bunz-line);border-radius:12px;background:#fff;min-height:150px}
.bunz-schedule__calendar-day .bunz-schedule__day-heading{display:block;margin-bottom:10px;padding-bottom:8px}
.bunz-schedule__calendar-day .bunz-schedule__day-title{font-size:13px;line-height:1.35;margin-bottom:6px}
.bunz-schedule__calendar-day .bunz-schedule__day-badge{font-size:8px;padding:3px 6px}
.bunz-schedule__calendar-day .bunz-schedule__location-title{font-size:9px;letter-spacing:.08em;margin-bottom:6px}
.bunz-schedule__calendar-day .bunz-schedule__cards{grid-template-columns:1fr;gap:7px}
.bunz-schedule__calendar-day .bunz-schedule__card{display:block;padding:9px 8px;border-radius:8px}
.bunz-schedule__calendar-day .bunz-schedule__card h5{font-size:12px;line-height:1.3}
.bunz-schedule__calendar-day .bunz-schedule__time{font-size:11px;line-height:1.35}
.bunz-schedule__calendar-day .bunz-schedule__note{font-size:10px}
.bunz-schedule__calendar-day .bunz-schedule__status{display:inline-flex;margin-top:6px;font-size:9px;padding:3px 6px}
.bunz-schedule__calendar-empty{font-size:10px;color:var(--bunz-muted);margin:0}
@media(max-width:1100px){.bunz-schedule__calendar{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:767px){.bunz-schedule__toolbar-actions{width:100%;justify-content:space-between}.bunz-schedule__calendar{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.bunz-schedule__calendar-day{padding:10px 8px;min-height:120px}}
@media(max-width:420px){.bunz-schedule__calendar{grid-template-columns:1fr}.bunz-schedule__calendar-day{min-height:0}}


/* Accessible high-contrast frontend palette */
.bunz-schedule{
    --bunz-ink:#172b3a;
    --bunz-muted:#526475;
    --bunz-accent:#0f766e;
    --bunz-line:#d5dee5;
    color:var(--bunz-ink);
}
.bunz-schedule__filters{
    background:#f3f7fa;
    border-color:#d5dee5;
}
.bunz-schedule__filter-label,
.bunz-schedule__location-title{color:#42576a}
.bunz-schedule__filters select{
    border-color:#b9c7d2;
    color:#172b3a;
}
.bunz-schedule__filters select:hover{border-color:#0f766e}
.bunz-schedule__filters select:focus{
    border-color:#0f766e;
    box-shadow:0 0 0 3px rgba(15,118,110,.18);
}
.bunz-schedule__nav,.bunz-schedule__today{
    border-color:#b9c7d2;
    color:#172b3a;
}
.bunz-schedule__nav:hover,.bunz-schedule__today:hover:not(:disabled){
    background:#174b52;
    border-color:#174b52;
    color:#fff;
}
.bunz-schedule__announcement{
    background:#eef7f5;
    border-left-color:#0f766e;
    color:#173f3c;
}
.bunz-schedule__card{
    border-color:#d5dee5;
    box-shadow:0 1px 3px rgba(23,43,58,.05);
}
.bunz-schedule__card h5{color:#172b3a}
.bunz-schedule__time,.bunz-schedule__note{color:#526475}
.bunz-schedule__status{
    background:#e4f3e9;
    color:#14532d;
}
.bunz-schedule__status--limited{
    background:#fff3d6;
    color:#754600;
}
.bunz-schedule__status--booked{
    background:#fce8e8;
    color:#8b1e2d;
}
.bunz-schedule__status--unavailable{
    background:#e9edf1;
    color:#394b59;
}
.bunz-schedule__empty,.bunz-schedule--empty{
    background:#f5f8fa;
    border-color:#d5dee5;
    color:#526475;
}
.bunz-schedule button:focus-visible,.bunz-schedule select:focus-visible{
    outline:3px solid #0f766e;
    outline-offset:3px;
}
.bunz-schedule__day-badge{
    background:#e8f1f5;
    color:#254b60;
}
.bunz-schedule__day-badge--today{
    background:#d5eee9;
    color:#075b52;
}
.bunz-schedule__day-badge--past{
    background:#edf0f2;
    color:#526475;
}
.bunz-schedule__day--upcoming .bunz-schedule__card--upcoming{
    border-color:#a9c9c5;
    background:#fbfefd;
    box-shadow:0 3px 12px rgba(15,76,70,.07);
}
.bunz-schedule__day--today .bunz-schedule__card--today{
    border-color:#0f766e;
    background:#f0faf8;
    box-shadow:0 4px 16px rgba(15,76,70,.12);
}
.bunz-schedule__day--past{opacity:.78}
.bunz-schedule__day--past .bunz-schedule__day-title,
.bunz-schedule__day--past .bunz-schedule__location-title{color:#687987}
.bunz-schedule__card--past{
    background:#f5f7f8;
    border-color:#dce3e8;
    color:#526475;
}
.bunz-schedule__card--past h5,
.bunz-schedule__card--past .bunz-schedule__time,
.bunz-schedule__card--past .bunz-schedule__note{color:#526475}
.bunz-schedule__week-nav--current .bunz-schedule__week-label{color:#174b52}
.bunz-schedule__current-week-tag{
    background:#e2f1ee;
    color:#075b52;
}
.bunz-schedule__today{
    border-color:#b9d5d0;
    background:#f0f7f6;
    color:#174b52;
}
.bunz-schedule__today:hover:not(:disabled){
    border-color:#0f766e;
    background:#e2f1ee;
    color:#174b52;
}
.bunz-schedule__view-toggle{border-color:#c5d1da}
.bunz-schedule__view-toggle button{color:#42576a}
.bunz-schedule__view-toggle button.is-active{
    background:#dcefeb;
    color:#075b52;
}
.bunz-schedule__calendar-day{
    border-color:#d5dee5;
    background:#fff;
}
.bunz-schedule__calendar-empty{color:#526475}
