.tab-bar[data-v-781c1916]{position:fixed;left:0;right:0;bottom:0;display:flex;background:#121212f5;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:100;padding-bottom:env(safe-area-inset-bottom)}.tab-bar-border[data-v-781c1916]{position:absolute;top:0;left:0;right:0;height:1px;background:#2a2a2a}.tab-item[data-v-781c1916]{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 0 10px;cursor:pointer;-webkit-user-select:none;user-select:none}.tab-item img[data-v-781c1916]{width:24px;height:24px}.tab-item span[data-v-781c1916]{font-size:10px}.scan-slot[data-v-781c1916]{flex:1;display:flex;justify-content:center;position:relative}.scan-btn[data-v-781c1916]{position:absolute;top:-22px;width:52px;height:52px;border-radius:50%;background:#dc2626;border:3px solid #121212;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 10px #dc262666}.scan-btn img[data-v-781c1916]{width:26px;height:26px}*{margin:0;padding:0;box-sizing:border-box}html,body{font-family:Noto Sans SC,sans-serif;color:#fff;background-color:#121212;background-image:linear-gradient(45deg,#1a1a1a 25%,transparent 25%),linear-gradient(-45deg,#1a1a1a 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#1a1a1a 75%),linear-gradient(-45deg,transparent 75%,#1a1a1a 75%);background-size:4px 4px;-webkit-font-smoothing:antialiased}#app{min-height:100vh}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer}input{font-family:inherit}.font-o{font-family:Orbitron,sans-serif}.header{margin:0 20px;padding-top:14px}.header .desc{color:#6b7280;letter-spacing:.1em;text-transform:uppercase;font-size:10px;font-family:Orbitron,sans-serif;font-style:italic;line-height:20px}.header .hb{display:flex;align-items:center}.header .hb .title{font-weight:900;font-size:1.2rem;line-height:2rem;transform:skew(-10deg);font-family:Orbitron,sans-serif}.header .hb .title_pro{color:#dc2626;font-weight:900;font-size:1.2rem;line-height:2rem;font-family:Orbitron,sans-serif;margin-left:6px}.header .hb .spacer{flex:1}.header .hb .datetime{font-weight:700;font-size:10px;padding:4px 12px;background-color:#dc2626;clip-path:polygon(0 0,90% 0,100% 20%,100% 100%,10% 100%,0 80%);font-family:Orbitron,sans-serif}.main{padding-bottom:100px}.navbar{display:flex;flex-wrap:wrap;border-bottom:solid 1px #727272;margin-bottom:10px}.navbar .nav{flex:0 33.33%;padding:10px 0;text-align:center;font-size:11px;border-bottom:solid 2px transparent;cursor:pointer;-webkit-user-select:none;user-select:none}.navbar .nav.active{border-bottom-color:red;color:#fff}.navbar .nav{color:#9ca3af}.mapInfo{margin:20px;padding:4px;border-radius:8px;overflow:hidden;position:relative;border:1px solid #333;background:linear-gradient(135deg,#1e1e1e,#0c0c0c);box-shadow:inset 0 1px 1px #ffffff1a;height:168px}.mapInfo .mapTrack{width:100%;height:100%;border-radius:5px;object-fit:cover;display:block}.mapInfo .mapCover{position:absolute;top:4px;right:4px;bottom:4px;left:4px;border-radius:5px;background-image:linear-gradient(to top,#000,#0000 60%,#0000)}.mapInfo .mapBlock{position:absolute;left:16px;bottom:12px}.mapInfo .mapTitle{font-weight:700;font-size:1rem;line-height:1.75rem;font-style:italic}.mapInfo .mapTime{color:#d1d5db;font-size:10px}.mapRecord{display:block;margin:20px}.mapRecordTitle{font-weight:700;font-size:.875rem;display:flex;align-items:center;gap:8px;margin-bottom:12px}.mapRecordTitle .bar{background-color:#dc2626;width:4px;height:16px}.mapRecordInfo{display:flex;padding:12px;background-color:#ffffff0d;border-left:2px solid #4b5563;border-radius:0 8px 8px 0;gap:16px;align-items:center;margin-bottom:8px}.mapRecordInfo.me{border-left-color:#dc2626}.mapRecordInfo .num{font-style:italic;font-weight:700;font-size:1.125rem;width:24px;font-family:Orbitron,sans-serif}.mapRecordInfo .nameInfo{flex:1}.mapRecordInfo .playerName{font-weight:700;font-size:.8rem}.mapRecordInfo .sub{color:#9ca3af;font-size:10px}.mapRecordInfo .times{text-align:right}.mapRecordInfo .time{font-weight:700;font-size:.8rem;font-family:Orbitron,sans-serif}.mapRecordInfo .gap{color:#ef4444;font-size:9px;font-weight:700}.mapRecordInfo .tip{color:#a0aab9;font-size:9px;font-weight:500}.form-card{margin:24px 20px;background:#ffffff0a;border:1px solid #333;border-radius:12px;padding:20px}.form-card label{display:block;font-size:12px;color:#9ca3af;margin:14px 0 6px}.form-card label:first-child{margin-top:0}.form-card input{width:100%;background:#1e1e1e;border:1px solid #3a3a3a;border-radius:8px;color:#fff;padding:10px 12px;font-size:14px;outline:none}.form-card input:focus{border-color:#dc2626}.btn-primary{width:100%;margin-top:20px;background:#dc2626;color:#fff;border:none;border-radius:8px;padding:12px;font-size:14px;font-weight:700}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-ghost{width:100%;margin-top:10px;background:transparent;color:#9ca3af;border:1px solid #3a3a3a;border-radius:8px;padding:12px;font-size:14px}.msg{margin-top:12px;font-size:12px;text-align:center}.msg.err{color:#ef4444}.msg.ok{color:#22c55e}.toast{position:fixed;left:50%;bottom:120px;transform:translate(-50%);background:#000000d9;border:1px solid #444;color:#fff;padding:10px 18px;border-radius:8px;font-size:13px;z-index:999;max-width:80vw}.loading-tip{text-align:center;color:#6b7280;font-size:13px;padding:30px 0}
