:root{--bg: #0f1117;--surface: #1a1d27;--surface2: #242836;--border: #2f3545;--text: #f4f6fb;--muted: #9aa3b5;--green: #3dd68c;--red: #ff5d5d;--yellow: #f5c542;--orange: #ff9f43;--blue: #4d9fff;--font: "Segoe UI", system-ui, sans-serif}*{box-sizing:border-box}body{margin:0;font-family:var(--font);background:var(--bg);color:var(--text)}a{color:var(--blue);text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid var(--border);background:var(--surface2);color:var(--text);border-radius:8px;padding:.55rem .9rem}button.primary{background:var(--blue);border-color:var(--blue);color:#fff}button.danger{background:#5a1f1f;border-color:#7a2b2b;color:#ffb4b4}input,select,textarea{width:100%;background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:.55rem .75rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1rem}.row{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.stack{display:flex;flex-direction:column;gap:.75rem}.badge{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .55rem;border-radius:999px;font-size:.85rem;font-weight:600}.badge.green{background:rgba(61,214,140,.15);color:var(--green)}.badge.red{background:rgba(255,93,93,.15);color:var(--red)}.badge.yellow{background:rgba(245,197,66,.15);color:var(--yellow)}.badge.gray{background:rgba(154,163,181,.15);color:var(--muted)}.timer-normal{color:var(--text)}.timer-warn30{color:var(--yellow)}.timer-warn10{color:var(--orange)}.timer-critical5{color:var(--red);animation:pulse .8s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}.progress{height:10px;background:var(--surface2);border-radius:999px;overflow:hidden}.progress>span{display:block;height:100%;background:linear-gradient(90deg,var(--blue),#7cb8ff)}.tabs{display:flex;gap:.5rem;flex-wrap:wrap}.tab{background:transparent}.tab.active{background:var(--surface2);border-color:var(--blue)}.page{max-width:1200px;margin:0 auto;padding:1rem}.pin-gate{min-height:100vh;display:grid;place-items:center;padding:1rem}.pin-gate .card{width:min(420px,100%)}.schedule-table{display:flex;flex-direction:column;gap:.5rem;overflow-x:auto}.schedule-header,.schedule-row{display:grid;grid-template-columns:32px 90px 110px 80px 110px 1fr 40px;gap:.5rem;align-items:center;min-width:720px}.schedule-header{color:var(--muted);font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;padding:0 .25rem}.schedule-row{background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:.5rem}.schedule-row.dragging{opacity:.5}.drag-handle{cursor:grab;color:var(--muted);text-align:center;-webkit-user-select:none;user-select:none;font-size:1.1rem;line-height:1}.drag-handle:active{cursor:grabbing}.schedule-row input,.schedule-row select{padding:.4rem .5rem;font-size:.9rem}.schedule-row .btn-icon{padding:.35rem .5rem;color:var(--red);border-color:transparent;background:transparent}.checkbox-row{display:flex;align-items:center;gap:.5rem}.checkbox-row input[type=checkbox]{width:auto}.flow-table-wrap{overflow-x:auto}.flow-table{width:100%;border-collapse:collapse;font-size:.9rem}.flow-table th,.flow-table td{padding:.55rem .75rem;border-bottom:1px solid var(--border);text-align:left}.flow-table th{color:var(--muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}.flow-table tr.current-row{background:rgba(245,197,66,.12);outline:1px solid var(--yellow)}.operator-layout{min-height:100vh;display:grid;gap:.75rem;padding:1rem;grid-template-columns:1fr;grid-template-areas:"header" "main" "sidebar";align-items:start}.operator-header{grid-area:header;justify-content:space-between;margin:0}.operator-main{grid-area:main;flex:1;overflow:auto;margin:0;min-height:0}.operator-sidebar,.operator-sidebar.stack{grid-area:sidebar;margin:0;gap:.5rem;min-height:0;display:grid;grid-template-rows:auto auto minmax(10rem,1fr) auto;align-content:start}.operator-footer{margin:0 1rem 1rem;padding:.75rem 1rem;gap:.75rem}.operator-msg-form{display:flex;flex-direction:column;gap:.35rem}.operator-msg-row{display:flex;gap:.5rem;align-items:center}.operator-msg-form input,.operator-msg-row input{flex:1;min-width:0}.time-adjust{display:flex;flex-direction:column;gap:.35rem}.time-adjust-label{margin:0;font-size:.85rem;color:var(--muted)}.time-adjust-row{display:grid;grid-template-columns:1fr auto 1fr;gap:.5rem;align-items:center}.time-adjust-group{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem}.time-adjust-minus{justify-content:flex-start}.time-adjust-plus{justify-content:flex-end}.time-adjust-custom{display:flex;align-items:center;gap:.35rem;justify-content:center}.time-adjust-btn{padding:.4rem .65rem;font-size:.85rem;min-width:3rem}.time-adjust-input{width:3.25rem!important;min-width:0;padding:.4rem .5rem!important;text-align:center}.time-adjust-unit{width:auto!important;min-width:3.25rem;padding:.4rem .5rem!important}.live-dashboard{display:grid;gap:.75rem;grid-template-columns:1fr;grid-template-areas:"control" "flow" "messages";align-items:start}.live-control-card{grid-area:control;gap:.65rem}.live-messages-card,.live-messages-card.stack{grid-area:messages;gap:.5rem;min-height:0;display:grid;grid-template-rows:auto auto auto minmax(10rem,1fr) auto;align-content:start}.live-messages-scroll{min-height:10rem;max-height:min(42vh,420px);overflow-y:auto;overflow-x:hidden;padding-right:.15rem;gap:.5rem}.live-messages-compose{gap:.5rem;padding-top:.5rem;border-top:1px solid var(--border)}.live-messages-empty{margin:0;color:var(--muted);font-size:.85rem;text-align:center;padding:.75rem 0}.live-flow-card{grid-area:flow;gap:.5rem;max-height:min(42vh,360px);overflow:auto}.live-control-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem}.live-transport{gap:.4rem}.live-transport button{padding:.45rem .7rem;font-size:.85rem}.live-timer-block{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto auto;gap:.15rem 1.25rem;align-items:center;padding:.75rem 1rem;background:var(--surface2);border:1px solid var(--border);border-radius:10px;overflow:visible}.live-timer-block .live-segment-label{grid-column:1;grid-row:1}.live-timer-block .live-segment-title{grid-column:1;grid-row:2}.live-timer-block .live-timer-display{grid-column:1;grid-row:3;margin-top:.15rem}.live-timer-block .live-plan-ends{grid-column:2;grid-row:1 / -1;display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:.15rem;text-align:right}.live-plan-label{color:var(--muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}.live-plan-value{color:var(--muted);font-size:1rem;font-weight:600;font-variant-numeric:tabular-nums}.live-segment-label{color:var(--muted);font-size:.8rem}.live-segment-title{display:block;font-size:1rem;margin:0}.live-timer-display{font-size:clamp(2rem,8vw,2.75rem);font-weight:800;line-height:1.1;font-variant-numeric:tabular-nums}.control-page{overflow-x:hidden}.live-nav{gap:.4rem}.live-skip-select{flex:1;min-width:8rem}.live-msg-row{display:flex;gap:.4rem;align-items:center}.live-msg-row input{flex:1;min-width:0}.live-msg-row button{flex-shrink:0;padding:.45rem .65rem;font-size:.85rem}.live-operator-line{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.9rem;color:var(--muted)}.live-msg-hint{margin:0;font-size:.85rem;color:var(--muted)}.live-messages-group{gap:.5rem}.live-messages-group-title{margin:0;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.timed-message{display:flex;flex-direction:column;gap:.35rem;padding:.55rem .65rem;background:var(--surface2);border:1px solid var(--border);border-radius:8px;border-left-width:3px}.timed-message--control{border-left-color:var(--blue)}.timed-message--operator{border-left-color:var(--yellow)}.msg-role{display:inline-flex;align-items:center;flex-wrap:wrap;gap:.35rem;line-height:1.3}.msg-role-icon{display:inline-flex;align-items:center;justify-content:center;min-width:1.75rem;padding:.1rem .35rem;border-radius:4px;font-size:.65rem;font-weight:800;letter-spacing:.04em}.msg-role--control .msg-role-icon{background:rgba(90,156,255,.18);color:#7cb8ff;border:1px solid rgba(90,156,255,.45)}.msg-role--operator .msg-role-icon{background:rgba(245,197,66,.18);color:#f5c542;border:1px solid rgba(245,197,66,.45)}.msg-role-label{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.msg-role--control .msg-role-label{color:#7cb8ff}.msg-role--operator .msg-role-label{color:#f5c542}.msg-role-alias{font-size:.85rem;color:var(--text)}.msg-role--compact .msg-role-alias{font-size:inherit}.stage-msg{display:flex;flex-wrap:wrap;align-items:center;justify-content:inherit;gap:.5rem .65rem}.stage-canvas .msg-role--control .msg-role-icon{background:rgba(90,156,255,.22)}.stage-canvas .msg-role--operator .msg-role-icon{background:rgba(245,197,66,.22)}.stage-canvas .msg-role--control .msg-role-alias{color:#9ec5ff}.stage-canvas .msg-role--operator .msg-role-alias{color:#ffe08a}.stage-msg-text{flex:1 1 auto;min-width:0}.timed-message-head{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.timed-message-from{font-size:.85rem}.alias-field{display:flex;flex-direction:column;gap:.35rem}.alias-field input{max-width:280px}.timed-message-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.timed-message-timer{font-size:.8rem;font-variant-numeric:tabular-nums;color:var(--muted)}.timed-message-body{display:flex;flex-direction:column;align-items:stretch;gap:.5rem}.timed-message-actions{display:flex;flex-wrap:wrap;gap:.35rem;justify-content:flex-end}.timed-message-ack{flex-shrink:0;padding:.3rem .55rem;font-size:.8rem}.timed-message-ack.active{opacity:.7}.timed-message-readby{font-size:.75rem;color:var(--muted)}.timed-message--read{opacity:.85}.desk-message-list{gap:.5rem}.timed-message-text{flex:1;min-width:0;word-break:break-word}.timed-message-extend{flex-shrink:0;padding:.3rem .55rem;font-size:.8rem}.live-operator-line button{padding:.35rem .55rem;font-size:.8rem}@media (min-width: 900px){.live-dashboard{grid-template-columns:minmax(0,1fr) minmax(300px,360px);grid-template-rows:auto 1fr;grid-template-areas:"control messages" "flow messages";min-height:calc(100vh - 11rem)}.live-messages-card{align-self:stretch;height:100%;max-height:calc(100vh - 11rem);position:sticky;top:1rem;overflow:hidden}.live-messages-scroll{min-height:12rem;max-height:none}.live-flow-card{max-height:none;min-height:0;overflow:auto}.operator-layout{grid-template-columns:minmax(0,1fr) minmax(300px,360px);grid-template-rows:auto 1fr;grid-template-areas:"header header" "main sidebar";padding:1rem;height:100vh;box-sizing:border-box}.operator-sidebar{align-self:stretch;height:100%;max-height:calc(100vh - 7rem);position:sticky;top:1rem;overflow:hidden}.operator-sidebar .live-messages-scroll{min-height:12rem;max-height:none}.operator-main{max-height:calc(100vh - 7rem);overflow:auto}}@media (max-width: 640px){.page{padding:.65rem}.card{padding:.75rem}.page-header{flex-direction:column;align-items:flex-start!important}.tabs{gap:.35rem}.tab{padding:.45rem .65rem;font-size:.85rem}.live-timer-block{grid-template-columns:1fr;grid-template-rows:auto;gap:.35rem}.live-timer-block .live-segment-label,.live-timer-block .live-segment-title,.live-timer-block .live-timer-display,.live-timer-block .live-plan-ends{grid-column:1;grid-row:auto}.live-timer-block .live-plan-ends{flex-direction:row;align-items:baseline;justify-content:flex-start;gap:.5rem;margin-top:.35rem;padding-top:.5rem;border-top:1px solid var(--border)}.time-adjust-row{grid-template-columns:1fr;gap:.4rem}.time-adjust-minus,.time-adjust-plus{justify-content:center}.live-nav{flex-direction:column;align-items:stretch}.live-messages-scroll{min-height:8rem;max-height:min(36vh,320px)}.operator-sidebar{max-height:none}.operator-sidebar .live-messages-scroll{min-height:8rem;max-height:min(28vh,240px)}.live-msg-row{flex-wrap:wrap}.live-msg-row input{width:100%;flex:1 1 100%}}.admin-page{max-width:1100px}.admin-header{justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.75rem}.admin-stats{gap:.75rem;flex-wrap:wrap}.admin-stat{display:flex;flex-direction:column;gap:.35rem;min-width:8rem}.admin-stat-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.admin-id{font-size:.85rem;color:var(--muted)}.admin-actions{gap:.35rem;flex-wrap:wrap}.admin-actions button{padding:.3rem .5rem;font-size:.8rem}.admin-error,.admin-error-banner{margin:0;color:var(--red);font-size:.9rem}.admin-error-banner{padding:.65rem .85rem}.admin-table td{vertical-align:middle}.admin-login-card{gap:.75rem}.url-copy-row{display:flex;gap:.5rem;align-items:center}.url-copy-row input{flex:1;min-width:0;font-size:.85rem}.stage-element-editor{gap:1rem}.align-picker-wrap{display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;gap:.25rem .5rem;align-items:center}.align-picker-labels{display:grid;grid-template-columns:repeat(3,1.75rem);gap:.25rem;font-size:.65rem;color:var(--muted);text-align:center}.align-picker-labels-v{grid-column:1;grid-row:1;grid-template-rows:repeat(3,1.75rem);grid-template-columns:auto;align-items:center;text-align:right;padding-right:.25rem}.align-picker-labels-h{grid-column:2;grid-row:2}.align-picker{grid-column:2;grid-row:1;display:grid;grid-template-columns:repeat(3,1.75rem);grid-template-rows:repeat(3,1.75rem);gap:.25rem}.align-picker-cell{display:flex;align-items:center;justify-content:center;padding:0;min-width:0;border:1px solid var(--border);border-radius:4px;background:var(--surface2);cursor:pointer}.align-picker-cell:hover{border-color:var(--accent)}.align-picker-cell.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 18%,var(--surface2))}.align-picker-dot{width:.35rem;height:.35rem;border-radius:50%;background:var(--muted)}.align-picker-cell.active .align-picker-dot{background:var(--accent)}.stage-view,.stage-view--loading{min-height:100vh;background:#05070d;color:#fff}.stage-view--loading{padding:2rem}.stage-reconnect{position:fixed;top:calc(var(--stage-gutter) + .25rem);right:calc(var(--stage-gutter) + .25rem);color:#9aa3b5;font-size:.85rem;z-index:10}.stage-frame{--stage-gutter: .75rem;box-sizing:border-box;padding:var(--stage-gutter);background:#05070d;min-height:100vh}.stage-frame .stage-canvas{width:100%;height:calc(100vh - 2 * var(--stage-gutter));min-height:0}.stage-frame--preview{min-height:0;background:transparent}.stage-frame--preview .stage-canvas{height:calc(100vh - 2 * var(--stage-gutter));min-height:480px;max-height:calc(100vh - 8rem)}.stage-canvas .stage-progress{min-width:0}.stage-canvas .progress{background:rgba(255,255,255,.12)}.stage-canvas.edit-mode{border:2px dashed var(--border);border-radius:8px}.stage-element{border:1px solid transparent;border-radius:0;min-width:0;min-height:0}.stage-canvas.edit-mode .stage-element{border-color:#ffffff1a;cursor:grab}.stage-element.selected{border-color:var(--blue);background:rgba(77,159,255,.1)}.stage-emergency{position:fixed;top:0;left:0;right:0;z-index:100;background:#7f1d1d;color:#fff;padding:1rem;text-align:center;font-size:1.4rem;font-weight:700;animation:pulse 1s infinite}.control-emergency-banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1rem;border-radius:10px;border:2px solid #ff5d5d;background:linear-gradient(90deg,rgba(127,29,29,.95),rgba(185,28,28,.85));color:#fff;animation:pulse 1.2s infinite;box-shadow:0 0 0 1px #ff5d5d59,0 8px 24px #7f1d1d59}.control-emergency-banner-main{display:flex;flex-direction:column;gap:.25rem;min-width:0}.control-emergency-badge{display:inline-flex;align-self:flex-start;padding:.15rem .5rem;border-radius:999px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.35);font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.control-emergency-text{margin:0;font-size:1.05rem;font-weight:700;line-height:1.35;word-break:break-word}.control-emergency-note{font-size:.8rem;color:#ffffffd1}.control-emergency-clear{flex-shrink:0;white-space:nowrap}.emergency-section-active{color:#ff8a8a;font-weight:700}.emergency-section-hint{margin:0;color:#ff8a8a;font-size:.85rem;font-weight:600}.emergency-section-row-active{padding:.55rem;border-radius:8px;border:1px solid rgba(255,93,93,.45);background:rgba(127,29,29,.18)}@media (max-width: 640px){.control-emergency-banner{flex-direction:column;align-items:stretch}.control-emergency-clear{width:100%}}
