/* Player portraits and a single focused photo editor. */
.player-photo{display:inline-flex;align-items:center;justify-content:center;position:relative;flex:0 0 42px;width:42px;height:42px;border-radius:50%;overflow:hidden;background:linear-gradient(135deg,#e4ecff,#def4eb);color:#4564a3;font-size:13px;font-weight:800;border:2px solid #fff;box-shadow:0 2px 7px #29466518}
.player-photo img{width:100%;height:100%;object-fit:cover;display:block}.player-photo [hidden]{display:none}
.player-photo.large{width:88px;height:88px;flex-basis:88px;font-size:25px;border-width:3px}
.player-identity{display:flex;align-items:center;gap:12px;min-width:165px}.player-identity .badge{flex-shrink:0}
.admin-player-info{display:flex;align-items:center;gap:12px;min-width:0}.admin-player-actions{display:flex;gap:8px;flex-wrap:wrap}
.player-photo-editor{margin-top:22px;padding:24px;border:1px solid #dfe7f2;border-radius:16px;background:linear-gradient(135deg,#f7faff,#fff)}
.player-photo-editor-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:20px}.player-photo-editor-heading h3{margin:6px 0 0;font-size:20px}.player-photo-editor-heading .eyebrow{font-size:10px;margin:0}
@media(max-width:620px){.player-photo-editor{padding:16px}.admin-item:has(.admin-player-info){align-items:flex-start;flex-direction:column;gap:12px}.admin-player-actions{align-self:flex-end}.player-identity{gap:9px}.player-photo{width:36px;height:36px;flex-basis:36px}}

/* Shared fixture cards: size follows the panel, including the narrow home column. */
.week-navigation{min-width:0;max-width:100%;display:grid;gap:8px}
.week-window-note{font-size:11px;color:#748299}
.week-switch button small{display:block;font-size:9px;font-weight:500;margin-top:3px}
.hero{align-items:center}.hero>div:first-child{min-width:0}.hero .week-navigation{flex:0 1 55%}
.match-list{container-type:inline-size;padding:14px;gap:16px}
.match-list .match-card{grid-template-columns:minmax(0,1fr) minmax(130px,.85fr) minmax(0,1fr);gap:clamp(6px,1.8cqw,18px);min-height:clamp(142px,26cqw,210px)!important;padding:clamp(14px,2.5cqw,24px) clamp(10px,3cqw,28px)!important;border-radius:18px!important;box-shadow:0 10px 18px -10px #6d819a55,0 2px 6px #2338580a;transition:box-shadow .2s,transform .2s}
.match-list .match-card .team{min-width:0;display:flex;flex-direction:row;gap:clamp(6px,1.6cqw,15px);font-size:clamp(12px,2.9cqw,24px);font-weight:850;letter-spacing:-.035em;line-height:1.2;text-align:left;overflow-wrap:break-word}
.match-list .match-card .team span{min-width:0}
.match-list .match-card .team.away{flex-direction:row;text-align:right}
.match-list .match-card .crest{width:clamp(38px,11cqw,84px);height:clamp(46px,13cqw,92px);min-width:clamp(38px,11cqw,84px);flex-shrink:0}
.match-list .match-card .crest img{filter:drop-shadow(0 4px 3px #1c2a4024)}
.match-list .match-card .score-box{min-width:0;width:100%;gap:0}
.match-list .match-card .competition-badge{font-size:clamp(9px,1.65cqw,13px);font-weight:800;line-height:1.2;padding:7px 15px;max-width:100%;white-space:normal;text-wrap:balance;margin:0 0 12px;min-height:28px;letter-spacing:-.015em}
.match-list .match-card .score-inputs{gap:clamp(7px,1.7cqw,16px);margin:0;line-height:1}
.match-list .match-card .score-inputs input,.match-list .match-card .score-tile{width:clamp(40px,9.5cqw,76px);height:clamp(42px,8cqw,66px);border-radius:12px;border:1px solid #e0e6ed;background:linear-gradient(#f2f5f8,#eef2f6);color:#121e32;display:grid;place-items:center;font-family:inherit;font-size:clamp(25px,5.2cqw,43px);font-weight:900;letter-spacing:-.04em;box-shadow:inset 0 1px 1px #10234003;text-align:center}
.match-list .match-card .score-inputs input{display:block;padding:0;background:#fff;appearance:textfield}
.match-list .match-card .score-inputs input:disabled{opacity:1;background:#f8fafc;color:#8799ad}
.match-list .match-card .score-inputs input::placeholder{color:#9aaac0;text-align:center;opacity:1}
.prediction-score-field{position:relative;display:block;flex-shrink:0}
.score-placeholder{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;color:#9aaac0;font-size:clamp(25px,5.2cqw,43px);font-weight:900;line-height:1}
.prediction-score-field input:not(:placeholder-shown)+.score-placeholder{display:none}
.match-list .match-card .score-inputs input:focus-visible{outline:2px solid #8baaf4;outline-offset:2px}
.match-list .match-card .score-inputs>b{font-size:clamp(20px,4cqw,32px);font-weight:800;color:inherit}
.ui-icon{display:inline-block;flex-shrink:0;width:15px;height:15px;vertical-align:middle}
.match-list .match-card .match-datetime{display:flex;gap:5px;margin:9px 0 0;font-size:clamp(9px,1.75cqw,13px);line-height:1.3;white-space:normal;font-weight:500;color:#5f6e83;justify-content:center}
.match-list .match-card .match-datetime .ui-icon{width:clamp(11px,2cqw,15px);height:clamp(11px,2cqw,15px)}
.match-list .match-card .prediction-note{display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:999px;padding:4px 12px;min-width:80%;margin:6px 0 0;background:#e8eef5;color:#627c98;font-size:clamp(8px,1.5cqw,11px);line-height:1.2;font-weight:650}
.match-list .match-card .prediction-note .ui-icon{width:12px;height:12px}
.match-list .match-card .match-datetime.locked{background:#fff2d7;color:#99601b!important;border-radius:999px;padding:5px 9px;font-size:clamp(8px,1.5cqw,11px)}
.match-list .match-card.competition-superlig{color:#09162c;background:radial-gradient(ellipse 85% 80% at 5% 140%,transparent 65%,#dfe7ee55 66%,transparent 68%,#e6edf355 69%,transparent 72%),radial-gradient(ellipse 90% 90% at 97% 140%,transparent 66%,#dde6ef50 67%,transparent 70%,#e6edf340 71%,transparent 74%),linear-gradient(174deg,#fff 45%,#fafcfd 78%,#f0f4f8);border:1px solid #f5f7fa!important}
.match-list .match-card.competition-superlig:before,.match-list .match-card.competition-superlig:after{width:9px;height:46%;top:50%;background:linear-gradient(180deg,#ff003a,#df0024);clip-path:polygon(0 0,100% 13%,100% 87%,0 100%)}
.match-list .match-card.competition-superlig .competition-badge{background:linear-gradient(135deg,#ff0c3b,#d90022)!important;color:#fff!important;border:0!important;box-shadow:0 4px 8px #be19322b}
.match-list .match-card.competition-superlig .score-inputs input{border:1px solid #dce4ee;box-shadow:inset 0 1px 2px #1c365005}
.match-list .match-card.competition-ucl .match-datetime,.match-list .match-card.competition-uel .match-datetime,.match-list .match-card.competition-uecl .match-datetime{color:#edf3ff}
.match-list .match-card:is(.competition-ucl,.competition-uel,.competition-uecl) .prediction-note{background:#ffffff22;color:#fff}
.match-list .match-card.competition-custom{background:linear-gradient(135deg,#fff,color-mix(in srgb,var(--league-color) 10%,#fff));border:1px solid color-mix(in srgb,var(--league-color) 25%,#fff)!important}
.match-list .match-card:hover{transform:translateY(-1px);box-shadow:0 12px 20px -10px #6d819a66}
.bulk-save-wrap{align-items:center}.bulk-save-wrap small{max-width:300px;line-height:1.5}

/* Admin: progressively disclosed, scoped editing. */
.admin-hero p{line-height:1.6}.admin-current-week{padding:10px 16px;background:#fff;border:1px solid #dfe8f5;border-radius:12px;color:#45658e;font-size:13px;font-weight:700;white-space:nowrap}
.admin-workspace{display:grid;gap:16px}.admin-workspace .admin-grid{align-items:start}
.admin-section{overflow:hidden;min-width:0}
.admin-section>summary{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:25px 28px;cursor:pointer;list-style:none;background:linear-gradient(110deg,#fff,#fcfdff)}
.admin-section>summary::-webkit-details-marker{display:none}
.admin-section>summary h2{margin:0;font-size:18px;letter-spacing:-.025em;color:#1c2c47}
.admin-section>summary p{margin:7px 0 0;font-size:13px;line-height:1.4;color:#75839a}
.disclosure-chevron{width:22px;height:22px;flex-shrink:0;color:#8294b0;transition:transform .2s}
.admin-section[open]>summary{border-bottom:1px solid #e6ecf5}.admin-section[open]>summary .disclosure-chevron{transform:rotate(180deg);color:#356df3}
.admin-section>summary:focus-visible{outline:3px solid #aac0f4;outline-offset:-4px}
.admin-section-body{padding:24px 28px;background:#fff}
.admin-section .form-grid{padding:0;gap:18px;align-items:start}
.admin-section label,.admin-filter label{display:grid;gap:8px;font-size:12px;line-height:1.5;font-weight:650;color:#5c6f89}
.admin-section .field{font-size:14px;padding:12px 13px;min-height:46px;background:#f9fbfe;border-radius:10px;font-weight:500}
.admin-section .field:disabled{color:#9ba8ba;background:#f3f5f8;cursor:not-allowed}
.admin-select-steps{display:grid;grid-template-columns:1fr .6fr 1.5fr;gap:18px;align-items:end}
.step-caption{display:flex;align-items:center;gap:8px;color:#405b7e;font-weight:700;font-size:13px}
.step-caption>span{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#edf3ff;color:#356df3;font-size:11px}
.admin-empty{padding:38px 20px;text-align:center;background:#fafbfd;border:1px dashed #dce5f0;border-radius:12px;color:#8190a5;font-size:13px;margin-top:22px}
.prediction-editor{margin-top:26px;background:#fdfefe;border:1px solid #e2e9f2;border-radius:14px;overflow:hidden}
.prediction-editor .form-grid{padding:22px}.editor-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:23px;background:linear-gradient(115deg,#f1f6ff,#f9fbff);border-bottom:1px solid #e3ebf5}
.editor-heading .eyebrow{font-size:10px;margin:0;letter-spacing:.08em}.editor-heading h3{font-size:19px;letter-spacing:-.025em;margin:8px 0}.editor-heading h3 span,.result-match-info h3 span{color:#99a8bc}
.editor-heading p{font-size:12px;color:#74839a;margin:0}.editor-status{font-size:11px;white-space:nowrap;color:#5d7699;background:#fff;padding:7px 11px;border:1px solid #e1e8f2;border-radius:999px}
.form-help{color:#7e8da3;font-size:12px;line-height:1.7;margin:0}
.form-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding-top:3px}
.form-message{font-size:12px;color:#148363;line-height:1.5}.form-message.error{color:#c83850}
.score-summary{display:flex;gap:28px;padding:15px 18px;background:#f4f7fb;border-radius:10px;font-size:12px;color:#798aa2}.score-summary b{display:block;color:#304761;font-size:17px;margin-top:5px}
.admin-filter{display:grid;gap:8px;max-width:260px}.result-editor-list{margin-top:24px;display:grid;gap:12px}.result-count{font-size:12px;color:#7a89a0;margin:0 0 3px}
.result-editor-row{display:grid;grid-template-columns:minmax(200px,1fr) 160px auto;align-items:center;gap:18px;padding:20px;border:1px solid #e3eaf4;border-radius:12px;background:#fff}
.result-match-info .competition-badge{display:inline-block;font-size:9px;background:#eef3fa;color:#637e9e;padding:5px 8px;border:0;margin:0 0 7px}
.result-match-info h3{font-size:14px;margin:0 0 6px;line-height:1.5}.result-match-info p{font-size:11px;color:#7d8ca3;margin:0}
.result-fields{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:8px}.result-fields>span{padding-bottom:13px;color:#93a4ba}.result-fields label{font-size:10px;text-align:center}.result-fields .field{text-align:center;font-size:20px;font-weight:800;padding:8px;width:100%;min-width:0}
.result-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.result-actions .btn{font-size:11px;padding:10px 11px;min-height:39px}
.result-editor-row>.form-message{grid-column:1/-1}.result-editor-row>.form-message:empty{display:none}
.league-directory{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px;padding-top:18px;border-top:1px solid #edf1f7}.league-directory-item{display:flex;gap:6px;align-items:center;font-size:10px;color:#6b7e97;padding:6px 8px;border-radius:7px;background:#f5f8fc}.league-directory-item>span{width:7px;height:7px;border-radius:50%}
.manage-teams{margin-top:18px;font-size:12px}#addedMatchLink:not(:empty){padding-top:16px}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}
@media(max-width:1200px){.result-editor-row{grid-template-columns:minmax(170px,1fr) 160px}.result-actions{grid-column:1/-1;justify-content:flex-start}.admin-select-steps{grid-template-columns:1fr 1fr}.admin-select-steps>label:last-child{grid-column:1/-1}}
@media(max-width:980px){.hero .week-navigation{width:100%;flex:auto}.admin-section>summary{padding:22px}.admin-section-body{padding:20px}}
@media(max-width:620px){.match-list{padding:8px;gap:12px}.match-list .match-card{border-radius:13px!important}.admin-section>summary h2{font-size:16px}.admin-section>summary p{font-size:12px}.admin-section-body{padding:16px}.admin-select-steps{grid-template-columns:1fr}.admin-select-steps>label:last-child{grid-column:auto}.admin-section .form-grid{grid-template-columns:1fr}.editor-heading{padding:16px;align-items:start;flex-direction:column;gap:10px}.prediction-editor .form-grid{padding:16px}.result-editor-row{grid-template-columns:1fr;padding:16px}.result-fields{max-width:185px}.admin-section .btn{min-height:44px}.form-actions .form-message{flex-basis:100%}.admin-current-week{display:none}.week-window-note{font-size:10px}}
@container(max-width:440px){.match-list .match-card{grid-template-columns:minmax(0,1fr) 130px minmax(0,1fr);padding:12px 8px!important;gap:4px}.match-list .match-card .team{flex-direction:column;text-align:center;font-size:12px;gap:6px}.match-list .match-card .team.away{flex-direction:column-reverse;text-align:center}.match-list .match-card .competition-badge{font-size:9px;padding:6px 8px}.match-list .match-card .crest{width:44px;height:50px;min-width:44px}.match-list .match-card .match-datetime{font-size:9px}}

/* Four distinct page accents, with motion focused on the user's current action. */
.content[data-page=home]{--page-accent:#356df3}
.content[data-page=predictions]{--page-accent:#df0030}
.content[data-page=leaderboard]{--page-accent:#c49329}
.content[data-page=opponents]{--page-accent:#7161cc}
.content:is([data-page=home],[data-page=predictions],[data-page=leaderboard],[data-page=opponents]) .hero{position:relative;isolation:isolate;overflow:hidden;border-color:color-mix(in srgb,var(--page-accent) 14%,#fff)}
.content:is([data-page=home],[data-page=predictions],[data-page=leaderboard],[data-page=opponents]) .hero:after{content:'';position:absolute;width:230px;height:230px;right:-100px;top:-120px;border-radius:50%;z-index:-1;pointer-events:none;background:radial-gradient(circle,color-mix(in srgb,var(--page-accent) 13%,transparent),transparent 70%);animation:ambientDrift 10s ease-in-out infinite alternate}
.content .hero .eyebrow{color:var(--page-accent,var(--accent))}
.stat{transition:transform .25s,box-shadow .25s,border-color .25s}
.stat:hover{transform:translateY(-4px);box-shadow:0 14px 32px #203b6412}
.stat:after{transition:transform .5s;transform-origin:center}.stat:hover:after{transform:scale(1.4)}
.stat b{transition:color .2s}.stat:hover b{color:var(--accent)}
.week-switch button,.opponent-tabs button,.opponent-week-picker button{transition:background .22s,color .22s,box-shadow .22s,transform .22s}
.week-switch button:hover:not(.active),.opponent-week-picker button:hover:not(.active){background:#f0f5ff;transform:translateY(-1px)}
.week-switch button.active{box-shadow:0 4px 12px #356df333}
.opponent-tabs button.active{box-shadow:0 5px 15px #356df32b}
.opponent-tabs button:hover{transform:translateY(-2px)}
.match-list .match-card{transition:box-shadow .25s,transform .25s,border-color .25s}
.match-list .match-card .crest{transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.match-list .match-card:hover .crest{transform:translateY(-2px) scale(1.04)}
.match-list .match-card .score-tile,.match-list .match-card .score-inputs input{transition:box-shadow .22s,background .22s,border-color .22s,transform .22s}
.match-list .match-card:focus-within{box-shadow:0 0 0 2px #b9ccef,0 10px 25px #24416616}
.match-list .match-card .score-inputs input:focus{transform:translateY(-2px);box-shadow:0 5px 14px #356df318}
.match-list .match-card .competition-badge{transition:box-shadow .25s,transform .25s}
.match-list .match-card:hover .competition-badge{transform:translateY(-1px);box-shadow:0 5px 14px #11203b20}
.content[data-page=leaderboard] .rank.r1,.content[data-page=home] .rank.r1{position:relative;overflow:hidden;box-shadow:0 3px 9px #bc8e231a}
.content[data-page=leaderboard] .rank.r1:after,.content[data-page=home] .rank.r1:after{content:'';position:absolute;inset:-40%;background:linear-gradient(110deg,transparent 35%,#fff9 50%,transparent 65%);transform:translateX(-100%);animation:medalShine 6s ease-in-out infinite;pointer-events:none}
.content[data-page=leaderboard] .table tbody tr,.leader-row{transition:background .2s,box-shadow .2s}
.content[data-page=leaderboard] .table tbody tr:hover,.leader-row:hover{background:#f7faff;box-shadow:inset 3px 0 #c7d7f4}
.content[data-page=leaderboard] .table .bigpts{transition:color .2s,transform .2s}.content[data-page=leaderboard] .table tr:hover .bigpts{color:#b7841c;transform:translateX(2px)}
.content[data-page=opponents] .opponent-summary{border-top:2px solid #c9c1f5;background:linear-gradient(115deg,#f3f1ff,#f9fbff)}
.content[data-page=opponents] .avatar.large{box-shadow:0 0 0 5px #fff,0 0 0 6px #ded9f7;transition:transform .3s}
.content[data-page=opponents] .opponent-summary:hover .avatar.large{transform:rotate(-4deg)}
.content[data-page=opponents] .table tbody tr{transition:background .2s}.content[data-page=opponents] .table tbody tr:hover{background:#f7f5ff}
.nav{transition:color .2s,background .2s,box-shadow .2s}.nav span{transition:transform .25s}.nav:hover span{transform:translateX(2px)}
.nav span svg{width:16px;height:16px;display:block}
.btn:active:not(:disabled){transform:translateY(1px) scale(.98)}
@keyframes ambientDrift{to{transform:translate(-35px,25px) scale(1.1)}}
@keyframes medalShine{0%,68%{transform:translateX(-100%)}90%,100%{transform:translateX(100%)}}
@media(hover:none){.stat:hover,.match-list .match-card:hover .crest,.opponent-tabs button:hover{transform:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.stat:hover,.match-list .match-card:hover,.match-list .match-card:hover .crest,.match-list .match-card .score-inputs input:focus,.opponent-tabs button:hover{transform:none!important}}
