:root{--sidebar-width:250px;--brand-color:#2563eb;--brand-dark:#1d4ed8;--accent:#38bdf8;--sidebar-bg:#0f172a;--sidebar-bg-dark:#0b1220;--text-dark:#1e293b;--danger:#b91c1c;--bg-content:#f4f5f7;--text-muted:#64748b;--border-color:#e2e5eb}*{box-sizing:border-box}body{font-family:var(--app-font-family,"Montserrat"), -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;background:var(--bg-content);color:#2b2b28;margin:0;font-size:14px}#root{min-height:100vh}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}.app-wrapper{min-height:100vh;display:flex}.main-sidebar{width:var(--sidebar-width);background:var(--sidebar-bg);color:#c3cabb;flex-direction:column;flex-shrink:0;transition:width .18s;display:flex;overflow:hidden}.sidebar-collapsed .main-sidebar{width:64px}.sidebar-collapsed .brand-link{justify-content:center;padding:14px 0}.sidebar-collapsed .brand-link span,.sidebar-collapsed .sidebar-menu .nav-item a span,.sidebar-collapsed .sidebar-footer{display:none}.sidebar-collapsed .sidebar-menu .nav-item a{justify-content:center;padding:12px 0}.sidebar-collapsed .sidebar-menu .nav-item a i{width:auto;font-size:16px}.sidebar-toggle{border:1px solid var(--border-color);width:32px;height:32px;color:var(--text-dark);background:0 0;border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;display:flex}.sidebar-toggle:hover{background:#f8f7f2}.brand-link{color:#fff;border-bottom:1px solid #ffffff1a;align-items:center;gap:10px;padding:14px 16px;font-size:16px;font-weight:700;display:flex}.brand-link .brand-logo{background:var(--brand-color);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-weight:700;display:flex}.login-logo-mark{background:var(--brand-color);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;margin:0 auto;font-size:24px;font-weight:700;display:flex}.sidebar-menu{flex:1;margin:0;padding:10px 0;list-style:none}.sidebar-menu .nav-item a{color:#c3cabb;border-left:3px solid #0000;align-items:center;gap:10px;padding:10px 16px;font-size:14px;transition:background .15s;display:flex}.sidebar-menu .nav-item a:hover{color:#fff;background:#ffffff0f}.sidebar-menu .nav-item a.active{color:#fff;border-left-color:var(--accent);background:#38bdf824}.sidebar-menu .nav-item a i{text-align:center;color:#8a94a8;width:18px}.sidebar-menu .nav-item a.active i,.sidebar-menu .nav-item a:hover i{color:var(--accent)}.sidebar-footer{color:#8a94a8;border-top:1px solid #ffffff1a;padding:12px 16px;font-size:12px}.content-area{flex-direction:column;flex:1;min-width:0;display:flex}.main-header{border-bottom:1px solid var(--border-color);background:#fff;justify-content:space-between;align-items:center;height:56px;padding:0 16px;display:flex}.main-header .page-title{color:var(--text-dark);font-size:16px;font-weight:600}.user-menu{color:var(--text-muted);align-items:center;gap:10px;font-size:13px;display:flex}.profile-btn{border-radius:20px;align-items:center;gap:8px;padding:4px 12px 4px 4px;transition:background .15s;display:flex}.profile-btn:hover{background:#f8f7f2}.profile-btn .avatar{background:var(--brand-color);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-size:13px;font-weight:700;display:flex}.profile-btn .user-name{color:var(--text-dark);font-size:13px;font-weight:600}.empresa-switcher{border:1px solid var(--border-color);color:var(--text-dark);background:#fff;border-radius:3px;max-width:160px;padding:5px 8px;font-family:inherit;font-size:12px}.sidebar-logout{color:#c3cabb;text-align:left;background:0 0;border:none;border-top:1px solid #ffffff1a;align-items:center;gap:10px;width:100%;padding:12px 16px;font-family:inherit;font-size:14px;display:flex}.sidebar-logout:hover{color:#fff;background:#ffffff0f}.sidebar-collapsed .sidebar-logout{justify-content:center;padding:12px 0}.sidebar-collapsed .sidebar-logout span{display:none}.content-wrapper{flex:1;padding:20px}.content-header{margin-bottom:16px}.content-header h1{color:var(--text-dark);margin:0 0 4px;font-size:20px;font-weight:700}.breadcrumb-text{color:var(--text-muted);font-size:12px}.small-box-row{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:20px;display:grid}.small-box{color:#fff;border-radius:3px;padding:18px 20px;position:relative;overflow:hidden;box-shadow:0 1px 3px #0000001f}.small-box .sb-icon{opacity:.28;font-size:42px;position:absolute;top:12px;right:12px}.small-box .sb-value{font-size:28px;font-weight:700;line-height:1.2}.small-box .sb-label{opacity:.92;font-size:13px}.small-box.bg-info{background:#0ea5e9}.small-box.bg-warning{background:#d97706}.small-box.bg-danger{background:var(--danger)}.small-box.bg-success{background:#15803d}.small-box.bg-primary{background:var(--brand-color)}.small-box.bg-secondary{background:var(--text-muted)}.card{border:1px solid var(--border-color);background:#fff;border-radius:3px;margin-bottom:20px;box-shadow:0 1px 2px #0000000d}.card-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.card-header h3{color:var(--text-dark);margin:0;font-size:15px;font-weight:700}.card-body{padding:16px}.card-grid-2{grid-template-columns:1fr 1fr;gap:20px;display:grid}@media (width<=900px){.card-grid-2{grid-template-columns:1fr}}.btn{border:none;border-radius:2px;align-items:center;gap:6px;padding:7px 14px;font-size:13px;font-weight:600;display:inline-flex}.btn-primary{background:var(--brand-color);color:#fff}.btn-primary:hover{background:var(--brand-dark)}.btn-outline{border:1px solid var(--border-color);color:var(--text-dark);background:#fff}.btn-outline:hover{background:#f8f7f2}.btn-sm{padding:4px 8px;font-size:12px}.btn-success{color:#fff;background:#15803d}.btn-success:hover{background:#14532d}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:#7f1d1d}.voz-fab{background:var(--brand-color);color:#fff;z-index:900;border:none;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;font-size:20px;transition:background .15s,transform .1s;display:none;position:fixed;bottom:24px;right:18px;box-shadow:0 4px 14px #0000004d}.voz-fab:active{transform:scale(.94)}.voz-fab:disabled{opacity:.7}.voz-fab.voz-fab-escuchando{background:var(--danger);animation:1.4s infinite voz-fab-pulse}@keyframes voz-fab-pulse{0%{box-shadow:0 4px 14px #0000004d,0 0 #b91c1c80}70%{box-shadow:0 4px 14px #0000004d,0 0 0 14px #b91c1c00}to{box-shadow:0 4px 14px #0000004d,0 0 #b91c1c00}}.table-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.table-responsive-wrap{overflow-x:auto}table.data-table{border-collapse:collapse;width:100%;font-size:13px}table.data-table th{text-align:left;border-bottom:2px solid var(--border-color);color:var(--text-dark);white-space:nowrap;background:#f8f7f2;padding:10px 12px;font-weight:700}table.data-table td{vertical-align:middle;border-bottom:1px solid #efeee7;padding:9px 12px}table.data-table tbody tr:hover{background:#fbfaf6}.badge{text-transform:uppercase;border-radius:3px;padding:3px 9px;font-size:11px;font-weight:700;display:inline-block}.badge-frio{color:#0369a1;background:#0ea5e924}.badge-tibio{color:#b45309;background:#d9770629}.badge-caliente{color:var(--danger);background:#b91c1c24}.badge-success{color:#15803d;background:#15803d24}.badge-danger{color:var(--danger);background:#b91c1c24}.badge-warning{color:#b45309;background:#d9770629}.badge-info{color:#0369a1;background:#0ea5e924}.badge-neutral{color:var(--text-muted);background:#64748b24}.form-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;display:grid}.form-group label{color:var(--text-dark);margin-bottom:5px;font-size:12px;font-weight:700;display:block}.form-group input,.form-group select{border:1px solid var(--border-color);background:#fff;border-radius:2px;width:100%;padding:8px 10px;font-family:inherit;font-size:13px}.form-group input:focus,.form-group select:focus{border-color:var(--brand-color);outline:none}.form-check{align-items:center;gap:6px;font-size:13px;display:flex}.form-check input{width:auto}.combobox{position:relative}.combobox-list{z-index:20;border:1px solid var(--border-color);background:#fff;border-radius:2px;max-height:220px;position:absolute;top:calc(100% + 2px);left:0;right:0;overflow-y:auto;box-shadow:0 4px 12px #0000001a}.combobox-option{cursor:pointer;padding:8px 10px;font-size:13px}.combobox-option:hover{background:#f8f7f2}.combobox-empty{color:var(--text-muted);padding:8px 10px;font-size:12px}.form-actions{gap:10px;margin-top:16px;display:flex}.alert{border-radius:2px;margin-bottom:14px;padding:10px 14px;font-size:13px}.alert-danger{color:var(--danger);background:#b91c1c24}.alert-success{color:#15803d;background:#15803d24}.login-page{background:linear-gradient(135deg, var(--sidebar-bg), var(--sidebar-bg-dark));justify-content:center;align-items:center;min-height:100vh;display:flex}.login-box{background:#fff;border-radius:3px;width:360px;padding:32px;box-shadow:0 8px 24px #00000040}.login-logo{text-align:center;margin-bottom:20px}.login-logo h1{color:var(--text-dark);margin:8px 0 2px;font-size:18px}.login-logo p{color:var(--text-muted);margin:0;font-size:12px}.login-box .btn-primary{justify-content:center;width:100%;margin-top:6px;padding:10px}.login-hint{color:var(--text-muted);text-align:center;margin-top:16px;font-size:11px}.text-muted{color:var(--text-muted)}.mt-0{margin-top:0}.empty-state{text-align:center;color:var(--text-muted);padding:30px;font-size:13px}.modal-overlay{z-index:1000;background:#0f172a80;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-box{background:#fff;border-radius:3px;width:520px;max-width:92vw;max-height:88vh;overflow-y:auto}.modal-box .card-header,.modal-box .card-body{padding:16px 20px}.bi-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}@media (width<=960px){.bi-grid{grid-template-columns:1fr}}.bi-panel{border:1px solid var(--border-color);border-top:3px solid var(--danger);background:#fff;border-radius:3px;margin-bottom:16px;overflow:hidden}.bi-panel-header{text-transform:uppercase;letter-spacing:.03em;color:var(--text-dark);border-bottom:1px solid var(--border-color);align-items:center;gap:8px;padding:8px 14px;font-size:11px;font-weight:800;display:flex}.bi-panel-body{padding:12px 14px}.bi-table-scroll{max-height:260px;padding:0;overflow-y:auto}.bi-matrix-table th,.bi-matrix-table td{text-align:right;font-size:12px}.bi-matrix-table th:first-child,.bi-matrix-table td:first-child{text-align:left}.bi-value-nonzero{color:var(--brand-color);font-weight:700}.bi-row-active{background:#2563eb14}.day-detail-header{border-bottom:1px solid var(--border-color);color:var(--text-dark);background:#f4f5f7;align-items:center;gap:10px;padding:14px 20px;font-size:18px;font-weight:800;display:flex}.day-detail-list{max-height:480px;overflow-y:auto}.day-detail-item{text-align:left;border:none;border-bottom:1px solid var(--border-color);cursor:pointer;background:0 0;width:100%;padding:14px 20px;font-family:inherit;display:block}.day-detail-item:hover{background:#fafbfc}.day-detail-item:last-child{border-bottom:none}.day-detail-title{color:var(--text-dark);font-size:14px}.day-detail-title strong{text-transform:uppercase;font-weight:800}.day-detail-notas{color:var(--text-muted);margin-top:4px;font-size:12px}.seg-modal-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.seg-modal-header h2{color:var(--text-dark);align-items:center;gap:12px;margin:0;font-size:19px;font-weight:800;display:flex}.seg-modal-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:4px;font-size:20px;line-height:1}.seg-info-bar{border-bottom:1px solid var(--border-color);background:#fafbfc;flex-wrap:wrap;gap:24px;padding:16px 20px;display:flex}.seg-info-item{align-items:center;gap:10px;display:flex}.seg-info-icon{color:#fff;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:14px;display:flex}.seg-info-icon.contacto{background:var(--brand-color)}.seg-info-icon.localidad{background:#0ea5e9}.seg-info-icon.ultimo{background:#16a34a}.seg-info-label{text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);font-size:10px;font-weight:700}.seg-info-value{color:var(--text-dark);font-size:14px;font-weight:700}.seg-whatsapp-btn{color:#16a34a;border:1px solid #16a34a;border-radius:4px;align-items:center;gap:6px;margin-left:10px;padding:4px 10px;font-size:12px;font-weight:700;display:inline-flex}.seg-columns{grid-template-columns:1.1fr 1fr;gap:16px;padding:16px 20px;display:grid}@media (width<=860px){.seg-columns{grid-template-columns:1fr}}.seg-panel{border:1px solid var(--border-color);border-radius:6px;flex-direction:column;display:flex;overflow:hidden}.seg-panel-header{color:#fff;justify-content:space-between;align-items:center;gap:8px;padding:10px 14px;font-size:13px;font-weight:700;display:flex}.seg-panel-header.blue{background:var(--brand-color)}.seg-panel-header.dark{background:#334155}.seg-panel-header .count-badge{background:#fff3;border-radius:10px;padding:2px 9px;font-size:11px}.seg-panel-body{background:#fff;flex:1;padding:14px}.seg-timeline-item{gap:12px;display:flex}.seg-timeline-track{flex-direction:column;align-items:center;display:flex}.seg-timeline-dot{background:var(--text-muted);border-radius:50%;flex-shrink:0;width:10px;height:10px;margin-top:4px}.seg-timeline-line{background:var(--border-color);flex:1;width:2px;margin-top:2px}.seg-timeline-content{flex:1;padding-bottom:16px}.seg-timeline-top{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.seg-timeline-name{color:var(--text-dark);font-size:13px;font-weight:700}.seg-timeline-date{color:var(--text-muted);white-space:nowrap;font-size:11px}.seg-timeline-notas{text-transform:uppercase;color:var(--text-muted);letter-spacing:.02em;margin-top:4px;font-size:12px}.progress-bar-outer{background:#ece9df;border-radius:10px;height:8px;margin:6px 0;overflow:hidden}.progress-bar-inner{background:var(--brand-color);height:100%}.sidebar-backdrop{display:none}@media (width<=860px){.sidebar-backdrop{z-index:1050;background:#0f172a80;display:block;position:fixed;inset:0}.main-sidebar{z-index:1100;width:250px;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%);box-shadow:2px 0 16px #0000004d}.sidebar-collapsed .main-sidebar{width:250px;transform:translate(-100%)}.sidebar-collapsed .brand-link span,.sidebar-collapsed .sidebar-menu .nav-item a span,.sidebar-collapsed .sidebar-footer{display:block}.sidebar-collapsed .brand-link{justify-content:flex-start;padding:14px 16px}.sidebar-collapsed .sidebar-menu .nav-item a{justify-content:flex-start;padding:10px 16px}.mobile-sidebar-open .main-sidebar{transform:translate(0)}.content-wrapper{padding:14px}.main-header{padding:0 12px}.user-menu .user-name{display:none}.profile-btn{gap:0;padding:2px}.main-header .page-title{display:none}.user-menu{gap:6px}.empresa-switcher{max-width:92px;padding:5px 4px;font-size:11px}.small-box-row{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.small-box{padding:14px}.small-box .sb-value{font-size:22px}.login-box{width:92vw;padding:24px}.modal-overlay{align-items:stretch;padding:0}.modal-box{border-radius:0;width:100vw;max-width:100vw;height:100vh;max-height:100vh}.btn{min-height:42px;padding:9px 16px;font-size:14px}.btn-sm{min-height:34px;padding:6px 12px}.form-group input,.form-group select{min-height:42px;padding:9px 12px;font-size:15px}.card-header{flex-wrap:wrap;gap:8px}.card-header>div{width:100%}table.data-table thead{display:none}table.data-table,table.data-table tbody,table.data-table tr,table.data-table td{width:100%;display:block}table.data-table tr{border:1px solid var(--border-color);border-radius:4px;margin-bottom:12px;padding:4px 0}table.data-table tbody tr:hover{background:#fff}table.data-table td{text-align:right;border-bottom:1px solid #f0f1f3;justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;display:flex}table.data-table td:last-child{border-bottom:none}table.data-table td[data-label]:before{content:attr(data-label);color:var(--text-dark);text-align:left;margin-right:auto;font-weight:700}table.data-table td[data-label=""]:before{content:none}.dictar-btn-desktop{display:none}.voz-fab{display:flex}}
