:root{--trb-forest:#23332d;--trb-forest-2:#31483e;--trb-clay:#b56f57;--trb-cream:#f5f0e7;--trb-paper:#fbfaf7;--trb-ink:#26332e;--trb-muted:#68766f;--trb-line:rgba(35,51,45,.14);--trb-shadow:0 26px 80px rgba(35,51,45,.12)}
.trb-booking{position:relative;max-width:1040px;margin:38px auto 0;color:var(--trb-ink);font-family:inherit}
.trb-progress{display:flex;align-items:center;justify-content:center;gap:14px;margin:0 auto 42px;padding:18px 22px;border:1px solid var(--trb-line);border-radius:999px;background:rgba(255,255,255,.74);box-shadow:0 12px 40px rgba(35,51,45,.06);backdrop-filter:blur(12px)}
.trb-progress span{display:flex;align-items:center;gap:9px;color:#94a098;font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;transition:.3s ease}
.trb-progress b{display:grid;width:25px;height:25px;place-items:center;border:1px solid currentColor;border-radius:50%;font-size:.68rem}
.trb-progress span.is-active{color:var(--trb-forest)}.trb-progress span.is-active b{border-color:var(--trb-clay);background:var(--trb-clay);color:#fff}.trb-progress i{width:54px;height:1px;background:var(--trb-line)}
.trb-step{animation:trb-in .42s ease both}.trb-step[hidden],.trb-success[hidden]{display:none!important}@keyframes trb-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.trb-step-heading{display:flex;align-items:flex-start;gap:22px;margin-bottom:26px}.trb-step-heading>span{display:grid;flex:0 0 43px;height:43px;place-items:center;border-radius:50%;background:var(--trb-forest);color:#fff;font-size:.72rem;letter-spacing:.08em}.trb-step-heading h3{margin:0 0 7px!important;font-family:inherit;font-size:clamp(1.65rem,3vw,2.35rem);line-height:1.08}.trb-step-heading p{margin:0;color:var(--trb-muted)}
.trb-service-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.trb-service{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:22px;width:100%;padding:27px;text-align:left;border:1px solid var(--trb-line);border-radius:22px;background:#fff;color:var(--trb-ink);box-shadow:0 10px 35px rgba(35,51,45,.04);cursor:pointer;transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease}.trb-service:hover,.trb-service:focus-visible{transform:translateY(-4px);border-color:var(--trb-clay);box-shadow:var(--trb-shadow);outline:none}.trb-service-time{display:grid;min-width:72px;height:72px;place-content:center;text-align:center;border-radius:18px;background:var(--trb-cream);color:var(--trb-forest)}.trb-service-time strong{font-family:Georgia,serif;font-size:1.8rem;line-height:1}.trb-service-time{font-size:.68rem;text-transform:uppercase}.trb-service-copy{display:flex;flex-direction:column;gap:6px}.trb-service-copy b{font-size:1.06rem}.trb-service-copy small{color:var(--trb-muted);font-size:.84rem;line-height:1.5}.trb-arrow{font-size:1.55rem;color:var(--trb-clay);transition:transform .2s}.trb-service:hover .trb-arrow{transform:translateX(4px)}
.trb-back{margin:0 0 25px;padding:0;border:0;background:none;color:var(--trb-muted);font:inherit;font-size:.84rem;cursor:pointer}.trb-back:hover{color:var(--trb-clay)}
.trb-date-strip{display:flex;gap:10px;overflow-x:auto;padding:5px 3px 17px;scrollbar-width:thin}.trb-date-strip button{display:flex;flex:0 0 78px;min-height:99px;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:1px solid var(--trb-line);border-radius:18px;background:#fff;color:var(--trb-ink);cursor:pointer;transition:.22s}.trb-date-strip button:hover{border-color:var(--trb-clay);transform:translateY(-2px)}.trb-date-strip button.is-selected{border-color:var(--trb-forest);background:var(--trb-forest);color:#fff;box-shadow:0 12px 26px rgba(35,51,45,.22)}.trb-date-strip small,.trb-date-strip span{font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;opacity:.7}.trb-date-strip strong{font-family:Georgia,serif;font-size:1.55rem}
.trb-slots{min-height:145px;margin-top:18px;padding:24px;border:1px solid var(--trb-line);border-radius:22px;background:rgba(255,255,255,.75)}.trb-slot-label{margin:0 0 15px!important;color:var(--trb-muted);font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.trb-slot-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:9px}.trb-slot-grid button{padding:13px 8px;border:1px solid var(--trb-line);border-radius:12px;background:#fff;color:var(--trb-forest);font:inherit;font-weight:700;cursor:pointer;transition:.2s}.trb-slot-grid button:hover{border-color:var(--trb-clay);background:var(--trb-clay);color:#fff}.trb-loading,.trb-no-times{display:flex;min-height:96px;align-items:center;justify-content:center;gap:16px;color:var(--trb-muted)}.trb-loading i{width:24px;height:24px;border:2px solid var(--trb-line);border-top-color:var(--trb-clay);border-radius:50%;animation:trb-spin .8s linear infinite}@keyframes trb-spin{to{transform:rotate(360deg)}}.trb-no-times>span{display:grid;width:42px;height:42px;place-items:center;border-radius:50%;background:var(--trb-cream);font-size:1.3rem}.trb-no-times div{display:flex;flex-direction:column;gap:3px}.trb-no-times small{color:var(--trb-muted)}
.trb-form{padding:30px;border:1px solid var(--trb-line);border-radius:24px;background:#fff;box-shadow:var(--trb-shadow)}.trb-form>label,.trb-form-row>label{display:flex;flex-direction:column;gap:8px;margin-bottom:18px}.trb-form label>span{font-size:.78rem;font-weight:700;letter-spacing:.04em}.trb-form input[type=text],.trb-form input[type=email],.trb-form input[type=tel]{width:100%;height:54px;padding:0 16px;border:1px solid var(--trb-line);border-radius:13px;background:var(--trb-paper);color:var(--trb-ink);font:inherit;transition:.2s}.trb-form input:focus{border-color:var(--trb-clay);box-shadow:0 0 0 4px rgba(181,111,87,.11);outline:none}.trb-form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.trb-consent{display:grid!important;grid-template-columns:auto 1fr;align-items:start;gap:11px!important;color:var(--trb-muted)}.trb-consent input{margin-top:3px;accent-color:var(--trb-forest)}.trb-consent span{font-weight:400!important;line-height:1.55}.trb-submit,.trb-admin-save{display:flex;width:100%;height:56px;align-items:center;justify-content:center;gap:12px;border:0;border-radius:14px;background:var(--trb-forest);color:#fff;font:inherit;font-weight:700;cursor:pointer;transition:.22s}.trb-submit:hover,.trb-admin-save:hover{background:var(--trb-clay);transform:translateY(-1px)}.trb-submit:disabled{cursor:wait;opacity:.65}.trb-form-message{min-height:22px;margin:13px 0 0!important;text-align:center;color:var(--trb-clay);font-size:.83rem}.trb-honeypot{position:absolute!important;left:-9999px!important}
.trb-success{padding:clamp(35px,7vw,78px);text-align:center;border-radius:28px;background:var(--trb-forest);color:#fff;box-shadow:var(--trb-shadow);animation:trb-in .45s ease}.trb-success-mark{display:grid;width:72px;height:72px;margin:0 auto 22px;place-items:center;border:1px solid rgba(255,255,255,.35);border-radius:50%;background:rgba(255,255,255,.09);font-size:1.8rem}.trb-kicker{margin:0 0 8px!important;color:var(--trb-clay);font-size:.72rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.trb-success h3{margin:0 0 12px!important;color:#fff;font-size:clamp(1.8rem,4vw,2.7rem)}.trb-success p:not(.trb-kicker){max-width:600px;margin:0 auto 25px!important;color:rgba(255,255,255,.76)}.trb-success a{color:#fff;text-underline-offset:5px}.trb-muted{color:var(--trb-muted)}
.trb-login-card{max-width:520px;margin:45px auto;padding:clamp(28px,5vw,52px);text-align:center;border:1px solid var(--trb-line);border-radius:28px;background:#fff;box-shadow:var(--trb-shadow)}.trb-lock{display:grid;width:64px;height:64px;margin:0 auto 18px;place-items:center;border-radius:50%;background:var(--trb-cream);color:var(--trb-clay);font-size:1.5rem}.trb-login-card h2{margin:0 0 10px!important}.trb-login-card>p:not(.trb-kicker){color:var(--trb-muted)}.trb-login-card form{text-align:left}.trb-login-card form p{margin:0 0 14px}.trb-login-card label{display:flex;flex-direction:column;gap:6px;font-size:.78rem;font-weight:700}.trb-login-card input[type=text],.trb-login-card input[type=password]{width:100%;height:52px;padding:0 14px;border:1px solid var(--trb-line);border-radius:12px}.trb-login-card .login-remember label{display:block;font-weight:400}.trb-login-card input[type=submit]{width:100%;height:52px;border:0;border-radius:12px;background:var(--trb-forest);color:#fff;font-weight:700;cursor:pointer}
.trb-dashboard{max-width:1180px;margin:20px auto 60px}.trb-dashboard-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:26px}.trb-dashboard-head h2{margin:0!important;font-size:clamp(2rem,4vw,3rem)}.trb-dashboard-head>a{color:var(--trb-muted);font-size:.85rem}.trb-admin-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(330px,.65fr);gap:20px}.trb-admin-panel{padding:25px;border:1px solid var(--trb-line);border-radius:24px;background:#fff;box-shadow:0 15px 50px rgba(35,51,45,.07)}.trb-admin-panel h3{margin:0 0 17px!important}.trb-appointment-list{display:flex;flex-direction:column;gap:10px}.trb-appointment{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:17px;padding:16px;border:1px solid var(--trb-line);border-radius:16px}.trb-appointment time{display:grid;width:57px;height:62px;place-content:center;text-align:center;border-radius:13px;background:var(--trb-cream)}.trb-appointment time strong{font-family:Georgia,serif;font-size:1.45rem;line-height:1}.trb-appointment time span{font-size:.65rem;text-transform:uppercase}.trb-appointment>div{display:grid;grid-template-columns:1fr 1fr;gap:2px 14px}.trb-appointment>div b,.trb-appointment>div span{grid-column:1/-1}.trb-appointment>div span{color:var(--trb-muted);font-size:.78rem}.trb-appointment>div a{color:var(--trb-clay);font-size:.75rem}.trb-appointment form{margin:0}.trb-appointment form button{padding:8px 11px;border:1px solid var(--trb-line);border-radius:9px;background:#fff;color:var(--trb-muted);cursor:pointer}.trb-appointment form button:hover{border-color:#a94848;color:#a94848}.trb-empty{padding:50px 20px;text-align:center;color:var(--trb-muted)}.trb-empty span{font-size:2rem}.trb-admin-notice{margin-bottom:18px;padding:12px 16px;border-radius:12px;background:#e9f3ed;color:#2f6244}.trb-settings-form{display:flex;flex-direction:column;gap:11px}.trb-day{display:grid;grid-template-columns:minmax(100px,1fr) 92px auto 92px;align-items:center;gap:7px}.trb-day label{display:flex;align-items:center;gap:7px;font-size:.8rem;font-weight:700}.trb-day input[type=checkbox]{accent-color:var(--trb-forest)}.trb-day input[type=time],.trb-admin-label input,.trb-admin-label textarea{width:100%;padding:8px;border:1px solid var(--trb-line);border-radius:9px;background:var(--trb-paper);font:inherit}.trb-day em{font-style:normal;color:var(--trb-muted)}.trb-admin-label{display:flex;flex-direction:column;gap:6px;margin-top:8px;font-size:.78rem;font-weight:700}.trb-admin-label small{color:var(--trb-muted);font-weight:400}.trb-admin-save{height:50px;margin-top:8px}.trb-admin-label .trb-form-row{grid-template-columns:1fr 1fr}
@media(max-width:780px){.trb-progress{justify-content:flex-start;overflow-x:auto;border-radius:18px}.trb-progress i{width:20px}.trb-progress span{font-size:.64rem}.trb-service-grid,.trb-form-row,.trb-admin-grid{grid-template-columns:1fr}.trb-service{gap:14px;padding:19px}.trb-service-time{min-width:60px;height:60px}.trb-slot-grid{grid-template-columns:repeat(3,1fr)}.trb-form{padding:21px}.trb-dashboard-head{align-items:flex-start}.trb-appointment{grid-template-columns:auto 1fr}.trb-appointment form{grid-column:1/-1}.trb-appointment form button{width:100%}.trb-day{grid-template-columns:1fr 82px auto 82px}.trb-admin-panel{padding:18px}}
@media(max-width:430px){.trb-progress span{font-size:0}.trb-progress span b{font-size:.68rem}.trb-progress{gap:10px}.trb-service{grid-template-columns:auto 1fr}.trb-arrow{display:none}.trb-step-heading{gap:13px}.trb-date-strip button{flex-basis:70px}.trb-day{grid-template-columns:1fr 1fr auto 1fr}.trb-day label{grid-column:1/-1}.trb-appointment>div{grid-template-columns:1fr}}

/* Clickable client calendar */
.trb-calendar-picker{padding:20px;border:1px solid var(--trb-line);border-radius:24px;background:#fff;box-shadow:0 14px 40px rgba(35,51,45,.06)}
.trb-calendar-head,.trb-admin-calendar-head{display:grid;grid-template-columns:42px 1fr 42px;align-items:center;gap:12px;margin-bottom:17px}
.trb-calendar-head h4,.trb-admin-calendar-head strong{margin:0!important;text-align:center;text-transform:capitalize;font-family:Georgia,serif;font-size:1.35rem;font-weight:500}
.trb-calendar-head button,.trb-admin-calendar-head button{display:grid;width:42px;height:42px;place-items:center;border:1px solid var(--trb-line);border-radius:50%;background:var(--trb-paper);color:var(--trb-forest);cursor:pointer}
.trb-calendar-head button:disabled,.trb-admin-calendar-head button:disabled{opacity:.28;cursor:not-allowed}
.trb-calendar-week,.trb-calendar-grid,.trb-admin-week,.trb-admin-days{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}
.trb-calendar-week,.trb-admin-week{margin-bottom:7px}.trb-calendar-week span,.trb-admin-week span{text-align:center;color:var(--trb-muted);font-size:.64rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.trb-calendar-grid button{position:relative;display:grid;aspect-ratio:1;place-items:center;border:1px solid transparent;border-radius:14px;background:var(--trb-paper);color:var(--trb-forest);font:inherit;font-weight:750;cursor:pointer;transition:.18s}
.trb-calendar-grid button:hover:not(:disabled){border-color:var(--trb-clay);transform:translateY(-1px)}.trb-calendar-grid button.is-selected{background:var(--trb-forest);color:#fff;box-shadow:0 9px 20px rgba(35,51,45,.22)}.trb-calendar-grid button.is-today:not(.is-selected){border-color:var(--trb-clay)}.trb-calendar-grid button.is-outside{opacity:.42}.trb-calendar-grid button:disabled{background:transparent;color:#c5ccc8;cursor:not-allowed;text-decoration:line-through}

/* Tina's clickable closing-day calendar */
.trb-admin-calendar{margin-top:8px;padding:15px;border:1px solid var(--trb-line);border-radius:18px;background:var(--trb-paper)}
.trb-admin-calendar-head{grid-template-columns:34px 1fr 34px;margin-bottom:13px}.trb-admin-calendar-head button{width:34px;height:34px;background:#fff}.trb-admin-calendar-head strong{font-size:1.05rem}
.trb-admin-week,.trb-admin-days{gap:4px}.trb-admin-days button{position:relative;display:grid;aspect-ratio:1;place-items:center;border:1px solid transparent;border-radius:9px;background:#fff;color:var(--trb-forest);font-size:.72rem;font-weight:750;cursor:pointer}.trb-admin-days button:hover:not(:disabled){border-color:var(--trb-clay)}.trb-admin-days button.is-outside{opacity:.35}.trb-admin-days button.is-blocked{background:var(--trb-forest);color:#fff}.trb-admin-days button.has-booking::after{content:"";position:absolute;right:4px;bottom:4px;width:5px;height:5px;border-radius:50%;background:var(--trb-clay);box-shadow:0 0 0 2px #fff}.trb-admin-days button.is-blocked.has-booking::after{box-shadow:0 0 0 2px var(--trb-forest)}.trb-admin-days button:disabled{opacity:.24;cursor:not-allowed}.trb-admin-calendar-status{min-height:35px;margin:12px 0 0!important;color:var(--trb-muted);font-size:.7rem;line-height:1.45}

/* Cancellation composer */
.trb-cancel{position:relative}.trb-cancel>summary{padding:8px 11px;border:1px solid var(--trb-line);border-radius:9px;background:#fff;color:var(--trb-muted);font-size:.76rem;cursor:pointer;list-style:none}.trb-cancel>summary::-webkit-details-marker{display:none}.trb-cancel[open]>summary{border-color:#a94848;color:#a94848}.trb-cancel form{position:absolute;z-index:20;top:calc(100% + 9px);right:0;width:min(360px,calc(100vw - 40px));padding:18px;border:1px solid var(--trb-line);border-radius:18px;background:#fff;box-shadow:0 22px 65px rgba(35,51,45,.2)}.trb-cancel label{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;font-size:.72rem;font-weight:750}.trb-cancel label small{color:var(--trb-muted);font-weight:400}.trb-cancel select,.trb-cancel textarea{width:100%;padding:10px;border:1px solid var(--trb-line);border-radius:10px;background:var(--trb-paper);font:inherit}.trb-cancel .trb-send-mail{display:grid;grid-template-columns:auto 1fr;align-items:center}.trb-cancel .trb-send-mail input{accent-color:var(--trb-forest)}.trb-cancel form button{width:100%;padding:11px;border:0;border-radius:10px;background:#9b4d43;color:#fff;font-weight:750;cursor:pointer}
.trb-appointment-actions{display:flex;flex-direction:column;gap:7px;align-items:stretch}.trb-appointment-actions>form button{width:100%;border-color:rgba(66,90,77,.3);color:var(--trb-forest)}.trb-appointment-actions>form button:hover{border-color:var(--trb-forest);color:var(--trb-forest)}

@media(max-width:780px){.trb-calendar-picker{padding:15px}.trb-calendar-week,.trb-calendar-grid{gap:4px}.trb-calendar-grid button{border-radius:10px}.trb-cancel{grid-column:1/-1}.trb-cancel form{position:relative;top:auto;right:auto;width:100%;margin-top:9px}.trb-cancel>summary{text-align:center}}
@media(max-width:780px){.trb-appointment-actions{grid-column:1/-1;width:100%}}
.trb-admin-grid{align-items:start}
.trb-test-mail-form{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:13px;padding-top:13px;border-top:1px solid var(--trb-line)}.trb-test-mail-form button{padding:8px 12px;border:1px solid var(--trb-line);border-radius:9px;background:#fff;color:var(--trb-forest);font-size:.75rem;font-weight:750;cursor:pointer}.trb-test-mail-form small{color:var(--trb-muted);font-size:.65rem}
