/* Shared event palette: friendly, rated, doubles, TOP-12. */
.event-type-regular{--event-bg:#e5efd8;--event-solid:#8ba568;--event-text:#526c37}
.event-type-rated{--event-bg:#dbe9f5;--event-solid:#6a97be;--event-text:#416c93}
.event-type-doubles{--event-bg:#f6e3d6;--event-solid:#cb9168;--event-text:#97623f}
.event-type-top12{--event-bg:#eadff5;--event-solid:#a183be;--event-text:#785795}
.home-calendar-event[class*=event-type-]{background:var(--event-bg);border-color:color-mix(in srgb,var(--event-solid) 24%,white);color:var(--event-text)}
.home-calendar-event.event-past{background:color-mix(in srgb,var(--event-bg) 35%,#edf1f3);color:color-mix(in srgb,var(--event-text) 65%,#8b979c)}
.home-calendar-kind .icon,.is-past .home-calendar-kind .icon{color:var(--event-solid)}
.list-row[class*=event-type-]{border-left:3px solid var(--event-solid,#91a879);padding-left:10px}
.list-row.event-past{border-left-color:color-mix(in srgb,var(--event-solid) 40%,#e6ecef)}
.calendar-day.has-events{background:var(--day-background);color:#34443c;border:1px solid #ffffffa0}
.calendar-day.has-events.event-past{background:color-mix(in srgb,#edf1f3 65%,transparent);background-image:var(--day-background);opacity:.6;filter:saturate(.45)}
.calendar-day.selected{outline:2px solid #7f9769;outline-offset:1px;opacity:1}
.calendar-dots{display:flex;gap:3px;justify-content:center;margin-top:4px}
.calendar-day .calendar-dots i,.calendar-legend i[class*=event-type-]{position:static;display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--event-solid)}
.calendar-legend{flex-wrap:wrap;gap:10px}.calendar-legend small{flex-basis:100%;color:#82918a;font-size:10px}
.home-announcement{margin:0;display:flex;flex-direction:column;background:linear-gradient(135deg,#f4f0e6,#e9eddb);min-width:0;max-height:310px;overflow:auto}
.home-announcement h3{font-size:23px;margin:16px 0 8px;line-height:1.2;overflow-wrap:anywhere}
.home-announcement p{font-size:12px;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere;margin:0 0 10px}
.home-announcement small{font-size:10px;color:#839076}.home-announcement .portal-buttons{margin-top:auto;padding-top:10px}
.announcements-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.announcements-grid .card{margin:0}
.announcement-body{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7}
.live-player-badge{display:inline-flex!important;align-items:center;gap:4px;vertical-align:middle;margin-left:6px;padding:3px 5px!important;border-radius:5px;background:#d9efdf;color:#307449!important;font-size:8px!important;font-weight:800!important;text-decoration:none;white-space:nowrap}
.live-dot,.live-player-badge i{display:inline-block;width:6px;height:6px;border-radius:50%;background:#50a66c;box-shadow:0 0 0 3px #50a66c18}
.live-chip{display:inline-flex;align-items:center;gap:6px;background:#dcefe0;color:#39794c}.live-profile-link{margin-top:12px}
.online-hero h3{font-size:23px!important;line-height:1.3!important;margin:17px 0 10px!important}.live-update{font-size:11px;color:#758876;margin:12px 0}
.live-table-scroll{overflow-x:auto}.live-table{min-width:480px;width:100%}.live-table th{position:static!important;box-shadow:none!important}
.live-match{display:flex;align-items:center;gap:12px;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line)}.live-match:last-child{border:0}
.live-match small{display:block;color:#879896;font-size:10px;margin-bottom:5px}.live-match b{font-size:12px;font-weight:600}.live-match b span{color:#92a09b}.live-match strong{white-space:nowrap;font-size:18px}.live-match.playing{color:#31744c}
.player-picker{min-width:0}.picker-trigger{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;text-align:left;padding:10px 12px;border:1px solid white;border-radius:10px;box-shadow:var(--soft);background:linear-gradient(135deg,#f5f8fa,#e8eef3);font:inherit;font-size:12px;color:inherit}
.player-picker-popup{position:fixed;inset:auto;margin:0;padding:8px;box-sizing:border-box;border:1px solid #fff;border-radius:12px;background:#f1f5f7;box-shadow:0 12px 38px #263d4930;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);overflow:hidden}
.player-picker-popup:popover-open{display:flex;flex-direction:column;gap:7px}.player-picker-popup::backdrop{background:transparent}
.player-picker-popup>input{width:100%;box-sizing:border-box;border:1px solid #d9e3e1;border-radius:7px;padding:9px;font:inherit;font-size:12px;background:#fff;min-width:0}
.player-picker-popup [role=listbox]{overflow-y:auto;min-height:0;flex:1;overscroll-behavior:contain;scrollbar-width:thin}
.player-picker-popup [role=option]{display:block;background:none;width:100%;border:0;padding:9px;text-align:left;font:inherit;font-size:12px;border-radius:6px}
.player-picker-popup [role=option]:hover,.player-picker-popup [role=option]:focus-visible,.player-picker-popup [aria-selected=true]{background:#e1ebd5;outline:none;color:#486a33}
.equipment-form{gap:10px}.equipment-search{position:relative}.equipment-suggestions{position:absolute;top:100%;left:0;right:0;max-height:230px;overflow-y:auto;z-index:9;background:#f6f9fa;border:1px solid #dce5e1;border-radius:8px;box-shadow:0 10px 26px #213a4222;padding:5px}
.equipment-suggestions[hidden]{display:none}.equipment-suggestions button{display:block;width:100%;padding:8px;text-align:left;background:none;border:0;color:inherit;border-radius:5px}.equipment-suggestions button:hover,.equipment-suggestions [aria-selected=true]{background:#e1ebd5}.equipment-suggestions b{display:block;font-size:12px}.equipment-suggestions small{display:block;font-size:9px;color:#7e9187}
.rubber-swatch{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px;vertical-align:-1px;border:1px solid #0002}.color-black{background:#162029}.color-red{background:#dc5659}.color-blue{background:#4d89cd}.color-green{background:#59a96d}.color-pink{background:#ed87b5}.color-purple{background:#9466b6}
.equipment-card h3{font-size:15px;margin:0 0 4px}.announcement-admin-row{flex-wrap:wrap}.announcement-admin-row small{font-size:10px;color:#8a998b}
@media(max-width:600px){.announcements-grid{grid-template-columns:1fr}.home-announcement{max-height:none;padding:16px}.site-nav a{padding-inline:5px;font-size:8px}.site-nav .icon{width:18px;height:18px}.live-match b{font-size:11px}.live-profile-link{font-size:11px}.player-picker-popup [role=option]{padding:10px}.calendar-day{min-height:42px}}
@media(prefers-reduced-motion:no-preference){.live-dot{animation:live-pulse 1.8s ease-in-out infinite}@keyframes live-pulse{50%{box-shadow:0 0 0 5px #50a66c10}}}
.registration-names{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.photo-editor-error{font-size:12px;color:#ac6258;margin:0}.photo-editor-error:empty{display:none}
.photo-crop-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.photo-crop-grid[hidden]{display:none}
.photo-crop{min-width:0;background:#e8eef0;border:1px solid #fff;border-radius:14px;padding:12px}.photo-crop h4{font-size:13px;margin:0 0 12px}
.photo-crop canvas{display:block;max-width:100%;width:auto;height:220px;margin:0 auto 12px;border-radius:10px;background:#d7e1dd;touch-action:none;cursor:grab;box-shadow:var(--soft)}.photo-crop canvas:active{cursor:grabbing}
.photo-crop .subtle{font-size:10px;line-height:1.5;margin:0 0 10px}.crop-control{display:grid;grid-template-columns:76px minmax(0,1fr);align-items:center;gap:8px;font-size:10px;margin:9px 0}.crop-control input{min-width:0;width:100%;accent-color:#7e9a63;padding:0}.photo-crop .text-button{font-size:10px;margin-top:5px}
.review-crops{display:flex;align-items:flex-start;gap:16px;flex-wrap:wrap}.review-crops figure{margin:0}.review-crops .review-photo{width:130px;height:130px;object-fit:cover}.review-crops .review-portrait{height:195px}.review-crops figcaption{font-size:10px;color:#7f9186;margin-top:6px}.playing-card h3{font-size:15px;margin:0 0 5px}
@media(max-width:750px){.photo-crop-grid{grid-template-columns:1fr}.photo-crop canvas{height:240px}.crop-control{font-size:11px;grid-template-columns:85px minmax(0,1fr)}}
.player-profile-top{display:grid;grid-template-columns:160px minmax(0,1fr);grid-template-rows:1fr auto auto;gap:12px 16px;margin-bottom:16px;min-width:0}
.player-portrait{grid-column:1;grid-row:1/4;aspect-ratio:2/3;width:100%;align-self:start;overflow:hidden;border:1px solid #fff;border-radius:16px;background:linear-gradient(145deg,#eef4e6,#dbe6ce);box-shadow:var(--soft);display:grid;place-items:center;box-sizing:border-box}
.player-portrait img{width:100%;height:100%;object-fit:cover;display:block;min-height:0}
.portrait-initials{font-size:42px;font-weight:600;color:#8ba371;letter-spacing:2px}
.player-profile-top .profile-hero{grid-column:2;display:flex;align-items:center;justify-content:space-between;gap:16px;min-width:0;margin:0;padding:18px;border-radius:16px}
.profile-identity{min-width:0}.player-profile-top .profile-hero h3{font-size:24px;overflow-wrap:anywhere}.profile-identity .subtle{margin-top:6px;font-size:11px}
.player-profile-top .profile-rating{margin:0;gap:18px;flex-shrink:0}.player-profile-top .profile-rating>div+div{padding-left:18px}.player-profile-top .profile-rating strong{font-size:25px}
.profile-action-row{grid-column:2;display:flex;align-items:center;flex-wrap:wrap;gap:10px}.profile-action-row .primary-button{width:auto;margin:0}.profile-action-row .icon-button{flex-shrink:0}.profile-action-row .live-profile-link{margin:0}
.profile-navigation{grid-column:2;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}.profile-navigation .segment,.profile-navigation .range-controls{margin:0}.profile-navigation .range-controls{gap:7px}
@media(min-width:601px) and (max-width:1100px){.player-profile-top .profile-hero{align-items:flex-start;flex-direction:column;justify-content:center;gap:12px}.player-profile-top .profile-rating{text-align:left}.player-profile-top .profile-rating strong{font-size:22px}}
@media(max-width:600px){.registration-names{grid-template-columns:1fr;gap:10px}.player-profile-top{grid-template-columns:110px minmax(0,1fr);grid-template-rows:auto auto auto;gap:12px}.player-portrait{grid-row:1;border-radius:14px}.player-profile-top .profile-hero{flex-direction:column;align-items:flex-start;justify-content:center;padding:12px;gap:12px}.player-profile-top .profile-hero h3{font-size:19px}.player-profile-top .profile-rating{gap:10px;text-align:left;flex-wrap:wrap}.player-profile-top .profile-rating strong{font-size:19px}.player-profile-top .profile-rating>div+div{border:0;padding-left:0}.player-profile-top .profile-rating small{font-size:8px}.profile-action-row,.profile-navigation{grid-column:1/-1}.profile-action-row .primary-button{flex:1;font-size:11px;padding-inline:10px}.profile-action-row .live-profile-link{flex-basis:100%;justify-content:center}.profile-navigation .segment{flex:1}.profile-navigation .range-controls{margin-left:auto}.portrait-initials{font-size:30px}}

/* Shared rating and player-preference controls. */
.rating-mode-control{display:flex;align-items:center;gap:10px;margin:0 0 12px;flex-shrink:0}.rating-mode-control>span{font-size:10px;color:#80918b}.rating-mode-control .segment{width:auto;margin:0}.rating-mode-control .segment button{min-width:58px;padding:7px 12px}.chart-summary{gap:12px;flex-wrap:wrap}.chart-summary .rating-mode-control{margin:0}
.playing-icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle;flex-shrink:0;color:#81966e}.playing-card .definition>b{display:inline-flex;align-items:center;gap:8px}.portal-field>span:has([data-playing-icon]){display:flex;align-items:center;gap:7px}[data-playing-icon]{display:inline-flex}
.calendar-create{display:flex;justify-content:flex-end;margin-bottom:12px}.calendar-create .primary-button{width:auto;margin:0}.calendar-event-editor{max-width:720px;margin-top:12px}.portal-two-fields[hidden]{display:none}.page-password>.auth-card{margin-top:12px}.playing-card .definition{gap:12px}
@media(max-width:750px){.calendar-create .primary-button{width:100%}.playing-card .definition>b{max-width:65%}.rating-mode-control .segment button{min-width:60px}}

/* Profile controls follow their tabs; video stays in the tournament summary. */
.profile-navigation{justify-content:flex-start;gap:10px 18px}.profile-navigation .segment{flex:0 0 auto}.profile-navigation .range-controls{margin-left:0;flex-wrap:wrap}
.tournament-summary-main{display:flex;align-items:center;gap:28px;padding-right:54px}.tournament-summary-copy{min-width:0}.tournament-video{position:relative;display:block;flex:0 0 220px;width:220px;aspect-ratio:16/9;overflow:hidden;border-radius:12px;background:#263735;color:#fff;box-shadow:0 3px 12px #26373518;text-decoration:none}.tournament-video img{width:100%;height:100%;display:block;object-fit:cover}.video-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:44px;height:32px;padding-left:2px;border-radius:10px;background:#cb3936e8;font-size:18px;transition:transform .18s,background .18s}.video-caption{position:absolute;inset:auto 0 0;padding:16px 10px 7px;background:linear-gradient(transparent,#071a20d9);font-size:10px;font-weight:600;line-height:1.4}.tournament-video:hover .video-play,.tournament-video:focus-visible .video-play{transform:translate(-50%,-50%) scale(1.12);background:#dc3633}.tournament-video:focus-visible{outline:3px solid #829d5b;outline-offset:3px}
@media(max-width:600px){.tournament-summary-main{flex-wrap:wrap;gap:12px;padding-right:0}.tournament-summary-copy{padding-right:35px}.tournament-video{flex-basis:220px;max-width:100%}.profile-navigation .segment{flex:0 0 auto}.profile-navigation .range-controls{margin-left:0;gap:7px}.profile-navigation .range-controls select{padding:8px;min-width:70px}}
@media(prefers-reduced-motion:reduce){.video-play{transition:none}}

.home-leaders-tools>.secondary-button{flex:1;min-width:0}.home-leaders-tools>.rating-mode-control{margin:0;gap:0}.home-leaders-tools>.rating-mode-control>span{display:none}.home-leaders-tools>.rating-legend{flex:0 0 100%}.home-leaders-tools .rating-mode-control .segment button{min-width:48px;padding:7px 10px}

.profile-uttf-link{display:inline-flex;align-items:center;gap:5px;margin-top:7px;font-size:11px}.profile-uttf-link .icon{width:14px;height:14px}
.admin-users.admin-users-compact{display:flex;flex-direction:column;gap:0;border:1px solid #fff;border-radius:14px;overflow:hidden;background:#f7f9fa99}.admin-user-row{display:grid;grid-template-columns:minmax(170px,1fr) auto minmax(250px,1.25fr) auto;align-items:center;gap:12px;padding:12px 14px;border-bottom:1px solid #dce5df}.admin-user-row:last-child{border-bottom:0}.admin-user-row.is-verified{background:#e8f0df99;border-left:3px solid #87a466;padding-left:11px}.admin-user-identity{min-width:0}.admin-user-identity h4{font-size:13px;margin:0 0 3px;overflow-wrap:anywhere}.is-verified .admin-user-identity h4{color:#486532}.admin-user-identity p{font-size:11px;margin:0 0 4px;overflow-wrap:anywhere;color:#71858a}.admin-user-identity small{font-size:9px;color:#71858a}.admin-user-row>.chip{font-size:9px;white-space:nowrap}.admin-user-row .admin-user-link{display:flex;flex-direction:row;align-items:flex-end;gap:8px;margin:0;min-width:0}.admin-user-link>.portal-field{flex:1;min-width:0;margin:0}.admin-user-link .portal-field>span{font-size:9px;margin-bottom:4px}.admin-user-link select{padding:8px;font-size:11px;min-width:0}.admin-user-row .secondary-button{font-size:10px;padding:8px 10px;min-height:33px;white-space:nowrap;width:auto;margin:0}
.verification-invitation{display:flex;align-items:flex-start;gap:12px;background:linear-gradient(120deg,#f4f8ec,#e9f0df);border-color:#dbe6ca}.verification-invitation h3{font-size:15px;margin:0 0 6px}.verification-invitation p{font-size:12px;line-height:1.65;margin:0;color:#617356}.verification-hint-icon{flex:0 0 30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#dce8c9;color:#5b773e;font-weight:700}
@media(max-width:1100px){.admin-user-row{grid-template-columns:minmax(0,1fr) auto}.admin-user-link{grid-column:1}.admin-user-row>.secondary-button{align-self:end}}
@media(max-width:600px){.admin-user-row{gap:9px;padding:12px}.admin-user-row.is-verified{padding-left:9px}.admin-user-row .admin-user-link{grid-column:1/-1}.admin-user-row>.secondary-button{grid-column:1/-1;justify-self:start}.admin-user-link select{font-size:16px}.verification-invitation{gap:9px}.verification-invitation h3{font-size:14px}.verification-invitation p{font-size:11px}}
