/* FILE: app.css — CRM glassmorphism UI (spec palette: indigo #4F46E5, glass tokens, dark-mode vars in dark-mode.css) */
:root{
  --crm-primary:#4F46E5; --crm-primary-2:#7C3AED; --crm-bg:#eef1f8; --crm-bg-grad:radial-gradient(1200px 500px at 10% -10%,#e0e7ff 0,transparent 60%),radial-gradient(900px 400px at 110% 0,#ede9fe 0,transparent 55%);
  --glass-bg:rgba(255,255,255,.72); --glass-bg-strong:rgba(255,255,255,.9); --glass-border:rgba(255,255,255,.65);
  --ink:#1e2434; --ink-soft:#5b6478; --line:#e5e9f2;
  --card-shadow:0 10px 30px -12px rgba(31,41,90,.18); --radius:16px;
  --sidebar-w:264px; --topbar-h:62px;
}
*{box-sizing:border-box}
html,body{height:100%}
body.app-body{margin:0;background:var(--crm-bg);background-image:var(--crm-bg-grad);background-attachment:fixed;color:var(--ink);font-family:'Segoe UI',system-ui,-apple-system,Roboto,'Helvetica Neue',Arial,sans-serif}
a{text-decoration:none}
.app-shell{min-height:100vh;display:flex;flex-direction:column}
.app-main{flex:1;min-height:calc(100vh - var(--topbar-h))}
/* Topbar */
.topbar{background:var(--glass-bg-strong);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line);min-height:var(--topbar-h);box-shadow:0 2px 14px -10px rgba(31,41,90,.25)}
.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,var(--crm-primary),var(--crm-primary-2));color:#fff;font-size:.95rem;box-shadow:0 6px 14px -6px rgba(79,70,229,.6)}
.btn-icon{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;border:1px solid var(--line);background:var(--glass-bg);color:var(--ink)}
.btn-icon:hover{background:var(--glass-bg-strong);border-color:#c7d2fe}
/* Sidebar */
.sidebar{width:var(--sidebar-w);background:var(--glass-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-right:1px solid var(--line);position:sticky;top:var(--topbar-h);height:calc(100vh - var(--topbar-h));overflow-y:auto;transition:transform .2s ease;z-index:1040}
.sidebar-inner{display:flex;flex-direction:column;min-height:100%}
.sidebar-nav{padding:.8rem .6rem;flex:1}
.sidebar-nav .nav-link{display:flex;align-items:center;gap:.7rem;padding:.55rem .8rem;border-radius:10px;color:var(--ink-soft);font-weight:500;font-size:.92rem;margin-bottom:2px}
.sidebar-nav .nav-link i{width:20px;text-align:center;font-size:1rem}
.sidebar-nav .nav-link:hover{background:rgba(79,70,229,.08);color:var(--crm-primary)}
.sidebar-nav .nav-link.active{background:linear-gradient(135deg,rgba(79,70,229,.14),rgba(124,58,237,.12));color:var(--crm-primary);font-weight:600}
.nav-section{padding:.9rem .8rem .35rem;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);font-weight:700}
.sub-nav{list-style:none;padding:0 0 0 .6rem;margin:.2rem 0 .3rem .9rem;border-left:2px solid var(--line)}
.sub-nav li a{display:block;padding:.42rem .7rem;border-radius:8px;color:var(--ink-soft);font-size:.88rem}
.sub-nav li a:hover{color:var(--crm-primary);background:rgba(79,70,229,.07)}
.sidebar-backdrop{display:none}
/* Main */
.main-content{flex:1;min-width:0;margin-inline-start:0}
/* Layout: sidebar is sticky next to main — wrap approach */
.app-main{display:flex;align-items:stretch}
/* Glass cards */
.glass-card{background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);border-radius:var(--radius);box-shadow:var(--card-shadow)}
.card-header-clean{background:transparent;border-bottom:1px solid var(--line);padding:1rem 1.25rem;font-weight:600}
.stat-card{position:relative;overflow:hidden;padding:1.15rem 1.25rem;height:100%}
.stat-card .stat-icon{width:46px;height:46px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:1.25rem;color:#fff;background:linear-gradient(135deg,var(--crm-primary),var(--crm-primary-2));box-shadow:0 8px 18px -8px rgba(79,70,229,.7)}
.stat-card .stat-value{font-size:1.55rem;font-weight:800;line-height:1.1}
.stat-card .stat-label{color:var(--ink-soft);font-size:.85rem}
.stat-card .stat-trend{font-size:.8rem}
/* Tables */
.table-crm{margin:0}
.table-crm thead th{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);border-bottom:1px solid var(--line);background:rgba(79,70,229,.03);white-space:nowrap;padding:.7rem .9rem}
.table-crm tbody td{padding:.7rem .9rem;vertical-align:middle;border-bottom:1px solid var(--line)}
.table-crm tbody tr:hover{background:rgba(79,70,229,.045)}
.table-crm .row-actions .btn{padding:.25rem .5rem;font-size:.8rem;border-radius:.5rem}
.avatar{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;font-size:.8rem;font-weight:700;color:#fff}
.avatar-primary{background:linear-gradient(135deg,#6366f1,#8b5cf6)}.avatar-success{background:linear-gradient(135deg,#10b981,#059669)}.avatar-info{background:linear-gradient(135deg,#0ea5e9,#2563eb)}.avatar-warning{background:linear-gradient(135deg,#f59e0b,#d97706)}.avatar-danger{background:linear-gradient(135deg,#ef4444,#dc2626)}
/* Buttons & forms */
.btn{font-weight:500}
.btn-primary{background:linear-gradient(135deg,var(--crm-primary),var(--crm-primary-2));border:none}
.btn-primary:hover{filter:brightness(1.07)}
.btn-soft{background:rgba(79,70,229,.1);color:var(--crm-primary);border:1px solid rgba(79,70,229,.2)}
.btn-soft:hover{background:rgba(79,70,229,.18);color:var(--crm-primary)}
.form-control,.form-select{border-radius:10px;border-color:var(--line);background:rgba(255,255,255,.65)}
.form-control:focus,.form-select:focus{border-color:var(--crm-primary);box-shadow:0 0 0 .2rem rgba(79,70,229,.12)}
.form-label{font-weight:600;font-size:.85rem}
.input-group-text{border-radius:10px 0 0 10px;background:rgba(79,70,229,.06);border-color:var(--line)}
.filter-bar{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:14px;padding:.85rem}
/* Kanban */
.kanban{display:flex;gap:1rem;overflow-x:auto;padding-bottom:1rem;align-items:flex-start}
.kanban-col{flex:0 0 280px;max-width:280px;background:rgba(255,255,255,.45);border:1px solid var(--glass-border);border-radius:14px;display:flex;flex-direction:column;max-height:calc(100vh - 190px)}
.kanban-col-head{padding:.7rem .9rem;font-weight:700;display:flex;justify-content:space-between;align-items:center;border-bottom:1px dashed var(--line)}
.kanban-col-body{padding:.6rem;overflow-y:auto;flex:1;min-height:70px}
.kanban-card{background:var(--glass-bg-strong);border:1px solid var(--glass-border);border-radius:12px;padding:.75rem;margin-bottom:.6rem;box-shadow:0 4px 10px -6px rgba(31,41,90,.2);cursor:grab}
.kanban-card:hover{box-shadow:0 8px 18px -8px rgba(79,70,229,.35);border-color:#c7d2fe}
.kanban-card.dragging{opacity:.4}
.kanban-col.drop-target{outline:2px dashed var(--crm-primary)}
.kanban-card .deal-amount{font-weight:700;color:var(--crm-primary)}
/* Timeline */
.timeline{position:relative;padding-inline-start:1.4rem}
.timeline::before{content:'';position:absolute;inset-inline-start:6px;top:4px;bottom:4px;width:2px;background:var(--line)}
.timeline-item{position:relative;padding-bottom:1.1rem}
.timeline-item::before{content:'';position:absolute;inset-inline-start:-1.4rem;top:5px;width:12px;height:12px;border-radius:50%;background:var(--crm-primary);border:2px solid #fff;box-shadow:0 0 0 2px rgba(79,70,229,.25)}
.timeline-item.type-success::before{background:#10b981}
.timeline-item.type-danger::before{background:#ef4444}
.timeline-item.type-warning::before{background:#f59e0b}
.timeline-item .t-time{font-size:.75rem;color:var(--ink-soft)}
/* Badges */
.badge{font-weight:600}
/* Login/auth pages */
.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem;background-image:var(--crm-bg-grad)}
.auth-card{width:100%;max-width:430px;background:var(--glass-bg-strong);backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:22px;box-shadow:0 24px 60px -20px rgba(31,41,90,.35);padding:2rem}
.auth-card .brand-mark{width:44px;height:44px;font-size:1.2rem;border-radius:12px}
/* misc */
.section-title{font-weight:800;letter-spacing:-.01em}
.text-soft{color:var(--ink-soft)}
.page-head{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1.1rem}
.pipeline-summary .progress{height:8px;border-radius:99px}
.notes-body{white-space:pre-wrap}
.mobile-nav{display:none}
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}
@media (max-width: 991.98px){
  .sidebar{position:fixed;top:0;left:0;bottom:0;height:100vh;transform:translateX(-105%);z-index:1055;border-radius:0 16px 16px 0}
  [dir="rtl"] .sidebar{left:auto;right:0;transform:translateX(105%);border-radius:16px 0 0 16px}
  body.sidebar-open .sidebar{transform:translateX(0)}
  body.sidebar-open .sidebar-backdrop{display:block;position:fixed;inset:0;background:rgba(15,23,42,.45);z-index:1050}
  .mobile-nav{display:flex;position:fixed;bottom:0;left:0;right:0;background:var(--glass-bg-strong);backdrop-filter:blur(16px);border-top:1px solid var(--line);z-index:1045;padding:.35rem 0;justify-content:space-around}
  .mobile-nav-item{display:flex;flex-direction:column;align-items:center;gap:.15rem;font-size:.68rem;color:var(--ink-soft);padding:.25rem .5rem;border-radius:10px}
  .mobile-nav-item i{font-size:1.15rem}
  .mobile-nav-item.active{color:var(--crm-primary)}
  .main-content{padding-bottom:70px}
}
