*{box-sizing:border-box}
:root{font-family:Arial,"Segoe UI",sans-serif;color:#111827;background:#f3f6fb;--navy:#0b1220;--blue:#2563eb;--border:#dbe3ef;--muted:#687386;--surface:#fff;--shadow:0 22px 58px rgba(15,23,42,.12)}
html{-webkit-text-size-adjust:100%;background:#f3f6fb}
body{margin:0;min-height:100vh;background:radial-gradient(circle at 10% 0,rgba(37,99,235,.09),transparent 30rem),linear-gradient(180deg,#edf3fb 0,#f8fafc 22rem,#f3f6fb 100%)}
button,input,select{font:inherit}
.players-header{background:linear-gradient(135deg,#08111f 0%,#0d1d33 60%,#11305a 100%);box-shadow:0 10px 30px rgba(10,24,45,.18)}
.players-header-inner{width:min(920px,100%);min-height:112px;margin:auto;padding:22px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px}
.players-brand{direction:ltr;font-size:38px;font-weight:900;letter-spacing:-3px;line-height:1}.g1{color:#4285f4}.g2{color:#ea4335}.g3{color:#fbbc05}.g4{color:#34a853}.hundred{color:#ffd54a;margin-left:6px}
.back-button{justify-self:start;text-decoration:none;color:#fff;font-weight:800;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18);border-radius:12px;padding:10px 14px}.back-button:hover{background:rgba(255,255,255,.17)}
.players-page{width:min(900px,calc(100% - 28px));margin:30px auto 50px}.players-card{background:rgba(255,255,255,.98);border:1px solid #d9e1ec;border-radius:24px;padding:30px;box-shadow:var(--shadow)}
.players-intro{text-align:center;margin-bottom:26px}.eyebrow{display:inline-block;font-size:12px;font-weight:900;letter-spacing:.12em;color:#1d4ed8;background:#eff6ff;border:1px solid #dbeafe;padding:7px 11px;border-radius:999px}.players-intro h1{margin:12px 0 7px;font-size:36px;color:#0f172a}.players-intro p{margin:0;color:var(--muted);font-size:16px}
.player-select-wrap{max-width:520px;margin:0 auto 30px}.player-select-wrap label{display:block;font-weight:900;color:#1f2937;margin-bottom:9px}.select-shell{position:relative}.select-shell select{width:100%;min-height:54px;appearance:none;background:#fff;color:#111827;border:2px solid #cbd5e1;border-radius:14px;padding:0 48px 0 16px;font-weight:800;font-size:17px;outline:none;box-shadow:0 5px 16px rgba(15,23,42,.05)}.select-shell select:focus{border-color:#2563eb;box-shadow:0 0 0 4px rgba(37,99,235,.10)}.select-arrow{position:absolute;right:17px;top:50%;transform:translateY(-54%);font-size:24px;color:#475569;pointer-events:none}
.player-viewer{border:1px solid #d9e2ee;border-radius:20px;overflow:hidden;background:#fff;box-shadow:0 12px 32px rgba(15,23,42,.07)}.player-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 24px;background:linear-gradient(135deg,#0f172a,#17345c);color:#fff}.player-heading-label{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.09em;color:#bdd2ee;font-weight:900;margin-bottom:5px}.player-heading h2{margin:0;font-size:28px}.session-date-box{text-align:right;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.16);border-radius:13px;padding:10px 14px;min-width:150px}.session-date-box span{display:block;font-size:11px;color:#c9d7ea;text-transform:uppercase;letter-spacing:.06em;font-weight:900}.session-date-box strong{display:block;margin-top:4px;font-size:17px;color:#fff}
.picks-table-wrap{overflow-x:auto}.picks-table{width:100%;border-collapse:separate;border-spacing:0}.picks-table thead th{background:#eaf0f8;color:#26364b;text-align:left;padding:14px 20px;font-size:13px;text-transform:uppercase;letter-spacing:.055em;border-bottom:1px solid #cfd9e6}.picks-table tbody td{padding:15px 20px;border-bottom:1px solid #e6ebf2;background:#fff}.picks-table tbody tr:nth-child(even) td{background:#f8fafc}.picks-table tbody tr:last-child td{border-bottom:0}.picks-table tbody tr:hover td{background:#f1f6fd}.game-number-cell{width:32%;font-size:18px;font-weight:900;color:#0f172a}.player-pick-cell{font-weight:900}.pick-badges{display:flex;gap:8px;flex-wrap:wrap}.pick-badge{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:35px;padding:0 12px;border-radius:9px;font-size:16px;font-weight:950;border:1px solid #c9d3e1;background:#eef2f7;color:#172033}.pick-2{background:#e8f1ff;border-color:#b9d4ff;color:#174ea6}.pick-x{background:#fff4d7;border-color:#f2d28c;color:#8a5a00}.pick-1{background:#e8f8ed;border-color:#b7e4c4;color:#176b36}
.empty-state{text-align:center;padding:36px;border:1px dashed #cbd5e1;border-radius:16px;color:#64748b;background:#f8fafc;font-weight:700}.players-footer{text-align:center;color:#7a8494;font-size:13px;padding:0 20px 30px}
@media(max-width:640px){.players-header-inner{min-height:88px;padding:15px 14px}.players-brand{font-size:29px}.back-button{font-size:13px;padding:9px 10px}.players-page{width:min(100% - 18px,900px);margin:18px auto 35px}.players-card{padding:20px 14px;border-radius:19px}.players-intro h1{font-size:30px}.player-heading{align-items:flex-start;padding:18px 16px}.player-heading h2{font-size:24px}.session-date-box{min-width:auto;padding:8px 10px}.picks-table thead th,.picks-table tbody td{padding:13px 14px}.game-number-cell{width:36%}}
@media(max-width:420px){.players-header-inner{grid-template-columns:auto 1fr}.players-brand{justify-self:end}.header-spacer{display:none}.player-heading{display:block}.session-date-box{margin-top:13px;text-align:left;display:inline-block}.player-select-wrap{margin-bottom:22px}}

/* v38: public Players view mirrors the submissions pick grid. */
.picks-table{table-layout:fixed}
.picks-table thead th{text-align:center}
.picks-table thead th:first-child{width:34%}
.picks-table tbody td{text-align:center}
.game-number-cell{width:34%;text-align:center!important}
.pick-choice-cell{width:22%}
.pick-box{
  display:inline-grid;
  place-items:center;
  width:46px;
  height:38px;
  border-radius:8px;
  border:1px solid #d7dee7;
  background:#f8fafc;
  color:#7a8595;
  font-size:17px;
  font-weight:900;
}
.pick-box.picked{
  background:#d92d20;
  border-color:#b42318;
  color:#fff;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.15);
}
@media(max-width:640px){
  .picks-table thead th:first-child,.game-number-cell{width:31%}
  .pick-choice-cell{width:23%}
  .pick-box{width:42px;height:35px;font-size:16px}
}
@media(max-width:390px){
  .picks-table thead th:first-child,.game-number-cell{width:28%}
  .pick-choice-cell{width:24%}
  .pick-box{width:38px;height:33px}
}

/* v43: build tickets from 3 fixed sections + combinations of the other 5. */
.ticket-builder{border-top:1px solid #d9e2ee;background:#f8fafc;padding:24px}
.ticket-builder-heading,.ticket-results-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:18px}
.ticket-builder-heading h3,.ticket-results-heading h3{margin:4px 0 0;font-size:23px;color:#0f172a}
.ticket-builder-heading .player-heading-label,.ticket-results-heading .player-heading-label{color:#2563eb}
.ticket-builder-heading p{max-width:460px;margin:0;color:#64748b;line-height:1.5;text-align:right;font-weight:600}
.ticket-section-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.ticket-section-card{border:2px solid #dce4ef;border-radius:16px;background:#fff;overflow:hidden;transition:.18s ease}
.ticket-section-card.selected{border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.09)}
.section-select-button{display:block;width:100%;border:0;background:transparent;padding:15px 14px;text-align:left;cursor:pointer;color:#111827}
.section-number{display:block;font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#64748b;margin-bottom:5px}
.section-select-button strong{display:block;font-size:19px;color:#0f172a}
.section-action{display:block;margin-top:8px;font-size:12px;font-weight:800;color:#2563eb}
.ticket-section-card.selected .section-select-button{background:#eff6ff}
.fixed-choice-panel{padding:12px 14px 14px;border-top:1px solid #dbeafe;background:#f8fbff}
.fixed-choice-panel>span{display:block;font-size:12px;font-weight:900;color:#334155;margin-bottom:8px}
.fixed-choice-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
.fixed-choice{height:38px;border:1px solid #cbd5e1;border-radius:9px;background:#fff;color:#475569;font-weight:950;cursor:pointer}
.fixed-choice:hover{border-color:#94a3b8;background:#f8fafc}
.fixed-choice.selected{background:#d92d20;border-color:#b42318;color:#fff}
.ticket-builder-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:18px}
.ticket-builder-message{margin:0;color:#64748b;font-weight:700;line-height:1.45}.ticket-builder-message.ready{color:#16733d}.ticket-builder-message.error{color:#b42318}
.generate-tickets-button{border:0;border-radius:12px;background:#2563eb;color:#fff;font-weight:900;padding:13px 20px;cursor:pointer;box-shadow:0 8px 18px rgba(37,99,235,.22)}
.generate-tickets-button:disabled{background:#a9b8cb;box-shadow:none;cursor:not-allowed}
.ticket-results{padding:25px 24px 28px;border-top:1px solid #d9e2ee;background:#fff}
.ticket-results-heading strong{white-space:nowrap;background:#eff6ff;color:#1d4ed8;border:1px solid #dbeafe;border-radius:999px;padding:8px 12px;font-size:13px}
.tickets-list{display:grid;gap:18px}
.generated-ticket{border:1px solid #d9e2ee;border-radius:17px;overflow:hidden;background:#fff;box-shadow:0 8px 24px rgba(15,23,42,.06)}
.generated-ticket-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 15px;background:#0f172a;color:#fff}.generated-ticket-heading strong{font-size:16px}.generated-ticket-heading span{color:#cbd5e1;font-size:13px;font-weight:700}
.generated-ticket-grid{display:grid;grid-template-columns:3fr 5fr;gap:0}
.ticket-table-panel+.ticket-table-panel{border-left:1px solid #d9e2ee}
.ticket-table-title{padding:10px 13px;background:#f1f5f9;border-bottom:1px solid #d9e2ee;color:#334155;font-size:12px;font-weight:950;text-transform:uppercase;letter-spacing:.04em}
.ticket-table-scroll{overflow-x:auto}.generated-ticket-table{width:100%;border-collapse:collapse;table-layout:fixed}.generated-ticket-table th,.generated-ticket-table td{border-bottom:1px solid #e7edf4;padding:10px 8px;text-align:center;font-size:13px}.generated-ticket-table th{background:#f8fafc;color:#64748b;font-size:11px;text-transform:uppercase}.generated-ticket-table tr:last-child td{border-bottom:0}.generated-ticket-table td:nth-child(2){font-weight:900;color:#0f172a}.ticket-choice{display:inline-grid;place-items:center;min-width:34px;height:30px;padding:0 8px;border-radius:8px;background:#d92d20;color:#fff;font-weight:950}
@media(max-width:760px){.ticket-section-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ticket-builder-heading,.ticket-results-heading{display:block}.ticket-builder-heading p{margin-top:10px;text-align:left}.ticket-results-heading strong{display:inline-block;margin-top:10px}.generated-ticket-grid{grid-template-columns:1fr}.ticket-table-panel+.ticket-table-panel{border-left:0;border-top:1px solid #d9e2ee}}
@media(max-width:520px){.ticket-builder,.ticket-results{padding:18px 12px}.ticket-section-grid{grid-template-columns:1fr 1fr;gap:9px}.section-select-button{padding:12px 10px}.fixed-choice-panel{padding:10px}.ticket-builder-footer{display:block}.generate-tickets-button{width:100%;margin-top:13px}.generated-ticket-table th,.generated-ticket-table td{padding:9px 5px;font-size:12px}.ticket-section-card{border-radius:13px}}

/* v45: explicit player view buttons + dynamic 3/rest combination layout. */
.player-view-tabs{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  padding:16px 18px;
  background:#f8fafc;
  border-bottom:1px solid #d9e2ee;
}
.player-view-tab{
  min-height:48px;
  border:1px solid #cbd5e1;
  border-radius:12px;
  background:#fff;
  color:#334155;
  font-size:14px;
  font-weight:900;
  cursor:pointer;
  padding:10px 12px;
  transition:.16s ease;
}
.player-view-tab:hover{border-color:#94a3b8;background:#f8fafc}
.player-view-tab.active{background:#0f172a;border-color:#0f172a;color:#fff;box-shadow:0 6px 16px rgba(15,23,42,.16)}
.player-view-tab.all-combinations-tab{border-color:#2563eb;color:#1d4ed8;background:#eff6ff}
.player-view-tab.all-combinations-tab.active{background:#2563eb;border-color:#2563eb;color:#fff;box-shadow:0 7px 18px rgba(37,99,235,.23)}
.generated-ticket-grid{grid-template-columns:minmax(280px,var(--fixed-count,3)fr) minmax(320px,var(--other-count,5)fr)}
@media(max-width:760px){
  .player-view-tabs{grid-template-columns:1fr;padding:12px}
  .player-view-tab{min-height:44px}
  .generated-ticket-grid{grid-template-columns:1fr}
}
