/* Jawhara booking calendar. Uses the Wedding Project theme colours when present. */
.jav{--jav-ink:var(--ink,#F3ECDF);--jav-muted:var(--muted,#BDB19C);--jav-surface:var(--surface,#1A1712);--jav-bg:var(--bg,#0B0A08);--jav-line:var(--line,rgba(243,236,223,.14));--jav-gold:var(--gold,#D8B46A);--jav-on-gold:var(--on-gold,#14110C);
	--jav-a:#5FA77A;--jav-p:#D8B46A;--jav-f:#C0584E;--jav-n:#4A453D;
	color:var(--jav-ink);font-size:16px;max-width:760px;margin:0 auto}
.jav *{box-sizing:border-box}
.jav__sheet{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:0 0 18px;color:var(--jav-muted);font-size:14px}
.jav__tabs{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px}
.jav__tabs[hidden]{display:none}
.jav__tab{min-height:42px;padding:0 16px;border-radius:999px;border:1px solid var(--jav-line);background:transparent;color:var(--jav-ink);font:inherit;font-size:14px;cursor:pointer}
.jav__tab[aria-selected="true"]{background:var(--jav-gold);border-color:var(--jav-gold);color:var(--jav-on-gold);font-weight:600}
.jav__cal{border:1px solid var(--jav-line);border-radius:24px;background:var(--jav-surface);padding:18px}
.jav__head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.jav__title{margin:0;font-size:20px;font-weight:600}
.jav__nav{width:44px;height:44px;border-radius:999px;border:1px solid var(--jav-line);background:transparent;color:var(--jav-ink);font-size:22px;line-height:1;cursor:pointer}
.jav__nav:disabled{opacity:.3;cursor:default}
.jav__grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.jav__dow{text-align:center;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--jav-muted);padding:4px 0}
.jav__d{position:relative;aspect-ratio:1/1;min-height:40px;border-radius:12px;border:1px solid transparent;font:inherit;font-weight:600;font-variant-numeric:tabular-nums;cursor:pointer;color:#fff;transition:transform .15s,box-shadow .15s}
.jav__d:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 0 0 2px var(--jav-ink) inset}
.jav__d[aria-pressed="true"]{box-shadow:0 0 0 3px var(--jav-ink) inset}
.jav__d--a{background:var(--jav-a)}
.jav__d--p{background:var(--jav-p);color:#14110C}
.jav__d--f{background:var(--jav-f)}
.jav__d--n{background:transparent;border-color:var(--jav-line);color:var(--jav-muted)}
.jav__d--x{background:transparent;color:rgba(189,177,156,.35);cursor:default}
.jav__d--today::after{content:"";position:absolute;left:50%;bottom:6px;width:5px;height:5px;margin-left:-2.5px;border-radius:50%;background:currentColor}
.jav__legend{list-style:none;display:flex;flex-wrap:wrap;gap:8px 18px;margin:14px 0 0;padding:0;font-size:14px;color:var(--jav-muted)}
.jav__legend li{display:flex;align-items:center;gap:8px}
.jav-dot{display:inline-block;width:14px;height:14px;border-radius:4px}
.jav-dot--a{background:var(--jav-a)}.jav-dot--p{background:var(--jav-p)}.jav-dot--f{background:var(--jav-f)}.jav-dot--n{border:1px solid var(--jav-muted)}
.jav__day{margin-top:18px;border:1px solid var(--jav-line);border-radius:24px;background:var(--jav-surface);padding:18px}
.jav__day[hidden]{display:none}
.jav__dayh{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin:0 0 12px;font-size:20px}
.jav__daycal{font-size:14px;font-weight:400;color:var(--jav-muted)}
.jav__slots{list-style:none;margin:0;padding:0;max-height:520px;overflow:auto}
.jav__slot{border-top:1px solid var(--jav-line);padding:10px 0}
.jav__slotrow{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px}
.jav__time{font-weight:600;font-variant-numeric:tabular-nums;min-width:110px}
.jav__label{flex:1;color:var(--jav-muted);font-size:14px}
.jav__state{font-size:13px;font-weight:600;padding:3px 10px;border-radius:999px;background:rgba(95,167,122,.18);color:#8FD3A8}
.jav__slot--p .jav__state{background:rgba(216,180,106,.18);color:var(--jav-p)}
.jav__slot--f .jav__state{background:rgba(192,88,78,.2);color:#E48C82}
.jav__btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;border-radius:999px;border:1px solid var(--jav-gold);background:var(--jav-gold);color:var(--jav-on-gold);font:inherit;font-size:14px;font-weight:600;text-decoration:none;cursor:pointer}
.jav__btn--sm{min-height:40px;padding:0 14px}
.jav__btn--line{background:transparent;color:var(--jav-gold)}
.jav__btn:disabled{opacity:.6;cursor:wait}
.jav__bk{list-style:none;margin:8px 0 0;padding:0 0 0 12px;border-left:2px solid var(--jav-line);font-size:14px;color:var(--jav-muted)}
.jav__bk li{padding:3px 0}
.jav__bk b{color:var(--jav-ink)}
.jav__bk--pending b{color:var(--jav-p)}
.jav__form{display:grid;gap:10px;margin-top:12px;padding:14px;border-radius:16px;background:var(--jav-bg);border:1px solid var(--jav-line)}
.jav__field{display:grid;gap:6px;font-size:14px;color:var(--jav-muted)}
.jav__field input,.jav__field textarea{width:100%;min-height:44px;padding:10px 12px;border-radius:12px;border:1px solid var(--jav-line);background:var(--jav-surface);color:var(--jav-ink);font:inherit;font-size:16px}
.jav__field input:focus,.jav__field textarea:focus{outline:2px solid var(--jav-gold);outline-offset:1px}
.jav__hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}
.jav__actions{display:flex;flex-wrap:wrap;gap:10px}
.jav__msg{margin:0;font-size:14px}
.jav__msg--ok{color:#8FD3A8;font-size:15px}
.jav__msg--err{color:#E48C82}
.jav__muted{color:var(--jav-muted)}
.jav__small{font-size:13px;margin:0}
.jav__error,.jav__stale{color:#E48C82;font-size:14px}
.jav__loading{color:var(--jav-muted);margin:0}
.jav__pending{margin-top:24px}
.jav__table{width:100%;border-collapse:collapse;font-size:14px}
.jav__table td{padding:8px 10px 8px 0;border-top:1px solid var(--jav-line);vertical-align:top}
.jav--admin{max-width:none}
.jav--admin .jav__cal,.jav--admin .jav__legend{max-width:640px}
@media (min-width:1100px){.jav--admin{display:grid;grid-template-columns:640px minmax(0,1fr);column-gap:28px;align-items:start}.jav--admin>.jav__sheet,.jav--admin>.jav__tabs,.jav--admin>.jav__pending{grid-column:1/-1}.jav--admin>.jav__cal{grid-column:1}.jav--admin>.jav__legend{grid-column:1}.jav--admin>.jav__day{grid-column:2;grid-row:3/span 2;margin-top:0}}
@media (max-width:560px){
	.jav__cal,.jav__day{padding:12px;border-radius:18px}
	.jav__grid{gap:4px}
	.jav__d{border-radius:9px;min-height:36px;font-size:14px}
	.jav__time{min-width:0}
	.jav__label{flex-basis:100%;order:3}
	.jav__table,.jav__table tbody,.jav__table tr,.jav__table td{display:block}
	.jav__table tr{border-top:1px solid var(--jav-line);padding:8px 0}
	.jav__table td{border:0;padding:2px 0}
}
.jav__slots:has(.jav__form){max-height:none;overflow:visible}
