/* Consultation editor: clear ownership, explicit dependencies, reviewable execution. */
.cm-mask { position:fixed; inset:0; z-index:1200; display:grid; place-items:center; padding:24px; background:rgba(18,32,52,.48); backdrop-filter:blur(7px); }
.cm-dialog { width:min(1160px,100%); max-height:calc(100dvh - 48px); display:flex; flex-direction:column; background:#fff; color:#23344c; border:1px solid #e3e8ef; border-radius:18px; box-shadow:0 26px 90px #0d203b30; overflow:hidden; font-size:13px; }
.cm-dialog button,.cm-dialog input,.cm-dialog select,.cm-dialog textarea { font:inherit; }
.cm-header { display:flex; align-items:flex-start; justify-content:space-between; padding:24px 28px 20px; background:linear-gradient(110deg,#f6f8fc,#fff); border-bottom:1px solid #e9edf3; flex:none; }
.cm-eyebrow { font-size:11px; color:#8090a5; letter-spacing:.7px; margin-bottom:8px; }
.cm-header h2 { display:flex; align-items:center; gap:12px; font-size:23px; font-weight:650; letter-spacing:.3px; }
.cm-header h2 span { font-size:11px; font-weight:500; color:#526d96; border:1px solid #dce5f2; background:#edf3fb; padding:4px 9px; border-radius:20px; }
.cm-header p { color:#77869b; font-size:12px; margin-top:7px; line-height:1.6; }
.cm-close { border:0; background:transparent; color:#8693a5; font-size:28px!important; padding:0 3px; line-height:1; cursor:pointer; }
.cm-brief { padding:16px 28px 12px; flex:none; border-bottom:1px solid #edf0f5; }
.cm-brief>label,.cm-step-editor>label,.cm-output>label { display:block; color:#42546f; font-weight:600; font-size:12px; margin:0 0 7px; }
.cm-brief label span,.cm-step-editor label span,.cm-dependencies legend span { font-weight:400; font-size:10px; color:#98a3b3; margin-left:7px; }
.cm-dialog textarea,.cm-dialog select { width:100%; border:1px solid #dce3ec; border-radius:7px; color:#31445f; background:#fff; padding:9px 11px; outline:none; font-size:12px; line-height:1.65; transition:border-color .15s,box-shadow .15s; }
.cm-dialog textarea { resize:vertical; min-height:54px; max-height:130px; }
.cm-dialog textarea::placeholder { color:#a1aab7; }
.cm-dialog textarea:focus,.cm-dialog select:focus { border-color:#648de2; box-shadow:0 0 0 3px #2460d610; }
.cm-dialog button:focus-visible,.cm-dialog input:focus-visible,.cm-dialog summary:focus-visible { outline:2px solid #5687e8; outline-offset:3px; }
.cm-brief details { margin-top:8px; }.cm-brief summary { font-size:11px; color:#637994; cursor:pointer; }.cm-brief summary span { color:#a1aab8; margin-left:8px; font-size:10px; }.cm-brief details textarea { margin-top:9px; }
.cm-template-bar { display:flex; align-items:center; gap:14px; padding:12px 28px; border-bottom:1px solid #e5eaf2; flex:none; }
.cm-template-bar>span:first-child { color:#6c7c91; font-size:11px; }.cm-template-bar>div { display:flex; gap:5px; padding:3px; border-radius:8px; background:#f2f5f9; }
.cm-template { border:1px solid transparent; border-radius:6px; padding:6px 14px; color:#718098; background:transparent; cursor:pointer; font-size:11px!important; }.cm-template:hover { color:#315b9f; }.cm-template.is-active { color:#265ec5; border-color:#dce6f6; background:#fff; box-shadow:0 1px 3px #28456b0c; }
.cm-mode-note { margin-left:auto; font-size:10px; color:#8b98ab; }
.cm-workspace { display:grid; grid-template-columns:240px minmax(300px,1fr) 282px; min-height:0; overflow:auto; }
.cm-roster { padding:20px 16px; border-right:1px solid #e9edf3; background:#fbfcfe; }
.cm-section-heading { display:flex; align-items:center; justify-content:space-between; gap:6px; margin-bottom:16px; }.cm-section-heading h3 { font-size:12px; font-weight:600; }.cm-section-heading>span { font-size:9px; color:#99a5b6; }
.cm-roster .cm-section-heading { flex-direction:column; align-items:flex-start; gap:5px; }
.cm-roster ol { list-style:none; padding:0; display:grid; gap:8px; }
.cm-member { display:flex; align-items:stretch; border:1px solid #e4e9f1; border-radius:9px; background:#fff; transition:border-color .15s; }.cm-member.is-active { border-color:#9bb9ed; box-shadow:0 0 0 2px #3b73d707; background:#f4f8ff; }
.cm-member-select { display:flex; align-items:center; gap:10px; flex:1; min-width:0; border:0; text-align:left; background:transparent; padding:13px 8px 13px 12px; cursor:pointer; color:#3a4d68; }
.cm-member-select strong { display:block; font-size:11px; font-weight:600; line-height:1.6; }.cm-member-select small { display:block; font-size:9px; color:#93a0b3; margin-top:3px; }
.cm-order { color:#8797b1; font-size:11px; font-variant-numeric:tabular-nums; }.is-active .cm-order { color:#3169ca; }
.cm-order-actions { display:flex; flex-direction:column; justify-content:center; padding:5px; gap:3px; }.cm-order-actions button { width:22px; height:24px; padding:0; border:0; background:transparent; color:#7286a3; border-radius:4px; cursor:pointer; }.cm-order-actions button:hover:not(:disabled) { background:#e4edfb; color:#2c63c0; }.cm-order-actions button:disabled { opacity:.2; cursor:default; }
.cm-sort { margin-top:14px; border:1px dashed #d8e1ee; color:#647e9f; background:transparent; width:100%; padding:8px; border-radius:6px; cursor:pointer; font-size:10px!important; }.cm-sort:hover { background:#edf3fc; }.cm-roster-note { margin-top:10px; color:#a0aabb; font-size:10px; line-height:1.8; }
.cm-step-editor { padding:20px 24px; }.cm-step-title { display:flex; align-items:center; gap:12px; margin-bottom:23px; }.cm-step-number { display:grid; place-items:center; height:40px; width:40px; border-radius:10px; background:#edf3fc; color:#3968b6; font-size:16px; font-weight:600; }.cm-step-title div>span { color:#96a3b5; font-size:9px; }.cm-step-title h3 { margin-top:3px; font-size:16px; font-weight:600; }
.cm-step-editor>select,.cm-step-editor>textarea { margin-bottom:16px; }.cm-step-editor>label { font-size:11px; }
.cm-dependencies { border:0; margin:1px 0 17px; padding:0; }.cm-dependencies legend { font-size:11px; font-weight:600; color:#42546f; }.cm-dependencies>p { color:#94a0b1; font-size:10px; margin:7px 0 10px; }.cm-dependencies>div { display:grid; gap:6px; }
.cm-dependency { display:flex; align-items:center; gap:8px; padding:8px 9px; border:1px solid #e5eaf2; border-radius:6px; cursor:pointer; background:#fcfdff; }.cm-dependency:has(input:checked) { border-color:#bdd0ef; background:#f2f7ff; }.cm-dependency input { accent-color:#3069d3; width:13px; height:13px; }.cm-dependency span { font-size:10px; flex:1; }.cm-dependency small { color:#99a6b9; font-size:9px; }
.cm-field-help { margin:-9px 0 17px; color:#92a0b2; line-height:1.75; font-size:10px; }
.cm-preview { padding:20px 20px; background:#f8fafc; border-left:1px solid #e9edf3; }.cm-preview .is-valid { color:#368879; font-size:9px; }.cm-preview .is-invalid { color:#b88443; }
.cm-flow { list-style:none; padding:0; }.cm-flow li { position:relative; display:flex; gap:11px; padding-bottom:18px; }.cm-flow li:not(:last-child)::before { content:''; position:absolute; left:10px; top:24px; bottom:3px; width:1px; background:#d6dfeb; }.cm-flow-dot { flex:none; width:21px; height:21px; border-radius:50%; background:#e7eef9; border:1px solid #d5e0f1; color:#5a7aac; font-size:9px; display:grid; place-items:center; }.cm-flow li>div { padding-top:2px; min-width:0; }.cm-flow strong { display:block; font-size:11px; color:#465d7a; font-weight:600; }.cm-flow small { font-size:9px; display:block; color:#8192a8; margin-top:4px; }.cm-flow p { margin-top:6px; font-size:9px; line-height:1.65; color:#91a0b5; overflow-wrap:anywhere; }
.cm-output { border-top:1px solid #e1e7ef; padding-top:17px; margin-top:3px; }.cm-output label { font-size:10px; }.cm-output select { font-size:10px; padding:8px; margin-bottom:15px; }.cm-output p { font-size:10px; line-height:1.8; color:#91a0b4; }
.cm-validation { flex:none; border-top:1px solid #e9edf3; padding:9px 28px; font-size:10px; color:#7c8ba0; background:#fbfcfe; line-height:1.7; max-height:100px; overflow:auto; }.cm-validation.has-errors { color:#ab7237; background:#fff9ee; border-top-color:#f1dfbf; }.cm-validation ul { margin:3px 0 0 15px; }.cm-validation strong { font-weight:600; }
.cm-footer { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:16px 28px; border-top:1px solid #e9edf3; background:#fff; flex:none; }.cm-save-state { display:block; font-size:11px; color:#5d7694; }.cm-footer small { display:block; font-size:9px; color:#9aa7b8; margin-top:4px; }.cm-footer-actions { display:flex; align-items:center; gap:8px; }.cm-button { border:1px solid #dce4ef; border-radius:7px; background:#fff; color:#627794; padding:9px 16px; font-size:11px!important; cursor:pointer; white-space:nowrap; }.cm-button:hover:not(:disabled) { border-color:#a6bfe7; background:#f4f8ff; }.cm-primary { background:#245fcd; color:#fff; border-color:#245fcd; box-shadow:0 3px 8px #245fcd15; }.cm-primary:hover:not(:disabled) { background:#1c53bb; color:white; }.cm-button:disabled { opacity:.4; cursor:not-allowed; }
@media (max-width:1050px) { .cm-mask { padding:16px; }.cm-dialog { max-height:calc(100dvh - 32px); }.cm-workspace { grid-template-columns:210px minmax(260px,1fr); }.cm-preview { grid-column:1/-1; border-left:0; border-top:1px solid #e5ebf3; }.cm-flow { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }.cm-flow li::before { display:none; }.cm-output { display:grid; grid-template-columns:150px 1fr; gap:10px; align-items:center; }.cm-output p { grid-column:1/-1; }.cm-output select { margin:0; } }
@media (max-width:650px) { .cm-mask { padding:0; }.cm-dialog { width:100%; max-height:100dvh; height:100dvh; border-radius:0; border:0; }.cm-header { padding:17px 18px 13px; }.cm-header h2 { font-size:20px; }.cm-header p { font-size:10px; }.cm-eyebrow { font-size:9px; }.cm-brief { padding:12px 18px; }.cm-brief summary span { display:none; }.cm-template-bar { padding:10px 18px; flex-wrap:wrap; gap:8px; }.cm-template { padding:6px 10px; font-size:10px!important; }.cm-mode-note { display:none; }.cm-workspace { display:block; }.cm-roster { border-right:0; padding:15px 18px; }.cm-roster .cm-section-heading { flex-direction:row; }.cm-roster ol { grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; }.cm-member-select { padding:9px 5px; gap:6px; }.cm-member-select strong { font-size:10px; }.cm-member-select small { font-size:8px; }.cm-order-actions { padding:2px; }.cm-order-actions button { width:19px; }.cm-roster-note { display:none; }.cm-sort { margin-top:9px; }.cm-step-editor { padding:18px; }.cm-preview { padding:18px; }.cm-flow { grid-template-columns:repeat(2,minmax(0,1fr)); }.cm-validation { padding:8px 18px; font-size:9px; }.cm-footer { padding:12px 14px; }.cm-footer>div:first-child { display:none; }.cm-footer-actions { width:100%; justify-content:flex-end; }.cm-button { padding:10px 12px; font-size:10px!important; } }
@media (prefers-reduced-motion:reduce) { .cm-dialog * { transition:none!important; } }
