:root{--upl-pri:#0B5394;--upl-pri-dk:#073763;--upl-pri-lt:#D0E2F2;--upl-pri-row:#EBF3FA;--upl-gn:#2E7D32;--upl-rd:#D32F2F;--upl-gy:#757575;--upl-g2:#9E9E9E;--upl-g3:#E0E0E0;--upl-g4:#F5F5F5;--upl-plat:#7c3aed;--upl-gold:#F9A825;--upl-silv:#78909C;--upl-brnz:#8D6E63;--upl-accent:#F5C518}.upl-wrap{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;color:#212121;line-height:1.5;-webkit-font-smoothing:antialiased}.upl-wrap *{box-sizing:border-box;margin:0;padding:0}.upl-tl{display:inline-flex;align-items:center;justify-content:center;border-radius:6px;color:#fff;font-weight:700;flex-shrink:0;letter-spacing:-.5px}.upl-tl-sm{width:22px;height:22px;font-size:7px;border-radius:5px}.upl-tl-md{width:28px;height:28px;font-size:8px}.upl-tl-lg{width:36px;height:36px;font-size:10px;border-radius:8px}.upl-tl-xl{width:42px;height:42px;font-size:11px;border-radius:8px}.upl-tl-csk{color:#000!important}.upl-tb{display:inline-block;font-size:9px;font-weight:700;padding:1px 6px;border-radius:3px;margin-left:4px}.upl-tb-plat{color:var(--upl-plat);background:#F3E8FF}.upl-tb-gold{color:var(--upl-gold);background:#FFF8E1}.upl-tb-silv{color:var(--upl-silv);background:#ECEFF1}.upl-tb-brnz{color:var(--upl-brnz);background:#EFEBE9}.upl-card{background:#fff;margin-bottom:6px}.upl-card-head{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;border-bottom:1px solid var(--upl-g3)}.upl-card-head h3{font-weight:700;font-size:14px;margin:0}.upl-card-head a,.upl-card-head .upl-link{font-size:13px;color:var(--upl-pri);font-weight:600;cursor:pointer;text-decoration:none}.upl-table{width:100%;border-collapse:collapse}.upl-table th{background:var(--upl-pri-row);padding:6px 16px;text-align:left;font-size:10px;color:var(--upl-g2);border-bottom:2px solid var(--upl-g3)}.upl-table td{padding:9px 16px;font-size:12px;border-bottom:1px solid #EEE}.upl-table tr:nth-child(even) td{background:var(--upl-pri-row)}.upl-table tr.upl-playoff-line td{border-bottom:2px dashed var(--upl-pri)!important}.upl-table .upl-col-num{width:18px;font-size:12px;font-weight:700;color:var(--upl-g2)}.upl-table .upl-col-team{font-weight:600;font-size:12px}.upl-table .upl-col-stat{text-align:center;width:30px;font-size:12px}.upl-table .upl-col-final{text-align:right;font-size:14px;font-weight:700;color:var(--upl-pri);width:38px}.upl-table .upl-col-fp{color:var(--upl-gn);text-align:center}.upl-table .upl-col-pen{color:var(--upl-rd);text-align:center}.upl-formula-bar{padding:6px 16px;font-size:10px;color:var(--upl-g2);background:var(--upl-pri-row)}.upl-tabbar{display:flex;overflow-x:auto;border-bottom:1px solid var(--upl-g3);background:#fff}.upl-tabbar-dk{background:var(--upl-pri-dk);border-bottom:none}.upl-tabbar .upl-tab-item{flex:0 0 auto;text-align:center;padding:10px 8px;font-size:12px;font-weight:500;color:var(--upl-gy);border-bottom:2px solid #fff0;cursor:pointer;white-space:nowrap}.upl-tabbar .upl-tab-item.active{font-weight:700;color:var(--upl-pri);border-bottom-color:var(--upl-pri)}.upl-tabbar-dk .upl-tab-item{color:rgb(255 255 255 / .5)}.upl-tabbar-dk .upl-tab-item.active{color:#fff;border-bottom-color:#fff}.upl-match-card{background:#fff;margin-bottom:2px;border-bottom:1px solid #EEE}.upl-match-head{display:flex;align-items:center;justify-content:space-between;padding:6px 16px;background:var(--upl-pri-row);border-bottom:1px solid #EEE}.upl-match-head .upl-match-id{font-size:11px;font-weight:700}.upl-match-head .upl-match-time{font-size:10px;color:var(--upl-g2)}.upl-match-row{display:flex;align-items:center;justify-content:space-between;padding:6px 16px}.upl-match-row.upl-winner{font-weight:700}.upl-match-row .upl-player-name{flex:1;font-size:12px;margin-left:8px}.upl-match-row .upl-score{font-family:monospace;font-size:16px;letter-spacing:-.5px}.upl-match-row.upl-winner .upl-score{font-weight:800;color:#212121}.upl-match-row:not(.upl-winner) .upl-score{font-weight:400;color:var(--upl-gy)}.upl-match-foot{display:flex;justify-content:space-between;padding:6px 16px;border-top:1px solid #F0F0F0;font-size:11px}.upl-match-foot .upl-result-txt{color:var(--upl-gn);font-weight:600}.upl-match-foot .upl-modified-badge{color:#E65100;background:#FFF3E0;padding:1px 6px;border-radius:3px;font-size:9px;font-weight:700}.upl-match-foot .upl-approval-time{color:var(--upl-g2)}.upl-hero{background:linear-gradient(135deg,#073763,#0B5394,#1976D2);padding:20px 16px;color:#fff}.upl-hero h1{font-size:22px;font-weight:800;line-height:1.2;color:#fff;margin:0}.upl-hero .upl-hero-sub{font-size:11px;opacity:.7;margin-top:4px}.upl-hero-actions{display:flex;gap:8px;margin-top:10px}.upl-hero-btn{padding:8px 16px;border-radius:6px;font-weight:700;font-size:12px;cursor:pointer;text-decoration:none;display:inline-block}.upl-hero-btn-primary{background:var(--upl-accent);color:var(--upl-pri-dk)}.upl-hero-btn-ghost{background:rgb(255 255 255 / .15);color:#fff;border:1px solid rgb(255 255 255 / .3)}.upl-hero-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(70px,1fr));gap:8px;margin-top:12px}.upl-hero-stat{text-align:center;background:rgb(255 255 255 / .1);border-radius:6px;padding:8px 2px}.upl-hero-stat strong{display:block;font-weight:800;font-size:16px}.upl-hero-stat span{font-size:9px;opacity:.7}.upl-quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.upl-quick-item{padding:7px 4px;background:var(--upl-pri-row);border-radius:6px;text-align:center;font-size:9px;font-weight:600;color:var(--upl-pri);cursor:pointer;text-decoration:none;display:block}.upl-quick-item:hover{background:var(--upl-pri-lt)}.upl-franchise-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.upl-franchise-item{text-align:center;cursor:pointer;text-decoration:none}.upl-franchise-item .upl-franchise-city{font-size:9px;color:var(--upl-gy);margin-top:3px}.upl-stats-row{display:flex;align-items:center;padding:8px 16px;cursor:pointer}.upl-stats-row:nth-child(odd){background:var(--upl-pri-row)}.upl-stats-row .upl-rank{font-size:12px;font-weight:700;color:var(--upl-g2);width:20px}.upl-stats-row .upl-name{font-weight:600;font-size:13px;flex:1;margin-left:8px}.upl-stats-row .upl-stat-val{font-weight:700;font-size:15px;color:var(--upl-pri)}.upl-sr{display:flex;justify-content:space-between;padding:11px 16px;border-bottom:1px solid #EEE}.upl-sr:nth-child(even){background:var(--upl-pri-row)}.upl-sr .upl-sr-label{color:var(--upl-gy);font-size:13px}.upl-sr .upl-sr-value{font-weight:600;font-size:13px}.upl-form-pills{display:flex;gap:2px}.upl-form-pill{width:18px;height:18px;border-radius:3px;display:inline-flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;color:#fff}.upl-form-pill-w{background:var(--upl-gn)}.upl-form-pill-l{background:var(--upl-rd)}.upl-form-pill-t{background:var(--upl-gold)}.upl-char-row{display:flex;align-items:center;padding:6px 12px;gap:6px;border-bottom:1px solid #F0F0F0;font-size:12px}.upl-char-row.upl-b11{border-left:3px solid var(--upl-pri);background:#F1F8E9}.upl-char-num{width:18px;color:var(--upl-g2);font-weight:700;font-size:11px}.upl-role-badge{font-size:8px;font-weight:700;padding:1px 5px;border-radius:3px}.upl-role-bat{color:#0277BD;background:#E1F5FE}.upl-role-bowl{color:#E65100;background:#FFF3E0}.upl-char-name{flex:1;font-weight:600}.upl-char-stars{color:#F9A825;font-size:10px}.upl-char-pts{font-weight:700;color:var(--upl-pri);width:28px;text-align:right}.upl-b11-tag{font-size:7px;color:var(--upl-gn);font-weight:700}.upl-matchday-card{background:#fff;margin-bottom:6px}.upl-matchday-head{padding:8px 16px;font-weight:700;font-size:13px;border-bottom:1px solid var(--upl-g3);background:var(--upl-pri-row)}.upl-matchday-fixture{display:flex;align-items:center;justify-content:center;padding:10px 16px;gap:12px;border-bottom:1px solid #EEE}.upl-break-badge{display:inline-block;padding:2px 8px;background:#FFF3E0;color:#E65100;font-size:10px;font-weight:600;border-radius:4px;margin-left:8px}.upl-records-section{background:#fff;margin-bottom:6px}.upl-records-head{padding:10px 16px;font-weight:700;font-size:13px;border-bottom:1px solid var(--upl-g3)}.upl-playoff-bracket{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:16px}.upl-playoff-match{background:#fff;border-radius:8px;padding:12px;border:1px solid var(--upl-g3)}.upl-playoff-label{font-size:10px;color:var(--upl-g2);font-weight:600;margin-bottom:6px}.upl-playoff-final{grid-column:span 2;border-color:var(--upl-accent)}.upl-pencode-grid{display:grid;grid-template-columns:1fr;gap:0}.upl-pencode-item{display:flex;justify-content:space-between;padding:8px 16px;border-bottom:1px solid #EEE}.upl-pencode-item:nth-child(even){background:var(--upl-pri-row)}.upl-pencode-desc{font-size:12px;flex:1}.upl-pencode-pts{font-weight:700;color:var(--upl-rd);font-size:13px;width:40px;text-align:right}.upl-awards-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px}.upl-award-card{background:#fff;border-radius:8px;padding:12px;border:1px solid var(--upl-g3);text-align:center}.upl-award-title{font-size:11px;color:var(--upl-gy);margin-bottom:4px}.upl-award-name{font-weight:700;font-size:13px}.upl-award-prize{font-size:10px;color:var(--upl-g2);margin-top:2px}.upl-rules-section{background:#fff;margin-bottom:4px}.upl-rules-head{padding:10px 16px;font-weight:700;font-size:13px;border-bottom:1px solid var(--upl-g3);background:var(--upl-pri-row);cursor:pointer}.upl-rules-body{padding:12px 16px;font-size:12px;color:var(--upl-gy);line-height:1.7}.upl-fp-day-header{display:flex;align-items:center;gap:8px;padding:10px 16px;background:var(--upl-pri-row);border-bottom:1px solid var(--upl-g3)}.upl-fp-entry{display:flex;align-items:center;padding:6px 16px;border-bottom:1px solid #EEE;font-size:12px}.upl-fp-shift{display:inline-block;padding:2px 8px;border-radius:4px;font-size:10px;font-weight:600}.upl-fp-shift-1{background:#E8F5E9;color:var(--upl-gn)}.upl-fp-shift-2{background:#E3F2FD;color:var(--upl-pri)}.upl-fp-shift-3{background:#FFF3E0;color:#E65100}.upl-fp-late{color:var(--upl-rd);font-weight:600}.upl-dash-header{padding:16px;color:#fff}.upl-dash-header h2{font-size:18px;font-weight:800;margin:0;color:#fff}.upl-dash-header .upl-captain-badge{background:rgb(255 215 0 / .3);padding:2px 8px;border-radius:4px;font-size:10px;font-weight:700;margin-left:8px}.upl-dash-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:12px}.upl-dash-stat{background:#fff;border-radius:8px;padding:12px 6px;text-align:center;box-shadow:0 1px 3px rgb(0 0 0 / .06)}.upl-dash-stat strong{display:block;font-size:20px;font-weight:800;color:var(--upl-pri)}.upl-dash-stat span{font-size:10px;color:var(--upl-g2)}.upl-dash-actions{display:grid;grid-template-columns:1fr 1fr;gap:0}.upl-dash-action{padding:14px;text-align:center;cursor:pointer;font-size:13px;font-weight:600}.upl-dash-notice{margin:0 12px 8px;padding:10px 14px;border-radius:8px;font-size:12px;font-weight:600;display:flex;justify-content:space-between;align-items:center}.upl-dash-notice-warn{background:#FFF3E0;color:#E65100}.upl-login-hero{background:linear-gradient(135deg,#073763,#0B5394);padding:30px 16px 24px;color:#fff;text-align:center}.upl-login-hero h1{font-size:28px;font-weight:900;letter-spacing:-1px;color:#fff;margin:0}.upl-login-card{background:#fff;border-radius:12px;padding:24px 20px;box-shadow:0 2px 12px rgb(0 0 0 / .08)}.upl-login-toggle{display:flex;border-radius:8px;overflow:hidden;border:1px solid var(--upl-g3);margin-bottom:16px}.upl-login-toggle-btn{flex:1;padding:10px;text-align:center;font-size:13px;cursor:pointer;border:none;background:#fff;color:var(--upl-gy)}.upl-login-toggle-btn.active{background:var(--upl-pri);color:#fff;font-weight:700}.upl-login-field{margin-bottom:12px}.upl-login-field label{font-size:11px;color:var(--upl-gy);display:block;margin-bottom:4px}.upl-login-field input{width:100%;padding:12px;border:1px solid var(--upl-g3);border-radius:8px;font-size:14px}.upl-login-btn{display:block;width:100%;background:var(--upl-pri);color:#fff;text-align:center;padding:14px;border-radius:8px;font-weight:700;font-size:15px;cursor:pointer;border:none}.upl-login-footer{text-align:center;font-size:12px;color:var(--upl-gy);margin-top:12px}.upl-login-footer a{color:var(--upl-pri);font-weight:600}.upl-notice{padding:16px;border-radius:8px;margin:12px;font-size:13px}.upl-notice-warn{background:#FFF3E0;color:#E65100}.upl-notice-info{background:#E3F2FD;color:#1565C0}.upl-notice-success{background:#E8F5E9;color:var(--upl-gn)}.upl-notice-lock{padding:40px 20px;text-align:center}.upl-notice-lock .upl-lock-icon{font-size:48px;margin-bottom:12px}.upl-notice-lock h3{font-size:16px;font-weight:700;margin-bottom:8px}.upl-notice-lock p{font-size:13px;color:var(--upl-g2);margin-bottom:16px}.upl-starup-row{display:flex;align-items:center;padding:8px 16px;border-bottom:1px solid #EEE;gap:6px;font-size:12px}.upl-starup-stars{font-size:11px;color:var(--upl-g2)}.upl-starup-time{font-family:monospace;font-size:10px;color:var(--upl-g2)}.upl-starup-status{font-size:10px;font-weight:600}.upl-starup-active{color:var(--upl-gn)}.upl-starup-cooldown{color:#E65100}.upl-team-header{padding:16px;color:#fff;text-align:center}.upl-team-header h2{font-size:18px;font-weight:800;margin:6px 0 2px;color:#fff}.upl-team-header .upl-team-city{font-size:11px;opacity:.8}.upl-prof-header{display:flex;align-items:center;gap:12px;padding:16px;color:#fff}.upl-prof-header h2{font-size:16px;font-weight:700;color:#fff;margin:0}.upl-prof-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:12px}.upl-prof-stat{background:#fff;border-radius:8px;padding:10px 4px;text-align:center;border:1px solid #EEE}.upl-prof-stat strong{display:block;font-size:18px;font-weight:800;color:var(--upl-pri)}.upl-prof-stat span{font-size:9px;color:var(--upl-g2)}.upl-mc-header{background:var(--upl-pri);padding:16px;color:#fff}.upl-mc-vs{display:flex;justify-content:space-around;align-items:center}.upl-mc-team{text-align:center;cursor:pointer}.upl-mc-score{font-weight:700;font-size:24px;margin-top:4px}.upl-mc-sub{font-size:10px;opacity:.7}.upl-mc-result{text-align:center;margin-top:10px;font-weight:600;font-size:13px;color:#90CAF9}.upl-approve-actions{display:flex;gap:6px;padding:8px 16px;border-top:1px solid #EEE}.upl-approve-btn{flex:1;padding:8px;text-align:center;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer}.upl-approve-btn-ok{background:#E8F5E9;color:var(--upl-gn)}.upl-approve-btn-no{background:#FFEBEE;color:var(--upl-rd)}.upl-approve-btn-mod{background:var(--upl-pri-lt);color:var(--upl-pri)}.upl-px-item{display:flex;align-items:center;padding:10px 14px;border-bottom:1px solid #EEE;cursor:pointer}.upl-px-item.selected{background:#E8F5E9;border-left:3px solid var(--upl-gn)}.upl-px-check{width:20px;height:20px;border-radius:4px;border:2px solid var(--upl-g3);display:flex;align-items:center;justify-content:center;margin-right:10px}.upl-px-item.selected .upl-px-check{border-color:var(--upl-gn);background:var(--upl-gn);color:#fff}.upl-btn{display:block;width:100%;text-align:center;padding:14px;border-radius:8px;font-weight:700;font-size:14px;cursor:pointer;border:none}.upl-btn-primary{background:var(--upl-pri);color:#fff}.upl-btn-disabled{background:var(--upl-g3);color:var(--upl-g2);cursor:default}.upl-submit-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}.upl-field{margin-bottom:10px}.upl-field label{font-size:11px;color:var(--upl-gy);display:block;margin-bottom:3px}.upl-field input,.upl-field select,.upl-field textarea{width:100%;padding:10px;border:1px solid var(--upl-g3);border-radius:8px;font-size:13px;background:#fff}.upl-loss-popup{background:#FFEBEE;border-radius:12px;padding:20px;text-align:center;margin:16px}.upl-loss-popup h3{color:var(--upl-rd);margin-bottom:8px}.upl-sp-table{width:100%;border-collapse:collapse;font-size:11px}.upl-sp-table th{background:var(--upl-pri-dk);color:#fff;padding:6px 10px;text-align:left}.upl-sp-table td{padding:6px 10px;border-bottom:1px solid #EEE}@media (max-width:480px){.upl-hero h1{font-size:18px}.upl-hero-stats{grid-template-columns:repeat(2,1fr)}.upl-dash-stats{grid-template-columns:repeat(2,1fr)}.upl-prof-stats{grid-template-columns:repeat(2,1fr)}.upl-table th,.upl-table td{padding:6px 8px;font-size:11px}.upl-playoff-bracket{grid-template-columns:1fr}}