:root{--bg:#f4f6fa;--card:#fff;--text:#1f2937;--muted:#6b7280;--border:#e9ecf1;--blue:#3b82f6;--blue-bg:#eaf1fe;--amber:#f59e0b;--amber-bg:#fef3e0;--green:#10b981;--green-bg:#e7f8f1;--red:#ef4444;--red-bg:#fdecec;--purple:#8b5cf6;--purple-bg:#f1ebfe;--radius:14px;--radius-sm:10px;--shadow:0 1px 2px rgba(16,24,40,.04),0 2px 8px rgba(16,24,40,.06);--hover:#eef1f6;--tooltip-bg:#111827;--tooltip-text:#f9fafb;--surface:var(--card);--text-muted:var(--muted);--primary:var(--blue);--primary-dark:#2563eb;--danger:var(--red);--success:var(--green);--warning:#b45309;--warning-bg:var(--amber-bg)}:root[data-theme=dark]{--bg:#12141c;--card:#1a1d29;--text:#e5e7eb;--muted:#9198a8;--border:#2a2e3d;--blue-bg:#1e2a4a;--amber-bg:#3a2e12;--green-bg:#1b3a2e;--red-bg:#3a1f22;--purple-bg:#2a2340;--shadow:0 1px 2px rgba(0,0,0,.3),0 4px 12px rgba(0,0,0,.28);--hover:#242837;--tooltip-bg:#05070c;--tooltip-text:#f3f4f6;--primary-dark:#60a5fa;--warning:#fbbf24}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text);transition:background .15s ease,color .15s ease}a{color:inherit;text-decoration:none}h1,h2,h3{font-weight:700}:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.demo-banner{position:fixed;top:0;left:0;right:0;z-index:100;height:36px;display:flex;align-items:center;justify-content:center;gap:8px;background:var(--red);color:#fff;font-weight:700;font-size:13px;letter-spacing:.02em;text-align:center;padding:0 16px;box-shadow:0 1px 4px rgba(0,0,0,.25)}body.demo-mode{padding-top:36px}body.demo-mode .sidenav,body.demo-mode .topbar{top:36px}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px;background:linear-gradient(135deg,var(--blue-bg),var(--bg))}.auth-card{background:var(--card);padding:32px;border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--border);width:100%;max-width:380px;display:flex;flex-direction:column;gap:14px}.auth-card h1{font-size:20px;margin:0}.auth-subtitle{margin:0;color:var(--muted);font-size:14px}label{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:500}input,select,textarea{font:inherit;padding:9px 11px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card);color:var(--text)}input::placeholder,textarea::placeholder{color:var(--muted)}input:focus,select:focus,textarea:focus{outline:2px solid var(--blue);outline-offset:1px}.btn{font:inherit;padding:9px 16px;border-radius:var(--radius-sm);border:1px solid transparent;cursor:pointer;font-weight:600;font-size:14px;transition:background .12s ease,border-color .12s ease,color .12s ease}.btn-primary{background:var(--blue);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.btn-primary:disabled{opacity:.6;cursor:default}.btn-ghost{background:transparent;border-color:var(--border);color:var(--text)}.btn-ghost:hover{background:var(--hover)}.btn-danger{background:var(--red);color:#fff}.btn-danger:hover{opacity:.9}.btn-sm{padding:5px 10px;font-size:13px}.alert{padding:10px 12px;border-radius:var(--radius-sm);font-size:14px}.alert-error{background:var(--red-bg);color:var(--red);border:1px solid var(--red-bg)}.alert-success{background:var(--green-bg);color:var(--green);border:1px solid var(--green-bg)}.alert-warning{background:var(--warning-bg);color:var(--warning);border:1px solid var(--warning-bg);display:flex;gap:8px;align-items:center;margin-bottom:16px}.shell{display:flex;min-height:100vh}.sidenav{width:220px;background:var(--card);border-right:1px solid var(--border);display:flex;flex-direction:column;gap:4px;padding:16px 12px;position:fixed;top:0;left:0;bottom:0;overflow-y:auto;z-index:40}.sidenav-brand{display:flex;align-items:center;gap:8px;padding:8px 12px 16px;font-weight:700;font-size:14px;color:var(--text)}.sidenav a{padding:9px 12px;border-radius:var(--radius-sm);font-size:14px;font-weight:500;color:var(--muted)}.sidenav a.active,.sidenav a:hover{background:var(--blue-bg);color:var(--blue)}.sidenav-spacer{flex:1 1}.user-box{padding:8px 12px;border-top:1px solid var(--border);margin-top:8px}.user-name{font-weight:600;font-size:14px}.user-role{font-size:12px;color:var(--muted)}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:999px;border:1px solid var(--border);background:var(--card);color:var(--muted);cursor:pointer;font-size:16px;flex-shrink:0}.theme-toggle:hover{background:var(--hover);color:var(--text)}.sidenav .theme-toggle{align-self:flex-start;margin:4px 12px 8px}.topbar{display:none}.content{margin-left:220px;padding:24px;flex:1 1;min-width:0;width:100%}.nav-backdrop{display:none}@media (max-width:860px){.shell{flex-direction:column}.sidenav{transform:translateX(-100%);transition:transform .2s ease;box-shadow:2px 0 8px rgba(0,0,0,.1);width:240px}body.nav-open .sidenav{transform:translateX(0)}.nav-backdrop{display:block;position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:39;opacity:0;pointer-events:none;transition:opacity .2s ease}body.nav-open .nav-backdrop{opacity:1;pointer-events:auto}.topbar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 16px;background:var(--card);border-bottom:1px solid var(--border);position:-webkit-sticky;position:sticky;top:0;z-index:30}.topbar-brand{font-weight:700;font-size:15px}.topbar-actions{display:flex;align-items:center;gap:8px}.burger{background:none;border:none;font-size:20px;cursor:pointer;min-width:44px;min-height:44px;color:var(--text)}.content{margin-left:0;padding:16px}.btn,input[type=date],input[type=number],input[type=password],input[type=text],select{min-height:44px}.btn-sm{min-height:40px}.sidenav a{padding:12px;min-height:44px;display:flex;align-items:center}.row-actions{flex-wrap:wrap}}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:12px;gap:12px;margin-bottom:20px}.kpi-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}.kpi-icon{width:36px;height:36px;border-radius:999px;display:flex;align-items:center;justify-content:center;font-size:17px;margin-bottom:10px}.kpi-icon-blue{background:var(--blue-bg);color:var(--blue)}.kpi-icon-amber{background:var(--amber-bg);color:var(--amber)}.kpi-icon-green{background:var(--green-bg);color:var(--green)}.kpi-icon-red{background:var(--red-bg);color:var(--red)}.kpi-label{font-size:12px;color:var(--muted);margin-bottom:6px}.kpi-value{font-size:22px;font-weight:700}.kpi-delta{display:inline-flex;align-items:center;gap:3px;font-size:12px;font-weight:600;margin-top:4px}.kpi-delta-up{color:var(--green)}.kpi-delta-down{color:var(--red)}.period-tabs{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.period-tabs button{padding:7px 14px;border-radius:20px;border:1px solid var(--border);background:var(--card);cursor:pointer;font-size:13px;font-weight:600;color:var(--muted)}.period-tabs button.active{background:var(--blue);border-color:var(--blue);color:#fff}.custom-range{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.custom-range label{flex-direction:row;align-items:center;gap:6px;font-size:13px;font-weight:500;color:var(--muted)}.section-tabs{display:flex;gap:4px;margin-bottom:16px;border-bottom:1px solid var(--border)}.section-tabs button{padding:10px 16px;background:none;cursor:pointer;font-size:14px;font-weight:600;color:var(--muted);border:none;border-bottom:2px solid transparent;margin-bottom:-1px;min-height:44px}.section-tabs button.active{color:var(--blue);border-bottom-color:var(--blue)}.trends-toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:16px}.trends-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));grid-gap:16px;gap:16px}.chart-card h3{margin:0 0 8px;font-size:14px;color:var(--muted);font-weight:600}.line-chart{position:relative;width:100%}.chart-empty{color:var(--muted);font-size:13px;padding:40px 0;text-align:center}.chart-tooltip{position:absolute;top:4px;width:160px;background:var(--tooltip-bg);color:var(--tooltip-text);border-radius:var(--radius-sm);padding:6px 10px;font-size:12px;pointer-events:none;box-shadow:var(--shadow);z-index:5}.chart-tooltip-label{opacity:.75;margin-bottom:2px}.chart-tooltip-value{font-weight:700;font-size:13px}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:20px;box-shadow:var(--shadow)}.card h2{margin:0 0 12px;font-size:16px}.table-wrap{overflow-x:auto;position:relative;border-radius:var(--radius-sm)}@media (max-width:640px){.table-wrap.scroll-hint{background:linear-gradient(to right,var(--card) 30%,hsla(0,0%,100%,0)),linear-gradient(to right,rgba(0,0,0,.12),transparent) 100% 0,radial-gradient(farthest-side at 0 50%,rgba(0,0,0,.15),transparent) 0 0,radial-gradient(farthest-side at 100% 50%,rgba(0,0,0,.15),transparent) 100% 0;background-repeat:no-repeat;background-color:var(--card);background-size:20px 100%,10px 100%,10px 100%,10px 100%;background-attachment:local,scroll,local,scroll}.table-wrap.scroll-hint:after{content:"← Прокрутите таблицу →";display:block;text-align:center;font-size:11px;color:var(--muted);padding-top:6px}.table-cards table,.table-cards tbody,.table-cards td,.table-cards th,.table-cards thead,.table-cards tr{display:block}.table-cards thead{position:absolute;left:-9999px}.table-cards tbody tr{border:1px solid var(--border);border-radius:var(--radius);margin-bottom:12px;padding:6px 10px}.table-cards tbody tr:last-child{margin-bottom:0}.table-cards td{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;row-gap:4px;gap:12px;white-space:normal;text-align:right;padding:8px 2px;border-bottom:1px solid var(--bg);max-width:100%}.table-cards td>*{max-width:100%}.table-cards td:last-child{border-bottom:none}.table-cards td:not([data-label]){justify-content:flex-end}.table-cards td[data-label]:before{content:attr(data-label);font-weight:600;font-size:12px;color:var(--muted);text-align:left;flex-shrink:0}.table-cards td input,.table-cards td select{max-width:55%}.table-cards .empty-state{text-align:center}.table-cards td.empty-state:before{content:none}}table{width:100%;border-collapse:collapse;font-size:14px}td,th{padding:10px 12px;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap}th{color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.02em}tr:last-child td{border-bottom:none}tbody tr{transition:background .1s ease}tbody tr:hover td{background:var(--hover)}.badge{display:inline-block;padding:2px 8px;border-radius:12px;font-size:12px;font-weight:600}.badge-lead{background:var(--border);color:var(--muted)}.badge-seen{background:var(--amber-bg);color:var(--amber)}.badge-closed{background:var(--green-bg);color:var(--green)}.badge-thinking{background:var(--purple-bg);color:var(--purple)}.badge-overdue{color:var(--red);margin-left:6px}.badge-overdue,.row-overdue td,.row-overdue:hover td{background:var(--red-bg)}.row-overdue:hover td{filter:brightness(.97)}.filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px;align-items:flex-end}.pagination{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:12px}.filters label{min-width:140px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:12px;gap:12px}.modal-backdrop{position:fixed;inset:0;background:rgba(10,12,20,.5);display:flex;align-items:center;justify-content:center;z-index:100;padding:16px}.modal{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;width:100%;max-width:420px;display:flex;flex-direction:column;gap:12px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow)}.modal h2{margin:0;font-size:17px}.modal-actions{display:flex;justify-content:flex-end;gap:8px}.link-btn{background:none;border:none;color:inherit;text-decoration:underline;cursor:pointer;font:inherit;padding:0}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;flex-wrap:wrap;gap:10px}.page-header h1{margin:0;font-size:20px}.empty-state{color:var(--muted);font-size:14px;padding:20px 0;text-align:center}.row-actions{display:flex;gap:6px}.hint{font-size:13px;margin:-8px 0 12px}.dropzone,.hint{color:var(--muted)}.dropzone{border:2px dashed var(--border);border-radius:var(--radius);padding:28px 16px;text-align:center;cursor:pointer;font-size:14px;transition:border-color .15s ease,background .15s ease}.dropzone-over,.dropzone:hover{border-color:var(--blue);background:var(--blue-bg)}.dropzone-over{color:var(--blue)}