*{box-sizing:border-box}body{margin:0;background:#f7f7f8;color:#202124;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}a:focus-visible{outline:3px solid #9c2340;outline-offset:5px}::selection{background:#f0dce1}.page{max-width:1184px;min-height:100svh;margin:auto;padding:0 48px;display:flex;flex-direction:column}.site-header{min-height:108px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid #e5e5e8}.identity{display:flex;align-items:center;gap:14px;font-size:17px;font-weight:600;letter-spacing:.03em;line-height:1.5}.identity img{object-fit:cover;border-radius:50%;flex-shrink:0}.header-label{font-size:13px;color:#77797e;white-space:nowrap}main{flex:1;padding:70px 0 80px}.eyebrow{display:flex;align-items:center;gap:9px;font-size:13px;color:#8d243c;font-weight:500}.eyebrow>span{width:6px;height:6px;border-radius:50%;background:#8d243c}.intro h1{font-size:clamp(36px,4.4vw,54px);line-height:1.24;letter-spacing:-.045em;font-weight:600;margin:23px 0 20px;text-wrap:balance}.intro>p{font-size:15px;line-height:1.8;color:#74767d;margin:0}.event-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:48px}.event-card{background:#fff;border-radius:20px;padding:28px;box-shadow:0 0 0 1px #20212408,0 4px 16px #20212403;display:flex;flex-direction:column;min-width:0}.event-card.available{box-shadow:0 0 0 1px #8d243c24,0 6px 24px #8d243c07}.card-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.event-icon{display:flex;width:48px;height:48px;border-radius:14px;align-items:center;justify-content:center;background:#f4f4f6;color:#6c6f77}.available .event-icon{color:#8d243c;background:#f8eef1}.event-icon svg{width:30px;height:30px}.badge{font-size:11px;line-height:1.5;letter-spacing:.04em;color:#81838b;background:#f4f4f6;border-radius:20px;padding:5px 10px;white-space:nowrap}.badge.open{color:#8d243c;background:#f8eef1}.event-card h2{font-size:25px;line-height:1.3;font-weight:600;letter-spacing:-.02em;margin:27px 0 12px}.event-card p{color:#74767d;font-size:13px;line-height:1.8;margin:0 0 30px}.entry{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:46px;border-radius:10px;background:#f4f4f6;padding:12px 16px;font-size:13px;font-weight:500;margin-top:auto;transition:background-color 160ms ease,transform 160ms cubic-bezier(.23,1,.32,1)}.entry.primary{background:#8d243c;color:#fff}.entry>span{font-size:18px;line-height:1}.entry:active{transform:scale(.98)}footer{display:flex;justify-content:space-between;gap:20px;padding:24px 0 30px;border-top:1px solid #e5e5e8;font-size:11px;line-height:1.8;color:#999ba2}.skip{position:absolute;left:16px;top:-70px;background:white;padding:12px;z-index:2}.skip:focus{top:12px}.coming{padding-top:36px}.back{font-size:13px;color:#74767d;display:inline-flex;min-height:44px;align-items:center}.coming-card{max-width:540px;margin:64px auto;text-align:center;padding:52px 32px;background:white;border-radius:24px;box-shadow:0 0 0 1px #20212408}.coming-card h1{font-size:40px;font-weight:600;letter-spacing:-.03em;margin:24px 0 16px}.coming-card p{color:#74767d;font-size:14px;line-height:1.8;margin:0 0 36px}.coming-card .entry{max-width:230px;margin:auto;text-align:left}@media(hover:hover) and (pointer:fine){.entry:hover{background:#eaeaee}.entry.primary:hover{background:#761d32}.back:hover{text-decoration:underline}}@media(max-width:760px){.page{padding:0 24px}.site-header{min-height:90px;gap:12px}.identity{font-size:15px;gap:10px}.identity img{width:38px;height:38px}.header-label{font-size:11px}.event-grid{gap:14px}.event-card{padding:22px 18px}.badge{padding:4px 8px;font-size:10px}.event-icon{width:40px;height:40px}.event-icon svg{width:26px;height:26px}}@media(max-width:600px){.page{padding:0 22px}.site-header{min-height:82px}.header-label{display:none}.identity{font-size:15px;letter-spacing:0}main{padding:44px 0 48px}.intro h1{font-size:38px;margin-top:20px}.intro>p{font-size:13px}.event-grid{grid-template-columns:1fr;margin-top:32px;gap:16px}.event-card{padding:24px}.event-card h2{margin-top:22px;margin-bottom:10px}.event-card p{margin-bottom:24px}.entry{font-size:14px;min-height:48px}footer{flex-direction:column;gap:5px;padding:22px 0}.coming-card{margin:36px auto;padding:40px 24px}}@media(prefers-reduced-motion:reduce){.entry{transition:none}.entry:active{transform:none}}
/* 第23.1版：简化首页与管理员入口。 */
.intro h1{font-size:32px;margin:0;letter-spacing:-.025em}.event-grid{margin-top:30px}.event-card h2{margin-bottom:30px}.portal-account{display:flex;align-items:flex-end;flex-direction:column;gap:6px;max-width:280px}.portal-account button,.portal-dialog button{font:inherit;font-size:13px;min-height:44px;border-radius:10px;border:1px solid #e5e5e8;padding:10px 16px;background:#fff;color:#8d243c;cursor:pointer;touch-action:manipulation;transition:transform 140ms cubic-bezier(.23,1,.32,1),background-color 140ms ease}.portal-account button:active,.portal-dialog button:active{transform:scale(.98)}.portal-account button:disabled,.portal-dialog button:disabled{opacity:.6;cursor:wait}#portalAuthStatus{font-size:12px;color:#77797e;line-height:1.5}#portalAuthStatus:empty{display:none}.portal-dialog{width:min(420px,calc(100% - 32px));max-height:calc(100svh - 48px);overflow:auto;border:0;border-radius:20px;padding:30px;box-shadow:0 20px 70px #0002;color:#202124;background:#fff}.portal-dialog::backdrop{background:#15151c66}.portal-dialog h2{font-size:22px;line-height:1.4;margin:0 0 26px;font-weight:600}.portal-dialog label{display:block;font-size:13px;margin-bottom:10px}.portal-dialog input{display:block;width:100%;height:46px;border:1px solid #d9d9de;border-radius:10px;padding:10px 12px;font:inherit;font-size:16px}.portal-dialog input:focus{outline:2px solid #8d243c;outline-offset:2px}.portal-dialog .login-error{color:#a92337;line-height:1.6;font-size:13px;min-height:21px;margin:12px 0 22px;overflow-wrap:anywhere}.portal-dialog .login-actions{display:flex;justify-content:flex-end;gap:10px}.portal-dialog button[type=submit]{background:#8d243c;color:#fff;border-color:#8d243c}button:focus-visible{outline:3px solid #9c2340;outline-offset:3px}@media(max-width:600px){.site-header{flex-wrap:wrap;padding:20px 0;gap:16px}.portal-account{align-items:flex-start;max-width:100%}.intro h1{font-size:28px}.portal-dialog{padding:26px}.event-card h2{margin-bottom:24px}}@media(prefers-reduced-motion:reduce){.portal-account button,.portal-dialog button{transition:none}.portal-account button:active,.portal-dialog button:active{transform:none}}

.portal-account-actions{display:flex;gap:8px;align-items:center}
#portalSettings{display:inline-flex;align-items:center;min-height:44px;padding:10px 16px;border:1px solid #e5e5e8;border-radius:10px;background:#fff;color:#8d243c;font-size:13px}
#portalSettings[hidden]{display:none}
