:root{
  --homebar-h:56px;
  --hero-ink:#111111;
  --hero-ink-soft:#111111;
  --boundary-grey:rgba(70,70,74,0.42);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;min-height:100%;background:var(--page-bg);color:var(--ink);font-family:var(--font);scroll-behavior:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
body{font-size:19px;line-height:1.55;background:var(--page-bg)}
.bl-scroll{background:var(--page-bg);background-size:100% 100%;background-attachment:fixed}
.title,.subtitle{color:var(--hero-ink)}
.subtitle{max-width:none}
.wrap{width:min(1540px,calc(100% - 24px));margin:16px auto 40px;padding:0;position:relative;z-index:1}
.section{display:none;animation:fade var(--dur-3) var(--ease-soft)}
.section.active{display:block}
@keyframes fade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);padding:22px}
.card h2,.card h3{margin:0 0 12px 0;color:var(--accent-2);font-family:var(--font-soft)}
.card h2{font-size:31px;line-height:1.1}
.card h3{font-size:23px;line-height:1.16}
.card p{margin:0 0 12px 0}
.note{color:var(--muted);font-size:16px}
.grid{display:grid;gap:16px;grid-template-columns:1fr}
.grid-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.grid-three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.row > *{min-width:0}
label{display:grid;gap:6px;font-size:16px;font-weight:850;color:var(--muted)}
input,select,textarea,button{font:inherit}
input,select,textarea{width:100%;padding:10px 12px;border-radius:14px;border:1px solid var(--border-strong);background:var(--bl-badminton-input-bg);color:var(--ink);outline:none}
input:focus,select:focus,textarea:focus{box-shadow:0 0 0 4px var(--ring);border-color:var(--accent)}
button{appearance:none;border:none;cursor:pointer}
.action,button.action{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:10px 14px;border-radius:999px;background:var(--bl-badminton-input-bg);border:1px solid rgba(79,25,125,0.18);color:var(--accent-2);font-weight:900;box-shadow:0 10px 22px -20px rgba(74,23,116,0.24)}
.action:hover{filter:brightness(1.03)}
.action.secondary{background:var(--bl-badminton-panel-bg);color:var(--accent-2)}
.action.tight{min-height:36px;padding:8px 12px;font-size:15px}
.action.danger{background:linear-gradient(180deg,#d93030 0%,#8d1026 100%);color:#fff7ef;border-color:#8d1026}
.tab{appearance:none;border:none;cursor:pointer;background:var(--bl-badminton-tab-bg);padding:10px 14px;border-radius:999px;font-size:16px;font-weight:760;color:var(--muted);border:1px solid rgba(79,25,125,0.16);box-shadow:0 10px 22px -20px rgba(74,23,116,0.26);transition:transform .08s ease,background .12s ease,border-color .12s ease,box-shadow .12s ease;white-space:nowrap}
.tab:hover{transform:translateY(-1px);background:var(--bl-badminton-tab-hover-bg);border-color:rgba(106,31,179,0.26);box-shadow:0 16px 30px -24px rgba(74,23,116,0.34)}
.tab[aria-selected="true"]{color:var(--accent-2);background:var(--bl-badminton-input-bg);border-color:rgba(79,25,125,0.22);box-shadow:0 22px 46px -34px rgba(74,23,116,0.38)}
.metric-strip{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
.metric-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;border:1px solid rgba(79,25,125,0.18);background:var(--bl-badminton-panel-soft-bg);font-size:15px;color:var(--ink)}
.metric-chip strong{color:var(--accent-2)}
.empty-state{border:1px dashed rgba(106,31,179,0.28);border-radius:16px;padding:14px;color:var(--muted);background:var(--bl-badminton-panel-soft-bg)}
.table-wrap{overflow:auto}
table{width:100%;border-collapse:collapse;min-width:720px;background:var(--bl-badminton-input-bg);border-radius:16px;overflow:hidden}
th,td{padding:10px 12px;border-bottom:1px solid rgba(79,25,125,0.12);text-align:left;vertical-align:top}
th{font-size:15px;color:var(--muted);font-weight:900;text-transform:uppercase;letter-spacing:.04em}
tr:last-child td{border-bottom:none}
.small-cell{width:1%;white-space:nowrap}
.status-box{border:1px solid var(--border);border-radius:16px;padding:14px;background:var(--bl-badminton-panel-bg)}
.status-box strong{color:var(--accent-2)}
hr.rule{border:none;border-top:1px solid rgba(79,25,125,0.16);margin:16px 0}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:15px}

.card--system-hero{padding:28px 24px 24px}
.session-lead,.session-copy,.session-copy-wide{max-width:none;width:100%}
.session-lead{font-size:22px;line-height:1.74;color:color-mix(in srgb,var(--ink) 90%,var(--accent-2));margin-bottom:16px}
.session-copy{font-size:19px;line-height:1.7}
.session-copy-wide{font-size:18px;line-height:1.72;color:color-mix(in srgb,var(--ink) 92%,var(--accent-2))}
.system-panels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:18px 0 10px}
.system-panel{padding:16px 18px;border-radius:20px;border:1px solid rgba(79,25,125,0.16);background:var(--bl-badminton-input-bg);box-shadow:0 14px 28px -24px rgba(74,23,116,0.30)}
.system-panel h3{margin:0 0 8px 0;font-size:21px}
.system-panel p{margin:0;font-size:17px;line-height:1.62;color:color-mix(in srgb,var(--ink) 88%,var(--accent-2))}

.system-text-block{display:grid;gap:16px;margin-top:10px}
.system-points{margin:0;padding-left:1.2em;display:grid;gap:12px}
.system-points>li{padding:14px 16px;border-radius:18px;border:1px solid rgba(79,25,125,0.14);background:var(--bl-badminton-panel-bg)}
.system-subpoints{margin:10px 0 0 0;padding-left:1.1em;display:grid;gap:8px}
.system-subpoints li{margin:0;color:color-mix(in srgb,var(--ink) 88%,var(--accent-2))}
.play-grid{display:grid;grid-template-columns:repeat(2,minmax(280px,320px));justify-content:center;gap:24px;width:100%}
@media (max-width:900px){.play-grid{grid-template-columns:1fr;max-width:360px;margin:0 auto}}

.plan-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.plan-output{display:grid;gap:16px}
.games-card{display:grid;gap:16px}
.games-card .courts-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:stretch}
.court-card{display:grid;gap:12px;grid-template-rows:auto auto auto auto 1fr;align-content:start;min-height:100%;border:1px solid var(--border);border-radius:22px;padding:16px;background:var(--card-bg);box-shadow:var(--shadow-soft);transition:opacity .16s ease,filter .16s ease,border-color .16s ease}
.court-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;flex-wrap:wrap}
.court-title{font-size:20px;font-weight:900;color:var(--accent-2);font-family:var(--font-soft)}
.court-kind{font-size:14px;font-weight:900;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.side-banner{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;min-height:118px;padding:10px 12px;border-radius:16px;border:1px solid rgba(79,25,125,0.12);background:var(--bl-badminton-panel-bg)}
.side-banner strong{color:var(--accent-2)}
.side-banner .stack{display:grid;gap:4px}
.side-sub{font-size:14px;color:var(--muted)}
.court-frame{position:relative;border-radius:20px;overflow:hidden;border:1px solid rgba(106,31,179,0.34);background:radial-gradient(circle at 50% 50%,#ffd66f 0%,#f3aa57 48%,#d9b7f1 100%);box-shadow:inset 0 1px 0 rgba(255,228,142,0.36),inset 0 0 42px rgba(106,31,179,0.16),0 16px 36px -28px rgba(74,23,116,0.48)}
.court-diagram{display:block;position:relative}
.court-diagram svg{display:block;width:100%;height:auto}

/* BASELINE-MATCHUP-SUMMARY-V5: compact readable names with lilac court surfaces */
.court-summary{display:grid;gap:9px;justify-items:center;text-align:center;width:100%;padding:9px 11px;border-radius:18px;border:1px solid var(--border);background:var(--card-bg);box-shadow:var(--shadow-soft)}
.court-summary-title{width:100%;font-size:16px;font-weight:950;line-height:1.12;letter-spacing:.035em;text-transform:uppercase;color:var(--accent-2);font-family:var(--font-soft)}
.court-vs-grid{display:grid;grid-template-columns:minmax(96px,1fr) minmax(58px,76px) minmax(96px,1fr);gap:9px;align-items:center;width:100%}
.court-vs-side{display:grid;gap:4px;align-items:center;justify-items:center;min-width:0;min-height:46px;padding:1px 0;background:transparent;border:0;border-radius:0;color:var(--accent-2);font-weight:950;line-height:1.08}
.court-vs-team{display:grid;gap:1px;justify-items:center;align-items:center;width:100%;min-width:0;font-size:16px;line-height:1.06}
.team-name-line{display:block;max-width:100%;white-space:normal;overflow-wrap:normal;word-break:normal;text-align:center}
.court-vs-rating{font-size:12px;color:var(--muted);font-weight:950;line-height:1;white-space:nowrap}
.court-vs-separator{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:center;justify-self:stretch;color:var(--accent-2);font-size:13px;font-weight:950;letter-spacing:.07em;text-align:center;text-transform:uppercase}
.court-vs-separator::before,.court-vs-separator::after{content:"";height:1px;background:rgba(79,25,125,0.24)}
.score-side{justify-items:center;text-align:center}
.score-side-title{display:grid;gap:3px;justify-items:center;margin:0;font-family:var(--font-soft);line-height:1.07}
.score-side-team{display:grid;gap:1px;justify-items:center;align-items:center;width:100%;font-size:18px;line-height:1.06;color:var(--accent-2);font-weight:950}
.score-side-rating{font-size:14px;color:var(--muted);font-weight:950;line-height:1}
.score-side-label{font-size:14px;color:var(--muted);font-weight:950;text-transform:uppercase;letter-spacing:.05em;line-height:1}
.score-side input{max-width:120px;margin:0 auto;text-align:center}
#currentGamesGrid .court-card,#currentGamesGrid .court-summary,#currentGamesGrid .score-side,#currentGamesGrid .status-box{background:var(--card-bg)!important;border-color:var(--border)!important}
#currentGamesGrid .status-box{font-size:14px;line-height:1.45;box-shadow:var(--shadow-soft)}
#currentGamesGrid .status-box strong{font-size:14px}
@media (max-width:520px){.court-vs-grid{grid-template-columns:minmax(0,1fr) minmax(48px,64px) minmax(0,1fr);gap:7px}.court-vs-separator{width:100%;justify-self:center}.court-vs-side{width:100%;min-height:0}.court-vs-team{font-size:15px}.court-vs-rating{font-size:11px}.score-side-team{font-size:17px}.score-side-rating,.score-side-label{font-size:13px}}

.boundary-mask{position:absolute;inset:0;pointer-events:none}
.boundary-mask svg{display:block;width:100%;height:100%}
.finished-stack{display:grid;gap:14px}
.finished-details{border:1px solid rgba(79,25,125,0.14);border-radius:18px;background:var(--bl-badminton-panel-bg);overflow:hidden}
.finished-details summary{list-style:none;cursor:pointer;padding:14px 16px;font-weight:900;color:var(--accent-2);display:flex;justify-content:space-between;gap:12px;align-items:center}
.finished-details summary::-webkit-details-marker{display:none}
.finished-details[open] summary{border-bottom:1px solid rgba(79,25,125,0.12)}
.finished-details-body{padding:14px 16px 16px;display:grid;gap:14px}
.finished-batch{border:1px solid rgba(79,25,125,0.12);border-radius:16px;padding:14px;background:var(--bl-badminton-panel-bg);display:grid;gap:10px}
.finished-batch-head{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:flex-start}
.finished-batch-title{font-size:18px;font-weight:900;color:var(--accent-2);font-family:var(--font-soft)}
.finished-summary-table{width:100%;min-width:0}
.finished-summary-table th,.finished-summary-table td{font-size:15px}
.hardship-note{font-size:14px;color:var(--muted)}
.court-meta{display:grid;gap:10px}
.court-note{font-size:15px;line-height:1.55;color:var(--muted)}
.score-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.score-side{display:grid;gap:8px;padding:12px;border-radius:16px;border:1px solid var(--border);background:var(--card-bg)}
.score-side h4{margin:0;font-size:18px;color:var(--accent-2);font-family:var(--font-soft)}
.score-side input{max-width:120px}
.court-card,.court-meta{overflow:visible}.court-side-legend{display:flex;gap:10px;flex-wrap:wrap;margin:8px 0 6px;color:var(--muted);font-size:14px;font-weight:800}.court-side-legend span{padding:6px 10px;border-radius:999px;background:var(--bl-badminton-panel-soft-bg);border:1px solid rgba(79,25,125,0.10)}
.saved-pill{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:rgba(106,31,179,0.08);border:1px solid rgba(79,25,125,0.15);font-size:14px;color:var(--accent-2);font-weight:900}
.player-pill{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:var(--bl-badminton-panel-soft-bg);border:1px solid rgba(79,25,125,0.15);font-size:15px}
.court-card.is-saved{opacity:0.48;filter:saturate(0.82);border-color:rgba(79,25,125,0.10)}
.court-card.is-saved input,.court-card.is-saved select,.court-card.is-saved button{pointer-events:none}
.attendance-panel{display:grid;gap:12px;padding:14px;border-radius:18px;border:1px solid rgba(79,25,125,0.14);background:var(--bl-badminton-panel-bg);margin-top:14px}
.attendance-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}
.attendance-actions{display:flex;gap:10px;flex-wrap:wrap}
.attendance-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.attendance-pill{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:16px;border:1px solid rgba(79,25,125,0.14);background:var(--bl-badminton-panel-soft-bg);font-size:15px;font-weight:800;color:var(--accent-2)}
.attendance-pill input{width:auto;margin:0}
.player-add-row{display:grid;gap:12px;grid-template-columns:minmax(0,1fr) auto;align-items:end}
.player-add-row .action{margin-bottom:1px}
.hidden{display:none !important}
.manager-only.hidden-row{display:none}
.auto-pair-box{padding:14px;border-radius:16px;border:1px dashed rgba(79,25,125,0.28);background:var(--bl-badminton-panel-soft-bg);color:var(--muted)}
.pair-summary-list{display:grid;gap:10px}
.pair-summary-item{padding:12px 14px;border-radius:16px;border:1px solid rgba(79,25,125,0.14);background:var(--bl-badminton-panel-bg)}
.pair-summary-item strong{color:var(--accent-2)}
.top-alert{margin-top:12px}

.gameplan-subtabs{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}
.gameplan-subtab{appearance:none;border:none;cursor:pointer;background:var(--bl-badminton-tab-bg);padding:10px 14px;border-radius:999px;font-size:16px;font-weight:850;color:var(--muted);border:1px solid rgba(79,25,125,0.16);box-shadow:0 10px 22px -20px rgba(74,23,116,0.26)}
.gameplan-subtab[aria-selected="true"]{color:var(--accent-2);background:var(--bl-badminton-input-bg);border-color:rgba(79,25,125,0.22)}
.gameplan-panel{display:none}
.gameplan-panel.active{display:grid}
.admin-star{display:inline-flex;align-items:center;justify-content:center;margin-left:8px;font-size:18px;line-height:1;vertical-align:middle;text-shadow:0 1px 2px rgba(0,0,0,0.18)}
.admin-star--developer{color:#d93030}
.admin-star--admin{color:#f2be22}
.admin-star-toggle{display:inline-flex;align-items:center;justify-content:center;margin-left:8px;vertical-align:middle;cursor:pointer}
.admin-star-toggle input{position:absolute;opacity:0;pointer-events:none}
.admin-star-toggle .admin-star{margin-left:0;color:rgba(79,25,125,0.24);filter:saturate(.7)}
.admin-star-toggle input:checked + .admin-star{color:#f2be22;filter:none}
.admin-star-toggle:focus-within .admin-star{outline:2px solid var(--accent-2);outline-offset:3px;border-radius:999px}
.login-select{min-width:220px}
.readonly-note{font-size:14px;color:var(--muted);margin-top:8px}
.locked-control{opacity:.55;pointer-events:none}



.rule-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.rule-admin-card{padding:14px;border-radius:16px;border:1px solid rgba(79,25,125,0.14);background:var(--bl-badminton-panel-soft-bg);display:grid;gap:12px}
.rule-admin-list{display:grid;gap:10px}
.rule-admin-item{padding:12px 14px;border-radius:14px;border:1px solid rgba(79,25,125,0.12);background:var(--bl-badminton-panel-soft-bg);display:grid;gap:8px}
.rule-admin-item-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;flex-wrap:wrap}
.select-note{font-size:14px;color:var(--muted)}
.player-pref-stack{display:grid;gap:8px;min-width:220px;max-width:320px}
.player-pref-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;border-radius:14px;border:1px solid rgba(79,25,125,0.14);background:var(--bl-badminton-panel-soft-bg);color:var(--accent-2);font-size:14px;font-weight:900}
.player-pref-toggle input{width:18px;height:18px;margin:0;accent-color:var(--accent-2);flex:0 0 auto}
.player-pref-toggle input:disabled{opacity:.45;cursor:not-allowed}
.player-pref-toggle span{min-width:0}
.player-pref-label{display:block;line-height:1.12}
.player-pref-hint{display:block;margin-top:3px;color:var(--muted);font-size:12px;font-weight:750;line-height:1.18}
.player-actions{vertical-align:middle;text-align:right;white-space:nowrap}
.player-actions-head{text-align:right}
.player-action-row{display:inline-flex;gap:10px;align-items:center;justify-content:flex-end}
.player-login-input{min-width:220px}
.rule-zone-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.rule-zone-pill{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:14px;border:1px solid rgba(79,25,125,0.14);background:var(--bl-badminton-panel-soft-bg);font-size:14px;font-weight:800;color:var(--accent-2)}
.rule-zone-pill input{width:auto;margin:0}

@media (max-width:1180px){
  .system-panels,.plan-controls,.games-card .courts-grid,.grid-three,.attendance-grid{grid-template-columns:1fr}
}
@media (max-width:820px){
  .grid-two,.score-grid,.hardship-row,.rule-admin-grid,.player-add-row,.attendance-grid{grid-template-columns:1fr}
  table{min-width:620px}
  .card--system-hero{padding:22px 18px 20px}
  .session-lead{font-size:20px}
}

.court-visual-row{display:grid;grid-template-columns:1fr;gap:0;align-items:center;justify-items:center;align-self:stretch;width:100%;min-width:0}
.court-frame{width:100%;max-width:360px;margin:0 auto;min-height:0;aspect-ratio:100/220;display:flex;align-items:center;justify-content:center}
.court-diagram{width:100%}
.court-diagram svg{width:100%;height:auto}
@media (max-width:1180px){.court-frame{max-width:420px}}
@media (max-width:720px){.court-frame{max-width:360px}}



/* System tab direct explanation: no ladder-card layout. */
.system-text-block--direct{gap:14px}
.system-section-card{padding:16px 18px;border-radius:20px;border:1px solid rgba(79,25,125,0.14);background:var(--bl-badminton-panel-bg);box-shadow:0 14px 28px -25px rgba(74,23,116,0.20)}
.system-section-card h3{margin:0 0 8px 0;color:var(--accent-2)}
.system-section-card h4{margin:0 0 8px 0;color:var(--accent-2);font-family:var(--font-soft);font-size:19px}
.system-section-card p{margin:0;color:var(--ink);line-height:1.62}
.system-mode-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}
@media (max-width:820px){.system-mode-grid{grid-template-columns:1fr}}


/* BASELINE-HARDSHIP-FIX-V2: stable hardship dropdown sizing */
.hardship-control{display:grid;gap:10px;align-items:start;min-height:156px;overflow:visible;position:relative}
.hardship-row{display:grid;grid-template-columns:minmax(260px,480px) auto;gap:14px;align-items:end;overflow:visible}
.hardship-field{display:grid;gap:6px;min-width:260px;max-width:480px;min-height:118px;position:relative;overflow:visible}
.hardship-field label{display:grid;gap:6px;min-height:76px}
.hardship-field select{width:100%!important;height:52px!important;min-height:52px!important;max-height:52px!important}
.hardship-field .bl-select{position:relative!important;display:block!important;width:100%!important;max-width:480px!important;height:52px!important;min-height:52px!important;overflow:visible!important}
.hardship-field .bl-select-btn{width:100%!important;max-width:480px!important;height:52px!important;min-height:52px!important;max-height:52px!important;box-sizing:border-box!important}
.hardship-field .bl-select-menu{position:absolute!important;left:0!important;right:0!important;top:calc(100% + 6px)!important;z-index:500!important;box-sizing:border-box!important;width:100%!important;min-width:100%!important;max-width:480px!important;max-height:220px!important;overflow:auto!important}
.hardship-field .bl-select-menu[hidden]{display:none!important}
.hardship-control .hardship-note{min-height:2.6em}
.hardship-save:disabled{opacity:.48;cursor:not-allowed;filter:saturate(.75)}
.court-card,.court-meta{overflow:visible}

/* BASELINE-NO-WHITE-SURFACE-V1: badminton surfaces are lilac, including form fields and generated rows */
body[data-app="badminton"]{
  --bl-badminton-card-bg:linear-gradient(180deg,#ead4fb 0%,#ddbef4 100%);
  --bl-badminton-card-deep-bg:linear-gradient(180deg,#e4c8f7 0%,#d4acef 100%);
  --bl-badminton-panel-bg:linear-gradient(180deg,#ecd8fb 0%,#dfc1f3 100%);
  --bl-badminton-panel-soft-bg:linear-gradient(180deg,#f0ddfb 0%,#e5c9f5 100%);
  --bl-badminton-input-bg:linear-gradient(180deg,#ead2fa 0%,#dfc0f2 100%);
  --bl-badminton-tab-bg:linear-gradient(180deg,rgba(222,190,244,0.72),rgba(207,163,235,0.62));
  --bl-badminton-tab-hover-bg:linear-gradient(180deg,rgba(232,207,249,0.84),rgba(215,178,241,0.74));
  --bl-badminton-border:rgba(106,31,179,0.34);
  --bl-badminton-border-soft:rgba(106,31,179,0.24);
  --bl-badminton-shadow:0 22px 48px -34px rgba(74,23,116,0.52);
  --card-bg:var(--bl-badminton-card-bg);
  --showall-bg:var(--bl-badminton-panel-soft-bg);
  --filter-bg:var(--bl-badminton-panel-soft-bg);
  --border:var(--bl-badminton-border);
  --border-strong:var(--bl-badminton-border-soft);
  --shadow-soft:var(--bl-badminton-shadow);
}
body[data-app="badminton"] .card,
body[data-app="badminton"] #currentGamesGrid .court-card{
  background:var(--bl-badminton-card-bg)!important;
  border-color:var(--bl-badminton-border)!important;
  box-shadow:var(--bl-badminton-shadow)!important;
}
body[data-app="badminton"] .court-card{
  background:var(--bl-badminton-card-deep-bg)!important;
  border-color:var(--bl-badminton-border)!important;
}
body[data-app="badminton"] .system-panel,
body[data-app="badminton"] .system-points>li,
body[data-app="badminton"] .system-section-card,
body[data-app="badminton"] .status-box,
body[data-app="badminton"] .finished-details,
body[data-app="badminton"] .finished-batch,
body[data-app="badminton"] .attendance-panel,
body[data-app="badminton"] .attendance-pill,
body[data-app="badminton"] .auto-pair-box,
body[data-app="badminton"] .pair-summary-item,
body[data-app="badminton"] .rule-admin-card,
body[data-app="badminton"] .rule-admin-item,
body[data-app="badminton"] .rule-zone-pill,
body[data-app="badminton"] .player-pref-toggle,
body[data-app="badminton"] .metric-chip,
body[data-app="badminton"] .player-pill,
body[data-app="badminton"] .saved-pill,
body[data-app="badminton"] .side-banner,
body[data-app="badminton"] .court-summary,
body[data-app="badminton"] .score-side,
body[data-app="badminton"] .court-side-legend span,
body[data-app="badminton"] #currentGamesGrid .court-summary,
body[data-app="badminton"] #currentGamesGrid .score-side,
body[data-app="badminton"] #currentGamesGrid .status-box{
  background:var(--bl-badminton-panel-bg)!important;
  border-color:var(--bl-badminton-border-soft)!important;
  box-shadow:inset 0 1px 0 rgba(158,82,207,0.22),0 14px 28px -26px rgba(74,23,116,0.34)!important;
}
body[data-app="badminton"] input:not([type="checkbox"]):not([type="radio"]),
body[data-app="badminton"] select,
body[data-app="badminton"] textarea,
body[data-app="badminton"] .bl-select-btn,
body[data-app="badminton"] .bl-select-menu,
body[data-app="badminton"] .bl-select-menu [role="option"],
body[data-app="badminton"] .score-side input,
body[data-app="badminton"] #currentGamesGrid .score-side input{
  background:var(--bl-badminton-input-bg)!important;
  background-color:#e4c8f7!important;
  border-color:var(--bl-badminton-border-soft)!important;
  color:var(--ink)!important;
}
body[data-app="badminton"] input[type="checkbox"],
body[data-app="badminton"] input[type="radio"]{
  accent-color:var(--accent-2);
}
body[data-app="badminton"] table,
body[data-app="badminton"] thead,
body[data-app="badminton"] tbody,
body[data-app="badminton"] tr,
body[data-app="badminton"] th,
body[data-app="badminton"] td,
body[data-app="badminton"] .finished-summary-table{
  background:var(--bl-badminton-panel-soft-bg)!important;
  border-color:var(--bl-badminton-border-soft)!important;
}
body[data-app="badminton"] .tab,
body[data-app="badminton"] .gameplan-subtab{
  background:var(--bl-badminton-tab-bg)!important;
  border-color:var(--bl-badminton-border-soft)!important;
}
body[data-app="badminton"] .tab:hover,
body[data-app="badminton"] .gameplan-subtab:hover{
  background:var(--bl-badminton-tab-hover-bg)!important;
}
body[data-app="badminton"] .tab[aria-selected="true"],
body[data-app="badminton"] .gameplan-subtab[aria-selected="true"],
body[data-app="badminton"] .action,
body[data-app="badminton"] button.action{
  background:var(--bl-badminton-input-bg)!important;
  border-color:var(--bl-badminton-border-soft)!important;
}
body[data-app="badminton"] .action.secondary{
  background:var(--bl-badminton-panel-bg)!important;
}
body[data-app="badminton"] .top-alert,
body[data-app="badminton"] .empty-state{
  background:var(--bl-badminton-panel-soft-bg)!important;
  border-color:var(--bl-badminton-border-soft)!important;
}
body[data-app="badminton"] .card::before{
  box-shadow:inset 0 1px 0 rgba(158,82,207,0.20),inset 0 -18px 42px -30px rgba(106,31,179,0.30)!important;
}

/* BASELINE-CHECKBOX-REMOVE-V1: lilac checkboxes with purple ticks; red remove text on lilac button */
body[data-app="badminton"] .attendance-pill input[type="checkbox"],
body[data-app="badminton"] .player-pref-toggle input[type="checkbox"],
body[data-app="badminton"] .rule-zone-pill input[type="checkbox"]{
  appearance:none;
  -webkit-appearance:none;
  display:inline-grid;
  place-content:center;
  width:18px!important;
  height:18px!important;
  min-width:18px;
  flex:0 0 18px;
  margin:0!important;
  padding:0!important;
  border:2px solid rgba(79,25,125,0.44)!important;
  border-radius:5px;
  background:var(--bl-badminton-input-bg)!important;
  background-color:#e4c8f7!important;
  color:var(--accent-2)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.16),0 2px 5px -4px rgba(74,23,116,0.35);
  cursor:pointer;
}
body[data-app="badminton"] .attendance-pill input[type="checkbox"]::after,
body[data-app="badminton"] .player-pref-toggle input[type="checkbox"]::after,
body[data-app="badminton"] .rule-zone-pill input[type="checkbox"]::after{
  content:"✓";
  font-size:15px;
  line-height:1;
  font-weight:950;
  color:var(--accent-2);
  transform:scale(0);
  transform-origin:center;
}
body[data-app="badminton"] .attendance-pill input[type="checkbox"]:checked::after,
body[data-app="badminton"] .player-pref-toggle input[type="checkbox"]:checked::after,
body[data-app="badminton"] .rule-zone-pill input[type="checkbox"]:checked::after{
  transform:scale(1);
}
body[data-app="badminton"] .attendance-pill input[type="checkbox"]:focus-visible,
body[data-app="badminton"] .player-pref-toggle input[type="checkbox"]:focus-visible,
body[data-app="badminton"] .rule-zone-pill input[type="checkbox"]:focus-visible{
  outline:2px solid var(--accent-2);
  outline-offset:3px;
}
body[data-app="badminton"] .attendance-pill input[type="checkbox"]:disabled,
body[data-app="badminton"] .player-pref-toggle input[type="checkbox"]:disabled,
body[data-app="badminton"] .rule-zone-pill input[type="checkbox"]:disabled{
  opacity:.58;
  cursor:not-allowed;
}
body[data-app="badminton"] .action.danger,
body[data-app="badminton"] button.action.danger,
body[data-app="badminton"] [data-player-remove]{
  background:var(--bl-badminton-input-bg)!important;
  background-color:#e4c8f7!important;
  border-color:rgba(217,48,48,0.42)!important;
  color:#d93030!important;
  text-shadow:none!important;
}
body[data-app="badminton"] .action.danger:hover,
body[data-app="badminton"] button.action.danger:hover,
body[data-app="badminton"] [data-player-remove]:hover{
  color:#b51e1e!important;
  border-color:rgba(217,48,48,0.58)!important;
}

/* BASELINE-COURT-FOCUS-SURROUND-V1: lilac boundary moving inward to amber focus around the green court */
body[data-app="badminton"] .court-frame{
  background:radial-gradient(circle at 50% 50%,#ffd66f 0%,#f3aa57 48%,#d9b7f1 100%)!important;
  border-color:rgba(106,31,179,0.34)!important;
  box-shadow:inset 0 1px 0 rgba(255,228,142,0.36),inset 0 0 42px rgba(106,31,179,0.16),0 16px 36px -28px rgba(74,23,116,0.48)!important;
}


body[data-app="badminton"] #currentGamesGrid .court-card{
  grid-template-columns:minmax(0,1fr);
  justify-items:center;
}
body[data-app="badminton"] #currentGamesGrid .court-card > .court-head,
body[data-app="badminton"] #currentGamesGrid .court-card > .court-summary,
body[data-app="badminton"] #currentGamesGrid .court-card > .status-box,
body[data-app="badminton"] #currentGamesGrid .court-card > .court-visual-row,
body[data-app="badminton"] #currentGamesGrid .court-card > .court-meta{
  width:100%;
  max-width:var(--bl-court-inner-max);
  justify-self:center;
}
body[data-app="badminton"] #currentGamesGrid .court-frame{
  width:100%;
  max-width:var(--bl-court-inner-max);
}
body[data-app="badminton"] #currentGamesGrid .court-meta,
body[data-app="badminton"] #currentGamesGrid .court-meta > *,
body[data-app="badminton"] #currentGamesGrid .score-grid,
body[data-app="badminton"] #currentGamesGrid .hardship-control{
  width:100%;
}
body[data-app="badminton"] #currentGamesGrid .court-head,
body[data-app="badminton"] #currentGamesGrid .court-meta,
body[data-app="badminton"] #currentGamesGrid .hardship-control{
  justify-items:center;
}
body[data-app="badminton"] #currentGamesGrid .hardship-row{
  width:100%;
  grid-template-columns:minmax(0,1fr);
  justify-content:center;
}
body[data-app="badminton"] #currentGamesGrid .hardship-field{
  width:100%;
  min-width:0;
  max-width:100%;
}
@media (min-width:1181px){
  body[data-app="badminton"] #currentGamesGrid{ --bl-court-inner-max: 450px; }
}


/* BASELINE-COURT-INNER-STABLE-V3
   Center the nested panels inside a court card. This does not reposition the
   outer court card in the page grid. It also prevents logged-in score/hardship
   controls from widening the internal layout. */
body[data-app="badminton"] #currentGamesGrid{
  --bl-court-inner-max: 430px;
}
body[data-app="badminton"] #currentGamesGrid .court-card{
  grid-template-columns:minmax(0,1fr)!important;
  justify-items:center!important;
  align-items:start!important;
  min-width:0!important;
}
body[data-app="badminton"] #currentGamesGrid .court-card > .court-head,
body[data-app="badminton"] #currentGamesGrid .court-card > .court-summary,
body[data-app="badminton"] #currentGamesGrid .court-card > .status-box,
body[data-app="badminton"] #currentGamesGrid .court-card > .court-visual-row,
body[data-app="badminton"] #currentGamesGrid .court-card > .court-meta{
  box-sizing:border-box!important;
  width:min(100%,var(--bl-court-inner-max))!important;
  max-width:var(--bl-court-inner-max)!important;
  justify-self:center!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
body[data-app="badminton"] #currentGamesGrid .court-summary,
body[data-app="badminton"] #currentGamesGrid .status-box,
body[data-app="badminton"] #currentGamesGrid .court-meta,
body[data-app="badminton"] #currentGamesGrid .score-grid,
body[data-app="badminton"] #currentGamesGrid .hardship-control,
body[data-app="badminton"] #currentGamesGrid .hardship-row,
body[data-app="badminton"] #currentGamesGrid .hardship-field{
  min-width:0!important;
  max-width:100%!important;
}
body[data-app="badminton"] #currentGamesGrid .court-frame{
  width:100%!important;
  max-width:var(--bl-court-inner-max)!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
body[data-app="badminton"] #currentGamesGrid .court-diagram,
body[data-app="badminton"] #currentGamesGrid .court-diagram svg{
  width:100%!important;
  max-width:100%!important;
}
body[data-app="badminton"] #currentGamesGrid .court-meta{
  display:grid!important;
  justify-items:center!important;
}
body[data-app="badminton"] #currentGamesGrid .score-grid{
  width:100%!important;
  justify-self:center!important;
}
body[data-app="badminton"] #currentGamesGrid .hardship-control{
  width:100%!important;
  justify-self:center!important;
  justify-items:center!important;
}
body[data-app="badminton"] #currentGamesGrid .hardship-row{
  width:100%!important;
  grid-template-columns:minmax(0,1fr)!important;
  justify-content:center!important;
}
body[data-app="badminton"] #currentGamesGrid .hardship-field,
body[data-app="badminton"] #currentGamesGrid .hardship-field label,
body[data-app="badminton"] #currentGamesGrid .hardship-field .bl-select,
body[data-app="badminton"] #currentGamesGrid .hardship-field .bl-select-btn,
body[data-app="badminton"] #currentGamesGrid .hardship-field select[data-hardship]{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
}
@media (min-width:1181px){
  body[data-app="badminton"] #currentGamesGrid{ --bl-court-inner-max: 430px; }
}

/* BASELINE-BADMINTON-MOBILE-FINAL-V3
   Android / narrow viewport layout repair. Desktop keeps existing design. */
@media (max-width: 820px), (hover:none) and (pointer:coarse){
  html[data-app="badminton"],
  body[data-app="badminton"]{width:100%;max-width:100%;overflow-x:hidden!important;font-size:16px!important;line-height:1.45!important;}
  body[data-app="badminton"] .bl-homebar{height:52px!important;padding:7px 8px!important;}
  body[data-app="badminton"] .bl-homebar-inner{width:calc(100% - 10px)!important;gap:6px!important;flex-wrap:nowrap!important;}
  body[data-app="badminton"] .bl-pages-dd{min-width:0!important;flex:1 1 auto!important;}
  body[data-app="badminton"] .bl-pages-btn{max-width:100%!important;min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;font-size:14px!important;padding:8px 10px!important;}
  body[data-app="badminton"] .bl-homebar-right{gap:6px!important;flex:0 0 auto!important;}
  body[data-app="badminton"] .bl-mini-btn{font-size:14px!important;padding:8px 9px!important;}
  body[data-app="badminton"] .bl-scroll{top:52px!important;overflow-x:hidden!important;background-attachment:scroll!important;}
  body[data-app="badminton"] .hero{background-size:cover!important;}
  body[data-app="badminton"] .hero-inner{width:calc(100% - 18px)!important;padding:20px 8px 12px!important;}
  body[data-app="badminton"] .title{font-size:clamp(28px,9vw,40px)!important;line-height:1.05!important;}
  body[data-app="badminton"] .subtitle{font-size:clamp(15px,4.4vw,18px)!important;line-height:1.32!important;}
  body[data-app="badminton"] .tabs{width:calc(100% - 18px)!important;margin:10px auto 0!important;padding:0 8px 10px!important;gap:8px!important;flex-wrap:nowrap!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch!important;scroll-snap-type:x proximity!important;}
  body[data-app="badminton"] .tab,
  body[data-app="badminton"] .gameplan-subtab{flex:0 0 auto!important;font-size:15px!important;padding:10px 12px!important;scroll-snap-align:start!important;min-height:44px!important;}
  body[data-app="badminton"] .wrap{width:calc(100% - 18px)!important;margin:10px auto 28px!important;}
  body[data-app="badminton"] .card{padding:16px!important;border-radius:22px!important;max-width:100%!important;overflow:hidden!important;background:var(--bl-badminton-card-bg)!important;border-color:var(--bl-badminton-border)!important;}
  body[data-app="badminton"] .card h2{font-size:clamp(28px,8.5vw,38px)!important;line-height:1.08!important;}
  body[data-app="badminton"] .card h3{font-size:clamp(21px,6.5vw,28px)!important;}
  body[data-app="badminton"] .session-lead{font-size:17px!important;line-height:1.55!important;}
  body[data-app="badminton"] .system-section-card,
  body[data-app="badminton"] .status-box,
  body[data-app="badminton"] .attendance-panel,
  body[data-app="badminton"] .court-summary,
  body[data-app="badminton"] .score-side{background:var(--bl-badminton-panel-bg)!important;border-color:var(--bl-badminton-border-soft)!important;}
  body[data-app="badminton"] .system-section-card{padding:14px!important;border-radius:18px!important;}
  body[data-app="badminton"] .system-mode-grid,
  body[data-app="badminton"] .plan-controls,
  body[data-app="badminton"] .grid-two,
  body[data-app="badminton"] .grid-three,
  body[data-app="badminton"] .score-grid,
  body[data-app="badminton"] .hardship-row,
  body[data-app="badminton"] .rule-admin-grid,
  body[data-app="badminton"] .player-add-row,
  body[data-app="badminton"] .attendance-grid{grid-template-columns:1fr!important;}
  body[data-app="badminton"] .gameplan-subtabs{display:flex!important;flex-wrap:nowrap!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch!important;gap:8px!important;margin:0 0 12px!important;padding-bottom:4px!important;scrollbar-width:none;}
  body[data-app="badminton"] .gameplan-subtabs::-webkit-scrollbar{display:none;}
  body[data-app="badminton"] label{font-size:15px!important;}
  body[data-app="badminton"] input,
  body[data-app="badminton"] select,
  body[data-app="badminton"] textarea{min-height:46px!important;font-size:16px!important;}
  body[data-app="badminton"] .action,
  body[data-app="badminton"] button.action{min-height:44px!important;font-size:15px!important;max-width:100%;padding:10px 13px!important;}
  body[data-app="badminton"] .row{gap:8px!important;align-items:stretch!important;}
  body[data-app="badminton"] .attendance-actions,
  body[data-app="badminton"] .player-action-row{width:100%;justify-content:flex-start!important;}
  body[data-app="badminton"] .attendance-actions .action,
  body[data-app="badminton"] .player-action-row .action{flex:1 1 140px!important;}
  body[data-app="badminton"] .table-wrap{width:100%!important;max-width:100%!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch!important;border-radius:18px;}
  body[data-app="badminton"] table{min-width:560px!important;font-size:14px!important;}
  body[data-app="badminton"] th,
  body[data-app="badminton"] td{padding:9px 10px!important;}
  body[data-app="badminton"] .games-card .courts-grid,
  body[data-app="badminton"] #currentGamesGrid{grid-template-columns:1fr!important;gap:14px!important;max-width:100%!important;}
  body[data-app="badminton"] .court-card{width:100%!important;max-width:100%!important;padding:14px!important;border-radius:20px!important;overflow:hidden!important;}
  body[data-app="badminton"] .court-frame{max-width:min(100%,340px)!important;}
  body[data-app="badminton"] .court-vs-grid{grid-template-columns:minmax(0,1fr) minmax(44px,58px) minmax(0,1fr)!important;gap:6px!important;}
  body[data-app="badminton"] .court-vs-team{font-size:14px!important;}
  body[data-app="badminton"] .team-name-line{overflow-wrap:anywhere!important;}
  body[data-app="badminton"] .score-side input{max-width:100%!important;width:100%!important;}
  body[data-app="badminton"] .player-pref-stack,
  body[data-app="badminton"] .player-login-input,
  body[data-app="badminton"] .login-select{min-width:0!important;max-width:100%!important;width:100%!important;}
  body[data-app="badminton"] .player-actions{text-align:left!important;white-space:normal!important;}
}
@media (max-width: 440px){
  body[data-app="badminton"] .bl-mini-btn{font-size:13px!important;padding:7px 8px!important;}
  body[data-app="badminton"] .title{font-size:30px!important;}
  body[data-app="badminton"] .tab,
  body[data-app="badminton"] .gameplan-subtab{font-size:14px!important;padding:9px 10px!important;}
  body[data-app="badminton"] .wrap{width:calc(100% - 14px)!important;}
  body[data-app="badminton"] .card{padding:14px!important;}
  body[data-app="badminton"] table{min-width:520px!important;}
}



/* BASELINE-BADMINTON-LILAC-SURFACE-LOCK-20260526massagefix */
body[data-app="badminton"]{
  --bl-badminton-card-bg:linear-gradient(180deg,#ead4fb 0%,#ddbef4 100%);
  --bl-badminton-card-deep-bg:linear-gradient(180deg,#e4c8f7 0%,#d7b4ef 100%);
  --bl-badminton-panel-bg:linear-gradient(180deg,#ecd8fb 0%,#dfc1f3 100%);
  --bl-badminton-panel-soft-bg:linear-gradient(180deg,#f0ddfb 0%,#e5c9f5 100%);
  --bl-badminton-input-bg:linear-gradient(180deg,#ead2fa 0%,#dfc0f2 100%);
  --bl-badminton-tab-bg:linear-gradient(180deg,rgba(222,190,244,0.72),rgba(207,163,235,0.62));
  --bl-badminton-tab-hover-bg:linear-gradient(180deg,rgba(232,207,249,0.84),rgba(215,178,241,0.74));
  --bl-badminton-border:rgba(106,31,179,0.34);
  --bl-badminton-border-soft:rgba(106,31,179,0.24);
  --card-bg:var(--bl-badminton-card-bg);
  --filter-bg:var(--bl-badminton-panel-bg);
  --showall-bg:var(--bl-badminton-input-bg);
  --border:var(--bl-badminton-border);
  --border-2:var(--bl-badminton-border-soft);
  --border-strong:var(--bl-badminton-border-soft);
}
body[data-app="badminton"] .card,
body[data-app="badminton"] .card--system-hero,
body[data-app="badminton"] #gamePlanSetupCard,
body[data-app="badminton"] #currentGamesCard,
body[data-app="badminton"] #attendanceCard,
body[data-app="badminton"] #finishedGamesCard,
body[data-app="badminton"] #standings .card,
body[data-app="badminton"] #roster .card,
body[data-app="badminton"] #history .card{
  background:var(--bl-badminton-card-bg)!important;
  background-image:var(--bl-badminton-card-bg)!important;
  background-color:#ddbef4!important;
  border-color:var(--bl-badminton-border)!important;
  color:var(--ink)!important;
  box-shadow:var(--bl-badminton-shadow,0 22px 48px -34px rgba(74,23,116,0.52))!important;
}
body[data-app="badminton"] .system-section-card,
body[data-app="badminton"] .status-box,
body[data-app="badminton"] .attendance-panel,
body[data-app="badminton"] .attendance-pill,
body[data-app="badminton"] .finished-details,
body[data-app="badminton"] .finished-batch,
body[data-app="badminton"] .court-summary,
body[data-app="badminton"] .score-side,
body[data-app="badminton"] .side-banner,
body[data-app="badminton"] .player-pill,
body[data-app="badminton"] .saved-pill,
body[data-app="badminton"] .rule-admin-card,
body[data-app="badminton"] .rule-admin-item,
body[data-app="badminton"] .rule-zone-pill,
body[data-app="badminton"] .player-pref-toggle,
body[data-app="badminton"] .metric-chip{
  background:var(--bl-badminton-panel-bg)!important;
  background-image:var(--bl-badminton-panel-bg)!important;
  background-color:#dfc1f3!important;
  border-color:var(--bl-badminton-border-soft)!important;
}
body[data-app="badminton"] input:not([type="checkbox"]):not([type="radio"]),
body[data-app="badminton"] select,
body[data-app="badminton"] textarea,
body[data-app="badminton"] .bl-select-btn,
body[data-app="badminton"] .bl-select-menu,
body[data-app="badminton"] .tab[aria-selected="true"],
body[data-app="badminton"] .gameplan-subtab[aria-selected="true"],
body[data-app="badminton"] .action,
body[data-app="badminton"] button.action{
  background:var(--bl-badminton-input-bg)!important;
  background-image:var(--bl-badminton-input-bg)!important;
  background-color:#dfc0f2!important;
  border-color:var(--bl-badminton-border-soft)!important;
  color:var(--ink)!important;
}
body[data-app="badminton"] .card::before,
body[data-app="badminton"] .card::after{
  box-shadow:inset 0 1px 0 rgba(158,82,207,0.18),inset 0 -18px 42px -30px rgba(106,31,179,0.22)!important;
}


/* BASELINE-BADMINTON-LILAC-SOURCE-OF-TRUTH
   Final app-scoped override so Hostinger/localhost cannot diverge by inheriting
   Food/Skin/Games card surfaces. Badminton cards and panels remain lilac. */
html[data-app="badminton"],
body[data-app="badminton"]{
  --bl-badminton-card-bg:linear-gradient(180deg,#ead4fb 0%,#ddbef4 100%)!important;
  --bl-badminton-card-solid:#ddbef4!important;
  --bl-badminton-card-deep-bg:linear-gradient(180deg,#e4c8f7 0%,#d4acef 100%)!important;
  --bl-badminton-panel-bg:linear-gradient(180deg,#ecd8fb 0%,#dfc1f3 100%)!important;
  --bl-badminton-panel-soft-bg:linear-gradient(180deg,#f0ddfb 0%,#e5c9f5 100%)!important;
  --bl-badminton-input-bg:linear-gradient(180deg,#ead2fa 0%,#dfc0f2 100%)!important;
  --bl-badminton-border:rgba(106,31,179,0.34)!important;
  --bl-badminton-border-soft:rgba(106,31,179,0.24)!important;
  --card-bg:var(--bl-badminton-card-bg)!important;
  --showall-bg:var(--bl-badminton-panel-soft-bg)!important;
  --filter-bg:var(--bl-badminton-panel-soft-bg)!important;
  --border:var(--bl-badminton-border)!important;
  --border-2:rgba(106,31,179,0.38)!important;
  --border-strong:var(--bl-badminton-border-soft)!important;
}
html[data-app="badminton"] body[data-app="badminton"] .card,
html[data-app="badminton"] body[data-app="badminton"] main .card,
html[data-app="badminton"] body[data-app="badminton"] .gameplan-panel > .card,
html[data-app="badminton"] body[data-app="badminton"] .section > .card,
html[data-app="badminton"] body[data-app="badminton"] #gamePlanSetupCard,
html[data-app="badminton"] body[data-app="badminton"] #currentGamesCard,
html[data-app="badminton"] body[data-app="badminton"] #attendanceCard,
html[data-app="badminton"] body[data-app="badminton"] #finishedGamesCard{
  background-image:var(--bl-badminton-card-bg)!important;
  background-color:var(--bl-badminton-card-solid)!important;
  border-color:var(--bl-badminton-border)!important;
  color:var(--ink)!important;
  box-shadow:0 22px 48px -34px rgba(74,23,116,0.52)!important;
}
html[data-app="badminton"] body[data-app="badminton"] .system-section-card,
html[data-app="badminton"] body[data-app="badminton"] .status-box,
html[data-app="badminton"] body[data-app="badminton"] .attendance-panel,
html[data-app="badminton"] body[data-app="badminton"] .attendance-pill,
html[data-app="badminton"] body[data-app="badminton"] .finished-details,
html[data-app="badminton"] body[data-app="badminton"] .finished-batch,
html[data-app="badminton"] body[data-app="badminton"] .auto-pair-box,
html[data-app="badminton"] body[data-app="badminton"] .pair-summary-item,
html[data-app="badminton"] body[data-app="badminton"] .rule-admin-card,
html[data-app="badminton"] body[data-app="badminton"] .rule-admin-item,
html[data-app="badminton"] body[data-app="badminton"] .rule-zone-pill,
html[data-app="badminton"] body[data-app="badminton"] .player-pref-toggle,
html[data-app="badminton"] body[data-app="badminton"] .metric-chip,
html[data-app="badminton"] body[data-app="badminton"] .player-pill,
html[data-app="badminton"] body[data-app="badminton"] .saved-pill,
html[data-app="badminton"] body[data-app="badminton"] .side-banner,
html[data-app="badminton"] body[data-app="badminton"] .court-summary,
html[data-app="badminton"] body[data-app="badminton"] .score-side,
html[data-app="badminton"] body[data-app="badminton"] #currentGamesGrid .status-box,
html[data-app="badminton"] body[data-app="badminton"] #currentGamesGrid .court-summary,
html[data-app="badminton"] body[data-app="badminton"] #currentGamesGrid .score-side{
  background-image:var(--bl-badminton-panel-bg)!important;
  background-color:#dfc1f3!important;
  border-color:var(--bl-badminton-border-soft)!important;
}
html[data-app="badminton"] body[data-app="badminton"] input:not([type="checkbox"]):not([type="radio"]),
html[data-app="badminton"] body[data-app="badminton"] select,
html[data-app="badminton"] body[data-app="badminton"] textarea,
html[data-app="badminton"] body[data-app="badminton"] .bl-select-btn,
html[data-app="badminton"] body[data-app="badminton"] .bl-select-menu,
html[data-app="badminton"] body[data-app="badminton"] .bl-select-menu [role="option"]{
  background-image:var(--bl-badminton-input-bg)!important;
  background-color:#e4c8f7!important;
  border-color:var(--bl-badminton-border-soft)!important;
  color:var(--ink)!important;
}
html[data-app="badminton"] body[data-app="badminton"] .card::before,
html[data-app="badminton"] body[data-app="badminton"] .card::after{
  background:none!important;
  background-image:none!important;
  border-color:transparent!important;
}
html[data-app="badminton"] body[data-app="badminton"] .card::after{
  content:""!important;
  display:block!important;
  position:absolute!important;
  inset:0!important;
  pointer-events:none!important;
  border-radius:inherit!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22), inset 0 -18px 42px -30px rgba(106,31,179,.30)!important;
}


/* CLEAN-DEPLOY-BADMINTON-LILAC-LOCK-20260526cleanroot
   Badminton is a lilac system. This final page-scoped layer prevents any warm brown,
   food, skin, massage, games, or global card surface from crossing into Badminton. */
html[data-app="badminton"] body[data-app="badminton"] .card,
html[data-app="badminton"] body[data-app="badminton"] main .card,
html[data-app="badminton"] body[data-app="badminton"] .section > .card,
html[data-app="badminton"] body[data-app="badminton"] .gameplan-panel > .card,
html[data-app="badminton"] body[data-app="badminton"] #gamePlanSetupCard,
html[data-app="badminton"] body[data-app="badminton"] #currentGamesCard,
html[data-app="badminton"] body[data-app="badminton"] #attendanceCard,
html[data-app="badminton"] body[data-app="badminton"] #finishedGamesCard,
html[data-app="badminton"] body[data-app="badminton"] #standings .card,
html[data-app="badminton"] body[data-app="badminton"] #roster .card,
html[data-app="badminton"] body[data-app="badminton"] #history .card{
  background:linear-gradient(180deg,#ead4fb 0%,#ddbef4 100%)!important;
  background-image:linear-gradient(180deg,#ead4fb 0%,#ddbef4 100%)!important;
  background-color:#ddbef4!important;
  border-color:rgba(106,31,179,.34)!important;
  color:#34164a!important;
}
html[data-app="badminton"] body[data-app="badminton"] .system-section-card,
html[data-app="badminton"] body[data-app="badminton"] .status-box,
html[data-app="badminton"] body[data-app="badminton"] .attendance-panel,
html[data-app="badminton"] body[data-app="badminton"] .finished-details,
html[data-app="badminton"] body[data-app="badminton"] .finished-batch,
html[data-app="badminton"] body[data-app="badminton"] .auto-pair-box,
html[data-app="badminton"] body[data-app="badminton"] .pair-summary-item,
html[data-app="badminton"] body[data-app="badminton"] .court-summary,
html[data-app="badminton"] body[data-app="badminton"] .score-side,
html[data-app="badminton"] body[data-app="badminton"] .rule-admin-card,
html[data-app="badminton"] body[data-app="badminton"] .rule-admin-item{
  background:linear-gradient(180deg,#ecd8fb 0%,#dfc1f3 100%)!important;
  background-image:linear-gradient(180deg,#ecd8fb 0%,#dfc1f3 100%)!important;
  background-color:#dfc1f3!important;
  border-color:rgba(106,31,179,.24)!important;
}


/* BASELINE-SOLID-SURFACE-CONTRACT-20260527
   Page gradients stay on the page/banner. Cards, recipe controls, account fields,
   panel controls, and sliders use solid opaque colours sampled from each page palette. */
body[data-app="home"]{
  --bl-surface-card-solid:#3d3d43;
  --bl-surface-panel-solid:#47474d;
  --bl-surface-control-solid:#56565f;
  --bl-surface-input-solid:#4f4f58;
  --bl-surface-active-solid:#6a6a74;
  --bl-surface-ink:#f4efe7;
  --bl-slider-track-solid:#47474d;
  --bl-slider-thumb-solid:#9b9baa;
  --bl-slider-border-solid:#2b2b30;
  --bl-home-account-gradient:linear-gradient(90deg,#2f3035 0%,#50515a 30%,#757680 50%,#50515a 70%,#2f3035 100%);
}
body[data-app="food"]{
  --bl-surface-card-solid:#f5b84a;
  --bl-surface-recipe-card-solid:#ffc04d;
  --bl-surface-panel-solid:#e98225;
  --bl-surface-control-solid:#ee942d;
  --bl-surface-input-solid:#ffb13b;
  --bl-surface-active-solid:#c92727;
  --bl-surface-ink:#1b0b09;
  --bl-slider-track-solid:#b11226;
  --bl-slider-thumb-solid:#ffb000;
  --bl-slider-border-solid:#7a1a21;
}
body[data-app="skin"]{
  --bl-surface-card-solid:#d99a82;
  --bl-surface-recipe-card-solid:#d89178;
  --bl-surface-panel-solid:#c87962;
  --bl-surface-control-solid:#cf8167;
  --bl-surface-input-solid:#e0aa94;
  --bl-surface-active-solid:#b8644d;
  --bl-surface-ink:#2b2b28;
  --bl-slider-track-solid:#b8644d;
  --bl-slider-thumb-solid:#edd2c4;
  --bl-slider-border-solid:#7a4a3a;
}
body[data-app="massage"]{
  --bl-surface-card-solid:#aa7854;
  --bl-surface-recipe-card-solid:#b98159;
  --bl-surface-panel-solid:#b7855f;
  --bl-surface-control-solid:#b98159;
  --bl-surface-input-solid:#875d40;
  --bl-surface-active-solid:#c58d62;
  --bl-surface-ink:#24140b;
  --bl-slider-track-solid:#775036;
  --bl-slider-thumb-solid:#d2a078;
  --bl-slider-border-solid:#2f1a0e;
}
body[data-app="fitness"]{
  --bl-surface-card-solid:#130b10;
  --bl-surface-recipe-card-solid:#1d1016;
  --bl-surface-panel-solid:#1d1016;
  --bl-surface-control-solid:#701725;
  --bl-surface-input-solid:#2a1118;
  --bl-surface-active-solid:#9b1a2d;
  --bl-surface-ink:#f6eaf0;
  --bl-slider-track-solid:#2a1118;
  --bl-slider-thumb-solid:#9b1a2d;
  --bl-slider-border-solid:#f6eaf0;
}
body[data-app="badminton"]{
  --bl-surface-card-solid:#efdcfb;
  --bl-surface-recipe-card-solid:#e7cff6;
  --bl-surface-panel-solid:#e1c4f4;
  --bl-surface-control-solid:#d7b7ee;
  --bl-surface-input-solid:#efdcfb;
  --bl-surface-active-solid:#c29cff;
  --bl-surface-ink:#2c123f;
  --bl-slider-track-solid:#6a1fb3;
  --bl-slider-thumb-solid:#f08b2f;
  --bl-slider-border-solid:#2c123f;
}
body[data-app="games"]{
  --bl-surface-card-solid:#a5714d;
  --bl-surface-recipe-card-solid:#b9825c;
  --bl-surface-panel-solid:#b9825c;
  --bl-surface-control-solid:#bd875f;
  --bl-surface-input-solid:#7f5538;
  --bl-surface-active-solid:#d1a67e;
  --bl-surface-ink:#24140b;
  --bl-slider-track-solid:#623f28;
  --bl-slider-thumb-solid:#d8af86;
  --bl-slider-border-solid:#24140b;
}

/* Index header Account button: deliberately grey-gradient, tied to the grey header, with clear white text. */
body[data-app="home"] #bl-auth-toggle{
  background:var(--bl-home-account-gradient)!important;
  background-image:var(--bl-home-account-gradient)!important;
  background-color:#50515a!important;
  color:#ffffff!important;
  -webkit-text-fill-color:#ffffff!important;
  border-color:#9a9aa6!important;
  box-shadow:0 14px 28px -22px rgba(0,0,0,.55)!important;
}
body[data-app="home"] #bl-auth-toggle .bl-btn-label,
body[data-app="home"] #bl-auth-toggle .bl-btn-icon{color:#ffffff!important;-webkit-text-fill-color:#ffffff!important;}

/* Cards and panels: solid opaque surfaces on system pages, never translucent or gradient-filled. */
body:not([data-app="home"]) .card,
body:not([data-app="home"]) .method-card,
body:not([data-app="home"]) .logic-card,
body:not([data-app="home"]) .session-card,
body:not([data-app="home"]) .summary-box,
body:not([data-app="home"]) .progress-shell,
body:not([data-app="home"]) .empty-box,
body:not([data-app="home"]) .skill-item,
body:not([data-app="home"]) .game-summary-details,
body:not([data-app="home"]) .game-summary-body,
body:not([data-app="home"]) .formula-box,
body:not([data-app="home"]) .word-box,
body:not([data-app="home"]) .ninja-box,
body:not([data-app="home"]) .trackcoin-stat-card,
body:not([data-app="home"]) .realm-window,
body:not([data-app="home"]) .realm-drawer,
body:not([data-app="home"]) .realm-spirit-card,
body:not([data-app="home"]) .realm-stat-chip,
body:not([data-app="home"]) .realm-manage-card,
body:not([data-app="home"]) .system-section-card,
body:not([data-app="home"]) .system-panel,
body:not([data-app="home"]) .court-card,
body:not([data-app="home"]) .status-box,
body:not([data-app="home"]) .diet-log-panel,
body:not([data-app="home"]) .diet-food-row,
body:not([data-app="home"]) .diet-entry-card,
body:not([data-app="home"]) .diet-selected-card,
body:not([data-app="home"]) .diet-kpi-card,
body:not([data-app="home"]) .diet-mini-stat{
  background-image:none!important;
  background-color:var(--bl-surface-card-solid)!important;
  color:var(--ink,var(--bl-surface-ink,#111))!important;
  opacity:1!important;
  mix-blend-mode:normal!important;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
}

/* Recipe area: warmer/deeper solid cards and solid controls, no internal gradients. */
body[data-app] #recipes .card,
body[data-app] #recipes .recipe.card,
body[data-app] #recipes-landing.card,
body[data-app] #recipes .recipe-page,
body[data-app] #recipes .side-recipe-nav,
body[data-app] #recipes .scale-tools,
body[data-app] .recipe.card{
  background-image:none!important;
  background-color:var(--bl-surface-recipe-card-solid,var(--bl-surface-card-solid))!important;
  opacity:1!important;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
}
body[data-app] #recipes .multiplier,
body[data-app] #recipes .filter-bar,
body[data-app] #recipes .glide-controller,
body[data-app] #recipes .scale-block,
body[data-app] #recipes .variant-switcher,
body[data-app] #recipes .recipe-controls{
  background-image:none!important;
  background-color:var(--bl-surface-panel-solid)!important;
  border-color:var(--border,var(--showall-border,rgba(0,0,0,.18)))!important;
  opacity:1!important;
  box-shadow:none!important;
}
body[data-app] #recipes .back-btn,
body[data-app] #recipes .print-btn,
body[data-app] #recipes .scale-toggle,
body[data-app] #recipes .scale-apply,
body[data-app] #recipes .multiplier button,
body[data-app] #recipes .ingredient-recipe-link a,
body[data-app] #recipes .action,
body[data-app] #recipes button,
body[data-app] #recipes .bl-number-stepper .bl-step,
body[data-app] #recipes .bl-select-btn,
body[data-app] #recipes .bl-select-menu [role="option"]{
  background-image:none!important;
  background-color:var(--bl-surface-control-solid)!important;
  color:var(--ink,var(--bl-surface-ink,#111))!important;
  -webkit-text-fill-color:currentColor!important;
  border-color:var(--showall-border,var(--border,rgba(0,0,0,.18)))!important;
  opacity:1!important;
  box-shadow:none!important;
}
body[data-app] #recipes input:not([type="range"]),
body[data-app] #recipes select,
body[data-app] #recipes textarea,
body[data-app] #recipes .scale-tools input,
body[data-app] #recipes .scale-tools select,
body[data-app] #recipes .multiplier input,
body[data-app] #recipes .multiplier select{
  background-image:none!important;
  background-color:var(--bl-surface-input-solid)!important;
  color:var(--ink,var(--bl-surface-ink,#111))!important;
  -webkit-text-fill-color:currentColor!important;
  border-color:var(--border-2,var(--border,rgba(0,0,0,.18)))!important;
  opacity:1!important;
  box-shadow:none!important;
}
body[data-app] #recipes .bl-select-menu,
body[data-app] #recipes .scale-tools{
  background-image:none!important;
  background-color:var(--bl-surface-panel-solid)!important;
  color:var(--ink,var(--bl-surface-ink,#111))!important;
}

/* Account + Binaural flyouts: solid panels and solid fields/buttons from current page palette. */
body[data-app] #bl-auth-flyout .card,
body[data-app] #bl-beats-flyout .card,
body[data-app] .bl-flyout .card{
  background-image:none!important;
  background-color:var(--bl-surface-card-solid)!important;
  color:var(--ink,var(--bl-surface-ink,#111))!important;
  opacity:1!important;
  mix-blend-mode:normal!important;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
}
body[data-app] #bl-auth-flyout .bl-auth-input-shell,
body[data-app] #bl-auth-flyout input:not([type="range"]),
body[data-app] #bl-auth-flyout select,
body[data-app] #bl-auth-flyout textarea,
body[data-app] #bl-beats-flyout input:not([type="range"]),
body[data-app] #bl-beats-flyout select,
body[data-app] #bl-beats-flyout textarea,
body[data-app] .bl-flyout input:not([type="range"]),
body[data-app] .bl-flyout select,
body[data-app] .bl-flyout textarea{
  background-image:none!important;
  background-color:var(--bl-surface-input-solid)!important;
  color:var(--ink,var(--bl-surface-ink,#111))!important;
  -webkit-text-fill-color:currentColor!important;
  caret-color:currentColor!important;
  border-color:var(--border-2,var(--border,rgba(0,0,0,.18)))!important;
  opacity:1!important;
  box-shadow:none!important;
}
body[data-app] #bl-auth-flyout .bl-auth-input-shell > input,
body[data-app] #bl-auth-flyout .bl-auth-input-shell > input:not([type="range"]){
  background:transparent!important;
  background-image:none!important;
  background-color:transparent!important;
}
body[data-app] #bl-auth-flyout .bl-mini-btn,
body[data-app] #bl-auth-flyout button,
body[data-app] #bl-beats-flyout .bl-mini-btn,
body[data-app] #bl-beats-flyout button,
body[data-app] .bl-flyout .bl-select-btn,
body[data-app] .bl-flyout .bl-select-menu [role="option"]{
  background-image:none!important;
  background-color:var(--bl-surface-control-solid)!important;
  color:var(--ink,var(--bl-surface-ink,#111))!important;
  -webkit-text-fill-color:currentColor!important;
  border-color:var(--showall-border,var(--border,rgba(0,0,0,.18)))!important;
  opacity:1!important;
  box-shadow:none!important;
}
body[data-app] .bl-flyout .bl-select-menu{
  background-image:none!important;
  background-color:var(--bl-surface-panel-solid)!important;
  color:var(--ink,var(--bl-surface-ink,#111))!important;
}

/* General page controls: solid tones from the page palette, not gradients. */
body:not([data-app="home"]) input:not([type="range"]),
body:not([data-app="home"]) select,
body:not([data-app="home"]) textarea,
body:not([data-app="home"]) .text-input,
body:not([data-app="home"]) .diet-static-value{
  background-image:none!important;
  background-color:var(--bl-surface-input-solid)!important;
  color:var(--ink,var(--bl-surface-ink,#111))!important;
  -webkit-text-fill-color:currentColor!important;
  border-color:var(--border-2,var(--border,rgba(0,0,0,.18)))!important;
}
body:not([data-app="home"]) .action,
body:not([data-app="home"]) button.action,
body:not([data-app="home"]) .tab,
body:not([data-app="home"]) .game-toggle-btn,
body:not([data-app="home"]) .tier-btn,
body:not([data-app="home"]) .stat-pill,
body:not([data-app="home"]) .trait-chip,
body:not([data-app="home"]) .solution-box,
body:not([data-app="home"]) .clue-bar,
body:not([data-app="home"]) .number-chip,
body:not([data-app="home"]) .letter-cell,
body:not([data-app="home"]) .metric-chip,
body:not([data-app="home"]) .gameplan-subtab,
body:not([data-app="home"]) .diet-inline-note,
body:not([data-app="home"]) .diet-entry-macros span{
  background-image:none!important;
  background-color:var(--bl-surface-control-solid)!important;
  color:var(--ink,var(--bl-surface-ink,#111))!important;
  -webkit-text-fill-color:currentColor!important;
  border-color:var(--showall-border,var(--border,rgba(0,0,0,.18)))!important;
}
body:not([data-app="home"]) .tab[aria-selected="true"],
body:not([data-app="home"]) .game-toggle-btn.is-active,
body:not([data-app="home"]) .tier-btn.active,
body:not([data-app="home"]) .gameplan-subtab[aria-selected="true"]{
  background-image:none!important;
  background-color:var(--bl-surface-active-solid)!important;
}

/* Sliders: remove browser blue/white defaults and use page-local solid colours. */
body[data-app] input[type="range"]{
  -webkit-appearance:none!important;
  appearance:none!important;
  width:100%!important;
  height:24px!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  background-image:none!important;
  color:var(--bl-slider-thumb-solid)!important;
  accent-color:var(--bl-slider-thumb-solid)!important;
  cursor:pointer!important;
}
body[data-app] input[type="range"]::-webkit-slider-runnable-track{
  height:12px!important;
  border-radius:999px!important;
  background:var(--bl-slider-track-solid)!important;
  border:1px solid var(--bl-slider-border-solid)!important;
  box-shadow:none!important;
}
body[data-app] input[type="range"]::-webkit-slider-thumb{
  -webkit-appearance:none!important;
  appearance:none!important;
  width:24px!important;
  height:24px!important;
  margin-top:-7px!important;
  border-radius:50%!important;
  border:2px solid var(--bl-slider-border-solid)!important;
  background:var(--bl-slider-thumb-solid)!important;
  box-shadow:none!important;
}
body[data-app] input[type="range"]::-moz-range-track{
  height:12px!important;
  border-radius:999px!important;
  background:var(--bl-slider-track-solid)!important;
  border:1px solid var(--bl-slider-border-solid)!important;
  box-shadow:none!important;
}
body[data-app] input[type="range"]::-moz-range-thumb{
  width:24px!important;
  height:24px!important;
  border-radius:50%!important;
  border:2px solid var(--bl-slider-border-solid)!important;
  background:var(--bl-slider-thumb-solid)!important;
  box-shadow:none!important;
}
body[data-app] input[type="range"]::-moz-range-progress{
  height:12px!important;
  border-radius:999px!important;
  background:var(--bl-surface-active-solid)!important;
}
body[data-app] input::placeholder,
body[data-app] textarea::placeholder{
  color:color-mix(in srgb, var(--ink,var(--bl-surface-ink,#111)) 70%, transparent)!important;
  -webkit-text-fill-color:color-mix(in srgb, var(--ink,var(--bl-surface-ink,#111)) 70%, transparent)!important;
  opacity:1!important;
}
body[data-app] input:-webkit-autofill,
body[data-app] input:-webkit-autofill:hover,
body[data-app] input:-webkit-autofill:focus,
body[data-app] textarea:-webkit-autofill,
body[data-app] select:-webkit-autofill{
  -webkit-text-fill-color:var(--ink,var(--bl-surface-ink,#111))!important;
  box-shadow:0 0 0 1000px var(--bl-surface-input-solid) inset!important;
  transition:background-color 99999s ease-out 0s!important;
}
/* END BASELINE-SOLID-SURFACE-CONTRACT-20260527 */

