.recordingWorkspace{display:grid;gap:12px}.recordingWorkspace>.workspaceHead>div:last-child{display:flex;gap:8px}.recordingWorkspace>.workspaceHead .primary{background:#5267f7;color:#fff;border-color:#5267f7}.recordingSummary{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border:1px solid #dfe5ef;border-radius:12px;background:#fff;overflow:hidden}.recordingSummary article{padding:13px 16px;border-right:1px solid #edf0f5}.recordingSummary article:last-child{border:0}.recordingSummary small{display:block;color:#778299;font-size:12px}.recordingSummary strong{display:block;margin-top:3px;font-size:23px}.recordingToolbar{display:grid;grid-template-columns:minmax(280px,1fr) 180px 1.3fr;gap:8px;align-items:center}.recordingToolbar input,.recordingToolbar select{height:38px;border:1px solid #d9e0eb;border-radius:8px;padding:0 11px;background:#fff}.recordingToolbar small{text-align:right;color:#7b879d}.recordingLayout{display:grid;grid-template-columns:minmax(560px,1.2fr) minmax(390px,.8fr);min-height:540px;border:1px solid #dfe5ef;border-radius:12px;background:#fff;overflow:hidden}.recordingTaskList{border-right:1px solid #e5e9f1}.recordingTaskRow{display:grid;grid-template-columns:90px minmax(0,1fr) 132px;gap:12px;align-items:center;width:100%;padding:13px 15px;border:0;border-bottom:1px solid #edf0f5;border-radius:0;background:#fff;text-align:left;color:#182033}.recordingTaskRow:hover,.recordingTaskRow.active{background:#f4f6ff}.recordingTaskRow b{display:block;font-size:14px}.recordingTaskRow small{display:block;margin-top:3px;color:#778299}.recordingBadge{display:inline-flex;justify-content:center;padding:5px 7px;border-radius:99px;background:#f0f2f7;color:#546078;font-size:12px}.recordingBadge.recording{background:#e7f3ff;color:#1372b9}.recordingBadge.submitted{background:#fff4d8;color:#9b6712}.recordingBadge.completed{background:#e4f7ec;color:#118447}.recordingBadge.cancelled{background:#f4f4f5;color:#888}.recordingTaskDetail{padding:16px;overflow:auto}.recordingDetailHead{display:flex;justify-content:space-between;gap:12px}.recordingDetailHead h3{margin:4px 0;font-size:18px}.recordingDetailHead small{color:#7b879d}.recordingDetailActions{display:flex;flex-wrap:wrap;gap:6px;margin:13px 0}.recordingDetailActions button{padding:7px 10px}.recordingMeta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:#e8ecf3;border:1px solid #e8ecf3;border-radius:9px;overflow:hidden}.recordingMeta div{padding:9px 10px;background:#fafbfc}.recordingMeta small{display:block;color:#7d879a}.recordingMeta b{font-size:13px}.recordingValidation{margin-top:12px;border:1px solid #e1e6ee;border-radius:9px;overflow:hidden}.recordingValidation>header{display:flex;justify-content:space-between;padding:9px 10px;background:#f6f8fb}.recordingValidation .passed{color:#118447}.recordingValidation .failed,.recordingValidation .needs_review{color:#b16b10}.recordingCheck{display:grid;grid-template-columns:80px 1fr;gap:8px;padding:7px 10px;border-top:1px solid #edf0f5;font-size:12px}.recordingCheck b.passed{color:#118447}.recordingCheck b.failed{color:#c2413a}.recordingLogComposer,.recordingDelivery,.recordingAssignment{display:flex;gap:6px;margin-top:12px}.recordingLogComposer input,.recordingDelivery input,.recordingAssignment input{min-width:0;flex:1;border:1px solid #d9e0eb;border-radius:7px;padding:8px}.recordingDelivery{display:grid;grid-template-columns:1fr 1fr auto}.recordingLogs{margin-top:12px}.recordingLogs h4{margin:0 0 7px}.recordingLog{display:grid;grid-template-columns:92px 1fr;gap:8px;padding:7px 0;border-top:1px solid #edf0f5;font-size:12px}.recordingLog time{color:#7c879a}.recordingLog b{display:block}.recordingLog small{color:#7c879a}.recordingTaskDialog form{grid-template-columns:1fr 1fr;max-width:760px}.recordingTaskDialog form h2,.recordingTaskDialog form p,.recordingTaskDialog form button{grid-column:1/-1}.recordingIngestLogDialog{width:min(1120px,94vw);max-height:88vh;border:0;border-radius:14px;padding:0;color:#182033}.recordingIngestLogDialog::backdrop{background:rgba(19,28,48,.45)}.recordingIngestLogDialog section{padding:18px}.recordingIngestLogDialog header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.recordingIngestLogDialog h2{margin:0;font-size:20px}.recordingIngestLogDialog p{margin:5px 0 0;color:#71809a;font-size:13px}.recordingIngestLogToolbar{display:grid;grid-template-columns:minmax(260px,1fr) 180px auto;gap:8px;margin:14px 0}.recordingIngestLogToolbar input,.recordingIngestLogToolbar select{height:36px;border:1px solid #d9e0eb;border-radius:7px;padding:0 10px}.recordingIngestLogList{border:1px solid #e3e8f1;border-radius:9px;max-height:58vh;overflow:auto}.recordingIngestLogCount{display:block;padding:9px 12px;color:#748198;background:#f7f9fc}.recordingIngestLogRow{display:grid;grid-template-columns:170px minmax(240px,1fr) minmax(220px,.8fr);gap:12px;padding:11px 12px;border-top:1px solid #e8edf4;font-size:12px}.recordingIngestLogRow b,.recordingIngestLogRow strong,.recordingIngestLogRow small{display:block}.recordingIngestLogRow small{margin-top:3px;color:#78849a;overflow-wrap:anywhere}.recordingIngestLogRow code{font-size:11px;overflow-wrap:anywhere}.recordingIngestLogRow p,.recordingIngestLogRow details{grid-column:1/-1;margin:0;color:#b04641}.recordingIngestLogRow details{color:#526079}.recordingIngestLogRow pre{white-space:pre-wrap;word-break:break-word;background:#f6f8fb;padding:8px;border-radius:6px;color:#34415b}@media(max-width:1000px){.recordingSummary{grid-template-columns:repeat(3,1fr)}.recordingLayout{grid-template-columns:1fr}.recordingTaskList{border-right:0;border-bottom:1px solid #e5e9f1}.recordingToolbar{grid-template-columns:1fr 160px}.recordingToolbar small{display:none}}@media(max-width:680px){.recordingSummary{grid-template-columns:repeat(2,1fr)}.recordingTaskRow{grid-template-columns:80px 1fr}.recordingTaskRow>small{display:none}.recordingTaskDialog form{grid-template-columns:1fr}.recordingTaskDialog form>*{grid-column:1!important}.recordingIngestLogToolbar,.recordingIngestLogRow{grid-template-columns:1fr}.recordingIngestLogRow>*{grid-column:1!important}}

.recordingDispatchPanel{border:1px solid #dfe5ef;border-radius:12px;background:#fff;overflow:hidden}.recordingDispatchPanel>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;border-bottom:1px solid #e8edf4}.recordingDispatchPanel h3{margin:2px 0 0;font-size:16px}.recordingDispatchPanel header small,.dispatchSectionHead small{color:#78849a}.recordingDispatchPanel header>div:last-child{display:flex;align-items:center;gap:8px}.dispatchState{padding:5px 9px;border-radius:99px;background:#edf8f2;color:#187a4b;font-size:12px}.recordingDispatchGrid{display:grid;grid-template-columns:1fr 1fr}.recordingDispatchGrid>section{min-width:0;padding:10px 14px}.recordingDispatchGrid>section+section{border-left:1px solid #e8edf4}.dispatchSectionHead{display:flex;justify-content:space-between;gap:10px;margin-bottom:7px;font-size:12px}.recorderNodeList,.recordingAssignmentList{display:grid;gap:5px}.recorderNode,.recordingAssignmentRow{display:grid;align-items:center;gap:8px;padding:7px 8px;border:1px solid #e6eaf1;border-radius:8px;background:#fbfcfe;font-size:12px}.recorderNode{grid-template-columns:8px minmax(0,1fr) auto auto}.recorderNode i{width:8px;height:8px;border-radius:50%;background:#b1b8c5}.recorderNode.online i{background:#28b67a;box-shadow:0 0 0 4px #e3f6ed}.recorderNode span,.recordingAssignmentRow span{min-width:0}.recorderNode small,.recordingAssignmentRow small{display:block;color:#78849a;overflow-wrap:anywhere}.recorderNode em{font-style:normal;color:#6f7c92}.recorderNode button{padding:4px 7px;font-size:11px}.recorderNodeIdentity{display:grid;gap:2px}.recorderNodeToken{display:grid!important;grid-template-columns:auto minmax(100px,1fr) auto auto;align-items:center;gap:5px;margin-top:4px}.recorderNodeToken>small{white-space:nowrap}.recorderNodeToken code{min-width:0;padding:3px 6px;border:1px solid #d9e0eb;border-radius:5px;background:#f4f6fa;color:#354056;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}.recorderNodeToken.missing code{color:#a66a16;background:#fff8e8;border-color:#f0d89e}.recorderNodeToken button{padding:2px 6px}.recordingAssignmentRow{grid-template-columns:110px minmax(0,1fr) 140px}.recordingAssignmentRow code{display:block;overflow:hidden;text-overflow:ellipsis}.recorderNodeForm{display:grid;grid-template-columns:1fr 1.2fr 1fr 110px auto;gap:7px;align-items:end;padding:10px 14px;border-top:1px solid #e8edf4;background:#fafbfe}.recorderNodeForm label{display:grid;gap:3px;color:#69768d;font-size:11px}.recorderNodeForm input{height:34px;border:1px solid #d9e0eb;border-radius:7px;padding:0 9px;background:#fff}.recorderNodeForm button{height:34px}.recorderNodeCredential{display:flex;align-items:center;gap:8px;padding:10px 14px;border-top:1px solid #f2d58b;background:#fff8e6;font-size:12px}.recorderNodeCredential code{flex:1;min-width:0;padding:6px 8px;border-radius:6px;background:#1b2336;color:#fff;overflow:auto}.recordingDispatchHistory{margin-top:12px;border:1px solid #e1e6ee;border-radius:9px;overflow:hidden}.recordingDispatchHistory>header{display:flex;justify-content:space-between;padding:9px 10px;background:#f6f8fb}.recordingDispatchHistory>header small{color:#78849a}.recordingDispatchHistory article{display:grid;grid-template-columns:135px 1fr;gap:9px;padding:8px 10px;border-top:1px solid #edf0f5;font-size:12px}.recordingDispatchHistory article small{display:block;margin-top:2px;color:#78849a;overflow-wrap:anywhere}
@media(max-width:1100px){.recordingDispatchGrid{grid-template-columns:1fr}.recordingDispatchGrid>section+section{border-left:0;border-top:1px solid #e8edf4}.recorderNodeForm{grid-template-columns:repeat(2,1fr)}.recorderNodeForm button{grid-column:1/-1}.recordingAssignmentRow{grid-template-columns:100px 1fr}}

/* v1.57 frozen recording specification form */
.recordingTaskDialog{width:min(1120px,95vw);max-height:92vh;padding:0;border:0;border-radius:16px;overflow:auto}
.recordingTaskDialog>.close{position:sticky;z-index:2;top:12px;float:right;margin:12px 12px 0 0}
.recordingTaskDialog form{display:grid;grid-template-columns:1fr;gap:12px;max-width:none;padding:22px 24px 24px}
.recordingFormHeader{grid-column:1/-1;display:flex;justify-content:space-between;gap:20px;align-items:flex-start;padding-right:44px;height:auto;min-height:0}
.recordingFormHeader h2{margin:3px 0;font-size:22px}.recordingFormHeader p{margin:0;max-width:680px}.recordingFormHeader>span{padding:6px 10px;border-radius:99px;background:#eef2ff;color:#4054c7;white-space:nowrap}
.recordingFormSection{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0;padding:12px;border:1px solid #e0e6ef;border-radius:11px;background:#fafbfe}
.recordingFormSection legend{padding:0 7px;font-weight:700;color:#26324a}.recordingFormSection label,.recordingRequirements{display:flex;flex-direction:column;gap:5px;color:#59647a;font-size:13px}.recordingFormSection label.wide{grid-column:span 2}
.recordingFormSection input,.recordingFormSection select,.recordingRequirements textarea{min-width:0;border:1px solid #d9e0eb;border-radius:8px;padding:8px 9px;background:#fff}
.recordingFormSection input,.recordingFormSection select{height:38px}.recordingFormSection [hidden]{display:none!important}
.recordingFormSection .recordingCheckbox{flex-direction:row;align-items:center;align-self:end;height:38px;padding:0 9px;border:1px solid #d9e0eb;border-radius:8px;background:#fff}.recordingCheckbox input{width:16px;height:16px}
.recordingRequirements{grid-column:1/-1}.recordingFormFooter{grid-column:1/-1;display:flex;justify-content:space-between;gap:16px;align-items:center;padding-top:2px}.recordingFormFooter span{color:#758197;font-size:12px}.recordingFormFooter .primary{min-width:230px}
.recordingSpecPanel{margin-top:12px;border:1px solid #dbe3ef;border-radius:9px;overflow:hidden}.recordingSpecPanel header{display:flex;justify-content:space-between;gap:10px;padding:9px 10px;background:#f1f5ff}.recordingSpecPanel code{font-size:11px;color:#536079}.recordingSpecPanel>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:#e8ecf3}.recordingSpecPanel span{padding:8px 10px;background:#fafbfc}.recordingSpecPanel small,.recordingSpecPanel b{display:block}.recordingSpecPanel small{color:#7d879a}.recordingSpecPanel b{font-size:12px}.recordingSpecPanel.legacy{border-color:#edca82;background:#fff9ec}.recordingSpecPanel.legacy p{margin:0;padding:9px 10px}
.recordingDispatchTarget small{color:#7a869c;font-size:11px;line-height:1.4}.recordingDispatchTarget select:has(option:checked:not([value=""])){border-color:#6677ee;background:#f5f7ff;color:#263d9b;font-weight:650}
.recorderNodeOccupancy{color:#9a6414!important;font-weight:650}
.recordingNamePreview{display:block;min-height:48px;padding:12px 14px;border:1px solid #cfe2d9;border-radius:10px;background:#f2f8f4;color:#214b38;font-size:14px;font-weight:650;line-height:1.6;white-space:pre-line;overflow-wrap:anywhere}
.recordingOrderNote{margin-top:10px;color:#657087;font-size:13px}
.recordingOrderNote summary{cursor:pointer;min-height:44px;line-height:44px}
.recordingOrderNote p{white-space:pre-wrap;overflow-wrap:anywhere;margin:4px 0 0;padding:10px;border-radius:8px;background:#f6f7f9;line-height:1.6}
@media(max-width:860px){.recordingFormSection{grid-template-columns:repeat(2,minmax(0,1fr))}.recordingFormHeader,.recordingFormFooter{flex-direction:column}.recordingFormFooter .primary{width:100%}}
@media(max-width:560px){.recordingFormSection{grid-template-columns:1fr}.recordingFormSection label.wide{grid-column:auto}.recordingSpecPanel>div{grid-template-columns:1fr}}
.recordingLeaderList{margin-bottom:10px}.recorderNodesHead{margin-top:10px;padding-top:9px;border-top:1px solid #e8edf4}.recordingLeaderCard{grid-template-columns:8px minmax(0,1fr) auto}.recordingLeaderCard.error{border-color:#f0b4b4;background:#fff7f7}.recordingLeaderCard.error i{background:#d94949;box-shadow:0 0 0 4px #fde8e8}

.recorderNodeFailover{color:#a46716!important;font-weight:650}.recordingFailoverHold{display:grid;gap:3px;margin-top:12px;padding:10px 12px;border:1px solid #efd48e;border-radius:9px;background:#fff8e8;color:#744d10}.recordingFailoverHold span{font-weight:650}.recordingFailoverHold small{color:#906a2d}

.recordingAssignmentRow.heartbeatMissing{border-color:#e7b14a;background:#fff8e8}.recordingAssignmentRow.heartbeatMissing span:nth-child(2)>small{color:#a36300;font-weight:700}

.recordingRecovery{margin:12px 0;padding:12px;border:1px solid #eccd8f;border-radius:10px;background:#fff9eb;overflow-wrap:anywhere}.recordingRecovery header,.recordingRecovery>div{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.recordingRecovery p{margin:8px 0;font-size:16px}.recordingRecovery small{display:block;line-height:1.7;font-size:14px;color:#725927}.recordingRecovery>div{justify-content:flex-start;margin-top:10px}.recordingRecovery button{font-size:16px}

.recordingTaskDialog .recordingFormError{grid-column:1/-1;min-width:0;padding:14px 16px;border:1px solid #efaaaa;border-left:4px solid #b42318;border-radius:8px;background:#fff1f0;color:#912018;overflow-wrap:anywhere;scroll-margin:16px}.recordingTaskDialog .recordingFormError[hidden]{display:none!important}.recordingTaskDialog .recordingFormError strong{display:block;font-size:14px}.recordingTaskDialog .recordingFormError p{margin:6px 0 0;color:#912018;font-size:14px;line-height:1.6;white-space:pre-wrap}.recordingTaskDialog .recordingFormError:focus-visible{outline:2px solid #b42318;outline-offset:2px}
