/* All selectors are scoped to avoid changing Divi modules or the WordPress dashboard. */
.kmt-app { --kmt-red:#b11f2e; --kmt-red-dark:#8c1825; --kmt-ink:#172b36; --kmt-muted:#526471; --kmt-border:#d6e0e5; --kmt-soft:#f3f6f8; box-sizing:border-box; font-family:system-ui,-apple-system,"Segoe UI",sans-serif; font-size:15px; line-height:1.55; color:var(--kmt-ink); background:var(--kmt-soft); padding:24px; border-radius:16px; width:100%; max-width:1600px; margin:16px auto; text-align:left; }
.kmt-app *, .kmt-app *::before, .kmt-app *::after { box-sizing:border-box; }
.kmt-app h2,.kmt-app h3,.kmt-app h4 { font-family:inherit; font-weight:700; color:var(--kmt-ink); line-height:1.25; padding:0; text-transform:none; letter-spacing:normal; }
.kmt-app h2 { font-size:clamp(23px,3vw,34px); margin:0 0 8px; }
.kmt-app h3 { font-size:20px; margin:0 0 16px; }
.kmt-app h4 { font-size:17px; margin:0 0 14px; }
.kmt-app p { margin:0 0 14px; padding:0; }
.kmt-app .kmt-eyebrow { color:var(--kmt-red); font-weight:750; font-size:12px; letter-spacing:.12em; text-transform:uppercase; margin-bottom:8px; }
.kmt-app .kmt-header { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px; margin-bottom:20px; }
.kmt-app .kmt-toolbar { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.kmt-app .kmt-muted { color:var(--kmt-muted); font-size:13px; }
.kmt-app .kmt-card { display:block; background:#fff; padding:22px; border:1px solid var(--kmt-border); border-radius:12px; margin-bottom:20px; box-shadow:0 2px 8px #172b3608; min-width:0; }
.kmt-app .kmt-section-title { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; margin-bottom:18px; }
.kmt-app .kmt-section-title h3 { margin:0; }
.kmt-app .kmt-rules { border-left:4px solid var(--kmt-red); background:#fff; padding:14px 18px; border-radius:4px; font-size:14px; margin-bottom:20px; }
.kmt-app .kmt-winners { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.kmt-app .kmt-winner { border-radius:10px; padding:18px; color:#fff; background:#27546a; }
.kmt-app .kmt-winner h4 { color:#fff; font-size:15px; }
.kmt-app .kmt-winner p { color:#fff; margin:0 0 6px; }
.kmt-app .kmt-winner-name { font-size:18px; font-weight:700; overflow-wrap:anywhere; }
.kmt-app .kmt-women { background:#a12436; }
.kmt-app .kmt-boys { background:#227452; }
.kmt-app .kmt-girls { background:#854582; }
.kmt-app .kmt-btn,.kmt-app button.kmt-btn { display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--kmt-red); border-radius:7px; background:var(--kmt-red); color:#fff; font-family:inherit; font-weight:650; font-size:14px; line-height:1.3; padding:11px 15px; cursor:pointer; min-height:42px; text-decoration:none; box-shadow:none; width:auto; margin:0; }
.kmt-app .kmt-btn:hover { background:var(--kmt-red-dark); border-color:var(--kmt-red-dark); color:#fff; }
.kmt-app .kmt-btn.kmt-secondary { background:#fff; color:var(--kmt-ink); border-color:var(--kmt-border); }
.kmt-app .kmt-btn.kmt-secondary:hover { background:#edf2f5; color:var(--kmt-ink); border-color:#9bb2c0; }
.kmt-app .kmt-btn.kmt-danger { background:#fff; color:#a11b2c; border-color:#e6b3bb; }
.kmt-app .kmt-btn.kmt-danger:hover { background:#fff1f2; color:#8c1825; border-color:#a11b2c; }
.kmt-app .kmt-btn.kmt-small { padding:7px 10px; min-height:34px; font-size:12px; }
.kmt-app .kmt-field { display:flex; flex-direction:column; gap:6px; margin:0; min-width:0; font-size:13px; font-weight:600; color:var(--kmt-ink); }
.kmt-app input:not([type=checkbox]),.kmt-app select { display:block; font:inherit; font-size:15px; font-weight:400; line-height:1.4; color:var(--kmt-ink); background:#fff; border:1px solid #a9bbc6; border-radius:6px; padding:10px 12px; min-height:42px; width:100%; max-width:100%; margin:0; height:auto; box-shadow:none; }
.kmt-app input[type=checkbox] { width:18px; height:18px; flex:0 0 18px; accent-color:var(--kmt-red); margin:0; }
.kmt-app .kmt-checkbox { display:flex; align-items:center; gap:9px; font-weight:500; font-size:14px; }
.kmt-app .kmt-form { display:flex; flex-direction:column; align-items:stretch; gap:15px; margin:0; }
.kmt-app .kmt-form .kmt-btn { align-self:flex-start; }
.kmt-app .kmt-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.kmt-app .kmt-columns { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.kmt-app .kmt-filters { display:flex; gap:14px; flex-wrap:wrap; margin-bottom:18px; }
.kmt-app .kmt-filters .kmt-field { min-width:150px; flex:1; }
.kmt-app .kmt-table-wrap { overflow:auto; max-width:100%; border:1px solid var(--kmt-border); border-radius:8px; margin-bottom:14px; }
.kmt-app .kmt-table-scroll { max-height:480px; max-height:min(480px,60vh); }
.kmt-app .kmt-table-scroll thead th { position:sticky; top:0; z-index:1; box-shadow:0 1px 0 var(--kmt-border); }
.kmt-app .kmt-table { width:100%; border-collapse:collapse; margin:0; font-size:14px; border:0; background:#fff; table-layout:auto; }
.kmt-app .kmt-table th,.kmt-app .kmt-table td { padding:12px 14px; border:0; border-bottom:1px solid var(--kmt-border); text-align:left; vertical-align:middle; white-space:nowrap; }
.kmt-app .kmt-table th { background:#ecf1f4; font-weight:650; color:var(--kmt-ink); }
.kmt-app .kmt-table tbody tr:nth-child(even) { background:#f8fafb; }
.kmt-app .kmt-total { color:var(--kmt-red); font-weight:800; font-size:16px; }
.kmt-app .kmt-table-actions .kmt-btn { margin-right:5px; }
.kmt-app .kmt-badge { display:inline-block; font-size:11px; font-weight:600; background:#e9eef2; border-radius:4px; margin-left:8px; padding:2px 6px; }
.kmt-app .kmt-round { border:1px solid var(--kmt-border); border-radius:8px; margin-bottom:16px; overflow:hidden; }
.kmt-app summary { cursor:pointer; padding:14px 16px; font-weight:700; color:var(--kmt-ink); list-style:revert; display:list-item; }
.kmt-app .kmt-round > summary { background:#f5f8fa; }
.kmt-app .kmt-round-content { padding:18px; }
.kmt-app .kmt-timer-row { display:flex; gap:20px; justify-content:space-between; align-items:center; flex-wrap:wrap; margin-bottom:10px; }
.kmt-app .kmt-timer { font-variant-numeric:tabular-nums; font-size:38px; font-weight:800; color:var(--kmt-ink); letter-spacing:1px; }
.kmt-app .kmt-time-up { color:var(--kmt-red); }
.kmt-app .kmt-matches { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr)); gap:14px; }
.kmt-app .kmt-match { border:1px solid var(--kmt-border); border-radius:9px; padding:18px; background:#fff; }
.kmt-app .kmt-match h4 { color:var(--kmt-red); }
.kmt-app .kmt-team { display:flex; flex-direction:column; gap:5px; }
.kmt-app .kmt-team strong { color:var(--kmt-muted); font-size:12px; text-transform:uppercase; }
.kmt-app .kmt-versus { margin:8px 0; color:var(--kmt-muted); font-size:12px; }
.kmt-app .kmt-result-form { margin-top:16px; display:flex; flex-direction:column; gap:12px; }
.kmt-app .kmt-result-form fieldset { border:0; padding:0; margin:0; display:flex; flex-direction:column; gap:12px; min-width:0; }
.kmt-app .kmt-result-form legend { padding:0; margin-bottom:8px; }
.kmt-app fieldset:disabled { opacity:.6; }
.kmt-app button:disabled { cursor:default; }
.kmt-app .kmt-manual-court { border:1px solid var(--kmt-border); padding:16px; border-radius:8px; margin-bottom:14px; }
.kmt-app .kmt-pause-list { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr)); gap:12px; max-height:360px; overflow:auto; padding:4px; }
.kmt-app .kmt-gate-help { margin-top:18px; }
.kmt-app .kmt-balance { border-left:4px solid #27546a; }
.kmt-app .kmt-score-pair { display:grid; grid-template-columns:1fr auto 1fr; align-items:end; gap:8px; }
.kmt-app .kmt-score-pair > span { padding:10px 0; }
.kmt-app .kmt-score-display { font-weight:800; font-size:24px; padding-top:16px; margin:0; }
.kmt-app .kmt-waiting { margin:18px 0 0; font-size:14px; }
.kmt-app .kmt-notice { padding:12px 16px; border:1px solid #b8d9c6; border-radius:8px; margin:0 0 16px; background:#edf8f1; color:#21553a; font-weight:550; }
.kmt-app .kmt-error { background:#fff0f1; border-color:#ebc3c8; color:#912333; }
.kmt-app .kmt-info { background:#edf5fd; border-color:#bad3e9; color:#244c6d; }
.kmt-app .kmt-admin-tools > summary { padding:0; margin-bottom:0; }
.kmt-app .kmt-admin-tools[open] > summary { margin-bottom:22px; }
.kmt-app .kmt-admin-tools > .kmt-columns { margin-top:20px; }
.kmt-app .kmt-admin-tools section > .kmt-btn { margin:8px 8px 0 0; }
.kmt-app .kmt-shortcode { padding:12px; background:#f3f6f8; border-radius:6px; overflow-wrap:anywhere; font-size:13px; }
.kmt-app code { color:var(--kmt-ink); background:#edf1f4; font-size:13px; }
.kmt-app .kmt-save-info { font-size:12px; color:var(--kmt-muted); margin:16px 0 0; }
.kmt-app :focus-visible { outline:3px solid #0b78b0; outline-offset:3px; }
.kmt-app.kmt-busy { cursor:progress; }
.kmt-app.kmt-busy button,.kmt-app.kmt-busy input,.kmt-app.kmt-busy select { pointer-events:none; opacity:.65; }
@media(max-width:900px) { .kmt-app .kmt-winners { grid-template-columns:repeat(2,minmax(0,1fr)); } .kmt-app .kmt-columns { grid-template-columns:1fr; } }
@media(max-width:540px) { .kmt-app { padding:12px; border-radius:10px; } .kmt-app .kmt-card { padding:16px; } .kmt-app .kmt-form-grid { grid-template-columns:1fr; } .kmt-app .kmt-round-content { padding:12px; } .kmt-app .kmt-winner { padding:12px; } .kmt-app .kmt-winner-name { font-size:16px; } .kmt-app .kmt-toolbar { width:100%; } .kmt-app .kmt-toolbar > .kmt-field { width:100%; } }
@media print { .kmt-app { max-width:100%; padding:0; background:#fff; font-size:10pt; } .kmt-app .kmt-btn,.kmt-app .kmt-filters,.kmt-app .kmt-admin-tools,.kmt-app .kmt-form,.kmt-app .kmt-table-actions,.kmt-app [data-selector],.kmt-app [data-message] { display:none!important; } .kmt-app .kmt-card { box-shadow:none; break-inside:avoid; padding:10px; } .kmt-app .kmt-winner { background:#fff!important; color:#000!important; border:1px solid #999; } .kmt-app .kmt-winner h4,.kmt-app .kmt-winner p { color:#000!important; } .kmt-app .kmt-table-wrap { overflow:visible; max-height:none; } .kmt-app .kmt-table-scroll thead th { position:static; box-shadow:none; } .kmt-app .kmt-table { font-size:8pt; } .kmt-app .kmt-table th,.kmt-app .kmt-table td { padding:4px; white-space:normal; } }
