:root{--navy:#0d2746;--red:#cf202f;--blue:#1f5fae;--green:#9bdd25;--orange:#f47a20;--black:#111;--white:#fff;--bg:#f4f6f8;--text:#17212c;--muted:#718096;--line:#dfe5ea;--accent:#cf202f;--accent2:#1f5fae;--sidebar:#0d2746}
*{box-sizing:border-box}body{margin:0;font-family:Inter,Arial,sans-serif;background:var(--bg);color:var(--text)}body[data-theme="reapers"]{--accent:#9bdd25;--accent2:#173e69;--sidebar:#081c35}body[data-theme="twisters"]{--accent:#f47a20;--accent2:#111;--sidebar:#111}
button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{display:flex;min-height:100vh}.sidebar{width:270px;background:linear-gradient(180deg,var(--sidebar),#07111d);color:white;padding:22px 16px;position:fixed;inset:0 auto 0 0;z-index:20}.brand{display:flex;gap:12px;align-items:center;margin:4px 7px 22px}.brand-mark{width:48px;height:48px;border-radius:50%;background:white;color:var(--accent);font-weight:900;display:grid;place-items:center;border:4px solid var(--accent)}.brand strong{display:block;font-size:18px;letter-spacing:.12em}.brand span{display:block;font-size:8px;max-width:150px;line-height:1.3;color:#b9c6d4;letter-spacing:.08em;margin-top:3px}.program-switcher{display:grid;grid-template-columns:1fr;gap:6px;margin:0 5px 22px}.program-btn{border:1px solid #ffffff22;background:#ffffff0d;color:#c5d1dc;border-radius:8px;padding:9px;text-align:left;font-size:11px;font-weight:800}.program-btn.active{background:var(--accent);border-color:var(--accent);color:#111}
nav{display:grid;gap:5px}.nav-item{border:0;background:transparent;color:#bcc9d6;padding:13px;border-radius:9px;text-align:left;font-weight:700}.nav-item span{margin-left:8px}.nav-item.active,.nav-item:hover{background:#ffffff12;color:white;box-shadow:inset 3px 0 var(--accent)}
.main{margin-left:270px;width:calc(100% - 270px)}.topbar{height:90px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 32px;position:sticky;top:0;z-index:10}.topbar h1{font-size:22px;margin:4px 0}.eyebrow{font-size:9px;font-weight:900;letter-spacing:.16em;color:#8391a0;margin:0}.accent-text{color:var(--accent)}.menu{display:none;border:0;background:none;font-size:24px}.top-actions{margin-left:auto;display:flex;gap:15px;align-items:center}.icon-btn{border:0;background:#eef2f5;width:40px;height:40px;border-radius:50%;position:relative}.badge{position:absolute;right:-4px;top:-4px;background:var(--accent);color:white;border-radius:20px;padding:3px 6px;font-size:9px;font-weight:900}.avatar{width:39px;height:39px;border-radius:50%;background:var(--sidebar);color:white;display:grid;place-items:center;font-weight:900}.user-chip{display:flex;gap:9px;align-items:center}.user-chip strong,.user-chip span{display:block}.user-chip strong{font-size:12px}.user-chip span{font-size:10px;color:var(--muted)}
.view{display:none;padding:28px 32px 44px}.view.active{display:block}.hero{background:radial-gradient(circle at 75% 20%,color-mix(in srgb,var(--accent) 28%,transparent),transparent 34%),linear-gradient(135deg,var(--sidebar),#0c1622);color:white;border-radius:20px;padding:36px;display:grid;grid-template-columns:1.45fr .9fr;gap:25px}.hero h2{font-size:37px;line-height:1.07;margin:8px 0 14px}.hero p{color:#c3d0dd;max-width:700px}.hero-actions{display:flex;gap:10px;margin-top:22px}.primary-btn,.ghost-btn,.secondary-btn{border:0;border-radius:8px;padding:11px 15px;font-weight:900}.primary-btn{background:var(--accent);color:white}.ghost-btn{background:#ffffff12;border:1px solid #ffffff2b;color:white}.secondary-btn{background:#edf2f5;color:#25394f;margin-right:8px}.program-cards{display:grid;gap:10px;align-content:center}.mini-card{padding:17px;border-radius:12px;border:1px solid #ffffff20;background:#ffffff0d}.mini-card b,.mini-card span{display:block}.mini-card span{font-size:10px;margin-top:5px;color:#c6d1dc}.mini-card.rec{border-left:5px solid #cf202f}.mini-card.reapers{border-left:5px solid #9bdd25}.mini-card.twisters{border-left:5px solid #f47a20}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:18px 0}.stat-card{background:white;border:1px solid var(--line);border-radius:13px;padding:19px}.stat-card span,.stat-card small{display:block}.stat-card span{font-size:9px;font-weight:900;letter-spacing:.12em;color:#81909e}.stat-card strong{display:block;font-size:28px;margin:8px 0 3px;color:var(--sidebar)}.stat-card small{font-size:10px;color:var(--muted)}.stat-card.warning{border-top:4px solid var(--accent)}
.grid-2{display:grid;grid-template-columns:1.2fr 1fr;gap:16px}.panel{background:white;border:1px solid var(--line);border-radius:14px;padding:21px}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}.panel h3{margin:4px 0;font-size:17px}.text-btn{border:0;background:none;color:var(--accent2);font-weight:800;font-size:11px}.event-row,.need-row,.umpire-row{display:grid;grid-template-columns:54px 1fr auto;gap:12px;align-items:center;padding:14px 0;border-top:1px solid #edf1f3}.date-box{background:#edf2f5;border-radius:9px;text-align:center;padding:7px}.date-box b,.date-box span{display:block}.date-box b{font-size:17px}.date-box span{font-size:8px;color:#7e8d9c;font-weight:900}.event-row strong,.need-row strong{font-size:12px}.event-row p,.need-row p,.umpire-row p{font-size:10px;color:var(--muted);margin:4px 0}.pill{font-size:8px;font-weight:900;padding:5px 7px;border-radius:18px;background:#edf2f5}.pill.game{background:#fff1f1;color:#a51e2c}.pill.practice{background:#eef6e4;color:#4f8a1e}.pill.pending{background:#fff4df;color:#a26800}.pill.covered{background:#e6f4ec;color:#287447}
.section-banner{background:var(--sidebar);color:white;border-radius:14px;padding:23px 25px;margin-bottom:16px;display:flex;justify-content:space-between;align-items:center}.section-banner h2{font-size:25px;margin:7px 0 0}.toolbar{display:flex;gap:9px}.toolbar input{flex:1}.toolbar input,.toolbar select,.form input,.form select,.form textarea{border:1px solid #d4dde4;border-radius:8px;padding:10px 11px;background:white}.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:14px}.team-card{background:white;border:1px solid var(--line);border-radius:13px;overflow:hidden}.team-card .top{padding:16px 18px;color:white}.team-card.rec .top{background:linear-gradient(135deg,#cf202f,#1f5fae)}.team-card.reapers .top{background:#081c35;border-bottom:4px solid #9bdd25}.team-card.twisters .top{background:#111;border-bottom:4px solid #f47a20}.team-card .body{padding:17px}.team-card h3{margin:2px 0}.team-card p{font-size:11px;color:var(--muted)}.team-actions{display:flex;gap:7px;margin-top:12px}.team-actions button{border:0;border-radius:7px;padding:8px 10px;font-size:9px;font-weight:800}.edit-btn{background:#edf2f5}.sync-btn{background:var(--accent);color:white}.feed-line{font-size:9px;color:#748493;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:8px}
.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:880px}th{text-align:left;font-size:8px;letter-spacing:.12em;color:#8593a1;padding:10px;border-bottom:1px solid var(--line)}td{font-size:11px;padding:12px 10px;border-bottom:1px solid #edf1f3}
.location-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.location-card{background:white;border:1px solid var(--line);border-radius:14px;overflow:hidden}.location-head{background:var(--sidebar);color:white;padding:17px 19px;display:flex;justify-content:space-between;gap:10px}.location-head h3{margin:0}.location-head p{font-size:10px;color:#c0ccd8;margin:5px 0 0}.location-head button{border:0;border-radius:7px;padding:7px 9px;font-size:9px;font-weight:800}.field-list{padding:15px 18px;display:flex;gap:6px;flex-wrap:wrap}.field-chip{background:#edf2f5;border-radius:20px;padding:7px 9px;font-size:9px;font-weight:800}.field-builder-head{display:flex;justify-content:space-between;margin:15px 0 9px;font-size:11px}.field-builder-head span{color:var(--muted)}.fields-editor{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px}.field-input-wrap{display:flex;gap:5px}.field-input-wrap input{width:100%}.remove-field{border:0;background:#f7e7e9;color:#a11;padding:0 8px;border-radius:7px}
.program-registration{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.registration-card{border-radius:14px;padding:24px;color:white}.registration-card.rec{background:linear-gradient(135deg,#cf202f,#1f5fae)}.registration-card.reapers{background:#081c35;border-bottom:5px solid #9bdd25}.registration-card.twisters{background:#111;border-bottom:5px solid #f47a20}.registration-card p{font-size:11px;color:#d4dce5}.admin-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.admin-card{background:white;border:1px solid var(--line);border-radius:13px;padding:22px;text-align:left}.admin-card b{font-size:25px;color:var(--accent)}.admin-card span,.admin-card small{display:block}.admin-card span{font-weight:900;margin:9px 0 4px}.admin-card small{color:var(--muted)}
.modal{display:none;position:fixed;inset:0;background:#06111dcc;z-index:100;align-items:center;justify-content:center;padding:18px}.modal.open{display:flex}.modal-card{background:white;border-radius:15px;padding:24px;width:min(560px,100%);max-height:92vh;overflow:auto;position:relative}.modal-card.wide{width:min(760px,100%)}.close{position:absolute;right:12px;top:10px;border:0;background:none;font-size:26px}.form{display:grid;gap:13px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form label{font-size:10px;font-weight:800;color:#536474;display:grid;gap:5px}.helper{font-size:10px;color:var(--muted);line-height:1.45}
@media(max-width:1000px){.stats-grid{grid-template-columns:1fr 1fr}.team-grid,.program-registration,.admin-grid{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.open{transform:translateX(0)}.main{margin-left:0;width:100%}.menu{display:block;margin-right:12px}.topbar{padding:0 14px}.user-chip>div:last-child{display:none}.view{padding:18px 13px 30px}.hero{grid-template-columns:1fr;padding:26px}.hero h2{font-size:29px}.stats-grid,.grid-2,.team-grid,.location-grid,.program-registration,.admin-grid{grid-template-columns:1fr}.section-banner{align-items:flex-start;flex-direction:column;gap:12px}.form-grid,.fields-editor{grid-template-columns:1fr}.toolbar{flex-direction:column}}

.check-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.check-grid label{display:flex;align-items:center;gap:7px;background:#f6f8fa;border:1px solid var(--line);padding:9px;border-radius:8px;font-size:10px!important}.form-section-title{font-size:11px;color:#33495c}.concession-board{display:grid;gap:15px;margin-top:15px}.concession-day{background:white;border:1px solid var(--line);border-radius:14px;overflow:hidden}.concession-day-head{background:var(--sidebar);color:white;padding:17px 19px;display:flex;justify-content:space-between;gap:14px;align-items:center}.concession-day-head h3{margin:0 0 4px}.concession-day-head p{margin:0;font-size:10px;color:#c3d0dc}.concession-summary{display:flex;gap:8px;flex-wrap:wrap}.summary-chip{background:#ffffff14;border:1px solid #ffffff25;padding:7px 9px;border-radius:18px;font-size:9px;font-weight:800}.concession-games{padding:0 18px}.concession-game{display:grid;grid-template-columns:90px 1fr auto;gap:12px;align-items:center;padding:13px 0;border-bottom:1px solid #edf1f4}.concession-game:last-child{border-bottom:0}.concession-game strong{font-size:11px}.concession-game p{font-size:10px;color:var(--muted);margin:4px 0}.worker-assignment{background:#f7f9fa;border-top:1px solid var(--line);padding:15px 18px}.worker-assignment h4{margin:0 0 10px;font-size:11px}.worker-controls{display:flex;gap:8px;flex-wrap:wrap}.worker-controls select{min-width:220px;border:1px solid #d4dde4;border-radius:8px;padding:9px}.assigned-worker{display:inline-flex;align-items:center;gap:6px;background:#e8f3ea;border-radius:18px;padding:7px 9px;font-size:9px;font-weight:800;margin:4px 5px 0 0}.assigned-worker button{border:0;background:none;color:#8b1c1c;padding:0}.role-badge{font-size:8px;font-weight:900;padding:5px 7px;border-radius:16px;background:#edf2f5}.role-badge.Admin{background:#fee8e8;color:#9b1b1b}.role-badge.Staff{background:#e7eef8;color:#355f96}.role-badge.Coach{background:#edf5df;color:#507e22}.role-badge.Umpire{background:#fff1de;color:#a86600}.role-badge.ConcessionEmployee{background:#f4e8fb;color:#7f3a9e}.level-tags{display:flex;gap:4px;flex-wrap:wrap;margin-top:5px}.level-tag{font-size:8px;background:#eef2f4;border-radius:13px;padding:4px 6px}
@media(max-width:760px){.check-grid{grid-template-columns:1fr}.concession-game{grid-template-columns:1fr}.worker-controls{flex-direction:column}.worker-controls select{min-width:0;width:100%}}

.umpire-assignment-card{border-top:1px solid #edf1f3;padding:15px 0}.umpire-assignment-card:first-child{border-top:0}.assignment-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:10px}.assignment-head strong{font-size:12px}.assignment-head p{font-size:10px;color:var(--muted);margin:4px 0}.assignment-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.assignment-slot{background:#f7f9fa;border:1px solid var(--line);border-radius:9px;padding:10px}.assignment-slot label{display:block;font-size:9px;font-weight:900;letter-spacing:.08em;color:#6f7f8f;margin-bottom:6px}.assignment-slot select{width:100%;border:1px solid #d4dde4;border-radius:8px;padding:9px;background:white;font-size:10px}.coverage-status{font-size:8px;font-weight:900;padding:5px 7px;border-radius:15px}.coverage-status.full{background:#e6f4ec;color:#287447}.coverage-status.partial{background:#fff4df;color:#9f6500}.coverage-status.none{background:#fee9e9;color:#9b1b1b}
@media(max-width:760px){.assignment-grid{grid-template-columns:1fr}}

.role-sim{display:flex;flex-direction:column;gap:3px}.role-sim label{font-size:8px;font-weight:900;color:#7b8996;letter-spacing:.08em}.role-sim select{border:1px solid #d4dde4;border-radius:7px;padding:6px 8px;font-size:10px;background:white}.permission-note{font-size:10px;color:#d5e0e9;background:#ffffff10;border:1px solid #ffffff20;border-radius:18px;padding:7px 10px}.section-sub{font-size:10px;color:#c3d0dd;margin:7px 0 0;max-width:760px}.permission-box{background:#f7f9fb;border:1px solid var(--line);border-radius:9px;padding:11px}.permission-box strong{font-size:10px}.clock-actions{display:flex;gap:8px}.time-log-panel{margin-top:16px}.report-filters{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.report-filters label{font-size:9px;font-weight:900;color:#687989;display:grid;gap:5px}.report-filters input{border:1px solid #d4dde4;border-radius:8px;padding:9px}.report-person{border-top:1px solid #edf1f3;padding:13px 0}.report-person:first-child{border-top:0}.report-person h4{margin:0;font-size:12px}.report-person p{font-size:10px;color:var(--muted);margin:4px 0}.report-total{font-size:18px;font-weight:900;color:var(--sidebar)}.access-denied{background:white;border:1px solid var(--line);border-radius:14px;padding:32px;text-align:center}.access-denied h3{margin-top:0}.hidden-by-role{display:none!important}
@media(max-width:760px){.role-sim{display:none}.report-filters{flex-direction:column;align-items:stretch}.report-filters label,.report-filters input{width:100%}}

.calendar-controls{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px;flex-wrap:wrap}.calendar-nav,.calendar-view-toggle{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.calendar-nav strong{margin-left:6px;font-size:14px}.cal-view-btn{border:1px solid #d6dee5;background:white;border-radius:8px;padding:8px 11px;font-size:10px;font-weight:900;color:#516273}.cal-view-btn.active{background:var(--sidebar);color:white;border-color:var(--sidebar)}.calendar-filterbar{margin-bottom:14px}.calendar-view{display:none}.calendar-view.active{display:block}
.month-grid{display:grid;grid-template-columns:repeat(7,1fr);border:1px solid var(--line);border-radius:12px;overflow:hidden}.month-weekday{background:#f0f3f6;padding:9px;text-align:center;font-size:9px;font-weight:900;color:#6d7d8c;border-right:1px solid var(--line)}.month-cell{min-height:118px;background:white;border-top:1px solid var(--line);border-right:1px solid var(--line);padding:7px}.month-cell.outside{background:#f8fafb;color:#a9b3bd}.month-date{font-size:10px;font-weight:900;margin-bottom:5px}.mini-event{display:block;padding:5px 6px;border-radius:6px;margin:4px 0;font-size:8px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini-event.game{background:#fff0f1;color:#9d1d2a;border-left:3px solid #cf202f}.mini-event.practice{background:#edf6e6;color:#4e8123;border-left:3px solid #78ad38}.mini-event.event{background:#edf2f7;color:#435b72;border-left:3px solid #6f879c}
.week-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.week-day{background:white;border:1px solid var(--line);border-radius:10px;min-height:240px;overflow:hidden}.week-day-head{background:#f2f5f7;padding:9px;text-align:center}.week-day-head b,.week-day-head span{display:block}.week-day-head b{font-size:11px}.week-day-head span{font-size:20px;font-weight:900}.week-events{padding:7px}.day-agenda{display:grid;gap:8px}.agenda-row{display:grid;grid-template-columns:90px 1fr auto;gap:12px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:12px;background:white}.agenda-row .agenda-time{font-weight:900;font-size:12px}.agenda-row strong{font-size:12px}.agenda-row p{font-size:10px;color:var(--muted);margin:4px 0}.empty-cal{padding:28px;text-align:center;color:var(--muted);font-size:11px}
@media(max-width:900px){.month-grid{grid-template-columns:repeat(7,minmax(115px,1fr));overflow:auto}.calendar-view{overflow:auto}.week-grid{grid-template-columns:repeat(7,minmax(180px,1fr))}}
@media(max-width:760px){.calendar-controls{align-items:flex-start;flex-direction:column}.agenda-row{grid-template-columns:1fr}.calendar-nav strong{width:100%;margin-left:0}}

.program-event-badge{display:inline-block;font-size:8px;font-weight:900;border-radius:12px;padding:4px 7px}.program-event-badge.rec{background:#e8eefb;color:#234f9b}.program-event-badge.reapers{background:#eaf6df;color:#4d7f20}.program-event-badge.twisters{background:#fff0e1;color:#a35600}

/* v10 fixed revision */
.private-note-input{display:grid;gap:6px;font-size:9px;font-weight:900;color:#687989;margin-top:10px}
.private-note-input textarea{width:100%;box-sizing:border-box;border:1px solid #d4dde4;border-radius:9px;padding:10px;font:inherit;font-weight:500;resize:vertical;background:#fff}
.private-staff-note{margin-top:8px;padding:9px 10px;background:#fff9e8;border:1px solid #eadcaa;border-radius:8px;font-size:9px;color:#65571f}
.private-staff-note b{display:block;font-size:8px;letter-spacing:.08em;margin-bottom:4px;color:#8b7421}
.private-worker-panel{margin-top:16px}
.private-worker-row{display:grid;grid-template-columns:minmax(180px,1fr) 2fr;gap:12px;padding:11px 0;border-top:1px solid var(--line)}
.private-worker-row:first-child{border-top:0}
.private-worker-row strong{font-size:11px}
.private-worker-row p{margin:3px 0 0;font-size:9px;color:var(--muted)}
.private-worker-row .note-copy{font-size:10px;color:#50606e}
#calendarProgramFilter{min-width:135px}
.sidebar nav{margin-top:10px}
@media(max-width:760px){
  .private-worker-row{grid-template-columns:1fr}
  #calendarProgramFilter{width:100%}
}

.banner-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.private-worker-row{align-items:center}
.worker-roster-actions{display:flex;justify-content:flex-end;align-items:center}
@media(max-width:760px){.banner-actions{width:100%}.banner-actions button{flex:1}.worker-roster-actions{justify-content:flex-start}}

.wide-modal{width:min(1100px,94vw);max-height:90vh;overflow:auto}
.team-calendar-controls{margin-top:14px}
.team-cal-view-btn{border:1px solid #d6dee5;background:white;border-radius:8px;padding:8px 11px;font-size:10px;font-weight:900;color:#516273}
.team-cal-view-btn.active{background:var(--sidebar);color:white;border-color:var(--sidebar)}
.team-card-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-top:10px}
.feed-count{font-size:8px;font-weight:900;color:var(--muted)}

[data-team-program]{cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}
[data-team-program]:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,.08)}
[data-team-program]:focus{outline:2px solid currentColor;outline-offset:2px}
.dashboard-program-link{margin-top:10px;border:0;background:transparent;padding:0;font:inherit;font-weight:900;text-decoration:underline;cursor:pointer}

.main-banner-programs{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:6px}
.main-banner-programs button,.main-banner-program-link{border:0;background:transparent;padding:0;color:inherit;font:inherit;font-weight:900;cursor:pointer;text-decoration:none}
.main-banner-programs button:hover,.main-banner-program-link:hover{text-decoration:underline}

.program-banner-card{
  width:100%;
  text-align:left;
  font-family:inherit;
  cursor:pointer;
  border:0;
}
.program-banner-card:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 20px rgba(0,0,0,.12);
}
.program-banner-card:focus-visible{
  outline:3px solid rgba(255,255,255,.85);
  outline-offset:2px;
}

/* v20: lighter main dashboard program cards */
.program-cards .program-banner-card.rec{
  background:#eef4ff;
  color:#173f78;
  border:1px solid #c9d9f2;
}
.program-cards .program-banner-card.reapers{
  background:#eef8e8;
  color:#173b2a;
  border:1px solid #cce5bd;
}
.program-cards .program-banner-card.twisters{
  background:#fff1e5;
  color:#5b2b0a;
  border:1px solid #f2cfad;
}
.program-cards .program-banner-card:hover{
  filter:brightness(.98);
}

.workflow-tabs{display:flex;gap:10px;align-items:center;margin:16px 0}
.workflow-tab{border:1px solid #d6dee5;background:#f8fafc;color:#334155;border-radius:10px;padding:11px 15px;font-weight:900;cursor:pointer;display:flex;gap:8px;align-items:center}
.workflow-tab.active{background:var(--sidebar);color:#fff;border-color:var(--sidebar)}
.workflow-count{display:inline-flex;min-width:23px;height:23px;padding:0 5px;align-items:center;justify-content:center;border-radius:999px;background:rgba(255,255,255,.2);font-size:11px}
.workflow-tab:not(.active) .workflow-count{background:#e5e7eb;color:#334155}
.workflow-panel{display:none}.workflow-panel.active{display:block}
.workflow-tab.needs-attention{animation:needsAssignmentFlash 1.1s infinite}
@keyframes needsAssignmentFlash{0%,100%{background:#fff1f2;color:#991b1b;border-color:#fca5a5;box-shadow:0 0 0 0 rgba(220,38,38,0)}50%{background:#fecaca;color:#7f1d1d;border-color:#dc2626;box-shadow:0 0 0 5px rgba(220,38,38,.16)}}
.workflow-tab.needs-attention.active{animation:needsAssignmentFlashActive 1.1s infinite;color:#fff}
@keyframes needsAssignmentFlashActive{0%,100%{background:#991b1b;box-shadow:0 0 0 0 rgba(220,38,38,0)}50%{background:#dc2626;box-shadow:0 0 0 5px rgba(220,38,38,.2)}}
.confirmed-person-card{border:1px solid #dfe6ec;border-radius:12px;background:#fff;margin-bottom:12px;overflow:hidden}
.confirmed-person-head{padding:13px 15px;background:#f8fafc;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;gap:10px;align-items:center}
.confirmed-game-row{display:grid;grid-template-columns:110px 90px minmax(180px,1fr) minmax(140px,1fr) auto;gap:10px;padding:11px 15px;border-bottom:1px solid #edf0f2;align-items:center}
.confirmed-game-row:last-child{border-bottom:0}.confirmed-game-row p{margin:2px 0 0;color:#64748b;font-size:11px}
.game-worker-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}.game-worker-controls select{min-width:230px}
@media(max-width:800px){.confirmed-game-row{grid-template-columns:1fr}.workflow-tabs{align-items:stretch}.workflow-tab{flex:1;justify-content:center}}

/* v22 concession multi-worker confirmation */
.pending-worker-list{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0}
.pending-worker-chip{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border-radius:999px;background:#eef2f7;font-size:11px;font-weight:800}
.pending-worker-chip button{border:0;background:transparent;font-weight:900;cursor:pointer;color:#7f1d1d}
.concession-staging-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}
.concession-staging-actions select{min-width:240px}
.confirm-assignment-btn[disabled]{opacity:.45;cursor:not-allowed}
.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:14px}
.edit-assignment-btn{white-space:nowrap}

/* v23 confirmed concessions daily schedule */
.confirmed-workers-cell{display:flex;gap:6px;flex-wrap:wrap;align-items:center}

/* v24 concession day open/close settings */
.concession-day-times{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  padding:12px 0 16px;
  border-bottom:1px solid #e5e7eb;
  margin-bottom:12px
}
.concession-day-times label{
  display:grid;
  gap:5px;
  font-size:11px;
  font-weight:900;
  color:#475569
}
.concession-day-times input{min-width:160px}
.concession-day-game-list{display:grid;gap:12px}
.concession-schedule-game{
  border:1px solid #e2e8f0;
  border-radius:10px;
  padding:12px;
  background:#fff
}
.concession-schedule-game-head{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
  flex-wrap:wrap
}
.concession-schedule-game-head p{margin:3px 0 0;color:#64748b;font-size:11px}
.concession-confirmed-day-head{align-items:flex-start}
.concession-hours-summary{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  margin-top:5px;
  font-size:12px;
  color:#475569
}

/* v25 concession shift scheduling */
.add-shift-btn{align-self:end}
.shift-builder{display:grid;gap:12px;margin:14px 0}
.shift-card{border:1px solid #dfe6ec;border-radius:12px;padding:13px;background:#fff}
.shift-card.shift-confirmed{background:#f7fbf8;border-color:#cfe5d5}
.shift-card-head{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap}
.shift-card-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.shift-time-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:12px}
.shift-time-row label{display:grid;gap:5px;font-size:11px;font-weight:900;color:#475569}
.shift-time-row input{min-width:155px}
.danger-link{border:0;background:transparent;color:#b91c1c;font-weight:800;cursor:pointer}
.shift-empty{padding:12px;border:1px dashed #cbd5e1;border-radius:10px}
.day-games-preview{margin-top:16px;padding-top:13px;border-top:1px solid #e5e7eb}
.day-games-preview h4,.confirmed-shifts-block h4,.confirmed-day-games-block h4{margin:0 0 9px}
.day-game-preview-row{display:grid;grid-template-columns:90px minmax(180px,1fr) minmax(130px,1fr);gap:10px;padding:8px 0;border-bottom:1px solid #eef2f6;font-size:12px}
.confirmed-shifts-block{padding:14px 15px;border-bottom:1px solid #e5e7eb}
.confirmed-shift-row{display:grid;grid-template-columns:150px minmax(220px,1fr) auto;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid #edf0f2}
.confirmed-shift-row:last-child{border-bottom:0}
.confirmed-day-games-block{padding-top:8px}
.confirmed-day-games-block h4{padding:8px 15px 0}
@media(max-width:800px){
 .day-game-preview-row,.confirmed-shift-row{grid-template-columns:1fr}
}

/* v27 umpire explicit confirmation */
.umpire-confirm-row{display:flex;justify-content:flex-end;margin-top:12px}
.umpire-confirm-row .primary-btn[disabled]{opacity:.45;cursor:not-allowed}
.confirmed-umpire-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}

/* v32 email/text portal invitations */
.staff-action-buttons{display:flex;gap:8px;flex-wrap:wrap}
.invite-panel{margin-top:16px}
.invite-status-row{
 display:grid;
 grid-template-columns:minmax(170px,1.1fr) minmax(220px,1.4fr) minmax(130px,.8fr) auto;
 gap:12px;
 align-items:center;
 padding:12px 0;
 border-bottom:1px solid #e7edf2
}
.invite-status-row:last-child{border-bottom:0}
.invite-status-row p{margin:3px 0 0;color:#64748b;font-size:11px}
.invite-row-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.invite-cancel-btn{color:#a11}
.invite-methods{
 border:1px solid #dfe6ec;
 border-radius:10px;
 padding:11px 12px;
 display:flex;
 gap:18px;
 flex-wrap:wrap
}
.invite-methods legend{font-size:11px;font-weight:900;color:#475569;padding:0 5px}
.invite-methods label{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:800}
@media(max-width:850px){
 .invite-status-row{grid-template-columns:1fr}
 .invite-row-actions{justify-content:flex-start}
}

/* v33 role picker and user account credentials */
.role-picker-field{grid-column:1/-1}
.field-label{display:block;font-size:11px;font-weight:900;color:#475569;margin-bottom:7px}
.role-choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:8px}
.role-choice{position:relative;cursor:pointer}
.role-choice input{position:absolute;opacity:0;pointer-events:none}
.role-choice span{
 display:block;border:1px solid #d8e0e8;border-radius:10px;padding:10px;background:#fff;
 min-height:62px;transition:.15s ease
}
.role-choice b,.role-choice small{display:block}
.role-choice small{font-size:10px;color:#64748b;margin-top:3px}
.role-choice.selected span,.role-choice:has(input:checked) span{border-color:#315d96;background:#edf4ff;box-shadow:0 0 0 2px rgba(49,93,150,.09)}
.account-credential-box{border:1px solid #d9e4ee;background:#f8fbfd;border-radius:11px;padding:12px;margin:12px 0}
.credential-summary{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:8px}
.credential-pill{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:10px;font-weight:900;margin-top:4px}
.credential-pill.active{background:#e8f5ec;color:#226438}
.credential-pill.temporary{background:#fff3d8;color:#8a5a00}
.login-id-line{font-size:10px;color:#64748b;margin-top:3px}
.user-account-actions{display:flex;gap:6px;flex-wrap:wrap}
.temp-password-card{max-width:520px}
.temp-credential-display{display:grid;gap:10px;margin:16px 0}
.temp-credential-display>div{border:1px solid #dce4ec;border-radius:10px;padding:12px;background:#f8fafc}
.temp-credential-display span{display:block;font-size:10px;font-weight:900;color:#64748b;text-transform:uppercase;letter-spacing:.04em}
.temp-credential-display strong{display:block;font-size:18px;margin-top:4px;word-break:break-all}

/* v35 concession wage and private pay */
.money-input{display:flex;align-items:center;border:1px solid #d7e0e7;border-radius:8px;background:#fff;overflow:hidden}
.money-input span{padding-left:10px;font-weight:900;color:#475569}
.money-input input{border:0!important;box-shadow:none!important;flex:1}
.worker-pay-summary{margin-bottom:14px}
.private-pay-card{display:grid;grid-template-columns:repeat(3,minmax(130px,1fr));gap:10px;padding:14px;border:1px solid #d8e4ed;border-radius:12px;background:#f8fbfd}
.private-pay-card>div{background:#fff;border:1px solid #e4eaf0;border-radius:10px;padding:12px}
.private-pay-card span{display:block;font-size:10px;font-weight:900;color:#64748b;letter-spacing:.04em}
.private-pay-card strong{display:block;font-size:20px;margin-top:4px}
.private-pay-card p{grid-column:1/-1;margin:0;color:#64748b;font-size:11px}
.staff-payroll-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}
.payroll-worker-card{display:grid;grid-template-columns:1fr auto;gap:4px 12px;border:1px solid #dfe7ed;border-radius:10px;padding:11px;background:#fff}
.payroll-worker-card strong{grid-column:1/-1}
.payroll-worker-card span{font-size:11px;color:#64748b}
.payroll-worker-card b{text-align:right}
.report-pay-line{font-size:11px;color:#64748b;font-weight:800;margin-top:6px}
@media(max-width:700px){.private-pay-card{grid-template-columns:1fr}}

/* v38 configurable Staff permissions */
.staff-rights-box{
  border:1px solid #dce5ed;
  background:#f8fbfd;
  border-radius:12px;
  padding:13px;
  margin:12px 0
}
.staff-rights-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}
.staff-rights-head .helper{margin:3px 0 0}
.staff-rights-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:9px}
.staff-rights-grid label{font-size:11px;font-weight:900;color:#475569}
.staff-rights-grid select{margin-top:5px}
.staff-rights-summary{font-size:9px;line-height:1.35;color:#64748b;margin-top:5px;max-width:310px}
.staff-view-only::before{
 content:"VIEW ONLY";
 display:inline-flex;
 padding:4px 8px;
 border-radius:999px;
 background:#edf4ff;
 color:#315d96;
 font-size:10px;
 font-weight:900;
 margin:0 0 10px 0
}
