*{box-sizing:border-box;margin:0;padding:0}
:root{
  --red:#C0272D;--red-dark:#8B1A1E;--red-light:#fcebeb;--red-mid:#f7c1c1;
  --dark:#12121e;--dark2:#1c1c2e;--dark3:#252536;
  --white:#fff;--off:#f8f8fa;--surface:#f2f2f5;
  --border:#e4e4ec;--border2:#d0d0da;
  --text:#111118;--muted:#6b6b80;--hint:#9898aa;
  --green:#16a34a;--green-bg:#dcfce7;--green-text:#15803d;
  --amber:#d97706;--amber-bg:#fef3c7;--amber-text:#92400e;
  --blue:#1d4ed8;--blue-bg:#eff6ff;--blue-text:#1e40af;
  --purple:#7c3aed;--purple-bg:#f5f3ff;--purple-text:#5b21b6;
  --gray-bg:#f3f4f6;--gray-text:#374151;
  --r:10px;--r-lg:14px;--r-xl:20px;
}
html{font-family:'DM Sans',sans-serif;font-size:14px;color:var(--text);background:var(--off)}
body{min-height:100vh}


#login-screen{display:flex;min-height:100vh;align-items:center;justify-content:center;background:var(--dark);padding:20px}
.login-box{width:100%;max-width:400px}
.login-logo{display:flex;flex-direction:column;align-items:center;margin-bottom:36px;gap:14px}
.login-ring{width:64px;height:64px;border-radius:50%;background:var(--red);border:2px solid rgba(255,255,255,0.15);display:flex;align-items:center;justify-content:center}
.login-brand{color:#fff;font-size:18px;font-weight:600;letter-spacing:1.5px;text-align:center}
.login-sub{color:rgba(255,255,255,0.35);font-size:11px;letter-spacing:1.5px;font-family:'DM Mono',monospace;text-align:center}
.login-card{background:#1c1c2e;border:1px solid rgba(255,255,255,0.08);border-radius:var(--r-xl);padding:28px}
.login-title{color:#fff;font-size:15px;font-weight:500;margin-bottom:6px}
.login-desc{color:rgba(255,255,255,0.38);font-size:12px;margin-bottom:24px}
.login-fg{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}
.login-fg label{font-size:10px;font-weight:600;color:rgba(255,255,255,0.4);letter-spacing:.8px;text-transform:uppercase}
.login-input-wrap{position:relative}
.login-input-wrap i{position:absolute;left:12px;top:50%;transform:translateY(-50%);font-size:16px;color:rgba(255,255,255,0.25)}
.login-fg input{width:100%;height:42px;background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.1);border-radius:var(--r);padding:0 12px 0 38px;font-size:13px;color:#fff;outline:none;font-family:'DM Sans',sans-serif;transition:border-color .15s}
.login-fg input:focus{border-color:var(--red)}
.login-fg input::placeholder{color:rgba(255,255,255,0.2)}
.login-btn{width:100%;height:44px;background:var(--red);border:none;border-radius:var(--r);color:#fff;font-size:14px;font-weight:500;cursor:pointer;font-family:'DM Sans',sans-serif;margin-top:8px;transition:background .15s;display:flex;align-items:center;justify-content:center;gap:8px}
.login-btn:hover{background:var(--red-dark)}
.login-error{background:rgba(192,39,45,0.15);border:1px solid rgba(192,39,45,0.3);border-radius:var(--r);padding:10px 14px;color:#f7c1c1;font-size:12px;margin-top:12px;display:none;align-items:center;gap:8px}
.login-error.show{display:flex}
.login-footer{text-align:center;margin-top:20px;color:rgba(255,255,255,0.18);font-size:10px;font-family:'DM Mono',monospace}


#app-screen{display:none}
.shell{display:flex;min-height:100vh}


.sidebar{width:220px;background:var(--dark);display:flex;flex-direction:column;flex-shrink:0;position:sticky;top:0;height:100vh}
.sb-logo{padding:20px 18px 16px;border-bottom:1px solid rgba(255,255,255,0.07)}
.sb-logo-row{display:flex;align-items:center;gap:10px}
.sb-ring{width:36px;height:36px;border-radius:50%;background:var(--red);border:2px solid rgba(255,255,255,0.15);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.sb-ring svg{width:18px;height:18px}
.sb-brand{color:#fff;font-size:12px;font-weight:600;letter-spacing:1px;line-height:1.2}
.sb-tagline{color:rgba(255,255,255,0.3);font-size:9px;letter-spacing:1px;font-family:'DM Mono',monospace}
.sb-nav{flex:1;padding:12px 10px;display:flex;flex-direction:column;gap:2px}
.sb-section{font-size:9px;font-weight:600;color:rgba(255,255,255,0.25);letter-spacing:1.2px;text-transform:uppercase;padding:10px 8px 5px;margin-top:4px}
.nav-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:9px;cursor:pointer;transition:all .15s;color:rgba(255,255,255,0.45);font-size:13px;font-weight:400;border:none;background:none;width:100%;text-align:left}
.nav-item i{font-size:17px;flex-shrink:0}
.nav-item:hover{background:rgba(255,255,255,0.06);color:rgba(255,255,255,0.8)}
.nav-item.active{background:var(--red);color:#fff}
.nav-badge{margin-left:auto;background:rgba(255,255,255,0.15);color:rgba(255,255,255,0.7);font-size:10px;padding:1px 7px;border-radius:20px;font-family:'DM Mono',monospace}
.nav-item.active .nav-badge{background:rgba(255,255,255,0.25);color:#fff}
.sb-user{padding:14px 16px;border-top:1px solid rgba(255,255,255,0.07);display:flex;align-items:center;gap:10px}
.sb-user-dot{width:32px;height:32px;border-radius:50%;background:var(--red);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:#fff;flex-shrink:0;font-family:'DM Mono',monospace}
.sb-user-name{color:#fff;font-size:12px;font-weight:500;line-height:1.2}
.sb-user-role{color:rgba(255,255,255,0.35);font-size:10px;font-family:'DM Mono',monospace}
.btn-logout{margin-left:auto;background:rgba(255,255,255,0.07);border:none;color:rgba(255,255,255,0.4);cursor:pointer;width:28px;height:28px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0;transition:all .15s}
.btn-logout:hover{background:rgba(192,39,45,0.3);color:#f7c1c1}


.main{flex:1;min-width:0;padding:24px 28px 48px;overflow-y:auto}
.page{display:none}
.page.active{display:block}
.page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:20px;gap:12px;flex-wrap:wrap}
.page-title{font-size:22px;font-weight:600;color:var(--dark);line-height:1.2}
.page-sub{font-size:13px;color:var(--muted);margin-top:3px}


.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}
.metric{background:var(--white);border:1px solid var(--border);border-radius:var(--r-lg);padding:16px;position:relative;overflow:hidden}
.metric-bar{position:absolute;top:0;left:0;right:0;height:3px;background:var(--red)}
.metric-icon-bg{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:26px;color:var(--red);opacity:.07}
.metric-val{font-size:24px;font-weight:600;color:var(--dark);font-family:'DM Mono',monospace;line-height:1.1;margin-top:2px}
.metric-lbl{font-size:11px;color:var(--muted);margin-top:4px}


.toolbar{display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap}
.search-wrap{position:relative;flex:1;min-width:160px}
.search-wrap i{position:absolute;left:10px;top:50%;transform:translateY(-50%);font-size:15px;color:var(--hint);pointer-events:none}
.pw-input{width:100%;height:38px;border:1px solid var(--border);border-radius:var(--r);padding:0 12px 0 33px;font-size:13px;background:var(--white);color:var(--text);outline:none;font-family:'DM Sans',sans-serif;transition:border-color .15s}
.pw-input:focus{border-color:var(--red)}
.pw-select{height:38px;border:1px solid var(--border);border-radius:var(--r);padding:0 12px;font-size:13px;background:var(--white);color:var(--text);outline:none;cursor:pointer;font-family:'DM Sans',sans-serif}
.pw-select:focus{border-color:var(--red)}
.btn-add{display:inline-flex;align-items:center;gap:7px;height:38px;padding:0 18px;background:var(--red);border:none;border-radius:var(--r);color:#fff;font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap;font-family:'DM Sans',sans-serif;transition:background .15s}
.btn-add:hover{background:var(--red-dark)}
.btn-export{display:inline-flex;align-items:center;gap:7px;height:38px;padding:0 16px;background:var(--white);border:1px solid var(--border);border-radius:var(--r);color:var(--muted);font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap;font-family:'DM Sans',sans-serif;transition:all .15s}
.btn-export:hover{border-color:#16a34a;color:#16a34a;background:#dcfce7}
.btn-group{display:flex;gap:8px;flex-wrap:wrap}


.table-card{background:var(--white);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden}
.pw-table{width:100%;border-collapse:collapse;table-layout:fixed}
.pw-table thead{background:var(--surface)}
.pw-table th{padding:10px 13px;text-align:left;font-size:10px;font-weight:600;color:var(--hint);letter-spacing:.8px;text-transform:uppercase;border-bottom:1px solid var(--border)}
.pw-table td{padding:11px 13px;border-bottom:1px solid var(--border);vertical-align:middle;color:var(--text);font-size:13px}
.pw-table tr:last-child td{border-bottom:none}
.pw-table tbody tr:hover td{background:#fafafc}
.empresa-wrap{display:flex;align-items:center;gap:9px}
.avatar{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:600;color:#fff;flex-shrink:0;font-family:'DM Mono',monospace}
.fw5{font-weight:500}
.muted{color:var(--muted)}
.overdue{color:var(--red);font-weight:500}
.note-cell{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:0;color:var(--muted)}
.actions{display:flex;gap:3px}
.action-btn{background:none;border:none;cursor:pointer;color:var(--hint);padding:5px 6px;border-radius:7px;font-size:15px;line-height:1;transition:all .15s}
.action-btn:hover{background:var(--red-light);color:var(--red)}
.empty{text-align:center;padding:3.5rem 2rem}
.empty i{font-size:38px;color:var(--hint);opacity:.35;display:block;margin-bottom:10px}
.empty p{color:var(--muted);font-size:13px}


.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:20px;font-size:11px;font-weight:500;white-space:nowrap}
.badge::before{content:'';width:5px;height:5px;border-radius:50%;display:inline-block}
.b-prospecto{background:var(--blue-bg);color:var(--blue-text)}.b-prospecto::before{background:var(--blue)}
.b-enviada{background:var(--amber-bg);color:var(--amber-text)}.b-enviada::before{background:var(--amber)}
.b-negociacion{background:#f0fdf4;color:#166534}.b-negociacion::before{background:#16a34a}
.b-ganada{background:var(--green-bg);color:var(--green-text)}.b-ganada::before{background:var(--green)}
.b-perdida{background:var(--red-light);color:var(--red-dark)}.b-perdida::before{background:var(--red)}
.b-pausada{background:var(--gray-bg);color:var(--gray-text)}.b-pausada::before{background:#9ca3af}
.b-activo{background:var(--green-bg);color:var(--green-text)}.b-activo::before{background:var(--green)}
.b-inactivo{background:var(--gray-bg);color:var(--gray-text)}.b-inactivo::before{background:#9ca3af}
.b-potencial{background:var(--blue-bg);color:var(--blue-text)}.b-potencial::before{background:var(--blue)}
.b-pendiente{background:var(--amber-bg);color:var(--amber-text)}.b-pendiente::before{background:var(--amber)}
.b-proceso{background:var(--blue-bg);color:var(--blue-text)}.b-proceso::before{background:var(--blue)}
.b-completada{background:var(--green-bg);color:var(--green-text)}.b-completada::before{background:var(--green)}
.b-cancelada{background:var(--gray-bg);color:var(--gray-text)}.b-cancelada::before{background:#9ca3af}
.b-alta{background:var(--red-light);color:var(--red-dark)}.b-alta::before{background:var(--red)}
.b-media{background:var(--amber-bg);color:var(--amber-text)}.b-media::before{background:var(--amber)}
.b-baja{background:var(--gray-bg);color:var(--gray-text)}.b-baja::before{background:#9ca3af}


.kanban{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:4px}
.kanban-col{background:var(--surface);border-radius:var(--r-lg);padding:12px}
.kanban-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;padding:0 2px}
.kanban-title{font-size:12px;font-weight:600;color:var(--muted);letter-spacing:.5px;text-transform:uppercase}
.kanban-count{background:var(--white);border:1px solid var(--border);border-radius:20px;font-size:10px;font-weight:600;color:var(--muted);padding:1px 8px;font-family:'DM Mono',monospace}
.task-card{background:var(--white);border:1px solid var(--border);border-radius:var(--r);padding:12px 13px;margin-bottom:8px;transition:border-color .15s}
.task-card:hover{border-color:var(--border2)}
.task-card:last-child{margin-bottom:0}
.task-title{font-size:13px;font-weight:500;color:var(--text);margin-bottom:6px;line-height:1.4}
.task-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.task-due{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:4px;font-family:'DM Mono',monospace}
.task-due i{font-size:12px}
.task-due.overdue{color:var(--red)}
.task-actions{display:flex;gap:2px}
.task-client{font-size:11px;color:var(--muted);margin-bottom:6px;display:flex;align-items:center;gap:4px}
.task-client i{font-size:12px}
.add-task-btn{width:100%;height:34px;background:none;border:1px dashed var(--border2);border-radius:var(--r);color:var(--hint);font-size:12px;cursor:pointer;font-family:'DM Sans',sans-serif;transition:all .15s;display:flex;align-items:center;justify-content:center;gap:6px;margin-top:8px}
.add-task-btn:hover{border-color:var(--red);color:var(--red);background:var(--red-light)}


.modal-bg{display:none;position:fixed;inset:0;background:rgba(10,10,20,.55);z-index:1000;align-items:center;justify-content:center;padding:16px;backdrop-filter:blur(2px)}
.modal-bg.open{display:flex}
.modal{background:var(--white);border-radius:var(--r-xl);border:1px solid var(--border);width:100%;max-width:540px;overflow:hidden;animation:slideUp .2s ease}
@keyframes slideUp{from{transform:translateY(18px);opacity:0}to{transform:translateY(0);opacity:1}}
.modal-head{background:var(--dark);padding:16px 22px;display:flex;align-items:center;justify-content:space-between}
.modal-head h3{color:#fff;font-size:14px;font-weight:500}
.modal-close{background:rgba(255,255,255,.08);border:none;color:rgba(255,255,255,.5);cursor:pointer;width:27px;height:27px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:15px;transition:all .15s}
.modal-close:hover{background:rgba(255,255,255,.16);color:#fff}
.modal-body{padding:18px 22px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}
.fg{display:flex;flex-direction:column;gap:5px}
.fg.full{grid-column:1/-1}
.fg label{font-size:10px;font-weight:600;color:var(--hint);letter-spacing:.8px;text-transform:uppercase}
.fg input,.fg select,.fg textarea{border:1px solid var(--border);border-radius:var(--r);padding:0 11px;font-size:13px;color:var(--text);background:var(--off);height:37px;outline:none;font-family:'DM Sans',sans-serif;transition:border-color .15s}
.fg textarea{height:68px;padding:8px 11px;resize:none;line-height:1.5}
.fg input:focus,.fg select:focus,.fg textarea:focus{border-color:var(--red);background:#fff}
.modal-foot{padding:13px 22px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:8px;background:var(--surface)}
.btn-cancel{height:35px;padding:0 16px;background:#fff;border:1px solid var(--border);border-radius:var(--r);font-size:13px;color:var(--muted);cursor:pointer;font-family:'DM Sans',sans-serif;transition:all .15s}
.btn-cancel:hover{border-color:var(--red);color:var(--red)}
.btn-save{height:35px;padding:0 20px;background:var(--red);border:none;border-radius:var(--r);font-size:13px;font-weight:500;color:#fff;cursor:pointer;font-family:'DM Sans',sans-serif;transition:background .15s}
.btn-save:hover{background:var(--red-dark)}

.page-footer{text-align:center;margin-top:32px;color:var(--hint);font-size:11px;font-family:'DM Mono',monospace}
.page-footer span{color:var(--red)}

@media(max-width:768px){
  .shell{display:block}
  .sidebar{width:100%;height:auto;position:static}
  .sb-logo{padding:12px 16px}
  .sb-nav{display:flex;flex-direction:row;align-items:center;overflow-x:auto;padding:8px 10px;gap:4px}
  .sb-section{display:none}
  .nav-item{width:auto;min-width:max-content;padding:9px 11px}
  .nav-item i{font-size:16px}
  .sb-user{padding:9px 16px}
  .main{padding:18px 16px 36px}
  .metrics{grid-template-columns:1fr 1fr}
  .kanban{grid-template-columns:1fr}
  .table-card{overflow-x:auto}
  .pw-table{min-width:760px}
  .page-header{align-items:stretch}
  .page-header .btn-group{width:100%}
  .page-header .btn-add,.page-header .btn-export{flex:1}
}

@media(max-width:520px){
  html{font-size:13px}
  #login-screen{padding:14px}
  .login-card{padding:22px 18px}
  .login-brand{font-size:16px}
  .main{padding:16px 12px 30px}
  .page-title{font-size:20px}
  .metrics{grid-template-columns:1fr;gap:8px}
  .metric{padding:13px}
  .toolbar{display:grid;grid-template-columns:1fr;gap:8px}
  .search-wrap{min-width:0;width:100%}
  .pw-select,.toolbar .btn-add,.toolbar .btn-export{width:100%}
  .btn-group{display:grid;grid-template-columns:1fr;gap:8px;width:100%}
  .form-grid{grid-template-columns:1fr;gap:11px}
  .fg.full{grid-column:auto}
  .modal-bg{padding:8px}
  .modal-body{padding:15px}
  .modal-foot{padding:11px 15px}
  .modal-foot button{flex:1}
  .modal-foot{justify-content:stretch}
}
