:root{--bg:#080b10;--panel:#11161e;--panel2:#151c25;--line:#263140;--text:#f5f7fa;--muted:#9aa8b8;--accent:#c6a33a;--accent2:#e5c763;--green:#2bd47d;--yellow:#ffcc55;--red:#ff667a;--blue:#5ca9ff;--radius:18px;--shadow:0 18px 50px rgba(0,0,0,.32)}
*{box-sizing:border-box}html{background:var(--bg);color-scheme:dark}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:radial-gradient(circle at top right,rgba(198,163,58,.08),transparent 30%),var(--bg);color:var(--text);min-height:100vh}button,input,select,textarea{font:inherit}button,.button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}.hidden{display:none!important}.muted{color:var(--muted)}.eyebrow,.kicker{font-size:.72rem;font-weight:800;letter-spacing:.16em;color:var(--accent2)}h1,h2,h3,p{margin-top:0}h1{font-size:1.5rem;margin-bottom:0}h2{font-size:1.45rem}h3{font-size:1.05rem}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-card{width:min(460px,100%);background:rgba(17,22,30,.96);border:1px solid var(--line);border-radius:26px;padding:28px;box-shadow:var(--shadow)}.brand-mark{width:54px;height:54px;border-radius:16px;background:linear-gradient(145deg,var(--accent2),#8c6a15);color:#0b0d10;font-weight:950;display:grid;place-items:center;margin-bottom:18px}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:5px;background:#0c1118;border-radius:13px;margin:20px 0}.auth-tab{border:0;background:transparent;color:var(--muted);padding:10px;border-radius:10px}.auth-tab.active{background:var(--panel2);color:#fff}.secure-note{margin-top:18px;color:var(--muted);font-size:.78rem;line-height:1.5;border-top:1px solid var(--line);padding-top:14px}.topbar{position:sticky;top:0;z-index:20;padding:14px max(18px,env(safe-area-inset-left));padding-right:max(18px,env(safe-area-inset-right));display:flex;align-items:center;justify-content:space-between;gap:14px;background:rgba(8,11,16,.88);backdrop-filter:blur(18px);border-bottom:1px solid rgba(255,255,255,.06)}.topbar-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.account-chip{font-size:.8rem;color:var(--muted);max-width:230px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-pill,.badge{border:1px solid var(--line);border-radius:999px;padding:7px 10px;font-size:.75rem;font-weight:800;background:#0c1117}.status-pill.online{border-color:rgba(43,212,125,.45);color:var(--green)}.status-pill.connecting{color:var(--yellow)}.status-pill.error{color:var(--red)}.app-shell{width:min(1180px,100%);margin:0 auto;padding:18px 18px 80px}.tabs{display:flex;gap:8px;overflow-x:auto;padding:4px 0 16px;scrollbar-width:none}.tab{border:1px solid var(--line);background:#0d1219;color:var(--muted);border-radius:999px;padding:10px 16px;font-weight:800;white-space:nowrap}.tab.active{background:var(--accent);border-color:var(--accent);color:#101010}.screen{display:none}.screen.active{display:block}.card,.hero-card,.camera-banner{background:linear-gradient(145deg,rgba(20,26,35,.96),rgba(13,17,24,.96));border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:0 8px 30px rgba(0,0,0,.15);margin-bottom:16px}.hero-card,.camera-banner{display:flex;align-items:center;justify-content:space-between;gap:20px;background:linear-gradient(135deg,rgba(198,163,58,.16),rgba(16,21,29,.96) 48%)}.hero-stat{min-width:130px;text-align:center;border-left:1px solid var(--line);padding-left:20px}.hero-stat span{display:block;font-size:2.8rem;font-weight:950;color:var(--accent2)}.hero-stat small{color:var(--muted)}.grid{display:grid;gap:16px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.compact-grid{gap:10px}.card-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}.metric{background:#0c1118;border:1px solid var(--line);border-radius:14px;padding:14px}.metric strong{display:block;font-size:1.45rem;color:#fff}.metric span{font-size:.75rem;color:var(--muted)}label{display:block;color:#c8d0da;font-weight:750;font-size:.8rem;margin:12px 0 7px}input,select,textarea{width:100%;background:#0b1017;border:1px solid #303c4d;color:#fff;border-radius:12px;padding:12px 13px;outline:none}textarea{resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(198,163,58,.12)}button,.button{border:1px solid #344153;background:#18212c;color:#fff;border-radius:12px;padding:10px 14px;font-weight:850;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px}button:hover,.button:hover{filter:brightness(1.08)}.primary{background:var(--accent);border-color:var(--accent);color:#111}.big{padding:14px 16px}.full{width:100%}.ghost{background:transparent}.danger{color:var(--red);border-color:rgba(255,102,122,.4)}.link-btn{border:0;background:transparent;color:var(--blue);padding:12px 0}.notice{border:1px solid #38506c;background:#101a26;border-radius:12px;padding:11px 13px;margin:12px 0;font-size:.85rem}.notice.success{border-color:rgba(43,212,125,.4);color:#bff4d6}.notice.error{border-color:rgba(255,102,122,.4);color:#ffc3cc}.notice.warn{border-color:rgba(255,204,85,.4);color:#ffe3a1}.event-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.event-card,.team-row,.live-row{border:1px solid var(--line);background:#0c1118;border-radius:14px;padding:14px}.event-card{cursor:pointer}.event-card.selected{border-color:var(--accent);box-shadow:0 0 0 2px rgba(198,163,58,.12)}.event-card h3{margin-bottom:6px}.event-meta{font-size:.78rem;color:var(--muted);line-height:1.5}.team-list,.live-list{display:grid;gap:9px}.team-row,.live-row{display:flex;justify-content:space-between;align-items:center;gap:12px}.team-main,.live-main{min-width:0}.team-main b,.live-main b{display:block;overflow:hidden;text-overflow:ellipsis}.team-main small,.live-main small{color:var(--muted)}.team-summary{border:1px solid var(--line);background:#0b1017;border-radius:12px;padding:11px 12px;margin-top:12px;color:var(--muted)}.action-grid{display:flex;gap:10px;flex-wrap:wrap}.table-wrap{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;min-width:650px}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--line);padding:11px 10px;font-size:.84rem}.data-table th{color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}.jersey-badge{display:inline-grid;place-items:center;min-width:36px;height:28px;padding:0 8px;border-radius:8px;background:rgba(198,163,58,.16);color:var(--accent2);font-weight:900}.camera-state{min-width:110px;text-align:center;border:1px solid var(--line);border-radius:14px;padding:14px;font-weight:950;color:var(--muted)}.camera-state.live{color:var(--green);border-color:rgba(43,212,125,.45)}.storage-lock{border:1px dashed #39485a;border-radius:16px;padding:18px;text-align:center;background:#0b1017}.storage-icon{font-size:2rem;margin-bottom:8px}.warning-card{border-color:rgba(255,204,85,.32);background:linear-gradient(145deg,rgba(55,44,11,.25),rgba(13,17,24,.96))}.dialog-card{min-width:min(540px,calc(100vw - 28px));background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:18px;padding:20px}dialog{border:0;padding:0;background:transparent}dialog::backdrop{background:rgba(0,0,0,.7);backdrop-filter:blur(4px)}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}.icon-btn{width:36px;height:36px;border-radius:50%;padding:0}.toast-host{position:fixed;right:16px;bottom:16px;z-index:999;display:grid;gap:8px;max-width:min(380px,calc(100vw - 32px))}.toast{background:#131a23;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:13px;padding:12px 14px;font-size:.84rem}.toast.error{border-color:rgba(255,102,122,.5)}.toast.success{border-color:rgba(43,212,125,.5)}
@media(max-width:760px){.topbar{align-items:flex-start}.topbar-actions{max-width:52%}.account-chip{display:none}.app-shell{padding:12px 12px 80px}.grid.two{grid-template-columns:1fr}.hero-card,.camera-banner{align-items:flex-start}.hero-stat{min-width:90px}.hero-stat span{font-size:2.1rem}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.card{padding:16px}.event-grid{grid-template-columns:1fr}.team-row,.live-row{align-items:flex-start}.action-grid{display:grid}.action-grid>*{width:100%}}

.team-manager-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.team-manager-card{border:1px solid var(--line);background:#0c1118;border-radius:16px;padding:16px}
.team-manager-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.team-manager-card h3{margin:6px 0 5px;font-size:1.08rem}
.team-manager-card p{margin:0;color:var(--muted);font-size:.82rem}
.team-card-status{font-size:.68rem;font-weight:900;letter-spacing:.09em}
.team-card-status.ready{color:var(--green)}
.team-card-status.missing{color:var(--yellow)}
.team-count{min-width:46px;height:46px;border:1px solid var(--line);border-radius:13px;display:grid;place-items:center;font-size:1.2rem;font-weight:950;color:var(--accent2);background:#101721}
.team-manager-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px}
@media(max-width:520px){.team-manager-grid{grid-template-columns:1fr}.team-manager-actions{grid-template-columns:1fr}}

/* v12.3 roster photo OCR */
.roster-photo-dialog{width:min(1050px,calc(100vw - 24px));max-height:92vh;overflow:auto}
.roster-photo-layout{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(420px,1.2fr);gap:16px;margin-top:12px}
.roster-photo-preview-wrap{background:#080c12;border:1px solid var(--line);border-radius:14px;padding:8px;min-height:180px;display:grid;place-items:center}
.roster-photo-preview{max-width:100%;max-height:360px;border-radius:10px;object-fit:contain}
.roster-review-wrap{margin-top:10px;max-height:430px;overflow:auto;border:1px solid var(--line);border-radius:12px}
.roster-review-table{min-width:560px}
.roster-review-table input[type="text"]{min-width:90px;padding:8px 9px}
.roster-review-table .review-name{min-width:240px}
.roster-review-table input[type="checkbox"]{width:20px;height:20px}
.ocr-details{margin-top:10px;border:1px solid var(--line);border-radius:12px;padding:10px;background:#0b1017}
.ocr-details summary{cursor:pointer;font-weight:800;color:var(--muted)}
.ocr-details textarea{margin-top:10px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.78rem}
@media(max-width:820px){.roster-photo-layout{grid-template-columns:1fr}.roster-photo-dialog{width:calc(100vw - 12px);max-height:96vh}.roster-review-table{min-width:520px}}

/* v12.5 R2 photo upload */
.camera-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}
.small-copy{font-size:.78rem;line-height:1.45}
.upload-queue{display:grid;gap:8px;margin-top:12px}
.upload-row{display:grid;grid-template-columns:58px 1fr auto;gap:10px;align-items:center;border:1px solid var(--line);background:#0b1017;border-radius:13px;padding:9px}
.upload-thumb{width:58px;height:58px;object-fit:cover;border-radius:9px;background:#06090d}
.upload-info{min-width:0}
.upload-info b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.83rem}
.upload-info small{display:block;color:var(--muted);font-size:.72rem;margin-top:3px}
.upload-status{font-size:.72rem;font-weight:900}
.upload-status.uploading{color:var(--yellow)}
.upload-status.success{color:var(--green)}
.upload-status.error{color:var(--red)}
@media(max-width:520px){.camera-actions{grid-template-columns:1fr}.upload-row{grid-template-columns:52px 1fr}.upload-status{grid-column:2}.upload-thumb{width:52px;height:52px}}

/* v12.6 shoot-first workflow */
.quick-team-box{margin:14px 0;padding:12px;border:1px dashed #39485a;border-radius:14px;background:#0b1017}.quick-team-box label{margin-top:0}.quick-team-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.quick-team-row input{min-width:0}.small-copy{font-size:.78rem;line-height:1.45;margin:8px 0 0}@media(max-width:560px){.quick-team-row{grid-template-columns:1fr}.quick-team-row button{width:100%}}

/* v12.7: roster management is always available, even before roster upload */
.team-manager-actions [data-team-action="roster"]{min-width:160px}

/* v12.8 editable roster */
.compact-action{padding:.48rem .75rem;font-size:.88rem;white-space:nowrap}
.check-row{display:flex;align-items:center;gap:.55rem;margin:.65rem 0 0;font-weight:600}
.check-row input{width:auto;margin:0}


/* v12.9 Smart Matching */
.smart-flow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:14px}
.smart-flow>div{display:flex;gap:10px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.025)}
.smart-flow b{display:grid;place-items:center;min-width:32px;height:32px;border-radius:50%;background:var(--accent);color:#081018}
.smart-flow span{font-size:13px;font-weight:700;line-height:1.2}.smart-flow small{font-weight:500;color:var(--muted)}
.review-photo-list{display:grid;gap:10px;margin-top:12px}
.review-photo-row{display:grid;grid-template-columns:minmax(190px,1.25fr) 100px 110px minmax(180px,1fr) minmax(220px,1.2fr);gap:12px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.02)}
.review-file b{display:block;word-break:break-all}.review-file small,.review-cell small{display:block;color:var(--muted);margin-top:4px}
.review-jersey{font-size:24px;font-weight:900}.review-status{font-size:11px;font-weight:900;letter-spacing:.08em;padding:7px 9px;border-radius:999px;display:inline-block}
.review-status.matched{background:rgba(51,209,122,.14);color:#64e59a}.review-status.needs_review{background:rgba(255,190,60,.14);color:#ffd36c}.review-status.waiting_roster{background:rgba(92,160,255,.14);color:#84b8ff}.review-status.pending{background:rgba(255,255,255,.08);color:var(--muted)}
.review-assign{display:flex;gap:7px;align-items:center}.review-assign select{min-width:0}.review-assign button{white-space:nowrap}
.analysis-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:5px}.analysis-tag{font-size:10px;padding:3px 6px;border-radius:999px;background:rgba(255,255,255,.08);color:var(--muted)}
.upload-status.analyzing{color:#ffd36c}.upload-status.review{color:#ffd36c}.upload-status.matched{color:#64e59a}
@media(max-width:900px){.smart-flow{grid-template-columns:1fr 1fr}.review-photo-row{grid-template-columns:1fr 80px}.review-photo-row>.review-cell:nth-child(n+3){grid-column:1/-1}.review-assign{width:100%}.review-assign select{flex:1}}
@media(max-width:540px){.smart-flow{grid-template-columns:1fr}.review-photo-row{grid-template-columns:1fr}.review-photo-row>*{grid-column:1!important}}

.review-bulk-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:12px 0 4px;padding:10px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.025)}
.review-select-all,.review-photo-select{display:inline-flex;align-items:center;gap:7px;font-weight:700}
.review-photo-select{margin-bottom:7px;color:var(--muted);font-size:12px}
.review-photo-row.selected{border-color:rgba(221,177,49,.75);box-shadow:0 0 0 1px rgba(221,177,49,.18) inset;background:rgba(221,177,49,.05)}
button.danger{background:#7d2630;color:#fff;border-color:#a93b48}
button.danger:hover{filter:brightness(1.08)}
button:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:700px){.review-bulk-bar>*{flex:1 1 auto}.review-bulk-bar button{min-height:42px}}

/* v12.18 Team Photos — private R2 browser */
.team-manager-actions{grid-template-columns:repeat(3,minmax(0,1fr))}
.team-manager-actions [data-team-action="shoot"]{grid-column:1/-1}
.photos-toolbar-head{align-items:center}
.photos-bulk-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:12px 0 16px;padding:10px 12px;border:1px solid var(--line);border-radius:13px;background:#0b1017}
.photos-select-all{display:inline-flex;align-items:center;gap:7px;margin:0;font-weight:800}.photos-select-all input,.team-photo-check input{width:auto;margin:0}
.team-photos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.team-photo-card{position:relative;border:1px solid var(--line);background:#0b1017;border-radius:15px;padding:10px;overflow:hidden}
.team-photo-card.selected{border-color:var(--accent);box-shadow:0 0 0 2px rgba(198,163,58,.12)}
.team-photo-check{display:flex;align-items:center;gap:7px;margin:0 0 8px;color:var(--muted);font-size:.72rem}
.team-photo-thumb-button{display:block;width:100%;height:180px;border:0;border-radius:11px;padding:0;overflow:hidden;background:#06090d;position:relative}
.team-photo-thumb{width:100%;height:100%;display:block;object-fit:cover}
.team-photo-thumb-loading{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted);font-size:.76rem;padding:10px;text-align:center}
.team-photo-info{padding:10px 2px 6px;min-width:0}.team-photo-info b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem}.team-photo-info small{display:block;color:var(--muted);font-size:.7rem;margin-top:4px}
.team-photo-storage{font-size:.68rem;font-weight:900;letter-spacing:.07em;margin:0 2px 9px}.team-photo-storage.ready{color:var(--green)}.team-photo-storage.pending{color:var(--yellow)}
.team-photo-actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px}.team-photo-actions button{padding:8px 6px;font-size:.72rem}
.team-photo-viewer-dialog{width:min(1100px,calc(100vw - 24px));max-height:94vh;overflow:auto}
.team-photo-viewer-stage{min-height:320px;max-height:72vh;border:1px solid var(--line);border-radius:14px;background:#05070a;display:grid;place-items:center;overflow:hidden;margin-top:12px}
.team-photo-viewer-image{max-width:100%;max-height:72vh;object-fit:contain;display:block}
@media(max-width:760px){.team-manager-actions{grid-template-columns:1fr}.team-manager-actions [data-team-action="shoot"]{grid-column:auto}.team-photos-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.team-photo-thumb-button{height:150px}.team-photo-actions{grid-template-columns:1fr}.team-photo-viewer-dialog{width:calc(100vw - 12px);max-height:96vh}.team-photo-viewer-stage{min-height:240px}}
@media(max-width:460px){.team-photos-grid{grid-template-columns:1fr}.team-photo-thumb-button{height:220px}.photos-bulk-bar>*{width:100%}}

/* v12.18.1 Teams card button layout fix */
.team-manager-actions{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
}
.team-manager-actions > button{
  width:100%;
  min-width:0;
}
.team-manager-actions [data-team-action="roster"]{
  min-width:0;
}
.team-manager-actions [data-team-action="shoot"]{
  grid-column:1/-1;
}
@media(max-width:760px){
  .team-manager-actions{grid-template-columns:1fr}
  .team-manager-actions [data-team-action="shoot"]{grid-column:auto}
}


/* v12.18.3 Teams search */
.teams-list-head{gap:16px}
.teams-title-block{min-width:180px}
.teams-head-actions{display:flex;align-items:center;gap:10px;margin-left:auto}
.teams-search-input{
  width:min(340px,38vw);
  min-width:220px;
  margin:0;
}
@media(max-width:700px){
  .teams-list-head{align-items:stretch;flex-direction:column}
  .teams-head-actions{width:100%;margin-left:0}
  .teams-search-input{width:100%;min-width:0;flex:1}
}
@media(max-width:440px){
  .teams-head-actions{flex-direction:column;align-items:stretch}
  .teams-head-actions button{width:100%}
}

/* v12.18.4 fast Team Photos */
.photos-head-actions{display:flex;align-items:center;gap:8px;margin-left:auto;flex-wrap:wrap}
@media(max-width:700px){.photos-toolbar-head{align-items:stretch;flex-direction:column}.photos-head-actions{margin-left:0;width:100%}.photos-head-actions button{flex:1}}


/* v12.19 Schedule */
.schedule-hero-stats{display:flex;align-items:stretch}
.schedule-hero-stats .hero-stat:first-child{border-left:1px solid var(--line)}
.schedule-controls-grid{grid-template-columns:1.1fr 1.2fr .8fr auto;align-items:end}
.schedule-refresh-wrap{min-width:110px}
.schedule-list-head{align-items:center}
.schedule-data-table{min-width:900px}
.schedule-data-table td{vertical-align:top}
.schedule-time{font-weight:900;color:var(--accent2)}
.schedule-team-cell{display:grid;gap:7px;min-width:210px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#0b1017;transition:background .2s ease,border-color .2s ease,box-shadow .2s ease}
.schedule-team-cell b{line-height:1.25;white-space:pre-line}
.schedule-status{display:inline-flex;width:max-content;max-width:100%;border-radius:999px;padding:5px 8px;font-size:.68rem;font-weight:900;border:1px solid var(--line);background:#0b1017}
.schedule-status.done{color:var(--green);border-color:rgba(43,212,125,.4);background:rgba(43,212,125,.08)}
.schedule-status.needs{color:var(--yellow);border-color:rgba(255,204,85,.4);background:rgba(255,204,85,.08)}
.schedule-status.unmatched{color:var(--muted)}
.schedule-open-field{width:max-content;padding:6px 9px;font-size:.72rem}
.schedule-import-table{min-width:1050px}
.schedule-import-table input{min-width:125px;margin:0}
.schedule-import-table td:nth-child(4) input,.schedule-import-table td:nth-child(5) input{min-width:235px}
.schedule-replace-option{display:flex;align-items:center;gap:9px;margin:14px 0}
.schedule-replace-option input{width:auto;margin:0}
@media(max-width:900px){
  .schedule-controls-grid{grid-template-columns:1fr 1fr}
  .schedule-hero-stats{flex-direction:column}
  .schedule-hero-stats .hero-stat{border-left:1px solid var(--line);padding:8px 12px}
}
@media(max-width:620px){
  .schedule-controls-grid{grid-template-columns:1fr}
  .schedule-list-head{align-items:stretch;flex-direction:column}
  .schedule-list-head button{width:100%}
}

/* v12.19.1 Event Day separation */
.eventday-event-grid{grid-template-columns:1.15fr 1.2fr .8fr auto;align-items:end}
.eventday-create-grid{grid-template-columns:1.25fr .75fr 1fr auto;align-items:end}
.schedule-coverage-btn{width:max-content;padding:7px 10px;font-size:.72rem}
@media(max-width:980px){
  .eventday-event-grid,.eventday-create-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:620px){
  .eventday-event-grid,.eventday-create-grid{grid-template-columns:1fr}
  .schedule-coverage-btn{width:100%}
}


/* v12.19.2 Event Day team import */
.eventday-team-import-actions{margin-bottom:12px}
.eventday-team-list-head{margin-top:18px;align-items:end}
.eventday-team-list-head input{width:min(340px,40vw);margin:0}
.eventday-team-list{display:grid;gap:8px;margin-top:10px;max-height:440px;overflow:auto;padding-right:3px}
.eventday-team-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:12px;background:#0b1017;padding:10px 12px}
.eventday-team-row>div{display:grid;gap:3px;min-width:0}
.eventday-team-row b{overflow-wrap:anywhere}
.eventday-team-row small{color:var(--muted)}
.hero-stat.compact{min-width:100px;padding:10px 14px}
@media(max-width:620px){
  .eventday-team-list-head{align-items:stretch;flex-direction:column}
  .eventday-team-list-head input{width:100%}
  .eventday-team-row{align-items:stretch;flex-direction:column}
  .eventday-team-row button{width:100%}
}


/* v12.19.3 Organized top-level modules */
.main-tabs{
  display:grid;
  grid-template-columns:repeat(4,minmax(120px,1fr));
  gap:8px;
}
.main-tab{
  border:1px solid var(--line);
  background:#10161f;
  color:var(--muted);
  border-radius:12px;
  padding:12px 14px;
  font-weight:900;
  cursor:pointer;
}
.main-tab:hover{color:var(--text);border-color:#405064}
.main-tab.active{
  color:#fff;
  border-color:rgba(64,145,255,.75);
  background:linear-gradient(180deg,rgba(44,125,255,.23),rgba(44,125,255,.10));
  box-shadow:inset 0 0 0 1px rgba(64,145,255,.14);
}
.module-subnav{
  margin-top:10px;
  padding:8px;
  display:flex;
  align-items:center;
  gap:7px;
  overflow-x:auto;
  border:1px solid var(--line);
  border-radius:13px;
  background:#0d131b;
  scrollbar-width:thin;
}
.module-subnav.hidden{display:none!important}
.module-label{
  flex:0 0 auto;
  padding:0 8px;
  color:var(--muted);
  font-size:.7rem;
  font-weight:1000;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.module-tab{
  flex:0 0 auto;
  border:1px solid transparent;
  background:transparent;
  color:var(--muted);
  padding:8px 11px;
  border-radius:9px;
  font-size:.78rem;
  font-weight:900;
  cursor:pointer;
}
.module-tab:hover{background:#131c27;color:#fff}
.module-tab.active{
  background:#182335;
  color:#fff;
  border-color:#30445e;
}
.eventday-coming-card{min-height:220px}
@media(max-width:700px){
  .main-tabs{grid-template-columns:repeat(2,1fr)}
  .main-tab{padding:10px 8px}
  .module-label{display:none}
}


/* v12.20 Event Day Capture */
.eventday-capture-selectors{grid-template-columns:1fr 1fr;gap:12px}
.capture-placeholder-strip{
  display:grid;grid-template-columns:2fr 1.2fr .6fr;gap:8px;margin-top:12px
}
.capture-placeholder-strip>div{
  border:1px solid var(--line);background:#0c121a;border-radius:12px;padding:10px 12px;display:grid;gap:3px
}
.capture-placeholder-strip small{color:var(--muted);font-size:.62rem;font-weight:900;letter-spacing:.06em}
.capture-placeholder-strip b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.eventday-capture-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.eventday-capture-actions .button{display:flex;align-items:center;justify-content:center;min-height:64px;font-size:1rem}
.eventday-capture-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(225px,1fr));gap:12px}
.eventday-capture-card{border:1px solid var(--line);border-radius:14px;background:#0b1119;overflow:hidden}
.eventday-capture-thumb-wrap{aspect-ratio:4/5;background:#070b10;position:relative;display:grid;place-items:center}
.eventday-capture-thumb{width:100%;height:100%;object-fit:cover;display:block}
.eventday-capture-loading{color:var(--muted);font-size:.75rem}
.eventday-capture-body{display:grid;gap:8px;padding:11px}
.eventday-capture-body small{color:var(--muted)}
.capture-placeholder-mini{display:flex;gap:7px}
.capture-placeholder-mini span{border:1px solid var(--line);border-radius:999px;padding:5px 8px;font-size:.68rem;font-weight:900}
.eventday-capture-card-actions{display:grid;grid-template-columns:1fr auto;gap:7px;margin-top:2px}
.template-map-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0}
.template-map-card{border:1px solid var(--line);border-radius:12px;background:#0c121a;padding:12px;display:grid;gap:6px}
.template-map-card small{color:var(--muted);line-height:1.45}
@media(max-width:720px){
  .eventday-capture-selectors,.eventday-capture-actions{grid-template-columns:1fr}
  .capture-placeholder-strip{grid-template-columns:1fr 1fr}
  .capture-placeholder-strip>div:first-child{grid-column:1/-1}
  .template-map-grid{grid-template-columns:1fr}
}


/* v12.20.1 single Event Day team add */
.single-team-add-row{display:grid;grid-template-columns:1fr auto;gap:10px;margin-bottom:10px}
.single-team-add-row input{margin:0}
.single-team-add-row button{min-width:120px}
@media(max-width:680px){.single-team-add-row{grid-template-columns:1fr}}


/* v12.20.2 Event Day team matching */
.inset-card{margin-top:14px;background:#0d131b;border:1px solid var(--line)}
.eventday-team-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.alias-chip-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.alias-chip{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;border:1px solid var(--line);background:#121a24;color:var(--muted);font-size:.7rem;font-weight:800}
.alias-list{display:grid;gap:8px;margin:10px 0}
.alias-row{display:flex;justify-content:space-between;align-items:center;gap:10px;border:1px solid var(--line);background:#0c121a;border-radius:10px;padding:9px 10px}
.compact-head{margin-top:10px}
.compact-head h5{margin:0}
.schedule-team-cell small{display:block;margin-top:4px;color:var(--muted)}
@media(max-width:680px){.eventday-team-actions{justify-content:flex-start}.alias-row{flex-direction:column;align-items:flex-start}}


/* v12.20.3 schedule highlight */
.schedule-team-cell.done{background:rgba(43,212,125,.10);border-color:rgba(43,212,125,.35);box-shadow:inset 0 0 0 1px rgba(43,212,125,.08)}
.schedule-team-cell.needs{background:#0b1017;border-color:var(--line)}
.schedule-team-cell.unmatched{background:#0b1017;border-color:var(--line)}
.schedule-legend{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.schedule-legend .schedule-status{cursor:default}


/* v12.20.4 schedule location */
.schedule-import-table input[data-schedule-import-field="location_name"]{min-width:220px}
.schedule-data-table td:nth-child(4){min-width:180px}

/* v12.20.5 schedule column order */
.schedule-data-table td:nth-child(2), .schedule-data-table td:nth-child(3){min-width:220px}
.schedule-data-table td:nth-child(5){min-width:120px}


/* v12.20.6 smart PDF schedule parser */
.schedule-import-table input[data-schedule-import-field="home_team_name"],
.schedule-import-table input[data-schedule-import-field="away_team_name"]{min-width:260px}


/* v12.20.7 */
.schedule-import-table input[data-schedule-import-field="home_team_name"],
.schedule-import-table input[data-schedule-import-field="away_team_name"]{min-width:300px}


/* v12.20.8 schedule click-to-capture */
.schedule-team-link{
  appearance:none;
  border:0;
  background:transparent;
  color:var(--text);
  padding:0;
  margin:0;
  width:max-content;
  max-width:100%;
  text-align:left;
  font:inherit;
  font-weight:900;
  line-height:1.25;
  cursor:pointer;
  text-decoration:underline;
  text-decoration-color:rgba(255,255,255,.22);
  text-underline-offset:3px;
}
.schedule-team-link:hover{
  color:#fff;
  text-decoration-color:currentColor;
}
.schedule-team-link.unmatched-link{
  color:var(--text);
}
.schedule-click-hint{
  display:inline-flex;
  align-items:center;
  font-size:.74rem;
}


/* v12.20.9 */
.schedule-team-import-help{margin-top:8px;font-size:.75rem;line-height:1.45}
#eventDayTeamsFromScheduleBtn:disabled{opacity:.65;cursor:wait}


/* v12.21.0 Event Day Generate Designs */
.eventday-design-toolbar{display:flex;justify-content:space-between;align-items:end;gap:12px;margin:18px 0 10px}
.eventday-design-toolbar h4{margin:0 0 4px}
.eventday-design-toolbar-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.eventday-design-source-grid,.eventday-design-job-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.eventday-design-source-card,.eventday-design-job-card{border:1px solid var(--line);border-radius:14px;background:#0b1119;overflow:hidden}
.eventday-design-source-card .eventday-capture-thumb-wrap,.eventday-design-job-card .eventday-capture-thumb-wrap{aspect-ratio:4/5}
.eventday-design-source-body,.eventday-design-job-body{display:grid;gap:8px;padding:11px}
.eventday-design-source-head{display:flex;gap:8px;align-items:flex-start;justify-content:space-between}
.eventday-design-check{display:flex;gap:8px;align-items:center;font-size:.82rem;font-weight:800;color:var(--muted)}
.eventday-design-check input{width:16px;height:16px}
.eventday-design-tag-row{display:flex;gap:6px;flex-wrap:wrap}
.eventday-design-tag{border:1px solid var(--line);border-radius:999px;padding:4px 8px;font-size:.68rem;font-weight:900;background:#0d131b}
.eventday-design-source-actions,.eventday-design-job-actions{display:grid;grid-template-columns:1fr auto;gap:7px}
.eventday-design-job-meta small,.eventday-design-source-body small{color:var(--muted)}
.eventday-design-job-card .template-name{font-weight:900}
.eventday-design-status{display:inline-flex;align-items:center;border-radius:999px;padding:5px 8px;font-size:.68rem;font-weight:900;border:1px solid var(--line);width:max-content}
.eventday-design-status.created{background:#141c28;color:#d9e6ff}
.eventday-design-status.queued{background:#1e2531;color:#ffd87a}
.eventday-design-status.processing{background:#172238;color:#9ad1ff}
.eventday-design-status.rendered{background:#11261a;color:#9ce8b0}
.eventday-design-status.failed{background:#2b1015;color:#ff9fa7}
.eventday-design-status.other{background:#171717;color:#d8d8d8}
.eventday-empty-grid{padding:16px;border:1px dashed var(--line);border-radius:14px;background:#0b1119;color:var(--muted)}
@media(max-width:720px){
  .eventday-design-toolbar{align-items:stretch;flex-direction:column}
  .eventday-design-toolbar-actions{justify-content:flex-start}
}


/* v12.23.0 Event Day rendered design preview UI */
.eventday-design-job-card .eventday-design-preview-wrap{
  position:relative;
  width:100%;
  display:grid;
  place-items:center;
  background:#060b12;
  overflow:hidden;
  border-bottom:1px solid var(--line);
}
.eventday-design-job-card .eventday-design-preview-wrap.portrait{aspect-ratio:4/5}
.eventday-design-job-card .eventday-design-preview-wrap.landscape{aspect-ratio:5/4}
.eventday-design-rendered-preview{
  width:100%;
  height:100%;
  display:block;
  object-fit:contain;
  background:#050a10;
}
.eventday-design-preview-loading,
.eventday-design-preview-missing{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  padding:18px;
  text-align:center;
  color:var(--muted);
  font-size:.78rem;
}
.eventday-design-preview-missing{background:#070d15}
.eventday-design-job-actions{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.eventday-design-job-actions [data-design-download-output]{
  grid-column:1/-1;
}
.design-output-dialog{
  border:0;
  background:transparent;
  padding:0;
  width:min(1180px,96vw);
  max-width:96vw;
}
.design-output-dialog::backdrop{
  background:rgba(0,0,0,.82);
  backdrop-filter:blur(4px);
}
.design-output-viewer-dialog{
  width:100%;
  max-width:none;
  margin:0;
  padding:14px;
  background:#0b1119;
}
.design-output-viewer-head{
  margin-bottom:10px;
}
.design-output-viewer-stage{
  width:100%;
  height:min(78vh,900px);
  min-height:320px;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:14px;
  background:#03070c;
  padding:12px;
}
.design-output-viewer-image{
  display:block;
  max-width:100%;
  max-height:100%;
  width:auto;
  height:auto;
  object-fit:contain;
}
.design-output-viewer-actions{
  margin-top:12px;
  display:flex;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}
@media(max-width:720px){
  .design-output-dialog{width:100vw;max-width:100vw}
  .design-output-viewer-dialog{border-radius:0;min-height:100dvh}
  .design-output-viewer-stage{height:72dvh;border-radius:10px}
  .design-output-viewer-actions{display:grid;grid-template-columns:1fr 1fr}
  .design-output-viewer-actions button{width:100%}
}

/* v12.24 offline-first PhotoDay field queue */
.upload-status.local,.upload-status.waiting{color:var(--yellow)}
.upload-status.auth{color:#ffb25b}
.local-safety-card{margin-top:12px;border:1px solid var(--line);border-radius:16px;padding:14px;background:#0a0f15}
.local-safety-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:10px}
.local-safety-grid>div{border:1px solid var(--line);border-radius:12px;padding:10px;background:#0d141d}
.local-safety-grid b{display:block;font-size:1.25rem}.local-safety-grid small{display:block;color:var(--muted);margin-top:2px}
.local-safety-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
@media(max-width:620px){.local-safety-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.local-safety-actions button{flex:1 1 150px}}
\n\n/* v12.24.2 searchable Field Mode team picker */\n.field-team-search-wrap{position:relative}\n#fieldTeamSearch{width:100%;font-size:16px}\n.field-team-search-results{position:absolute;z-index:30;top:calc(100% + 6px);left:0;right:0;max-height:320px;overflow:auto;background:var(--card,#111827);border:1px solid rgba(255,255,255,.16);border-radius:14px;box-shadow:0 18px 50px rgba(0,0,0,.4);padding:6px}\n.field-team-search-result{display:flex;width:100%;align-items:center;justify-content:space-between;gap:12px;text-align:left;background:transparent;border:0;border-radius:10px;padding:12px 13px;color:inherit;cursor:pointer;font-weight:700}\n.field-team-search-result:hover,.field-team-search-result:focus{background:rgba(255,255,255,.09);outline:none}\n.field-team-search-result b{font-size:10px;letter-spacing:.08em;opacity:.7}\n.field-team-search-empty,.field-team-search-more{padding:12px 13px;color:var(--muted,#9ca3af);font-size:13px}\n#fieldTeamSearchHint{margin-top:6px;margin-bottom:10px}\n@media(max-width:640px){.field-team-search-results{max-height:45vh}.field-team-search-result{padding:14px 12px;font-size:15px}}\n

/* v12.24.3 PhotoDay Rapid Camera */
.rapid-camera-dialog{width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:#000;color:#fff}
.rapid-camera-dialog::backdrop{background:#000}
.rapid-camera-shell{height:100dvh;display:grid;grid-template-rows:auto 1fr auto;background:#000;overflow:hidden}
.rapid-camera-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:calc(10px + env(safe-area-inset-top)) 14px 10px;background:#090b0e;border-bottom:1px solid rgba(255,255,255,.12);z-index:3}
.rapid-camera-team{min-width:0;display:flex;flex-direction:column;gap:3px}.rapid-camera-team strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:58vw;font-size:15px}.rapid-camera-team .kicker{font-size:9px;color:#9ba8b8}
.rapid-camera-top-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}.rapid-camera-count{font-size:12px;font-weight:800;color:#c8ffd6;background:rgba(41,190,91,.14);border:1px solid rgba(41,190,91,.35);padding:7px 9px;border-radius:999px}.rapid-camera-done{background:#fff!important;color:#111!important;border:0!important;font-weight:900!important;padding:9px 14px!important;border-radius:999px!important}
.rapid-camera-stage{position:relative;min-height:0;background:#000;display:flex;align-items:center;justify-content:center;overflow:hidden}.rapid-camera-stage video{width:100%;height:100%;object-fit:cover;display:block}.rapid-camera-message{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#000;color:#fff;font-weight:800;z-index:2}.rapid-camera-flash{pointer-events:none;position:absolute;inset:0;background:#fff;opacity:0;z-index:4;transition:opacity 90ms ease}.rapid-camera-flash.active{opacity:.75}
.rapid-camera-controls{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;padding:12px 16px calc(14px + env(safe-area-inset-bottom));background:#090b0e;border-top:1px solid rgba(255,255,255,.12);z-index:3}.rapid-camera-status{font-size:12px;color:#dce5ef;line-height:1.35}.rapid-camera-hint{font-size:11px;color:#9ba8b8;text-align:right;line-height:1.3}.rapid-camera-shutter{width:72px!important;height:72px!important;min-width:72px!important;border-radius:50%!important;padding:5px!important;background:transparent!important;border:3px solid #fff!important;display:flex!important;align-items:center!important;justify-content:center!important}.rapid-camera-shutter span{display:block;width:54px;height:54px;border-radius:50%;background:#fff}.rapid-camera-shutter:active span{transform:scale(.9)}.rapid-camera-shutter:disabled{opacity:.45}
@media(max-width:680px){.rapid-camera-controls{grid-template-columns:1fr auto 1fr;padding-left:10px;padding-right:10px}.rapid-camera-status,.rapid-camera-hint{font-size:10px}.rapid-camera-shutter{width:68px!important;height:68px!important;min-width:68px!important}.rapid-camera-shutter span{width:50px;height:50px}.rapid-camera-team strong{max-width:50vw}}
@media(orientation:landscape) and (max-height:520px){.rapid-camera-topbar{padding-top:8px;padding-bottom:8px}.rapid-camera-controls{padding-top:7px;padding-bottom:7px}.rapid-camera-shutter{width:58px!important;height:58px!important;min-width:58px!important}.rapid-camera-shutter span{width:42px;height:42px}}


/* v12.24.4 two-way Field + Event Day chat */
.chat-card{overflow:hidden}
.chat-head{align-items:flex-start;gap:16px}
.chat-head .badge{max-width:42%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-messages{height:320px;overflow-y:auto;border:1px solid var(--line);border-radius:14px;background:#071019;padding:12px;display:flex;flex-direction:column;gap:8px;margin-top:12px;scroll-behavior:smooth}
.chat-empty{margin:auto;text-align:center;color:var(--muted);font-size:.9rem;padding:24px}
.chat-message{display:flex;width:100%}.chat-message.mine{justify-content:flex-end}.chat-message.theirs{justify-content:flex-start}
.chat-bubble{max-width:min(78%,620px);border:1px solid var(--line);border-radius:14px;padding:9px 11px;background:#111a25;box-shadow:0 6px 18px rgba(0,0,0,.16)}
.chat-message.mine .chat-bubble{background:#123321;border-color:rgba(79,220,122,.28)}
.chat-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:4px;font-size:.7rem;color:var(--muted)}
.chat-meta b{color:#dce8f4;font-size:.74rem}.chat-meta span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-text{white-space:pre-wrap;word-break:break-word;line-height:1.4;font-size:.92rem;color:#f3f7fb}
.chat-compose{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:10px}.chat-compose input{min-width:0;font-size:16px}.chat-compose button{min-width:88px}
.eventday-chat-card{margin-bottom:16px}
@media(max-width:680px){.chat-head{display:block}.chat-head .badge{display:inline-block;max-width:100%;margin-top:8px}.chat-messages{height:280px}.chat-bubble{max-width:88%}.chat-compose{grid-template-columns:1fr auto}.chat-compose button{min-width:74px;padding-left:12px;padding-right:12px}.chat-meta{align-items:flex-start;flex-direction:column;gap:2px}}


/* v12.24.5 searchable Event Day team pickers */
.eventday-team-search-wrap{position:relative}
#eventDayCaptureTeamSearch,#eventDayDesignTeamSearch{width:100%;font-size:16px}
#eventDayCaptureTeamSearchHint,#eventDayDesignTeamSearchHint{margin-top:6px;margin-bottom:8px}
.eventday-team-browse-select{margin-top:4px}

.chat-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px}.chat-toolbar .danger{margin-left:auto}.live-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.live-message-btn{padding:8px 11px}.live-row.direct-target{border-color:rgba(198,163,58,.65);box-shadow:0 0 0 2px rgba(198,163,58,.12)}
@media(max-width:680px){.chat-toolbar{align-items:stretch}.chat-toolbar .danger{margin-left:0}.chat-toolbar button{flex:1}.live-row{gap:8px}.live-actions{flex-direction:column;align-items:stretch}.live-message-btn{padding:8px 10px}}

/* v12.25.1 uploaded-team completion highlight */
.field-team-search-result.team-uploaded{border-color:#2fd77f;background:rgba(47,215,127,.09);color:#8df0b8}
.field-team-search-result.team-uploaded>span:first-child{color:#41df8b;font-weight:800}
.field-team-result-badges{display:flex;gap:8px;align-items:center;margin-left:auto}
.uploaded-badge{color:#35dc84;border:1px solid rgba(53,220,132,.45);background:rgba(53,220,132,.08);border-radius:999px;padding:3px 8px;font-size:.72rem;white-space:nowrap}
.team-uploaded-select{border-color:#2fd77f!important;box-shadow:0 0 0 2px rgba(47,215,127,.12);color:#44df8b!important}
.team-uploaded-title,.team-uploaded-summary{color:#44df8b!important}

/* v12.25.2 stronger completed-team visibility in Field Mode */
#fieldTeamSelect.team-uploaded-select{
  border-color:#2fd77f!important;
  background:rgba(47,215,127,.12)!important;
  box-shadow:0 0 0 3px rgba(47,215,127,.16)!important;
  color:#64e9a1!important;
  font-weight:900;
}
#fieldTeamSearch.team-uploaded-search{
  border-color:#2fd77f!important;
  background:rgba(47,215,127,.08)!important;
  box-shadow:0 0 0 3px rgba(47,215,127,.12)!important;
}
#fieldTeamSelect.team-uploaded-select:focus,
#fieldTeamSearch.team-uploaded-search:focus{
  border-color:#35e38a!important;
  box-shadow:0 0 0 4px rgba(47,215,127,.18)!important;
}

/* v12.25.3 — ONLY teams that contain photos are marked green */
#fieldTeamSearch{
  border-color:var(--line)!important;
  background:var(--panel-dark)!important;
  box-shadow:none!important;
  color:inherit!important;
}
#fieldTeamSelect{
  border-color:var(--line)!important;
  background:var(--panel-dark)!important;
  box-shadow:none!important;
}
#fieldTeamTitle,#fieldTeamSummary{color:inherit!important;}

#fieldTeamSelect.selected-team-has-photos{
  color:#47df8d!important;
  font-weight:900;
}
#fieldTeamSelect option.team-has-photos-option{
  color:#47df8d!important;
  font-weight:800;
}
.field-team-search-result.team-has-photos{
  background:rgba(71,223,141,.08)!important;
}
.field-team-search-result.team-has-photos > span:first-child{
  color:#47df8d!important;
  font-weight:900;
}
.photos-badge{
  color:#47df8d!important;
  border:1px solid rgba(71,223,141,.45);
  background:rgba(71,223,141,.08);
  border-radius:999px;
  padding:3px 8px;
  font-size:.72rem;
  white-space:nowrap;
}

/* v12.25.4 — native Field team dropdown readability fix */
#fieldTeamSelect option {
  color: #111827 !important;
  background: #ffffff !important;
  font-weight: 600;
}
#fieldTeamSelect option.team-has-photos-option {
  color: #22c979 !important;
  background: #ffffff !important;
  font-weight: 800;
}

/* v12.25.5 — Team Photos highlights for teams that contain photos */
#photosTeamSelect.selected-photos-team-has-photos{
  color:#47df8d!important;
  font-weight:900;
}
#photosTeamSelect option{
  color:#111827!important;
  background:#ffffff!important;
  font-weight:600;
}
#photosTeamSelect option.photos-team-has-photos-option{
  color:#22c979!important;
  background:#ffffff!important;
  font-weight:800;
}

/* v12.25.6 — teams waiting on this device */
.pending-team-card{
  margin-top:16px;
  padding:16px;
  border:1px solid var(--line);
  border-radius:18px;
  background:rgba(9,15,24,.58);
}
.pending-team-head{gap:14px;align-items:flex-start;}
.pending-team-list{display:grid;gap:10px;margin-top:12px;}
.pending-team-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  gap:12px;
  align-items:center;
  padding:12px;
  border:1px solid var(--line);
  border-radius:14px;
  background:rgba(8,14,22,.72);
}
.pending-team-row.current{border-color:rgba(242,196,74,.65);}
.pending-team-main{min-width:0;}
.pending-team-name{font-weight:900;font-size:1rem;overflow-wrap:anywhere;}
.pending-team-meta{margin-top:3px;color:var(--muted);font-size:.82rem;}
.pending-team-status{
  border-radius:999px;
  padding:5px 9px;
  font-size:.72rem;
  font-weight:900;
  white-space:nowrap;
  border:1px solid var(--line);
}
.pending-team-status.not-submitted{color:#f2c44a;border-color:rgba(242,196,74,.55);background:rgba(242,196,74,.08);}
.pending-team-status.waiting{color:#f2c44a;}
.pending-team-status.auth,.pending-team-status.error{color:#ff647c;border-color:rgba(255,100,124,.45);background:rgba(255,100,124,.08);}
.pending-team-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;}
.pending-team-footer{display:flex;justify-content:flex-end;margin-top:12px;}
.pending-team-empty{
  padding:14px;
  border:1px dashed var(--line);
  border-radius:14px;
  color:var(--muted);
}
@media (max-width:760px){
  .pending-team-row{grid-template-columns:1fr;}
  .pending-team-actions{justify-content:flex-start;}
  .pending-team-footer button{width:100%;}
}

/* v12.25.7 — local photo gallery */
.local-photo-gallery-dialog{
  width:min(1050px,96vw);
  max-height:92vh;
}
.local-photo-gallery-dialog .dialog-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:16px;
  margin-bottom:14px;
}
.local-photo-gallery-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(160px,1fr));
  gap:12px;
  overflow:auto;
  max-height:70vh;
  padding:2px;
}
.local-photo-card{
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:14px;
  background:rgba(8,14,22,.82);
}
.local-photo-preview-btn{
  display:block;
  width:100%;
  padding:0;
  border:0;
  border-radius:0;
  overflow:hidden;
  background:#05090f;
  aspect-ratio:4/5;
}
.local-photo-preview-btn img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}
.local-photo-no-preview{
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
  color:var(--muted);
  padding:12px;
}
.local-photo-card-info{
  display:grid;
  gap:4px;
  padding:10px;
}
.local-photo-card-info b{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.local-photo-card-info small{color:var(--muted);}
.local-photo-state{
  justify-self:start;
  margin-top:3px;
  border-radius:999px;
  padding:3px 7px;
  font-size:.7rem;
  font-weight:900;
}
.local-photo-state.backed{color:#47df8d;background:rgba(71,223,141,.1);}
.local-photo-state.local{color:#f2c44a;background:rgba(242,196,74,.1);}

/* v12.25.8 — Team Photos retake workflow */
.retake-count-badge{
  color:#ffb24a!important;
  border-color:rgba(255,178,74,.55)!important;
  background:rgba(255,178,74,.10)!important;
}
.team-photo-card.retake-needed{
  border-color:rgba(255,91,108,.72)!important;
  box-shadow:0 0 0 2px rgba(255,91,108,.10);
}
.retake-photo-flag{
  position:absolute;
  z-index:3;
  top:38px;
  left:10px;
  border:1px solid rgba(255,91,108,.72);
  border-radius:999px;
  padding:5px 9px;
  background:rgba(33,5,11,.92);
  color:#ff7385;
  font-size:.68rem;
  font-weight:950;
  letter-spacing:.04em;
}
.team-photo-card{position:relative;}
button.retake-action,.retake-action{
  border-color:rgba(255,178,74,.55)!important;
  color:#ffc36f!important;
  background:rgba(255,178,74,.08)!important;
}
button.retake-clear,.retake-clear{
  border-color:rgba(71,223,141,.55)!important;
  color:#47df8d!important;
  background:rgba(71,223,141,.08)!important;
}

/* v12.25.9 — edit team name actions */
.team-name-edit-row{
  display:flex;
  justify-content:flex-end;
  margin-top:8px;
}
.team-name-edit-row button{
  min-width:140px;
}

/* v12.26.0 — visible edit-team controls */
.edit-team-name-btn{
  width:100%;
  margin-top:10px;
  min-height:46px;
  border:1px solid rgba(242,196,74,.72)!important;
  background:rgba(242,196,74,.10)!important;
  color:#f2c44a!important;
  font-weight:900!important;
  border-radius:12px;
}
.edit-team-name-btn:hover:not(:disabled){
  background:rgba(242,196,74,.17)!important;
}
.edit-team-name-btn:disabled{
  opacity:.38;
  cursor:not-allowed;
}

/* v12.26.2 — native phone camera workflow */
.native-camera-session-dialog{
  width:min(620px,95vw);
  border:1px solid var(--line);
  border-radius:20px;
  background:var(--panel);
  color:var(--text);
  padding:0;
}
.native-camera-session-dialog::backdrop{background:rgba(0,0,0,.72);}
.native-camera-session-shell{padding:20px;}
.native-camera-session-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;}
.native-camera-session-head h3{margin:.2rem 0;}
.native-camera-last-photo{margin:18px 0 12px;display:flex;gap:14px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:14px;background:rgba(8,14,22,.72);}
.native-camera-last-photo img{width:78px;height:96px;object-fit:cover;border-radius:10px;}
.native-camera-last-photo div{display:grid;gap:4px;}
.native-camera-last-photo small{color:var(--muted);overflow-wrap:anywhere;}
.native-camera-session-actions{display:grid;grid-template-columns:1fr auto;gap:12px;margin-top:16px;}
.native-camera-session-actions .primary{min-height:64px;font-size:1.05rem;}
@media(max-width:620px){.native-camera-session-actions{grid-template-columns:1fr;}}

/* v12.26.3 — multiple native-camera photos per player */
.native-player-strip{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin:16px 0;
}
.native-player-strip > div{
  border:1px solid var(--line);
  border-radius:14px;
  padding:12px;
  background:rgba(8,14,22,.72);
}
.native-player-strip small{
  display:block;
  color:var(--muted);
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.05em;
}
.native-player-strip b{
  display:block;
  margin-top:4px;
  font-size:1.15rem;
}
.native-camera-session-actions.multi-player-actions{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;
}
.next-player-btn{
  border:1px solid rgba(71,223,141,.6)!important;
  background:rgba(71,223,141,.10)!important;
  color:#47df8d!important;
  font-weight:900!important;
}
.next-player-btn:disabled{
  opacity:.35;
}
@media(max-width:620px){
  .native-camera-session-actions.multi-player-actions{grid-template-columns:1fr;}
  .native-player-strip{grid-template-columns:1fr 1fr;}
}

/* v12.26.4 — lock team + native phone camera import workflow */
.field-team-lock-card{
  margin-top:14px;
  border:1px solid var(--line);
  border-radius:16px;
  padding:14px;
  background:rgba(8,14,22,.68);
}
.lock-team-btn{
  width:100%;
  min-height:52px;
  border:1px solid rgba(242,196,74,.7)!important;
  background:rgba(242,196,74,.10)!important;
  color:#f2c44a!important;
  font-weight:950!important;
}
.lock-team-btn:disabled{opacity:.38;}
.locked-team-banner{
  display:flex;
  justify-content:space-between;
  gap:14px;
  align-items:center;
  border:1px solid rgba(242,196,74,.72);
  border-radius:14px;
  padding:14px;
  background:rgba(242,196,74,.10);
}
.locked-team-banner b{
  display:block;
  margin-top:4px;
  font-size:1.15rem;
  color:#f6d56b;
}
.locked-team-banner small{
  display:block;
  margin-top:4px;
  color:var(--muted);
}
.locked-badge{
  border-color:rgba(242,196,74,.7)!important;
  color:#f2c44a!important;
}
.locked-team-help{
  margin:12px 0;
  line-height:1.45;
}
.unlock-team-btn{
  width:100%;
  min-height:46px;
  border:1px solid rgba(255,123,123,.5)!important;
  color:#ff9292!important;
  background:rgba(255,90,90,.06)!important;
  font-weight:850!important;
}
.import-only-actions{
  display:grid!important;
  grid-template-columns:1fr!important;
}
.import-photos-main{
  min-height:60px!important;
  display:flex!important;
  align-items:center;
  justify-content:center;
  font-weight:950!important;
  font-size:1rem;
}
.disabled-control{
  opacity:.38!important;
  pointer-events:none!important;
  filter:grayscale(.25);
}
#fieldState.locked{
  border-color:rgba(242,196,74,.65)!important;
  color:#f2c44a!important;
  background:rgba(242,196,74,.08)!important;
}

/* v12.26.5 — delete local Field photos before upload */
.local-photo-delete-btn{
  width:100%;
  margin-top:10px;
  min-height:40px;
  font-weight:900!important;
}
.local-photo-delete-note{
  display:block;
  margin-top:8px;
  color:var(--muted);
  line-height:1.35;
}
.upload-row-delete{
  align-self:center;
  min-width:72px;
  padding:8px 10px!important;
  font-size:.78rem!important;
  font-weight:850!important;
}
@media(max-width:620px){
  .upload-row{
    grid-template-columns:auto 1fr!important;
  }
  .upload-row .upload-status,
  .upload-row .upload-row-delete{
    grid-column:2;
    justify-self:start;
  }
}


/* ==========================================================
   v12.27.1 Event Day Galleries + Tournament Logo
   ========================================================== */
.gallery-admin-hero{margin-bottom:18px}
.gallery-admin-head{align-items:flex-start}
.gallery-admin-head-side{margin-left:auto;display:flex;flex-direction:column;align-items:flex-end;gap:12px;min-width:min(100%,330px)}
.tournament-logo-admin{display:flex;align-items:center;gap:12px;padding:10px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.025);max-width:330px;width:100%}
.tournament-logo-admin-preview{
  width:82px;
  height:82px;
  flex:none;
  border:1px dashed var(--line);
  border-radius:12px;
  background:rgba(0,0,0,.18);
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  text-align:center;
  color:var(--muted);
  font-size:.65rem;
  font-weight:850;
  letter-spacing:.08em;
  line-height:1.25;
  box-sizing:border-box
}
.tournament-logo-admin-preview img{
  display:block;
  width:100%;
  height:100%;
  max-width:100%;
  max-height:100%;
  object-fit:contain;
  object-position:center;
  padding:6px;
  background:transparent;
  box-sizing:border-box
}
.tournament-logo-admin-copy{min-width:0;display:flex;flex-direction:column;gap:4px}
.tournament-logo-admin-copy small{color:var(--muted);line-height:1.35}
.tournament-logo-admin-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.tournament-logo-admin-actions button{padding:7px 9px;font-size:.75rem}
.gallery-link-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}
.gallery-link-row input{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.84rem}
.gallery-admin-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.gallery-admin-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:16px}
.gallery-admin-metrics>div{padding:14px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.025);display:flex;flex-direction:column;gap:3px}
.gallery-admin-metrics b{font-size:1.35rem}
.gallery-admin-metrics small{color:var(--muted)}
.gallery-admin-grid{margin-top:12px}
.gallery-admin-photo-card .capture-placeholder-mini{margin-top:8px}
@media(max-width:700px){
  .gallery-admin-head{display:block}
  .gallery-admin-head-side{margin:14px 0 0;align-items:stretch;min-width:0}
  .tournament-logo-admin{max-width:none}
  .gallery-link-row{grid-template-columns:1fr}
  .gallery-admin-actions{display:grid;grid-template-columns:1fr 1fr}
  .gallery-admin-metrics{grid-template-columns:1fr}
}
@media(max-width:460px){
  .gallery-admin-actions{grid-template-columns:1fr}
}

/* v12.29.0 — staged Event Day designs + Team Composite editor */
.eventday-stage-progress{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0 18px}
.eventday-stage-progress>div{border:1px solid var(--line);background:#0b1119;border-radius:12px;padding:12px;display:grid;gap:4px}
.eventday-stage-progress small{color:var(--muted);font-size:.68rem;font-weight:900;letter-spacing:.08em}
.eventday-stage-progress b{font-size:1.05rem}
.eventday-stage-card{border:1px solid var(--line);background:#0a1017;border-radius:16px;padding:14px;margin:14px 0}
.stage-number{width:30px;height:30px;border-radius:999px;display:inline-grid;place-items:center;background:#d6ae32;color:#0b0f14;font-weight:1000;margin-bottom:8px}
.eventday-design-source-card.cutout-ready{box-shadow:inset 0 0 0 1px rgba(90,220,135,.28)}
.eventday-design-source-card.cutout-failed{box-shadow:inset 0 0 0 1px rgba(255,100,115,.35)}
.eventday-design-tag.success{border-color:#285e3a;background:#11261a;color:#9ce8b0}
.eventday-design-tag.warn{border-color:#665622;background:#2a2410;color:#ffd87a}
.eventday-design-tag.error{border-color:#70303a;background:#2b1015;color:#ff9fa7}
.team-composite-dialog{border:0;padding:0;background:transparent;width:min(96vw,1200px);max-width:1200px}
.team-composite-dialog::backdrop{background:rgba(0,0,0,.82);backdrop-filter:blur(5px)}
.team-composite-editor-dialog{width:100%;max-width:none;max-height:94vh;overflow:auto}
.team-composite-editor-tools{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:12px 0}
.team-composite-editor-tools label{display:flex;align-items:center;gap:9px;margin:0;color:var(--muted);font-size:.78rem;font-weight:800}
.team-composite-editor-tools input[type=range]{width:150px}
.team-composite-canvas-shell{width:100%;overflow:auto;background:#05080c;border:1px solid var(--line);border-radius:14px;padding:14px}
.team-composite-editor-canvas{position:relative;width:min(100%,1050px);aspect-ratio:2917/2013;margin:0 auto;overflow:hidden;border-radius:10px;background-color:#111722;background-image:linear-gradient(45deg,#1b2330 25%,transparent 25%),linear-gradient(-45deg,#1b2330 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#1b2330 75%),linear-gradient(-45deg,transparent 75%,#1b2330 75%);background-size:28px 28px;background-position:0 0,0 14px,14px -14px,-14px 0}
.team-composite-player{position:absolute;transform:translate(-50%,-50%);cursor:grab;touch-action:none;user-select:none;filter:drop-shadow(0 8px 10px rgba(0,0,0,.32))}
.team-composite-player.dragging{cursor:grabbing}
.team-composite-player.selected{outline:2px solid #f5cf55;outline-offset:3px;border-radius:4px}
.team-composite-player.hidden-player{opacity:.18}
.team-composite-empty{display:grid;place-items:center;height:100%;padding:30px;text-align:center;color:var(--muted)}
@media(max-width:850px){.eventday-stage-progress{grid-template-columns:repeat(2,minmax(0,1fr))}.team-composite-editor-tools{align-items:stretch}.team-composite-editor-tools label{width:100%}}


/* v12.30.0 — render cleanup / history */
#toggleEventDayDesignHistoryBtn.active{
  border-color:#d4af37;
  color:#f4cf55;
}
.render-cleanup-note{
  margin:12px 0 16px;
}
.eventday-design-job-card.design-hidden,
.eventday-design-job-card.design-deleted{
  opacity:.78;
  border-style:dashed;
}
.eventday-design-job-card.design-deleted{
  filter:saturate(.55);
}
.eventday-design-status.hidden-status{
  background:#423517;
  color:#f6d36c;
}
.eventday-design-status.deleted{
  background:#4a1d24;
  color:#ff9ba8;
}
.history-note{
  color:#d7b95c !important;
}


/* v12.31.0 — manual Photoshop cutout editor */
.eventday-design-source-actions [data-design-manual-cutout]{white-space:normal;}

/* v12.31.1 — manual cutout is a fallback after automatic render */


/* v12.32.0 — Admin Individual player fit controls */
.player-fit-dialog{width:min(94vw,620px);border:0;background:transparent;padding:0;}
.player-fit-dialog-card{width:min(94vw,620px);}
.player-fit-control{padding:16px 0;border-bottom:1px solid rgba(255,255,255,.09);}
.player-fit-control input[type="range"]{width:100%;margin:14px 0 8px;}
.player-fit-axis{display:flex;justify-content:space-between;gap:12px;font-size:.8rem;color:var(--muted,#9aa8b8);}
.player-fit-summary{font-size:.78rem;color:#aab8c9;margin-top:4px;}


/* v12.32.1 — visual direct-manipulation player fit */
.player-fit-dialog{
  width:min(98vw,1120px);
  max-width:none;
  border:0;
  background:transparent;
  padding:0;
}
.player-fit-dialog-card{
  width:min(98vw,1120px);
  max-height:94vh;
  overflow:auto;
}
.player-fit-title-row{align-items:flex-start;}
.visual-player-fit-layout{
  display:grid;
  grid-template-columns:minmax(360px,1.3fr) minmax(230px,.7fr);
  gap:20px;
  margin-top:14px;
}
.visual-player-fit-main{min-width:0;}
.player-fit-toolbar{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom:10px;
}
.player-fit-toolbar span{
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.10);
  border-radius:999px;
  padding:7px 11px;
  font-size:.84rem;
}
.player-fit-stage{
  position:relative;
  width:100%;
  aspect-ratio:2 / 3;
  max-height:68vh;
  overflow:hidden;
  border-radius:14px;
  border:2px solid rgba(212,175,55,.72);
  background:
    linear-gradient(45deg,rgba(255,255,255,.05) 25%,transparent 25%),
    linear-gradient(-45deg,rgba(255,255,255,.05) 25%,transparent 25%),
    linear-gradient(45deg,transparent 75%,rgba(255,255,255,.05) 75%),
    linear-gradient(-45deg,transparent 75%,rgba(255,255,255,.05) 75%),
    #171b20;
  background-size:28px 28px;
  background-position:0 0,0 14px,14px -14px,-14px 0;
  touch-action:none;
  user-select:none;
}
.player-fit-safe-title{
  position:absolute;
  top:10px;
  left:12px;
  z-index:4;
  font-size:.72rem;
  letter-spacing:.09em;
  font-weight:800;
  color:#f4cf55;
  pointer-events:none;
}
.player-fit-center-line{
  position:absolute;
  top:0;
  bottom:0;
  left:50%;
  border-left:1px dashed rgba(255,255,255,.17);
  pointer-events:none;
}
.player-fit-baseline{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  border-top:2px dashed rgba(212,175,55,.65);
  pointer-events:none;
}
.player-fit-loading{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  padding:24px;
  text-align:center;
  color:#cbd5e1;
}
.player-fit-object{
  position:absolute;
  transform-origin:center bottom;
  cursor:grab;
  touch-action:none;
  user-select:none;
  z-index:3;
}
.player-fit-object.dragging{cursor:grabbing;}
.player-fit-object.resizing{cursor:nwse-resize;}
.player-fit-object img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  pointer-events:none;
  filter:drop-shadow(0 12px 12px rgba(0,0,0,.35));
}
.player-fit-object::after{
  content:"";
  position:absolute;
  inset:-2px;
  border:1px dashed rgba(255,255,255,.82);
  pointer-events:none;
}
.player-fit-handle{
  position:absolute;
  width:16px;
  height:16px;
  border:2px solid #111;
  background:#f4cf55;
  border-radius:3px;
  z-index:6;
  box-shadow:0 2px 8px rgba(0,0,0,.4);
}
.player-fit-handle.nw{left:-9px;top:-9px;cursor:nwse-resize;}
.player-fit-handle.ne{right:-9px;top:-9px;cursor:nesw-resize;}
.player-fit-handle.sw{left:-9px;bottom:-9px;cursor:nesw-resize;}
.player-fit-handle.se{right:-9px;bottom:-9px;cursor:nwse-resize;}
.player-fit-tip{
  margin-top:10px;
  color:#aab8c9;
  font-size:.84rem;
}
.player-fit-reference{min-width:0;}
.player-fit-reference-frame{
  margin-top:8px;
  min-height:280px;
  border-radius:12px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.10);
  background:#0d1116;
  display:grid;
  place-items:center;
}
.player-fit-reference-frame img{
  display:block;
  width:100%;
  height:auto;
  max-height:62vh;
  object-fit:contain;
}
.player-fit-current-empty{
  padding:20px;
  color:#7f8c9c;
  text-align:center;
}
.player-fit-actions{
  margin-top:18px;
  position:sticky;
  bottom:-1px;
  padding-top:12px;
  padding-bottom:2px;
  background:linear-gradient(to bottom,rgba(17,21,27,0),rgba(17,21,27,.98) 28%);
}
@media(max-width:820px){
  .visual-player-fit-layout{grid-template-columns:1fr;}
  .player-fit-reference-frame{min-height:180px;}
  .player-fit-stage{max-height:none;}
}

/* v12.34.0 — manual final JPG + visible cutout manager */
.eventday-cutout-preview-box{
  border:1px solid var(--line);
  border-radius:12px;
  overflow:hidden;
  background:#070c12;
}
.eventday-cutout-preview-label{
  padding:7px 9px;
  font-size:.68rem;
  font-weight:900;
  letter-spacing:.06em;
  color:var(--muted);
  border-bottom:1px solid var(--line);
}
.eventday-cutout-preview-stage{
  position:relative;
  min-height:180px;
  aspect-ratio:4/5;
  display:grid;
  place-items:center;
  overflow:hidden;
  background-color:#111923;
  background-image:
    linear-gradient(45deg,rgba(255,255,255,.055) 25%,transparent 25%),
    linear-gradient(-45deg,rgba(255,255,255,.055) 25%,transparent 25%),
    linear-gradient(45deg,transparent 75%,rgba(255,255,255,.055) 75%),
    linear-gradient(-45deg,transparent 75%,rgba(255,255,255,.055) 75%);
  background-size:24px 24px;
  background-position:0 0,0 12px,12px -12px,-12px 0;
}
.eventday-cutout-preview-image{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
}
.eventday-cutout-preview-loading{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  padding:14px;
  text-align:center;
  color:var(--muted);
  font-size:.76rem;
}
.eventday-design-source-actions .cutout-upload-btn,
.eventday-design-job-actions .manual-final-upload-btn{
  grid-column:1/-1;
  font-weight:900;
}


/* v12.35.13 — dedicated Insert JPG control under each rendered preview */
.eventday-insert-jpg-zone{
  padding:10px 11px 0;
  background:#0b1119;
}
.eventday-insert-jpg-btn{
  border:0;
  font:inherit;
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:48px;
  border-radius:12px;
  background:var(--gold,#d6ac2f);
  color:#111;
  font-weight:900;
  font-size:1rem;
  cursor:pointer;
  user-select:none;
}
.eventday-insert-jpg-btn:hover{
  filter:brightness(1.04);
}
.eventday-insert-jpg-btn input{
  position:absolute;
  width:1px;
  height:1px;
  opacity:0;
  pointer-events:none;
}


/* v12.35.22 — gallery preview mirrors client sale structure */
.gallery-admin-grid .gallery-admin-team-photo-card{grid-column:1/-1;max-width:none}
.gallery-admin-team-kicker{padding:10px 14px 0;font-size:.72rem;font-weight:900;letter-spacing:.12em;color:#f5c84b}
.gallery-admin-team-photo-preview{aspect-ratio:10/8;max-height:420px;background:#080d14}
.gallery-admin-team-photo-preview .eventday-capture-thumb{object-fit:contain;width:100%;height:100%}
.gallery-admin-missing-card{border-style:dashed;min-height:120px}
.gallery-admin-player-designs{display:grid;grid-template-columns:1fr;gap:8px;padding:0}
.gallery-admin-player-designs.has-memory-mate{grid-template-columns:1fr 1fr}
.gallery-admin-design-preview{min-width:0;background:#080d14}
.gallery-admin-design-preview .eventday-capture-thumb-wrap{border-radius:0;min-height:0;aspect-ratio:8/10}
.gallery-admin-design-preview .eventday-capture-thumb{width:100%;height:100%;object-fit:cover}
.gallery-admin-design-label{display:block;padding:7px 8px;text-align:center;font-size:.68rem;font-weight:900;letter-spacing:.08em;background:#172231;color:#d8e7f6}
.gallery-admin-design-label.memory{background:#3c2f08;color:#ffd64a}
@media(max-width:760px){.gallery-admin-player-designs.has-memory-mate{grid-template-columns:1fr}}

/* v12.36.0 — Sales Admin / POS setup */
.sales-admin-hero{align-items:center}
.sales-admin-grid{align-items:start}
.sales-payment-block{border:1px solid #263548;border-radius:16px;padding:16px;margin-top:14px;background:#0d141e}
.sales-payment-block:first-of-type{margin-top:8px}
.sales-toggle{display:flex;gap:10px;align-items:flex-start;margin:10px 0 12px;cursor:pointer}
.sales-toggle input{width:auto;margin-top:3px}
.sales-toggle span{display:grid;gap:2px}
.sales-toggle small{color:#8fa8c5;font-weight:400}
.sales-subsection-kicker{margin-top:24px}
.compact-grid{gap:12px}
.sales-product-editor{border:1px solid #27374a;border-radius:18px;padding:18px;background:#0b121b;margin:18px 0}
.sales-product-fields{gap:12px}
.sales-inline-toggles{display:flex;flex-wrap:wrap;gap:18px;margin:14px 0}
.sales-inline-toggles label{display:flex;align-items:center;gap:8px;margin:0}
.sales-inline-toggles input{width:auto}
.sales-catalog-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:18px 0 10px}
.sales-product-list{display:grid;gap:10px}
.sales-product-row{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:15px;border:1px solid #263548;border-radius:15px;background:#0d141e}
.sales-product-row.inactive{opacity:.67}
.sales-product-main{min-width:0;display:grid;gap:5px}
.sales-product-title{display:flex;flex-wrap:wrap;align-items:center;gap:7px}
.sales-product-actions{display:flex;gap:8px;flex:0 0 auto}
.sales-secret-list{padding:14px 16px;border-radius:12px;background:#080d13;border:1px solid #263548;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;line-height:1.8;color:#bcd3ee;margin:12px 0}
@media(max-width:800px){.sales-product-row{align-items:flex-start;flex-direction:column}.sales-product-actions{width:100%}.sales-product-actions button{flex:1}.sales-inline-toggles{display:grid;gap:10px}}


/* v12.36.2 secure checkout + Orders/POS */
.checkout-dialog-card{max-width:780px;width:min(94vw,780px)}
.checkout-mode-line{display:flex;align-items:center;gap:10px;margin:4px 0 14px;font-weight:700}
.checkout-fields-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.checkout-fields-grid.three{grid-template-columns:2fr 1fr 1fr}
.checkout-fulfillment,.checkout-shipping-fields{display:grid;gap:10px;margin-top:16px}
.checkout-method{display:flex;gap:12px;align-items:flex-start;padding:12px;border:1px solid var(--line,#2a3a4e);border-radius:12px;background:rgba(255,255,255,.02)}
.checkout-method span{display:grid;gap:3px}.checkout-method small{color:var(--muted,#9db4cd)}
.checkout-totals{margin-top:18px;border-top:1px solid var(--line,#2a3a4e);padding-top:12px;display:grid;gap:7px}
.checkout-totals>div{display:flex;justify-content:space-between;gap:20px}.checkout-totals .grand{font-size:1.18rem;padding-top:8px;border-top:1px dashed var(--line,#2a3a4e)}
.order-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0}
.order-metrics>div{border:1px solid var(--line,#2a3a4e);border-radius:14px;padding:14px}.order-metrics b{font-size:1.55rem;display:block}.order-metrics small{color:var(--muted,#9db4cd)}
.orders-list{display:grid;gap:12px}.order-card{border:1px solid var(--line,#2a3a4e);border-radius:14px;padding:14px;background:rgba(255,255,255,.018)}
.order-card-head,.order-card-foot{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;flex-wrap:wrap}.order-card h4{margin:0}.order-card-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.order-chip{border:1px solid var(--line,#2a3a4e);border-radius:999px;padding:5px 8px;font-size:.78rem}.order-items-mini{margin:10px 0;display:grid;gap:4px;color:var(--muted,#9db4cd)}
@media(max-width:760px){.checkout-fields-grid,.checkout-fields-grid.three,.order-metrics{grid-template-columns:1fr 1fr}.checkout-fields-grid>div:first-child{grid-column:1/-1}}
@media(max-width:520px){.checkout-fields-grid,.checkout-fields-grid.three,.order-metrics{grid-template-columns:1fr}}


/* v12.36.8 — Schedule Import belongs only to the Schedule workspace.
   This hard guard prevents Schedule-only panels from leaking into Galleries
   or any other Event Day tab, even if a stale class/cache state exists. */
#screen-eventday:not([data-eventday-current-view="schedule"]) [data-eventday-panel="schedule"]{
  display:none !important;
}


/* v12.36.9 — Galleries workspace cleanup.
   Event creation and team-import management belong to Overview/Teams, not Galleries. */
#screen-eventday[data-eventday-current-view="galleries"] #eventDayCreateCard,
#screen-eventday[data-eventday-current-view="galleries"] #eventDayTeamImportCard{
  display:none !important;
}


/* v12.36.10 — Teams Photographed Today / day history */
.field-day-history-toolbar{margin:14px 0 18px;}
.field-day-history-btn{
  width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;
  text-align:left;padding:15px 17px;border:1px solid rgba(71,223,141,.42);border-radius:18px;
  background:linear-gradient(135deg,rgba(71,223,141,.12),rgba(21,32,48,.76));color:inherit;cursor:pointer;
}
.field-day-history-btn:hover,.field-day-history-btn:focus{border-color:rgba(71,223,141,.72);background:linear-gradient(135deg,rgba(71,223,141,.18),rgba(21,32,48,.82));outline:none;}
.field-day-history-btn b{display:block;font-size:.92rem;letter-spacing:.025em;}
.field-day-history-btn small{display:block;margin-top:3px;color:var(--muted);font-size:.8rem;font-weight:500;}
.field-day-history-icon{font-size:1.35rem;}
.field-day-history-arrow{font-size:1.8rem;color:#47df8d;line-height:1;}

.field-day-teams-dialog{width:min(980px,96vw);max-height:92vh;padding:20px;}
.field-day-teams-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px;}
.field-day-teams-head h3{margin:.15rem 0 .3rem;}
.field-day-teams-controls{display:grid;grid-template-columns:auto minmax(180px,260px) auto;gap:10px;align-items:end;margin-bottom:14px;}
.field-day-teams-controls label{margin:0;align-self:center;font-weight:800;}
.field-day-teams-controls input{margin:0;}
.field-day-teams-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px;}
.field-day-teams-summary>div{padding:12px;border:1px solid var(--line);border-radius:14px;background:rgba(8,14,22,.72);}
.field-day-teams-summary b{display:block;font-size:1.25rem;}
.field-day-teams-summary small{display:block;margin-top:2px;color:var(--muted);}
.field-day-teams-list{display:grid;gap:10px;max-height:58vh;overflow:auto;padding:1px;}
.field-day-team-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:13px;border:1px solid var(--line);border-radius:15px;background:rgba(8,14,22,.78);}
.field-day-team-row.uploaded{border-color:rgba(71,223,141,.6);background:rgba(71,223,141,.075);}
.field-day-team-row.waiting,.field-day-team-row.uploading{border-color:rgba(242,196,74,.42);}
.field-day-team-row.attention{border-color:rgba(255,100,124,.5);}
.field-day-team-main{min-width:0;}
.field-day-team-name{font-size:1rem;font-weight:900;overflow-wrap:anywhere;}
.field-day-team-meta{margin-top:4px;color:var(--muted);font-size:.82rem;}
.field-day-team-status{border:1px solid var(--line);border-radius:999px;padding:6px 9px;font-size:.7rem;font-weight:900;white-space:nowrap;}
.field-day-team-status.uploaded{color:#47df8d;border-color:rgba(71,223,141,.55);background:rgba(71,223,141,.1);}
.field-day-team-status.waiting,.field-day-team-status.uploading{color:#f2c44a;border-color:rgba(242,196,74,.5);background:rgba(242,196,74,.08);}
.field-day-team-status.attention{color:#ff647c;border-color:rgba(255,100,124,.48);background:rgba(255,100,124,.08);}
.field-day-team-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;}
.field-day-teams-empty{padding:18px;border:1px dashed var(--line);border-radius:14px;color:var(--muted);text-align:center;}
@media(max-width:760px){
  .field-day-teams-dialog{padding:15px;}
  .field-day-teams-head{display:grid;}
  .field-day-teams-head>button{justify-self:start;}
  .field-day-teams-controls{grid-template-columns:1fr 1fr;}
  .field-day-teams-controls label{grid-column:1/-1;}
  .field-day-teams-summary{grid-template-columns:1fr 1fr;}
  .field-day-team-row{grid-template-columns:1fr;}
  .field-day-team-status{justify-self:start;}
  .field-day-team-actions{justify-content:flex-start;}
  .field-day-team-actions button{flex:1 1 auto;}
}

/* v12.37.0 — Reuse existing PhotoDay teams/photos inside Event Day */
.reuse-photoday-launch{background:linear-gradient(135deg,var(--accent),#d9b74e);}
.reuse-photoday-inline-note{margin:12px 0 16px;padding:12px 14px;border:1px solid rgba(198,163,58,.28);border-radius:14px;background:rgba(198,163,58,.07);display:grid;gap:3px;}
.reuse-photoday-inline-note b{color:#fff;}
.reuse-photoday-inline-note span{color:var(--muted);font-size:.82rem;line-height:1.45;}
.reuse-photoday-dialog{width:min(1180px,96vw);max-width:1180px;max-height:94vh;}
.reuse-photoday-dialog-card{width:100%;max-width:none;max-height:94vh;overflow:auto;}
.reuse-photoday-head{margin-bottom:12px;}
.reuse-photoday-head h3{margin:.15rem 0 .3rem;}
.reuse-photoday-layout{display:grid;grid-template-columns:minmax(250px,.72fr) minmax(0,1.65fr);gap:14px;align-items:start;}
.reuse-photoday-source-panel,.reuse-photoday-photo-panel{border:1px solid var(--line);border-radius:16px;background:rgba(8,14,22,.72);padding:14px;}
.reuse-photoday-team-results{display:grid;gap:8px;margin-top:10px;max-height:56vh;overflow:auto;padding-right:2px;}
.reuse-photoday-team-result{width:100%;display:grid;text-align:left;justify-items:start;gap:3px;background:#0d141d;border:1px solid var(--line);padding:12px;}
.reuse-photoday-team-result:hover{border-color:rgba(198,163,58,.58);}
.reuse-photoday-team-result.selected{border-color:var(--accent);background:rgba(198,163,58,.12);box-shadow:0 0 0 2px rgba(198,163,58,.08);}
.reuse-photoday-team-result b{font-size:.9rem;overflow-wrap:anywhere;}
.reuse-photoday-team-result small{color:var(--muted);font-weight:600;line-height:1.35;}
.reuse-photoday-team-result .reuse-team-ready{color:var(--green);font-size:.68rem;font-weight:900;letter-spacing:.05em;}
.reuse-photoday-photo-head{align-items:center;}
.reuse-photoday-photo-head h4{margin:.15rem 0 .2rem;}
.reuse-photoday-selection-count{min-width:84px;text-align:center;border:1px solid var(--line);border-radius:13px;padding:8px 10px;background:#0b1017;}
.reuse-photoday-selection-count b{display:block;font-size:1.3rem;color:var(--accent2);}
.reuse-photoday-selection-count small{display:block;color:var(--muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;}
.reuse-photoday-selection-actions{margin:10px 0 12px;}
.reuse-photoday-photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;max-height:58vh;overflow:auto;padding:1px;}
.reuse-photoday-photo-card{position:relative;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#0b1118;cursor:pointer;min-width:0;}
.reuse-photoday-photo-card.selected{border-color:var(--accent);box-shadow:0 0 0 2px rgba(198,163,58,.16);}
.reuse-photoday-photo-thumb{position:relative;height:180px;background:#070b10;display:grid;place-items:center;overflow:hidden;}
.reuse-photoday-photo-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.reuse-photoday-photo-loading{color:var(--muted);font-size:.75rem;text-align:center;padding:10px;}
.reuse-photoday-photo-check{position:absolute;top:9px;right:9px;z-index:2;margin:0;display:grid;place-items:center;width:30px;height:30px;border-radius:999px;background:rgba(6,9,13,.86);border:1px solid rgba(255,255,255,.22);}
.reuse-photoday-photo-check input{width:17px;height:17px;margin:0;accent-color:var(--accent);}
.reuse-photoday-photo-meta{padding:9px 10px;display:grid;gap:2px;}
.reuse-photoday-photo-meta b{font-size:.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.reuse-photoday-photo-meta small{font-size:.7rem;color:var(--muted);}
.reuse-photoday-live-option{margin-top:14px!important;align-items:flex-start!important;padding:12px 14px;border:1px solid rgba(43,212,125,.3);border-radius:14px;background:rgba(43,212,125,.06);}
.reuse-photoday-live-option input{width:18px;height:18px;margin-top:2px;accent-color:var(--green);}
.reuse-photoday-live-option span{display:grid;gap:3px;}
.reuse-photoday-live-option small{color:var(--muted);font-weight:500;line-height:1.4;}
.reuse-photoday-footer{position:sticky;bottom:-20px;background:linear-gradient(180deg,rgba(17,22,30,.75),var(--panel) 34%);padding:18px 0 2px;z-index:3;}
@media(max-width:900px){.reuse-photoday-layout{grid-template-columns:1fr}.reuse-photoday-team-results{max-height:260px}.reuse-photoday-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-height:54vh}.reuse-photoday-dialog{width:100vw;max-width:100vw;margin:0}.reuse-photoday-dialog-card{border-radius:0;min-height:100dvh;max-height:100dvh}.reuse-photoday-footer{bottom:-20px}}
@media(max-width:520px){.reuse-photoday-photo-grid{grid-template-columns:1fr 1fr}.reuse-photoday-photo-thumb{height:145px}.reuse-photoday-selection-actions button{flex:1 1 100%}}


/* v12.38.0 — Tournament Team Matcher */
.tournament-matcher-dialog{width:min(1180px,96vw);max-width:1180px;border:0;background:transparent;padding:0}
.tournament-matcher-dialog::backdrop,.tournament-team-pick-dialog::backdrop{background:rgba(3,7,18,.78);backdrop-filter:blur(3px)}
.tournament-matcher-card{max-height:92vh;overflow:auto}
.tournament-matcher-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) auto auto auto;gap:10px;align-items:center;margin:14px 0}
.tournament-matcher-rows{display:grid;gap:10px;margin-top:12px}
.tournament-match-row{display:grid;grid-template-columns:minmax(180px,1fr) 32px minmax(220px,1.2fr) 110px minmax(170px,auto);gap:12px;align-items:center;border:1px solid var(--line);border-radius:14px;padding:12px;background:rgba(255,255,255,.02)}
.tournament-match-row.done{border-color:rgba(34,197,94,.45);background:rgba(34,197,94,.06)}
.tournament-match-row.safe,.tournament-match-row.remembered{border-color:rgba(59,130,246,.45);background:rgba(59,130,246,.05)}
.tournament-match-row.review{border-color:rgba(245,158,11,.5);background:rgba(245,158,11,.05)}
.tournament-match-row.needs{border-color:rgba(239,68,68,.35)}
.tournament-match-source,.tournament-match-target{display:grid;gap:3px;min-width:0}
.tournament-match-source small,.tournament-match-target small{font-size:.68rem;letter-spacing:.08em;color:var(--muted)}
.tournament-match-source b,.tournament-match-target b{overflow-wrap:anywhere}
.tournament-match-target span{font-size:.78rem;color:var(--muted);overflow-wrap:anywhere}
.tournament-match-arrow{text-align:center;color:var(--muted);font-size:1.2rem}
.tournament-match-confidence{text-align:center}
.tournament-match-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
button.small{padding:8px 10px;font-size:.78rem}
.tournament-team-pick-dialog{width:min(620px,94vw);max-width:620px;border:0;background:transparent;padding:0}
.tournament-team-pick-card{max-height:88vh;overflow:auto}
.tournament-team-pick-results{margin-top:12px;max-height:62vh;overflow:auto}
@media (max-width:900px){
  .tournament-matcher-toolbar{grid-template-columns:1fr 1fr}.tournament-matcher-toolbar input{grid-column:1/-1}
  .tournament-match-row{grid-template-columns:1fr auto;gap:8px}.tournament-match-arrow{display:none}.tournament-match-target{grid-column:1/-1}.tournament-match-confidence{text-align:left}.tournament-match-actions{justify-content:flex-end}
}
@media (max-width:600px){
  .tournament-matcher-toolbar{grid-template-columns:1fr}.tournament-matcher-toolbar input{grid-column:auto}
  .tournament-match-row{grid-template-columns:1fr}.tournament-match-confidence{text-align:left}.tournament-match-actions{justify-content:stretch}.tournament-match-actions button{flex:1}
}

/* v12.39.0 — Event photographer invitations + activity */
.role-hidden{display:none!important}
.photographer-invite-banner{margin:14px 0;padding:16px;border:1px solid rgba(56,189,248,.32);border-radius:16px;background:rgba(14,165,233,.09)}
.photographer-invite-banner h3{margin:4px 0 3px}
.photographer-invite-link-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}
.photographer-invite-link-row input{min-width:0}
.photographer-invite-actions{margin-top:10px}
.photographer-admin-list{display:grid;gap:10px;margin-top:14px}
.photographer-admin-card{width:100%;display:flex;align-items:center;justify-content:space-between;gap:14px;text-align:left;padding:15px 16px;border-radius:16px;background:rgba(255,255,255,.035);border:1px solid rgba(148,163,184,.18);color:inherit}
.photographer-admin-card:hover{border-color:rgba(56,189,248,.5);transform:translateY(-1px)}
.photographer-admin-main{display:grid;gap:4px;min-width:0}
.photographer-admin-main b{font-size:1rem}
.photographer-admin-main small{color:var(--muted,#94a3b8);overflow-wrap:anywhere}
.photographer-admin-status,.photographer-team-green{flex:0 0 auto;font-weight:800;font-size:.76rem;letter-spacing:.04em;padding:7px 9px;border-radius:999px;border:1px solid rgba(148,163,184,.25)}
.photographer-admin-status.green,.photographer-team-green.green{background:rgba(34,197,94,.14);border-color:rgba(34,197,94,.42);color:#86efac}
.photographer-admin-status.waiting,.photographer-team-green.waiting{background:rgba(245,158,11,.12);border-color:rgba(245,158,11,.38);color:#fcd34d}
.photographer-admin-status.idle{background:rgba(148,163,184,.08);color:#cbd5e1}
.photographer-activity-card{width:min(850px,94vw);max-height:88vh;overflow:auto}
.photographer-activity-teams{display:grid;gap:10px;margin-top:14px}
.photographer-team-activity{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:14px 15px;border:1px solid rgba(148,163,184,.18);border-radius:15px;background:rgba(255,255,255,.03)}
.photographer-team-activity.green{border-color:rgba(34,197,94,.35);background:rgba(34,197,94,.06)}
.photographer-team-activity>div{display:grid;gap:3px;min-width:0}
.photographer-team-activity small{color:var(--muted,#94a3b8)}
@media(max-width:680px){
  .photographer-invite-link-row{grid-template-columns:1fr}
  .photographer-admin-card,.photographer-team-activity{align-items:flex-start;flex-direction:column}
  .photographer-admin-status,.photographer-team-green{align-self:flex-start}
}

/* v12.42.0 Permanent Player Folders */
.player-folder-layout{grid-template-columns:minmax(290px,.72fr) minmax(0,1.45fr);align-items:start}.player-profile-browser{position:sticky;top:92px;max-height:calc(100vh - 120px);overflow:auto}.player-profile-list{display:grid;gap:9px;margin-top:12px}.player-profile-list.compact{max-height:55vh;overflow:auto}.player-profile-card{width:100%;display:flex;align-items:center;gap:10px;text-align:left;background:#0c121a;border:1px solid var(--line);padding:11px;border-radius:14px}.player-profile-card.active{border-color:var(--accent);box-shadow:0 0 0 2px rgba(198,163,58,.13)}.player-profile-avatar{width:42px;height:42px;flex:0 0 42px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#28210f,#171d25);border:1px solid rgba(198,163,58,.35);color:var(--accent2);font-weight:950}.player-profile-card-main{min-width:0;flex:1}.player-profile-card-main b,.player-profile-card-main small{display:block}.player-profile-card-main small{color:var(--muted);font-size:.72rem;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-folder-detail-head{display:flex;align-items:center;gap:14px;margin-bottom:16px}.player-folder-profile-photo{width:94px;height:94px;border-radius:18px;overflow:hidden;display:grid;place-items:center;flex:0 0 auto;background:#0b1017;border:1px solid var(--line);color:var(--accent2);font-size:1.25rem;font-weight:950}.player-folder-profile-photo img{width:100%;height:100%;object-fit:cover}.player-folder-title-wrap{min-width:0;flex:1}.player-folder-title-wrap h2{margin:2px 0 5px}.player-folder-save-wrap{display:flex;align-items:end}.player-folder-save-wrap button{width:100%}.player-parent-link-box{display:flex;align-items:center;justify-content:space-between;gap:14px;background:#0c1219;border:1px solid var(--line);border-radius:15px;padding:13px;margin:15px 0}.player-parent-link-box small{display:block;color:var(--muted);margin-top:4px}.player-parent-link-actions,.player-folder-actions,.player-folder-item-actions{display:flex;gap:8px;flex-wrap:wrap}.player-folder-actions{margin:14px 0}.player-folder-content-head{margin-top:20px}.player-folder-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}.player-folder-item{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#0d131b}.player-folder-item.hidden-parent-item{opacity:.62}.player-folder-image-wrap{position:relative;aspect-ratio:4/5;background:#080c11;display:grid;place-items:center}.player-folder-image-wrap img{width:100%;height:100%;object-fit:cover}.player-folder-image-loading,.player-folder-profile-loading{color:var(--muted);font-size:.75rem}.player-folder-profile-badge{position:absolute;left:8px;top:8px;background:var(--accent);color:#111;font-size:.66rem;font-weight:950;border-radius:999px;padding:5px 7px}.player-folder-item-body{padding:10px}.player-folder-item-body b,.player-folder-item-body small{display:block}.player-folder-item-body small{color:var(--muted);font-size:.72rem;margin:4px 0 9px}.player-folder-item-actions button{font-size:.7rem;padding:7px 8px}.badge.success{color:var(--green);border-color:rgba(43,212,125,.4)}.player-folder-assign-dialog{width:min(680px,94vw)}
@media(max-width:820px){.player-folder-layout{grid-template-columns:1fr}.player-profile-browser{position:static;max-height:none}.player-parent-link-box{align-items:flex-start;flex-direction:column}.player-parent-link-actions{width:100%}.player-parent-link-actions button{flex:1}.player-folder-contact-grid{grid-template-columns:1fr!important}.player-folder-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.player-folder-detail-head{align-items:flex-start}.player-folder-profile-photo{width:76px;height:76px}.player-folder-grid{gap:8px}.player-folder-item-actions{display:grid}.player-folder-item-actions button{width:100%}}

/* v12.42.0 Operations Manager access */
.ops-manager-invite-inner{margin-top:16px;padding:16px;border:1px solid rgba(255,255,255,.08);border-radius:16px;background:rgba(255,255,255,.025)}
.ops-manager-list-head{margin-top:20px}
.ops-activity-list{display:grid;gap:8px}
.ops-activity-row{display:grid;grid-template-columns:minmax(140px,.8fr) minmax(220px,1.5fr) auto;gap:12px;align-items:center;padding:11px 12px;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:rgba(255,255,255,.025)}
.ops-activity-row span{color:var(--muted)}.ops-activity-row small{color:var(--muted);text-align:right}.ops-financial-hidden{font-size:.78rem;letter-spacing:.08em;color:var(--muted)}
.finance-hidden-metric{opacity:.55}.finance-hidden-metric small::after{content:' • OWNER ONLY'}
@media(max-width:720px){.ops-activity-row{grid-template-columns:1fr;gap:4px}.ops-activity-row small{text-align:left}}
