/* R.S Films Group — Artist Roster & DSP Mapping v23.8.1
   Additive UI only. Keeps existing portal/admin design language. */
:root{--rsfr-ink:#0d1c28;--rsfr-muted:#657587;--rsfr-line:#dce4ea;--rsfr-soft:#f4f6f7;--rsfr-card:#fff;--rsfr-gold:#b78522;--rsfr-gold2:#d6a83d;--rsfr-green:#147653;--rsfr-red:#b42318;--rsfr-blue:#285da8;--rsfr-shadow:0 12px 34px rgba(17,31,44,.07)}
.rsf-roster-page,.rsf-roster-admin-page{box-sizing:border-box;width:100%;max-width:1400px;margin:0 auto;padding:30px 34px 60px;color:var(--rsfr-ink)}
.rsf-roster-page *,.rsf-roster-admin-page *{box-sizing:border-box}
.rsf-roster-hero,.rsf-roster-admin-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:22px}
.rsf-roster-hero p,.rsf-roster-admin-head p,.rsf-roster-admin-toolbar>div>p,.rsf-roster-form header p{margin:0 0 6px;font-size:11px;line-height:1.2;font-weight:800;letter-spacing:.19em;color:#a87516;text-transform:uppercase}
.rsf-roster-hero h1,.rsf-roster-admin-head h1{margin:0 0 8px;font-size:32px;line-height:1.08;letter-spacing:-.025em;color:#0b1c28}
.rsf-roster-hero>div>span,.rsf-roster-admin-head>div>span{display:block;max-width:790px;color:var(--rsfr-muted);font-size:14px;line-height:1.55}
.rsf-roster-hero>div:last-child{display:flex;gap:10px;flex-wrap:wrap}
.rsf-roster-hero button,.rsf-roster-admin-head button,.rsf-roster-list-head button,.rsf-roster-edit,.rsf-roster-admin-action,.rsf-roster-form footer button,.rsf-roster-modal footer button{appearance:none;border:1px solid #d7e0e6;background:#fff;color:#152531;border-radius:10px;min-height:40px;padding:0 16px;font:700 13px/1.1 inherit;cursor:pointer;transition:.18s ease}
.rsf-roster-hero button:hover,.rsf-roster-admin-head button:hover,.rsf-roster-edit:hover,.rsf-roster-form footer button:hover,.rsf-roster-modal footer button:hover{border-color:#c19a46;transform:translateY(-1px)}
.rsf-roster-hero .rsf-roster-add,.rsf-roster-form footer .primary,.rsf-roster-modal footer .primary{background:#102431;border-color:#102431;color:#fff;box-shadow:0 8px 20px rgba(16,36,49,.12)}
.rsf-roster-stats,.rsf-roster-admin-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 22px}
.rsf-roster-stats article,.rsf-roster-admin-stats article{position:relative;min-height:94px;padding:19px 20px;background:#fff;border:1px solid var(--rsfr-line);border-radius:14px;box-shadow:0 4px 15px rgba(25,40,52,.035);overflow:hidden}
.rsf-roster-stats article:before,.rsf-roster-admin-stats article:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:#b8c5cd}
.rsf-roster-stats article.approved:before,.rsf-roster-admin-stats article.approved:before{background:#25a66f}.rsf-roster-stats article.pending:before,.rsf-roster-admin-stats article.pending:before{background:#d7a326}.rsf-roster-stats article.attention:before,.rsf-roster-admin-stats article.attention:before{background:#d06157}
.rsf-roster-stats b,.rsf-roster-admin-stats b{display:block;font-size:24px;line-height:1;margin-bottom:10px;color:#0d1f2b}.rsf-roster-stats span,.rsf-roster-admin-stats span{font-size:12px;color:#536574;font-weight:650}
.rsf-roster-list-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:24px 0 12px}.rsf-roster-list-head h2{margin:0 0 4px;font-size:21px}.rsf-roster-list-head p{margin:0;color:#6c7b88;font-size:13px;line-height:1.5}
.rsf-roster-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.rsf-roster-self-summary{max-width:920px}.rsf-roster-self-summary+.rsf-roster-form-host{max-width:1100px;margin-top:18px}
.rsf-roster-card{background:#fff;border:1px solid var(--rsfr-line);border-radius:16px;padding:20px;box-shadow:var(--rsfr-shadow);min-width:0}.rsf-roster-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.rsf-roster-card-head p{margin:0 0 5px;font-size:10px;font-weight:800;letter-spacing:.13em;color:#7e8a93;text-transform:uppercase}.rsf-roster-card-head h3{margin:0 0 8px;font-size:20px;line-height:1.2}.rsf-roster-status{display:inline-flex;align-items:center;width:max-content;padding:5px 9px;border-radius:999px;background:#edf1f4;color:#52616c;font-size:10px;font-weight:850;letter-spacing:.07em;text-transform:uppercase}.rsf-roster-status.approved{background:#e5f6ee;color:#0e724b}.rsf-roster-status.pending{background:#fff4d9;color:#8a6000}.rsf-roster-status.correction_required{background:#fff0e7;color:#a04713}.rsf-roster-status.suspended,.rsf-roster-status.rejected{background:#fde8e8;color:#ad251e}
.rsf-roster-progress{width:150px;flex:0 0 150px;text-align:right}.rsf-roster-progress b{display:block;font-size:20px}.rsf-roster-progress span{display:block;margin:2px 0 8px;font-size:10px;color:#75838e}.rsf-roster-progress i,.rsf-roster-completion i{display:block;height:6px;background:#edf1f3;border-radius:999px;overflow:hidden}.rsf-roster-progress u,.rsf-roster-completion u{display:block;height:100%;background:linear-gradient(90deg,#a87719,#d3a43a);border-radius:inherit;text-decoration:none}
.rsf-roster-mappings{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:17px 0}.rsf-map-chip{min-width:0;padding:10px;border:1px solid #e2e8ec;border-radius:10px;background:#f9fafb}.rsf-map-chip b,.rsf-map-chip span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rsf-map-chip b{font-size:11px;color:#253744}.rsf-map-chip span{margin-top:3px;font-size:10px;color:#7b8994}.rsf-map-chip.ok{border-color:#cfe8dd;background:#f2faf6}.rsf-map-chip.ok b{color:#176a4c}.rsf-map-chip.missing{border-color:#f0d7d4;background:#fff8f7}.rsf-map-chip.missing b{color:#9d3029}
.rsf-roster-admin-note,.rsf-roster-correction{margin:14px 0;padding:12px 14px;border:1px solid #efd7cf;border-radius:10px;background:#fff7f4}.rsf-roster-admin-note strong,.rsf-roster-correction strong{font-size:11px;color:#a54132;text-transform:uppercase;letter-spacing:.07em}.rsf-roster-admin-note p,.rsf-roster-correction p{margin:5px 0 0;font-size:13px;color:#6d3a33;line-height:1.45}.rsf-roster-card>footer{display:flex;align-items:center;justify-content:space-between;gap:15px;border-top:1px solid #edf1f3;margin-top:15px;padding-top:14px}.rsf-roster-card>footer>span{font-size:11px;color:#70808d}.rsf-roster-edit{min-height:34px;padding:0 12px;font-size:11px}
.rsf-roster-empty{grid-column:1/-1;text-align:center;padding:48px 24px;background:#fff;border:1px dashed #ccd7de;border-radius:15px}.rsf-roster-empty h3{margin:0 0 6px}.rsf-roster-empty p{margin:0 auto;max-width:550px;color:#71808c;line-height:1.5}
.rsf-roster-form-host{margin:18px 0 24px}.rsf-roster-form{background:#fff;border:1px solid var(--rsfr-line);border-radius:18px;box-shadow:var(--rsfr-shadow);overflow:hidden}.rsf-roster-form>header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:22px 24px;border-bottom:1px solid #e9eef1}.rsf-roster-form header h2{margin:0 0 6px;font-size:24px}.rsf-roster-form header span{font-size:12px;color:#6b7985}.rsf-roster-close{border:0;background:#f1f4f6;width:38px;height:38px;border-radius:10px;font-size:24px;line-height:1;cursor:pointer}.rsf-roster-completion{padding:14px 24px;background:#fbfaf6;border-bottom:1px solid #ece7d9}.rsf-roster-completion i{height:7px;margin-bottom:7px}.rsf-roster-completion span{font-size:11px;color:#6f654b}.rsf-roster-form fieldset{border:0;margin:0;padding:0}.rsf-roster-form fieldset>section{padding:22px 24px;border-bottom:1px solid #edf1f3}.rsf-roster-form section h3{margin:0 0 14px;font-size:15px}.rsf-roster-form section h3 small{font-weight:500;color:#89959e;margin-left:6px}.rsf-roster-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.rsf-roster-form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.rsf-roster-field{display:flex;flex-direction:column;gap:7px;min-width:0}.rsf-roster-field.full{grid-column:1/-1}.rsf-roster-field>span,.rsf-roster-links article>label>b,.rsf-roster-modal label>span{font-size:11px;font-weight:800;color:#2a3c49}.rsf-roster-field input,.rsf-roster-field select,.rsf-roster-field textarea,.rsf-roster-links input[type=url],.rsf-roster-admin-search,.rsf-roster-admin-filter,.rsf-roster-modal textarea{width:100%;min-height:44px;border:1px solid #d6e0e6;border-radius:9px;background:#fff;color:#172a37;padding:10px 12px;font:500 13px/1.35 inherit;outline:none;transition:.17s}.rsf-roster-field textarea{min-height:105px;resize:vertical}.rsf-roster-field input:focus,.rsf-roster-field select:focus,.rsf-roster-field textarea:focus,.rsf-roster-links input[type=url]:focus,.rsf-roster-admin-search:focus,.rsf-roster-admin-filter:focus,.rsf-roster-modal textarea:focus{border-color:#bf9135;box-shadow:0 0 0 3px rgba(191,145,53,.12)}.rsf-roster-field small{font-size:10px;color:#85919a}
.rsf-roster-section-title{display:flex;align-items:flex-end;justify-content:space-between;gap:15px;margin-bottom:12px}.rsf-roster-section-title h3{margin-bottom:3px!important}.rsf-roster-section-title p{margin:0;color:#71808d;font-size:12px}.rsf-roster-section-title>span{font-size:9px;font-weight:900;letter-spacing:.12em;color:#8b6417;background:#fff3d7;padding:5px 8px;border-radius:999px}.rsf-roster-links article.required{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px;border:1px solid #e8dfc8;border-radius:12px;background:#fffdf7}.rsf-roster-links article.required>label{display:flex;flex-direction:column;gap:7px}.rsf-roster-links label.check{flex-direction:row!important;align-items:center;gap:7px!important;font-size:11px;color:#63727d}.rsf-roster-links label.check input{width:15px!important;min-height:15px!important;height:15px;margin:0}.rsf-roster-links details{margin-top:14px;border:1px solid #e4eaee;border-radius:11px;background:#fafbfc}.rsf-roster-links summary{cursor:pointer;padding:13px 14px;font-size:12px;font-weight:750;color:#334754}.rsf-roster-links details>.rsf-roster-form-grid{padding:0 14px 14px}
.rsf-roster-form-error{margin:14px 24px 0;padding:11px 13px;border-radius:9px;background:#fdecec;color:#a02923;font-size:12px}.rsf-roster-form>fieldset>footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:18px 24px;background:#f9fafb}.rsf-roster-form>fieldset:disabled{opacity:.82}.rsf-roster-form>fieldset:disabled footer{display:none}
/* Artist nav inserted alongside native nav */
.rsf-roster-nav,.rsf-admin-roster-nav{position:relative}.rsf-roster-nav svg,.rsf-admin-roster-nav svg{width:20px;height:20px;flex:0 0 20px}.rsf-roster-nav-count,.rsf-admin-roster-count{margin-left:auto;min-width:18px;height:18px;border-radius:999px;background:#d2a43d;color:#0c1b26;display:none;align-items:center;justify-content:center;padding:0 5px;font-size:9px;font-weight:900}.rsf-roster-nav-count:not(:empty),.rsf-admin-roster-count:not(:empty){display:inline-flex!important}
/* Release form artist picker + gate */
.rsf-release-artist-picker{grid-column:1/-1;margin:0 0 14px;padding:16px 18px;border:1px solid #dce5ea;border-radius:12px;background:#fbfcfc}.rsf-release-artist-picker label{display:grid;grid-template-columns:minmax(130px,.36fr) minmax(0,1fr);align-items:center;gap:14px}.rsf-release-artist-picker span{font-size:12px;font-weight:800}.rsf-release-artist-picker select{width:100%;min-height:44px;border:1px solid #d4dfe5;border-radius:9px;padding:0 12px;background:#fff;font:600 13px inherit}.rsf-release-artist-picker small{display:block;margin-top:8px;color:#73818c;font-size:11px}.rsf-roster-submit-gate{margin:15px 0;padding:14px 16px;border:1px solid #ecd5a1;border-radius:11px;background:#fff8e8}.rsf-roster-submit-gate strong,.rsf-roster-submit-gate span{display:block}.rsf-roster-submit-gate strong{font-size:12px;color:#7c5810;margin-bottom:4px}.rsf-roster-submit-gate span{font-size:11px;color:#806c43;line-height:1.5}
/* Admin roster */
.rsf-roster-admin-panel{background:#fff;border:1px solid var(--rsfr-line);border-radius:16px;box-shadow:var(--rsfr-shadow);overflow:hidden}.rsf-roster-admin-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:18px 20px;border-bottom:1px solid #e4eaee}.rsf-roster-admin-toolbar h3{margin:0 0 3px;font-size:17px}.rsf-roster-admin-toolbar small{font-size:10px;color:#84909a}.rsf-roster-admin-toolbar>div:last-child{display:flex;gap:9px;min-width:420px}.rsf-roster-admin-search{flex:1}.rsf-roster-admin-filter{width:180px}.rsf-roster-admin-table{width:100%;overflow-x:auto}.rsf-roster-admin-table-head,.rsf-roster-admin-row{display:grid;grid-template-columns:minmax(190px,1.4fr) minmax(180px,1.15fr) minmax(220px,1.55fr) minmax(145px,.9fr) minmax(130px,.8fr) minmax(190px,1.1fr);align-items:center;gap:14px;min-width:1080px;padding:0 18px}.rsf-roster-admin-table-head{min-height:38px;background:#f5f7f8;border-bottom:1px solid #dce4e9}.rsf-roster-admin-table-head b{font-size:9px;color:#687986;letter-spacing:.09em}.rsf-roster-admin-row{min-height:78px;border-bottom:1px solid #edf1f3}.rsf-roster-admin-row:last-child{border-bottom:0}.rsf-roster-admin-row>div{min-width:0}.rsf-roster-admin-row strong,.rsf-roster-admin-row small,.rsf-roster-admin-row em{display:block}.rsf-roster-admin-row strong{font-size:12px;overflow-wrap:anywhere}.rsf-roster-admin-row small{margin-top:4px;color:#71818d;font-size:9.5px;line-height:1.4;overflow-wrap:anywhere}.rsf-roster-admin-row small.source{color:#996b11;font-weight:800}.rsf-roster-admin-row em{margin-top:3px;color:#74838d;font-size:9px;font-style:normal}.rsf-roster-admin-row small.note{color:#a33b31}.rsf-roster-admin-actions{display:flex!important;gap:5px;flex-wrap:wrap}.rsf-roster-admin-action{min-height:31px!important;padding:0 9px!important;font-size:9.5px!important;border-radius:7px!important}.rsf-roster-admin-action.approve,.rsf-roster-admin-action.reactivate{background:#124f39;color:#fff;border-color:#124f39}.rsf-roster-admin-action.suspend,.rsf-roster-admin-action.reject{color:#a1231d;border-color:#e5c1bd;background:#fff8f7}.rsf-roster-admin-action.correction{color:#80580b;border-color:#e9d19a;background:#fffaf0}
/* Admin source card injected into release review */
.rsf-release-origin-card{margin:14px 0;padding:16px;border:1px solid #dce5ea;border-radius:12px;background:#f8fafb}.rsf-release-origin-card>p{margin:0 0 10px;font-size:9px;font-weight:900;letter-spacing:.13em;color:#966b17}.rsf-release-origin-card dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px;margin:0}.rsf-release-origin-card dt{font-size:9px;color:#7d8b94}.rsf-release-origin-card dd{margin:2px 0 0;font-size:11px;font-weight:750;color:#243744;overflow-wrap:anywhere}
/* Modal */
.rsf-roster-modal-backdrop{position:fixed;inset:0;z-index:10050;background:rgba(8,19,27,.52);display:flex;align-items:center;justify-content:center;padding:20px}.rsf-roster-modal{position:relative;width:min(560px,100%);background:#fff;border-radius:16px;box-shadow:0 28px 80px rgba(0,0,0,.25);padding:24px}.rsf-roster-modal>.close{position:absolute;right:14px;top:14px;border:0;background:#f1f4f6;width:34px;height:34px;border-radius:9px;font-size:20px;cursor:pointer}.rsf-roster-modal>p{margin:0 40px 6px 0;font-size:10px;letter-spacing:.15em;font-weight:850;color:#9a6d15}.rsf-roster-modal h2{margin:0 35px 17px 0;font-size:21px}.rsf-roster-modal-source{display:grid;grid-template-columns:130px 1fr;gap:8px 12px;padding:13px;background:#f6f8f9;border-radius:10px;margin-bottom:15px}.rsf-roster-modal-source strong{font-size:10px;color:#71808a}.rsf-roster-modal-source span{font-size:11px;font-weight:700;overflow-wrap:anywhere}.rsf-roster-modal label{display:flex;flex-direction:column;gap:7px}.rsf-roster-modal textarea{min-height:100px;resize:vertical}.rsf-roster-confirm{padding:13px;border-radius:10px;background:#f3f8f5;color:#2e5d49;font-size:12px}.rsf-roster-modal footer{display:flex;justify-content:flex-end;gap:9px;margin-top:17px}.rsf-roster-toast{position:fixed;right:24px;bottom:24px;z-index:11000;max-width:min(420px,calc(100vw - 32px));transform:translateY(15px);opacity:0;background:#102431;color:#fff;border:1px solid rgba(255,255,255,.12);border-radius:11px;padding:12px 15px;box-shadow:0 12px 38px rgba(0,0,0,.22);font-size:12px;transition:.2s}.rsf-roster-toast.show{opacity:1;transform:none}.rsf-roster-toast.error{background:#8f2924}
@media(max-width:1100px){.rsf-roster-page,.rsf-roster-admin-page{padding:25px 22px 50px}.rsf-roster-stats,.rsf-roster-admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.rsf-roster-grid{grid-template-columns:1fr}.rsf-roster-admin-toolbar{align-items:stretch;flex-direction:column}.rsf-roster-admin-toolbar>div:last-child{min-width:0;width:100%}.rsf-roster-form-grid.three{grid-template-columns:1fr 1fr}.rsf-roster-mappings{grid-template-columns:1fr 1fr}}
@media(max-width:720px){.rsf-roster-page,.rsf-roster-admin-page{padding:20px 14px 42px}.rsf-roster-hero,.rsf-roster-admin-head{flex-direction:column;align-items:stretch}.rsf-roster-hero h1,.rsf-roster-admin-head h1{font-size:27px}.rsf-roster-hero>div:last-child{display:grid;grid-template-columns:1fr 1fr}.rsf-roster-stats,.rsf-roster-admin-stats{gap:9px}.rsf-roster-stats article,.rsf-roster-admin-stats article{min-height:80px;padding:15px}.rsf-roster-card{padding:16px}.rsf-roster-card-head{flex-direction:column}.rsf-roster-progress{width:100%;flex:auto;text-align:left}.rsf-roster-mappings{grid-template-columns:1fr 1fr}.rsf-roster-card>footer{align-items:flex-start;flex-direction:column}.rsf-roster-edit{width:100%}.rsf-roster-form>header,.rsf-roster-form fieldset>section{padding:18px 16px}.rsf-roster-completion{padding:13px 16px}.rsf-roster-form-grid,.rsf-roster-form-grid.three{grid-template-columns:1fr}.rsf-roster-links article.required{grid-template-columns:1fr}.rsf-roster-form>fieldset>footer{position:sticky;bottom:0;z-index:2;padding:12px 16px}.rsf-roster-form>fieldset>footer button{flex:1;padding:0 9px}.rsf-roster-admin-toolbar{padding:15px}.rsf-roster-admin-toolbar>div:last-child{flex-direction:column}.rsf-roster-admin-filter{width:100%}.rsf-release-artist-picker{padding:13px}.rsf-release-artist-picker label{grid-template-columns:1fr;gap:7px}.rsf-release-origin-card dl{grid-template-columns:1fr}.rsf-roster-modal{padding:20px 16px}.rsf-roster-modal-source{grid-template-columns:1fr}.rsf-roster-toast{right:16px;bottom:16px}.rsf-roster-self-summary{max-width:none}}
@media(max-width:430px){.rsf-roster-stats,.rsf-roster-admin-stats{grid-template-columns:1fr 1fr}.rsf-roster-stats b,.rsf-roster-admin-stats b{font-size:21px}.rsf-roster-mappings{grid-template-columns:1fr}.rsf-roster-hero>div:last-child{grid-template-columns:1fr}.rsf-roster-section-title{align-items:flex-start;flex-direction:column}.rsf-roster-card-head h3{font-size:18px}}
/* actual release-review card markup */
.rsf-release-origin-card>h3{margin:0 0 12px;font-size:14px;color:#172b38}.rsf-release-origin-card>div{display:grid;grid-template-columns:150px minmax(0,1fr);gap:10px;padding:7px 0;border-top:1px solid #e8eef1}.rsf-release-origin-card>div small{color:#7a8993;font-size:10px}.rsf-release-origin-card>div strong{font-size:11px;color:#253945;overflow-wrap:anywhere}
@media(max-width:720px){.rsf-release-origin-card>div{grid-template-columns:1fr;gap:3px}}

/* v23.8.1 — polished profile completion block */
.rsf-roster-form>header{align-items:center;padding:24px 28px}.rsf-roster-form header h2{margin-bottom:10px}.rsf-roster-profile-meta{display:flex;align-items:center;gap:9px;flex-wrap:wrap;min-height:26px}.rsf-roster-profile-meta>span:not(.rsf-roster-status){font-size:11px;color:#7a8791}.rsf-roster-profile-meta>b{font-size:12px;color:#20333f;font-weight:850}.rsf-roster-profile-meta .rsf-roster-status{padding:6px 10px;font-size:9px;line-height:1;letter-spacing:.065em}
.rsf-roster-completion{padding:18px 28px 17px;background:linear-gradient(180deg,#fffdf8 0%,#fbfaf6 100%);border-bottom:1px solid #ece7d9}.rsf-roster-completion-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:11px}.rsf-roster-completion-head>div{min-width:0}.rsf-roster-completion-head small{display:block;margin-bottom:4px;font-size:8px;line-height:1;font-weight:900;letter-spacing:.17em;color:#a07118}.rsf-roster-completion-head strong{display:block;font-size:13px;line-height:1.35;color:#243642}.rsf-roster-completion-head>b{font-size:24px;line-height:1;font-weight:850;letter-spacing:-.03em;color:#172a36}.rsf-roster-completion i{position:relative;height:9px;margin:0 0 10px;background:#e8edf0;border-radius:999px;overflow:hidden;box-shadow:inset 0 1px 2px rgba(17,31,44,.06)}.rsf-roster-completion u{box-shadow:0 0 0 1px rgba(167,119,25,.04)}.rsf-roster-completion>span{display:block;font-size:10.5px;line-height:1.5;color:#75684c}.rsf-roster-completion.is-complete>span{color:#48685a}.rsf-roster-completion.is-complete i{background:#e8efeb}.rsf-roster-completion.is-complete u{background:linear-gradient(90deg,#9b741f,#d0a33d)}
@media(max-width:720px){.rsf-roster-form>header{padding:19px 16px;align-items:flex-start}.rsf-roster-profile-meta{gap:7px}.rsf-roster-completion{padding:15px 16px}.rsf-roster-completion-head{align-items:center}.rsf-roster-completion-head strong{font-size:12px}.rsf-roster-completion-head>b{font-size:21px}}
@media(max-width:430px){.rsf-roster-profile-meta>span:not(.rsf-roster-status){width:auto}.rsf-roster-completion-head{gap:10px}.rsf-roster-completion-head>b{font-size:20px}}

/* v23.8.2 — individual profile hierarchy + admin profile verification */
.rsf-roster-self-hero{margin-bottom:16px}
.rsf-roster-self-form-host{max-width:1120px;margin:0}
.rsf-roster-individual-form{box-shadow:0 14px 36px rgba(17,31,44,.065)}
.rsf-roster-individual-form>header{background:linear-gradient(180deg,#fff 0%,#fbfcfd 100%)}
.rsf-roster-form-subtitle{display:block!important;margin:0 0 10px;font-size:13px!important;font-weight:700;color:#354956!important}
.rsf-roster-profile-meta{margin-top:2px}
.rsf-roster-eligibility{display:inline-flex!important;align-items:center;padding:6px 10px;border-radius:999px;font-size:9px!important;font-weight:850!important;letter-spacing:.045em;text-transform:uppercase}
.rsf-roster-eligibility.blocked{background:#fff1e8;color:#a54819}.rsf-roster-eligibility.ready{background:#e7f6ee;color:#11704d}
.rsf-roster-required-mini{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:12px 0 10px}
.rsf-roster-required-mini .rsf-map-chip{padding:9px 10px;background:#fff}
.rsf-roster-required-mini .rsf-map-chip b,.rsf-roster-required-mini .rsf-map-chip small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rsf-roster-required-mini .rsf-map-chip small{margin-top:3px;font-size:9.5px;color:#75838d}
.rsf-roster-links article.required{margin-bottom:9px}

.rsf-admin-map-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.rsf-admin-map-item{display:flex;flex-direction:column;gap:2px;min-width:0;padding:7px 8px;border:1px solid #e0e7eb;border-radius:8px;background:#f9fafb;text-decoration:none;transition:.16s ease}
.rsf-admin-map-item b{font-size:9.5px!important;color:#273a46;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rsf-admin-map-item small{margin:0!important;font-size:8.5px!important;line-height:1.25!important;color:#74838d!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
a.rsf-admin-map-item.linked{border-color:#cbe6da;background:#f3faf6;cursor:pointer}a.rsf-admin-map-item.linked:hover{border-color:#70b394;transform:translateY(-1px)}
a.rsf-admin-map-item.linked b{color:#126c4b}.rsf-admin-map-item.new{border-color:#ead7a8;background:#fffaf0}.rsf-admin-map-item.new b{color:#855c08}.rsf-admin-map-item.missing{border-color:#efd5d1;background:#fff8f7}.rsf-admin-map-item.missing b{color:#a6372f}
.rsf-roster-admin-action.review{background:#112a39;color:#fff;border-color:#112a39;min-width:92px!important}.rsf-roster-admin-action.review:hover{background:#18384a}

.rsf-roster-review-modal{width:min(760px,100%);max-height:min(88vh,900px);overflow:auto;padding:26px}
.rsf-roster-review-source{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 18px}
.rsf-roster-review-source>div{padding:12px 13px;border:1px solid #e1e8ec;border-radius:10px;background:#f8fafb;min-width:0}
.rsf-roster-review-source small,.rsf-roster-review-source strong,.rsf-roster-review-source span{display:block}.rsf-roster-review-source small{font-size:9px;color:#798791;text-transform:uppercase;letter-spacing:.06em}.rsf-roster-review-source strong{margin-top:4px;font-size:12px;color:#203541}.rsf-roster-review-source span{margin-top:3px;font-size:9.5px;color:#74828c;overflow-wrap:anywhere}
.rsf-roster-review-required{margin-top:4px}.rsf-roster-review-required header{margin-bottom:10px}.rsf-roster-review-required h3,.rsf-roster-review-optional h3,.rsf-roster-review-bio h3{margin:0 0 4px;font-size:14px;color:#162b38}.rsf-roster-review-required header p{margin:0;color:#6d7d88;font-size:11px;line-height:1.5}
.rsf-roster-review-required>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.rsf-review-profile-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid #e1e8ec;border-radius:11px;background:#fafbfc;min-width:0}.rsf-review-profile-card>div{min-width:0}.rsf-review-profile-card b,.rsf-review-profile-card span{display:block}.rsf-review-profile-card b{font-size:11px;color:#263a46}.rsf-review-profile-card span{margin-top:3px;font-size:9px;color:#77858f}.rsf-review-profile-card.linked{background:#f4faf7;border-color:#cfe5da}.rsf-review-profile-card.new{background:#fffaf1;border-color:#ead9ad}.rsf-review-profile-card.missing{background:#fff8f7;border-color:#efd7d3}.rsf-review-profile-card em{font-size:9px;color:#7b8790;font-style:normal;text-align:right}.rsf-review-open-link{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-height:32px;padding:0 10px;border-radius:8px;background:#123f31;color:#fff!important;text-decoration:none;font-size:9.5px;font-weight:800;white-space:nowrap}.rsf-review-open-link:hover{background:#175440}
.rsf-roster-review-optional,.rsf-roster-review-bio{margin-top:17px;padding-top:15px;border-top:1px solid #e7edf0}.rsf-roster-review-optional>div{display:flex;flex-wrap:wrap;gap:7px}.rsf-review-optional-link{display:inline-flex;align-items:center;min-height:32px;padding:0 10px;border:1px solid #d7e1e6;border-radius:8px;background:#fff;color:#243945;text-decoration:none;font-size:9.5px;font-weight:750}.rsf-review-optional-link:hover{border-color:#b68a32;background:#fffaf0}.rsf-roster-review-bio p{margin:6px 0 0;color:#5e6f7a;font-size:11px;line-height:1.6;white-space:pre-wrap}.rsf-roster-review-modal>footer{margin-top:20px;padding-top:16px;border-top:1px solid #e7edf0;display:flex;justify-content:flex-end}.rsf-roster-review-modal>footer .primary{min-height:38px;padding:0 15px}

@media(max-width:900px){.rsf-admin-map-grid{grid-template-columns:1fr}.rsf-roster-required-mini{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.rsf-roster-self-form-host{max-width:none}.rsf-roster-required-mini{grid-template-columns:1fr 1fr}.rsf-roster-review-modal{padding:20px 15px}.rsf-roster-review-source,.rsf-roster-review-required>div{grid-template-columns:1fr}.rsf-review-profile-card{align-items:flex-start}.rsf-roster-admin-action.review{min-width:0!important}}
@media(max-width:430px){.rsf-roster-required-mini{grid-template-columns:1fr}.rsf-roster-form-subtitle{font-size:12px!important}.rsf-roster-review-modal{max-height:92vh}}

/* v23.8.3 — professional Artist Profile / Music Label Artist form hierarchy */
.rsf-roster-form{
  border-color:#d9e2e8;
  box-shadow:0 18px 46px rgba(18,34,47,.075);
}
.rsf-roster-form>header{
  position:relative;
  align-items:flex-start!important;
  min-height:132px;
  padding:26px 30px 22px!important;
  background:#fff!important;
}
.rsf-roster-form>header>div:first-child{
  min-width:0;
  width:min(100%,860px);
}
.rsf-roster-form>header p{
  margin:0 0 7px!important;
  font-size:10px!important;
  line-height:1.3!important;
  letter-spacing:.18em!important;
}
.rsf-roster-form header h2{
  margin:0!important;
  font-size:26px!important;
  line-height:1.18!important;
  letter-spacing:-.02em!important;
  color:#0d1e2b!important;
}
.rsf-roster-form-subtitle{
  display:block!important;
  margin:7px 0 0!important;
  max-width:720px;
  font-size:12px!important;
  line-height:1.5!important;
  font-weight:500!important;
  color:#647584!important;
}
.rsf-roster-profile-meta{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  flex-wrap:wrap!important;
  margin:16px 0 0!important;
  padding:14px 0 0!important;
  border-top:1px solid #edf1f3;
}
.rsf-roster-profile-meta .rsf-roster-status,
.rsf-roster-profile-meta .rsf-roster-eligibility{
  min-height:27px;
  padding:0 10px!important;
  border-radius:999px!important;
  line-height:27px!important;
  white-space:normal!important;
}
.rsf-roster-profile-meta .rsf-roster-status{
  font-size:9.5px!important;
  letter-spacing:.055em!important;
}
.rsf-roster-profile-meta .rsf-roster-eligibility{
  font-size:9px!important;
  letter-spacing:.05em!important;
}
.rsf-roster-close{
  flex:0 0 auto;
  width:42px!important;
  height:42px!important;
  border:1px solid #e3e9ed!important;
  background:#f7f9fa!important;
  color:#253844!important;
  font-size:19px!important;
}
.rsf-roster-close:hover{background:#eef2f4!important}

.rsf-roster-completion{
  padding:22px 30px 21px!important;
  background:#fbfaf6!important;
  border-bottom:1px solid #e8ecef!important;
}
.rsf-roster-completion-head{
  align-items:center!important;
  margin-bottom:14px!important;
}
.rsf-roster-completion-head small{
  margin-bottom:5px!important;
  font-size:9px!important;
}
.rsf-roster-completion-head strong{
  font-size:14px!important;
  line-height:1.35!important;
  color:#1d303c!important;
}
.rsf-roster-completion-head em{
  display:block;
  margin-top:3px;
  font-size:10.5px;
  line-height:1.45;
  font-style:normal;
  color:#76838c;
}
.rsf-roster-completion-head>b{
  flex:0 0 auto;
  min-width:64px;
  text-align:right;
  font-size:28px!important;
  color:#0d2230!important;
}
.rsf-roster-completion>i{
  height:8px!important;
  margin:0 0 16px!important;
  background:#e7ecef!important;
}
.rsf-roster-required-mini{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:10px!important;
  margin:0!important;
}
.rsf-roster-required-mini .rsf-map-chip{
  min-height:66px;
  padding:12px 13px!important;
  border-radius:11px!important;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.rsf-roster-required-mini .rsf-map-chip b{
  font-size:11.5px!important;
  line-height:1.35!important;
  white-space:normal!important;
}
.rsf-roster-required-mini .rsf-map-chip span,
.rsf-roster-required-mini .rsf-map-chip small{
  margin-top:4px!important;
  font-size:10px!important;
  line-height:1.35!important;
  white-space:normal!important;
}
.rsf-roster-completion>span{
  display:block!important;
  margin-top:14px!important;
  padding-top:13px;
  border-top:1px solid #ece8dc;
  font-size:11px!important;
  line-height:1.55!important;
  color:#6e6654!important;
}

.rsf-roster-form fieldset>section{
  padding:26px 30px!important;
}
.rsf-roster-form section h3{
  margin:0 0 17px!important;
  font-size:16px!important;
  line-height:1.3!important;
  color:#142733!important;
}
.rsf-roster-form section h3 small{
  margin-left:8px!important;
  font-size:11px!important;
}
.rsf-roster-field{gap:8px!important}
.rsf-roster-field>span,.rsf-roster-links article>label>b{
  font-size:11.5px!important;
  line-height:1.35!important;
}
.rsf-roster-field input,.rsf-roster-field select,.rsf-roster-field textarea,.rsf-roster-links input[type=url]{
  min-height:48px!important;
  border-radius:10px!important;
  padding:11px 13px!important;
  font-size:13px!important;
}
.rsf-roster-links article.required{
  margin-bottom:12px!important;
  padding:16px!important;
  gap:14px!important;
  border-color:#e3e8eb!important;
  background:#fbfcfc!important;
}
.rsf-roster-links article.required:has(input:focus){
  border-color:#c7a252!important;
  background:#fffdf8!important;
}
.rsf-roster-section-title{
  align-items:center!important;
  margin-bottom:16px!important;
}
.rsf-roster-section-title p{
  margin-top:4px!important;
  font-size:11.5px!important;
  line-height:1.5!important;
}
.rsf-roster-form>fieldset>footer{
  padding:18px 30px!important;
  gap:10px!important;
  background:#fbfcfd!important;
  border-top:1px solid #e8edf0!important;
}
.rsf-roster-form>fieldset>footer button{
  min-width:138px;
  min-height:42px!important;
}

/* Individual profile should feel like one focused settings page */
.rsf-roster-self-hero{
  margin-bottom:18px!important;
}
.rsf-roster-self-form-host{
  width:100%!important;
  max-width:1180px!important;
  margin:0!important;
}
.rsf-roster-individual-form>header{
  min-height:144px;
}

/* Music Label create/edit form */
.rsf-roster-page .rsf-roster-form-host:not(.rsf-roster-self-form-host){
  max-width:1220px;
  margin:22px 0 28px;
}

@media(max-width:900px){
  .rsf-roster-required-mini{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .rsf-roster-form-grid.three{grid-template-columns:1fr 1fr!important}
}
@media(max-width:720px){
  .rsf-roster-form>header{
    min-height:0!important;
    padding:20px 18px!important;
    padding-right:64px!important;
  }
  .rsf-roster-form header h2{font-size:22px!important}
  .rsf-roster-close{position:absolute;top:18px;right:16px}
  .rsf-roster-profile-meta{margin-top:13px!important;padding-top:12px!important}
  .rsf-roster-profile-meta .rsf-roster-eligibility{max-width:100%;line-height:1.35!important;padding:7px 10px!important}
  .rsf-roster-completion{padding:18px!important}
  .rsf-roster-completion-head>b{font-size:24px!important}
  .rsf-roster-required-mini{grid-template-columns:1fr 1fr!important}
  .rsf-roster-form fieldset>section{padding:22px 18px!important}
  .rsf-roster-form-grid,.rsf-roster-form-grid.three{grid-template-columns:1fr!important}
  .rsf-roster-links article.required{grid-template-columns:1fr!important}
  .rsf-roster-form>fieldset>footer{padding:14px 18px!important}
}
@media(max-width:480px){
  .rsf-roster-required-mini{grid-template-columns:1fr!important}
  .rsf-roster-completion-head{align-items:flex-start!important}
  .rsf-roster-completion-head>b{font-size:22px!important}
  .rsf-roster-profile-meta{align-items:flex-start!important}
  .rsf-roster-form>fieldset>footer{flex-direction:column!important}
  .rsf-roster-form>fieldset>footer button{width:100%!important}
}

/* ==========================================================
   v23.8.4 — final roster/profile header isolation + polish
   IMPORTANT: the legacy app has a global `header {height:...}` rule.
   These overrides isolate Artist Roster/Profile headers so content
   can size naturally and never overlap the completion panel.
   ========================================================== */
.artist-portal .rsf-roster-form>header,
.rsf-roster-page .rsf-roster-form>header,
.rsf-roster-admin-page .rsf-roster-form>header{
  position:relative!important;
  top:auto!important;
  left:auto!important;
  right:auto!important;
  z-index:1!important;
  display:flex!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:visible!important;
  align-items:flex-start!important;
  justify-content:space-between!important;
  gap:22px!important;
  padding:26px 30px 24px!important;
  margin:0!important;
  background:#fff!important;
  border:0!important;
  border-bottom:1px solid #e7edf1!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
.artist-portal .rsf-roster-form>header>div:first-child,
.rsf-roster-page .rsf-roster-form>header>div:first-child{
  display:block!important;
  flex:1 1 auto!important;
  width:auto!important;
  max-width:900px!important;
  min-width:0!important;
  overflow:visible!important;
}
.rsf-roster-form>header p{
  position:static!important;
  display:block!important;
  height:auto!important;
  margin:0 0 7px!important;
  padding:0!important;
  overflow:visible!important;
}
.rsf-roster-form>header h2{
  position:static!important;
  display:block!important;
  height:auto!important;
  margin:0!important;
  padding:0!important;
  overflow:visible!important;
}
.rsf-roster-form-subtitle{
  position:static!important;
  display:block!important;
  height:auto!important;
  margin:7px 0 0!important;
  padding:0!important;
  overflow:visible!important;
}
.rsf-roster-profile-meta{
  position:static!important;
  display:flex!important;
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  margin:18px 0 0!important;
  padding:14px 0 0!important;
  border-top:1px solid #edf1f3!important;
  align-items:center!important;
  gap:8px!important;
  flex-wrap:wrap!important;
  overflow:visible!important;
}
.rsf-roster-profile-meta .rsf-roster-status,
.rsf-roster-profile-meta .rsf-roster-eligibility{
  position:static!important;
  display:inline-flex!important;
  width:auto!important;
  height:auto!important;
  min-height:28px!important;
  max-width:100%!important;
  align-items:center!important;
  justify-content:center!important;
  padding:6px 11px!important;
  line-height:1.25!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
}
.rsf-roster-close{
  position:static!important;
  flex:0 0 42px!important;
  margin:0!important;
}

/* Completion panel is a separate visual block — never shares the header line. */
.artist-portal .rsf-roster-completion,
.rsf-roster-page .rsf-roster-completion{
  position:relative!important;
  z-index:0!important;
  display:block!important;
  clear:both!important;
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  margin:0!important;
  padding:22px 30px 22px!important;
  overflow:visible!important;
  background:linear-gradient(180deg,#fffdf9 0%,#fbfaf6 100%)!important;
  border:0!important;
  border-bottom:1px solid #e6ecef!important;
}
.rsf-roster-completion-head{
  display:flex!important;
  align-items:flex-start!important;
  justify-content:space-between!important;
  gap:24px!important;
  width:100%!important;
  height:auto!important;
  margin:0 0 15px!important;
  padding:0!important;
}
.rsf-roster-completion-head>div{
  flex:1 1 auto!important;
  min-width:0!important;
}
.rsf-roster-completion-head small,
.rsf-roster-completion-head strong,
.rsf-roster-completion-head em{
  position:static!important;
  display:block!important;
  height:auto!important;
  overflow:visible!important;
}
.rsf-roster-completion-head small{
  margin:0 0 6px!important;
  font-size:9px!important;
  line-height:1.2!important;
  letter-spacing:.16em!important;
}
.rsf-roster-completion-head strong{
  margin:0!important;
  font-size:15px!important;
  line-height:1.35!important;
}
.rsf-roster-completion-head em{
  margin:4px 0 0!important;
  font-size:11px!important;
  line-height:1.45!important;
}
.rsf-roster-completion-head>b{
  position:static!important;
  display:block!important;
  flex:0 0 auto!important;
  min-width:70px!important;
  margin:1px 0 0!important;
  font-size:29px!important;
  line-height:1!important;
  text-align:right!important;
}
.rsf-roster-completion>i{
  position:relative!important;
  display:block!important;
  width:100%!important;
  height:9px!important;
  margin:0 0 17px!important;
  overflow:hidden!important;
}
.rsf-roster-required-mini{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:10px!important;
  width:100%!important;
  margin:0!important;
  padding:0!important;
}
.rsf-roster-required-mini .rsf-map-chip{
  min-width:0!important;
  min-height:70px!important;
  padding:13px 14px!important;
  border-radius:12px!important;
}
.rsf-roster-completion>span{
  display:block!important;
  width:100%!important;
  height:auto!important;
  margin:15px 0 0!important;
  padding:13px 0 0!important;
  line-height:1.55!important;
  overflow:visible!important;
}

/* Individual dashboard: remove the artificial header height left by v23.8.3. */
.artist-portal .rsf-roster-individual-form>header{
  min-height:0!important;
  height:auto!important;
}

/* Admin review sub-header must also ignore the legacy global sticky header rule. */
.rsf-roster-review-required>header{
  position:static!important;
  top:auto!important;
  display:block!important;
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  margin:0 0 10px!important;
  padding:0!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}

@media(max-width:900px){
  .rsf-roster-required-mini{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:720px){
  .artist-portal .rsf-roster-form>header,
  .rsf-roster-page .rsf-roster-form>header{
    padding:20px 18px!important;
    gap:14px!important;
  }
  .rsf-roster-page .rsf-roster-form>header>div:first-child{padding-right:8px!important}
  .rsf-roster-close{
    position:static!important;
    width:40px!important;
    height:40px!important;
    flex-basis:40px!important;
  }
  .rsf-roster-profile-meta{margin-top:15px!important;padding-top:13px!important}
  .artist-portal .rsf-roster-completion,
  .rsf-roster-page .rsf-roster-completion{padding:19px 18px 20px!important}
  .rsf-roster-completion-head{gap:14px!important}
  .rsf-roster-completion-head>b{font-size:25px!important;min-width:58px!important}
  .rsf-roster-required-mini{grid-template-columns:1fr 1fr!important}
}
@media(max-width:480px){
  .artist-portal .rsf-roster-form>header,
  .rsf-roster-page .rsf-roster-form>header{padding:18px 15px!important}
  .rsf-roster-form header h2{font-size:21px!important}
  .rsf-roster-profile-meta{align-items:flex-start!important}
  .rsf-roster-profile-meta .rsf-roster-status,
  .rsf-roster-profile-meta .rsf-roster-eligibility{width:100%!important;justify-content:flex-start!important}
  .artist-portal .rsf-roster-completion,
  .rsf-roster-page .rsf-roster-completion{padding:17px 15px 18px!important}
  .rsf-roster-completion-head{align-items:flex-start!important;gap:10px!important}
  .rsf-roster-completion-head strong{font-size:14px!important}
  .rsf-roster-completion-head>b{font-size:23px!important;min-width:52px!important}
  .rsf-roster-required-mini{grid-template-columns:1fr!important}
}
