.musician-access-card{display:flex;align-items:center;justify-content:space-between;gap:24px;border-color:color-mix(in srgb,var(--accent) 42%,var(--line))}
.musician-access-card h2{margin:12px 0 8px}.musician-access-card p{max-width:780px;margin:0;color:var(--muted)}
.musician-access-card .pill.is-active{color:#b9f6d2;background:rgba(32,145,87,.24)}
.musician-create-form{display:grid;grid-template-columns:minmax(240px,1fr) minmax(260px,.7fr) auto;align-items:end;gap:16px}
.musician-create-form label{margin:0}.musician-stats{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:24px}
.musician-permission-choice{display:flex!important;align-items:center;gap:11px;min-height:46px;padding:8px 12px;border:1px solid var(--line);border-radius:11px;background:var(--notice);font-weight:400!important;cursor:pointer}.musician-permission-choice input{flex:0 0 auto;width:18px;height:18px;margin:0;accent-color:var(--accent)}.musician-permission-choice span{display:grid;gap:1px}.musician-permission-choice strong{font-size:12px}.musician-permission-choice small{color:var(--muted);font-size:10px;font-weight:400}
.musician-week-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:28px 0 14px}.musician-week-heading h2{margin:0}.musician-week-heading span{color:var(--muted)}
.musician-week-actions{display:flex;align-items:center;justify-content:flex-end;gap:14px}.musician-week-actions button{white-space:nowrap}
.musicians-list{display:grid;gap:14px}.musician-card{padding:0;overflow:hidden}.musician-card.is-inactive{opacity:.72}
.musician-summary{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 24px;cursor:pointer;list-style:none}.musician-summary::-webkit-details-marker{display:none}
.musician-summary h2{display:inline;margin:0 8px 0 10px;vertical-align:middle}.musician-permission-pill{background:var(--notice);color:var(--muted);vertical-align:middle}.musician-permission-pill.is-allowed{background:rgba(32,145,87,.18);color:#29915a}.musician-summary-totals{display:grid;gap:4px;text-align:right}.musician-summary-totals span{color:var(--muted)}
.musician-card-body{display:grid;gap:18px;padding:0 24px 24px;border-top:1px solid var(--line)}.musician-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:20px;padding:16px;border-radius:14px;background:var(--soft);color:var(--muted)}
.musician-card-body h3{margin:4px 0 0}.musician-session-list{display:grid;gap:8px}.musician-session-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border:1px solid var(--line);border-radius:13px}.musician-session-row div{display:grid;gap:3px}.musician-session-row span{color:var(--muted);font-size:13px}.musician-session-duration{white-space:nowrap;color:var(--accent)}
.musician-week-table-shell{overflow:visible;border:1px solid var(--line);border-radius:16px;background:var(--card);box-shadow:var(--shadow)}
.musician-week-table{width:100%;min-width:0;table-layout:fixed;border-collapse:separate;border-spacing:0;font-size:11px}
.musician-week-table th,.musician-week-table td{padding:12px 7px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);text-align:left;vertical-align:top;overflow-wrap:anywhere}
.musician-week-table thead th{background:var(--notice);color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.5px}
.musician-week-table tr:last-child>*{border-bottom:0}.musician-week-table tr>*:last-child{border-right:0}.musician-week-table tbody tr.is-inactive{opacity:.65}
.musician-week-table thead th:first-child{width:15%}.musician-week-table thead th:last-child{width:13%}.musician-week-name{min-width:0;background:var(--card)}.musician-week-name strong{display:block;margin-bottom:7px;font-size:13px}.musician-week-name .pill{font-size:8px}
.musician-week-cell{min-width:0}.musician-week-cell.is-total{min-width:0;background:color-mix(in srgb,var(--accent) 7%,var(--card));font-weight:400}
.musician-metric{display:grid;grid-template-columns:1fr;gap:0}.musician-metric+.musician-metric{margin-top:6px}.musician-metric small{color:var(--muted);font-size:9px}.musician-metric strong{font-size:11px;white-space:nowrap}.musician-metric.is-listening strong{color:var(--accent)}
.musician-session-count{display:block;margin-top:8px;padding-top:7px;border-top:1px solid var(--line);color:var(--muted);font-size:10px}.musician-no-activity{display:block;padding-top:15px;text-align:center;color:var(--muted)}
.musician-detail-heading{margin:30px 0 14px}.musicians-detail-list{display:grid;gap:14px}.musician-session-metrics{text-align:right}.musician-session-metrics strong{font-size:13px}.musician-session-metrics .is-listening{color:var(--accent)}
@media(max-width:1100px){.musician-create-form{grid-template-columns:minmax(220px,1fr) minmax(250px,.8fr)}.musician-create-form>button{grid-column:1/-1;justify-self:start}.musician-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.musician-week-table-shell{border:0;background:transparent;box-shadow:none}.musician-week-table{display:block}.musician-week-table thead{display:none}.musician-week-table tbody{display:grid;gap:14px}.musician-week-table tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:hidden;border:1px solid var(--line);border-radius:14px;background:var(--card);box-shadow:var(--shadow)}.musician-week-table th,.musician-week-table td{border-right:0;border-bottom:1px solid var(--line)}.musician-week-table tr>*:last-child{border-bottom:0}.musician-week-name{grid-column:1/-1;padding:14px 16px}.musician-week-cell{display:grid;grid-template-columns:minmax(82px,.8fr) minmax(0,1.2fr);gap:10px;min-height:76px;padding:11px 13px}.musician-week-cell::before{content:attr(data-label);color:var(--muted);font-size:10px;font-weight:750;text-transform:uppercase;letter-spacing:.4px}.musician-week-cell.is-total{grid-column:1/-1}.musician-metric{grid-template-columns:minmax(50px,1fr) auto;align-items:baseline;gap:7px}.musician-session-count{grid-column:2}}
@media(max-width:700px){.musician-access-card{align-items:stretch;flex-direction:column}.musician-create-form{grid-template-columns:1fr}.musician-summary{align-items:flex-start;flex-direction:column}.musician-summary-totals{text-align:left}.musician-facts{grid-template-columns:1fr}.musician-session-row{align-items:flex-start;flex-direction:column}.musician-session-metrics{text-align:left}.musician-week-heading{align-items:flex-start}.musician-week-actions{align-items:flex-end;flex-direction:column;gap:8px}}
@media(max-width:600px){.musician-week-table tr{grid-template-columns:1fr}.musician-week-cell,.musician-week-cell.is-total{grid-column:1}.musician-summary h2{display:inline-block;margin-bottom:7px}.musician-permission-pill{display:inline-block;margin-left:32px}.musician-week-heading{flex-direction:column}.musician-week-actions{width:100%;align-items:stretch}.musician-week-actions button{width:100%}}
@media(max-width:480px){.musician-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}

.musician-print-report{display:none}
@page{size:A4 portrait;margin:10mm}
@media print{
  html,body{width:auto!important;min-width:0!important;height:auto!important;margin:0!important;padding:0!important;background:#fff!important;color:#211a29!important}
  body.printing-musician-report>*:not(#musician-print-report){display:none!important}
  body.printing-musician-report .musician-print-report{display:block!important;font-family:Arial,Helvetica,sans-serif!important;color:#211a29!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .print-report-header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:0 0 11px;border-bottom:3px solid #ce3c89}
  .print-report-brand{display:flex;align-items:center;gap:9px;min-width:135px}.print-report-brand img{width:40px;height:40px;border-radius:10px}.print-report-brand div{display:grid;gap:1px}.print-report-brand strong{font-size:19px;line-height:1}.print-report-brand span{font-size:8px;color:#685e70}
  .print-report-title{text-align:right}.print-report-title span{display:block;margin-bottom:3px;color:#ce3c89;font-size:7px;font-weight:800;letter-spacing:1.1px;text-transform:uppercase}.print-report-title h1{margin:0;font-size:18px;line-height:1.15;color:#211a29}
  .print-report-meta{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:7px;margin:9px 0}.print-report-meta div{display:grid;gap:2px;padding:7px 8px;border:1px solid #ded8e2;border-radius:7px;background:#faf8fb}.print-report-meta span{font-size:6.5px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:#746979}.print-report-meta strong{font-size:8px;color:#211a29}
  .print-report-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-bottom:11px}.print-stat{display:grid;gap:2px;padding:7px 8px;border-radius:7px;background:#281b30;color:#fff}.print-stat span{font-size:6.5px;color:#d9cadf}.print-stat strong{font-size:12px}
  .print-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin:0 0 7px}.print-section-heading h2,.print-details-heading h2{margin:0;color:#211a29;font-size:13px}.print-section-heading p,.print-details-heading p{margin:0;color:#746979;font-size:7px}
  .print-weekly-summary{break-after:page;page-break-after:always}.print-weekly-summary-table{width:100%;border-collapse:collapse;table-layout:fixed;border:1px solid #d9d2dc;font-size:8px}.print-weekly-summary-table thead{display:table-header-group}.print-weekly-summary-table tr{break-inside:avoid;page-break-inside:avoid}.print-weekly-summary-table th,.print-weekly-summary-table td{padding:5px 7px;border-right:1px solid #e1dce4;border-bottom:1px solid #e1dce4;text-align:left}.print-weekly-summary-table tr>*:last-child{border-right:0}.print-weekly-summary-table tbody tr:last-child>*{border-bottom:0}.print-weekly-summary-table thead th{background:#2b2033;color:#fff;font-size:6.5px;letter-spacing:.3px;text-transform:uppercase}.print-weekly-summary-table thead th:first-child{width:24%}.print-weekly-summary-table tbody th{background:#faf8fb;color:#211a29;font-weight:800}.print-weekly-summary-table .print-listening-value{color:#b52f76;font-weight:800}.print-status-active,.print-status-inactive{font-weight:700}.print-status-active{color:#278152}.print-status-inactive{color:#a64c5b}
  .print-details-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin:0 0 8px;padding-bottom:6px;border-bottom:2px solid #ce3c89;break-after:avoid;page-break-after:avoid}
  .print-report-musicians{display:grid;gap:10px}.print-musician-card{break-inside:avoid;page-break-inside:avoid;border:1px solid #d9d2dc;border-radius:8px;overflow:hidden;background:#fff}.print-musician-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 9px;background:#faf8fb;border-bottom:1px solid #d9d2dc}.print-musician-identity{display:flex;align-items:center;gap:8px}.print-musician-identity h2{margin:0;font-size:12px;color:#211a29}.print-musician-identity span{display:inline-block;padding:2px 6px;border-radius:999px;background:#f3e3ed;color:#a32f6c;font-size:6.5px;font-weight:700}.print-musician-totals{display:flex;align-items:center;justify-content:flex-end;gap:10px;color:#4f4456;font-size:7px}.print-musician-totals span{white-space:nowrap}.print-musician-totals .is-listening{color:#b52f76;font-weight:700}
  .print-musician-table{width:100%;table-layout:fixed;border-collapse:collapse;font-size:7.5px}.print-musician-table th,.print-musician-table td{padding:4px 8px;border-right:1px solid #e1dce4;border-bottom:1px solid #e1dce4;text-align:left}.print-musician-table tr>*:last-child{border-right:0}.print-musician-table tbody tr:last-child>*{border-bottom:0}.print-musician-table thead th{background:#2b2033;color:#fff;font-size:6.5px;letter-spacing:.3px;text-transform:uppercase}.print-musician-table thead th:first-child{width:24%}.print-musician-table tbody th{color:#4e4354;font-weight:700}.print-musician-table td{color:#4f4456}.print-musician-table .print-listening-value{color:#b52f76;font-weight:700}.print-musician-table .print-week-total>*{background:#f7edf3;font-weight:800;color:#211a29}.print-musician-table .print-week-total .print-listening-value{color:#a52769}
  .print-report-footer{display:block!important;margin-top:9px;padding-top:6px;border-top:1px solid #ded8e2;color:#746979;font-size:7px;text-align:right}
}
