.icon-btn{border:1px solid var(--border);background:var(--bg-surface);color:var(--text-primary);width:34px;height:34px;border-radius:var(--radius-control);cursor:pointer;box-shadow:var(--shadow-soft);backdrop-filter:blur(10px);font-weight:950;display:inline-flex;align-items:center;justify-content:center}.icon-btn:hover,.btn:hover,.nav-item:hover{transform:translateY(-1px)}.pill,.status-pill{display:inline-flex;align-items:center;gap:5px;padding:6px 9px;border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--bg-surface);font-size:.72rem;font-weight:900;white-space:nowrap;box-shadow:var(--shadow-soft)}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow);padding:12px}.card-soft{background:var(--bg-soft-2);border:1px solid var(--border);border-radius:9px;padding:9px}.section-kicker{font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--text-secondary);font-weight:950}.page-title{font-size:1.36rem;line-height:1.03;font-weight:950;letter-spacing:-.045em;margin:0}.page-subtitle{color:var(--text-secondary);margin-top:2px;font-size:.82rem;line-height:1.32}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:38px;padding:0 12px;border-radius:var(--radius-control);border:1px solid transparent;font-weight:950;cursor:pointer;letter-spacing:-.015em;transition:.15s ease;text-transform:none}.btn-primary{background:linear-gradient(135deg,var(--brand-green-2),var(--brand-green));color:#fff;box-shadow:0 8px 15px rgba(6,63,51,.18)}.btn-primary::after{content:"";width:16px;height:2px;background:var(--brand-lime);display:inline-block;transform:skewX(-25deg);opacity:.95}.btn-secondary{background:var(--bg-surface);color:var(--text-primary);border-color:var(--border-strong);box-shadow:var(--shadow-soft)}.btn-muted,.btn[disabled]{background:var(--bg-soft-2);color:var(--text-primary);border-color:var(--border);box-shadow:none;cursor:not-allowed}.btn.full{width:100%}.btn-row{display:flex;gap:7px;flex-wrap:wrap}.btn-mini{min-height:30px;padding:0 9px;font-size:.72rem}.hero-focus{display:grid;gap:8px;padding:12px;background:linear-gradient(135deg,var(--bg-card) 0%,rgba(255,255,255,.70) 60%,var(--accent-soft) 100%);border-left:4px solid var(--brand-lime)}html[data-theme="dark"] .hero-focus{background:linear-gradient(135deg,var(--bg-card),rgba(183,255,53,.06))}.hero-title-row,.eyebrow-row,.event-head{display:flex;align-items:flex-start;justify-content:space-between;gap:9px}.hero-icon,.title-icon{width:32px;height:32px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:var(--accent-soft);border:1px solid var(--border-strong);font-weight:950}.meta-list{display:grid;gap:5px;color:var(--text-secondary);font-size:.82rem}.meta-line{display:flex;align-items:center;gap:7px}.meta-icon,.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;color:var(--text-tertiary)}.btn-icon{color:currentColor}.chip-row{display:flex;gap:6px;overflow:auto;padding-bottom:3px;scrollbar-width:none}.chip{display:inline-flex;align-items:center;justify-content:center;padding:7px 10px;border-radius:var(--radius-control);border:1px solid var(--border-strong);background:var(--bg-surface);font-weight:950;white-space:nowrap;cursor:pointer;color:var(--text-primary);box-shadow:var(--shadow-soft);font-size:.78rem}.chip.active{background:var(--brand-green);color:#fff;border-color:var(--brand-green);box-shadow:inset 0 -3px 0 rgba(183,255,53,.50)}.event-list{display:grid;gap:8px}.event-card{display:grid;gap:8px;position:relative;overflow:hidden}.event-card::before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:linear-gradient(var(--brand-lime),var(--brand-orange));opacity:.95}.event-name{font-size:.98rem;font-weight:950;line-height:1.13;letter-spacing:-.025em}.badge{display:inline-flex;align-items:center;padding:5px 8px;border-radius:8px;font-size:.60rem;font-weight:950;text-transform:uppercase;letter-spacing:.045em}.badge-neutral{background:var(--bg-soft);color:var(--text-primary)}.badge-checkin{background:var(--info-bg);color:var(--info-text)}.badge-verified{background:var(--success-bg);color:var(--success-text)}.badge-absent{background:var(--danger-bg);color:var(--danger-text)}.badge-pending{background:var(--warning-bg);color:var(--warning-text)}.community-chip{display:inline-flex;width:max-content;align-items:center;padding:4px 7px;border-radius:8px;background:var(--accent-soft);font-size:.70rem;font-weight:950;color:var(--text-primary)}.empty-state{display:grid;gap:6px;place-items:center;text-align:center;padding:14px 10px;color:var(--text-secondary)}.empty-state:before{content:"🎾";font-size:1.4rem;line-height:1}.empty-state strong{color:var(--text-primary);font-size:.94rem}.list-simple{display:grid;gap:7px}.simple-row{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--border)}.simple-row:last-child{border-bottom:0}.participant-list{display:grid;gap:7px}.participant-row{display:grid;grid-template-columns:1fr auto;gap:7px;align-items:center;padding:9px;border:1px solid var(--border);border-radius:10px;background:var(--bg-soft-2)}.participant-name{font-weight:950;font-size:.9rem}.participant-meta{display:flex;gap:5px;flex-wrap:wrap;margin-top:5px}.participant-actions{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}.participant-actions .btn{min-height:32px;padding:0 9px;font-size:.78rem}.search-input,.field-input{width:100%;min-height:40px;border-radius:var(--radius-control);border:1px solid var(--border-strong);background:var(--bg-surface);padding:9px 10px;color:var(--text-primary);box-shadow:var(--shadow-soft)}.field-block{display:grid;gap:6px}.field-label{font-size:.78rem;font-weight:950;color:var(--text-secondary)}textarea.field-input{min-height:96px;resize:vertical}.modal-shell{position:fixed;inset:0;background:rgba(0,0,0,.38);display:flex;align-items:flex-end;justify-content:center;padding:12px;z-index:70;backdrop-filter:blur(4px)}.modal-card{width:min(100%,440px);max-height:90vh;overflow:auto}.modal-wide{width:min(100%,720px)}.modal-narrow{width:min(100%,420px)}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px}.modal-head h2{margin:.05rem 0 0;font-size:1.08rem}.modal-form-grid{display:grid;gap:10px}.modal-form-2col{grid-template-columns:1fr 1fr}.field-span-2{grid-column:1/-1}.modal-actions{justify-content:flex-end}.activity-list{display:grid;gap:7px}.activity-item{display:grid;grid-template-columns:1fr auto;gap:9px;padding:9px;border:1px solid var(--border);border-radius:10px;background:var(--bg-card);box-shadow:var(--shadow-soft)}.activity-copy strong{display:block;margin-bottom:2px}.activity-time{text-align:right;color:var(--text-secondary);font-size:.72rem}.nav-item{height:45px;border-radius:9px;border:1px solid var(--border-strong);background:rgba(255,255,255,.94);color:var(--text-secondary);font-weight:950;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;box-shadow:0 7px 16px rgba(6,63,51,.08);transition:.15s ease;position:relative;overflow:hidden;text-transform:uppercase}.nav-item::before{content:"";position:absolute;inset:auto 8px 5px 8px;height:3px;background:transparent;transform:skewX(-25deg)}.nav-item.active{background:linear-gradient(135deg,#063f33,#087256);color:#fff;border-color:#063f33;box-shadow:0 11px 20px rgba(6,63,51,.24)}.nav-item.active::before{background:var(--brand-lime)}html[data-theme="dark"] .nav-item{background:rgba(13,33,27,.95)}.nav-icon{font-size:.92rem;line-height:1}.nav-label{font-size:.57rem;line-height:1;letter-spacing:.04em}.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:76px;background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border);border-radius:10px;padding:9px 12px;box-shadow:var(--shadow);z-index:100;max-width:calc(100% - 28px)}.debug-only{display:none}body.debug-mode .debug-only{display:initial}body.modal-open{overflow:hidden}.debug-entry{display:none!important}body.debug-access .debug-entry{display:inline-flex!important}.debug-screen{gap:8px}.debug-hero-card{display:grid;gap:9px;background:linear-gradient(135deg,var(--bg-card),var(--bg-soft));border-left:4px solid var(--brand-orange)}.debug-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.debug-summary-grid .mini-stat{display:grid;gap:0;text-align:center;justify-content:center;padding:7px 5px;border-radius:9px;background:var(--bg-surface);border:1px solid var(--border)}.debug-summary-grid .mini-stat strong{font-size:1rem;color:var(--text-primary)}.debug-summary-grid .mini-stat span{font-size:.55rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);font-weight:950}.debug-summary-grid .mini-stat.pass{background:var(--success-bg)}.debug-summary-grid .mini-stat.warn{background:var(--warning-bg)}.debug-summary-grid .mini-stat.fail{background:var(--danger-bg)}.debug-result-list{display:grid;gap:7px}.debug-result{border:1px solid var(--border);border-radius:10px;background:var(--bg-card);box-shadow:var(--shadow-soft);padding:9px;display:grid;gap:5px}.debug-result.pass{border-left:4px solid var(--success-text)}.debug-result.warn{border-left:4px solid var(--warning-text)}.debug-result.fail{border-left:4px solid var(--danger-text)}.debug-result-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.debug-result-head strong{display:block;font-size:.86rem}.debug-result-head span:not(.status-chip){display:block;color:var(--text-secondary);font-size:.64rem;margin-top:2px;word-break:break-all}.status-chip{display:inline-flex;align-items:center;justify-content:center;min-width:42px;padding:4px 7px;border-radius:8px;font-size:.60rem;font-weight:950;text-transform:uppercase}.status-pass{background:var(--success-bg);color:var(--success-text)}.status-warn{background:var(--warning-bg);color:var(--warning-text)}.status-fail{background:var(--danger-bg);color:var(--danger-text)}.debug-suggest{font-size:.70rem;color:var(--text-secondary)}.debug-child-list{display:grid;gap:5px}.debug-child{border:1px solid var(--border);border-radius:9px;padding:7px;background:var(--bg-soft-2);display:grid;gap:3px}.debug-child strong{font-size:.76rem}.debug-child span,.debug-child em{font-size:.68rem;color:var(--text-secondary);font-style:normal}.lang-switch{display:inline-flex;gap:3px}.lang-switch button{width:34px;height:34px;border-radius:9px;border:1px solid var(--border);background:var(--bg-surface);font-size:.68rem;font-weight:950;color:var(--text-primary)}.lang-switch button.active{background:var(--brand-green);color:#fff;border-color:var(--brand-green)}

/* phase 2c event clarity + participant flow */
.event-detail-screen{gap:10px}.event-identity-card{background:linear-gradient(135deg,var(--bg-card),var(--bg-soft-2));border-left:4px solid var(--brand-lime)}.user-status-panel{position:sticky;top:72px;z-index:9;display:grid;gap:10px;border:1px solid var(--border-strong);background:linear-gradient(135deg,var(--bg-card),var(--accent-soft));box-shadow:0 18px 42px rgba(6,63,51,.14)}.status-panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.status-title{font-size:1.22rem;font-weight:950;line-height:1.05;letter-spacing:-.035em}.status-orb{width:42px;height:42px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-weight:950;background:var(--bg-surface);border:1px solid var(--border-strong);box-shadow:var(--shadow-soft)}.status-orb.verified{background:var(--success-bg);color:var(--success-text)}.status-orb.checked_in{background:var(--info-bg);color:var(--info-text)}.status-orb.joined{background:var(--warning-bg);color:var(--warning-text)}.status-progress{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.progress-step{position:relative;display:grid;gap:5px;place-items:center;text-align:center;padding:8px 4px;border:1px solid var(--border);border-radius:10px;background:var(--bg-surface);color:var(--text-secondary);font-size:.66rem;font-weight:950}.progress-step span{width:20px;height:20px;border-radius:999px;border:2px solid var(--border-strong);display:flex;align-items:center;justify-content:center;background:var(--bg-card);font-size:.65rem}.progress-step.done,.progress-step.active{color:var(--text-primary);border-color:var(--brand-green)}.progress-step.done span,.progress-step.active span{background:var(--brand-green);border-color:var(--brand-green);color:#fff}.progress-step.active{box-shadow:inset 0 -3px 0 var(--brand-lime)}.inline-message{border:1px solid var(--border);background:var(--bg-surface);border-radius:10px;padding:8px 10px;color:var(--text-secondary);font-size:.78rem}.inline-message.error{background:var(--danger-bg);color:var(--danger-text);border-color:rgba(170,53,38,.22)}.participant-flow-card{display:grid;gap:10px}.participant-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.participant-summary-grid div{display:grid;gap:0;text-align:center;padding:8px 4px;border-radius:10px;background:var(--bg-soft-2);border:1px solid var(--border)}.participant-summary-grid strong{font-size:1.05rem;line-height:1;color:var(--text-primary)}.participant-summary-grid span{font-size:.58rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);font-weight:950}.participant-row.flow-verified{border-left:4px solid var(--success-text)}.participant-row.flow-checked_in{border-left:4px solid var(--info-text)}.participant-row.flow-joined{border-left:4px solid var(--warning-text)}.participant-row.flow-absent{border-left:4px solid var(--danger-text)}.onboarding-card{display:grid;gap:10px;background:linear-gradient(135deg,var(--bg-card),var(--bg-soft));border-left:4px solid var(--brand-orange)}.onboarding-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.onboarding-steps div{display:grid;gap:3px;padding:9px;border-radius:12px;background:var(--bg-surface);border:1px solid var(--border)}.onboarding-steps span{width:24px;height:24px;border-radius:999px;background:var(--brand-green);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:950;font-size:.72rem}.onboarding-steps strong{font-size:.78rem}.onboarding-steps small{color:var(--text-secondary);font-size:.68rem}.btn.is-loading{position:relative;pointer-events:none;opacity:.78}.btn.is-loading::before{content:"";width:13px;height:13px;border:2px solid currentColor;border-right-color:transparent;border-radius:999px;animation:spin2c .8s linear infinite}@keyframes spin2c{to{transform:rotate(360deg)}}@media(max-width:560px){.user-status-panel{top:64px}.status-progress,.participant-summary-grid,.onboarding-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.participant-row{grid-template-columns:1fr}.participant-actions{justify-content:flex-start}}

/* phase 2c.1 clarity fix */
.clarity-status-panel{border:1px solid var(--border-strong);border-left:6px solid var(--brand-lime);background:linear-gradient(135deg,var(--bg-card),rgba(183,255,53,.16));box-shadow:0 20px 48px rgba(6,63,51,.16);padding:16px;gap:12px}
.clarity-status-panel .status-title{font-size:1.45rem;letter-spacing:-.04em;text-transform:none;color:var(--text-primary)}
.clarity-next-step{margin-top:6px;padding:9px 10px;border-radius:12px;background:rgba(255,255,255,.7);border:1px solid var(--border);font-weight:850;color:var(--text-primary)}
.current-state-banner{display:flex;gap:8px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:10px 12px;border-radius:13px;background:var(--bg-surface);border:1px solid var(--border-strong)}
.current-state-banner strong{font-size:.84rem;color:var(--text-primary)}
.btn-clarity-main{min-height:46px;font-size:.94rem;box-shadow:0 12px 24px rgba(6,63,51,.18)}
.btn-info{background:var(--info-bg)!important;color:var(--info-text)!important;border-color:rgba(29,78,216,.22)!important}
.btn-success{background:var(--success-bg)!important;color:var(--success-text)!important;border-color:rgba(8,112,68,.22)!important}
.clarity-progress{padding:9px;border-radius:14px;background:rgba(255,255,255,.58);border:1px solid var(--border)}
.clarity-progress .progress-step{min-height:64px;text-transform:uppercase;letter-spacing:.04em}
.clarity-progress .progress-step span{font-size:.75rem;font-weight:950}
.clarity-event-card .event-next-copy{font-size:.74rem;color:var(--text-secondary);font-weight:850;margin-top:3px}
.clarity-event-card .btn.full{min-height:42px;font-size:.86rem}
.stage-checked_in{border-left-color:var(--info-text)}
.stage-verified{border-left-color:var(--success-text)}
.stage-cancelled,.stage-absent{border-left-color:var(--danger-text)}
.participant-flow-card .chip-row{position:sticky;top:66px;z-index:5;background:var(--bg-main);padding:6px 0}
@media(max-width:560px){.clarity-status-panel{position:sticky;top:58px}.clarity-status-panel .status-title{font-size:1.25rem}.current-state-banner{display:grid}.btn-clarity-main{width:100%}}

/* phase 2c.2 interaction feel + cancel flow */
.event-action-stack{display:grid;gap:7px}
.btn-danger-soft{background:var(--danger-bg);color:var(--danger-text);border-color:rgba(170,53,38,.22);box-shadow:var(--shadow-soft)}
.btn-danger-soft:hover{filter:brightness(.99)}
.cancel-guidance{width:100%;border:1px solid rgba(171,93,0,.25);background:var(--warning-bg);color:var(--warning-text);border-radius:12px;padding:9px 10px;font-size:.76rem;font-weight:850;line-height:1.35}
.mini-guidance{border:1px solid var(--border);background:var(--bg-soft-2);color:var(--text-secondary);border-radius:10px;padding:7px 9px;font-size:.70rem;font-weight:850;text-align:center}
.btn:active,.chip:active,.nav-item:active{transform:translateY(1px) scale(.99)}
.toast{animation:toastIn2c2 .18s ease-out}
.modal-shell{animation:fadeIn2c2 .18s ease-out}.modal-card{animation:modalUp2c2 .2s ease-out}
@keyframes toastIn2c2{from{opacity:0;transform:translateX(-50%) translateY(10px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}
@keyframes fadeIn2c2{from{opacity:0}to{opacity:1}}
@keyframes modalUp2c2{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}


/* phase 2c.2b global standard dialog + cancelled state refresh fix */
.global-dialog-shell{align-items:center;padding:18px;background:rgba(9,22,17,.48);backdrop-filter:blur(7px)}
.global-dialog-card{display:grid;gap:12px;padding:18px;border-radius:18px;border:1px solid var(--border-strong);box-shadow:0 22px 70px rgba(6,63,51,.22);background:var(--bg-card)}
.global-dialog-icon{width:44px;height:44px;border-radius:16px;display:inline-flex;align-items:center;justify-content:center;background:var(--bg-soft);border:1px solid var(--border-strong);font-weight:950;font-size:1.15rem;color:var(--text-primary)}
.global-dialog-icon.danger{background:var(--danger-bg);color:var(--danger-text);border-color:rgba(190,52,37,.22)}
.global-dialog-copy h2{margin:2px 0 6px;font-size:1.14rem;line-height:1.08;letter-spacing:-.04em;color:var(--text-primary)}
.global-dialog-copy p{margin:0;color:var(--text-secondary);font-size:.86rem;line-height:1.45}
.global-dialog-note{margin-top:10px;border:1px solid var(--border);background:var(--bg-soft-2);border-radius:12px;padding:10px;color:var(--text-secondary);font-size:.78rem;line-height:1.4}
.global-dialog-actions{justify-content:flex-end;margin-top:2px}.global-dialog-actions .btn{min-width:112px}
@media(max-width:560px){.global-dialog-shell{align-items:flex-end}.global-dialog-card{width:100%;border-radius:20px 20px 16px 16px}.global-dialog-actions{display:grid;grid-template-columns:1fr 1fr}.global-dialog-actions .btn{width:100%;min-width:0}}

/* phase 2c.3 role visibility + host event grouping */
.role-badge-row{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}
.badge-role-host{background:var(--warning-bg);color:var(--warning-text);border:1px solid rgba(171,93,0,.18)}
.badge-role-player{background:var(--info-bg);color:var(--info-text);border:1px solid rgba(29,78,216,.16)}
.event-group-block{display:grid;gap:8px;margin-top:12px}
.host-group{padding:10px;border-radius:16px;background:linear-gradient(135deg,rgba(183,255,53,.12),rgba(255,255,255,.45));border:1px solid var(--border)}
.event-role-callout,.role-summary-box{display:grid;gap:5px;padding:10px;border-radius:13px;background:var(--bg-surface);border:1px solid var(--border-strong)}
.event-role-callout strong,.role-summary-box strong{color:var(--text-primary);font-size:.86rem;line-height:1.25}
.event-role-callout span,.role-summary-box span{color:var(--text-secondary);font-size:.72rem;font-weight:850;text-transform:uppercase;letter-spacing:.08em}
.role-summary-box .role-badge-row,.event-role-callout .role-badge-row{margin-top:2px}

/* phase 2c3c check-in + avatar clarity */
.event-head-visual{align-items:flex-start}.event-title-visual{display:flex;align-items:flex-start;gap:10px;min-width:0}.avatar-circle{width:38px;height:38px;min-width:38px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;overflow:hidden;background:linear-gradient(135deg,var(--brand-green),var(--brand-lime));color:#fff;font-weight:950;font-size:.78rem;border:2px solid rgba(255,255,255,.86);box-shadow:0 8px 18px rgba(6,63,51,.13)}.avatar-circle img{width:100%;height:100%;object-fit:cover;display:block}.avatar-event{width:42px;height:42px;min-width:42px}.avatar-participant{width:36px;height:36px;min-width:36px;font-size:.72rem}.participant-main{display:flex;align-items:center;gap:9px;min-width:0}.participant-row{grid-template-columns:minmax(0,1fr) auto}.participant-actions .btn-danger-soft,.btn-danger-soft{background:var(--danger-bg);color:var(--danger-text);border-color:rgba(170,53,38,.24)}.mini-guidance{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:0 9px;border-radius:9px;background:var(--bg-soft-2);border:1px solid var(--border);font-size:.68rem;font-weight:900;color:var(--text-secondary)}@media(max-width:560px){.participant-row{grid-template-columns:1fr}.participant-actions{padding-left:45px}.event-title-visual{gap:8px}.avatar-event{width:38px;height:38px;min-width:38px}}

/* phase 2c3d - reality UX fix: no overlapping sticky cards, clearer action zone */
.event-detail-screen{
  display:grid;
  gap:16px !important;
  align-items:start;
}
.event-detail-screen > .card,
.event-detail-screen > article,
.event-detail-screen > div{
  position:relative;
  z-index:auto;
}
.event-detail-screen .user-status-panel,
.event-detail-screen .clarity-status-panel{
  position:relative !important;
  top:auto !important;
  z-index:1 !important;
  margin:0 !important;
}
.event-detail-screen .participant-flow-card{
  position:relative !important;
  z-index:0 !important;
  margin-top:0 !important;
  clear:both;
}
.participant-flow-card .chip-row{
  position:relative !important;
  top:auto !important;
  z-index:0 !important;
  background:transparent !important;
  padding:0 !important;
}
.flow-help-box{
  display:grid;
  gap:5px;
  padding:10px 12px;
  border:1px solid var(--border);
  border-radius:12px;
  background:rgba(255,255,255,.72);
  color:var(--text-secondary);
  font-size:.76rem;
  line-height:1.3;
}
.flow-help-box strong{
  color:var(--text-primary);
  font-size:.82rem;
}
.participant-actions{
  align-items:center;
}
.participant-actions .btn{
  white-space:nowrap;
}
@media(max-width:560px){
  .event-detail-screen{gap:14px !important;}
  .event-detail-screen .user-status-panel,
  .event-detail-screen .clarity-status-panel{position:relative !important;top:auto !important;}
  .participant-actions{padding-left:45px;display:grid;grid-template-columns:1fr;justify-content:stretch;}
  .participant-actions .btn,.participant-actions .mini-guidance{width:100%;}
}

/* Phase 2C.4 — profile identity + activity polish */
.avatar-circle{width:34px;height:34px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;overflow:hidden;background:linear-gradient(135deg,var(--brand-green),var(--brand-lime));color:#fff;font-weight:950;font-size:.72rem;border:1px solid rgba(255,255,255,.65);box-shadow:0 8px 18px rgba(6,63,51,.14);flex:0 0 auto}.avatar-circle img{width:100%;height:100%;object-fit:cover;display:block}.avatar-topbar{width:30px;height:30px;font-size:.62rem}.avatar-profile{width:52px;height:52px;font-size:1rem}.avatar-event{width:38px;height:38px}.topbar-profile-chip{display:inline-flex;align-items:center;gap:8px;min-height:34px;max-width:190px;border:1px solid var(--border);background:rgba(255,255,255,.82);border-radius:999px;padding:3px 9px 3px 3px;box-shadow:var(--shadow-soft);color:var(--text-primary);cursor:pointer}.topbar-profile-chip span{display:grid;text-align:left;line-height:1.05;min-width:0}.topbar-profile-chip strong{font-size:.76rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px}.topbar-profile-chip small{font-size:.58rem;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px;text-transform:uppercase;font-weight:900}.profile-identity-card{display:grid;gap:10px;background:linear-gradient(135deg,var(--bg-card),rgba(234,255,209,.7));border-left:4px solid var(--brand-green)}.profile-identity-card.compact{padding:10px}.profile-main-row{display:flex;align-items:center;gap:10px}.profile-copy{min-width:0}.profile-name{font-size:1.08rem;font-weight:950;line-height:1.05;letter-spacing:-.03em;color:var(--text-primary)}.profile-role-line{font-size:.76rem;color:var(--text-secondary);font-weight:900;text-transform:uppercase;margin-top:2px}.profile-stats-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.profile-stats-row span{border:1px solid var(--border);background:rgba(255,255,255,.72);border-radius:10px;padding:7px;text-align:center;display:grid;gap:1px}.profile-stats-row strong{font-size:.98rem;color:var(--text-primary);line-height:1}.profile-stats-row small{font-size:.55rem;color:var(--text-secondary);font-weight:950;text-transform:uppercase;letter-spacing:.06em}.activity-screen{gap:10px}.activity-hero{background:linear-gradient(135deg,rgba(255,255,255,.72),rgba(234,255,209,.42));border-radius:var(--radius-card)}.activity-timeline{display:grid;gap:9px;position:relative}.activity-card{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:11px;border-radius:14px;border:1px solid var(--border);background:var(--bg-card);box-shadow:var(--shadow-soft)}.activity-card.success{border-left:4px solid var(--success-text)}.activity-card.info{border-left:4px solid var(--info-text)}.activity-card.danger{border-left:4px solid var(--danger-text)}.activity-card.neutral{border-left:4px solid var(--text-tertiary)}.activity-marker{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--accent-soft);font-weight:950;color:var(--brand-green);border:1px solid var(--border-strong)}.activity-title{font-size:.93rem;font-weight:950;line-height:1.2;color:var(--text-primary)}.activity-meta-row{display:flex;flex-wrap:wrap;gap:5px;margin-top:4px}.activity-meta-row span{font-size:.68rem;font-weight:850;color:var(--text-secondary);background:var(--bg-soft-2);border:1px solid var(--border);border-radius:999px;padding:3px 7px}.activity-when{text-align:right;display:grid;gap:2px;min-width:86px}.activity-when strong{font-size:.68rem;color:var(--text-primary)}.activity-when small{font-size:.6rem;color:var(--text-secondary);line-height:1.2}@media(max-width:520px){.topbar-profile-chip span{display:none}.topbar-profile-chip{padding-right:3px}.activity-card{grid-template-columns:auto 1fr;align-items:flex-start}.activity-when{grid-column:2;text-align:left;display:flex;gap:6px;align-items:center}.profile-stats-row{grid-template-columns:repeat(3,1fr)}}


/* Phase 2C.4B — readable capitalization and identity cleanup */
.nav-label,.btn,.chip,.badge,.page-title,.event-name,.profile-name,.activity-title{text-transform:none}.section-kicker{text-transform:uppercase}.topbar-profile-chip{text-transform:none}.activity-hero{padding:12px}.profile-identity-card.compact{margin-bottom:2px}.activity-card{min-height:70px}.activity-title{letter-spacing:-.01em}.field-label{text-transform:none;font-weight:850}.modal-head h2{text-transform:none}

/* Phase 3 — Game Engine + Scoreboard foundation */
.game-engine-card{border-color:rgba(15,107,79,.22);background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(234,245,237,.72))}
.game-summary-grid strong{font-size:1.25rem}
.game-lock-note{margin-top:12px;padding:12px 14px;border-radius:16px;background:rgba(15,107,79,.09);color:var(--color-brand-dark,#173d2e);font-size:.88rem;font-weight:700}
.scoreboard-mini,.match-list-mini{margin-top:14px;padding:12px;border:1px solid var(--color-line,#dfe8e2);border-radius:18px;background:rgba(255,255,255,.86)}
.ranking-row{display:grid;grid-template-columns:44px 1fr 48px;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid rgba(16,45,32,.08)}
.ranking-row:last-child{border-bottom:0}.ranking-row span{font-weight:700}.ranking-row b{text-align:right;color:var(--color-brand,#0f6b4f)}
.match-mini{display:grid;grid-template-columns:72px 1fr 28px 1fr;gap:8px;align-items:center;padding:9px 0;border-bottom:1px solid rgba(16,45,32,.08);font-size:.86rem}.match-mini:last-child{border-bottom:0}.match-mini span{font-size:.78rem;color:var(--color-muted,#65756d);font-weight:800}.match-mini em{text-align:center;color:var(--color-muted,#65756d);font-style:normal;font-weight:900}.chip.readonly{cursor:default;pointer-events:none;opacity:.92}

/* Phase 3A — host game setup controls */
.game-setup-box{margin:12px 0;padding:12px;border:1px solid var(--border,var(--color-line,#dfe8e2));border-radius:18px;background:rgba(255,255,255,.82);display:grid;gap:10px}
.game-setup-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.game-setup-head strong{display:block;color:var(--text-primary,#17231d);font-size:.92rem}.game-setup-head span{display:block;color:var(--text-secondary,#65756d);font-size:.76rem;line-height:1.35;margin-top:2px}.quick-targets{justify-content:flex-end}.quick-targets .chip{border:1px solid var(--border,#dfe8e2);background:var(--bg-card,#fff);font-weight:950;cursor:pointer}.quick-targets .chip.active{background:var(--brand-green,#0f6b4f);color:#fff;border-color:transparent}.game-setup-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.game-setup-grid label{display:grid;gap:5px}.game-setup-grid label span{font-size:.66rem;font-weight:950;color:var(--text-secondary,#65756d);text-transform:uppercase;letter-spacing:.06em}.game-setup-grid select{width:100%;min-height:38px;border-radius:12px;border:1px solid var(--border,#dfe8e2);background:var(--bg-card,#fff);color:var(--text-primary,#17231d);font-weight:850;padding:0 10px}.game-readiness-line{padding:9px 10px;border-radius:13px;background:var(--warning-bg,#fff4d7);color:var(--warning-text,#8a5a00);font-size:.78rem;font-weight:850}.game-readiness-line.ready{background:var(--success-bg,#eaf5ed);color:var(--success-text,#0f6b4f)}@media(max-width:700px){.game-setup-head{display:grid}.game-setup-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:420px){.game-setup-grid{grid-template-columns:1fr}.quick-targets{justify-content:flex-start}}

/* Phase 3C host participant polish */
.host-test-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:10px 0 8px;padding:10px;border:1px solid var(--border,#dfe8e2);border-radius:16px;background:linear-gradient(135deg,rgba(234,245,237,.72),rgba(255,255,255,.86))}.host-test-toolbar .mini-guidance{margin-left:auto}.search-row{display:flex;gap:8px;align-items:center;margin:8px 0}.search-row .search-input{flex:1}.participant-meta-stack{display:flex;gap:5px;flex-wrap:wrap}.participant-flow-hint{font-size:.72rem;color:var(--text-secondary,#65756d);margin-top:4px;font-weight:750}.participant-actions .ready-note{align-self:center;color:var(--success-text,#0f6b4f);background:var(--success-bg,#eaf5ed);padding:6px 9px;border-radius:999px;font-weight:900}.form-stack{display:grid;gap:12px}.form-label{display:grid;gap:6px}.form-label span{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;font-weight:950;color:var(--text-secondary,#65756d)}.manual-mode-card{display:grid;gap:8px;border:1px solid var(--border,#dfe8e2);border-radius:16px;padding:12px;background:var(--bg-soft,#f6f8f5)}.manual-mode-card strong{font-size:.86rem;color:var(--text-primary,#17231d)}.manual-mode-card small{font-size:.75rem;color:var(--text-secondary,#65756d);line-height:1.35}.manual-mode-card .chip{cursor:pointer}.manual-mode-card .chip.active{background:var(--brand-green,#0f6b4f);color:#fff;border-color:transparent}.compact-modal{max-width:460px}.modal-actions{justify-content:flex-end}.inline-message.info{background:var(--info-bg,#e7f0ff);border:1px solid var(--info-border,#b8cef5);color:var(--info-text,#17407d)}@media(max-width:520px){.host-test-toolbar{align-items:stretch}.host-test-toolbar .btn{width:100%;justify-content:center}.host-test-toolbar .mini-guidance{margin-left:0}.search-row{display:grid}.modal-actions{display:grid}.modal-actions .btn{width:100%}}

/* Phase 3D manual participant modal hardening */
.manual-participant-shell{position:fixed!important;inset:0!important;z-index:120!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:18px!important;background:rgba(6,20,15,.42)!important;backdrop-filter:blur(6px)!important}
.manual-participant-shell .compact-modal{width:min(94vw,460px)!important;max-height:calc(100vh - 36px)!important;overflow:auto!important;margin:0!important;box-shadow:0 24px 80px rgba(6,20,15,.24)!important}
.inline-message.success{background:var(--success-bg,#eaf5ed);border:1px solid rgba(15,107,79,.22);color:var(--success-text,#0f6b4f)}
.inline-message.danger{background:var(--danger-bg,#ffe3df);border:1px solid rgba(180,50,42,.22);color:var(--danger-text,#9b2d22)}
@media(max-width:520px){.manual-participant-shell{align-items:flex-end!important;padding:10px!important}.manual-participant-shell .compact-modal{width:100%!important;max-height:86vh!important}}

/* Phase 3D.23 — Americano leaderboard + score input polish */
.americano-board{display:grid;gap:8px;padding:14px}.board-head{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end;margin-bottom:4px}.board-head strong{font-size:1.08rem;color:var(--text-primary,#17231d)}.board-cols{display:grid;grid-template-columns:60px 52px 42px;gap:8px;font-size:.66rem;font-weight:950;color:var(--text-secondary,#65756d);text-transform:uppercase;letter-spacing:.06em;text-align:right}.leaderboard-row{display:grid;grid-template-columns:38px minmax(0,1fr) 60px 52px 42px;gap:8px;align-items:center;border:1px solid var(--border,#dfe8e2);background:rgba(255,255,255,.78);border-radius:13px;padding:9px 10px}.leaderboard-row.leader{background:linear-gradient(135deg,#fff7d7,#ffe06a);border-color:#f5cf3b;box-shadow:0 8px 20px rgba(173,122,0,.12)}.rank-no{font-weight:950}.leader-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:900}.wlt,.diff,.pts{text-align:right;font-weight:950}.diff{color:var(--text-secondary,#65756d)}.pts{color:var(--text-primary,#17231d)}.americano-rounds{display:grid;gap:12px}.round-block{display:grid;gap:10px}.round-title{display:flex;align-items:center;gap:8px}.round-title span{font-size:.66rem;font-weight:950;color:var(--text-secondary,#65756d);text-transform:uppercase;letter-spacing:.12em}.round-title strong{border-radius:10px;background:rgba(255,255,255,.9);border:1px solid var(--border,#dfe8e2);padding:6px 10px}.match-card-americano{border:1px solid var(--border,#dfe8e2);background:linear-gradient(180deg,rgba(255,255,255,.95),rgba(246,248,245,.86));border-radius:18px;padding:12px;box-shadow:0 10px 24px rgba(16,45,32,.06)}.court-label{text-align:right;font-weight:900;color:var(--text-secondary,#65756d);font-size:.82rem;margin-bottom:6px}.match-score-line{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center}.team-names{font-weight:850;line-height:1.35}.team-names.right{text-align:right}.flip-score{display:flex;align-items:center;gap:7px;justify-content:center}.flip-score b{display:inline-grid;place-items:center;min-width:42px;height:42px;border-radius:7px;background:#0b0d0c;color:#fff;font-size:1.45rem;line-height:1;font-weight:950;box-shadow:0 8px 18px rgba(0,0,0,.18);font-variant-numeric:tabular-nums}.flip-score em{font-style:normal;font-size:.7rem;color:var(--text-secondary,#65756d);font-weight:900}.score-input-row{display:grid;grid-template-columns:72px auto 72px auto;gap:8px;align-items:center;margin-top:10px}.score-input-row input{width:100%;min-height:38px;border:1px solid var(--border,#dfe8e2);border-radius:12px;background:#fff;text-align:center;font-weight:950;color:var(--text-primary,#17231d);font-size:1rem}.score-input-row span{font-size:.72rem;color:var(--text-secondary,#65756d);font-weight:900}.btn-sm{min-height:38px;padding:8px 12px;font-size:.78rem}@media(max-width:520px){.board-head{grid-template-columns:1fr}.board-cols{grid-template-columns:60px 52px 42px;justify-content:end}.leaderboard-row{grid-template-columns:34px minmax(0,1fr) 52px 44px 34px;font-size:.82rem}.match-score-line{grid-template-columns:1fr;gap:8px}.team-names,.team-names.right{text-align:center}.score-input-row{grid-template-columns:1fr auto 1fr;}.score-input-row .btn{grid-column:1 / -1;width:100%;justify-content:center}}

/* Phase 3D.24 — Americano score UX polish */
.game-lock-note{margin:14px 0 10px;padding:14px 16px;line-height:1.45}
.game-engine-card .btn-row{align-items:center;gap:10px;margin:12px 0;flex-wrap:wrap}
.game-engine-card .btn-danger-soft{margin-top:0}
.error-mini{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.mini-link{border:0;background:transparent;color:var(--color-brand,#0f6b4f);font-weight:900;text-decoration:underline;cursor:pointer}
.round-tabs-scroll{display:flex;gap:8px;overflow-x:auto;padding:4px 0 8px;margin-bottom:4px}.round-tabs-scroll .chip{white-space:nowrap}.round-tabs-scroll .chip.active{background:var(--color-brand,#0f6b4f);color:#fff;border-color:var(--color-brand,#0f6b4f)}
.compact-rounds{gap:12px}.rest-player-strip{display:flex;gap:8px;align-items:center;border:1px solid var(--border,#dfe8e2);background:rgba(15,107,79,.06);border-radius:14px;padding:9px 11px;font-size:.78rem;color:var(--text-secondary,#65756d);margin-bottom:8px}.rest-player-strip strong{color:var(--color-brand-dark,#173d2e);text-transform:uppercase;letter-spacing:.08em;font-size:.65rem}.rest-player-strip span{font-weight:800}
.flip-score button,.score-pill{display:inline-grid;place-items:center;min-width:42px;height:42px;border-radius:7px;background:#0b0d0c;color:#fff;font-size:1.45rem;line-height:1;font-weight:950;box-shadow:0 8px 18px rgba(0,0,0,.18);font-variant-numeric:tabular-nums;border:0;cursor:pointer}.score-pill{min-width:58px}.flip-score button:active,.score-pill:active{transform:translateY(1px)}
.match-action-row{display:grid;gap:8px;margin-top:10px}.score-input-polished{grid-template-columns:auto auto auto auto 1fr}.score-input-polished input[type="hidden"]{display:none}.score-input-polished .btn{justify-self:stretch;justify-content:center}.match-action-row>.btn{justify-content:center;width:100%}
.score-picker-card,.replace-player-card{max-width:520px;width:min(92vw,520px)}.score-picker-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.score-picker-head h2{margin:2px 0 4px}.score-picker-head p{margin:0;color:var(--text-secondary,#65756d);font-size:.88rem}.icon-btn{border:1px solid var(--border,#dfe8e2);background:#fff;border-radius:12px;min-width:38px;min-height:38px;font-weight:950;cursor:pointer}.score-pad-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin:16px 0}.score-pad-btn{border:1px solid var(--border,#dfe8e2);background:#fff;border-radius:12px;min-height:44px;font-weight:950;color:var(--color-brand-dark,#173d2e);cursor:pointer}.score-pad-btn.active,.score-pad-btn:hover{background:var(--color-brand,#0f6b4f);border-color:var(--color-brand,#0f6b4f);color:#fff}.check-row{display:flex;align-items:flex-start;gap:8px;background:rgba(15,107,79,.06);border:1px solid var(--border,#dfe8e2);border-radius:14px;padding:10px;margin:8px 0 12px;font-weight:800;color:var(--text-secondary,#65756d)}
@media(max-width:520px){.score-pad-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.score-input-polished{grid-template-columns:1fr auto 1fr}.score-input-polished .btn{grid-column:1 / -1}.match-card-americano{padding:14px}.game-lock-note{margin:12px 0}.rest-player-strip{align-items:flex-start;flex-direction:column;gap:4px}}


/* phase 3d25 americano ux polish */
.game-lock-note{margin:12px 0 10px;padding:14px;border-radius:18px;background:linear-gradient(135deg,#edf8f1,#eef7f5);line-height:1.45}
.btn-row:has(.btn-danger-soft){align-items:center;gap:10px;margin:10px 0 12px;flex-wrap:wrap}
.btn-danger-soft{margin:0;min-height:42px}
.score-picker-card{max-width:520px;width:min(92vw,520px);padding:18px;border-radius:18px}
.score-picker-head h2{font-size:20px;line-height:1.2;margin:4px 0}.score-picker-head p{font-size:13px;line-height:1.45;color:var(--muted,#65756d);margin:0}
.score-pad-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-top:16px}.score-pad-btn{min-height:44px;border-radius:12px;border:1px solid var(--line,#dfe8e2);background:#fff;font-weight:800}.score-pad-btn.active,.score-pad-btn:hover{background:var(--brand,#0f6b4f);color:#fff}
.match-card-americano{padding:16px;margin:10px 0;border-radius:18px}.match-card-americano.match-finished{background:linear-gradient(135deg,#f4fbf6,#eef7f2);border-color:#bfe5ce}.round-completed-card{background:linear-gradient(135deg,#f4fbf6,#fff);border-color:#bfe5ce}.round-done-label{margin-left:auto;padding:5px 9px;border-radius:999px;background:#dff7e8;color:#0f6b4f;font-style:normal;font-size:11px;font-weight:900}.round-tabs-scroll .round-done{background:#e5f8ec;border-color:#bfe5ce;color:#0f6b4f}.match-action-compact{justify-content:flex-end;margin-top:8px}.score-hidden-inputs{display:none}.extra-round-box{display:grid;gap:6px;padding:12px;margin:10px 0 14px;border-radius:16px;background:#fff9e8;border:1px solid #eedb9a}.extra-round-box span{font-size:12px;color:var(--muted,#65756d)}.rest-player-strip{margin:8px 0 10px;padding:8px 10px;border-radius:999px;background:#f7fbf8;border:1px solid var(--line,#dfe8e2);font-size:12px}.modal-open{overflow:hidden}.modal-shell{position:fixed;inset:0;z-index:9999;display:flex;align-items:flex-end;justify-content:center;padding:18px;background:rgba(0,0,0,.38);backdrop-filter:blur(4px)}@media(min-width:720px){.modal-shell{align-items:center}.score-pad-grid{grid-template-columns:repeat(6,1fr)}}@media(max-width:420px){.score-pad-grid{grid-template-columns:repeat(4,1fr)}.match-score-line{grid-template-columns:1fr;gap:10px}.team-names.right{text-align:left}.flip-score{justify-content:center}}

/* phase 3e gameplay polish */
.phase3e-game-card .game-host-panel{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;margin:12px 0;padding:12px 14px;border-radius:18px;background:linear-gradient(135deg,#f6fbf7,#eef7f1);border:1px solid var(--line,#dfe8e2)}
.game-host-panel strong{display:block;color:var(--color-brand-dark,#173d2e);font-weight:950}.game-host-panel span{display:block;font-size:12px;color:var(--muted,#65756d);margin-top:2px}.compact-actions{justify-content:flex-end;margin:0;gap:8px}.final-result-card{display:grid;gap:5px;margin:12px 0;padding:14px;border-radius:18px;background:linear-gradient(135deg,#fff7d7,#e9f8ed);border:1px solid #efd783}.final-result-card h3{margin:0;color:var(--color-brand-dark,#173d2e)}.final-result-card strong{font-size:18px}.final-result-card span{color:var(--muted,#65756d);font-size:13px}.match-card-americano.match-finished{border-color:#a9dfbd;background:linear-gradient(135deg,#f0fbf4,#ffffff)}.round-completed-card{padding:10px;border-radius:18px;background:linear-gradient(135deg,#f3fbf6,#fff);border:1px solid #cdebd8}.round-done-label{text-transform:lowercase}.flip-score button{border:0;display:inline-grid;place-items:center;min-width:42px;height:42px;border-radius:7px;background:#0b0d0c;color:#fff;font-size:1.45rem;line-height:1;font-weight:950;box-shadow:0 8px 18px rgba(0,0,0,.18);font-variant-numeric:tabular-nums;cursor:pointer}.flip-score button:hover{transform:translateY(-1px)}.score-picker-shell{overflow:auto}.score-picker-card{margin:auto}.modal-open{overflow:hidden!important}@media(max-width:560px){.phase3e-game-card .game-host-panel{grid-template-columns:1fr}.compact-actions{justify-content:stretch}.compact-actions .btn{flex:1}.score-picker-card{max-height:calc(100vh - 40px);overflow:auto}.score-pad-grid{grid-template-columns:repeat(4,1fr)}}

/* Phase 3E.2 final gameplay polish */
.live-board{position:relative;overflow:hidden}.live-rank-row{animation:rankEnter .28s ease both;animation-delay:var(--rank-delay,0ms)}@keyframes rankEnter{from{opacity:.35;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.rank-trend{display:inline-grid;place-items:center;min-width:16px;height:16px;border-radius:99px;font-size:10px;margin-left:3px;background:rgba(15,107,79,.08);color:var(--color-brand,#0f6b4f)}.rank-trend.down{background:#fff4d7;color:#996d00}.rank-trend.same{background:#f2f5f3;color:var(--muted,#65756d)}.final-result-pro{gap:12px;background:linear-gradient(135deg,#fff7d7 0%,#eef9ef 55%,#fff 100%);box-shadow:0 14px 38px rgba(16,45,32,.12)}.final-result-pro h3{font-size:22px;letter-spacing:-.4px}.podium-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:10px;margin-top:6px}.podium-card{border:1px solid rgba(15,107,79,.14);background:rgba(255,255,255,.82);border-radius:16px;padding:12px;display:grid;gap:3px;min-width:0}.podium-card span{font-size:24px}.podium-card strong{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.podium-card em{font-style:normal;font-size:11px;color:var(--muted,#65756d);font-weight:800}.podium-1{transform:translateY(-4px);border-color:#efd783}.pro-control-panel{background:linear-gradient(135deg,rgba(255,255,255,.95),rgba(234,245,237,.82));border-color:rgba(15,107,79,.16)}.match-done-label{margin-left:6px}.score-pad-btn{transition:transform .12s ease, box-shadow .12s ease}.score-pad-btn:active{transform:scale(.96)}@media(max-width:560px){.podium-grid{grid-template-columns:1fr}.podium-1{transform:none}.final-result-pro .compact-actions .btn{flex:1}}

/* Phase 3E-05 cleanup: real match control + mobile overflow polish */
.filter-container,
.safe-wrap,
.chip-row {
  max-width: 100%;
  flex-wrap: wrap;
  overflow: hidden;
}
.badge,
.status-chip,
.stat-box,
.community-chip {
  max-width: 100%;
  min-width: 0;
  white-space: normal;
  overflow-wrap: anywhere;
}
.card,
.event-card,
.participant-flow-card,
.game-host-panel,
.final-result-card,
.active-event-card {
  max-width: 100%;
  overflow: hidden;
}
.badge-excluded {
  background: #fff4d7;
  color: #795500;
  border: 1px solid rgba(121,85,0,.18);
}
.game-lock-mini {
  display: inline-flex;
  align-items: center;
  padding: 6px 9px;
  border-radius: 999px;
  background: #f5f7f3;
  border: 1px solid var(--line, #dfe8e2);
  color: var(--muted, #65756d);
  font-size: 11px;
  line-height: 1.25;
}
.clean-state-panel {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
.clean-state-panel .state-copy {
  display: grid;
  gap: 4px;
  min-width: 0;
}
.clean-state-panel .state-copy strong,
.clean-state-panel .state-copy small {
  min-width: 0;
  overflow-wrap: anywhere;
}
.badge-state-completed,
.badge-state-in_progress,
.badge-state-paused,
.badge-state-generated,
.badge-state-active,
.badge-state-waiting {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  max-width: 100%;
  white-space: normal;
  overflow-wrap: anywhere;
  border-radius: 999px;
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.2;
}
.badge-state-completed { background: #eaf5ed; color: #0f6b4f; }
.badge-state-in_progress,
.badge-state-generated,
.badge-state-active { background: #e7f0ff; color: #1f4f8f; }
.badge-state-paused { background: #fff4d7; color: #795500; }
.active-events-block { display: grid; gap: 10px; margin-bottom: 14px; }
.active-event-list { display: grid; gap: 10px; }
.active-event-card {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 14px;
  border-radius: 20px;
  border: 1px solid var(--line, #dfe8e2);
  background: linear-gradient(135deg, #ffffff, #f6fbf7);
  box-shadow: 0 8px 28px rgba(16,45,32,.06);
}
.active-event-card > div { display: grid; gap: 3px; min-width: 0; }
.active-event-card strong,
.active-event-card span { min-width: 0; overflow-wrap: anywhere; }
.active-event-card span { color: var(--muted, #65756d); font-size: 12px; }
.participant-actions {
  max-width: 100%;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.participant-main { min-width: 0; }
.participant-name { min-width: 0; overflow-wrap: anywhere; }
.participant-meta-stack { flex-wrap: wrap; max-width: 100%; }
@media (max-width: 520px) {
  .clean-state-panel,
  .active-event-card {
    align-items: stretch;
  }
  .clean-state-panel .compact-actions,
  .active-event-card .btn,
  .participant-actions .btn,
  .participant-actions .mini-guidance {
    width: 100%;
    justify-content: center;
  }
}

/* Phase 3E-06 visual cleanup: premium cards, maps link, activity noise, community polish */
.maps-link { color: inherit; text-decoration: none; border-radius: 12px; padding: 2px 0; }
.maps-link em { margin-left: auto; font-style: normal; font-size: 10px; font-weight: 950; color: var(--brand-green,#0f6b4f); background: var(--accent-soft,#eaf5ed); border: 1px solid var(--border,#dfe8e2); border-radius: 999px; padding: 2px 7px; }
.active-events-premium { display: grid; gap: 12px; background: linear-gradient(135deg,#ffffff 0%,#f1faed 100%); border-left: 4px solid var(--brand-green,#0f6b4f); }
.active-events-head { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
.live-dot { display: inline-flex; align-items: center; gap: 5px; padding: 6px 9px; border-radius: 999px; background: #eaf5ed; color: #0f6b4f; border: 1px solid rgba(15,107,79,.16); font-size: 10px; font-weight: 950; letter-spacing: .08em; }
.live-dot:before { content: ''; width: 7px; height: 7px; border-radius: 999px; background: #0f6b4f; box-shadow: 0 0 0 4px rgba(15,107,79,.10); }
.active-event-card.premium { border-radius: 18px; padding: 12px; align-items: center; background: rgba(255,255,255,.82); }
.active-event-card.premium.live { border-left: 4px solid var(--brand-green,#0f6b4f); }
.active-event-card.premium.waiting { border-left: 4px solid var(--info-text,#17407d); }
.active-event-card.premium.host { border-left: 4px solid var(--brand-orange,#ff7b2c); }
.active-event-main { display:flex; align-items:center; gap:10px; min-width:0; }
.active-event-main > div { min-width:0; display:grid; gap:2px; }
.active-event-main strong { font-size:.92rem; line-height:1.1; }
.active-event-main small { color:var(--text-secondary,#65756d); font-size:.68rem; line-height:1.25; }
.community-hero-premium { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; background:linear-gradient(135deg,rgba(255,255,255,.8),rgba(234,255,209,.34)); }
.community-grid-premium { display:grid; gap:10px; }
.community-card-premium { display:grid; gap:12px; background:linear-gradient(135deg,#ffffff 0%,#f8fbf8 100%); }
.community-card-premium.joined { border-left:4px solid var(--brand-green,#0f6b4f); }
.community-card-premium.discover { border-left:4px solid var(--brand-lime,#b7ff35); }
.community-card-top { display:flex; align-items:flex-start; gap:10px; min-width:0; }
.avatar-community { width:48px; height:48px; min-width:48px; font-size:.9rem; box-shadow:0 12px 22px rgba(6,63,51,.16); }
.community-card-copy { flex:1; min-width:0; display:grid; gap:4px; }
.community-desc { color:var(--text-secondary,#65756d); font-size:.78rem; line-height:1.35; }
.community-stat-row { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; }
.community-stat-row span { display:grid; gap:1px; text-align:center; border:1px solid var(--border,#dfe8e2); background:rgba(255,255,255,.74); border-radius:12px; padding:8px 6px; }
.community-stat-row strong { font-size:1.05rem; color:var(--text-primary,#17231d); line-height:1; }
.community-stat-row small { color:var(--text-secondary,#65756d); font-size:.58rem; font-weight:950; text-transform:uppercase; letter-spacing:.06em; }
.community-benefit { border:1px solid rgba(15,107,79,.10); background:rgba(15,107,79,.05); color:var(--text-secondary,#65756d); border-radius:14px; padding:9px 10px; font-size:.76rem; line-height:1.35; font-weight:750; }
.activity-hero.premium { background:linear-gradient(135deg,rgba(255,255,255,.8),rgba(234,245,237,.65)); }
.activity-timeline.premium .activity-card { border-radius:18px; min-height:76px; }
.activity-card.debug-noise { opacity:.68; }
.participant-row { grid-template-columns:1fr !important; align-items:stretch !important; padding:12px !important; border-radius:18px !important; gap:10px !important; }
.participant-main { align-items:flex-start !important; }
.participant-actions { padding-left:45px; justify-content:flex-start !important; }
.participant-actions .btn, .participant-actions .mini-guidance { min-height:34px; }
.phase3e-game-card .game-host-panel, .game-host-panel { grid-template-columns:1fr !important; align-items:stretch !important; }
.game-host-panel .compact-actions { justify-content:flex-start !important; }
.game-summary-grid div { min-width:0; overflow:hidden; }
.game-summary-grid strong { white-space:normal; overflow-wrap:anywhere; font-size:1.05rem; }
@media(max-width:520px){
  .active-events-head,.community-hero-premium{display:grid;}
  .active-event-card.premium{display:grid; align-items:stretch;}
  .active-event-card.premium .btn{width:100%;}
  .community-card-top{display:grid; grid-template-columns:auto 1fr;}
  .community-card-top .badge{grid-column:1/-1; width:max-content;}
  .participant-actions{padding-left:0; display:grid; grid-template-columns:1fr;}
}

/* Phase 3E-07 visibility + theme sync cleanup */
html[data-theme="light"] body{background:var(--bg-main)!important;color:var(--text-primary)!important;}
html[data-theme="dark"] body{background:radial-gradient(circle at 20% 0%,rgba(183,255,53,.09),transparent 26rem),#07110e!important;color:var(--text-primary)!important;}
html[data-theme="dark"] .app-shell,
html[data-theme="dark"] .app-main{background:transparent!important;color:var(--text-primary)!important;}
html[data-theme="dark"] .topbar{background:rgba(5,13,10,.86)!important;border-color:rgba(183,255,53,.12)!important;}
html[data-theme="dark"] .bottom-nav{background:rgba(5,13,10,.88)!important;border-color:rgba(183,255,53,.22)!important;box-shadow:0 12px 34px rgba(0,0,0,.35)!important;}
html[data-theme="dark"] .card,
html[data-theme="dark"] .surface-section,
html[data-theme="dark"] .modal-card,
html[data-theme="dark"] .event-card,
html[data-theme="dark"] .hero-focus,
html[data-theme="dark"] .participant-row,
html[data-theme="dark"] .game-host-panel,
html[data-theme="dark"] .active-events-premium,
html[data-theme="dark"] .active-event-card,
html[data-theme="dark"] .community-card-premium,
html[data-theme="dark"] .activity-card,
html[data-theme="dark"] .profile-identity-card{background:linear-gradient(135deg,rgba(13,33,27,.96),rgba(9,22,18,.94))!important;border-color:rgba(183,255,53,.18)!important;color:var(--text-primary)!important;box-shadow:0 16px 38px rgba(0,0,0,.28)!important;}
html[data-theme="dark"] .page-title,
html[data-theme="dark"] .event-name,
html[data-theme="dark"] .participant-name,
html[data-theme="dark"] .profile-name,
html[data-theme="dark"] .activity-title,
html[data-theme="dark"] .community-card-copy strong,
html[data-theme="dark"] h1,
html[data-theme="dark"] h2,
html[data-theme="dark"] h3,
html[data-theme="dark"] strong{color:#f4fff8!important;}
html[data-theme="dark"] .page-subtitle,
html[data-theme="dark"] .event-next-copy,
html[data-theme="dark"] .participant-flow-hint,
html[data-theme="dark"] .mini-guidance,
html[data-theme="dark"] .activity-meta-row,
html[data-theme="dark"] .meta-line,
html[data-theme="dark"] .community-desc,
html[data-theme="dark"] small,
html[data-theme="dark"] span{color:#c8ddd7!important;}
html[data-theme="dark"] .section-kicker{color:#b7ff35!important;}
html[data-theme="dark"] .btn,
html[data-theme="dark"] button{color:#f7fff9!important;text-shadow:none!important;}
html[data-theme="dark"] .btn-primary{background:#087256!important;border-color:#3cff9d!important;color:#ffffff!important;box-shadow:0 10px 24px rgba(0,0,0,.28)!important;}
html[data-theme="dark"] .btn-secondary,
html[data-theme="dark"] .btn-muted,
html[data-theme="dark"] .icon-btn,
html[data-theme="dark"] .nav-item{background:rgba(255,255,255,.06)!important;border-color:rgba(183,255,53,.20)!important;color:#f4fff8!important;}
html[data-theme="dark"] .btn-danger-soft{background:rgba(248,113,113,.16)!important;border-color:rgba(248,113,113,.34)!important;color:#fecaca!important;}
html[data-theme="dark"] .badge,
html[data-theme="dark"] .community-chip,
html[data-theme="dark"] .status-pill,
html[data-theme="dark"] .chip{background:rgba(183,255,53,.10)!important;color:#eaffdc!important;border-color:rgba(183,255,53,.24)!important;}
html[data-theme="dark"] .chip.active,
html[data-theme="dark"] .nav-item.active{background:#087256!important;color:#fff!important;border-color:#b7ff35!important;}
html[data-theme="dark"] .icon-img{filter:brightness(0) invert(1)!important;opacity:.96;}
html[data-theme="dark"] .brand-logo-mark,
html[data-theme="dark"] .avatar-circle img{filter:none!important;}
html[data-theme="dark"] input,
html[data-theme="dark"] textarea,
html[data-theme="dark"] select,
html[data-theme="dark"] .search-input{background:#0a1914!important;color:#f4fff8!important;border-color:rgba(183,255,53,.22)!important;}
html[data-theme="dark"] input::placeholder,
html[data-theme="dark"] textarea::placeholder{color:#92aaa3!important;}
.btn,.btn span,.btn-icon,.nav-item,.nav-label,.icon-btn{min-width:0;white-space:normal;overflow-wrap:anywhere;line-height:1.15;text-align:center;}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:9px 12px;border-radius:12px;}
.btn-mini,.btn-sm{min-height:34px;padding:7px 10px;font-size:12px;}
.btn-icon .icon-img,.btn .icon-img{width:15px;height:15px;flex:0 0 auto;}
.active-events-premium{display:grid;gap:12px;border-left:4px solid var(--brand-green)!important;}
.active-events-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;}
.live-dot{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:999px;background:var(--success-bg);color:var(--success-text);font-size:11px;font-weight:900;border:1px solid rgba(8,112,68,.16);}
.active-event-list{display:grid;gap:10px;}
.active-event-card.premium{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;padding:12px;border-radius:16px;border:1px solid var(--border);background:rgba(255,255,255,.72);}
.active-event-main{display:flex;align-items:center;gap:10px;min-width:0;}
.active-event-main>div{display:grid;gap:3px;min-width:0;}
.active-event-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.active-event-main span,.active-event-main small{font-size:12px;line-height:1.35;color:var(--text-secondary);}
.maps-link{display:flex!important;align-items:center;gap:7px;text-decoration:none;color:var(--text-secondary)!important;}
.maps-link em{margin-left:auto;font-style:normal;font-size:10px;font-weight:900;padding:4px 8px;border-radius:999px;background:var(--success-bg);color:var(--success-text);border:1px solid rgba(8,112,68,.12);}
.participant-row{display:grid!important;grid-template-columns:minmax(0,1fr);gap:10px;padding:12px!important;}
.participant-main{display:flex!important;align-items:center;gap:10px;min-width:0;}
.participant-main>div{min-width:0;display:grid;gap:5px;}
.participant-name{font-size:15px;line-height:1.2;overflow-wrap:anywhere;}
.participant-meta,.participant-meta-stack{display:flex;flex-wrap:wrap;gap:5px;align-items:center;}
.participant-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-start;}
.avatar-circle{flex:0 0 auto;display:inline-grid;place-items:center;overflow:hidden;}
.game-host-panel.clean-state-panel{display:grid!important;grid-template-columns:1fr;gap:12px;padding:14px!important;}
.game-host-panel .compact-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-start;}
.live-board .live-rank-row{color:var(--text-primary)!important;}
html[data-theme="dark"] .live-board .live-rank-row{background:rgba(255,255,255,.05)!important;color:#f4fff8!important;border-color:rgba(183,255,53,.16)!important;}
.community-grid-premium{display:grid;gap:12px;}
.community-card-premium{display:grid;gap:12px;border-left:4px solid var(--brand-orange)!important;}
.community-card-top{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:flex-start;}
.community-card-copy{min-width:0;display:grid;gap:4px;}
.community-desc{font-size:13px;line-height:1.4;color:var(--text-secondary);}
.community-stat-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;}
.community-stat-row span{display:grid;gap:2px;padding:9px;border:1px solid var(--border);border-radius:12px;background:var(--bg-soft-2);}
.community-stat-row strong{font-size:16px;}
.community-stat-row small{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);}
.community-benefit{font-size:12px;line-height:1.4;padding:9px;border-radius:12px;background:var(--bg-soft);color:var(--text-secondary);}
.activity-timeline.premium{display:grid;gap:10px;}
.activity-card{display:grid!important;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px!important;}
.activity-card.debug-noise{display:none!important;}
.activity-marker{width:28px;height:28px;border-radius:999px;display:grid;place-items:center;background:var(--bg-soft);font-weight:950;}
.activity-title{line-height:1.25;overflow-wrap:anywhere;}
.activity-meta-row{display:flex;flex-wrap:wrap;gap:6px;font-size:11px;}
.activity-meta-row span{padding:3px 7px;border-radius:999px;background:var(--bg-soft-2);}
.activity-when{text-align:right;font-size:11px;display:grid;gap:2px;}
@media(max-width:560px){.active-event-card.premium{grid-template-columns:1fr}.active-event-card .btn{width:100%}.community-card-top{grid-template-columns:auto minmax(0,1fr)}.community-card-top>.badge{grid-column:1/-1;width:max-content}.activity-card{grid-template-columns:auto minmax(0,1fr)}.activity-when{grid-column:2;text-align:left}.btn-row{gap:8px;}.btn-row .btn{flex:1 1 auto;}}

/* Phase 3E-08 centralized visibility standard
   Rule: all dark/light readability fixes must stay here, not per page. */
:root{
  --ui-action-bg: var(--brand-green-2,#087256);
  --ui-action-text: #ffffff;
  --ui-action-border: rgba(6,63,51,.20);
  --ui-action-hover: var(--brand-green,#063f33);
  --ui-control-bg: rgba(255,255,255,.94);
  --ui-control-text: var(--text-primary,#063f33);
  --ui-control-border: var(--border,rgba(6,63,51,.12));
  --ui-card-solid: var(--bg-card,#ffffff);
  --ui-card-muted: #f7fbf7;
  --ui-score-row: #ffffff;
  --ui-score-row-leader: #fff0a6;
  --ui-score-text: var(--text-primary,#063f33);
}
html[data-theme="dark"]{
  --ui-action-bg:#0aa072;
  --ui-action-text:#ffffff;
  --ui-action-border:rgba(183,255,53,.34);
  --ui-action-hover:#0db783;
  --ui-control-bg:rgba(12,29,24,.98);
  --ui-control-text:#f4fff8;
  --ui-control-border:rgba(183,255,53,.24);
  --ui-card-solid:#10251f;
  --ui-card-muted:#0d1d18;
  --ui-score-row:#142b24;
  --ui-score-row-leader:#f4c542;
  --ui-score-text:#f7fff9;
}

/* central buttons: readable in every theme */
.btn,
button.btn,
a.btn,
.btn-primary,
.btn-secondary,
.btn-muted,
.btn-danger-soft,
.icon-btn,
button:not(.unstyled){
  min-height:40px;
  border-radius:12px;
  font-weight:900;
  letter-spacing:0;
  line-height:1.1;
  text-decoration:none;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.btn-primary,
a.btn-primary,
button.btn-primary{
  background:var(--ui-action-bg)!important;
  color:var(--ui-action-text)!important;
  border:1px solid var(--ui-action-border)!important;
  box-shadow:0 10px 22px rgba(6,63,51,.18)!important;
}
.btn-primary *,
a.btn-primary *,
button.btn-primary *{color:var(--ui-action-text)!important;fill:currentColor!important;}
.btn-primary:hover{background:var(--ui-action-hover)!important;}
.btn-secondary,
.btn-muted,
.icon-btn{
  background:var(--ui-control-bg)!important;
  color:var(--ui-control-text)!important;
  border:1px solid var(--ui-control-border)!important;
}
.btn-secondary *,
.btn-muted *,
.icon-btn *{color:inherit!important;fill:currentColor!important;}
.btn-mini,.btn-sm{min-width:92px;min-height:36px;padding:8px 12px;font-size:12px;}
.active-event-card .btn,
.active-event-card .btn-mini,
.active-event-card .btn-primary{min-width:110px;white-space:nowrap;}
.nav-item,.bottom-nav .nav-item{color:var(--ui-control-text)!important;background:var(--ui-control-bg)!important;border-color:var(--ui-control-border)!important;}
.nav-item.active,.bottom-nav .nav-item.active{background:var(--ui-action-bg)!important;color:var(--ui-action-text)!important;border-color:var(--ui-action-border)!important;}
.nav-item.active *,.bottom-nav .nav-item.active *{color:var(--ui-action-text)!important;fill:currentColor!important;}

/* central surfaces: no washed out dark mode */
html[data-theme="dark"] .card,
html[data-theme="dark"] .surface-section,
html[data-theme="dark"] .hero-focus,
html[data-theme="dark"] .active-events-premium,
html[data-theme="dark"] .active-event-card,
html[data-theme="dark"] .community-card-premium,
html[data-theme="dark"] .activity-card,
html[data-theme="dark"] .game-host-panel,
html[data-theme="dark"] .scoreboard-mini,
html[data-theme="dark"] .americano-board,
html[data-theme="dark"] .live-board,
html[data-theme="dark"] .round-card,
html[data-theme="dark"] .match-card,
html[data-theme="dark"] .participant-row{
  background:linear-gradient(135deg,var(--ui-card-solid),var(--ui-card-muted))!important;
  color:var(--text-primary)!important;
  border-color:var(--ui-control-border)!important;
}
html[data-theme="dark"] .page-title,
html[data-theme="dark"] .page-subtitle,
html[data-theme="dark"] .section-kicker,
html[data-theme="dark"] .event-name,
html[data-theme="dark"] .leader-name,
html[data-theme="dark"] .participant-name,
html[data-theme="dark"] .community-card-copy,
html[data-theme="dark"] .community-card-copy *,
html[data-theme="dark"] .active-event-main,
html[data-theme="dark"] .active-event-main *,
html[data-theme="dark"] .board-head,
html[data-theme="dark"] .board-head *,
html[data-theme="dark"] .game-host-panel,
html[data-theme="dark"] .game-host-panel *,
html[data-theme="dark"] .meta-list,
html[data-theme="dark"] .meta-list *,
html[data-theme="dark"] .maps-link,
html[data-theme="dark"] .maps-link *{
  color:var(--text-primary)!important;
  opacity:1!important;
}
html[data-theme="dark"] .page-subtitle,
html[data-theme="dark"] small,
html[data-theme="dark"] .active-event-main small,
html[data-theme="dark"] .community-desc,
html[data-theme="dark"] .event-next-copy,
html[data-theme="dark"] .mini-guidance{color:var(--text-secondary)!important;}
html[data-theme="dark"] .section-kicker{color:var(--brand-lime)!important;}

/* leaderboard and game scoring visibility */
.scoreboard-mini,
.americano-board,
.live-board{background:var(--ui-card-solid)!important;color:var(--ui-score-text)!important;}
.leaderboard-row,
.live-rank-row,
.score-row,
.board-row{
  background:var(--ui-score-row)!important;
  color:var(--ui-score-text)!important;
  border:1px solid var(--ui-control-border)!important;
  opacity:1!important;
}
.leaderboard-row.leader,
.live-rank-row.leader,
.score-row.leader{
  background:var(--ui-score-row-leader)!important;
  color:#063f33!important;
  border-color:#e5b800!important;
}
.leaderboard-row.leader *,
.live-rank-row.leader *,
.score-row.leader *{color:#063f33!important;opacity:1!important;}
html[data-theme="dark"] .leaderboard-row:not(.leader) *,
html[data-theme="dark"] .live-rank-row:not(.leader) *,
html[data-theme="dark"] .score-row:not(.leader) *,
html[data-theme="dark"] .board-row:not(.leader) *{color:var(--ui-score-text)!important;opacity:1!important;}
html[data-theme="dark"] .round-tabs,
html[data-theme="dark"] .round-tabs *,
html[data-theme="dark"] .round-nav,
html[data-theme="dark"] .round-nav *{color:var(--ui-control-text)!important;opacity:1!important;}
html[data-theme="dark"] .score-pad-btn,
html[data-theme="dark"] .score-btn{background:#111!important;color:#fff!important;border-color:rgba(255,255,255,.22)!important;}

/* active events: button and card stay readable */
.active-events-premium{background:linear-gradient(135deg,var(--ui-card-solid),var(--ui-card-muted))!important;color:var(--text-primary)!important;}
.active-event-card.premium{background:var(--ui-control-bg)!important;color:var(--text-primary)!important;border-color:var(--ui-control-border)!important;}
.active-event-main strong{color:var(--text-primary)!important;}
.active-event-main span,.active-event-main small{color:var(--text-secondary)!important;}
.live-dot{background:var(--success-bg)!important;color:var(--success-text)!important;border-color:rgba(8,112,68,.20)!important;}
html[data-theme="dark"] .live-dot{background:rgba(183,255,53,.12)!important;color:#dfff9a!important;border-color:rgba(183,255,53,.26)!important;}

/* badges / chips / map pill */
.badge,.chip,.community-chip,.status-pill,.maps-link em{font-weight:900;color:var(--text-primary)!important;background:var(--bg-soft)!important;border-color:var(--border)!important;}
html[data-theme="dark"] .badge,
html[data-theme="dark"] .chip,
html[data-theme="dark"] .community-chip,
html[data-theme="dark"] .status-pill,
html[data-theme="dark"] .maps-link em{color:#f4fff8!important;background:rgba(183,255,53,.10)!important;border-color:rgba(183,255,53,.24)!important;}

/* icons must follow theme except actual brand avatars */
.icon-img, .icon-btn svg, .btn svg, .nav-item svg{color:inherit!important;fill:currentColor!important;stroke:currentColor!important;}
html[data-theme="dark"] .icon-img:not(.brand-logo-mark):not(.avatar-img){filter:brightness(0) invert(1)!important;opacity:1!important;}
html[data-theme="light"] .icon-img:not(.brand-logo-mark):not(.avatar-img){filter:none!important;opacity:1!important;}

/* activity: SQL errors hidden from normal feed; debug still owns detail */
.activity-card.debug-noise{display:none!important;}

@media(max-width:560px){
  .btn-mini,.btn-sm{min-width:100%;}
  .active-event-card .btn,.active-event-card .btn-mini,.active-event-card .btn-primary{width:100%;min-width:100%;}
}

/* Phase 3E-09 — Central Dark/Light Final Visibility Cleanup
   Rule: all theme readability fixes live here. Do not add per-page dark mode hacks. */
:root{
  --ui-dark-surface:#0d211b;
  --ui-dark-surface-2:#102820;
  --ui-dark-surface-3:#163329;
  --ui-dark-text:#f7fff9;
  --ui-dark-muted:#c5ddd4;
  --ui-dark-faint:#a8beb6;
  --ui-dark-border:rgba(183,255,53,.26);
  --ui-light-surface:#ffffff;
  --ui-light-surface-2:#f7fbf8;
  --ui-light-text:#063f33;
}

/* force every app surface to inherit correct theme colors */
html[data-theme="dark"] body,
html[data-theme="dark"] .app-shell,
html[data-theme="dark"] .screen,
html[data-theme="dark"] .app-main,
html[data-theme="dark"] .main-content{
  background:#07110e!important;
  color:var(--ui-dark-text)!important;
}

html[data-theme="dark"] .card,
html[data-theme="dark"] .card-soft,
html[data-theme="dark"] .hero-focus,
html[data-theme="dark"] .info-card,
html[data-theme="dark"] .event-card,
html[data-theme="dark"] .game-card,
html[data-theme="dark"] .game-panel,
html[data-theme="dark"] .game-host-panel,
html[data-theme="dark"] .participant-panel,
html[data-theme="dark"] .participant-row,
html[data-theme="dark"] .participant-card,
html[data-theme="dark"] .active-events-premium,
html[data-theme="dark"] .active-event-card,
html[data-theme="dark"] .active-event-card.premium,
html[data-theme="dark"] .community-card-premium,
html[data-theme="dark"] .community-card,
html[data-theme="dark"] .activity-card,
html[data-theme="dark"] .scoreboard-mini,
html[data-theme="dark"] .americano-board,
html[data-theme="dark"] .live-board,
html[data-theme="dark"] .round-block,
html[data-theme="dark"] .round-completed-card,
html[data-theme="dark"] .round-card,
html[data-theme="dark"] .match-card,
html[data-theme="dark"] .match-list-mini,
html[data-theme="dark"] .match-card-americano,
html[data-theme="dark"] .match-card-americano.match-finished,
html[data-theme="dark"] .final-result-card,
html[data-theme="dark"] .final-result-pro,
html[data-theme="dark"] .pro-control-panel,
html[data-theme="dark"] .modal-card,
html[data-theme="dark"] .score-picker-card,
html[data-theme="dark"] .replace-player-card,
html[data-theme="dark"] .extra-round-box,
html[data-theme="dark"] .rest-player-strip,
html[data-theme="dark"] .check-row{
  background:linear-gradient(135deg,var(--ui-dark-surface),var(--ui-dark-surface-2))!important;
  color:var(--ui-dark-text)!important;
  border-color:var(--ui-dark-border)!important;
  box-shadow:0 14px 34px rgba(0,0,0,.28)!important;
  opacity:1!important;
}

html[data-theme="dark"] .match-card-americano.match-finished,
html[data-theme="dark"] .round-completed-card{
  background:linear-gradient(135deg,#123326,#0e231d)!important;
  border-color:rgba(134,239,172,.34)!important;
}

/* text visibility across nested elements */
html[data-theme="dark"] .card *,
html[data-theme="dark"] .card-soft *,
html[data-theme="dark"] .game-card *,
html[data-theme="dark"] .game-panel *,
html[data-theme="dark"] .participant-panel *,
html[data-theme="dark"] .participant-row *,
html[data-theme="dark"] .active-events-premium *,
html[data-theme="dark"] .active-event-card *,
html[data-theme="dark"] .community-card-premium *,
html[data-theme="dark"] .activity-card *,
html[data-theme="dark"] .scoreboard-mini *,
html[data-theme="dark"] .americano-board *,
html[data-theme="dark"] .live-board *,
html[data-theme="dark"] .round-block *,
html[data-theme="dark"] .match-card-americano *,
html[data-theme="dark"] .final-result-card *,
html[data-theme="dark"] .modal-card *,
html[data-theme="dark"] .score-picker-card *{
  opacity:1!important;
}

html[data-theme="dark"] .page-title,
html[data-theme="dark"] h1,
html[data-theme="dark"] h2,
html[data-theme="dark"] h3,
html[data-theme="dark"] h4,
html[data-theme="dark"] strong,
html[data-theme="dark"] b,
html[data-theme="dark"] .event-name,
html[data-theme="dark"] .leader-name,
html[data-theme="dark"] .participant-name,
html[data-theme="dark"] .team-names,
html[data-theme="dark"] .team-names.right,
html[data-theme="dark"] .rank-no,
html[data-theme="dark"] .wlt,
html[data-theme="dark"] .diff,
html[data-theme="dark"] .pts,
html[data-theme="dark"] .court-label{
  color:var(--ui-dark-text)!important;
}

html[data-theme="dark"] .page-subtitle,
html[data-theme="dark"] p,
html[data-theme="dark"] small,
html[data-theme="dark"] span,
html[data-theme="dark"] em,
html[data-theme="dark"] .muted,
html[data-theme="dark"] .meta-list,
html[data-theme="dark"] .meta-line,
html[data-theme="dark"] .event-next-copy,
html[data-theme="dark"] .mini-guidance,
html[data-theme="dark"] .community-desc,
html[data-theme="dark"] .activity-title,
html[data-theme="dark"] .activity-meta-row,
html[data-theme="dark"] .activity-when{
  color:var(--ui-dark-muted)!important;
}

html[data-theme="dark"] .section-kicker,
html[data-theme="dark"] .board-cols,
html[data-theme="dark"] .board-cols *,
html[data-theme="dark"] .round-title span{
  color:var(--brand-lime)!important;
}

/* leaderboard: no pale rows in dark mode */
html[data-theme="dark"] .leaderboard-row,
html[data-theme="dark"] .live-rank-row,
html[data-theme="dark"] .score-row,
html[data-theme="dark"] .board-row{
  background:#122a23!important;
  color:var(--ui-dark-text)!important;
  border-color:rgba(183,255,53,.22)!important;
}
html[data-theme="dark"] .leaderboard-row:not(.leader) *,
html[data-theme="dark"] .live-rank-row:not(.leader) *,
html[data-theme="dark"] .score-row:not(.leader) *,
html[data-theme="dark"] .board-row:not(.leader) *{
  color:var(--ui-dark-text)!important;
}
html[data-theme="dark"] .leaderboard-row.leader,
html[data-theme="dark"] .live-rank-row.leader,
html[data-theme="dark"] .score-row.leader{
  background:linear-gradient(135deg,#ffe98a,#f4c542)!important;
  border-color:#ffe98a!important;
  color:#063f33!important;
}
html[data-theme="dark"] .leaderboard-row.leader *,
html[data-theme="dark"] .live-rank-row.leader *,
html[data-theme="dark"] .score-row.leader *{
  color:#063f33!important;
}

/* match / score input dark mode */
html[data-theme="dark"] .round-tabs-scroll,
html[data-theme="dark"] .chip-row{
  background:transparent!important;
}
html[data-theme="dark"] .round-tabs-scroll .chip,
html[data-theme="dark"] .chip,
html[data-theme="dark"] .badge,
html[data-theme="dark"] .status-pill,
html[data-theme="dark"] .community-chip,
html[data-theme="dark"] .round-title strong,
html[data-theme="dark"] .round-done-label{
  background:#17372c!important;
  color:var(--ui-dark-text)!important;
  border-color:rgba(183,255,53,.24)!important;
}
html[data-theme="dark"] .round-tabs-scroll .chip.active,
html[data-theme="dark"] .chip.active{
  background:#0aa072!important;
  color:#fff!important;
  border-color:rgba(183,255,53,.42)!important;
}
html[data-theme="dark"] .score-input-row input,
html[data-theme="dark"] .field-input,
html[data-theme="dark"] .search-input,
html[data-theme="dark"] input,
html[data-theme="dark"] textarea,
html[data-theme="dark"] select{
  background:#0b1c17!important;
  color:var(--ui-dark-text)!important;
  border-color:rgba(183,255,53,.26)!important;
}
html[data-theme="dark"] .score-input-row input::placeholder,
html[data-theme="dark"] .field-input::placeholder,
html[data-theme="dark"] .search-input::placeholder{
  color:var(--ui-dark-faint)!important;
}
html[data-theme="dark"] .flip-score button,
html[data-theme="dark"] .score-pill,
html[data-theme="dark"] .score-pad-btn,
html[data-theme="dark"] .score-btn{
  background:#050807!important;
  color:#fff!important;
  border:1px solid rgba(255,255,255,.22)!important;
  box-shadow:0 10px 20px rgba(0,0,0,.35)!important;
}
html[data-theme="dark"] .flip-score em{color:var(--ui-dark-muted)!important;}

/* centralized button standard: readable and not washed out */
html[data-theme="dark"] .btn,
html[data-theme="dark"] button.btn,
html[data-theme="dark"] a.btn,
html[data-theme="dark"] .btn-secondary,
html[data-theme="dark"] .btn-muted,
html[data-theme="dark"] .btn-danger-soft,
html[data-theme="dark"] .icon-btn,
html[data-theme="dark"] button:not(.unstyled):not(.score-pad-btn):not(.score-btn){
  background:#122a23!important;
  color:var(--ui-dark-text)!important;
  border-color:rgba(183,255,53,.26)!important;
  opacity:1!important;
}
html[data-theme="dark"] .btn-primary,
html[data-theme="dark"] a.btn-primary,
html[data-theme="dark"] button.btn-primary,
html[data-theme="dark"] .active-event-card .btn-primary{
  background:linear-gradient(135deg,#0aa072,#087256)!important;
  color:#fff!important;
  border-color:rgba(183,255,53,.38)!important;
}
html[data-theme="dark"] .btn-primary *,
html[data-theme="dark"] .btn-secondary *,
html[data-theme="dark"] .btn-muted *,
html[data-theme="dark"] .icon-btn *{
  color:inherit!important;
  fill:currentColor!important;
  stroke:currentColor!important;
}
html[data-theme="dark"] .btn[disabled],
html[data-theme="dark"] button[disabled],
html[data-theme="dark"] .btn-muted[disabled]{
  background:#1b2b26!important;
  color:#d1ded9!important;
  opacity:.82!important;
}

/* bottom nav / floating debug remain readable */
html[data-theme="dark"] .bottom-nav,
html[data-theme="dark"] .debug-floating,
html[data-theme="dark"] .debug-dock,
html[data-theme="dark"] .system-checks{
  background:rgba(7,17,14,.92)!important;
  border-color:rgba(183,255,53,.20)!important;
}
html[data-theme="dark"] .nav-item,
html[data-theme="dark"] .bottom-nav .nav-item{
  background:#0f241e!important;
  color:var(--ui-dark-text)!important;
  border-color:rgba(183,255,53,.24)!important;
}
html[data-theme="dark"] .nav-item.active,
html[data-theme="dark"] .bottom-nav .nav-item.active{
  background:#087256!important;
  color:#fff!important;
}
html[data-theme="dark"] .nav-label,
html[data-theme="dark"] .nav-icon{color:inherit!important;}

/* avatar/logo exception */
html[data-theme="dark"] .avatar,
html[data-theme="dark"] .avatar *,
html[data-theme="dark"] .brand-logo,
html[data-theme="dark"] .brand-logo *{
  opacity:1!important;
}

/* light mode reset: keep premium clean */
html[data-theme="light"] .match-card-americano,
html[data-theme="light"] .round-block,
html[data-theme="light"] .scoreboard-mini,
html[data-theme="light"] .americano-board,
html[data-theme="light"] .active-event-card.premium{
  color:var(--ui-light-text)!important;
}

/* prevent long labels from breaking premium card layout */
.btn,
.badge,
.chip,
.status-pill,
.community-chip,
.nav-item,
.leaderboard-row,
.participant-row,
.match-card-americano{
  min-width:0;
}
.team-names,
.leader-name,
.event-name,
.participant-name{
  overflow-wrap:anywhere;
}

/* =========================================================
   PHASE 3E-10 — CENTRAL DARK MODE CONTRAST HARDENING
   Source rule: all visual contrast fixes stay centralized here.
   Do not override dark/light readability per page.
   ========================================================= */
html[data-theme="dark"]{
  --contrast-bg:#07110e;
  --contrast-panel:#0d211b;
  --contrast-panel-2:#102a22;
  --contrast-panel-3:#14382d;
  --contrast-soft:#19372e;
  --contrast-border:rgba(183,255,53,.30);
  --contrast-border-soft:rgba(255,255,255,.14);
  --contrast-text:#f8fff9;
  --contrast-text-soft:#d9ebe4;
  --contrast-muted:#b9d0c8;
  --contrast-faint:#94aaa2;
  --contrast-lime:#b7ff35;
  --contrast-primary:#08a477;
  --contrast-primary-2:#087256;
  --contrast-danger:#fca5a5;
}

/* Universal dark surface normalization — prevents pale/grey panels with invisible text */
html[data-theme="dark"] .card,
html[data-theme="dark"] .card-soft,
html[data-theme="dark"] .hero-focus,
html[data-theme="dark"] .event-card,
html[data-theme="dark"] .active-events-premium,
html[data-theme="dark"] .active-event-card,
html[data-theme="dark"] .active-event-card.premium,
html[data-theme="dark"] .community-card-premium,
html[data-theme="dark"] .activity-card,
html[data-theme="dark"] .activity-item,
html[data-theme="dark"] .participant-panel,
html[data-theme="dark"] .participant-row,
html[data-theme="dark"] .participant-flow-hint,
html[data-theme="dark"] .game-panel,
html[data-theme="dark"] .game-card,
html[data-theme="dark"] .game-state-card,
html[data-theme="dark"] .scoreboard-mini,
html[data-theme="dark"] .americano-board,
html[data-theme="dark"] .live-board,
html[data-theme="dark"] .round-block,
html[data-theme="dark"] .round-panel,
html[data-theme="dark"] .match-card-americano,
html[data-theme="dark"] .match-card,
html[data-theme="dark"] .final-result-card,
html[data-theme="dark"] .modal-card,
html[data-theme="dark"] .debug-result,
html[data-theme="dark"] .status-card,
html[data-theme="dark"] .status-box,
html[data-theme="dark"] .info-box,
html[data-theme="dark"] .alert,
html[data-theme="dark"] .notice,
html[data-theme="dark"] .hint-box,
html[data-theme="dark"] .tips-box,
html[data-theme="dark"] .flow-box,
html[data-theme="dark"] .event-flow-card,
html[data-theme="dark"] .score-picker-card{
  background:linear-gradient(135deg,var(--contrast-panel),var(--contrast-panel-2))!important;
  color:var(--contrast-text)!important;
  border-color:var(--contrast-border)!important;
  box-shadow:0 14px 30px rgba(0,0,0,.32)!important;
  opacity:1!important;
}

/* Inner boxes that were washed out in screenshots */
html[data-theme="dark"] .card-soft,
html[data-theme="dark"] .meta-box,
html[data-theme="dark"] .role-box,
html[data-theme="dark"] .flow-step,
html[data-theme="dark"] .stat-box,
html[data-theme="dark"] .summary-box,
html[data-theme="dark"] .guidance-box,
html[data-theme="dark"] .mini-guidance,
html[data-theme="dark"] .participant-actions-panel,
html[data-theme="dark"] .action-panel,
html[data-theme="dark"] .score-input-panel,
html[data-theme="dark"] .match-body,
html[data-theme="dark"] .round-body,
html[data-theme="dark"] .disabled-panel,
html[data-theme="dark"] .empty-panel,
html[data-theme="dark"] .debug-child,
html[data-theme="dark"] .debug-suggest,
html[data-theme="dark"] .simple-row{
  background:var(--contrast-panel-3)!important;
  color:var(--contrast-text)!important;
  border-color:var(--contrast-border-soft)!important;
  opacity:1!important;
}

/* Text hierarchy: keep all page/card text readable */
html[data-theme="dark"] h1,
html[data-theme="dark"] h2,
html[data-theme="dark"] h3,
html[data-theme="dark"] h4,
html[data-theme="dark"] h5,
html[data-theme="dark"] h6,
html[data-theme="dark"] strong,
html[data-theme="dark"] b,
html[data-theme="dark"] label,
html[data-theme="dark"] .page-title,
html[data-theme="dark"] .section-title,
html[data-theme="dark"] .event-name,
html[data-theme="dark"] .participant-name,
html[data-theme="dark"] .leader-name,
html[data-theme="dark"] .team-names,
html[data-theme="dark"] .rank-no,
html[data-theme="dark"] .wlt,
html[data-theme="dark"] .diff,
html[data-theme="dark"] .pts,
html[data-theme="dark"] .court-label,
html[data-theme="dark"] .activity-title,
html[data-theme="dark"] .community-name,
html[data-theme="dark"] .brand-title{
  color:var(--contrast-text)!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-theme="dark"] p,
html[data-theme="dark"] span,
html[data-theme="dark"] small,
html[data-theme="dark"] em,
html[data-theme="dark"] li,
html[data-theme="dark"] .page-subtitle,
html[data-theme="dark"] .muted,
html[data-theme="dark"] .text-muted,
html[data-theme="dark"] .meta-list,
html[data-theme="dark"] .meta-line,
html[data-theme="dark"] .event-next-copy,
html[data-theme="dark"] .community-desc,
html[data-theme="dark"] .activity-meta-row,
html[data-theme="dark"] .activity-when,
html[data-theme="dark"] .participant-note,
html[data-theme="dark"] .helper-text,
html[data-theme="dark"] .hint-text{
  color:var(--contrast-text-soft)!important;
  opacity:1!important;
}
html[data-theme="dark"] .section-kicker,
html[data-theme="dark"] .eyebrow,
html[data-theme="dark"] .board-cols,
html[data-theme="dark"] .round-title,
html[data-theme="dark"] .round-title span{
  color:var(--contrast-lime)!important;
  opacity:1!important;
}

/* Buttons are centralized: no per-page exceptions. Avoid white disabled pill with pale text. */
html[data-theme="dark"] .btn,
html[data-theme="dark"] button,
html[data-theme="dark"] a.btn,
html[data-theme="dark"] .btn-secondary,
html[data-theme="dark"] .btn-muted,
html[data-theme="dark"] .btn-danger-soft,
html[data-theme="dark"] .icon-btn,
html[data-theme="dark"] .nav-item,
html[data-theme="dark"] .debug-strip .btn,
html[data-theme="dark"] .debug-floating .btn{
  background:var(--contrast-panel-3)!important;
  color:var(--contrast-text)!important;
  border-color:var(--contrast-border)!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-theme="dark"] .btn-primary,
html[data-theme="dark"] button.btn-primary,
html[data-theme="dark"] a.btn-primary,
html[data-theme="dark"] .active-event-card .btn-primary,
html[data-theme="dark"] .event-card .btn-primary{
  background:linear-gradient(135deg,var(--contrast-primary),var(--contrast-primary-2))!important;
  color:#ffffff!important;
  border-color:rgba(183,255,53,.45)!important;
  box-shadow:0 12px 22px rgba(0,0,0,.32)!important;
}
html[data-theme="dark"] .btn *,
html[data-theme="dark"] button *,
html[data-theme="dark"] .icon-btn *,
html[data-theme="dark"] .nav-item *{
  color:inherit!important;
  fill:currentColor!important;
  stroke:currentColor!important;
  opacity:1!important;
}
html[data-theme="dark"] .btn[disabled],
html[data-theme="dark"] button[disabled],
html[data-theme="dark"] .btn.disabled,
html[data-theme="dark"] .btn-muted[disabled],
html[data-theme="dark"] .disabled,
html[data-theme="dark"] .is-disabled{
  background:#20332d!important;
  color:#dbe8e2!important;
  border-color:rgba(255,255,255,.20)!important;
  opacity:1!important;
  cursor:not-allowed!important;
}

/* Badges / chips / pills must remain readable in all dark screens */
html[data-theme="dark"] .badge,
html[data-theme="dark"] .pill,
html[data-theme="dark"] .status-pill,
html[data-theme="dark"] .community-chip,
html[data-theme="dark"] .chip,
html[data-theme="dark"] .status-chip,
html[data-theme="dark"] .tag,
html[data-theme="dark"] .role-chip,
html[data-theme="dark"] .round-tabs-scroll .chip{
  background:#173a2f!important;
  color:var(--contrast-text)!important;
  border-color:rgba(183,255,53,.32)!important;
  opacity:1!important;
}
html[data-theme="dark"] .badge-verified,
html[data-theme="dark"] .status-success,
html[data-theme="dark"] .status-ready{
  background:rgba(22,163,74,.28)!important;
  color:#bfffd2!important;
}
html[data-theme="dark"] .badge-pending,
html[data-theme="dark"] .status-warning{
  background:rgba(245,158,11,.24)!important;
  color:#ffe0a3!important;
}
html[data-theme="dark"] .badge-absent,
html[data-theme="dark"] .status-danger{
  background:rgba(239,68,68,.22)!important;
  color:#ffc4c4!important;
}
html[data-theme="dark"] .chip.active,
html[data-theme="dark"] .nav-item.active,
html[data-theme="dark"] .bottom-nav .nav-item.active{
  background:linear-gradient(135deg,#0aa072,#087256)!important;
  color:#fff!important;
  border-color:rgba(183,255,53,.50)!important;
}

/* Leaderboard and match cards */
html[data-theme="dark"] .leaderboard-row,
html[data-theme="dark"] .live-rank-row,
html[data-theme="dark"] .score-row,
html[data-theme="dark"] .board-row,
html[data-theme="dark"] .match-row{
  background:#112b23!important;
  color:var(--contrast-text)!important;
  border-color:rgba(183,255,53,.26)!important;
  opacity:1!important;
}
html[data-theme="dark"] .leaderboard-row:not(.leader) *,
html[data-theme="dark"] .live-rank-row:not(.leader) *,
html[data-theme="dark"] .score-row:not(.leader) *,
html[data-theme="dark"] .board-row:not(.leader) *,
html[data-theme="dark"] .match-row *{
  color:var(--contrast-text)!important;
  opacity:1!important;
}
html[data-theme="dark"] .leaderboard-row.leader,
html[data-theme="dark"] .live-rank-row.leader,
html[data-theme="dark"] .score-row.leader{
  background:linear-gradient(135deg,#ffe98a,#f4c542)!important;
  color:#063f33!important;
  border-color:#ffe98a!important;
}
html[data-theme="dark"] .leaderboard-row.leader *,
html[data-theme="dark"] .live-rank-row.leader *,
html[data-theme="dark"] .score-row.leader *{
  color:#063f33!important;
  opacity:1!important;
}

/* Score panels: remove washed-out white blocks */
html[data-theme="dark"] .score-input-row,
html[data-theme="dark"] .score-input-row input,
html[data-theme="dark"] .score-value,
html[data-theme="dark"] .score-input,
html[data-theme="dark"] .field-input,
html[data-theme="dark"] .search-input,
html[data-theme="dark"] input,
html[data-theme="dark"] textarea,
html[data-theme="dark"] select{
  background:#0a1a16!important;
  color:var(--contrast-text)!important;
  border-color:rgba(183,255,53,.30)!important;
  opacity:1!important;
}
html[data-theme="dark"] input::placeholder,
html[data-theme="dark"] textarea::placeholder,
html[data-theme="dark"] .search-input::placeholder{
  color:#9eb6ae!important;
  opacity:1!important;
}
html[data-theme="dark"] .flip-score button,
html[data-theme="dark"] .score-pill,
html[data-theme="dark"] .score-pad-btn,
html[data-theme="dark"] .score-btn{
  background:#020504!important;
  color:#fff!important;
  border-color:rgba(255,255,255,.25)!important;
  box-shadow:0 10px 20px rgba(0,0,0,.45)!important;
}

/* Bottom nav and debug floating must not cover content with low contrast */
html[data-theme="dark"] .bottom-nav,
html[data-theme="dark"] .debug-strip,
html[data-theme="dark"] .debug-floating,
html[data-theme="dark"] .debug-dock,
html[data-theme="dark"] .system-checks{
  background:rgba(5,12,10,.94)!important;
  color:var(--contrast-text)!important;
  border-color:rgba(183,255,53,.24)!important;
  box-shadow:0 18px 34px rgba(0,0,0,.42)!important;
}

/* Keep dark mode readable even when older blocks used rgba white backgrounds */
html[data-theme="dark"] [style*="background:#fff"],
html[data-theme="dark"] [style*="background: #fff"],
html[data-theme="dark"] [style*="background:white"],
html[data-theme="dark"] [style*="background: white"],
html[data-theme="dark"] [style*="background-color:#fff"],
html[data-theme="dark"] [style*="background-color: #fff"],
html[data-theme="dark"] [style*="background-color:white"],
html[data-theme="dark"] [style*="background-color: white"]{
  background:var(--contrast-panel-2)!important;
  color:var(--contrast-text)!important;
}

/* Light mode remains clean and readable */
html[data-theme="light"] .btn[disabled],
html[data-theme="light"] button[disabled],
html[data-theme="light"] .btn.disabled,
html[data-theme="light"] .is-disabled{
  color:#4f6961!important;
  opacity:1!important;
}

/* Phase 3E.11 final polish — centralized tournament UX */
.final-result-screen{border:1px solid var(--border-strong)!important;background:linear-gradient(135deg,var(--bg-card),var(--bg-soft-2))!important;color:var(--text-primary)!important;box-shadow:var(--shadow)!important}
.final-hero-line{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap}.final-hero-line h3{margin:0;font-size:1.45rem;line-height:1.05;color:var(--text-primary)!important}.final-hero-line span,.final-result-screen span{color:var(--text-secondary)!important}.final-score-badge{display:grid;place-items:center;min-width:64px;min-height:64px;border-radius:18px;background:var(--accent-soft);border:1px solid var(--border-strong);font-size:1.4rem;font-weight:950;color:var(--text-primary)}.final-score-badge small{font-size:.62rem;text-transform:uppercase;color:var(--text-secondary)}
.final-full-board{display:grid;gap:7px}.final-board-row{display:grid;grid-template-columns:40px minmax(0,1fr) 54px 48px 44px;gap:8px;align-items:center;border:1px solid var(--border);background:var(--bg-surface);border-radius:13px;padding:9px 10px;color:var(--text-primary)}.final-board-row strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.final-board-row em{font-style:normal;color:var(--text-secondary);font-size:.75rem;font-weight:900}.final-board-row b,.final-board-row i{font-style:normal;text-align:right;font-weight:950;color:var(--text-primary)}.final-actions{justify-content:flex-start!important}.final-actions .btn{min-width:0}
.p311-board{background:var(--bg-card)!important;border:1px solid var(--border)!important;border-radius:18px}.p311-round-tabs{position:sticky;top:58px;z-index:4;background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:9px;margin-bottom:10px;box-shadow:var(--shadow-soft);overflow-x:auto!important;flex-wrap:nowrap!important}.p311-round-block{background:var(--bg-card);border:1px solid var(--border);border-radius:18px;padding:10px}.round-state{font-style:normal;margin-left:auto;border-radius:999px;padding:5px 9px;font-size:.65rem;font-weight:950;text-transform:uppercase;border:1px solid var(--border)}.round-state.complete{background:var(--success-bg);color:var(--success-text)}.round-state.live{background:var(--info-bg);color:var(--info-text)}
.match-card-americano.match-active{border-color:var(--accent)!important;box-shadow:0 0 0 2px var(--accent-soft), var(--shadow)!important}.next-match-hint{margin-top:10px;border-radius:999px;padding:7px 10px;background:var(--accent-soft);border:1px solid var(--border-strong);color:var(--text-primary);font-weight:900;font-size:.75rem;text-align:center}.rest-player-strip.muted{justify-content:center;color:var(--text-tertiary)}
.podium-card,.final-board-row,.leaderboard-row,.match-card-americano,.score-input-row input,.score-pad-btn{transition:background .15s ease,color .15s ease,border-color .15s ease,transform .15s ease}.live-rank-row{will-change:transform,opacity}.btn.btn-primary,.btn.btn-secondary,.btn.btn-muted,.btn.btn-danger-soft{white-space:normal;text-align:center;line-height:1.12}
html[data-theme="dark"] .final-result-screen,html[data-theme="dark"] .p311-board,html[data-theme="dark"] .p311-round-block,html[data-theme="dark"] .p311-round-tabs{background:#0e211b!important;color:#f4fff8!important;border-color:rgba(183,255,53,.32)!important}html[data-theme="dark"] .final-board-row,html[data-theme="dark"] .podium-card{background:#132b23!important;border-color:rgba(183,255,53,.24)!important;color:#f4fff8!important}html[data-theme="dark"] .final-board-row *,html[data-theme="dark"] .podium-card *,html[data-theme="dark"] .final-result-screen h3,html[data-theme="dark"] .final-result-screen strong{color:#f4fff8!important}html[data-theme="dark"] .final-result-screen span,html[data-theme="dark"] .final-result-screen em,html[data-theme="dark"] .final-board-row em{color:#b5cbc5!important}html[data-theme="dark"] .match-card-americano{background:#10261f!important;border-color:rgba(183,255,53,.22)!important;color:#f4fff8!important}html[data-theme="dark"] .score-input-row input{background:#07110e!important;color:#f4fff8!important;border-color:rgba(183,255,53,.28)!important}
@media(max-width:560px){.final-board-row{grid-template-columns:34px minmax(0,1fr) 46px 42px 36px;font-size:.78rem}.final-hero-line{display:grid}.final-score-badge{min-width:52px;min-height:52px}.p311-round-tabs{top:54px}.final-actions .btn{flex:1 1 100%}}

/* Phase 3E-12 final dark contrast hardening
   Centralized fix only: do not patch per-page markup. All dark mode surfaces must use
   the same readable tokens so grey panels and pale text cannot reappear. */
html[data-theme="dark"]{
  --p312-bg:#07110e;
  --p312-card:#0d211b;
  --p312-card-2:#10281f;
  --p312-card-3:#14372c;
  --p312-border:rgba(183,255,53,.28);
  --p312-border-soft:rgba(255,255,255,.14);
  --p312-text:#f7fff9;
  --p312-text-soft:#d6e8e2;
  --p312-muted:#b4ccc4;
  --p312-lime:#b7ff35;
  --p312-green:#087256;
  --p312-danger:#ffd4d4;
}

html[data-theme="dark"] body,
html[data-theme="dark"] .app-shell,
html[data-theme="dark"] .app-main{
  background:radial-gradient(circle at 18% 0%,rgba(183,255,53,.08),transparent 26rem),var(--p312-bg)!important;
  color:var(--p312-text)!important;
}

/* Main cards/panels: replaces washed out gray blocks shown in screenshots */
html[data-theme="dark"] .profile-identity-card,
html[data-theme="dark"] .profile-identity-card.compact,
html[data-theme="dark"] .activity-hero,
html[data-theme="dark"] .surface-section,
html[data-theme="dark"] .user-status-panel,
html[data-theme="dark"] .event-identity-card,
html[data-theme="dark"] .participant-flow-card,
html[data-theme="dark"] .game-host-panel,
html[data-theme="dark"] .phase3e-game-card,
html[data-theme="dark"] .card,
html[data-theme="dark"] .card-soft,
html[data-theme="dark"] .status-card,
html[data-theme="dark"] .status-box,
html[data-theme="dark"] .info-box,
html[data-theme="dark"] .inline-message,
html[data-theme="dark"] .event-flow-card,
html[data-theme="dark"] .flow-box,
html[data-theme="dark"] .participant-actions-panel,
html[data-theme="dark"] .action-panel,
html[data-theme="dark"] .score-input-panel,
html[data-theme="dark"] .disabled-panel,
html[data-theme="dark"] .empty-panel,
html[data-theme="dark"] .final-result-card,
html[data-theme="dark"] .final-result-screen,
html[data-theme="dark"] .p311-board,
html[data-theme="dark"] .p311-round-block,
html[data-theme="dark"] .p311-round-tabs{
  background:linear-gradient(135deg,var(--p312-card),var(--p312-card-2))!important;
  color:var(--p312-text)!important;
  border-color:var(--p312-border)!important;
  box-shadow:0 16px 36px rgba(0,0,0,.38)!important;
  opacity:1!important;
}

/* Inner boxes/stat cards: no gray-on-white in dark mode */
html[data-theme="dark"] .profile-stats-row span,
html[data-theme="dark"] .participant-summary-grid div,
html[data-theme="dark"] .game-summary-grid div,
html[data-theme="dark"] .status-progress,
html[data-theme="dark"] .progress-step,
html[data-theme="dark"] .onboarding-steps div,
html[data-theme="dark"] .mini-guidance,
html[data-theme="dark"] .guidance-box,
html[data-theme="dark"] .hint-box,
html[data-theme="dark"] .tips-box,
html[data-theme="dark"] .rest-player-strip,
html[data-theme="dark"] .round-tabs-scroll,
html[data-theme="dark"] .score-picker-card,
html[data-theme="dark"] .match-body,
html[data-theme="dark"] .round-body,
html[data-theme="dark"] .simple-row{
  background:var(--p312-card-3)!important;
  color:var(--p312-text)!important;
  border-color:var(--p312-border-soft)!important;
  opacity:1!important;
}

/* Status info / disabled guidance should still be readable */
html[data-theme="dark"] .inline-message,
html[data-theme="dark"] .mini-guidance,
html[data-theme="dark"] .disabled-panel,
html[data-theme="dark"] .btn[disabled],
html[data-theme="dark"] button[disabled],
html[data-theme="dark"] .btn.disabled,
html[data-theme="dark"] .is-disabled{
  background:#1d312a!important;
  color:var(--p312-text-soft)!important;
  border-color:rgba(255,255,255,.20)!important;
  opacity:1!important;
}

/* Red/danger actions must not become dark red-on-dark invisible */
html[data-theme="dark"] .btn-danger-soft,
html[data-theme="dark"] .badge-absent,
html[data-theme="dark"] .status-danger,
html[data-theme="dark"] .activity-card.danger .activity-marker{
  background:rgba(239,68,68,.26)!important;
  color:var(--p312-danger)!important;
  border-color:rgba(248,113,113,.42)!important;
}

/* Text hierarchy: force clear contrast for every nested text in the problem areas */
html[data-theme="dark"] .profile-identity-card *,
html[data-theme="dark"] .activity-hero *,
html[data-theme="dark"] .user-status-panel *,
html[data-theme="dark"] .event-identity-card *,
html[data-theme="dark"] .participant-flow-card *,
html[data-theme="dark"] .game-host-panel *,
html[data-theme="dark"] .phase3e-game-card *,
html[data-theme="dark"] .event-flow-card *,
html[data-theme="dark"] .flow-box *,
html[data-theme="dark"] .final-result-screen *,
html[data-theme="dark"] .p311-board *{
  color:var(--p312-text)!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-theme="dark"] .profile-role-line,
html[data-theme="dark"] .profile-stats-row small,
html[data-theme="dark"] .participant-summary-grid span,
html[data-theme="dark"] .game-summary-grid span,
html[data-theme="dark"] .page-subtitle,
html[data-theme="dark"] .meta-line,
html[data-theme="dark"] .muted,
html[data-theme="dark"] .text-muted,
html[data-theme="dark"] .participant-note,
html[data-theme="dark"] .helper-text,
html[data-theme="dark"] .hint-text,
html[data-theme="dark"] .flow-box p,
html[data-theme="dark"] .event-flow-card p,
html[data-theme="dark"] .inline-message p,
html[data-theme="dark"] .mini-guidance small{
  color:var(--p312-text-soft)!important;
  opacity:1!important;
}
html[data-theme="dark"] .section-kicker,
html[data-theme="dark"] .eyebrow,
html[data-theme="dark"] .round-title,
html[data-theme="dark"] .board-cols,
html[data-theme="dark"] .profile-identity-card .section-kicker,
html[data-theme="dark"] .user-status-panel .section-kicker,
html[data-theme="dark"] .participant-flow-card .section-kicker{
  color:var(--p312-lime)!important;
  letter-spacing:.16em;
  opacity:1!important;
}

/* Buttons, chips, nav: one centralized readable standard */
html[data-theme="dark"] .btn,
html[data-theme="dark"] button,
html[data-theme="dark"] a.btn,
html[data-theme="dark"] .chip,
html[data-theme="dark"] .badge,
html[data-theme="dark"] .status-pill,
html[data-theme="dark"] .community-chip,
html[data-theme="dark"] .role-chip,
html[data-theme="dark"] .nav-item,
html[data-theme="dark"] .icon-btn,
html[data-theme="dark"] .debug-strip .btn,
html[data-theme="dark"] .debug-floating .btn{
  background:var(--p312-card-3)!important;
  color:var(--p312-text)!important;
  border-color:var(--p312-border)!important;
  opacity:1!important;
  text-shadow:none!important;
}
html[data-theme="dark"] .btn-primary,
html[data-theme="dark"] button.btn-primary,
html[data-theme="dark"] a.btn-primary,
html[data-theme="dark"] .chip.active,
html[data-theme="dark"] .nav-item.active{
  background:linear-gradient(135deg,#0aa072,#087256)!important;
  color:#ffffff!important;
  border-color:rgba(183,255,53,.62)!important;
}
html[data-theme="dark"] .btn *,
html[data-theme="dark"] button *,
html[data-theme="dark"] .chip *,
html[data-theme="dark"] .badge *,
html[data-theme="dark"] .nav-item *,
html[data-theme="dark"] .icon-btn *{
  color:inherit!important;
  fill:currentColor!important;
  stroke:currentColor!important;
  opacity:1!important;
}

/* Score/ranking/tournament blocks also obey the same contrast */
html[data-theme="dark"] .leaderboard-row,
html[data-theme="dark"] .live-rank-row,
html[data-theme="dark"] .score-row,
html[data-theme="dark"] .board-row,
html[data-theme="dark"] .match-row,
html[data-theme="dark"] .match-card-americano,
html[data-theme="dark"] .final-board-row,
html[data-theme="dark"] .podium-card{
  background:var(--p312-card-2)!important;
  color:var(--p312-text)!important;
  border-color:var(--p312-border)!important;
  opacity:1!important;
}
html[data-theme="dark"] .leaderboard-row:not(.leader) *,
html[data-theme="dark"] .live-rank-row:not(.leader) *,
html[data-theme="dark"] .score-row:not(.leader) *,
html[data-theme="dark"] .board-row:not(.leader) *,
html[data-theme="dark"] .match-row *,
html[data-theme="dark"] .match-card-americano *,
html[data-theme="dark"] .final-board-row *,
html[data-theme="dark"] .podium-card *{
  color:var(--p312-text)!important;
  opacity:1!important;
}
html[data-theme="dark"] .leaderboard-row.leader,
html[data-theme="dark"] .live-rank-row.leader,
html[data-theme="dark"] .score-row.leader{
  background:linear-gradient(135deg,#ffe98a,#f4c542)!important;
  color:#063f33!important;
  border-color:#ffe98a!important;
}
html[data-theme="dark"] .leaderboard-row.leader *,
html[data-theme="dark"] .live-rank-row.leader *,
html[data-theme="dark"] .score-row.leader *{
  color:#063f33!important;
}

/* Last-resort inline gray/white background override for legacy snippets */
html[data-theme="dark"] [style*="background:#f"],
html[data-theme="dark"] [style*="background: #f"],
html[data-theme="dark"] [style*="background:#e"],
html[data-theme="dark"] [style*="background: #e"],
html[data-theme="dark"] [style*="background:#d"],
html[data-theme="dark"] [style*="background: #d"],
html[data-theme="dark"] [style*="background:#c"],
html[data-theme="dark"] [style*="background: #c"],
html[data-theme="dark"] [style*="background:white"],
html[data-theme="dark"] [style*="background: white"],
html[data-theme="dark"] [style*="background-color:#f"],
html[data-theme="dark"] [style*="background-color: #f"],
html[data-theme="dark"] [style*="background-color:#e"],
html[data-theme="dark"] [style*="background-color: #e"],
html[data-theme="dark"] [style*="background-color:#d"],
html[data-theme="dark"] [style*="background-color: #d"],
html[data-theme="dark"] [style*="background-color:#c"],
html[data-theme="dark"] [style*="background-color: #c"],
html[data-theme="dark"] [style*="background-color:white"],
html[data-theme="dark"] [style*="background-color: white"]{
  background:var(--p312-card-3)!important;
  color:var(--p312-text)!important;
  border-color:var(--p312-border-soft)!important;
}
