:root {
  --bg: #F4F7FB; 
  --card: #FFFFFF; 
  --border: #E2E8F0;
  --text: #1E293B; 
  --muted: #64748B;
  --accent: #0145F2; 
  --accent-dim: rgba(1,69,242,.08); 
  --accent-hover: #0038CC;
  --red: #xE11D48; 
  --red-dim: rgba(225,29,72,.1);
  --green: #10B981;
}

*{margin:0;padding:0;box-sizing:border-box}

body {
  background:var(--bg);
  min-height:100vh;
  color:var(--text);
  font-family:'Outfit',sans-serif;
  overflow-x:hidden;
}

#page-admin{background:var(--bg);min-height:100vh}
.admin-hidden{display:none}
.admin-login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:
radial-gradient(circle at top, rgba(1,69,242,.08), transparent 35%), var(--bg)}
.admin-login-card{width:min(100%,420px);background:var(--card);border:1px solid var(--border);border-radius:28px;padding:32px;box-shadow:0 18px 48px rgba(15,23,42,.08);display:flex;flex-direction:column;gap:18px}
.admin-login-brand{justify-content:center;padding-bottom:8px}
.admin-password-input{text-align:left}
.admin-login-error{min-height:20px;font-size:13px;font-weight:600;color:#E11D48;padding-top:6px}
.admin-login-back{text-align:center;justify-content:center}

.admin-header{background:var(--card);border-bottom:1px solid var(--border);padding:16px 32px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 2px 10px rgba(0,0,0,.02)}
.admin-logo{display:flex;align-items:center;gap:12px}
.admin-logo-icon{width:40px;height:40px;background:var(--accent);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:20px;box-shadow:0 4px 12px rgba(1,69,242,.25)}
.admin-logo-icon img{width:100%;height:100%;object-fit:cover;border-radius:10px;display:block}
.admin-logo-text{font-weight:700;font-size:18px;letter-spacing:.5px;color:var(--text)}
.admin-logo-sub{font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:1px}
.admin-header-actions{display:flex;align-items:center;gap:10px}
.admin-back{padding:8px 18px;background:var(--bg);border:1px solid var(--border);border-radius:20px;color:var(--text);font-size:13px;font-weight:600;cursor:pointer;transition:all .2s;text-decoration:none;display:inline-block}
.admin-back:hover{background:var(--border);transform:translateY(-1px)}
.admin-logout-btn{font-family:'Outfit',sans-serif}

.admin-body{padding:40px 32px;max-width:1100px;margin:0 auto}
.admin-toolbar{display:flex;align-items:end;justify-content:space-between;gap:18px;background:var(--card);border:1px solid var(--border);border-radius:24px;padding:22px 24px;margin-bottom:32px;box-shadow:0 10px 30px rgba(15,23,42,.04)}
.admin-toolbar-search{flex:1;display:flex;flex-direction:column;gap:10px}
.admin-toolbar-search label,.admin-toolbar-filters label{display:block;font-size:12px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.5px;min-height:16px}
.admin-toolbar-filters{display:grid;grid-template-columns:repeat(2,minmax(170px,1fr));gap:14px;min-width:min(100%,380px)}
.admin-toolbar .setting-field{gap:10px}
.admin-search-input{height:48px;min-height:48px;text-align:left;padding:12px 16px}
.admin-toolbar-select{width:100%;height:48px;min-height:48px;background:#F8FAFC;border:1.5px solid var(--border);border-radius:12px;padding:12px 14px;color:var(--text);font-family:'Outfit',sans-serif;font-size:14px;font-weight:600;line-height:1.2;outline:none;transition:all .2s;appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--accent) 50%),linear-gradient(135deg, var(--accent) 50%, transparent 50%);background-position:calc(100% - 18px) calc(50% - 3px),calc(100% - 12px) calc(50% - 3px);background-size:6px 6px,6px 6px;background-repeat:no-repeat}
.admin-toolbar-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim);background-color:#fff}
@media(max-width:860px){.admin-toolbar{flex-direction:column;align-items:stretch}.admin-toolbar-filters{grid-template-columns:1fr 1fr;min-width:0}}
@media(max-width:580px){.admin-toolbar-filters{grid-template-columns:1fr}}

.admin-section-title{font-weight:700;font-size:20px;color:var(--text);margin-bottom:24px;display:flex;align-items:center;gap:12px}
.admin-section-title::after{content:'';flex:1;height:2px;background:var(--border);border-radius:2px}

/* Site Settings Section */
.admin-settings-card{background:var(--card);border:1px solid var(--border);border-radius:24px;padding:30px 32px;display:grid;grid-template-columns:minmax(180px,260px) minmax(320px,1fr);gap:36px;align-items:center;margin-bottom:48px;box-shadow:0 10px 32px rgba(15,23,42,.05)}
@media(max-width:760px){.admin-settings-card{grid-template-columns:1fr;gap:24px;padding:24px}}
.setting-field{display:flex;flex-direction:column;justify-content:center}
.setting-field label{display:block;font-size:12px;color:var(--muted);margin-bottom:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}
.logo-preview-wrap{width:86px;height:86px;background:var(--accent-dim);border:2px dashed #94A3B8;border-radius:20px;display:flex;align-items:center;justify-content:center;font-size:32px;cursor:pointer;overflow:hidden;transition:all .2s;}
.logo-preview-wrap:hover{border-color:var(--accent);background:rgba(1,69,242,.15)}
.admin-settings-card .admin-input{min-height:56px;font-size:18px;font-weight:700;border-radius:14px;padding:14px 18px;box-shadow:0 2px 12px rgba(15,23,42,.03)}

/* Admin Grid for Cats, Branches, Staff */
.admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:20px;margin-bottom:48px}
.admin-card{background:var(--card);border:1px solid var(--border);border-radius:20px;padding:24px;position:relative;transition:all .2s;display:flex;flex-direction:column;gap:10px;box-shadow:0 4px 20px rgba(0,0,0,.02)}
.admin-card:hover{border-color:var(--accent);box-shadow:0 8px 32px rgba(1,69,242,.08);transform:translateY(-2px)}

.admin-avatar-wrap{position:relative;width:80px;height:80px;margin:0 auto 8px;cursor:pointer}
.admin-avatar{width:80px;height:80px;border-radius:50%;overflow:hidden;background:radial-gradient(circle at center, rgba(255,255,255,.96) 0%, rgba(239,244,255,.96) 100%);border:2px solid var(--accent);display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:700;color:var(--accent);transition:all .2s}
.admin-avatar img{width:100%;height:100%;object-fit:contain;display:block;background:transparent}
.admin-avatar-wrap:hover .admin-avatar{box-shadow:0 4px 16px rgba(1,69,242,.3)}
.avatar-upload-hint{position:absolute;bottom:-4px;right:-4px;width:28px;height:28px;background:var(--accent);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;color:#fff;cursor:pointer;box-shadow:0 4px 10px rgba(1,69,242,.4);border:2px solid #fff}
.avatar-file-input{display:none}

.admin-input{width:100%;background:#F8FAFC;border:1.5px solid var(--border);border-radius:10px;padding:10px 14px;color:var(--text);font-family:'Outfit',sans-serif;font-size:14px;font-weight:600;outline:none;text-align:center;transition:all .2s}
.admin-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim);background:#fff}
.admin-input::placeholder{color:#94A3B8;font-weight:500}

.admin-select-native{display:none}
.custom-select{position:relative}
.custom-select-trigger{width:100%;background:#F8FAFC;border:1.5px solid var(--border);border-radius:12px;padding:12px 14px;color:var(--text);font-family:'Outfit',sans-serif;font-size:13px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:10px;transition:all .2s;box-shadow:0 2px 10px rgba(15,23,42,.03)}
.custom-select-trigger:hover{border-color:#BFD2FF;background:#fff}
.custom-select.open .custom-select-trigger{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim);background:#fff}
.custom-select-label{flex:1;text-align:center}
.custom-select-arrow{font-size:12px;color:var(--accent);transition:transform .2s ease}
.custom-select.open .custom-select-arrow{transform:rotate(180deg)}
.custom-select-menu{position:absolute;top:calc(100% + 8px);left:0;right:0;background:#fff;border:1px solid rgba(1,69,242,.16);border-radius:16px;padding:8px;display:none;box-shadow:0 18px 40px rgba(15,23,42,.16), 0 4px 14px rgba(1,69,242,.1);z-index:20;animation:dropdownIn .18s ease}
.custom-select.open .custom-select-menu{display:flex;flex-direction:column;gap:6px}
.custom-select-option{width:100%;border:none;background:transparent;border-radius:12px;padding:11px 12px;color:var(--text);font-family:'Outfit',sans-serif;font-size:13px;font-weight:700;cursor:pointer;transition:all .16s;text-align:center}
.custom-select-option:hover{background:var(--accent-dim);color:var(--accent);transform:translateY(-1px)}
.custom-select-option.selected{background:linear-gradient(135deg, var(--accent) 0%, #0038CC 100%);color:#fff;box-shadow:0 8px 18px rgba(1,69,242,.22)}
@keyframes dropdownIn{from{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}

.admin-staff-rating{display:flex;align-items:center;justify-content:center;gap:6px;font-size:14px;margin:4px 0;font-weight:600}
.stars-display{color:#F59E0B;font-size:16px;letter-spacing:1px}
.reviews-count{color:var(--muted);font-size:12px;font-weight:500}

.toggle-active{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.5px;margin-top:4px}
.toggle-switch{position:relative;width:40px;height:22px;cursor:pointer}
.toggle-switch input{display:none}
.toggle-track{width:40px;height:22px;background:#CBD5E1;border-radius:12px;position:relative;transition:background .2s}
.toggle-track::after{content:'';position:absolute;top:3px;left:3px;width:16px;height:16px;background:#fff;border-radius:50%;transition:all .2s;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.toggle-switch input:checked + .toggle-track{background:var(--green)}
.toggle-switch input:checked + .toggle-track::after{left:21px}

.delete-btn{position:absolute;top:12px;right:12px;width:26px;height:26px;background:var(--red-dim);border:none;border-radius:8px;color:#E11D48;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:.5;transition:all .2s;z-index:2}
.delete-btn:hover{opacity:1;background:#E11D48;color:#fff}

.copy-link-btn{background:var(--accent-dim);border:none;border-radius:10px;color:var(--accent);font-family:'Outfit',sans-serif;font-size:12px;font-weight:700;padding:10px;cursor:pointer;transition:all .2s;margin-top:auto}
.copy-link-btn:hover{background:var(--accent);color:#fff}
.role-card{min-height:unset}
.role-fields{display:flex;flex-direction:column;gap:10px}

.add-card-btn{background:transparent;border:2px dashed #CBD5E1;border-radius:20px;padding:20px;color:var(--muted);font-family:'Outfit',sans-serif;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s;width:100%;display:flex;align-items:center;justify-content:center;gap:8px;height:100%;min-height:160px;box-shadow:none}
.add-card-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}

.admin-save-btn{width:100%;padding:18px;background:linear-gradient(135deg, var(--accent) 0%, #0038CC 100%);color:#fff;border:none;border-radius:16px;font-family:'Outfit',sans-serif;font-weight:700;font-size:18px;letter-spacing:1px;cursor:pointer;box-shadow:0 8px 30px rgba(1,69,242,.3);transition:all .2s;margin-top:20px}
.admin-save-btn:hover{transform:translateY(-2px);box-shadow:0 12px 36px rgba(1,69,242,.4)}

.save-toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%) translateY(100px);background:var(--green);color:#fff;padding:14px 28px;border-radius:16px;font-size:15px;font-weight:600;transition:transform .4s cubic-bezier(0.175, 0.885, 0.32, 1.275);z-index:100;box-shadow:0 8px 24px rgba(16,185,129,.3);display:flex;align-items:center;gap:8px}
.save-toast.show{transform:translateX(-50%) translateY(0)}
.admin-empty-state{grid-column:1/-1;background:rgba(1,69,242,.04);border:1px dashed rgba(1,69,242,.18);border-radius:18px;padding:22px;color:var(--muted);text-align:center;font-size:14px;font-weight:600}
