.public-calendar-panel{border:0;box-shadow:0 12px 30px rgba(22,45,110,.08);padding:26px 28px}.public-date-toolbar{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-bottom:20px;border-bottom:1px solid #e6eaf0}.public-date-summary{display:grid;gap:4px}.public-kicker{color:#2651b2;font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.public-date-summary strong{font:700 30px/1.05 Barlow,"Segoe UI",sans-serif;color:#162d6e}.public-legend{display:inline-flex;align-items:center;gap:7px;margin-top:8px;color:#475467;font-size:13px;font-weight:700}.public-legend i{width:12px;height:12px;border-radius:2px;background:#162d6e;box-shadow:inset 3px 0 #f5c200}.public-date-actions{display:flex;align-items:end;gap:8px}.public-date-actions button{min-height:40px;padding:8px 12px;font-size:14px}.public-date-actions #tbi-today{background:#f5c200;border-color:#f5c200;color:#17213d}.public-date-picker{display:grid;gap:3px;color:#667085;font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.public-date-picker input{width:154px;min-height:40px;padding:7px 9px;border-color:#cfd7e4;color:#17213d;font-weight:700;letter-spacing:0;text-transform:none}.public-calendar-panel #tbi-status{margin:14px 0 4px;color:#667085}.public-track-scale{grid-template-columns:152px repeat(4,1fr);margin-top:18px;color:#667085}.public-resource-track{grid-template-columns:152px 1fr;gap:14px;min-height:68px;padding:10px 0}.public-resource-track h3{font-family:Barlow,"Segoe UI",sans-serif;font-size:16px;font-weight:700}.public-track{height:48px;border-color:#e1e7ef;border-radius:7px;background:linear-gradient(90deg,#fff,#fbfcfe)}.public-booked-block{top:6px;bottom:6px;border-left-color:#f5c200;border-radius:5px;background:#162d6e;box-shadow:0 2px 5px rgba(22,45,110,.18)}
.public-date-actions button{transition:transform .16s ease,box-shadow .16s ease,background-color .16s ease}.public-date-actions button:hover{transform:translateY(-2px);box-shadow:0 5px 12px rgba(22,45,110,.16);background:#eef3fb}.public-date-actions #tbi-today:hover{background:#ffda3e}.public-date-actions button:active{transform:translateY(0);box-shadow:none}.public-resource-track:hover h3{color:#2651b2}.public-resource-track:hover .public-track{border-color:#b9c7dc;background:#f9fbff}.public-booked-block:hover{background:#12377c;box-shadow:0 4px 10px rgba(22,45,110,.28)}.public-booked-key{display:inline-flex;align-items:center;min-height:24px;padding:3px 9px;border-left:4px solid #f5c200;border-radius:4px;background:#162d6e;color:#fff;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.public-booking-tooltip{position:fixed;z-index:20;max-width:calc(100vw - 24px);transform:translateX(-50%);padding:8px 11px;border:2px solid #162d6e;border-radius:6px;background:#f5c200;color:#162d6e;box-shadow:0 7px 20px rgba(22,45,110,.32);font-size:12px;font-weight:800;white-space:normal;overflow-wrap:anywhere;pointer-events:none}.public-booking-tooltip::after{content:'';position:absolute;left:var(--tooltip-arrow-left,50%);bottom:-6px;width:10px;height:10px;border-right:2px solid #162d6e;border-bottom:2px solid #162d6e;transform:translateX(-50%) rotate(45deg);background:#f5c200}
@media(max-width:760px){.public-calendar-panel{padding:20px 16px}.public-date-toolbar{align-items:flex-start;flex-direction:column;gap:16px}.public-date-summary strong{font-size:26px}.public-date-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;width:100%;max-width:100%;min-width:0}.public-date-actions button{width:100%;min-width:0}.public-date-picker{grid-column:1/-1;display:block;width:100%;max-width:100%;min-width:0}.public-date-picker span{display:block;margin-bottom:3px}.public-date-picker input{display:block;width:calc(100% - 20px)!important;min-width:0;max-width:calc(100% - 20px);box-sizing:border-box;font-family:system-ui,sans-serif;font-size:19px!important;font-weight:800!important;text-align:center!important}.public-resource-track{grid-template-columns:1fr;gap:6px}.public-track-scale{display:none}}
@media(max-width:760px){.public-booking-tooltip{left:12px!important;right:12px;width:auto;max-width:none;transform:none;text-align:center}}
.public-staff-access{margin:8px 0 0;text-align:right}.public-staff-access a{color:#667085;font-size:12px;font-weight:700;text-decoration:none}.public-staff-access a:hover,.public-staff-access a:focus-visible{color:#2651b2;text-decoration:underline}
.public-booked-logo{width:24px;height:24px;margin:0 4px 0 0;flex:0 0 auto;object-fit:contain;border-radius:3px;background:#fff}
.public-booked-block{justify-content:flex-start}.public-booked-label{min-width:0;flex:1;overflow:hidden;text-align:left}.public-booked-label-track{display:inline-flex;align-items:center;min-width:max-content;will-change:transform}.public-booked-label-copy{margin-left:28px}.public-booked-label.is-overflowing .public-booked-label-track{animation:tbi-booking-marquee var(--marquee-duration,9s) linear infinite}@keyframes tbi-booking-marquee{0%,12%{transform:translateX(0)}88%,100%{transform:translateX(calc(-50% - 14px))}}@media(prefers-reduced-motion:reduce){.public-booked-label.is-overflowing .public-booked-label-track{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;animation:none}.public-booked-label-copy{display:none}}

/* 2026-09 design review: hourly axis and gridlines, visible times, a now marker, and explicit empty rows. */
.public-track-scale{display:grid;grid-template-columns:152px 1fr;gap:14px;margin-top:10px}
.public-scale-axis{position:relative;height:18px}
.public-scale-axis span{position:absolute;top:0;transform:translateX(-50%);white-space:nowrap;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}
.public-track-scale span:not(:first-child){text-align:center}
.public-track{background-color:#fff;background-image:linear-gradient(90deg,#e9edf3 1px,transparent 1px);background-size:calc(100%/18) 100%;background-position:0 0;background-repeat:repeat-x}
.public-track-free{position:absolute;inset:0;display:flex;align-items:center;padding-left:14px;color:#4b6b57;font-size:13px;font-weight:700;pointer-events:none}
.public-track-summary{margin:0;color:#475467;font-size:14px;font-weight:700}
.public-now-line{position:absolute;z-index:2;top:-4px;bottom:-4px;width:2px;margin-left:-1px;border-radius:2px;background:#e96522;pointer-events:none}
.public-now-line[hidden]{display:none}
.public-scale-axis .public-now-tick{top:0;bottom:auto;width:auto;height:auto;margin:0;padding:1px 6px;border-radius:4px;background:#e96522;color:#fff;font-size:11px;font-weight:800;line-height:16px;z-index:3}
@media(min-width:761px){.public-track-summary{display:none}}
@media(max-width:760px){.public-track-scale{display:grid;grid-template-columns:1fr;margin-top:8px}.public-track-scale>span:first-child{display:none}.public-scale-axis .minor{display:none}.public-resource-track{min-height:0;padding:12px 0}.public-resource-track h3{display:flex;align-items:baseline;gap:8px}}
.public-track-scale>span:first-child{grid-column:auto}
.public-scale-axis .near-now{visibility:hidden}

/* Date control layout, moved from an injected <style> so it also applies under a strict style-src CSP. */
.public-date-controls{display:flex;align-items:end;gap:8px}.public-date-controls .public-date-picker{order:1}.public-date-controls .public-date-actions{order:2;display:flex;gap:8px}@media(max-width:760px){.public-date-controls{display:grid;grid-template-columns:1fr;gap:12px;width:100%;max-width:100%;min-width:0}.public-date-controls .public-date-picker{order:1;display:block;width:100%;max-width:100%;min-width:0}.public-date-controls .public-date-picker input{display:block;width:calc(100% - 20px)!important;max-width:calc(100% - 20px);min-width:0;box-sizing:border-box}.public-date-controls .public-date-actions{order:2;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:100%}.public-date-controls .public-date-actions button{width:100%;min-width:0;padding-inline:6px}}
/* Contact links in the availability note and error messages. */
.public-note a,#tbi-status a{color:#162d6e;font-weight:700;text-decoration:underline;text-underline-offset:2px}
.public-note a:hover,#tbi-status a:hover{color:#2651b2}
.public-note a:focus-visible,#tbi-status a:focus-visible{outline:3px solid #2651b2;outline-offset:2px;border-radius:2px}
