.setlist-companions,.setlist-companion-dialog{--companion-accent:var(--purple,#61417e);--companion-soft:var(--purple-soft,var(--concert-selected,#f0eaf6))}
.setlist-companions[data-companion-module=festival],.setlist-companion-dialog[data-companion-module=festival]{--companion-accent:var(--festival-blue,#164acb);--companion-soft:#edf3ff}
.setlist-companions{display:flex;flex-direction:column;gap:12px;min-width:0;color:#19283f}
.setlist-companions h3,.setlist-companions h4,.setlist-companions p{margin:0;overflow-wrap:anywhere}
.companion-heading,.companion-card-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.companion-heading h3{font-size:17px}.companion-card-heading h4{font-size:16px}
.companion-intro,.companion-children{font-size:13px;line-height:1.5;color:#526176}
.companion-list{display:grid;gap:12px}.companion-card{background:#fff;border:1px solid #dfe5ee;border-radius:10px;padding:16px;display:flex;flex-direction:column;gap:7px}
.companion-stage{font-size:12px;padding:4px 8px;border-radius:6px;background:var(--companion-soft);color:var(--companion-accent);white-space:normal}
.companion-payment-status{font-size:13px;font-weight:600}.companion-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.companion-installment-preview,.companion-installments{display:grid;gap:6px;border:1px solid #dfe5ee;border-radius:8px;padding:10px 12px;background:var(--companion-soft);font-size:13px;line-height:1.5;overflow-wrap:anywhere}.companion-installment-preview:empty{display:none}.companion-installments p{font-size:12px}
.setlist-companions button,.setlist-companion-dialog button{min-height:40px;padding:9px 13px;border:1px solid #bdc8d8;border-radius:8px;background:#f4f7fc;color:var(--companion-accent);font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.setlist-companions button.companion-primary,.setlist-companion-dialog button.companion-primary{background:var(--companion-accent);color:#fff;border-color:var(--companion-accent)}
.setlist-companions button:focus-visible,.setlist-companion-dialog button:focus-visible,.setlist-companion-dialog input:focus-visible,.setlist-companion-dialog select:focus-visible{outline:3px solid var(--companion-accent);outline-offset:2px}
.setlist-companions [hidden],.setlist-companion-dialog [hidden]{display:none!important}
.companion-message:empty,.companion-error:empty{display:none}.companion-error{color:#a02020;font-size:13px;line-height:1.5}
dialog.setlist-companion-dialog:modal{position:fixed;inset:0;margin:auto;transform:none;height:fit-content;width:min(560px,calc(100vw - 24px));max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);overflow:auto;box-sizing:border-box;background:#fff;color:#19283f;border:1px solid #dfe5ee;border-radius:14px;padding:0;box-shadow:0 20px 70px #10254b40}
.setlist-companion-dialog::backdrop{background:#10254b70}
.setlist-companion-dialog .companion-dialog-form{display:flex;flex-direction:column;gap:16px;width:100%;max-width:none;box-sizing:border-box;margin:0;padding:22px;background:#fff}
.setlist-companion-dialog header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0;padding:0;background:#fff;color:#19283f}
.setlist-companion-dialog h2{font-size:21px;line-height:1.3;overflow-wrap:anywhere;margin:0}
.setlist-companion-dialog .companion-close{position:static;font-size:24px;padding:4px;width:40px;flex-shrink:0}
.companion-dialog-body{display:flex;flex-direction:column;gap:14px;min-width:0}.companion-dialog-body p{margin:0;overflow-wrap:anywhere}
.setlist-companion-dialog label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;margin:0;min-width:0;overflow-wrap:anywhere}
.setlist-companion-dialog input,.setlist-companion-dialog select{font:inherit;color:#19283f;background:#fff;padding:10px 12px;border:1px solid #bdc8d8;border-radius:8px;box-sizing:border-box;width:100%;min-width:0;min-height:44px}
.setlist-companion-dialog label:has([type=checkbox]){flex-direction:row;align-items:center}.setlist-companion-dialog [type=checkbox]{width:20px;min-height:20px;flex-shrink:0;order:-1}
.setlist-companion-dialog footer{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;border-top:1px solid #dfe5ee;margin:0;padding:14px 0 0;background:#fff}
.setlist-companion-dialog button:disabled{opacity:.5;cursor:wait}
#student-management-form .management-tabs{flex-wrap:wrap}
#editor.festival-enrollment .management-tabs{flex-wrap:wrap}
#editor.festival-enrollment #festival-panel-companions,#editor.festival-enrollment #festival-student-companions{display:flex;flex-direction:column;gap:12px}
#editor.festival-enrollment .enrollment-panel[hidden]{display:none!important}
.festival-student-companions{display:flex;flex-direction:column;gap:5px}.stage-companion-caption{display:block;font-size:12px;line-height:1.4;color:#526176;white-space:normal;overflow-wrap:anywhere}
@media(max-width:540px){.companion-card{padding:13px}.companion-heading{align-items:flex-start}.companion-heading>button{width:100%}.setlist-companion-dialog .companion-dialog-form{padding:16px}.setlist-companion-dialog footer button{flex:1}}
