:root{--font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Helvetica Neue", "Segoe UI", Roboto, sans-serif;--radius:6px;--radius-sm:4px;--shadow:0 1px 3px #00000014, 0 1px 2px #0000000f;--shadow-md:0 4px 12px #0000001a, 0 2px 4px #0000000f;--shadow-lg:0 8px 30px #0000001f;--bg:#f5f5f7;--bg-card:#fff;--text:#1d1d1f;--text-secondary:#6e6e73;--text-tertiary:#86868b;--border:#d2d2d7;--border-light:#e8e8ed;--accent:#0071e3;--accent-hover:#0077ed;--red:#ff375f;--green:#30d158;--orange:#ff9f0a;--blue:#0096ff;--purple:#bf5af2;--teal:#64d2ff;--pink:#ff6482}*{box-sizing:border-box;margin:0}body{font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0}#root{width:100%}.app-header{-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border-light);z-index:100;background:#fffc;padding:0 1rem;position:sticky;top:0}.app-header-inner{align-items:center;gap:1.5rem;max-width:1200px;height:52px;margin:0 auto;display:flex}.app-header h1{color:var(--text);letter-spacing:-.02em;white-space:nowrap;font-size:1rem;font-weight:700}.app-nav{flex:1;align-items:center;gap:.25rem;display:flex;overflow-x:auto}.app-nav a{color:var(--text-secondary);border-radius:var(--radius-sm);white-space:nowrap;align-items:center;padding:.25rem .6rem;font-size:.8125rem;font-weight:500;text-decoration:none;transition:all .15s;display:inline-flex}.app-nav a svg{flex-shrink:0}.app-nav a:hover{color:var(--text);background:#0000000a}.app-nav a.active{color:var(--accent);background:#0071e314}.nav-icon{font-size:1rem;line-height:1}.nav-label{font-size:.8125rem}.app-header-right{color:var(--text-secondary);white-space:nowrap;align-items:center;gap:.75rem;margin-left:auto;font-size:.8125rem;display:flex}.app-header-right button{border-radius:var(--radius-sm);background:var(--accent);color:#fff;cursor:pointer;border:none;padding:.3rem .75rem;font-size:.8125rem;transition:all .15s}.app-header-right button:hover{background:var(--accent-hover)}.app-main{max-width:1200px;margin:0 auto;padding:1.5rem 1rem}h1,h2,h3{letter-spacing:-.02em;font-weight:600}h2{color:var(--text);margin-bottom:1rem;font-size:1.5rem}h3{margin-bottom:.75rem;font-size:1.1rem}p{color:var(--text-secondary);line-height:1.5}button,.btn{font-family:var(--font);border-radius:var(--radius);cursor:pointer;background:var(--accent);color:#fff;box-shadow:var(--shadow);border:none;padding:.5rem 1rem;font-size:.875rem;font-weight:500;line-height:1.3;transition:all .15s}button:hover{background:var(--accent-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}button:active{transform:translateY(0)}button.btn-secondary{color:var(--text);background:#0000000d}button.btn-secondary:hover{background:#0000001a}button.btn-danger{background:var(--red)}button.btn-danger:hover{background:#e63555}button.btn-success{background:var(--green)}button.btn-success:hover{background:#28c84d}button.btn-sm{padding:.3rem .65rem;font-size:.8125rem}input,select,textarea{font-family:var(--font);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);color:var(--text);outline:none;width:100%;padding:.55rem .75rem;font-size:.875rem;transition:all .15s}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #0071e326}label{color:var(--text-secondary);margin-bottom:.3rem;font-size:.8125rem;font-weight:500;display:block}.table-wrap{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);overflow:auto hidden}table{border-collapse:collapse;width:100%;font-size:.875rem}th{background:var(--bg);text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);text-align:left;border-bottom:1px solid var(--border-light);padding:.7rem .85rem;font-size:.75rem;font-weight:600}td{border-bottom:1px solid var(--border-light);padding:.7rem .85rem}tr:last-child td{border-bottom:none}tr:hover td{background:#0071e305}.card{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem;transition:all .15s}.card:hover{box-shadow:var(--shadow-md)}.card-clickable{cursor:pointer}.card-clickable:hover{transform:translateY(-1px)}.tab-bar{border-bottom:1px solid var(--border-light);gap:0;margin-bottom:1.25rem;display:flex;overflow-x:auto}.tab-bar button{font-family:var(--font);color:var(--text-secondary);cursor:pointer;box-shadow:none;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;padding:.55rem 1rem;font-size:.8125rem;font-weight:500;transition:all .15s}.tab-bar button:hover{color:var(--text);box-shadow:none;background:0 0;transform:none}.tab-bar button.active{color:var(--accent);border-bottom-color:var(--accent);background:0 0}.badge{letter-spacing:.02em;border-radius:3px;padding:.15rem .45rem;font-size:.6875rem;font-weight:600;display:inline-block}.c-alerta{color:#1d1d1f;background:#ffd60a}.c-facturado{color:#fff;background:#0071e3}.c-visitado{color:#fff;background:#bf5af2}.c-pagado{color:#fff;background:#30d158}.c-perdida{color:#fff;background:#ff375f}.c-no-renovado{color:#fff;background:#8e8e93}.prov-legalitec{--prov-color:#0071e3}.prov-elena{--prov-color:#30d158}.prov-miguel{--prov-color:#ff9f0a}.prov-asebrok{--prov-color:#bf5af2}.prov-quacer{--prov-color:#0096ff}.prov-jose{--prov-color:#ff375f}.prov-aquilab{--prov-color:#ff6482}.dot{border-radius:50%;width:8px;height:8px;margin-right:.35rem;display:inline-block}@media (width<=768px){.app-header-inner{flex-wrap:wrap;gap:.3rem;height:auto;padding:.4rem 0}.app-header h1{font-size:.85rem}.app-nav{gap:.1rem}.app-nav a{padding:.3rem .4rem}.app-nav a svg{width:18px;height:18px}.nav-label{display:none}.app-header-right{font-size:.7rem}.app-header-right button{padding:.2rem .5rem;font-size:.7rem}.app-main{padding:.75rem}h2{font-size:1.1rem}.table-wrap{border-radius:0;margin:0 -.75rem}td,th{padding:.45rem .55rem;font-size:.75rem}.tab-bar button{padding:.4rem .6rem;font-size:.7rem}.card{padding:.75rem}.kanban-wrap{margin:0 -.75rem;padding:0 .75rem;overflow-x:auto}.kanban-col{flex:0 0 220px;min-width:220px}.contacto-card{flex-direction:column!important;align-items:flex-start!important;gap:.5rem!important}.contacto-card>div:last-child{align-self:flex-end}.detail-grid{grid-template-columns:1fr!important}.btn-full-mobile{justify-content:center;width:100%}}@media (width<=480px){.app-header-inner{padding:.3rem 0}.app-nav a{padding:.25rem .35rem}.nav-icon{font-size:1.1rem}.app-main{padding:.5rem}h2{font-size:1rem}.kanban-col{flex:0 0 180px;min-width:180px}td,th{padding:.35rem .4rem;font-size:.7rem}}
