:root{font-family:Inter,system-ui,-apple-system,sans-serif;color:#f5f5f5;background:#0d0d0f}*{box-sizing:border-box}body{margin:0;background:#0d0d0f}.wrap{max-width:1100px;margin:auto;padding:24px}.card{background:#17171b;border:1px solid #303038;border-radius:16px;padding:20px;margin:14px 0}.brand{font-size:28px;font-weight:800}.muted{color:#aaa}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}button,input,select{font:inherit;border-radius:10px;border:1px solid #3a3a44;padding:13px;background:#222229;color:#fff}button{cursor:pointer;font-weight:700}.primary{background:#fff;color:#111}.danger{background:#4b1818}.tabs{display:flex;gap:8px;flex-wrap:wrap}.tabs button.active{background:#fff;color:#111}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:10px;border-bottom:1px solid #333}.money{font-weight:800}.login{max-width:440px;margin:8vh auto}.error{color:#ff9b9b}.ok{color:#a6f3b2}.big{font-size:30px;font-weight:800}.hide{display:none}@media screen and (max-width:650px){.wrap{padding:12px}th:nth-child(6),td:nth-child(6){display:none}}

.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-head h2{margin:0}.smallbtn{padding:10px 13px}.combo-wrap{position:relative}.combo-wrap input{width:100%}.combo-list{position:absolute;left:0;right:0;top:calc(100% + 5px);z-index:20;background:#222229;border:1px solid #44444f;border-radius:10px;overflow:hidden;box-shadow:0 10px 30px rgba(0,0,0,.35);max-height:300px;overflow-y:auto}.combo-item{display:block;width:100%;border:0;border-radius:0;text-align:left;background:#222229}.combo-item:hover,.combo-item:focus{background:#34343d}.combo-empty{padding:13px;color:#aaa}.selected-ent{margin:10px 0 0}.modal{position:fixed;inset:0;z-index:50;background:rgba(0,0,0,.72);display:flex;align-items:center;justify-content:center;padding:20px}.modal.hide{display:none}.modal-card{width:min(480px,100%);background:#17171b;border:1px solid #3a3a44;border-radius:16px;padding:20px;box-shadow:0 24px 80px rgba(0,0,0,.55)}#closeModal{font-size:22px;padding:6px 12px}

.ack-card{max-width:720px;margin:28px auto}.eyebrow{font-size:12px;letter-spacing:.14em;color:#aaa;font-weight:800}.ack-card h2{font-size:34px;margin:8px 0}.ack-duration{font-size:24px;font-weight:800;margin-bottom:18px}.field-label{display:block;margin:18px 0 7px;font-weight:700}.initial-input{width:180px;text-transform:uppercase}.sig-wrap{position:relative;margin-top:16px;height:260px;border:2px solid #555563;border-radius:14px;background:#111114;overflow:hidden}.sig-wrap canvas{display:block;width:100%;height:100%;touch-action:none;cursor:crosshair}.sig-hint{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;color:#777;pointer-events:none;padding:20px}.sig-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:12px}@media(max-width:650px){.sig-wrap{height:300px}.ack-card{margin:10px 0}.ack-card h2{font-size:30px}.sig-actions button{flex:1}}

.row-actions{display:flex;gap:7px;flex-wrap:wrap}.status-wait{color:#ffd27d;font-weight:700}.status-ok{color:#a6f3b2;font-weight:700}.remove-summary{padding:14px;margin:12px 0;background:#222229;border:1px solid #3a3a44;border-radius:10px}.modal-card textarea{width:100%;resize:vertical;min-height:90px}.confirm-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:14px}@media(max-width:650px){.row-actions{min-width:135px}.confirm-actions button{flex:1}}
.reason-options{display:grid;gap:10px;margin:10px 0 14px}.reason-options label{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid #3a3a42;border-radius:10px;cursor:pointer}.reason-options input[type=radio]{width:18px;height:18px;margin:0}#otherReasonWrap{margin-top:8px}#otherReason{width:100%;margin-top:8px}
.time-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.time-grid input{width:100%}.status-timeup{color:#ff9b9b;font-weight:800}.payout-disabled{opacity:.5;cursor:not-allowed}.payout-card{max-width:760px;margin:20px auto}.payout-summary{margin:18px 0}.payout-summary>div{display:flex;justify-content:space-between;padding:10px 4px;border-bottom:1px solid #333}.payout-total{font-size:22px;padding-top:16px!important}.receipt-box,.receipt-print{background:#fff;color:#111;border-radius:12px;padding:22px;margin:18px 0}.receipt-box h3,.receipt-print h2{margin-top:0}.receipt-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:18px}.receipt-fields div{display:grid;gap:4px}.receipt-fields span,.signature-on-receipt span{font-size:12px;color:#666;text-transform:uppercase;letter-spacing:.08em}.big-check{font-size:22px;font-weight:800}.signature-on-receipt{margin-top:22px;display:grid;gap:6px}.signature-on-receipt img{max-width:360px;max-height:120px;background:#111;border-radius:6px}.alarm-card{border:2px solid #fff}.alarm-title{font-size:28px;font-weight:900;text-align:center;margin-bottom:14px}.alarm-row{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid #333}.alarm-row span{color:#aaa}@media(max-width:650px){.time-grid{grid-template-columns:1fr}.receipt-fields{grid-template-columns:1fr}.alarm-row{display:grid;gap:3px}}@media print{body{background:#fff}.wrap>.grid,.tabs,.no-print,.brand,.muted{display:none!important}.card{border:0;padding:0;margin:0;background:#fff}.receipt-print{display:block!important}.receipt-complete>.big-check{display:none}#printReceipt{color:#000}.signature-on-receipt img{filter:invert(1)}}
.topbar{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.shift-banner{margin-top:8px;font-weight:900;letter-spacing:.04em;text-transform:uppercase}.shift-choice{display:grid;grid-template-columns:1fr 1fr;gap:10px}.shift-choice label,.confirm-box{padding:14px;border:1px solid #3a3a44;border-radius:10px;background:#222229}.shift-choice input,.confirm-box input{margin-right:8px}.close-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0}.close-grid>div{display:grid;gap:4px;padding:14px;background:#222229;border-radius:10px}.close-grid span{color:#aaa;font-size:12px;text-transform:uppercase}.close-grid b{font-size:24px}.warning-box{border:1px solid #725d2b;background:#2b2518;padding:16px;border-radius:12px}.print-actions{display:flex;gap:8px;flex-wrap:wrap}.print-area{background:#fff;color:#000;border-radius:12px;padding:24px;margin-top:14px}.paper-head{text-align:center;margin-bottom:18px}.paper-head h1{font-size:20px;margin:0 0 8px}.paper-table{font-size:12px}.paper-table th,.paper-table td{border:1px solid #555;padding:6px;color:#000}.initial-img{display:block;max-width:70px;max-height:34px;filter:invert(1)}.void-row{text-decoration:line-through;opacity:.6}.manager-cert{margin-top:24px;border-top:1px solid #555;padding-top:10px}.manager-cert img{display:block;max-width:240px;max-height:90px;filter:invert(1);margin-top:6px}.receipt-paper{padding:24px}.page-break{break-before:page}.print-section{background:#fff;color:#000}.print-section .receipt-fields span,.print-section .signature-on-receipt span{color:#555}.print-section .signature-on-receipt img{filter:invert(1)}
@media(max-width:650px){.topbar{display:grid}.close-grid{grid-template-columns:1fr 1fr}.print-area{overflow-x:auto;padding:12px}.paper-table{min-width:720px}}
@media print{body *{visibility:hidden!important}#printArea,#printArea *{visibility:visible!important}#printArea{position:absolute;left:0;top:0;width:100%;margin:0;padding:0;border-radius:0}.print-section{padding:10mm}.page-break{break-before:page}.paper-table{min-width:0}.paper-head h1{font-size:18px}}

/* v9 print pagination: dance log and receipts never share a printed page. */
.receipts-section{break-before:page;page-break-before:always}
.receipt-paper{break-inside:avoid;page-break-inside:avoid;padding:10mm 0;border-bottom:1px solid #bbb}
.receipt-paper:last-child{border-bottom:0}
@media print{
  .receipts-section{break-before:page!important;page-break-before:always!important}
  .receipt-paper{break-before:auto!important;page-break-before:auto!important;break-inside:avoid!important;page-break-inside:avoid!important}
  body.print-single-receipt *{visibility:hidden!important}
  body.print-single-receipt #printReceipt,body.print-single-receipt #printReceipt *{visibility:visible!important}
  body.print-single-receipt #printReceipt{position:absolute;left:0;top:0;width:100%;margin:0;padding:10mm;border-radius:0}
}

/* v101: night closeout and rollover directory */
.rollover-list{display:grid;gap:10px}
.rollover-person{width:100%;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 18px;text-align:left;border:1px solid var(--line,#34343d);border-radius:12px;background:#1d1d23;color:#fff}
.rollover-person:hover,.rollover-person:focus-visible{border-color:#7153e8;background:#242029}
.rollover-person span{display:grid;gap:4px}.rollover-person b{font-size:17px}.rollover-person small{color:#aaaab4;font-size:13px}
.rollover-person strong{color:#7153e8;white-space:nowrap}
.rollover-profile{margin-top:18px}.rollover-balance{display:grid;gap:3px;text-align:right}.rollover-balance span{color:#aaaab4;text-transform:uppercase;font-size:11px;letter-spacing:.08em}.rollover-balance b{color:#7153e8;font-size:20px}
.night-roster-note{margin:14px 0;padding:12px 14px;border:1px solid rgba(113,83,232,.45);border-radius:10px;background:rgba(113,83,232,.09)}
@media(max-width:700px){.rollover-person{align-items:flex-start;flex-direction:column}.rollover-person strong{white-space:normal}.rollover-balance{text-align:left}.rollover-profile .panel-head{align-items:flex-start;flex-direction:column}}

/* v105: align Roll Overs heading and contain pushed-over workspace tables */
.rollover-heading{display:block!important;width:100%!important;max-width:1100px!important;margin-left:auto!important;margin-right:auto!important}
.dashboard-primary{min-width:0!important;overflow:hidden!important}
.dashboard-primary>.card{width:100%!important;max-width:100%!important;min-width:0!important;overflow-x:auto!important;box-sizing:border-box!important}
.dashboard-primary>.card>table{width:100%!important;min-width:760px!important}
@media (pointer:coarse) and (min-width:561px), (hover:none) and (min-width:561px){
  .dashboard-page.dashboard-panel-open>.dashboard-layout>.dashboard-primary{overflow:hidden!important}
  .dashboard-page.dashboard-panel-open>.dashboard-layout>.dashboard-primary>.card{overflow-x:auto!important;-webkit-overflow-scrolling:touch!important}
}

/* v10 printed dance-log financial columns and totals */
.paper-table tfoot{display:table-row-group}
.paper-total-row td{border-top:2px solid #000!important;font-weight:800;background:#fff}
@media print{
  .paper-total-row{break-inside:avoid;page-break-inside:avoid}
}

/* v11 historical closed-shift log browser */
.history-list{display:grid;gap:10px;margin-top:18px}.history-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px;border:1px solid #34343d;border-radius:12px;background:#202026}.history-paper{background:#fff;color:#000;border-radius:12px;padding:22px;margin-top:14px}.history-table-wrap{overflow-x:auto}.history-paper .paper-table{min-width:720px}.history-paper .muted{color:#555}@media(max-width:650px){.history-row{align-items:flex-start;display:grid}.history-row .row-actions button{flex:1}}
\n\n/* v14: clearer signatures/initials, house subtotal + CC surcharge totals, compact 6-up receipts */\n.initial-img,.manager-cert img,.print-section .signature-on-receipt img,.signature-on-receipt img{filter:none!important;background:transparent!important;opacity:1!important}\n.paper-summary-row td{font-weight:700;background:#fff}\n.paper-grand-total-row td{border-top:2px solid #000!important;font-weight:900;background:#fff}\n@media print{\n  .receipts-section{display:grid!important;grid-template-columns:1fr 1fr!important;grid-template-rows:repeat(3,1fr)!important;gap:0 6mm!important;padding:5mm 7mm!important;box-sizing:border-box!important;min-height:267mm!important;align-content:start!important}\n  .receipts-section .receipt-paper{padding:3mm 2mm!important;margin:0!important;border-bottom:1px solid #bbb!important;min-height:0!important;height:84mm!important;box-sizing:border-box!important;overflow:hidden!important;break-inside:avoid!important;page-break-inside:avoid!important;font-size:8.5pt!important;line-height:1.18!important}\n  .receipts-section .receipt-paper h2{font-size:10.5pt!important;line-height:1.1!important;margin:0 0 2.5mm!important}\n  .receipts-section .receipt-paper p{margin:0 0 2.5mm!important}\n  .receipts-section .receipt-fields{gap:2mm!important;margin-top:2mm!important}\n  .receipts-section .receipt-fields span,.receipts-section .signature-on-receipt span{font-size:6.5pt!important}\n  .receipts-section .signature-on-receipt{margin-top:2.5mm!important;gap:1mm!important}\n  .receipts-section .signature-on-receipt img{max-width:45mm!important;max-height:14mm!important;object-fit:contain!important;object-position:left center!important}\n  .initial-img{max-width:18mm!important;max-height:9mm!important;object-fit:contain!important}\n  .manager-cert img{max-width:55mm!important;max-height:18mm!important;object-fit:contain!important}\n}\n

/* v15 dashboard + persistent role-aware sidebar */
body{background:#f7f7fa;color:#19191f}.app-shell{min-height:100vh;display:grid;grid-template-columns:255px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;background:#15151a;color:#fff;padding:22px 16px 18px;display:flex;flex-direction:column;border-right:1px solid #292930;z-index:80}.sidebar-brand{height:84px;display:flex;align-items:center;justify-content:center;border-bottom:1px solid #303038;margin:0 4px 18px}.sidebar-brand img{max-width:185px;max-height:70px;object-fit:contain}.staff-card{display:flex;align-items:center;gap:11px;padding:10px 8px 18px;border-bottom:1px solid #303038;margin-bottom:14px}.staff-avatar{width:39px;height:39px;border-radius:50%;display:grid;place-items:center;background:#7153e8;font-weight:900}.staff-card div:last-child{display:grid;gap:2px}.staff-card span{color:#a7a7b1;font-size:12px;text-transform:capitalize}.side-nav{display:grid;gap:5px}.side-nav button,.sidebar-signout{border:0;background:transparent;color:#c8c8d0;text-align:left;display:flex;align-items:center;gap:11px;padding:11px 12px;border-radius:9px;font-weight:700}.side-nav button span,.sidebar-signout span{width:22px;text-align:center;font-size:18px}.side-nav button:hover,.side-nav button.active{background:#7153e8;color:#fff}.sidebar-signout{margin-top:auto;border-top:1px solid #303038;border-radius:0;padding-top:18px}.sidebar-signout:hover{color:#fff}.main-content{min-width:0;padding:36px 42px 60px}.mobile-head{display:none}.dashboard-page,.main-content>.wrap{max-width:1200px;margin:auto}.dashboard-welcome{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:28px}.dashboard-welcome h1,.page-heading h1{font-size:34px;line-height:1.1;margin:0 0 7px;color:#17171b}.dashboard-welcome p,.page-heading p{margin:0;color:#777783}.current-shift{display:grid;gap:4px;text-align:right}.current-shift span{font-size:12px;color:#8c8c96;text-transform:uppercase;letter-spacing:.08em}.current-shift b{color:#7153e8}.dashboard-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.dash-card{min-height:170px;background:#fff;color:#1a1a20;border:1px solid #e3e3e8;border-radius:14px;padding:24px;text-align:left;display:grid;align-content:center;justify-items:start;gap:7px;box-shadow:0 4px 16px rgba(20,20,25,.04)}.dash-card:hover{border-color:#7153e8;transform:translateY(-1px)}.dash-icon{width:48px;height:48px;border-radius:12px;background:#f0ecff;color:#7153e8;display:grid;place-items:center;font-size:25px;margin-bottom:7px}.dash-card b{font-size:17px}.dash-card small{font-size:13px;color:#8b8b94;font-weight:500}.page-heading{max-width:760px;margin:0 auto 18px}.form-card{max-width:760px;margin:auto;background:#fff;border:1px solid #e2e2e8;border-radius:14px;padding:26px;box-shadow:0 4px 16px rgba(20,20,25,.04);color:#1a1a20}.form-card input{background:#fff;color:#1a1a20;border-color:#d7d7de}.form-card .muted{color:#777}.pink-primary{background:#7153e8!important;color:#fff!important;border-color:#7153e8!important}.main-content #view>.card{max-width:1100px;margin:0 auto 14px}.main-content #view{color:#f5f5f5}.dashboard-page,.page-heading,.form-card{color:#1a1a20}
@media(max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;left:-270px;width:255px;transition:left .2s ease;box-shadow:10px 0 30px rgba(0,0,0,.25)}.sidebar.open{left:0}.main-content{padding:18px 18px 45px}.mobile-head{height:58px;display:flex;align-items:center;gap:14px;margin-bottom:20px}.mobile-head button{background:#15151a;color:#fff;padding:9px 12px}.mobile-head img{max-height:48px;max-width:165px}.dashboard-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-welcome{align-items:flex-start}.current-shift{text-align:left}}
@media(max-width:560px){.dashboard-cards{grid-template-columns:1fr}.dashboard-welcome{display:grid}.main-content{padding:14px}.dashboard-welcome h1,.page-heading h1{font-size:28px}.dash-card{min-height:135px}.form-card{padding:18px}}
@media print{.sidebar,.mobile-head{display:none!important}.app-shell{display:block}.main-content{padding:0}}
/* v16 dashboard totals + recent activity */
.dash-section{margin-top:28px;background:#fff;border:1px solid #e3e3e8;border-radius:14px;padding:24px;box-shadow:0 4px 16px rgba(20,20,25,.04);color:#1a1a20}.dash-section-head{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:18px}.dash-section-head h2{margin:0 0 4px;font-size:20px}.dash-section-head p{margin:0;color:#85858f;font-size:13px}.text-action{border:0;background:transparent;color:#7153e8;font-weight:800;padding:8px 0}.shift-stat-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.stat-card{background:#f8f8fa;border:1px solid #ececf0;border-radius:12px;padding:17px;display:grid;gap:7px}.stat-card span{font-size:12px;color:#83838d;text-transform:uppercase;letter-spacing:.05em}.stat-card b{font-size:24px}.total-stat{background:#f0ecff;border-color:#d9cfff}.total-stat b{color:#7153e8}.recent-activity{border-top:1px solid #ededf1}.activity-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:13px;padding:15px 2px;border-bottom:1px solid #ededf1}.activity-avatar{width:38px;height:38px;border-radius:50%;background:#f0ecff;color:#7153e8;display:grid;place-items:center;font-weight:900}.activity-main,.activity-meta{display:grid;gap:3px}.activity-main span,.activity-meta span{font-size:12px;color:#85858f}.activity-meta{text-align:right}.activity-meta b{font-size:13px}.empty-activity{min-height:105px;display:grid;place-items:center;align-content:center;gap:5px;text-align:center;color:#777783}.empty-activity b{color:#313139}.empty-activity span{font-size:13px}@media(max-width:1050px){.shift-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:700px){.shift-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dash-section{padding:18px}.activity-row{grid-template-columns:38px minmax(0,1fr)}.activity-meta{grid-column:2;text-align:left}.dash-section-head{align-items:flex-start}}


/* v18 approved dashboard/navigation refresh */
body{background:#0d0d0f;color:#f5f5f5}.main-content{background:#0d0d0f}.dashboard-page{color:#f5f5f5}.dashboard-welcome h1{color:#f5f5f5}.dashboard-welcome p{color:#a9a9b3}.dash-section{background:#17171b;border-color:#303038;color:#f5f5f5;box-shadow:none}.dash-section-head p{color:#a7a7b1}.stat-card{background:#1d1d22;border-color:#34343d}.stat-card span{color:#aaaab5}.stat-card b{color:#fff}.total-stat{background:#211b35;border-color:#7054b5}.recent-activity{border-color:#303038}.activity-row{border-color:#303038}.activity-main span,.activity-meta span{color:#aaaab5}.empty-activity{color:#aaaab5}.empty-activity b{color:#fff}.dashboard-cards{display:none!important}.nav-group{display:grid}.nav-parent{width:100%}.nav-parent i{margin-left:auto;font-style:normal;font-size:14px}.nav-sub{display:none;padding:3px 0 6px 34px;gap:3px}.nav-sub.open{display:grid}.nav-sub button{font-size:12px!important;padding:8px 10px!important;color:#aaaab5!important}.nav-sub button:hover,.nav-sub button.active{background:#27272d!important;color:#fff!important}.side-nav>button.active{background:#7153e8;color:#fff}.page-heading h1{color:#f5f5f5}.page-heading p{color:#aaaab5}


/* v19 approved dark dashboard + payout navigation */
html,body{background:#0d0d0f!important;color:#f5f5f5!important}
.main-content,#view,.dashboard-page{background:#0d0d0f!important;color:#f5f5f5!important}
.dashboard-welcome h1,.dashboard-page .dashboard-welcome h1{color:#fff!important;opacity:1!important;text-shadow:none!important}
.dashboard-welcome p{color:#b7b7c1!important}
.dashboard-welcome,.dashboard-welcome *{opacity:1!important}
.dash-section{background:#17171b!important;color:#f5f5f5!important;border:1px solid #303038!important}
.dash-section h2{color:#fff!important}.dash-section-head p{color:#aaaab5!important}
.stat-card{background:#1d1d22!important;border-color:#34343d!important}.stat-card b{color:#fff!important}.stat-card span{color:#aaaab5!important}
.total-stat{background:#211b35!important;border-color:#7054b5!important}.total-stat b{color:#7153e8!important}
.empty-activity b{color:#fff!important}.empty-activity span{color:#aaaab5!important}
.current-shift span{color:#aaaab5!important}.current-shift b{color:#7153e8!important}
.nav-parent{color:#c8c8d0!important}.nav-parent:hover{background:#27272d!important;color:#fff!important}
.nav-sub.open{display:grid!important}

/* v20: larger logo, home Add Dance, entertainer management, roster, print signatures */
.sidebar-brand{height:112px!important;margin-bottom:18px!important}
.sidebar-brand img{width:205px!important;max-width:205px!important;max-height:102px!important;object-fit:contain!important}
.add-dance-home{margin-top:18px!important;padding:12px 20px!important;font-size:15px!important;border-radius:9px!important}
.wide-heading{max-width:1100px!important;display:flex;align-items:end;justify-content:space-between;gap:16px}
.heading-actions{display:flex;gap:8px}.heading-actions input{min-width:260px}
.entertainer-count{display:inline-flex;margin-top:12px;padding:7px 11px;border:1px solid #3a3a43;border-radius:999px;background:#202026;color:#f5f5f5;font-size:13px;font-weight:800}.back-to-entertainers{margin:0 0 14px;padding:8px 12px;background:#202026;color:#f5f5f5;border-color:#3a3a43}.back-to-entertainers:hover{border-color:#7153e8;color:#fff}@media(max-width:760px){.entertainer-list-heading{display:grid!important}.entertainer-list-heading .heading-actions{width:100%;margin-top:14px}.entertainer-list-heading .heading-actions input{min-width:0;flex:1}}
.table-scroll{overflow:auto}.status-pill{display:inline-block;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:800}.status-active{background:#173824;color:#8ce8aa}.status-inactive{background:#3a2025;color:#ff9ca9}.status-pending{background:#3a321b;color:#f4d97b}
.active-check{display:flex!important;align-items:center;gap:8px;margin:16px 0}.active-check input{width:auto!important}.rollover-alert{margin-top:4px;color:#7153e8;font-size:11px;font-weight:800}.roster-choices{display:grid;gap:6px;margin-top:10px;max-height:330px;overflow:auto}.roster-choice{text-align:left}.admin-search-results{display:grid;gap:7px;margin-top:12px}.admin-result{display:flex;justify-content:space-between;padding:11px 12px;border:1px solid #383841;border-radius:9px;background:#202026}.admin-result span{color:#aaaab5}
/* Saved signature PNGs are white ink on a transparent/dark capture surface. Invert for paper. */
.signature-on-receipt img,.receipts-section .signature-on-receipt img,.manager-cert img,.initial-img{filter:invert(1)!important;background:#fff!important;mix-blend-mode:normal!important}
@media print{.signature-on-receipt img,.receipts-section .signature-on-receipt img,.manager-cert img,.initial-img{filter:invert(1)!important;background:#fff!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}}

/* v21: paper-safe signatures */
.signature-on-receipt img,.receipts-section .signature-on-receipt img,.manager-cert img,.initial-img{filter:none!important;background:#fff!important;mix-blend-mode:normal!important;object-fit:contain!important;object-position:left center!important}
@media print{.signature-on-receipt img,.receipts-section .signature-on-receipt img,.manager-cert img,.initial-img{filter:none!important;background:#fff!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}}
.quota-decision-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0}.quota-decision-grid>div{background:#151515;border:1px solid #333;border-radius:12px;padding:14px}.quota-decision-grid span{display:block;color:#aaa;font-size:12px;text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}.quota-decision-grid b{font-size:18px;color:#fff}.minimum-adjustment{border-top:1px solid #3a3a3a!important}.minimum-adjustment b{color:#bcaaff!important}@media(max-width:700px){.quota-decision-grid{grid-template-columns:1fr}}

.receipt-adjustment-note{margin-top:12px;padding-top:10px;border-top:1px solid #ddd;font-size:13px;color:#444}

/* v26 print package: six receipts per page + quota report + normalized signatures */
@page{size:Letter portrait;margin:6mm}
@media print{
  .dance-log-page{break-after:page;page-break-after:always;padding:4mm!important}
  .receipt-page{break-before:page;page-break-before:always;display:grid!important;grid-template-columns:1fr 1fr!important;grid-template-rows:repeat(3,82mm)!important;column-gap:5mm!important;row-gap:2mm!important;padding:0!important;height:250mm!important;box-sizing:border-box!important;align-content:start!important}
  .receipt-page .receipt-paper{height:82mm!important;min-height:0!important;padding:3mm!important;margin:0!important;border:1px solid #aaa!important;box-sizing:border-box!important;overflow:hidden!important;break-inside:avoid!important;page-break-inside:avoid!important;font-size:8pt!important;line-height:1.15!important}
  .receipt-page .receipt-paper h2{font-size:9.5pt!important;line-height:1.05!important;margin:0 0 2mm!important}
  .receipt-page .receipt-paper p{margin:0 0 2mm!important}
  .receipt-page .receipt-fields{grid-template-columns:1fr 1fr 1fr!important;gap:1.5mm!important;margin-top:1.5mm!important}
  .receipt-page .receipt-fields span,.receipt-page .signature-on-receipt span{font-size:6pt!important}
  .receipt-page .signature-on-receipt{margin-top:1.5mm!important;gap:.5mm!important}
  .receipt-page .signature-on-receipt img{display:block!important;width:auto!important;max-width:48mm!important;height:auto!important;max-height:13mm!important;object-fit:contain!important;object-position:left center!important;background:#fff!important;filter:none!important}
  .quota-report-page{break-before:page!important;page-break-before:always!important;padding:4mm!important}
}
.quota-report-page{background:#fff;color:#000}.quota-print-block{margin:0 0 18px}.quota-print-block h2{font-size:16px;margin:0 0 7px;padding-bottom:4px;border-bottom:2px solid #000}.quota-print-table{width:100%;border-collapse:collapse;font-size:11px}.quota-print-table th,.quota-print-table td{border:1px solid #777;padding:5px;text-align:left;vertical-align:top;color:#000}.quota-print-table th{background:#eee}.quota-note{font-size:9px;font-weight:700;margin-top:2px}.quota-empty{border:1px solid #bbb;padding:8px;font-size:11px}

/* v27: compact receipt cards — remove excess blank space while retaining 6-up layout */
@media print{
  .receipt-page{
    grid-template-rows:none!important;
    grid-auto-rows:auto!important;
    align-content:start!important;
    row-gap:2.5mm!important;
    height:auto!important;
    min-height:0!important;
  }
  .receipt-page .receipt-paper{
    height:auto!important;
    min-height:0!important;
    padding:2.2mm 2.6mm!important;
    overflow:visible!important;
    font-size:7.8pt!important;
    line-height:1.08!important;
  }
  .receipt-page .receipt-paper h2{
    font-size:9pt!important;
    margin:0 0 1.2mm!important;
  }
  .receipt-page .receipt-paper p{
    margin:0 0 1.2mm!important;
  }
  .receipt-page .receipt-fields{
    gap:1mm!important;
    margin-top:1mm!important;
  }
  .receipt-page .signature-on-receipt{
    margin-top:1mm!important;
    gap:.3mm!important;
  }
  .receipt-page .signature-on-receipt img{
    max-height:10mm!important;
  }
}

/* v29: compact shift opener + functional entertainer history */
.compact-open-shift{padding:18px 20px!important;max-width:930px}.compact-open-shift .dash-section-head{margin-bottom:12px}.dashboard-open-shift{display:grid;grid-template-columns:180px minmax(320px,1fr) auto;align-items:end;gap:12px;background:transparent!important;border:0!important;padding:0!important}.open-shift-field{display:grid;gap:6px}.dashboard-open-shift input[type=date]{height:44px;background:#fff;color:#17171b;border:1px solid #d9d9df;border-radius:9px;padding:0 12px}.dashboard-open-shift .shift-choice{display:grid;grid-template-columns:1fr 1fr;gap:8px}.dashboard-open-shift .shift-choice label{height:44px;padding:0 14px;display:flex;align-items:center;gap:8px;background:#fff!important;color:#1b1b20!important;border:1px solid #d9d9df!important;border-radius:9px;font-weight:800;cursor:pointer}.dashboard-open-shift .shift-choice label:has(input:checked){border-color:#7153e8!important;box-shadow:0 0 0 2px rgba(113,83,232,.15);background:#f3efff!important}.dashboard-open-shift .shift-choice input{accent-color:#7153e8}.open-shift-btn{height:44px;white-space:nowrap}.dashboard-open-shift .error{grid-column:1/-1;margin:0}.history-person{width:100%;color:#f5f5f5;text-align:left;cursor:pointer}.history-person:hover{border-color:#7153e8;background:#292930}.history-profile{margin-top:18px}.history-profile-head{display:flex;justify-content:space-between;gap:22px;align-items:flex-start;margin-bottom:20px}.history-profile-head h2{font-size:28px;margin:3px 0}.history-summary{display:grid;grid-template-columns:repeat(4,minmax(105px,1fr));gap:8px}.history-summary>div{background:#202026;border:1px solid #373740;border-radius:10px;padding:10px 12px;display:grid;gap:4px}.history-summary span{font-size:10px;text-transform:uppercase;color:#aaaab5}.history-summary b{font-size:18px;color:#fff}.history-quota-detail{margin-top:6px;font-size:12px;line-height:1.45;color:#b8b8c1}@media(max-width:850px){.dashboard-open-shift{grid-template-columns:1fr}.open-shift-btn{width:100%}.history-profile-head{display:grid}.history-summary{grid-template-columns:repeat(2,1fr)}}

.home-quick-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:16px}.home-quick-actions .add-dance-home{margin-top:0}.secondary-action{background:#24242c;color:#fff;border:1px solid #4a4a55;border-radius:9px;padding:11px 17px;font-weight:800;cursor:pointer}.secondary-action:hover{border-color:#7153e8;color:#fff}

/* v31: keep dashboard quick actions perfectly aligned */
.home-quick-actions{display:flex;align-items:stretch;gap:10px;flex-wrap:wrap;margin-top:16px}
.home-quick-actions .add-dance-home,.home-quick-actions .add-roster-home{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;height:44px;margin:0!important;padding:0 20px!important;border-radius:9px!important;font-size:15px!important;font-weight:800!important;line-height:1!important;vertical-align:top}

/* v34 dashboard side panels */
.dash-panel-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.dashboard-side-panel{position:fixed;top:0;right:0;width:min(560px,42vw);height:100vh;background:#17171c;border-left:1px solid #35353d;box-shadow:-18px 0 48px rgba(0,0,0,.38);z-index:90;transform:translateX(105%);transition:transform .22s ease;display:flex;flex-direction:column;padding:24px}
.dashboard-side-panel.open{transform:translateX(0)}
.side-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding-bottom:14px;border-bottom:1px solid #303038}.side-panel-head h2{margin:3px 0 0;color:#fff;font-size:24px}.side-panel-kicker{color:#8f8f9b;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.09em}.side-panel-close{width:38px;height:38px;border-radius:9px;border:1px solid #3a3a43;background:#222229;color:#fff;font-size:25px;line-height:1}.side-panel-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:16px 0}.side-panel-tabs button{padding:10px;border:1px solid #393943;border-radius:9px;background:#222229;color:#b9b9c3;font-weight:800}.side-panel-tabs button.active{background:#7153e8;color:#fff;border-color:#7153e8}.side-panel-body{flex:1;overflow:auto;padding-right:3px}.side-panel-full{margin-top:14px;padding:12px;border-radius:9px;border:1px solid #7153e8;background:transparent;color:#a991ff;font-weight:800}.panel-loading{padding:30px;text-align:center;color:#aaa}.panel-live-row,.panel-roster-row{display:flex;justify-content:space-between;gap:18px;padding:14px 2px;border-bottom:1px solid #2d2d34}.panel-live-row b,.panel-roster-row b{color:#fff}.panel-live-row span,.panel-roster-row span{display:block;color:#9f9faa;font-size:12px;margin-top:4px}.panel-row-meta{text-align:right}.panel-roster-row{display:block}.panel-roster-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}.panel-roster-stats>span{background:#222229;border:1px solid #313139;border-radius:8px;padding:8px;margin:0}.panel-roster-stats>span b{display:inline;color:#fff}.panel-roster-stats .panel-met{color:#8ce8aa}.panel-roster-stats .panel-short{color:#c4b5ff}
@media(max-width:1000px){.dashboard-side-panel{width:min(620px,70vw)}}
@media(max-width:700px){.dashboard-side-panel{width:100vw;padding:18px}.dash-panel-actions{justify-content:flex-start}.panel-roster-stats{grid-template-columns:1fr 1fr 1fr}}
\n/* v35: resizable docked dashboard panel */\n.dashboard-side-panel{--panel-width:520px;width:var(--panel-width)!important;max-width:calc(100vw - 320px);box-sizing:border-box;box-shadow:none!important;transition:transform .22s ease,width .06s linear!important}\n.main-content{transition:padding-right .22s ease}\n.main-content.dashboard-panel-open{padding-right:calc(var(--panel-width,520px) + 24px)!important}\n.dashboard-panel-open .dashboard-page{max-width:none;margin-left:0;margin-right:0}\n.side-panel-resize{position:absolute;left:-7px;top:0;width:14px;height:100%;cursor:col-resize;z-index:4;touch-action:none}\n.side-panel-resize:after{content:'';position:absolute;left:6px;top:0;width:2px;height:100%;background:#35353d;transition:background .15s}\n.side-panel-resize:hover:after,.resizing-dashboard-panel .side-panel-resize:after{background:#7153e8}\n.resizing-dashboard-panel{cursor:col-resize!important;user-select:none!important}\n.resizing-dashboard-panel *{cursor:col-resize!important}\n@media(max-width:1100px){.main-content.dashboard-panel-open{padding-right:calc(var(--panel-width,460px) + 16px)!important}.dashboard-side-panel{max-width:calc(100vw - 270px)}}\n@media(max-width:900px){.dashboard-side-panel{width:min(620px,88vw)!important;max-width:none}.main-content.dashboard-panel-open{padding-right:18px!important}.side-panel-resize{display:none}}\n@media(max-width:700px){.dashboard-side-panel{width:100vw!important}.main-content.dashboard-panel-open{padding-right:14px!important}}\n

/* v36: true docked/resizable dashboard workspace */
.dashboard-page{--panel-width:520px;max-width:none!important}
.dashboard-layout{display:grid;grid-template-columns:minmax(0,1fr) 0;gap:0;align-items:start;transition:grid-template-columns .22s ease,gap .22s ease}
.dashboard-page.dashboard-panel-open .dashboard-layout{grid-template-columns:minmax(0,1fr) var(--panel-width);gap:18px}
.dashboard-primary{min-width:0}
.dashboard-side-panel{position:sticky!important;top:18px!important;right:auto!important;width:100%!important;max-width:none!important;height:calc(100vh - 36px)!important;transform:none!important;opacity:0;visibility:hidden;pointer-events:none;padding:22px!important;border:1px solid #35353d!important;border-radius:14px;overflow:visible;z-index:20!important}
.dashboard-side-panel.open{opacity:1;visibility:visible;pointer-events:auto}
.main-content,.main-content.dashboard-panel-open{padding-right:42px!important}
.dashboard-page.dashboard-panel-open .dashboard-primary{min-width:0}
.side-panel-resize{left:-10px!important;width:18px!important}
.side-panel-resize:after{left:8px!important}
@media(max-width:1100px) and (min-width:901px){.dashboard-page.dashboard-panel-open .dashboard-layout{grid-template-columns:minmax(0,1fr) min(var(--panel-width),48vw)}.main-content,.main-content.dashboard-panel-open{padding-right:24px!important}}
@media(max-width:900px){.dashboard-layout,.dashboard-page.dashboard-panel-open .dashboard-layout{display:block}.dashboard-side-panel{position:fixed!important;top:0!important;right:0!important;width:min(620px,88vw)!important;height:100vh!important;border-radius:0!important;transform:translateX(105%)!important;opacity:1;visibility:visible;pointer-events:none}.dashboard-side-panel.open{transform:translateX(0)!important;pointer-events:auto}.main-content,.main-content.dashboard-panel-open{padding-right:18px!important}}
@media(max-width:700px){.dashboard-side-panel{width:100vw!important}.main-content,.main-content.dashboard-panel-open{padding-right:14px!important}}

/* v37: corrected desktop dashboard + docked panel structure */
@media(min-width:901px){
 .dashboard-page>.dashboard-layout{display:grid!important;grid-template-columns:minmax(0,1fr) 0!important;gap:0!important;align-items:start!important;width:100%!important}
 .dashboard-page.dashboard-panel-open>.dashboard-layout{grid-template-columns:minmax(360px,1fr) min(var(--panel-width,520px),55%)!important;gap:18px!important}
 .dashboard-page>.dashboard-layout>.dashboard-primary{grid-column:1;min-width:0!important}
 .dashboard-page>.dashboard-layout>.dashboard-side-panel{grid-column:2;grid-row:1;min-width:0!important}
}

/* v39: always-visible draggable workspace divider + compact docked entry layout */
@media(min-width:901px){
 .dashboard-page.dashboard-panel-open .side-panel-resize{
   display:block!important;
   position:absolute!important;
   left:-12px!important;
   top:0!important;
   bottom:0!important;
   width:24px!important;
   height:100%!important;
   cursor:col-resize!important;
   z-index:100!important;
   touch-action:none;
 }
 .dashboard-page.dashboard-panel-open .side-panel-resize:after{
   content:''!important;
   position:absolute!important;
   left:11px!important;
   top:0!important;
   width:3px!important;
   height:100%!important;
   background:#7153e8!important;
   border-radius:3px!important;
   box-shadow:0 0 0 1px rgba(113,83,232,.12),0 0 10px rgba(113,83,232,.22)!important;
 }
 .dashboard-page.dashboard-panel-open .side-panel-resize:before{
   content:'↔'!important;
   position:absolute!important;
   left:50%!important;
   top:50%!important;
   transform:translate(-50%,-50%)!important;
   width:30px!important;
   height:30px!important;
   display:flex!important;
   align-items:center!important;
   justify-content:center!important;
   border:2px solid #7153e8!important;
   border-radius:999px!important;
   background:#17171b!important;
   color:#a991ff!important;
   font-size:18px!important;
   font-weight:900!important;
   line-height:1!important;
   box-shadow:0 4px 18px rgba(0,0,0,.4)!important;
 }
 .dashboard-page.dashboard-panel-open .side-panel-resize:hover:before,
 .resizing-dashboard-panel .side-panel-resize:before{background:#7153e8!important;color:#fff!important}
 .dashboard-page.dashboard-panel-open .dashboard-primary .card>.grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
 .dashboard-page.dashboard-panel-open .dashboard-primary .card>.panel-head{margin-bottom:0!important;flex-wrap:wrap!important}
 .dashboard-page.dashboard-panel-open .dashboard-primary .card>.panel-head+#dummy{display:none}
 .dashboard-page.dashboard-panel-open .dashboard-primary .card>.panel-head~.grid{margin-top:0!important}
 .dashboard-page.dashboard-panel-open .dashboard-primary .card>.panel-head .smallbtn{flex:0 0 auto;white-space:nowrap}
}
@media(min-width:901px) and (max-width:1250px){
 .dashboard-page.dashboard-panel-open .dashboard-primary .card>.grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

/* v40: unmistakable desktop resize rail + smaller Add Entertainer control */
@media(min-width:901px){
  .dashboard-page.dashboard-panel-open .dashboard-side-panel{
    border-left:3px solid #7153e8!important;
    overflow:visible!important;
  }
  .dashboard-page.dashboard-panel-open #dashboardPanelResize.side-panel-resize{
    display:block!important;
    position:absolute!important;
    left:-13px!important;
    top:0!important;
    bottom:0!important;
    width:24px!important;
    height:auto!important;
    background:transparent!important;
    cursor:ew-resize!important;
    z-index:9999!important;
    pointer-events:auto!important;
  }
  .dashboard-page.dashboard-panel-open #dashboardPanelResize.side-panel-resize:after{
    content:''!important;
    position:absolute!important;
    left:11px!important;
    top:0!important;
    bottom:0!important;
    width:3px!important;
    height:auto!important;
    background:#7153e8!important;
    border-radius:999px!important;
    box-shadow:0 0 10px rgba(113,83,232,.45)!important;
  }
  .dashboard-page.dashboard-panel-open #dashboardPanelResize.side-panel-resize:before{
    content:'↔'!important;
    position:absolute!important;
    left:50%!important;
    top:50%!important;
    transform:translate(-50%,-50%)!important;
    width:32px!important;
    height:32px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    border:2px solid #7153e8!important;
    border-radius:50%!important;
    background:#7153e8!important;
    color:#fff!important;
    font-size:17px!important;
    font-weight:900!important;
    line-height:1!important;
    box-shadow:0 3px 14px rgba(0,0,0,.55)!important;
  }
  .dashboard-page.dashboard-panel-open #addEnt.smallbtn{
    width:auto!important;
    min-width:0!important;
    height:34px!important;
    padding:0 12px!important;
    font-size:13px!important;
    line-height:1!important;
    border-radius:8px!important;
    flex:0 0 auto!important;
  }
}
\n/* v41: independent straight resize rail between workspace and docked panel */
@media(min-width:901px){
 .dashboard-page>.dashboard-layout{grid-template-columns:minmax(0,1fr) 0 0!important;gap:0!important;align-items:stretch!important}
 .dashboard-page.dashboard-panel-open>.dashboard-layout{grid-template-columns:minmax(360px,1fr) 24px min(var(--panel-width,520px),55%)!important;gap:0!important}
 .dashboard-page>.dashboard-layout>.dashboard-primary{grid-column:1!important;grid-row:1!important}
 .dashboard-page>.dashboard-layout>#dashboardPanelResize{grid-column:2!important;grid-row:1!important}
 .dashboard-page>.dashboard-layout>.dashboard-side-panel{grid-column:3!important;grid-row:1!important;margin-left:10px!important}
 .dashboard-page.dashboard-panel-open #dashboardPanelResize.side-panel-resize{
   display:block!important;position:relative!important;left:auto!important;top:auto!important;bottom:auto!important;
   width:24px!important;height:100%!important;min-height:calc(100vh - 36px)!important;background:transparent!important;
   cursor:ew-resize!important;z-index:9999!important;pointer-events:auto!important;align-self:stretch!important;
 }
 .dashboard-page.dashboard-panel-open #dashboardPanelResize.side-panel-resize:after{
   content:''!important;position:absolute!important;left:50%!important;top:0!important;bottom:0!important;
   transform:translateX(-50%)!important;width:3px!important;height:auto!important;background:#7153e8!important;
   border-radius:0!important;box-shadow:0 0 10px rgba(113,83,232,.35)!important;
 }
 .dashboard-page.dashboard-panel-open #dashboardPanelResize.side-panel-resize:before{
   content:'↔'!important;position:absolute!important;left:50%!important;top:50%!important;transform:translate(-50%,-50%)!important;
   width:32px!important;height:32px!important;display:flex!important;align-items:center!important;justify-content:center!important;
   border:2px solid #7153e8!important;border-radius:50%!important;background:#7153e8!important;color:#fff!important;
   font-size:17px!important;font-weight:900!important;line-height:1!important;box-shadow:0 3px 14px rgba(0,0,0,.55)!important;
 }
 .dashboard-page.dashboard-panel-open .dashboard-side-panel{border-left:1px solid #35353d!important;border-radius:14px!important;overflow:hidden!important}
}
@media(max-width:900px){#dashboardPanelResize.side-panel-resize{display:none!important}.dashboard-page>.dashboard-layout>.dashboard-side-panel{margin-left:0!important}}


/* v42: single clean splitter rail. Real knob element avoids legacy pseudo-element conflicts. */
@media(min-width:901px){
  .dashboard-page>.dashboard-layout{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 0 0!important;
    column-gap:0!important;
    align-items:stretch!important;
  }
  .dashboard-page.dashboard-panel-open>.dashboard-layout{
    grid-template-columns:minmax(360px,1fr) 28px min(var(--panel-width,520px),55%)!important;
  }
  .dashboard-page>.dashboard-layout>.dashboard-primary{grid-column:1!important;grid-row:1!important;min-width:0!important}
  .dashboard-page>.dashboard-layout>#dashboardPanelResize{grid-column:2!important;grid-row:1!important}
  .dashboard-page>.dashboard-layout>.dashboard-side-panel{grid-column:3!important;grid-row:1!important;margin-left:10px!important}

  #dashboardPanelResize.side-panel-resize,
  .dashboard-page.dashboard-panel-open #dashboardPanelResize.side-panel-resize{
    display:none!important;
    position:relative!important;
    inset:auto!important;
    width:28px!important;
    height:auto!important;
    min-height:calc(100vh - 36px)!important;
    align-self:stretch!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    cursor:ew-resize!important;
    touch-action:none!important;
    z-index:60!important;
    overflow:visible!important;
  }
  .dashboard-page.dashboard-panel-open #dashboardPanelResize.side-panel-resize{
    display:block!important;
    background:linear-gradient(to right,transparent calc(50% - 1.5px),#7153e8 calc(50% - 1.5px),#7153e8 calc(50% + 1.5px),transparent calc(50% + 1.5px))!important;
  }
  #dashboardPanelResize.side-panel-resize:before,
  #dashboardPanelResize.side-panel-resize:after{content:none!important;display:none!important}
  #dashboardPanelResize .resize-knob{
    display:none;
    position:absolute;
    left:50%;top:50%;
    transform:translate(-50%,-50%);
    width:34px;height:34px;
    align-items:center;justify-content:center;
    border:2px solid #7153e8;
    border-radius:50%;
    background:#7153e8;
    color:#fff;
    font-size:17px;font-weight:900;line-height:1;
    box-shadow:0 3px 14px rgba(0,0,0,.55);
    pointer-events:none;
  }
  .dashboard-page.dashboard-panel-open #dashboardPanelResize .resize-knob{display:flex!important}
  .dashboard-page.dashboard-panel-open .dashboard-side-panel{
    border:1px solid #35353d!important;
    border-radius:14px!important;
    overflow:hidden!important;
  }
}
@media(max-width:900px){#dashboardPanelResize.side-panel-resize{display:none!important}}


/* v45: compact pink Add Entertainer controls */
#addEnt.add-ent-compact{
  background:#7153e8!important;
  border:1px solid #7153e8!important;
  color:#fff!important;
  width:auto!important;
  min-width:0!important;
  height:30px!important;
  padding:0 11px!important;
  border-radius:7px!important;
  font-size:12px!important;
  font-weight:800!important;
  line-height:1!important;
  white-space:nowrap!important;
  flex:0 0 auto!important;
  align-self:flex-start!important;
  margin-top:-3px!important;
}
#addEnt.add-ent-compact:hover{filter:brightness(1.06)}
#addRosterBtn.roster-add-ent-compact{
  width:auto!important;
  min-width:0!important;
  height:32px!important;
  padding:0 12px!important;
  border-radius:7px!important;
  font-size:12px!important;
  line-height:1!important;
  white-space:nowrap!important;
}
@media(min-width:901px){
  .dashboard-page.dashboard-panel-open #addEnt.add-ent-compact{
    height:30px!important;
    padding:0 11px!important;
    font-size:12px!important;
    margin-top:-5px!important;
  }
}

/* v46 — center docked panel close X precisely */
.side-panel-close{
  box-sizing:border-box!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0!important;
  margin:0!important;
  line-height:1!important;
  text-align:center!important;
  flex:0 0 38px!important;
  font-family:Arial,Helvetica,sans-serif!important;
  font-size:25px!important;
  font-weight:700!important;
}


/* v50: compact payout actions */
.row-actions .payout-btn,.row-actions .envelope-btn{width:auto!important;min-width:0!important;height:34px!important;padding:0 12px!important;border-radius:8px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;white-space:nowrap!important;font-size:14px!important;font-weight:800!important;line-height:1!important}
.row-actions .payout-btn{background:#7153e8!important;border:1px solid #7153e8!important;color:#fff!important}
.row-actions .envelope-btn{background:#fff!important;border:1px solid #fff!important;color:#15151a!important}
.row-actions{gap:7px!important;align-items:center!important}

/* v51 — dedicated wide unclaimed payout receipts */
.unclaimed-page{background:#fff;color:#111;padding:8mm!important;box-sizing:border-box}
.unclaimed-receipt{display:grid;grid-template-columns:minmax(0,1fr) 86mm;gap:6mm;border:1px solid #222;padding:6mm;box-sizing:border-box;background:#fff;color:#111;break-inside:avoid;page-break-inside:avoid}
.unclaimed-left{min-width:0}.unclaimed-receipt h2{font-size:17px;line-height:1.15;margin:0 0 4mm;font-weight:900;color:#111}
.unclaimed-copy{font-size:11px;line-height:1.35;margin:0 0 5mm;color:#111}
.unclaimed-fields{display:grid;grid-template-columns:1.2fr 1fr .9fr .9fr;gap:0;margin-bottom:5mm}
.unclaimed-fields>div{padding:0 4mm;border-right:1px solid #aaa;min-width:0}.unclaimed-fields>div:first-child{padding-left:0}.unclaimed-fields>div:last-child{border-right:0}
.unclaimed-fields span,.unclaimed-note span,.unclaimed-amount span,.unclaimed-sign span{display:block;font-size:9px;line-height:1.1;text-transform:uppercase;letter-spacing:.03em;color:#333;margin-bottom:1.5mm}
.unclaimed-fields b{display:block;font-size:12px;line-height:1.2;color:#111;overflow-wrap:anywhere}
.unclaimed-note{font-size:10px}.unclaimed-note>div{height:10mm;border-bottom:1px solid #333;padding-top:1mm;box-sizing:border-box;color:#111}
.unclaimed-right{display:grid;grid-template-rows:34mm 1fr;gap:4mm}
.unclaimed-amount,.unclaimed-sign{width:100%;box-sizing:border-box;text-align:center}
.unclaimed-amount{border:1.5px solid #7153e8;background:#f5f2ff;padding:5mm 4mm;display:flex;flex-direction:column;align-items:center;justify-content:center}
.unclaimed-amount b{font-size:29px;line-height:1;font-weight:900;color:#111}
.unclaimed-sign{border:1px solid #aaa;background:#fafafa;padding:4mm;display:flex;flex-direction:column;justify-content:flex-start}
.unclaimed-sign-line{margin-top:auto;border-bottom:1px solid #111;height:14mm}
.unclaimed-cut{height:7mm;display:flex;align-items:center;color:#888;font-size:10px;overflow:hidden}
.unclaimed-cut:after{content:"";display:block;flex:1;border-top:1px dashed #aaa;margin-left:2mm}
@media print{
 .unclaimed-page{break-before:page!important;page-break-before:always!important;min-height:267mm!important;padding:7mm!important;display:block!important}
 .unclaimed-receipt{height:82mm!important;padding:5mm!important;grid-template-columns:minmax(0,1fr) 78mm!important;gap:5mm!important;overflow:hidden!important}
 .unclaimed-receipt h2{font-size:13pt!important;margin:0 0 3mm!important}
 .unclaimed-copy{font-size:8.5pt!important;margin:0 0 4mm!important}
 .unclaimed-fields span,.unclaimed-note span,.unclaimed-amount span,.unclaimed-sign span{font-size:6.5pt!important}
 .unclaimed-fields b{font-size:9pt!important}
 .unclaimed-amount b{font-size:22pt!important}
 .unclaimed-right{grid-template-rows:29mm 1fr!important;gap:3mm!important}
 .unclaimed-note>div{height:8mm!important}
 .unclaimed-cut{height:5mm!important}
}

/* v52 — Prepare Envelope optional note: full-width and proportionate */
#envNote{
  display:block!important;
  width:100%!important;
  max-width:none!important;
  min-height:76px!important;
  box-sizing:border-box!important;
  resize:vertical!important;
  margin:6px 0 14px!important;
  padding:11px 12px!important;
  border-radius:8px!important;
}

/* v53 — centered branded sign-in with blank type-ahead staff name */
.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:32px 18px;background:#0d0d0f}
.login-box{width:min(100%,390px);display:flex;flex-direction:column;align-items:center}
.login-logo{display:block;width:190px;max-width:62vw;height:auto;object-fit:contain;margin:0 auto 22px}
.login-card{position:relative;width:100%;margin:0;padding:24px;border-radius:14px}
.login-card h2{margin:0 0 8px;font-size:24px;text-align:center}
.login-card>p.muted{margin:0 0 20px;text-align:center}
.login-label{display:block;font-size:13px;font-weight:800;margin:0 0 7px;color:#ddd}
#staffName,#pin{display:block;width:100%;height:46px;margin:0 0 10px}
.login-submit{display:flex!important;align-items:center;justify-content:center;width:100%!important;height:46px!important;margin-top:2px!important;background:#7153e8!important;border-color:#7153e8!important;color:#fff!important;font-weight:800!important}
.staff-suggestions{position:absolute;left:24px;right:24px;top:143px;z-index:50;background:#222229;border:1px solid #454550;border-radius:9px;overflow:hidden;box-shadow:0 12px 28px rgba(0,0,0,.38)}
.staff-suggestion{display:block;width:100%;border:0;border-radius:0;text-align:left;padding:11px 13px;background:#222229;color:#fff}
.staff-suggestion:hover,.staff-suggestion:focus{background:#303039;outline:none}
.staff-no-match{padding:11px 13px;color:#aaa;font-size:14px}
.login-card .error{min-height:18px;margin:10px 0 0;text-align:center;font-size:13px}
@media(max-width:500px){.login-screen{padding:24px 16px}.login-logo{width:165px}.login-card{padding:20px}.staff-suggestions{left:20px;right:20px;top:139px}}


/* v54 — compact envelope receipt print layout */
@media print{
 .unclaimed-page{padding:7mm!important;min-height:267mm!important}
 .unclaimed-receipt{height:60mm!important;min-height:60mm!important;padding:4mm!important;grid-template-columns:minmax(0,1fr) 72mm!important;gap:4mm!important}
 .unclaimed-receipt h2{font-size:11pt!important;line-height:1.08!important;margin:0 0 2mm!important}
 .unclaimed-copy{font-size:7.2pt!important;line-height:1.2!important;margin:0 0 2.5mm!important}
 .unclaimed-fields{margin-bottom:2.5mm!important}
 .unclaimed-fields>div{padding:0 2.5mm!important}
 .unclaimed-fields>div:first-child{padding-left:0!important}
 .unclaimed-fields span,.unclaimed-note span,.unclaimed-amount span,.unclaimed-sign span{font-size:5.8pt!important;margin-bottom:.8mm!important}
 .unclaimed-fields b{font-size:8pt!important;line-height:1.1!important}
 .unclaimed-note{font-size:7pt!important}
 .unclaimed-note>div{height:5mm!important;padding-top:.5mm!important}
 .unclaimed-right{grid-template-rows:21mm 1fr!important;gap:2mm!important}
 .unclaimed-amount{padding:2mm!important}
 .unclaimed-amount b{font-size:18pt!important}
 .unclaimed-sign{padding:2.5mm!important}
 .unclaimed-sign-line{height:8mm!important}
 .unclaimed-cut{height:4mm!important}
}
\n\n/* v55 — click-safety + conditional envelope note */\n.sidebar,.side-nav,.side-nav button,.nav-group,.nav-sub,.sidebar-signout{pointer-events:auto!important}\n.sidebar{z-index:200!important}\n.main-content{position:relative;z-index:1}\n.dashboard-side-panel:not(.open){pointer-events:none!important}\n#homeRosterModal.hide{display:none!important;pointer-events:none!important}\n.unclaimed-note.has-note{margin-top:2mm;font-size:10px;color:#111}\n.unclaimed-note.has-note>div{height:auto!important;min-height:0!important;border:0!important;padding:1mm 0 0!important;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.25}\n@media print{\n .unclaimed-note.has-note{margin-top:1.5mm!important;font-size:7pt!important}\n .unclaimed-note.has-note>div{height:auto!important;min-height:0!important;border:0!important;padding:.5mm 0 0!important;line-height:1.15!important}\n .unclaimed-receipt:has(.unclaimed-note.has-note){height:auto!important;min-height:60mm!important}\n}\n
/* v57 — responsive admin dashboard based on actual workspace width */
.dashboard-primary{container-type:inline-size;container-name:dashboardPrimary}
@container dashboardPrimary (max-width:760px){
  .dashboard-welcome{display:grid!important;grid-template-columns:1fr!important;align-items:start!important;gap:18px!important;margin-bottom:20px!important}
  .dashboard-welcome>div:first-child{min-width:0!important}
  .dashboard-welcome h1{font-size:30px!important}
  .current-shift{text-align:left!important;max-width:100%!important}
  .current-shift b{white-space:normal!important;line-height:1.3!important}
  .shift-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .stat-card{min-width:0!important;padding:14px!important}
  .stat-card b{font-size:21px!important;overflow-wrap:anywhere}
  .dash-section{padding:18px!important}
  .dash-section-head{align-items:flex-start!important;flex-wrap:wrap!important}
  .dash-panel-actions{width:100%!important;display:flex!important;gap:12px!important;flex-wrap:wrap!important;justify-content:flex-start!important}
  .dash-panel-actions .text-action{padding:4px 0!important}
}
@container dashboardPrimary (max-width:470px){
  .shift-stat-grid{grid-template-columns:1fr!important}
  .home-quick-actions{display:grid!important;grid-template-columns:1fr 1fr!important;width:100%!important}
  .home-quick-actions .add-dance-home,.home-quick-actions .add-roster-home{width:100%!important;padding:0 10px!important}
  .activity-row{grid-template-columns:36px minmax(0,1fr)!important}
  .activity-meta{grid-column:2!important;text-align:left!important}
}

/* v58 — unified role shell marker. Manager/admin/counter all use showDashboardShell; permissions only control visible actions. */
/* v60 roster continuity + removal */
.roster-swipe-shell{position:relative;overflow:hidden;border-bottom:1px solid #2d2d34}.roster-swipe-shell .panel-roster-row{border-bottom:0;background:#18181d;position:relative;z-index:2;transition:transform .18s ease;touch-action:pan-y}.roster-swipe-shell.swiped .roster-swipe-content{transform:translateX(-92px)!important}.roster-remove-action{position:absolute;inset:0 0 0 auto;width:92px;display:flex;align-items:center;justify-content:center;background:#3a1823;z-index:1}.roster-remove-btn{background:#b92f58;color:#fff;border:0;border-radius:8px;padding:9px 12px;font-weight:800;cursor:pointer}.roster-remove-btn:disabled{opacity:.6}.roster-swipe-hint{font-size:10px;color:#6f6f79;margin-top:8px}.compact-remove{padding:7px 10px;font-size:12px}.full-roster-row td:last-child{text-align:right}
@media (hover:hover) and (pointer:fine){.roster-swipe-hint{display:none}}

.roster-row-controls{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px}.roster-desktop-remove{display:none;padding:6px 10px;font-size:11px}.roster-swipe-hint{margin-top:0!important}@media (hover:hover) and (pointer:fine){.roster-desktop-remove{display:inline-flex;align-items:center;justify-content:center}.roster-swipe-hint{display:none!important}}

/* v65 quota-aware roster removal */
.quota-remove-card{max-width:560px}.quota-remove-balance{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:14px 16px;margin:12px 0;border:1px solid rgba(255,255,255,.14);border-radius:12px}.quota-remove-balance b{font-size:18px}.quota-remove-balance span{font-weight:700}.quota-remove-options{display:grid;gap:10px;margin-top:16px}.quota-resolution-choice{text-align:left;padding:14px 16px;border-radius:12px}.quota-resolution-choice b,.quota-resolution-choice span{display:block}.quota-resolution-choice span{margin-top:5px;font-size:13px;opacity:.75;line-height:1.35}.waiver-approval{margin-top:16px}.waiver-approval select,.waiver-approval input,.waiver-approval textarea{width:100%;box-sizing:border-box;margin-bottom:12px}

/* v70 — stable dashboard docking + tablet overlay */
@media (min-width:1280px){
  .dashboard-page.dashboard-panel-open>.dashboard-layout{
    grid-template-columns:minmax(620px,1fr) 28px min(var(--panel-width,520px),48%)!important;
  }
  .dashboard-page.dashboard-panel-open .dashboard-primary{min-width:620px!important}
}
@media (min-width:901px) and (max-width:1279px){
  .dashboard-page>.dashboard-layout,
  .dashboard-page.dashboard-panel-open>.dashboard-layout{display:block!important}
  .dashboard-page>.dashboard-layout>.dashboard-primary{min-width:0!important;width:100%!important}
  .dashboard-page>.dashboard-layout>#dashboardPanelResize{display:none!important}
  .dashboard-page>.dashboard-layout>.dashboard-side-panel{
    position:fixed!important;top:0!important;right:0!important;left:auto!important;
    width:min(620px,82vw)!important;max-width:none!important;height:100vh!important;
    margin:0!important;border-radius:0!important;transform:translateX(105%)!important;
    opacity:1!important;visibility:visible!important;pointer-events:none!important;z-index:250!important;
  }
  .dashboard-page>.dashboard-layout>.dashboard-side-panel.open{transform:translateX(0)!important;pointer-events:auto!important}
  .main-content,.main-content.dashboard-panel-open{padding-right:24px!important}
}

/* v71 — iPad/touch layout: roster is always an overlay and never compresses dashboard */
@media (pointer:coarse), (hover:none){
  .dashboard-page>.dashboard-layout,
  .dashboard-page.dashboard-panel-open>.dashboard-layout{
    display:block!important;
    grid-template-columns:none!important;
    width:100%!important;
  }
  .dashboard-page>.dashboard-layout>.dashboard-primary,
  .dashboard-page.dashboard-panel-open>.dashboard-layout>.dashboard-primary{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    grid-column:auto!important;
  }
  #dashboardPanelResize,
  .side-panel-resize{
    display:none!important;
    pointer-events:none!important;
  }
  .dashboard-page>.dashboard-layout>.dashboard-side-panel,
  .dashboard-page.dashboard-panel-open>.dashboard-layout>.dashboard-side-panel{
    position:fixed!important;
    top:0!important;
    right:0!important;
    left:auto!important;
    width:min(620px,88vw)!important;
    max-width:88vw!important;
    height:100dvh!important;
    margin:0!important;
    border-radius:0!important;
    transform:translateX(105%)!important;
    opacity:1!important;
    visibility:visible!important;
    pointer-events:none!important;
    z-index:350!important;
  }
  .dashboard-page>.dashboard-layout>.dashboard-side-panel.open,
  .dashboard-page.dashboard-panel-open>.dashboard-layout>.dashboard-side-panel.open{
    transform:translateX(0)!important;
    pointer-events:auto!important;
  }
  .main-content,
  .main-content.dashboard-panel-open{
    padding-right:24px!important;
  }
  .dashboard-primary .shift-stat-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    width:100%!important;
  }
  .dashboard-primary .stat-card{
    min-width:0!important;
    width:auto!important;
    overflow:hidden!important;
    padding:15px!important;
  }
  .dashboard-primary .stat-card span,
  .dashboard-primary .stat-card b{
    min-width:0!important;
    max-width:100%!important;
    overflow-wrap:normal!important;
    word-break:normal!important;
  }
  .dashboard-primary .stat-card b{
    font-size:22px!important;
    white-space:nowrap!important;
  }
}
@media (pointer:coarse) and (max-width:820px), (hover:none) and (max-width:820px){
  .dashboard-primary .shift-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .dashboard-page>.dashboard-layout>.dashboard-side-panel,
  .dashboard-page.dashboard-panel-open>.dashboard-layout>.dashboard-side-panel{width:min(560px,92vw)!important;max-width:92vw!important}
}
@media (pointer:coarse) and (max-width:560px), (hover:none) and (max-width:560px){
  .dashboard-primary .shift-stat-grid{grid-template-columns:1fr!important}
  .main-content,.main-content.dashboard-panel-open{padding-right:14px!important}
  .dashboard-page>.dashboard-layout>.dashboard-side-panel,
  .dashboard-page.dashboard-panel-open>.dashboard-layout>.dashboard-side-panel{width:100vw!important;max-width:100vw!important}
}

/* v72 — keep Safari/iPad text sizing consistent between Home and app views */
html{
  -webkit-text-size-adjust:100%!important;
  text-size-adjust:100%!important;
}
body,.app-shell,.main-content,#view,.dashboard-page,.dashboard-primary{
  -webkit-text-size-adjust:100%!important;
  text-size-adjust:100%!important;
}
@media (pointer:coarse), (hover:none){
  html,body,.app-shell,.main-content,#view,.dashboard-page,.dashboard-primary{
    -webkit-text-size-adjust:100%!important;
    text-size-adjust:100%!important;
  }
}

/* v73 — tablet docked panel + stable dashboard reflow */
.panel-live-row>div:first-child{display:grid;gap:4px;min-width:0}
.panel-live-minutes{font-size:12px;color:#aaaab5;font-weight:700}

/* Override the v71 blanket touch overlay. On iPad/tablet the panel is part of
   the dashboard grid so it pushes the workspace instead of covering it. */
@media (pointer:coarse) and (min-width:561px), (hover:none) and (min-width:561px){
  .dashboard-page>.dashboard-layout,
  .dashboard-page.dashboard-panel-open>.dashboard-layout{
    display:grid!important;
    width:100%!important;
    align-items:stretch!important;
  }
  .dashboard-page>.dashboard-layout{
    grid-template-columns:minmax(0,1fr) 0 0!important;
  }
  .dashboard-page.dashboard-panel-open>.dashboard-layout{
    grid-template-columns:minmax(320px,1fr) 24px minmax(300px,var(--panel-width,360px))!important;
  }
  .dashboard-page>.dashboard-layout>.dashboard-primary,
  .dashboard-page.dashboard-panel-open>.dashboard-layout>.dashboard-primary{
    grid-column:1!important;grid-row:1!important;width:auto!important;min-width:0!important;max-width:none!important;
  }
  .dashboard-page>.dashboard-layout>#dashboardPanelResize,
  .dashboard-page.dashboard-panel-open>.dashboard-layout>#dashboardPanelResize{
    display:block!important;grid-column:2!important;grid-row:1!important;position:relative!important;
    left:auto!important;top:auto!important;width:24px!important;height:auto!important;min-height:100%!important;
    cursor:ew-resize!important;touch-action:none!important;pointer-events:auto!important;z-index:50!important;
  }
  .dashboard-page:not(.dashboard-panel-open) #dashboardPanelResize{visibility:hidden!important;pointer-events:none!important}
  .dashboard-page.dashboard-panel-open #dashboardPanelResize{visibility:visible!important}
  .dashboard-page.dashboard-panel-open #dashboardPanelResize:before{
    content:'↔'!important;display:grid!important;place-items:center!important;position:sticky!important;top:45%!important;
    width:24px!important;height:44px!important;border-radius:8px!important;background:#27272d!important;color:#fff!important;
    font-size:15px!important;font-weight:800!important;
  }
  .dashboard-page.dashboard-panel-open #dashboardPanelResize:after{content:''!important;display:block!important;position:absolute!important;left:11px!important;top:0!important;width:2px!important;height:100%!important;background:#3b3b44!important}
  .dashboard-page>.dashboard-layout>.dashboard-side-panel,
  .dashboard-page.dashboard-panel-open>.dashboard-layout>.dashboard-side-panel{
    grid-column:3!important;grid-row:1!important;position:sticky!important;top:18px!important;right:auto!important;left:auto!important;
    width:100%!important;max-width:none!important;height:calc(100dvh - 36px)!important;margin:0!important;
    border-radius:14px!important;transform:none!important;z-index:20!important;opacity:0!important;visibility:hidden!important;pointer-events:none!important;
  }
  .dashboard-page>.dashboard-layout>.dashboard-side-panel.open,
  .dashboard-page.dashboard-panel-open>.dashboard-layout>.dashboard-side-panel.open{
    opacity:1!important;visibility:visible!important;pointer-events:auto!important;transform:none!important;
  }
  .main-content,.main-content.dashboard-panel-open{padding-right:18px!important}
  .dashboard-primary .shift-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .dashboard-primary .stat-card{min-width:0!important;overflow:hidden!important}
  .dashboard-primary .stat-card span{white-space:normal!important;overflow-wrap:normal!important;word-break:normal!important}
  .dashboard-primary .stat-card b{white-space:nowrap!important;font-size:21px!important}
}

/* Large tablets have room for three dashboard cards while the panel is docked. */
@media (pointer:coarse) and (min-width:1180px), (hover:none) and (min-width:1180px){
  .dashboard-primary .shift-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}

/* v75: restricted DJBooth live roster */
.dj-shell{min-height:100vh;background:#111116;color:#fff}.dj-header{min-height:88px;padding:16px 28px;border-bottom:1px solid #2d2d35;background:#17171c;display:flex;align-items:center;justify-content:space-between;gap:20px;position:sticky;top:0;z-index:20}.dj-brand{display:flex;align-items:center;gap:14px}.dj-brand img{width:58px;height:58px;object-fit:contain}.dj-brand span{display:block;color:#a991ff;font-size:11px;font-weight:900;letter-spacing:.12em}.dj-brand b{display:block;font-size:20px;margin-top:3px}.dj-signout{background:#222229;color:#fff;border:1px solid #41414b;border-radius:9px;padding:11px 16px;font-weight:800}.dj-main{width:min(900px,calc(100% - 36px));margin:28px auto}.dj-roster-card{background:#19191f;border:1px solid #32323a;border-radius:16px;padding:24px}.dj-roster-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px}.dj-roster-head h1{margin:4px 0 4px;font-size:30px}.dj-roster-head .pink-primary{margin:0;white-space:nowrap}.dj-roster-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.dj-roster-row{min-height:58px;display:flex;align-items:center;gap:12px;background:#222229;border:1px solid #34343d;border-radius:11px;padding:12px 15px;font-size:18px}.dj-presence-dot{width:10px;height:10px;border-radius:50%;background:#56d58b;box-shadow:0 0 0 4px rgba(86,213,139,.1);flex:0 0 auto}.dj-empty{grid-column:1/-1;padding:34px 18px;text-align:center;color:#9999a5;border:1px dashed #3a3a43;border-radius:11px}.dj-empty b,.dj-empty span{display:block}.dj-empty b{color:#fff;margin-bottom:6px}.dj-add-card{max-width:600px}.dj-dancer-choices{max-height:55vh;overflow:auto;margin-top:12px;display:grid;gap:7px}.dj-dancer-choice{width:100%;display:flex;justify-content:space-between;align-items:center;text-align:left;background:#222229;color:#fff;border:1px solid #393943;border-radius:9px;padding:13px 14px;font-weight:800}.dj-dancer-choice b{color:#a991ff}.dj-dancer-choice:disabled{opacity:.55}
@media(max-width:700px){.dj-header{padding:13px 16px}.dj-brand img{width:48px;height:48px}.dj-brand b{font-size:17px}.dj-main{width:calc(100% - 24px);margin:18px auto}.dj-roster-card{padding:17px}.dj-roster-head{align-items:flex-start;flex-direction:column}.dj-roster-head .pink-primary{width:100%}.dj-roster-list{grid-template-columns:1fr}}

/* v76 — DJBooth restricted two-view shell */
.dj-app-shell{min-height:100vh;background:#111116;color:#fff;display:grid;grid-template-columns:228px minmax(0,1fr)}
.dj-sidebar{min-height:100vh;background:#17171c;border-right:1px solid #303038;padding:18px 14px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}
.dj-sidebar-brand{padding:8px 8px 18px;border-bottom:1px solid #303038;text-align:center}.dj-sidebar-brand img{width:112px;height:92px;object-fit:contain}
.dj-staff-card{display:flex;align-items:center;gap:12px;padding:22px 8px;border-bottom:1px solid #303038}.dj-staff-card b,.dj-staff-card span{display:block}.dj-staff-card span{font-size:12px;color:#a8a8b2;margin-top:3px;text-transform:uppercase}
.dj-side-nav{display:grid;gap:7px;padding-top:18px}.dj-side-nav button{width:100%;display:flex;align-items:center;gap:12px;background:transparent;color:#d9d9df;border:0;border-radius:9px;padding:12px 13px;text-align:left;font-weight:800;font-size:15px}.dj-side-nav button.active{background:#7153e8;color:#fff}.dj-side-nav button span{width:18px;text-align:center}
.dj-sidebar-signout{margin-top:auto;width:100%;display:flex;align-items:center;gap:12px;background:transparent;color:#eee;border:0;border-top:1px solid #303038;padding:18px 13px 8px;font-weight:800;text-align:left}
.dj-content{min-width:0;padding:32px}.dj-content #djView{width:min(1050px,100%);margin:0 auto}.dj-page-title{margin:5px 0 20px;font-size:28px}.dj-live-wrap{overflow-x:auto}.dj-live-table{width:100%;border-collapse:collapse;min-width:610px}.dj-live-table th,.dj-live-table td{padding:15px 10px;border-bottom:1px solid #34343d;text-align:left}.dj-live-table th{font-size:14px;color:#f1f1f4}.dj-live-table td{font-size:15px}.dj-status{font-weight:800}.dj-status.timeup{color:#ff8b93}
@media(max-width:760px){.dj-app-shell{grid-template-columns:1fr}.dj-sidebar{position:static;height:auto;min-height:0;padding:10px 12px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px}.dj-sidebar-brand{display:none}.dj-staff-card{border:0;padding:7px}.dj-side-nav{display:flex;padding:0;gap:6px}.dj-side-nav button{padding:10px 11px;white-space:nowrap}.dj-sidebar-signout{margin:0;border:0;padding:10px;width:auto}.dj-sidebar-signout span{display:none}.dj-content{padding:16px 12px}.dj-roster-card{padding:16px}}

/* v77 — DJ Live Log with dockable/resizable Shift Roster panel */
.dj-content{overflow-x:hidden}
.dj-workspace{--dj-panel-width:390px;display:grid;grid-template-columns:minmax(0,1fr) 0 0;align-items:stretch;width:100%;transition:grid-template-columns .18s ease;min-width:0}
.dj-workspace.panel-open{grid-template-columns:minmax(360px,1fr) 24px minmax(300px,var(--dj-panel-width))}
.dj-primary{grid-column:1;min-width:0}
.dj-panel-resize{grid-column:2;grid-row:1;position:relative;width:24px;min-height:100%;visibility:hidden;pointer-events:none;touch-action:none;cursor:ew-resize;z-index:5}
.dj-workspace.panel-open .dj-panel-resize{visibility:visible;pointer-events:auto}
.dj-workspace.panel-open .dj-panel-resize:after{content:'';position:absolute;left:11px;top:0;width:2px;height:100%;background:#3b3b44}
.dj-workspace.panel-open .dj-panel-resize:before{content:'↔';position:sticky;top:45%;display:grid;place-items:center;width:24px;height:44px;border-radius:8px;background:#292930;color:#fff;font-size:14px;font-weight:900;z-index:2}
.dj-side-panel{grid-column:3;grid-row:1;min-width:0;width:100%;height:calc(100vh - 64px);position:sticky;top:32px;background:#19191f;border:1px solid #32323a;border-radius:16px;padding:18px;overflow:auto;opacity:0;visibility:hidden;pointer-events:none;transform:translateX(12px);transition:opacity .16s ease,transform .16s ease}
.dj-workspace.panel-open .dj-side-panel{opacity:1;visibility:visible;pointer-events:auto;transform:none}
.dj-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border-bottom:1px solid #34343d;padding-bottom:12px;margin-bottom:12px}.dj-panel-head h2{margin:4px 0;font-size:23px}.dj-panel-close{width:38px;height:38px;border-radius:9px;border:1px solid #42424b;background:#25252c;color:#fff;font-size:25px;line-height:1}.dj-panel-add{width:100%;margin:0 0 14px}.dj-panel-list{grid-template-columns:1fr}.dj-panel-list .dj-roster-row{min-height:52px;font-size:16px}.dj-resizing{user-select:none!important;cursor:ew-resize!important}
@media (max-width:980px){.dj-workspace.panel-open{grid-template-columns:minmax(320px,1fr) 22px minmax(300px,var(--dj-panel-width))}.dj-content{padding:22px 16px}.dj-live-table{min-width:520px}}
@media (max-width:720px){.dj-workspace,.dj-workspace.panel-open{display:block}.dj-panel-resize{display:none!important}.dj-side-panel{position:fixed;inset:0 0 0 auto;width:min(92vw,430px);height:100dvh;z-index:100;top:0;border-radius:14px 0 0 14px;transform:translateX(100%);visibility:visible;opacity:1;pointer-events:none}.dj-workspace.panel-open .dj-side-panel{transform:none;pointer-events:auto;box-shadow:-20px 0 45px rgba(0,0,0,.45)}.dj-content{overflow:visible}}


/* v78 — robust desktop DJ split-panel behavior */
@media (min-width:721px){
  .dj-content{min-width:0;overflow:hidden!important}
  .dj-workspace{--dj-panel-width:400px;display:flex!important;align-items:stretch!important;width:100%!important;min-width:0!important;gap:0!important}
  .dj-primary{flex:1 1 auto!important;width:auto!important;min-width:0!important;grid-column:auto!important}
  .dj-content #djView{max-width:none!important;margin:0!important}
  .dj-panel-resize{display:none!important;flex:0 0 24px!important;width:24px!important;min-height:calc(100vh - 64px)!important;position:relative!important;visibility:hidden!important;pointer-events:none!important;cursor:ew-resize!important}
  .dj-side-panel{display:none!important;flex:0 0 var(--dj-panel-width)!important;width:var(--dj-panel-width)!important;max-width:55vw!important;min-width:300px!important;height:calc(100vh - 64px)!important;position:sticky!important;top:32px!important;opacity:1!important;visibility:visible!important;pointer-events:auto!important;transform:none!important}
  .dj-workspace.panel-open .dj-panel-resize{display:block!important;visibility:visible!important;pointer-events:auto!important}
  .dj-workspace.panel-open .dj-side-panel{display:block!important}
  .dj-workspace.panel-open .dj-primary{min-width:420px!important}
  .dj-workspace.panel-open .dj-live-table{min-width:560px!important}
}
@media (min-width:721px) and (max-width:1050px){
  .dj-workspace.panel-open .dj-primary{min-width:360px!important}
  .dj-side-panel{max-width:48vw!important}
}

/* v79 — DJ desktop resize + close alignment fix */
@media (min-width:721px){
  .dj-panel-resize{position:relative!important;z-index:20!important;cursor:col-resize!important;touch-action:none!important;user-select:none!important}
  .dj-panel-resize::after{pointer-events:none!important}
  .dj-panel-resize::before{pointer-events:none!important}
  .dj-panel-close{display:inline-flex!important;align-items:center!important;justify-content:center!important;padding:0!important;line-height:1!important;text-align:center!important;font-family:Arial,sans-serif!important;font-size:26px!important}
}

/* v80 Security — roster-only desktop workspace */
.security-app-shell{min-height:100vh;background:#111116;color:#fff;display:grid;grid-template-columns:228px minmax(0,1fr)}
.security-sidebar{min-height:100vh;background:#17171c;border-right:1px solid #303038;padding:18px 14px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}
.security-sidebar-brand{padding:8px 8px 18px;border-bottom:1px solid #303038;text-align:center}.security-sidebar-brand img{width:112px;height:92px;object-fit:contain}
.security-content{min-width:0;padding:32px}.security-roster-card{width:min(980px,100%);margin:0 auto}.security-roster-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}.security-roster-head h1{margin:5px 0 3px;font-size:30px}.security-roster-head .pink-primary{margin:0;white-space:nowrap}
.security-roster-table-wrap{overflow:auto;border:1px solid #34343d;border-radius:11px}.security-roster-table{width:100%;border-collapse:collapse}.security-roster-table th,.security-roster-table td{padding:16px 18px;text-align:left;border-bottom:1px solid #34343d}.security-roster-table th{background:#222229;font-size:13px;text-transform:uppercase;letter-spacing:.04em}.security-roster-table tbody tr:last-child td{border-bottom:0}.security-roster-table td:first-child{display:flex;align-items:center;gap:12px;font-size:17px}.security-roster-table td:last-child{font-weight:800;font-size:16px}
.security-roster-table{table-layout:fixed}.security-roster-table th:nth-child(1){width:50%}.security-roster-table th:nth-child(2){width:30%}.security-roster-table th:nth-child(3){width:20%}.security-roster-table td{vertical-align:middle}.security-roster-table td:first-child{display:table-cell;font-size:17px}.security-roster-table .dj-presence-dot{display:inline-block;vertical-align:middle;margin-right:12px}.security-roster-table th:last-child,.security-roster-table td:last-child{text-align:right}.security-roster-table td:last-child{font-size:inherit;font-weight:400}.security-roster-table tbody tr:last-child td{border-bottom:0}
.payroll-heading{max-width:1100px;margin:0 auto 18px}.payroll-heading h1{margin:0 0 5px}.payroll-heading p{margin:0;color:#aaa}.payroll-search-card,.payroll-results-card{max-width:1100px;margin:0 auto 18px}.payroll-controls{display:grid;grid-template-columns:170px 170px 260px 170px;gap:12px;align-items:end;justify-content:start}.payroll-controls label{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;min-width:0;overflow:hidden}.payroll-controls label span{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#aaa;font-weight:800}.payroll-controls input,.payroll-controls select{display:block;width:100%!important;max-width:100%!important;min-width:0!important;height:44px!important;min-height:44px!important;max-height:44px!important;block-size:44px!important;box-sizing:border-box!important;padding:0 10px!important;line-height:1!important}.payroll-controls input[type=date]::-webkit-date-and-time-value{min-height:0!important;height:auto!important;margin:0!important;text-align:center}.payroll-controls input[type=date]::-webkit-datetime-edit{padding:0!important}.payroll-controls select{background:#202027;color:#fff;border:1px solid #3a3a44;border-radius:9px}.payroll-controls button{display:flex!important;align-items:center!important;justify-content:center!important;width:170px;height:44px!important;min-height:44px!important;max-height:44px!important;margin:0!important;padding:0 12px!important;text-align:center!important;white-space:nowrap;box-sizing:border-box!important}.payroll-grand{text-align:right;display:grid;gap:3px}.payroll-grand span{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#aaa}.payroll-grand b{font-size:28px;color:#7153e8}.payroll-table td.money,.payroll-table th:last-child,.payroll-table tfoot td:last-child{text-align:right}.payroll-table tfoot td{border-top:2px solid #7153e8;font-size:17px}@media(max-width:900px){.payroll-controls{grid-template-columns:170px 170px 260px}.payroll-controls button{grid-column:1/-1}}@media(max-width:700px){.payroll-controls{grid-template-columns:1fr 1fr}.payroll-period-select{grid-column:1/-1}.payroll-controls button{grid-column:1/-1;width:100%}.payroll-results-card .panel-head{align-items:flex-start}.payroll-grand b{font-size:22px}}@media(max-width:520px){.payroll-controls{grid-template-columns:1fr}.payroll-period-select,.payroll-controls button{grid-column:auto}}
.payroll-date-control{position:relative;display:flex!important;align-items:center;justify-content:center;width:100%;height:44px;border:1px solid #3a3a44;border-radius:9px;background:#202027;box-sizing:border-box;overflow:hidden;color:#fff!important;font-size:15px!important;font-weight:500!important;letter-spacing:0!important;text-transform:none!important}.payroll-date-control>span{color:#fff!important;font-size:15px!important;font-weight:500!important;letter-spacing:0!important;text-transform:none!important;line-height:1!important}.payroll-date-control input[type=date]{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;min-height:0!important;max-height:none!important;opacity:0!important;cursor:pointer!important;padding:0!important;border:0!important;margin:0!important}
.signin-sheet-page{page-break-before:always}.signin-sheet-table th,.signin-sheet-table td{padding:10px 12px}.signin-sheet-table{margin-top:16px}
@media(max-width:760px){.security-app-shell{grid-template-columns:1fr}.security-sidebar{position:static;height:auto;min-height:0;padding:10px 12px;display:grid;grid-template-columns:1fr auto;align-items:center}.security-sidebar-brand{display:none}.security-sidebar .dj-staff-card{display:none}.security-sidebar .dj-side-nav{padding:0}.security-sidebar .dj-sidebar-signout{margin:0;border:0;padding:10px}.security-content{padding:16px 12px}.security-roster-head{align-items:flex-start;flex-direction:column}.security-roster-head .pink-primary{width:100%}}

/* v124 DJ stage rotation */
.dj-rotation-card{margin-top:18px;transition:border-color .15s,background .15s}.dj-rotation-card.drag-over{border-color:#7153e8;background:#1c1730}.dj-rotation-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:15px}.dj-rotation-head h2{margin:4px 0;font-size:24px}.dj-drop-hint{padding:8px 11px;border:1px dashed #7153e8;border-radius:8px;color:#b09aff;font-size:12px;font-weight:900;text-transform:uppercase}.dj-rotation-list{display:grid;gap:8px}.dj-rotation-row{display:grid;grid-template-columns:38px minmax(130px,1fr) 72px auto;align-items:center;gap:10px;padding:12px;border:1px solid #35353e;border-radius:11px;background:#222229}.dj-rotation-row.is-due{border-color:#7153e8;background:#231a38;box-shadow:0 0 0 2px rgba(113,83,232,.12)}.dj-rotation-row.is-on-stage{border-color:#62d995;background:#17271f}.dj-rotation-row.is-unavailable{opacity:.72}.dj-rotation-order{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#303038;color:#fff;font-weight:900}.dj-rotation-name b,.dj-rotation-name span,.dj-stage-count b,.dj-stage-count span{display:block}.dj-rotation-name span,.dj-stage-count span{margin-top:3px;color:#aaaab5;font-size:11px}.is-due .dj-rotation-name span{color:#b09aff;font-weight:900;text-transform:uppercase}.is-on-stage .dj-rotation-name span{color:#79e2a5;font-weight:900}.dj-stage-count{text-align:center}.dj-stage-count b{font-size:20px}.dj-rotation-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px}.dj-rotation-actions button{padding:8px 10px;white-space:nowrap}.dj-remove-rotation{width:32px;height:32px;padding:0!important;border-radius:8px;color:#ff9aab;background:#351c23;border-color:#65303e}.dj-roster-draggable{cursor:grab}.dj-roster-draggable:active{cursor:grabbing}.dj-roster-draggable .dj-add-rotation{margin-left:auto;padding:7px 9px;color:#b09aff;background:#292930;border-color:#45454f;font-size:11px}.dj-skip-options{display:grid;grid-template-columns:1fr 1fr;gap:8px}.dj-skip-options button{text-align:left;padding:13px}.dj-skip-card{max-width:560px}.dj-skip-card #djSkipOtherWrap{margin-top:14px}.dj-skip-card #djSkipOtherSave{width:100%;margin-top:10px}.dj-rotation-empty{min-height:110px;display:grid;place-content:center}
@media(max-width:980px){.dj-rotation-row{grid-template-columns:34px minmax(110px,1fr) 58px}.dj-rotation-actions{grid-column:2/-1;justify-content:flex-start}}
@media(max-width:600px){.dj-rotation-head{display:grid}.dj-drop-hint{display:none}.dj-rotation-row{grid-template-columns:32px minmax(100px,1fr) 52px;padding:10px}.dj-skip-options{grid-template-columns:1fr}}

/* v126 keep DJ sign-out inside Chrome/iPad's visible viewport */
@media(min-width:761px){
 .dj-sidebar{height:100svh!important;max-height:100svh!important;min-height:0!important;overflow-y:auto!important;overscroll-behavior:contain;padding-bottom:calc(12px + env(safe-area-inset-bottom))!important}
 .dj-sidebar-signout{position:sticky!important;bottom:0!important;z-index:5!important;flex:0 0 auto!important;background:#17171c!important;padding-bottom:12px!important}
}
.dj-rotation-row.is-in-dance{opacity:.46!important;filter:grayscale(.75)}.dj-rotation-row.is-in-dance .dj-rotation-name span{color:#b7b7c0;font-weight:800}.dj-rotation-row.is-in-dance .dj-rotation-order{background:#45454c}
.stage-rotation-print{margin-top:8mm}.stage-rotation-print>h2{font-size:15px;margin:0 0 3mm;border-bottom:2px solid #000;padding-bottom:2mm}.stage-rotation-table th:nth-child(1){width:30%}.stage-rotation-table th:nth-child(2){width:20%;text-align:center}.stage-rotation-table td:nth-child(2){text-align:center;font-weight:800}.stage-rotation-table th:nth-child(3){width:50%}
.admin-stage-heading{align-items:flex-end}.admin-stage-live{display:flex;align-items:center;gap:8px;color:#73dda0;font-weight:900;text-transform:uppercase;letter-spacing:.08em;font-size:12px}.admin-stage-live span{width:10px;height:10px;border-radius:50%;background:#55d98d;box-shadow:0 0 0 5px rgba(85,217,141,.12)}.admin-stage-card{padding:24px}.admin-stage-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:20px}.admin-stage-summary>div{display:grid;gap:5px;padding:14px;background:#222229;border:1px solid #363640;border-radius:10px}.admin-stage-summary span{color:#aaaab5;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.admin-stage-summary b{font-size:20px}.admin-stage-row{grid-template-columns:42px minmax(180px,1fr) 90px}.admin-stage-list{gap:9px}@media(max-width:780px){.admin-stage-summary{grid-template-columns:1fr 1fr}.admin-stage-row{grid-template-columns:38px minmax(0,1fr) 70px}}

/* v83 — branded close-out package with strict section pagination */
.package-page-head{display:flex;flex-direction:column;align-items:center;text-align:center;gap:3px;margin:0 0 5mm}
.print-logo{display:block;width:42mm;max-width:180px;height:auto;object-fit:contain;margin:0 auto 2mm}
.paper-summary-label{text-align:right!important;white-space:nowrap}
#printPortal{display:none}
.dash-panel-actions .dashboard-panel-action{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;min-height:44px;margin:0!important;padding:0 18px!important;border-radius:9px!important;font-size:14px!important;font-weight:800!important;line-height:1.15!important;white-space:nowrap;touch-action:manipulation}
@media(max-width:700px){.dash-panel-actions{display:grid!important;grid-template-columns:1fr 1fr!important;width:100%!important}.dash-panel-actions .dashboard-panel-action{width:100%!important;min-height:48px!important;padding:8px 12px!important;white-space:normal!important;text-align:center}}
@media print{
  @page{size:letter;margin:0}
  #app{display:none!important}
  #printPortal{display:block!important;position:static!important;width:auto!important;margin:0!important;padding:0!important;border-radius:0!important;background:#fff!important;color:#000!important}
  #printPortal,#printPortal *{visibility:visible!important}
  .print-page-boundary{display:block!important;height:1px!important;overflow:hidden!important;break-before:page!important;page-break-before:always!important;font-size:0!important;line-height:0!important;color:#fff!important}
  .dance-log-page,.signin-sheet-page,.receipt-page,.unclaimed-page,.quota-report-page{break-before:auto!important;page-break-before:auto!important;break-after:auto!important;page-break-after:auto!important}
  #printArea>.print-section:last-child{break-after:auto!important;page-break-after:auto!important}
  .receipt-page>.package-page-head{grid-column:1/-1!important}
  .receipt-page{grid-template-rows:auto!important;grid-auto-rows:auto!important}
  .package-page-head{break-inside:avoid!important;page-break-inside:avoid!important}
  .print-logo{width:36mm!important;max-height:18mm!important}
  .paper-table tfoot tr{break-inside:avoid!important;page-break-inside:avoid!important}
  .paper-summary-label{text-align:right!important;padding-right:3mm!important}
}

/* v103 - iOS Chrome print package: one section per page, no horizontal clipping */
@media print{
  @page{size:Letter portrait;margin:7mm}
  html,body{width:100%!important;min-width:0!important;height:auto!important;overflow:visible!important;background:#fff!important}
  #printPortal.print-area{display:block!important;position:static!important;width:100%!important;max-width:100%!important;min-width:0!important;margin:0!important;padding:0!important;overflow:visible!important;box-sizing:border-box!important}
  #printPortal>.print-page-boundary{display:none!important}
  #printPortal>.print-section{display:block;position:relative;width:100%!important;max-width:100%!important;min-width:0!important;height:auto!important;min-height:0!important;margin:0!important;padding:3mm!important;overflow:visible!important;box-sizing:border-box!important;break-before:page!important;page-break-before:always!important;break-after:auto!important;page-break-after:auto!important}
  #printPortal>.print-section:first-child{break-before:auto!important;page-break-before:auto!important}
  #printPortal .history-table-wrap{width:100%!important;max-width:100%!important;min-width:0!important;overflow:visible!important}
  #printPortal .paper-table,#printPortal .signin-sheet-table,#printPortal .quota-print-table{width:100%!important;max-width:100%!important;min-width:0!important;table-layout:fixed!important;border-collapse:collapse!important}
  #printPortal .paper-table{font-size:8.5pt!important}
  #printPortal .paper-table th,#printPortal .paper-table td{padding:1.5mm!important;overflow-wrap:anywhere!important;word-break:normal!important}
  #printPortal .package-page-head{width:100%!important;max-width:100%!important;margin:0 0 4mm!important}
  #printPortal .package-page-head h1{font-size:16pt!important;line-height:1.1!important;white-space:normal!important}
  #printPortal .print-logo{width:34mm!important;max-width:34mm!important;max-height:19mm!important}
  #printPortal>.receipt-page{display:grid!important;grid-template-columns:1fr 1fr!important;grid-auto-rows:auto!important;column-gap:5mm!important;row-gap:2.5mm!important;align-content:start!important}
  #printPortal>.receipt-page>.package-page-head{grid-column:1/-1!important}
  #printPortal>.unclaimed-page .unclaimed-receipt{width:100%!important;max-width:100%!important;box-sizing:border-box!important}
}

/* v82: Recent Activity quick-add dance */
.recent-dancer-quickadd{
  appearance:none;
  border:0;
  background:transparent;
  color:inherit;
  font:inherit;
  font-weight:700;
  padding:2px 0;
  margin:0;
  text-align:left;
  cursor:pointer;
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:3px;
}
.recent-dancer-quickadd:hover{opacity:.82}
.recent-dancer-quickadd:focus-visible{outline:2px solid currentColor;outline-offset:4px;border-radius:3px}

/* v92 - fixed desktop navigation and cleaner logo spacing */
@media(min-width:901px){
  html{height:100%!important;overflow:hidden!important}
  body{position:fixed!important;inset:0!important;width:auto!important;height:auto!important;min-height:0!important;overflow:hidden!important}
  #app{position:absolute!important;inset:0!important;width:auto!important;height:auto!important;min-height:0!important;overflow:hidden!important}
  .app-shell{display:grid!important;position:absolute!important;inset:0!important;width:auto!important;height:auto!important;min-height:0!important;overflow:hidden!important;grid-template-columns:255px minmax(0,1fr)!important}
  .sidebar{position:relative!important;inset:auto!important;width:255px!important;height:100%!important;min-height:0!important;overflow:hidden!important;transform:none!important}
  .main-content{position:relative!important;grid-column:2!important;width:auto!important;height:100%!important;min-height:0!important;overflow-y:auto!important;overflow-x:hidden!important;-webkit-overflow-scrolling:touch;overscroll-behavior:contain!important}
}
.sidebar-brand{height:132px!important;padding:4px 8px 22px!important;margin:0 4px 18px!important;align-items:center!important}
.sidebar-brand img{width:210px!important;max-width:210px!important;max-height:102px!important;object-fit:contain!important}
.rollover-heading{display:flex!important;align-items:flex-end!important;justify-content:space-between!important;gap:18px!important}.manual-rollover-card{max-width:1100px;margin:0 auto 18px}.manual-rollover-grid{display:grid;grid-template-columns:1.05fr 1.25fr .45fr;gap:14px;align-items:end}.manual-rollover-grid label{display:block}.manual-rollover-grid select,.manual-rollover-grid input{width:100%;height:48px}.manual-rollover-reason{grid-column:1/-1}.manual-rollover-card .confirm-actions{justify-content:flex-end;margin-top:16px}@media(max-width:850px){.rollover-heading{align-items:stretch!important;flex-direction:column!important}.manual-rollover-grid{grid-template-columns:1fr}.manual-rollover-reason{grid-column:auto}}
@media(max-width:900px){
  .sidebar-brand{height:116px!important;padding:4px 8px 18px!important}
  .sidebar-brand img{width:180px!important;max-width:180px!important;max-height:86px!important}
}

/* v107 - final print reset must remain last so screen viewport locks cannot win */
@media print{
  @page{size:Letter portrait;margin:7mm}
  html,body{position:static!important;inset:auto!important;width:auto!important;max-width:none!important;height:auto!important;min-height:0!important;overflow:visible!important;background:#fff!important}
  #app{display:none!important;position:static!important;inset:auto!important;width:auto!important;height:auto!important;overflow:visible!important}
  #printPortal.print-area{display:block!important;position:static!important;inset:auto!important;width:auto!important;max-width:none!important;min-width:0!important;height:auto!important;margin:0!important;padding:0!important;overflow:visible!important;background:#fff!important;color:#000!important}
  #printPortal>.print-page-boundary{display:none!important}
  #printPortal>section.print-section{position:static!important;width:100%!important;max-width:100%!important;min-width:0!important;height:auto!important;min-height:0!important;margin:0!important;padding:3mm!important;overflow:visible!important;box-sizing:border-box!important;break-before:page!important;page-break-before:always!important;break-after:auto!important;page-break-after:auto!important}
  #printPortal>section.print-section:first-of-type{break-before:auto!important;page-break-before:auto!important}
  #printPortal .history-table-wrap{width:100%!important;max-width:100%!important;min-width:0!important;overflow:visible!important}
  #printPortal table{width:100%!important;max-width:100%!important;min-width:0!important;table-layout:fixed!important;border-collapse:collapse!important}
  #printPortal .paper-table{font-size:8.5pt!important}
  #printPortal .paper-table th,#printPortal .paper-table td{padding:1.5mm!important;overflow-wrap:anywhere!important}
  #printPortal .package-page-head{width:100%!important;max-width:100%!important;margin:0 0 4mm!important}
  #printPortal .package-page-head h1{font-size:16pt!important;line-height:1.1!important;white-space:normal!important}
  #printPortal .print-logo{width:34mm!important;max-width:34mm!important;max-height:19mm!important}
  #printPortal>section.receipt-page{display:grid!important;grid-template-columns:1fr 1fr!important;grid-auto-rows:auto!important;column-gap:5mm!important;row-gap:2.5mm!important;align-content:start!important}
  #printPortal>section.receipt-page>.package-page-head{grid-column:1/-1!important}
  #printPortal .receipt-page .receipt-paper h2{text-align:center!important}
  #printPortal .receipt-page .receipt-paper>p{text-align:justify!important;text-justify:inter-word!important;hyphens:auto!important}
  #printPortal .receipt-page .receipt-paper h2{font-size:8.5pt!important;white-space:nowrap!important;letter-spacing:-.12pt!important}
  #printPortal .dance-log-page .paper-summary-label{white-space:nowrap!important;padding-right:2mm!important}
}

/* Historical payroll receipt audit */
.payroll-source-details{margin-top:24px}.payroll-source-details summary{cursor:pointer;font-weight:700;padding:12px 0}.payroll-source-details td{vertical-align:top}.payroll-table th{white-space:nowrap}

/* v136 shift handoff */
.handoff-controls{display:flex;align-items:end;flex-wrap:wrap;gap:18px}.handoff-controls label{display:grid;gap:8px}.handoff-controls input,.handoff-controls select{min-width:150px;padding:12px;border-radius:8px;border:1px solid #615582;background:#191529;color:#fff}.handoff-shift{padding:20px 0;border-top:1px solid #504268}.handoff-shift h3{margin:0}.handoff-shift .row-actions{flex-wrap:wrap;gap:10px}.handoff-shift p{color:#c4bfd9}@media(max-width:600px){.handoff-controls{align-items:stretch;flex-direction:column}.handoff-controls input,.handoff-controls select{width:100%}}

.stage-rotation-report-page{background:#fff;color:#000}.stage-rotation-table td,.stage-rotation-table th{padding:9px;vertical-align:top}.stage-rotation-table th:first-child{width:23%}.stage-rotation-table th:nth-child(2){width:17%}.stage-rotation-table td:nth-child(2){text-align:center}.stage-comment+.stage-comment{margin-top:5px}.stage-comment{overflow-wrap:anywhere}
@media print{.stage-rotation-report-page{break-before:page!important;page-break-before:always!important}.stage-rotation-table tr{break-inside:avoid!important;page-break-inside:avoid!important}.stage-rotation-table thead{display:table-header-group!important}}

/* Align the Manage Shifts heading with its full-width cards. */
.main-content #view>.manage-shifts-heading{max-width:1100px;width:100%;margin:18px auto;text-align:left;box-sizing:border-box}
.main-content #view>.manage-shifts-heading>div{margin:0;text-align:left}

/* v142: give the DJ workspace a scroll container inside the desktop viewport lock. */
@media screen and (min-width:901px){
  .dj-app-shell{height:100%;min-height:0;grid-template-rows:minmax(0,1fr);overflow:hidden}
  .dj-app-shell>.dj-content{height:100%;min-height:0;box-sizing:border-box;overflow-y:auto!important;overflow-x:hidden!important;-webkit-overflow-scrolling:touch}
  .dj-app-shell>.dj-sidebar{height:100%!important;max-height:100%!important;min-height:0!important;box-sizing:border-box;overflow-y:auto!important}
}

/* v143: docked DJ columns scroll independently within the available viewport. */
@media screen and (min-width:761px){
  .dj-workspace.panel-open{height:calc(100dvh - 64px)!important;min-height:0!important;align-items:stretch!important}
  .dj-workspace.panel-open>.dj-primary{height:100%!important;min-height:0!important;min-width:0!important;overflow-y:auto!important;overflow-x:auto!important;box-sizing:border-box;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable;padding-bottom:24px}
  .dj-workspace.panel-open>.dj-side-panel{position:relative!important;top:0!important;height:100%!important;min-height:0!important;box-sizing:border-box;overflow-y:auto!important;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch}
  .dj-workspace.panel-open>.dj-panel-resize{height:100%!important;min-height:0!important}
}
@media screen and (min-width:761px) and (max-width:980px){
  .dj-workspace.panel-open{height:calc(100dvh - 44px)!important}
}

/* v144: admin stage gap timer and printed shift statistics. */
.stage-gap-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:18px;border:1px solid #52456e;border-radius:12px;margin-bottom:12px;background:#201b30}
.stage-gap-summary>div{display:grid;gap:8px}.stage-gap-summary span,.stage-gap-summary small{color:#c5bfd8}.stage-gap-summary b{font-size:26px;font-variant-numeric:tabular-nums;color:#fff}.stage-gap-summary small{font-size:12px}.stage-gap-note{margin-bottom:20px}.stage-gap-report{margin:14px 0;break-inside:avoid}.stage-gap-report p{margin:6px 0;font-size:12px}
@media(max-width:700px){.stage-gap-summary{grid-template-columns:1fr}}

/* v147: manager/admin payout navigation. */
.payout-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0;border-bottom:1px solid #393943;padding-bottom:12px}.payout-tabs [aria-selected=true]{background:#7153e8;color:#fff;border-color:#7153e8}

/* v151: keep all print columns and totals in the same table grid, including tablet printing. */
@media print{
 .paper-table th,.paper-table td{display:table-cell!important}
 .dance-log-table{width:100%!important;table-layout:fixed!important}
 .dance-log-table tfoot{display:table-row-group!important;break-inside:avoid!important;page-break-inside:avoid!important}
 .dance-log-table tfoot td{vertical-align:middle!important}
 .dance-log-table .paper-summary-label{text-align:right!important;white-space:normal!important}
}

/* v152: fit saved initials inside their cell; never paint over the name or border. */
.dance-log-table tbody td:first-child{overflow:hidden!important;vertical-align:middle!important}
.dance-log-table tbody td:first-child .initial-img{display:block!important;width:100%!important;max-width:100%!important;min-width:0!important;height:9mm!important;max-height:9mm!important;object-fit:contain!important;object-position:center!important;margin:0!important;transform:none!important;box-sizing:border-box!important}

/* v153: optional saved manager notes. */
.closeout-notes-label{display:block;font-weight:600;margin:18px 0 8px}#endShiftNotes{display:block;width:100%;box-sizing:border-box;resize:vertical;min-height:100px;font:inherit}.closeout-report-notes{margin:12px 0;text-align:left;overflow-wrap:anywhere}.closeout-report-notes>div{white-space:pre-wrap;margin-top:5px}

/* v154: independent cell borders survive printed page breaks in Safari/WebKit. */
@media print {
 #printPortal .dance-log-table {border-collapse:separate!important;border-spacing:0!important;border:0!important}
 #printPortal .dance-log-table th,#printPortal .dance-log-table td {border:0!important;border-top:1px solid #555!important;border-right:1px solid #555!important}
 #printPortal .dance-log-table tr>:first-child {border-left:1px solid #555!important}
 #printPortal .dance-log-table tfoot tr:last-child td {border-bottom:1px solid #555!important}
 #printPortal .dance-log-table .paper-grand-total-row td {border-top:2px solid #000!important}
 #printPortal .dance-log-table tr {break-inside:avoid!important;page-break-inside:avoid!important}
}

/* v157: alternate payroll rows for easier reading across each dancer. */
@media screen {
 .payroll-table > tbody > tr:nth-child(odd) > td { background-color:#111114; }
 .payroll-table > tbody > tr:nth-child(even) > td { background-color:#29292f; }
}

/* DSG v12: wrap payroll controls to their available card width. */
.payroll-controls{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  align-items:flex-end;
  min-width:0;
  max-width:100%;
}
.payroll-controls>label{
  flex:1 1 170px;
  min-width:0;
  max-width:100%;
}
.payroll-controls>.payroll-period-select{
  flex-basis:260px;
}
.payroll-controls>button{
  flex:0 1 170px;
  min-width:0;
  max-width:100%;
  white-space:normal;
}
@media(max-width:520px){
  .payroll-controls>label,
  .payroll-controls>.payroll-period-select,
  .payroll-controls>button{flex-basis:100%;width:100%}
}

/* DSG v14: brighter blue-violet text accents on dark surfaces. */
.current-shift b,.payroll-grand b,.total-stat b,.dash-icon{color:#b09aff}

/* Keep the empty-shift heading aligned with the card padding. */
.no-active-shift-card > h1:first-child{margin-top:0}
