/* Scoped weekend board: translucent surfaces only, never text or controls. */
#panel.weekend-panel{width:min(880px,100vw);background:#fffaf0}
#panel.weekend-panel>.panel-head{background:#184f3e;color:#fff;border-bottom:1px solid #c5ad67}
#panel.weekend-panel #panel-body{padding:0;max-width:none;overflow-x:hidden}
.weekend-screen{--weekend-green:#245f47;--weekend-ink:#213f32;color:var(--weekend-ink);font-family:inherit;isolation:isolate}
.weekend-screen *{box-sizing:border-box}
.weekend-scene{background:linear-gradient(to bottom,rgba(239,247,241,.79) 0,rgba(239,247,241,.68) 190px,rgba(239,247,241,0) 340px),url('../assets/weekend/racecourse.webp') center center/cover no-repeat;min-height:320px;padding:18px 16px 16px}
.weekend-heading,.weekend-count-line,.weekend-footer-summary{display:flex;align-items:center;justify-content:space-between;gap:8px}
.weekend-heading h2{font-size:24px;line-height:1.4;margin:0;font-weight:750;color:#213f32}
.weekend-phase{background:#fffdf1;padding:5px 10px;border-radius:6px;font-size:12px;white-space:nowrap}
.weekend-intro p{font-size:12px;line-height:1.5;color:#526553;margin:7px 0 12px}
.weekend-count-line{font-size:13px;min-height:30px}.weekend-count-line>span{font-size:12px;color:#53664e}
.weekend-screen button{font-family:inherit;cursor:pointer;box-shadow:none;margin:0;letter-spacing:normal}
.weekend-screen button:focus-visible{outline:3px solid #bf7b0f;outline-offset:2px;position:relative;z-index:2}
.weekend-screen button:disabled{cursor:wait;opacity:.55}
.weekend-screen .weekend-preferences,.weekend-screen .weekend-auto{background:transparent;border:0;border-radius:4px;padding:4px 0;min-height:32px;font-size:12px;line-height:1.2;color:#285e47;text-decoration:underline}
.weekend-counts{display:flex;gap:6px;flex-wrap:wrap;margin:7px 0 10px}.weekend-count{display:inline-flex;align-items:center;gap:4px;border-radius:5px;padding:4px 7px;font-size:11px;font-weight:700;line-height:18px}.weekend-count.owned{background:#e5efd9}.weekend-count.shared{background:#e2edf6;color:#365f86}.weekend-count.stakes{background:#f0dfa8;color:#765718}
.weekend-owner-icon{width:19px;height:19px;display:inline-flex;align-items:center;justify-content:center;background:#e2eddc;border-radius:4px;color:#285c3c;flex:none}.weekend-owner-icon svg{width:18px;height:18px;fill:currentColor}.weekend-owner-icon.is-shared{background:#e5edf6;color:#355e85}.weekend-count .weekend-owner-icon{background:none;width:16px;height:16px}
.weekend-filters{display:flex;gap:6px;align-items:center;margin:12px 0 7px}.weekend-filters button{border:1px solid #d5c79f;background:#fffaf0;color:#57694f;border-radius:30px;padding:7px 14px;font-size:12px;line-height:20px;min-height:36px;white-space:nowrap}.weekend-filters button.is-active{background:#184f3e;border-color:#184f3e;color:#fff}.weekend-filters>span{margin-left:auto;white-space:nowrap;font-size:11px;color:#52674d}
.weekend-progress{display:block;width:100%;height:5px;border:0;border-radius:4px;overflow:hidden;background:#e4e8d1;margin:7px 0 13px;color:#4a8c61}.weekend-progress::-webkit-progress-bar{background:#e4e8d1}.weekend-progress::-webkit-progress-value{background:#4a8c61}.weekend-progress::-moz-progress-bar{background:#4a8c61}
.weekend-day{display:flex;align-items:center;gap:8px;font-size:12px;margin:9px 0 6px;line-height:20px}.weekend-day span{border-radius:5px;background:#fffaf0;padding:1px 7px;white-space:nowrap}.weekend-day:after{content:'';height:1px;background:#e5dbc2;flex:1}
.weekend-race-card{position:relative;background:rgba(255,254,248,.8);border:1px solid #dfd1ae;border-radius:11px;padding:6px 10px;min-height:72px;margin:0 0 7px;overflow:hidden}.weekend-race-card.has-horse{min-height:80px}.weekend-race-card.is-next{border:2px solid #487a57;padding:5px 9px;background:rgba(247,250,238,.8)}.weekend-race-card.is-settled{background:rgba(255,253,245,.8)}
.weekend-card-top{display:flex;align-items:flex-start;gap:8px;min-height:42px}.weekend-race-description{flex:1;min-width:0}.weekend-title-line{display:flex;align-items:center;gap:4px;min-width:0;height:23px}.weekend-screen .weekend-race-title{display:flex;align-items:center;gap:4px;min-width:0;flex:1;background:none;border:0;padding:0;min-height:23px;line-height:21px;font-size:14px;font-weight:700;color:#245d45;text-align:left;border-radius:3px;text-decoration:underline;text-underline-offset:2px}.weekend-race-title>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.weekend-document{width:16px;height:19px;flex:none;stroke:currentColor;stroke-width:1.3}.weekend-screen .weekend-document-link{flex:none;background:none;border:0;color:#245d45;font-size:10px;font-weight:700;min-height:24px;line-height:20px;padding:0 2px;text-decoration:underline;border-radius:3px}
.weekend-race-meta{font-size:10px;line-height:18px;color:#52664e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.weekend-mode{display:flex;flex:none;width:132px;min-height:44px;border:1px solid #d4d0b5;border-radius:8px;background:#f3f3e7;overflow:hidden}.weekend-mode button{width:50%;padding:2px 0;border:0;border-radius:7px;min-height:42px;font-size:11px;line-height:16px;background:transparent;color:#4c6047;white-space:nowrap}.weekend-mode button.is-selected{background:#245f47;color:#fff;font-weight:700}.weekend-mode button.is-selected:before{content:'✓';font-size:11px}.weekend-mode button.is-skip{background:#e5e5d7;color:#294535}
.weekend-horse-line{display:flex;align-items:center;gap:4px;min-height:22px;line-height:20px;font-size:11px}.weekend-representative{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.weekend-horse-trailing{margin-left:auto;flex:none;font-size:11px;color:#51664d;max-width:35%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.is-settled .weekend-horse-trailing{font-weight:700}.weekend-grade{font-size:10px;line-height:20px;color:#77571b;min-height:20px}
.weekend-race-status{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;flex:none;min-width:86px;line-height:20px;font-size:11px;color:#5c7051}.weekend-race-status strong{font-weight:500}.is-next .weekend-race-status strong{font-weight:750;color:#437651}.is-settled .weekend-card-top{min-height:22px}.is-settled .weekend-race-status{min-width:34px;line-height:23px}.weekend-winner{display:flex;gap:5px;align-items:center;min-height:24px;font-size:12px}.weekend-first{padding:0 6px;border-radius:4px;background:#f4e5af;color:#8d6919;font-weight:700;font-size:11px;line-height:19px;flex:none}.weekend-winner>strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.weekend-winning-jockey{margin-left:auto;max-width:38%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px;color:#536c55;flex-shrink:0}.weekend-required{position:absolute;right:12px;bottom:5px;font-size:9px;color:#77571b;background:#fff5d7;padding:0 3px}.weekend-race-card:has(.weekend-required) .weekend-horse-trailing{margin-right:46px}
.weekend-empty,.weekend-notice{background:rgba(255,254,248,.8);border-radius:9px;padding:12px;font-size:12px;line-height:1.6}.weekend-footer{position:sticky;bottom:0;z-index:3;background:#fffaf0;border-top:1px solid #e2d6b9;padding:10px 16px 8px;box-shadow:0 -3px 14px #17362912}.weekend-footer-summary{font-size:12px;line-height:22px;margin-bottom:7px}.weekend-footer-summary>span{font-size:11px;color:#748267}.weekend-screen .weekend-primary{width:100%;min-height:48px;font-size:16px;font-weight:750;line-height:22px;padding:10px;border:1px solid #b89a4c;border-radius:10px;background:#245f47;color:#fff}.weekend-accessibility-note{display:block;font-size:10px;line-height:1.5;color:#6b7a61;margin-top:5px}
@media(min-width:650px){.weekend-scene{padding:22px 28px;background-position:center 45%}.weekend-heading h2{font-size:28px}.weekend-race-card{padding-left:14px;padding-right:14px}.weekend-race-card.is-next{padding-left:13px;padding-right:13px}.weekend-race-title{font-size:15px!important}.weekend-race-meta{font-size:11px}.weekend-mode{width:148px}.weekend-horse-line{font-size:12px}.weekend-footer{padding-left:28px;padding-right:28px}}
@media(max-width:359px){.weekend-scene{padding:12px 9px}.weekend-heading h2{font-size:21px}.weekend-counts{gap:4px}.weekend-count{font-size:9px;padding:3px 5px}.weekend-count .weekend-owner-icon{width:13px}.weekend-mode{width:112px}.weekend-mode button{font-size:10px}.weekend-card-top{gap:5px}.weekend-race-card{padding-left:7px;padding-right:7px}.weekend-race-card.is-next{padding-left:6px;padding-right:6px}.weekend-screen .weekend-race-title{font-size:12px;gap:2px}.weekend-document{width:13px}.weekend-title-line{gap:2px}.weekend-screen .weekend-document-link{font-size:9px;padding:0}.weekend-filters{gap:4px}.weekend-filters button{padding:6px 10px}.weekend-footer{padding:8px 10px}.weekend-screen .weekend-primary{font-size:14px}.weekend-winning-jockey{max-width:35%;font-size:10px}}
.weekend-topbar{display:flex;align-items:center;gap:13px;padding:17px 16px;background:#184f3e;color:#fff;border-bottom:1px solid #c5ad67}.weekend-topbar small{font-size:10px;letter-spacing:.04em;color:#e1dfb7;font-weight:700}.weekend-topbar h1{font-size:23px;line-height:1.4;margin:2px 0 0;color:#fff}.weekend-topbar>span{margin-left:auto;background:#fffdf1;border-radius:6px;padding:6px 10px;color:#23523e;font-size:12px}.weekend-screen .weekend-back{background:none;border:0;color:#fff;font-size:34px;font-weight:400;line-height:40px;width:28px;min-height:44px;padding:0;border-radius:4px}.weekend-required{max-width:48%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.weekend-screen .weekend-heading .weekend-phase{display:none}
.weekend-topbar>.weekend-saved{margin:0;padding:4px 6px;background:#ffffff14;color:#e0eada;font-size:9px;writing-mode:vertical-rl}
.weekend-race-card:not(.has-horse):not(.is-settled){padding-top:4px;padding-bottom:4px}.weekend-race-card:not(.has-horse):not(.is-settled) .weekend-grade{min-height:16px;line-height:16px}.weekend-race-card.is-next:not(.has-horse):not(.is-settled){padding-top:3px;padding-bottom:3px}.weekend-winner{min-height:21px;line-height:21px}

body.weekend-active{background:#dce8da}body.weekend-active #app{padding:0;max-width:880px;margin:0 auto;min-height:100dvh}.weekend-screen{min-height:100dvh}.weekend-topbar{padding-top:max(17px,env(safe-area-inset-top))}.weekend-footer{padding-bottom:max(8px,env(safe-area-inset-bottom))}.weekend-detail{width:min(880px,96vw);max-height:94dvh;padding:0;border:1px solid #c2b48b;border-radius:13px;background:#fffaf0;color:#213f32}.weekend-detail::backdrop{background:#102b22a3}.weekend-detail>.panel-head{position:sticky;top:0;z-index:2;background:#184f3e;color:white}.weekend-detail>.panel-head h2{font-size:17px}.weekend-detail>.panel-head button{background:#fffaf0;color:#245f47;min-height:36px}.weekend-detail-body{padding:14px;overflow-x:hidden}.weekend-detail-body .table-wrap{overflow:auto}.weekend-detail-body table{min-width:480px}.weekend-detail-body .motto{box-shadow:none;border:0}.weekend-detail-body .motto-section-heading h2{font-size:22px}.weekend-detail-body th,.weekend-detail-body td{white-space:nowrap}

.weekend-screen .weekend-export{background:none;border:0;color:#3e654e;text-decoration:underline;padding:3px 0;min-height:28px;font-size:11px;line-height:20px}
