/* Admin workspace and dedicated sign-in page. */
body:has(#admin:not(.hidden)) .headerAdmin,
body:has(#adminLogin:not(.hidden)) .headerAdmin,
body:has(#admin:not(.hidden)) .side .adminBtn,
body:has(#adminLogin:not(.hidden)) .side .adminBtn { display:none; }
body:has(#admin:not(.hidden)) .main { max-width:1340px; }
.adminPageHead { display:flex; align-items:center; gap:20px; padding:8px 0 28px; margin-bottom:24px; border:0; }
.adminPageHead>div:first-child { flex:1; }
.adminPageHead h1 { font-size:1.85rem; font-weight:600; margin:10px 0 8px; }
.adminAccount { display:flex; align-items:center; gap:10px; padding-right:18px; border-right:1px solid var(--line); }
.adminAccount strong,.adminAccount small { display:block; }
.adminAccount strong { font-size:.8rem; font-weight:600; }
.adminAccount small { font-size:.7rem; color:var(--muted); }
.adminAvatar { display:grid;place-items:center;width:38px;height:38px;background:#eee9e5;border-radius:50%;color:var(--red); }
.adminLogout { font-size:.78rem; padding:10px 14px; }
.adminOverview { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:30px; }
.adminOverview>button { display:flex;align-items:center;gap:16px;text-align:left;border:1px solid var(--line);border-radius:16px;padding:22px;background:white;cursor:pointer; }
.adminOverview>button:hover { border-color:#baa9ad; }
.overviewIcon { display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:#f1efec;color:#666;font-size:23px;flex-shrink:0; }
.overviewPending .overviewIcon { color:#9a651f;background:#fbf2e3; }
.overviewApproved .overviewIcon { color:#35775c;background:#eaf4ee; }
.adminOverview small { display:block;color:var(--muted);font-size:.78rem; }
.adminOverview strong { display:block;font-size:1.85rem;font-weight:600;line-height:1.4;margin-top:4px; }
.adminOverview>button>i { margin-left:auto;color:#aaa; }
.adminWorkspace { grid-template-columns:216px minmax(0,1fr); gap:26px;align-items:start; }
.adminWorkspaceNav { position:sticky;top:116px;border:0;border-radius:0;background:transparent;box-shadow:none;padding:0;gap:6px; }
.adminWorkspaceNav small { padding:6px 14px 12px;color:#8c8285;font-size:.69rem;letter-spacing:.04em; }
.adminWorkspaceNav button { border-radius:10px;padding:12px 14px;min-height:46px;font-size:.82rem; }
.adminWorkspaceNav button[aria-current=page] { background:#f1e3e6;color:var(--red-dark);box-shadow:none; }
.adminSectionHead { margin-bottom:20px;align-items:center;min-height:52px; }
.adminSectionHead h2 { font-size:1.2rem; font-weight:600; margin-bottom:5px; }
.adminSectionHead .adminButtons { gap:8px; }
.adminButtons button { font-size:.77rem;min-height:42px;border-radius:9px; }
.adminToolCard { padding:22px;border-radius:14px;box-shadow:none; }
.adminDirectorySearch { display:flex;align-items:center;gap:12px;padding:14px 18px;background:white;border:1px solid var(--line);border-bottom:0;border-radius:14px 14px 0 0; }
.adminDirectorySearch>label { color:var(--muted); }
.adminDirectorySearch input { border:0;background:transparent;box-shadow:none;min-height:34px;padding:3px;flex:1;min-width:0; }
.adminDirectorySearch>span { color:var(--muted);font-size:.75rem;white-space:nowrap; }
.adminDirectorySearch:not(.hidden)~.adminTableWrap { border-radius:0 0 14px 14px; }
.adminTableWrap { border:1px solid var(--line);box-shadow:none;border-radius:14px;background:white; }
.adminTableWrap table { width:100%;border-collapse:collapse; }
.adminTableWrap th { background:#f5f4f2;color:#767079;font-weight:500;font-size:.72rem;padding:13px 18px; }
.adminTableWrap td { padding:18px;font-size:.8rem;border-color:#efedeb; }
.adminTableWrap tbody tr:hover { background:#fcfbfa; }
.adminTableWrap th:last-child { width:140px; }
.adminRecord { display:flex;align-items:center;gap:12px;min-width:160px; }
.adminRecordIcon { display:grid;place-items:center;flex:0 0 38px;height:38px;border:1px solid #eee5e5;background:#f9f3f3;color:var(--red);border-radius:10px;font-size:17px; }
.adminRecordCopy strong { display:block;font-size:.82rem;font-weight:500; }
.adminRecordCopy small { display:block;color:var(--muted);font-size:.66rem;line-height:1.8;margin-top:2px; }
.adminBadge { display:inline-flex;align-items:center;gap:6px;border-radius:6px;padding:4px 8px;font-size:.69rem;white-space:nowrap; }
.adminBadge:before { content:'';width:5px;height:5px;border-radius:50%;background:currentColor; }
.adminBadge.isActive { background:#edf6ef;color:#387553; }
.adminBadge.isInactive { background:#f1f1f2;color:#787b82; }
.adminEmpty { display:grid;justify-items:center;padding:54px 24px;text-align:center;gap:8px; }
.adminEmpty i { font-size:28px;color:#b4a4a7;margin-bottom:8px; }
.adminEmpty strong { font-weight:500; }
.adminEmpty p { margin:0;color:var(--muted);font-size:.8rem; }
.adminFilters { background:white;border-color:var(--line);border-radius:12px; }
.adminTabs { gap:8px;flex-wrap:wrap;padding:16px 0; }
.adminTabs button { border-radius:8px;min-height:38px;font-size:.75rem; }
.adminTabs button[aria-pressed=true] { background:var(--red);color:white;border-color:var(--red); }
.adminBooking { border-radius:14px;box-shadow:none;border:1px solid var(--line);padding:24px;background:white; }
.adminBooking h3 { font-weight:600; }
.adminBookingFooter { border-top:1px solid var(--line);padding-top:16px; }
.adminConfirm { border-radius:18px;border:1px solid var(--line);box-shadow:0 24px 80px #30252b26; }
.adminConfirm::backdrop { background:#29232c66;backdrop-filter:blur(3px); }
.userEditor .dialogHead { border-bottom:1px solid var(--line);padding-bottom:18px;margin-bottom:22px; }
.userEditor .dialogIcon { background:var(--red-soft);color:var(--red);border-radius:12px; }
.srOnly { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }
body:has(#adminLogin:not(.hidden)) .main { max-width:1120px;display:grid;align-items:center;min-height:calc(100dvh - 190px);padding-block:42px; }
.loginLayout { display:grid;grid-template-columns:1fr 1fr;border:1px solid #e6e1dd;border-radius:24px;overflow:hidden;background:white;min-height:570px;box-shadow:0 14px 50px #3d2b3106; }
.loginWelcome { background:#efede8;padding:40px;display:flex;flex-direction:column;align-items:flex-start; }
.loginWelcome h1 { font-size:2.5rem;line-height:1.35;font-weight:600;letter-spacing:-.03em;margin:22px 0 16px; }
.loginWelcome h1 span { color:var(--red); }
.loginWelcome>p { font-size:.83rem;color:var(--ink-2);line-height:1.9;margin:0; }
.loginBack { border:0;background:transparent;color:var(--ink-2);padding:0;display:flex;gap:10px;align-items:center;cursor:pointer;font-size:.78rem;margin-top:auto; }
.loginBack:hover { color:var(--red); }
.loginIllustration { position:relative;align-self:center;isolation:isolate;margin:32px 0 34px;width:240px; }
.loginIllustrationBack { position:absolute;inset:12px -12px -12px 12px;border:1px solid #dcd2cb;background:#e5dfd6;border-radius:16px;transform:rotate(5deg);z-index:-1; }
.loginIllustrationCard { background:#fff;border:1px solid #e1d5d1;border-radius:16px;padding:22px;transform:rotate(-3deg); }
.loginIllustrationCard>i { display:block;color:var(--red);font-size:29px;margin-bottom:12px; }
.loginIllustrationCard strong { display:block;font-size:.9rem;font-weight:600; }
.loginIllustrationCard>span { display:block;color:var(--muted);font-size:.64rem;margin:3px 0 20px; }
.loginIllustrationCard>div { padding:9px 0;display:flex;gap:9px;font-size:.74rem;color:var(--ink-2);border-top:1px solid var(--line); }
.loginIllustrationCard>div i { color:var(--red); }
.loginFormPanel { padding:48px;display:flex;align-items:center; }
.loginFormPanel form { width:100%; }
.loginLock { display:grid;place-items:center;width:48px;height:48px;border:1px solid #e9dadd;border-radius:13px;background:var(--red-soft);color:var(--red);font-size:23px;margin-bottom:24px; }
.loginFormPanel h2 { font-size:1.35rem;font-weight:600;margin:0 0 7px;padding:0; }
.loginFormPanel h2:before { display:none; }
.loginFormIntro { font-size:.78rem;color:var(--muted);margin:0 0 28px; }
.loginFormPanel .field { margin-top:20px; }
.loginFormPanel input { min-height:48px;border-radius:9px; }
.loginPassword { position:relative; }
.loginPassword input { padding-right:48px; }
.loginPassword button { display:grid;place-items:center;position:absolute;right:2px;top:2px;bottom:2px;width:44px;border:0;background:transparent;color:var(--muted);cursor:pointer; }
.loginError { color:#ad253b;font-size:.78rem;margin:12px 0; }
.loginError:empty { margin:0; }
.loginSubmit { width:100%;margin-top:24px;min-height:48px; }
.loginHelp { font-size:.7rem;color:var(--muted);line-height:1.9;margin:22px 0 0;padding-top:18px;border-top:1px solid var(--line); }
@media(max-width:1000px) {
  .adminWorkspace { grid-template-columns:190px minmax(0,1fr);gap:20px; }
  .adminAccount { display:none; }
  .adminOverview>button { padding:18px;gap:10px; }
  .adminOverview>button>i { display:none; }
  .loginWelcome { padding:32px; }.loginFormPanel { padding:36px; }
}
@media(min-width:781px) {
  .adminMobileMenu { display:none; }
  .adminWorkspaceNav.mobileClosed { display:grid; }
}
@media(max-width:780px) {
  .adminPageHead { gap:12px;padding-bottom:18px;margin-bottom:0;align-items:flex-start; }
  .adminPageHead h1 { font-size:1.4rem; }
  .adminLogout { min-height:38px;padding:8px 10px;font-size:.7rem; }
  .adminOverview { gap:8px;margin:12px 0 22px; }.adminOverview>button { padding:12px;gap:6px; }
  .overviewIcon { display:none; }.adminOverview strong { font-size:1.55rem; }.adminOverview small { font-size:.66rem; }
  .adminWorkspace { grid-template-columns:1fr;gap:16px; }.adminWorkspaceNav { position:static;background:white;border:1px solid var(--line);border-radius:12px;padding:8px; }
  .adminWorkspaceNav.mobileClosed { display:none; }.adminMobileMenu { display:flex;width:100%;margin-bottom:16px;justify-content:center; }
  .adminSectionHead { flex-wrap:wrap;gap:12px; }.adminSectionHead h2 { font-size:1.1rem; }
  .adminDirectorySearch { padding:12px;gap:8px; }.adminDirectorySearch input { font-size:.78rem; }
  .adminTableWrap td { padding:14px; }.adminRecord { gap:8px; }.adminRecordIcon { display:none; }
  .adminBooking { padding:18px; }.adminToolCard { padding:16px; }
  .adminBookingHead { flex-wrap:wrap; }
  .loginLayout { grid-template-columns:1fr;max-width:520px;margin:auto;border-radius:18px;min-height:unset; }
  .loginWelcome { padding:26px; }.loginWelcome h1 { font-size:1.85rem;margin:16px 0 12px; }.loginWelcome h1 br { display:none; }
  .loginWelcome>p { font-size:.78rem; }.loginIllustration { display:none; }.loginBack { margin-top:20px; }
  .loginFormPanel { padding:28px; }.loginLock { width:42px;height:42px;font-size:20px;margin-bottom:20px; }
  body:has(#adminLogin:not(.hidden)) .main { padding-block:24px; }
}
@media(max-width:600px) {
  .adminTableWrap .adminDataTable[data-directory] { display:block;min-width:0;width:100%; }
  .adminDataTable[data-directory] thead { display:none; }
  .adminDataTable[data-directory] tbody { display:block; }
  .adminDataTable[data-directory] tr { display:grid;grid-template-columns:1fr 1fr;padding:16px;gap:14px;border-bottom:1px solid var(--line); }
  .adminDataTable[data-directory] tr:last-child { border-bottom:0; }
  .adminDataTable[data-directory] td { display:block;min-width:0;padding:0;border:0;white-space:normal; }
  .adminDataTable[data-directory] td:first-child { grid-column:1/-1; }
  .adminDataTable[data-directory] td:not(:first-child):not(:last-child):before { content:attr(data-label);display:block;color:var(--muted);font-size:.67rem;margin-bottom:5px; }
  .adminDataTable[data-directory] td:last-child { grid-column:1/-1;border-top:1px solid #f0eeeb;padding-top:12px;text-align:right; }
  .adminDataTable[data-directory] td:last-child button { min-height:38px;font-size:.76rem; }
  .adminRecordIcon { display:grid; }
}
