:root{--upl-primary:#0B5394;--upl-primary-dark:#073763;--upl-accent:#F5C518;--upl-win:#2E7D32;--upl-loss:#D32F2F;--upl-tie:#F57F17;--upl-bg:#F0F2F5;--upl-card:#FFFFFF;--upl-border:#E4E6EB;--upl-text:#1C1E21;--upl-muted:#65676B;--upl-radius:10px;--upl-radius-sm:6px;--upl-max-width:960px}.upl-wrap{max-width:var(--upl-max-width);margin:0 auto;padding:0 12px 20px}@media (min-width:768px){.upl-wrap{padding:0 24px 32px}}.upl-card{background:var(--upl-card);border:1px solid var(--upl-border);border-radius:var(--upl-radius);margin-bottom:8px;overflow:hidden}.upl-card-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--upl-border)}.upl-card-head h3{font-size:14px;font-weight:700;margin:0;color:var(--upl-text)}.upl-card-head a{font-size:12px;color:var(--upl-primary);font-weight:600;text-decoration:none}@media (min-width:768px){.upl-card{margin-bottom:12px}.upl-card-head h3{font-size:15px}}.upl-tl{display:inline-flex;align-items:center;justify-content:center;font-weight:800;letter-spacing:-.5px;flex-shrink:0;text-transform:uppercase;box-shadow:0 1px 3px rgb(0 0 0 / .15)}.upl-tb{display:inline-block;padding:2px 8px;border-radius:4px;font-size:10px;font-weight:700;color:#fff;text-transform:uppercase}.upl-tb-plat,.upl-tb-platinum{background:linear-gradient(135deg,#E5E4E2,#B4B4B4);color:#333}.upl-tb-gold{background:linear-gradient(135deg,#FFD700,#FFA500);color:#333}.upl-tb-silv,.upl-tb-silver{background:linear-gradient(135deg,#C0C0C0,#A0A0A0);color:#333}.upl-tb-brnz,.upl-tb-bronze{background:linear-gradient(135deg,#CD7F32,#B87333);color:#fff}.upl-tb-s1{background:#9E9E9E}.upl-table{width:100%;border-collapse:collapse;font-size:12px}.upl-table th{background:var(--upl-primary);color:#fff;padding:10px 8px;font-weight:700;text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.upl-table td{padding:10px 8px;border-bottom:1px solid var(--upl-border);vertical-align:middle}.upl-table tr:hover{background:#F8F9FA}.upl-table tr.upl-playoff-line{border-bottom:2px dashed var(--upl-loss)}.upl-col-num{font-weight:700;color:var(--upl-muted);width:24px;text-align:center}.upl-col-team{font-weight:600;font-size:13px}.upl-col-stat{text-align:center;font-weight:600}.upl-col-fp{text-align:center;color:var(--upl-win);font-weight:600}.upl-col-pen{text-align:center;color:var(--upl-loss);font-weight:600}.upl-col-final{text-align:right;font-weight:800;color:var(--upl-primary);font-size:14px}@media (min-width:768px){.upl-table{font-size:13px}.upl-table th,.upl-table td{padding:12px 10px}}.upl-formula-bar{background:var(--upl-primary-dark);color:rgb(255 255 255 / .85);padding:8px 16px;font-size:11px;font-weight:600;text-align:center;border-radius:var(--upl-radius) var(--upl-radius) 0 0}.upl-match-card{background:var(--upl-card);border:1px solid var(--upl-border);border-radius:var(--upl-radius);margin-bottom:8px;overflow:hidden}.upl-match-head{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:#F8F9FA;border-bottom:1px solid var(--upl-border)}.upl-match-id{font-size:11px;font-weight:700;color:var(--upl-muted)}.upl-match-time{font-size:10px;color:var(--upl-muted)}.upl-match-row{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:13px}.upl-match-row.upl-winner{background:#E8F5E9}.upl-player-name{flex:1;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upl-score{font-weight:700;font-size:14px;font-family:'Courier New',monospace;white-space:nowrap}.upl-match-foot{padding:6px 12px;border-top:1px solid var(--upl-border)}.upl-result-txt{font-size:11px;font-weight:600;color:var(--upl-win)}.upl-modified-badge{margin-left:8px;padding:1px 6px;border-radius:4px;font-size:9px;background:#FFF3E0;color:#E65100;font-weight:700}@media (min-width:768px){.upl-match-card{max-width:600px}.upl-match-row{padding:10px 16px}}.upl-stats-row{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--upl-border)}.upl-stats-row:last-child{border-bottom:none}.upl-rank{font-weight:700;color:var(--upl-muted);font-size:11px;width:20px;text-align:center;flex-shrink:0}.upl-name{font-weight:600;font-size:13px;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upl-stat-val{font-weight:700;font-size:14px;color:var(--upl-primary)}.upl-hero{background:linear-gradient(135deg,var(--upl-primary-dark) 0%,var(--upl-primary) 100%);color:#fff;padding:28px 20px;border-radius:0 0 var(--upl-radius) var(--upl-radius);margin-bottom:8px;text-align:center}.upl-hero-sub{font-size:12px;opacity:.75;margin-top:6px}.upl-hero-actions{display:flex;gap:8px;justify-content:center;margin-top:16px}.upl-hero-btn{padding:10px 20px;border-radius:8px;font-weight:700;font-size:13px;text-decoration:none}.upl-hero-btn-primary{background:var(--upl-accent);color:#000}.upl-hero-btn-ghost{background:rgb(255 255 255 / .15);color:#fff;border:1px solid rgb(255 255 255 / .3)}.upl-hero-stats{display:flex;justify-content:center;gap:24px;margin-top:20px}.upl-hero-stat{text-align:center}.upl-hero-stat strong{display:block;font-size:22px;font-weight:800}.upl-hero-stat span{font-size:10px;text-transform:uppercase;opacity:.7}@media (min-width:768px){.upl-hero{padding:40px 24px;border-radius:var(--upl-radius);margin:12px auto;max-width:var(--upl-max-width)}}.upl-quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.upl-quick-item{text-align:center;padding:10px 4px;background:#F0F7FF;border-radius:var(--upl-radius-sm);font-size:11px;font-weight:600;color:var(--upl-primary);text-decoration:none}.upl-quick-item:hover{background:#D0E2F2}@media (min-width:768px){.upl-quick-grid{grid-template-columns:repeat(6,1fr)}}.upl-franchise-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.upl-franchise-item{text-align:center;text-decoration:none;color:inherit;padding:8px 4px}.upl-franchise-city{font-size:9px;color:var(--upl-muted);margin-top:4px;font-weight:600}@media (min-width:768px){.upl-franchise-grid{grid-template-columns:repeat(10,1fr);gap:12px}}.upl-archive-banner{background:#FFF3E0;color:#E65100;padding:8px 16px;font-size:12px;font-weight:600;text-align:center;border-radius:var(--upl-radius);margin-bottom:8px}.upl-archive-banner a{color:var(--upl-primary);margin-left:8px}.upl-mc-header{background:linear-gradient(135deg,#1a1a2e,#16213e);padding:24px 16px;border-radius:var(--upl-radius);margin-bottom:8px}.upl-mc-vs{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.upl-mc-team{text-align:center;flex:1}.upl-mc-score{font-size:22px;font-weight:800;margin:6px 0 2px;color:#fff}.upl-mc-sub{font-size:11px;opacity:.7;color:#fff}.upl-mc-result{text-align:center;margin-top:12px;font-size:12px;font-weight:700;color:var(--upl-accent)}.upl-team-header,.upl-prof-header{padding:24px 16px;border-radius:var(--upl-radius);margin-bottom:8px;display:flex;align-items:center;gap:12px;color:#fff}.upl-team-header h2,.upl-prof-header h2{margin:0;font-size:18px}.upl-team-city{font-size:12px;opacity:.7}.upl-prof-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:12px;margin-bottom:8px}.upl-prof-stat{background:var(--upl-card);border:1px solid var(--upl-border);border-radius:var(--upl-radius-sm);padding:10px 4px;text-align:center}.upl-prof-stat strong{display:block;font-size:16px;font-weight:800;color:var(--upl-primary)}.upl-prof-stat span{font-size:9px;color:var(--upl-muted);text-transform:uppercase}@media (min-width:768px){.upl-prof-stats{grid-template-columns:repeat(7,1fr)}}.upl-playoff-bracket{padding:16px;border-radius:var(--upl-radius)}.upl-playoff-match{background:var(--upl-card);border:1px solid var(--upl-border);border-radius:var(--upl-radius-sm);padding:12px 16px;margin-bottom:8px}.upl-playoff-label{font-size:11px;font-weight:700;color:var(--upl-primary);margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.upl-playoff-final{border-color:var(--upl-accent)}.upl-char-row{display:flex;align-items:center;gap:6px;padding:8px 12px;border-bottom:1px solid var(--upl-border);font-size:12px}.upl-char-row.upl-b11,.upl-char-row.upl-char-best11{background:#F0F7FF}.upl-char-num{width:20px;font-weight:700;color:var(--upl-muted);text-align:center}.upl-role-badge{padding:1px 6px;border-radius:3px;font-size:9px;font-weight:700;color:#fff}.upl-role-bat,.upl-role-badge.upl-role-bat{background:#1565C0}.upl-role-bowl,.upl-role-badge.upl-role-bowl{background:#2E7D32}.upl-char-name{flex:1;font-weight:600}.upl-char-stars{color:#F5C518;font-size:11px}.upl-char-pts{font-weight:700;color:var(--upl-primary);font-size:11px}.upl-starup-row{display:flex;align-items:center;gap:6px;padding:10px 12px;border-bottom:1px solid var(--upl-border);font-size:12px}.upl-starup-stars{font-weight:700;color:var(--upl-accent)}.upl-starup-status{padding:2px 8px;border-radius:4px;font-size:10px;font-weight:700}.upl-starup-approved,.upl-starup-active{background:#E8F5E9;color:var(--upl-win)}.upl-starup-cooldown{background:#FFF3E0;color:#E65100}.upl-starup-pending{background:#E3F2FD;color:var(--upl-primary)}.upl-pencode-item{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;border-bottom:1px solid var(--upl-border);font-size:12px}.upl-pencode-pts{font-weight:700;color:var(--upl-loss)}.upl-rules-section{margin-bottom:8px}.upl-rules-head{background:var(--upl-primary);color:#fff;padding:10px 16px;font-weight:700;font-size:13px;border-radius:var(--upl-radius) var(--upl-radius) 0 0}.upl-rules-body{background:var(--upl-card);border:1px solid var(--upl-border);border-top:none;padding:12px 16px;font-size:12px;line-height:1.6;border-radius:0 0 var(--upl-radius) var(--upl-radius)}.upl-awards-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;padding:12px}.upl-award-card{background:linear-gradient(135deg,#073763,#0B5394);color:#fff;border-radius:var(--upl-radius-sm);padding:16px;text-align:center}.upl-award-title{font-size:10px;text-transform:uppercase;opacity:.7;letter-spacing:.5px}.upl-award-name{font-size:14px;font-weight:700;margin-top:4px}@media (min-width:768px){.upl-awards-grid{grid-template-columns:repeat(3,1fr)}}.upl-matchday-head{padding:10px 16px;font-weight:700;font-size:14px;background:#F8F9FA;border-bottom:1px solid var(--upl-border)}.upl-matchday-fixture{display:flex;align-items:center;justify-content:center;gap:12px;padding:10px 16px;border-bottom:1px solid var(--upl-border)}.upl-notice{padding:12px 16px;border-radius:var(--upl-radius-sm);font-size:13px;margin-bottom:12px;background:#E3F2FD;color:var(--upl-primary)}.upl-notice a{color:var(--upl-primary);font-weight:700}.upl-notice-warning{background:#FFF8E1;color:#F57F17}.upl-notice-info{background:#E3F2FD;color:#1565C0}.upl-dashboard{max-width:var(--upl-max-width);margin:0 auto}.upl-dash-header{padding:20px 16px;display:flex;align-items:center;gap:12px;color:#fff;border-radius:0 0 var(--upl-radius) var(--upl-radius)}.upl-dash-header h2{margin:0;font-size:18px}.upl-dash-header p{margin:4px 0 0;font-size:12px;opacity:.8}.upl-captain-badge{background:var(--upl-accent);color:#000;padding:1px 8px;border-radius:4px;font-size:9px;font-weight:700;margin-left:6px}.upl-tier-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:10px;font-weight:700;color:#fff}.upl-tier-plat{background:linear-gradient(135deg,#B0BEC5,#78909C)}.upl-tier-gold{background:linear-gradient(135deg,#FFD700,#FFA500);color:#333}.upl-tier-silv{background:linear-gradient(135deg,#B0BEC5,#90A4AE)}.upl-tier-brnz{background:linear-gradient(135deg,#CD7F32,#B87333)}.upl-dash-tabs{display:flex;gap:0;overflow-x:auto;background:var(--upl-card);border-bottom:2px solid var(--upl-border);margin-bottom:0;-webkit-overflow-scrolling:touch;scrollbar-width:none}.upl-dash-tabs::-webkit-scrollbar{display:none}.upl-tab{flex-shrink:0;padding:10px 16px;font-size:12px;font-weight:600;background:none;border:none;color:var(--upl-muted);cursor:pointer;border-bottom:2px solid #fff0;margin-bottom:-2px;white-space:nowrap}.upl-tab.active{color:var(--upl-primary);border-bottom-color:var(--upl-primary)}.upl-badge-count{background:var(--upl-loss);color:#fff;padding:1px 6px;border-radius:10px;font-size:10px;margin-left:4px}.upl-tab-panel{display:none;padding:12px}.upl-tab-panel.active{display:block}.upl-stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}.upl-stat-card{background:var(--upl-card);border:1px solid var(--upl-border);border-radius:var(--upl-radius-sm);padding:12px 8px;text-align:center}.upl-stat-num{display:block;font-size:18px;font-weight:800;color:var(--upl-primary)}.upl-stat-label{font-size:9px;color:var(--upl-muted);text-transform:uppercase}@media (min-width:768px){.upl-stats-grid{grid-template-columns:repeat(6,1fr)}}.upl-dashboard .upl-field{margin-bottom:12px}.upl-dashboard .upl-field label{font-size:12px;font-weight:600;display:block;margin-bottom:4px;color:var(--upl-text)}.upl-dashboard .upl-field input,.upl-dashboard .upl-field select,.upl-dashboard .upl-field textarea{width:100%;padding:10px 12px;border:1px solid var(--upl-border);border-radius:var(--upl-radius-sm);font-size:13px;background:#fff;box-sizing:border-box}.upl-btn{padding:12px;border:none;border-radius:var(--upl-radius-sm);font-weight:700;font-size:14px;cursor:pointer;width:100%;display:block;text-align:center}.upl-btn.primary{background:var(--upl-primary);color:#fff}.upl-btn.primary:hover{background:var(--upl-primary-dark)}.upl-btn:disabled{background:#E0E0E0;color:#999;cursor:default}.upl-btn-sm{padding:6px 14px;font-size:12px;border-radius:6px;border:none;cursor:pointer;font-weight:700}.upl-btn-sm.green{background:var(--upl-win);color:#fff}.upl-btn-sm.red{background:var(--upl-loss);color:#fff}.upl-sub-row{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--upl-border);font-size:12px}.upl-sub-id{font-weight:700;color:var(--upl-muted)}.upl-status-pending{color:#F57F17;font-weight:700;font-size:11px}.upl-status-approved,.upl-status-modified{color:var(--upl-win);font-weight:700;font-size:11px}.upl-status-rejected{color:var(--upl-loss);font-weight:700;font-size:11px}.upl-match-mini{display:flex;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--upl-border)}.upl-wlt{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;color:#fff;flex-shrink:0}.upl-wlt.W{background:var(--upl-win)}.upl-wlt.L{background:var(--upl-loss)}.upl-wlt.T{background:var(--upl-tie)}.upl-approval-card{background:var(--upl-card);border:1px solid var(--upl-border);border-radius:var(--upl-radius-sm);padding:12px;margin-bottom:8px}.upl-approval-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}.upl-approval-scores{display:flex;align-items:center;justify-content:space-between;gap:8px;text-align:center;font-size:12px}.upl-score-big{font-size:16px;font-weight:800;color:var(--upl-primary)}.upl-approval-result{text-align:center;font-size:12px;font-weight:600;color:var(--upl-win);margin:8px 0}.upl-approval-actions{display:flex;gap:8px}.upl-team-player-row{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--upl-border)}@media (min-width:768px){.upl-dashboard .upl-tab-panel{padding:16px 20px}.upl-match-card{transition:box-shadow .2s}.upl-match-card:hover{box-shadow:0 2px 8px rgb(0 0 0 / .08)}.upl-stats-row:hover{background:#F8F9FA}.upl-dash-header{border-radius:var(--upl-radius);margin:12px auto 0;max-width:var(--upl-max-width)}}@media (min-width:1024px){.upl-prof-stats{grid-template-columns:repeat(7,1fr)}.upl-franchise-grid{grid-template-columns:repeat(10,1fr)}}.upl-sr{display:flex;justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--upl-border);font-size:13px}.upl-sr-label{font-weight:600}.upl-sr-value{font-weight:700;color:var(--upl-primary)}