/* AZ Hair Lounge — dashboard. Scoped to .azd / .azd-login. */
.azd, .azd-login {
	/* Measured surface ramp, matching the app. The old values separated
	   page, card and input by 1.08:1 and 1.10:1 with a 1.46:1 border,
	   which is why every panel dissolved into the background. The border
	   now clears 3.04:1 - the WCAG 1.4.11 floor for boundaries that
	   carry meaning. Text colours are unchanged; they already passed. */
	--azd-bg: #141009;
	--azd-panel: #221b13;
	--azd-raise: #302619;
	--azd-line: #6e5e4a;
	--azd-line-soft: #4c4133;
	--azd-text: #f3ead8;
	--azd-muted: #b8ab95;
	--azd-bad: #e07a6a;
	--azd-good: #8fbf7a;
	--azd-gold: var(--azb-gold, #dab254);
	--azd-display: var(--azb-display, "Bebas Neue", Helvetica, Arial, sans-serif);
	font-family: "Montserrat", Helvetica, Arial, sans-serif;
	font-size: 14px;
	line-height: 1.5;
	color: var(--azd-text, #f3ead8);
	-webkit-font-smoothing: antialiased;
}
.azd *, .azd *::before, .azd *::after, .azd-login * { box-sizing: border-box; }
.azd { background: var(--azd-bg, #141009); min-height: 70vh; position: relative; }
.azd-in-admin { margin: 10px 0 0 -20px; min-height: calc(100vh - 32px); }
.azd-wrap { margin: 0; }
.azd button, .azd input, .azd select, .azd textarea { font-family: inherit; }
.azd button { cursor: pointer; }
.azd :focus-visible { outline: 2px solid var(--azd-gold); outline-offset: 2px; }
.azd a { color: var(--azd-gold); }
.azd h1, .azd h2, .azd h3 { color: var(--azd-text, #f3ead8); font-weight: 400; }
.azd-boot, .azd-muted { color: var(--azd-muted, #b8ab95); }
.azd-boot { padding: 40px; }
.azd-noscroll, .azd-noscroll body { overflow: hidden; }

/* Top bar */
.azd-top { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; padding: 12px 24px; background: #15110d; border-bottom: 1px solid var(--azd-line, #6e5e4a); position: -webkit-sticky; position: sticky; top: 0; z-index: 30; }
.azd-in-admin .azd-top { top: 32px; }
.azd-brand { font-family: var(--azd-display); font-size: 26px; letter-spacing: .5px; color: var(--azd-gold); white-space: nowrap; }
.azd-nav { display: flex; gap: 2px; flex: 1 1 auto; overflow-x: auto; }
.azd-nav button { background: none; border: 0; border-bottom: 2px solid transparent; color: var(--azd-muted, #b8ab95); padding: 10px 12px; font-size: 14px; font-weight: 500; white-space: nowrap; }
.azd-nav button:hover { color: var(--azd-text, #f3ead8); }
.azd-nav button.is-on { color: var(--azd-text, #f3ead8); border-bottom-color: var(--azd-gold); }
.azd-user { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.azd-who { display: flex; flex-direction: column; font-weight: 600; line-height: 1.2; }
.azd-who small { font-weight: 400; color: var(--azd-muted, #b8ab95); font-size: 11px; }
.azd .azd-viewas select { width: auto; }
.azd-viewas { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--azd-muted, #b8ab95); }
.azd-banner { background: var(--azd-gold); color: #141009; padding: 8px 24px; font-size: 13px; }
.azd-banner .azd-link { color: #141009; font-weight: 600; }

.azd-main { padding: 24px 28px 56px; width: 100%; max-width: none; box-sizing: border-box; }
.azd-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin: 0 0 18px; }
.azd-head h1 { font-family: var(--azd-display); font-size: 40px; line-height: 1; margin: 0; letter-spacing: .5px; }

/* Controls */
.azd input[type=text], .azd input[type=email], .azd input[type=tel], .azd input[type=url], .azd input[type=password], .azd input[type=number],
.azd input[type=date], .azd input[type=time], .azd input[type=datetime-local], .azd input[type=search], .azd select, .azd textarea {
	background: var(--azd-panel, #221b13); color: var(--azd-text, #f3ead8); border: 1px solid var(--azd-line, #6e5e4a); border-radius: 0;
	padding: 9px 11px; font-size: 16px; min-height: 42px; width: 100%; max-width: 100%; box-shadow: none; line-height: 1.3;
	color-scheme: dark;
}
.azd select { padding-right: 28px; }
.azd input:focus, .azd select:focus, .azd textarea:focus { border-color: var(--azd-gold); outline: none; box-shadow: none; }
.azd input[type=color] { width: 60px; height: 42px; padding: 2px; background: var(--azd-panel, #221b13); border: 1px solid var(--azd-line, #6e5e4a); }
.azd textarea { min-height: 80px; resize: vertical; }
.azd input[type=checkbox] { accent-color: var(--azd-gold); width: 18px; height: 18px; margin: 0; }

.azd-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 40px; padding: 8px 16px; border: 1px solid var(--azd-gold); background: var(--azd-gold); color: #141009; font-weight: 600; font-size: 14px; text-decoration: none; white-space: nowrap; }
.azd-btn:hover { filter: brightness(1.08); }
.azd-btn[disabled] { opacity: .5; cursor: wait; }
.azd-btn-ghost { background: transparent; color: var(--azd-text, #f3ead8); border-color: var(--azd-line, #6e5e4a); }
.azd-btn-ghost:hover { border-color: var(--azd-gold); filter: none; }
.azd-btn-danger { background: transparent; color: var(--azd-bad, #e07a6a); border-color: var(--azd-bad, #e07a6a); }
.azd-link { background: none; border: 0; padding: 0; color: var(--azd-gold); text-decoration: underline; font-size: inherit; }
.azd-danger { color: var(--azd-bad, #e07a6a) !important; }
.azd-err { color: var(--azd-bad, #e07a6a); display: block; }
.azd-ok { color: var(--azd-good, #8fbf7a); }
.azd-alert { border: 1px solid var(--azd-bad, #e07a6a); color: var(--azd-bad, #e07a6a); padding: 12px 14px; margin: 12px 0; }

.azd-range { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.azd .azd-range select { width: auto; }
.azd .azd-range input { width: 160px; }
.azd-range span { color: var(--azd-muted, #b8ab95); }
.azd-filters { display: flex; gap: 10px; margin: 0 0 14px; flex-wrap: wrap; }
.azd .azd-filters select { width: 200px; }
.azd-filters input { flex: 1 1 260px; }

/* Cards & KPIs */
.azd-card { background: var(--azd-panel, #221b13); border: 1px solid var(--azd-line, #6e5e4a); padding: 18px; margin: 0 0 16px; }
.azd-card h2 { font-family: var(--azd-display); font-size: 24px; letter-spacing: .5px; margin: 0 0 12px; }
.azd-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; margin: 0 0 16px; }
.azd-kpi { background: var(--azd-panel, #221b13); border-top: 3px solid var(--azd-gold); padding: 16px 18px; display: flex; flex-direction: column; }
.azd-kpi span { color: var(--azd-muted, #b8ab95); font-size: 13px; }
.azd-kpi strong { font-family: var(--azd-display); font-size: 44px; font-weight: 400; line-height: 1.05; color: var(--azd-text, #f3ead8); }
.azd-kpi small { color: var(--azd-muted, #b8ab95); font-size: 12px; }
.azd-cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: start; }
.azd-cols .azd-card { margin: 0; }
.azd-span2 { grid-column: 1 / -1; }

.azd-bars { display: flex; align-items: flex-end; gap: 3px; height: 180px; padding-top: 8px; }
.azd-bar { flex: 1 1 0; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; min-width: 4px; }
.azd-bar i { display: block; width: 100%; background: var(--azd-gold); min-height: 1px; }
.azd-bar span { font-size: 10px; color: var(--azd-muted, #b8ab95); height: 16px; line-height: 16px; }

/* Tables */
.azd-table-wrap { overflow-x: auto; }
.azd-table { width: 100%; border-collapse: collapse; }
.azd-table th { text-align: left; font-weight: 600; font-size: 12px; color: var(--azd-muted, #b8ab95); padding: 8px 10px; border-bottom: 1px solid var(--azd-line, #6e5e4a); white-space: nowrap; }
.azd-table td { padding: 10px; border-bottom: 1px solid var(--azd-line, #6e5e4a); vertical-align: top; }
.azd-table td small { display: block; color: var(--azd-muted, #b8ab95); font-size: 12px; }
.azd-rows tbody tr { cursor: pointer; }
.azd-rows tbody tr:hover, .azd-rows tbody tr:focus { background: var(--azd-raise, #302619); outline: none; }
.azd-table tr.is-off td { opacity: .5; }
.azd-dot { display: inline-block; width: 9px; height: 9px; border-radius: 50%; margin-right: 7px; vertical-align: 0; }
.azd-thumb { width: 40px; height: 40px; object-fit: cover; display: block; }
.azd-pill { display: inline-block; font-size: 11px; font-weight: 600; padding: 2px 8px; border: 1px solid currentColor; white-space: nowrap; vertical-align: middle; }
.p-pending { color: var(--azd-gold); }
.p-confirmed { color: #9ec3e6; }
.p-completed { color: var(--azd-good, #8fbf7a); }
.p-cancelled, .p-no_show { color: var(--azd-bad, #e07a6a); }

/* People */
.azd-people { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 12px; }
.azd-person { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 20px 12px; background: var(--azd-panel, #221b13); border: 1px solid var(--azd-line, #6e5e4a); color: var(--azd-text, #f3ead8); text-align: center; }
.azd-person:hover { border-color: var(--azd-gold); }
.azd-person.is-off { opacity: .5; }
.azd-person img, .azd-ph { width: 84px; height: 84px; border-radius: 50%; object-fit: cover; margin-bottom: 4px; }
.azd-ph { display: flex; align-items: center; justify-content: center; background: var(--azd-raise, #302619); font-family: var(--azd-display); font-size: 34px; color: var(--azd-gold); }
.azd-person strong { font-size: 15px; }
.azd-person small { color: var(--azd-muted, #b8ab95); font-size: 12px; }
.azd-legend { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: -6px 0 12px; }
.azd-legend .azd-link { color: var(--azd-text, #f3ead8); text-decoration: none; font-size: 13px; }

/* Forms */
.azd-form { display: flex; flex-direction: column; gap: 12px; }
.azd-field { display: flex; flex-direction: column; gap: 5px; min-width: 0; flex: 1 1 0; }
.azd-field label { font-weight: 600; font-size: 13px; }
.azd-field small { color: var(--azd-muted, #b8ab95); font-size: 12px; }
.azd-row { display: flex; gap: 12px; align-items: flex-end; flex-wrap: wrap; }
.azd-row > * { flex: 1 1 140px; }
.azd-row3 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; align-items: end; }
.azd-row3 > :nth-child(n+3) { grid-column: 1 / -1; }
.azd-check { display: flex; align-items: center; gap: 8px; font-size: 14px; cursor: pointer; }
.azd fieldset { border: 1px solid var(--azd-line, #6e5e4a); padding: 12px; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.azd legend { padding: 0 6px; font-weight: 600; color: var(--azd-muted, #b8ab95); font-size: 12px; }
.azd-actions { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-top: 4px; }
.azd-checklist { max-height: 260px; overflow-y: auto; border: 1px solid var(--azd-line, #6e5e4a); padding: 6px 10px; }
.azd-checklist label { display: flex; gap: 8px; align-items: center; padding: 5px 0; font-weight: 400; font-size: 14px; cursor: pointer; }
.azd-checklist small { color: var(--azd-muted, #b8ab95); margin-left: auto; padding-left: 8px; white-space: nowrap; }
.azd-cl-head { margin: 8px 0 2px; font-size: 11px; font-weight: 700; color: var(--azd-gold); }
.azd-slots div { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.azd-chip { border: 1px solid var(--azd-line, #6e5e4a); background: var(--azd-raise, #302619); color: var(--azd-text, #f3ead8); padding: 6px 10px; font-size: 13px; }
.azd-chip:hover, .azd-chip.is-on { border-color: var(--azd-gold); }
.azd-chip.is-on { background: var(--azd-gold); color: #141009; }
.azd-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 6px; }
.azd-chipcheck { display: flex; align-items: center; gap: 6px; border: 1px solid var(--azd-line, #6e5e4a); padding: 6px 10px; font-weight: 400 !important; cursor: pointer; }

/* Hours */
.azd-hours { display: flex; flex-direction: column; gap: 0; }
.azd-hday { display: grid; grid-template-columns: 110px 1fr auto; gap: 10px; align-items: center; padding: 8px 0; border-bottom: 1px solid var(--azd-line, #6e5e4a); }
.azd-hname { font-weight: 600; }
.azd-hblocks { display: flex; flex-wrap: wrap; gap: 8px; }
.azd-hblock { display: inline-flex; align-items: center; gap: 4px; }
.azd .azd-hblock input { width: 140px; }
.azd-x { background: none; border: 0; color: var(--azd-muted, #b8ab95); font-size: 22px; line-height: 1; padding: 2px 6px; }
.azd-x:hover { color: var(--azd-text, #f3ead8); }
.azd-timeoff ul { list-style: none; margin: 0 0 12px; padding: 0; }
.azd-timeoff li { display: flex; justify-content: space-between; gap: 10px; padding: 6px 0; border-bottom: 1px solid var(--azd-line, #6e5e4a); }
.azd-tabs2 h3 { font-family: var(--azd-display); font-size: 22px; letter-spacing: .5px; margin: 22px 0 8px; }
.azd-tabs2 h3:first-child { margin-top: 0; }

/* Drawer */
.azd-drawer { position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 100000; visibility: hidden; }
.azd-drawer.is-on { visibility: visible; }
.azd-drawer-bg { position: absolute; top: 0; right: 0; bottom: 0; left: 0; background: rgba(0, 0, 0, .55); opacity: 0; transition: opacity .2s; }
.azd-drawer.is-on .azd-drawer-bg { opacity: 1; }
.azd-drawer-panel { position: absolute; top: 0; right: 0; bottom: 0; width: 560px; max-width: 100%; background: var(--azd-bg, #141009); border-left: 1px solid var(--azd-line, #6e5e4a); display: flex; flex-direction: column; transform: translateX(100%); transition: transform .22s ease-out; }
.azd-drawer.is-on .azd-drawer-panel { transform: translateX(0); }
.azd-drawer-panel > header { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 14px 20px; border-bottom: 1px solid var(--azd-line, #6e5e4a); }
.azd-drawer-panel h2 { font-family: var(--azd-display); font-size: 28px; margin: 0; letter-spacing: .5px; }
.azd-drawer-panel h3 { font-family: var(--azd-display); font-size: 22px; margin: 20px 0 8px; letter-spacing: .5px; }
.azd-drawer-body { overflow-y: auto; padding: 18px 20px 40px; flex: 1 1 auto; -webkit-overflow-scrolling: touch; }
.azd-in-admin ~ * .azd-drawer, .azd-in-admin .azd-drawer-panel { padding-top: 0; }
body.admin-bar .azd-drawer { top: 32px; }
.azd-when { font-size: 15px; margin: 0 0 6px; }
.azd-when strong { font-family: var(--azd-display); font-size: 34px; font-weight: 400; color: var(--azd-gold); }
.azd-contact { margin: 0 0 12px; }
.azd-quick { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 18px; padding-bottom: 16px; border-bottom: 1px solid var(--azd-line, #6e5e4a); }
.azd-sms { list-style: none; margin: 0; padding: 0; }
.azd-sms li { padding: 8px 10px; margin-bottom: 6px; background: var(--azd-panel, #221b13); border-left: 3px solid var(--azd-line, #6e5e4a); }
.azd-sms li.s-failed { border-left-color: var(--azd-bad, #e07a6a); }
.azd-sms li.s-sent, .azd-sms li.s-received { border-left-color: var(--azd-good, #8fbf7a); }
.azd-sms small { display: block; color: var(--azd-muted, #b8ab95); font-size: 11px; }
.azd-sms em { display: block; color: var(--azd-bad, #e07a6a); font-style: normal; font-size: 12px; }
.azd-meta { font-size: 12px; margin-top: 20px; }
.azd-preview { max-width: 160px; max-height: 120px; object-fit: cover; }

/* Settings */
.azd-settings .azd-card { margin: 0; }
.azd-settings { gap: 16px; }
.azd-set { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 20px; }
.azd-set h2 { grid-column: 1 / -1; margin-bottom: 0; }
.azd-set-row { min-width: 0; display: flex; }
.azd-set[data-sec=templates], .azd-set[data-sec=templates] .azd-set-row { grid-template-columns: 1fr; }
.azd-set[data-sec=templates] { grid-template-columns: 1fr; }
.azd-smstools { grid-column: 1 / -1; border-top: 1px solid var(--azd-line, #6e5e4a); padding-top: 12px; }
.azd-smstools code { background: var(--azd-raise, #302619); color: var(--azd-text, #f3ead8); padding: 2px 6px; word-break: break-all; }
.azd-savebar { position: -webkit-sticky; position: sticky; bottom: 0; background: #15110d; border-top: 1px solid var(--azd-line, #6e5e4a); padding: 12px 0; z-index: 5; }

/* Toast */
.azd-toast { position: fixed; left: 50%; bottom: 24px; transform: translate(-50%, 20px); background: var(--azd-text, #f3ead8); color: #141009; padding: 12px 18px; font-weight: 600; opacity: 0; pointer-events: none; transition: opacity .2s, transform .2s; z-index: 100001; max-width: 90vw; }
.azd-toast.is-on { opacity: 1; transform: translate(-50%, 0); }
.azd-toast.is-bad { background: var(--azd-bad, #e07a6a); }

/* FullCalendar, dark */
.azd-cal { padding: 12px; }
.azd .fc { --fc-border-color: var(--azd-line, #6e5e4a); --fc-page-bg-color: var(--azd-panel, #221b13); --fc-neutral-bg-color: var(--azd-raise, #302619); --fc-today-bg-color: rgba(218, 178, 84, .08); --fc-now-indicator-color: var(--azd-bad, #e07a6a); --fc-list-event-hover-bg-color: var(--azd-raise, #302619); --fc-button-bg-color: transparent; --fc-button-border-color: var(--azd-line, #6e5e4a); --fc-button-text-color: var(--azd-text, #f3ead8); --fc-button-hover-bg-color: var(--azd-raise, #302619); --fc-button-hover-border-color: var(--azd-gold); --fc-button-active-bg-color: var(--azd-gold); --fc-button-active-border-color: var(--azd-gold); --fc-highlight-color: rgba(218, 178, 84, .2); font-size: 13px; }
.azd .fc .fc-button-primary:not(:disabled).fc-button-active { color: #141009; }
.azd .fc .fc-button { border-radius: 0; box-shadow: none !important; text-transform: none; }
.azd .fc .fc-toolbar-title { font-family: var(--azd-display); font-size: 28px; font-weight: 400; letter-spacing: .5px; }
.azd .fc .fc-col-header-cell-cushion, .azd .fc .fc-daygrid-day-number, .azd .fc .fc-list-day-text, .azd .fc .fc-list-day-side-text { color: var(--azd-text, #f3ead8); text-decoration: none; }
.azd .fc .fc-timegrid-slot-label { color: var(--azd-muted, #b8ab95); }
.azd .fc-event { cursor: pointer; border-radius: 2px; }
.azd .fc-event .fc-event-main { color: #141009; font-weight: 500; }
.azd .fc-list-event-title, .azd .fc-list-event-time { color: var(--azd-text, #f3ead8); }
.azd .azd-ev-pending { background-image: repeating-linear-gradient(135deg, rgba(255,255,255,.35) 0 6px, transparent 6px 12px); }
.azd .azd-ev-completed { opacity: .65; }
.azd .azd-ev-no_show, .azd .azd-ev-cancelled { opacity: .45; text-decoration: line-through; }
.azd .azd-ev-off { background: repeating-linear-gradient(45deg, #6e5e4a 0 8px, #302619 8px 16px) !important; border-color: #6e5e4a !important; }
.azd .azd-ev-off .fc-event-main { color: var(--azd-muted, #b8ab95); }

/* Login */
.azd-login { max-width: 420px; margin: 40px auto; padding: 32px; background: #141009; border-top: 3px solid var(--azb-gold, #dab254); }
.azd-login h2 { font-family: var(--azb-display, "Bebas Neue", sans-serif); font-weight: 400; font-size: 40px; margin: 0; color: var(--azb-gold, #dab254); letter-spacing: .5px; }
.azd-login > p { color: #b8ab95; margin: 0 0 18px; }
.azd-login label { display: block; font-weight: 600; font-size: 13px; margin-bottom: 5px; color: #f3ead8; }
.azd-login input[type=text], .azd-login input[type=password] { width: 100%; font-size: 16px; padding: 11px 12px; background: #221b13; color: #f3ead8; border: 1px solid #6e5e4a; border-radius: 0; }
.azd-login .login-remember label { display: flex; align-items: center; gap: 8px; font-weight: 400; }
.azd-login input[type=submit] { width: 100%; min-height: 48px; background: var(--azb-gold, #dab254); color: #141009; border: 0; font-weight: 600; font-size: 15px; cursor: pointer; border-radius: 0; }
.azd-login .azd-login-err { color: #e07a6a; }
.azd-login-lost a { color: var(--azb-gold, #dab254); font-size: 13px; }
.azd-login a { color: var(--azb-gold, #dab254); }

@media (max-width: 782px) {
	.azd-in-admin .azd-top { top: 46px; }
	body.admin-bar .azd-drawer { top: 46px; }
}
@media (prefers-reduced-motion: reduce) {
	.azd *, .azd-drawer-panel, .azd-drawer-bg, .azd-toast { transition: none !important; }
}

/* ------------------------------------------------------------------
   Theme-proofing: lock hover/focus colors (themes often turn text the
   same color as the background on hover).
   ------------------------------------------------------------------ */
.azd button, .azd button:hover, .azd button:focus, .azd button:active { text-transform: none; letter-spacing: normal; box-shadow: none; text-shadow: none; border-radius: 0; line-height: 1.25; }
.azd select, .azd select:hover, .azd select:focus, .azd select:active,
.azd textarea, .azd textarea:hover, .azd textarea:focus,
.azd input:not([type=checkbox]):not([type=radio]):not([type=color]),
.azd input:not([type=checkbox]):not([type=radio]):not([type=color]):hover,
.azd input:not([type=checkbox]):not([type=radio]):not([type=color]):focus {
	background-color: var(--azd-panel, #221b13) !important; color: var(--azd-text, #f3ead8) !important; -webkit-text-fill-color: var(--azd-text, #f3ead8); box-shadow: none !important; text-shadow: none;
	text-transform: none !important; letter-spacing: normal; border-radius: 0 !important; font-family: inherit;
}
.azd select:hover, .azd input:not([type=checkbox]):not([type=radio]):hover, .azd textarea:hover { border-color: #6b5b43 !important; }
.azd select:focus, .azd input:focus, .azd textarea:focus { border-color: var(--azd-gold) !important; }
.azd select option { background-color: #221b13; color: #f3ead8; }
.azd input::placeholder, .azd textarea::placeholder { color: #8a7f6d; -webkit-text-fill-color: #8a7f6d; opacity: 1; }
.azd input:-webkit-autofill { -webkit-box-shadow: 0 0 0 40px var(--azd-panel, #221b13) inset !important; -webkit-text-fill-color: var(--azd-text, #f3ead8); }
.azd .azd-btn:hover, .azd .azd-btn:focus, .azd .azd-btn:active { background-color: var(--azd-gold) !important; color: #141009 !important; border-color: var(--azd-gold) !important; }
.azd .azd-btn-ghost, .azd .azd-btn-ghost:hover, .azd .azd-btn-ghost:focus, .azd .azd-btn-ghost:active { background-color: transparent !important; color: var(--azd-text, #f3ead8) !important; }
.azd .azd-btn-ghost:hover { border-color: var(--azd-gold) !important; }
.azd .azd-btn-danger, .azd .azd-btn-danger:hover, .azd .azd-btn-danger:focus { background-color: transparent !important; color: var(--azd-bad, #e07a6a) !important; border-color: var(--azd-bad, #e07a6a) !important; }
.azd .azd-link, .azd .azd-link:hover, .azd .azd-link:focus { background: none !important; color: var(--azd-gold) !important; padding: 0; min-height: 0; border: 0; }
.azd .azd-nav button, .azd .azd-nav button:hover, .azd .azd-nav button:focus { background: none !important; color: var(--azd-muted, #b8ab95) !important; }
.azd .azd-nav button:hover, .azd .azd-nav button:focus-visible, .azd .azd-nav button.is-on { color: var(--azd-text, #f3ead8) !important; }
.azd .azd-x, .azd .azd-x:hover, .azd .azd-x:focus { background: none !important; color: var(--azd-muted, #b8ab95) !important; border: 0; }
.azd .azd-x:hover { color: var(--azd-text, #f3ead8) !important; }
.azd .azd-chip:hover, .azd .azd-chip:focus { background-color: var(--azd-raise, #302619) !important; color: var(--azd-text, #f3ead8) !important; }
.azd .azd-chip.is-on, .azd .azd-chip.is-on:hover { background-color: var(--azd-gold) !important; color: #141009 !important; }
.azd .azd-person:hover, .azd .azd-person:focus { background-color: var(--azd-panel, #221b13) !important; color: var(--azd-text, #f3ead8) !important; }
.azd .azd-banner .azd-link, .azd .azd-banner .azd-link:hover { color: #141009 !important; }
.azd .azd-legend .azd-link, .azd .azd-legend .azd-link:hover { color: var(--azd-text, #f3ead8) !important; }
.azd .fc .fc-button:hover, .azd .fc .fc-button:focus { background-color: var(--azd-raise, #302619) !important; color: var(--azd-text, #f3ead8) !important; border-color: var(--azd-gold) !important; }
.azd .fc .fc-button.fc-button-active, .azd .fc .fc-button.fc-button-active:hover { background-color: var(--azd-gold) !important; color: #141009 !important; }
.azd h1, .azd h2, .azd h3 { text-transform: none; }
.azd-login input[type=text], .azd-login input[type=password], .azd-login input:hover, .azd-login input:focus { background-color: #221b13 !important; color: #f3ead8 !important; -webkit-text-fill-color: #f3ead8; }
.azd-login input[type=submit]:hover, .azd-login input[type=submit]:focus { background-color: var(--azb-gold, #dab254) !important; color: #141009 !important; filter: brightness(1.08); }
.azd-cal.is-loading { opacity: .7; }

/* ------------------------------------------------------------------
   Responsive (container based: .is-md < 900px, .is-sm < 620px)
   ------------------------------------------------------------------ */
.azd { overflow-x: clip; }
.azd.is-md .azd-cols, .azd.is-md .azd-set { grid-template-columns: 1fr; }
.azd.is-md .azd-top { padding: 10px 14px; gap: 10px; }
.azd.is-md .azd-main { padding: 16px 14px; }
.azd.is-md .azd-banner { padding: 8px 14px; }
.azd.is-md.azd-in-admin { margin-left: -10px; }
.azd.is-md .azd-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.azd.is-sm .azd-top { flex-wrap: wrap; }
.azd.is-sm .azd-brand { font-size: 22px; flex: 1 1 auto; }
.azd.is-sm .azd-user { flex: 1 1 100%; order: 2; }
.azd.is-sm .azd-user .azd-btn { flex: 1 1 auto; }
.azd.is-sm .azd-viewas { flex: 1 1 100%; }
.azd.is-sm .azd-viewas select { flex: 1 1 auto; width: auto; }
.azd.is-sm .azd-who { display: none; }
.azd.is-sm .azd-head h1 { font-size: 32px; }
.azd.is-sm .azd-head { align-items: stretch; }
.azd.is-sm .azd-head > .azd-btn { width: 100%; }
.azd.is-sm .azd-range { width: 100%; }
.azd.is-sm .azd-range select { flex: 1 1 100%; width: 100%; }
.azd.is-sm .azd-range input { flex: 1 1 0; width: auto; min-width: 0; }
.azd.is-sm .azd-filters select { width: 100%; }
.azd.is-sm .azd-kpis { gap: 8px; }
.azd.is-sm .azd-kpi { padding: 12px; }
.azd.is-sm .azd-kpi strong { font-size: 30px; }
.azd.is-sm .azd-card { padding: 14px 12px; }
.azd.is-sm .azd-people { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.azd.is-sm .azd-person img, .azd.is-sm .azd-ph { width: 64px; height: 64px; }
.azd.is-sm .azd-bars { height: 120px; gap: 1px; }
.azd.is-sm .azd-hday { grid-template-columns: 1fr auto; }
.azd.is-sm .azd-hblocks { grid-column: 1 / -1; order: 3; }
.azd.is-sm .azd-row3 { grid-template-columns: 1fr; }
.azd.is-sm .azd-savebar .azd-btn { width: 100%; }
.azd.is-sm .fc .fc-toolbar { flex-wrap: wrap; gap: 8px; }
.azd.is-sm .fc .fc-toolbar-title { font-size: 22px; }

/* Tables become stacked cards on small widths (labels come from data-label). */
.azd.is-sm .azd-table thead { display: none; }
.azd.is-sm .azd-table, .azd.is-sm .azd-table tbody, .azd.is-sm .azd-table tr, .azd.is-sm .azd-table td { display: block; width: 100%; }
.azd.is-sm .azd-table tr { border: 1px solid var(--azd-line, #6e5e4a); margin: 0 0 8px; padding: 6px 10px; background: var(--azd-bg, #141009); }
.azd.is-sm .azd-table td { border: 0; padding: 5px 0; display: flex; justify-content: space-between; gap: 12px; text-align: right; }
.azd.is-sm .azd-table td[data-label]::before { content: attr(data-label); color: var(--azd-muted, #b8ab95); font-size: 12px; text-align: left; flex: 0 0 auto; }
.azd.is-sm .azd-table td small { display: block; }
.azd.is-sm .azd-table td:empty { display: none; }

/* Drawer: full screen on phones (viewport based — the drawer is fixed). */
@media (max-width: 600px) {
	.azd-drawer-panel { width: 100%; border-left: 0; }
	.azd-drawer-body { padding: 14px 14px 60px; }
	.azd-drawer-panel h2 { font-size: 24px; }
	.azd .azd-row > * { flex-basis: 100%; }
	.azd .azd-quick .azd-btn { flex: 1 1 45%; }
	.azd .azd-actions .azd-btn { flex: 1 1 100%; }
	.azd-toast { left: 12px; right: 12px; transform: translate(0, 20px); max-width: none; }
	.azd-toast.is-on { transform: translate(0, 0); }
}
@media (hover: none) {
	.azd .azd-rows tbody tr:hover { background: transparent; }
}

/* Full-screen dashboard page */
.azd { width: 100%; max-width: 100%; min-width: 0; }
.azd-main { min-width: 0; }
.azd-cal { min-width: 0; overflow: hidden; }
.azd-top { flex-wrap: wrap; }
.azd-user .azd-link { white-space: nowrap; }
body.azd-standalone { font-family: "Montserrat", Helvetica, Arial, sans-serif; }
/* Left-aligned and full-bleed. See the note on .azd-main: auto margins
   here collapsed the whole dashboard into a narrow centred column. */
.azd-full .azd-main { margin: 0; }
.azd-full .azd-top { top: 0; }
.azd-login-page { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 20px; box-sizing: border-box; background: #15110d; }
.azd-login-page .azd-login { margin: 0; width: 100%; }

.azd .azd-subhead { font-family: var(--azd-display); font-size: 20px; letter-spacing: .5px; margin: 18px 0 6px; }

/* ---------- Notification bell ---------- */
.azd-bellwrap { position: relative; }
.azd .azd-bell, .azd .azd-bell:hover, .azd .azd-bell:focus { position: relative; width: 42px; height: 42px; display: inline-flex; align-items: center; justify-content: center; padding: 0; background: transparent !important; color: var(--azd-text, #f3ead8) !important; border: 1px solid var(--azd-line, #6e5e4a) !important; }
.azd .azd-bell:hover, .azd .azd-bell[aria-expanded=true] { border-color: var(--azd-gold) !important; color: var(--azd-gold) !important; }
.azd-badge { position: absolute; top: -7px; right: -7px; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 10px; background: var(--azd-bad, #e07a6a); color: #141009; font-size: 11px; font-weight: 700; line-height: 20px; text-align: center; }
.azd-badge[hidden] { display: none; }
.azd-bellpanel { position: absolute; right: 0; top: calc(100% + 8px); width: 360px; max-width: calc(100vw - 24px); max-height: 70vh; overflow-y: auto; background: var(--azd-bg, #141009); border: 1px solid var(--azd-line, #6e5e4a); box-shadow: 0 16px 40px rgba(0, 0, 0, .5); z-index: 60; }
.azd-bellpanel[hidden] { display: none; }
.azd-bellhead { display: flex; justify-content: space-between; align-items: center; padding: 12px 14px; border-bottom: 1px solid var(--azd-line, #6e5e4a); position: -webkit-sticky; position: sticky; top: 0; background: var(--azd-bg, #141009); }
.azd-bellpanel ul { list-style: none; margin: 0; padding: 0; }
.azd-bellpanel li { border-bottom: 1px solid var(--azd-line, #6e5e4a); }
.azd .azd-bellpanel li button, .azd .azd-bellpanel li button:hover, .azd .azd-bellpanel li button:focus { display: flex; gap: 10px; width: 100%; text-align: left; padding: 12px 14px; background: transparent !important; color: var(--azd-text, #f3ead8) !important; border: 0; }
.azd .azd-bellpanel li button:hover { background: var(--azd-raise, #302619) !important; }
.azd-bellpanel li.is-unread { box-shadow: inset 3px 0 0 var(--azd-gold); }
.azd-bellpanel li.is-unread strong { color: var(--azd-gold); }
.azd-nicon { flex: 0 0 28px; height: 28px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 14px; background: var(--azd-raise, #302619); color: var(--azd-text, #f3ead8); }
.azd-nicon.t-new, .azd-nicon.t-approved, .azd-nicon.t-client_confirmed { color: var(--azd-good, #8fbf7a); }
.azd-nicon.t-cancel { color: var(--azd-bad, #e07a6a); }
.azd-nicon.t-change { color: var(--azd-gold); }
.azd-ntext { display: flex; flex-direction: column; min-width: 0; font-size: 13px; line-height: 1.4; }
.azd-ntext strong { font-size: 14px; }
.azd-ntext span { color: var(--azd-muted, #b8ab95); }
.azd-ntext small { color: #8a7f6d; font-size: 11px; margin-top: 2px; }
.azd-bellempty { padding: 16px 14px; margin: 0; }
.azd-bellfoot { padding: 10px 14px; }
.azd.is-sm .azd-bellwrap { order: -1; }
@media (max-width: 600px) {
	.azd-bellpanel { position: fixed; left: 12px; right: 12px; top: 70px; width: auto; }
}

/* ---------- Login form: readable fields incl. browser autofill ---------- */
.azd-login input[type=text], .azd-login input[type=password], .azd-login input[type=email] {
	background-color: #221b13 !important; color: #f3ead8 !important; -webkit-text-fill-color: #f3ead8 !important;
	caret-color: #f3ead8; border: 1px solid #6e5e4a !important; box-shadow: none !important; font-family: "Montserrat", Helvetica, Arial, sans-serif;
}
.azd-login input[type=text]:focus, .azd-login input[type=password]:focus { border-color: var(--azb-gold, #dab254) !important; outline: none; }
.azd-login input::placeholder { color: #8a7f6d !important; -webkit-text-fill-color: #8a7f6d !important; opacity: 1; }
.azd-login input:-webkit-autofill, .azd-login input:-webkit-autofill:hover, .azd-login input:-webkit-autofill:focus, .azd-login input:-webkit-autofill:active {
	-webkit-box-shadow: 0 0 0 1000px #221b13 inset !important; box-shadow: 0 0 0 1000px #221b13 inset !important;
	-webkit-text-fill-color: #f3ead8 !important; caret-color: #f3ead8; transition: background-color 9999s ease-out 0s;
}
.azd-login input:autofill { background-color: #221b13 !important; color: #f3ead8 !important; }
.azd-login .login-remember input { accent-color: var(--azb-gold, #dab254); width: 18px; height: 18px; }
.azd-login p { margin: 0 0 14px; }

/* ============================================================
   Booking-suite shell: a persistent left rail of areas that
   expand into their own sub-items, with the section itself
   filling the rest. Below ~900px the rail becomes an overlay
   opened by the burger, so the same markup serves both.
   ============================================================ */
.azd-shell { display: flex; align-items: stretch; min-height: 100vh; }
.azd-body { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; }

.azd-side {
	flex: 0 0 252px; width: 252px; background: #15110d;
	border-right: 1px solid var(--azd-line, #6e5e4a);
	display: flex; flex-direction: column;
	position: -webkit-sticky; position: sticky; top: 0; align-self: flex-start;
	max-height: 100vh; overflow-y: auto; z-index: 40;
}
.azd-in-admin .azd-side { top: 32px; max-height: calc(100vh - 32px); }
.azd-sidehead { display: flex; align-items: center; gap: 11px; padding: 16px 18px; border-bottom: 1px solid var(--azd-line, #6e5e4a); }
.azd-sideavatar {
	width: 32px; height: 32px; flex: 0 0 32px; border-radius: 50%;
	background: var(--azd-raise, #302619); color: var(--azd-gold);
	display: flex; align-items: center; justify-content: center;
	font-family: var(--azd-display); font-size: 17px; line-height: 1;
}
.azd-sidename { font-size: 14px; font-weight: 600; color: var(--azd-text, #f3ead8); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.azd-nav { display: block; padding: 8px 0; }
.azd-navrow {
	display: flex; align-items: center; gap: 12px; width: 100%;
	background: none; border: 0; padding: 11px 18px; text-align: left;
	color: var(--azd-text, #f3ead8); font-size: 13.5px; font-weight: 500; cursor: pointer;
}
.azd-navrow span { flex: 1 1 auto; }
.azd-navrow:hover { background: rgba(255, 255, 255, .04); }
.azd-navrow.is-on, .azd-navrow.is-active-area { color: var(--azd-gold); }
.azd-navrow.is-on { background: var(--azd-raise, #302619); font-weight: 700; }
.azd-navchev { transition: transform .15s ease; color: var(--azd-muted, #b8ab95); }
.azd-navchev.is-open { transform: rotate(180deg); }

.azd-navkids { display: block; }
.azd-navkid {
	display: flex; align-items: center; gap: 8px; width: 100%;
	background: none; border: 0; padding: 9px 18px 9px 50px; text-align: left;
	color: var(--azd-muted, #b8ab95); font-size: 13px; font-weight: 500; cursor: pointer;
}
.azd-navkid span { flex: 1 1 auto; }
.azd-navkid:hover { background: rgba(255, 255, 255, .04); color: var(--azd-text, #f3ead8); }
.azd-navkid.is-on { background: var(--azd-raise, #302619); color: var(--azd-gold); font-weight: 600; }
.azd-navkid.is-soon { color: #6b6051; }
.azd-navkid em { font-style: normal; font-size: 8.5px; letter-spacing: 1px; color: #6b6051; }

/* wp-admin resets everything, so restate the nav colours there too. */
.azd .azd-navrow, .azd .azd-navkid { background: none; }
.azd .azd-navrow:hover, .azd .azd-navrow:focus { background: rgba(255, 255, 255, .04) !important; color: var(--azd-text, #f3ead8) !important; }
.azd .azd-navrow.is-on, .azd .azd-navkid.is-on { background: var(--azd-raise, #302619) !important; color: var(--azd-gold) !important; }

.azd-burger { display: none; background: none; border: 0; color: var(--azd-text, #f3ead8); padding: 6px; cursor: pointer; }
.azd-crumb { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; line-height: 1.2; }
.azd-crumb small { font-size: 9.5px; letter-spacing: 1.4px; font-weight: 600; color: var(--azd-muted, #b8ab95); text-transform: uppercase; }
.azd-crumb strong { font-family: var(--azd-display); font-size: 22px; letter-spacing: .5px; color: var(--azd-text, #f3ead8); font-weight: 400; }

.azd-sidebg { display: none; }

/* A section that exists in the nav but has no backend yet. */
.azd-soon { max-width: 440px; padding: 30px 0; }
.azd-soonicon {
	width: 46px; height: 46px; display: flex; align-items: center; justify-content: center;
	background: var(--azd-panel, #221b13); border: 1px solid var(--azd-line, #6e5e4a); color: var(--azd-gold);
}
.azd-soon h2 { font-family: var(--azd-display); font-size: 26px; letter-spacing: .4px; margin: 16px 0 8px; }
.azd-soon p { color: var(--azd-muted, #b8ab95); font-size: 13.5px; line-height: 1.6; margin: 0 0 16px; }
.azd-soontag { display: inline-block; padding: 4px 9px; border: 1px solid #4c4133; color: var(--azd-muted, #b8ab95); font-size: 10px; letter-spacing: 1.4px; font-weight: 600; }

@media (max-width: 900px) {
	.azd-side {
		position: fixed; top: 0; left: 0; bottom: 0; max-height: none;
		transform: translateX(-100%); transition: transform .18s ease; z-index: 60;
	}
	.azd-in-admin .azd-side { top: 0; }
	.azd.is-navopen .azd-side { transform: translateX(0); }
	.azd.is-navopen .azd-sidebg { display: block; position: fixed; inset: 0; background: rgba(10, 7, 4, .6); z-index: 50; }
	.azd-burger { display: inline-flex; }
}

/* Directory chips, sortable headers and the row count. */
.azd-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 14px; }
.azd-chip { background: var(--azd-panel, #221b13); border: 1px solid var(--azd-line, #6e5e4a); color: var(--azd-muted, #b8ab95); padding: 7px 13px; font-size: 12.5px; font-weight: 500; cursor: pointer; }
.azd-chip:hover { color: var(--azd-text, #f3ead8); }
.azd-chip.is-on { background: var(--azd-gold); border-color: var(--azd-gold); color: #141009; font-weight: 700; }
.azd .azd-chip.is-on { background: var(--azd-gold) !important; color: #141009 !important; }
.azd-count { margin: 0 0 10px; font-size: 11.5px; }
.azd-sortbtn { background: none; border: 0; padding: 0; color: inherit; font: inherit; cursor: pointer; letter-spacing: inherit; }
.azd-sortbtn.is-on { color: var(--azd-gold); }

/* ---------- messages to clients ---------- */
.azd-compose { max-width: 620px; }
.azd-form.azd-settings { max-width: 1100px; }
.azd-soon { max-width: 520px; }
.azd-compose .azd-field { margin-bottom: 14px; }
.azd-mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 12px; line-height: 1.5; }
.azd-steps { margin: 10px 0 14px; padding-left: 20px; color: var(--azd-muted); font-size: 13px; line-height: 1.7; }
.azd-steps code { background: var(--azd-raise); padding: 1px 5px; border-radius: 3px; }

/* A phone-shaped preview so the sender sees the notification the way the
   client will, rather than guessing how much of it survives truncation. */
.azd-preview {
	margin: 4px 0 18px;
	padding: 12px 14px;
	background: var(--azd-raise);
	border: 1px solid var(--azd-line);
	border-radius: 12px;
	max-width: 380px;
}
.azd-preview-app {
	font-size: 10.5px;
	letter-spacing: 0.8px;
	text-transform: uppercase;
	color: var(--azd-muted);
}
.azd-preview-title {
	margin-top: 5px;
	font-weight: 700;
	font-size: 14px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.azd-preview-body {
	margin-top: 2px;
	font-size: 13px;
	color: var(--azd-muted);
	line-height: 1.45;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}


/* ---------- scrollbars ----------
   Three surfaces scroll here - the page, the nav rail and any table
   wider than its column - and an unstyled light scrollbar on a dark
   panel reads as damage. Firefox takes the two-value `scrollbar-color`;
   WebKit needs the pseudo-elements. Both are scoped to the dashboard so
   the rest of the site keeps the browser default. */
.azd, body.azd-standalone { color-scheme: dark; }
.azd, .azd-side, .azd-main, .azd-table-wrap, .azd-drawer-body,
.azd-bellpanel, .azd-checklist, body.azd-standalone {
	scrollbar-width: thin;
	scrollbar-color: #5a4c3b transparent;
}
.azd ::-webkit-scrollbar,
body.azd-standalone ::-webkit-scrollbar { width: 10px; height: 10px; }
.azd ::-webkit-scrollbar-track,
body.azd-standalone ::-webkit-scrollbar-track { background: transparent; }
.azd ::-webkit-scrollbar-thumb,
body.azd-standalone ::-webkit-scrollbar-thumb {
	background: #4c4133;
	border: 2px solid transparent;
	background-clip: content-box;
	border-radius: 6px;
}
.azd ::-webkit-scrollbar-thumb:hover,
body.azd-standalone ::-webkit-scrollbar-thumb:hover { background: #6e5e4a; background-clip: content-box; }
.azd ::-webkit-scrollbar-corner,
body.azd-standalone ::-webkit-scrollbar-corner { background: transparent; }

/* The nav rail only needs a scrollbar when the list actually overflows,
   and it should not reserve a gutter the rest of the time. */
.azd-side { scrollbar-gutter: auto; overscroll-behavior: contain; }

/* Nothing in the dashboard should scroll the page sideways; a table
   that is too wide scrolls inside its own wrapper instead. */
.azd-shell, .azd-body { max-width: 100%; min-width: 0; }
.azd-table-wrap { max-width: 100%; overscroll-behavior-x: contain; }

/* ---------- groups, insights, operations ---------- */
.azd-lede { max-width: 70ch; margin: -6px 0 18px; line-height: 1.6; }
.azd-note { font-size: 12px; line-height: 1.55; margin: 10px 0 0; max-width: 70ch; }
.azd-head-sm { margin-bottom: 14px; }
.azd-head-sm h2 { margin: 0; }

/* A group is a live query, so the count is the headline: it is the one
   thing that changes between visits. */
.azd-groups {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
	gap: 12px;
	margin: 0 0 20px;
}
.azd-group {
	display: flex; flex-direction: column; gap: 3px;
	text-align: left; cursor: pointer;
	background: var(--azd-panel, #221b13);
	border: 1px solid var(--azd-line, #6e5e4a);
	border-left: 3px solid var(--azd-line, #6e5e4a);
	padding: 15px 16px;
	transition: border-color .12s, background .12s;
}
.azd-group:hover { background: var(--azd-raise, #302619); }
.azd-group.is-on { border-left-color: var(--azd-gold); background: var(--azd-raise, #302619); }
.azd-group-n { font-family: var(--azd-display); font-size: 34px; line-height: 1; color: var(--azd-gold); }
.azd-group-l { font-size: 13.5px; font-weight: 600; color: var(--azd-text, #f3ead8); }
.azd-group-b { font-size: 11.5px; line-height: 1.5; color: var(--azd-muted, #b8ab95); }

.azd-kpi small { margin-top: 6px; font-size: 11.5px; line-height: 1.45; color: #8a7a62; }
.azd-kpi strong { overflow-wrap: anywhere; }

/* Bar charts: plain flexbox columns rather than a charting library, so
   they cost nothing to load and inherit the theme automatically. */
.azd-bars {
	display: flex; align-items: flex-end; gap: 6px;
	height: 150px; margin: 14px 0 0;
}
.azd-bar {
	flex: 1 1 0; min-width: 0; height: 100%;
	display: flex; flex-direction: column; justify-content: flex-end; align-items: stretch; gap: 6px;
}
.azd-barstack { display: flex; flex-direction: column; min-height: 2px; }
.azd-barstack.is-solid { background: var(--azd-gold); }
.azd-barseg.is-new { background: var(--azd-gold); }
.azd-barseg.is-ret { background: #6e5e4a; }
.azd-barlab {
	flex: 0 0 auto; text-align: center; font-size: 10px; letter-spacing: .3px;
	color: var(--azd-muted, #b8ab95); white-space: nowrap;
}
.azd-legend { display: flex; gap: 18px; margin: 14px 0 0; font-size: 11.5px; color: var(--azd-muted, #b8ab95); }
.azd-legend span { display: inline-flex; align-items: center; gap: 7px; }
.azd-legend i { width: 11px; height: 11px; display: inline-block; }
.azd-legend i.is-new { background: var(--azd-gold); }
.azd-legend i.is-ret { background: #6e5e4a; }

@media (max-width: 700px) {
	.azd-bars { height: 120px; gap: 3px; }
	.azd-barlab { font-size: 9px; }
}

/* ---------- waitlist, feedback, marketing, loyalty, clock ---------- */
.azd-chip {
	background: var(--azd-panel, #221b13); border: 1px solid var(--azd-line, #6e5e4a);
	color: var(--azd-muted, #b8ab95); padding: 7px 13px; font-size: 12.5px; cursor: pointer;
}
.azd-chip:hover { color: var(--azd-text, #f3ead8); }
.azd-chip.is-on { background: var(--azd-raise, #302619); color: var(--azd-gold); border-color: var(--azd-gold); }
.azd-chip em { font-style: normal; opacity: .75; margin-left: 3px; }
.azd-rowacts { white-space: nowrap; display: flex; gap: 10px; align-items: center; }
.azd-btn-sm { padding: 6px 11px; font-size: 12px; }
.azd-cols2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 14px; }
.azd-plain { list-style: none; margin: 0; padding: 0; }
.azd-plain li { padding: 7px 0; border-top: 1px solid var(--azd-line-soft, #4c4133); font-size: 13px; }
.azd-plain li:first-child { border-top: 0; }

/* Horizontal distribution bars - the rating spread reads better as rows
   than as columns, because the labels are the scale. */
.azd-hbars { display: flex; flex-direction: column; gap: 7px; margin-top: 12px; }
.azd-hbar { display: flex; align-items: center; gap: 10px; font-size: 12px; color: var(--azd-muted, #b8ab95); }
.azd-hbar-l { width: 12px; text-align: right; color: var(--azd-text, #f3ead8); }
.azd-hbar-t { flex: 1 1 auto; height: 9px; background: var(--azd-raise, #302619); }
.azd-hbar-t i { display: block; height: 100%; background: var(--azd-gold); }
.azd-hbar-n { width: 32px; text-align: right; }

.azd-fb-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.azd-fb-top small { display: block; margin-top: 3px; font-size: 11.5px; color: var(--azd-muted, #b8ab95); }
.azd-stars { white-space: nowrap; }
.azd-star { font-style: normal; color: #4c4133; font-size: 15px; letter-spacing: 1px; }
.azd-star.is-on { color: var(--azd-gold); }
.azd-fb-c { margin: 12px 0 0; font-size: 13.5px; line-height: 1.6; }
.azd-fb-r { margin-top: 12px; padding: 11px 13px; background: var(--azd-raise, #302619); border-left: 2px solid var(--azd-gold); }
.azd-fb-r small { font-size: 10.5px; letter-spacing: 1px; text-transform: uppercase; color: var(--azd-muted, #b8ab95); }
.azd-fb-r p { margin: 4px 0 0; font-size: 13px; line-height: 1.55; }
.azd-fb-form { display: flex; gap: 10px; align-items: flex-start; margin-top: 12px; }
.azd-fb-form textarea { flex: 1 1 auto; }
.azd-fb-ago { margin-top: 10px; font-size: 11px; color: #8a7a62; }

.azd-clock { display: flex; align-items: center; justify-content: space-between; gap: 18px; flex-wrap: wrap; }
.azd-clock h2 { margin: 0 0 4px; }
.azd-clock p { margin: 0; font-size: 13px; }

.azd-inline { display: flex; gap: 10px; align-items: center; margin: 0 0 8px; flex-wrap: wrap; }
.azd-inline input[type=text] { flex: 1 1 200px; max-width: 320px; }

.azd-deflist { margin: 10px 0 0; }
.azd-deflist-row { display: flex; gap: 16px; padding: 10px 0; border-top: 1px solid var(--azd-line-soft, #4c4133); }
.azd-deflist-row:first-child { border-top: 0; }
.azd-deflist dt { flex: 0 0 210px; font-size: 13px; color: var(--azd-muted, #b8ab95); margin: 0; }
.azd-deflist dd { flex: 1 1 auto; margin: 0; font-size: 13.5px; }
.azd-deflist dd small { display: block; margin-top: 3px; font-size: 11.5px; color: #8a7a62; line-height: 1.5; }
.azd-linkbox { background: var(--azd-raise, #302619); border: 1px solid var(--azd-line, #6e5e4a); padding: 12px 14px; word-break: break-all; font-size: 13px; margin: 10px 0 14px; }

.azd-rpctl { display: flex; gap: 18px; align-items: flex-end; flex-wrap: wrap; }
.azd-rpctl .azd-field { margin: 0; min-width: 220px; }
.azd-bar-col { width: 150px; }
.azd-inbar { display: block; height: 8px; background: var(--azd-raise, #302619); }
.azd-inbar i { display: block; height: 100%; background: var(--azd-gold); }

.azd-integrations { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 16px; }
.azd-integrations .azd-card { margin: 0; }
.azd-pill.is-good { border-color: #8fbf7a; color: #8fbf7a; }
.azd-pill.is-warn { border-color: var(--azd-gold); color: var(--azd-gold); }
.azd-pill.is-bad { border-color: #e07a6a; color: #e07a6a; }

@media (max-width: 700px) {
	.azd-cols2 { grid-template-columns: 1fr; }
	.azd-deflist-row { flex-direction: column; gap: 4px; }
	.azd-deflist dt { flex: none; }
	.azd-fb-form { flex-direction: column; }
	.azd-bar-col { display: none; }
}

/* ---------- availability requests ---------- */
.azd-rowacts .azd-err { color: var(--azd-bad, #e07a6a); }
.azd-table small.azd-err { display: block; color: var(--azd-bad, #e07a6a); font-size: 11px; margin-top: 2px; }

/* Settings tabs.
   The page is one form; these only choose which group of sections is on
   screen. Hidden groups stay in the DOM so one Save still covers the lot. */
.azd-settabs {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 0 0 18px;
	border-bottom: 1px solid var(--azd-line, #3a2f20);
	padding-bottom: 10px;
}
.azd-settab {
	appearance: none;
	background: transparent;
	border: 1px solid transparent;
	border-radius: 999px;
	color: var(--azd-muted, #a08e74);
	cursor: pointer;
	font: inherit;
	font-size: 13px;
	padding: 7px 14px;
	white-space: nowrap;
}
.azd-settab:hover { color: var(--azd-text, #f3ead9); }
.azd-settab.is-on {
	background: var(--azd-raised, #302619);
	border-color: var(--azd-accent, #dab254);
	color: var(--azd-accent, #dab254);
	font-weight: 600;
}
.azd-settab:focus-visible { outline: 2px solid var(--azd-accent, #dab254); outline-offset: 2px; }
@media (max-width: 640px) {
	.azd-settabs { flex-wrap: nowrap; overflow-x: auto; }
}

/* A section carries `display: grid`, which outranks the browser's own
   [hidden] { display: none } rule — so setting el.hidden did nothing and
   every tab showed the General fields. This has to win explicitly. */
[data-group][hidden],
.azd-set[hidden],
.azd-savebar[hidden] { display: none !important; }

/* Online booking: Google steps and the paste-anywhere button. */
.azd-steps { margin: 0 0 12px; padding-left: 20px; color: var(--azd-text, #f3ead8); }
.azd-steps li { margin: 0 0 8px; line-height: 1.5; }
.azd-embed-preview {
	background: var(--azd-raise, #302619);
	border: 1px dashed var(--azd-line, #6e5e4a);
	padding: 22px;
	text-align: center;
	margin: 0 0 12px;
}
.azd-mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 12px; }

.azd-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
