
:root{
--white:#FFFFFF; --bg:#F7F1E5; --bg2:#F0E8D8; --surface:#FFFCF6; --ink:#2B2724; --ink2:#574F47; --ink3:#8B8074;
--red:#C23A2B; --red-d:#A32E21; --red-l:#F5E2DC; --green:#3E6B57; --green-l:#E6EDE7;
--gold:#C9A060; --line:rgba(43,39,36,.12); --line2:rgba(43,39,36,.2);
--f1:30px; --f2:22px; --f3:17px; --f4:15px; --f5:13px; --f6:12px;
--s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:24px; --s6:32px; --s7:48px;
--r:12px; --r-pill:999px; --sh1:0 1px 2px rgba(43,39,36,.06); --sh2:0 1px 2px rgba(43,39,36,.06),0 8px 24px rgba(43,39,36,.08);
--nav:64px;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
[hidden]{display:none!important}
html,body{margin:0}
body{background:var(--bg);color:var(--ink);font:400 var(--f4)/1.6 system-ui,"PingFang SC","Microsoft YaHei",sans-serif}
img{display:block;max-width:100%}
h1,h2,h3,p{margin:0}
a{color:inherit;text-decoration:none}
.wrap{max-width:520px;margin:0 auto;padding:0 var(--s4)}
.kai{font-family:"STKaiti",KaiTi,"Kaiti SC",serif}
/* 顶栏 */
.top a.btn{white-space:nowrap;flex:0 0 auto}
.top .back{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;margin-right:var(--s2);color:var(--ink2);flex:0 0 auto;background:var(--bg2);border-radius:var(--r-pill)}
.top{position:sticky;top:0;z-index:20;height:calc(var(--nav) + 40px);padding-top:40px;display:flex;align-items:center;gap:var(--s3);
padding-left:var(--s4);padding-right:var(--s4);background:var(--bg);border-bottom:1px solid var(--line);box-shadow:0 1px 0 rgba(43,39,36,.03)}
.brand{display:flex;align-items:center;gap:var(--s2);min-width:0}
.seal{width:30px;height:30px;border-radius:12px;background:var(--red);color:var(--white);display:grid;place-items:center;
font:700 15px/1 "STKaiti",KaiTi,serif}
.brand b{font:700 var(--f3)/1.2 "STKaiti",KaiTi,serif;letter-spacing:.02em;white-space:nowrap}
.top .brand .hint.slogan{font:700 var(--f3)/1.2 "STKaiti",KaiTi,serif;letter-spacing:.02em;white-space:nowrap;color:var(--ink)}
.top .brand .hint.slogan.nowrap{white-space:nowrap}
.top .sp{margin-left:auto}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:44px;padding:0 var(--s4);
border-radius:var(--r);border:1px solid var(--line2);background:var(--surface);color:var(--ink);
font:500 var(--f4)/1 inherit;cursor:pointer;white-space:nowrap}
.btn.sm{height:44px;padding:0 var(--s3);font-size:var(--f5)}
.btn.pri{background:var(--red);border-color:var(--red);color:var(--white)}
.btn.pri:hover{background:var(--red-d)}
.btn.ghost{background:transparent}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.btn:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--green);outline-offset:2px}
/* 导航 */
.tabnav{position:sticky;top:calc(var(--nav) + 40px);z-index:19;display:flex;gap:var(--s1);overflow-x:auto;padding:var(--s2) var(--s4);background:var(--bg);border-bottom:1px solid var(--line);scrollbar-width:none;
transition:box-shadow .2s}
.tabnav::-webkit-scrollbar{display:none}
.tabnav button,.tabnav a{flex:0 0 auto;display:inline-flex;align-items:center;height:44px;padding:0 var(--s4);border:0;border-radius:var(--r-pill);background:transparent;
color:var(--ink2);font:500 var(--f5)/1 inherit;cursor:pointer}
.tabnav button.on,.tabnav a.on{background:var(--ink);color:var(--bg)}
/* 作品页分组筛选条：粘在主导航下，避免与导航重叠 */
.tabnav.gbar{top:calc(var(--nav) + 40px + 62px);z-index:18;padding:var(--s2) 0;border-bottom:1px solid var(--line);background:var(--bg)}
.tabnav.gbar a{height:38px;padding:0 var(--s3);font-size:var(--f6)}
/* 首屏海报 */
.hero{position:relative;margin:0;overflow:hidden;background:var(--bg2)}
.hero .kv{width:100%;height:auto;display:block;max-height:400px;object-fit:cover;object-position:50% 42%}
.hero .mask{position:absolute;inset:0;background:linear-gradient(180deg,rgba(247,241,229,.22) 0%,rgba(43,39,36,.12) 38%,rgba(247,241,229,.9) 88%)}
.hero .txt{position:absolute;left:0;right:0;bottom:var(--s4);padding:0 var(--s5)}
.hero h1{font:700 23px/1.45 "Microsoft YaHei","PingFang SC",system-ui,sans-serif;letter-spacing:.02em;color:var(--red)}
.hero h1 em{display:block;font-style:normal;color:var(--red);font-size:1em;font-weight:700;margin-top:var(--s1);letter-spacing:.02em}
.hero .sub{margin-top:var(--s4);font:500 var(--f4)/1.5 "STKaiti",KaiTi,serif;color:var(--ink);letter-spacing:.06em}
.hero .eng{margin-top:var(--s1);font:600 var(--f6)/1.4 system-ui;letter-spacing:.1em;text-transform:uppercase;color:var(--ink3);white-space:nowrap}
.dots{position:absolute;right:var(--s5);bottom:var(--s4);display:flex;gap:6px}
.dots i{width:6px;height:6px;border-radius:var(--r-pill);background:rgba(43,39,36,.25)}
.dots i.on{width:18px;background:var(--red)}
/* 信息条 */
.facts{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.facts div{background:var(--bg);padding:var(--s3) var(--s4)}
.facts .k{font-size:var(--f6);color:var(--ink3);letter-spacing:.1em}
.facts .v{margin-top:2px;font-size:var(--f5);font-weight:500;white-space:nowrap}
/* 组别 */
.sec{padding:var(--s5) var(--s4) 0}
.sec-h{display:flex;align-items:baseline;gap:var(--s2);margin-bottom:var(--s3)}
.sec-h h2{font:700 var(--f2)/1.3 "STKaiti",KaiTi,serif;letter-spacing:.02em}
.sec-h .hint{font-size:var(--f6);color:var(--ink3)}
.sec-h a.sp{margin-left:auto;min-height:44px;display:inline-flex;align-items:center;font-size:var(--f5);color:var(--red)}
.grp{display:grid;grid-template-columns:1fr 1fr;gap:var(--s2)}
.grp a{display:block;padding:var(--s3);border:1px solid var(--line);border-radius:var(--r);background:var(--surface);box-shadow:var(--sh1)}
.grp a:hover{border-color:var(--line2)}
.grp .n{font:700 var(--f4)/1.3 "STKaiti",KaiTi,serif}
.grp .a{font-size:var(--f6);color:var(--ink3);margin-top:2px}
.grp .c{float:right;font:700 var(--f5)/1 system-ui;color:var(--red)}
/* 作品卡 */
.cards{display:grid;gap:var(--s3)}
.wcard{display:block;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:var(--sh1)}
.wcard .cover{position:relative;aspect-ratio:16/10;background:var(--bg2)}
.wcard .cover img{width:100%;height:100%;object-fit:cover}
.wcard .play{position:absolute;left:var(--s2);bottom:var(--s2);width:44px;height:44px;border-radius:var(--r-pill);
background:rgba(43,39,36,.62);display:grid;place-items:center}
.wcard .dur{position:absolute;right:var(--s2);bottom:var(--s2);padding:4px 8px;border-radius:var(--r-pill);
background:rgba(43,39,36,.72);color:var(--white);font:500 var(--f6)/1.4 system-ui}
.wcard .meta{display:flex;align-items:center;gap:var(--s2);padding:var(--s3)}
.wcard .meta .t{min-width:0;flex:1}
.wcard .meta .nm{font-weight:600;font-size:var(--f4)}
.wcard .meta .wk{font-size:var(--f5);color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tag{display:inline-block;padding:4px 8px;border-radius:var(--r-pill);font-size:var(--f6);font-weight:600}
.tag.g1{background:var(--green-l);color:var(--green)}
.tag.g2{background:var(--red-l);color:var(--red-d)}
/* 表单 */
.form{display:grid;gap:var(--s3)}
.field label{display:block;font-size:var(--f6);color:var(--ink3);margin-bottom:var(--s1);letter-spacing:.06em}
.field .req{color:var(--red)}
input,select{width:100%;height:48px;border:1px solid var(--line2);border-radius:var(--r);background:var(--surface);
padding:0 var(--s3);font:400 var(--f4)/1.4 inherit;color:var(--ink)}
input::placeholder{color:var(--ink3)}
.err{font-size:var(--f6);color:var(--red);margin-top:var(--s1)}
input.bad{border-color:var(--red)}
/* 上传区 */
.drop{display:grid;place-items:center;gap:var(--s2);padding:var(--s5) var(--s4);border:1px dashed var(--line2);
border-radius:var(--r);background:var(--surface);text-align:center}
.drop .ic{width:44px;height:44px;border-radius:var(--r-pill);background:var(--red-l);display:grid;place-items:center}
.drop b{font-size:var(--f4)}
.drop p{font-size:var(--f6);color:var(--ink3)}
.uploaded{display:flex;gap:var(--s3);align-items:center;padding:var(--s2);border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
.uploaded img{width:96px;height:64px;object-fit:cover;border-radius:12px}
/* 步骤 */
.steps{display:flex;gap:var(--s2);padding:var(--s3) 0 0;font-size:var(--f6);color:var(--ink3);flex-wrap:wrap}
.steps b{color:var(--red);font-weight:700}
/* 详情 */
.player{position:relative;aspect-ratio:16/9;background:var(--ink);overflow:hidden}
.player img{width:100%;height:100%;object-fit:cover;opacity:.94}
.player .big{position:absolute;inset:0;display:grid;place-items:center}
.player .big span{width:56px;height:56px;border-radius:var(--r-pill);background:rgba(255,252,246,.92);display:grid;place-items:center}
.dl{display:grid;gap:var(--s2);padding:var(--s4)}
.dl .row{display:flex;justify-content:space-between;gap:var(--s4);padding-bottom:var(--s2);border-bottom:1px solid var(--line);font-size:var(--f4)}
.dl .row .k{color:var(--ink3);font-size:var(--f5)}
.sk{height:12px;border-radius:12px;background:var(--bg2);margin-bottom:8px;animation:sh 1.2s ease-in-out infinite}
.err{font-size:var(--f6);color:var(--red);margin-top:var(--s1)}
.grp a{position:relative}
.grp .c{position:absolute;right:var(--s3);top:var(--s3);font:700 var(--f5)/1 system-ui;color:var(--red)}
.state .banner b{display:block}
/* 状态样本 */
.states{display:grid;gap:var(--s3);padding:var(--s4)}
.state{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:var(--s4)}
.state>span{display:inline-block;font-size:var(--f6);color:var(--ink3);letter-spacing:.12em;margin-bottom:var(--s2)}
.sk{height:12px;border-radius:12px;background:var(--bg2);margin-bottom:8px;animation:sh 1.2s ease-in-out infinite}
.sk:last-of-type{width:60%}
@keyframes sh{50%{opacity:.45}}
.empty{text-align:center;padding:var(--s5) 0}
.empty .ic{width:56px;height:56px;border-radius:var(--r-pill);background:var(--bg2);display:grid;place-items:center;margin:0 auto var(--s3)}
.empty b{display:block;font-size:var(--f4)}
.empty p{font-size:var(--f5);color:var(--ink3);margin:2px 0 var(--s3)}
.banner{border-radius:var(--r);padding:var(--s3);font-size:var(--f4);display:flex;gap:var(--s2);align-items:flex-start}
.banner.bad{background:var(--red-l);color:var(--red-d)}
.banner.ok{background:var(--green-l);color:var(--green)}
/* 后台 */
.btable{width:100%;border-collapse:collapse;background:var(--surface);font-size:var(--f5);border-radius:var(--r);overflow:hidden}
.btable th{background:var(--bg2);text-align:left;padding:var(--s2) var(--s3);color:var(--ink3);font-weight:500;white-space:nowrap}
.btable td{padding:var(--s2) var(--s3);border-top:1px solid var(--line);white-space:nowrap}
.scrollx{overflow-x:auto}
.foot{padding:var(--s6) var(--s4) calc(var(--s7) + 16px);text-align:center;font-size:var(--f6);color:var(--ink3);line-height:2}
.foot .org{color:var(--ink2);font-size:var(--f5)}
@media(max-width:360px){.facts{grid-template-columns:1fr}.facts .v{white-space:normal}}
/* 桌面 */
@media(min-width:768px){
:root{--f1:40px}
.wrap{max-width:720px}
.view{max-width:720px;margin:0 auto}
.top,.tabnav{max-width:720px;margin-left:auto;margin-right:auto}
.grp{grid-template-columns:repeat(4,1fr)}
.cards{grid-template-columns:1fr 1fr}
.facts{grid-template-columns:repeat(4,1fr)}
}
@media(min-width:1280px){
.wrap{max-width:1100px;padding:0 var(--s6)}
.view{max-width:1100px;margin:0 auto}
.top,.tabnav{max-width:1100px}
.cards{grid-template-columns:repeat(3,1fr)}
.hero .kv{max-height:520px;object-fit:cover}
.hero h1{font-size:31px}
.detail-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:var(--s5);align-items:start}
}

/* 报名页底部安全区 */
.form{padding-bottom:var(--s7)}

/* ---------- 动效层：入场 / 反馈 / 过渡（纯 CSS，尊重 reduced-motion） ---------- */
@keyframes fadeUp { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes brushIn { from { opacity: 0; transform: translateY(6px) scale(.98); } to { opacity: 1; transform: none; } }
@keyframes spin { to { transform: rotate(360deg); } }

.hero .txt { animation: fadeUp .6s cubic-bezier(.2,.7,.3,1) both; }
.hero .txt h1 { animation: brushIn .7s .08s cubic-bezier(.2,.7,.3,1) both; }
.hero .txt .sub { animation: fadeUp .6s .2s cubic-bezier(.2,.7,.3,1) both; }
.hero .txt .eng { animation: fadeUp .6s .3s cubic-bezier(.2,.7,.3,1) both; }
.hero .dots { animation: fadeIn .6s .4s both; }
.hero .mask { animation: fadeIn .5s both; }
.hero .seal { transition: transform .4s cubic-bezier(.2,.7,.3,1); }
.hero .seal:hover { transform: rotate(-4deg) scale(1.04); }

.notice { animation: fadeUp .5s .1s both; }

.facts > div { animation: fadeUp .5s both; }
.facts > div:nth-child(1) { animation-delay: .34s; }
.facts > div:nth-child(2) { animation-delay: .4s; }
.facts > div:nth-child(3) { animation-delay: .46s; }
.facts > div:nth-child(4) { animation-delay: .52s; }
.facts > div .v { transition: color .2s; }

.sec { animation: fadeIn .5s both; }
.sec .grp a { transition: transform .22s cubic-bezier(.2,.7,.3,1), box-shadow .22s, border-color .22s, background .22s; }
.sec .grp a:hover { transform: translateY(-3px); box-shadow: 0 6px 18px -8px rgba(43,39,36,.28); border-color: var(--red); }
.sec .grp a:active { transform: translateY(-1px) scale(.995); }
.sec .grp a .c { transition: color .2s; }
.sec .grp a:hover .c { color: var(--red); }

.cards .wcard { transition: transform .25s cubic-bezier(.2,.7,.3,1), box-shadow .25s; }
.cards .wcard .cover img { transition: transform .45s cubic-bezier(.2,.7,.3,1); }
.cards .wcard:hover { transform: translateY(-3px); box-shadow: 0 10px 26px -12px rgba(43,39,36,.3); }
.cards .wcard:hover .cover img { transform: scale(1.045); }
.cards .wcard .play { transition: transform .22s, background .22s; }
.cards .wcard:hover .play { transform: scale(1.1); }

.tabnav a, .tabnav button { transition: background .18s, color .18s, border-color .18s; }
.btn { transition: transform .14s, background .18s, border-color .18s, color .18s, box-shadow .18s; }
.btn:active { transform: scale(.975); }
.btn.pri:hover { background: var(--red-d); }
.btn.sm { transition-duration: .12s; }

.state { animation: fadeUp .45s both; }
.banner { animation: fadeUp .4s both; }
.empty { animation: fadeUp .45s both; }
.dl .row { animation: fadeIn .4s both; }

/* 提交中：按钮禁用 + 转圈 */
.btn[aria-busy="true"] { opacity: .8; pointer-events: none; }
.btn[aria-busy="true"]::before { content: ""; width: 14px; height: 14px; margin-right: 8px; border-radius: 50%; border: 2px solid currentColor; border-top-color: transparent; animation: spin .7s linear infinite; display: inline-block; vertical-align: -2px; }

/* 输入聚焦反馈 */
.field input:focus, .field select:focus, .field textarea:focus { box-shadow: 0 0 0 3px rgba(194,58,43,.12); }

@media (prefers-reduced-motion: reduce) {
  .hero .txt, .hero .txt h1, .hero .txt .sub, .hero .txt .eng, .hero .dots, .hero .mask,
  .notice, .facts > div, .sec, .state, .empty, .dl .row { animation: none !important; }
  .sec .grp a, .cards .wcard, .cards .wcard .cover img, .btn, .tabnav a, .tabnav button { transition: none !important; }
}

/* 公告条 */
.notice { display: flex; gap: var(--s2); align-items: flex-start; background: var(--red-l); border: 1px solid rgba(194,58,43,.22); border-radius: var(--r); padding: var(--s3); margin: var(--s4) 0 0; }
.notice .nbadge { flex: 0 0 auto; background: var(--red); color: var(--surface); font-size: var(--f6); padding: 2px 8px; border-radius: var(--r-pill); letter-spacing: .06em; }
.notice .nlist { display: grid; gap: 4px; font-size: var(--f5); color: var(--ink2); line-height: 1.7; }

/* ---------- 后台主导航 ---------- */
.anav { position: sticky; top: 0; z-index: 20; display: flex; gap: var(--s1); align-items: stretch; max-width: 1180px; margin: 0 auto; padding: 0 var(--s4); background: color-mix(in srgb, var(--bg) 92%, transparent); backdrop-filter: saturate(1.2) blur(8px); border-bottom: 1px solid var(--line2); overflow-x: auto; scrollbar-width: none; }
.anav::-webkit-scrollbar { display: none; }
.anav a { position: relative; display: inline-flex; align-items: center; gap: 6px; flex: 0 0 auto; padding: 14px 2px; margin-right: var(--s4); color: var(--ink3); font-size: var(--f5); text-decoration: none; white-space: nowrap; transition: color .18s; }
.anav a svg { opacity: .8; transition: transform .18s, opacity .18s; }
.anav a::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--red); transform: scaleX(0); transform-origin: left; transition: transform .25s cubic-bezier(.2,.7,.3,1); }
.anav a:hover { color: var(--ink); }
.anav a:hover svg { transform: translateY(-1px); opacity: 1; }
.anav a:hover::after { transform: scaleX(.4); }
.anav a.on { color: var(--ink); font-weight: 600; }
.anav a.on svg { opacity: 1; }
.anav a.on::after { transform: scaleX(1); }
.anav a:active { color: var(--red); }
@media (max-width: 640px) { .anav { padding: 0 var(--s4); } .anav a { margin-right: var(--s3); } }
@media (prefers-reduced-motion: reduce) { .anav a, .anav a::after, .anav a svg { transition: none; } }
/* 吸顶后层级阴影 */
body.scrolled .top { box-shadow: 0 2px 12px -6px rgba(43,39,36,.18); }
body.scrolled .tabnav { box-shadow: 0 6px 14px -12px rgba(43,39,36,.22); }
.foot .org { display: flex; gap: 6px; max-width: 350px; margin: 0 auto; text-align: left; }
.foot .org .k { flex: 0 0 4.6em; text-align: right; color: var(--ink3); }
.foot .org .v { flex: 1 1 auto; }
/* 成员录入行 */
.mems { display: grid; gap: var(--s2); }
.mems .err { margin: -4px 0 0 34px; }
.mrow { display: flex; gap: var(--s2); align-items: center; }
.mrow .idx { flex: 0 0 24px; height: 24px; border-radius: 50%; background: var(--bg2); color: var(--ink2); font-size: var(--f6); display: grid; place-items: center; }
.mrow input[name="member_name[]"] { flex: 0 0 34%; min-width: 0; }
.mrow input[name="member_id[]"] { flex: 1 1 auto; min-width: 0; }
.mrow .rm { flex: 0 0 28px; height: 28px; border: 0; border-radius: 50%; background: var(--bg2); color: var(--ink3); font-size: 15px; line-height: 1; cursor: pointer; transition: background .15s, color .15s; }
.mrow .rm:hover { background: var(--red-l); color: var(--red); }

/* 统一封面占位样式（全站唯一封面渲染：cover_html） */
.cov-ph{position:absolute;inset:0;display:grid;place-items:center;overflow:hidden;
background:radial-gradient(130% 120% at 16% 10%, rgba(201,160,96,.28), transparent 56%),
linear-gradient(152deg,#F5EEDF,#EBDFC9 60%,#E3D5BC)}
.cov-ph::before{content:"";position:absolute;inset:0;
background-image:repeating-linear-gradient(135deg,rgba(43,39,36,.05) 0 1px,transparent 1px 8px)}
.cov-ph .glyph{position:relative;z-index:1;width:clamp(40px,22%,62px);aspect-ratio:1;display:grid;place-items:center;
border-radius:10px;background:rgba(194,58,43,.07);color:var(--red);
border:1.5px solid rgba(194,58,43,.42);
font:700 clamp(20px,8.4vw,28px)/1 "STKaiti",KaiTi,"Kaiti SC",serif;
box-shadow:inset 0 0 0 3px rgba(255,252,246,.62)}
.cov-ph .grp{position:absolute;z-index:1;left:50%;bottom:9px;transform:translateX(-50%);white-space:nowrap;
padding:2px 9px;border-radius:var(--r-pill);background:rgba(255,252,246,.72);
font-size:var(--f6);color:#7C6A50;letter-spacing:.1em}
.cov-v{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;background:var(--bg2)}
.cov-mini{position:relative;display:inline-block;width:52px;height:32px;border-radius:4px;overflow:hidden;
background:var(--bg2);flex:0 0 auto;vertical-align:middle}
.cov-mini .cov-ph{border-radius:0}
.cov-mini .glyph{width:18px;border-radius:3px;font-size:10px;border-width:1px;box-shadow:none}
.cov-mini.big{width:132px;height:74px;border-radius:var(--r);border:1px solid var(--line)}
.cov-mini.big .glyph{width:30px;border-radius:7px;font-size:18px}

/* 后台自适应布局 */
.awrap{width:100%;max-width:1180px;margin:0 auto;padding:0 var(--s4)}
@media(max-width:900px){.awrap{padding:0 var(--s3)}}
@media(max-width:700px){
  .btable{font-size:var(--f6)}
  .btable th,.btable td{white-space:nowrap;padding:var(--s2)}
  .btable th.hide-sm,.btable td.hide-sm{display:none}
  .scrollx .btable{min-width:700px}
  .scrollx{ -webkit-overflow-scrolling:touch; border:1px solid var(--line); border-radius:var(--r); background:var(--surface) }
  .scrollx .btable{border:0}
  .anav a{padding:12px var(--s1);margin-right:var(--s3)}
  .count{font-size:var(--f6)}
}

/* 后台登录/改密表单卡：宽屏居中收窄，手机铺满带边距 */
.loginbox{width:calc(100% - 2 * var(--s4));max-width:420px;margin:var(--s5) auto;padding:var(--s5) var(--s4) var(--s6);
background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh1)}
@media(min-width:768px){.loginbox{margin-top:var(--s7);padding:var(--s6) var(--s5)}}
