:root{--pb-red:#d81e2c;--pb-red-dark:#a3141f;--pb-red-light:#fdeceb;--pb-black:#16181d;--pb-yellow:#e8f228;--pb-yellow-dark:#8a8f00;--pb-yellow-bg:#fdfbd8;--pb-ink:#1f2933;--pb-muted:#6b7280;--pb-bg:#fffdf9;--pb-card:#fff;--pb-border:#f0dede;--pb-success:#2f7a3d;--pb-success-bg:#dcf3e0;--pb-danger:#a3141f;font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}h1,h2,h3,h4,.hero-text h2{font-family:Poppins,Segoe UI,sans-serif;font-weight:700}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes bounceBall{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-10px)rotate(15deg)}}@keyframes pulseBall{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}body{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cg opacity='0.07'%3E%3Ccircle cx='24' cy='24' r='10' fill='none' stroke='%23d81e2c' stroke-width='2'/%3E%3Ccircle cx='20' cy='20' r='1.1' fill='%23d81e2c'/%3E%3Ccircle cx='28' cy='20' r='1.1' fill='%23d81e2c'/%3E%3Ccircle cx='24' cy='24' r='1.1' fill='%23d81e2c'/%3E%3Ccircle cx='20' cy='28' r='1.1' fill='%23d81e2c'/%3E%3Ccircle cx='28' cy='28' r='1.1' fill='%23d81e2c'/%3E%3Cg transform='rotate(25 88 78)'%3E%3Cellipse cx='88' cy='72' rx='10' ry='12' fill='none' stroke='%2316181d' stroke-width='2'/%3E%3Crect x='85' y='84' width='6' height='13' rx='3' fill='none' stroke='%2316181d' stroke-width='2'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E") 0 0 / 120px 120px, var(--pb-bg);color:var(--pb-ink);min-height:100vh;margin:0}header{background:linear-gradient(135deg, var(--pb-red), var(--pb-red-dark));color:#fff;border-bottom:4px solid var(--pb-black);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding:1.25rem 1.5rem;display:flex;position:relative;box-shadow:0 2px 8px #a81f3040}header .brand{align-items:center;gap:.6rem;display:flex}header .brand svg{flex-shrink:0;width:34px;height:34px}header .brand svg .ball-dot{transform-origin:50%;animation:2.2s ease-in-out infinite pulseBall}header h1{margin:0;font-size:1.3rem;line-height:1.25}header .tournament-name{opacity:.9;font-size:.85rem;font-weight:400;display:block}header nav a{color:#fff;opacity:.9;margin-left:1rem;font-size:.95rem;text-decoration:none;transition:opacity .15s}header nav a:hover{opacity:1;text-decoration:underline}main{max-width:780px;margin:2rem auto;padding:0 1rem}main.wide{max-width:1080px}.hero{background:var(--pb-black);color:#fff;text-align:center;border-radius:14px;margin-bottom:1.5rem;padding:4rem 1.5rem;animation:.5s ease-out fadeInUp;position:relative;overflow:hidden}.hero.photo{background-position:50% 30%;background-size:cover;box-shadow:inset 0 0 0 4px #ffffff14}.hero-text{z-index:1;position:relative}.hero-eyebrow{background:var(--pb-yellow);color:var(--pb-black);text-transform:uppercase;letter-spacing:.08em;border-radius:999px;margin-bottom:.9rem;padding:.25rem .7rem;font-size:.75rem;font-weight:700;display:inline-block}.hero-text h2{letter-spacing:.01em;text-shadow:0 2px 12px #00000080;margin:0 0 .4rem;font-family:Poppins,Segoe UI,sans-serif;font-size:2.2rem}.hero-text p{opacity:.92;text-shadow:0 1px 6px #00000080;margin:0;font-size:1.05rem}.hero.compact{padding:2rem 1.5rem}.hero.compact .hero-text h2{font-size:1.5rem}.card{background:var(--pb-card);border:1px solid var(--pb-border);border-radius:10px;margin-bottom:1.5rem;padding:1.5rem;animation:.4s ease-out fadeInUp}h2{margin-top:0}label{margin-top:1rem;margin-bottom:.3rem;font-size:.9rem;font-weight:600;display:block}input,select,textarea{border:1px solid var(--pb-border);border-radius:6px;width:100%;padding:.55rem .6rem;font-family:inherit;font-size:1rem;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{border-color:var(--pb-red);box-shadow:0 0 0 3px var(--pb-red-light);outline:none}button{background:var(--pb-red);color:#fff;cursor:pointer;border:none;border-radius:6px;margin-top:1.5rem;padding:.65rem 1.4rem;font-size:1rem;transition:background .15s,transform .1s,box-shadow .15s}button:hover:not(:disabled){background:var(--pb-red-dark);transform:translateY(-1px);box-shadow:0 4px 10px #00000026}button:active:not(:disabled){transform:translateY(0)}button:disabled{opacity:.6;cursor:not-allowed}button.secondary{color:var(--pb-red);border:1px solid var(--pb-red);background:0 0}button.secondary:hover:not(:disabled){background:var(--pb-red-light)}button.success{background:var(--pb-success)}button.warning{background:var(--pb-black)}button.danger{background:var(--pb-danger)}button.small{margin-top:0;padding:.3rem .6rem;font-size:.85rem}.status-msg{margin-top:1rem;font-size:.95rem}.status-msg.success{color:var(--pb-success)}.status-msg.error{color:var(--pb-danger)}table{border-collapse:collapse;width:100%;font-size:.9rem}th,td{text-align:left;border-bottom:1px solid var(--pb-border);vertical-align:top;padding:.5rem}th{color:var(--pb-muted);text-transform:uppercase;letter-spacing:.03em;font-size:.75rem;font-weight:600}tbody tr{transition:background .15s}tbody tr:hover{background:var(--pb-red-light)}.badge{border-radius:999px;padding:.15rem .5rem;font-size:.75rem;font-weight:600;display:inline-block}.badge.pending,.badge.registration_open{background:var(--pb-yellow-bg);color:var(--pb-yellow-dark)}.badge.accepted,.badge.planned{background:var(--pb-red-light);color:var(--pb-red)}.badge.rejected{color:var(--pb-muted);background:#ececec}.badge.completed{background:var(--pb-success-bg);color:var(--pb-success)}.actions{flex-wrap:wrap;gap:.4rem;display:flex}.hidden{display:none!important}.muted{color:var(--pb-muted);font-size:.85rem}.tournament-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;display:grid}.tournament-card{background:var(--pb-card);border:1px solid var(--pb-border);border-top:3px solid var(--pb-red);border-radius:10px;flex-direction:column;gap:.6rem;padding:1.25rem;transition:transform .2s,box-shadow .2s;animation:.4s ease-out fadeInUp;display:flex}.tournament-card:hover{transform:translateY(-4px);box-shadow:0 10px 22px #16181d1a}.tournament-card h3{margin:0}.tournament-facts{flex-direction:column;gap:.35rem;margin:0;display:flex}.tournament-fact{gap:.4rem;font-size:.85rem;display:flex}.tournament-fact dt{color:var(--pb-black);white-space:nowrap;font-weight:600}.tournament-fact dd{color:var(--pb-muted);margin:0}.tournament-sections{flex-direction:column;gap:.75rem;margin-top:.6rem;display:flex;overflow:hidden}.tournament-section{background:var(--pb-red-light);border-left:3px solid var(--pb-red);border-radius:6px;padding:.7rem .85rem}.tournament-section h4{text-transform:uppercase;letter-spacing:.04em;color:var(--pb-black);margin:0 0 .4rem;font-size:.8rem;font-weight:700}.tournament-section p{color:var(--pb-black);margin:0 0 .35rem;font-size:.85rem;font-weight:600}.tournament-section p:last-child{margin-bottom:0}.tournament-card .links{gap:.75rem;margin-top:.5rem;display:flex}.tournament-card .links a{color:var(--pb-red);font-size:.9rem;font-weight:600;text-decoration:none}.tournament-card .links a:hover{text-decoration:underline}.pool-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.25rem;display:grid}.pool-card{transition:transform .2s,box-shadow .2s}.pool-card:hover{transform:translateY(-2px);box-shadow:0 10px 22px #16181d14}.pool-card h3{justify-content:space-between;align-items:center;display:flex}.section-title{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.inline-form{flex-wrap:wrap;align-items:flex-end;gap:.75rem;display:flex}.inline-form>div{flex:1;min-width:160px}.inline-form button{margin-top:0}.score-input{width:3.5rem;display:inline-block}.playoff-note{text-align:center;color:var(--pb-muted);border:1px dashed var(--pb-border);border-radius:10px;padding:2rem 1rem}hr.divider{border:none;border-top:1px solid var(--pb-border);margin:1.5rem 0}@media (width<=640px){header{padding:1rem}header h1{font-size:1.05rem}header .brand svg{width:28px;height:28px}header .tournament-name{font-size:.8rem}header nav{flex-wrap:wrap;gap:.5rem 0;display:flex}header nav a{margin-left:0;margin-right:.75rem}main,main.wide{margin:1.25rem auto;padding:0 .75rem}.card{padding:1.1rem}.hero{padding:1.75rem 1rem}.hero-text h2{font-size:1.4rem}.hero.compact{padding:1rem}.hero-ball,.hero-paddle{width:30px;height:30px}.hero.compact .hero-ball,.hero.compact .hero-paddle{width:24px;height:24px}table{white-space:nowrap;-webkit-overflow-scrolling:touch;display:block;overflow-x:auto}.inline-form{flex-direction:column;align-items:stretch}.inline-form>div{min-width:0}.inline-form button{width:100%}.section-title{flex-direction:column;align-items:flex-start}.tournament-grid,.pool-grid{grid-template-columns:1fr}.actions{flex-direction:column;align-items:stretch}.actions button,form button[type=submit]{width:100%}}@media (width<=400px){header .brand h1{font-size:.95rem}.hero-text h2{font-size:1.2rem}}
