/* Utilities the portal uses that are not in the compiled hms_laravel CSS (assets/css/hms.css).
   ponytail: hand-written to avoid a Node build; if this grows past a screen, switch to the Tailwind standalone CLI. */

.align-\[-2px\] { vertical-align: -2px; }
.right-3 { right: .75rem; }
.rounded-t-xl { border-top-left-radius: .75rem; border-top-right-radius: .75rem; }
.gap-y-4 { row-gap: 1rem; }
.my-2 { margin-top: .5rem; margin-bottom: .5rem; }
.leading-\[1\.125rem\] { line-height: 1.125rem; }
.hover\:bg-rose-500:hover { background-color: #f43f5e; }
.shadow-\[0_-4px_12px_rgba\(15\,23\,42\,0\.08\)\] { box-shadow: 0 -4px 12px rgba(15, 23, 42, .08); }

.group:hover .group-hover\:text-slate-700 { color: #334155; }
.dark .group:hover .dark\:group-hover\:text-slate-200 { color: #e2e8f0; }
.focus-visible\:ring-indigo-500:focus-visible { --tw-ring-color: #6366f1; box-shadow: 0 0 0 2px #6366f1; }
/* set-password gate (pages/password.php) */
.from-amber-50 { --tw-gradient-from: #fffbeb; --tw-gradient-to: rgb(255 251 235 / 0); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
.to-orange-50 { --tw-gradient-to: #fff7ed; }
.dark .dark\:from-amber-950\/50 { --tw-gradient-from: rgb(69 26 3 / .5); --tw-gradient-to: rgb(69 26 3 / 0); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
.text-amber-950\/90 { color: rgb(69 26 3 / .9); }
.dark .dark\:text-amber-100\/90 { color: rgb(254 243 199 / .9); }
.tracking-\[0\.14em\] { letter-spacing: .14em; }
.bg-\[\#E8EDF2\] { background-color: #e8edf2; }
.focus\:border-teal-600:focus { border-color: #0d9488; }
.focus\:ring-teal-600:focus { --tw-ring-color: #0d9488; }
@media (min-width: 640px) { .sm\:py-7 { padding-top: 1.75rem; padding-bottom: 1.75rem; } }

.dark\:border-emerald-800\/60:is(.dark *) { border-color: rgb(6 95 70 / .6); }
.dark\:border-rose-800\/60:is(.dark *) { border-color: rgb(159 18 57 / .6); }
.dark\:ring-amber-800\/60:is(.dark *) { --tw-ring-color: rgb(146 64 14 / .6); }
.dark\:ring-emerald-800\/60:is(.dark *) { --tw-ring-color: rgb(6 95 70 / .6); }
.dark\:ring-rose-800\/60:is(.dark *) { --tw-ring-color: rgb(159 18 57 / .6); }

@media (min-width: 768px) {
    .md\:static { position: static; }
    .md\:p-5 { padding: 1.25rem; }
    .md\:rounded-xl { border-radius: .75rem; }
    .md\:shadow-none { box-shadow: none; }
    .md\:justify-start { justify-content: flex-start; }
}

/* Mobile Accept/Reject bar clears the iPhone home indicator. */
.respond-bar { padding-bottom: max(.75rem, env(safe-area-inset-bottom)); }
@media (min-width: 768px) { .respond-bar { padding-bottom: 1.25rem; } }

[x-cloak] { display: none !important; }

/* submit button while its form is being sent (layout_scripts() blocks the second submit) */
.is-sending { opacity: .6; cursor: progress; pointer-events: none; }

/* ---------- Booking calendar (pages/calendar.php) ---------- */
.cal { --cal-line: #e5e7eb; --cal-muted: #94a3b8; --cal-sat: #fff7f7; --cal-today: #4f46e5;
       --cal-new-bg: #fef3c7; --cal-new-bd: #f59e0b; --cal-new-tx: #78350f;
       --cal-acc-bg: #d1fae5; --cal-acc-bd: #10b981; --cal-acc-tx: #064e3b;
       --cal-rej-bg: #ffe4e6; --cal-rej-bd: #fb7185; --cal-rej-tx: #881337;
       --cal-hold-bg: #e0f2fe; --cal-hold-bd: #0ea5e9; --cal-hold-tx: #0c4a6e;
       padding: 0; overflow: visible; }
.dark .cal { --cal-line: #1e293b; --cal-muted: #64748b; --cal-sat: rgb(244 63 94 / .05); --cal-today: #818cf8;
       --cal-new-bg: rgb(245 158 11 / .18); --cal-new-tx: #fcd34d;
       --cal-acc-bg: rgb(16 185 129 / .18); --cal-acc-tx: #6ee7b7;
       --cal-rej-bg: rgb(244 63 94 / .14); --cal-rej-tx: #fda4af;
       --cal-hold-bg: rgb(14 165 233 / .16); --cal-hold-tx: #7dd3fc; }
.cal-head, .cal-week { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.cal-head span { padding: .5rem .5rem; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--cal-muted); border-bottom: 1px solid var(--cal-line); }
.cal-head .cal-sat { color: #e11d48; }
.cal-week { position: relative; min-height: 6.5rem; grid-template-rows: var(--rows); border-bottom: 1px solid var(--cal-line); }
.cal-week:last-child { border-bottom: 0; }
.cal-day { grid-row: 1 / -1; display: flex; align-items: flex-start; justify-content: space-between; gap: .25rem; padding: .4rem .5rem; border-right: 1px solid var(--cal-line); min-width: 0; }
.cal-day:last-child { border-right: 0; }
.cal-day.cal-sat { background: var(--cal-sat); }
.cal-ad { font-size: .875rem; font-weight: 600; line-height: 1.5rem; color: #0f172a; font-variant-numeric: tabular-nums; }
.dark .cal-ad { color: #e2e8f0; }
.cal-sat .cal-ad { color: #e11d48; }
.cal-bs { margin-top: .15rem; font-size: 12px; line-height: 1; color: var(--cal-muted); white-space: nowrap; font-variant-numeric: tabular-nums; }
.cal-bs-first { color: #4f46e5; font-weight: 600; }
.dark .cal-bs-first { color: #a5b4fc; }
.cal-out .cal-ad, .cal-out .cal-bs { opacity: .4; }
.cal-today .cal-ad { display: inline-grid; place-items: center; min-width: 1.5rem; padding: 0 .3rem; border-radius: 999px; background: var(--cal-today); color: #fff; }
.cal-nav { display: inline-flex; align-items: center; justify-content: center; height: 2.25rem; min-width: 2.25rem; border: 1px solid #e2e8f0; border-radius: .5rem; color: #475569; background: #fff; }
.cal-nav:hover { background: #f1f5f9; }
.dark .cal-nav { border-color: #334155; background: #0f172a; color: #cbd5e1; }
.cal-dot { display: inline-block; width: .625rem; height: .625rem; border-radius: 999px; background: var(--dot-bg); box-shadow: inset 0 0 0 2px var(--dot-bd); }
.cal-dot.cal-new { --dot-bg: #fef3c7; --dot-bd: #f59e0b; }
.cal-dot.cal-accepted { --dot-bg: #d1fae5; --dot-bd: #10b981; }
.cal-dot.cal-rejected { --dot-bg: #ffe4e6; --dot-bd: #fb7185; }
.cal-dot.cal-hold { --dot-bg: #e0f2fe; --dot-bd: #0ea5e9; }
.cal-dot.cal-today-dot { --dot-bg: #4f46e5; --dot-bd: #4f46e5; }

/* Ribbons: one per stay, spanning its nights; status = colour, rejected also dashed. */
.cal-event { position: relative; z-index: 1; display: flex; align-items: center; min-width: 0; margin: 2px 3px; padding: 0 .4rem;
             border-radius: .375rem; border-left: 3px solid var(--ev-bd); background: var(--ev-bg); color: var(--ev-tx);
             font-size: 12px; line-height: 1.25rem; text-decoration: none; transition: box-shadow .15s, transform .15s; }
.cal-event:hover, .cal-event:focus-visible, .cal-event:focus-within { z-index: 30; box-shadow: 0 2px 8px rgb(15 23 42 / .15); outline: none; }
.cal-event:focus-visible { box-shadow: 0 0 0 2px var(--cal-today); }
.cal-event.cal-new { --ev-bg: var(--cal-new-bg); --ev-bd: var(--cal-new-bd); --ev-tx: var(--cal-new-tx); }
.cal-event.cal-accepted { --ev-bg: var(--cal-acc-bg); --ev-bd: var(--cal-acc-bd); --ev-tx: var(--cal-acc-tx); }
.cal-event.cal-rejected { --ev-bg: var(--cal-rej-bg); --ev-bd: var(--cal-rej-bd); --ev-tx: var(--cal-rej-tx); border-left-style: dashed; opacity: .8; }
/* on hold: dates not confirmed -> dashed outline */
.cal-event.cal-hold { --ev-bg: var(--cal-hold-bg); --ev-bd: var(--cal-hold-bd); --ev-tx: var(--cal-hold-tx); border-left-style: dashed; outline: 1px dashed var(--cal-hold-bd); outline-offset: -1px; }
.cal-event.cal-cl { margin-left: 0; border-left-width: 0; border-top-left-radius: 0; border-bottom-left-radius: 0; }
.cal-event.cal-cr { margin-right: 0; border-top-right-radius: 0; border-bottom-right-radius: 0; }
.cal-event-text { display: flex; align-items: center; gap: .25rem; min-width: 0; overflow: hidden; white-space: nowrap; }
.cal-event-text strong { font-weight: 600; }

/* Hover / focus card */
.cal-card { display: none; position: absolute; top: calc(100% + 6px); left: 0; width: 18rem; max-width: 80vw; padding: .75rem; z-index: 40;
            border: 1px solid #e2e8f0; border-radius: .75rem; background: #fff; color: #334155; box-shadow: 0 12px 28px -6px rgb(15 23 42 / .25);
            font-size: 12.5px; line-height: 1.35; white-space: normal; cursor: pointer; }
.dark .cal-card { border-color: #334155; background: #0f172a; color: #cbd5e1; }
.cal-card-right .cal-card { left: auto; right: 0; }
.cal-event:hover .cal-card, .cal-event:focus-visible .cal-card { display: block; }
.cal-card-grid { display: grid; grid-template-columns: auto 1fr; gap: .35rem .75rem; margin-top: .6rem; }
.cal-card-k { color: #94a3b8; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; padding-top: 1px; }
.cal-card-bs { display: block; color: #94a3b8; font-size: 11px; }

/* Phone agenda */
.cal-agenda { display: block; padding: .65rem .75rem; border: 1px solid #e2e8f0; border-left: 4px solid var(--ev-bd); border-radius: .75rem; }
.dark .cal-agenda { border-color: #334155; border-left-color: var(--ev-bd); }
.cal-agenda.cal-new { --ev-bd: #f59e0b; } .cal-agenda.cal-accepted { --ev-bd: #10b981; } .cal-agenda.cal-rejected { --ev-bd: #fb7185; } .cal-agenda.cal-hold { --ev-bd: #0ea5e9; border-left-style: dashed; }

@media (max-width: 767px) {
    .cal-head span { padding: .4rem .2rem; text-align: center; font-size: 10px; }
    .cal-week { min-height: 4.5rem; grid-template-rows: var(--rows-sm); }
    .cal-day { flex-direction: column; align-items: center; padding: .3rem .1rem; }
    .cal-bs { margin-top: 0; font-size: 11px; }
    .cal-event { margin: 1px 1px; padding: 0; height: .45rem; border-left-width: 0; font-size: 0; }   /* thin colour bars; the agenda below has the names */
    .cal-event-text, .cal-card { display: none !important; }
}
@media (prefers-reduced-motion: reduce) { .cal-event { transition: none; } }

/* Nepali (BS) text: Figtree has no Devanagari glyphs */
/* locl off: for lang="ne" Noto swaps in Nepali-form ८/९ (uni096E.NEP/uni096F.NEP), which are near-identical, so १९ reads as १८ */
[lang="ne"] { font-family: "Noto Sans Devanagari", "Nirmala UI", "Mangal", sans-serif; font-feature-settings: "locl" 0; }

/* flatpickr month picker: portal colours instead of flatpickr's default blue */
.flatpickr-monthSelect-month.selected, .flatpickr-monthSelect-month.selected:hover, .flatpickr-monthSelect-month.selected:focus {
    background: #4f46e5; border-color: #4f46e5; color: #fff; }
.flatpickr-monthSelect-month:hover, .flatpickr-monthSelect-month:focus { background: #eef2ff; border-color: #eef2ff; }
.dark .flatpickr-monthSelect-month { color: #e2e8f0; }
.dark .flatpickr-monthSelect-month:hover { background: #1e293b; border-color: #1e293b; }
.flatpickr-monthSelect-month.today { border-color: #a5b4fc; }

/* money columns: hms.css left-aligns every table header; line them up with their right-aligned amounts */
.hotel-today-bento .dash-table th.text-right { text-align: right; padding-right: .75rem; }

/* Navbar: app name above the page title, in the same tracked caps as the login / password screens */
.app-eyebrow { display: flex; align-items: center; gap: .4rem; margin-bottom: 2px; overflow: hidden; white-space: nowrap; font-size: 10.5px; font-weight: 700; line-height: 1.2; letter-spacing: .16em; text-transform: uppercase; color: #4f46e5; }
.app-eyebrow::before { content: ""; flex: none; width: 12px; height: 2px; border-radius: 2px; background: currentColor; opacity: .75; }
.dark .app-eyebrow { color: #a5b4fc; }

/* amendment table inside the amber notice */
.change-table tbody tr + tr { border-top: 1px solid #fde68a; }
.dark .change-table tbody tr + tr { border-top-color: rgba(146, 64, 14, .4); }

/* Users page: role badges */
.user-role { display: inline-flex; align-items: center; border-radius: 9999px; padding: 1px 8px; font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.user-role-admin { background: #eef2ff; color: #4338ca; }
.user-role-staff { background: #f1f5f9; color: #475569; }
.dark .user-role-admin { background: rgba(99, 102, 241, .18); color: #c7d2fe; }
.dark .user-role-staff { background: #1e293b; color: #cbd5e1; }

/* Users page: one-time sign-in details, cut like a voucher stub (dashed edge, notches) so it reads "hand this over" */
.cred-slip { position: relative; display: grid; gap: 14px 24px; grid-template-columns: 1fr; align-items: center; padding: 18px 22px; border: 1.5px dashed #a5b4fc; border-radius: 14px; background: #f8f9ff; }
.cred-slip::before, .cred-slip::after { content: ""; position: absolute; top: 50%; width: 18px; height: 18px; margin-top: -9px; border-radius: 50%; background: #fff; border: 1.5px dashed #a5b4fc; }
.cred-slip::before { left: -10px; clip-path: inset(0 0 0 50%); }
.cred-slip::after { right: -10px; clip-path: inset(0 50% 0 0); }
.cred-slip-eyebrow { font-size: 10.5px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #4f46e5; }
.cred-slip-grid { display: grid; gap: 10px 24px; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
.cred-slip-grid dt { font-size: 11px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: #64748b; }
.cred-slip-grid dd { margin-top: 2px; font-size: 14px; font-weight: 600; color: #0f172a; overflow-wrap: anywhere; }
.cred-slip-secret { font-size: 18px !important; letter-spacing: .08em; color: #312e81 !important; }
.cred-slip-copy { justify-self: start; display: inline-flex; align-items: center; gap: 6px; border-radius: 8px; border: 1px solid #c7d2fe; background: #fff; padding: 7px 12px; font-size: 13px; font-weight: 600; color: #3730a3; }
.cred-slip-copy:hover { background: #eef2ff; }
.cred-slip-copy:focus-visible { outline: 2px solid #6366f1; outline-offset: 2px; }
@media (min-width: 768px) { .cred-slip { grid-template-columns: minmax(0, 1.1fr) minmax(0, 2fr) auto; } }
.dark .cred-slip { background: rgba(30, 27, 75, .35); border-color: #4f46e5; }
.dark .cred-slip::before, .dark .cred-slip::after { background: #020617; border-color: #4f46e5; }
.dark .cred-slip-eyebrow { color: #a5b4fc; }
.dark .cred-slip-grid dd { color: #f1f5f9; }
.dark .cred-slip-secret { color: #c7d2fe !important; }
.dark .cred-slip-copy { background: #0f172a; border-color: #4338ca; color: #c7d2fe; }

/* Request activity: a thin timeline; our team's entries in slate, the supplier's own users in indigo */
.activity-list { position: relative; margin-left: 6px; border-left: 2px solid #e2e8f0; }
.activity-item { position: relative; padding: 0 0 14px 18px; }
.activity-item:last-child { padding-bottom: 2px; }
.activity-item::before { content: ""; position: absolute; left: -7px; top: 5px; width: 12px; height: 12px; border-radius: 50%; border: 2px solid #fff; }
.activity-yours::before { background: #6366f1; }
.activity-ours::before { background: #94a3b8; }
.dark .activity-list { border-left-color: #1e293b; }
.dark .activity-item::before { border-color: #020617; }
.activity-key { display: flex; gap: 14px; font-size: 12px; color: #64748b; }
.activity-key span { display: inline-flex; align-items: center; gap: 6px; }
.activity-key span::before { content: ""; width: 9px; height: 9px; border-radius: 50%; }
.activity-key-yours::before { background: #6366f1; }
.activity-key-ours::before { background: #94a3b8; }
