/* ==========================================================
   BusinessPages CRM — Complete Stylesheet
   ========================================================== */

:root {
    --sidebar-bg:   #080f1f;
    --sidebar-w:    260px;
    --topbar-h:     58px;
    --bg:           #f0f2f5;
    --card:         #ffffff;
    --accent:       #10b981;
    --accent-h:     #059669;
    --accent-l:     #d1fae5;
    --txt:          #1e293b;
    --txt2:         #475569;
    --muted:        #94a3b8;
    --border:       #e2e8f0;
    --danger:       #ef4444;
    --danger-l:     #fee2e2;
    --warn:         #f59e0b;
    --warn-l:       #fef3c7;
    --info:         #06b6d4;
    --info-l:       #cffafe;
    --shadow:       0 1px 3px rgba(0,0,0,.06);
    --shadow-lg:    0 8px 30px rgba(0,0,0,.07);
    --radius:       8px;
    --radius-lg:    12px;
    --speed:        .2s ease;
}

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

body {
    font-family: 'DM Sans', -apple-system, sans-serif;
    background: var(--bg);
    color: var(--txt2);
    font-size: 14px;
    line-height: 1.6;
}

h1,h2,h3,h4,h5,h6 {
    font-family: 'Sora', sans-serif;
    color: var(--txt);
    font-weight: 600;
    line-height: 1.3;
}

a { color: var(--accent); text-decoration:none; }
a:hover { color: var(--accent-h); }

/* ── LOGIN ─────────────────────────────────────────── */

.login-page { background: var(--sidebar-bg); }

.login-wrap { display:flex; min-height:100vh; }

.login-left {
    flex: 1;
    display: flex; align-items: center; justify-content: center;
    padding: 60px;
    background: linear-gradient(160deg, #080f1f 0%, #0e1b35 50%, #132040 100%);
    position: relative;
    overflow: hidden;
}
.login-left::before {
    content: '';
    position: absolute;
    width: 500px; height: 500px;
    background: radial-gradient(circle, rgba(16,185,129,.1) 0%, transparent 70%);
    top: 5%; left: 20%;
}
.login-left-inner { position: relative; max-width:400px; text-align:center; }
.login-logo { font-family:'Sora',sans-serif; font-size:2.6rem; font-weight:700; color:#fff; margin-bottom:16px; letter-spacing:-.02em; }
.login-tagline { color:rgba(255,255,255,.45); font-size:1rem; line-height:1.7; margin-bottom:36px; }
.login-highlights { list-style:none; text-align:left; }
.login-highlights li { padding:7px 0; color:rgba(255,255,255,.55); font-size:.88rem; }
.login-highlights li::before { content:'\2713'; color:var(--accent); font-weight:700; margin-right:10px; }

.login-right {
    flex: 1;
    display: flex; align-items: center; justify-content: center;
    padding: 60px;
    background: var(--card);
}
.login-form-box { width:100%; max-width:380px; }
.login-form-box h2 { font-size:1.6rem; margin-bottom:4px; }
.login-sub { color:var(--muted); margin-bottom:24px; font-size:.9rem; }
.login-demo { text-align:center; margin-top:20px; color:var(--muted); font-size:.78rem; }

/* ── FORMS ─────────────────────────────────────────── */

.field { margin-bottom:16px; }
.field label { display:block; font-weight:500; margin-bottom:5px; font-size:.82rem; color:var(--txt); }
.field label.check-label { display:flex; align-items:center; gap:8px; cursor:pointer; font-size:.88rem; }
.field label.check-label input { width:16px; height:16px; }

.input {
    width:100%; padding:10px 14px;
    border:1.5px solid var(--border); border-radius:var(--radius);
    font-family:inherit; font-size:.87rem; color:var(--txt); background:#fff;
    transition: border var(--speed), box-shadow var(--speed);
}
.input:focus { outline:none; border-color:var(--accent); box-shadow:0 0 0 3px rgba(16,185,129,.1); }
.input::placeholder { color:var(--muted); }

textarea.input { resize:vertical; min-height:70px; }

select.input {
    appearance:none; cursor:pointer;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' fill='%2394a3b8'%3E%3Cpath d='M1.6 4.6a.5.5 0 01.7 0L8 10.3l5.7-5.7a.5.5 0 01.7.7l-6 6a.5.5 0 01-.7 0l-6-6a.5.5 0 010-.7z'/%3E%3C/svg%3E");
    background-repeat:no-repeat; background-position:right 12px center; padding-right:34px;
}

.input-sm { padding:7px 12px; font-size:.82rem; }

.row { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:0 16px; }

/* ── BUTTONS ───────────────────────────────────────── */

.btn {
    display:inline-flex; align-items:center; justify-content:center; gap:6px;
    padding:10px 20px; border:none; border-radius:var(--radius);
    font-family:'Sora',sans-serif; font-size:.84rem; font-weight:500;
    cursor:pointer; transition:all var(--speed); text-decoration:none; line-height:1.4;
}
.btn-primary { background:var(--accent); color:#fff; }
.btn-primary:hover { background:var(--accent-h); transform:translateY(-1px); box-shadow:0 4px 14px rgba(16,185,129,.25); color:#fff; }
.btn-secondary { background:var(--bg); color:var(--txt2); border:1.5px solid var(--border); }
.btn-secondary:hover { background:#e2e8f0; color:var(--txt); }
.btn-danger { background:var(--danger); color:#fff; }
.btn-danger:hover { background:#dc2626; color:#fff; }
.btn-sm { padding:6px 14px; font-size:.78rem; }
.btn-block { width:100%; }

/* ── APP LAYOUT ────────────────────────────────────── */

.app { display:flex; min-height:100vh; }

/* Sidebar */
.sidebar {
    width:var(--sidebar-w); background:var(--sidebar-bg);
    position:fixed; top:0; left:0; bottom:0; z-index:100;
    display:flex; flex-direction:column;
    transition:transform .25s ease;
    overflow-y:auto;
}
.sidebar::-webkit-scrollbar { width:3px; }
.sidebar::-webkit-scrollbar-thumb { background:rgba(255,255,255,.1); border-radius:2px; }

.sidebar-head { padding:20px 22px; border-bottom:1px solid rgba(255,255,255,.05); }
.sidebar-head h2 { font-size:1rem; color:#fff; font-weight:700; }
.sidebar-head small { color:rgba(255,255,255,.3); font-size:.68rem; }

.nav { padding:12px 10px; flex:1; }
.nav-group { margin-bottom:18px; }
.nav-label {
    font-size:.6rem; text-transform:uppercase; letter-spacing:.12em;
    color:rgba(255,255,255,.2); padding:0 12px; margin-bottom:4px;
    font-family:'Sora',sans-serif; font-weight:600;
}
.nav-item {
    display:flex; align-items:center; gap:10px;
    padding:8px 12px; color:rgba(255,255,255,.4);
    border-radius:6px; font-size:.84rem; margin-bottom:1px;
    transition:all var(--speed);
}
.nav-item:hover { color:#fff; background:rgba(255,255,255,.05); }
.nav-item.on { color:#fff; background:rgba(16,185,129,.12); }
.ni { width:18px; text-align:center; font-size:.8rem; opacity:.6; }
.nav-item.on .ni, .nav-item:hover .ni { opacity:1; }

/* Main */
.main { margin-left:var(--sidebar-w); flex:1; display:flex; flex-direction:column; min-width:0; }

/* Topbar */
.topbar {
    height:var(--topbar-h); background:var(--card);
    border-bottom:1px solid var(--border);
    display:flex; align-items:center; justify-content:space-between;
    padding:0 24px; position:sticky; top:0; z-index:50;
}
.topbar-l { display:flex; align-items:center; gap:14px; }
.topbar-l h1 { font-size:1.1rem; }
.burger { display:none; background:none; border:none; font-size:1.2rem; cursor:pointer; color:var(--txt2); }
.topbar-r { position:relative; }

.user-menu { display:flex; align-items:center; gap:10px; cursor:pointer; padding:5px 8px; border-radius:var(--radius); transition:background var(--speed); }
.user-menu:hover { background:var(--bg); }

.avatar {
    width:32px; height:32px; border-radius:50%;
    background:var(--accent); color:#fff;
    display:flex; align-items:center; justify-content:center;
    font-weight:600; font-size:.78rem; font-family:'Sora',sans-serif;
}
.user-name { font-weight:600; font-size:.82rem; color:var(--txt); }

.dropdown {
    display:none; position:absolute; top:calc(100% + 6px); right:0;
    background:#fff; border:1px solid var(--border); border-radius:var(--radius);
    box-shadow:var(--shadow-lg); min-width:180px; z-index:200; overflow:hidden;
}
.dropdown.show { display:block; }
.dropdown a { display:block; padding:9px 16px; color:var(--txt2); font-size:.84rem; transition:background var(--speed); }
.dropdown a:hover { background:var(--bg); }
.dropdown hr { border:none; border-top:1px solid var(--border); margin:2px 0; }

/* Content */
.content { padding:24px; flex:1; }

/* ── PAGE HEAD ─────────────────────────────────────── */

.page-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:20px; flex-wrap:wrap; gap:10px; }

/* ── CARDS ─────────────────────────────────────────── */

.card { background:var(--card); border-radius:var(--radius-lg); box-shadow:var(--shadow); border:1px solid var(--border); margin-bottom:20px; }
.card-head { padding:16px 22px; border-bottom:1px solid var(--border); display:flex; align-items:center; justify-content:space-between; }
.card-head h3 { font-size:.92rem; }
.card-body { padding:22px; }

/* ── STAT CARDS ────────────────────────────────────── */

.stats { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:16px; margin-bottom:24px; }

.stat-card {
    background:var(--card); border-radius:var(--radius-lg); padding:20px;
    box-shadow:var(--shadow); border:1px solid var(--border);
    display:flex; align-items:center; gap:14px;
    transition:transform var(--speed);
}
.stat-card:hover { transform:translateY(-2px); box-shadow:var(--shadow-lg); }

.stat-icon {
    width:44px; height:44px; border-radius:10px;
    display:flex; align-items:center; justify-content:center; font-size:1.1rem; flex-shrink:0;
}
.stat-icon.green  { background:var(--accent-l); color:var(--accent); }
.stat-icon.blue   { background:var(--info-l);    color:var(--info); }
.stat-icon.yellow { background:var(--warn-l);     color:var(--warn); }
.stat-icon.red    { background:var(--danger-l);   color:var(--danger); }

.stat-label { font-size:.68rem; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); font-weight:500; }
.stat-val { font-family:'Sora',sans-serif; font-size:1.35rem; font-weight:700; color:var(--txt); }

/* ── TABLES ────────────────────────────────────────── */

.tbl-wrap { overflow-x:auto; -webkit-overflow-scrolling:touch; }

table { width:100%; border-collapse:collapse; }
table th {
    text-align:left; padding:10px 14px;
    font-size:.68rem; text-transform:uppercase; letter-spacing:.04em;
    color:var(--muted); font-weight:600;
    border-bottom:2px solid var(--border);
    font-family:'Sora',sans-serif; white-space:nowrap;
}
table td { padding:12px 14px; border-bottom:1px solid var(--border); font-size:.86rem; vertical-align:middle; }
table tbody tr { transition:background var(--speed); }
table tbody tr:hover { background:rgba(16,185,129,.02); }

/* ── BADGES ────────────────────────────────────────── */

.badge { display:inline-flex; padding:2px 9px; border-radius:50px; font-size:.7rem; font-weight:600; font-family:'Sora',sans-serif; }
.badge-ok    { background:var(--accent-l); color:var(--accent-h); }
.badge-info  { background:var(--info-l);   color:#0e7490; }
.badge-err   { background:var(--danger-l); color:var(--danger); }
.badge-muted { background:#f1f5f9;         color:var(--muted); }

/* ── ALERTS ────────────────────────────────────────── */

.alert { padding:12px 18px; border-radius:var(--radius); margin-bottom:18px; font-size:.86rem; }
.alert-error   { background:var(--danger-l); color:#991b1b; border-left:4px solid var(--danger); }
.alert-success { background:var(--accent-l); color:#065f46; border-left:4px solid var(--accent); }
.alert-warning { background:var(--warn-l);   color:#92400e; border-left:4px solid var(--warn); }

/* ── ACTIONS ───────────────────────────────────────── */

.actions { display:flex; gap:4px; }
.actions a {
    width:30px; height:30px;
    display:inline-flex; align-items:center; justify-content:center;
    border-radius:6px; font-size:.78rem; transition:all var(--speed);
}
.act-view { background:var(--info-l);   color:var(--info); }
.act-edit { background:var(--warn-l);   color:#b45309; }
.act-del  { background:var(--danger-l); color:var(--danger); }
.actions a:hover { transform:translateY(-1px); box-shadow:0 2px 6px rgba(0,0,0,.06); }

/* ── TOOLBAR ───────────────────────────────────────── */

.toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:16px; flex-wrap:wrap; }
.search-box { position:relative; flex:1; max-width:360px; }
.search-box input {
    width:100%; padding:9px 14px 9px 36px;
    border:1.5px solid var(--border); border-radius:var(--radius);
    font-family:inherit; font-size:.86rem; background:#fff;
}
.search-box input:focus { outline:none; border-color:var(--accent); }
.search-box::before { content:'\1F50D'; position:absolute; left:11px; top:50%; transform:translateY(-50%); font-size:.75rem; pointer-events:none; }

/* ── PAGINATION ────────────────────────────────────── */

.pager { display:flex; align-items:center; justify-content:space-between; padding:14px 0; font-size:.82rem; }
.pager-info { color:var(--muted); }
.pager-btns { display:flex; gap:3px; }
.pager-btns a, .pager-btns span { padding:5px 11px; border-radius:6px; font-size:.76rem; font-weight:500; }
.pager-btns a { color:var(--txt2); background:#fff; border:1px solid var(--border); }
.pager-btns a:hover { background:var(--accent-l); color:var(--accent); border-color:var(--accent-l); }
.pager-btns span.active { background:var(--accent); color:#fff; border:1px solid var(--accent); }

/* ── EMPTY STATE ───────────────────────────────────── */

.empty-state { text-align:center; padding:48px 20px; color:var(--muted); }
.empty-icon { font-size:2.5rem; margin-bottom:12px; opacity:.5; }
.empty-state h3 { color:var(--txt); font-size:1rem; margin-bottom:4px; }

/* ── DETAIL VIEW ───────────────────────────────────── */

.detail-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:2px 20px; }
.detail-item { padding:8px 0; }
.detail-label { display:block; font-size:.66rem; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); margin-bottom:1px; font-family:'Sora',sans-serif; }
.detail-val { font-size:.9rem; color:var(--txt); font-weight:500; }

/* ── ACTIVITY ──────────────────────────────────────── */

.activity-row { padding:8px 0; border-bottom:1px solid var(--border); }
.activity-row:last-child { border-bottom:none; }
.activity-desc { font-size:.84rem; color:var(--txt); }
.activity-time { font-size:.7rem; color:var(--muted); }

/* ── QUICK ACTIONS ─────────────────────────────────── */

.quick-actions { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.qa-btn {
    display:flex; align-items:center; gap:10px; padding:12px 14px;
    border:1.5px solid var(--border); border-radius:var(--radius);
    color:var(--txt2); font-size:.84rem; font-weight:500;
    transition:all var(--speed); text-decoration:none;
}
.qa-btn:hover { border-color:var(--accent); background:rgba(16,185,129,.03); color:var(--txt); }
.qa-icon {
    width:34px; height:34px; border-radius:8px;
    display:flex; align-items:center; justify-content:center;
    font-size:1rem; flex-shrink:0;
}
.qa-icon.green { background:var(--accent-l); color:var(--accent); }
.qa-icon.blue  { background:var(--info-l);   color:var(--info); }
.qa-icon.red   { background:var(--danger-l);  color:var(--danger); }

/* ── GRID HELPERS ──────────────────────────────────── */

.grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:20px; }

/* ── SECTION TITLE ─────────────────────────────────── */

.section-title { font-size:.92rem; }
.section-title span { font-weight:400; }

/* ── RESPONSIVE ────────────────────────────────────── */

@media (max-width:768px) {
    .sidebar { transform:translateX(-100%); }
    .sidebar.open { transform:translateX(0); box-shadow:20px 0 60px rgba(0,0,0,.5); }
    .main { margin-left:0; }
    .burger { display:block; }
    .login-wrap { flex-direction:column; }
    .login-left { padding:32px 20px; min-height:auto; }
    .login-logo { font-size:2rem; }
    .login-right { padding:32px 20px; }
    .stats { grid-template-columns:1fr 1fr; }
    .grid-2 { grid-template-columns:1fr; }
    .quick-actions { grid-template-columns:1fr; }
    .content { padding:16px; }
    .page-head { flex-direction:column; align-items:flex-start; }
    .toolbar { flex-direction:column; align-items:stretch; }
    .search-box { max-width:100%; }
}

@media (max-width:480px) {
    .stats { grid-template-columns:1fr; }
}