/* ACE PADEL CUP — Stylesheet */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
:root{
  --accent:#e8713b; --accent-dim:#cf5c28;
  --bg:#fff8de; --surface:#f5edcc; --card:#ede3bb;
  --card-bg:#fdf8e8;
  --border:rgba(81,87,57,.2); --border-accent:rgba(232,113,59,.5);
  --text:#515739; --muted:rgba(81,87,57,.5);
  --danger:#c0392b; --success:#2d7a4f;
  --advanced:#c8960a; --intermediate:#2d7a4f; --waitlist:#7a5c2d;
}

/* ── DARK THEME ── */
html.dark {
  --bg:     #515739;
  --surface:#464d30;
  --card:   #3d4329;
  --card-bg:#4a5132;
  --border: rgba(255,248,222,.14);
  --border-accent: rgba(232,113,59,.5);
  --text:   #fff8de;
  --muted:  rgba(255,248,222,.5);
  --waitlist: #d4a96a;
  --advanced: #f0c040;
  --intermediate: #6ecf8e;
}

/* Smooth theme transition — only on color properties */
body, header, main, footer, section,
.t-card, .modal, .field input, .field select,
.field textarea, .admin-t-row, .admin-player-row,
.lock-box, .admin-wrap, .t-info-cell, .t-bottom,
.t-players-toggle, .about-modal, .fmt-modal {
  transition: background-color .4s ease, color .35s ease, border-color .4s ease;
}
html { scroll-behavior: smooth; overflow-x: hidden; }
body { font-family: 'DM Sans', sans-serif; background: var(--bg); color: var(--text); min-height: 100vh; overflow-x: hidden; }
header, main, footer, section, #splash { position: relative; z-index: 1; }
header { z-index: 100; }
.overlay { z-index: 300; }
#splash  { z-index: 9999; }

/* Header — solid, fully opaque, clips everything behind it */
header {
  background: var(--bg);
  border-bottom: 1px solid var(--border);
  padding: .9rem 1.5rem;
  display: flex; align-items: center; justify-content: space-between;
  position: fixed; top: 0; left: 0; right: 0; z-index: 100;
  box-shadow: 0 1px 0 var(--border);
  min-height: 64px;
}
/* Loading bar */
#loadingBar{position:fixed;top:0;left:0;right:0;height:3px;z-index:200;display:none;}

.logo{font-family:'Barlow Condensed',sans-serif;font-weight:900;font-size:1.4rem;letter-spacing:.06em;color:var(--text);line-height:1.1;}
.logo span{color:var(--accent);}
.header-sub{font-size:.72rem;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin-top:.1rem;}
.header-right{display:flex;align-items:center;gap:.5rem;flex-shrink:0;margin-left:auto;}

/* Main — offset for fixed header */
main{max-width:860px;margin:0 auto;padding:3.5rem 2rem 6rem;margin-top:64px;}

/* Tournament card */
.t-card{background:var(--card-bg);border:1px solid var(--border);border-radius:16px;overflow:hidden;margin-bottom:2rem;transition:border-color .2s,box-shadow .2s;animation:fadeUp .4s ease both;box-shadow:0 2px 10px rgba(81,87,57,.07);}
.t-card:hover{border-color:var(--border-accent);box-shadow:0 6px 24px rgba(232,113,59,.1);}
.t-top{display:grid;grid-template-columns:1fr auto;align-items:start;gap:1rem;padding:1.5rem 1.75rem 1.25rem;}
.t-type{font-size:.65rem;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);font-weight:500;margin-bottom:.35rem;}
.t-name{font-family:'Barlow Condensed',sans-serif;font-weight:900;font-size:2rem;line-height:1;text-transform:uppercase;}
.t-price{font-family:'Barlow Condensed',sans-serif;font-weight:900;font-size:2rem;color:var(--accent);line-height:1;white-space:nowrap;}
.t-price-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);text-align:right;margin-top:.2rem;}
.t-info{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--border);}
.t-info-cell{padding:1rem 1.75rem;border-right:1px solid var(--border);}
.t-info-cell:last-child{border-right:none;}
.t-info-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:.3rem;}
.t-info-value{font-size:.92rem;font-weight:500;color:var(--text);line-height:1.3;}

/* Category rows */
.t-categories{padding:.75rem 1.75rem;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:.6rem;}
.t-cat-row{display:flex;align-items:center;gap:.85rem;}
.t-cat-label{font-size:.8rem;font-weight:500;color:var(--text);white-space:nowrap;min-width:110px;}
.t-cat-bar-wrap{flex:1;}
.t-bar{height:6px;background:var(--card);border-radius:99px;overflow:hidden;}
.t-bar-fill{height:100%;background:var(--accent);border-radius:99px;transition:width .5s ease;}
.t-bar-fill.full{background:var(--danger);}
.t-cat-info{display:flex;align-items:center;gap:.6rem;font-size:.78rem;white-space:nowrap;}
.cat-spots{color:var(--text);font-weight:500;}
.cat-full{color:var(--danger);font-weight:500;}
.cat-count{color:var(--muted);}
.t-bottom{padding:1.1rem 1.75rem;}
.t-reg-btn{background:var(--accent);color:#fff8de;border:none;padding:.7rem 2rem;border-radius:10px;font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:1.05rem;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;transition:background .2s,transform .15s;}
.t-reg-btn:hover{background:var(--accent-dim);transform:translateY(-1px);}

/* Players list */
.t-players{border-top:1px solid var(--border);}
.t-players-toggle{width:100%;background:none;border:none;padding:.8rem 1.75rem;font-family:'DM Sans',sans-serif;font-size:.8rem;color:var(--muted);cursor:pointer;text-align:left;display:flex;align-items:center;justify-content:space-between;transition:background .15s;}
.t-players-toggle:hover{background:var(--surface);}
.t-players-toggle .arrow{transition:transform .25s;font-size:.7rem;}
.t-players-toggle.open .arrow{transform:rotate(180deg);}
.t-players-body{display:none;padding:0 1.75rem 1rem;}
.t-players-body.open{display:block;}
.player-cat-header{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:.5rem 0 .25rem;border-top:.5px solid var(--border);margin-top:.35rem;}
.player-cat-header:first-child{border-top:none;margin-top:0;}
.t-player-row{display:flex;justify-content:space-between;align-items:center;padding:.4rem 0;border-bottom:.5px solid var(--border);font-size:.83rem;}
.t-player-row:last-child{border-bottom:none;}
.t-player-name{color:var(--text);}
.t-player-partner{color:var(--muted);font-size:.77rem;}
.waitlist-row{opacity:.7;}
.waitlist-badge{font-size:.62rem;text-transform:uppercase;letter-spacing:.08em;background:rgba(122,92,45,.12);color:var(--waitlist);padding:2px 7px;border-radius:4px;font-weight:500;white-space:nowrap;}
.waitlist-num{color:var(--waitlist);font-weight:500;margin-right:.3rem;font-size:.75rem;}
.waitlist-divider{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:.4rem 0 .2rem;border-top:.5px dashed var(--border);margin-top:.2rem;}
.looking-badge{font-size:.68rem;background:rgba(81,87,57,.08);color:var(--muted);padding:1px 7px;border-radius:4px;margin-left:.4rem;}

/* Cat dots */
.cat-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:.3rem;}
.cat-dot.advanced{background:var(--advanced);}
.cat-dot.intermediate{background:var(--intermediate);}

/* Forms */
.field{margin-bottom:1rem;}
.field label{display:block;font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:.4rem;}
.field input,.field select,.field textarea{width:100%;background:var(--surface);border:1px solid var(--border);color:var(--text);font-family:'DM Sans',sans-serif;font-size:.92rem;padding:.75rem 1rem;border-radius:10px;outline:none;transition:border-color .2s;-webkit-appearance:none;appearance:none;}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);}
.field input::placeholder,.field textarea::placeholder{color:var(--muted);}
.field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='7' viewBox='0 0 11 7'%3E%3Cpath d='M1 1l4.5 4.5L10 1' stroke='%23515739' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .9rem center;padding-right:2.25rem;}
.field textarea{resize:vertical;min-height:72px;line-height:1.5;}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;}
.slide{overflow:hidden;max-height:0;opacity:0;transition:max-height .4s ease,opacity .3s;}
.slide.show{max-height:220px;opacity:1;}
.form-msg{display:none;margin-top:.85rem;padding:.75rem 1rem;border-radius:8px;font-size:.83rem;text-align:center;}
.form-msg.success{background:rgba(45,122,79,.08);border:.5px solid rgba(45,122,79,.3);color:var(--success);display:block;}
.form-msg.error{background:rgba(192,57,43,.08);border:.5px solid rgba(192,57,43,.3);color:var(--danger);display:block;}

/* Toggle wrap */
.toggle-wrap{display:flex;background:var(--card);border-radius:8px;padding:3px;border:1px solid var(--border);}
.toggle-btn{flex:1;padding:.55rem;border:none;background:transparent;color:var(--muted);font-family:'DM Sans',sans-serif;font-size:.85rem;border-radius:6px;cursor:pointer;transition:all .2s;font-weight:400;}
.toggle-btn.active{background:var(--bg);color:var(--text);font-weight:500;box-shadow:0 1px 3px rgba(81,87,57,.12);}

/* Cat selector */
.cat-options{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;}
.cat-opt{position:relative;}
.cat-opt input[type="radio"]{position:absolute;opacity:0;width:0;height:0;}
.cat-opt label{display:flex;flex-direction:column;padding:.85rem 1rem;border:1px solid var(--border);border-radius:10px;cursor:pointer;transition:all .15s;background:var(--surface);gap:.25rem;}
.cat-opt input[type="radio"]:checked+label{border-color:var(--accent);background:rgba(232,113,59,.08);}
.cat-opt label:hover{border-color:var(--border-accent);}
.cat-opt-top{display:flex;align-items:center;gap:.4rem;font-size:.88rem;font-weight:500;}
.cat-opt-name{color:var(--text);}
.cat-opt-spots{font-size:.75rem;color:var(--muted);}

/* Contact selector */
.contact-options{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;}
.contact-opt{position:relative;}
.contact-opt input[type="radio"]{position:absolute;opacity:0;width:0;height:0;}
.contact-opt label{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.7rem;border:1px solid var(--border);border-radius:10px;cursor:pointer;font-size:.88rem;transition:all .15s;background:var(--surface);}
.contact-opt input[type="radio"]:checked+label{border-color:var(--accent);background:rgba(232,113,59,.08);color:var(--accent-dim);font-weight:500;}

/* Notices */
.waitlist-notice,.looking-notice{padding:.75rem 1rem;border-radius:8px;font-size:.83rem;margin-bottom:1rem;}
.waitlist-notice{background:rgba(122,92,45,.08);border:.5px solid rgba(122,92,45,.3);color:var(--waitlist);display:none;}
.looking-notice{background:rgba(81,87,57,.06);border:.5px solid var(--border);color:var(--text);display:none;}

/* Modal overlay — defined in rankings section below, this is kept for reference */

.modal-eyebrow{font-size:.65rem;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);margin-bottom:.4rem;}
.modal h2{font-family:'Barlow Condensed',sans-serif;font-weight:900;font-size:1.9rem;text-transform:uppercase;margin-bottom:.3rem;}
.modal-meta{font-size:.82rem;color:var(--muted);margin-bottom:1.5rem;line-height:1.5;}
.modal-submit{width:100%;background:var(--accent);color:#fff8de;border:none;padding:.9rem;border-radius:10px;font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:1.15rem;letter-spacing:.05em;text-transform:uppercase;cursor:pointer;margin-top:.5rem;transition:background .2s,transform .15s;}
.modal-submit:hover:not(:disabled){background:var(--accent-dim);transform:translateY(-1px);}
.modal-submit:disabled{opacity:.6;cursor:not-allowed;}

/* Success modal */
.success-icon{font-size:2.5rem;margin-bottom:1rem;}
.success-title{font-family:'Barlow Condensed',sans-serif;font-weight:900;font-size:1.9rem;text-transform:uppercase;margin-bottom:.5rem;}
.success-msg{font-size:.88rem;color:var(--muted);line-height:1.6;margin-bottom:.75rem;}
.success-contact{font-size:.85rem;color:var(--muted);padding:.85rem 1rem;background:var(--surface);border-radius:10px;border:1px solid var(--border);line-height:1.6;margin-bottom:1.5rem;}
.success-contact strong{color:var(--text);}
.modal-done-btn{width:100%;background:var(--accent);color:#fff8de;border:none;padding:.85rem;border-radius:10px;font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:1.1rem;text-transform:uppercase;cursor:pointer;transition:background .2s;}
.modal-done-btn:hover{background:var(--accent-dim);}

/* Pair modal */
.pair-player-row{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;border:1px solid var(--border);border-radius:10px;margin-bottom:.5rem;cursor:pointer;transition:all .15s;background:var(--surface);}
.pair-player-row:hover{border-color:var(--border-accent);}
.pair-player-row.selected{border-color:var(--accent);background:rgba(232,113,59,.08);}
.pair-check{color:var(--accent);font-weight:700;}

/* Admin */
#admin-section{background:var(--surface);border-top:1px solid var(--border);padding:4rem 2rem;}
.admin-wrap{max-width:900px;margin:0 auto;}
.admin-title{font-family:'Barlow Condensed',sans-serif;font-weight:900;font-size:2rem;text-transform:uppercase;margin-bottom:1.5rem;display:flex;align-items:center;gap:1rem;}
.admin-tabs{display:flex;gap:.5rem;margin-bottom:2rem;border-bottom:1px solid var(--border);padding-bottom:-.5rem;}
.admin-tab{background:none;border:none;padding:.6rem 1.25rem;font-family:'DM Sans',sans-serif;font-size:.88rem;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .2s;}
.admin-tab.active{color:var(--accent);border-bottom-color:var(--accent);}
.admin-tab:hover{color:var(--text);}
.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;align-items:start;margin-bottom:2.5rem;}
.admin-sub{font-family:'Barlow Condensed',sans-serif;font-weight:800;font-size:1.25rem;text-transform:uppercase;margin-bottom:1.1rem;}
.admin-note{font-size:.78rem;color:var(--muted);margin-bottom:1rem;margin-top:-.5rem;}
#admin-section .field input,#admin-section .field select,#admin-section .field textarea{background:var(--bg);}
.cat-capacity-box{background:rgba(81,87,57,.04);border:1px solid var(--border);border-radius:10px;padding:1rem 1.1rem;margin-bottom:1rem;}
.cat-capacity-title{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:.75rem;}
.admin-submit{width:100%;background:var(--accent);color:#fff8de;border:none;padding:.9rem;border-radius:10px;font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:1.1rem;letter-spacing:.05em;text-transform:uppercase;cursor:pointer;margin-top:.5rem;transition:background .2s;}
.admin-submit:hover:not(:disabled){background:var(--accent-dim);}
.admin-submit:disabled{opacity:.6;cursor:not-allowed;}
.admin-t-row{background:var(--bg);border:1px solid var(--border);border-radius:12px;padding:1rem 1.25rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.75rem;box-shadow:0 1px 6px rgba(81,87,57,.06);}
.admin-t-name{font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:1.1rem;text-transform:uppercase;}
.admin-t-meta{font-size:.76rem;color:var(--muted);margin-top:.2rem;}
.admin-del{background:none;border:.5px solid rgba(192,57,43,.3);color:var(--danger);padding:.3rem .8rem;border-radius:6px;font-size:.75rem;cursor:pointer;font-family:'DM Sans',sans-serif;white-space:nowrap;transition:background .2s;}
.admin-del:hover{background:rgba(192,57,43,.08);}
.admin-edit-cap{background:none;border:.5px solid var(--border);color:var(--muted);padding:.3rem .8rem;border-radius:6px;font-size:.75rem;cursor:pointer;font-family:'DM Sans',sans-serif;white-space:nowrap;transition:border-color .2s,color .2s;}
.admin-edit-cap:hover{border-color:var(--accent);color:var(--accent);}
.admin-empty{color:var(--muted);font-size:.88rem;}

/* Admin players */
.admin-reg-section{margin-bottom:2.5rem;}
.admin-reg-title{font-family:'Barlow Condensed',sans-serif;font-weight:800;font-size:1.2rem;text-transform:uppercase;margin-bottom:1rem;}
.admin-reg-date{font-size:.8rem;color:var(--muted);font-family:'DM Sans',sans-serif;font-weight:400;text-transform:none;margin-left:.5rem;}
.admin-cat-section{margin-bottom:1.25rem;}
.admin-cat-header{font-size:.8rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.6rem;display:flex;align-items:center;gap:.75rem;}
.admin-pair-btn{background:rgba(232,113,59,.1);border:.5px solid var(--border-accent);color:var(--accent-dim);padding:.25rem .75rem;border-radius:6px;font-size:.72rem;cursor:pointer;font-family:'DM Sans',sans-serif;transition:background .2s;}
.admin-pair-btn:hover{background:rgba(232,113,59,.2);}
.admin-pair-group{background:rgba(81,87,57,.04);border:1px solid var(--border);border-radius:10px;padding:.75rem 1rem;margin-bottom:.75rem;}
.admin-pair-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);margin-bottom:.5rem;}
.admin-player-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.6rem 0;border-bottom:.5px solid var(--border);}
.admin-player-row:last-child{border-bottom:none;}
.admin-player-info strong{font-size:.88rem;}
.admin-player-meta{font-size:.75rem;color:var(--muted);margin-top:.15rem;}
.admin-player-actions{display:flex;gap:.35rem;flex-shrink:0;}
.admin-action-btn{background:none;border:.5px solid var(--border);color:var(--muted);padding:.25rem .65rem;border-radius:6px;font-size:.72rem;cursor:pointer;font-family:'DM Sans',sans-serif;white-space:nowrap;transition:all .2s;}
.admin-action-btn:hover{border-color:var(--accent);color:var(--accent);}
.admin-action-btn.danger{border-color:rgba(192,57,43,.3);color:var(--danger);}
.admin-action-btn.danger:hover{background:rgba(192,57,43,.08);}
.looking-badge-small{font-size:.65rem;background:rgba(81,87,57,.08);color:var(--muted);padding:1px 6px;border-radius:3px;margin-left:.4rem;}

/* Lock */
.lock-box{text-align:center;padding:3rem 0;}
.lock-icon{font-size:2.5rem;margin-bottom:1rem;}
.lock-box h3{font-family:'Barlow Condensed',sans-serif;font-weight:800;font-size:1.75rem;text-transform:uppercase;margin-bottom:.4rem;}
.lock-box p{color:var(--muted);font-size:.88rem;margin-bottom:1.5rem;}
.lock-form{max-width:280px;margin:0 auto;}
.lock-btn{width:100%;background:var(--accent);color:#fff8de;border:none;padding:.85rem;border-radius:10px;font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:1.05rem;text-transform:uppercase;cursor:pointer;margin-top:.5rem;transition:background .2s;}
.lock-btn:hover{background:var(--accent-dim);}
.admin-logout{background:none;border:1px solid var(--border);color:var(--muted);padding:.3rem .85rem;border-radius:6px;font-size:.75rem;cursor:pointer;font-family:'DM Sans',sans-serif;transition:border-color .2s,color .2s;}
.admin-logout:hover{border-color:var(--accent);color:var(--accent);}

/* Footer */
footer{text-align:center;padding:2rem;background:var(--surface);border-top:1px solid var(--border);color:var(--muted);font-size:.78rem;}
.footer-ace{font-family:'Barlow Condensed',sans-serif;font-weight:900;font-size:1.2rem;letter-spacing:.06em;color:var(--text);margin-bottom:.3rem;}
.footer-ace span{color:var(--accent);}

@keyframes fadeUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}

/* Responsive */
@media(max-width:700px){
  header{padding:.75rem 1rem;}
  main{margin-top:64px;padding:2.5rem 1rem 4rem;}
  .logo{font-size:1.15rem;}
  .header-sub{display:none;}
  /* Push header-right away from logo */
  .header-right{gap:.35rem; margin-left: auto;}
  /* Compact buttons */
  .about-btn{font-size:.68rem;padding:.3rem .6rem;white-space:nowrap;}
  .about-btn.rankings-btn span{display:none;} /* hide text, show only icon on very small */
  .theme-btn{width:28px;height:28px;font-size:.8rem;}
  .insta-btn{width:28px;height:28px;}
  .insta-btn svg{width:14px;height:14px;}
  .t-top{padding:1.25rem 1.25rem 1rem;}
  .t-info{grid-template-columns:1fr 1fr;}
  .t-info-cell:nth-child(2){border-right:none;}
  .t-info-cell:nth-child(3){border-top:1px solid var(--border);grid-column:1/-1;border-right:none;}
  .t-categories,.t-bottom,.t-info-cell,.t-players-toggle,.t-players-body{padding-left:1.25rem;padding-right:1.25rem;}
  .t-cat-label{min-width:90px;}
  .admin-grid,.field-row,.cat-options,.contact-options{grid-template-columns:1fr;}
  #admin-section{padding:3rem 1.25rem;}
  .admin-tabs{flex-wrap:wrap;}
}

/* ── INFO BUTTON ── */
.t-info-btn {
  position: absolute;
  top: .85rem;
  left: 1rem;
  width: 26px; height: 26px;
  border-radius: 50%;
  border: 1.5px solid var(--border-accent);
  background: rgba(232,113,59,.1);
  color: var(--accent);
  font-size: .82rem;
  font-weight: 700;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background .2s, transform .15s;
  line-height: 1;
  font-style: normal;
}
.t-info-btn:hover { background: rgba(232,113,59,.2); transform: scale(1.1); }

/* Make t-card relative so button can be absolutely positioned */
.t-card { position: relative; }

/* ── FORMAT INFO MODAL ── */
.fmt-modal { max-width: 480px; }
.fmt-tournament-name {
  font-size: .68rem; text-transform: uppercase; letter-spacing: .1em;
  color: var(--accent); margin-bottom: 1.25rem;
}
.fmt-header {
  display: flex; align-items: flex-start; gap: 1rem; margin-bottom: 1.25rem;
}
.fmt-emoji { font-size: 2.5rem; line-height: 1; flex-shrink: 0; }
.fmt-title {
  font-family: 'Barlow Condensed', sans-serif; font-weight: 900;
  font-size: 1.6rem; text-transform: uppercase; line-height: 1; margin-bottom: .25rem;
}
.fmt-tagline { font-size: .85rem; color: var(--muted); line-height: 1.4; margin-bottom: .3rem; }
.fmt-rounds {
  display: inline-block; font-size: .72rem; text-transform: uppercase;
  letter-spacing: .08em; color: var(--accent-dim);
  background: rgba(232,113,59,.1); border-radius: 4px; padding: 2px 8px;
}
.fmt-desc {
  font-size: .88rem; color: var(--muted); line-height: 1.65;
  margin-bottom: 1.25rem; padding-bottom: 1.25rem;
  border-bottom: 1px solid var(--border);
}
.fmt-details { display: flex; flex-direction: column; gap: .6rem; margin-bottom: 1.5rem; }
.fmt-detail-row { display: flex; align-items: flex-start; gap: .75rem; font-size: .85rem; }
.fmt-detail-icon { font-size: 1rem; flex-shrink: 0; margin-top: -.05rem; }

/* ── EDIT CATEGORY MODAL ── */
.edit-cat-block {
  background: var(--surface); border: 1px solid var(--border);
  border-radius: 12px; padding: 1rem 1.25rem; margin-bottom: .75rem;
}
.edit-cat-header {
  display: flex; justify-content: space-between; align-items: center;
  font-size: .85rem; font-weight: 500; margin-bottom: .75rem;
}
.edit-cat-count { font-size: .75rem; color: var(--muted); }
.edit-cat-row { display: flex; align-items: flex-end; gap: .75rem; }
.edit-cat-row .field label { margin-bottom: .3rem; }
.edit-cat-row .field input { background: var(--bg); }
.delete-cat-btn {
  flex-shrink: 0; background: none;
  border: 1px solid rgba(192,57,43,.3); color: var(--danger);
  padding: .72rem 1rem; border-radius: 10px;
  font-size: .8rem; cursor: pointer; font-family: 'DM Sans', sans-serif;
  white-space: nowrap; transition: background .2s; align-self: flex-end;
}
.delete-cat-btn:hover { background: rgba(192,57,43,.07); }
.delete-cat-btn:disabled { opacity: .4; cursor: not-allowed; }

/* ── ABOUT BUTTON ── */
.about-btn {
  background: none; border: 1px solid var(--border);
  color: var(--muted); padding: .45rem 1.1rem; border-radius: 8px;
  font-family: 'DM Sans', sans-serif; font-size: .85rem;
  cursor: pointer; transition: border-color .2s, color .2s;
}
.about-btn:hover { border-color: var(--accent); color: var(--accent); }

/* ── ABOUT MODAL ── */
.about-modal { max-width: 500px; }
.about-eyebrow {
  font-size: .68rem; text-transform: uppercase; letter-spacing: .12em;
  color: var(--accent); margin-bottom: 1rem;
}
.about-title {
  font-family: 'Barlow Condensed', sans-serif; font-weight: 900;
  font-size: 2.5rem; text-transform: uppercase; line-height: .95;
  margin-bottom: 1.5rem; color: var(--text);
}
.about-title em { color: var(--accent); font-style: normal; }
.about-text {
  font-size: .92rem; color: var(--muted); line-height: 1.7;
  margin-bottom: 1rem;
}
.about-highlights {
  display: grid; grid-template-columns: 1fr 1fr; gap: .6rem;
  margin-top: 1.5rem;
}
.about-highlight {
  display: flex; align-items: center; gap: .6rem;
  background: var(--surface); border: 1px solid var(--border);
  border-radius: 10px; padding: .7rem 1rem; font-size: .85rem;
  color: var(--text);
}
.about-hl-icon { font-size: 1.1rem; flex-shrink: 0; }

/* ── INFO BUTTON INLINE (replaces absolute version) ── */
.t-info-btn { display: none; } /* hide old absolute button */
.t-info-btn-inline {
  display: inline-flex; align-items: center; justify-content: center;
  width: 20px; height: 20px; border-radius: 50%; flex-shrink: 0;
  border: 1.5px solid var(--border-accent);
  background: rgba(232,113,59,.1); color: var(--accent);
  font-size: .72rem; font-weight: 700; cursor: pointer;
  transition: background .2s, transform .15s; line-height: 1;
  vertical-align: middle;
}
.t-info-btn-inline:hover { background: rgba(232,113,59,.22); transform: scale(1.1); }

/* ============================================================
   ANIMATIONS — clean & reliable
   ============================================================ */

/* ── KEYFRAMES ── */
@keyframes fadeUp   { from { opacity:0; transform:translateY(20px); } to { opacity:1; transform:translateY(0); } }
@keyframes fadeIn   { from { opacity:0; } to { opacity:1; } }
@keyframes scaleIn  { from { opacity:0; transform:scale(.93) translateY(10px); } to { opacity:1; transform:scale(1) translateY(0); } }
@keyframes bounceIn { from { opacity:0; transform:scale(.5); } to { opacity:1; transform:scale(1); } }
@keyframes shimmer  { from { transform:translateX(-100%) skewX(-15deg); } to { transform:translateX(180%) skewX(-15deg); } }
@keyframes pulse    { 0%,100% { opacity:1; } 50% { opacity:.5; } }
@keyframes loadSlide{ 0% { left:-40%; width:30%; } 60% { left:60%; width:45%; } 100% { left:110%; width:30%; } }
@keyframes slideDown{ from { opacity:0; transform:translateY(-12px); } to { opacity:1; transform:translateY(0); } }

/* ── HEADER ── */
header { animation: slideDown .45s cubic-bezier(.22,.68,0,1.1) both; }

/* ── LOADING BAR ── */
#loadingBar { position:relative; overflow:hidden; background:transparent; }
#loadingBar::after {
  content:''; position:absolute; top:0; height:100%;
  background:linear-gradient(90deg,var(--accent),var(--accent-dim));
  animation: loadSlide 1.4s ease-in-out infinite;
}

/* ── PROGRESS BARS — animated by JS ── */
.t-bar-fill {
  width: 0%;
  /* transition set by JS after render */
}

/* ── CARD SCROLL FOCUS ── */
.t-card {
  transition: opacity .6s ease, border-color .5s ease, box-shadow .5s ease;
  opacity: 0.45;
  border: 2px solid transparent !important;
}
.t-card.focused {
  opacity: 1 !important;
  border: 2px solid var(--accent) !important;
  box-shadow: 0 16px 56px rgba(232,113,59,.28) !important;
  position: relative;
  z-index: 2;
}
.t-reg-btn { position:relative; overflow:hidden; }
.t-reg-btn::after {
  content:''; position:absolute; top:0; left:0;
  width:35%; height:100%;
  background:rgba(255,255,255,.18);
  transform:translateX(-100%) skewX(-15deg);
  transition:none;
}
.t-reg-btn:hover::after {
  animation: shimmer .55s ease forwards;
}

/* ── FORM FOCUS GLOW ── */
.field input, .field select, .field textarea {
  transition: border-color .2s ease, box-shadow .2s ease;
}
.field input:focus, .field select:focus, .field textarea:focus {
  box-shadow: 0 0 0 3px rgba(232,113,59,.13);
}

/* ── MODAL BOX ── */
.modal {
  transform: scale(.98) translateY(6px);
  transition: transform .3s cubic-bezier(.22,.68,0,1.15);
}
.overlay.open .modal {
  transform: scale(1) translateY(0);
}

/* ── SUCCESS ICON ── */
.overlay.open .success-icon {
  display: block;
  animation: bounceIn .45s .08s cubic-bezier(.22,.68,0,1.35) both;
}

/* ── PLAYERS LIST TOGGLE ── */
.t-players-body {
  display: block !important;
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transition: max-height .38s cubic-bezier(.22,.68,0,1.05), opacity .28s ease;
}
.t-players-body.open {
  max-height: 800px;
  opacity: 1;
}

/* ── CAT ROWS — fade in after card appears ── */
.t-cat-row {
  opacity: 0;
  transform: translateX(-6px);
  transition: opacity .35s ease, transform .35s cubic-bezier(.22,.68,0,1.1);
}
.t-card.visible .t-cat-row:nth-child(1) { opacity:1; transform:translateX(0); transition-delay:.12s; }
.t-card.visible .t-cat-row:nth-child(2) { opacity:1; transform:translateX(0); transition-delay:.22s; }

/* ── ADMIN ROWS ── */
.admin-t-row {
  transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.admin-t-row:hover {
  border-color: var(--border-accent);
  transform: translateX(2px);
  box-shadow: 0 2px 10px rgba(232,113,59,.06);
}

/* ── ABOUT MODAL CONTENT ── */
.overlay.open .about-eyebrow { animation: fadeUp .35s .05s ease both; }
.overlay.open .about-title   { animation: fadeUp .4s  .1s  cubic-bezier(.22,.68,0,1.1) both; }
.overlay.open .about-text    { animation: fadeUp .4s  .18s ease both; }

/* ── LOOKING BADGE ── */
.looking-badge { animation: pulse 2.8s ease-in-out infinite; }

/* ── TOGGLE ACTIVE ── */
.toggle-btn { transition: all .18s ease; }
.toggle-btn.active { transform: scale(1.02); }

/* ── CAT OPTION SELECTED ── */
.cat-opt label { transition: border-color .15s ease, background .15s ease, transform .15s ease; }
.cat-opt input[type="radio"]:checked + label { transform: scale(1.015); }

/* ============================================================
   STYLE ADDITIONS
   ============================================================ */

/* ── HEADER LOGO SVG ── */
.header-left { display:flex; align-items:center; gap:.75rem; }
.logo-svg-wrap { width:36px; height:36px; flex-shrink:0; }
.logo-svg { width:100%; height:100%; }
.header-right { display:flex; align-items:center; gap:1rem; }
.header-players {
  display:flex; align-items:center; gap:.35rem;
  font-size:.78rem; color:var(--muted);
  background:var(--surface); border:1px solid var(--border);
  padding:.3rem .75rem; border-radius:20px;
}
.header-players span { font-weight:600; color:var(--accent); }

/* ── CARD FORMAT STRIP ── */
.t-card { position:relative; }
.t-card-strip {
  height:4px; width:100%;
  position:absolute; top:0; left:0; right:0;
  border-radius:16px 16px 0 0;
  opacity:.85;
}

/* ── TYPE ROW WITH BADGES ── */
.t-type-row { display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; margin-bottom:.35rem; }
.t-type { font-size:.65rem; text-transform:uppercase; letter-spacing:.1em; color:var(--accent); font-weight:500; margin-bottom:0; }

/* ── DAYS BADGE ── */
.days-badge {
  font-size:.62rem; font-weight:600; text-transform:uppercase;
  letter-spacing:.06em; padding:2px 8px; border-radius:20px;
  background:var(--surface); color:var(--muted); border:1px solid var(--border);
}
.days-badge.soon {
  background:rgba(232,113,59,.12);
  color:var(--accent-dim);
  border-color:var(--border-accent);
}
.days-badge.today {
  background:var(--accent);
  color:#fff8de;
  border-color:var(--accent);
  animation:pulse 1.5s ease-in-out infinite;
}
.days-badge.past { opacity:.45; }

/* ── NEW BADGE ── */
.new-badge {
  font-size:.6rem; font-weight:800; text-transform:uppercase;
  letter-spacing:.1em; padding:2px 7px; border-radius:20px;
  background:var(--text); color:var(--bg);
}

/* ── PAPER TEXTURE on body ── */
body {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)' opacity='0.025'/%3E%3C/svg%3E");
  background-repeat: repeat;
}

/* ── SECTION DIVIDER ── */
.section-divider {
  display:flex; align-items:center; gap:1rem;
  margin:2.5rem 0 2rem; color:var(--muted);
}
.section-divider::before, .section-divider::after {
  content:''; flex:1; height:1px; background:var(--border);
}
.section-divider-logo {
  font-family:'Barlow Condensed',sans-serif;
  font-weight:900; font-size:.85rem;
  letter-spacing:.1em; color:var(--muted);
  white-space:nowrap;
}
.section-divider-logo span { color:var(--accent); }

/* ── STICKY REGISTER BUTTON on mobile ── */
@media(max-width:700px){
  .t-bottom {
    position:sticky;
    bottom:0;
    background:var(--bg);
    border-top:1px solid var(--border);
    padding:.85rem 1.25rem;
    z-index:10;
    margin:0;
  }
  .t-reg-btn { width:100%; text-align:center; }
}

/* ── BARS ALWAYS VISIBLE, animate on focus ── */
.t-categories {
  overflow: hidden;
  opacity: 1;
}

/* ── THEME TOGGLE BUTTON ── */
.theme-btn {
  background: none; border: 1px solid var(--border);
  width: 36px; height: 36px; border-radius: 50%;
  font-size: 1rem; cursor: pointer; display: flex;
  align-items: center; justify-content: center;
  flex-shrink: 0;
}
.theme-btn:hover { border-color: var(--accent); }



/* ── RICH FOOTER ── */
footer {
  background: var(--surface);
  border-top: 1px solid var(--border);
}
.footer-inner {
  max-width: 860px; margin: 0 auto;
  padding: 3rem 2rem 2rem;
  display: grid; grid-template-columns: 1.5fr 1fr 1fr; gap: 2.5rem;
}
.footer-logo {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 900; font-size: 1.6rem; letter-spacing: .06em;
  color: var(--text); margin-bottom: .5rem;
}
.footer-logo span { color: var(--accent); }
.footer-tagline { font-size: .82rem; color: var(--muted); line-height: 1.5; }
.footer-contact-label {
  font-size: .65rem; text-transform: uppercase; letter-spacing: .1em;
  color: var(--accent); margin-bottom: .85rem; font-weight: 500;
}
.footer-contact-row {
  display: flex; align-items: center; gap: .6rem;
  font-size: .83rem; color: var(--muted); margin-bottom: .5rem;
  text-decoration: none; transition: color .2s;
}
a.footer-contact-row:hover { color: var(--text); }
.footer-contact-icon { font-size: 1rem; flex-shrink: 0; }
.footer-contact-val {
  margin-left: auto; font-weight: 500; color: var(--text);
  white-space: nowrap; font-size: .82rem;
}
.footer-bottom {
  border-top: 1px solid var(--border);
  padding: 1.25rem 2rem;
  text-align: center; font-size: .75rem; color: var(--muted);
  max-width: 100%;
}

@media(max-width:700px) {
  .footer-inner { grid-template-columns: 1fr; gap: 1.75rem; padding: 2rem 1.25rem 1.5rem; }
  .footer-contact-val { margin-left: .25rem; }
  .footer-bottom { padding: 1rem 1.25rem; }
}

/* ── SPLASH SCREEN ── */
#splash {
  position: fixed; inset: 0; z-index: 9999;
  background: var(--bg);
  display: flex; align-items: center; justify-content: center;
  pointer-events: all;
  transition: opacity .6s ease;
}
#splashInner { display: flex; flex-direction: column; align-items: center; gap: 1rem; }
#splashLogo { width: 160px; height: 160px; opacity: 0; transform: scale(.85); }
#splashTagline {
  font-family: 'Barlow Condensed', sans-serif; font-weight: 700;
  font-size: 1rem; letter-spacing: .22em; text-transform: uppercase;
  color: var(--text); opacity: 0;
}
#splash.hide {
  opacity: 0;
  pointer-events: none;
}
/* Hide main content behind splash */
body.splash-active > *:not(#splash):not(canvas) {
  visibility: hidden;
}
body.splash-done > *:not(#splash):not(canvas) {
  visibility: visible;
}

/* ── RICH FOOTER ── */
.footer-inner {
  max-width: 860px; margin: 0 auto;
  padding: 3rem 2rem 2rem;
  display: grid; grid-template-columns: 1.5fr 1fr 1fr; gap: 2.5rem;
}
.footer-logo {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 900; font-size: 1.6rem; letter-spacing: .06em;
  color: var(--text); margin-bottom: .5rem;
}
.footer-logo span { color: var(--accent); }
.footer-tagline { font-size: .82rem; color: var(--muted); line-height: 1.5; }
.footer-contact-label {
  font-size: .65rem; text-transform: uppercase; letter-spacing: .1em;
  color: var(--accent); margin-bottom: .85rem; font-weight: 500;
}
.footer-contact-row {
  display: flex; align-items: center; gap: .6rem;
  font-size: .83rem; color: var(--muted); margin-bottom: .5rem;
  text-decoration: none;
}
a.footer-contact-row:hover { color: var(--text); }
.footer-contact-icon { font-size: 1rem; flex-shrink: 0; }
.footer-contact-val {
  margin-left: auto; font-weight: 500; color: var(--text);
  white-space: nowrap; font-size: .82rem;
}
.footer-bottom {
  border-top: 1px solid var(--border);
  padding: 1.25rem 2rem;
  text-align: center; font-size: .75rem; color: var(--muted);
}
@media(max-width:700px) {
  .footer-inner { grid-template-columns: 1fr; gap: 1.75rem; padding: 2rem 1.25rem 1.5rem; }
  .footer-bottom { padding: 1rem 1.25rem; }
}

/* ── INSTAGRAM BUTTON ── */
.header-right { display: flex; align-items: center; gap: .75rem; }
.insta-btn {
  display: flex; align-items: center; justify-content: center;
  width: 36px; height: 36px; border-radius: 50%;
  border: 1px solid var(--border); color: var(--muted);
  text-decoration: none; transition: border-color .2s, color .2s;
  flex-shrink: 0;
}
.insta-btn:hover { border-color: var(--accent); color: var(--accent); }

/* ── HEADER BUTTONS — more visible ── */
.insta-btn {
  border: 1.5px solid var(--border-accent) !important;
  color: var(--accent) !important;
  background: rgba(232,113,59,.07);
}
.insta-btn:hover { background: rgba(232,113,59,.15) !important; }

.about-btn {
  border: 1.5px solid var(--border-accent);
  color: var(--text);
  font-weight: 500;
  background: rgba(232,113,59,.07);
}
.about-btn:hover { background: rgba(232,113,59,.15); color: var(--accent); border-color: var(--accent); }

.theme-btn {
  border: 1.5px solid var(--border-accent) !important;
  background: rgba(232,113,59,.07);
}
.theme-btn:hover { background: rgba(232,113,59,.15) !important; border-color: var(--accent) !important; }

/* ── FIELD HINT ── */
.field-hint {
  font-size: .62rem; color: var(--accent);
  font-weight: 400; text-transform: none;
  letter-spacing: 0; margin-left: .3rem;
}

/* ── RANKINGS SECTION ── */
#rankings-section {
  background: var(--surface);
  border-top: 1px solid var(--border);
  padding: 4rem 2rem;
}
.rankings-wrap { max-width: 860px; margin: 0 auto; }
.rankings-header {
  display: flex; align-items: flex-end; justify-content: space-between;
  margin-bottom: 2rem; gap: 1rem; flex-wrap: wrap;
}
.section-label {
  font-size: .68rem; text-transform: uppercase; letter-spacing: .12em;
  color: var(--accent); margin-bottom: .4rem;
}
.rankings-title {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 900; font-size: 2.5rem; text-transform: uppercase;
  line-height: 1; color: var(--text);
}
.season-select {
  background: var(--bg); border: 1px solid var(--border);
  color: var(--text); font-family: 'DM Sans', sans-serif;
  font-size: .88rem; padding: .55rem 2rem .55rem .9rem;
  border-radius: 8px; outline: none; cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='7' viewBox='0 0 11 7'%3E%3Cpath d='M1 1l4.5 4.5L10 1' stroke='%23515739' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right .7rem center;
  -webkit-appearance: none; appearance: none;
}
.rankings-empty { color: var(--muted); font-size: .9rem; padding: 2rem 0; }

/* Rank card */
.rank-card {
  background: var(--bg); border: 1px solid var(--border);
  border-radius: 14px; padding: 1rem 1.25rem;
  display: flex; align-items: center; gap: 1rem;
  margin-bottom: .75rem;
  box-shadow: 0 2px 8px rgba(81,87,57,.06);
  transition: border-color .2s, box-shadow .2s;
  animation: fadeUp .4s ease both;
}
.rank-card:hover { border-color: var(--border-accent); box-shadow: 0 4px 16px rgba(232,113,59,.1); }
.rank-card.rank-top { border-color: rgba(200,150,10,.25); }
.rank-pos { font-size: 1.4rem; width: 2rem; text-align: center; flex-shrink: 0; }
.rank-avatar {
  width: 44px; height: 44px; border-radius: 50%; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  font-family: 'Barlow Condensed', sans-serif; font-weight: 800;
  font-size: 1rem; color: #fff8de; letter-spacing: .03em;
}
.rank-info { flex: 1; min-width: 0; }
.rank-name { font-weight: 600; font-size: .95rem; color: var(--text); }
.rank-meta { font-size: .75rem; color: var(--muted); margin-top: .2rem; }
.rank-diff { font-weight: 500; }
.rank-diff.pos { color: var(--success); }
.rank-diff.neg { color: var(--danger); }
.rank-points {
  display: flex; flex-direction: column; align-items: center;
  flex-shrink: 0; text-align: center;
}
.rank-pts-num {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 900; font-size: 1.6rem; color: var(--accent); line-height: 1;
}
.rank-pts-label { font-size: .65rem; color: var(--muted); text-transform: uppercase; letter-spacing: .08em; }

/* ── RESULTS TAB ── */
.results-table-wrap { overflow-x: auto; border-radius: 12px; border: 1px solid var(--border); }
.results-table {
  width: 100%; border-collapse: collapse;
  font-size: .85rem; background: var(--bg);
}
.results-table th {
  background: var(--card); padding: .6rem .85rem;
  text-align: left; font-size: .65rem; text-transform: uppercase;
  letter-spacing: .08em; color: var(--muted); font-weight: 500;
  border-bottom: 1px solid var(--border);
}
.results-table td { padding: .55rem .85rem; border-bottom: .5px solid var(--border); vertical-align: middle; }
.results-table tr:last-child td { border-bottom: none; }
.res-input {
  width: 60px; background: var(--surface); border: 1px solid var(--border);
  color: var(--text); font-family: 'DM Sans', sans-serif; font-size: .88rem;
  padding: .35rem .5rem; border-radius: 6px; outline: none; text-align: center;
}
.res-input:focus { border-color: var(--accent); }
.res-input.res-place { width: 55px; }
.res-input.res-diff { width: 70px; }
.res-team { font-weight: 500; }
.res-partner { font-size: .75rem; color: var(--muted); }
.res-pts { font-family: 'Barlow Condensed', sans-serif; font-weight: 800; font-size: 1.1rem; color: var(--accent); }

@media(max-width:700px) {
  .rankings-header { flex-direction: column; align-items: flex-start; }
  .rank-meta { display: flex; flex-wrap: wrap; gap: .2rem .6rem; font-size: .68rem; }
  .results-table th:nth-child(3),
  .results-table td:nth-child(3),
  .results-table th:nth-child(4),
  .results-table td:nth-child(4) { display: none; }
}

.rank-partner {
  font-size: .75rem; color: var(--muted); font-weight: 400; margin-left: .3rem;
}

/* ── RANKINGS CATEGORY TABS ── */
.rankings-cat-tabs {
  display: flex; gap: .5rem; margin-bottom: 1.5rem;
}
.rcat-tab {
  background: none; border: 1.5px solid var(--border);
  color: var(--muted); padding: .5rem 1.25rem; border-radius: 20px;
  font-family: 'DM Sans', sans-serif; font-size: .85rem;
  cursor: pointer; transition: all .2s; font-weight: 500;
}
.rcat-tab.active {
  border-color: var(--accent); color: var(--accent);
  background: rgba(232,113,59,.08);
}
.rcat-tab:hover { border-color: var(--border-accent); color: var(--text); }

/* ── RESULTS CATEGORY LABEL ── */
.results-cat-label {
  font-size: .72rem; text-transform: uppercase; letter-spacing: .1em;
  color: var(--accent); margin-bottom: .6rem; font-weight: 500;
}
.res-partner-cell { font-size: .8rem; color: var(--muted); }
.rank-partner { font-size: .75rem; color: var(--muted); font-weight: 400; margin-left: .3rem; }

/* ── RATINGS MANAGEMENT ── */
.rmgmt-player {
  background: var(--bg); border: 1px solid var(--border);
  border-radius: 12px; margin-bottom: 1rem; overflow: hidden;
}
.rmgmt-header {
  display: flex; align-items: center; gap: .85rem;
  padding: .9rem 1.25rem; border-bottom: 1px solid var(--border);
}
.rmgmt-total {
  margin-left: auto; font-family: 'Barlow Condensed', sans-serif;
  font-weight: 900; font-size: 1.3rem; color: var(--accent);
}
.rmgmt-entries { padding: .25rem 0; }
.rmgmt-entry {
  display: flex; align-items: center; gap: .75rem;
  padding: .55rem 1.25rem; border-bottom: .5px solid var(--border);
  font-size: .8rem; flex-wrap: wrap;
}
.rmgmt-entry:last-child { border-bottom: none; }
.rmgmt-tournament { color: var(--muted); font-size: .75rem; min-width: 120px; }
.rmgmt-pts { margin-left: auto; color: var(--accent); font-weight: 600; }

/* ── PAST TOURNAMENTS SECTION ── */
#past-section {
  background: var(--card);
  border-top: 1px solid var(--border);
  padding: 4rem 2rem;
}
.past-wrap { max-width: 860px; margin: 0 auto; }

.past-card {
  background: var(--bg); border: 1px solid var(--border);
  border-radius: 14px; overflow: hidden; margin-bottom: 1rem;
  opacity: .9; transition: opacity .2s, border-color .2s, box-shadow .2s;
  display: flex;
  box-shadow: 0 2px 8px rgba(81,87,57,.06);
}
.past-card:hover { opacity: 1; border-color: var(--border-accent); box-shadow: 0 4px 16px rgba(232,113,59,.09); }
.past-card-strip { width: 4px; flex-shrink: 0; }
.past-card-inner { padding: 1rem 1.25rem; flex: 1; }
.past-card-type { font-size: .65rem; text-transform: uppercase; letter-spacing: .1em; color: var(--muted); margin-bottom: .25rem; }
.past-card-name { font-family: 'Barlow Condensed', sans-serif; font-weight: 800; font-size: 1.35rem; text-transform: uppercase; color: var(--text); margin-bottom: .5rem; }
.past-card-meta { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; font-size: .78rem; color: var(--muted); }

/* ── PAST RESULTS PANEL ── */
.past-card {
  flex-direction: column;
}
.past-card-top { display: flex; }

.past-results-btn {
  display: flex; align-items: center; gap: .45rem;
  background: none; border: none; border-top: 1px solid var(--border);
  width: 100%; padding: .65rem 1.25rem;
  font-family: 'DM Sans', sans-serif; font-size: .78rem;
  color: var(--accent); cursor: pointer;
  transition: background .15s; text-align: left;
}
.past-results-btn:hover { background: var(--surface); }
.past-results-btn .prb-arrow { transition: transform .25s; font-size: .65rem; margin-left: auto; color: var(--muted); }
.past-results-btn.open .prb-arrow { transform: rotate(180deg); }

.past-results-panel {
  max-height: 0; overflow: hidden;
  transition: max-height .4s cubic-bezier(.22,.68,0,1.05);
}
.past-results-panel.open {
  max-height: 1600px;
  border-top: 1px solid var(--border);
}
.past-results-inner { padding: 1rem 1.25rem 1.25rem; }

.pres-cat-label {
  font-size: .65rem; text-transform: uppercase; letter-spacing: .1em;
  color: var(--accent); margin-bottom: .65rem; margin-top: 1rem; font-weight: 600;
}
.pres-cat-label:first-child { margin-top: 0; }

.pres-table { width: 100%; border-collapse: collapse; font-size: .83rem; }
.pres-table th {
  font-size: .62rem; text-transform: uppercase; letter-spacing: .07em;
  color: var(--muted); padding: .3rem .5rem; text-align: left;
  border-bottom: 1px solid var(--border); font-weight: 500;
}
.pres-table td { padding: .45rem .5rem; border-bottom: .5px solid var(--border); vertical-align: middle; }
.pres-table tr:last-child td { border-bottom: none; }
.pres-rank { font-size: 1rem; width: 1.8rem; text-align: center; }
.pres-name { font-weight: 600; color: var(--text); }
.pres-partner { font-size: .75rem; color: var(--muted); font-weight: 400; display: block; }
.pres-wdl { font-size: .78rem; color: var(--muted); white-space: nowrap; }
.pres-pts {
  font-family: 'Barlow Condensed', sans-serif; font-weight: 900;
  font-size: 1.1rem; color: var(--accent); text-align: right; white-space: nowrap;
}
.pres-diff { font-size: .78rem; font-weight: 500; }
.pres-diff.pos { color: var(--success); }
.pres-diff.neg { color: var(--danger); }
.pres-no-results { color: var(--muted); font-size: .83rem; padding: .5rem 0; font-style: italic; }

@media(max-width:700px) {
  .pres-table th:nth-child(5), .pres-table td:nth-child(5) { display: none; }
}

/* ── AUTOCOMPLETE DROPDOWN ── */
.res-ac-wrap { position: relative; }
.ac-dropdown {
  display: none;
  position: absolute;
  top: calc(100% + 3px); left: 0; right: 0;
  background: var(--bg);
  border: 1px solid var(--border-accent);
  border-radius: 8px;
  box-shadow: 0 6px 20px rgba(81,87,57,.15);
  z-index: 500;
  overflow: hidden;
}
.ac-item {
  padding: .55rem .9rem;
  font-size: .85rem;
  color: var(--text);
  cursor: pointer;
  transition: background .12s;
  border-bottom: .5px solid var(--border);
}
.ac-item:last-child { border-bottom: none; }
.ac-item:hover { background: var(--surface); }
.ac-item strong { color: var(--accent); font-weight: 700; }

/* make res-input in name cells full-width */
.res-name-cell .res-ac-wrap,
.res-partner-cell .res-ac-wrap { display: block; }
.res-name { width: 100%; min-width: 100px; }

/* ── MERGE BOX ── */
.merge-box {
  margin-top: 2rem;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 1.25rem 1.5rem;
}
.merge-title {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 800; font-size: 1.1rem;
  text-transform: uppercase; margin-bottom: .35rem;
}
.merge-desc {
  font-size: .78rem; color: var(--muted);
  margin-bottom: 1rem; line-height: 1.5;
}
.merge-row {
  display: flex; align-items: flex-end;
  gap: .75rem; flex-wrap: wrap;
}
.merge-arrow {
  font-size: 1.25rem; color: var(--muted);
  padding-bottom: .6rem; flex-shrink: 0;
}
.field-input {
  width: 100%;
  background: var(--surface);
  border: 1px solid var(--border);
  color: var(--text);
  font-family: 'DM Sans', sans-serif;
  font-size: .92rem;
  padding: .75rem 1rem;
  border-radius: 10px;
  outline: none;
  transition: border-color .2s, box-shadow .2s;
}
.field-input:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(232,113,59,.13);
}
.field-input::placeholder { color: var(--muted); }

@media(max-width:700px) {
  .merge-row { flex-direction: column; }
  .merge-arrow { display: none; }
}

/* ── RANKINGS MODAL ── */
/* ── OVERLAY: center content, no scroll on overlay itself ── */
.overlay {
  position: fixed; inset: 0; background: rgba(81,87,57,.4);
  backdrop-filter: blur(5px); -webkit-backdrop-filter: blur(5px);
  z-index: 300;
  display: none; align-items: center; justify-content: center;
  padding: 1rem; overflow: hidden;
}
.overlay.open { display: flex; }

/* ── MODAL: base ── */
.modal {
  background: var(--bg); border-radius: 18px; border: 1px solid var(--border);
  padding: 2.25rem; width: 100%; max-width: 440px;
  position: relative; flex-shrink: 0;
  box-shadow: 0 8px 40px rgba(81,87,57,.18);
  max-height: 90vh; overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

/* ── CLOSE BUTTON: fixed top-right inside modal ── */
.modal-close {
  position: absolute; top: 1rem; right: 1rem;
  background: var(--surface); border: 1px solid var(--border);
  width: 30px; height: 30px; border-radius: 50%;
  font-size: .85rem; cursor: pointer; color: var(--muted);
  transition: color .2s, background .2s;
  display: flex; align-items: center; justify-content: center;
  z-index: 10; flex-shrink: 0; line-height: 1;
}
.modal-close:hover { color: var(--text); background: var(--card); }

/* ── RANKINGS MODAL: static box, only list scrolls ── */
.rankings-modal {
  max-width: 540px;
  width: 100%;
  padding: 0;
  max-height: 88vh;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.rankings-modal-head {
  padding: 2rem 2rem 0;
  flex-shrink: 0;
}
.rankings-modal-eyebrow {
  font-size: .65rem; text-transform: uppercase; letter-spacing: .14em;
  color: var(--accent); margin-bottom: .3rem; font-weight: 500;
}
.rankings-modal-title {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 900; font-size: 2.2rem;
  text-transform: uppercase; line-height: 1;
  color: var(--text);
}

.rankings-modal-controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  padding: 1.25rem 2rem;
  border-bottom: 1px solid var(--border);
  flex-shrink: 0;
}

.rankings-modal-controls .season-select { flex-shrink: 0; }
.rankings-modal-controls .rankings-cat-tabs { margin-bottom: 0; }

/* Only this scrolls */
#rankingsList {
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  flex: 1;
  padding: 1rem 2rem 2rem;
  overscroll-behavior: contain;
}

/* Rank cards inside modal */
.rankings-modal .rank-card { padding: .85rem 1rem; }
.rankings-modal .rank-pts-num { font-size: 1.4rem; }

/* Animate */
.overlay.open .rankings-modal-head     { animation: fadeUp .3s .04s ease both; }
.overlay.open .rankings-modal-controls { animation: fadeUp .3s .09s ease both; }
.overlay.open #rankingsList            { animation: fadeUp .3s .14s ease both; }

@media(max-width:600px) {
  .rankings-modal { max-height: 92vh; }
  .rankings-modal-head { padding: 1.5rem 1.25rem 0; }
  .rankings-modal-controls { padding: 1rem 1.25rem; flex-direction: column; align-items: flex-start; gap: .75rem; }
  #rankingsList { padding: .75rem 1.25rem 1.5rem; }
  .rankings-modal-title { font-size: 1.8rem; }
}

/* ── RANKINGS CARD ANIMATIONS ── */
@keyframes rankSlideIn {
  from { opacity: 0; transform: translateX(-22px) scale(.97); }
  to   { opacity: 1; transform: translateX(0) scale(1); }
}
@keyframes medalPop {
  0%   { opacity: 0; transform: scale(0.2) rotate(-25deg); }
  55%  { opacity: 1; transform: scale(1.4) rotate(6deg); }
  75%  { transform: scale(0.88) rotate(-3deg); }
  90%  { transform: scale(1.06) rotate(1deg); }
  100% { transform: scale(1) rotate(0deg); opacity: 1; }
}
@keyframes goldGlow {
  0%, 100% { box-shadow: 0 0 0 1px rgba(200,150,10,.35), 0 4px 18px rgba(200,150,10,.08); }
  50%       { box-shadow: 0 0 0 2px rgba(200,150,10,.6),  0 6px 28px rgba(200,150,10,.28); }
}
@keyframes silverGlow {
  0%, 100% { box-shadow: 0 0 0 1px rgba(160,160,190,.3), 0 3px 12px rgba(160,160,190,.08); }
  50%       { box-shadow: 0 0 0 2px rgba(160,160,190,.55), 0 5px 20px rgba(160,160,190,.2); }
}
@keyframes bronzeGlow {
  0%, 100% { box-shadow: 0 0 0 1px rgba(180,110,50,.3), 0 3px 12px rgba(180,110,50,.08); }
  50%       { box-shadow: 0 0 0 2px rgba(180,110,50,.5),  0 5px 18px rgba(180,110,50,.18); }
}

/* Base: all cards slide in */
.rank-card {
  animation: rankSlideIn .5s cubic-bezier(.22,.68,0,1.1) both;
}

/* Medal pop — own delay offset via JS */
.rank-pos-medal {
  display: inline-block;
  animation: medalPop .65s cubic-bezier(.22,.68,0,1.35) both;
}

/* ── 🥇 GOLD ── */
.rank-gold {
  background: linear-gradient(120deg, #fffcec 0%, #fff8de 45%, #fef0b0 100%);
  border: 1.5px solid rgba(200,150,10,.5) !important;
  animation: rankSlideIn .5s cubic-bezier(.22,.68,0,1.1) both,
             goldGlow 2.6s ease-in-out .7s infinite;
}
html.dark .rank-gold {
  background: linear-gradient(120deg, #4d4818 0%, #3d4329 50%, #4a4220 100%);
}
.rank-gold .rank-name    { font-size: 1rem; font-weight: 700; }
.rank-gold .rank-pts-num { color: #b8870a; font-size: 1.7rem; }
.rank-gold .rank-pos     { font-size: 1.75rem; }
.rank-gold .rank-avatar  {
  width: 48px; height: 48px; font-size: 1.05rem;
  box-shadow: 0 0 0 2.5px #c8960a, 0 3px 14px rgba(200,150,10,.4);
}

/* ── 🥈 SILVER ── */
.rank-silver {
  border: 1.5px solid rgba(160,160,190,.5) !important;
  animation: rankSlideIn .5s cubic-bezier(.22,.68,0,1.1) both,
             silverGlow 3s ease-in-out .9s infinite;
}
.rank-silver .rank-pts-num { color: #7a7e94; font-size: 1.55rem; }
.rank-silver .rank-pos     { font-size: 1.5rem; }
.rank-silver .rank-avatar  {
  width: 46px; height: 46px;
  box-shadow: 0 0 0 2px #a0a0b8, 0 2px 12px rgba(160,160,190,.3);
}

/* ── 🥉 BRONZE ── */
.rank-bronze {
  border: 1.5px solid rgba(180,110,50,.4) !important;
  animation: rankSlideIn .5s cubic-bezier(.22,.68,0,1.1) both,
             bronzeGlow 3.2s ease-in-out 1.1s infinite;
}
.rank-bronze .rank-pts-num { color: #a05c28; font-size: 1.45rem; }
.rank-bronze .rank-pos     { font-size: 1.35rem; }
.rank-bronze .rank-avatar  {
  width: 44px; height: 44px;
  box-shadow: 0 0 0 2px #b46a32, 0 2px 10px rgba(180,110,50,.25);
}

/* ── STAT PILLS ── */
.rank-meta {
  display: flex; flex-wrap: wrap;
  gap: .25rem .5rem; margin-top: .3rem;
}
.rank-stat {
  font-size: .7rem; color: var(--muted);
  background: var(--surface);
  border: .5px solid var(--border);
  border-radius: 4px;
  padding: 1px 6px;
  white-space: nowrap;
  line-height: 1.6;
}
.rank-stat.pos { color: var(--success); border-color: rgba(45,122,79,.25); background: rgba(45,122,79,.06); }
.rank-stat.neg { color: var(--danger);  border-color: rgba(192,57,43,.25);  background: rgba(192,57,43,.06); }

/* ── MEMORIES BUTTON ── */
.memories-btn {
  background: rgba(232,113,59,.1) !important;
  border-color: var(--accent) !important;
  color: var(--accent) !important;
  font-weight: 600 !important;
}
.memories-btn:hover {
  background: rgba(232,113,59,.2) !important;
}

/* ── MEMORIES MODAL ── */
.memories-modal {
  max-width: 600px;
  overflow: hidden;
}
.memories-eyebrow {
  font-size: .65rem; text-transform: uppercase; letter-spacing: .12em;
  color: var(--accent); margin-bottom: .5rem;
}
.memories-title {
  font-family: 'Barlow Condensed', sans-serif; font-weight: 900;
  font-size: 2.2rem; text-transform: uppercase; line-height: 1;
  color: var(--text); margin-bottom: 1.75rem;
}

/* ── CAROUSEL ── */
.carousel-wrap {
  display: flex; align-items: center; gap: .5rem;
  margin-bottom: .75rem;
}
.carousel-track {
  flex: 1; display: flex; align-items: flex-start;
  justify-content: center;
  height: 320px; overflow: hidden; position: relative;
}
.carousel-slide {
  position: absolute;
  transition: all .55s cubic-bezier(.4,0,.2,1);
  border-radius: 14px; overflow: visible;
  display: flex; flex-direction: column; align-items: center;
}
.carousel-slide.active {
  width: 260px; z-index: 3;
  opacity: 1; filter: none;
  left: 50%; margin-left: -130px;
  top: 0;
}
.carousel-slide.prev {
  width: 170px; z-index: 2;
  opacity: 0.5; filter: blur(2px);
  left: 50%; margin-left: -290px;
  top: 20px;
}
.carousel-slide.next {
  width: 170px; z-index: 2;
  opacity: 0.5; filter: blur(2px);
  left: 50%; margin-left: 120px;
  top: 20px;
}
.carousel-slide.far {
  width: 100px; z-index: 1;
  opacity: 0;
  left: 50%; margin-left: -50px;
  top: 40px;
}

/* Photo placeholder */
.photo-placeholder {
  width: 100%; height: 230px;
  background: var(--surface); border: 1px solid var(--border);
  display: flex; flex-direction: column; align-items: center;
  justify-content: center; gap: .4rem;
  border-radius: 14px;
  transition: all .55s cubic-bezier(.4,0,.2,1);
}
.carousel-slide.prev .photo-placeholder,
.carousel-slide.next .photo-placeholder { height: 160px; }
.carousel-slide.far .photo-placeholder  { height: 100px; }

.photo-num {
  font-family: 'Barlow Condensed', sans-serif; font-weight: 900;
  font-size: 2.5rem; color: var(--accent); line-height: 1;
}

/* Caption below photo */
.slide-caption {
  margin-top: .65rem;
  font-size: .82rem; font-weight: 500;
  color: var(--text); text-align: center;
  line-height: 1.4; padding: 0 .5rem;
  opacity: 0; transform: translateY(6px);
  transition: opacity .4s ease .2s, transform .4s ease .2s;
  pointer-events: none;
}
.carousel-slide.active .slide-caption { opacity: 1; transform: translateY(0); }
.carousel-slide.prev .slide-caption,
.carousel-slide.next .slide-caption,
.carousel-slide.far .slide-caption { display: none; }

/* Real photos */
.carousel-slide img {
  width: 100%; height: 230px; object-fit: cover; border-radius: 14px; display: block;
  transition: all .55s cubic-bezier(.4,0,.2,1);
}
.carousel-slide.prev img, .carousel-slide.next img { height: 160px; }
.carousel-slide.far img { height: 100px; }

/* Carousel buttons */
.carousel-btn {
  background: var(--surface); border: 1px solid var(--border);
  color: var(--text); width: 38px; height: 38px; border-radius: 50%;
  font-size: 1.5rem; cursor: pointer; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  transition: background .2s, border-color .2s; line-height: 1;
  z-index: 10; align-self: center; margin-top: -45px;
}
.carousel-btn:hover { background: var(--card); border-color: var(--accent); color: var(--accent); }

/* Dots */
.carousel-dots { display: flex; justify-content: center; gap: .45rem; margin-top: .5rem; }
.carousel-dot {
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--border); border: none; cursor: pointer;
  transition: background .25s, transform .25s;
}
.carousel-dot.active { background: var(--accent); transform: scale(1.35); }

/* Mobile */
@media(max-width:600px) {
  .carousel-track { height: 270px; }
  .carousel-slide.active { width: 200px; margin-left: -100px; }
  .carousel-slide.prev   { width: 120px; margin-left: -210px; }
  .carousel-slide.next   { width: 120px; margin-left: 90px; }
  .photo-placeholder { height: 175px; }
  .carousel-slide.prev .photo-placeholder,
  .carousel-slide.next .photo-placeholder { height: 115px; }
  .carousel-slide img { height: 175px; }
  .carousel-slide.prev img, .carousel-slide.next img { height: 115px; }
  .slide-caption { font-size: .76rem; }
  .memories-modal { padding: 1.5rem 1.25rem; }
  .memories-header-row { flex-direction: column; align-items: flex-start; gap: .5rem; }
}

/* ── MOBILE BUTTON LABELS ── */
.btn-short { display: none; }
.btn-full  { display: inline; }

@media(max-width:480px) {
  .btn-short { display: inline; }
  .btn-full  { display: none; }
  .about-btn { padding: .3rem .5rem; font-size: .75rem; }
}

/* ── MEMORIES HEADER ── */
.memories-header-row {
  display: flex; align-items: flex-end;
  justify-content: space-between; gap: 1rem;
  margin-bottom: 1.75rem; flex-wrap: wrap;
}
.memories-title { margin-bottom: 0; }
.memories-photo-tag {
  display: inline-flex; align-items: center; gap: .45rem;
  font-size: .75rem; color: var(--muted);
  background: var(--surface); border: 1px solid var(--border);
  border-radius: 20px; padding: .4rem .85rem;
  margin-top: .6rem;
}
.memories-photo-icon { font-size: .95rem; }


/* ── LOCATION LINK & TIME ── */
.t-loc-link {
  color: var(--accent); text-decoration: none; font-weight: 500;
  transition: opacity .2s;
}
.t-loc-link:hover { opacity: .75; text-decoration: underline; }
.t-time { display: block; color: var(--text); font-size: .88em; font-weight: 500; margin-top: .15rem; }

/* ── HEADER BUTTON PULSE ── */
@keyframes subtlePulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(232,113,59,0); }
  50%       { box-shadow: 0 0 0 5px rgba(232,113,59,0.18); }
}
.about-btn {
  animation: subtlePulse 3s ease-in-out infinite;
}
.about-btn:nth-child(2) { animation-delay: .6s; }
.about-btn:nth-child(3) { animation-delay: 1.2s; }
.about-btn:hover { animation: none; }

/* Force 24h time input */
input[type="time"] {
  -webkit-appearance: none;
  appearance: none;
}

/* Newcomer category */
.cat-dot.newcomer { background: #3d8ee8; }
