:root{--bg: #F2F5F0;--card: #FFFFFF;--ink: #16231D;--muted: #6E7C74;--line: #E6EAE3;--green-deep: #163A2E;--green-mid: #2F9E6E;--green-light: #A7E3C0;--green-pale: #E3F3E9;--amber: #E08A3C;--rust: #C1502E;--rust-pale: #FBEDE6}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:Inter,sans-serif;font-size:14.5px;line-height:1.5}.display{font-family:Plus Jakarta Sans,sans-serif}.mono{font-family:JetBrains Mono,monospace}.muted{color:var(--muted)}.shell{display:flex;min-height:100vh}.sidebar{width:226px;flex-shrink:0;background:var(--card);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:26px 18px;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:10px;padding:0 8px 30px}.brand-mark{width:30px;height:30px;background:var(--green-deep);border-radius:9px;display:flex;align-items:center;justify-content:center;position:relative}.brand-mark:after{content:"";width:12px;height:12px;border-radius:50%;border:2.5px solid var(--green-light)}.brand-name{font-family:Plus Jakarta Sans,sans-serif;font-weight:800;font-size:17px;color:var(--ink);letter-spacing:-.01em}.nav{display:flex;flex-direction:column;gap:3px;flex:1}.nav-link{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:12px;color:var(--muted);text-decoration:none;font-size:14px;font-weight:600;transition:background .15s,color .15s;position:relative}.nav-link:hover{background:var(--green-pale);color:var(--green-deep)}.nav-link.active{background:var(--green-deep);color:#eff7f1}.nav-icon{width:18px;text-align:center;font-size:13px;opacity:.9}.sidebar-foot{font-size:11px;color:#a7b0a9;padding:8px;letter-spacing:.04em;text-transform:uppercase}.main{flex:1;padding:34px 42px;max-width:1320px}.page-head{margin-bottom:26px}.page-head h1{font-family:Plus Jakarta Sans,sans-serif;font-weight:800;font-size:28px;letter-spacing:-.01em}.page-head p{margin-top:4px;font-size:14px;color:var(--muted)}.kpi-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin-bottom:24px}@media (max-width: 1100px){.kpi-grid{grid-template-columns:repeat(2,1fr)}}.kpi-card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:20px 20px 18px}.kpi-card.hero{background:var(--green-deep);border-color:var(--green-deep);color:#eff7f1}.kpi-card.alert{border-color:#f0dacb;background:#fffbf7}.kpi-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:14px}.kpi-label{font-size:12px;text-transform:uppercase;letter-spacing:.05em;font-weight:700}.kpi-card:not(.hero) .kpi-label{color:var(--muted)}.kpi-card.hero .kpi-label{color:#bfe0cc}.kpi-icon{width:30px;height:30px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:14px;background:var(--green-pale);color:var(--green-deep);flex-shrink:0}.kpi-card.hero .kpi-icon{background:#ffffff24;color:#eff7f1}.kpi-card.alert .kpi-icon{background:var(--rust-pale);color:var(--rust)}.kpi-num{font-family:Plus Jakarta Sans,sans-serif;font-weight:800;font-size:30px;letter-spacing:-.01em}.kpi-card.alert .kpi-num{color:var(--rust)}.kpi-sub{font-size:12px;margin-top:5px}.kpi-card:not(.hero) .kpi-sub{color:var(--muted)}.kpi-card.hero .kpi-sub{color:#bfe0cc}.panel-section{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:24px 26px;margin-bottom:18px}.panel-section h2{font-family:Plus Jakarta Sans,sans-serif;font-weight:800;font-size:16px;margin-bottom:18px;letter-spacing:-.005em}.split-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:18px}.split-grid.even{grid-template-columns:1fr 1fr}@media (max-width: 900px){.split-grid,.split-grid.even{grid-template-columns:1fr}}.pipeline-rail{display:flex;align-items:flex-end;gap:12px;padding-top:4px}.pipeline-stage{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;min-width:0}.pipeline-bar-track{width:100%;height:84px;display:flex;align-items:flex-end;justify-content:center}.pipeline-bar{width:62%;border-radius:999px;transition:height .4s ease;background:var(--green-pale)}.pipeline-bar.peak{background:var(--green-deep)}.pipeline-bar.has-count{background:var(--green-light)}.pipeline-count{font-family:JetBrains Mono,monospace;font-weight:700;font-size:14px}.pipeline-label{font-size:10px;color:var(--muted);text-align:center;text-transform:uppercase;letter-spacing:.03em;line-height:1.25}.pipeline-lost{align-self:flex-end;font-size:12px;color:var(--rust);padding-bottom:4px;white-space:nowrap;margin-left:4px}.pipeline-lost .pipeline-count{color:var(--rust);font-size:13px}.progress-ring-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:6px 0 2px}.progress-ring{width:148px;height:148px;border-radius:50%;display:flex;align-items:center;justify-content:center;position:relative}.progress-ring-center{text-align:center}.progress-ring-pct{font-family:Plus Jakarta Sans,sans-serif;font-weight:800;font-size:26px}.progress-ring-label{font-size:11px;color:var(--muted);margin-top:2px;max-width:120px;line-height:1.3}.ring-legend{display:flex;gap:16px;margin-top:16px;font-size:12px;color:var(--muted)}.ring-legend span{display:inline-flex;align-items:center;gap:6px}.ring-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.row-list{display:flex;flex-direction:column;gap:4px}.row-item{display:flex;align-items:center;gap:12px;padding:10px 4px;border-bottom:1px solid var(--line)}.row-item:last-child{border-bottom:none}.avatar-bubble{width:34px;height:34px;border-radius:10px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-family:Plus Jakarta Sans,sans-serif;font-weight:700;font-size:13px;color:#fff}.row-main{flex:1;min-width:0}.row-title{font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-sub{font-size:12px;color:var(--muted)}.row-value{font-size:13.5px;font-weight:700;white-space:nowrap}.row-value.rust{color:var(--rust)}.status-chip{background:var(--green-pale);color:var(--green-deep);font-size:10.5px;font-weight:700;padding:3px 9px;border-radius:999px;text-transform:uppercase;letter-spacing:.02em}.empty-state{background:var(--card);border:1px dashed var(--line);border-radius:18px;padding:48px 24px;text-align:center}.empty-mark{font-size:28px;color:var(--muted);margin-bottom:10px}.empty-sub{font-size:13px;color:var(--muted);margin-top:4px}.error-box{background:var(--rust-pale);border:1px solid #F0DACB;border-radius:18px;padding:20px 22px;color:var(--rust)}.error-box p{color:var(--ink);margin-top:6px;font-size:13.5px}:focus-visible{outline:2px solid var(--green-mid);outline-offset:2px}@media (max-width: 760px){.shell{flex-direction:column}.sidebar{width:100%;height:auto;position:relative;flex-direction:row;align-items:center;padding:14px 16px}.brand{padding:0 12px 0 0}.nav{flex-direction:row;overflow-x:auto}.sidebar-foot{display:none}.main{padding:22px 16px}}.page-head-row{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:26px;gap:16px}.page-head-row h1{font-family:Plus Jakarta Sans,sans-serif;font-weight:800;font-size:28px;letter-spacing:-.01em}.page-head-row p{margin-top:4px;font-size:14px;color:var(--muted)}.btn-primary{background:var(--green-deep);color:#eff7f1;border:none;border-radius:12px;padding:11px 20px;font-size:14px;font-weight:700;cursor:pointer;white-space:nowrap}.btn-primary:hover{background:#1e4b3b}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-ghost{background:transparent;color:var(--ink);border:1px solid var(--line);border-radius:12px;padding:11px 20px;font-size:14px;font-weight:600;cursor:pointer}.btn-ghost:hover{background:var(--bg)}.kanban-board{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}.kanban-col{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px;display:flex;flex-direction:column;max-height:520px}.kanban-col-head{display:flex;justify-content:space-between;align-items:center;font-family:Plus Jakarta Sans,sans-serif;font-weight:700;font-size:13px;padding:4px 4px 12px;border-bottom:1px solid var(--line);margin-bottom:12px}.kanban-count{background:var(--green-pale);color:var(--green-deep);border-radius:999px;font-size:11px;padding:2px 8px;font-family:JetBrains Mono,monospace}.kanban-cards{display:flex;flex-direction:column;gap:10px;overflow-y:auto}.kanban-empty{color:var(--muted);font-size:12px;text-align:center;padding:10px 0}.lead-card{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:12px}.lead-card-top{display:flex;align-items:center;gap:10px}.lead-card-top .avatar-bubble{width:30px;height:30px;font-size:12px}.lead-notes{font-size:12px;color:var(--muted);margin-top:8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.lead-card-actions{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}.lead-action-btn{flex:1;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:6px 8px;font-size:11.5px;font-weight:600;cursor:pointer;color:var(--green-deep)}.lead-action-btn:hover{background:var(--green-pale)}.lead-action-btn.lead-action-lost{color:var(--rust);flex:0 0 auto}.lead-action-btn.lead-action-lost:hover{background:var(--rust-pale)}.lead-action-btn:disabled{opacity:.5;cursor:not-allowed}.lost-toggle{background:none;border:none;font-size:13px;font-weight:700;color:var(--muted);cursor:pointer;padding:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#16231d59;display:flex;align-items:center;justify-content:center;padding:20px;z-index:100}.modal{background:var(--card);border-radius:20px;padding:26px 26px 22px;width:100%;max-width:460px;max-height:88vh;overflow-y:auto}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.modal-head h2{font-family:Plus Jakarta Sans,sans-serif;font-weight:800;font-size:19px}.modal-close{background:var(--bg);border:none;border-radius:8px;width:28px;height:28px;cursor:pointer;color:var(--muted);font-size:13px}.mode-toggle{display:flex;gap:8px;margin-bottom:18px}.toggle-btn{flex:1;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:9px;font-size:12.5px;font-weight:600;color:var(--muted);cursor:pointer}.toggle-btn.active{background:var(--green-deep);color:#eff7f1;border-color:var(--green-deep)}.toggle-btn:disabled{opacity:.4;cursor:not-allowed}.field{margin-bottom:14px}.field label{display:block;font-size:12px;font-weight:700;color:var(--muted);margin-bottom:6px}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:9px 12px;font-size:14px;font-family:Inter,sans-serif;background:var(--bg);color:var(--ink)}.field textarea{resize:vertical}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-error{background:var(--rust-pale);color:var(--rust);font-size:12.5px;padding:9px 12px;border-radius:10px;margin-bottom:12px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:6px}@media (max-width: 760px){.page-head-row{flex-direction:column}}.search-input{width:100%;max-width:320px;border:1px solid var(--line);border-radius:12px;padding:10px 14px;font-size:14px;background:var(--card);color:var(--ink);margin-bottom:20px}.type-chip{font-size:10.5px;font-weight:700;padding:3px 9px;border-radius:999px;text-transform:uppercase;letter-spacing:.02em;background:var(--green-pale);color:var(--green-deep)}.type-chip.comercial{background:#eaf0fb;color:#3d7dbf}.row-actions{display:flex;gap:6px;flex-shrink:0}.row-icon-btn{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:6px 10px;font-size:11.5px;font-weight:600;cursor:pointer;color:var(--ink);white-space:nowrap}.row-icon-btn:hover{background:var(--green-pale);color:var(--green-deep)}.row-icon-btn.danger{color:var(--rust)}.row-icon-btn.danger:hover{background:var(--rust-pale)}.row-icon-btn:disabled{opacity:.5;cursor:not-allowed}.row-confirm{display:flex;align-items:center;gap:8px;flex-shrink:0;font-size:12.5px;color:var(--muted)}.filter-tabs{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap}.filter-tab{background:var(--card);border:1px solid var(--line);border-radius:999px;padding:7px 16px;font-size:12.5px;font-weight:600;color:var(--muted);cursor:pointer}.filter-tab:hover{background:var(--green-pale);color:var(--green-deep)}.filter-tab.active{background:var(--green-deep);color:#eff7f1;border-color:var(--green-deep)}.quote-materials{background:var(--bg);border-radius:12px;padding:14px 16px;margin-bottom:18px}.quote-materials h3{font-family:Plus Jakarta Sans,sans-serif;font-weight:700;font-size:14px;margin-bottom:10px}.add-item-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.add-item-row select{flex:1 1 220px;min-width:0;border:1px solid var(--line);border-radius:10px;padding:8px 10px;font-size:13px;background:var(--card);color:var(--ink)}.add-item-row input{flex:0 0 64px;min-width:0;border:1px solid var(--line);border-radius:10px;padding:8px 10px;font-size:13px;background:var(--card);color:var(--ink)}.quote-total-row{display:flex;justify-content:space-between;align-items:center;background:var(--green-pale);border-radius:10px;padding:12px 16px;margin-bottom:16px;font-size:13px;color:var(--green-deep);font-weight:600}.quote-total-row strong{font-size:15px}.login-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);padding:20px}.login-card{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:36px 34px;width:100%;max-width:380px}.login-brand{display:flex;align-items:center;gap:10px;margin-bottom:28px}.login-brand .brand-mark{width:30px;height:30px;background:var(--green-deep);border-radius:9px;display:flex;align-items:center;justify-content:center;position:relative}.login-brand .brand-mark:after{content:"";width:12px;height:12px;border-radius:50%;border:2.5px solid var(--green-light)}.login-brand .brand-name{font-family:Plus Jakarta Sans,sans-serif;font-weight:800;font-size:17px;color:var(--ink)}.login-card h1{font-family:Plus Jakarta Sans,sans-serif;font-weight:800;font-size:22px;margin-bottom:4px}.logout-btn{background:none;border:none;color:var(--muted);font-size:13px;font-weight:600;cursor:pointer;padding:10px 12px;text-align:left;width:100%;border-radius:8px}.logout-btn:hover{background:var(--rust-pale);color:var(--rust)}
