:root{--primary: #6C4DF0;--primary-dark: #5234C8;--primary-deeper: #3D1FA6;--primary-light: #8B72F8;--primary-surface: #F0ECFF;--primary-surface-2: #E4DEFF;--primary-glow: rgba(108,77,240,.35);--accent: #FF8C42;--success: #10b981;--warning: #f59e0b;--danger: #ef4444;--bg: #F6F4FB;--card: #FFFFFF;--text: #1A1140;--text-secondary: #6E6893;--text-muted: #A9A2C3;--border: #E8E4F3;--shadow-card: 0 2px 12px rgba(108,77,240,.07);--shadow-md: 0 4px 16px rgba(108,77,240,.1);--shadow-lg: 0 8px 32px rgba(108,77,240,.14);--radius: 16px;--radius-sm: 10px;--radius-lg: 24px;--transition: .25s cubic-bezier(.4,0,.2,1);--sidebar-gradient: linear-gradient(170deg, #6C4DF0 0%, #5234C8 50%, #3D1FA6 100%)}h1,h2,h3,h4,h5,h6{font-weight:800;letter-spacing:-.5px;color:var(--text)}p{line-height:1.6}a{text-decoration:none;color:inherit}.text-primary{color:var(--primary)}.text-secondary{color:var(--text-secondary)}.text-muted{color:var(--text-muted)}.text-success{color:var(--success)}.text-warning{color:var(--warning)}.text-danger{color:var(--danger)}.fw-400{font-weight:400}.fw-500{font-weight:500}.fw-600{font-weight:600}.fw-700{font-weight:700}.fw-800{font-weight:800}.text-xs{font-size:10px}.text-sm{font-size:12px}.text-base{font-size:14px}.text-lg{font-size:16px}.text-xl{font-size:18px}.text-2xl{font-size:22px}.text-3xl{font-size:28px}.uppercase{text-transform:uppercase}.tracking-wide{letter-spacing:.5px}.tracking-wider{letter-spacing:1px}.tracking-widest{letter-spacing:1.5px}.panel{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow-card);border:1.5px solid var(--border);overflow:hidden;margin-bottom:18px}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1.5px solid var(--border)}.panel-header h2{font-size:14px;font-weight:800;color:var(--text)}.panel-body{padding:20px}.badge-pill{display:inline-flex;align-items:center;padding:4px 12px;border-radius:20px;font-size:11px;font-weight:700;background:var(--primary-surface);color:var(--primary)}.badge-pill.green{background:#dcfce7;color:var(--success)}.badge-pill.amber{background:#fef3c7;color:var(--warning)}.badge-pill.red{background:#fee2e2;color:var(--danger)}.scard{background:var(--card);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow-card);border:1.5px solid transparent;display:flex;align-items:center;gap:14px;transition:var(--transition)}.scard:hover{transform:translateY(-2px);border-color:var(--primary-surface-2)}.scard .sc-icon{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}.scard .sc-icon.purple{background:var(--primary-surface)}.scard .sc-icon.green{background:#dcfce7}.scard .sc-icon.amber{background:#fef3c7}.scard .sc-icon.blue{background:#dbeafe}.scard .sc-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:2px}.scard .sc-value{font-size:24px;font-weight:800;color:var(--text);letter-spacing:-.5px;line-height:1}.scard .sc-sub{font-size:11px;color:var(--text-secondary);margin-top:2px;font-weight:500}.tab-nav{display:flex;gap:4px;background:var(--card);border:1.5px solid var(--border);border-radius:14px;padding:5px;margin-bottom:22px;width:fit-content;max-width:100%;overflow-x:auto;scrollbar-width:none}.tab-nav::-webkit-scrollbar{display:none}.tab-btn{padding:9px 22px;border-radius:10px;border:none;background:none;font-family:inherit;font-size:13px;font-weight:700;color:var(--text-secondary);cursor:pointer;transition:var(--transition);display:flex;align-items:center;gap:7px;white-space:nowrap}.tab-btn svg{width:15px;height:15px}.tab-btn.active{background:var(--primary);color:#fff;box-shadow:0 2px 10px #6c4df040}.tab-btn:not(.active):hover{background:var(--primary-surface);color:var(--primary)}.progress-track{height:6px;background:#fff3;border-radius:3px;overflow:hidden}.progress-fill{height:100%;background:#fffc;border-radius:3px;transition:width .6s ease}.progress-track.light{background:var(--border)}.progress-track.light .progress-fill{background:var(--primary)}.cell{width:30px;height:30px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:13px;margin:auto;transition:var(--transition);cursor:default;border:1.5px solid transparent}.cell.ontime{background:#dcfce7}.cell.late{background:#fef3c7}.cell.missed{background:#fee2e2}.cell.pending{background:var(--bg);color:var(--text-muted);font-size:10px}.cell.champion{border-color:#f59e0b;box-shadow:0 0 0 2px #f59e0b33;background:#fef9c3;font-size:16px}.legend{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary);font-weight:600}.lc{width:24px;height:24px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:12px}.lc.ontime{background:#dcfce7}.lc.late{background:#fef3c7}.lc.missed{background:#fee2e2}.lc.pending{background:var(--bg);color:var(--text-muted);font-size:9px;font-weight:700}.lc.champ{background:#fef9c3;border:1.5px solid #f59e0b}.cycle-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:18px}.cycle-tab{padding:6px 14px;border-radius:8px;border:1.5px solid var(--border);background:var(--card);font-family:inherit;font-size:12px;font-weight:700;color:var(--text-secondary);cursor:pointer;transition:var(--transition)}.cycle-tab.active{background:var(--primary);color:#fff;border-color:var(--primary)}.cycle-tab:hover:not(.active){border-color:var(--primary);color:var(--primary)}.form-group{margin-bottom:18px}.form-group label{display:block;font-size:13px;font-weight:700;color:var(--text);margin-bottom:6px}.form-control{width:100%;padding:11px 14px;border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--card);font-family:inherit;font-size:14px;color:var(--text);transition:var(--transition);outline:none}.form-control:focus{border-color:var(--primary);box-shadow:0 0 0 3px #6c4df014}.form-control::placeholder{color:var(--text-muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 24px;border-radius:var(--radius-sm);border:none;font-family:inherit;font-size:14px;font-weight:700;cursor:pointer;transition:var(--transition)}.btn.btn-primary{background:var(--primary);color:#fff;box-shadow:0 4px 14px #6c4df059}.btn.btn-primary:hover{background:var(--primary-dark);transform:translateY(-1px)}.btn.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn.btn-outline{background:transparent;border:1.5px solid var(--border);color:var(--text-secondary)}.btn.btn-outline:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-surface)}.btn.btn-ghost{background:transparent;color:var(--text-secondary)}.btn.btn-ghost:hover{background:var(--bg);color:var(--text)}.btn.btn-full{width:100%}.stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:24px}.icon-btn{width:42px;height:42px;border-radius:12px;border:1.5px solid var(--border);background:var(--card);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-secondary);transition:var(--transition)}.icon-btn:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-surface)}.ctrl-select{padding:8px 12px;border:1.5px solid var(--border);border-radius:10px;background:var(--card);font-family:inherit;font-size:13px;font-weight:600;color:var(--text);cursor:pointer;outline:none}.ctrl-select:focus{border-color:var(--primary)}@media (max-width: 1280px){.stats-row{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.stats-row{grid-template-columns:repeat(2,1fr)}.tab-nav{width:100%}.tab-nav .tab-btn{flex-shrink:0}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.animate-in{animation:fadeInUp .45s cubic-bezier(.4,0,.2,1) both}.d1{animation-delay:.04s}.d2{animation-delay:.08s}.d3{animation-delay:.12s}.d4{animation-delay:.16s}.spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}*,*:before,*:after{box-sizing:border-box}*{margin:0;padding:0}body{font-family:Plus Jakarta Sans,DM Sans,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;overflow-x:hidden;line-height:1.5}
