:root{--bg-primary: #0b0f19;--bg-secondary: #111827;--bg-card: rgba(30, 41, 59, .7);--bg-card-hover: rgba(30, 41, 59, .95);--border-color: rgba(255, 255, 255, .08);--border-focus: rgba(59, 130, 246, .5);--text-primary: #f8fafc;--text-secondary: #94a3b8;--text-muted: #64748b;--color-primary: #3b82f6;--color-primary-glow: rgba(59, 130, 246, .15);--color-success: #10b981;--color-success-glow: rgba(16, 185, 129, .15);--color-warning: #f59e0b;--color-warning-glow: rgba(245, 158, 11, .15);--color-danger: #ef4444;--color-danger-glow: rgba(239, 68, 68, .15);--font-heading: "Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 18px;--radius-full: 9999px;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .2);--shadow-md: 0 8px 30px rgba(0, 0, 0, .35);--shadow-lg: 0 12px 40px rgba(0, 0, 0, .5);--shadow-glow: 0 0 20px var(--color-primary-glow)}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-primary);color:var(--text-primary);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;line-height:1.5;background-image:radial-gradient(at 0% 0%,rgba(59,130,246,.08) 0px,transparent 50%),radial-gradient(at 100% 100%,rgba(16,185,129,.05) 0px,transparent 50%),radial-gradient(at 50% 50%,rgba(99,102,241,.05) 0px,transparent 50%);background-attachment:fixed}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:600;letter-spacing:-.02em}button,input,select,textarea{font-family:inherit}.glass-panel{background:var(--bg-card);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.glass-panel:hover{border-color:#ffffff24}.glass-card{background:#11182799;border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1.25rem}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--text-muted);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.btn-primary{background:linear-gradient(135deg,var(--color-primary),#4f46e5);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:var(--radius-md);font-weight:500;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;box-shadow:0 4px 14px #3b82f666;transition:all .2s ease}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px #3b82f699,var(--shadow-glow);filter:brightness(1.1)}.btn-primary:active{transform:translateY(0)}.btn-primary:disabled{background:var(--text-muted);box-shadow:none;cursor:not-allowed;transform:none;filter:none;opacity:.6}.btn-secondary{background:#ffffff0d;color:var(--text-primary);border:1px solid var(--border-color);padding:.75rem 1.5rem;border-radius:var(--radius-md);font-weight:500;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;transition:all .2s ease}.btn-secondary:hover:not(:disabled){background:#ffffff1a;border-color:var(--text-secondary)}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.btn-danger{background:linear-gradient(135deg,var(--color-danger),#b91c1c);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:var(--radius-md);font-weight:500;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;box-shadow:0 4px 14px #ef444466;transition:all .2s ease}.btn-danger:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #ef444499;filter:brightness(1.1)}.input-field{width:100%;background:#111827cc;border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);padding:.75rem 1rem;font-size:.95rem;transition:all .2s ease}.input-field:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-glow)}.input-field::placeholder{color:var(--text-muted)}.badge{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .75rem;border-radius:var(--radius-full);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.badge-success{background:var(--color-success-glow);color:#34d399;border:1px solid rgba(16,185,129,.3)}.badge-warning{background:var(--color-warning-glow);color:#fbbf24;border:1px solid rgba(245,158,11,.3)}.badge-danger{background:var(--color-danger-glow);color:#f87171;border:1px solid rgba(239,68,68,.3)}.badge-info{background:var(--color-primary-glow);color:#60a5fa;border:1px solid rgba(59,130,246,.3)}@keyframes pulseGlow{0%,to{opacity:.6}50%{opacity:1}}.pulsing-indicator{width:8px;height:8px;border-radius:50%;background-color:var(--color-success);display:inline-block;box-shadow:0 0 10px var(--color-success);animation:pulseGlow 2s infinite ease-in-out}.container{max-width:1200px;margin:0 auto;padding:1.5rem}.status-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.status-dot.active{background-color:var(--color-success);box-shadow:0 0 8px var(--color-success)}.status-dot.inactive{background-color:var(--text-muted)}.app-header{margin:1rem;padding:.75rem 1.5rem;display:flex;justify-content:space-between;align-items:center;z-index:50;border-radius:var(--radius-md);border-bottom:1px solid var(--border-color)}.header-logo{display:flex;align-items:center;gap:.75rem}.logo-icon{background:linear-gradient(135deg,#3b82f6,#10b981);padding:.5rem;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700}.logo-title{font-size:1.25rem;font-weight:800;font-family:var(--font-heading)}.header-actions{display:flex;align-items:center;gap:1rem}.role-switcher{display:flex;background:#0006;padding:.25rem;border-radius:var(--radius-md);border:1px solid var(--border-color)}.role-switcher .btn-tab{display:flex;align-items:center;gap:.35rem;padding:.5rem 1rem;border:none;background:transparent;color:var(--text-secondary);border-radius:calc(var(--radius-md) - 2px);cursor:pointer;font-weight:600;font-size:.85rem;transition:all .2s ease}.role-switcher .btn-tab.active{background:var(--color-primary);color:#fff}.tooltip-container{position:relative;display:inline-block}.tooltip-content{visibility:hidden;width:220px;background-color:#1e293b;color:#f8fafc;text-align:left;border-radius:var(--radius-sm);padding:.5rem .75rem;position:absolute;z-index:100;bottom:130%;left:50%;transform:translate(-50%);opacity:0;transition:opacity .2s ease,transform .2s ease;font-size:.75rem;border:1px solid var(--border-color);box-shadow:var(--shadow-lg);pointer-events:none;line-height:1.35}.tooltip-container:hover .tooltip-content{visibility:visible;opacity:1;transform:translate(-50%) translateY(-2px)}.scroll-tabs{display:flex;overflow-x:auto;white-space:nowrap;scrollbar-width:none;-webkit-overflow-scrolling:touch}.scroll-tabs::-webkit-scrollbar{display:none}.attendance-grid-container{overflow-x:auto;padding:.5rem 0;-webkit-overflow-scrolling:touch}.days-row{display:flex;gap:6px;min-width:max-content}.day-cell{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:600;cursor:pointer;transition:transform .15s ease,filter .15s ease}.day-cell:hover{transform:scale(1.2);filter:brightness(1.2)}.day-cell.onsite{background-color:var(--color-success);box-shadow:0 0 6px var(--color-success-glow);color:#0b0f19}.day-cell.offsite{background-color:var(--color-danger);box-shadow:0 0 6px var(--color-danger-glow);color:#fff}.day-cell.absent{background-color:#ffffff0a;border:1.5px dashed var(--border-color);color:var(--text-muted)}@media (max-width: 768px){.app-header{flex-direction:column;gap:1rem;align-items:stretch;padding:1rem;margin:.5rem}.header-logo{justify-content:center;text-align:center}.logo-title{font-size:1.1rem}.header-actions{justify-content:center;width:100%}.role-switcher{width:100%}.role-switcher .btn-tab{flex:1;justify-content:center;font-size:.8rem;padding:.5rem .75rem}.container{padding:.75rem}}.trainer-card{padding:1rem}@media (min-width: 640px){.trainer-card{padding:1.5rem}}.verification-banner{display:flex;align-items:center;gap:.5rem}@media (max-width: 480px){.verification-banner{flex-direction:column;align-items:flex-start}}
