:root{--button-blue:#2651b2;--button-navy:#162d6e;--button-yellow:#f5c200;--button-soft:#eef3fc;--button-danger:#b42318}
button,.button{border-radius:6px;font-weight:750;line-height:1.2;transition:transform .14s ease,background-color .14s ease,border-color .14s ease,box-shadow .14s ease,color .14s ease}
button.primary,.button.primary{border:1px solid var(--button-blue);background:var(--button-blue);color:#fff}
button.secondary,.button.secondary{border:1px solid var(--button-blue);background:#fff;color:var(--button-navy)}
button.accent,.button.accent,.public-date-actions #tbi-today{border:1px solid var(--button-yellow);background:var(--button-yellow);color:var(--button-navy)}
button.danger,.button.danger{border:1px solid var(--button-danger);background:#fff;color:var(--button-danger)}
button:focus-visible,.button:focus-visible{outline:3px solid var(--button-yellow);outline-offset:2px;box-shadow:0 0 0 2px var(--button-navy)}
@media(hover:hover) and (pointer:fine){button.primary:hover,.button.primary:hover{border-color:var(--button-navy);background:var(--button-navy);color:#fff}button.secondary:hover,.button.secondary:hover{background:var(--button-soft);color:var(--button-blue)}button.accent:hover,.button.accent:hover,.public-date-actions #tbi-today:hover{border-color:#d9a900;background:#ffda3e;color:var(--button-navy)}button.danger:hover,.button.danger:hover{background:#fff3f1}}
button:active,.button:active{transform:scale(.985)}button:disabled,.button[aria-disabled=true]{cursor:not-allowed;opacity:.55}
.portal-tabs button[aria-selected=true],.schedule-session-control button[aria-pressed=true]{background:var(--button-navy);color:#fff;box-shadow:inset 0 -3px var(--button-yellow)}
.portal-tabs button[aria-selected=false],.schedule-session-control button[aria-pressed=false]{box-shadow:none}
@media(max-width:700px){button,.button{min-height:44px}}
