*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;background:#f5f7fb;color:#172033}.wrap{max-width:1100px;margin:auto;padding:0 18px}.top{background:#10213b;color:#fff}.nav{min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:18px}.brand{color:#fff;text-decoration:none;font-weight:800}.nav nav{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.nav a{color:#fff;text-decoration:none}.inline{display:inline}.linkbtn{background:none;border:0;color:#fff;padding:8px;cursor:pointer;font:inherit}.hero{padding:70px 0 40px}.hero h1{font-size:clamp(2rem,5vw,3.5rem);margin:0 0 10px}.hero p{font-size:1.15rem;max-width:650px;color:#536075}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.btn{border:0;border-radius:9px;padding:10px 15px;background:#1b6ef3;color:#fff;text-decoration:none;cursor:pointer;font-weight:700;display:inline-block}.btn.secondary{background:#e8edf5;color:#172033}.btn.danger{background:#c73535}.grid3,.stats,.two{display:grid;gap:14px}.grid3{grid-template-columns:repeat(3,1fr)}.stats{grid-template-columns:repeat(4,1fr);margin:20px 0}.two{grid-template-columns:1fr 1fr}.card,.formcard,.game,.stat{background:#fff;border:1px solid #dce2ec;border-radius:12px;padding:18px}.formcard{max-width:480px;margin:50px auto}.formcard h1{margin-top:0}label{display:block;font-weight:700;margin:12px 0}input,select{width:100%;padding:10px;border:1px solid #cbd3df;border-radius:8px;background:#fff;font:inherit;margin-top:5px}.pagehead{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:30px 0 16px}.pagehead h1{margin:0}.muted,small{color:#69758a}.filters{display:flex;gap:8px;align-items:end;flex-wrap:wrap;margin:15px 0}.filters form{display:flex;gap:8px;align-items:end}.filters select,.filters input{width:auto}.games{display:grid;gap:10px}.game{display:flex;justify-content:space-between;gap:18px;align-items:center}.game-title{font-size:1.1rem;font-weight:800;margin:7px 0}.game-title span{color:#8993a3;font-weight:500}.pill,.badge{display:inline-block;border-radius:999px;padding:4px 9px;font-size:.8rem;background:#e9f0ff;color:#2457a6;font-weight:700}.badge.full{background:#edf0f3;color:#687283}.badge.warn{background:#fff2cf;color:#8a6200}.game-action{text-align:right;display:grid;gap:7px;justify-items:end}.alert{margin:16px 0;padding:12px 14px;border-radius:9px;background:#e8f0ff}.alert.danger{background:#ffe3e3;color:#8b1f1f}.alert.warning{background:#fff1cc;color:#765400}.alert.success{background:#e2f6e8;color:#1e6636}.stat strong{display:block;font-size:2rem}.stat span{color:#68758b}.row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid #e8ebf1}.row:last-child{border-bottom:0}.row small{display:block}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:11px;border-bottom:1px solid #e5e9ef}.assigned-list{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.assigned-list span{background:#edf7ef;border-radius:8px;padding:6px 8px}.x{border:0;background:none;cursor:pointer;font-weight:800;color:#a33}.admin-game{align-items:flex-start}.admin-controls{display:grid;gap:8px;min-width:250px}.admin-controls form{display:grid;grid-template-columns:1fr auto;gap:7px;align-items:end}.admin-controls label{margin:0}.success-text{color:#1e6636;font-weight:700}@media(max-width:760px){.grid3,.two,.stats{grid-template-columns:1fr}.nav{align-items:flex-start;padding-top:12px;padding-bottom:12px;flex-direction:column}.game{align-items:flex-start;flex-direction:column}.game-action{justify-items:start;text-align:left;width:100%}.pagehead{align-items:flex-start;flex-direction:column}.admin-controls{width:100%;min-width:0}.hero{padding-top:45px}}

/* SH Sports branding */
body {
  background:
    linear-gradient(rgba(245, 247, 251, 0.78), rgba(245, 247, 251, 0.78)),
    url("/static/shsports.png") center center / cover fixed no-repeat;
  background-attachment: fixed;
}

main {
  position: relative;
}

.card, .hero, .panel, .table-wrap, form, .flash, .auth-card {
  backdrop-filter: blur(2px);
}

