/* ==============================================================
   BisonFlowAI — main stylesheet
   ============================================================== */
:root{
  --bg:#f5f7fb;
  --panel:#ffffff;
  --text:#0f172a;
  --muted:#6b7280;
  --border:#e5e7eb;
  --primary:#2563eb;
  --primary-700:#1d4ed8;
  --sidebar-bg:#0f172a;
  --sidebar-text:#cbd5e1;
  --sidebar-active:#2563eb;
  --topbar:#ffffff;
  --success:#10b981;
  --warning:#f59e0b;
  --danger:#ef4444;
  --info:#06b6d4;
  --violet:#8b5cf6;
  --rose:#f43f5e;
  --teal:#14b8a6;
  --slate:#64748b;
  --shadow:0 1px 2px rgba(15,23,42,.06), 0 4px 16px rgba(15,23,42,.04);
  --radius:12px;
  /* Signature violet gradient — used for primary actions in both themes */
  --grad:linear-gradient(135deg,#7c5cff 0%,#a855f7 100%);
}
[data-theme="dark"]{
  /* Deep indigo / violet palette */
  --bg:#0a0916;
  --panel:#151226;
  --panel-2:#1b1733;
  --text:#e8e6f3;
  --muted:#8e8aa8;
  --border:#272340;
  --primary:#8b5cf6;
  --primary-700:#7c3aed;
  --sidebar-bg:#0c0a1a;
  --sidebar-text:#a8a3c4;
  --sidebar-active:#7c3aed;
  --topbar:#0c0a1a;
  --info:#22d3ee;
  --success:#34d399;
  --warning:#fbbf24;
  --danger:#fb7185;
  --violet:#a855f7;
  --teal:#2dd4bf;
  --rose:#f43f5e;
  --slate:#64748b;
  /* Signature violet gradient used for primary actions & active nav */
  --grad:linear-gradient(135deg,#7c5cff 0%,#a855f7 100%);
  --shadow:0 1px 2px rgba(0,0,0,.5), 0 8px 30px rgba(124,58,237,.10);
  --radius:14px;
}

*{box-sizing:border-box}
html,body{height:100%}
body{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:var(--text);margin:0}

a{color:var(--primary);text-decoration:none}
a:hover{color:var(--primary-700);text-decoration:underline}

/* ---------- Auth pages ---------------------------------------- */
.auth-body{background:linear-gradient(135deg,#1e293b 0%,#0f172a 100%);min-height:100vh;color:#fff}
.auth-wrap{max-width:480px;margin:0 auto;padding:48px 18px}
.auth-brand{display:flex;align-items:center;gap:10px;font-weight:600;font-size:22px;margin-bottom:18px}
.auth-brand .dot{width:14px;height:14px;border-radius:50%;background:#60a5fa;display:inline-block}
.auth-card{background:#fff;color:#0f172a;border-radius:16px;padding:30px;box-shadow:0 20px 60px rgba(0,0,0,.2)}
.auth-card h1{font-size:22px;margin:0 0 4px}
.auth-sub{color:#6b7280;font-size:14px;margin-bottom:16px}
.auth-card label{font-size:13px;font-weight:500;color:#334155;display:block;margin-top:8px}

/* ---------- App shell ---------------------------------------- */
.app-shell{display:flex;min-height:100vh}
.app-sidebar{
  width:240px;background:var(--sidebar-bg);color:var(--sidebar-text);
  position:fixed;inset:0 auto 0 0;padding:18px 14px;
  display:flex;flex-direction:column;gap:6px;overflow-y:auto;z-index:50;
}
.app-sidebar .brand{display:flex;align-items:center;gap:10px;font-weight:600;color:#fff;font-size:18px;padding:6px 8px 14px;border-bottom:1px solid #1e293b;margin-bottom:8px}
.app-sidebar .brand-dot{width:12px;height:12px;border-radius:50%;background:#60a5fa}
.sidebar-nav{display:flex;flex-direction:column;gap:2px}
.sidebar-nav .nav-link{
  color:var(--sidebar-text);padding:9px 12px;border-radius:8px;
  display:flex;align-items:center;gap:10px;font-size:14px;
}
.sidebar-nav .nav-link:hover{background:#1e293b;color:#fff;text-decoration:none}
.sidebar-nav .nav-link.active{background:var(--grad);color:#fff;box-shadow:0 6px 18px rgba(124,58,237,.45)}
.sidebar-nav .nav-link i{font-size:16px}
.nav-divider{height:1px;background:#1e293b;margin:10px 4px}

.sidebar-backdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:49}
.sidebar-backdrop.show{display:block}

.app-main{flex:1;margin-left:240px;display:flex;flex-direction:column}
.app-topbar{
  height:64px;background:var(--topbar);border-bottom:1px solid var(--border);
  display:flex;align-items:center;padding:0 20px;gap:14px;position:sticky;top:0;z-index:40;
}
.btn-toggle-sidebar{display:none;background:transparent;border:none;font-size:24px;color:var(--text)}
.page-title{font-weight:600;font-size:17px;flex:1}
.topbar-actions{display:flex;align-items:center;gap:8px}
.icon-btn{background:transparent;border:1px solid var(--border);border-radius:8px;width:38px;height:38px;color:var(--text);display:inline-flex;align-items:center;justify-content:center}
.icon-btn:hover{background:var(--bg)}
.user-chip{background:transparent;border:1px solid var(--border);border-radius:999px;padding:4px 10px;display:flex;align-items:center;gap:8px;color:var(--text)}
.avatar{width:30px;height:30px;border-radius:50%;background:var(--primary);color:#fff;font-weight:600;display:inline-flex;align-items:center;justify-content:center;font-size:14px}

.app-content{padding:22px;flex:1}

/* ---------- Panels & stat cards ------------------------------ */
.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.panel-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 16px;border-bottom:1px solid var(--border)}
.panel-head h6{margin:0;font-weight:600;font-size:14px}
.panel-body{padding:16px}

.stat-card{
  background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);
  padding:14px 16px;display:flex;align-items:center;gap:12px;box-shadow:var(--shadow);
}
.stat-icon{width:46px;height:46px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;color:#fff;font-size:20px;flex-shrink:0}
.card-primary .stat-icon{background:var(--primary)}
.card-info    .stat-icon{background:var(--info)}
.card-warning .stat-icon{background:var(--warning)}
.card-success .stat-icon{background:var(--success)}
.card-violet  .stat-icon{background:var(--violet)}
.card-teal    .stat-icon{background:var(--teal)}
.card-rose    .stat-icon{background:var(--rose)}
.card-slate   .stat-icon{background:var(--slate)}
.stat-label{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.stat-value{font-size:20px;font-weight:600}

/* ---------- Tables ------------------------------------------- */
.table{color:var(--text)}
.table thead th{background:var(--bg);color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.04em}
.table > :not(caption) > * > *{padding:.75rem .9rem;border-color:var(--border)}
.muted{color:var(--muted)}
.small{font-size:12px}

/* ---------- Status pills ------------------------------------- */
.status-pill{display:inline-block;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.status-confirmed{background:#dbeafe;color:#1d4ed8}
.status-pending{background:#fef3c7;color:#92400e}
.status-completed{background:#dcfce7;color:#065f46}
.status-cancelled{background:#f1f5f9;color:#475569}
.status-no_show{background:#fee2e2;color:#991b1b}

/* ---------- Service cards ------------------------------------ */
.service-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.service-img{width:100%;height:130px;object-fit:cover;background:#f1f5f9}
.service-img.placeholder{display:flex;align-items:center;justify-content:center;color:#94a3b8;font-size:32px}
.service-body{padding:12px 14px}
.service-name{font-weight:600}
.price{font-weight:600;color:var(--primary)}

/* ---------- Staff cards -------------------------------------- */
.staff-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow);display:flex;gap:12px}
.staff-photo{width:64px;height:64px;border-radius:50%;background:#e5e7eb;overflow:hidden;flex-shrink:0;display:flex;align-items:center;justify-content:center}
.staff-photo img{width:100%;height:100%;object-fit:cover}
.staff-photo .initial{font-weight:700;color:#475569}
.staff-info .name{font-weight:600}

/* ---------- Image previews ----------------------------------- */
.img-preview{max-height:80px;border-radius:8px;border:1px solid var(--border)}
.img-preview.wide{max-height:120px;width:100%;object-fit:cover}

/* ---------- Chip list (features/brands) ---------------------- */
.chip-list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}
.chip{background:var(--bg);border:1px solid var(--border);padding:6px 12px;border-radius:999px;display:inline-flex;align-items:center;gap:8px;font-size:13px}
.chip-x{background:transparent;border:none;color:var(--muted);font-size:18px;line-height:1;cursor:pointer}
.chip-x:hover{color:var(--danger)}

/* ---------- Rank list (popular services) --------------------- */
.rank-list{list-style:none;margin:0;padding:0}
.rank-list li{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px dashed var(--border)}
.rank-list li:last-child{border-bottom:none}

/* ---------- Map preview -------------------------------------- */
.map-frame iframe{width:100%;min-height:280px;border:0;border-radius:8px}

/* ---------- Toasts ------------------------------------------- */
.toast-stack{position:fixed;bottom:20px;right:20px;display:flex;flex-direction:column;gap:8px;z-index:1080}
.toast-item{background:#0f172a;color:#fff;padding:10px 16px;border-radius:8px;box-shadow:0 10px 30px rgba(0,0,0,.2);font-size:14px;animation:tIn .2s ease-out;max-width:340px}
.toast-item.success{background:#10b981}
.toast-item.danger{background:#ef4444}
.toast-item.info{background:#0ea5e9}
@keyframes tIn{from{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}

/* ---------- Forms / inputs ----------------------------------- */
.form-control,.form-select{background:var(--panel);color:var(--text);border-color:var(--border)}
.form-control:focus,.form-select:focus{border-color:var(--primary);box-shadow:0 0 0 .2rem rgba(37,99,235,.15)}
label{font-weight:500;font-size:13px;color:var(--text);margin-bottom:4px;display:block}

/* ---------- Buttons ------------------------------------------ */
.btn-primary{background:var(--grad);border:none;color:#fff;box-shadow:0 6px 18px rgba(124,58,237,.30)}
.btn-primary:hover{filter:brightness(1.06);color:#fff;box-shadow:0 8px 22px rgba(124,58,237,.45)}
.btn-primary:focus,.btn-primary:active{box-shadow:0 0 0 .2rem rgba(124,58,237,.35),0 6px 18px rgba(124,58,237,.30)}

/* ---------- Detail row inside modal -------------------------- */
.detail-row{padding:6px 0;border-bottom:1px dashed var(--border);font-size:14px}
.detail-row:last-child{border-bottom:none}

/* ==============================================================
   Dark "violet glow" accents — match the dashboard mockup.
   Scoped to [data-theme="dark"] so the light theme is untouched.
   ============================================================== */
[data-theme="dark"] body{
  background:
    radial-gradient(900px 500px at 100% 100%, rgba(124,92,255,.14), transparent 60%),
    radial-gradient(700px 400px at 0% 0%, rgba(168,85,247,.06), transparent 55%),
    var(--bg);
  background-attachment:fixed;
}

/* Sidebar */
[data-theme="dark"] .app-sidebar{border-right:1px solid var(--border)}
[data-theme="dark"] .app-sidebar .brand{border-bottom-color:var(--border)}
[data-theme="dark"] .sidebar-nav .nav-link:hover{background:rgba(124,92,255,.10);color:#fff}
[data-theme="dark"] .sidebar-nav .nav-link.active{
  background:var(--grad);color:#fff;
  box-shadow:0 6px 18px rgba(124,58,237,.45);
}
[data-theme="dark"] .nav-divider,
[data-theme="dark"] .app-sidebar .brand{border-color:var(--border)}

/* Topbar / chips */
[data-theme="dark"] .icon-btn:hover{background:rgba(124,92,255,.12);border-color:var(--primary)}
[data-theme="dark"] .avatar{background:var(--grad)}

/* Panels & stat cards */
[data-theme="dark"] .panel,
[data-theme="dark"] .stat-card{background:var(--panel)}
[data-theme="dark"] .stat-card{transition:border-color .15s ease, box-shadow .15s ease}
[data-theme="dark"] .stat-card:hover{border-color:rgba(124,92,255,.5);box-shadow:0 10px 30px rgba(124,58,237,.18)}

/* Primary buttons → signature gradient */
[data-theme="dark"] .btn-primary{
  background:var(--grad);border:none;
  box-shadow:0 6px 18px rgba(124,58,237,.35);
}
[data-theme="dark"] .btn-primary:hover{filter:brightness(1.08);box-shadow:0 8px 22px rgba(124,58,237,.5)}
[data-theme="dark"] .btn-outline-secondary{
  color:var(--text);border-color:var(--border);background:rgba(255,255,255,.02);
}
[data-theme="dark"] .btn-outline-secondary:hover{background:rgba(124,92,255,.12);border-color:var(--primary);color:#fff}
[data-theme="dark"] .btn-outline-primary{color:var(--violet);border-color:rgba(168,85,247,.5)}
[data-theme="dark"] .btn-outline-primary:hover{background:var(--grad);border-color:transparent;color:#fff}

/* Tables */
[data-theme="dark"] .table{--bs-table-color:var(--text)}
[data-theme="dark"] .table thead th{background:transparent;color:var(--muted);border-bottom:1px solid var(--border)}
[data-theme="dark"] .table > tbody > tr{transition:background .12s ease}
[data-theme="dark"] .table-hover > tbody > tr:hover > *{background:rgba(124,92,255,.07)}

/* Status rows → subtle tint + glowing left accent (instead of solid fills) */
[data-theme="dark"] .table > tbody > tr[class*="table-"] > *{
  --bs-table-bg:transparent;--bs-table-color:var(--text);background:transparent;
}
[data-theme="dark"] .table > tbody > tr[class*="table-"] > td:first-child,
[data-theme="dark"] .table > tbody > tr[class*="table-"] > th:first-child{
  border-left:3px solid transparent;
}
[data-theme="dark"] .table > tbody > tr.table-success  > td:first-child{border-left-color:var(--success);box-shadow:inset 4px 0 14px -6px var(--success)}
[data-theme="dark"] .table > tbody > tr.table-warning  > td:first-child{border-left-color:var(--warning);box-shadow:inset 4px 0 14px -6px var(--warning)}
[data-theme="dark"] .table > tbody > tr.table-secondary> td:first-child{border-left-color:var(--slate);box-shadow:inset 4px 0 14px -6px var(--slate)}
[data-theme="dark"] .table > tbody > tr.table-danger   > td:first-child{border-left-color:var(--rose);box-shadow:inset 4px 0 14px -6px var(--rose)}
[data-theme="dark"] .table > tbody > tr.table-success:hover  > *{background:rgba(52,211,153,.08)}
[data-theme="dark"] .table > tbody > tr.table-warning:hover  > *{background:rgba(251,191,36,.08)}
[data-theme="dark"] .table > tbody > tr.table-secondary:hover> *{background:rgba(100,116,139,.10)}
[data-theme="dark"] .table > tbody > tr.table-danger:hover   > *{background:rgba(244,63,94,.08)}

/* Service "pill" links inside tables (badges/links) */
[data-theme="dark"] .table .badge{background:rgba(124,92,255,.18)!important;color:#c4b5fd}

/* Forms */
[data-theme="dark"] .form-control,
[data-theme="dark"] .form-select{background:var(--panel-2);color:var(--text);border-color:var(--border)}
[data-theme="dark"] .form-control:focus,
[data-theme="dark"] .form-select:focus{border-color:var(--primary);box-shadow:0 0 0 .2rem rgba(139,92,246,.25)}

/* Modals & dropdowns */
[data-theme="dark"] .modal-content{background:var(--panel);color:var(--text);border:1px solid var(--border)}
[data-theme="dark"] .modal-header,
[data-theme="dark"] .modal-footer{border-color:var(--border)}
[data-theme="dark"] .btn-close{filter:invert(1) grayscale(1) brightness(1.4)}
[data-theme="dark"] .dropdown-menu{background:var(--panel);border:1px solid var(--border)}
[data-theme="dark"] .dropdown-item{color:var(--text)}
[data-theme="dark"] .dropdown-item:hover{background:rgba(124,92,255,.14);color:#fff}
[data-theme="dark"] .dropdown-divider{border-color:var(--border)}

/* Pagination */
[data-theme="dark"] .page-link{background:var(--panel-2);border-color:var(--border);color:var(--text)}
[data-theme="dark"] .page-item.active .page-link{background:var(--grad);border-color:transparent}

/* ---------- Responsive --------------------------------------- */
@media (max-width: 992px){
  .app-sidebar{transform:translateX(-100%);transition:transform .25s ease}
  .app-sidebar.open{transform:translateX(0)}
  .app-main{margin-left:0}
  .btn-toggle-sidebar{display:inline-flex}
}

/* ---------- Print -------------------------------------------- */
@media print{
  .app-sidebar,.app-topbar,.btn,.panel-head .btn,form{display:none !important}
  .app-main{margin:0}
  .panel{box-shadow:none;border:1px solid #ddd}
}
