:root{--swat-yellow:#f7c600;--swat-black:#111}.swat-os-wrap,.swat-scanner,.swat-pass-card,.swat-status-card{box-sizing:border-box;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.swat-os-wrap *,.swat-scanner *,.swat-pass-card *,.swat-status-card *{box-sizing:border-box}.swat-os-wrap{max-width:980px;margin:28px auto;color:#151515}.swat-os-hero{background:var(--swat-black);color:#fff;border-radius:20px;padding:36px;box-shadow:0 18px 45px rgba(0,0,0,.12)}.swat-os-hero.compact{padding:28px}.swat-os-hero h1{font-size:clamp(32px,7vw,54px);line-height:.96;margin:7px 0 12px;text-transform:uppercase;letter-spacing:-.03em}.swat-os-hero p{font-size:17px;line-height:1.55;margin:0;max-width:760px;color:#ddd}.eyebrow{font-size:12px;font-weight:900;letter-spacing:.16em;color:var(--swat-yellow);text-transform:uppercase}.swat-public-form{background:#fff;border:1px solid #e6e6e6;border-radius:20px;padding:28px;margin-top:18px;box-shadow:0 10px 32px rgba(0,0,0,.06)}.swat-form-grid.front{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.swat-form-grid.front .full{grid-column:1/-1}.swat-public-form label,.swat-scanner-form label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.swat-public-form input,.swat-public-form select,.swat-public-form textarea,.swat-scanner-form input{width:100%;border:1px solid #cfcfcf;border-radius:10px;padding:13px 14px;background:#fff;color:#111;font:inherit;text-transform:none;letter-spacing:normal}.swat-public-form textarea{resize:vertical}.swat-primary-button,.swat-scanner button,.swat-info-box button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:11px;background:var(--swat-yellow);color:#111;padding:15px 20px;font-size:14px;font-weight:950;letter-spacing:.04em;cursor:pointer;margin-top:18px}.swat-form-note{font-size:12px!important;color:#666!important;margin:12px 0 0!important}.swat-success-box{margin:18px 0 0;border-left:6px solid #138a36;background:#edf9f0;padding:17px 18px;border-radius:8px}.swat-status-card{max-width:1050px;margin:18px auto;border-radius:18px;padding:22px 24px;border:1px solid #ddd;background:#fff;box-shadow:0 10px 30px rgba(0,0,0,.06)}.swat-status-card.green{border-left:8px solid #168a3d}.swat-status-card.yellow{border-left:8px solid #e4ad00}.swat-status-card.red{border-left:8px solid #c52525}.swat-status-card.blue{border-left:8px solid #276cb5}.swat-status-label{font-size:12px;font-weight:950;letter-spacing:.12em;text-transform:uppercase}.swat-status-card.green .swat-status-label{color:#168a3d}.swat-status-card.yellow .swat-status-label{color:#9b7600}.swat-status-card.red .swat-status-label{color:#c52525}.swat-status-card.blue .swat-status-label{color:#276cb5}.swat-status-card h2{font-size:26px;margin:7px 0}.swat-status-card p{margin:0 0 9px;font-size:16px;line-height:1.5}.swat-status-card small{color:#777}.swat-price-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:18px}.swat-price-grid article{border:1px solid #e0e0e0;background:#fff;border-radius:16px;padding:22px;text-align:center;box-shadow:0 7px 20px rgba(0,0,0,.04)}.swat-price-grid span{display:block;font-size:12px;font-weight:850;min-height:38px;text-transform:uppercase;letter-spacing:.04em}.swat-price-grid strong{display:block;font-size:34px;line-height:1;margin:9px 0 14px}.swat-price-grid a{display:block;background:var(--swat-black);color:#fff!important;border-radius:9px;text-decoration:none!important;padding:11px;font-weight:900;font-size:12px}.swat-price-grid em{display:block;color:#777;font-size:12px;font-style:normal}.swat-info-box{margin-top:18px;background:#f5f5f5;border-radius:14px;padding:18px}.swat-info-box form{display:flex;gap:8px;margin-top:10px}.swat-info-box input{flex:1;border:1px solid #ccc;border-radius:9px;padding:12px}.swat-info-box button{margin:0;padding:12px 15px}.swat-pass-card{max-width:540px;margin:28px auto;border-radius:24px;overflow:hidden;border:1px solid #d9d9d9;padding:28px;background:#fff;box-shadow:0 16px 40px rgba(0,0,0,.12);position:relative}.swat-pass-card:before{content:"";display:block;height:9px;background:var(--swat-yellow);margin:-28px -28px 24px}.swat-pass-card.invalid:before{background:#c52525}.swat-pass-state{font-size:12px;font-weight:950;letter-spacing:.12em;margin-top:5px}.swat-pass-card.valid .swat-pass-state{color:#168a3d}.swat-pass-card.invalid .swat-pass-state{color:#c52525}.swat-pass-card h2{font-size:30px;margin:12px 0 8px}.swat-pass-code{font-size:clamp(26px,7vw,38px);font-weight:950;letter-spacing:.05em;background:#111;color:#fff;padding:15px;border-radius:12px;text-align:center}.swat-pass-card dl{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0}.swat-pass-card dl div{background:#f5f5f5;padding:12px;border-radius:10px}.swat-pass-card dt{font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;color:#777}.swat-pass-card dd{margin:4px 0 0;font-weight:800}.swat-pass-card small{display:block;color:#777}.swat-pass-reason{background:#fff0f0;color:#9f1111;padding:12px;border-radius:9px;font-weight:700}.swat-scanner{max-width:680px;margin:30px auto;background:#111;color:#fff;padding:28px;border-radius:22px;box-shadow:0 18px 45px rgba(0,0,0,.18)}.swat-scanner h1{font-size:38px;margin:5px 0 20px;text-transform:uppercase}.swat-scanner-form{display:grid;grid-template-columns:170px 1fr auto;gap:10px;align-items:end}.swat-scanner-form label{color:#fff}.swat-scanner-form input{font-size:18px;font-weight:800}.swat-scanner button{margin:0;height:48px}.swat-scan-result{border-radius:14px;padding:20px;margin-bottom:16px;color:#111}.swat-scan-result.valid{background:#dff6e5;border:3px solid #168a3d}.swat-scan-result.warning{background:#fff4c7;border:3px solid #d4a000}.swat-scan-result.invalid{background:#ffe1e1;border:3px solid #c52525}.swat-scan-result>strong{font-size:28px}.swat-scan-result h2{margin:8px 0 2px}.swat-scan-result p{margin:4px 0}.swat-scanner .swat-form-note{color:#bbb!important}.swat-os-wrap code,.swat-scanner code{background:#eee;padding:2px 5px;border-radius:4px}
@media(max-width:760px){.swat-form-grid.front,.swat-price-grid{grid-template-columns:1fr}.swat-os-hero,.swat-os-hero.compact,.swat-public-form{padding:20px}.swat-scanner{margin:16px 0;border-radius:16px;padding:18px}.swat-scanner-form{grid-template-columns:1fr}.swat-scanner button{height:auto}.swat-pass-card dl{grid-template-columns:1fr}.swat-info-box form{flex-direction:column}.swat-info-box button{width:100%}}

/* TourneyOS 2.0: Coach Portal + UmpireHQ */
.swat-portal{max-width:1080px}.swat-portal-login{max-width:620px;margin-left:auto;margin-right:auto}.swat-portal-head{display:flex;justify-content:space-between;align-items:center;gap:18px;background:#fff;border:1px solid #e1e1e1;border-radius:16px;padding:22px;margin:18px 0;box-shadow:0 7px 22px rgba(0,0,0,.04)}.swat-portal-head h2{font-size:30px;margin:4px 0}.swat-portal-head p{margin:0;color:#666}.swat-portal-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#111;color:#fff;border-radius:10px;padding:10px 12px;font-weight:850;letter-spacing:.04em}.swat-game-grid{display:grid;gap:16px;margin-top:18px}.swat-game-card,.swat-assignment-card{background:#fff;border:1px solid #ddd;border-radius:18px;padding:22px;box-shadow:0 8px 25px rgba(0,0,0,.05)}.swat-game-card.score-disputed{border-left:7px solid #c52525}.swat-game-card.score-verified{border-left:7px solid #168a3d}.swat-game-card.score-pending_opponent{border-left:7px solid #d4a000}.swat-game-card-top{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:12px;font-weight:900;letter-spacing:.05em;text-transform:uppercase;color:#666}.swat-game-card-top strong{background:#111;color:#fff;border-radius:999px;padding:5px 9px;font-size:10px}.swat-game-card h3,.swat-assignment-card h3{font-size:24px;margin:12px 0}.swat-game-card h3 span{font-size:14px;color:#777;font-weight:700;text-transform:uppercase}.swat-game-meta{display:flex;flex-wrap:wrap;gap:8px 16px;color:#555;font-size:14px;padding:11px 0 14px;border-bottom:1px solid #eee}.swat-score-report{margin-top:14px}.swat-score-report summary{cursor:pointer;font-weight:900;text-transform:uppercase;font-size:12px;letter-spacing:.05em}.swat-score-report .swat-public-form{margin-top:12px;box-shadow:none;background:#f8f8f8}.swat-score-inputs{display:grid;grid-template-columns:1fr 1fr;gap:12px}.swat-final-score{display:grid;gap:8px;margin-top:14px;background:#f4f7f4;border-radius:12px;padding:16px}.swat-final-score span{display:flex;justify-content:space-between;align-items:center;font-weight:800}.swat-final-score strong{font-size:26px}.swat-final-score small{color:#168a3d;font-weight:800}.swat-score-state{background:#fff8d7;border-radius:9px;padding:11px 12px;font-size:13px}.swat-assignment-card{max-width:760px;margin:18px auto}.swat-assignment-card.status-declined{border-left:7px solid #c52525}.swat-assignment-card.status-accepted,.swat-assignment-card.status-checked_in,.swat-assignment-card.status-completed{border-left:7px solid #168a3d}.swat-umpire-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:18px}.swat-action-form{margin:0}.swat-action-form .swat-primary-button{margin:0}.swat-primary-button.danger{background:#c52525;color:#fff}
@media(max-width:760px){.swat-portal-head{align-items:flex-start;flex-direction:column}.swat-portal-code{width:100%;overflow-wrap:anywhere}.swat-score-inputs{grid-template-columns:1fr}.swat-game-card,.swat-assignment-card{padding:17px}.swat-game-card h3,.swat-assignment-card h3{font-size:20px}.swat-umpire-actions,.swat-action-form,.swat-action-form .swat-primary-button{width:100%}}

/* SWAT Game Day */
.swat-gameday{max-width:1180px;margin:0 auto;padding:18px 14px 40px;color:#111;font-family:Arial,Helvetica,sans-serif}.swat-gameday *{box-sizing:border-box}.swat-gameday-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;background:linear-gradient(135deg,#080808,#202020);color:#fff;border-radius:18px;padding:26px 28px;border-bottom:5px solid var(--swat-yellow,#F7C600);box-shadow:0 18px 40px rgba(0,0,0,.12)}.swat-gameday-hero .eyebrow{display:block;color:var(--swat-yellow,#F7C600);font-size:11px;letter-spacing:.16em;font-weight:900}.swat-gameday-hero h1{margin:3px 0 2px;font-size:42px;line-height:1;font-weight:950;letter-spacing:-.04em}.swat-gameday-hero p{margin:7px 0 0;color:#d4d4d4;font-weight:700}.swat-gameday-help{display:inline-flex;align-items:center;justify-content:center;background:var(--swat-yellow,#F7C600);color:#111!important;text-decoration:none!important;font-weight:950;padding:13px 17px;border-radius:10px;white-space:nowrap}.swat-gameday-status{margin:16px 0}.swat-gameday-status .swat-status-card{margin:0}.swat-gameday-filters{display:grid;grid-template-columns:2fr 1fr 1fr 1.5fr 1fr auto auto;gap:9px;align-items:end;background:#fff;border:1px solid #e6e6e6;border-radius:14px;padding:14px;box-shadow:0 8px 24px rgba(0,0,0,.05)}.swat-gameday-filters label{display:grid;gap:5px;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.swat-gameday-filters select{width:100%;min-height:42px;border:1px solid #ccc;border-radius:8px;background:#fff;padding:7px 9px;font-size:14px}.swat-gameday-filters button,.swat-gameday-filters>a{min-height:42px;border:0;border-radius:8px;padding:0 14px;font-weight:950;display:inline-flex;align-items:center;justify-content:center;text-decoration:none!important}.swat-gameday-filters button{background:#111;color:#fff;cursor:pointer}.swat-gameday-filters>a{background:#eee;color:#111!important}.swat-gameday-summary{margin:18px 2px 8px;color:#555;font-size:13px}.swat-gameday-summary strong{color:#111;font-size:18px}.swat-gameday-date{font-size:19px;margin:22px 2px 9px;font-weight:950}.swat-gameday-list{display:grid;gap:10px}.swat-game-card{background:#fff;border:1px solid #e4e4e4;border-left:5px solid #a8a8a8;border-radius:13px;padding:13px 15px;box-shadow:0 6px 18px rgba(0,0,0,.04)}.swat-game-card.status-final{border-left-color:#1f9d61}.swat-game-card.status-in_progress{border-left-color:#e09b00}.swat-game-card.status-delayed{border-left-color:#e09b00}.swat-game-card.status-cancelled{border-left-color:#c94038}.swat-game-card-top{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:9px}.swat-game-card-top span{background:#f2f2f2;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:900}.swat-game-card-matchup{display:grid;gap:4px}.swat-game-card-matchup>div{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:7px 0;border-top:1px solid #eee}.swat-game-card-matchup>div:first-child{border-top:0}.swat-game-card-matchup strong{font-size:16px}.swat-game-card-matchup b{font-size:22px}.swat-game-card-bottom{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border-top:1px solid #eee;margin-top:7px;padding-top:10px;font-size:11px;color:#666}.swat-game-card-bottom .swat-game-status{font-weight:950;color:#111}.swat-game-card-bottom a{margin-left:auto;color:#111!important;font-weight:900}.swat-gameday-empty{background:#fff;border:1px solid #e5e5e5;border-radius:14px;padding:24px;text-align:center}.swat-gameday-empty h2{margin:0 0 5px}.swat-gameday-empty p{margin:0;color:#666}@media(max-width:900px){.swat-gameday-filters{grid-template-columns:1fr 1fr 1fr}.swat-gameday-filters button,.swat-gameday-filters>a{width:100%}}@media(max-width:600px){.swat-gameday{padding:10px 10px 28px}.swat-gameday-hero{align-items:flex-start;padding:20px;border-radius:14px}.swat-gameday-hero h1{font-size:34px}.swat-gameday-hero p{font-size:13px}.swat-gameday-help{padding:11px 12px;font-size:12px}.swat-gameday-filters{grid-template-columns:1fr 1fr}.swat-gameday-filters label:first-child,.swat-gameday-filters label:nth-child(4){grid-column:1/-1}.swat-game-card{padding:12px}.swat-game-card-matchup strong{font-size:15px}.swat-game-card-bottom a{margin-left:0}.swat-gameday-status{margin:10px 0}}
