Spaces:
Sleeping
Sleeping
File size: 9,059 Bytes
3c4a809 76089f2 3c4a809 76089f2 3c4a809 76089f2 3c4a809 76089f2 3c4a809 76089f2 3c4a809 76089f2 3c4a809 76089f2 3c4a809 76089f2 3c4a809 76089f2 3c4a809 76089f2 3c4a809 76089f2 3c4a809 76089f2 3c4a809 76089f2 3c4a809 76089f2 3c4a809 76089f2 3c4a809 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 | @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap');
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
--bg: #f6f7fb;
--surface: #ffffff;
--surface2: #f0f2f8;
--border: #e6e9ef;
--border-dark: #c3c6d4;
--sidebar-bg: #1f3244;
--sidebar-hover: #2c4a63;
--sidebar-active: #0073ea;
--sidebar-text: #c5cfe0;
--sidebar-text-active: #ffffff;
--accent: #0073ea;
--accent-hover: #0060c0;
--accent-light: #e8f3ff;
--green: #00c875;
--green-light: #e0f8ec;
--yellow: #fdab3d;
--yellow-light: #fff5e0;
--red: #e2445c;
--red-light: #fce8eb;
--purple: #a25ddc;
--purple-light: #f3e8fb;
--text: #323338;
--text-muted: #676879;
--text-light: #9699a6;
--radius: 8px;
--radius-sm: 4px;
--shadow: 0 2px 8px rgba(0,0,0,0.06);
--shadow-md: 0 4px 16px rgba(0,0,0,0.10);
}
body { font-family: 'Poppins', sans-serif; background: var(--bg); color: var(--text); font-size: 14px; line-height: 1.5; }
/* ββ Layout ββ */
.app-shell { display: flex; height: 100vh; overflow: hidden; }
.sidebar { width: 220px; min-width: 220px; background: var(--sidebar-bg); display: flex; flex-direction: column; overflow-y: auto; }
.main-content { flex: 1; overflow-y: auto; background: var(--bg); }
/* ββ Sidebar ββ */
.sidebar-logo { padding: 20px 16px 14px; font-size: 16px; font-weight: 700; color: #fff; border-bottom: 1px solid rgba(255,255,255,0.08); margin-bottom: 8px; }
.sidebar-section-label { font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; color: rgba(255,255,255,0.3); padding: 12px 16px 4px; }
.sidebar-link { display: flex; align-items: center; gap: 10px; padding: 9px 12px; margin: 1px 8px; border-radius: var(--radius-sm); color: var(--sidebar-text); text-decoration: none; font-size: 13px; font-weight: 500; transition: background 0.12s, color 0.12s; cursor: pointer; border: none; background: transparent; width: calc(100% - 16px); text-align: left; }
.sidebar-link:hover { background: var(--sidebar-hover); color: #fff; }
.sidebar-link.active { background: var(--sidebar-active); color: #fff; font-weight: 600; }
.sidebar-link .icon { font-size: 15px; width: 18px; text-align: center; flex-shrink: 0; }
.sidebar-project-item { display: flex; align-items: center; gap: 8px; padding: 8px 12px; margin: 1px 8px; border-radius: var(--radius-sm); color: var(--sidebar-text); font-size: 13px; cursor: pointer; transition: background 0.12s; border: none; background: transparent; width: calc(100% - 16px); text-align: left; }
.sidebar-project-item:hover { background: var(--sidebar-hover); color: #fff; }
.sidebar-project-item.active { background: rgba(0,115,234,0.3); color: #fff; font-weight: 600; }
.sidebar-project-dot { width: 9px; height: 9px; border-radius: 50%; flex-shrink: 0; }
.sidebar-footer { margin-top: auto; padding: 12px 8px; border-top: 1px solid rgba(255,255,255,0.08); }
/* ββ Top bar ββ */
.topbar { height: 52px; background: var(--surface); border-bottom: 1px solid var(--border); display: flex; align-items: center; padding: 0 24px; gap: 8px; position: sticky; top: 0; z-index: 5; }
.topbar-title { font-size: 15px; font-weight: 600; }
.topbar-sep { color: var(--text-light); font-size: 13px; }
/* ββ Buttons ββ */
button { cursor: pointer; font-family: inherit; font-size: 13px; border: none; border-radius: var(--radius); padding: 8px 16px; transition: all 0.12s; }
.btn-primary { background: var(--accent); color: #fff; font-weight: 600; }
.btn-primary:hover { background: var(--accent-hover); }
.btn-primary:disabled { opacity: 0.5; cursor: not-allowed; }
.btn-secondary { background: var(--surface); color: var(--text); border: 1px solid var(--border-dark); font-weight: 500; }
.btn-secondary:hover { background: var(--surface2); border-color: var(--accent); color: var(--accent); }
.btn-danger { background: var(--red); color: #fff; font-weight: 600; }
.btn-danger:hover { background: #c93550; }
.btn-ghost { background: transparent; color: var(--text-muted); padding: 6px 10px; }
.btn-ghost:hover { background: var(--surface2); color: var(--text); }
.btn-sm { padding: 5px 12px; font-size: 12px; }
.btn-success { background: var(--green); color: #fff; font-weight: 600; }
.btn-success:hover { opacity: 0.88; }
/* ββ Inputs ββ */
input, select, textarea { font-family: inherit; font-size: 14px; background: var(--surface); border: 1px solid var(--border-dark); border-radius: var(--radius); color: var(--text); padding: 8px 12px; outline: none; transition: border-color 0.15s, box-shadow 0.15s; width: 100%; }
input:focus, select:focus, textarea:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(0,115,234,0.12); }
input::placeholder, textarea::placeholder { color: var(--text-light); }
textarea { resize: vertical; min-height: 80px; }
/* ββ Cards ββ */
.card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 20px; box-shadow: var(--shadow); }
/* ββ Badges ββ */
.badge { display: inline-flex; align-items: center; padding: 3px 10px; border-radius: 999px; font-size: 11px; font-weight: 600; }
.badge-new { background: var(--accent-light); color: var(--accent); }
.badge-contacted { background: var(--yellow-light); color: #9a6e00; }
.badge-qualified { background: var(--green-light); color: #006b3c; }
.badge-converted { background: var(--purple-light); color: var(--purple); }
.badge-archived { background: var(--surface2); color: var(--text-muted); }
.badge-csv { background: var(--accent-light); color: var(--accent); }
.badge-excel { background: var(--green-light); color: #006b3c; }
.badge-linkedin { background: var(--purple-light); color: var(--purple); }
.badge-web_scrape { background: var(--red-light); color: var(--red); }
.badge-manual { background: var(--yellow-light); color: #9a6e00; }
/* ββ Page ββ */
.page { padding: 24px; max-width: 1400px; margin: 0 auto; }
.page-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 24px; gap: 12px; flex-wrap: wrap; }
.page-title { font-size: 20px; font-weight: 700; }
.page-subtitle { font-size: 13px; color: var(--text-muted); margin-top: 2px; }
/* ββ Table ββ */
table { width: 100%; border-collapse: collapse; }
th { text-align: left; padding: 10px 14px; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; color: var(--text-muted); background: var(--surface2); border-bottom: 2px solid var(--border); }
td { padding: 11px 14px; border-bottom: 1px solid var(--border); vertical-align: middle; }
tr:last-child td { border-bottom: none; }
tr:hover td { background: #f8f9fd; }
/* ββ Form ββ */
.form-group { margin-bottom: 16px; }
.form-group label { display: block; font-size: 13px; font-weight: 600; margin-bottom: 6px; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
/* ββ Alerts ββ */
.alert { padding: 12px 16px; border-radius: var(--radius); margin-bottom: 16px; font-size: 13px; font-weight: 500; }
.alert-success { background: var(--green-light); border: 1px solid #00c875; color: #006b3c; }
.alert-error { background: var(--red-light); border: 1px solid var(--red); color: #b0203a; }
.alert-info { background: var(--accent-light); border: 1px solid var(--accent); color: var(--accent-hover); }
/* ββ Misc ββ */
a { color: var(--accent); text-decoration: none; }
a:hover { color: var(--accent-hover); }
.spinner { width: 18px; height: 18px; border: 2px solid var(--border); border-top-color: var(--accent); border-radius: 50%; animation: spin 0.6s linear infinite; display: inline-block; }
@keyframes spin { to { transform: rotate(360deg); } }
.pagination { display: flex; align-items: center; gap: 8px; margin-top: 16px; }
.pagination button { padding: 5px 12px; font-size: 13px; }
.checkbox { width: auto !important; }
.flex { display: flex; }
.gap-2 { gap: 8px; }
.gap-3 { gap: 12px; }
.items-center { align-items: center; }
.ml-auto { margin-left: auto; }
/* ββ Stat card ββ */
.stat-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 20px 24px; box-shadow: var(--shadow); }
.stat-card-label { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.07em; color: var(--text-muted); margin-bottom: 8px; }
.stat-card-value { font-size: 28px; font-weight: 700; line-height: 1; }
.stat-card-sub { font-size: 12px; color: var(--text-muted); margin-top: 6px; }
/* ββ Empty state ββ */
.empty-state { text-align: center; padding: 60px 24px; color: var(--text-muted); }
.empty-state-icon { font-size: 40px; margin-bottom: 12px; }
.empty-state-title { font-size: 16px; font-weight: 600; color: var(--text); margin-bottom: 6px; }
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--border-dark); border-radius: 3px; }
|