/* Operator UI is deliberately isolated from the supplied heritage design. */
.operator-entry{position:fixed;right:18px;bottom:18px;z-index:90;border:1px solid rgba(214,160,60,.55);background:rgba(6,17,14,.9);color:#d6a03c;padding:10px 14px;font:500 10px/1 var(--sans,system-ui);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;backdrop-filter:blur(12px)}
.operator-entry:hover{background:#122c24}.operator-toolbar{position:fixed;z-index:80;left:50%;bottom:16px;transform:translateX(-50%);width:min(1040px,calc(100% - 28px));display:flex;align-items:center;gap:10px;padding:10px 12px;background:rgba(5,16,13,.94);border:1px solid rgba(214,160,60,.34);box-shadow:0 16px 50px #000b;backdrop-filter:blur(18px)}.operator-toolbar[hidden]{display:none}.operator-brand{display:flex;align-items:center;gap:9px;min-width:180px}.operator-brand strong{font:400 14px var(--serif,Georgia,serif)}.operator-state-dot{width:9px;height:9px;border-radius:50%;background:#64736c;box-shadow:0 0 0 4px #ffffff0b}.operator-state-dot.ready{background:#55d69a;box-shadow:0 0 0 4px #55d69a22}.operator-state-dot.running,.operator-state-dot.sending{background:#d6a03c;animation:opPulse 1s infinite}.operator-state-dot.fault{background:#ef6d5c}.operator-state-copy{min-width:0;flex:1}.operator-state-copy b,.operator-state-copy span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.operator-state-copy b{font-size:11px;letter-spacing:.09em;text-transform:uppercase}.operator-state-copy span{font-size:10px;color:#91a098}.op-btn{border:1px solid rgba(214,160,60,.5);background:transparent;color:#d6a03c;padding:9px 11px;font:600 9px/1 var(--sans,system-ui);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;white-space:nowrap}.op-btn:hover{background:#d6a03c1a}.op-btn:disabled{opacity:.35;cursor:not-allowed}.op-btn.primary{background:#d6a03c;color:#171107}.op-btn.stop{background:#a82a1e;border-color:#e95f4e;color:white}.op-btn.stop:disabled{background:#361714;color:#8f736e}.op-more{position:relative}.op-more summary{list-style:none}.op-more summary::-webkit-details-marker{display:none}.op-menu{position:absolute;right:0;bottom:calc(100% + 15px);display:grid;min-width:180px;background:#0b1e18;border:1px solid rgba(214,160,60,.35);padding:6px;box-shadow:0 12px 40px #000b}.op-menu a,.op-menu button{border:0;background:transparent;color:#cfccc0;text-align:left;padding:10px;font:500 10px var(--sans,system-ui);text-decoration:none;cursor:pointer}.op-menu a:hover,.op-menu button:hover{background:#ffffff0b;color:#d6a03c}
.act-operator{margin:1.35rem 0 .25rem;padding-top:1.2rem;border-top:1px solid rgba(214,160,60,.26);display:flex;justify-content:flex-end;align-items:center;gap:12px;flex-wrap:wrap}.act-run{min-width:168px;border:1px solid #d6a03c;background:#d6a03c;color:#181107;padding:12px 18px;font:600 10px/1 var(--sans,system-ui);letter-spacing:.14em;text-transform:uppercase;cursor:pointer}.act-run:hover{filter:brightness(1.1)}.act-run:disabled{opacity:.38;cursor:not-allowed}.act-run.running{position:relative;padding-left:34px}.act-run.running:before{content:"";position:absolute;left:14px;top:50%;width:9px;height:9px;border:2px solid #171107;border-right-color:transparent;border-radius:50%;animation:opSpin .8s linear infinite}.act-status{display:flex;align-items:center;gap:8px;min-width:190px;padding:10px 12px;border:1px solid rgba(237,232,218,.13);background:#06110e}.act-status i{width:8px;height:8px;border-radius:50%;background:#65736d}.act-status.ready i,.act-status.complete i{background:#55d69a}.act-status.running i,.act-status.sending i{background:#d6a03c}.act-status.fault i{background:#ef6d5c}.act-status span{font-size:10px;color:#c4c3ba}.audio-warning{flex-basis:100%;text-align:right;font-size:10px;color:#e4b75f}.audio-warning:empty{display:none}
.op-dialog{border:1px solid rgba(214,160,60,.4);background:#0b1e18;color:#ede8da;width:min(460px,calc(100% - 28px));padding:0;box-shadow:0 24px 80px #000d}.op-dialog::backdrop{background:#020706d9;backdrop-filter:blur(5px)}.op-dialog-card{padding:28px}.op-dialog h2{font:400 30px/1.1 var(--serif,Georgia,serif);margin:.3rem 0 .7rem}.op-dialog p{font-size:13px;color:#a8b2ac}.op-dialog label{display:grid;gap:7px;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#d6a03c}.op-dialog input{width:100%;border:1px solid #ffffff22;background:#06110e;color:#ede8da;padding:12px;font:inherit}.op-dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.op-error{min-height:20px;color:#ff8d7e;font-size:11px}.op-debug{width:min(1160px,calc(100% - 24px));height:min(780px,calc(100% - 24px));max-width:none;max-height:none}.debug-layout{display:grid;grid-template-columns:260px 1fr;gap:16px;height:calc(100% - 80px)}.diag-list{margin:0;display:grid;gap:7px;align-content:start}.diag-list div{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid #ffffff0c;padding-bottom:6px}.diag-list dt{font-size:10px;color:#8da096}.diag-list dd{margin:0;font:11px ui-monospace,monospace;color:#d8d4c9;text-align:right}.debug-main{min-width:0;display:flex;flex-direction:column}.debug-tools{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.log-wrap{overflow:auto;flex:1;border:1px solid #ffffff12}.log-table{width:100%;border-collapse:collapse;font:10px ui-monospace,monospace}.log-table th,.log-table td{padding:8px;border-bottom:1px solid #ffffff0c;text-align:left;white-space:nowrap}.log-table td:nth-child(4){white-space:normal;min-width:260px}.log-table th{position:sticky;top:0;background:#10271f;color:#d6a03c}.op-toast-region{position:fixed;z-index:120;right:18px;bottom:88px;display:grid;gap:8px;max-width:min(380px,calc(100% - 36px))}.op-toast{background:#153a2f;border:1px solid #6d9a85;padding:12px 15px;font-size:12px;box-shadow:0 10px 35px #000a}.op-toast.error{background:#411b16;border-color:#a82a1e}.offline-flag{color:#e6bc6c!important}@keyframes opSpin{to{transform:translateY(-50%) rotate(360deg)}}@keyframes opPulse{50%{opacity:.45}}
@media(max-width:760px){.operator-toolbar{bottom:8px;gap:7px}.operator-brand{display:none}.operator-state-copy span{display:none}.op-btn{padding:9px 8px}.operator-toolbar .optional-label{display:none}.act-operator{justify-content:stretch}.act-run,.act-status{flex:1}.debug-layout{grid-template-columns:1fr}.diag-list{display:none}}
