:root{--color-bg:#050508;--color-bg-elevated:#ffffff08;--color-surface:#ffffff0f;--color-surface-hover:#ffffff1a;--color-border:#ffffff1f;--color-border-subtle:#ffffff0f;--color-text-primary:#fffffff2;--color-text-secondary:#ffffffb3;--color-text-tertiary:#fff6;--color-accent:#0a84ff;--color-accent-glow:#0a84ff66;--color-success:#30d158;--color-success-glow:#30d15866;--color-warning:#ffd60a;--color-warning-glow:#ffd60a66;--color-danger:#ff453a;--color-danger-glow:#ff453a66;--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--radius-sm:.75rem;--radius-md:1.25rem;--radius-lg:1.75rem;--radius-xl:2.5rem;--radius-full:9999px;--shadow-sm:0 2px 8px #0000004d;--shadow-md:0 4px 20px #0006;--shadow-lg:0 8px 40px #00000080;--shadow-glow:0 0 40px var(--color-accent-glow);--transition-fast:.15s cubic-bezier(.4,0,.2,1);--transition-base:.25s cubic-bezier(.4,0,.2,1);--transition-spring:.4s cubic-bezier(.34,1.56,.64,1);--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior-y:contain;scrollbar-width:none;-ms-overflow-style:none}body{background-color:var(--color-bg);color:var(--color-text-primary);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:contain;min-height:100dvh;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,Helvetica Neue,Helvetica,Arial,sans-serif;line-height:1.5;overflow-x:hidden}input,textarea{-webkit-user-select:text;user-select:text}.ambient-bg{z-index:-1;background:var(--color-bg);position:fixed;inset:0;overflow:hidden}.ambient-bg:before{content:"";background:radial-gradient(at 20% 30%,#0a84ff26 0%,#0000 50%),radial-gradient(at 80% 70%,#30d1581a 0%,#0000 40%),radial-gradient(#ffffff05 0%,#0000 60%);width:150%;height:150%;animation:30s ease-in-out infinite ambient-drift;position:absolute;top:-25%;left:-25%}@keyframes ambient-drift{0%,to{transform:translate(0)rotate(0)}25%{transform:translate(2%,-2%)rotate(1deg)}50%{transform:translate(-1%,2%)rotate(-1deg)}75%{transform:translate(-2%,-1%)rotate(.5deg)}}.glass-panel{background:var(--color-surface);-webkit-backdrop-filter:blur(40px);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.glass-panel-heavy{-webkit-backdrop-filter:blur(60px);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);background:#141419d9}.glass-nav{-webkit-backdrop-filter:blur(50px);border:1px solid var(--color-border);border-radius:var(--radius-full);box-shadow:var(--shadow-lg),inset 0 1px 0 #ffffff1a;background:#1e1e23bf}.glass-input{-webkit-backdrop-filter:blur(10px);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);color:var(--color-text-primary);padding:var(--space-md)var(--space-lg);transition:var(--transition-base);background:#ffffff0d;outline:none;width:100%;font-size:1rem}.glass-input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-glow)}.glass-input::placeholder{color:var(--color-text-tertiary)}.touch-target{cursor:pointer;transition:transform var(--transition-spring),opacity var(--transition-fast)}.touch-target:active{transform:scale(.95)}.touch-target:disabled{opacity:.5;cursor:not-allowed}.touch-target:disabled:active{transform:none}.btn{justify-content:center;align-items:center;gap:var(--space-sm);padding:var(--space-md)var(--space-lg);border-radius:var(--radius-md);cursor:pointer;transition:transform var(--transition-spring),background var(--transition-fast),box-shadow var(--transition-fast);border:none;font-size:1rem;font-weight:600;display:inline-flex}.btn:active{transform:scale(.95)}.btn-primary{background:var(--color-accent);color:#fff}.btn-primary:hover{box-shadow:var(--shadow-glow)}.btn-success{background:var(--color-success);color:#000}.btn-success:hover{box-shadow:0 0 30px var(--color-success-glow)}.btn-warning{background:var(--color-warning);color:#000}.btn-danger{background:var(--color-danger);color:#fff}.btn-ghost{background:var(--color-surface);color:var(--color-text-secondary);border:1px solid var(--color-border-subtle)}.btn-ghost:hover{background:var(--color-surface-hover);color:var(--color-text-primary)}.icon-btn{border-radius:var(--radius-full);background:var(--color-surface);width:44px;height:44px;color:var(--color-text-secondary);cursor:pointer;transition:transform var(--transition-spring),background var(--transition-fast),color var(--transition-fast);border:none;justify-content:center;align-items:center;display:flex}.icon-btn:active{transform:scale(.9)}.icon-btn:hover{background:var(--color-surface-hover);color:var(--color-text-primary)}.status-present{--status-color:var(--color-success);--status-glow:var(--color-success-glow)}.status-maybe{--status-color:var(--color-warning);--status-glow:var(--color-warning-glow)}.status-absent{--status-color:var(--color-danger);--status-glow:var(--color-danger-glow)}.status-unknown{--status-color:var(--color-text-tertiary);--status-glow:transparent}.status-dot{background:var(--status-color);width:8px;height:8px;box-shadow:0 0 8px var(--status-glow);border-radius:50%}.status-ring{border:2px solid var(--status-color);box-shadow:0 0 12px var(--status-glow)}.text-display{letter-spacing:-.02em;font-size:2.5rem;font-weight:700;line-height:1.1}.text-title{letter-spacing:-.01em;font-size:1.5rem;font-weight:700}.text-headline{font-size:1.125rem;font-weight:600}.text-body{color:var(--color-text-secondary);font-size:1rem}.text-caption{color:var(--color-text-tertiary);letter-spacing:.01em;font-size:.875rem}.text-label{text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-tertiary);font-size:.75rem;font-weight:600}.container{width:100%;max-width:1200px;padding:var(--space-lg);padding-top:calc(var(--space-lg) + var(--safe-top));padding-bottom:calc(100px + var(--safe-bottom));margin:0 auto}.flex-center{justify-content:center;align-items:center;display:flex}.flex-between{justify-content:space-between;align-items:center;display:flex}.grid-cards{gap:var(--space-lg);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));display:grid}@media (max-width:640px){.grid-cards{grid-template-columns:1fr}}.floating-nav{bottom:calc(var(--space-lg) + var(--safe-bottom));z-index:1000;position:fixed;left:50%;transform:translate(-50%)}.floating-nav-inner{align-items:center;gap:var(--space-xs);padding:var(--space-sm);display:flex}.nav-item{border-radius:var(--radius-full);width:48px;height:48px;color:var(--color-text-tertiary);cursor:pointer;transition:transform var(--transition-spring),color var(--transition-fast),background var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.nav-item:active{transform:scale(.9)}.nav-item:hover{color:var(--color-text-secondary)}.nav-item.active{background:var(--color-accent);color:#fff;box-shadow:0 0 20px var(--color-accent-glow)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes scale-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes pulse-glow{0%,to{box-shadow:0 0 10px var(--status-glow)}50%{box-shadow:0 0 25px var(--status-glow)}}.animate-fade-in{animation:.3s ease-out fade-in}.animate-slide-up{animation:.4s ease-out slide-up}.animate-scale-in{animation:scale-in .3s var(--transition-spring)}.animate-float{animation:4s ease-in-out infinite float}.animate-pulse-glow{animation:2s ease-in-out infinite pulse-glow}::-webkit-scrollbar{width:0;height:0;display:none}::-webkit-scrollbar-thumb:hover{background:#ffffff40}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}.scrollbar-hide::-webkit-scrollbar{display:none}.avatar{text-transform:uppercase;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex}.avatar-sm{width:32px;height:32px;font-size:.75rem}.avatar-md{width:44px;height:44px;font-size:1rem}.avatar-lg{width:56px;height:56px;font-size:1.25rem}.card{padding:var(--space-lg);transition:transform var(--transition-spring),box-shadow var(--transition-base)}.card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.card:active{transform:scale(.98)}.skeleton{border-radius:var(--radius-sm);background:linear-gradient(90deg,#ffffff08 25%,#ffffff14 50%,#ffffff08 75%) 0 0/200% 100%;animation:1.5s ease-in-out infinite skeleton-shimmer}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.spinner{border:2px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;width:24px;height:24px;animation:.8s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.overlay{-webkit-backdrop-filter:blur(10px);z-index:900;background:#000000b3;position:fixed;inset:0}.modal{width:calc(100% - var(--space-xl)*2);max-width:500px;max-height:calc(100dvh - var(--space-xl)*2);z-index:901;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%)}.attendance-grid{gap:var(--space-sm);grid-template-columns:repeat(3,1fr);display:grid}.attendance-btn{border:2px solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-surface);height:56px;color:var(--color-text-tertiary);cursor:pointer;transition:transform var(--transition-spring),background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast);justify-content:center;align-items:center;display:flex}.attendance-btn:active{transform:scale(.92)}.attendance-btn.selected{border-color:var(--status-color);background:var(--status-color);color:#000;box-shadow:0 0 20px var(--status-glow)}.attendance-btn.selected.status-absent{color:#fff}.player-grid{gap:var(--space-sm);flex-wrap:wrap;display:flex}.player-chip{align-items:center;gap:var(--space-sm);padding:var(--space-xs)var(--space-md)var(--space-xs)var(--space-xs);background:var(--color-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-full);font-size:.875rem;display:flex}.player-chip .avatar{width:28px;height:28px;font-size:.7rem}.animate-spin{animation:1s linear infinite spin}
