:root { --ink:#1c2330; --muted:#6b7280; --line:#e3e7ed; --surface:#f5f7f9; --white:#fff; --green:#17864b; --green-dark:#11693a; --blue:#2563eb; --amber:#d97706; --red:#dc2626; --sidebar:#202733; }
* { box-sizing:border-box; }
html { min-width:320px; }
body { margin:0; color:var(--ink); background:var(--surface); font-family:"Manrope",Arial,sans-serif; font-size:14px; letter-spacing:0; }
a { color:inherit; text-decoration:none; }
button,input,select,textarea { font:inherit; letter-spacing:0; }
button { cursor:pointer; }
svg { width:18px; height:18px; stroke-width:2; }
.sidebar { position:fixed; inset:0 auto 0 0; z-index:20; width:236px; display:flex; flex-direction:column; padding:20px 14px; color:#eef2f7; background:var(--sidebar); }
.brand { height:48px; display:flex; align-items:center; gap:10px; padding:0 8px; font-size:18px; }
.logo-mark { width:36px; height:36px; flex:0 0 36px; display:grid; place-items:center; border-radius:7px; color:white; background:var(--green); }
.sidebar nav { display:grid; gap:4px; margin-top:28px; }
.nav-label { padding:0 12px 8px; color:#8e98a7; font-size:10px; font-weight:800; }
.sidebar nav a { min-height:44px; display:flex; align-items:center; gap:11px; padding:0 12px; border-radius:6px; color:#c9d0da; font-weight:600; }
.sidebar nav a:hover,.sidebar nav a.active { color:white; background:#303947; }
.sidebar nav a.active { box-shadow:inset 3px 0 var(--green); }
.sidebar-foot { display:grid; gap:4px; margin-top:auto; padding:14px 12px 2px; border-top:1px solid #35404e; color:#c9d0da; }
.sidebar-foot small { color:#7f8a99; }
.app-shell { min-height:100vh; margin-left:236px; }
.topbar { height:70px; display:flex; align-items:center; justify-content:space-between; padding:0 28px; border-bottom:1px solid var(--line); background:white; }
.topbar > div:first-child { display:grid; gap:2px; }
.topbar > div:first-child span { color:var(--muted); font-size:11px; }
.user-menu { display:flex; align-items:center; gap:9px; }
.user-menu > div { display:grid; gap:1px; }
.user-menu small { color:var(--muted); font-size:10px; }
.user-avatar { width:34px; height:34px; display:grid; place-items:center; border-radius:50%; color:var(--green-dark); background:#dcfce7; font-weight:800; }
.icon-button { width:36px; height:36px; display:inline-grid; place-items:center; padding:0; border:0; border-radius:5px; color:#64748b; background:transparent; }
.icon-button:hover { color:var(--ink); background:#f1f5f9; }
.icon-button.bordered { border:1px solid var(--line); background:white; }
.icon-button.danger { color:var(--red); }
.messages { padding:12px 28px 0; }
.message { padding:11px 14px; border:1px solid #86efac; border-radius:5px; color:#166534; background:#f0fdf4; }
.message.error { border-color:#fecaca; color:#991b1b; background:#fef2f2; }
.content { padding:26px 28px 50px; }
.page-head { min-height:58px; display:flex; align-items:start; justify-content:space-between; gap:20px; margin-bottom:22px; }
.page-head h1 { margin:0; font-size:25px; line-height:1.25; }
.page-head p { margin:5px 0 0; color:var(--muted); }
.head-actions { display:flex; gap:8px; }
.button { min-height:40px; display:inline-flex; align-items:center; justify-content:center; gap:7px; padding:8px 14px; border:1px solid transparent; border-radius:5px; font-weight:700; }
.button.primary { color:white; background:var(--green); }
.button.primary:hover { background:var(--green-dark); }
.button.secondary { border-color:var(--line); color:#374151; background:white; }
.button.danger-solid { color:white; background:var(--red); }
.back-link { display:flex; align-items:center; gap:6px; color:var(--green-dark); font-weight:700; }
.metric-strip { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); margin-bottom:20px; border:1px solid var(--line); border-radius:7px; background:white; }
.metric-strip a { min-width:0; display:grid; gap:6px; padding:18px 20px; border-right:1px solid var(--line); }
.metric-strip a:last-child { border-right:0; }
.metric-strip span { display:flex; align-items:center; gap:7px; color:var(--muted); font-size:12px; font-weight:700; }
.metric-strip span svg { color:var(--green); }
.metric-strip strong { overflow:hidden; font-size:24px; text-overflow:ellipsis; white-space:nowrap; }
.metric-strip small { color:#9ca3af; }
.dashboard-grid { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(300px,.7fr); gap:20px; }
.panel { min-width:0; border:1px solid var(--line); border-radius:7px; background:white; }
.panel-head { min-height:68px; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 18px; border-bottom:1px solid var(--line); }
.panel-head h2 { margin:0; font-size:16px; }
.panel-head p { margin:3px 0 0; color:var(--muted); font-size:11px; }
.panel-head > a:not(.icon-button) { display:flex; align-items:center; gap:5px; color:var(--green-dark); font-size:12px; font-weight:700; }
.panel-head > a svg { width:15px; }
.table-wrap { overflow-x:auto; }
table { width:100%; border-collapse:collapse; }
th { height:43px; padding:0 14px; border-bottom:1px solid var(--line); color:#64748b; background:#fafbfc; font-size:10px; text-align:left; text-transform:uppercase; white-space:nowrap; }
td { height:58px; padding:8px 14px; border-bottom:1px solid #edf0f3; color:#374151; vertical-align:middle; }
tbody tr:last-child td { border-bottom:0; }
tbody tr:hover { background:#fafcfd; }
td span,td small { display:block; }
td small { margin-top:3px; color:#9ca3af; font-size:10px; }
.primary-link { color:#1f2937; font-weight:700; }
.primary-link:hover { color:var(--green-dark); }
.number { text-align:right; }
.actions { width:90px; text-align:right; white-space:nowrap; }
.actions .icon-button { display:inline-grid; }
.status,.priority { display:inline-flex; width:max-content; align-items:center; padding:4px 8px; border-radius:12px; font-size:10px; font-weight:800; }
.status.new,.status.lead { color:#1d4ed8; background:#dbeafe; }
.status.qualification { color:#7c3aed; background:#ede9fe; }
.status.proposal { color:#b45309; background:#fef3c7; }
.status.won,.status.client { color:#15803d; background:#dcfce7; }
.status.lost,.status.inactive { color:#6b7280; background:#e5e7eb; }
.priority.low { color:#64748b; background:#f1f5f9; }
.priority.normal { color:#1d4ed8; background:#dbeafe; }
.priority.high { color:#b91c1c; background:#fee2e2; }
.task-list { display:grid; }
.task-row { min-height:64px; display:grid; grid-template-columns:30px minmax(0,1fr) 42px; gap:7px; align-items:center; padding:9px 14px; border-bottom:1px solid #edf0f3; }
.task-row:last-child { border-bottom:0; }
.task-row form button,.check-button { width:28px; height:28px; display:grid; place-items:center; padding:0; border:0; color:#94a3b8; background:transparent; }
.task-row form button:hover,.check-button:hover { color:var(--green); }
.task-row > div { min-width:0; display:grid; gap:4px; }
.task-row a { overflow:hidden; font-size:12px; font-weight:700; text-overflow:ellipsis; white-space:nowrap; }
.task-row span { color:var(--muted); font-size:10px; }
.task-row time { color:var(--muted); font-size:11px; text-align:right; }
.task-row.overdue time,.date-overdue { color:var(--red); font-weight:800; }
.list-panel { overflow:hidden; }
.filters { min-height:65px; display:flex; align-items:center; gap:9px; padding:12px 14px; border-bottom:1px solid var(--line); }
.filters > a { color:var(--green-dark); font-size:12px; font-weight:700; }
.search-field { width:min(420px,100%); height:40px; display:flex; align-items:center; gap:8px; padding:0 11px; border:1px solid #d5dae1; border-radius:5px; background:white; }
.search-field svg { color:#94a3b8; }
.search-field input { width:100%; border:0; outline:0; }
.filters select { height:40px; min-width:160px; padding:0 10px; border:1px solid #d5dae1; border-radius:5px; background:white; }
.tabs { display:flex; gap:3px; padding:12px 14px; border-bottom:1px solid var(--line); }
.tabs a { padding:8px 12px; border-radius:5px; color:var(--muted); font-weight:700; }
.tabs a.active { color:var(--green-dark); background:#eaf7ef; }
.check { width:46px; text-align:center; }
tr.completed td { color:#9ca3af; }
tr.completed .primary-link { color:#9ca3af; text-decoration:line-through; }
.empty-row,.empty-block { padding:30px!important; color:var(--muted); text-align:center; }
.data-form { max-width:900px; border:1px solid var(--line); border-radius:7px; background:white; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; padding:22px; }
.form-grid label { display:grid; gap:7px; color:#374151; font-size:12px; font-weight:700; }
.form-grid label.wide { grid-column:1 / -1; }
.form-grid label b { color:var(--red); }
.form-control { width:100%; min-height:42px; padding:9px 11px; border:1px solid #cfd5dc; border-radius:5px; color:var(--ink); background:white; outline:0; }
.form-control:focus { border-color:var(--green); box-shadow:0 0 0 3px rgba(23,134,75,.12); }
textarea.form-control { resize:vertical; }
.field-error { color:var(--red); }
.form-actions { display:flex; justify-content:flex-end; gap:8px; padding:15px 22px; border-top:1px solid var(--line); background:#fafbfc; }
.confirm-box { max-width:480px; display:grid; justify-items:center; gap:10px; margin:70px auto; padding:32px; border:1px solid var(--line); border-radius:7px; background:white; text-align:center; }
.confirm-box > span { width:52px; height:52px; display:grid; place-items:center; border-radius:50%; color:var(--red); background:#fee2e2; }
.confirm-box h1 { margin:7px 0 0; font-size:23px; }
.confirm-box p { margin:0 0 12px; color:var(--muted); }
.confirm-box form { display:flex; gap:8px; }
.login-page { min-height:100vh; display:grid; place-items:center; padding:20px; background:#edf1f5; }
.login-shell { width:min(850px,100%); min-height:480px; display:grid; grid-template-columns:.9fr 1.1fr; overflow:hidden; border:1px solid #dce1e7; border-radius:8px; box-shadow:0 24px 70px rgba(31,41,55,.12); }
.login-brand { display:flex; align-items:flex-end; gap:12px; padding:34px; color:white; background:var(--sidebar); }
.login-brand > div { display:grid; gap:4px; }
.login-brand strong { font-size:21px; }
.login-brand span:last-child { color:#aeb7c4; font-size:12px; }
.login-form { display:grid; align-content:center; gap:17px; padding:48px; background:white; }
.eyebrow { color:var(--green-dark); font-size:10px; font-weight:800; }
.login-form h1 { margin:5px 0 0; font-size:27px; }
.login-form p { margin:6px 0 0; color:var(--muted); }
.login-form label { display:grid; gap:7px; color:#374151; font-size:12px; font-weight:700; }
.login-form input { height:44px; padding:0 12px; border:1px solid #cfd5dc; border-radius:5px; outline:0; }
.login-form input:focus { border-color:var(--green); box-shadow:0 0 0 3px rgba(23,134,75,.12); }
.login-form small { color:var(--muted); text-align:center; }
.form-error { padding:10px 12px; border:1px solid #fecaca; border-radius:5px; color:#991b1b; background:#fef2f2; }
@media (max-width:1000px) { .metric-strip { grid-template-columns:1fr 1fr; } .metric-strip a:nth-child(2) { border-right:0; } .metric-strip a:nth-child(-n+2) { border-bottom:1px solid var(--line); } .dashboard-grid { grid-template-columns:1fr; } }
@media (max-width:760px) { .sidebar { position:static; width:100%; height:auto; padding:10px; } .brand { display:none; } .sidebar nav { grid-template-columns:repeat(4,1fr); margin:0; } .nav-label,.sidebar-foot { display:none; } .sidebar nav a { justify-content:center; padding:0 8px; font-size:11px; } .sidebar nav a.active { box-shadow:inset 0 -3px var(--green); } .app-shell { margin-left:0; } .topbar { height:60px; padding:0 14px; } .content { padding:18px 12px 40px; } .messages { padding:10px 12px 0; } .page-head { min-height:auto; } .page-head h1 { font-size:22px; } .form-grid { grid-template-columns:1fr; padding:16px; } .form-grid label.wide { grid-column:1; } .filters { align-items:stretch; flex-wrap:wrap; } .search-field { flex:1 1 100%; } }
@media (max-width:520px) { .sidebar nav a { gap:5px; flex-direction:column; min-height:52px; } .topbar > div:first-child span,.user-menu > div { display:none; } .metric-strip { grid-template-columns:1fr; } .metric-strip a { border-right:0; border-bottom:1px solid var(--line); } .metric-strip a:last-child { border-bottom:0; } .page-head { align-items:start; } .page-head p { font-size:12px; } .head-actions { flex-direction:column; } .button { padding-inline:11px; } .login-shell { grid-template-columns:1fr; } .login-brand { align-items:center; min-height:110px; padding:22px; } .login-form { padding:28px 22px; } }
