.tlb{--tlb-primary:#0c2038;--tlb-accent:#c8a02a;--tlb-border:#d9dde3;--tlb-text:#1b2635;--tlb-muted:#6b7686;max-width:900px;margin:0 auto;color:var(--tlb-text);font-size:15px;line-height:1.5}
.tlb *,.tlb *::before,.tlb *::after{box-sizing:border-box}
.tlb button{font-family:inherit;cursor:pointer;text-transform:none;letter-spacing:normal;box-shadow:none;-webkit-appearance:none;appearance:none;margin:0}
.tlb img{max-width:100%}
.tlb-tile{width:100%;font-size:inherit;color:inherit}
.tlb-tile:focus-visible,.tlb-btn:focus-visible,.tlb-day:focus-visible,.tlb-slot:focus-visible,.tlb-nav:focus-visible{outline:2px solid var(--tlb-accent);outline-offset:2px}

/* Stepper */
.tlb-stepper{display:flex;justify-content:space-between;position:relative;padding:18px 40px 14px;margin-bottom:14px;background:#fff;border:1px solid var(--tlb-border);border-radius:6px}
.tlb-stepper::before{content:"";position:absolute;left:18%;right:18%;top:31px;height:2px;background:var(--tlb-border)}
.tlb-st{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:6px;flex:1;font-size:12px;color:var(--tlb-muted)}
.tlb-dot{width:26px;height:26px;border-radius:50%;background:#fff;border:2px solid var(--tlb-border);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12px;color:var(--tlb-muted)}
.tlb-st.is-active .tlb-dot,.tlb-st.is-done .tlb-dot{background:var(--tlb-primary);border-color:var(--tlb-primary);color:#fff}
.tlb-st.is-active .tlb-dot{box-shadow:0 0 0 3px rgba(200,160,42,.35)}
.tlb-st.is-active .tlb-st-label{color:var(--tlb-primary);font-weight:700}

/* Card */
.tlb-card{background:#fff;border:1px solid var(--tlb-border);border-radius:6px;overflow:hidden}
.tlb-card-body{padding:22px 24px}
.tlb-h{margin:0 0 4px;font-size:20px;color:var(--tlb-primary)}
.tlb-sub,.tlb-muted{color:var(--tlb-muted);font-size:13px}
.tlb-sub{margin:0 0 16px}
.tlb-empty,.tlb-hint{color:var(--tlb-muted);font-size:14px}

/* Summary bar */
.tlb-bar{display:flex;align-items:center;gap:12px;padding:14px 24px;border-bottom:1px solid var(--tlb-border);background:#f8f9fb}
.tlb-bar strong{color:var(--tlb-primary)}
.tlb-bar-label{font-size:10px;letter-spacing:.8px;color:var(--tlb-muted);text-transform:uppercase}
.tlb-bar-appt{background:#fff}
.tlb-bar-text{display:flex;flex-direction:column;flex:1;min-width:0}
.tlb-bar-img{width:48px;height:48px;border-radius:50%;object-fit:cover;flex:none;border:2px solid var(--tlb-accent)}

/* Tiles (services / providers) */
.tlb-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:stretch}
.tlb-tile{position:relative;display:flex;flex-direction:column;text-align:left;height:100%;min-width:0;padding:8px;background:#fff;border:1px solid var(--tlb-border);border-radius:5px;transition:border-color .15s,box-shadow .15s}
.tlb-tile:hover{border-color:var(--tlb-accent)}
.tlb-tile.is-selected{border-color:var(--tlb-accent);box-shadow:0 0 0 2px var(--tlb-accent)}
.tlb .tlb-tile-img{display:block;width:100%;height:105px;object-fit:cover;border-radius:3px;margin:0}
.tlb .tlb-ph{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--tlb-primary),#1c3a60 60%,var(--tlb-accent));color:#fff;font-size:34px;font-weight:700}
.tlb-tile-body{display:flex;flex-direction:column;gap:2px;padding:10px 4px 6px}
.tlb-tile-body strong{font-size:14px;color:var(--tlb-primary)}
.tlb-desc{font-size:12px;line-height:1.45;color:var(--tlb-muted);margin-top:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.tlb-radio{position:absolute;top:16px;right:16px;width:18px;height:18px;border-radius:50%;background:#fff;border:2px solid var(--tlb-border);z-index:1}
.tlb-tile.is-selected .tlb-radio{border-color:var(--tlb-primary);background:radial-gradient(circle,var(--tlb-primary) 45%,#fff 50%)}

/* Buttons */
.tlb-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px;padding-top:16px;border-top:1px solid #eef0f3}
.tlb-center{justify-content:center;border:0}
.tlb-btn{padding:10px 22px;border:1px solid var(--tlb-border);background:#fff;color:var(--tlb-text);border-radius:4px;font-weight:600;font-size:14px}
.tlb-btn:hover{border-color:var(--tlb-primary)}
.tlb-btn.tlb-primary{background:var(--tlb-accent);border-color:var(--tlb-accent);color:#fff}
.tlb-btn.tlb-primary:hover{filter:brightness(.93)}
.tlb-btn:disabled{opacity:.5;cursor:not-allowed}
.tlb-small{padding:7px 14px;font-size:13px}

/* Date & time */
.tlb-cols{display:grid;grid-template-columns:200px 1fr 190px;gap:24px}
.tlb-col h4{margin:0 0 2px;font-size:14px;color:var(--tlb-primary)}
.tlb-col .tlb-muted{margin:0 0 12px}
.tlb-dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:6px 10px;font-size:13px}
.tlb-dl dt{color:var(--tlb-muted)}
.tlb-dl dd{margin:0;font-weight:600;color:var(--tlb-primary)}
.tlb-dl-wide{max-width:420px;margin:18px auto;text-align:left}

.tlb-cal{position:relative}
.tlb-cal-head{display:flex;align-items:center;justify-content:space-between;font-weight:700;color:var(--tlb-primary);margin-bottom:6px}
.tlb-nav{width:28px;height:28px;border:1px solid var(--tlb-border);background:#fff;border-radius:4px;font-size:18px;line-height:1;color:var(--tlb-primary)}
.tlb-nav:disabled{opacity:.35;cursor:not-allowed}
.tlb-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}
.tlb-dow{font-size:11px;color:var(--tlb-muted);padding:4px 0}
.tlb-day{height:34px;border:1px solid transparent;border-radius:4px;background:#fff;font-size:13px;font-weight:600}
.tlb-day:disabled{cursor:not-allowed}
.tlb-d-closed{color:#c3c8d0;background:#fff;font-weight:400}
.tlb-d-available{background:#e3f1e5;color:#1f6b2c}
.tlb-d-partial{background:#e6dcc0;color:#6b5a1e}
.tlb-d-pending{background:#fff3c4;color:#7a5d00}
.tlb-d-booked{background:#f3d4d4;color:#9b2020;opacity:.8}
.tlb-day:not(:disabled):hover{border-color:var(--tlb-primary)}
.tlb-day.is-selected{background:var(--tlb-primary);color:#fff;border-color:var(--tlb-primary)}
.tlb-loading{position:absolute;inset:30px 0 0;background:rgba(255,255,255,.75);display:flex;align-items:center;justify-content:center;font-size:13px;color:var(--tlb-muted)}
.tlb-legend{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:12px;font-size:11px;color:var(--tlb-muted)}
.tlb-legend span{display:flex;align-items:center;gap:5px}
.tlb-legend i{display:inline-block;width:14px;height:14px;border-radius:3px}
.tlb-legend .tlb-d-available{background:#3a9a4a}
.tlb-legend .tlb-d-booked{background:#c94545;opacity:1}
.tlb-legend .tlb-d-pending{background:#f0cf56}
.tlb-legend .tlb-d-partial{background:#b9a46a}

.tlb-slots{display:flex;flex-direction:column;gap:8px;max-height:300px;overflow-y:auto;padding-right:6px}
.tlb-slot{padding:9px 6px;border:1px solid var(--tlb-border);border-radius:4px;background:#fff;font-size:13px;font-weight:600;color:var(--tlb-primary)}
.tlb-slot:hover{border-color:var(--tlb-accent)}
.tlb-slot.is-selected{background:var(--tlb-primary);border-color:var(--tlb-primary);color:#fff}

/* Form */
.tlb-sumline{background:#faf6e8;border-left:3px solid var(--tlb-accent);padding:10px 14px;margin-bottom:18px;font-size:14px;color:var(--tlb-primary)}
.tlb-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.tlb-field{margin-bottom:16px}
.tlb-field label{display:block;font-weight:700;font-size:13px;margin-bottom:5px;color:var(--tlb-primary)}
.tlb-field label b{color:#c94545}
.tlb-field input[type=text],.tlb-field input[type=email],.tlb-field input[type=tel],.tlb-field textarea{width:100%;padding:10px 12px;border:1px solid var(--tlb-border);border-radius:4px;font-size:14px;font-family:inherit;background:#fff;color:var(--tlb-text)}
.tlb-field input:focus,.tlb-field textarea:focus{outline:none;border-color:var(--tlb-accent);box-shadow:0 0 0 2px rgba(200,160,42,.25)}
.tlb-hintline{display:block;margin-top:4px;font-size:12px;color:var(--tlb-muted)}
.tlb-err,.tlb-formerr{display:block;color:#c0392b;font-size:12px;margin-top:3px}
.tlb-formerr{font-size:13px;margin-top:8px}
.tlb-terms label{font-weight:400}
.tlb-terms a{color:var(--tlb-accent)}
.tlb-hp{position:absolute!important;left:-9999px!important;height:0;width:0;opacity:0}

/* Done */
.tlb-done{text-align:center}
.tlb-check{width:64px;height:64px;margin:0 auto 14px;border-radius:50%;background:var(--tlb-primary);color:var(--tlb-accent);font-size:32px;display:flex;align-items:center;justify-content:center}

/* Tablet */
@media (max-width:900px){
	.tlb-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
	.tlb-cols{grid-template-columns:1fr 1fr;gap:20px 24px}
	.tlb-col-sel{grid-column:1/-1}
	.tlb-col-sel .tlb-muted{margin-bottom:8px}
	.tlb-dl{grid-template-columns:repeat(3,auto);justify-content:start;gap:4px 18px}
	.tlb-dl dt{grid-row:1}
	.tlb-dl dd{grid-row:2}
	.tlb-slots{max-height:340px}
}

/* Phone */
@media (max-width:640px){
	.tlb{font-size:14px}
	.tlb-stepper{padding:12px 6px 10px;margin-bottom:10px}
	.tlb-stepper::before{top:25px;left:17%;right:17%}
	.tlb-dot{width:24px;height:24px}
	.tlb-st-label{font-size:11px;text-align:center}
	.tlb-grid,.tlb-row{grid-template-columns:1fr}
	.tlb-tile{height:auto;flex-direction:row;gap:12px;align-items:center}
	.tlb .tlb-tile-img{width:92px;height:92px;flex:none}
	.tlb-tile-body{padding:2px 0;flex:1;min-width:0}
	.tlb-prov .tlb-radio{top:10px;right:10px}
	.tlb-cols{grid-template-columns:1fr}
	.tlb-card-body{padding:16px 14px}
	.tlb-bar{padding:12px 14px;gap:10px;flex-wrap:wrap}
	.tlb-bar-appt{flex-wrap:nowrap}
	.tlb-bar-img{width:40px;height:40px}
	.tlb-dl{grid-template-columns:auto 1fr}
	.tlb-dl dt,.tlb-dl dd{grid-row:auto}
	.tlb-day{height:40px}
	.tlb-slots{flex-direction:row;flex-wrap:wrap;max-height:none;overflow:visible;padding:0;gap:8px}
	.tlb-slot{flex:1 0 28%;padding:12px 4px}
	.tlb-actions{flex-direction:column-reverse}
	.tlb-actions .tlb-btn{width:100%;padding:13px}
	.tlb-field input[type=text],.tlb-field input[type=email],.tlb-field input[type=tel],.tlb-field textarea{font-size:16px;padding:12px}
	.tlb-legend{gap:6px 12px}
}

@media (max-width:360px){
	.tlb .tlb-tile-img{width:72px;height:72px}
	.tlb-slot{flex-basis:44%}
}

@media (prefers-reduced-motion:reduce){.tlb *{transition:none!important}}

/* Interactive states: the theme's own button:hover styles must never change our text colour.
   Every hover / focus / active state = navy background + white text. */
.tlb .tlb-tile:hover,.tlb .tlb-tile:focus,.tlb .tlb-tile:active,.tlb .tlb-tile.is-selected{background:var(--tlb-primary)!important;color:#fff!important;border-color:var(--tlb-accent)!important}
.tlb .tlb-tile:hover strong,.tlb .tlb-tile:focus strong,.tlb .tlb-tile.is-selected strong{color:#fff!important}
.tlb .tlb-tile:hover .tlb-muted,.tlb .tlb-tile:hover .tlb-desc,.tlb .tlb-tile:focus .tlb-muted,.tlb .tlb-tile:focus .tlb-desc,.tlb .tlb-tile.is-selected .tlb-muted,.tlb .tlb-tile.is-selected .tlb-desc{color:rgba(255,255,255,.82)!important}
.tlb .tlb-tile strong{color:var(--tlb-primary)}
.tlb .tlb-tile .tlb-desc,.tlb .tlb-tile .tlb-muted{color:var(--tlb-muted)}

.tlb .tlb-btn:hover:not(:disabled),.tlb .tlb-btn:focus:not(:disabled),.tlb .tlb-btn:active:not(:disabled),
.tlb .tlb-btn.tlb-primary:hover:not(:disabled),.tlb .tlb-btn.tlb-primary:focus:not(:disabled),.tlb .tlb-btn.tlb-primary:active:not(:disabled){background:var(--tlb-primary)!important;border-color:var(--tlb-primary)!important;color:#fff!important;filter:none}
.tlb .tlb-btn{color:var(--tlb-text);background:#fff}
.tlb .tlb-btn.tlb-primary{background:var(--tlb-accent);border-color:var(--tlb-accent);color:#fff}
.tlb .tlb-btn.tlb-primary:disabled{background:var(--tlb-accent)!important;color:#fff!important}

.tlb .tlb-slot:hover,.tlb .tlb-slot:focus,.tlb .tlb-slot:active,.tlb .tlb-slot.is-selected,
.tlb .tlb-nav:hover:not(:disabled),.tlb .tlb-nav:focus:not(:disabled),
.tlb .tlb-day[data-date]:hover,.tlb .tlb-day[data-date]:focus,.tlb .tlb-day.is-selected{background:var(--tlb-primary)!important;border-color:var(--tlb-primary)!important;color:#fff!important}
.tlb .tlb-slot{background:#fff;color:var(--tlb-primary)}
.tlb .tlb-nav{background:#fff;color:var(--tlb-primary)}

/* ==========================================================
   v1.1.1 – Mobile calendar fix (cut-off days / missing next arrow)
   ========================================================== */
.tlb,
.tlb .tlb-cols,
.tlb .tlb-col,
.tlb .tlb-col-cal,
.tlb .tlb-cal{min-width:0 !important;max-width:100% !important}
.tlb .tlb-cols > *{min-width:0 !important}
.tlb .tlb-cal{width:100% !important;overflow:visible !important}
.tlb .tlb-cal-head{display:flex !important;align-items:center !important;justify-content:space-between !important;gap:8px !important;width:100% !important}
.tlb .tlb-cal-head > span{flex:1 1 auto !important;min-width:0 !important;text-align:center !important}
.tlb .tlb-nav{flex:0 0 36px !important;width:36px !important;height:36px !important;min-width:36px !important;padding:0 !important;display:inline-flex !important;align-items:center !important;justify-content:center !important;line-height:1 !important}
.tlb .tlb-cal-grid{display:grid !important;grid-template-columns:repeat(7,minmax(0,1fr)) !important;gap:4px !important;width:100% !important}
.tlb .tlb-dow{min-width:0 !important;padding:4px 0 !important;font-size:11px !important;text-align:center !important}
.tlb .tlb-day{width:100% !important;min-width:0 !important;padding:0 !important;margin:0 !important;font-size:13px !important;line-height:1 !important;display:flex !important;align-items:center !important;justify-content:center !important}
.tlb .tlb-legend{flex-wrap:wrap !important;gap:6px 12px !important}
@media (max-width:640px){
	.tlb .tlb-day{height:40px !important}
	.tlb .tlb-slots{display:grid !important;grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:8px !important;width:100% !important;max-height:none !important;overflow:visible !important;padding:0 !important}
	.tlb .tlb-slot{width:100% !important;min-width:0 !important;flex:none !important;padding:12px 4px !important;white-space:nowrap !important}
}
@media (max-width:360px){
	.tlb .tlb-day{height:36px !important;font-size:12px !important}
	.tlb .tlb-cal-grid{gap:3px !important}
}

/* ==========================================================
   Tax Lab Booking – Customizer fix (now built into the plugin)
   Equal small service boxes, white text on hover, responsive.
   ========================================================== */
#tlb-app .tlb-grid{
	display:grid !important;
	grid-template-columns:repeat(auto-fill,minmax(170px,1fr)) !important;
	gap:14px !important;
	align-items:stretch !important;
	grid-auto-rows:1fr !important;
}
#tlb-app .tlb-tile{
	display:flex !important;
	flex-direction:column !important;
	width:100% !important;
	height:100% !important;
	min-width:0 !important;
	margin:0 !important;
	padding:8px !important;
	text-align:left !important;
	text-transform:none !important;
	letter-spacing:normal !important;
	background:#fff !important;
	color:#1b2635 !important;
	border:1px solid #d9dde3 !important;
	border-radius:6px !important;
	box-shadow:none !important;
	cursor:pointer;
	transition:background .15s, border-color .15s;
}
#tlb-app .tlb-tile-img,
#tlb-app .tlb-tile img{
	display:block !important;
	width:100% !important;
	max-width:100% !important;
	height:105px !important;
	min-height:105px !important;
	max-height:105px !important;
	object-fit:cover !important;
	border-radius:4px !important;
	margin:0 !important;
}
#tlb-app .tlb-tile .tlb-ph{display:flex !important;align-items:center !important;justify-content:center !important}
#tlb-app .tlb-tile-body{
	display:flex !important;
	flex-direction:column !important;
	gap:2px !important;
	padding:10px 4px 6px !important;
}
#tlb-app .tlb-tile strong{font-size:14px !important;line-height:1.3 !important;color:#0c2038 !important}
#tlb-app .tlb-tile .tlb-muted{font-size:12px !important;color:#6b7686 !important}
#tlb-app .tlb-tile .tlb-desc{
	font-size:12px !important;
	line-height:1.45 !important;
	color:#6b7686 !important;
	margin-top:4px !important;
	display:-webkit-box !important;
	-webkit-line-clamp:2;
	-webkit-box-orient:vertical;
	overflow:hidden !important;
}

#tlb-app .tlb-tile:hover,
#tlb-app .tlb-tile:focus,
#tlb-app .tlb-tile:active,
#tlb-app .tlb-tile.is-selected{
	background:#0c2038 !important;
	color:#fff !important;
	border-color:#c8a02a !important;
	outline:none !important;
}
#tlb-app .tlb-tile:hover *,
#tlb-app .tlb-tile:focus *,
#tlb-app .tlb-tile:active *,
#tlb-app .tlb-tile.is-selected *{
	color:#fff !important;
}
#tlb-app .tlb-tile.is-selected{box-shadow:0 0 0 2px #c8a02a !important}

#tlb-app .tlb-btn{
	background:#fff !important;
	color:#1b2635 !important;
	border:1px solid #d9dde3 !important;
	border-radius:4px !important;
	text-transform:none !important;
	box-shadow:none !important;
}
#tlb-app .tlb-btn.tlb-primary,
#tlb-app .tlb-btn.tlb-primary:disabled{
	background:#c8a02a !important;
	border-color:#c8a02a !important;
	color:#fff !important;
}
#tlb-app .tlb-btn:hover:not(:disabled),
#tlb-app .tlb-btn:focus:not(:disabled),
#tlb-app .tlb-btn:active:not(:disabled),
#tlb-app .tlb-btn.tlb-primary:hover:not(:disabled),
#tlb-app .tlb-btn.tlb-primary:focus:not(:disabled){
	background:#0c2038 !important;
	border-color:#0c2038 !important;
	color:#fff !important;
}

#tlb-app .tlb-slot,
#tlb-app .tlb-nav{background:#fff !important;color:#0c2038 !important;box-shadow:none !important}
#tlb-app .tlb-slot:hover,
#tlb-app .tlb-slot:focus,
#tlb-app .tlb-slot.is-selected,
#tlb-app .tlb-nav:hover:not(:disabled),
#tlb-app .tlb-day[data-date]:hover,
#tlb-app .tlb-day[data-date]:focus,
#tlb-app .tlb-day.is-selected{
	background:#0c2038 !important;
	border-color:#0c2038 !important;
	color:#fff !important;
}

@media (max-width:900px){
	#tlb-app .tlb-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
}

@media (max-width:560px){
	#tlb-app .tlb-grid{grid-template-columns:1fr !important;gap:12px !important}
	#tlb-app .tlb-tile{flex-direction:row !important;align-items:center !important;gap:12px !important;height:auto !important}
	#tlb-app .tlb-tile-img,
	#tlb-app .tlb-tile img{width:92px !important;min-width:92px !important;height:92px !important;min-height:92px !important;max-height:92px !important;flex:none !important}
	#tlb-app .tlb-tile-body{padding:2px 0 !important;flex:1 !important;min-width:0 !important}
	#tlb-app .tlb-actions{flex-direction:column-reverse !important}
	#tlb-app .tlb-actions .tlb-btn{width:100% !important;padding:13px !important}
}
