:root{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:#192c46;background:#f4f7fb;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button,a,input{outline-offset:4px}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit;text-decoration:none}button{border:0}button:disabled{opacity:.4;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid #2c79f5}[hidden]{display:none!important}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:700;color:#6d849e}.brand{display:flex;align-items:center;gap:12px;font-size:15px;font-weight:650}.brand small{display:block;font-size:8px;letter-spacing:1.4px;margin-top:7px;opacity:.5}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:linear-gradient(130deg,#4a9fff,#3362ee);color:white;font-size:22px;font-weight:800;box-shadow:0 6px 18px #2466ed33}.login-layout{min-height:100vh;display:grid;grid-template-columns:1.05fr 1fr}.login-story{position:relative;overflow:hidden;background:radial-gradient(ellipse at 90% 40%,#204d82 0,transparent 60%),#102742;color:#fff;padding:48px 56px;display:flex;flex-direction:column}.login-intro{position:relative;z-index:1;margin:auto 0}.login-intro .eyebrow{color:#78baff}.login-intro h1{font-size:clamp(38px,4vw,62px);line-height:1.35;letter-spacing:2px;margin:22px 0}.login-intro h1 span{color:#52b8ff}.login-intro p{font-size:15px;line-height:1.9;color:#c0d1e4}.story-line{width:46px;height:2px;background:#589fff;margin:28px 0}.story-note{color:#8ca7c7;font-size:12px;letter-spacing:2px}.login-story footer{position:relative;z-index:1;font-size:11px;color:#7f9ab9;margin-top:50px}.orbit{position:absolute;right:-125px;bottom:15%;width:420px;height:420px;border:1px solid #8db9f32a;border-radius:50%;transform:rotate(-22deg);display:grid;place-items:center}.orbit:before,.orbit:after{content:"";position:absolute;inset:35px;border:1px solid #84b1ee21;border-radius:50%}.orbit:after{inset:80px}.orbit b{font-size:105px;letter-spacing:-10px;color:#8db9f30c}.orbit i{position:absolute;top:40px;left:60px;width:14px;height:14px;border-radius:50%;background:#62b8ff;box-shadow:0 0 32px #75cfff}.orbit i:last-child{top:auto;left:auto;bottom:58px;right:45px;width:7px;height:7px}.login-side{display:grid;place-items:center;padding:48px 28px;background:#f8faff}.login-card{width:100%;max-width:370px}.login-symbol{font-size:25px;color:#2672ef;background:#e5efff;width:48px;height:48px;display:grid;place-items:center;border-radius:14px;margin-bottom:30px}.login-card h2{font-size:28px;margin:12px 0}.login-card>p:not(.error){font-size:13px;line-height:1.8;color:#7c8b9e;margin:0 0 32px}.login-card label{display:block;font-size:13px;font-weight:600;margin:20px 0 9px}.login-card input{width:100%;height:48px;border:1px solid #d9e1eb;background:white;border-radius:9px;padding:0 14px;color:#192c46}.login-card input::placeholder{color:#a2adbb}.error{font-size:12px;color:#bc2941;min-height:18px;margin:12px 0}.primary{display:flex;justify-content:center;align-items:center;gap:25px;padding:13px 20px;min-height:46px;color:white;background:#2d73e8;border-radius:8px;font-size:14px;font-weight:600;text-align:center}.primary:hover{background:#2063d1}.login-card>.primary{width:100%}.back-site{display:block;text-align:center;font-size:12px;color:#7e90a5;margin:25px 0}.dashboard{display:flex;min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:232px;padding:30px 18px;background:#10253f;color:#cfdaeb;display:flex;flex-direction:column}.sidebar .brand{padding:0 9px;font-size:14px;color:#f4f8ff}.nav-caption{margin:48px 16px 14px;color:#6c84a1;font-size:10px;letter-spacing:2px}.sidebar nav{display:grid;gap:7px}.nav-item{display:flex;align-items:center;gap:12px;border-radius:8px;min-height:46px;padding:0 15px;color:#91a5bf;background:transparent;font-size:13px;text-align:left}.nav-item>span{font-size:18px;opacity:.9}.nav-item b{margin-left:auto;font-size:10px;font-weight:500;padding:3px 7px;background:#ffffff0a;border-radius:5px}.nav-item.active{background:#2c72e9;color:white;box-shadow:0 6px 18px #0b1d3520}.nav-item:not(.active):hover{background:#ffffff07;color:#e9f3ff}.sidebar-event{margin:42px 10px 0;padding:21px 12px;border:1px solid #ffffff0d;border-radius:10px;background:linear-gradient(135deg,#3479c40d,#68baff04)}.sidebar-event>span{font-size:10px;letter-spacing:2px;color:#6a97c9}.sidebar-event b{display:block;font-size:13px;font-weight:500;line-height:1.9;margin-top:12px;color:#c0d1e6}.sidebar-event small{display:block;color:#627f9e;font-size:9px;margin-top:20px}.sidebar-bottom{margin-top:auto;padding:30px 15px 0;display:grid;gap:24px;font-size:11px;color:#7791af}.sidebar-bottom a{color:#aac1dd}.workspace{margin-left:232px;flex:1;min-width:0}.topbar{height:78px;background:white;border-bottom:1px solid #e8edf4;display:flex;align-items:center;justify-content:space-between;padding:0 38px;font-size:11px;color:#8a98ab}.topbar b{color:#4f6380;font-weight:500}.account{display:flex;gap:10px;align-items:center;color:#455976;font-size:12px}.account small{display:block;font-size:9px;color:#94a1b4;margin-top:4px}.avatar{display:grid;place-items:center;width:32px;height:32px;background:#e9f0ff;border-radius:50%;color:#2d6bd3;font-size:12px}.text-button{background:none;color:#8a97a9;font-size:11px;margin-left:18px}.content{padding:38px;max-width:1600px;margin:auto}.page-title{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:30px}.page-title h1{font-size:26px;font-weight:650;letter-spacing:.4px;margin:12px 0 10px}.page-title p{font-size:12px;color:#8291a5;margin:0}.secondary{min-height:34px;padding:8px 14px;border:1px solid #dfe6ee;background:white;border-radius:7px;color:#586c87;font-size:11px;white-space:nowrap}.secondary:hover{border-color:#95b7ea;color:#2869cb}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:28px}.stats article{padding:23px;border:1px solid #e4eaf2;background:white;border-radius:10px}.stats article>span{display:flex;justify-content:space-between;font-size:12px;color:#667c97}.stats strong{display:block;font-size:32px;font-weight:600;font-variant-numeric:tabular-nums;margin:14px 0 8px}.stats small{font-size:10px;color:#9ba8b9}.blue-dot,.teal-dot{width:7px;height:7px;display:inline-block;background:#478af0;border-radius:50%;margin-top:5px}.teal-dot{background:#31b5a4}.records{background:white;border:1px solid #e3eaf3;border-radius:11px;overflow:hidden}.records-heading{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:25px}.records-heading>div{display:flex;align-items:center;gap:14px}.records h2{font-size:16px;font-weight:600;margin:0}.records-heading span{font-size:10px;color:#95a1b0}.search{display:flex;border:1px solid #e0e7f0;border-radius:7px;padding:3px}.search input{border:0;background:transparent;padding:8px 10px;font-size:11px;width:190px;min-width:0}.search button{font-size:10px;background:#eff4fb;border-radius:5px;color:#4c6b93;padding:0 12px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;text-align:left;white-space:nowrap}thead{background:#f8fafc;color:#8493a7;font-size:10px;font-weight:400}th{padding:14px 20px;font-weight:500}th:first-child,td:first-child{padding-left:26px}td{padding:20px;font-size:11px;border-bottom:1px solid #eef2f6;color:#647994}.file-cell{display:flex;align-items:center;gap:12px;min-width:190px;max-width:360px}.file-icon{display:grid;place-items:center;flex:none;width:35px;height:40px;border-radius:6px;background:#edf3ff;color:#4880d5;font-size:8px;font-weight:700;border:1px solid #dbe7ff}.file-name{overflow:hidden;text-overflow:ellipsis;max-width:280px;color:#294160;font-size:12px;font-weight:500}.file-cell small{display:block;font-size:8px;color:#a3afbd;margin-top:6px;font-weight:400}.badge{display:inline-block;border-radius:5px;padding:5px 8px;background:#ecf3ff;color:#467ac5;font-size:10px}.badge.demand{background:#e8f6f2;color:#2c9384}.row-actions{display:flex;gap:15px;align-items:center}.row-actions button,.row-actions a{border:0;background:none;padding:5px 0;color:#3277de;font-size:11px}.row-actions button{color:#8294a9}.pagination{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 25px;font-size:10px;color:#9aa7b7}.pagination>div{display:flex;gap:8px}.pagination .secondary{min-height:30px;font-size:10px}.table-status{font-size:12px;padding:0 25px;color:#b23c51}.table-status:empty{display:none}.empty{text-align:center;padding:68px 20px 78px}.empty>span{font-size:34px;color:#bed0e7;background:#f2f6fc;border-radius:16px;padding:16px 20px;display:inline-block}.empty h3{font-size:15px;font-weight:500;margin:25px 0 12px;color:#506783}.empty p{font-size:11px;color:#96a6b9}.storage-note{font-size:10px;color:#a0adbd;margin:21px 0}.notice{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);background:#18314d;color:white;font-size:12px;padding:13px 20px;border-radius:9px;box-shadow:0 6px 30px #132c4722;z-index:20}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}dialog{width:min(490px,calc(100% - 32px));border:1px solid #dfE8f2;border-radius:14px;padding:32px;color:#213c5b;box-shadow:0 30px 90px #142d5c25}dialog::backdrop{background:#132f4f66}dialog h2{font-size:22px;margin:12px 0 25px}.close-button{float:right;background:none;font-size:23px;color:#8899ac;margin:-15px -10px 0 0}dl{display:grid;grid-template-columns:80px minmax(0,1fr);gap:18px 12px;font-size:12px;margin-bottom:30px}dt{color:#8a9bb0}dd{margin:0;overflow-wrap:anywhere;line-height:1.7}.login-card input:focus{border-color:#659dee}
@media(min-width:1600px){.content{padding-top:45px}.stats article{padding:28px}.records-heading{padding:28px}td{padding-top:24px;padding-bottom:24px}}
@media(max-width:1050px){.sidebar{width:190px;padding-left:12px;padding-right:12px}.workspace{margin-left:190px}.content{padding:28px 22px}.topbar{padding:0 22px}.stats{gap:10px}.stats article{padding:18px 14px}.stats strong{font-size:28px}.search input{width:140px}.records-heading>div{display:block}.records-heading span{display:block;margin-top:8px}.login-story{padding:40px 30px}.file-name{max-width:200px}}
@media(max-width:720px){.login-layout{display:block}.login-story{min-height:auto;padding:25px}.login-intro,.orbit,.login-story footer{display:none}.login-side{padding:38px 24px;min-height:calc(100vh - 90px)}.login-symbol{margin-bottom:20px}.sidebar{position:relative;width:100%;padding:20px 18px}.dashboard{display:block}.sidebar .brand{padding:0}.nav-caption,.sidebar-event,.sidebar-bottom{display:none}.sidebar nav{display:flex;gap:7px;margin-top:20px}.nav-item{padding:0 12px;min-height:39px;flex:1;font-size:11px;gap:7px}.nav-item>span{display:none}.nav-item b{font-size:9px;padding:2px 4px}.workspace{margin-left:0}.topbar{height:62px;padding:0 18px}.content{padding:27px 16px}.page-title h1{font-size:23px}.page-title p{font-size:11px;line-height:1.7}.page-title{align-items:flex-start}.page-title>.secondary{margin-top:28px}.stats{grid-template-columns:1fr 1fr;gap:10px}.stats article{padding:17px}.stats strong{font-size:27px;margin:10px 0}.records-heading{padding:18px;display:block}.records-heading>div{display:flex}.records-heading span{margin:0}.search{margin-top:18px}.search input{flex:1;width:auto}.search button{min-height:32px}th,td{padding:14px}.pagination{padding:17px}.file-name{max-width:190px}.file-cell{min-width:220px}.storage-note{line-height:1.8}.eyebrow{font-size:9px}.account{gap:7px}.text-button{margin-left:8px}}

/* 两个前端的赛事来源独立于报名 / 需求通道。 */
.record-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.record-tools select{font:inherit;font-size:11px;min-height:38px;max-width:100%;padding:0 10px;border:1px solid #e0e7f0;border-radius:7px;background:#fff;color:#4c6b93;outline-offset:4px}
.record-tools select:focus-visible{outline:2px solid #2c79f5}
.contest-cell b{display:block;color:#294160;font-size:11px;font-weight:600}
.contest-cell small{display:block;margin-top:6px;font-size:9px;color:#95a1b0}
.records-heading{flex-wrap:wrap}
@media(max-width:720px){.records-heading .record-tools{display:block;margin-top:18px}.record-tools select{width:100%}.record-tools .search{margin-top:10px;width:100%}}
