:root{color-scheme:light;font-family:Inter,system-ui,-apple-system,sans-serif;line-height:1.5;font-weight:400;color:#1f2937;background-color:#f8fafc}*{box-sizing:border-box}body{margin:0}.page-header{display:flex;justify-content:space-between;align-items:center;padding:24px 32px;background:#fff;border-bottom:1px solid #e2e8f0;gap:16px}.header-actions{display:flex;align-items:center;gap:12px}.dataset-select{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:#475569}.dataset-select select{border:1px solid #cbd5f5;border-radius:8px;padding:6px 10px;background:#fff;font-weight:600;color:#1f2937}.page-header h1{margin:0 0 4px;font-size:24px}.subtitle{margin:0;color:#64748b}.run-button{border:none;border-radius:999px;padding:10px 20px;background:#2563eb;color:#fff;font-weight:600;cursor:pointer;transition:background .2s ease}.run-button:hover{background:#1d4ed8}.page-content{display:grid;gap:20px;padding:24px 32px 40px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.panel{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:16px;min-height:160px;display:flex;flex-direction:column;gap:12px}.panel-header{display:flex;justify-content:space-between;align-items:center}.panel h2{margin:0;font-size:18px}.panel-body{flex:1;border:1px dashed #cbd5f5;border-radius:8px;padding:12px;background:#f8fafc}.placeholder{margin:0;color:#94a3b8}.badge{display:inline-flex;align-items:center;padding:4px 12px;border-radius:999px;background:#e2e8f0;color:#1e293b;font-size:12px;font-weight:600;text-transform:capitalize}.badge.ok{background:#dcfce7;color:#166534}.badge.pending{background:#dbeafe;color:#1d4ed8}.badge.clamped{background:#fef3c7;color:#92400e}.badge.blocked{background:#fee2e2;color:#b91c1c}.badge.needs_review{background:#ede9fe;color:#6d28d9}.error-banner{margin:16px 32px 0;padding:12px 16px;border-radius:10px;background:#fee2e2;color:#991b1b;border:1px solid #fecaca;font-weight:600}.part-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.part-list li{display:flex;gap:8px;align-items:stretch}.part-button{width:100%;border:1px solid transparent;border-radius:10px;padding:10px 12px;background:#fff;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;text-align:left;transition:border-color .2s ease,box-shadow .2s ease}.part-button:hover{border-color:#bfdbfe;box-shadow:0 6px 20px #0f172a14}.part-button.is-selected{border-color:#2563eb;box-shadow:0 6px 20px #2563eb26}.part-meta{display:flex;flex-direction:column;gap:2px}.part-meta strong{font-size:14px}.part-meta span{font-size:12px;color:#64748b}.status-details{display:grid;gap:8px;font-size:14px}.status-details ul{margin:0;padding-left:16px}.action-list{display:flex;flex-direction:column;gap:12px}.action-card{border-radius:10px;border:1px solid #e2e8f0;background:#fff;padding:10px 12px}.action-card h3{margin:0 0 6px;font-size:14px}.action-card p{margin:0;font-size:13px;color:#475569}.residual-grid{display:grid;gap:8px;font-size:14px}.alignment-quality{display:grid;gap:12px}.alignment-summary{display:flex;align-items:center;justify-content:space-between;gap:12px}.alignment-rms{display:flex;flex-direction:column;gap:4px;font-size:13px;color:#475569}.alignment-rms-value{font-size:22px;font-weight:700;color:#0f172a}.alignment-table-wrapper{background:#fff;border-radius:10px;border:1px solid #e2e8f0;overflow:hidden}.alignment-table{width:100%;border-collapse:collapse;font-size:13px}.alignment-table th,.alignment-table td{padding:8px 10px;border-bottom:1px solid #e2e8f0}.alignment-table th{background:#f8fafc;text-align:left;font-size:12px;color:#475569;letter-spacing:.02em;text-transform:uppercase}.alignment-table th.numeric,.alignment-table td.numeric{text-align:right;font-variant-numeric:tabular-nums}.alignment-table tr:last-child td{border-bottom:none}.alignment-view-container{background:#fff;border-radius:10px;border:1px solid #e2e8f0;overflow:hidden;margin-bottom:12px}.alignment-view-canvas{width:100%;height:280px;display:block}.placeholder-cell{color:#94a3b8;text-align:center;padding:16px 10px}.constraints-grid{display:grid;gap:12px}.constraints-section,.constraints-subsection{background:#fff;border-radius:10px;border:1px solid #e2e8f0;padding:10px 12px}.constraints-subsection{margin-top:8px;background:#f8fafc}.constraints-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.02em;color:#64748b;margin-bottom:6px}.constraints-section>div,.constraints-subsection>div{font-size:13px;line-height:1.6}.constraints-section>div:not(.constraints-label),.constraints-subsection>div:not(.constraints-label){color:#1f2937}.raw-json{display:flex;flex-direction:column;gap:12px}.raw-json summary{cursor:pointer;font-weight:600}.raw-json pre{margin:0;padding:12px;background:#0f172a;color:#e2e8f0;border-radius:8px;overflow-x:auto;font-size:12px}.simulation-panel{border-left:3px solid #2563eb}.simulation-grid{display:grid;gap:12px}.simulation-section{background:#fff;border-radius:10px;border:1px solid #e2e8f0;padding:10px 12px}.simulation-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.02em;color:#64748b;margin-bottom:6px}.simulation-section>div{font-size:13px;line-height:1.6}.simulation-section>div:not(.simulation-label){color:#1f2937}.simulation-actions{display:flex;align-items:center;gap:12px}.simulate-button{border:none;border-radius:8px;padding:10px 20px;background:#2563eb;color:#fff;font-weight:600;cursor:pointer;transition:background .2s ease,opacity .2s ease}.simulate-button:hover:not([disabled]){background:#1d4ed8}.simulate-button:disabled{background:#94a3b8;cursor:not-allowed;opacity:.7}.simulate-button.simulated{background:#059669}.simulate-button.simulated:hover{background:#047857}.simulate-note{font-size:13px;color:#64748b;font-style:italic}.simulate-reason-codes{font-size:12px;color:#94a3b8;font-style:italic}.simulation-result{display:flex;align-items:center;gap:12px;padding:12px;background:#fff;border-radius:10px;border:1px solid #e2e8f0}.simulation-result.is-inline{padding:6px 10px;border-style:dashed;background:#f8fafc}.simulation-badge{font-size:14px;font-weight:700;padding:6px 16px}.simulation-badge.pass{background:#dcfce7;color:#166534}.simulation-badge.fail{background:#fee2e2;color:#b91c1c}.simulation-badge.pending{background:#e2e8f0;color:#475569}.simulation-tolerance{font-size:13px;color:#64748b}.reset-button,.reset-all-button{border:1px solid #e2e8f0;border-radius:8px;padding:10px 16px;background:#fff;color:#475569;font-weight:600;cursor:pointer;transition:background .2s ease,border-color .2s ease}.reset-button:hover,.reset-all-button:hover{background:#f1f5f9;border-color:#cbd5e1}.reset-all-button{color:#dc2626;border-color:#fecaca}.reset-all-button:hover{background:#fef2f2;border-color:#fca5a5}.export-panel{border-left:3px solid #059669}.export-buttons{display:flex;flex-wrap:wrap;gap:10px}.export-button{border:1px solid #e2e8f0;border-radius:8px;padding:10px 16px;background:#fff;color:#1f2937;font-weight:600;font-size:13px;cursor:pointer;transition:background .2s ease,border-color .2s ease,opacity .2s ease}.export-button:hover:not([disabled]){background:#f1f5f9;border-color:#cbd5e1}.export-button:disabled{opacity:.5;cursor:not-allowed}.export-button.export-print{background:#2563eb;color:#fff;border-color:#2563eb}.export-button.export-print:hover{background:#1d4ed8;border-color:#1d4ed8}body.overlay-active{overflow:hidden;position:fixed;width:100%;height:100%}.phone-overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:9999;display:flex;flex-direction:column}.phone-overlay[hidden]{display:none}.overlay-background{position:absolute;top:0;left:0;right:0;bottom:0;z-index:0}.overlay-background.overlay-neutral{background:linear-gradient(135deg,#1e293b,#334155,#1e293b)}.overlay-background.overlay-camera video{width:100%;height:100%;object-fit:cover}.overlay-content{position:relative;z-index:1;display:flex;flex-direction:column;height:100%;padding:16px;padding-top:max(16px,env(safe-area-inset-top,16px));padding-bottom:max(16px,env(safe-area-inset-bottom,16px));padding-left:max(16px,env(safe-area-inset-left,16px));padding-right:max(16px,env(safe-area-inset-right,16px))}.overlay-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:12px 16px;background:#fffffff2;border-radius:12px;box-shadow:0 4px 20px #00000026;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.overlay-part-info{display:flex;flex-direction:column;gap:2px}.overlay-part-name{margin:0;font-size:20px;font-weight:700;color:#0f172a}.overlay-part-id{font-size:13px;color:#64748b}.overlay-status{font-size:14px;padding:6px 14px}.overlay-arrow-container{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;margin:20px 0}.overlay-arrow{display:flex;align-items:center;justify-content:center;width:160px;height:80px;color:#fff;filter:drop-shadow(0 2px 8px rgba(0,0,0,.4));transition:transform .3s ease}.overlay-arrow svg{width:100%;height:100%}.overlay-arrow-label{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 16px;background:#fffffff2;border-radius:10px;box-shadow:0 4px 16px #00000026;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.overlay-arrow-magnitude{font-size:24px;font-weight:700;color:#0f172a}.overlay-arrow-vector{font-size:13px;color:#64748b;font-family:SF Mono,Monaco,monospace}.overlay-sim-status{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:12px;margin:0 auto;max-width:280px;box-shadow:0 4px 16px #00000026;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.overlay-sim-badge{font-size:16px;font-weight:700;padding:8px 16px;border-radius:8px;min-width:60px;text-align:center}.overlay-sim-text{font-size:14px;font-weight:500}.overlay-sim-pass{background:#dcfce7f2}.overlay-sim-pass .overlay-sim-badge{background:#166534;color:#fff}.overlay-sim-pass .overlay-sim-text{color:#166534}.overlay-sim-fail{background:#fee2e2f2}.overlay-sim-fail .overlay-sim-badge{background:#b91c1c;color:#fff}.overlay-sim-fail .overlay-sim-text{color:#b91c1c}.overlay-sim-pending{background:#f1f5f9f2}.overlay-sim-pending .overlay-sim-badge{background:#64748b;color:#fff}.overlay-sim-pending .overlay-sim-text{color:#475569}.overlay-sim-na{background:#f1f5f9f2}.overlay-sim-na .overlay-sim-badge{background:#94a3b8;color:#fff}.overlay-sim-na .overlay-sim-text{color:#64748b}.overlay-completion{display:flex;flex-direction:column;align-items:center;gap:8px;margin:16px auto;padding:12px 20px;background:#dcfce7f2;border-radius:12px;box-shadow:0 4px 16px #00000026;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.overlay-completion-badge{font-size:14px;font-weight:700;color:#166534;text-transform:uppercase;letter-spacing:.05em}.overlay-completion-note{font-size:12px;color:#475569;font-style:italic;text-align:center;max-width:240px}.overlay-actions{display:flex;flex-direction:column;gap:10px;margin-top:auto}.overlay-button{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px 20px;border:none;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:background .2s ease,transform .1s ease;-webkit-tap-highlight-color:transparent}.overlay-button:active:not([disabled]){transform:scale(.98)}.overlay-button:disabled{opacity:.5;cursor:not-allowed}.overlay-button-icon{font-size:18px}.overlay-button-back{background:#fffffff2;color:#1f2937;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.overlay-button-back:active{background:#f1f5f9f2}.overlay-button-simulate{background:#2563eb;color:#fff}.overlay-button-simulate:active:not([disabled]){background:#1d4ed8}.overlay-button-simulate.simulated{background:#059669}.overlay-button-simulate.simulated:active{background:#047857}.overlay-button-complete{background:#16a34a;color:#fff}.overlay-button-complete:active:not([disabled]){background:#15803d}.overlay-button-complete.completed{background:#94a3b8;cursor:default}.part-overlay-button{border:none;border-radius:8px;padding:8px 12px;background:#2563eb;color:#fff;font-size:12px;font-weight:600;cursor:pointer;transition:background .2s ease;white-space:nowrap}.part-overlay-button:hover{background:#1d4ed8}.part-overlay-button.completed{background:#059669}.part-overlay-button.completed:hover{background:#047857}@media (max-width: 480px){.overlay-header{padding:10px 14px}.overlay-part-name{font-size:18px}.overlay-arrow-magnitude{font-size:20px}.overlay-button{padding:12px 16px;font-size:15px}}@media (max-height: 500px) and (orientation: landscape){.overlay-content{flex-direction:row;flex-wrap:wrap;gap:12px;align-items:flex-start}.overlay-header{flex:1 1 auto;min-width:200px}.overlay-arrow-container{flex:0 0 auto;margin:0}.overlay-sim-status{margin:0}.overlay-actions{flex-direction:row;flex:1 1 100%;margin-top:12px}.overlay-button{flex:1}}@media print{.page-header,.header-actions,.run-button,.dataset-select,.export-panel,.simulate-button,.reset-button,.reset-all-button,.part-button,.raw-json,.error-banner{display:none!important}body{background:#fff;color:#000;font-size:11pt;line-height:1.4}.page-content{display:block;padding:0;gap:0}.panel{border:1px solid #cccccc;border-radius:0;margin-bottom:16pt;page-break-inside:avoid;box-shadow:none;min-height:auto}.panel-body{border:none;background:#fff;padding:8pt}.panel h2{font-size:14pt;margin-bottom:8pt;border-bottom:1px solid #cccccc;padding-bottom:4pt}.badge{border:1px solid #000000;background:#fff!important;color:#000!important;padding:2pt 6pt;font-size:9pt}.badge.ok{border-color:#166534}.badge.pending{border-color:#1d4ed8}.badge.clamped{border-color:#92400e}.badge.blocked{border-color:#b91c1c}.badge.needs_review{border-color:#6d28d9}.simulation-badge{border:1px solid #000000;background:#fff!important;color:#000!important}.simulation-badge.pass{border-color:#166534}.simulation-badge.fail{border-color:#b91c1c}.alignment-table{font-size:10pt}.alignment-table th,.alignment-table td{padding:4pt 6pt;border:1px solid #cccccc}.alignment-table th{background:#f0f0f0}.part-list{list-style:disc;padding-left:20pt}.part-list li{margin-bottom:4pt}.status-details{font-size:10pt}.constraints-grid,.simulation-grid{gap:8pt}.constraints-section,.simulation-section{border:1px solid #cccccc;border-radius:0}.placeholder{color:#666;font-style:italic}body:before{content:"Directive Engine Report";display:block;font-size:18pt;font-weight:700;margin-bottom:12pt;text-align:center}.alignment-panel,.simulation-panel{page-break-before:auto}}.mode-select{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:#475569}.mode-select select{border:1px solid #cbd5f5;border-radius:8px;padding:6px 10px;background:#fff;font-weight:600;color:#1f2937}.runbook-progress{margin:16px 32px 0;padding:16px 20px;background:#fff;border:1px solid #e2e8f0;border-radius:12px}.progress-header{display:flex;align-items:center;gap:16px;margin-bottom:10px}.progress-label{font-weight:600;color:#1f2937;font-size:14px}.progress-count{font-size:14px;color:#64748b}.progress-percent{font-weight:700;color:#2563eb;font-size:14px;margin-left:auto}.progress-bar{width:100%;height:8px;background:#e2e8f0;border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#2563eb,#059669);border-radius:4px;transition:width .3s ease}.runbook-calibration-card{margin:12px 32px 0;padding:14px 20px;background:#fff;border:1px solid #e2e8f0;border-radius:12px}.calibration-header{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.calibration-label{font-weight:600;color:#1f2937;font-size:14px}.calibration-rms{font-weight:700;color:#2563eb;font-size:16px}.calibration-rms-unit{font-size:13px;color:#64748b}.calibration-rms-comparison{display:flex;align-items:center;gap:12px;margin-top:10px;padding:10px 12px;background:#f8fafc;border-radius:8px;flex-wrap:wrap}.rms-before,.rms-after{display:flex;align-items:baseline;gap:4px}.rms-label{font-size:11px;font-weight:600;text-transform:uppercase;color:#64748b}.rms-before .rms-value{font-weight:700;font-size:15px;color:#94a3b8}.rms-after .rms-value{font-weight:700;font-size:15px;color:#2563eb}.rms-after.pass .rms-value{color:#16a34a}.rms-after.fail .rms-value{color:#dc2626}.rms-unit{font-size:12px;color:#94a3b8}.rms-arrow{color:#cbd5e1;font-size:16px;font-weight:700}.rms-improvement{font-size:12px;font-weight:600;color:#16a34a;padding:2px 8px;background:#dcfce7;border-radius:10px}.rms-improvement:empty{display:none}.rms-tolerance{display:flex;align-items:center;gap:4px;margin-left:auto;font-size:12px;color:#64748b;border-left:1px solid #e2e8f0;padding-left:12px}.rms-tolerance-label{font-weight:500}.rms-tolerance-value{font-weight:600;color:#059669}.calibration-warning{margin-top:8px;padding:8px 12px;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;color:#dc2626;font-size:13px;font-weight:500}.calibration-na{color:#94a3b8;font-style:italic;font-size:13px}.calibration-top-anchors{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.calibration-anchor-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:16px;font-size:12px}.calibration-anchor-chip.outlier{background:#fef2f2;border-color:#fecaca}.calibration-anchor-id{font-weight:600;color:#334155}.calibration-anchor-residual{color:#64748b}.calibration-anchor-chip.outlier .calibration-anchor-residual{color:#dc2626;font-weight:600}.calibration-details{margin-top:12px}.calibration-toggle{font-size:12px;color:#2563eb;cursor:pointer;font-weight:500}.calibration-toggle:hover{text-decoration:underline}.calibration-table-wrapper{margin-top:10px;max-height:200px;overflow-y:auto}.calibration-table{width:100%;border-collapse:collapse;font-size:12px}.calibration-table th,.calibration-table td{padding:6px 10px;text-align:left;border-bottom:1px solid #e2e8f0}.calibration-table th{font-weight:600;color:#64748b;background:#f8fafc;position:sticky;top:0}.calibration-table td.numeric,.calibration-table th.numeric{text-align:right}.calibration-table tr.outlier td{background:#fef2f2;color:#dc2626;font-weight:500}.calibration-table tr.excluded td{opacity:.5;text-decoration:line-through}.calibration-table tr.excluded td:first-child{text-decoration:none;opacity:1}.calibration-table th.include-col,.calibration-table td.include-col{width:56px;text-align:center}.calibration-table .anchor-include-checkbox{width:16px;height:16px;cursor:pointer;accent-color:#2563eb}.calibration-table .anchor-include-checkbox:disabled{cursor:not-allowed;opacity:.5}.calibration-error{margin-top:8px;padding:8px 12px;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;color:#dc2626;font-size:13px;font-weight:500}.calibration-anchor-chip.excluded{opacity:.5;text-decoration:line-through}@media (max-width: 600px){.runbook-calibration-card{margin:10px 12px 0;padding:12px 14px}.calibration-header{gap:6px}.calibration-label{font-size:13px}.calibration-rms{font-size:15px}.calibration-warning{margin-top:6px;padding:6px 10px;font-size:12px}.calibration-top-anchors{gap:6px;margin-top:8px}.calibration-anchor-chip{padding:3px 8px;font-size:11px}.calibration-table-wrapper{max-height:160px}.calibration-table{font-size:11px}.calibration-table th,.calibration-table td{padding:5px 8px}}.runbook-nav{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:12px}.nav-button{border:1px solid #e2e8f0;border-radius:8px;padding:8px 16px;background:#fff;color:#1f2937;font-weight:600;font-size:13px;cursor:pointer;transition:background .2s ease,border-color .2s ease}.nav-button:hover:not([disabled]){background:#f1f5f9;border-color:#cbd5e1}.nav-button:disabled{opacity:.5;cursor:not-allowed}.nav-step{font-size:14px;color:#64748b;min-width:100px;text-align:center}.step-view{padding:24px 32px;display:flex;justify-content:center}.step-card{max-width:600px;width:100%;background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:24px;box-shadow:0 4px 24px #0f172a14}.step-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid #e2e8f0}.step-part-name{margin:0;font-size:20px;color:#0f172a}.step-content{display:grid;gap:16px;margin-bottom:20px}.step-content-section{background:#f8fafc;border:1px dashed #cbd5f5;border-radius:10px;padding:14px}.step-content-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#64748b;margin-bottom:6px}.step-content-value{font-size:14px;color:#1f2937;line-height:1.5}.step-actions-bar{display:flex;align-items:center;gap:12px;padding:16px 0;border-top:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0}.step-complete-btn{flex:1;border:none;border-radius:10px;padding:12px 20px;background:#2563eb;color:#fff;font-weight:600;font-size:14px;cursor:pointer;transition:background .2s ease}.step-complete-btn:hover{background:#1d4ed8}.step-complete-btn.is-completed{background:#059669}.step-complete-btn.is-completed:hover{background:#047857}.step-notes{margin-top:16px}.step-notes label{display:block;font-size:12px;font-weight:600;color:#64748b;margin-bottom:6px}.step-notes textarea{width:100%;border:1px solid #e2e8f0;border-radius:8px;padding:10px 12px;font-family:inherit;font-size:14px;resize:vertical;background:#f8fafc}.step-notes textarea:focus{outline:none;border-color:#2563eb;background:#fff}.overlay-view{position:fixed;bottom:24px;right:24px;z-index:1000}.overlay-card{min-width:280px;max-width:360px;background:#0f172af2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:16px;padding:16px 20px;color:#f1f5f9;box-shadow:0 8px 32px #0000004d}.overlay-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.overlay-part{font-weight:700;font-size:15px;color:#fff}.overlay-action{font-size:14px;color:#cbd5e1;margin-bottom:8px}.overlay-delta{font-size:13px;color:#94a3b8;font-family:SF Mono,Monaco,Consolas,monospace;margin-bottom:16px}.overlay-nav{display:flex;align-items:center;justify-content:center;gap:12px}.overlay-nav-btn{width:40px;height:40px;border:1px solid rgba(255,255,255,.2);border-radius:50%;background:transparent;color:#fff;font-size:18px;cursor:pointer;transition:background .2s ease,border-color .2s ease;display:flex;align-items:center;justify-content:center}.overlay-nav-btn:hover{background:#ffffff1a;border-color:#ffffff4d}.overlay-nav-btn:disabled{opacity:.3;cursor:not-allowed}.overlay-complete-btn{width:50px;height:50px;border:2px solid #059669;border-radius:50%;background:transparent;color:#059669;font-size:24px;cursor:pointer;transition:background .2s ease,color .2s ease;display:flex;align-items:center;justify-content:center}.overlay-complete-btn:hover,.overlay-complete-btn.is-completed{background:#059669;color:#fff}body.mode-step .page-content,body.mode-overlay .page-content{display:none}body.mode-runbook .page-content{display:grid}body.mode-viewer .runbook-progress,body.mode-step .runbook-progress,body.mode-overlay .runbook-progress,body.mode-viewer .step-view,body.mode-runbook .step-view,body.mode-overlay .step-view,body.mode-viewer .overlay-view,body.mode-runbook .overlay-view,body.mode-step .overlay-view{display:none}.part-button .completion-check{width:20px;height:20px;border:2px solid #e2e8f0;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;color:transparent;flex-shrink:0;margin-right:8px}.part-button.is-completed .completion-check{border-color:#059669;background:#059669;color:#fff}body.mode-runbook .part-button{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px}body.mode-runbook .part-meta{grid-column:2}.runbook-layout{display:grid;grid-template-columns:minmax(320px,400px) 1fr;gap:24px;padding:24px 32px;min-height:calc(100vh - 200px)}@media (max-width: 900px){.runbook-layout{grid-template-columns:1fr}}.runbook-step-table-container{background:#fff;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden;max-height:calc(100vh - 260px);overflow-y:auto}.runbook-step-table{width:100%;border-collapse:collapse;font-size:13px}.runbook-step-table th,.runbook-step-table td{padding:10px 12px;border-bottom:1px solid #e2e8f0;text-align:left}.runbook-step-table th{background:#f8fafc;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#64748b;position:sticky;top:0;z-index:1}.runbook-step-table tbody tr{cursor:pointer;transition:background .15s ease}.runbook-step-table tbody tr:hover{background:#f1f5f9}.runbook-step-table tbody tr.is-selected{background:#dbeafe}.runbook-step-table tbody tr.is-completed{background:#dcfce7}.runbook-step-table tbody tr.is-completed.is-selected{background:#bbf7d0}.runbook-step-table tbody tr.is-escalated{background:#fef3c7}.runbook-step-table tbody tr.is-escalated.is-selected{background:#fde68a}.runbook-step-table tbody tr:last-child td{border-bottom:none}.runbook-sim-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:4px;font-size:10px;font-weight:700;text-transform:uppercase}.runbook-sim-badge.pass{background:#dcfce7;color:#166534}.runbook-sim-badge.fail{background:#fee2e2;color:#b91c1c}.runbook-sim-badge.pending{background:#e2e8f0;color:#64748b}.runbook-sim-badge.na{background:#f1f5f9;color:#94a3b8}.runbook-done-check{width:20px;height:20px;border:2px solid #cbd5e1;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:12px;color:transparent;background:#fff}.runbook-done-check.is-done{background:#059669;border-color:#059669;color:#fff}.runbook-done-check.is-escalated{background:#f59e0b;border-color:#f59e0b;color:#fff}.runbook-detail{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:20px;display:flex;flex-direction:column;gap:16px}.runbook-detail-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:12px;border-bottom:1px solid #e2e8f0}.runbook-detail-part{margin:0;font-size:18px;color:#0f172a}.runbook-detail-body{flex:1;display:flex;flex-direction:column;gap:16px}.runbook-detail-section{background:#f8fafc;border:1px dashed #cbd5e1;border-radius:8px;padding:12px}.runbook-detail-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#64748b;margin-bottom:6px}.runbook-detail-value{font-size:14px;color:#1f2937;line-height:1.5}.runbook-detail-actions{display:flex;flex-direction:column;gap:12px;padding-top:12px;border-top:1px solid #e2e8f0}.runbook-completion-controls{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.runbook-mark-complete-btn{border:none;border-radius:8px;padding:10px 20px;background:#2563eb;color:#fff;font-weight:600;font-size:14px;cursor:pointer;transition:background .2s ease,opacity .2s ease}.runbook-mark-complete-btn:hover:not([disabled]){background:#1d4ed8}.runbook-mark-complete-btn:disabled{background:#94a3b8;cursor:not-allowed;opacity:.6}.runbook-mark-complete-btn.is-completed{background:#059669}.runbook-mark-complete-btn.is-completed:hover{background:#047857}.runbook-override-btn{border:1px solid #f59e0b;border-radius:8px;padding:10px 16px;background:#fff;color:#b45309;font-weight:600;font-size:13px;cursor:pointer;transition:background .2s ease}.runbook-override-btn:hover{background:#fef3c7}.runbook-escalate-btn{border:1px solid #dc2626;border-radius:8px;padding:10px 16px;background:#fff;color:#dc2626;font-weight:600;font-size:13px;cursor:pointer;transition:background .2s ease}.runbook-escalate-btn:hover{background:#fee2e2}.runbook-completion-hint{font-size:12px;color:#64748b;font-style:italic}.runbook-notes-section{display:flex;flex-direction:column;gap:6px}.runbook-notes-section label{font-size:12px;font-weight:600;color:#64748b}#runbook-notes{width:100%;border:1px solid #e2e8f0;border-radius:8px;padding:10px 12px;font-family:inherit;font-size:14px;resize:vertical;background:#f8fafc}#runbook-notes:focus{outline:none;border-color:#2563eb;background:#fff}.runbook-step-actions{display:flex;gap:10px}.runbook-reset-step-btn{border:1px solid #e2e8f0;border-radius:8px;padding:8px 14px;background:#fff;color:#64748b;font-weight:600;font-size:12px;cursor:pointer;transition:background .2s ease,border-color .2s ease}.runbook-reset-step-btn:hover{background:#f1f5f9;border-color:#cbd5e1}.reset-run-btn{border:1px solid #fca5a5;border-radius:8px;padding:6px 12px;background:#fff;color:#dc2626;font-weight:600;font-size:12px;cursor:pointer;transition:background .2s ease,border-color .2s ease;margin-left:auto}.reset-run-btn:hover{background:#fef2f2;border-color:#f87171}body.mode-runbook .runbook-layout{display:grid}body.mode-viewer .runbook-layout,body.mode-step .runbook-layout,body.mode-overlay .runbook-layout,body.mode-runbook .page-content{display:none}
