:root{--bg:#efecec;--card-border:#e2dede;--text-primary:#262223;--text-secondary:#756f70;--text-muted:#948e8f;--red:#eb012a;--purple:#af3f9e;--gradient-brand:linear-gradient(90deg, var(--red), var(--purple));--success:#1d9e75;--avulso:#e23b62;--avulso-tint:#fbe3ea;--gray:#756f70;--gray-bg:#efeded;--gray-pill-bg:#e2dede;--grad-pill-bg:#f6e7f3;--danger:#c23a3a;--danger-tint:#fbeaea;--stripe:#faf8f8;--special-tint:#fbf5fa;--font-family:"Poppins", system-ui, sans-serif}.room-state--vago{border-color:var(--gray);background:var(--gray-bg);border-style:dashed}.room-state--vazio{border-color:var(--gray);background:var(--gray-bg)}.room-state--normal{border-image:var(--gradient-brand) 1;background:#fff}.room-state--excedido{border-color:var(--red);background:linear-gradient(#fbe3e6,#fffffff0 55%)}:root{--s:1}*{box-sizing:border-box;margin:0;padding:0}html,body{background-color:var(--bg);width:100%;height:100%;color:var(--text-primary);font-family:var(--font-family);background-image:url(/fundo-telao.png);background-position:bottom;background-repeat:no-repeat;background-size:cover;overflow:hidden}#app{width:100%;height:100%}.display{width:100vw;height:100vh;padding:calc(18px * var(--s)) calc(30px * var(--s)) 0;gap:calc(10px * var(--s));flex-direction:column;display:flex}.topbar{justify-content:space-between;align-items:center;display:flex}.brand{align-items:center;gap:calc(14px * var(--s));display:flex}.brand img{height:calc(36px * var(--s));display:block}.divider{width:calc(2px * var(--s));height:calc(32px * var(--s));background:var(--text-primary);opacity:.15}.brand-name{font-size:calc(17px * var(--s));font-weight:700}.brand-sub{font-size:calc(11px * var(--s));color:var(--text-secondary);font-weight:500}.status-cluster{align-items:center;gap:calc(14px * var(--s));display:flex}.legend{font-size:calc(10.5px * var(--s));color:var(--text-secondary);align-items:center;font-weight:500;display:flex}.legend span{margin-right:calc(12px * var(--s));white-space:nowrap}.legend .dot{width:calc(6px * var(--s));height:calc(6px * var(--s));margin-right:calc(4px * var(--s));border-radius:50%;display:inline-block}.legend .dot.prog{background:var(--purple)}.legend .dot.avulso{background:var(--avulso)}.turno-badge{background:var(--gradient-brand);color:#fff;padding:calc(6px * var(--s)) calc(16px * var(--s));font-size:calc(12.5px * var(--s));border-radius:999px;font-weight:600}.clock-block{text-align:right}.clock{font-size:calc(20px * var(--s));font-weight:700;line-height:1.1}.date{font-size:calc(10.5px * var(--s));color:var(--text-secondary);text-transform:capitalize;font-weight:500}.grid{grid-template-columns:repeat(var(--colunas,4), minmax(0, 1fr));grid-template-rows:repeat(var(--linhas,2), minmax(0, 1fr));--u:1;flex:1;gap:12px;min-height:0;display:grid}.room{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);border:1px solid var(--card-border);border-top:calc(4px * var(--u)) solid var(--purple);border-radius:calc(16px * var(--u));padding:calc(14px * var(--u)) calc(16px * var(--u));background:#fffffff2;flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden;box-shadow:0 1px 3px #0000000a}.room.exceeded{border-top-color:var(--red);background:linear-gradient(#fbe3e6,#fffffff2 55%)}.room.encerrado{border-top-color:var(--success);opacity:.6}.room.vago{border-top-color:var(--text-muted);background:var(--gray-bg);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none;text-align:center;justify-content:center;align-items:center;gap:calc(10px * var(--u));border-style:dashed}.room-num{font-size:calc(15px * var(--u));white-space:nowrap;text-overflow:ellipsis;font-weight:700;overflow:hidden}.vago-msg{gap:calc(3px * var(--u));color:var(--text-secondary);font-size:calc(13px * var(--u));flex-direction:column;font-weight:600;display:flex}.vago-msg small{font-size:calc(10.5px * var(--u));color:var(--text-muted);font-weight:400}.room-status{align-items:center;gap:calc(6px * var(--u));margin:calc(2px * var(--u)) 0 calc(10px * var(--u));font-size:calc(9.5px * var(--u));letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted);font-weight:700;display:flex}.room-status-dot{width:calc(7px * var(--u));height:calc(7px * var(--u));background:currentColor;border-radius:50%}.room-status.atendimento{color:var(--purple)}.room-status.encerrado{color:var(--success)}.medico-chip{box-sizing:border-box;height:calc(46px * var(--u));justify-content:space-between;align-items:center;gap:calc(8px * var(--u));background:var(--gray-bg);border-radius:calc(9px * var(--u));padding:0 calc(10px * var(--u));margin-bottom:calc(8px * var(--u));flex-shrink:0;display:flex}.medico-chip-info{flex-direction:column;min-width:0;display:flex}.medico-chip-nome{font-size:calc(13px * var(--u));white-space:nowrap;text-overflow:ellipsis;font-weight:700;line-height:1.25;overflow:hidden}.medico-chip-spec{font-size:calc(10.5px * var(--u));color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-weight:500;line-height:1.25;overflow:hidden}.btn-chegada{font-size:calc(10.5px * var(--u));padding:calc(4px * var(--u)) calc(9px * var(--u));border-radius:calc(7px * var(--u));white-space:nowrap;flex-shrink:0;font-weight:600}.btn-chegada.aguardando-medico{background:var(--gray-pill-bg);color:var(--text-secondary);animation:1.6s ease-in-out infinite piscar-lento}.btn-chegada.chegou-medico{background:var(--gradient-brand);color:#fff}@keyframes piscar-lento{0%,to{opacity:1}50%{opacity:.25}}.room-stats{gap:calc(8px * var(--u));margin-bottom:calc(8px * var(--u));flex-shrink:0;grid-template-columns:1fr 1fr;display:grid}.room-stat{box-sizing:border-box;height:calc(46px * var(--u));justify-content:space-between;align-items:center;gap:calc(8px * var(--u));padding:0 calc(12px * var(--u));border:1px solid var(--card-border);border-radius:calc(9px * var(--u));background:#fff;display:flex}.room-stat-rotulo{font-size:calc(9px * var(--u));letter-spacing:.07em;text-transform:uppercase;color:var(--text-secondary);font-weight:700}.room-stat-valor{font-size:calc(17px * var(--u));font-weight:700;line-height:1.1}.room-stat-valor small{font-size:calc(12px * var(--u));color:var(--text-muted);font-weight:500}.room-stat-valor.over{color:var(--red)}.bar-track{height:calc(4px * var(--u));margin-bottom:calc(8px * var(--u));background:#ece8e8;border-radius:999px;flex-shrink:0;overflow:hidden}.bar-fill{background:var(--gradient-brand);border-radius:999px;height:100%}.room.exceeded .bar-fill{background:var(--red)}.students{gap:calc(4px * var(--u));flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.student-chip{justify-content:space-between;align-items:center;gap:calc(8px * var(--u));border:1px solid var(--card-border);color:var(--text-primary);font-size:calc(12.5px * var(--u));padding:calc(3px * var(--u)) calc(10px * var(--u));border-radius:calc(8px * var(--u));background:#fff;flex-shrink:0;font-weight:600;display:flex}.student-chip.avulso{border-left:calc(3px * var(--u)) solid var(--avulso);color:var(--avulso)}.student-chip-nome{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.chip-hora{font-size:calc(10.5px * var(--u));letter-spacing:.05em;color:var(--text-muted);flex-shrink:0;font-weight:700}.auth-note{font-size:calc(10.5px * var(--u));color:var(--red);padding-top:calc(6px * var(--u));margin-top:auto;font-weight:600}.footer{background:var(--gradient-brand);color:#fff;padding:calc(8px * var(--s)) calc(30px * var(--s));font-size:calc(12.5px * var(--s));margin:calc(10px * var(--s)) calc(-30px * var(--s)) 0;justify-content:space-between;align-items:center;font-weight:500;display:flex}.footer strong{font-weight:700}.paginas{align-items:center;gap:calc(6px * var(--s));display:flex}.pagina-ponto{width:calc(8px * var(--s));height:calc(8px * var(--s));background:#fff6;border-radius:999px;transition:width .3s,background .3s}.pagina-ponto.ativa{width:calc(22px * var(--s));background:#fff}.pagina-texto{margin-left:calc(8px * var(--s));font-size:calc(11.5px * var(--s));opacity:.9;font-weight:600}.grid.troca{animation:.45s entrada-pagina}@keyframes entrada-pagina{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.room.vago .room-num{font-size:calc(28px * var(--u))}.room.vago .vago-msg{font-size:calc(20px * var(--u))}.room.vago .vago-msg small{font-size:calc(15px * var(--u))}
