@import "https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700;800&display=swap";:root{--bg:#f8fafc;--surface:#fff;--surface2:#f1f5f9;--surface3:#e2e8f0;--border:#e2e8f0;--border-med:#cbd5e1;--accent:#f97316;--accent-hover:#ea580c;--accent-light:#fff7ed;--accent-mid:#fed7aa;--text:#0f172a;--text-soft:#64748b;--text-muted:#94a3b8;--green:#22c55e;--green-bg:#f0fdf4;--green-light:#bbf7d0;--red:#ef4444;--red-bg:#fef2f2;--yellow:#eab308;--yellow-bg:#fefce8;--blue:#3b82f6;--blue-bg:#eff6ff;--purple:#a855f7;--purple-bg:#faf5ff;--shadow-sm:0 1px 2px #0000000d;--shadow:0 1px 3px #0000001a, 0 1px 2px #0000000f;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -1px #0000000f;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -2px #0000000d;--radius:10px;--radius-lg:14px;--radius-xl:20px;--font-body:"Outfit", system-ui, sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;min-height:100vh;font-size:14px}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:var(--font-body);border-radius:var(--radius);border:none;outline:none;font-size:13px;transition:background .15s,color .15s,border-color .15s,box-shadow .15s}button:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{font-family:var(--font-body);background:var(--surface);border:1px solid var(--border-med);color:var(--text);border-radius:var(--radius);-webkit-appearance:none;outline:none;width:100%;padding:10px 13px;font-size:14px;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #f973161f}textarea{resize:vertical;min-height:80px}select option{background:var(--surface)}::placeholder{color:var(--text-muted)}.page{max-width:1060px;padding:32px 36px}.page-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:28px;display:flex}.page-title{color:var(--text);letter-spacing:-.02em;font-size:28px;font-weight:800}.page-sub{color:var(--text-soft);margin-top:4px;font-size:13px}.sub-active{color:var(--green);font-weight:600}.sub-injured{color:var(--yellow);font-weight:600}.loading{color:var(--text-muted);text-align:center;padding:80px;font-size:14px}.empty{color:var(--text-muted);text-align:center;background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:60px 40px;font-size:14px}.btn-primary{background:var(--accent);color:#fff;box-shadow:var(--shadow-sm);white-space:nowrap;padding:10px 20px;font-size:13px;font-weight:600}.btn-primary:hover{background:var(--accent-hover)}.btn-ghost{color:var(--text-soft);border:1px solid var(--border-med);background:0 0;padding:10px 18px;font-weight:500}.btn-ghost:hover{background:var(--surface2);color:var(--text)}.btn-icon{color:var(--text-soft);border:1px solid var(--border);background:0 0;padding:6px 12px;font-size:12px;font-weight:500}.btn-icon:hover{background:var(--surface2);color:var(--text)}.btn-danger:hover{background:var(--red-bg);color:var(--red);border-color:#fca5a5}.form-row{flex-direction:column;gap:6px;display:flex}.form-row label{color:var(--text-soft);font-size:12px;font-weight:600}.form-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.form-error{color:var(--red);font-size:12px;font-weight:600}.form-actions{justify-content:flex-end;gap:10px;padding-top:4px;display:flex}.section-label{color:var(--text);margin-bottom:14px;font-size:16px;font-weight:700}.dash-stat-row{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px;display:grid}@media (width<=900px){.dash-stat-row{grid-template-columns:repeat(2,1fr)}}.stat-card{border-radius:var(--radius-lg);color:#fff;box-shadow:var(--shadow-md);overflow:hidden}.stat-card-inner{justify-content:space-between;align-items:flex-start;padding:22px 24px;display:flex}.stat-orange{background:linear-gradient(135deg,#f97316,#ea580c)}.stat-blue{background:linear-gradient(135deg,#3b82f6,#2563eb)}.stat-purple{background:linear-gradient(135deg,#a855f7,#7c3aed)}.stat-green{background:linear-gradient(135deg,#22c55e,#16a34a)}.stat-label{opacity:.85;margin-bottom:6px;font-size:13px;font-weight:500}.stat-value{letter-spacing:-.02em;margin-bottom:4px;font-size:42px;font-weight:800;line-height:1}.stat-sub{opacity:.75;font-size:12px}.stat-icon{background:#fff3;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:22px;display:flex}.dash-two-col{grid-template-columns:1fr 1fr;gap:20px;display:grid}@media (width<=720px){.dash-two-col{grid-template-columns:1fr}}.dash-panel{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden}.dash-panel-body{padding:2px 0}.dash-row{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:12px 18px;transition:background .12s;display:flex}.dash-row:last-child{border-bottom:none}.dash-row:hover{background:var(--surface2)}.dash-num{color:var(--accent);text-align:center;flex-shrink:0;min-width:34px;font-size:18px;font-weight:800}.dash-player-name{color:var(--text);flex:1;font-size:14px;font-weight:600}.dash-player-pos{color:var(--text-soft);background:var(--surface2);letter-spacing:.04em;text-transform:uppercase;border-radius:5px;padding:2px 8px;font-size:11px;font-weight:700}.dash-game-info{flex:1}.dash-game-vs{color:var(--text);font-size:14px;font-weight:600}.dash-game-date{color:var(--text-muted);margin-top:2px;font-size:12px}.dash-result{letter-spacing:.01em;font-size:14px;font-weight:700}.dash-result.win{color:var(--green)}.dash-result.loss{color:var(--red)}.dash-result.upcoming{color:var(--accent);background:var(--accent-light);text-transform:uppercase;letter-spacing:.04em;border-radius:5px;padding:3px 9px;font-size:11px;font-weight:700}.empty-panel{text-align:center;color:var(--text-muted);padding:40px 24px;font-size:13px}.pos-bar-row{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:12px 18px;display:flex}.pos-bar-row:last-child{border-bottom:none}.pos-bar-label{color:var(--text-soft);text-transform:uppercase;letter-spacing:.04em;flex-shrink:0;width:30px;font-size:13px;font-weight:700}.pos-bar-track{background:var(--surface2);border-radius:4px;flex:1;height:6px;overflow:hidden}.pos-bar-fill{background:linear-gradient(90deg,#f97316,#fb923c);border-radius:4px;height:6px;transition:width .6s cubic-bezier(.22,1,.36,1)}.pos-bar-count{color:var(--text);text-align:right;width:20px;font-size:14px;font-weight:700}.modal-overlay{-webkit-backdrop-filter:blur(4px);z-index:200;background:#0f172a80;justify-content:center;align-items:center;padding:20px;animation:.15s overlay-in;display:flex;position:fixed;inset:0}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}.modal{background:var(--surface);border-radius:var(--radius-xl);width:100%;max-width:500px;box-shadow:var(--shadow-lg), 0 20px 60px #00000026;animation:.2s cubic-bezier(.34,1.2,.64,1) modal-in;overflow:hidden}@keyframes modal-in{0%{opacity:0;transform:scale(.96)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:20px 24px 16px;display:flex}.modal-header h2{color:var(--text);letter-spacing:-.01em;font-size:18px;font-weight:700}.modal-close{color:var(--text-muted);background:0 0;border:1px solid #0000;border-radius:7px;justify-content:center;align-items:center;width:30px;height:30px;padding:0;font-size:14px;display:flex}.modal-close:hover{background:var(--red-bg);color:var(--red)}.modal-body{flex-direction:column;gap:16px;max-height:75vh;padding:22px 24px;display:flex;overflow-y:auto}.table-wrap{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden}.data-table{border-collapse:collapse;width:100%}.data-table thead tr{background:var(--surface2);border-bottom:1px solid var(--border)}.data-table th{text-align:left;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);padding:12px 18px;font-size:11px;font-weight:700}.data-table td{border-bottom:1px solid var(--border);background:var(--surface);vertical-align:middle;padding:14px 18px;font-size:14px;transition:background .1s}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover td{background:var(--surface2)}.number-cell{width:64px}.jersey-num{color:var(--accent);letter-spacing:-.01em;font-size:20px;font-weight:800}.name-cell{color:var(--text);font-size:15px;font-weight:600}.pos-chip{background:var(--surface2);color:var(--text-soft);letter-spacing:.06em;text-transform:uppercase;border-radius:5px;padding:3px 9px;font-size:11px;font-weight:700;display:inline-block}.status-pill{border-radius:20px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.status-pill:before{content:"";border-radius:50%;flex-shrink:0;width:6px;height:6px}.status-pill.active{color:#16a34a;background:var(--green-bg)}.status-pill.active:before{background:var(--green)}.status-pill.injured{color:#a16207;background:var(--yellow-bg)}.status-pill.injured:before{background:var(--yellow)}.status-pill.inactive{color:var(--text-muted);background:var(--surface2)}.status-pill.inactive:before{background:var(--text-muted)}.actions-cell{width:150px}td.actions-cell{justify-content:flex-end;gap:6px;display:flex;padding:11px 18px!important}.btn-row{color:var(--text-soft);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:6px;padding:5px 12px;font-size:12px;font-weight:500;transition:all .15s}.btn-row:hover{color:var(--text);border-color:var(--border-med);background:var(--surface2)}.btn-row-danger:hover{color:var(--red);background:var(--red-bg);border-color:#fca5a5}.games-list{flex-direction:column;gap:10px;display:flex}.game-card{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);transition:box-shadow .2s,transform .2s;overflow:hidden}.game-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.game-card-strip{background:linear-gradient(90deg,#f97316,#fb923c);height:4px}.game-card-body{align-items:stretch;display:flex}.game-date-block{background:var(--surface2);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:1px;min-width:84px;padding:18px 20px;display:flex}.game-date-day{color:var(--text);letter-spacing:-.02em;font-size:32px;font-weight:800;line-height:1}.game-date-mon{text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);font-size:11px;font-weight:700}.game-date-time{color:var(--accent);margin-top:4px;font-size:11px;font-weight:600}.game-main{flex-direction:column;flex:1;justify-content:center;gap:4px;min-width:0;padding:16px 20px;display:flex}.game-matchup{align-items:center;gap:8px;display:flex}.game-ha-tag{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);background:var(--surface2);border-radius:4px;flex-shrink:0;padding:2px 7px;font-size:10px;font-weight:700}.game-opponent{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:17px;font-weight:700;overflow:hidden}.game-location{color:var(--text-muted);font-size:12px}.game-score-block{flex-direction:column;flex-shrink:0;justify-content:center;align-items:flex-end;min-width:100px;padding:16px 20px;display:flex}.game-score-num{letter-spacing:-.02em;font-size:28px;font-weight:800;line-height:1}.game-score-num.win{color:var(--green)}.game-score-num.loss{color:var(--red)}.game-score-label{text-transform:uppercase;letter-spacing:.1em;margin-top:4px;font-size:10px;font-weight:700}.game-score-label.win{color:var(--green)}.game-score-label.loss{color:var(--red)}.game-status-badge{text-transform:uppercase;letter-spacing:.06em;border-radius:20px;align-items:center;gap:6px;padding:5px 11px;font-size:11px;font-weight:700;display:inline-flex}.game-status-badge.scheduled{background:var(--accent-light);color:var(--accent)}.game-status-badge.scheduled:before{content:"";background:var(--accent);border-radius:50%;width:5px;height:5px;animation:1.6s infinite pulse}.game-status-badge.cancelled{background:var(--surface2);color:var(--text-muted)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.game-actions{border-left:1px solid var(--border);flex-direction:column;flex-shrink:0;justify-content:center;gap:6px;padding:12px 14px;display:flex}.auth-page{background:linear-gradient(135deg,#fff7ed 0%,#f8fafc 50%,#eff6ff 100%);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.auth-bg{display:none}.auth-card{background:var(--surface);border-radius:var(--radius-xl);width:100%;max-width:420px;box-shadow:var(--shadow-lg), 0 0 0 1px #0000000a;padding:40px}.auth-brand{align-items:center;gap:12px;margin-bottom:36px;display:flex}.auth-brand-icon{background:linear-gradient(135deg,#f97316,#ea580c);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:46px;height:46px;font-size:24px;display:flex;box-shadow:0 4px 14px #f9731659}.auth-brand-text{flex-direction:column;gap:2px;display:flex}.auth-brand-name{color:var(--text);letter-spacing:-.02em;font-size:22px;font-weight:800}.auth-brand-name em{color:var(--accent);font-style:normal}.auth-brand-sub{color:var(--text-muted);font-size:12px}.auth-tabs{border-bottom:1px solid var(--border);gap:0;margin-bottom:28px;display:flex}.auth-tab{color:var(--text-muted);background:0 0;border-bottom:2px solid #0000;border-radius:0;margin-bottom:-1px;margin-right:24px;padding:10px 0;font-size:14px;font-weight:600;transition:color .15s,border-color .15s}.auth-tab:hover{color:var(--text-soft)}.auth-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.auth-form{flex-direction:column;gap:18px;display:flex}.auth-field{flex-direction:column;gap:6px;display:flex}.auth-field label{color:var(--text-soft);font-size:13px;font-weight:600}.auth-error{background:var(--red-bg);color:var(--red);border-radius:var(--radius);border:1px solid #fca5a5;padding:10px 14px;font-size:13px;font-weight:500}.auth-submit{background:var(--accent);color:#fff;border-radius:var(--radius);margin-top:4px;padding:12px;font-size:14px;font-weight:700;box-shadow:0 4px 14px #f973164d}.auth-submit:hover{background:var(--accent-hover)}.auth-submit:disabled{opacity:.5}.teams-page{background:var(--bg);min-height:100vh}.teams-header{border-bottom:1px solid var(--border);background:var(--surface);height:64px;box-shadow:var(--shadow-sm);justify-content:space-between;align-items:center;padding:0 28px;display:flex}.teams-brand{align-items:center;gap:10px;display:flex}.teams-brand-icon{background:linear-gradient(135deg,#f97316,#ea580c);border-radius:9px;justify-content:center;align-items:center;width:36px;height:36px;font-size:19px;display:flex;box-shadow:0 2px 8px #f9731640}.teams-brand-name{color:var(--text);letter-spacing:-.02em;font-size:18px;font-weight:800}.teams-content{max-width:860px;margin:0 auto;padding:48px 28px}.teams-title-row{justify-content:space-between;align-items:center;margin-bottom:32px;display:flex}.teams-title{color:var(--text);letter-spacing:-.02em;margin:0;font-size:30px;font-weight:800}.team-create-form{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);flex-direction:column;gap:14px;margin-bottom:24px;padding:20px;display:flex}.team-name-input{background:var(--surface);border:1px solid var(--border-med);border-radius:var(--radius);width:100%;font-size:15px;font-family:var(--font-body);color:var(--text);box-sizing:border-box;outline:none;padding:11px 14px;transition:border-color .15s,box-shadow .15s}.team-name-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #f973161f}.team-create-actions{justify-content:flex-end;gap:10px;display:flex}.teams-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;display:grid}.team-card{background:var(--surface);border-radius:var(--radius-lg);cursor:pointer;box-shadow:var(--shadow-md);transition:box-shadow .2s,transform .2s;position:relative;overflow:hidden}.team-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-3px)}.team-card-strip{background:linear-gradient(90deg,#f97316,#fb923c);height:6px}.team-card-body{flex-direction:column;gap:5px;padding:20px;display:flex}.team-card-icon-wrap{background:linear-gradient(135deg,#f1f5f9,#e2e8f0);border-radius:12px;justify-content:center;align-items:center;width:48px;height:48px;margin-bottom:10px;font-size:24px;display:flex;box-shadow:inset 0 1px 3px #0000001a}.team-card-name{color:var(--text);word-break:break-word;font-size:16px;font-weight:700;line-height:1.3}.team-card-sub{color:var(--text-muted);font-size:12px}.team-card-delete{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;padding:0;font-size:17px;transition:background .15s,color .15s;display:flex;position:absolute;top:14px;right:12px}.team-card-delete:hover{background:var(--red-bg);color:var(--red)}.teams-empty{text-align:center;color:var(--text-soft);background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:80px 24px}.teams-empty-icon{margin-bottom:14px;font-size:52px;display:block}.app-shell{min-height:100vh;display:flex}.sidebar{background:var(--surface);border-right:1px solid var(--border);z-index:50;flex-direction:column;flex-shrink:0;width:240px;height:100vh;display:flex;position:fixed;top:0;left:0}.sidebar-top{flex:1;padding:20px 16px}.sidebar-brand{border-bottom:1px solid var(--border);align-items:center;gap:10px;margin-bottom:16px;padding:8px 10px 20px;display:flex}.sidebar-brand-icon{background:linear-gradient(135deg,#f97316,#ea580c);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-size:20px;display:flex;box-shadow:0 4px 12px #f973164d}.sidebar-brand-text{min-width:0}.sidebar-team-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:700;overflow:hidden}.sidebar-team-sub{color:var(--text-muted);margin-top:1px;font-size:11px}.sidebar-nav{flex-direction:column;gap:2px;display:flex}.sidebar-nav-item{border-radius:var(--radius);color:var(--text-soft);text-align:left;background:0 0;align-items:center;gap:10px;width:100%;padding:10px 12px;font-size:14px;font-weight:500;transition:background .15s,color .15s;display:flex}.sidebar-nav-item:hover{background:var(--surface2);color:var(--text)}.sidebar-nav-item.active{background:var(--accent-light);color:var(--accent);font-weight:600}.nav-icon{text-align:center;width:20px;font-size:16px}.sidebar-bottom{border-top:1px solid var(--border);flex-direction:column;gap:6px;padding:16px;display:flex}.sidebar-link{color:var(--text-soft);border-radius:var(--radius);text-align:left;border:1px solid var(--border);background:0 0;padding:9px 12px;font-size:13px;font-weight:500}.sidebar-link:hover{background:var(--surface2);color:var(--text)}.sidebar-signout{color:var(--text-muted);border-radius:var(--radius);text-align:left;background:0 0;padding:9px 12px;font-size:13px;font-weight:500}.sidebar-signout:hover{background:var(--red-bg);color:var(--red)}.app-content{background:var(--bg);flex:1;min-height:100vh;margin-left:240px}
