/* Lenzo CRM - app.css (structure + components) | Designed by Lenzo.ae
   Colors come from theme/<name>.css via CSS variables. Light is the fallback. */
:root{
  --crm-bg:#e8edf4; --crm-bg-grad-1:#eef2f8; --crm-bg-grad-2:#e8edf4;
  --crm-primary:#2563eb; --crm-primary-d:#1d4ed8; --crm-nav-1:#1e3a8a; --crm-nav-2:#2563eb;
  --crm-ink:#1e293b; --crm-muted:#64748b; --crm-card:#fff; --crm-card-2:#f7faff;
  --crm-border:#dce3ec; --crm-soft:#f4f7fb; --crm-row-hover:#eff5ff; --crm-input:#fbfdff;
  --crm-avatar-1:#2563eb; --crm-avatar-2:#3b82f6;
}
*{font-family:'Inter',system-ui,-apple-system,'Segoe UI',Arial,sans-serif;}
body{
  background:linear-gradient(180deg,var(--crm-bg-grad-1) 0%, var(--crm-bg-grad-2) 100%);
  background-attachment:fixed; color:var(--crm-ink);
}

/* Navbars */
.crm-nav,.admin-nav{ background:linear-gradient(90deg,var(--crm-nav-1),var(--crm-nav-2)); box-shadow:0 2px 14px rgba(15,23,42,.18); }
.crm-nav .navbar-brand,.admin-nav .navbar-brand,.crm-nav .btn-outline-light,.admin-nav .btn-outline-light{color:#fff;}
.crm-nav .navbar-brand,.admin-nav .navbar-brand{font-size:1.05rem;}

/* Navbar: plain text link (no white fill on hover) */
.nav-link-soft{
  color:#fff !important; text-decoration:none; font-weight:500;
  padding:.34rem .6rem; border-radius:9px; display:inline-flex; align-items:center;
  border:1px solid rgba(255,255,255,.28); background:rgba(255,255,255,.06);
  transition:background .12s ease;
}
.nav-link-soft:hover{ background:rgba(255,255,255,.18); color:#fff !important; }

/* Navbar: compact, integrated theme picker */
.nav-theme-select{
  width:auto; min-width:116px; cursor:pointer;
  background:rgba(255,255,255,.12); color:#fff; font-weight:500;
  border:1px solid rgba(255,255,255,.3); border-radius:9px;
  padding:.32rem 1.8rem .32rem .7rem; -webkit-appearance:none; appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23ffffff'%3E%3Cpath d='M8 11 3 6h10z'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right .55rem center; background-size:11px;
}
.nav-theme-select:focus{ box-shadow:0 0 0 .18rem rgba(255,255,255,.25); color:#fff; outline:none; }
.nav-theme-select option{ color:#1e293b; }

/* Navbar: professional theme dropdown */
.nav-theme-btn{
  color:#fff; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.3);
  border-radius:9px; padding:.34rem .65rem; font-weight:500; font-size:.85rem; line-height:1;
}
.nav-theme-btn:hover,.nav-theme-btn:focus{ color:#fff; background:rgba(255,255,255,.22); box-shadow:none; }
.nav-theme-btn::after{ margin-left:.45rem; vertical-align:.1em; }
.nav-theme-menu{ border-radius:12px; padding:.35rem; min-width:172px; box-shadow:0 12px 32px rgba(15,23,42,.22); border:1px solid var(--crm-border); }
.nav-theme-menu .dropdown-item{ border-radius:8px; padding:.42rem .55rem; font-weight:500; display:flex; align-items:center; }
.nav-theme-menu .dropdown-item:active{ background:var(--crm-primary); color:#fff; }
.nav-theme-menu .dropdown-item.active{ background:var(--crm-soft); color:var(--crm-ink); }
.theme-dot{ width:14px; height:14px; border-radius:50%; margin-right:.55rem; border:1px solid rgba(0,0,0,.18); flex:0 0 14px; box-shadow:inset 0 0 0 2px rgba(255,255,255,.35); }

/* Navbar: user chip */
.nav-user-chip{
  display:inline-flex; align-items:center; gap:.35rem;
  background:rgba(255,255,255,.16); color:#fff; font-weight:600;
  border-radius:20px; padding:.3rem .8rem; font-size:.85rem;
  border:1px solid rgba(255,255,255,.22);
}

/* Cards */
.crm-card{ background:var(--crm-card); border:1px solid var(--crm-border); border-radius:16px; box-shadow:0 6px 22px rgba(15,23,42,.06); }
.card-header{border-radius:16px 16px 0 0 !important;background:transparent;}

/* Login */
.login-logo{ width:64px;height:64px;border-radius:18px;margin:0 auto; display:flex;align-items:center;justify-content:center;
  font-size:30px;color:#fff;background:linear-gradient(135deg,var(--crm-nav-1),var(--crm-avatar-2)); box-shadow:0 10px 26px rgba(37,99,235,.35); }

/* Forms */
.form-control,.form-select,textarea.form-control{border-radius:10px;border-color:var(--crm-border);background:var(--crm-input);color:var(--crm-ink);}
.form-control:focus,.form-select:focus{border-color:var(--crm-primary);box-shadow:0 0 0 .2rem rgba(37,99,235,.15);}
textarea.form-control{min-height:96px;}
.btn{border-radius:10px;font-weight:500;}
.btn-primary{background:var(--crm-primary);border-color:var(--crm-primary);}
.btn-primary:hover{background:var(--crm-primary-d);border-color:var(--crm-primary-d);}

/* Stat boxes */
.stat-box{ border:1px solid var(--crm-border);border-radius:14px;padding:14px 16px;
  background:linear-gradient(180deg,var(--crm-card),var(--crm-card-2));
  transition:transform .14s ease, box-shadow .14s ease;height:100%; }
.stat-box:hover{transform:translateY(-3px);box-shadow:0 10px 22px rgba(15,23,42,.1);}
.stat-label{color:var(--crm-muted);font-size:.74rem;text-transform:uppercase;letter-spacing:.05em;font-weight:600;}
.stat-value{font-size:1.5rem;font-weight:700;color:var(--crm-ink);}

/* Tables */
.table{--bs-table-bg:transparent;color:var(--crm-ink);}
.table thead th{ color:var(--crm-muted);font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;font-weight:700;
  border-bottom:2px solid var(--crm-border);background:var(--crm-soft); }
.table tbody td{vertical-align:middle;border-color:var(--crm-border);}
.table-hover tbody tr:hover{background:var(--crm-row-hover);}
.cust-row{cursor:pointer;transition:background .1s ease;}
.cust-row:hover{background:var(--crm-row-hover);}
.chev{transition:transform .15s ease;}
.row-deleted{background:#fef2f2 !important;}
.row-deleted td{color:#991b1b;}

/* Avatars */
.avatar-sm{ width:34px;height:34px;border-radius:10px;flex:0 0 34px; display:inline-flex;align-items:center;justify-content:center;
  font-weight:700;color:#fff;font-size:.9rem; background:linear-gradient(135deg,var(--crm-avatar-1),var(--crm-avatar-2)); }
.avatar-lg{ width:56px;height:56px;border-radius:16px;flex:0 0 56px; display:inline-flex;align-items:center;justify-content:center;
  font-weight:700;color:#fff;font-size:1.4rem; background:linear-gradient(135deg,var(--crm-nav-1),var(--crm-avatar-2)); box-shadow:0 8px 20px rgba(37,99,235,.3); }

/* Badges + pills */
.badge{font-weight:600;border-radius:8px;padding:.4em .62em;}
.type-pill{font-size:.72rem;}
.lock-badge{color:#b45309;}

/* Soft inner panels + requests cards */
.soft-panel{background:var(--crm-soft);border:1px solid var(--crm-border);border-radius:14px;}
.req-card{transition:transform .12s ease, box-shadow .12s ease;}
.req-card:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(15,23,42,.08);}

.toast{border-radius:12px;box-shadow:0 10px 30px rgba(15,23,42,.2);}

/* Tabs */
.nav-tabs{border-bottom:2px solid var(--crm-border);}
.nav-tabs .nav-link{color:var(--crm-muted);border:0;border-bottom:3px solid transparent;font-weight:600;transition:color .12s ease,border-color .12s ease;}
.nav-tabs .nav-link:hover{color:var(--crm-primary);}
.nav-tabs .nav-link.active{color:var(--crm-primary-d);background:transparent;border-bottom-color:var(--crm-primary);}

/* Animations */
@keyframes crmFadeUp{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}
@keyframes crmPop{from{opacity:0;transform:scale(.96);}to{opacity:1;transform:none;}}
.fade-up{animation:crmFadeUp .35s ease both;}
.pop-in{animation:crmPop .25s ease both;}
.crm-card,.stat-box{animation:crmFadeUp .35s ease both;}
.btn{transition:transform .08s ease, background .12s ease, box-shadow .12s ease;}
.btn:active{transform:translateY(1px);}
.spin-hover:hover i{animation:spin 1s linear;}
@keyframes spin{to{transform:rotate(360deg);}}

/* Theme swatch (settings) */
.theme-swatch{width:100%;height:54px;border-radius:12px;border:2px solid transparent;cursor:pointer;display:flex;align-items:flex-end;padding:6px;transition:transform .1s ease,border-color .1s ease;}
.theme-swatch:hover{transform:translateY(-2px);}
.theme-swatch.active{border-color:var(--crm-primary);}
.theme-name{font-size:.72rem;font-weight:600;background:rgba(255,255,255,.85);border-radius:6px;padding:1px 6px;color:#0f172a;}

@media (max-width:575px){
  .stat-value{font-size:1.25rem;}
  .crm-nav .navbar-brand,.admin-nav .navbar-brand{font-size:.92rem;}
}

/* v1.5 extra motion + polish ------------------------------------------- */
@keyframes crmFadeUp { from { opacity:0; transform:translateY(8px);} to {opacity:1; transform:none;} }
@keyframes crmPop    { from { opacity:0; transform:scale(.97);} to {opacity:1; transform:none;} }
.tab-pane.show.active { animation: crmFadeUp .28s ease both; }
.modal.show .modal-content { animation: crmPop .2s ease both; }
.table tbody tr { transition: background-color .15s ease, transform .15s ease; }
.nav-tabs .nav-link { transition: color .15s ease, background-color .15s ease; }
.nav-tabs .nav-link i { transition: transform .2s ease; }
.nav-tabs .nav-link:hover i { transform: translateY(-1px) scale(1.08); }
.btn { transition: transform .12s ease, box-shadow .15s ease, background-color .15s ease, border-color .15s ease; }
.btn:active { transform: translateY(1px) scale(.98); }
.crm-card { transition: box-shadow .2s ease, transform .2s ease; }
.stat-box { transition: transform .15s ease, box-shadow .15s ease; }
.stat-box:hover { transform: translateY(-2px); }
.form-switch .form-check-input { transition: background-color .2s ease, border-color .2s ease; }
.badge { transition: transform .12s ease; }
/* v1.7 tidy-ups (safe, additive) -------------------------------------- */
#stat_range_total { font-variant-numeric: tabular-nums; }
.badge.rounded-pill { font-weight: 600; letter-spacing: .2px; }
.nav-theme-btn { border-radius: 10px; }
.nav-theme-menu .dropdown-item.active .theme-dot { outline: 2px solid var(--crm-primary, #2563eb); outline-offset: 1px; }
.crm-card { border-radius: 16px; }
.soft-panel { border-radius: 12px; }
.stat-box { border-radius: 12px; }
.table thead th { white-space: nowrap; }
.modal-content { border-radius: 16px; }
.form-control, .form-select { border-radius: 10px; }