:root{color-scheme:light;--bg: #f2f5fa;--deck: #ffffff;--deck2: #f7f9fd;--deck3: #edf1f8;--line: #e2e8f1;--text: #17233a;--text-mid: #5b6b85;--text-lo: #8d9bb1;--blue: #3370ff;--green: #1fa34c;--amber: #d97706;--red: #e5484d}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:PingFang SC,Microsoft YaHei,system-ui,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}input,textarea{font-family:inherit}@keyframes lanePulse{0%{box-shadow:0 0 #3370ff73}70%{box-shadow:0 0 0 12px #3370ff00}to{box-shadow:0 0 #3370ff00}}.lane-current{animation:lanePulse 1.8s ease-out infinite}.heat-cell{transition:background .2s}.navbar{display:flex;align-items:center;gap:6px;padding:12px 20px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#fff,#fafcff);position:sticky;top:0;z-index:30;box-shadow:0 2px 12px #17233a0d}.nav-item{position:relative;display:flex;align-items:center;gap:7px;padding:9px 16px;border-radius:10px;border:1px solid transparent;background:transparent;color:var(--text-mid);font-size:13.5px;font-weight:600;cursor:pointer;white-space:nowrap;transition:transform .18s ease,box-shadow .18s ease,background .18s ease,color .18s ease,border-color .18s ease}.nav-item .nav-icon{font-size:17px;transition:transform .18s ease;display:inline-block}.nav-item:hover{transform:translateY(-3px);background:#fff;border-color:var(--line);box-shadow:0 6px 18px #3370ff2e;color:var(--text)}.nav-item:hover .nav-icon{transform:scale(1.25) rotate(-6deg)}.nav-item.active{background:#3370ff1a;border-color:#3370ff59;color:var(--blue);font-weight:800}.nav-item.active:after{content:"";position:absolute;left:14px;right:14px;bottom:-1px;height:3px;border-radius:3px;background:linear-gradient(90deg,var(--blue),#6f9aff);box-shadow:0 0 8px #3370ffb3}.nav-item.core{color:#b45309;border-color:#f59e0b73;background:#f59e0b14;font-weight:800}.nav-item.core .nav-icon{position:relative;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:linear-gradient(135deg,#f59e0b,#fbbf24);color:#fff;animation:alarmHalo 1.8s ease-in-out infinite}@keyframes alarmHalo{0%,to{box-shadow:0 0 #f59e0b8c,0 0 6px #f59e0b80}50%{box-shadow:0 0 0 7px #f59e0b00,0 0 18px #f59e0be6,0 0 30px #f59e0b80}}.nav-item.core:hover{background:#f59e0b24;border-color:#f59e0b8c;box-shadow:0 6px 18px #f59e0b4d}.nav-item.core.active{background:#f59e0b29;border-color:#f59e0b99;color:#b45309}.nav-item.core.active:after{background:linear-gradient(90deg,#f59e0b,#fbbf24);box-shadow:0 0 8px #f59e0bb3}.nav-item.gold{color:#8a6d0b}.nav-item.gold.active{background:#b8860b1f;border-color:#b8860b66;color:#8a6d0b}.nav-item.gold.active:after{background:linear-gradient(90deg,#d4a017,#f0c860);box-shadow:0 0 8px #d4a017b3}.nav-badge{min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--red);color:#fff;font-size:10.5px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;line-height:1}@keyframes badgePulse{0%,to{transform:scale(1);box-shadow:0 0 #e5484d80}50%{transform:scale(1.15);box-shadow:0 0 0 6px #e5484d00}}.nav-badge.pulse{animation:badgePulse 1.6s ease-in-out infinite}.nav-cta{display:flex;align-items:center;gap:6px;padding:9px 18px;border-radius:10px;border:none;background:linear-gradient(135deg,#d4a017,#b8860b);color:#fff;font-size:13.5px;font-weight:800;cursor:pointer;box-shadow:0 4px 14px #d4a01766;transition:transform .18s ease,box-shadow .18s ease}.nav-cta:hover{transform:translateY(-3px) scale(1.03);box-shadow:0 8px 24px #d4a0178c}.nav-sep{width:1px;height:26px;background:var(--line);margin:0 6px}.alarm-banner{position:relative;overflow:hidden;margin-bottom:16px;border-radius:14px;padding:14px 20px;display:flex;align-items:center;gap:14px;border:1.5px solid transparent;color:#fff}.alarm-banner.overdue{background:linear-gradient(120deg,#7f1d1d,#b91c1c 45%,#e5484d);border-color:#ff7878b3;animation:alarmPulse 1.5s ease-in-out infinite}.alarm-banner.warning{background:linear-gradient(120deg,#92400e,#b45309 45%,#d97706);border-color:#fbbf24b3;animation:alarmPulse 1.8s ease-in-out infinite}@keyframes alarmPulse{0%,to{box-shadow:0 0 14px #e5484d80,0 0 #e5484d66}50%{box-shadow:0 0 30px #e5484de6,0 0 0 8px #e5484d00}}.alarm-banner .alarm-icon{display:inline-block;font-size:24px;animation:alarmWiggle 1s ease-in-out infinite;filter:drop-shadow(0 0 8px rgba(255,255,255,.9))}@keyframes alarmWiggle{0%,to{transform:rotate(-8deg) scale(1)}50%{transform:rotate(8deg) scale(1.15)}}.alarm-banner:after{content:"";position:absolute;top:0;bottom:0;left:-60%;width:40%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.35),transparent);transform:skew(-20deg);animation:alarmShine 2.2s ease-in-out infinite;pointer-events:none}@keyframes alarmShine{0%{left:-60%}60%,to{left:120%}}.alarm-banner .alarm-title{font-size:15px;font-weight:900;letter-spacing:1px}.alarm-banner .alarm-count{font-size:13px;font-weight:700;opacity:.95}.alarm-banner .alarm-btn{padding:8px 18px;border-radius:9px;border:2px solid rgba(255,255,255,.9);background:#ffffff2e;color:#fff;font-size:13px;font-weight:800;cursor:pointer;white-space:nowrap;transition:transform .15s,background .15s}.alarm-banner .alarm-btn:hover{transform:scale(1.06);background:#ffffff52}
