:root{--paper:#f6f3ee;--surface:#fff;--ink:#1a2332;--mut:#5b6b7c;--tenue:#93a0b1;--linea:#e1e6ee;--azul:#0a4595;--azul-hondo:#072a66;--azul-suave:#e8eef8;--naranja:#ff6a00;--naranja-suave:#fff1e6;--ok:#1e8e5a;--ok-suave:#e4f4ec;--alerta:#b7791f;--alerta-suave:#fdf3dd;--riesgo:#c2410c;--riesgo-suave:#fde8dd}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--paper);color:var(--ink);font:500 15px/1.5 Nunito,Segoe UI,system-ui,sans-serif}button,input,select{font:inherit;color:inherit}button{cursor:pointer}h1,h2,h3{letter-spacing:-.01em;margin:0;font-family:Outfit,sans-serif}.ingreso{background:radial-gradient(1200px 600px at 80% -10%, #12306a 0, transparent 60%), var(--azul-hondo);place-items:center;min-height:100vh;padding:16px;display:grid}.ingreso form{background:var(--surface);border-top:5px solid var(--naranja);border-radius:0 0 0 28px;flex-direction:column;gap:14px;width:100%;max-width:420px;padding:36px 32px;display:flex}.ingreso img{align-self:flex-start;height:40px}.ingreso h1{margin-top:10px;font-size:28px}.ingreso p{color:var(--mut);margin:0}.ingreso label{flex-direction:column;gap:6px;font-size:14px;font-weight:700;display:flex}.ingreso input{border:2px solid var(--linea);border-radius:0 0 0 10px;padding:12px}.ingreso input:focus{border-color:var(--azul);outline:none}.ingreso button[type=submit]{background:var(--naranja);color:#fff;border:0;border-radius:0 0 0 12px;padding:13px;font:700 16px Outfit,sans-serif}.ingreso .enviado{background:var(--ok-suave);color:var(--ok);border-radius:0 0 0 12px;padding:14px;font-weight:700}.ingreso .demo{color:var(--azul);text-align:left;background:0 0;border:0;padding:4px 0;font-weight:700}.portal{grid-template-columns:236px minmax(0,1fr);min-height:100vh;display:grid}.lateral{background:var(--azul-hondo);color:#fff;flex-direction:column;gap:22px;height:100vh;padding:22px 16px;display:flex;position:sticky;top:0}.lateral .logo{align-self:flex-start;height:34px}.lateral nav{flex-direction:column;gap:4px;display:flex}.lateral nav button{color:#c9d6ee;text-align:left;background:0 0;border:0;border-radius:0 0 0 12px;align-items:center;gap:12px;padding:10px 12px;font:600 15px Nunito,sans-serif;display:flex}.lateral nav button svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.lateral nav button:hover{color:#fff;background:#ffffff14}.lateral nav button.activa{background:var(--naranja);color:#fff}.contacto{background:#ffffff14;border-radius:0 0 0 16px;flex-direction:column;gap:2px;margin-top:auto;padding:14px;display:flex}.contacto small{color:var(--naranja);letter-spacing:.12em;text-transform:uppercase;font:700 11px Outfit,sans-serif}.contacto b{font:800 20px Outfit,sans-serif}.contacto span{color:#c9d6ee;font-size:13px}.contacto button{color:var(--azul);background:#fff;border:0;border-radius:0 0 0 10px;margin-top:8px;padding:8px;font:700 14px Outfit,sans-serif}main{min-width:0;padding:22px clamp(16px,2.6vw,40px) 40px}.cabecera{border-bottom:2px solid var(--linea);flex-wrap:wrap;align-items:flex-end;gap:16px;margin-bottom:22px;padding-bottom:18px;display:flex}.cabecera small{letter-spacing:.14em;text-transform:uppercase;color:var(--naranja);font:700 12px Outfit,sans-serif}.cabecera h1{font-size:30px}.cabecera .ejemplo{background:var(--alerta-suave);color:var(--alerta);border-radius:0 0 0 8px;padding:4px 10px;font:700 12px Outfit,sans-serif}.cabecera .hoy{color:var(--mut);margin-left:auto;font-size:14px}.vista{flex-direction:column;gap:18px;display:flex}.titulo-vista{align-items:center;gap:14px;display:flex}.titulo-vista h2{font-size:24px}.titulo-vista button{margin-left:auto}.titulo-vista .fuente{color:var(--mut);margin-left:auto;font-size:13px}.principal{background:var(--naranja);color:#fff;border:0;border-radius:0 0 0 12px;padding:9px 16px;font:700 14px Outfit,sans-serif}.principal:hover{background:#e85d04}.secundario{border:2px solid var(--azul);color:var(--azul);background:0 0;border-radius:0 0 0 12px;padding:8px 14px;font:700 14px Outfit,sans-serif}.secundario:hover{background:var(--azul);color:#fff}.enlace{color:var(--azul);background:0 0;border:0;font-size:14px;font-weight:700}.tarjeta{background:var(--surface);box-shadow:0 0 0 1px var(--linea);border-radius:0 0 0 20px;min-width:0;padding:18px 20px}.tarjeta>header{align-items:center;gap:10px;margin-bottom:14px;display:flex}.tarjeta>header h3{font-size:17px}.tarjeta>header>:last-child:not(h3){margin-left:auto}.tarjeta .sub,.sub{color:var(--mut);font-weight:500}.dos-col{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.nota{color:var(--mut);margin:12px 0 0;font-size:13px}.vacio{color:var(--mut);margin:0}.chip{white-space:nowrap;color:var(--mut);background:#eef1f6;border-radius:0 0 0 8px;padding:2px 9px;font:700 12px/1.6 Outfit,sans-serif;display:inline-block}.chip.ok{background:var(--ok-suave);color:var(--ok)}.chip.alerta{background:var(--alerta-suave);color:var(--alerta)}.chip.riesgo{background:var(--riesgo-suave);color:var(--riesgo)}.chip.marca{background:var(--naranja-suave);color:#b44a00;margin-left:8px}.barra{background:#eef1f6;border-radius:0 0 0 6px;min-width:60px;height:8px;display:block;overflow:hidden}.barra i{background:var(--azul);border-radius:0 0 0 6px;height:100%;transition:width .4s;display:block}.barra.ok i{background:var(--ok)}.barra.alerta i{background:var(--alerta)}.barra.riesgo i{background:var(--riesgo)}.indicadores{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px;display:grid}.ind{background:var(--surface);box-shadow:0 0 0 1px var(--linea);border-top:4px solid var(--azul);border-radius:0 0 0 20px;flex-direction:column;gap:4px;padding:16px 18px 12px;display:flex;position:relative}.ind.fuera{border-top-color:var(--riesgo)}.ind .nombre{letter-spacing:.06em;text-transform:uppercase;color:var(--mut);font:700 13px Outfit,sans-serif}.ind b{font:800 34px/1.1 Outfit,sans-serif}.ind .meta{color:var(--mut);font-size:13px}.tendencia{width:100%;height:34px;margin-top:4px}.tendencia polyline{fill:none;stroke-width:2px;vector-effect:non-scaling-stroke}.tendencia .bien{stroke:var(--ok)}.tendencia .mal{stroke:var(--riesgo)}.editor .lista-ind{gap:6px;margin:0;padding:0;list-style:none;display:grid}.lista-ind li{background:var(--paper);border-radius:0 0 0 10px;align-items:center;gap:10px;padding:8px 10px;display:flex}.lista-ind label{flex-wrap:wrap;flex:1;align-items:baseline;gap:8px;display:flex}.lista-ind label span{color:var(--mut);font-size:13px}.lista-ind .orden button{border:1px solid var(--linea);background:#fff;border-radius:0 0 0 8px;width:28px;height:28px;margin-left:4px}.alertas{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.alertas button{text-align:left;background:var(--paper);border:0;border-radius:0 0 0 12px;align-items:flex-start;gap:10px;width:100%;padding:10px 12px;line-height:1.4;display:flex}.alertas li.riesgo button{background:var(--riesgo-suave)}.alertas button:hover{box-shadow:0 0 0 2px var(--azul)}.dotacion{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.dotacion li{grid-template-columns:1fr auto;gap:4px 12px;display:grid}.dotacion li .barra{grid-column:1/-1}.dotacion b{font-family:Outfit,sans-serif}.en-curso{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.en-curso li{grid-template-columns:130px minmax(0,1fr) 160px 50px auto;align-items:center;gap:14px;display:grid}.en-curso .id,.lista-pedidos .id{color:var(--azul);font:700 13px Outfit,sans-serif}.pedidos{grid-template-columns:300px minmax(0,1fr);align-items:start;gap:18px;display:grid}.lista-pedidos{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex;position:sticky;top:16px}.lista-pedidos button{text-align:left;background:var(--surface);width:100%;box-shadow:0 0 0 1px var(--linea);border:0;border-radius:0 0 0 14px;grid-template-columns:1fr auto;gap:2px 8px;padding:12px 14px;display:grid}.lista-pedidos button.activo{box-shadow:0 0 0 2px var(--naranja)}.lista-pedidos .que{grid-column:1;font-weight:700}.lista-pedidos .cuando{color:var(--mut);grid-column:1;font-size:13px}.lista-pedidos .chip{grid-area:1/2/span 3;align-self:center}.detalle{flex-direction:column;gap:18px;display:flex}.grande{margin:0 0 16px;font:700 19px Outfit,sans-serif}.etapas{margin:0 0 18px;padding:0;list-style:none;display:flex;position:relative}.etapas:before{content:"";background:var(--linea);height:3px;position:absolute;top:8px;left:9px;right:9px}.etapas li{flex-direction:column;flex:1;gap:6px;display:flex;position:relative}.etapas li:last-child{flex:none}.etapas i{border:3px solid var(--linea);z-index:1;background:#fff;border-radius:50%;width:19px;height:19px}.etapas li.hecha i{background:var(--azul);border-color:var(--azul)}.etapas li.actual i{background:var(--naranja);border-color:var(--naranja);box-shadow:0 0 0 5px #ff6a002e}.etapas span{color:var(--tenue);white-space:nowrap;font-size:12px}.etapas li.actual span{color:var(--ink);font-weight:800}.cifras-pedido{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}.cifras-pedido small{color:var(--mut);font-size:13px;display:block}.cifras-pedido b{margin-bottom:4px;font:800 24px Outfit,sans-serif;display:block}.bitacora{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.bitacora li{border-left:3px solid var(--azul-suave);padding-left:14px}.bitacora li:first-child{border-left-color:var(--naranja)}.bitacora time{color:var(--mut);font-size:12px;display:block}.ficha{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.ficha li{grid-template-columns:90px 1fr;gap:10px;display:grid}.ficha span{color:var(--mut);font-size:13px;font-weight:700}.consulta{background:var(--paper);border-radius:0 0 0 12px;margin-bottom:8px;padding:10px 12px}.consulta span{color:var(--mut);font-size:12px;display:block}.consultar{gap:10px;display:flex}.consultar input{border:2px solid var(--linea);border-radius:0 0 0 10px;flex:1;padding:10px 12px}.tabla-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}th{text-align:left;letter-spacing:.06em;text-transform:uppercase;color:var(--mut);border-bottom:2px solid var(--linea);white-space:nowrap;padding:8px 10px;font:700 12px Outfit,sans-serif}td{border-bottom:1px solid var(--linea);vertical-align:middle;padding:9px 10px}td.fecha{white-space:nowrap}tr.salio td{color:var(--tenue)}.filtros{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;display:flex}.filtros select,.filtros input:not([type=checkbox]){border:2px solid var(--linea);background:#fff;border-radius:0 0 0 10px;padding:8px 10px}.filtros input:not([type=checkbox]){min-width:220px}.filtros .check{align-items:center;gap:6px;font-size:14px;display:flex}.cuenta-filas{color:var(--mut);margin-left:auto;font-size:13px}.tope{flex-direction:column;gap:3px;min-width:120px;display:flex}.tope span{color:var(--mut);font-size:12px}.docs{white-space:nowrap}.docs span{border-radius:0 0 0 6px;margin:1px 3px 1px 0;padding:1px 6px;font-size:11px;font-weight:700;display:inline-block}.docs .si{background:var(--ok-suave);color:var(--ok)}.docs .no{background:var(--riesgo-suave);color:var(--riesgo)}.barras-dia{width:100%;height:170px;display:block}.barras-dia .p,.leyenda .p{fill:var(--azul);background:var(--azul)}.barras-dia .a,.leyenda .a{fill:var(--riesgo);background:var(--riesgo)}.barras-dia .l,.leyenda .l{fill:var(--tenue);background:var(--tenue)}.leyenda{color:var(--mut);flex-wrap:wrap;gap:18px;margin-top:8px;font-size:13px;display:flex}.leyenda i{border-radius:2px;width:10px;height:10px;margin-right:6px;display:inline-block}.calor{flex-direction:column;gap:4px;display:flex}.calor .fila{grid-template-columns:64px repeat(30,1fr);align-items:center;gap:2px;font-size:12px;display:grid}.calor .cab span{color:var(--tenue);font-size:11px}.calor .celda{background:var(--riesgo);border-radius:3px;height:22px}.ausencias,.pendientes,.docs-empresa{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.ausencias li{grid-template-columns:100px 1fr auto auto;align-items:center;gap:10px;font-size:14px;display:grid}.ausencias li>span:first-child{color:var(--mut)}.pendientes li,.docs-empresa li{background:var(--paper);border-radius:0 0 0 12px;grid-template-columns:1fr auto;gap:2px 10px;padding:10px 12px;display:grid}.pendientes li span,.docs-empresa li span{color:var(--mut);grid-column:1;font-size:13px}.pendientes .chip{grid-area:1/2/span 2;align-self:center}.docs-empresa li{grid-template-columns:1fr auto}.docs-empresa li b{grid-area:1/1}.docs-empresa li span{grid-area:2/1}.docs-empresa .chip{grid-area:1/2/span 2;align-self:center}.equipo{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;display:grid}.persona{background:var(--surface);box-shadow:0 0 0 1px var(--linea);border-radius:0 0 0 20px;flex-direction:column;gap:4px;padding:18px;display:flex}.persona.destacado{box-shadow:0 0 0 2px var(--naranja)}.persona .ini{background:var(--azul);color:#fff;border-radius:50%;place-items:center;width:48px;height:48px;margin-bottom:8px;font:800 20px Outfit,sans-serif;display:grid}.persona.destacado .ini{background:var(--naranja)}.persona small{letter-spacing:.1em;text-transform:uppercase;color:var(--naranja);font:700 12px Outfit,sans-serif}.persona b{font:800 20px Outfit,sans-serif}.persona p{color:var(--mut);margin:4px 0 8px;font-size:14px}.persona button{align-self:flex-start;margin-top:auto}.integraciones{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.integraciones li{background:var(--paper);border-radius:0 0 0 12px;flex-direction:column;gap:2px;padding:12px 14px;display:flex}.integraciones span{color:var(--mut);font-size:13px}.integraciones i{color:var(--ok);margin-top:4px;font-size:12px;font-style:normal;font-weight:700}@media (width<=1100px){.pedidos{grid-template-columns:1fr}.lista-pedidos{position:static}.en-curso li{grid-template-columns:1fr auto}.en-curso li .barra{grid-column:1/-1}}@media (width<=860px){.portal{grid-template-columns:1fr}.lateral{flex-flow:wrap;align-items:center;gap:10px;height:auto;padding:12px 16px;position:static}.lateral nav{flex-direction:row;width:100%;overflow-x:auto}.lateral nav button{white-space:nowrap}.contacto{display:none}.dos-col{grid-template-columns:1fr}.cifras-pedido{grid-template-columns:repeat(2,1fr)}.etapas span{display:none}}
