/* TWOJE.STUDIO Amelia Calendar 1.2.4
   Visual language aligned with Amelia Step-by-Step 2.0 / layout 2.
   Scoped to .tsac-calendar so Amelia itself is not modified.
*/
.tsac-calendar{--tsac-primary:#1246d5;--tsac-primary-dark:#0f3bb4;--tsac-text:#354052;--tsac-muted:#8b929d;--tsac-border:#e5e7eb;--tsac-bg:#fff;--tsac-soft:#f7f8fa;--tsac-disabled:#c7cbd1;--tsac-danger:#e35d6a;--tsac-radius:8px;width:100%;max-width:100%;margin:0 auto;background:var(--tsac-bg);color:var(--tsac-text);font-family:inherit;font-size:14px;line-height:1.4;box-sizing:border-box}.tsac-calendar *,.tsac-calendar *:before,.tsac-calendar *:after{box-sizing:border-box}
/* Header / month switcher */
.tsac-head{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:8px;width:100%;margin:0 0 22px;padding:0}.tsac-heading{text-align:center;min-width:0}.tsac-title{margin:0;color:var(--tsac-text);font-size:20px;line-height:28px;font-weight:600;text-transform:none}.tsac-subtitle{display:none}.tsac-nav{display:flex;align-items:center;justify-content:center;width:40px;height:40px;margin:0;padding:0;border:1px solid var(--tsac-border);border-radius:50%;background:#fff;color:var(--tsac-text);font-family:inherit;font-size:22px;font-weight:400;line-height:1;cursor:pointer;transition:all .18s ease}.tsac-nav:hover{background:var(--tsac-soft);border-color:#d7dae0}.tsac-nav:active{transform:scale(.96)}.tsac-nav:focus-visible,.tsac-day:focus-visible,.tsac-filters select:focus-visible,.tsac-booking:focus-visible,.tsac-detail-booking:focus-visible{outline:2px solid rgba(18,70,213,.35);outline-offset:2px}
/* Filters */
.tsac-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0 0 24px;padding:0}.tsac-filters label{display:flex;flex-direction:column;gap:7px;margin:0;color:var(--tsac-muted);font-size:12px;font-weight:500}.tsac-filters select{width:100%;min-height:44px;margin:0;padding:0 38px 0 14px;border:1px solid var(--tsac-border);border-radius:6px;background:#fff;color:var(--tsac-text);font:inherit;line-height:42px;appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,#8b929d 50%),linear-gradient(135deg,#8b929d 50%,transparent 50%);background-position:calc(100% - 17px) 18px,calc(100% - 12px) 18px;background-size:5px 5px,5px 5px;background-repeat:no-repeat}.tsac-filters select:focus{outline:none;border-color:var(--tsac-primary);box-shadow:0 0 0 2px rgba(18,70,213,.08)}
/* Legend */
.tsac-legend{display:flex;align-items:center;justify-content:flex-start;gap:18px;flex-wrap:wrap;margin:0 0 14px;padding:0;color:var(--tsac-muted);font-size:12px}.tsac-legend span{display:inline-flex;align-items:center;gap:7px}.tsac-dot{width:7px;height:7px;border-radius:50%;display:inline-block}.tsac-dot-occupied{background:var(--tsac-danger)}.tsac-dot-available{background:var(--tsac-primary)}
/* Calendar grid */
.tsac-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;width:100%}.tsac-weekday{min-width:0;padding:8px 3px 10px;color:var(--tsac-muted);font-size:11px;font-weight:500;line-height:16px;text-align:center;text-transform:uppercase}.tsac-day{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;min-height:52px;margin:0;padding:7px 4px;border:1px solid transparent;border-radius:8px;background:#fff;color:var(--tsac-text);font:inherit;font-size:14px;font-weight:400;line-height:18px;text-align:center;cursor:pointer;transition:background-color .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease,transform .12s ease}.tsac-day:hover{background:#f6f8fb;border-color:#e2e5ea;transform:none;box-shadow:none}.tsac-day.is-unavailable{background:transparent;border-color:transparent;color:var(--tsac-disabled);cursor:not-allowed}.tsac-day.is-unavailable:hover{background:transparent;border-color:transparent}.tsac-day.is-available{color:var(--tsac-text);background:#fff}.tsac-day.is-available:hover{background:#f3f6fc;border-color:#dce4f5;color:var(--tsac-primary)}.tsac-day.is-occupied{background:#fff;color:var(--tsac-text)}.tsac-day.is-occupied:hover{background:#fff6f7;border-color:#f0d6da}.tsac-number{display:block;font-size:14px;line-height:20px;font-weight:500}.tsac-status{display:block;margin-top:2px;max-width:100%;overflow:hidden;color:var(--tsac-muted);font-size:9px;line-height:12px;white-space:nowrap;text-overflow:ellipsis}.is-available .tsac-status{color:var(--tsac-primary)}.is-occupied .tsac-status{color:var(--tsac-danger)}.is-unavailable .tsac-status{color:var(--tsac-disabled)}.tsac-time-count{display:block;margin-top:2px;color:var(--tsac-muted);font-size:8px;line-height:10px}.tsac-day.is-today{box-shadow:inset 0 0 0 1px var(--tsac-primary)}.tsac-day.is-today .tsac-number{color:var(--tsac-primary);font-weight:600}.tsac-blank{visibility:hidden!important;pointer-events:none!important;background:transparent!important;border-color:transparent!important}.tsac-loading,.tsac-error{grid-column:1/-1;min-height:180px;display:flex;align-items:center;justify-content:center;padding:30px;border:1px solid var(--tsac-border);border-radius:8px;background:#fff;color:var(--tsac-muted);text-align:center}.tsac-error{color:#a83c47;background:#fff8f9;border-color:#f0d6da}
/* Day details / time slots */
.tsac-details{margin-top:22px;padding:20px 0 0;border-top:1px solid var(--tsac-border);background:transparent}.tsac-details h3{margin:0 0 6px;color:var(--tsac-text);font-size:16px;font-weight:600;line-height:22px}.tsac-details p{margin:0 0 14px;color:var(--tsac-muted);font-size:13px}.tsac-times{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;list-style:none;margin:0 0 16px;padding:0}.tsac-times li{display:flex;align-items:center;justify-content:center;min-height:42px;padding:9px 10px;border:1px solid var(--tsac-border);border-radius:6px;background:#fff;color:var(--tsac-text);font-size:13px;line-height:18px}.tsac-booking-wrap{text-align:center;margin-top:22px}.tsac-booking,.tsac-detail-booking{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:12px 24px;border:1px solid var(--tsac-primary);border-radius:6px;background:var(--tsac-primary);color:#fff!important;font-family:inherit;font-size:14px;font-weight:500;line-height:20px;text-decoration:none!important;cursor:pointer;transition:background-color .18s ease,border-color .18s ease,transform .12s ease}.tsac-booking:hover,.tsac-detail-booking:hover{background:var(--tsac-primary-dark);border-color:var(--tsac-primary-dark);opacity:1}.tsac-booking:active,.tsac-detail-booking:active{transform:translateY(1px)}.tsac-booking:visited,.tsac-detail-booking:visited{color:#fff}.tsac-detail-booking{margin-top:2px}
.tsac-calendar[hidden],.tsac-filters[hidden]{display:none!important}
/* Tablet */
@media(max-width:767px){.tsac-head{grid-template-columns:40px minmax(0,1fr) 40px;margin-bottom:18px}.tsac-nav{width:38px;height:38px;font-size:20px}.tsac-title{font-size:18px;line-height:26px}.tsac-filters{grid-template-columns:1fr;gap:12px;margin-bottom:20px}.tsac-grid{gap:3px}.tsac-weekday{padding:7px 1px 8px;font-size:10px}.tsac-day{min-height:46px;border-radius:7px;padding:6px 2px}.tsac-number{font-size:13px}.tsac-status{font-size:8px}.tsac-times{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Phone */
@media(max-width:480px){.tsac-head{grid-template-columns:36px minmax(0,1fr) 36px;gap:4px}.tsac-nav{width:34px;height:34px;font-size:18px}.tsac-title{font-size:17px;line-height:24px}.tsac-grid{gap:2px}.tsac-weekday{font-size:9px;padding:5px 0 7px}.tsac-day{min-height:42px;padding:5px 1px;border-radius:6px}.tsac-number{font-size:12px;line-height:18px}.tsac-status{font-size:7px;line-height:9px}.tsac-time-count{display:none}.tsac-legend{justify-content:center;gap:12px;font-size:11px}.tsac-details{margin-top:18px;padding-top:18px}.tsac-times{grid-template-columns:1fr}.tsac-booking,.tsac-detail-booking{width:100%}}
/* 1.2.6: native selects must remain clickable above page/builder overlays. */
.tsac-filters{position:relative;z-index:20}
.tsac-filters label{position:relative;z-index:21}
.tsac-filters select{position:relative;z-index:22;pointer-events:auto}
.tsac-month-filter{grid-column:1/-1}
