:root {
            --bg:          #060b14;
            --panel:       #0c1525;
            --card:        #101d30;
            --border:      #1a2e4a;
            --accent:      #1d6fdb;
            --cyan:        #00c9e8;
            --green:       #00e08c;
            --yellow:      #f0b429;
            --text:        #d6e8ff;
            --muted:       #3d5a80;
            --calling-glow: rgba(0,201,232,.2);
        }

        * { box-sizing: border-box; margin: 0; padding: 0; }

        body {
            background: var(--bg);
            font-family: 'DM Sans', sans-serif;
            color: var(--text);
            min-height: 100vh;
            display: flex;
            flex-direction: column;
        }

        /* scan-line overlay */
        body::after {
            content: '';
            position: fixed;
            inset: 0;
            background: repeating-linear-gradient(
                0deg,
                transparent,
                transparent 3px,
                rgba(0,0,0,.07) 3px,
                rgba(0,0,0,.07) 4px
            );
            pointer-events: none;
            z-index: 999;
        }

        /* ─── TOP BAR ─── */
        .topbar {
            background: var(--panel);
            border-bottom: 1px solid var(--border);
            padding: 0 2.5rem;
            height: 72px;
            display: flex;
            align-items: center;
            justify-content: space-between;
            position: relative;
            z-index: 10;
        }
        .topbar::after {
            content: '';
            position: absolute;
            bottom: 0; left: 0; right: 0;
            height: 1px;
            background: linear-gradient(90deg, transparent, var(--cyan), transparent);
            opacity: .4;
        }

        .tb-brand {
            font-family: 'Barlow Condensed', sans-serif;
            font-weight: 800;
            font-size: 1.5rem;
            letter-spacing: .08em;
            color: var(--text);
            display: flex;
            align-items: center;
            gap: .75rem;
        }
        .tb-brand span {
            color: var(--cyan);
        }

        .tb-clock {
            font-family: 'Barlow Condensed', sans-serif;
            font-size: 2.2rem;
            font-weight: 700;
            letter-spacing: .12em;
            color: var(--cyan);
            text-shadow: 0 0 20px rgba(0,201,232,.5);
        }

        .tb-date {
            font-size: .8rem;
            color: var(--muted);
            text-align: right;
            text-transform: uppercase;
            letter-spacing: .08em;
        }

        /* ─── LLAMADO AHORA (hero) ─── */
        .calling-section {
            background: var(--panel);
            border-bottom: 1px solid var(--border);
            padding: 1.25rem 2.5rem;
            /* Altura fija: la sección nunca crece sin importar cuántos puestos haya */
            flex-shrink: 0;
        }

        .calling-label {
            font-family: 'Barlow Condensed', sans-serif;
            font-size: .75rem;
            font-weight: 600;
            letter-spacing: .18em;
            color: var(--muted);
            text-transform: uppercase;
            margin-bottom: .85rem;
            display: flex;
            align-items: center;
            gap: .75rem;
        }
        /* contador de puestos activos junto al label */
        .calling-count {
            background: rgba(0,201,232,.12);
            border: 1px solid rgba(0,201,232,.25);
            color: var(--cyan);
            font-size: .65rem;
            font-weight: 700;
            letter-spacing: .08em;
            padding: .15rem .55rem;
            border-radius: 20px;
        }

        /* ── Scroll horizontal: siempre 1 fila, se desliza si hay muchos ── */
        .calling-track {
            display: flex;
            flex-direction: row;
            gap: 1rem;
            overflow-x: auto;
            overflow-y: hidden;
            padding-bottom: .5rem;   /* espacio para la scrollbar */
            /* ocultar scrollbar visualmente pero mantener funcionalidad */
            scrollbar-width: none;
        }
        .calling-track::-webkit-scrollbar { display: none; }

        .calling-card {
            background: var(--card);
            border: 1px solid var(--cyan);
            border-radius: 14px;
            padding: 1.1rem 1.4rem;
            display: flex;
            align-items: center;
            gap: 1.1rem;
            position: relative;
            overflow: hidden;
            box-shadow: 0 0 30px var(--calling-glow), inset 0 1px 0 rgba(0,201,232,.1);
            /* Ancho fijo por tarjeta: se ven bien 1 o 20 */
            min-width: 230px;
            max-width: 280px;
            flex-shrink: 0;
        }
        .calling-card::before {
            content: '';
            position: absolute;
            top: 0; left: 0; right: 0;
            height: 2px;
            background: linear-gradient(90deg, transparent, var(--cyan), transparent);
            animation: shimmer 2.5s infinite;
        }
        @keyframes shimmer {
            0%   { opacity: .3; }
            50%  { opacity: 1; }
            100% { opacity: .3; }
        }

        .calling-ticker {
            font-family: 'Barlow Condensed', sans-serif;
            font-size: 3rem;
            font-weight: 800;
            color: var(--cyan);
            line-height: 1;
            text-shadow: 0 0 24px rgba(0,201,232,.5);
            min-width: 4.5rem;
        }
        .calling-info { flex: 1; min-width: 0; }
        .calling-puesto {
            font-size: .72rem;
            text-transform: uppercase;
            letter-spacing: .12em;
            color: var(--muted);
        }
        .calling-puesto-num {
            font-family: 'Barlow Condensed', sans-serif;
            font-size: 1.3rem;
            font-weight: 700;
            color: var(--text);
            line-height: 1.1;
        }
        .calling-motivo {
            font-size: .78rem;
            color: var(--muted);
            margin-top: .2rem;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }
        .calling-status-dot {
            width: 10px; height: 10px;
            border-radius: 50%;
            background: var(--cyan);
            box-shadow: 0 0 8px var(--cyan);
            animation: pulse 1.5s infinite;
            flex-shrink: 0;
        }
        @keyframes pulse {
            0%, 100% { transform: scale(1);   opacity: 1; }
            50%       { transform: scale(1.4); opacity: .6; }
        }

        /* empty calling */
        .calling-empty {
            width: 100%;
            text-align: center;
            padding: 1.5rem 2rem;
            color: var(--muted);
            font-size: .85rem;
            font-style: italic;
            flex-shrink: 0;
        }

        /* ─── MAIN CONTENT ─── */
        .content-area {
            flex: 1;
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 0;
            overflow: hidden;
        }

        .col-panel {
            padding: 1.5rem 2rem;
            overflow-y: auto;
        }
        .col-panel:first-child {
            border-right: 1px solid var(--border);
        }

        .col-header {
            display: flex;
            align-items: center;
            justify-content: space-between;
            margin-bottom: 1rem;
        }
        .col-title {
            font-family: 'Barlow Condensed', sans-serif;
            font-size: 1.1rem;
            font-weight: 700;
            letter-spacing: .1em;
            text-transform: uppercase;
            display: flex;
            align-items: center;
            gap: .6rem;
        }
        .col-count {
            background: var(--card);
            border: 1px solid var(--border);
            border-radius: 20px;
            font-family: 'Barlow Condensed', sans-serif;
            font-size: .95rem;
            font-weight: 700;
            padding: .15rem .7rem;
            color: var(--text);
        }

        /* ─── TICKET ROWS ─── */
        .ticket-list { display: flex; flex-direction: column; gap: .6rem; }

        .ticket-row {
            background: var(--card);
            border: 1px solid var(--border);
            border-radius: 10px;
            padding: .85rem 1.1rem;
            display: flex;
            align-items: center;
            gap: 1rem;
            transition: border-color .2s;
        }
        .ticket-row:hover { border-color: var(--accent); }

        .tr-codigo {
            font-family: 'Barlow Condensed', sans-serif;
            font-size: 1.4rem;
            font-weight: 700;
            min-width: 3.5rem;
            letter-spacing: .04em;
        }
        .tr-info { flex: 1; min-width: 0; }
        .tr-motivo {
            font-size: .82rem;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }
        .tr-time {
            font-size: .7rem;
            color: var(--muted);
            margin-top: .15rem;
        }
        .tr-badge {
            font-size: .65rem;
            font-weight: 600;
            letter-spacing: .08em;
            text-transform: uppercase;
            padding: .25rem .6rem;
            border-radius: 4px;
        }

        /* estatus colors */
        .badge-pending  { background: rgba(240,180,41,.12); color: var(--yellow); border: 1px solid rgba(240,180,41,.3); }
        .badge-calling  { background: rgba(0,201,232,.12);  color: var(--cyan);   border: 1px solid rgba(0,201,232,.3); }
        .badge-attending{ background: rgba(0,224,140,.12);  color: var(--green);  border: 1px solid rgba(0,224,140,.3); }
        .badge-done     { background: rgba(100,116,139,.1); color: var(--muted);  border: 1px solid rgba(100,116,139,.2); }

        .ticket-empty {
            text-align: center;
            padding: 3rem 1rem;
            color: var(--muted);
            font-size: .82rem;
        }
        .ticket-empty i { font-size: 1.8rem; display: block; margin-bottom: .5rem; opacity: .3; }

        /* ─── FOOTER ─── */
        .footer {
            background: var(--panel);
            border-top: 1px solid var(--border);
            padding: .6rem 2.5rem;
            display: flex;
            justify-content: space-between;
            align-items: center;
            font-size: .7rem;
            color: var(--muted);
        }

        ::-webkit-scrollbar { width: 4px; }
        ::-webkit-scrollbar-track { background: transparent; }
        ::-webkit-scrollbar-thumb { background: var(--border); border-radius: 2px; }