*{box-sizing:border-box}html{background:var(--cp-bg);min-width:320px}body{min-width:320px;min-height:100vh;color:var(--cp-text);background:var(--cp-bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0;font-family:Segoe UI,Aptos,Calibri,-apple-system,BlinkMacSystemFont,sans-serif}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:var(--cp-accent-soft)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--cp-accent);outline-offset:3px}.app-shell{width:min(1280px,100% - 32px);min-height:100vh;margin:0 auto}.coming-soon{background:radial-gradient(circle at center, var(--cp-surface-soft) 0, var(--cp-surface) 68%);place-items:center;width:100%;min-height:100svh;padding:32px;display:grid;position:relative;overflow:hidden}.coming-soon:before,.coming-soon:after{border:1px solid var(--cp-border);content:"";opacity:.45;border-radius:50%;width:min(44vw,620px);height:min(44vw,620px);position:absolute}.coming-soon:before{top:-28%;left:-14%}.coming-soon:after{bottom:-28%;right:-14%}.coming-soon-content{z-index:1;text-align:center;width:min(980px,100%);position:relative}.coming-soon-kicker{color:var(--cp-accent);letter-spacing:.24em;text-transform:uppercase;margin-bottom:12px;font-size:.82rem;font-weight:800}.coming-soon h1{letter-spacing:-.07em;text-transform:uppercase;margin-bottom:16px;font-size:clamp(3.6rem,11vw,8.5rem);line-height:.88}.coming-soon-message{color:var(--cp-text-muted);margin-bottom:52px;font-size:clamp(1rem,2.5vw,1.3rem)}.logo-lockup{grid-template-columns:minmax(0,1fr) 1px minmax(0,.78fr);align-items:center;gap:clamp(24px,6vw,64px);width:min(760px,100%);margin:0 auto;display:grid}.secret-logo{cursor:default;background:0 0;border:0;place-items:center;min-width:0;padding:0;display:grid}.secret-logo img,.jammy-logo{object-fit:contain;width:100%;max-height:330px;filter:drop-shadow(0 12px 20px var(--cp-highlight));display:block}.secret-logo img{max-width:360px}.jammy-logo,.secret-logo .jammy-logo{max-width:300px}.logo-divider{background:var(--cp-border-strong);opacity:.65;width:1px;height:min(260px,35vw)}.site-header,.site-footer{justify-content:space-between;align-items:center;gap:24px;display:flex}.site-header{border-bottom:1px solid var(--cp-border);min-height:76px}.brand{color:var(--cp-text);letter-spacing:-.03em;align-items:center;gap:10px;font-size:1.2rem;font-weight:800;text-decoration:none;display:inline-flex}.brand-logos{flex-shrink:0;align-items:center;gap:4px;display:inline-flex}.brand-logos img{object-fit:contain;width:40px;height:40px;display:block}.site-nav{align-items:center;gap:24px;display:flex}.site-nav a{color:var(--cp-text-muted);font-weight:650;text-decoration:none}.site-nav a:hover{color:var(--cp-accent)}.page-intro{max-width:780px;padding:100px 0 64px}.page-intro.compact{padding-bottom:40px}.eyebrow{color:var(--cp-accent);letter-spacing:.15em;text-transform:uppercase;margin:0 0 16px;font-size:.8rem;font-weight:800}h1,h2,h3,p{margin-top:0}h1,h2,h3{color:var(--cp-text)}h1{letter-spacing:-.06em;margin-bottom:24px;font-size:clamp(2.8rem,8vw,6rem);line-height:.96}h2{letter-spacing:-.03em;margin-bottom:8px;font-size:1.8rem}.page-intro>p:last-child{max-width:650px;color:var(--cp-text-muted);font-size:1.18rem;line-height:1.7}.site-footer{border-top:1px solid var(--cp-border);min-height:100px;color:var(--cp-text-muted);margin-top:100px}.button{border:1px solid var(--cp-border);min-height:42px;color:var(--cp-text);background:var(--cp-surface);cursor:pointer;border-radius:.625rem;padding:8px 16px;font-weight:700}.button:hover{border-color:var(--cp-border-strong);background:var(--cp-surface-soft)}.button.primary{border-color:var(--cp-accent);color:var(--cp-accent-fg);background:var(--cp-accent)}.button.primary:hover{border-color:var(--cp-accent-hover);background:var(--cp-accent-hover)}.button.danger{border-color:var(--cp-danger);color:var(--cp-danger);background:var(--cp-surface)}.button:disabled{cursor:wait;opacity:.65}.inline-button{align-items:center;margin-top:24px;text-decoration:none;display:inline-flex}.status-card{border:1px solid var(--cp-border);background:var(--cp-surface);text-align:center;border-radius:16px;max-width:760px;margin:80px auto;padding:32px}.status-card.error,.form-error{color:var(--cp-danger)}.form-success{color:var(--cp-success)}.public-poster{width:min(800px,100%);box-shadow:var(--cp-shadow);border-radius:16px;margin:0 auto;overflow:hidden}.archive-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;display:grid}.archive-card{border:1px solid var(--cp-border);min-height:160px;color:var(--cp-text);background:var(--cp-surface);border-radius:16px;flex-direction:column;gap:12px;padding:24px;text-decoration:none;display:flex}.archive-card:hover{border-color:var(--cp-accent)}.archive-card span{color:var(--cp-text-muted)}.archive-card-logos{align-items:center;gap:12px;min-height:58px;display:flex}.archive-card-logos img,.archive-card-logos span{object-fit:contain;background:var(--cp-surface-soft);border-radius:50%;width:54px;height:54px}.archive-card-logos span{border:1px solid var(--cp-border);color:var(--cp-text);place-items:center;font-size:1.2rem;font-weight:900;display:grid}.archive-card-logos b{color:var(--cp-text-muted);font-size:.8rem}.squad-back-link{gap:8px;margin:0 0 28px}.squad-back-link svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px;width:20px;height:20px}.poster{--cp-poster-accent:var(--cp-poster-yellow);--cp-poster-accent-fg:var(--cp-accent-fg);isolation:isolate;aspect-ratio:1;width:100%;color:var(--cp-text);background:var(--cp-surface);background-position:50%;background-size:cover;grid-template:"heading own-team"30%"players match"58%"footer footer"12%/64% 36%;display:grid;position:relative;overflow:hidden;container-type:inline-size}.poster-yellow{background-image:url(/poster-background-yellow.png)}.poster-red{--cp-poster-accent:var(--cp-poster-red);--cp-poster-accent-fg:var(--cp-text);background-image:url(/poster-background-red.png)}.poster-grain{z-index:-1;background:linear-gradient(var(--cp-overlay), transparent);opacity:.08;position:absolute;inset:0}.poster:before,.poster:after{z-index:-1;content:"";pointer-events:none;position:absolute}.poster:before{border:.28cqw solid var(--cp-poster-accent);opacity:.42;inset:1.6cqw}.poster:after{border:.35cqw solid var(--cp-poster-accent);opacity:.18;width:34cqw;height:34cqw;bottom:-11cqw;right:-11cqw;transform:rotate(30deg)}.poster-heading{grid-area:heading;align-self:end;padding:2.6cqw 0 0 5.5cqw}.poster-league{width:100%;color:var(--cp-text);letter-spacing:.18em;white-space:nowrap;text-transform:uppercase;justify-content:center;align-items:center;gap:1.6cqw;margin:0 0 1cqw;font-size:2.65cqw;font-weight:900;display:flex}.poster-league span{background:var(--cp-poster-accent);width:6cqw;height:.55cqw}.poster-heading h2{color:var(--cp-poster-accent);letter-spacing:-.055em;white-space:nowrap;transform-origin:0;text-transform:uppercase;width:130%;margin:0;font-family:Arial Narrow,Segoe UI,sans-serif;font-size:18cqw;font-weight:700;line-height:.78;transform:scaleX(.7)}.poster-squad-title{clip-path:polygon(2% 16%,100% 0,96% 78%,4% 100%);min-width:46cqw;color:var(--cp-poster-accent-fg);background:var(--cp-poster-accent);text-align:center;text-transform:uppercase;margin:1.5cqw 0 0 9.5cqw;padding:.7cqw 3.2cqw .9cqw;font-size:4.5cqw;font-style:italic;font-weight:950;line-height:1;display:inline-block}.poster-own-team{grid-area:own-team;align-content:center;place-items:center;min-width:0;min-height:0;padding:1.2cqw 1.5cqw 2.8cqw;display:grid;position:relative}.poster-red .poster-own-team{transform:none}.poster-red .poster-own-team img{transform:translateY(3.25cqw)}.poster-own-team img,.poster-own-team .poster-logo-placeholder,.poster-opponent .poster-logo-placeholder{object-fit:contain;width:28cqw;height:22cqw;filter:drop-shadow(0 1cqw 1.3cqw var(--cp-highlight))}.poster-own-team img{width:31cqw;height:25cqw}.poster-yellow .poster-own-team img{transform:translate(-1.85cqw,.65cqw)}.poster-opponent img{object-fit:contain;width:25cqw;height:21cqw;filter:drop-shadow(0 1cqw 1.3cqw var(--cp-highlight))}.poster-own-team strong,.poster-opponent strong{max-width:28cqw;color:var(--cp-poster-accent);text-align:center;text-transform:uppercase;font-size:2.7cqw;font-weight:950;line-height:1}.poster-opponent strong{clip-path:polygon(2% 12%,100% 0,97% 88%,0 100%);padding:.45cqw 1.1cqw .6cqw}.poster-own-team strong{max-width:none;color:var(--cp-poster-accent-fg);text-shadow:0 .2cqw .5cqw #0000008c;white-space:nowrap;position:absolute;bottom:2.1cqw;left:2.5cqw;right:2.5cqw}.poster-yellow .poster-own-team strong{color:#111;clip-path:polygon(2% 12%,100% 0,97% 88%,0 100%);text-shadow:none;background:#e2a017;padding:.45cqw 1cqw .6cqw;font-size:3.2cqw}.poster-player-rule{background:var(--cp-poster-accent);clip-path:polygon(30% 0,100% 3%,65% 46%,100% 100%,0 97%,28% 50%);width:.65cqw;position:absolute;top:33cqw;bottom:11cqw;left:14.5cqw}.poster-players{grid-area:players;padding:2.4cqw 2.4cqw 1.5cqw 17.2cqw}.poster-player-list{margin:0;padding:0;list-style:none}.poster-player-list li{font-family:Arial Narrow,Segoe UI,sans-serif;font-size:var(--poster-player-font-size,2.6cqw);letter-spacing:.018em;white-space:nowrap;text-transform:uppercase;margin-bottom:.08cqw;font-weight:900;line-height:1.02}.poster-divider{background:var(--cp-poster-accent);clip-path:polygon(1% 25%,98% 0,100% 68%,3% 100%);width:72%;height:.55cqw;margin:1cqw 0}.poster-match{flex-direction:column;grid-area:match;align-items:center;min-height:0;padding:0 1.4cqw 1.2cqw;display:flex}.poster-opponent{place-items:center;margin-top:2.5cqw;display:grid}.poster-logo-placeholder{border:.4cqw solid var(--cp-poster-accent);color:var(--cp-poster-accent);background:var(--cp-surface);border-radius:16px;place-items:center;font-size:4.6cqw;font-weight:900;display:grid}.poster-versus{color:var(--cp-text);margin:1cqw 0 -1.2cqw;font-family:Impact,Arial Narrow,Segoe UI,sans-serif;font-size:10cqw;font-style:italic;font-weight:950;line-height:1;transform:rotate(-5deg)}.poster-details{border-left:.55cqw solid var(--cp-poster-accent);width:100%;margin:auto 0 2cqw;padding-left:.9cqw}.poster-details div{border-bottom:.22cqw dashed var(--cp-poster-accent);grid-template-columns:4.8cqw 1fr;align-items:center;column-gap:.8cqw;padding:.3cqw 0;display:grid}.poster-details div:last-child{border-bottom:0}.poster-detail-icon{width:4.4cqw;height:4.4cqw;color:var(--cp-poster-accent-fg);background:var(--cp-poster-accent);border-radius:50%;grid-row:1/3;place-items:center;display:grid}.poster-detail-icon svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:2.8cqw;height:2.8cqw}.poster-details dt{color:var(--cp-poster-accent);letter-spacing:.08em;text-transform:uppercase;font-size:1.35cqw;font-weight:900}.poster-details dd{text-transform:uppercase;margin:0;font-family:Arial Narrow,Segoe UI,sans-serif;font-size:2.25cqw;font-weight:900;line-height:1.05}.poster-footer{color:var(--cp-text);flex-direction:column;grid-area:footer;align-items:center;padding-top:1.2cqw;display:flex}.poster-footer strong{clip-path:polygon(2% 18%,100% 0,96% 82%,0 100%);min-width:55cqw;color:var(--cp-poster-accent-fg);background:var(--cp-poster-accent);letter-spacing:-.04em;text-align:center;text-transform:uppercase;padding:.5cqw 5cqw .8cqw;font-size:5.1cqw;font-style:italic;font-weight:950;line-height:1}.poster-footer span{letter-spacing:.035em;margin-top:.7cqw;font-size:1.8cqw;font-weight:800}.poster-red:before,.poster-red:after{border-color:var(--cp-poster-accent)}.poster-red .poster-league span,.poster-red .poster-squad-title,.poster-red .poster-player-rule,.poster-red .poster-divider,.poster-red .poster-detail-icon,.poster-red .poster-footer strong{background:var(--cp-poster-accent)}.poster-red .poster-opponent strong,.poster-red .poster-logo-placeholder,.poster-red .poster-details dt{color:var(--cp-poster-accent)}.poster-red .poster-heading h2{color:var(--cp-text)}.poster-red .poster-logo-placeholder,.poster-red .poster-details{border-color:var(--cp-poster-accent)}.poster-red .poster-details div{border-bottom-color:var(--cp-poster-accent)}.poster-red .poster-squad-title,.poster-red .poster-detail-icon,.poster-red .poster-footer strong{color:var(--cp-text)}@container (width<=500px){.poster-heading h2{width:125%;font-size:16.5cqw;transform:scaleX(.68)}}.admin-page{min-width:0}.admin-tabs{border:1px solid var(--cp-border);background:var(--cp-surface-soft);border-radius:.625rem;gap:4px;padding:4px;display:flex;overflow-x:auto}.admin-tabs a{min-height:42px;color:var(--cp-text-muted);background:var(--cp-surface-soft);white-space:nowrap;cursor:pointer;border:0;border-radius:.625rem;align-items:center;padding:8px 16px;font-weight:700;text-decoration:none;display:inline-flex}.admin-tabs a.active{color:var(--cp-accent-fg);background:var(--cp-accent)}.admin-panel{border:1px solid var(--cp-border);background:var(--cp-surface);border-radius:16px;margin-top:20px;padding:28px}.section-heading{justify-content:space-between;gap:24px;margin-bottom:24px;display:flex}.section-heading p{color:var(--cp-text-muted);margin:0}.entity-form,.field-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.entity-form{border:1px solid var(--cp-border);background:var(--cp-bg-elevated);border-radius:16px;margin-bottom:28px;padding:20px}label{color:var(--cp-text-muted);gap:8px;font-size:.9rem;font-weight:700;display:grid}input,select{border:1px solid var(--cp-border);width:100%;min-height:44px;color:var(--cp-text);background:var(--cp-surface);border-radius:.625rem;padding:8px 12px}input[type=file]{padding:8px}.checkbox-field{min-height:44px;color:var(--cp-text);cursor:pointer;align-items:center;gap:10px;display:flex}.checkbox-field input{width:18px;min-height:18px;accent-color:var(--cp-accent);margin:0}.form-actions{flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:10px;display:flex}.membership-picker{border:1px solid var(--cp-border);border-radius:.625rem;min-width:0;margin:0;padding:16px}.membership-picker legend{color:var(--cp-text);padding:0 6px;font-weight:800}.membership-picker p{color:var(--cp-text-muted);margin:0}.opponent-label-preview{justify-items:start;gap:10px;display:grid}.opponent-label-preview>span{color:var(--cp-text-muted);font-size:.9rem;font-weight:700}.opponent-label-preview strong{clip-path:polygon(2% 12%,100% 0,97% 88%,0 100%);text-align:center;text-transform:uppercase;min-width:min(320px,100%);padding:10px 20px 12px;font-size:1.35rem;font-weight:950;line-height:1}.edit-modal{border:1px solid var(--cp-border);width:min(720px,100% - 32px);max-height:calc(100svh - 32px);color:var(--cp-text);background:var(--cp-surface);box-shadow:var(--cp-shadow);border-radius:16px;padding:0;overflow:hidden}.edit-modal::backdrop{background:var(--cp-overlay)}.edit-modal-card{max-height:calc(100svh - 32px);overflow-y:auto}.edit-modal-header{z-index:1;border-bottom:1px solid var(--cp-border);background:var(--cp-surface);justify-content:space-between;align-items:center;gap:16px;padding:20px 24px;display:flex;position:sticky;top:0}.edit-modal-header h2{margin:0}.edit-modal .entity-form{background:var(--cp-surface);border:0;border-radius:0;margin:0;padding:24px}.assignment-groups{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.entity-list{gap:8px;display:grid}.player-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.player-column{min-width:0}.player-column h3{align-items:center;gap:8px;margin:0 0 10px;display:flex}.player-column h3 span{background:var(--cp-surface-soft);min-width:24px;height:24px;color:var(--cp-text-muted);border-radius:999px;justify-content:center;align-items:center;padding:0 7px;font-size:.75rem;display:inline-flex}.empty-player-column{border:1px dashed var(--cp-border);color:var(--cp-text-muted);border-radius:.625rem;margin:0;padding:16px}.entity-row{border:1px solid var(--cp-border);background:var(--cp-surface);border-radius:.625rem;justify-content:space-between;align-items:center;gap:16px;min-height:64px;padding:12px 16px;display:flex}.player-team-border-yellow{border-width:2px;border-color:var(--cp-poster-yellow)}.player-team-border-red{border-width:2px;border-color:var(--cp-poster-red)}.player-team-border-mixed{background:linear-gradient(var(--cp-surface), var(--cp-surface)) padding-box, linear-gradient(90deg, var(--cp-poster-yellow) 0%, var(--cp-poster-yellow) 35%, var(--cp-poster-red) 65%, var(--cp-poster-red) 100%) border-box;border-width:2px;border-color:#0000}.player-summary>div:last-child{gap:3px;min-width:0;display:grid}.player-team-logos{flex:none;align-items:center;display:flex}.player-team-logos img{object-fit:contain;background:var(--cp-surface);border-radius:50%;width:38px;height:38px}.player-team-logos img+img{margin-left:-9px}.entity-row>div:first-child{gap:3px;display:grid}.entity-row>div.player-summary{align-items:center;gap:10px;min-width:0;display:flex}.entity-row span{color:var(--cp-text-muted);text-transform:capitalize;font-size:.85rem}.row-actions{gap:8px;display:flex}.team-name{align-items:center;gap:12px;display:flex}.team-name img,.team-name>span:first-child{object-fit:contain;background:var(--cp-surface-soft);border-radius:.625rem;width:40px;height:40px}.team-name .team-player-count{width:auto;height:auto;color:var(--cp-text-muted);background:0 0;font-size:.85rem}.sheet-workspace{grid-template-columns:minmax(0,1fr) minmax(360px,.9fr);align-items:start;gap:28px;display:grid}.sheet-form{min-width:0}.full-field{grid-column:1/-1}.player-picker{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:24px;display:grid}.player-picker fieldset{border:1px solid var(--cp-border);border-radius:16px;min-width:0;margin:0;padding:16px}.player-picker legend{color:var(--cp-text);padding:0 6px;font-weight:800}.player-option{min-height:38px;color:var(--cp-text);cursor:pointer;grid-template-columns:auto 1fr;align-items:center;font-weight:500;display:flex}.player-option input{width:18px;min-height:18px;accent-color:var(--cp-accent);margin:0}.empty-player-roster{color:var(--cp-text-muted);grid-column:1/-1;margin:0}.guest-player-option{justify-content:space-between;gap:12px}.guest-player-option small{color:var(--cp-text-muted);margin-left:4px;font-size:.72rem;font-weight:700}.guest-player-option button{border:1px solid var(--cp-border);color:var(--cp-danger);background:var(--cp-surface);cursor:pointer;border-radius:.5rem;padding:4px 8px;font-weight:700}.guest-player-entry{grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-top:12px;display:grid}.guest-player-entry input{min-width:0}.selected-player-order{border:1px solid var(--cp-border);background:var(--cp-bg-elevated);border-radius:16px;gap:16px;margin-top:24px;padding:16px;display:grid}.selected-player-order h3,.selected-player-order p{margin-bottom:4px}.selected-player-order p{color:var(--cp-text-muted)}.selected-order-groups{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.selected-order-group{align-content:start;gap:8px;display:grid}.selected-order-item{border:1px solid var(--cp-border);background:var(--cp-surface);cursor:grab;border-radius:.625rem;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;min-height:44px;padding:6px 8px;display:grid}.selected-order-item:active{cursor:grabbing}.drag-handle{width:24px;height:24px;color:var(--cp-text-muted);place-items:center;display:grid}.drag-handle svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:2px;width:20px;height:20px}.order-actions{gap:4px;display:flex}.order-actions button{border:1px solid var(--cp-border);width:32px;min-height:30px;color:var(--cp-text);background:var(--cp-surface-soft);cursor:pointer;border-radius:.4rem;place-items:center;padding:4px;font-size:.75rem;font-weight:700;display:grid}.order-actions button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.2px;width:18px;height:18px}.order-actions button:disabled{cursor:default;opacity:.45}.sticky-actions{z-index:2;border:1px solid var(--cp-border);background:var(--cp-panel-strong);box-shadow:var(--cp-shadow);border-radius:.625rem;margin-top:24px;padding:12px;position:sticky;bottom:12px}.poster-preview{min-width:0;box-shadow:var(--cp-shadow);border-radius:16px;position:sticky;top:20px;overflow:hidden}@media (width<=900px){.sheet-workspace{grid-template-columns:1fr}.poster-preview{grid-row:1;position:static}}@media (width<=640px){.coming-soon{padding:28px 20px}.coming-soon-message{margin-bottom:38px}.logo-lockup{grid-template-columns:minmax(0,1fr) 1px minmax(0,.78fr);gap:18px}.secret-logo img,.jammy-logo{max-height:210px}.logo-divider{height:150px}.app-shell{width:min(100% - 20px,1280px)}.assignment-groups{grid-template-columns:1fr}.site-header{flex-direction:column;align-items:flex-start;padding:16px 0}.brand{gap:8px}.brand-logos{gap:2px}.brand-logos img{width:34px;height:34px}.site-nav{justify-content:space-between;gap:12px;width:100%}.page-intro{padding:64px 0 40px}.site-footer{flex-direction:column;justify-content:center;align-items:flex-start;padding:24px 0}.admin-panel{padding:16px}.entity-form,.field-grid,.player-picker,.selected-order-groups,.player-columns{grid-template-columns:1fr}.entity-row{flex-direction:column;align-items:flex-start}.row-actions{width:100%}.row-actions .button{flex:1}}
