:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}#maestro{min-height:100dvh;box-sizing:border-box}#maestro .header{display:flex;justify-content:space-between;align-items:center;width:100%;height:60px;padding:10px 20px;margin:0;font-size:.8em;box-sizing:border-box}#maestro .header .group-left{display:flex;flex-direction:column}#maestro .header .group-left .logo{height:40px}#maestro .header .group-left .logo img{width:auto;height:100%}#maestro .header .group-right{display:flex;flex-direction:row}#maestro .header .group-right .status-value{text-align:right}#maestro .group{display:flex;flex-direction:row;flex-wrap:wrap;align-items:stretch;min-height:calc(100dvh - 60px);box-sizing:border-box}#maestro .group .section{display:flex;flex-direction:column;justify-content:space-between;border:1px solid #ececec;box-sizing:border-box}#maestro .group .section.left{width:40%}#maestro .group .section.right{width:60%}#maestro .group .section .cues-viewer{height:400px}#maestro .group .section .building-view{flex:3}#maestro .group .section .clients-list{flex:1}#maestro .group .section .clients-list .clients-list-header{display:flex;flex-direction:row;justify-content:space-between}@media (max-width: 700px){#maestro .group .section .clients-list .clients-list-header{flex-direction:column;margin-bottom:20px}}#maestro .group .section .clients-list .clients-list-header h2{font-size:18px}#maestro .group .section .clients-list .clients-list-header .filters{display:flex;flex-direction:row;align-items:center;gap:5px}#maestro .group .section .clients-list .clients-list-header .filters .filter{background:#ececec;color:#4e4e4e;padding:2px 10px;border-radius:10px;font-size:12px;font-weight:700;cursor:pointer}#maestro .group .section .clients-list .clients-list-header .filters .filter.active{background:#d6d6d6;color:#000}#maestro .group .section .clients-list .clients-list-header .filters .filter:hover{background:#d6d6d6}#maestro.prep-mode .header{background:#ececec}#maestro.performance-mode .header{background:#a5efa6}.time-controller{display:flex;flex-direction:column;gap:10px;min-height:200px}.time-controller button{padding:0;transition:background .3s ease,border .3s ease}.time-controller .row{display:flex;flex:auto;align-items:center;justify-content:space-around}.time-controller .row .timestamp-wrapper{text-align:center}.time-controller .row .timestamp-wrapper .timestamp-value{font-size:1.7em;font-variant-numeric:tabular-nums}.time-controller .row .timestamp-wrapper .offset-value{font-variant-numeric:tabular-nums}.time-controller .row .timestamp-wrapper .timestamp-label{font-size:.7em}.time-controller .row .offset-plus,.time-controller .row .offset-minus{margin:0 15px;width:30px;height:30px;border-radius:50%;border:1px solid black}.time-controller .row .offset-plus:hover,.time-controller .row .offset-minus:hover{background:#d3d3d3;border-color:#d3d3d3}.time-controller .row .controls{display:flex;justify-content:center;width:75px}.time-controller .row .controls button{background:#000;color:#fff;width:75px;height:75px;border-radius:50%}.time-controller .row .controls button.secondary{background:gray;width:50px;height:50px}.time-controller .row .controls button:hover{background:#d3d3d3;border-color:#d3d3d3}.clients-list{display:flex;flex-direction:column;position:relative;padding:10px 10px 0}.clients-list .inner{height:100%}.clients-list .scrollable{display:inline-block;position:relative;width:100%;height:100%;flex:1;overflow-y:scroll}.clients-list table{position:absolute;width:100%;border-collapse:collapse;border-left:2px solid #ececec}.clients-list table thead{background:#ececec;position:sticky;top:0}.clients-list table tr{border-bottom:1px solid #ececec}.clients-list table td,.clients-list table th{padding:10px;text-align:left;font-variant-numeric:tabular-nums}.clients-list table button{padding:10px 8px;background:#d6d6d6}.message-modal{position:fixed;display:flex;align-items:center;justify-content:center;top:0;left:0;height:100dvh;width:100%;z-index:1000}.message-modal .message-modal-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#ececec99}.message-modal .message-modal-content{position:relative;background-color:#fff;border-radius:15px;min-width:200px;width:min(80%,600px);border:1px solid #000000;overflow:hidden}.message-modal .message-modal-content .modal-title{background:#ececec;padding:20px;text-align:center}.message-modal .message-modal-content .modal-body{padding:20px}.message-modal .message-modal-content .messages{display:flex;flex-direction:column;gap:10px}.message-modal .message-modal-content .messages .messages-group{display:flex;flex-direction:row;align-items:stretch;justify-content:stretch;gap:10px}.message-modal .message-modal-content .messages .message-all-text{flex-grow:1}.message-modal .message-modal-content input[type=text]{padding:5px 10px}.message-modal .message-modal-content button{text-transform:uppercase;font-weight:700;background:#d3d3d3}.message-modal .message-modal-content button.danger{background:#bd070a;color:#fff;margin:0 auto}.tech-upcoming-cues{display:flex;flex-direction:column;align-items:center;gap:0;margin:20px 0}.tech-upcoming-cues .timestamp-value{font-size:2.5em;font-variant-numeric:tabular-nums}.tech-upcoming-cues .timestamp-label{font-size:.7em}.tech-upcoming-cues ul{background:#ececec;display:flex;flex-direction:row;list-style-type:none;margin:0;padding:0;gap:5px}.tech-upcoming-cues ul li{color:#a2a2a2;display:flex;flex-direction:column;align-items:center;padding:10px;gap:5px}.tech-upcoming-cues ul li .cue-id{font-size:.7em;font-weight:700}.tech-upcoming-cues ul li .cue-icon{display:flex;flex-direction:row;justify-content:center;align-items:center;width:30px;height:30px;border-radius:50%;background:#d3d3d3;color:#fff}.tech-upcoming-cues ul li .cue-timestamp{font-size:.7em}.tech-upcoming-cues ul li.passed{color:#a2a2a2}.tech-upcoming-cues ul li.passed .cue-icon{background:#a2a2a2}.tech-upcoming-cues ul li.target-active{color:#0cb82f}.tech-upcoming-cues ul li.target-active .cue-icon{background:#0cb82f}.tech-upcoming-cues ul li.target-inactive{color:#bd070a}.tech-upcoming-cues ul li.target-inactive .cue-icon{background:#bd070a}.tech-upcoming-cues ul li.to-come{color:#305bac}.tech-upcoming-cues ul li.to-come .cue-icon{background:#305bac}.cues-viewer{background:#ececec;overflow:hidden;height:250px;position:relative;width:100%;max-width:640px;margin:0 auto}.cues-viewer .current-time-marker{display:inline-block;width:1px;height:90%;background-color:#000;position:absolute;top:0;left:30px;z-index:2}.cues-viewer .current-time-marker:before{content:"";position:absolute;top:0;left:50%;transform:translate(calc(-50% - 1px));width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-top:14px solid #000000}.cues-viewer .timeline{position:relative;height:100%;top:0;left:30px;transform:translate(30px)}.cues-viewer .timeline-background-bars{height:100%;position:absolute;top:0;z-index:0}.cues-viewer .timeline-background-bars .timeline-bar{display:inline-block;width:1px;height:90%;background-color:#d6d6d6;position:absolute;top:0}.cues-viewer .timeline-background-bars .timeline-bar.with-label{background-color:#a2a2a2}.cues-viewer .timeline-background-bars .timeline-bar.with-label span{position:absolute;top:100%;left:50%;transform:translate(-50%);font-size:12px;white-space:nowrap}.cues-viewer .timeline-cues-container{height:100%;position:relative;top:0;z-index:3}.cues-viewer .timeline-cues-container .cues-group{position:absolute;top:0;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:40px;transform:translate(calc(-50% + 1px));z-index:0}.cues-viewer .timeline-cues-container .cues-group[data-mode=tech][data-group-index=even] .cue{margin-top:-40px}.cues-viewer .timeline-cues-container .cues-group[data-mode=tech][data-group-index=odd] .cue{margin-top:40px}.cues-viewer .timeline-cues-container .cues-group[data-mode=maestro][data-group-index=even] .cue{margin-top:-80px}.cues-viewer .timeline-cues-container .cues-group[data-mode=maestro][data-group-index=odd] .cue{margin-top:80px}.cues-viewer .timeline-cues-container .cues-group.target-active:not(.others),.cues-viewer .timeline-cues-container .cues-group.target-inactive:not(.others){z-index:10}.cues-viewer .timeline-cues-container .cues-group .cue-arrow{position:absolute;top:0;left:50%;transform:translate(-50%);width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-top:14px solid #000000}.cues-viewer .timeline-cues-container .cues-group .cue-arrow.disabled{display:none}.cues-viewer .timeline-cues-container .cues-group .cue{display:flex;flex-direction:row;justify-content:center;align-items:center;width:30px;height:30px;border-radius:50%;position:relative;z-index:2}.cues-viewer .timeline-cues-container .cues-group .cue.target-active:not(.others),.cues-viewer .timeline-cues-container .cues-group .cue.target-inactive:not(.others){z-index:10}.cues-viewer .timeline-cues-container .cues-group .cue .cue-icon{display:flex;flex-direction:row;justify-content:center;align-items:center;width:30px;height:30px;border-radius:50%;background:#d3d3d3;color:#fff}.cues-viewer .timeline-cues-container .cues-group .cue .label{position:absolute;bottom:calc(100% + 10px);left:50%;background:#000;color:#fff;padding:4px 10px;font-size:75%;font-weight:700}.cues-viewer .timeline-cues-container .cues-group .cue .label:after{content:"";width:2px;height:10px;position:absolute;top:100%;left:0;background:#000}.cues-viewer .timeline-cues-container .cues-group .cue.passed,.cues-viewer .timeline-cues-container .cues-group .cue-arrow.passed{color:#a2a2a2;border-top-color:#a2a2a2}.cues-viewer .timeline-cues-container .cues-group .cue.passed .cue-icon,.cues-viewer .timeline-cues-container .cues-group .cue-arrow.passed .cue-icon{background:#a2a2a2}.cues-viewer .timeline-cues-container .cues-group .cue.passed .label,.cues-viewer .timeline-cues-container .cues-group .cue.passed .label:after,.cues-viewer .timeline-cues-container .cues-group .cue-arrow.passed .label,.cues-viewer .timeline-cues-container .cues-group .cue-arrow.passed .label:after{background:#a2a2a2}.cues-viewer .timeline-cues-container .cues-group .cue.target-active,.cues-viewer .timeline-cues-container .cues-group .cue-arrow.target-active{color:#0cb82f;border-top-color:#0cb82f}.cues-viewer .timeline-cues-container .cues-group .cue.target-active .cue-icon,.cues-viewer .timeline-cues-container .cues-group .cue-arrow.target-active .cue-icon{background:#0cb82f}.cues-viewer .timeline-cues-container .cues-group .cue.target-active .label,.cues-viewer .timeline-cues-container .cues-group .cue.target-active .label:after,.cues-viewer .timeline-cues-container .cues-group .cue-arrow.target-active .label,.cues-viewer .timeline-cues-container .cues-group .cue-arrow.target-active .label:after{background:#0cb82f}.cues-viewer .timeline-cues-container .cues-group .cue.target-inactive,.cues-viewer .timeline-cues-container .cues-group .cue-arrow.target-inactive{color:#bd070a;border-top-color:#bd070a}.cues-viewer .timeline-cues-container .cues-group .cue.target-inactive .cue-icon,.cues-viewer .timeline-cues-container .cues-group .cue-arrow.target-inactive .cue-icon{background:#bd070a}.cues-viewer .timeline-cues-container .cues-group .cue.target-inactive .label,.cues-viewer .timeline-cues-container .cues-group .cue.target-inactive .label:after,.cues-viewer .timeline-cues-container .cues-group .cue-arrow.target-inactive .label,.cues-viewer .timeline-cues-container .cues-group .cue-arrow.target-inactive .label:after{background:#bd070a}.cues-viewer .timeline-cues-container .cues-group .cue.to-come,.cues-viewer .timeline-cues-container .cues-group .cue-arrow.to-come{color:#305bac;border-top-color:#305bac}.cues-viewer .timeline-cues-container .cues-group .cue.to-come .cue-icon,.cues-viewer .timeline-cues-container .cues-group .cue-arrow.to-come .cue-icon{background:#305bac}.cues-viewer .timeline-cues-container .cues-group .cue.to-come .label,.cues-viewer .timeline-cues-container .cues-group .cue.to-come .label:after,.cues-viewer .timeline-cues-container .cues-group .cue-arrow.to-come .label,.cues-viewer .timeline-cues-container .cues-group .cue-arrow.to-come .label:after{background:#305bac}.cues-viewer .timeline-cues-container .cues-group .cue.others,.cues-viewer .timeline-cues-container .cues-group .cue-arrow.others{color:#4e4e4e}.cues-viewer .timeline-cues-container .cues-group .cue.others .cue-icon,.cues-viewer .timeline-cues-container .cues-group .cue-arrow.others .cue-icon{background:#4e4e4e}.cues-viewer .timeline-cues-container .cues-group .cue.others .label,.cues-viewer .timeline-cues-container .cues-group .cue.others .label:after,.cues-viewer .timeline-cues-container .cues-group .cue-arrow.others .label,.cues-viewer .timeline-cues-container .cues-group .cue-arrow.others .label:after{display:none!important}.cues-viewer .timeline-cues-container .cues-group .cue.others.passed,.cues-viewer .timeline-cues-container .cues-group .cue.others.target-active,.cues-viewer .timeline-cues-container .cues-group .cue.others.target-inactive,.cues-viewer .timeline-cues-container .cues-group .cue.others.to-come,.cues-viewer .timeline-cues-container .cues-group .cue-arrow.others.passed,.cues-viewer .timeline-cues-container .cues-group .cue-arrow.others.target-active,.cues-viewer .timeline-cues-container .cues-group .cue-arrow.others.target-inactive,.cues-viewer .timeline-cues-container .cues-group .cue-arrow.others.to-come{color:#a2a2a2;border-top-color:#a2a2a2}.cues-viewer .timeline-cues-container .cues-group .cue.others.passed .cue-icon,.cues-viewer .timeline-cues-container .cues-group .cue.others.target-active .cue-icon,.cues-viewer .timeline-cues-container .cues-group .cue.others.target-inactive .cue-icon,.cues-viewer .timeline-cues-container .cues-group .cue.others.to-come .cue-icon,.cues-viewer .timeline-cues-container .cues-group .cue-arrow.others.passed .cue-icon,.cues-viewer .timeline-cues-container .cues-group .cue-arrow.others.target-active .cue-icon,.cues-viewer .timeline-cues-container .cues-group .cue-arrow.others.target-inactive .cue-icon,.cues-viewer .timeline-cues-container .cues-group .cue-arrow.others.to-come .cue-icon{background:#a2a2a2}.building-view{display:flex;position:relative;justify-content:center;align-items:center;min-height:250px}.building-view .container{position:absolute;height:100%;max-height:1000px}.building-view .container img{height:100%;width:auto}.building-view .container svg{position:absolute;bottom:-.9%;left:50%;transform:translate(-50%);width:60%;height:100%}.actions-messages{display:flex;flex-direction:column;justify-content:space-between;padding:10px 10px 0;gap:10px}.actions-messages .actions{display:flex;flex-direction:column;justify-content:space-between;gap:10px}.actions-messages .actions.disabled{pointer-events:none;opacity:.5}.actions-messages .actions .action-row{display:flex;flex-direction:row;gap:10px;align-items:stretch;justify-content:space-between;flex-grow:1}.actions-messages .actions .action-group{display:flex;flex-direction:row;gap:10px;align-items:stretch;justify-content:stretch}.actions-messages .actions .action-group.floors,.actions-messages .actions .action-floor,.actions-messages .actions .action-cue{flex-grow:1}.actions-messages .messages{display:flex;flex-direction:column;gap:10px}.actions-messages .messages .messages-group{display:flex;flex-direction:row;align-items:stretch;justify-content:stretch;gap:10px}.actions-messages .messages .message-all-text{flex-grow:1}.actions-messages select,.actions-messages input[type=text]{padding:5px 10px}.actions-messages button{text-transform:uppercase;font-weight:700;background:#d3d3d3}.actions-messages button.red{background-color:#bd070a;color:#fff}.actions-messages button.green{background-color:#0cb82f;color:#fff}.actions-messages button.blue{background-color:#305bac;color:#fff}.actions-messages button:disabled{opacity:.5;pointer-events:none}.online-techs{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.online-techs .online-techs-count{font-weight:700}html,body{background:#fff}#root{margin:0 auto;padding:0;width:100%;min-height:100dvh;background:#fff;color:#000}#root button:active{opacity:.8}#root #loading-screen{height:100dvh;width:100%;box-sizing:border-box;padding:40px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}#root .status-icon.active{color:#0cb82f}#root .status-icon.danger{color:#bd070a}#root .time-display{font-family:monospace}#root .debug-container{z-index:1000;position:fixed;bottom:0;right:0;background:#c8c8c8d9;padding:20px}#tech{display:flex;flex-direction:column;justify-content:stretch;min-height:100dvh}#tech .header{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:10px;font-size:.8em;background:#fff}#tech .header .logo{height:40px}#tech .header .logo img{width:auto;height:100%}#tech .header .code-id{font-weight:700}#tech .time-viewer{padding:20px 10px 0;flex-grow:.5}#tech .status{background:#ececec;display:flex;flex-direction:row;align-items:center;justify-content:space-between;padding:10px;font-size:.8em}#tech .status .group-left,#tech .status .group-right{display:flex;flex-direction:column}#tech .cues-wrapper{position:relative;padding-bottom:10px}#tech .visual-cue-container{position:absolute;width:100%;height:100%;z-index:0;pointer-events:none}#tech .instructions{padding:10px;text-align:center;position:relative;z-index:2}#tech .audio-test-button{background:#d3d3d3;color:#000;padding:.25em .5em}#tech .header,#tech .status,#tech .time-viewer,#tech .tech-upcoming-cues,#tech .message-receiver,#tech .cues-viewer{position:relative;z-index:2}#tech.prep-mode .status{background:#ececec}#tech.performance-mode .status{background:#a5efa6}.message-receiver{display:flex;justify-content:space-between;margin:10px;gap:10px}.message-receiver .message{padding:10px;flex-grow:1;border:2px solid gray}.message-receiver .message:not(.is-read){animation:pulse-glow 2s infinite ease-in-out}.message-receiver button{background:#d3d3d3;color:#000}.message-receiver button.is-read{pointer-events:none;background:#0cb82f}@keyframes pulse-glow{0%{box-shadow:0 0 #bd070a47}50%{box-shadow:0 0 12px 6px #bd070a2e}to{box-shadow:0 0 #bd070a47}}.time-viewer{display:flex;flex-direction:column;gap:0;justify-content:center;align-items:center}.time-viewer .timestamp-value{font-size:1.7em;font-variant-numeric:tabular-nums}.time-viewer .timestamp-label{font-size:.7em}.time-viewer button{padding:0;transition:background .3s ease,border .3s ease}
