:root{--bg:#f4f6f8;--panel:#fff;--ink:#17202a;--muted:#68707a;--line:#e1e6ea;--brand:#111820;--brand2:#202a34;--accent:#d9001b;--green:#167a4b;--amber:#a76400;--blue:#2357a5;--shadow:0 7px 22px rgba(17,24,32,.07);--radius:13px}
*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--ink)}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit}.hidden{display:none!important}.muted{color:var(--muted)}
.login-wrap{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#111820,#26323d);padding:20px}.login-card{width:min(430px,100%);background:#fff;padding:28px;border-radius:16px;box-shadow:0 20px 55px rgba(0,0,0,.28)}.login-card h1{margin:0 0 4px}.login-card label,.modal label{display:block;font-size:11px;font-weight:800;text-transform:uppercase;color:#65707b;margin:11px 0 5px}.login-card input,.modal input,.modal select,.modal textarea,.toolbar input,.toolbar select,.form-control{width:100%;border:1px solid #cbd2d8;border-radius:9px;padding:10px;background:#fff}.modal textarea{min-height:90px;resize:vertical}
.shell{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.sidebar{background:var(--brand);color:#fff;padding:18px 14px;position:sticky;top:0;height:100vh}.brand{padding:10px 12px 19px;border-bottom:1px solid rgba(255,255,255,.12);margin-bottom:14px}.brand strong{font-size:20px}.brand small{display:block;color:#aeb8c2;margin-top:5px}.nav button{width:100%;border:0;background:transparent;color:#d7dde4;text-align:left;padding:12px 14px;border-radius:9px;margin:2px 0}.nav button:hover,.nav button.active{background:#28343f;color:#fff}.nav button.active{box-shadow:inset 3px 0 0 var(--accent)}.userbox{position:absolute;left:14px;right:14px;bottom:16px;background:var(--brand2);padding:12px;border-radius:11px;font-size:12px}.userbox strong{display:block;font-size:13px;margin-bottom:3px}.userbox button{margin-top:8px;width:100%}
.main{min-width:0}.topbar{min-height:67px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:10px 24px;position:sticky;top:0;z-index:8}.topbar h2{margin:0;font-size:19px}.content{padding:24px}.page-title{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:16px}.page-title h1{font-size:22px;margin:0}.page-title p{margin:5px 0 0;color:var(--muted);font-size:13px}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.stack{display:grid;gap:10px}.grid{display:grid;gap:14px}.grid.two{grid-template-columns:1fr 1fr}.grid.three{grid-template-columns:repeat(3,1fr)}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:17px;box-shadow:var(--shadow)}.card h3{margin:0 0 13px;font-size:15px}.kpi{font-size:27px;font-weight:800;margin-top:5px}.kpi-label{font-size:12px;color:var(--muted)}
.btn{border:1px solid #ccd3d9;border-radius:9px;background:#fff;color:#26313b;padding:9px 12px;font-weight:700}.btn:hover{background:#f2f4f6}.btn-primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn-danger{background:var(--accent);border-color:var(--accent);color:#fff}.btn-ok{background:var(--green);border-color:var(--green);color:#fff}.btn-sm{padding:6px 8px;font-size:11px}.btn:disabled{opacity:.5;cursor:not-allowed}
.toolbar{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.toolbar .search{flex:1;min-width:250px}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;font-size:13px}.table th{text-align:left;color:#69727c;font-size:10px;text-transform:uppercase;letter-spacing:.05em;padding:10px;border-bottom:1px solid var(--line);white-space:nowrap}.table td{padding:11px 10px;border-bottom:1px solid #eef1f3;vertical-align:top}.table tr:hover td{background:#fafbfc}.badge{display:inline-block;border-radius:999px;background:#eef1f4;padding:4px 8px;font-size:10px;font-weight:800}.badge.ok{background:#e6f5ec;color:#17613e}.badge.warn{background:#fff1d6;color:#835100}.badge.danger{background:#ffe6e8;color:#a00013}.badge.blue{background:#e8eef8;color:#274e89}.notice,.error,.success{padding:11px 12px;border-radius:9px;font-size:13px;margin:8px 0}.notice{background:#fff7e5;border:1px solid #efd59c}.error{background:#ffe7e9;border:1px solid #f2b7be;color:#86101d}.success{background:#e6f5ec;border:1px solid #b7ddc9;color:#17613e}
.suggestions{border:1px solid var(--line);border-radius:10px;margin-top:7px;overflow:hidden}.suggestion{padding:10px 11px;border-bottom:1px solid #edf0f2;cursor:pointer;background:#fff}.suggestion:last-child{border-bottom:0}.suggestion:hover{background:#f7f8fa}.profile-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.profile-head h2{margin:0}.profile-meta{font-size:12px;color:var(--muted);margin-top:4px}.timeline{border-left:2px solid #e2e6ea;margin-left:7px;padding-left:18px}.timeline-item{padding:0 0 15px;position:relative}.timeline-item:before{content:"";position:absolute;left:-23px;top:4px;width:9px;height:9px;border-radius:50%;background:var(--brand)}
.pipeline{display:grid;grid-template-columns:repeat(6,minmax(250px,1fr));gap:12px;overflow:auto;padding-bottom:6px}.lane{background:#edf0f3;border-radius:11px;padding:9px;min-height:470px}.lane.done{background:#e6f5ec}.lane.lost{background:#f7e9eb}.lane-head{display:flex;justify-content:space-between;align-items:center;padding:5px 4px 11px;font-size:12px;font-weight:800}.opp-card{background:#fff;border:1px solid #dfe3e7;border-radius:9px;padding:11px;margin-bottom:9px;box-shadow:0 3px 10px rgba(0,0,0,.04)}.opp-card strong{display:block;font-size:13px}.opp-card small{display:block;color:var(--muted);line-height:1.45;margin-top:4px}.opp-money{font-weight:800;margin:8px 0}.opp-actions{display:flex;gap:5px;flex-wrap:wrap}
.stock-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:14px}.stock-kpis .card{padding:13px}.stock-kpis .kpi{font-size:23px}
.modal-backdrop{position:fixed;inset:0;background:rgba(10,15,20,.52);display:flex;align-items:center;justify-content:center;padding:20px;z-index:30}.modal{width:min(960px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:15px;box-shadow:0 20px 60px rgba(0,0,0,.25)}.modal-head{position:sticky;top:0;background:#fff;z-index:2;border-bottom:1px solid var(--line);padding:16px 18px;display:flex;justify-content:space-between;align-items:center}.modal-head h3{margin:0}.modal-body{padding:18px}.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:11px}.span2{grid-column:span 2}.span3{grid-column:span 3}.modal-foot{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.progress{height:9px;border-radius:999px;background:#e8ecef;overflow:hidden}.progress>div{height:100%;background:var(--brand);width:0}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:14px}.tab{border:0;background:transparent;padding:9px 10px;font-weight:800;color:#6a737d;border-bottom:2px solid transparent}.tab.active{color:var(--ink);border-color:var(--accent)}
@media(max-width:1100px){.cards{grid-template-columns:repeat(2,1fr)}.grid.two,.grid.three{grid-template-columns:1fr}.stock-kpis{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.shell{grid-template-columns:1fr}.sidebar{height:auto;position:relative}.nav{display:flex;overflow:auto}.nav button{min-width:max-content}.userbox{display:none}.topbar{position:relative}.content{padding:13px}.form-grid{grid-template-columns:1fr}.span2,.span3{grid-column:span 1}.cards,.stock-kpis{grid-template-columns:1fr 1fr}.pipeline{grid-template-columns:repeat(6,260px)}}

/* ===== BAIC CRM MOBILE / PWA ===== */
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{overscroll-behavior-y:none}
button,input,select,textarea{font:inherit}
.mobile-menu-btn{display:none;border:1px solid var(--line);background:#fff;border-radius:10px;width:42px;height:42px;font-size:21px;align-items:center;justify-content:center;cursor:pointer}
.sidebar-backdrop{display:none}
.topbar-left{display:flex;align-items:center;gap:11px}
.install-app-btn{white-space:nowrap}
.table-wrap{-webkit-overflow-scrolling:touch}
.table{min-width:720px}
.finance-panel .table{min-width:760px}
.search{width:100%}
.modal-body{overflow-x:hidden}

@media(max-width:900px){
  .shell{display:block;min-height:100vh}
  .main{min-width:0;width:100%}
  .sidebar{
    position:fixed!important;left:0;top:0;bottom:0;width:min(86vw,310px)!important;height:100dvh!important;
    z-index:80;transform:translateX(-105%);transition:transform .22s ease;overflow-y:auto;
    padding-bottom:max(18px,env(safe-area-inset-bottom));box-shadow:0 20px 50px rgba(0,0,0,.28)
  }
  .sidebar.open{transform:translateX(0)}
  .sidebar-backdrop{position:fixed;inset:0;background:rgba(6,12,18,.48);z-index:70}
  .sidebar-backdrop.show{display:block}
  body.nav-open{overflow:hidden}
  .sidebar .nav{display:flex!important;flex-direction:column!important;overflow:visible!important}
  .sidebar .nav button{width:100%;min-width:0!important;text-align:left}
  .sidebar .userbox{display:block!important;margin-top:24px}
  .mobile-menu-btn{display:inline-flex}
  .topbar{
    position:sticky!important;top:0;z-index:50;background:#fff;padding:10px 13px!important;
    padding-top:max(10px,env(safe-area-inset-top))!important;min-height:64px
  }
  .topbar h2{font-size:20px;margin:0}
  .topbar-sub{font-size:10px!important}
  .content{padding:12px!important;padding-bottom:max(22px,env(safe-area-inset-bottom))!important}
  .page-title{gap:10px;align-items:flex-start;flex-direction:column}
  .page-title>.row,.profile-head>.row{width:100%;display:flex;flex-wrap:wrap}
  .page-title>.row .btn,.profile-head>.row .btn{flex:1 1 auto}
  .profile-head{flex-direction:column}
  .cards,.stock-kpis,.finance-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .grid.two,.grid.three,.form-grid,.finance-form{grid-template-columns:1fr!important}
  .span2,.span3{grid-column:span 1!important}
  .finance-module-nav{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .pipeline{grid-template-columns:repeat(6,82vw)!important;scroll-snap-type:x proximity}
  .lane{scroll-snap-align:start;min-height:420px}
  .modal-backdrop{align-items:flex-end!important;padding:0!important;z-index:100}
  .modal{
    width:100%!important;max-width:none!important;max-height:94dvh!important;border-radius:18px 18px 0 0!important;
    padding-bottom:max(0px,env(safe-area-inset-bottom))
  }
  .modal-head{padding:13px 14px}
  .modal-body{padding:14px}
  .modal-foot{position:sticky;bottom:0;background:#fff;padding:10px 0 2px;z-index:2}
  input,select,textarea,.form-control,.search{font-size:16px!important;min-height:44px}
  .btn{min-height:42px}
  .btn-sm{min-height:38px}
  .card{border-radius:13px}
  .table-wrap{overflow-x:auto!important;width:100%;border-radius:12px}
  .table th,.table td{white-space:nowrap;padding:10px 9px}
  .table td:nth-child(2){white-space:normal;min-width:180px}
  .finance-panel{padding:12px!important}
}

@media(max-width:560px){
  .cards,.stock-kpis,.finance-kpis{grid-template-columns:1fr!important}
  .finance-module-nav{grid-template-columns:1fr!important}
  .content{padding:10px!important}
  .page-title h1{font-size:25px}
  .topbar{gap:8px}
  .install-app-btn{font-size:12px;padding:8px 9px}
  .finance-kpi strong,.kpi{font-size:20px!important}
  .row{flex-wrap:wrap}
  .page-title .btn{width:100%}
  .modal-head h3{font-size:18px}
}

@media(display-mode:standalone){
  .topbar{padding-top:max(12px,env(safe-area-inset-top))!important}
}

