.admin-shell{width:min(1200px,calc(100% - 40px));margin:0 auto;padding:34px 0 64px}.admin-top{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px 0 32px;border-bottom:1px solid var(--line)}.admin-kicker{font-size:10px;letter-spacing:.2em;color:var(--accent);text-transform:uppercase}.admin-heading{font-size:clamp(36px,6vw,68px);letter-spacing:-.06em;line-height:.94;margin:16px 0}.admin-heading span{color:var(--accent)}.admin-subtitle{max-width:650px;color:var(--muted);font-size:14px;line-height:1.8}.admin-panel{margin-top:28px;padding:clamp(20px,4vw,36px);border:1px solid var(--line);background:rgba(19,19,23,.82)}.admin-login{max-width:540px}.admin-login h2,.admin-section-title{font-size:24px;letter-spacing:-.04em}.admin-login form{display:grid;gap:14px;margin-top:24px}.admin-login input,.admin-toolbar select,.admin-toolbar input,.admin-status-select{width:100%;min-height:48px;border:1px solid var(--line);background:#121216;color:var(--text);padding:12px 14px;border-radius:3px;font:inherit}.admin-status{display:inline-flex;border:1px solid var(--line);padding:6px 9px;font-size:10px;letter-spacing:.1em;text-transform:uppercase}.admin-status[data-status=confirmed]{border-color:#5c8a68;color:#a9e3b5}.admin-status[data-status=cancelled]{border-color:#a95a63;color:#ffb2b8}.admin-status[data-status=contacted]{border-color:#8b7a50;color:#eed69b}.admin-toolbar{display:grid;grid-template-columns:minmax(180px,1fr) minmax(150px,240px) auto;gap:12px;margin:24px 0}.admin-counts{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}.admin-count{border:1px solid var(--line);padding:14px 18px;min-width:112px}.admin-count strong{display:block;font-size:26px;letter-spacing:-.04em}.admin-count span{font-size:10px;letter-spacing:.13em;color:var(--muted);text-transform:uppercase}.booking-list{display:grid;gap:10px}.booking-row{display:grid;grid-template-columns:minmax(160px,1fr) minmax(150px,1fr) minmax(160px,1fr) 170px;gap:16px;align-items:center;border:1px solid var(--line);padding:18px;background:#121216}.booking-primary{font-weight:650;overflow-wrap:anywhere}.booking-meta{color:var(--muted);font-size:12px;line-height:1.8;overflow-wrap:anywhere}.booking-date{font-variant-numeric:tabular-nums}.booking-actions{display:grid;gap:8px}.admin-status-select{min-height:40px;padding:8px}.admin-message{padding:14px;border:1px solid var(--line);color:var(--muted);margin:14px 0;font-size:13px;line-height:1.7}.admin-message.error{border-color:#a95a63;color:#ffb2b8}.admin-message.success{border-color:#5c8a68;color:#a9e3b5}.admin-message.warning{border-color:#a46b34;color:#ffd19c}.admin-empty{text-align:center;padding:50px 16px;border:1px dashed var(--line);color:var(--muted);line-height:1.8}.admin-row-label{font-size:9px;letter-spacing:.15em;color:var(--muted);text-transform:uppercase;display:block;margin-bottom:7px}.admin-top-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.admin-small-button{background:transparent;border:1px solid var(--line);color:var(--text);padding:11px 14px;cursor:pointer;letter-spacing:.08em;font-size:10px}.admin-small-button:hover{border-color:var(--accent)}.admin-data-note{font-size:11px;line-height:1.7;color:var(--muted);margin-top:26px;max-width:780px}.admin-hidden{display:none!important}@media(max-width:860px){.booking-row{grid-template-columns:1fr 1fr}.booking-actions{grid-column:1/-1;grid-template-columns:1fr auto}.admin-toolbar{grid-template-columns:1fr 1fr}.admin-toolbar button{grid-column:1/-1}}@media(max-width:560px){.admin-shell{width:calc(100% - 28px);padding-top:18px}.admin-top{align-items:flex-start;flex-direction:column}.booking-row{grid-template-columns:1fr;gap:14px}.booking-actions{grid-column:auto;grid-template-columns:1fr}.admin-toolbar{grid-template-columns:1fr}.admin-toolbar button{grid-column:auto}.admin-count{flex:1}.admin-heading{font-size:44px}}

.admin-toolbar-actions{display:flex;gap:8px;align-items:stretch;justify-content:flex-end}.admin-toolbar-actions>*{white-space:nowrap}@media(max-width:860px){.admin-toolbar-actions{grid-column:1/-1;justify-content:stretch}.admin-toolbar-actions>*{flex:1}}@media(max-width:560px){.admin-toolbar-actions{grid-column:auto;display:grid;grid-template-columns:1fr 1fr}}

.admin-delete-button{min-height:38px;padding:8px 10px;border:1px solid rgba(255,120,140,.38);background:transparent;color:#ffadb9;font-size:9px;letter-spacing:.1em;cursor:pointer}.admin-delete-button:hover{background:rgba(255,100,120,.09);border-color:#ff8c9f}.admin-delete-button:disabled{opacity:.5;cursor:wait}


/* Audit trail and session-hardening presentation */
.admin-audit { margin-top: 30px; padding-top: 28px; border-top: 1px solid var(--line, rgba(255,255,255,.12)); }
.admin-audit h3 { margin: 10px 0 8px; font-size: clamp(1.3rem, 3vw, 1.8rem); letter-spacing: -.035em; }
.audit-list { display: grid; gap: 0; margin-top: 18px; border-top: 1px solid rgba(255,255,255,.09); }
.audit-row { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 14px 0; border-bottom: 1px solid rgba(255,255,255,.09); }
.audit-row strong { display: block; font-size: .9rem; font-weight: 600; }
.audit-row .booking-meta { margin: 5px 0 0; }
.audit-row time { white-space: nowrap; }
@media (max-width: 620px) { .audit-row { align-items: flex-start; flex-direction: column; gap: 7px; } }


.admin-pagination { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 18px 0 26px; color: var(--muted, #9a9aa2); font-size: .72rem; letter-spacing: .1em; }
.admin-pagination button:disabled { opacity: .35; cursor: not-allowed; }
.admin-pagination #page-summary { text-align: center; }


/* Read-only operations health snapshot */
.admin-system { margin: 28px 0 34px; padding: 22px; border: 1px solid var(--line); background: rgba(11,11,14,.74); }
.admin-system-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin: 10px 0 8px; }
.admin-system-heading h3 { margin:0; font-size:clamp(1.25rem,3vw,1.7rem); letter-spacing:-.035em; }
.system-status { display:inline-flex; align-items:center; padding:7px 10px; border:1px solid var(--line); font-size:9px; letter-spacing:.12em; white-space:nowrap; }
.system-status[data-state="good"] { border-color:#477b56; color:#a7e8b6; }
.system-status[data-state="warning"] { border-color:#a46b34; color:#ffd19c; }
.admin-system-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-top:18px; }
.system-card { display:flex; min-width:0; flex-direction:column; gap:8px; padding:16px; border:1px solid var(--line); background:#101014; }
.system-card[data-state="good"] { border-top:2px solid #477b56; }
.system-card[data-state="warning"] { border-top:2px solid #a46b34; }
.system-card-label { color:var(--muted); font-size:9px; letter-spacing:.15em; text-transform:uppercase; }
.system-card-value { font-size:clamp(.92rem,2vw,1.14rem); letter-spacing:-.025em; overflow-wrap:anywhere; }
.system-card-detail { font-size:11px; line-height:1.7; color:var(--muted); overflow-wrap:anywhere; }
.system-warning { grid-column:1/-1; margin:0; padding:12px 14px; border:1px solid #a46b34; color:#ffd19c; font-size:12px; line-height:1.7; }
@media(max-width:850px) { .admin-system-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:560px) { .admin-system { padding:16px; } .admin-system-heading { align-items:flex-start; flex-direction:column; } .admin-system-grid { grid-template-columns:1fr; } }

.admin-system-actions { display:flex; align-items:center; justify-content:flex-end; gap:10px; flex-wrap:wrap; }
#create-backup-button:disabled { opacity:.55; cursor:wait; }
@media(max-width:560px) { .admin-system-actions { justify-content:flex-start; } }


/* Configured booking calendar / capacity inspector */
.admin-schedule{margin:28px 0 32px;padding:22px;border:1px solid var(--line);background:rgba(11,11,14,.62)}
.admin-schedule h3{margin:10px 0 8px;font-size:clamp(1.25rem,3vw,1.7rem);letter-spacing:-.035em}
.admin-schedule-form{display:grid;grid-template-columns:minmax(150px,1fr) minmax(180px,1.2fr) minmax(110px,.6fr) auto;gap:12px;align-items:end;margin:20px 0}
.admin-schedule-form input,.admin-schedule-form select{width:100%;min-height:46px;border:1px solid var(--line);background:#121216;color:var(--text);padding:11px 12px;border-radius:3px;font:inherit}
.admin-schedule-form .field-label{display:grid;gap:8px}
.schedule-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}
.schedule-slot{display:flex;flex-direction:column;gap:7px;padding:15px;border:1px solid var(--line);background:#101014;min-width:0}
.schedule-slot[data-state="available"]{border-top:2px solid #477b56}
.schedule-slot[data-state="unavailable"]{border-top:2px solid #a95a63;opacity:.8}
.schedule-slot strong{font-size:1rem;font-variant-numeric:tabular-nums}
.schedule-slot span{font-size:11px;line-height:1.6;color:var(--muted);overflow-wrap:anywhere}
.schedule-slot .slot-state{font-size:9px;letter-spacing:.13em;text-transform:uppercase;color:var(--text)}
@media(max-width:850px){.admin-schedule-form{grid-template-columns:1fr 1fr}.schedule-slots{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.admin-schedule{padding:16px}.admin-schedule-form,.schedule-slots{grid-template-columns:1fr}}

/* Inline rescheduling controls for the operator calendar */
.admin-reschedule-button { min-height: 38px; padding: 9px 10px; text-align: center; }
.admin-reschedule-button:disabled { opacity: .4; cursor: not-allowed; }
.admin-reschedule-editor { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(130px,.9fr) minmax(170px,1.2fr) minmax(120px,.7fr) minmax(200px,1.3fr) auto; gap: 12px; align-items: end; padding: 18px; border: 1px solid rgba(185,153,255,.42); background: rgba(115,79,174,.07); }
.admin-reschedule-editor > .admin-row-label, .admin-reschedule-editor > .admin-message { grid-column: 1 / -1; margin: 0; }
.reschedule-field { display: grid; min-width: 0; gap: 8px; color: var(--muted); font-size: 9px; letter-spacing: .14em; text-transform: uppercase; }
.reschedule-field input, .reschedule-field select { min-width: 0; width: 100%; min-height: 44px; border: 1px solid var(--line); border-radius: 3px; padding: 10px; color: var(--text); background: #121216; font: inherit; font-size: 12px; letter-spacing: normal; text-transform: none; }
.reschedule-actions { display: grid; gap: 8px; min-width: 140px; }
.reschedule-actions button { min-height: 42px; white-space: nowrap; }
.reschedule-actions button:disabled { opacity: .5; cursor: wait; }
@media(max-width: 1060px) { .admin-reschedule-editor { grid-template-columns: 1fr 1fr; } .reschedule-actions { grid-column: 1 / -1; grid-template-columns: 1fr 1fr; } }
@media(max-width: 560px) { .admin-reschedule-editor { grid-template-columns: 1fr; padding: 14px; } .admin-reschedule-editor > .admin-row-label, .admin-reschedule-editor > .admin-message, .reschedule-actions { grid-column: auto; } .reschedule-actions { grid-template-columns: 1fr; } }


/* Operator week calendar */
.admin-calendar { margin: 28px 0 34px; padding: 22px; border: 1px solid var(--line); background: rgba(11,11,14,.62); }
.admin-calendar-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:18px; margin:10px 0 18px; }
.admin-calendar-heading h3 { margin:0 0 8px; font-size:clamp(1.25rem,3vw,1.7rem); letter-spacing:-.035em; }
.admin-calendar-heading .admin-subtitle { margin:0; }
.admin-calendar-controls { display:flex; gap:8px; flex-wrap:wrap; }
.admin-calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:8px; overflow-x:auto; }
.calendar-day { min-width:0; border:1px solid var(--line); background:#101014; }
.calendar-day[data-today="true"] { border-color:rgba(185,153,255,.7); }
.calendar-day-heading { display:grid; gap:5px; padding:11px 9px; border-bottom:1px solid var(--line); min-height:64px; }
.calendar-day-heading strong { font-size:11px; text-transform:uppercase; letter-spacing:.05em; }
.calendar-day-heading span { color:var(--muted); font-size:10px; }
.calendar-day-entries { display:grid; align-content:start; gap:7px; padding:7px; }
.calendar-no-bookings { padding:12px 5px; color:var(--muted); font-size:10px; line-height:1.5; }
.calendar-booking { display:grid; gap:5px; width:100%; min-width:0; text-align:left; padding:9px 8px; border:1px solid var(--line); border-left:2px solid #8a78ad; background:#17151c; color:var(--text); cursor:pointer; }
.calendar-booking:hover { border-color:var(--accent); }
.calendar-booking[data-status="confirmed"] { border-left-color:#5c8a68; }
.calendar-booking[data-status="cancelled"] { border-left-color:#a95a63; opacity:.68; }
.calendar-booking[data-status="completed"] { border-left-color:#777; opacity:.72; }
.calendar-booking-time { font-size:13px; font-variant-numeric:tabular-nums; }
.calendar-booking-package,.calendar-booking-meta,.calendar-booking-ref { font-size:9px; line-height:1.5; color:var(--muted); overflow-wrap:anywhere; }
.calendar-booking-package { color:var(--text); }
.admin-calendar-empty { grid-column:1/-1; }
#calendar-prev:disabled,#calendar-next:disabled { opacity:.5; cursor:wait; }
@media(max-width:1050px) { .admin-calendar-grid { grid-template-columns:repeat(7,minmax(145px,1fr)); } }
@media(max-width:650px) { .admin-calendar { padding:14px; } .admin-calendar-heading { align-items:flex-start; flex-direction:column; } .admin-calendar-controls { width:100%; } .admin-calendar-controls button { flex:1; } .admin-calendar-grid { grid-template-columns:repeat(7,minmax(135px,1fr)); } }

/* Durable client-notification outbox and delivery status */
.admin-notifications { margin: 28px 0 34px; padding: 22px; border: 1px solid var(--line); background: rgba(11,11,14,.62); }
.admin-notifications-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:18px; margin:10px 0 18px; }
.admin-notifications-heading h3 { margin:0 0 8px; font-size:clamp(1.25rem,3vw,1.7rem); letter-spacing:-.035em; }
.admin-notifications-heading .admin-subtitle { margin:0; }
.notification-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px; margin:16px 0; }
.notification-count { display:flex; min-width:0; flex-direction:column; gap:7px; padding:13px 14px; border:1px solid var(--line); background:#101014; }
.notification-count-label { color:var(--muted); font-size:9px; letter-spacing:.13em; text-transform:uppercase; }
.notification-count-value { font-size:1.45rem; font-variant-numeric:tabular-nums; }
.notification-list { display:grid; gap:8px; }
.notification-row { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:14px; border:1px solid var(--line); background:#101014; }
.notification-row-info { min-width:0; }
.notification-event { font-size:13px; letter-spacing:-.01em; }
.notification-status-detail { margin:6px 0 0; color:var(--muted); font-size:10px; line-height:1.7; overflow-wrap:anywhere; }
.notification-row-actions { display:flex; align-items:center; justify-content:flex-end; gap:8px; flex-wrap:wrap; }
.notification-status { display:inline-flex; padding:6px 8px; border:1px solid var(--line); color:var(--muted); font-size:9px; letter-spacing:.1em; white-space:nowrap; }
.notification-status[data-status="sent"] { color:#a7e8b6; border-color:#477b56; }
.notification-status[data-status="failed"] { color:#ffc0c6; border-color:#a95a63; }
.notification-status[data-status="sending"] { color:#ffd19c; border-color:#a46b34; }
.notification-retry:disabled { opacity:.5; cursor:wait; }
@media(max-width:700px) { .admin-notifications { padding:14px; } .admin-notifications-heading { align-items:flex-start; flex-direction:column; } .notification-summary { grid-template-columns:repeat(2,minmax(0,1fr)); } .notification-row { align-items:flex-start; flex-direction:column; } .notification-row-actions { justify-content:flex-start; } }
