/* Opselith v3.4 — compact step-by-step workflow shell */
.os34-flow-nav{display:flex;align-items:stretch;gap:8px;margin:18px 0 22px;overflow-x:auto;scrollbar-width:thin}
.os34-flow-nav button{appearance:none;border:1px solid var(--border,#173744);background:rgba(5,24,34,.72);color:var(--muted,#86a9ba);border-radius:12px;padding:10px 12px;min-width:0;flex:1 1 0;text-align:left;display:grid;grid-template-columns:auto minmax(0,1fr);gap:9px;align-items:center;cursor:default;opacity:.58}
.os34-flow-nav button .os34-flow-index{font:700 10px/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.12em;color:#6f94a5}
.os34-flow-nav button .os34-flow-label{font-weight:700;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:inherit}
.os34-flow-nav button.is-active{opacity:1;border-color:#2d788d;background:rgba(8,40,52,.94);color:#effbff;box-shadow:inset 0 0 0 1px rgba(75,220,255,.08)}
.os34-flow-nav button.is-complete{opacity:.92;cursor:pointer;color:#c8fff0;border-color:#256956}
.os34-flow-nav button.is-complete .os34-flow-index{color:#66e4bc}
.os34-flow-nav button.is-unlocked:not(.is-active):not(.is-complete){opacity:.8;cursor:pointer}
.os34-flow-nav button:disabled{cursor:not-allowed}
.os34-flow-progress{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:-10px 0 18px;color:var(--muted,#86a9ba);font-size:12px}
.os34-flow-progress strong{color:#d8eef7;font-weight:700}
.os34-flow-panel[hidden]{display:none!important}
.os34-flow-panel{animation:os34-flow-in .16s ease-out}
@keyframes os34-flow-in{from{opacity:.55;transform:translateY(3px)}to{opacity:1;transform:none}}
.os34-flow-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:20px;padding-top:16px;border-top:1px solid rgba(58,105,122,.24)}
.os34-flow-actions .os34-flow-action-right{display:flex;align-items:center;gap:8px;margin-left:auto}
.os34-flow-actions button[disabled]{opacity:.45;cursor:not-allowed}
.os34-flow-resume{display:none;margin:0 0 16px;padding:10px 12px;border:1px solid rgba(57,119,135,.35);border-radius:10px;background:rgba(7,30,40,.55);font-size:12px;color:#9fc1cf}
.os34-flow-resume.is-visible{display:block}
.os34-flow-resume strong{color:#e8f8ff}
.os34-runbook-shell .os30-guide-steps{margin-top:0}
.os34-runbook-shell .os30-guide-step{display:none}
.os34-runbook-shell .os30-guide-step.is-active{display:block}
.os34-runbook-shell .os34-guide-step-disclosure{display:block}
.os34-runbook-shell .os34-guide-step-disclosure>summary{display:none}
.os34-runbook-shell .os34-guide-step-body{padding-top:0}
.os34-runbook-complete{display:flex;align-items:center;gap:11px;margin-top:18px;padding:13px 14px;border:1px solid rgba(54,116,132,.32);border-radius:11px;background:rgba(5,24,34,.55);cursor:pointer}
.os34-runbook-shell .os34-runbook-complete input[type="checkbox"]{appearance:none!important;-webkit-appearance:none!important;width:20px!important;height:20px!important;min-width:20px!important;max-width:20px!important;padding:0!important;flex:0 0 20px!important;margin:0!important;border:1px solid #4c7888;border-radius:6px!important;background:#061923 center/12px 12px no-repeat;box-shadow:inset 0 0 0 1px rgba(255,255,255,.025);cursor:pointer;transition:border-color .14s ease,background-color .14s ease,box-shadow .14s ease}
.os34-runbook-complete input:checked{border-color:#5ee4bc;background-color:#0c3a31;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23d8fff2' stroke-width='2.3' stroke-linecap='round' stroke-linejoin='round' d='m3 8.2 3.1 3.1L13 4.8'/%3E%3C/svg%3E");box-shadow:0 0 0 3px rgba(94,228,188,.08)}
.os34-runbook-complete input:focus-visible{outline:2px solid #7ce8ff;outline-offset:3px}
.os34-runbook-complete input:disabled{cursor:default;opacity:.82}
.os34-runbook-complete span{font-size:13px;line-height:1.4;color:#c8dfe8}
@media(hover:hover) and (pointer:fine){.os34-runbook-complete:hover{border-color:rgba(78,145,162,.52);background:rgba(7,30,40,.7)}}
@media(max-width:820px){.os34-flow-nav{gap:6px}.os34-flow-nav button{padding:9px 10px;flex:0 0 auto;min-width:118px}.os34-flow-actions{align-items:stretch;flex-wrap:wrap}.os34-flow-actions button,.os34-flow-actions .btn{min-height:42px}.os34-flow-action-right{width:100%;justify-content:flex-end}}
@media(max-width:560px){.os34-flow-nav button{min-width:104px}.os34-flow-nav button .os34-flow-label{font-size:12px}.os34-flow-progress{font-size:11px}.os34-flow-actions{display:grid;grid-template-columns:1fr 1fr}.os34-flow-actions .os34-flow-action-right{display:contents}.os34-flow-actions .os34-flow-wide{grid-column:1/-1}}
/* Tool-specific layout normalization after step segmentation */
.csv-tool-workspace>.os34-flow-panel-inner,.migration-map-workspace>.os34-flow-panel-inner{min-width:0}
.os34-converter-flow-grid{display:block!important}
.os34-converter-flow-grid>.converter-input-panel,.os34-converter-flow-grid>.converter-config-panel,.os34-converter-flow-grid>.converter-output-panel{width:100%;min-width:0}
.os34-password-step-grid{display:block!important}
.os34-password-step-grid>.password-panel{width:100%;min-width:0}
.os34-password-generate-step{min-height:220px;display:flex;flex-direction:column;justify-content:center}
.os34-csv-doctor-review{display:grid;gap:18px}
.os34-flow-panel-inner>.workspace-divider:first-child{display:none}
.migration-map-workspace>.os34-flow-nav,.migration-map-workspace>.os34-flow-progress{margin-left:0;margin-right:0}
@media(max-width:820px){.os34-password-generate-step{min-height:0}}
/* v3.4 workflow script workspace — lazy local generator, no navigation away */
.os34-workflow-script-open{margin-top:4px}
.os34-script-prepared-note{margin:14px 0 0;color:#8fd9c4;font-size:12px}
.os34-script-dialog{width:min(980px,calc(100% - 32px));max-height:calc(100% - 32px);padding:0;border:1px solid #245164;border-radius:16px;background:#071923;color:#eaf7fc;box-shadow:0 24px 80px rgba(0,0,0,.48)}
.os34-script-dialog::backdrop{background:rgba(0,8,13,.72);backdrop-filter:blur(4px)}
.os34-script-dialog-shell{padding:22px;overflow:auto;max-height:calc(100vh - 48px)}
.os34-script-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding-bottom:16px;border-bottom:1px solid rgba(73,128,145,.28)}
.os34-script-dialog-head h2{margin:5px 0 4px;font-size:24px}.os34-script-dialog-head p{margin:0;color:#9bbbc8;max-width:680px}
.os34-script-dialog-close{appearance:none;border:1px solid #28566a;background:#0a202b;color:#eaf7fc;width:42px;height:42px;flex:0 0 42px;border-radius:10px;font-size:25px;line-height:1;cursor:pointer}
.os34-script-dialog-status{margin:16px 0;padding:11px 12px;border:1px solid rgba(63,126,142,.35);border-radius:10px;background:#081e29;color:#a9d9e8}
.os34-script-facts{display:grid;grid-template-columns:1fr 1.6fr .8fr;gap:8px;margin:16px 0}.os34-script-facts>span{display:grid;gap:4px;padding:11px 12px;border:1px solid rgba(59,112,129,.3);border-radius:10px;background:#071c26;min-width:0}.os34-script-facts small{font:700 9px/1.2 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.1em;color:#6f9cac;text-transform:uppercase}.os34-script-facts strong{font-size:12px;overflow-wrap:anywhere}
.os34-script-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.os34-script-field,.os34-script-target{display:grid;gap:6px;padding:12px;border:1px solid rgba(58,108,124,.3);border-radius:10px;background:#071b25;min-width:0}.os34-script-field>span,.os34-script-target>span{font-size:12px;font-weight:700}.os34-script-field small{color:#86a9b8;font-size:11px}.os34-script-field input:not([type=checkbox]),.os34-script-field select,.os34-script-target select{width:100%;min-height:42px}.os34-script-check{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:center}.os34-script-check input{width:18px!important;height:18px!important;margin:0}.os34-script-check small{grid-column:2}
.os34-script-target{margin-top:10px}.os34-script-errors{margin-top:10px;padding:10px 12px;border:1px solid #744548;border-radius:10px;color:#ffb3b8;background:#201115}.os34-script-errors>div+div{margin-top:5px}
.os34-script-dialog-actions,.os34-script-output-actions{display:flex;gap:8px;flex-wrap:wrap}.os34-script-dialog-actions{margin-top:14px}.os34-script-output-wrap{margin-top:18px;padding-top:18px;border-top:1px solid rgba(73,128,145,.28)}.os34-script-output-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:10px}.os34-script-output-head h3{margin:4px 0 0}.os34-script-output{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.os34-script-output-wrap textarea{width:100%;min-height:280px;max-height:420px;resize:vertical;font:12px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace}.os34-script-after{margin:9px 0 0;color:#9bbbc8;font-size:12px}
@media(max-width:720px){.os34-script-dialog{width:calc(100% - 18px);max-height:calc(100% - 18px)}.os34-script-dialog-shell{padding:15px;max-height:calc(100vh - 28px)}.os34-script-facts,.os34-script-fields{grid-template-columns:1fr}.os34-script-output-head{align-items:flex-start;flex-direction:column}.os34-script-dialog-actions .btn,.os34-script-output-actions .btn{min-height:44px}}

/* v3.4 DEV9 — completed steps reopen as quiet floating review windows. */
.os34-flow-nav button.is-unlocked:not(.is-active):not(.is-complete){opacity:.5;cursor:default}
.os34-step-review-dialog{width:min(980px,calc(100% - 32px));max-height:calc(100% - 32px);padding:0;border:1px solid #245164;border-radius:16px;background:#071923;color:#eaf7fc;box-shadow:0 24px 80px rgba(0,0,0,.48)}
.os34-step-review-dialog::backdrop{background:rgba(0,8,13,.72);backdrop-filter:blur(4px)}
.os34-step-review-shell{max-height:calc(100vh - 48px);overflow:auto;padding:20px}
.os34-step-review-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:16px;padding-bottom:15px;border-bottom:1px solid rgba(73,128,145,.28)}
.os34-step-review-head>div{min-width:0}.os34-step-review-head span{font:800 9px/1.2 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.12em;color:#67dbc7}.os34-step-review-head h2{margin:5px 0 4px;font-size:22px}.os34-step-review-head p{margin:0;color:#9bbbc8;font-size:12px;line-height:1.45;max-width:650px}
.os34-step-review-close{appearance:none;border:1px solid #28566a;background:#0a202b;color:#eaf7fc;width:42px;height:42px;flex:0 0 42px;border-radius:10px;font-size:25px;line-height:1;cursor:pointer}
.os34-step-review-body>.os34-flow-panel{display:block!important;animation:none}.os34-step-review-body .os34-flow-actions{display:none!important}.os34-step-review-body input:disabled,.os34-step-review-body select:disabled,.os34-step-review-body textarea:disabled,.os34-step-review-body button:disabled{opacity:.82}
@media(max-width:720px){.os34-step-review-dialog{width:calc(100% - 18px);max-height:calc(100% - 18px)}.os34-step-review-shell{padding:14px;max-height:calc(100vh - 28px)}.os34-step-review-head h2{font-size:20px}}

/* DEV13: the stepper already shows the active step; only show progress text after something is completed. */
.os34-flow-progress[hidden]{display:none!important}
/* DEV14: a project with an existing mapping summary opens on the saved result first, not on a misleading fresh-upload step. */
.os34-flow-saved-result{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 16px;padding:15px 16px;border:1px solid rgba(57,119,135,.42);border-radius:11px;background:rgba(7,30,40,.62)}
.os34-flow-saved-result>div:first-child{display:grid;gap:4px;min-width:0}.os34-flow-saved-result h2{margin:0;font-size:18px}.os34-flow-saved-result p{margin:0;color:#9fc1cf;font-size:13px;line-height:1.45}.os34-flow-saved-actions{flex:0 0 auto}.os34-mapping-saved-gate>.os34-flow-nav,.os34-mapping-saved-gate>.os34-flow-progress,.os34-mapping-saved-gate>.os34-flow-resume,.os34-mapping-saved-gate>.os34-flow-panel{display:none!important}
@media(max-width:620px){.os34-flow-saved-result{display:grid}.os34-flow-saved-actions .btn{width:100%}}
