.sth-calendar{--cal-bg:#faf8f5;--cal-panel:#fff;--cal-text:#242424;--cal-muted:#555;--cal-border:#c8c8c8;--cal-live:#e7f2ec;--cal-change:#fff0e9;--cal-accent:#ad351f;--cal-link:#713423;color:var(--cal-text);background:var(--cal-bg);padding:24px;border:1px solid var(--cal-border);border-radius:8px;margin:28px 0;scroll-margin-top:90px;clear:both}.sth-calendar *{box-sizing:border-box}.sth-calendar h2,.sth-calendar h3,.sth-calendar h4{color:var(--cal-text)}.sth-calendar p{max-width:none}.sth-calendar-filters{display:flex;align-items:end;gap:14px;flex-wrap:wrap;margin:22px 0}.sth-calendar-filters label{display:flex;flex:1 1 150px;flex-direction:column;gap:6px;font-weight:600}.sth-calendar input,.sth-calendar select,.sth-calendar button{font:inherit;min-height:44px;padding:9px;color:var(--cal-text);background:var(--cal-panel);border:1px solid var(--cal-border);border-radius:4px;max-width:100%;width:100%}.sth-calendar button{width:auto;background:var(--cal-accent);color:white;cursor:pointer;padding:9px 18px}.sth-calendar-month{display:flex;align-items:center;gap:20px;justify-content:center;margin:24px 0}.sth-calendar-month h3{margin:0}.sth-calendar-month a{padding:10px 16px;background:var(--cal-panel);border:1px solid var(--cal-border);border-radius:4px}.sth-calendar a{color:var(--cal-link)}.sth-calendar-key{display:flex;flex-wrap:wrap;gap:12px 22px;font-size:14px;color:var(--cal-muted)}.sth-calendar-week,.sth-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.sth-calendar-week{text-align:center;font-size:13px;margin-bottom:8px}.sth-calendar-day{min-height:82px;padding:9px;background:var(--cal-panel);border:1px solid var(--cal-border);border-radius:4px;display:flex;flex-direction:column;text-decoration:none!important;color:var(--cal-muted)!important;gap:3px;font-size:12px}.sth-calendar-day strong{font-size:16px}.sth-calendar-day.has-training{background:var(--cal-live);color:var(--cal-text)!important}.sth-calendar-day.has-change{background:var(--cal-change);color:var(--cal-text)!important}.sth-calendar-day:hover{outline:2px solid var(--cal-accent)}.sth-cal-short{display:none}.sth-cal-changed{color:var(--cal-link)}.sth-calendar-agenda{margin-top:30px}.sth-calendar-date{scroll-margin-top:95px;margin:24px 0}.sth-calendar-date h4{padding-bottom:9px;border-bottom:2px solid var(--cal-border);font-size:20px}.sth-calendar-event{display:grid;grid-template-columns:160px minmax(0,1fr);gap:20px;padding:15px;background:var(--cal-panel);border-bottom:1px solid var(--cal-border)}.sth-calendar-event p{margin:5px 0;font-size:15px}.sth-event-status{display:block;font-size:12px;margin-top:4px;font-weight:600}.sth-calendar-event.cancelled,.sth-calendar-event.moved{background:var(--cal-change)}.sth-event-message{font-weight:600}.sth-calendar-footnote{font-size:14px;color:var(--cal-muted)}.sth-calendar :focus-visible{outline:3px solid #358ad6;outline-offset:3px}[data-tier=elite] .sth-calendar{--cal-bg:#171717;--cal-panel:#242424;--cal-text:#eee8e2;--cal-muted:#c0bab5;--cal-border:#555;--cal-live:#20352a;--cal-change:#39271e;--cal-accent:#bc3e28;--cal-link:#ffb19b}@media(max-width:600px){.sth-calendar{padding:14px}.sth-calendar-filters{gap:12px}.sth-calendar-filters label{flex-basis:100%}.sth-calendar-filters button{width:100%}.sth-calendar-day{padding:5px;min-height:70px;font-size:11px}.sth-calendar-week{font-size:11px}.sth-cal-long{display:none}.sth-cal-short{display:inline}.sth-calendar-event{grid-template-columns:1fr;gap:8px}.sth-calendar-month{gap:12px}.sth-calendar-month h3{font-size:22px}.sth-calendar-event>div:first-child{display:flex;justify-content:space-between;gap:8px}.sth-event-status{margin:0}}@media print{.sth-calendar-grid,.sth-calendar-week,.sth-calendar-filters,.sth-calendar-month a{display:none}.sth-calendar-event{break-inside:avoid}}
/* Native month inputs in iOS need an explicit shrinkable width inside flex labels. */
.sth-calendar-filters label{min-width:0;max-width:100%}
.sth-calendar-filters input[type=month]{display:block;box-sizing:border-box;width:100%;min-width:0;max-width:100%;-webkit-appearance:none;appearance:none}
.sth-calendar-filters input[type=month]::-webkit-date-and-time-value{min-width:0;text-align:left}
.sth-calendar-agenda{scroll-margin-top:95px;border:1px solid var(--cal-border);border-radius:5px;padding:14px}
.sth-calendar-agenda>summary{cursor:pointer;font-weight:600;min-height:44px;align-content:center;color:var(--cal-text)}
@media(max-width:600px){.sth-calendar-filters label{flex:0 0 100%;width:100%}}
