*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

:root{
  --bg:#0D0D0D;--surface:#111111;--surface2:#1A1A1A;--surface3:#222018;
  --border:rgba(237,229,213,0.06);--border-hi:rgba(237,229,213,0.12);
  --text:#EDE5D5;--muted:rgba(237,229,213,0.45);--accent:#B5AD7F;
  --accent-dim:rgba(181,173,127,0.15);--accent-border:rgba(181,173,127,0.35);--accent-text:#111111;
  --lilac:#C1BFF1;--lilac-dim:rgba(193,191,241,0.15);--lilac-border:rgba(193,191,241,0.35);
  --r:14px;--r-sm:10px;--r-lg:22px;
  --green:#22c55e;--red:#ef4444;--amber:#f59e0b;
}

html,body{height:100%;background:var(--bg);color:var(--text);
  font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;
  font-size:14px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}

body::after{content:'';position:fixed;inset:0;pointer-events:none;z-index:9999;opacity:0.04;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:128px 128px}

/* ===== LOGIN OVERLAY ===== */
.login-overlay{
  position:fixed;inset:0;background:var(--bg);display:flex;
  align-items:center;justify-content:center;z-index:1000;padding:20px;
}
.login-modal{
  background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);
  width:100%;max-width:380px;overflow:hidden;
}
.login-header{
  padding:24px 24px 12px;text-align:center;
}
.login-header h2{
  font-size:20px;font-weight:500;color:var(--text);margin-bottom:4px;
}
.login-subtitle{
  font-size:13px;color:var(--muted);
}
.login-body{
  padding:20px 24px;
}
.login-error{
  background:rgba(239,68,68,.1);color:#fca5a5;border:1px solid rgba(239,68,68,.3);
  border-radius:var(--r-sm);padding:10px 12px;font-size:12px;margin-top:12px;
}
.login-footer{
  padding:16px 24px 24px;border-top:1px solid var(--border);text-align:center;
}
.login-footer .btn-primary{
  width:100%;padding:10px 18px;font-size:14px;
}

/* ===== HEADER ===== */
.admin-header{
  display:flex;align-items:center;justify-content:space-between;
  height:52px;padding:0 20px;background:var(--surface);
  border-bottom:1px solid var(--border);flex-shrink:0;position:sticky;top:0;z-index:100;
}
.logo-area{display:flex;align-items:center;gap:8px}
.logo-icon{font-size:20px}
.logo-name{font-size:15px;font-weight:500;color:var(--accent);letter-spacing:-0.01em}
.header-right{display:flex;align-items:center;gap:12px}
.user-info{
  display:flex;flex-direction:column;align-items:flex-end;gap:2px;
  padding-right:12px;border-right:1px solid var(--border);margin-right:4px;
}
.user-name{
  font-size:13px;font-weight:500;color:var(--text);
}
.user-role{
  font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;
}
.health-status{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}
.health-dot{width:8px;height:8px;border-radius:50%;background:var(--muted);flex-shrink:0;transition:background .3s}
.health-dot.ok{background:var(--green)}
.health-dot.err{background:var(--red)}
.btn-icon{background:var(--surface2);border:1px solid var(--border);color:var(--muted);
  border-radius:var(--r-sm);padding:5px 9px;cursor:pointer;font-size:17px;transition:all .15s}
.btn-icon:hover{color:var(--text);border-color:var(--accent)}

/* ===== LAYOUT ===== */
.admin-layout{display:flex;height:calc(100vh - 52px)}

/* ===== SIDEBAR ===== */
.admin-sidebar{
  width:200px;flex-shrink:0;background:var(--surface);
  border-right:1px solid var(--border);padding:16px 0;overflow-y:auto;
}
.sidebar-section{padding:0 8px}
.sidebar-title{
  font-size:10px;font-weight:500;color:var(--muted);
  text-transform:uppercase;letter-spacing:.08em;
  padding:0 8px 8px;
}
.sidebar-btn{
  display:flex;align-items:center;gap:10px;width:100%;padding:9px 12px;
  border-radius:var(--r-sm);border:none;background:none;cursor:pointer;
  font-size:13px;color:var(--muted);font-family:inherit;transition:all .15s;
  margin-bottom:2px;text-align:left;
}
.sidebar-btn:hover{background:var(--surface2);color:var(--text)}
.sidebar-btn.active{background:var(--accent-dim);color:var(--accent);border-left:3px solid var(--accent);padding-left:9px}
.sb-icon{font-size:15px;flex-shrink:0}
.sb-label{font-weight:500}

/* ===== CONTENT ===== */
.admin-content{flex:1;overflow-y:auto;padding:24px 28px}
.content-section{display:none}
.content-section.active{display:block}
.section-title{font-size:20px;font-weight:500;margin-bottom:20px;color:var(--text)}

/* ===== DASHBOARD ===== */
.dashboard-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
  gap:12px;margin-bottom:20px;
}
.metric-card{
  background:var(--surface);border:1px solid var(--border);border-radius:var(--r);
  padding:18px 16px;text-align:center;
}
.metric-value{font-size:32px;font-weight:500;color:var(--accent);line-height:1}
.metric-label{font-size:11px;color:var(--muted);margin-top:6px;text-transform:uppercase;letter-spacing:.06em}

.dashboard-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);overflow:hidden}
.card-title{font-size:13px;font-weight:500;padding:14px 16px;border-bottom:1px solid var(--border)}
.card-body{padding:16px}
.health-details{
  font-size:11px;color:var(--muted);line-height:1.8;
  font-family:'SF Mono',Consolas,monospace;white-space:pre-wrap;
}
.status-list{display:flex;flex-direction:column;gap:6px}
.status-row{
  display:flex;align-items:center;justify-content:space-between;
  padding:6px 10px;background:var(--surface2);border-radius:var(--r-sm);font-size:12px;
}
.status-badge{
  padding:2px 8px;border-radius:4px;font-size:10px;font-weight:500;
  text-transform:uppercase;letter-spacing:.04em;
}
.s-confirmed{background:rgba(181,173,127,.2);color:var(--accent)}
.s-seated{background:rgba(34,197,94,.2);color:#4ade80}
.s-cancelled{background:rgba(237,229,213,.15);color:var(--muted)}
.s-completed{background:rgba(107,114,128,.2);color:#9ca3af}
.s-no-show{background:rgba(239,68,68,.2);color:#fca5a5}
.s-delayed{background:rgba(249,115,22,.2);color:#fb923c}
.s-in-service{background:rgba(6,182,212,.2);color:#67e8f9}
.s-reconfirmed{background:rgba(193,191,241,.2);color:var(--lilac)}
.s-nueva,.s-new{background:rgba(245,158,11,.2);color:#fbbf24}

/* ===== USERS ===== */
.users-header{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.search-box input{
  background:var(--surface2);border:1px solid var(--border);border-radius:12px;
  padding:7px 12px;color:var(--text);font-size:13px;font-family:inherit;width:240px;
  transition:border-color 200ms ease-out;
}
.search-box input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px rgba(181,173,127,0.1)}

/* ===== TABLES ===== */
.table-container{overflow-x:auto;border-radius:var(--r);border:1px solid var(--border)}
.data-table{width:100%;border-collapse:collapse;font-size:13px}
.data-table th{
  background:var(--surface2);padding:10px 14px;text-align:left;
  font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.07em;
  color:var(--muted);border-bottom:1px solid var(--border);white-space:nowrap;
}
.data-table td{
  padding:10px 14px;border-bottom:1px solid var(--border);
  color:var(--text);vertical-align:middle;
}
.data-table tr:last-child td{border-bottom:none}
.data-table tr:hover td{background:rgba(181,173,127,0.04)}
.data-table .muted{color:var(--muted);font-size:11px}

/* Role badge */
.role-badge{
  display:inline-block;padding:2px 8px;border-radius:4px;
  font-size:10px;font-weight:500;text-transform:uppercase;
}
.role-admin{background:rgba(181,173,127,.2);color:var(--accent)}
.role-manager{background:rgba(245,158,11,.2);color:#fbbf24}
.role-staff{background:rgba(34,197,94,.15);color:#4ade80}

/* Active badge */
.active-yes{color:var(--green);font-weight:500}
.active-no{color:var(--red);font-weight:500}

/* Action buttons */
.btn-sm{
  padding:4px 10px;border-radius:var(--r-sm);font-size:11px;font-weight:500;
  cursor:pointer;border:none;font-family:inherit;transition:all .15s;
}
.btn-edit{background:rgba(181,173,127,.2);color:var(--accent)}
.btn-edit:hover{background:rgba(181,173,127,.4)}
.btn-toggle-active{background:rgba(34,197,94,.15);color:#4ade80}
.btn-toggle-active:hover{background:rgba(34,197,94,.3)}
.btn-toggle-inactive{background:rgba(239,68,68,.15);color:#fca5a5}
.btn-toggle-inactive:hover{background:rgba(239,68,68,.3)}

/* ===== AUDIT ===== */
.audit-details{
  font-size:11px;color:var(--muted);font-family:'SF Mono',Consolas,monospace;
  white-space:pre-wrap;max-width:360px;word-break:break-all;
}
.action-badge{
  display:inline-block;padding:2px 7px;border-radius:4px;font-size:10px;font-weight:500;
  background:var(--surface2);color:var(--muted);border:1px solid var(--border);
}

/* ===== SETTINGS ===== */
.settings-tabs{display:flex;gap:6px;margin-bottom:16px;flex-wrap:wrap}
.settings-tab{
  padding:7px 16px;border-radius:20px;font-size:12px;font-weight:500;cursor:pointer;
  border:1.5px solid var(--border);background:none;color:var(--muted);
  transition:all .15s;font-family:inherit;
}
.settings-tab:hover{color:var(--text)}
.settings-tab.active{background:var(--accent-dim);color:var(--accent);border-color:var(--accent)}
.settings-header{
  display:flex;align-items:center;justify-content:space-between;
  margin-bottom:16px;
}
.settings-header h2{font-size:16px;font-weight:500}
.settings-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
  gap:10px;
}
.setting-item{
  background:var(--surface);border:1px solid var(--border);border-radius:var(--r);
  padding:14px;
}
.setting-key{
  font-size:10px;font-weight:500;color:var(--muted);text-transform:uppercase;
  letter-spacing:.06em;margin-bottom:6px;
}
.setting-value-input{
  width:100%;background:var(--surface2);color:var(--text);border:1px solid var(--border);
  border-radius:12px;padding:7px 10px;font-size:13px;font-family:inherit;
  transition:border-color 200ms ease-out;
}
.setting-value-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px rgba(181,173,127,0.1)}
.settings-empty{color:var(--muted);font-size:13px;padding:20px 0}

/* ===== MODALS ===== */
.modal-overlay{
  position:fixed;inset:0;background:rgba(0,0,0,0.7);display:none;
  align-items:center;justify-content:center;z-index:500;padding:20px;
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
}
.modal-overlay.open{display:flex}
.modal{
  background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);
  width:100%;max-width:420px;display:flex;flex-direction:column;
  max-height:90vh;overflow:hidden;
}
.modal-header{
  padding:18px 20px 14px;border-bottom:1px solid var(--border);
  display:flex;align-items:center;justify-content:space-between;flex-shrink:0;
}
.modal-header h2{font-size:16px;font-weight:500}
.modal-close{
  background:none;border:none;color:var(--muted);font-size:18px;cursor:pointer;
  padding:4px 6px;border-radius:5px;
}
.modal-close:hover{color:var(--text);background:var(--surface2)}
.modal-body{padding:18px 20px;overflow-y:auto;flex:1}
.modal-footer{
  padding:14px 20px;border-top:1px solid var(--border);
  display:flex;justify-content:flex-end;gap:8px;flex-shrink:0;
}

/* Forms */
.form-group{margin-bottom:14px}
.form-group label{
  display:block;font-size:10px;font-weight:500;color:var(--muted);
  text-transform:uppercase;letter-spacing:.07em;margin-bottom:5px;
}
.form-group input,.form-group select{
  width:100%;background:var(--surface2);color:var(--text);
  border:1px solid var(--border);border-radius:12px;
  padding:8px 12px;font-size:13px;font-family:inherit;
  transition:border-color 200ms ease-out;
}
.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px rgba(181,173,127,0.1)}

/* Buttons */
.btn-primary{
  padding:8px 18px;background:var(--accent);color:var(--accent-text);border:none;
  border-radius:999px;font-weight:500;font-size:13px;cursor:pointer;font-family:inherit;
  letter-spacing:0.02em;transition:all 200ms ease-out;
}
.btn-primary:hover{box-shadow:0 0 24px rgba(181,173,127,0.25);transform:translateY(-1px)}
.btn-ghost{
  padding:8px 16px;background:none;color:var(--text);
  border:1px solid var(--border);border-radius:999px;
  font-size:13px;font-weight:500;cursor:pointer;font-family:inherit;
  transition:all 200ms ease-out;
}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}

/* Toast */
.toast{
  position:fixed;bottom:24px;right:24px;z-index:9999;
  background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r);padding:12px 18px;font-size:13px;
  transform:translateY(80px);
  opacity:0;transition:all .25s ease;pointer-events:none;
}
.toast.show{transform:translateY(0);opacity:1}
.toast.toast-ok{border-color:rgba(34,197,94,.4);color:#4ade80}
.toast.toast-err{border-color:rgba(239,68,68,.4);color:#fca5a5}

/* Scrollbars */
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:rgba(237,229,213,0.1);border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:rgba(237,229,213,0.2)}

/* Loading state */
.loading{color:var(--muted);font-size:13px;padding:20px 0;text-align:center}

/* Empty state */
.empty-state{text-align:center;color:var(--muted);padding:40px 20px}
.empty-icon{font-size:32px;margin-bottom:10px;opacity:.4}

/* Settings groups */
.settings-group{margin-bottom:24px}
.settings-group-title{font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.07em;color:var(--accent);padding-bottom:8px;border-bottom:1px solid var(--border);margin-bottom:12px}
.settings-group select{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:8px 10px;font-size:13px;font-family:inherit;width:100%}
.btn-sm{font-size:11px;padding:4px 10px;border-radius:4px;cursor:pointer;border:none;font-family:inherit;transition:all .15s}
.btn-danger{background:rgba(239,68,68,.2);color:#f87171}
.btn-danger:hover{background:rgba(239,68,68,.35)}

/* Setting key row with delete button */
.setting-key{display:flex;align-items:center;justify-content:space-between;gap:6px}
.setting-delete-btn{
  flex-shrink:0;padding:1px 6px;font-size:12px;line-height:1;
  background:rgba(239,68,68,.15);color:#f87171;border-radius:3px;
  cursor:pointer;border:none;opacity:.6;transition:opacity .15s;
}
.setting-delete-btn:hover{opacity:1;background:rgba(239,68,68,.35)}

/* Setting validation error */
.setting-error{
  font-size:11px;color:#f87171;margin-top:4px;
  display:none;
}

/* Add custom setting row */
.add-setting-row{border:1px dashed rgba(181,173,127,.3);background:var(--accent-dim)}
.add-setting-row .setting-key{font-size:10px;color:var(--muted);margin-bottom:6px}
.add-setting-row .btn-sm{
  background:var(--accent);color:var(--accent-text);padding:6px 12px;
  border-radius:var(--r-sm);font-size:12px;font-weight:500;flex-shrink:0;
}
.add-setting-row .btn-sm:hover{opacity:.85}

/* Webhook test result */
#webhook-test-result{
  font-size:11px;margin-top:6px;word-break:break-all;
}
#webhookTestBtn{
  background:rgba(181,173,127,.2);color:var(--accent);
  border-radius:var(--r-sm);padding:6px 12px;font-size:12px;font-weight:500;
}
#webhookTestBtn:hover{background:rgba(181,173,127,.4)}

/* ===== AUDIT FILTERS ===== */
.audit-filters{
  display:flex;flex-wrap:wrap;gap:8px;align-items:center;
  margin-bottom:14px;
  padding:12px 14px;
  background:var(--surface);border:1px solid var(--border);border-radius:var(--r);
}
.filter-input{
  background:var(--surface2);border:1px solid var(--border);border-radius:12px;
  padding:6px 10px;color:var(--text);font-size:12px;font-family:inherit;
  height:30px;transition:border-color 200ms ease-out;
}
.filter-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px rgba(181,173,127,0.1)}
#auditUserFilter{min-width:160px;max-width:220px}
#auditActionFilter{width:140px}
#auditDateFrom,#auditDateTo{width:140px;color-scheme:dark}
.btn-filter{
  background:var(--accent);color:var(--accent-text);
  padding:6px 14px;font-size:12px;font-weight:500;border-radius:var(--r-sm);
}
.btn-filter:hover{opacity:.85}
.btn-ghost-sm{
  background:none;color:var(--muted);
  border:1px solid var(--border);padding:6px 12px;
  font-size:12px;border-radius:var(--r-sm);
}
.btn-ghost-sm:hover{color:var(--text);border-color:var(--accent)}
.btn-export{
  background:rgba(34,197,94,.15);color:#4ade80;
  padding:6px 12px;font-size:12px;font-weight:500;border-radius:var(--r-sm);
  margin-left:auto;
}
.btn-export:hover{background:rgba(34,197,94,.3)}

/* ===== LOGIN OVERLAY ===== */
.login-overlay{
  position:fixed;inset:0;background:var(--bg);
  display:none;align-items:center;justify-content:center;z-index:1000;
}
.login-modal{
  background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);
  width:100%;max-width:380px;padding:32px;
}
.login-header{text-align:center;margin-bottom:24px}
.login-header h2{font-size:20px;font-weight:500;color:var(--accent)}
.login-subtitle{font-size:12px;color:var(--muted);margin-top:4px}
.login-body{margin-bottom:16px}
.login-footer{display:flex;justify-content:center}
.login-footer .btn-primary{width:100%;padding:10px;font-size:14px}
.login-error{
  font-size:12px;color:#f87171;margin-top:8px;
  padding:8px 12px;background:rgba(239,68,68,.1);border-radius:var(--r-sm);
}

/* User info in header */
.user-info{display:flex;align-items:center;gap:8px;font-size:12px}
.user-name{color:var(--text);font-weight:500}
.user-role{
  color:var(--muted);padding:2px 7px;
  background:var(--surface2);border:1px solid var(--border);border-radius:10px;
}

/* ===== FORGOT / RESET PASSWORD ===== */
.forgot-link{
  display:block;margin-top:12px;font-size:12px;color:var(--muted);
  text-decoration:none;cursor:pointer;transition:color .15s;
}
.forgot-link:hover{color:var(--accent)}
.login-message{
  font-size:12px;margin-top:12px;padding:10px 12px;
  border-radius:var(--r-sm);
}
.login-message.login-error{
  background:rgba(239,68,68,.1);color:#fca5a5;border:1px solid rgba(239,68,68,.3);
}
.login-message.login-success{
  background:rgba(34,197,94,.1);color:#4ade80;border:1px solid rgba(34,197,94,.3);
}

@media(max-width:700px){
  .admin-sidebar{width:52px}
  .sb-label{display:none}
  .admin-content{padding:16px}
  .dashboard-row{grid-template-columns:1fr}
}
