/* La oficina de Clara — estilos.
   Paleta y tipos del sistema de marca (Marca\05-Tokens), los mismos valores que el dashboard de Clara.
   Solo ángulos rectos y sin sombras: la oficina es una planta de arquitecto, módulos rectangulares. */

:root{
  --fondo:#F4F5F5; --superficie:#FFFFFF; --superficie-2:#FAFAFB;
  --texto:#000000; --texto-2:#51545D; --texto-3:#737882;
  --borde:#E4E5E7; --borde-fuerte:#C4C6CA;
  --muro:#151619; --suelo:#FFFFFF; --rejilla:rgba(26,46,92,.07);
  --azul:#0080E0; --azul-texto:#005DA3; --azul-suave:#E6F2FC;
  --oro:#C7A440; --oro-texto:#866D27; --oro-suave:#F3ECD8;
  --navy:#1A2E5C; --navy-texto:#FFFFFF;
  --ok:#1F8A4C; --ok-suave:#E3F3E9; --mal:#C8372D; --mal-suave:#FBE5E2;
  --f-titulo:"Archivo",-apple-system,BlinkMacSystemFont,Arial,sans-serif;
  --f-texto:"Inter",-apple-system,BlinkMacSystemFont,Arial,sans-serif;
  color-scheme:light;
}
@media (prefers-color-scheme: dark){
  :root{
    --fondo:#000000; --superficie:#151619; --superficie-2:#1B1D21;
    --texto:#FFFFFF; --texto-2:#9EA1A9; --texto-3:#737882;
    --borde:#23252A; --borde-fuerte:#383B42;
    --muro:#51545D; --suelo:#0B0C0E; --rejilla:rgba(158,161,169,.06);
    --azul:#2EA2FA; --azul-texto:#2EA2FA; --azul-suave:#0B2236;
    --oro:#C7A440; --oro-texto:#C7A440; --oro-suave:#2A2410;
    --navy:#1A2E5C; --navy-texto:#FFFFFF;
    --ok:#4CC27A; --ok-suave:#0F2A1A; --mal:#F0655A; --mal-suave:#33150F;
    color-scheme:dark;
  }
}

*{box-sizing:border-box}
html,body{margin:0;background:var(--fondo);color:var(--texto);font:400 14px/1.45 var(--f-texto);-webkit-font-smoothing:antialiased}
button{font:inherit;color:inherit}
[hidden]{display:none !important}
h1,h2,h3{font-family:var(--f-titulo);margin:0;letter-spacing:-.01em}

/* ------------------------------------------------ acceso */
.acceso{min-height:100vh;display:grid;place-items:center;padding:24px 16px}
.acceso-caja{width:100%;max-width:380px;background:var(--superficie);border:1px solid var(--borde);padding:28px 24px}
.acceso-caja h1{font-size:25px;font-weight:800}
.acceso-caja p{color:var(--texto-2);margin:8px 0 20px}
.campo{display:block;margin:0 0 14px}
.campo span{display:block;font-size:12px;font-weight:600;color:var(--texto-2);margin-bottom:6px}
.campo input{width:100%;padding:11px 12px;border:1px solid var(--borde-fuerte);background:var(--superficie-2);color:var(--texto);font:500 16px var(--f-texto);border-radius:0}
.campo input:focus{outline:2px solid var(--azul);outline-offset:-1px}
.boton{display:inline-block;width:100%;padding:13px 16px;border:0;border-radius:0;background:var(--azul);color:#fff;font:700 18px var(--f-titulo);cursor:pointer}
.boton:hover{filter:brightness(.92)}
.acceso-error{color:var(--mal);font-weight:600;min-height:20px;margin:10px 0 0}

/* ------------------------------------------------ barra superior */
.barra{display:flex;flex-wrap:wrap;align-items:center;gap:12px 28px;padding:14px 20px;border-bottom:1px solid var(--borde);background:var(--superficie)}
.marca{display:flex;align-items:center;gap:12px;margin-right:auto}
.isotipo{width:22px;height:22px;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:2px}
.isotipo i{background:var(--azul)}
.isotipo i:nth-child(2){background:var(--texto)}
.isotipo i:nth-child(3){background:var(--oro)}
.isotipo i:nth-child(4){background:var(--texto)}
.marca h1{font-size:18px;font-weight:800}
.vivo{display:inline-flex;align-items:center;gap:6px;font:700 11px var(--f-titulo);letter-spacing:.08em;text-transform:uppercase;color:var(--ok)}
.vivo::before{content:"";width:8px;height:8px;background:currentColor;animation:latir 1.6s ease-in-out infinite}
.vivo.caido{color:var(--mal)}
.vivo.caido::before{animation:none}
@keyframes latir{0%,100%{opacity:1}50%{opacity:.25}}

.cuota{display:flex;gap:18px;align-items:center}
.medidor{min-width:120px}
.medidor .rot{display:flex;justify-content:space-between;gap:10px;font-size:11px;color:var(--texto-2);font-weight:600;white-space:nowrap}
.medidor .rot b{font:700 13px var(--f-titulo);color:var(--oro-texto)}
.medidor .tubo{height:6px;background:var(--borde);margin-top:4px}
.medidor .lleno{height:100%;background:var(--azul);width:0;transition:width .6s}
.medidor.alto .lleno{background:var(--mal)}
.medidor.alto .rot b{color:var(--mal)}
.cuota .cuando{font-size:11px;color:var(--texto-3);max-width:110px;line-height:1.3}

.pc{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--texto-2)}
.pc::before{content:"";width:8px;height:8px;background:var(--ok)}
.pc.mal{color:var(--mal);font-weight:600}
.pc.mal::before{background:var(--mal)}
.reloj{font:700 18px var(--f-titulo);font-variant-numeric:tabular-nums}

/* ------------------------------------------------ resumen */
.resumen{display:flex;flex-wrap:wrap;gap:0;border-bottom:1px solid var(--borde);background:var(--superficie)}
.cifra{padding:10px 20px;border-right:1px solid var(--borde);display:flex;align-items:baseline;gap:8px}
.cifra b{font:800 22px var(--f-titulo);font-variant-numeric:tabular-nums}
.cifra span{font-size:12px;color:var(--texto-2)}
.cifra.azul b{color:var(--azul-texto)}
.cifra.mal b{color:var(--mal)}
.cifra.dato b{color:var(--oro-texto)}

.aviso-pc{margin:16px 20px 0;padding:12px 16px;border-left:4px solid var(--mal);background:var(--mal-suave);font-weight:600}

/* ------------------------------------------------ la planta */
.lienzo{padding:20px 20px 84px}
.planta{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:4px;background:var(--muro);border:6px solid var(--muro)}
.sala{position:relative;background-color:var(--suelo);
  background-image:linear-gradient(var(--rejilla) 1px,transparent 1px),linear-gradient(90deg,var(--rejilla) 1px,transparent 1px);
  background-size:24px 24px;padding:40px 14px 16px;min-height:210px;grid-column:span var(--ancho,3)}
/* la puerta: un hueco en el muro de arriba */
.sala::before{content:"";position:absolute;top:-4px;left:28px;width:46px;height:4px;background:var(--suelo)}
.sala::after{content:"";position:absolute;top:-4px;left:72px;width:2px;height:12px;background:var(--muro)}
.sala-cab{position:absolute;top:12px;left:14px;right:14px;display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.sala-cab h2{font:700 11px var(--f-titulo);letter-spacing:.1em;text-transform:uppercase;color:var(--texto-2)}
.sala-cab span{font-size:11px;color:var(--texto-3);white-space:nowrap}
.sala-cab span.activa{color:var(--azul-texto);font-weight:600}
.puestos{display:flex;flex-wrap:wrap;gap:6px 4px;align-items:flex-start}
.vacio{color:var(--texto-3);font-size:12px;padding:46px 4px 0}

/* un puesto: bocadillo, persona, mesa, nombre */
.puesto{position:relative;width:112px;padding:52px 4px 6px;background:none;border:0;cursor:pointer;text-align:center;display:flex;flex-direction:column;align-items:center}
.puesto:focus-visible{outline:2px solid var(--azul);outline-offset:2px}
.puesto:hover .nombre{color:var(--azul-texto)}
.avatar{position:relative;width:40px;height:40px;display:grid;place-items:center;background:var(--navy);color:var(--navy-texto);font:800 14px var(--f-titulo);letter-spacing:.02em;z-index:1}
.avatar.tu{background:var(--oro);color:#000}
.mesa{width:76px;height:20px;background:var(--borde-fuerte);margin-top:-6px;position:relative}
.mesa::before{content:"";position:absolute;left:50%;top:5px;width:26px;height:3px;margin-left:-13px;background:var(--texto-3)}
.nombre{font:700 12px/1.25 var(--f-titulo);margin-top:7px;max-width:104px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.detalle{font-size:11px;color:var(--texto-3);margin-top:2px;max-width:108px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.subs{position:absolute;right:-12px;bottom:-4px;display:flex;gap:2px;align-items:flex-end}
.subs i{width:9px;height:9px;background:var(--azul)}
.subs b{font:700 10px var(--f-titulo);color:var(--azul-texto);margin-left:2px}

/* el bocadillo cabe en el ancho del puesto: dos líneas como mucho, nunca se sale del muro */
.bocadillo{position:absolute;top:0;left:0;right:0;padding:3px 6px;background:var(--superficie);border:1px solid var(--borde-fuerte);font-size:11px;line-height:1.3;color:var(--texto);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;z-index:2;animation:aparecer .25s ease-out}
.bocadillo em{font-style:normal;color:var(--texto-3)}
.puesto .bocadillo + .avatar::before{content:"";position:absolute;left:50%;top:-12px;width:1px;height:8px;background:var(--borde-fuerte)}
@keyframes aparecer{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}

/* estados */
.st-libre .avatar{opacity:.45}
.st-libre .mesa{opacity:.6}
.st-trabajando .avatar,.st-esperando .avatar{outline:2px solid var(--azul);outline-offset:3px}
.st-trabajando .avatar::after{content:"";position:absolute;inset:-3px;border:2px solid var(--azul);animation:onda 1.8s ease-out infinite}
.st-esperando .avatar{outline-style:dashed}
.st-trabajando .pantalla,.st-trabajando .mesa::before,.st-esperando .mesa::before{background:var(--azul)}
.st-permiso .avatar{outline:2px solid var(--oro);outline-offset:3px}
.st-permiso .bocadillo{border-color:var(--oro);background:var(--oro-suave)}
.st-callada .avatar,.st-sin_pc .avatar{outline:2px solid var(--mal);outline-offset:3px}
.st-callada .bocadillo,.st-sin_pc .bocadillo{border-color:var(--mal);background:var(--mal-suave)}
.st-termino .avatar::before{content:"";position:absolute;left:auto;right:-5px;top:-5px;width:12px;height:12px;background:var(--ok);border:2px solid var(--suelo)}
.cuota.vieja .medidor{opacity:.45}
.st-esperandote .avatar{outline:2px solid var(--borde-fuerte);outline-offset:3px}
@keyframes onda{0%{opacity:.8;transform:scale(1)}100%{opacity:0;transform:scale(1.55)}}

.pista{margin:14px 0 0;color:var(--texto-3);font-size:12px;text-align:center}

/* ------------------------------------------------ la cinta de abajo */
.cinta{position:fixed;left:0;right:0;bottom:0;display:flex;align-items:stretch;background:var(--superficie);border-top:1px solid var(--borde);height:40px;z-index:20}
.cinta-etq{display:flex;align-items:center;gap:6px;padding:0 14px;font:800 11px var(--f-titulo);letter-spacing:.1em;text-transform:uppercase;color:var(--ok);border-right:1px solid var(--borde);flex:none}
.cinta-etq::before{content:"";width:7px;height:7px;background:currentColor}
.cinta-pista{flex:1;overflow:hidden;position:relative}
.cinta-mov{position:absolute;top:0;bottom:0;left:0;display:flex;align-items:center;white-space:nowrap;animation:correr var(--dur,60s) linear infinite;will-change:transform}
.cinta-pista:hover .cinta-mov{animation-play-state:paused}
.cinta-item{padding:0 18px;font-size:12px;color:var(--texto-2)}
.cinta-item time{font-variant-numeric:tabular-nums;color:var(--texto-3);margin-right:6px}
.cinta-item b{font:700 12px var(--f-titulo);color:var(--texto);margin-right:4px}
@keyframes correr{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ------------------------------------------------ la ficha */
.velo{position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:30}
.ficha{position:fixed;top:0;right:0;bottom:0;width:420px;max-width:100%;background:var(--superficie);border-left:1px solid var(--borde);z-index:31;display:flex;flex-direction:column}
.ficha-cab{display:flex;gap:14px;align-items:center;padding:18px 20px;border-bottom:1px solid var(--borde)}
.ficha-cab .avatar{width:48px;height:48px;font-size:16px;flex:none}
.ficha-cab h2{font-size:20px;font-weight:800;line-height:1.15}
.ficha-cab p{margin:2px 0 0;font-size:12px;color:var(--texto-2)}
.cerrar{margin-left:auto;align-self:flex-start;width:36px;height:36px;border:1px solid var(--borde);background:var(--superficie-2);cursor:pointer;font:700 18px var(--f-titulo);border-radius:0;flex:none}
.ficha-cuerpo{overflow:auto;padding:4px 20px 28px}
.bloque{padding:16px 0;border-bottom:1px solid var(--borde)}
.bloque:last-child{border-bottom:0}
.bloque h3{font:700 11px var(--f-titulo);letter-spacing:.1em;text-transform:uppercase;color:var(--texto-3);margin-bottom:8px}
.ahora-txt{font:700 16px/1.35 var(--f-titulo)}
.ahora-sub{color:var(--texto-2);font-size:13px;margin-top:2px}
.chip{display:inline-block;padding:2px 7px;font:700 11px var(--f-titulo);letter-spacing:.04em;text-transform:uppercase;border:1px solid var(--borde-fuerte);color:var(--texto-2);vertical-align:2px}
.chip.st-trabajando,.chip.st-esperando{border-color:var(--azul);color:var(--azul-texto);background:var(--azul-suave)}
.chip.st-permiso{border-color:var(--oro);color:var(--oro-texto);background:var(--oro-suave)}
.chip.st-callada,.chip.st-sin_pc{border-color:var(--mal);color:var(--mal);background:var(--mal-suave)}
.chip.st-termino{border-color:var(--ok);color:var(--ok);background:var(--ok-suave)}
.desc{color:var(--texto-2);font-size:13px}
.vuelta{list-style:none;margin:0;padding:0}
.vuelta li{padding:10px 0;border-top:1px solid var(--borde)}
.vuelta li:first-child{border-top:0;padding-top:2px}
.vuelta .linea{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.vuelta time{font:700 13px var(--f-titulo);font-variant-numeric:tabular-nums}
.vuelta .meta{font-size:12px;color:var(--texto-3)}
.vuelta .res{margin-top:4px;font-size:13px;color:var(--texto-2);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;cursor:pointer;white-space:pre-line}
.vuelta .res.abierto{-webkit-line-clamp:unset}
.vuelta button.enlace{background:none;border:0;padding:0;cursor:pointer;font:700 13px var(--f-titulo);color:var(--azul-texto);text-align:left}
.acciones{list-style:none;margin:0;padding:0;font-size:13px}
.acciones li{display:flex;gap:10px;padding:5px 0;border-top:1px solid var(--borde)}
.acciones li:first-child{border-top:0}
.acciones time{color:var(--texto-3);font-variant-numeric:tabular-nums;flex:none}
.nada{color:var(--texto-3);font-size:13px}
.salir{margin-top:8px;background:none;border:0;color:var(--texto-3);font-size:12px;cursor:pointer;text-decoration:underline}

/* ------------------------------------------------ tamaños */
@media (max-width:1100px){
  .planta{grid-template-columns:repeat(6,minmax(0,1fr))}
  .sala{grid-column:span var(--ancho-m,3)}
}
@media (max-width:700px){
  .barra{padding:12px 16px;gap:10px 18px}
  .reloj{display:none}
  .cuota{width:100%;order:3}
  .medidor{flex:1;min-width:0}
  .pc{order:2}
  .cifra{padding:8px 14px;flex:1 1 33%}
  .cifra b{font-size:18px}
  .lienzo{padding:16px 16px 72px}
  .planta{grid-template-columns:1fr}
  .sala{grid-column:auto;min-height:0}
  .puesto{width:calc(33.33% - 3px);min-width:96px}
  .ficha{width:100%;border-left:0}
  .aviso-pc{margin:12px 16px 0}
}
@media (prefers-reduced-motion: reduce){
  .vivo::before,.st-trabajando .avatar::after,.bocadillo{animation:none}
  .cinta-mov{animation:none;position:static}
  .cinta-pista{overflow-x:auto}
}
