/* Auth — premium shell handles its own layout (see resources/views/admin/auth/login.blade.php inline + assets/css/auth.css). Legacy single-card styles removed — demo-box deleted per feedback. */
.rlogin-legacy-note{display:none !important}

/* From resources\views\layouts\admin.blade.php */
/* Guarantee icons never render as empty boxes: hide broken <i> glyphs, keep layout stable */
    i.bi:empty::before{ font-family:"bootstrap-icons" !important; }

/* From resources\views\layouts\admin.blade.php */
/* SweetAlert2 TheraVital theming */
    div.swal2-popup:not(.swal2-toast){border-radius:20px !important;font-family:'Geist', sans-serif !important}
    .swal2-confirm{background:#1FA84F !important;border-radius:999px !important;padding:10px 24px !important;font-weight:600 !important}
    .swal2-cancel{border-radius:999px !important;padding:10px 24px !important}

    /* ── Toasts — compact feedback card (delete / saved / validation / alert) ──
       Fixed width so copy can never stretch across the page; icon pinned to the
       top line with a tight column gap, title + body left aligned and clamped. */
    .swal2-popup.swal2-toast{
        width:340px !important;
        max-width:calc(100vw - 32px) !important;
        padding:14px 16px !important;
        border-radius:16px !important;
        box-shadow:0 12px 32px rgba(0,0,0,.12) !important;
        font-family:'Geist', sans-serif !important;
        align-items:flex-start !important;
        column-gap:12px !important;
        row-gap:0 !important;
        overflow:hidden !important;
    }
    .swal2-popup.swal2-toast .swal2-icon{
        width:26px !important;height:26px !important;
        flex:0 0 26px !important;margin:1px 0 0 !important;
    }
    .swal2-popup.swal2-toast .swal2-icon::before{line-height:26px !important}
    .swal2-popup.swal2-toast .swal2-title{
        margin:0 !important;padding:0 !important;
        font-size:.875rem !important;font-weight:700 !important;
        line-height:1.35 !important;text-align:left !important;
        color:#0f172a !important;
    }
    .swal2-popup.swal2-toast .swal2-html-container{
        margin:3px 0 0 !important;padding:0 !important;
        font-size:.8125rem !important;line-height:1.45 !important;
        text-align:left !important;color:#5E6B63 !important;
        text-indent:0 !important;
        display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;
        overflow:hidden;max-height:8.7em;
    }
    .swal2-popup.swal2-toast .swal2-html-container:empty{display:none !important}
    .swal2-popup.swal2-toast .swal2-timer-progress-bar{background:#1FA84F !important;height:3px !important}
    /* No title + no body = nothing to show; keep the toast from rendering as an empty chip. */
    .swal2-popup.swal2-toast.swal2-shown:has(.swal2-html-container:empty):has(.swal2-title:empty){display:none !important}

/* From resources\views\layouts\admin.blade.php */
:root{
      /* TheraVital logo palette: leaf greens + DNA blue + orange swoosh */
      --accent-color:#1FA84F;
      --accent-soft:#E4F5E8;
      --brand-blue:#0E7AD9;
      --brand-orange:#F26522;
      --brand-leaf:#3FA34D;
      --brand-leaf-deep:#1B7A3D;
      --brand-swoosh:#F5820B;
      /* Sidebar + header follow logo theme */
      --sidebar-bg:#F4FAF5;
      --sidebar-border:#D6E9DA;
      --sidebar-color:#1E3A28;
      --sidebar-text:#1E3A28;
      --sidebar-muted-color:#5E7A67;
      --sidebar-text-muted:#5E7A67;
      --sidebar-hover-bg:#E4F3E8;
      --sidebar-active-bg:#1FA84F;
      --sidebar-active-color:#FFFFFF;
      --sidebar-active-text:#FFFFFF;
      --header-bg:#FFFFFF;
      --header-border:#DCE9DE;
    }
    /* Header logo: removed everywhere (feedback-2). Keep rules only to force-hide any legacy markup. */
    .header-logo,.header-logo-mark{ display:none !important; }
    /* [feedback-1] Sidebar logo: bigger + centered */
    .sidebar-header{ justify-content:center !important; padding:10px 16px !important; min-height:92px !important; }
    .sidebar-logo{ gap:0; justify-content:center !important; align-items:center !important; width:100% !important; margin:0 auto !important; }
    .sidebar-logo-mark{ background:transparent !important; border:0 !important; border-radius:0 !important; display:flex; align-items:center; justify-content:center; padding:0 !important; width:100% !important; height:auto !important; overflow:visible !important; flex-shrink:0; margin:0 auto !important; }
    .sidebar-logo-mark img{ width:100% !important; height:72px !important; max-width:240px !important; border-radius:0 !important; object-fit:contain !important; background:transparent !important; padding:0 !important; display:block !important; margin:0 auto !important; }
    /* [feedback-2] Header TheraVital image removed: keep header clean (toggle + title only) */
    .sidebar-logo-mark-icon{ display:none; }
    .sidebar-logo-text{ display:none !important; }
    
    /* Toggle Logo on Collapse */
    .sidebar-logo-mark .logo-icon { display: none !important; }
    body.sidebar-collapsed .sidebar-logo-mark .logo-full { display: none !important; }
    body.sidebar-collapsed .sidebar-logo-mark .logo-icon { display: block !important; height: 48px !important; }

    /* Logo-tinted sidebar menu */
    .sidebar .nav-item>.nav-link>i:first-child{
      color:var(--brand-leaf-deep) !important;
      background:linear-gradient(135deg, color-mix(in srgb, var(--brand-leaf) 14%, #fff), color-mix(in srgb, var(--brand-blue) 12%, #fff)) !important;
      border:1px solid color-mix(in srgb, var(--brand-leaf) 22%, transparent) !important;
    }
    .sidebar .nav-item>.nav-link:hover{ border-color:color-mix(in srgb, var(--brand-leaf) 38%, transparent) !important; }
    .sidebar .nav-item>.nav-link:hover>i:first-child{
      color:#fff !important;
      background:linear-gradient(135deg, var(--brand-leaf) 0%, var(--brand-blue) 62%, var(--brand-orange) 130%) !important;
      border-color:transparent !important;
    }
    .sidebar .nav-item>.nav-link.active,
    .sidebar .nav-item.has-submenu.open>.nav-link{
      background:var(--brand-orange) !important;
      border-color:var(--brand-orange) !important;
      color:#fff !important;
      box-shadow:0 14px 26px -18px color-mix(in srgb, var(--brand-orange) 70%, #000) !important;
    }
    .sidebar .nav-item>.nav-link.active>i:first-child,
    .sidebar .nav-item.has-submenu.open>.nav-link>i:first-child{ background:rgba(255,255,255,.22) !important; color:#fff !important; border-color:transparent !important; }
    .sidebar .nav-item>.nav-link.active::before,
    .sidebar .nav-item.has-submenu.open>.nav-link::before{ background:var(--brand-swoosh) !important; }
    .sidebar .nav-heading{ color:color-mix(in srgb, var(--brand-leaf-deep) 72%, var(--sidebar-text-muted)) !important; }
    .sidebar .nav-heading::after{ background:linear-gradient(90deg, color-mix(in srgb, var(--brand-leaf) 45%, transparent), color-mix(in srgb, var(--brand-orange) 40%, transparent)) !important; }
    .sidebar{ background:linear-gradient(180deg, #FFFFFF 0%, #EFF7F0 34%, #E3F1FD 78%, #FDEFE3 100%) !important; border-right:1px solid var(--sidebar-border) !important; }
    .sidebar-header{ border-bottom:1px solid color-mix(in srgb, var(--brand-leaf) 25%, transparent) !important; background:rgba(255,255,255,.72) !important; }
    .sidebar .has-submenu.open>.nav-submenu{ border-left:2px solid color-mix(in srgb, var(--brand-blue) 45%, var(--brand-leaf) 30%) !important; }
    .header{ border-bottom:2px solid transparent !important; border-image:linear-gradient(90deg, var(--brand-leaf) 0%, var(--brand-blue) 55%, var(--brand-orange) 100%) 1 !important; }
    .sidebar-toggle{ border-color:color-mix(in srgb, var(--brand-leaf) 32%, var(--sidebar-border)) !important; }
    .sidebar-toggle:hover{ color:var(--brand-leaf-deep) !important; border-color:color-mix(in srgb, var(--brand-leaf) 45%, transparent) !important; }
    /* [feedback 3/4/5] Footer: remove brand+links+credits, keep one slim centered copyright line */
    .footer{ background:#fff !important; padding:8px 16px !important; min-height:0 !important; }
    .footer-content-centered{ display:flex !important; justify-content:center !important; align-items:center !important; text-align:center !important; gap:0 !important; }
    .footer-meta-centered{ padding-right:0 !important; text-align:center !important; width:100% !important; display:flex !important; justify-content:center !important; align-items:center !important; }
    .footer-copyright{ width:100%; text-align:center !important; font-size:.75rem !important; line-height:1.2 !important; padding:0 !important; margin:0 !important; }
    .footer-brand,.footer-links,.footer-credits,.credits{ display:none !important; }
    .footer-brand-mark{ background:transparent !important; padding:0 !important; border:0 !important; }
    .footer-brand-mark img{ width:auto !important; height:34px !important; max-width:180px; object-fit:contain; background:transparent !important; border-radius:0 !important; padding:0 !important; }

/* Global shared admin styles are in public/assets/css/admin.css — per-page duplicates removed for single source of truth.
   Session Management (sessions/index.blade.php) is the reference layout: container-fluid px-0 + row g-3 + tv-card dt-card + table-responsive. */

/* Banner thumb (replaces inline style width/height) */
.banner-thumb{width:80px;height:40px;object-fit:cover;border-radius:6px}

/* Required field asterisk — managed centrally for all admin forms */
.required-star{color:#dc3545;font-weight:700;margin-left:2px}

/* ============================================================================
   THERAVITAL DASHBOARDS 2.0 — Premium palette + vivid diagrams
   One place for all 4 dashboards (Main + Patient + Doctor + Buyer).
   Vibrant, clinical, trustworthy — greens/teal/blue + warm orange/amber.
   ============================================================================ */
:root{
  --dv-emerald:#10b981; --dv-teal:#06b6d4; --dv-blue:#2563eb; --dv-violet:#7c3aed;
  --dv-pink:#ec4899; --dv-amber:#f59e0b; --dv-orange:#f97316; --dv-red:#ef4444;
  --dv-slate:#64748b; --dv-ink:#0f172a;
  --dv-grad-emerald:linear-gradient(135deg,#10b981 0%,#059669 100%);
  --dv-grad-blue:linear-gradient(135deg,#3b82f6 0%,#1e40af 100%);
  --dv-grad-violet:linear-gradient(135deg,#8b5cf6 0%,#6d28d9 100%);
  --dv-grad-orange:linear-gradient(135deg,#fb923c 0%,#ea580c 100%);
  --dv-grad-pink:linear-gradient(135deg,#f472b6 0%,#db2777 100%);
  --dv-grad-teal:linear-gradient(135deg,#22d3ee 0%,#0891b2 100%);
  --dv-grad-amber:linear-gradient(135deg,#fbbf24 0%,#d97706 100%);
  --dv-grad-danger:linear-gradient(135deg,#f87171 0%,#dc2626 100%);
}

/* ---------- KPI PREMIUM -------------------------------------------------- */
.dashboard-ui .kpi-premium,
.dash-main .kpi-premium{
  position:relative; overflow:hidden;
  border-radius:20px !important;
  background:#fff !important;
  border:1px solid #e2e8f0 !important;
  box-shadow:0 8px 32px rgba(15,23,42,.06) !important;
  transition:transform .28s cubic-bezier(.16,1,.3,1), box-shadow .28s ease, border-color .28s ease !important;
}
.dashboard-ui .kpi-premium:hover,
.dash-main .kpi-premium:hover{
  transform:translateY(-4px);
  box-shadow:0 18px 48px rgba(15,23,42,.12) !important;
  border-color:#cbd5e1 !important;
}
.dashboard-ui .kpi-premium::before,
.dash-main .kpi-premium::before{
  content:""; position:absolute; top:0; left:0; right:0; height:4px;
  background:var(--kpi-accent, var(--brand-leaf));
  opacity:1;
}
.dashboard-ui .kpi-premium.accent-emerald, .dash-main .kpi-premium.accent-emerald{ --kpi-accent: var(--dv-grad-emerald); }
.dashboard-ui .kpi-premium.accent-blue,    .dash-main .kpi-premium.accent-blue{    --kpi-accent: var(--dv-grad-blue); }
.dashboard-ui .kpi-premium.accent-violet,  .dash-main .kpi-premium.accent-violet{  --kpi-accent: var(--dv-grad-violet); }
.dashboard-ui .kpi-premium.accent-orange,  .dash-main .kpi-premium.accent-orange{  --kpi-accent: var(--dv-grad-orange); }
.dashboard-ui .kpi-premium.accent-pink,    .dash-main .kpi-premium.accent-pink{    --kpi-accent: var(--dv-grad-pink); }
.dashboard-ui .kpi-premium.accent-teal,    .dash-main .kpi-premium.accent-teal{    --kpi-accent: var(--dv-grad-teal); }
.dashboard-ui .kpi-premium.accent-amber,   .dash-main .kpi-premium.accent-amber{   --kpi-accent: var(--dv-grad-amber); }
.dashboard-ui .kpi-premium.accent-red,     .dash-main .kpi-premium.accent-red{     --kpi-accent: var(--dv-grad-danger); }

.kpi-icon-premium{
  width:52px; height:52px; border-radius:16px;
  display:inline-flex; align-items:center; justify-content:center;
  font-size:1.35rem; flex-shrink:0;
  color:#fff; position:relative;
  box-shadow:0 8px 18px rgba(15,23,42,.14);
  transition:transform .3s ease;
}
.dashboard-ui .kpi-premium:hover .kpi-icon-premium,
.dash-main .kpi-premium:hover .kpi-icon-premium{ transform:scale(1.06) rotate(-3deg); }
.kpi-icon-premium.icon-emerald{ background:var(--dv-grad-emerald); }
.kpi-icon-premium.icon-blue{ background:var(--dv-grad-blue); }
.kpi-icon-premium.icon-violet{ background:var(--dv-grad-violet); }
.kpi-icon-premium.icon-orange{ background:var(--dv-grad-orange); }
.kpi-icon-premium.icon-pink{ background:var(--dv-grad-pink); }
.kpi-icon-premium.icon-teal{ background:var(--dv-grad-teal); }
.kpi-icon-premium.icon-amber{ background:var(--dv-grad-amber); }
.kpi-icon-premium.icon-red{ background:var(--dv-grad-danger); }

/* spark area at bottom of card */
.kpi-spark{
  position:absolute; bottom:0; left:0; right:0; height:52px;
  opacity:.95; pointer-events:none; overflow:hidden;
  border-radius:0 0 20px 20px;
}

/* metric helpers */
.kpi-label{ font-size:.72rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:#64748b; }
.kpi-value{ font-size:2rem; font-weight:900; letter-spacing:-.03em; color:var(--dv-ink); line-height:1; }
.kpi-sub{ font-size:.78rem; color:#64748b; font-weight:600; }
.kpi-badge{
  display:inline-flex; align-items:center; gap:4px;
  font-size:.72rem; font-weight:800; padding:.38em .78em; border-radius:999px;
  border:1px solid transparent; letter-spacing:.01em;
}
.kpi-badge.positive{ background:#dcfce7; color:#166534; border-color:#bbf7d0; }
.kpi-badge.negative{ background:#fee2e2; color:#991b1b; border-color:#fecaca; }
.kpi-badge.neutral{ background:#f1f5f9; color:#334155; border-color:#e2e8f0; }
.kpi-badge.warning{ background:#fef3c7; color:#92400e; border-color:#fde68a; }

.kpi-divider{ height:1px; background:linear-gradient(90deg, transparent, #e2e8f0, transparent); margin:10px 0 8px; }

/* ---------- CHART CARD PREMIUM ------------------------------------------- */
.chart-card{
  border-radius:20px !important; overflow:hidden !important;
  background:#fff !important; border:1px solid #e2e8f0 !important;
  box-shadow:0 8px 32px rgba(15,23,42,.06) !important;
  transition:box-shadow .28s ease, transform .28s ease;
}
.chart-card:hover{ box-shadow:0 16px 48px rgba(15,23,42,.10) !important; transform:translateY(-2px); }
.chart-card .card-header{
  background:#fff !important; border-bottom:1px solid #f1f5f9 !important;
  padding:18px 20px !important;
}
.chart-head-icon{
  width:42px; height:42px; border-radius:12px;
  display:inline-flex; align-items:center; justify-content:center;
  color:#fff; font-size:1.15rem; flex-shrink:0;
  box-shadow:0 6px 14px rgba(15,23,42,.12);
}
.chart-head-icon.chi-emerald{ background:var(--dv-grad-emerald); }
.chart-head-icon.chi-blue{ background:var(--dv-grad-blue); }
.chart-head-icon.chi-violet{ background:var(--dv-grad-violet); }
.chart-head-icon.chi-orange{ background:var(--dv-grad-orange); }
.chart-head-icon.chi-pink{ background:var(--dv-grad-pink); }
.chart-head-icon.chi-teal{ background:var(--dv-grad-teal); }
.chart-head-icon.chi-amber{ background:var(--dv-grad-amber); }

.chart-legend-dot{ width:10px; height:10px; border-radius:50%; display:inline-block; flex-shrink:0; }

/* ---------- TV HERO UPGRADE --------------------------------------------- */
.tv-hero{
  background:linear-gradient(135deg,#059669 0%,#0E7AD9 50%,#f97316 100%) !important;
  position:relative; overflow:hidden;
  border-radius:24px !important;
  box-shadow:0 20px 60px rgba(5,150,105,.22) !important;
}
.tv-hero::before{
  content:""; position:absolute; inset:0;
  background:radial-gradient(600px 220px at 90% 0%, rgba(255,255,255,.22), transparent 60%),
             radial-gradient(500px 300px at 10% 100%, rgba(255,255,255,.10), transparent 70%);
  pointer-events:none;
}
.tv-hero .tv-hero-mini{
  background:rgba(255,255,255,.16) !important;
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  border:1px solid rgba(255,255,255,.22) !important;
  box-shadow:0 8px 24px rgba(0,0,0,.10);
  transition:transform .28s ease, background .28s ease;
}
.tv-hero .tv-hero-mini:hover{ transform:translateY(-3px); background:rgba(255,255,255,.22) !important; }
.tv-hero .live-pulse{
  display:inline-flex; align-items:center; gap:6px;
  background:rgba(255,255,255,.18); border:1px solid rgba(255,255,255,.28);
  padding:4px 10px; border-radius:999px; font-size:.72rem; font-weight:800; letter-spacing:.06em;
}
.tv-hero .live-dot{
  width:8px; height:8px; border-radius:50%; background:#22c55e;
  box-shadow:0 0 0 0 rgba(34,197,94,.7); animation:livePulse 2s infinite;
}
@keyframes livePulse{
  0%{ box-shadow:0 0 0 0 rgba(34,197,94,.7); }
  70%{ box-shadow:0 0 0 6px rgba(34,197,94,0); }
  100%{ box-shadow:0 0 0 0 rgba(34,197,94,0); }
}

/* ---------- INSIGHT ROW (donut + breakdown) ------------------------------- */
.insight-row{
  display:flex; align-items:center; gap:12px; padding:10px 12px;
  background:#f8fafc; border:1px solid #f1f5f9; border-radius:14px;
  transition:background .2s ease, transform .2s ease;
}
.insight-row:hover{ background:#fff; transform:translateX(2px); box-shadow:0 4px 16px rgba(15,23,42,.06); }

/* ---------- QUICK LINK VIVID --------------------------------------------- */
.quick-link{
  border-radius:16px !important; border:1px solid #e2e8f0 !important;
  background:#fff !important; transition:all .28s cubic-bezier(.16,1,.3,1) !important;
  box-shadow:0 2px 12px rgba(15,23,42,.04) !important;
}
.quick-link:hover{
  transform:translateY(-3px);
  box-shadow:0 12px 32px rgba(15,23,42,.10) !important;
  border-color:#cbd5e1 !important;
}
.quick-link .ql-icon{
  width:48px; height:48px; border-radius:14px;
  display:inline-flex; align-items:center; justify-content:center;
  color:#fff; font-size:1.25rem; flex-shrink:0;
  box-shadow:0 6px 14px rgba(15,23,42,.12);
}

/* ---------- STAGGER ------------------------------------------------------ */
@keyframes dv-in{ from{ opacity:0; transform:translateY(12px) scale(.98)} to{ opacity:1; transform:none } }
.dv-stagger > *{ animation:dv-in .48s cubic-bezier(.16,1,.3,1) both; }
.dv-stagger > *:nth-child(1){ animation-delay:0ms }
.dv-stagger > *:nth-child(2){ animation-delay:70ms }
.dv-stagger > *:nth-child(3){ animation-delay:140ms }
.dv-stagger > *:nth-child(4){ animation-delay:210ms }
.dv-stagger > *:nth-child(5){ animation-delay:280ms }
.dv-stagger > *:nth-child(6){ animation-delay:350ms }
@media(prefers-reduced-motion:reduce){ .dv-stagger > *{ animation:none !important } }

/* apex improvements */
.apexcharts-canvas{ font-family:'Geist',sans-serif !important; }
.apexcharts-tooltip{ border-radius:14px !important; box-shadow:0 12px 32px rgba(15,23,42,.14) !important; border:1px solid #e2e8f0 !important; }
