/* Barra de Atención TV v3.32 · ajuste real de viewport PC/TV, sin recortes de banner ni tarjetas. */
html,body{width:100%;height:100%;margin:0;background:#edf3f7;overflow:hidden}
body{font-family:Arial,Helvetica,sans-serif;color:#103a5a}
*{box-sizing:border-box}
.hidden{display:none!important}
.screen{width:100%;height:100%;min-width:760px;min-height:560px;position:relative;background:#edf3f7;overflow:hidden}
.top{height:10.5%;background:#003b6e;color:#fff;border-bottom:4px solid #0d76ad;position:absolute;left:0;right:0;top:0}
.brand{position:absolute;left:1.5%;top:16%;height:67%;white-space:nowrap}
.brand img{display:inline-block;height:100%;width:auto;max-width:175px;vertical-align:middle;object-fit:contain}
.brand.logo-error img{display:none}.brand.logo-error:before{content:"BARRA";display:inline-block;vertical-align:middle;font-size:22px;font-weight:900}
.brandtext{display:inline-block;vertical-align:middle;margin-left:16px}
.brandtitle{font-size:25px;font-weight:bold;line-height:1}
.brandsub{font-size:11px;color:#c7e6f7;margin-top:8px;font-weight:bold;letter-spacing:.35px}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#e45c5c;margin-right:7px;vertical-align:1px}
.dot.online{background:#2dd578}.dot.backup{background:#f0b23d}
.clock{position:absolute;right:1.6%;top:20%;text-align:right}.clock b{font-size:34px;display:block;line-height:1}.clock span{font-size:11px;color:#c7e6f7;text-transform:uppercase;letter-spacing:.7px}

.content{position:absolute;left:0;right:0;top:10.5%;bottom:12%;height:auto;padding:12px 14px 10px;overflow:hidden}.screen.no-banner .content{bottom:3.5%;height:auto}.screen.image-banner .content{bottom:17%;height:auto}
.layout{display:table;width:100%;height:100%;table-layout:fixed}.side,.main{display:table-cell;vertical-align:top}.side{width:24%;padding-right:12px}.main{width:76%}
.panel{background:#fff;border:1px solid #cbdbe6;border-radius:10px;box-shadow:0 2px 7px rgba(0,59,110,.07);overflow:hidden}.panel+.panel{margin-top:10px}
.ph{height:38px;line-height:38px;padding:0 13px;background:#fbfdff;border-bottom:1px solid #dce6ed;color:#004878;font-size:11px;font-weight:bold;text-transform:uppercase;letter-spacing:.75px}.ph em{font-style:normal;color:#0d76ad;margin-right:8px}.pb{padding:10px;height:calc(100% - 38px);overflow:hidden}
.queue{height:40%}.recent{height:25%}.staff{height:calc(35% - 20px)}.side.online-hidden .queue{height:60%}.side.online-hidden .recent{height:calc(40% - 10px)}
.empty{border:1px dashed #b9cedd;border-radius:8px;background:#fbfdff;text-align:center;color:#7c94a6;padding:18px 8px;font-size:12px}
.wait-row{display:table;width:100%;min-height:47px;margin-bottom:6px;padding:6px 7px;border:1px solid #d3e0e9;border-left:4px solid #0d76ad;border-radius:7px;background:#f9fcfe;table-layout:fixed}.wait-ticket,.wait-person,.wait-area{display:table-cell;vertical-align:middle}.wait-ticket{width:57px;color:#00558b;font-size:14px;font-weight:900}.wait-person{padding:0 6px;overflow:hidden}.wait-person strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px;color:#173f5c}.wait-area{width:54px;text-align:right;font-size:8px;font-weight:800;color:#6b8293}.payment-public{display:inline-block;margin-top:3px;border-radius:4px;padding:2px 4px;background:#fff0cf;color:#8c5700;font-size:7px;font-weight:900}.route-public{display:inline-block;margin-top:3px;margin-left:3px;border-radius:4px;padding:2px 4px;background:#e9e0fa;color:#673b99;font-size:7px;font-weight:900}
.chip{display:inline-block;background:#eef6fb;border:1px solid #c8deeb;border-radius:6px;padding:6px 8px;margin:0 5px 6px 0;font-size:10px;font-weight:bold;color:#174d71;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}.chip.online:before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:#2db96e;margin-right:6px}
.finished-chip{vertical-align:top;padding:5px 7px 4px;line-height:1.15}.finished-main{display:block;max-width:145px;overflow:hidden;text-overflow:ellipsis}.finished-chip small{display:block;margin-top:4px;color:#527087;font-size:8px;font-weight:bold;letter-spacing:.15px}

.metrics{height:66px;background:#fff;border:1px solid #cbdbe6;border-radius:10px;display:table;width:100%;box-shadow:0 2px 7px rgba(0,59,110,.07);overflow:hidden}.metric{display:table-cell;width:33.33%;text-align:center;vertical-align:middle;border-right:1px solid #dde6ec}.metric:last-child{border-right:0}.metric strong{display:block;font-size:23px;color:#004878;line-height:1}.metric span{display:block;font-size:8px;margin-top:6px;color:#62798b;text-transform:uppercase;letter-spacing:.85px;font-weight:bold}
.live{margin-top:10px;height:calc(100% - 76px)}.livehead{height:40px;line-height:40px;padding:0 13px;border-bottom:1px solid #dce6ed;background:#fff;position:relative}.tag{display:inline-block;line-height:1;padding:5px 7px;background:#dbf3e6;color:#147446;font-size:9px;font-weight:bold;border-radius:4px;margin-right:8px;letter-spacing:.65px}.livetitle{font-size:11px;font-weight:bold;text-transform:uppercase;letter-spacing:.75px;color:#083f69}.page-indicator{position:absolute;right:12px;top:9px;line-height:22px;padding:0 8px;border-radius:10px;background:#edf5fa;color:#41627b;font-size:9px;font-weight:900}
.grid{height:calc(100% - 40px);padding:8px 7px 6px;overflow:hidden;font-size:0}.cardwrap{display:inline-block;width:33.3333%;height:50%;padding:5px 6px;vertical-align:top;font-size:16px}.grid.rows-1 .cardwrap{height:52%;min-height:185px;max-height:315px}.grid.rows-1.items-1 .cardwrap{width:38%;max-width:470px}.grid.rows-1.items-2 .cardwrap{width:50%}.grid.rows-1.items-3 .cardwrap{width:33.3333%}.grid.rows-3 .cardwrap{height:33.3333%;padding:3px 5px}
.card{height:100%;background:#fff;border:1px solid #cbdbe6;border-left:6px solid #0d76ad;border-radius:10px;box-shadow:0 4px 14px rgba(0,59,110,.09);position:relative;overflow:hidden}.cardtop{height:47%;padding:13px 15px 8px;position:relative}.station{font-size:25px;font-weight:bold;color:#004878;line-height:1}.customer{font-size:17px;font-weight:bold;color:#173f5c;margin-top:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:68px}.desk{position:absolute;right:12px;top:13px;background:#eaf4fb;color:#1f6088;border-radius:5px;padding:5px 7px;font-size:9px;font-weight:bold;letter-spacing:.45px;max-width:88px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.status{height:53%;border-top:1px solid #e1e9ef;background:#f7fbfd;padding:10px 13px 27px;position:relative}.attendant{position:absolute;left:13px;right:13px;bottom:8px;margin:0;font-size:9px;line-height:1.15;font-weight:700;color:#526f83;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.state-label{font-size:8px;color:#748b9c;text-transform:uppercase;letter-spacing:.9px;font-weight:bold}.state-title{font-size:15px;line-height:1.18;font-weight:bold;color:#173f5c;margin-top:5px;min-height:34px;padding-right:8px}.areas{margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.area{display:inline-block;border-radius:5px;padding:5px 6px;margin-right:4px;font-size:7.5px;font-weight:bold;letter-spacing:.45px;border:1px solid transparent}.commercial{background:#fff5da;border-color:#ead294;color:#825000}.credit{background:#fff0f2;border-color:#edc2c8;color:#962538}.normal{background:#eaf4fb;border-color:#c9dfed;color:#1c638e}.transfer{background:#eee7fa;border-color:#d8c6ee;color:#653b92}
.activity{position:absolute;right:13px;top:11px;height:9px;white-space:nowrap}.activity i{display:inline-block;width:5px;height:5px;border-radius:50%;background:#0d76ad;margin-left:3px;opacity:.22}.activity i:nth-child(1){animation:d1 1.5s infinite}.activity i:nth-child(2){animation:d2 1.5s infinite}.activity i:nth-child(3){animation:d3 1.5s infinite}@keyframes d1{0%,60%,100%{opacity:.2}20%{opacity:1}}@keyframes d2{0%,20%,80%,100%{opacity:.2}40%{opacity:1}}@keyframes d3{0%,40%,100%{opacity:.2}60%{opacity:1}}
.state-credit{border-left-color:#c92b42}.state-credit .status{background:#fffafb}.state-credit .activity i{background:#c92b42}.state-commercial{border-left-color:#c68200}.state-commercial .status{background:#fffcf5}.state-commercial .activity i{background:#c68200}.state-both{border-left-color:#6a3aa8}.state-both .status{background:#fcfaff}.state-both .activity i{background:#6a3aa8}.state-transfer{border-left-color:#7444a4}.state-enter .status{animation:statusIn .52s ease-out 1}@keyframes statusIn{0%{opacity:.35;transform:translateY(5px)}100%{opacity:1;transform:translateY(0)}}
.grid.rows-3 .cardtop{height:43%;padding:7px 10px 5px}.grid.rows-3 .status{height:57%;padding:6px 9px 5px}.grid.rows-3 .station{font-size:18px}.grid.rows-3 .customer{font-size:12px;margin-top:4px;padding-right:55px}.grid.rows-3 .desk{top:7px;right:7px;padding:4px 5px;font-size:7px;max-width:72px}.grid.rows-3 .state-title{font-size:10px;min-height:20px;margin-top:2px}.grid.rows-3 .area{padding:3px 4px;font-size:6px}.grid.rows-3 .state-label{font-size:6px}.grid.rows-3 .status{padding-bottom:18px}.grid.rows-3 .attendant{left:9px;right:9px;bottom:4px;font-size:7px;margin:0}.grid.rows-3 .activity{top:7px;right:8px}

.banner{height:8.5%;background:#fff;border-top:1px solid #cbdbe6;border-bottom:1px solid #b8cedd;position:absolute;left:0;right:0;bottom:3.5%;overflow:hidden}.screen.image-banner .banner{height:13.5%}.banner-inner{height:100%;padding:0 2%;display:table;width:100%;table-layout:fixed;position:relative;z-index:2}.banner-icon,.banner-copy,.banner-mark{display:table-cell;vertical-align:middle}.banner-icon{width:52px}.banner-symbol{width:35px;height:35px;border-radius:50%;background:#e7f4fb;color:#0d76ad;text-align:center;line-height:35px;font-size:17px;font-weight:bold}.banner-copy small{display:block;text-transform:uppercase;font-size:8px;letter-spacing:1px;font-weight:bold;color:#0d76ad;margin-bottom:3px}.banner-copy strong{display:block;font-size:15px;color:#163f5d;line-height:1.12;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.banner-copy span{display:block;font-size:10px;color:#62798b;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.banner-mark{width:24%;text-align:right;color:#9ab0bf;font-size:10px;font-weight:bold;letter-spacing:.5px}.banner.fade{animation:bannerFade .48s ease-out 1}@keyframes bannerFade{0%{opacity:.25}100%{opacity:1}}
.banner-image{display:none;position:absolute;left:0;top:0;width:100%;height:100%;border:0;z-index:1;object-fit:contain;background:#fff}.banner.has-image .banner-image{display:block}.banner.has-image .banner-inner{display:none}
.banner.theme-green{background:#effaf4}.banner.theme-green .banner-symbol{background:#d8f3e4;color:#147446}.banner.theme-gold{background:#fff9e9}.banner.theme-gold .banner-symbol{background:#f8e9bd;color:#825000}.banner.theme-red{background:#fff4f5}.banner.theme-red .banner-symbol{background:#f7dfe3;color:#962538}.banner.theme-purple{background:#f8f3ff}.banner.theme-purple .banner-symbol{background:#eadffd;color:#653b92}.banner.theme-dark{background:#003b6e}.banner.theme-dark .banner-copy small,.banner.theme-dark .banner-copy strong,.banner.theme-dark .banner-copy span,.banner.theme-dark .banner-mark{color:#fff}.banner.theme-dark .banner-symbol{background:#0d76ad;color:#fff}
.footer{height:3.5%;background:#003b6e;color:#d7ebf7;display:table;width:100%;position:absolute;left:0;right:0;bottom:0;overflow:hidden}.footl,.footr{display:table-cell;vertical-align:middle;font-size:9px;font-weight:bold;letter-spacing:.35px}.footl{padding-left:2%}.footr{text-align:right;padding-right:2%}

.call-overlay,.system-overlay,.activation-overlay,.auth-error{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;background:rgba(0,32,61,.96);color:#fff;text-align:center}.system-overlay>div,.auth-error>div{position:absolute;top:50%;left:10%;width:80%;margin-top:-70px}.system-overlay h2,.auth-error h1{margin:0 0 12px;font-size:38px}.system-overlay p,.auth-error p{font-size:19px}.call-overlay{z-index:60}.call-card{position:absolute;top:10%;right:8%;bottom:10%;left:8%;padding:45px;border:9px solid #d32f2f;border-radius:26px;background:#fff;color:#172f46;box-shadow:0 25px 70px rgba(0,0,0,.45)}.call-card>small{display:block;height:24px;color:#60768a;font-size:16px;font-weight:700}.call-card>span{display:block;margin-top:10px;color:#d32f2f;font-size:34px;font-weight:900;letter-spacing:4px}.call-card>strong{display:block;margin:18px 0 8px;color:#064c7d;font-size:72px;line-height:1;font-weight:900}.call-card h2{margin:10px 0 18px;font-size:48px}.call-card div{padding-top:18px;border-top:3px solid #dbe4eb;color:#064c7d;font-size:57px;font-weight:900}
.activation-overlay{z-index:80;background:#002d55}.activation-card{position:absolute;top:50%;left:50%;width:600px;max-width:78%;margin:-205px 0 0 -300px;padding:32px 38px;border:2px solid #267caf;border-radius:18px;background:#063e6c;box-shadow:0 22px 60px rgba(0,0,0,.4)}.activation-mark{display:inline-block;width:52px;height:52px;line-height:52px;border-radius:12px;background:#d89b22;color:#fff;font-size:23px;font-weight:900}.activation-card h2{margin:14px 0 8px;font-size:37px}.activation-card p{margin:0 auto 20px;max-width:500px;color:#d9ebf7;font-size:18px;line-height:1.45}.activation-card button{display:block;width:100%;min-height:67px;border:0;border-radius:11px;background:#fff;color:#064c7d;font-size:21px;font-weight:900;cursor:pointer}.activation-card button:focus{outline:7px solid #ffc336;outline-offset:5px}.activation-card small{display:block;margin-top:17px;color:#a9c8dc;font-size:13px}

@media(max-width:1450px){.brandtitle{font-size:21px}.clock b{font-size:30px}.side{width:25%}.main{width:75%}.station{font-size:22px}.customer{font-size:15px}.state-title{font-size:13px}.cardtop{padding:11px 12px 7px}.status{padding:9px 11px 8px}.desk{top:11px;right:10px}.ph{font-size:10px}}
@media(max-height:800px){.content{padding-top:8px;padding-bottom:7px}.metrics{height:56px}.live{height:calc(100% - 66px);margin-top:8px}.livehead{height:34px;line-height:34px}.grid{height:calc(100% - 34px);padding-top:4px}.cardwrap{padding:3px 5px}.station{font-size:20px}.customer{font-size:14px;margin-top:5px}.state-title{font-size:12px;min-height:28px}.area{padding:4px 5px;font-size:7px}.queue{height:42%}.recent{height:21%}.staff{height:31%}.ph{height:32px;line-height:32px}.pb{height:calc(100% - 32px);padding:7px}.wait-row{min-height:39px;margin-bottom:4px}.banner-copy strong{font-size:13px}.banner-copy span{font-size:9px}}
@media(max-width:1000px){.brand img{max-width:125px}.brandtext{margin-left:10px}.side{width:28%}.main{width:72%}.cardwrap{padding:3px}.customer{padding-right:52px}.banner-mark{display:none}.activation-card{width:520px;margin-left:-260px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* Ajustes v3.32 para navegador de PC a 100% y televisores 1366x768 / 1920x1080. */
@media(max-height:820px){
  .top{height:10%}.content{top:10%;bottom:12.5%}.screen.no-banner .content{bottom:3.8%}.screen.image-banner .content{bottom:17.8%}
  .banner{height:8.7%;bottom:3.8%}.screen.image-banner .banner{height:14%}.footer{height:3.8%}
  .brand{top:15%;height:68%}.brandsub{margin-top:5px}.clock{top:18%}
  .grid.rows-1 .cardwrap{height:56%;min-height:175px;max-height:275px}
  .status{padding-bottom:25px}.attendant{bottom:7px}
}
@media(min-width:1600px) and (min-height:900px){
  .side{width:25%}.main{width:75%}.ph{font-size:12px}.chip{font-size:11px}.wait-person strong{font-size:12px}
  .grid.rows-1 .cardwrap{height:50%;max-height:330px}.grid.rows-1.items-1 .cardwrap{width:36%;max-width:500px}
  .station{font-size:27px}.customer{font-size:18px}.state-title{font-size:15px}.attendant{font-size:10px}
}
@media(max-width:1200px){
  .side{width:27%}.main{width:73%}.grid.rows-1.items-1 .cardwrap{width:44%}.finished-main{max-width:125px}
}

/* v3.35 · desconexión real del dispositivo: nunca dejar datos viejos aparentando estar en vivo. */
.system-overlay.transport-failure{z-index:100;background:rgba(66,10,18,.975)}
.system-overlay.transport-failure>div{top:50%;margin-top:-145px}
.offline-mark{display:inline-block;width:74px;height:74px;line-height:74px;margin-bottom:18px;border:3px solid rgba(255,255,255,.9);border-radius:50%;font-size:46px;font-weight:900;color:#fff}
.system-overlay.transport-failure h2{font-size:46px;letter-spacing:.02em}
.system-overlay.transport-failure p{max-width:820px;margin:0 auto;color:#ffe8e8;line-height:1.5}
.offline-retry{display:block;margin-top:18px;color:#ffd0d0;font-size:14px;font-weight:700}

/* v3.38 · llamado configurable desde Admin */
.call-card[class*="call-design-"]{top:8%;right:7%;bottom:8%;left:7%;padding:clamp(36px,5vh,64px) clamp(34px,5vw,78px);border:0;border-radius:30px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(7px,1.2vh,16px);overflow:hidden;box-shadow:0 28px 90px rgba(0,25,48,.46);background:#fff;color:#17344c}.call-card .call-queue-info{position:absolute;top:20px;left:28px;right:28px;height:auto;min-height:0;margin:0;color:#7b8f9f;font-size:clamp(11px,1vw,16px);font-weight:800;letter-spacing:.04em;text-align:center;z-index:3}.call-card .call-field{display:block;max-width:96%;width:auto;height:auto;min-height:0;margin:0;padding:0;border:0;line-height:1.03;text-align:center;overflow-wrap:anywhere;position:relative;z-index:2}.call-card .call-field.call-size-hero{font-size:clamp(50px,6.5vw,112px);font-weight:950;letter-spacing:-.035em}.call-card .call-field.call-size-large{font-size:clamp(38px,4.5vw,76px);font-weight:920;letter-spacing:-.02em}.call-card .call-field.call-size-medium{font-size:clamp(28px,3vw,52px);font-weight:880}.call-card .call-field.call-size-small{font-size:clamp(16px,1.65vw,28px);font-weight:850;letter-spacing:.12em}.call-card .call-field-headline{text-transform:uppercase;color:#1682ad}.call-card .call-field-name{color:#053f68}.call-card .call-field-ticket{color:#536b7c}.call-card .call-field-desk{margin-top:.13em;padding:.18em .62em;border-radius:999px;background:#075f9d;color:#fff;line-height:1.08}.call-card .call-field-name.call-text-long.call-size-hero{font-size:clamp(44px,5.2vw,88px)}.call-card .call-field-name.call-text-xlong.call-size-hero{font-size:clamp(37px,4.25vw,72px)}
.call-card.call-design-professional{background:linear-gradient(180deg,#fff 0 80%,#f3f8fb 80%);border:1px solid #c6d9e6}.call-card.call-design-professional:before{content:"";position:absolute;left:0;right:0;top:0;height:14px;background:linear-gradient(90deg,#064e80,#12a1ca 58%,#57bd9a)}.call-card.call-design-professional:after{content:"";position:absolute;width:300px;height:300px;right:-150px;bottom:-190px;border-radius:50%;background:rgba(20,136,181,.07)}
.call-card.call-design-focus{background:radial-gradient(circle at 50% 4%,#126a9d,#063b60 48%,#032943);border:1px solid #1c769f;color:#fff}.call-card.call-design-focus .call-field-headline{color:#75daf1}.call-card.call-design-focus .call-field-name,.call-card.call-design-focus .call-field-ticket{color:#fff}.call-card.call-design-focus .call-field-desk{background:#fff;color:#063b60}.call-card.call-design-focus .call-queue-info{color:#b7d7e7}
.call-card.call-design-minimal{background:#fff;border:2px solid #d5e3eb;box-shadow:0 24px 70px rgba(0,42,72,.34)}.call-card.call-design-minimal:before{content:"";position:absolute;left:12%;right:12%;bottom:7%;height:5px;border-radius:999px;background:#0c77ad}.call-card.call-design-minimal .call-field-headline{color:#638092}.call-card.call-design-minimal .call-field-name{color:#173f5c}.call-card.call-design-minimal .call-field-desk{background:#eef6fa;color:#075f9d;border:2px solid #b9d7e6}
.call-card.call-design-classic{background:#fff;border:9px solid #cf3333}.call-card.call-design-classic .call-field-headline{color:#cf3333}.call-card.call-design-classic .call-field-desk{background:transparent;color:#064c7d;border-radius:0;border-top:3px solid #dbe4eb;padding:.26em 0 0;width:86%}
@media(max-width:900px){.call-card[class*="call-design-"]{top:7%;right:5%;bottom:7%;left:5%;padding:32px 24px}.call-card .call-field.call-size-hero{font-size:clamp(44px,11vw,82px)}.call-card .call-field.call-size-large{font-size:clamp(32px,8vw,58px)}.call-card .call-field.call-size-medium{font-size:clamp(25px,6vw,44px)}.call-card .call-field.call-size-small{font-size:clamp(14px,3.2vw,22px)}.call-card .call-field-name.call-text-long.call-size-hero{font-size:clamp(38px,9vw,66px)}.call-card .call-field-name.call-text-xlong.call-size-hero{font-size:clamp(31px,7.2vw,54px)}}

/* KOSLAN MULTIMEDIA / SCREEN DESIGNS — el diseño current conserva las reglas anteriores */
.screen-custom-banner-height .banner{height:var(--banner-height)!important}
.banner-media{position:absolute;inset:0;overflow:hidden;background:#020617;z-index:1}.banner-media.hidden{display:none}.banner-media video,.banner-media iframe{width:100%;height:100%;border:0;object-fit:cover}.banner.has-media .banner-inner{display:none}.banner.has-media .banner-image{display:none}.banner.has-image .banner-media{display:none}
.screen-design-dark{background:#030712}.screen-design-dark .panel,.screen-design-dark .metric{background:#07111f;border-color:#16324b}.screen-design-dark .top{background:#04101c}.screen-design-dark .livetitle,.screen-design-dark .brandtitle{color:#e0f2fe}
.screen-design-airport .metric{border-radius:5px}.screen-design-airport .panel{border-radius:6px}.screen-design-airport .live{border:2px solid rgba(34,211,238,.35)}.screen-design-airport .tag{letter-spacing:.18em}
.screen-design-retail .banner{height:max(var(--banner-height,24vh),24vh)}.screen-design-retail .content{padding-bottom:4px}.screen-design-retail .metrics{transform:scale(.94);transform-origin:center top}
.screen-design-split .layout{grid-template-columns:minmax(270px,34%) 1fr}.screen-design-split .banner{height:max(var(--banner-height,22vh),22vh)}
.call-design-airport{background:#eff6ff!important;border:5px solid #2563eb!important;color:#0f172a!important}.call-design-retail{background:#fff!important;border-left:12px solid #10b981!important}.call-design-dark{background:#020617!important;border:2px solid #22d3ee!important;color:#f8fafc!important;box-shadow:0 0 50px rgba(34,211,238,.18)!important}.call-design-split{background:linear-gradient(90deg,#071724 0 68%,#0e7490 68% 100%)!important;color:#fff!important}
/* Altura personalizada: al crecer el banner, el contenido se retrae para no quedar tapado. */
.screen-custom-banner-height .content{bottom:calc(var(--banner-height) + 3.5%)!important}
.screen-custom-banner-height.image-banner .content{bottom:calc(var(--banner-height) + 3.5%)!important}
.screen-design-retail:not(.screen-custom-banner-height) .content{bottom:27.5%!important}
.screen-design-split:not(.screen-custom-banner-height) .content{bottom:25.5%!important}

/* v3.48 · layouts reales inspirados en señalética de turnos. Current queda intacto. */
.screen-design-airport .content,.screen-design-board .content,.screen-design-command .content{bottom:17%}
.screen-design-airport .layout,.screen-design-board .layout,.screen-design-command .layout{display:grid;height:100%;gap:12px;grid-template-areas:"main side";grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr)}
.screen-design-airport .main,.screen-design-board .main,.screen-design-command .main{grid-area:main;width:auto;display:block}.screen-design-airport .side,.screen-design-board .side,.screen-design-command .side{grid-area:side;width:auto;padding:0;display:grid;grid-template-rows:1.15fr .8fr .9fr;gap:10px}.screen-design-airport .side .panel,.screen-design-board .side .panel,.screen-design-command .side .panel{height:auto!important;margin:0}.screen-design-airport .metrics,.screen-design-board .metrics{height:58px}.screen-design-airport .live,.screen-design-board .live{height:calc(100% - 68px)}.screen-design-airport .grid.rows-1.items-1 .cardwrap,.screen-design-board .grid.rows-1.items-1 .cardwrap{width:72%;height:72%;max-width:none}.screen-design-airport .grid.rows-1.items-1 .station,.screen-design-board .grid.rows-1.items-1 .station{font-size:42px}.screen-design-airport .grid.rows-1.items-1 .customer,.screen-design-board .grid.rows-1.items-1 .customer{font-size:24px}.screen-design-airport .grid.rows-1.items-1 .desk,.screen-design-board .grid.rows-1.items-1 .desk{font-size:13px;padding:8px 12px;max-width:140px}.screen-design-airport .banner,.screen-design-board .banner,.screen-design-command .banner{height:13.5%}

.screen-design-retail .banner,.screen-design-media_top .banner{top:10.5%;bottom:auto;height:34%!important;border-top:0;border-bottom:1px solid #b8cedd}.screen-design-retail .content,.screen-design-media_top .content{top:45.5%;bottom:3.5%!important;padding-top:10px}.screen-design-retail .layout,.screen-design-media_top .layout{display:grid;grid-template-columns:minmax(260px,30%) 1fr;gap:12px}.screen-design-retail .side,.screen-design-media_top .side{width:auto;padding:0;display:grid;grid-template-rows:1fr 1fr}.screen-design-retail .staff,.screen-design-media_top .staff{display:none}.screen-design-retail .queue,.screen-design-retail .recent,.screen-design-media_top .queue,.screen-design-media_top .recent{height:auto;margin:0}.screen-design-retail .main,.screen-design-media_top .main{width:auto}.screen-design-retail .metrics,.screen-design-media_top .metrics{height:52px}.screen-design-retail .live,.screen-design-media_top .live{height:calc(100% - 62px)}

.screen-design-split .content{right:37%;bottom:3.5%!important}.screen-design-split .banner{left:64%;right:0;top:10.5%;bottom:3.5%;height:auto!important;border-left:1px solid #b8cedd;border-top:0}.screen-design-split .layout{display:grid;grid-template-columns:minmax(220px,28%) 1fr;gap:11px}.screen-design-split .side{width:auto;padding:0}.screen-design-split .main{width:auto}.screen-design-split .staff{display:none}.screen-design-split .queue{height:55%}.screen-design-split .recent{height:calc(45% - 10px)}.screen-design-split .metrics{height:54px}.screen-design-split .live{height:calc(100% - 64px)}

.screen-design-media_full .banner{top:10.5%;bottom:20%;height:auto!important;border-top:0}.screen-design-media_full .content{top:auto;bottom:3.5%!important;height:15%;padding:7px 12px}.screen-design-media_full .side,.screen-design-media_full .metrics,.screen-design-media_full .livehead{display:none}.screen-design-media_full .layout,.screen-design-media_full .main{display:block;width:100%;height:100%}.screen-design-media_full .live{height:100%;margin:0;border:0;background:transparent;box-shadow:none}.screen-design-media_full .grid{height:100%;padding:0;display:flex!important;gap:8px}.screen-design-media_full .cardwrap{height:100%!important;width:calc(33.333% - 6px)!important;padding:0!important}.screen-design-media_full .card{border-left-width:5px}.screen-design-media_full .cardtop{height:100%;padding:10px 12px}.screen-design-media_full .status{display:none}.screen-design-media_full .station{font-size:24px}.screen-design-media_full .customer{font-size:13px}.screen-design-media_full .desk{font-size:9px}

.screen-design-command{background:#020817}.screen-design-command .top{background:#03111f;border-bottom-color:#22d3ee}.screen-design-command .panel,.screen-design-command .metric{background:#061522;border-color:#16384d;color:#e8f8ff}.screen-design-command .ph,.screen-design-command .livehead{background:#071b2b;border-color:#15384e;color:#9bdcf2}.screen-design-command .station,.screen-design-command .livetitle,.screen-design-command .metric strong{color:#67e8f9}.screen-design-command .customer,.screen-design-command .state-title{color:#e8f8ff}.screen-design-command .status{background:#081a28;border-color:#15384e}.screen-design-command .wait-row,.screen-design-command .chip{background:#081b2b;border-color:#17425b;color:#d9f6ff}.screen-design-command .banner{background:#071724;border-color:#16384d;color:#e8f8ff}

/* Sin publicidad, los layouts multimedia vuelven a ocupar el alto útil completo. */
.screen-design-retail.no-banner .content,.screen-design-media_top.no-banner .content{top:10.5%;bottom:3.5%!important}.screen-design-split.no-banner .content{right:0;bottom:3.5%!important}.screen-design-media_full.no-banner .content{top:10.5%;height:auto;bottom:3.5%!important}.screen-design-media_full.no-banner .side,.screen-design-media_full.no-banner .metrics,.screen-design-media_full.no-banner .livehead{display:initial}.screen-design-media_full.no-banner .layout{display:table}.screen-design-media_full.no-banner .side,.screen-design-media_full.no-banner .main{display:table-cell}.screen-design-media_full.no-banner .side{width:24%;padding-right:12px}.screen-design-media_full.no-banner .main{width:76%}.screen-design-media_full.no-banner .metrics{display:table}.screen-design-media_full.no-banner .livehead{display:block}.screen-design-media_full.no-banner .live{height:calc(100% - 76px);margin-top:10px;background:#fff;border:1px solid #cbdbe6}.screen-design-media_full.no-banner .grid{height:calc(100% - 40px);display:block!important;padding:8px 7px 6px}.screen-design-media_full.no-banner .cardwrap{display:inline-block;height:50%!important;width:33.333%!important;padding:5px 6px!important}.screen-design-media_full.no-banner .status{display:block}

/* v3.48 · publicidad opcional durante el llamado */
.call-ad{position:absolute;overflow:hidden;border-radius:20px;background:#071724;box-shadow:0 14px 42px rgba(0,0,0,.22);z-index:5}.call-ad img{display:block;width:100%;height:100%;object-fit:cover}.call-ad-right{right:3.5%;top:8%;bottom:8%;width:34%}.call-ad-bottom{left:5%;right:5%;bottom:4%;height:25%}.call-card.has-call-ad.call-ad-right{padding-right:40%;align-items:center}.call-card.has-call-ad.call-ad-bottom{padding-bottom:31%}.call-card.has-call-ad.call-ad-right .call-field{max-width:90%}.call-card.has-call-ad.call-ad-bottom .call-field{max-width:92%}

/* v3.49 · personalización visual administrable. Se activa solo con screen-editor-custom. */
.screen.screen-editor-custom{background:var(--screen-bg);color:var(--screen-text)}
.screen.screen-editor-custom .top{background:var(--screen-header-bg);border-bottom-color:var(--screen-accent)}
.screen.screen-editor-custom.screen-design-current .top{height:var(--screen-header-h)}
.screen.screen-editor-custom.screen-design-current .content{top:var(--screen-header-h)}
.screen.screen-editor-custom.screen-design-current .side{width:var(--screen-side-w);padding-right:var(--screen-gap)}
.screen.screen-editor-custom.screen-design-current .main{width:calc(100% - var(--screen-side-w))}
.screen.screen-editor-custom .layout{gap:var(--screen-gap)}
.screen.screen-editor-custom .panel,.screen.screen-editor-custom .metrics,.screen.screen-editor-custom .metric,.screen.screen-editor-custom .card,.screen.screen-editor-custom .wait-row,.screen.screen-editor-custom .chip{border-radius:var(--screen-radius)}
.screen.screen-editor-custom .panel,.screen.screen-editor-custom .metrics,.screen.screen-editor-custom .metric,.screen.screen-editor-custom .card{background:var(--screen-panel-bg)}
.screen.screen-editor-custom .ph,.screen.screen-editor-custom .livetitle,.screen.screen-editor-custom .metric strong,.screen.screen-editor-custom .station{color:var(--screen-primary)}
.screen.screen-editor-custom .tag,.screen.screen-editor-custom .ticket-badge{background:var(--screen-accent)}
.screen.screen-editor-custom .card{border-left-color:var(--screen-accent)}
.screen.screen-editor-custom .customer,.screen.screen-editor-custom .state-title{color:var(--screen-text)}
.screen.screen-editor-custom .station{font-size:var(--screen-station-size)}
.screen.screen-editor-custom .customer{font-size:var(--screen-customer-size)}
.screen.screen-editor-custom .state-title{font-size:var(--screen-state-size)}
.screen.screen-editor-custom .metric strong{font-size:var(--screen-metric-size)}
.screen.screen-editor-custom .footer{background:var(--screen-header-bg)}
.screen.screen-editor-custom .banner{background:var(--screen-panel-bg);border-color:var(--screen-accent)}
.screen.screen-editor-custom .banner-symbol{color:var(--screen-accent)}
.screen.screen-editor-custom .banner-copy strong{color:var(--screen-text)}
.screen.screen-editor-custom .banner-copy small{color:var(--screen-primary)}
/* v3.49 · adapta cabecera/banner personalizado también a plantillas claras nuevas. */
.screen.screen-editor-custom:not(.screen-design-current) .top{height:var(--screen-header-h)}
.screen.screen-editor-custom.screen-design-airport .content,.screen.screen-editor-custom.screen-design-board .content{top:var(--screen-header-h)}
.screen.screen-editor-custom.screen-design-retail .banner,.screen.screen-editor-custom.screen-design-media_top .banner{top:var(--screen-header-h)}
.screen.screen-editor-custom.screen-design-retail:not(.screen-custom-banner-height) .content,.screen.screen-editor-custom.screen-design-media_top:not(.screen-custom-banner-height) .content{top:calc(var(--screen-header-h) + 35%)}
.screen.screen-editor-custom.screen-custom-banner-height.screen-design-retail .banner,.screen.screen-editor-custom.screen-custom-banner-height.screen-design-media_top .banner{height:var(--banner-height)!important}
.screen.screen-editor-custom.screen-custom-banner-height.screen-design-retail .content,.screen.screen-editor-custom.screen-custom-banner-height.screen-design-media_top .content{top:calc(var(--screen-header-h) + var(--banner-height) + 1%)!important}
.screen.screen-editor-custom.screen-design-split .banner{top:var(--screen-header-h)}
.screen.screen-editor-custom.screen-design-split .content{top:var(--screen-header-h)}
.screen.screen-editor-custom.screen-design-media_full .banner{top:var(--screen-header-h)}
/* v3.50 · publicidad multimedia durante llamados */
.call-ad video,.call-ad iframe{display:none;width:100%;height:100%;background:#000}.call-ad video{object-fit:cover}.call-ad iframe{border:0}.call-ad.media-video video,.call-ad.media-remote_video video{display:block}.call-ad.media-youtube iframe{display:block}.call-ad.media-video img,.call-ad.media-remote_video img,.call-ad.media-youtube img{display:none}.call-ad.fit-contain img,.call-ad.fit-contain video{object-fit:contain;background:#071724}.call-ad.fit-cover img,.call-ad.fit-cover video{object-fit:cover}

/* v3.52 · tiempos compactos en tarjetas */
.timing-row{position:absolute;left:12px;right:12px;bottom:21px;display:flex;gap:5px;align-items:center;min-width:0}.timing-pill{display:inline-flex;align-items:center;gap:3px;max-width:49%;padding:2px 5px;border:1px solid #d7e5ed;border-radius:999px;background:#fff;color:#60798b;font-size:7.5px;font-weight:800;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.timing-pill b{color:#164c6d;font-size:8px}.timing-service{border-color:#cce8da;background:#f4fbf7;color:#3f7259}.timing-service b{color:#17704a}.status{padding-bottom:39px}.attendant{bottom:6px}
/* Texto y publicidad del llamado ocupan zonas independientes. */
.call-card .call-copy{position:absolute;top:9%;right:7%;bottom:9%;left:7%;width:auto!important;height:auto!important;margin:0!important;padding:0!important;border:0!important;color:inherit!important;font-size:inherit!important;display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:clamp(9px,1.35vh,18px);min-width:0;min-height:0;z-index:2}.call-card.has-call-ad.call-ad-right .call-copy{right:47%}.call-card.has-call-ad.call-ad-bottom .call-copy{bottom:35%}.call-card.has-call-ad.call-ad-right,.call-card.has-call-ad.call-ad-bottom{padding:0}.call-card .call-copy .call-queue-info{top:0;left:0;right:0}.call-ad{z-index:3}.call-ad img{background:#fff}

.grid.rows-3 .timing-row{left:8px;right:8px;bottom:12px;gap:3px}.grid.rows-3 .timing-pill{padding:1px 3px;font-size:5.8px}.grid.rows-3 .timing-pill b{font-size:6.2px}.grid.rows-3 .attendant{bottom:2px}.grid.rows-3 .status{padding-bottom:26px}


/* TV v3.60 · escala estable para 16:9 y distancia de visualización */
.screen:not(.pc-screen) .call-card .call-field.call-size-hero{font-size:clamp(64px,5.8vw,118px)}
.screen:not(.pc-screen) .call-card .call-field.call-size-large{font-size:clamp(46px,4.1vw,82px)}
.screen:not(.pc-screen) .call-card .call-field.call-size-medium{font-size:clamp(34px,2.8vw,56px)}
.screen:not(.pc-screen) .call-card .call-field.call-size-small{font-size:clamp(18px,1.55vw,30px)}
@media(min-width:1600px){.screen:not(.pc-screen) .brandtitle{font-size:clamp(27px,1.55vw,36px)}.screen:not(.pc-screen) .station{font-size:clamp(26px,1.55vw,34px)}.screen:not(.pc-screen) .customer{font-size:clamp(17px,1.05vw,23px)}}

/* v3.62 fullscreen kiosk persistence */
html:fullscreen,html:-webkit-full-screen,html:-moz-full-screen{width:100%;height:100%;overflow:hidden;background:#000}html:fullscreen body,html:-webkit-full-screen body,html:-moz-full-screen body{width:100%;height:100%;overflow:hidden;margin:0}
