:root{font-family:system-ui,sans-serif;background:#f5f7fb;color:#10263d}*{box-sizing:border-box}main{max-width:1150px;margin:auto;padding:24px}header{background:#1d426f;color:white;padding:24px;border-radius:16px}h1{margin:0}section{margin-top:20px;background:white;border-radius:16px;padding:20px;box-shadow:0 4px 18px #17345217}input,select,button{font:inherit;padding:10px;border:1px solid #b8c9dc;border-radius:9px}button{background:#1769aa;color:white;border:0;cursor:pointer}button:hover{filter:brightness(.94)}button.secondary{background:#e7eef7;color:#14375e}button.danger{background:#a92c43}.tools,.toolbar,.tabs{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}.toolbar{justify-content:space-between}.tabs{border-bottom:1px solid #d7e2ee;padding:10px 0}.tab{background:#e8eff7;color:#14375e}.tab.active{background:#1769aa;color:white}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:10px}.pc{background:#eef4fb;border:1px solid #cbdced;padding:13px;border-radius:10px}.pc.live{background:#e1f6ec;border-color:#6fc699}.pc small{display:block;margin-top:7px;color:#516478}.pc label{display:block;cursor:pointer}.pc.selected{outline:3px solid #347bbe}.lab-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(205px,1fr));gap:12px}.lab-card{background:#eef4fb;border:1px solid #bcd2e6;padding:15px;border-radius:12px}.lab-card strong{display:block;margin-bottom:8px}.note{color:#53657a}.pane h2{margin-top:12px}#auth input{display:block;margin-bottom:10px;max-width:320px;width:100%}#message:not(:empty){border-left:3px solid #347bbe;padding:10px 12px;background:#edf4fc}
.control-panel{border:1px solid #cbdced;border-radius:12px;padding:14px;margin:12px 0;background:#f8fafc}.pc.paused{background:#fff4e5;border:2px solid #a75b00}.pc.paused small{color:#783b00}

.lab-card.lab-active{outline:3px solid #1867aa;background:#e3f2fc}.lab-actions{display:flex;gap:7px;margin-top:13px;flex-wrap:wrap}.lab-actions button{font-size:.9rem;padding:8px 10px}.lab-card{min-height:118px}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #e99c35;outline-offset:2px}

/* v0.5.3: distinguir claramente asignación, selección y estado */
.lab-card{position:relative;background:linear-gradient(90deg,color-mix(in srgb,var(--lab-color) 17%,white),#f7fbff 88%)}
.lab-card.lab-active{outline:3px solid var(--lab-color);background:linear-gradient(90deg,color-mix(in srgb,var(--lab-color) 28%,white),#f7fbff 95%)}
.lab-card.lab-active::after{content:'✓ Lab seleccionado';display:block;margin-top:10px;color:#173452;font-size:.8rem;font-weight:700}
.pc{background:linear-gradient(90deg,color-mix(in srgb,var(--lab-color) 13%,white),#f4f8fc 80%)}
.pc.pc-in-destination{border-top:2px solid var(--lab-color)}
.pc.selected{outline:3px solid #2269aa}
.pc.live{background:linear-gradient(90deg,#e2f6ed,#f7fcf9)}
#colorPreview{font-size:.85rem}

/* v0.9.1 — Quick News demo */
.quick-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.quick-panel{background:#f9fbfe;border:1px solid #b7cde2;box-shadow:none}.quick-panel-header{display:flex;justify-content:space-between;align-items:center;gap:8px}.quick-event{padding:10px;border-left:4px solid #357ab3;background:white;margin:8px 0;border-radius:7px}.quick-event small{display:block;color:#56657a;margin-top:4px}.quick-toast{position:fixed;right:20px;bottom:22px;z-index:15;max-width:min(420px,85vw);padding:16px;border-radius:10px;color:#fff;background:#1c4267;box-shadow:0 4px 20px #0004}.quick-toast-close{position:fixed;right:20px;bottom:90px;z-index:16;font-size:.8rem} .quick-toast[hidden]{display:none}.quick-panel[hidden]{display:none}

body:has(.quick-toast[hidden]) .quick-toast-close{display:none}

/* v0.9.2 — identidad demo y avisos por equipo */
#monitor #grid .pc{position:relative;min-height:135px}
#monitor #grid .pc .v092-student{font-size:.81rem;font-weight:650;color:#203f58;line-height:1.3;margin-top:7px;overflow-wrap:anywhere}
#monitor #grid .pc .v092-alert{font-size:.74rem;padding:5px 7px;margin-top:7px;background:#e6eef8;color:#1c4267;border:1px solid #a8c3e1;border-radius:7px;text-align:left}
#monitor #grid .pc .v092-alert.v092-warning{background:#fff0c9;border-color:#dfab3f;color:#7d4a00}
.quick-ack{font-size:.78rem;padding:6px 9px;margin-top:7px}
.quick-event{border-left-color:#dfab3f}
#monitor #grid .pc:has(.presence-status.online){background:#e5f7ed!important;border:1px solid #59b987!important;border-left:6px solid var(--lab-color)!important}
#monitor #grid .pc:has(.presence-status.offline){background:#fff0ef!important;border:1px solid #d57b76!important;border-left:6px solid var(--lab-color)!important}
#monitor #grid .pc:has(.presence-status.missing){background:#f2f4f7!important;border:1px solid #c7cdd4!important;border-left:6px solid var(--lab-color)!important}
#monitor #grid .pc.selected{outline:3px solid #1769aa;outline-offset:2px}

/* v0.9.5: identidad validada en demo, distinta de presencia del agente */
#monitor #grid .pc .v092-student {display:block;font-weight:650;line-height:1.3;margin-top:5px;overflow-wrap:anywhere;color:#174164}
#monitor #grid .pc.v095-verified .v092-student {color:#155e51}
#monitor #grid .pc .v092-alert {cursor:pointer}
