:root{--primary: #6C5CE7;--primary-light: #a29bfe;--primary-dark: #5a4bd1;--accent-green: #00b894;--accent-green-dim: rgba(0, 184, 148, .15);--accent-red: #ff4444;--accent-red-dim: rgba(255, 68, 68, .15);--accent-yellow: #fdcb6e;--accent-yellow-dim: rgba(253, 203, 110, .15);--accent-blue: #0984e3;--accent-blue-dim: rgba(9, 132, 227, .15);--bg-dark: #0d1117;--bg-card: #161b22;--bg-card-hover: #1c2333;--bg-input: #21262d;--text-main: #f0f0f0;--text-muted: #8b949e;--border: #30363d;--shadow: rgba(0, 0, 0, .3)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background:var(--bg-dark);color:var(--text-main);min-height:100vh;-webkit-font-smoothing:antialiased}input,select,button,textarea{font-family:inherit;font-size:inherit}#root,.app{min-height:100vh;display:flex;flex-direction:column}.navbar{background:var(--bg-card);border-bottom:1px solid var(--border);padding:12px 20px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:100}.navbar-brand{display:flex;align-items:center;gap:10px;cursor:pointer}.navbar-brand img{width:36px;height:36px;border-radius:6px}.navbar-brand span{font-size:1.1rem;font-weight:700;color:var(--primary-light);letter-spacing:1px}.navbar-right{display:flex;align-items:center;gap:12px}.user-badge{background:var(--bg-input);padding:4px 12px;border-radius:20px;font-size:.8rem;color:var(--text-muted)}.user-badge .role{color:var(--primary-light);font-weight:600;text-transform:uppercase;font-size:.7rem;margin-left:6px}.content{flex:1;padding:20px 20px 80px;max-width:800px;margin:0 auto;width:100%}.bottom-nav{position:fixed;bottom:0;left:0;right:0;background:var(--bg-card);border-top:1px solid var(--border);display:flex;justify-content:space-around;padding:8px 0;z-index:100}.bottom-nav button{background:none;border:none;color:var(--text-muted);font-size:.7rem;display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 8px;cursor:pointer;transition:color .2s}.bottom-nav button.active{color:var(--primary-light)}.bottom-nav button .nav-icon{font-size:1.3rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;border:none;border-radius:10px;font-weight:600;font-size:.95rem;cursor:pointer;transition:all .2s}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.btn-success{background:var(--accent-green);color:#fff}.btn-success:hover{opacity:.9}.btn-danger{background:var(--accent-red);color:#fff}.btn-ghost{background:transparent;color:var(--text-muted);padding:8px 12px}.btn-ghost:hover{color:var(--text-main);background:var(--bg-input)}.btn-block{width:100%}.btn-lg{padding:16px 32px;font-size:1.1rem;border-radius:14px}.btn-sm{padding:6px 14px;font-size:.8rem;border-radius:8px}.btn-logout{background:none;border:1px solid var(--border);color:var(--text-muted);padding:6px 14px;border-radius:8px;cursor:pointer;font-size:.8rem}.btn-logout:hover{border-color:var(--accent-red);color:var(--accent-red)}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:20px;margin-bottom:16px}.card-accent{border-left:4px solid var(--primary)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.card-title{font-size:1.1rem;font-weight:700}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.login-box{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:40px;width:100%;max-width:380px;text-align:center}.login-box img{width:80px;height:80px;border-radius:12px;margin-bottom:16px}.login-box h1{font-size:1.4rem;font-weight:800;color:var(--primary-light);letter-spacing:2px;margin-bottom:8px}.login-box p{color:var(--text-muted);font-size:.85rem;margin-bottom:24px}.form-group{margin-bottom:16px;text-align:left}.form-group label{display:block;font-size:.8rem;color:var(--text-muted);margin-bottom:6px;font-weight:500}.form-group input,.form-group select{width:100%;padding:12px 14px;background:var(--bg-input);border:1px solid var(--border);border-radius:10px;color:var(--text-main);font-size:.95rem;outline:none;transition:border-color .2s}.form-group input:focus,.form-group select:focus{border-color:var(--primary)}.error-msg{background:var(--accent-red-dim);color:var(--accent-red);padding:10px 14px;border-radius:8px;font-size:.85rem;margin-bottom:16px}.success-msg{background:var(--accent-green-dim);color:var(--accent-green);padding:10px 14px;border-radius:8px;font-size:.85rem;margin-bottom:16px}.dashboard-hero{text-align:center;padding:24px 0}.dashboard-hero img{width:64px;height:64px;border-radius:12px;margin-bottom:12px}.dashboard-hero h2{font-size:1.5rem;font-weight:800;letter-spacing:1px}.dashboard-hero .subtitle{color:var(--text-muted);font-size:.85rem;margin-top:4px}.stat-badges{display:flex;gap:10px;justify-content:center;margin:16px 0;flex-wrap:wrap}.stat-badge{padding:6px 16px;border-radius:20px;font-size:.85rem;font-weight:600}.stat-badge.green{background:var(--accent-green-dim);color:var(--accent-green)}.stat-badge.red{background:var(--accent-red-dim);color:var(--accent-red)}.recent-records{margin-top:8px}.recent-record{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--border)}.recent-record:last-child{border-bottom:none}.recent-record .date{font-weight:500}.recent-record .type-badge{font-size:.75rem;padding:2px 10px;border-radius:12px;background:var(--bg-input);color:var(--text-muted);margin-left:8px}.recent-record .view-link{color:var(--primary-light);font-size:.85rem;cursor:pointer;background:none;border:none;font-weight:500}.page-header{display:flex;align-items:center;gap:12px;margin-bottom:20px}.page-header h2{font-size:1.2rem;font-weight:700}.back-btn{background:none;border:none;color:var(--text-muted);font-size:1.4rem;cursor:pointer;padding:4px}.back-btn:hover{color:var(--text-main)}.type-toggle{display:flex;background:var(--bg-input);border-radius:10px;padding:4px;margin-bottom:16px}.type-toggle button{flex:1;padding:10px;border:none;border-radius:8px;background:transparent;color:var(--text-muted);font-weight:600;cursor:pointer;transition:all .2s}.type-toggle button.active{background:var(--primary);color:#fff}.player-attendance-list{display:flex;flex-direction:column;gap:8px;margin:16px 0}.player-attendance-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:14px 16px;transition:border-color .2s}.reason-input{width:100%;margin-top:8px;padding:8px 12px;border:1px solid var(--border);border-radius:8px;background:var(--bg-dark);color:var(--text-main);font-size:.85rem}.reason-input::placeholder{color:var(--text-muted)}.captain-badge{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;background:var(--accent-yellow);color:#000;border-radius:50%;font-size:.7rem;font-weight:800;margin-left:6px;vertical-align:middle}.checkbox-label{display:flex;align-items:center;gap:8px;margin:8px 0 12px;font-size:.95rem;cursor:pointer;color:var(--text-main)}.checkbox-label input[type=checkbox]{width:18px;height:18px;accent-color:var(--primary)}.player-attendance-row .player-info{display:flex;align-items:center;gap:10px}.player-attendance-row .player-number{color:var(--text-muted);font-size:.85rem;font-weight:500;min-width:24px}.player-attendance-row .player-name{font-weight:600}.status-btn{padding:8px 18px;border:2px solid;border-radius:20px;font-weight:700;font-size:.8rem;cursor:pointer;text-transform:uppercase;letter-spacing:.5px;transition:all .2s;min-width:110px;text-align:center}.status-btn.present{background:var(--accent-green-dim);border-color:var(--accent-green);color:var(--accent-green)}.status-btn.absent{background:var(--accent-red-dim);border-color:var(--accent-red);color:var(--accent-red)}.status-btn.late{background:var(--accent-yellow-dim);border-color:var(--accent-yellow);color:var(--accent-yellow)}.status-btn.permission{background:var(--accent-blue-dim);border-color:var(--accent-blue);color:var(--accent-blue)}.stats-grid-wrapper{overflow-x:auto;margin:16px 0;-webkit-overflow-scrolling:touch}.stats-grid{border-collapse:collapse;font-size:.85rem;min-width:100%}.stats-grid th,.stats-grid td{padding:10px 8px;text-align:center;border-bottom:1px solid var(--border)}.stats-grid th{color:var(--text-muted);font-weight:500;font-size:.75rem;white-space:nowrap}.stats-grid th.date-header{writing-mode:vertical-lr;transform:rotate(180deg);padding:12px 4px;max-width:40px;font-size:.7rem}.stats-grid td.player-name-cell{text-align:left;font-weight:600;white-space:nowrap;position:sticky;left:0;background:var(--bg-dark);z-index:1;padding-right:16px}.status-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;font-size:.85rem;font-weight:700}.status-icon.present{background:var(--accent-green-dim);color:var(--accent-green)}.status-icon.absent{background:var(--accent-red-dim);color:var(--accent-red)}.status-icon.late{background:var(--accent-yellow-dim);color:var(--accent-yellow)}.status-icon.permission{background:var(--accent-blue-dim);color:var(--accent-blue)}.summary-table{width:100%;border-collapse:collapse;font-size:.85rem;margin-top:16px}.summary-table th,.summary-table td{padding:10px 14px;border-bottom:1px solid var(--border);text-align:left}.summary-table th{color:var(--text-muted);font-weight:500;font-size:.75rem;text-transform:uppercase}.summary-table td{font-weight:500}.birthday-today{text-align:center;padding:20px;background:linear-gradient(135deg,var(--primary),#e84393);border-radius:12px;margin-bottom:16px}.birthday-today h3{font-size:1.1rem;margin-bottom:8px}.birthday-today .name{font-size:1.3rem;font-weight:800}.birthday-none{text-align:center;padding:20px;color:var(--text-muted);font-size:.9rem}.birthday-card{display:flex;align-items:center;justify-content:space-between;padding:16px;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;margin-bottom:8px}.birthday-card .name{font-weight:700;font-size:1rem}.birthday-card .date{color:var(--text-muted);font-size:.85rem;margin-top:2px}.birthday-card .age{color:var(--primary-light);font-weight:600;font-size:.85rem;text-align:right}.player-list-item{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;margin-bottom:8px}.player-list-item .info h4{font-weight:600;font-size:.95rem}.player-list-item .info p{color:var(--text-muted);font-size:.8rem;margin-top:2px}.player-list-item .actions{display:flex;gap:8px}.user-list-item{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;margin-bottom:8px}.user-list-item .info h4{font-weight:600}.user-list-item .info p{color:var(--text-muted);font-size:.8rem}.impersonate-banner{background:var(--accent-yellow);color:#000;text-align:center;padding:8px 16px;font-weight:600;font-size:.85rem;display:flex;align-items:center;justify-content:center;gap:12px}.impersonate-banner button{background:#0003;border:none;color:#000;padding:4px 12px;border-radius:6px;font-weight:700;cursor:pointer;font-size:.8rem}.impersonate-banner button:hover{background:#00000059}.hamburger{display:none;background:none;border:none;color:var(--text-main);font-size:1.5rem;cursor:pointer;padding:4px 8px;line-height:1}.nav-dropdown{display:none;position:fixed;top:61px;left:0;right:0;background:var(--bg-card);border-bottom:1px solid var(--border);z-index:99;padding:8px 0;box-shadow:0 8px 24px var(--shadow)}.nav-dropdown.open{display:block}.nav-dropdown button{display:block;width:100%;text-align:left;padding:14px 24px;background:none;border:none;color:var(--text-muted);font-size:.95rem;font-weight:500;cursor:pointer}.nav-dropdown button:hover,.nav-dropdown button.active{color:var(--primary-light);background:var(--bg-card-hover)}.nav-overlay{display:none;position:fixed;inset:61px 0 0;background:#00000080;z-index:98}.nav-overlay.open{display:block}.create-team-container{max-width:420px;margin:60px auto;text-align:center}.create-team-container img{width:64px;height:64px;border-radius:12px;margin-bottom:16px}.create-team-container h2{margin-bottom:8px}.create-team-container p{color:var(--text-muted);margin-bottom:24px;font-size:.9rem}.admin-team-card{display:flex;align-items:center;justify-content:space-between;padding:16px;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;margin-bottom:8px}.admin-team-card .team-info h4{font-weight:700}.admin-team-card .team-info p{color:var(--text-muted);font-size:.8rem;margin-top:2px}.loading{display:flex;align-items:center;justify-content:center;min-height:200px;color:var(--text-muted)}.spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(min-width:768px){.content{padding:32px}.bottom-nav{display:none}.desktop-nav{display:flex}}@media(max-width:767px){.hamburger{display:block}.desktop-nav{display:none!important}.user-badge{display:none}.login-box{padding:28px 24px}.navbar-brand span{font-size:.95rem}.player-list-item,.user-list-item{flex-direction:column;align-items:flex-start;gap:10px}.player-list-item .actions,.user-list-item .actions{align-self:flex-end}}
