@import url('https://fonts.googleapis.com/css2?family=Raleway:wght@300;500;600&display=swap');

* {
 margin: 0;
 padding: 0;
 box-sizing: border-box;
 font-family: 'Arial', sans-serif;
}

body {
 background-color: #050d18;
 color: #ffffff;
}

/* 首页：上深下浅纵向渐变底板 */
html.page-scroll-locked,
body.page-scroll-locked {
 overflow: hidden !important;
 overscroll-behavior: none;
 touch-action: none;
}

body.home-page-body {
 margin: 0;
 min-height: 100vh;
 background-color: var(--home-page-bg);
 background-image: none;
 color: #e8f4ff;
}

body.home-page-body::before {
 content: none;
 display: none;
}

body.home-page-body .site-header,
body.home-page-body .navbar-top,
body.home-page-body .navbar,
body.home-page-body .nav-mega-panel {
 background: var(--navbar-bg);
}

body.home-page-body .nav-mega-panel {
 background: var(--navbar-bg);
}

/* 顶栏 + 主导航随页面滚动（非 fixed）；--navbar-height 供抽屉等布局参考 */
:root {
 --navbar-top-height: 37px;
 --navbar-main-height: 4rem;
 --navbar-height: calc(var(--navbar-top-height) + var(--navbar-main-height));
 --navbar-pad-x: 2rem;
 /* 与 .navbar-start 左边距一致，顶栏英文与下方 LOGO 左缘对齐 */
 --navbar-logo-offset: calc(2.75rem + 50px);
 --home-content-max: 1400px;
 --home-content-pad-x: 40px; /* 首页内容区域左右内边距 */
 --hero-overlay-inset-x: var(--home-content-pad-x); /* Hero 左下文案与右上搜索左右留白对称 */
 /* 首页大板块之间（视频↔服务器状态、服务器状态↔节日、节日↔OOPZ 等）统一竖向留白 */
 --home-section-block-gap: clamp(52px, 6vw, 68px);
 --home-section-block-gap-split: calc(var(--home-section-block-gap) / 2); /* 工具子页等仍用上下分缝 */
 --home-section-title-size: clamp(17px, 1.85vw, 20px);
 --home-section-title-weight: 500;
 --home-section-title-tracking: 0.06em;
 --home-section-head-gap: clamp(12px, 1.8vw, 16px);
 --home-section-lead-size: 0.8125rem;
 --navbar-bg: rgb(8, 22, 37);
 /* 首页双色：深 = 菜单栏底；浅 = 视频下方内容区 */
 --home-page-bg-light: #0b1c2e;
 --home-page-bg-top: var(--home-page-bg-light);
 --home-page-bg-bottom: var(--home-page-bg-light);
 --home-page-bg: var(--home-page-bg-light);
 --home-page-gradient: none;
 /* 卡片/面板统一铺深色底 */
 --home-surface-tint: var(--navbar-bg);
 --home-surface-border: rgba(95, 184, 255, 0.18);
 /* 首页 OOPZ / 聊天 / 贴子 等大模块外框（略深于 --home-surface-border） */
 --home-module-border: rgba(84, 173, 247, 0.3);
 --home-module-radius: 17px;
 /* 视频进度条：原宽 360px/64vw 的 60%，右缘与下方内容区对齐 */
 --hero-progress-track-max: min(112px, 18vw);
 --hero-progress-btn-size: 34px;
}

.site-header {
 position: relative;
 z-index: 1100;
 width: 100%;
 background: var(--navbar-bg);
}

.navbar-top {
 position: static;
 display: flex;
 align-items: center;
 width: 100%;
 height: var(--navbar-top-height);
 padding: 0 var(--navbar-pad-x);
 padding-left: calc(var(--navbar-pad-x) + var(--navbar-logo-offset));
 box-sizing: border-box;
 background: transparent;
 border-bottom: none;
}

.navbar-top-brand {
 font-family: 'Raleway', 'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
 font-size: 0.88rem;
 font-weight: 300;
 letter-spacing: 0.05em;
 word-spacing: 0.55em;
 text-transform: uppercase;
 color: rgba(200, 220, 235, 0.72);
 line-height: 1;
 white-space: nowrap;
}

.navbar {
 position: static;
 display: flex;
 justify-content: space-between;
 align-items: center;
 width: 100%;
 padding: 0.44rem var(--navbar-pad-x);
 min-height: var(--navbar-main-height);
 box-sizing: border-box;
 background: transparent;
 backdrop-filter: none;
 -webkit-backdrop-filter: none;
 border-top: 1px solid rgba(95, 184, 255, 0.2);
 border-bottom: 1px solid rgba(95, 184, 255, 0.2);
}

.logo {
 height: 40px;
 flex-shrink: 0;
 display: flex;
 align-items: center;
}

.logo img {
 height: 40px;
 max-height: 40px;
 width: auto;
 object-fit: contain;
 display: block;
}

.navbar-start {
 display: flex;
 align-items: center;
 gap: 2.25rem;
 flex-shrink: 0;
 min-width: 0;
 margin-left: var(--navbar-logo-offset);
}

.nav-links {
 display: flex;
 align-items: center;
 gap: 1.15rem;
 flex-shrink: 0;
}

.logo a {
 display: flex;
 align-items: center;
 line-height: 0;
}

.nav-dropdown {
 position: relative;
}

/* —— 顶栏 Mega 子菜单（全宽面板，参考 RSI COMMUNITY 下拉）—— */
.site-header.is-mega-open .navbar {
 border-bottom-color: transparent;
}

.nav-mega-panel {
 position: absolute;
 left: 0;
 right: 0;
 top: 100%;
 z-index: 1090;
 box-sizing: border-box;
 background: var(--navbar-bg);
 border-top: 1px solid rgba(95, 184, 255, 0.22);
 border-bottom: 1px solid rgba(95, 184, 255, 0.14);
 box-shadow: 0 18px 40px rgba(0, 0, 0, 0.45);
}

.nav-mega-panel[hidden] {
 display: none !important;
}

.nav-mega-inner {
 margin: 0;
 max-width: none;
 width: 100%;
 box-sizing: border-box;
 padding: 1.75rem var(--navbar-pad-x) 2rem;
 padding-left: var(--nav-mega-content-left, calc(var(--navbar-pad-x) + var(--navbar-logo-offset) + 40px + 2.25rem));
 display: grid;
 grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
 gap: 2rem 3rem;
}

.nav-mega-heading {
 margin: 0 0 1rem;
 font-size: 0.72rem;
 font-weight: 600;
 letter-spacing: 0.14em;
 text-transform: uppercase;
 color: rgba(148, 186, 212, 0.78);
}

.nav-mega-list {
 list-style: none;
 margin: 0;
 padding: 0;
 display: flex;
 flex-direction: column;
 gap: 1.15rem;
}

.nav-mega-link {
 display: block;
 text-decoration: none;
 color: inherit;
 transition: opacity 0.15s ease;
}

.nav-mega-link:hover {
 opacity: 0.88;
}

.nav-mega-link-title {
 display: block;
 font-size: 1.05rem;
 font-weight: 700;
 color: #f0f8fc;
 line-height: 1.3;
 margin-bottom: 0.35rem;
}

.nav-mega-link-desc {
 display: block;
 font-size: 0.88rem;
 font-weight: 400;
 line-height: 1.45;
 color: rgba(168, 198, 218, 0.72);
 max-width: 28rem;
}

.nav-mega-link.is-current .nav-mega-link-title {
 color: #8ee0ff;
}

/* 舰船 mega：首行 3 列（组件 / 武器 / 燃料喷嘴），次行 2 列 */
#navMegaShip .nav-mega-list {
 display: grid;
 grid-template-columns: repeat(3, minmax(200px, max-content));
 column-gap: 5rem;
 row-gap: 1.15rem;
 align-items: start;
}

/* 装备 mega：每行横排 2 项，满行换行 */
#navMegaEquipment .nav-mega-list {
 display: grid;
 grid-template-columns: repeat(2, minmax(220px, max-content));
 column-gap: 5rem;
 row-gap: 1.15rem;
 align-items: start;
}

#navMegaShip .nav-mega-link-row,
#navMegaEquipment .nav-mega-link-row {
 display: contents;
}

#navMegaShip .nav-mega-list > li,
#navMegaEquipment .nav-mega-list > li {
 margin: 0;
}

#navMegaShip .nav-mega-link,
#navMegaEquipment .nav-mega-link {
 flex: 0 0 auto;
 max-width: 28rem;
}

#navMegaShip .nav-mega-link-desc,
#navMegaEquipment .nav-mega-link-desc {
 white-space: nowrap;
 max-width: none;
}

/* 工具 mega：上行横排 2 项，下行 1 项 */
#navMegaTools .nav-mega-inner {
 grid-template-columns: minmax(0, max-content);
}

.nav-mega-tools-row {
 display: flex;
 flex-direction: row;
 flex-wrap: wrap;
 align-items: flex-start;
 gap: 1.15rem 5rem;
 margin: 0;
}

.nav-mega-tools-row > .nav-mega-link {
 flex: 0 0 auto;
 width: auto;
 max-width: 20rem;
}

 @media (max-width: 640px) {
 #navMegaShip .nav-mega-list,
 #navMegaEquipment .nav-mega-list {
  grid-template-columns: 1fr;
 }
 .nav-mega-tools-row {
  flex-direction: column;
  gap: 1.15rem;
 }
}

/* 顶栏「积分系统」：与侧栏个人信息/职务同色（#8ee0ff 系列） */
.nav-dropdown-toggle {
 display: inline-flex;
 align-items: center;
 gap: 0.55rem;
 margin: 0;
 padding: 0.35rem 0.45rem 0.35rem 0;
 background: none;
 border: none;
 cursor: pointer;
 font-family: inherit;
 font-size: 1.05rem;
 font-weight: 700;
 letter-spacing: 0.02em;
 color: #8ee0ff;
 text-shadow: none;
 transition: color 0.2s ease;
}

.nav-dropdown-toggle:hover {
    color: #9ee8ff;
}

.nav-dropdown-toggle.is-current-page {
    color: #9ee8ff;
    text-shadow: 0 0 12px rgba(142, 224, 255, 0.35);
}

.nav-direct-link {
    display: inline-flex;
    align-items: center;
    padding: 0.35rem 0.45rem 0.35rem 0;
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    color: #8ee0ff;
    text-decoration: none;
    transition: color 0.2s ease;
}

.nav-direct-link:hover,
.nav-direct-link.is-active {
    color: #9ee8ff;
}

.nav-direct-link.is-active {
    text-shadow: 0 0 12px rgba(142, 224, 255, 0.35);
}

.nav-dropdown.is-open .nav-dropdown-toggle {
 color: #9ee8ff;
 background: none;
}

.nav-dropdown-caret {
 display: inline-block;
 width: 0;
 height: 0;
 border-left: 0.32rem solid transparent;
 border-right: 0.32rem solid transparent;
 border-top: 0.38rem solid rgba(142, 224, 255, 0.92);
 transition: transform 0.18s ease, border-top-color 0.2s ease;
}

.nav-dropdown-toggle:hover .nav-dropdown-caret,
.nav-dropdown.is-open .nav-dropdown-caret {
 border-top-color: #9ee8ff;
}

.nav-dropdown.is-open .nav-dropdown-caret {
 transform: rotate(180deg);
}

/* 旧版小下拉（已由 .nav-mega-panel 替代） */
.nav-dropdown-menu {
 display: none !important;
}

.nav-item {
 color: #ffffff;
 text-decoration: none;
 font-size: 0.9rem;
 font-weight: 500;
 transition: color 0.3s ease;
}

.nav-item:hover {
 color: #ffffff;
}

body.points-subpage-body {
 margin: 0;
 min-height: 100vh;
 background: rgb(15, 44, 62);
 color: #e8f4fa;
}

.points-subpage-main {
 max-width: 42rem;
 margin: 0 auto;
 padding: 2rem 1.5rem 3rem;
 box-sizing: border-box;
}

.points-subpage-title {
 margin: 0 0 0.75rem;
 font-size: 1.65rem;
 font-weight: 700;
 color: #fff;
 text-align: center;
}

.points-subpage-lead {
 margin: 0;
 line-height: 1.65;
 color: rgba(180, 210, 230, 0.78);
 font-size: 0.95rem;
 text-align: center;
}

.checkin-page-body .points-subpage-main {
 max-width: 42rem;
}

.nav-right {
 display: flex;
 align-items: center;
 gap: 0.65rem;
 margin-left: auto;
}

/* 顶栏登录/注册：纯文字，非按钮样式 */
.nav-login-trigger {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 margin: 0;
 padding: 0.25rem 0;
 background: none;
 border: none;
 cursor: pointer;
 font-family: inherit;
 font-size: 0.9rem;
 font-weight: 500;
 color: rgba(255, 255, 255, 0.92);
 letter-spacing: 0.02em;
 white-space: nowrap;
 transition: color 0.2s ease, opacity 0.2s ease;
 min-width: 0;
 width: auto;
 height: auto;
 box-sizing: border-box;
}

.nav-login-trigger:hover {
 color: #9fd6ff;
 text-decoration: underline;
 text-underline-offset: 0.2em;
}

.nav-login-trigger.is-logged-in {
 padding: 0.12rem;
}

.nav-login-trigger.is-logged-in:hover {
 text-decoration: none;
 opacity: 0.92;
}

.nav-login-guest-inner {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 gap: 0.2rem;
}

.nav-login-label {
 font-size: 0.9rem;
 letter-spacing: 0.02em;
}

.nav-login-guest-inner.is-hidden,
.nav-login-avatar-inner.is-hidden {
 display: none !important;
}

/* index.html 若检测到本地已有 token，首屏即按已登录展示顶栏，避免先闪「登录/注册」 */
html.auth-session-cached #navLoginGuestWrap {
 display: none !important;
}

html.auth-session-cached #navLoginAvatarWrap {
 display: flex !important;
}

html.auth-session-cached #navLoginBtn {
 padding: 0.12rem;
}

/* 已登录：hero 就绪前隐藏会员区；未登录整段隐藏 */
html:not(.auth-session-cached) .auth-member-gated,
html.auth-session-cached:not(.hero-video-live) .auth-member-gated {
 display: none !important;
}

.nav-login-avatar-inner {
 display: flex;
 align-items: center;
 justify-content: center;
 width: 100%;
 height: 100%;
}

.nav-user-avatar {
 width: 2.45rem;
 height: 2.45rem;
 max-width: 2.45rem;
 max-height: 2.45rem;
 border-radius: 50%;
 object-fit: cover;
 border: 1px solid rgba(255, 255, 255, 0.22);
 display: block;
 flex-shrink: 0;
}

.drawer-profile-row {
 /* 资料区字号/间距在 .login-drawer-authed 内由 --dps 统一放大（默认 1） */
 --drawer-name-main: calc(1.05rem * var(--dps, 1));
 --drawer-name-main-lh: 1.22;
 --drawer-name-sub: calc(0.78rem * var(--dps, 1));
 --drawer-name-sub-lh: 1.25;
 --drawer-name-stack-gap: calc(0.08rem * var(--dps, 1));
 --drawer-avatar-1l: calc(
 var(--drawer-name-main) * var(--drawer-name-main-lh) + calc(0.04rem * var(--dps, 1))
 );
 --drawer-avatar-2l: calc(
 var(--drawer-name-main) * var(--drawer-name-main-lh) + var(--drawer-name-stack-gap) +
 var(--drawer-name-sub) * var(--drawer-name-sub-lh)
 );
 --drawer-avatar-size: var(--drawer-avatar-1l);
 --drawer-avatar-display: calc(var(--drawer-avatar-size) * 1.15);
 display: grid;
 grid-template-columns: var(--drawer-avatar-display) minmax(0, 1fr);
 grid-template-rows: auto auto;
 column-gap: calc(0.72rem * var(--dps, 1));
 row-gap: calc(0.55rem * var(--dps, 1));
 align-items: start;
 margin-bottom: calc(1rem * var(--dps, 1));
 padding-bottom: calc(1rem * var(--dps, 1));
 border-bottom: 1px solid rgba(100, 181, 246, 0.28);
}

.drawer-profile-row:has(.drawer-profile-name-stack .drawer-rsi-handle-line:not([hidden])) {
 --drawer-avatar-size: var(--drawer-avatar-2l);
}

.drawer-user-avatar {
 grid-column: 1;
 grid-row: 1;
 align-self: start;
 width: var(--drawer-avatar-display);
 height: var(--drawer-avatar-display);
 max-width: 100%;
 box-sizing: border-box;
 border-radius: calc(var(--drawer-avatar-display) * 0.14);
 object-fit: cover;
 border: 2px solid rgba(100, 181, 246, 0.5);
 flex-shrink: 0;
}

.drawer-profile-name-stack {
 grid-column: 2;
 grid-row: 1;
 min-width: 0;
 width: 100%;
 display: flex;
 flex-direction: column;
 align-items: flex-start;
 justify-content: center;
 align-self: center;
 gap: var(--drawer-name-stack-gap);
}

.drawer-profile-body {
 grid-column: 1 / -1;
 grid-row: 2;
 width: 100%;
 min-width: 0;
 display: flex;
 flex-direction: column;
 align-items: stretch;
 gap: calc(0.32rem * var(--dps, 1));
}

.drawer-rsi-handle-line {
 margin: calc(0.08rem * var(--dps, 1)) 0 0;
 font-size: calc(0.78rem * var(--dps, 1));
 line-height: 1.25;
 color: rgba(200, 220, 235, 0.72);
 letter-spacing: 0.03em;
}

.drawer-rsi-handle-line span {
 font-weight: 500;
}

.drawer-rsi-rank-row {
 display: flex;
 align-items: center;
 gap: calc(0.45rem * var(--dps, 1));
 margin: 0;
 min-height: calc(1.5rem * var(--dps, 1));
}

.drawer-rsi-rank-icon {
 width: calc(26px * var(--dps, 1));
 height: calc(26px * var(--dps, 1));
 object-fit: contain;
 flex-shrink: 0;
 display: block;
}

.drawer-rsi-rank-icon[hidden] {
 display: none !important;
}

.drawer-rsi-rank-label {
 font-size: calc(0.86rem * var(--dps, 1));
 color: rgba(230, 240, 248, 0.9);
 font-weight: 500;
 letter-spacing: 0.02em;
}

.drawer-rsi-meta {
 margin-top: 0;
 padding-top: calc(0.5rem * var(--dps, 1));
 border-top: 1px solid rgba(95, 184, 255, 0.16);
}

.drawer-rsi-meta-row {
 display: flex;
 flex-direction: column;
 gap: calc(0.12rem * var(--dps, 1));
 margin-bottom: calc(0.45rem * var(--dps, 1));
}

.drawer-rsi-meta-row:last-child {
 margin-bottom: 0;
}

.drawer-rsi-meta-label {
 font-size: calc(0.66rem * var(--dps, 1));
 font-weight: 600;
 letter-spacing: 0.08em;
 text-transform: uppercase;
 color: rgba(130, 168, 192, 0.72);
}

.drawer-rsi-meta-value {
 font-size: calc(0.88rem * var(--dps, 1));
 font-weight: 500;
 color: #8ee0ff;
 text-shadow: 0 0 14px rgba(95, 184, 255, 0.28);
 line-height: 1.35;
}

.drawer-profile-name-stack > p.entry {
 display: flex;
 flex-direction: column;
 align-items: flex-start;
 gap: calc(0.12rem * var(--dps, 1));
 margin: 0;
 font-size: var(--drawer-name-main);
 line-height: var(--drawer-name-main-lh);
 color: rgba(230, 240, 248, 0.95);
}

.drawer-profile-name-stack > p.entry > .value {
 font-size: inherit;
 font-weight: 700;
 letter-spacing: 0.02em;
}

.drawer-profile-name-stack .drawer-rsi-handle-line {
 margin: 0;
 font-size: var(--drawer-name-sub);
 line-height: var(--drawer-name-sub-lh);
}

/* 舰队块（与上方个人信息分隔；LOGO 边长与头像 --drawer-avatar-display 一致） */
.drawer-org-fleet {
 display: flex;
 flex-direction: column;
 align-items: flex-start;
 gap: calc(0.35rem * var(--dps, 1));
 width: 100%;
 margin-top: calc(0.12rem * var(--dps, 1));
 padding-top: calc(0.5rem * var(--dps, 1));
 border-top: 1px solid rgba(95, 184, 255, 0.16);
}

.drawer-org-logo {
 width: var(--drawer-avatar-display);
 height: var(--drawer-avatar-display);
 max-width: 100%;
 box-sizing: border-box;
 object-fit: contain;
 border: 2px solid rgba(100, 181, 246, 0.5);
 border-radius: calc(var(--drawer-avatar-display) * 0.14);
 background: rgba(0, 0, 0, 0.35);
}

.drawer-org-name.value.data6 {
 font-size: calc(1rem * var(--dps, 1));
 font-weight: 600;
 color: #6bdcff;
 text-decoration: none;
 text-shadow: 0 0 12px rgba(95, 184, 255, 0.45);
 line-height: 1.25;
}

.drawer-org-name.value.data6:hover {
 color: #9ee8ff;
}

.drawer-org-sid-row,
.drawer-org-role-row {
 margin: 0;
 display: flex;
 flex-direction: column;
 align-items: flex-start;
 gap: calc(0.1rem * var(--dps, 1));
}

.drawer-org-sid-label,
.drawer-org-role-label {
 font-size: calc(0.58rem * var(--dps, 1));
 letter-spacing: 0.04em;
 color: rgba(130, 168, 192, 0.82);
}

.drawer-org-sid-num.value.data11,
.drawer-org-role-value.value.data11 {
 font-size: calc(0.95rem * var(--dps, 1));
 font-weight: 600;
 color: #8ee0ff;
}

.drawer-org-ranking.ranking.data1 {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 gap: calc(0.42rem * var(--dps, 1));
 margin-top: calc(0.06rem * var(--dps, 1));
}

.drawer-org-ranking.ranking.data1 > span.drawer-org-rank-slot {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 line-height: 0;
}

.drawer-org-ranking .drawer-org-rank-svg {
 width: calc(0.88rem * var(--dps, 1));
 height: calc(0.88rem * var(--dps, 1));
 display: block;
 flex-shrink: 0;
 filter: drop-shadow(0 0 calc(6px * var(--dps, 1)) rgba(95, 184, 255, 0.6));
}

.drawer-org-ranking .drawer-org-rank-svg path {
 fill: #8ee0ff;
}

@media (max-width: 480px) {
 .nav-login-trigger {
 font-size: 0.82rem;
 }

 .nav-login-label {
 font-size: 0.82rem;
 }
}

/* —— 登录抽屉：RSI 风格（深色面板、描边输入、斜切主按钮）—— */
.login-drawer.sidebar-modal {
 top: var(--navbar-height);
 height: calc(100vh - var(--navbar-height));
 height: calc(100dvh - var(--navbar-height));
 background: var(--navbar-bg);
 border-top-left-radius: 0;
 box-shadow: -8px 0 40px rgba(0, 0, 0, 0.55);
 display: flex;
 flex-direction: column;
 box-sizing: border-box;
 z-index: 1000;
}

.login-drawer .modal-content.login-drawer-content {
 flex: 1;
 display: flex;
 flex-direction: column;
 justify-content: center;
 margin-top: 0;
 padding: 3rem 0 2.5rem;
 min-height: 0;
 overflow-y: auto;
 color: #e8eef3;
 transform: translateY(-100px);
}

.login-drawer-kicker {
 font-size: 0.65rem;
 letter-spacing: 0.32em;
 text-transform: uppercase;
 color: rgba(148, 186, 212, 0.72);
 margin-bottom: 0.15rem;
}

.login-drawer .login-drawer-title.modal-title {
 font-size: 1.35rem;
 font-weight: 700;
 letter-spacing: 0.03em;
 margin-bottom: 1.1rem;
 color: #fff;
}

.login-drawer .login-drawer-close.modal-close {
 display: none;
}

.rsi-auth-card {
 --rsi-accent: #5fb8ff;
 --rsi-accent-dim: rgba(95, 184, 255, 0.45);
 --rsi-surface: #12202b;
 background: var(--rsi-surface);
 border-radius: 10px;
 border: 1px solid rgba(95, 184, 255, 0.18);
 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04), 0 12px 40px rgba(0, 0, 0, 0.35);
 padding: 1.35rem 1.25rem 1.5rem;
}

.rsi-auth-card--profile {
 padding-top: 1.25rem;
}

.login-drawer .rsi-auth-card {
 background: transparent;
 border: none;
 box-shadow: none;
}

.rsi-auth-head {
 margin-bottom: 1.35rem;
}

.rsi-auth-title {
 font-size: 1.05rem;
 font-weight: 600;
 color: #fff;
 letter-spacing: 0.02em;
 margin-bottom: 0.45rem;
 line-height: 1.35;
}

.rsi-auth-sub {
 font-size: 0.88rem;
 color: rgba(200, 220, 235, 0.72);
 line-height: 1.45;
}

.rsi-auth-link {
 background: none;
 border: none;
 padding: 0;
 margin: 0;
 font: inherit;
 font-size: inherit;
 color: #5fb8ff;
 cursor: pointer;
 text-decoration: underline;
 text-underline-offset: 3px;
}

.rsi-auth-link:hover {
 color: #8ad0ff;
}

.rsi-auth-link--small {
 font-size: 0.82rem;
}

.rsi-auth-panels {
 display: block;
}

.rsi-field {
 position: relative;
 margin-bottom: 1.15rem;
}

.rsi-field:not(.rsi-field--float) label {
 position: absolute;
 left: 11px;
 top: -0.42rem;
 z-index: 1;
 padding: 0 5px;
 font-size: 0.72rem;
 font-weight: 500;
 letter-spacing: 0.04em;
 color: rgba(160, 200, 225, 0.9);
 pointer-events: none;
}

.rsi-field--float > label,
.rsi-field--float > .rsi-float-label {
 position: absolute;
 left: 12px;
 top: 50%;
 z-index: 2;
 margin: 0;
 padding: 0;
 font-size: 0.95rem;
 font-weight: 400;
 letter-spacing: 0.02em;
 color: rgba(160, 200, 225, 0.48);
 pointer-events: none;
 transform: translateY(-50%);
 transform-origin: left center;
 transition:
 opacity 0.18s ease,
 visibility 0.18s ease,
 transform 0.18s ease,
 top 0.18s ease,
 font-size 0.18s ease,
 color 0.18s ease;
}

.rsi-field--float .rsi-input {
 padding-top: 16px;
 padding-bottom: 12px;
}

.rsi-field--float:focus-within:not(.is-filled) > label,
.rsi-field--float:focus-within:not(.is-filled) > .rsi-float-label,
.rsi-field--float.is-focused:not(.is-filled) > .rsi-float-label {
 top: 8px;
 transform: translateY(0) scale(0.78);
 transform-origin: left top;
 font-size: 0.72rem;
 font-weight: 500;
 color: rgba(160, 200, 225, 0.88);
}

.rsi-field--float.is-filled > label,
.rsi-field--float.is-filled > .rsi-float-label,
.rsi-field--float .rsi-input:not(:placeholder-shown) + label,
.rsi-field--float .rsi-input:-webkit-autofill + label {
 opacity: 0;
 visibility: hidden;
}

.rsi-field--float.is-filled .rsi-input,
.rsi-field--float.rsi-field--session.is-filled .rsi-custom-select-trigger {
 padding-top: 14px;
 padding-bottom: 11px;
}

.rsi-input {
 width: 100%;
 display: block;
 padding: 14px 12px 11px;
 font-size: 0.95rem;
 color: #f2f6f9;
 background: rgba(8, 18, 28, 0.88);
 border: 1px solid var(--rsi-accent-dim);
 border-radius: 6px;
 outline: none;
 transition: border-color 0.2s ease, box-shadow 0.2s ease;
 box-sizing: border-box;
}

.rsi-input::placeholder {
 color: rgba(255, 255, 255, 0.28);
}

.rsi-input:hover {
 border-color: rgba(95, 184, 255, 0.65);
}

.rsi-input:focus {
 border-color: var(--rsi-accent);
 box-shadow: 0 0 0 1px rgba(95, 184, 255, 0.22);
}

/* 浏览器自动填充会套默认浅色背景，用 inset 阴影盖住以贴合深色主题 */
.rsi-input:-webkit-autofill,
.rsi-input:-webkit-autofill:hover,
.rsi-input:-webkit-autofill:active {
 -webkit-text-fill-color: #f2f6f9;
 caret-color: #f2f6f9;
 transition: background-color 99999s ease-out 0s;
 border: 1px solid var(--rsi-accent-dim);
 border-radius: 6px;
 box-shadow: 0 0 0 1000px rgba(8, 18, 28, 0.88) inset;
}

.rsi-input:-webkit-autofill:focus {
 border-color: var(--rsi-accent);
 box-shadow: 0 0 0 1000px rgba(8, 18, 28, 0.88) inset, 0 0 0 1px rgba(95, 184, 255, 0.22);
}

.rsi-input:autofill,
.rsi-input:autofill:hover,
.rsi-input:autofill:focus {
 -webkit-text-fill-color: #f2f6f9;
 caret-color: #f2f6f9;
 transition: background-color 99999s ease-out 0s;
 border: 1px solid var(--rsi-accent-dim);
 border-radius: 6px;
 box-shadow: 0 0 0 1000px rgba(8, 18, 28, 0.88) inset;
}

.rsi-input:autofill:focus {
 border-color: var(--rsi-accent);
 box-shadow: 0 0 0 1000px rgba(8, 18, 28, 0.88) inset, 0 0 0 1px rgba(95, 184, 255, 0.22);
}

.rsi-field--password .rsi-input {
 padding-right: 2.75rem;
}

.rsi-pw-toggle {
 position: absolute;
 top: 50%;
 right: 4px;
 bottom: auto;
 width: 2.5rem;
 height: 2.5rem;
 margin: 0;
 padding: 0;
 transform: translateY(-50%);
 display: flex;
 align-items: center;
 justify-content: center;
 border: none;
 border-radius: 4px;
 background: transparent;
 color: rgba(180, 210, 235, 0.85);
 cursor: pointer;
 transition: color 0.2s ease, background 0.2s ease;
}

.rsi-pw-toggle:hover {
 color: #5fb8ff;
 background: rgba(95, 184, 255, 0.08);
}

.rsi-pw-toggle--tap {
 animation: rsi-pw-toggle-glow 0.45s ease;
}

.rsi-pw-toggle--tap .rsi-pw-toggle-icon {
 animation: rsi-pw-eye-pop 0.42s cubic-bezier(0.34, 1.35, 0.64, 1);
}

@keyframes rsi-pw-toggle-glow {
 0% {
 background: rgba(95, 184, 255, 0.22);
 box-shadow: 0 0 0 0 rgba(95, 184, 255, 0.4);
 }
 55% {
 background: rgba(95, 184, 255, 0.12);
 box-shadow: 0 0 0 5px rgba(95, 184, 255, 0);
 }
 100% {
 background: transparent;
 box-shadow: none;
 }
}

@keyframes rsi-pw-eye-pop {
 0% {
 transform: scale(1);
 }
 35% {
 transform: scale(0.78);
 }
 65% {
 transform: scale(1.14);
 }
 100% {
 transform: scale(1);
 }
}

.rsi-pw-toggle-icon {
 display: flex;
 align-items: center;
 justify-content: center;
 width: 1rem;
 height: 1rem;
 line-height: 0;
 font-size: 0;
}

.rsi-pw-icon {
 display: block;
 width: 100%;
 height: 100%;
 flex-shrink: 0;
 transform: translateY(0.06em);
}

.rsi-pw-icon[hidden] {
 display: none !important;
}

.rsi-auth-row {
 display: flex;
 align-items: center;
 justify-content: space-between;
 gap: 0.75rem;
 margin: 0.15rem 0 1.15rem;
 flex-wrap: wrap;
}

.rsi-auth-row--end {
 justify-content: flex-end;
}

.rsi-field--session {
 margin-bottom: 0.85rem;
}

.rsi-custom-select {
 position: relative;
}

.rsi-custom-select-trigger {
 display: flex;
 align-items: center;
 justify-content: space-between;
 gap: 0.5rem;
 width: 100%;
 text-align: left;
 cursor: pointer;
 font: inherit;
 color: #f2f6f9;
}

.rsi-field--session .rsi-custom-select-trigger,
.rsi-field--session .rsi-custom-select-value {
 color: rgba(160, 200, 225, 0.48);
 font-size: 0.95rem;
 font-weight: 400;
 letter-spacing: 0.02em;
}

.rsi-custom-select-value {
 flex: 1;
 min-width: 0;
}

.rsi-custom-select-caret {
 flex-shrink: 0;
 width: 1.45rem;
 height: 1.45rem;
 opacity: 0.85;
 background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23a8d8e8'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E")
 center / contain no-repeat;
 transition: transform 0.18s ease;
}

.rsi-custom-select.is-open .rsi-custom-select-caret {
 transform: rotate(180deg);
}

.rsi-custom-select-menu {
 position: absolute;
 left: 0;
 right: 0;
 top: calc(100% + 0.22rem);
 z-index: 40;
 margin: 0;
 padding: 0.28rem 0;
 list-style: none;
 border-radius: 6px;
 border: 1px solid rgba(95, 184, 255, 0.32);
 background: rgba(8, 18, 28, 0.98);
 box-shadow: 0 10px 32px rgba(0, 0, 0, 0.48);
}

.rsi-custom-select-menu[hidden] {
 display: none !important;
}

.rsi-custom-select-option {
 padding: 0.58rem 0.78rem;
 font-size: 0.92rem;
 line-height: 1.35;
 color: rgba(230, 240, 248, 0.92);
 cursor: pointer;
 transition: background 0.15s ease, color 0.15s ease;
}

.rsi-custom-select-option:hover,
.rsi-custom-select-option:focus {
 background: rgba(95, 184, 255, 0.12);
 color: #fff;
 outline: none;
}

.rsi-custom-select-option.is-selected {
 background: rgba(95, 184, 255, 0.16);
 color: #8ad0ff;
}

.rsi-custom-select.is-open .rsi-custom-select-trigger {
 border-color: var(--rsi-accent);
 box-shadow: 0 0 0 1px rgba(95, 184, 255, 0.22);
}

.rsi-form-hint {
 font-size: 0.82rem;
 line-height: 1.45;
 margin: -0.35rem 0 0.85rem;
 min-height: 1.25em;
}

.rsi-form-hint--error {
 color: #ffab91;
}

.rsi-form-hint--info {
 color: rgba(200, 220, 235, 0.82);
}

.rsi-check {
 display: inline-flex;
 align-items: center;
 gap: 0.45rem;
 font-size: 0.86rem;
 color: rgba(230, 240, 248, 0.88);
 cursor: pointer;
 user-select: none;
}

.rsi-check input {
 width: 1rem;
 height: 1rem;
 accent-color: #5fb8ff;
 cursor: pointer;
}

/* RSI 主按钮：浅蓝底深字；宽度随文案，不占满整行 */
.rsi-submit-btn {
 display: flex;
 align-items: center;
 justify-content: center;
 margin-top: 0.35rem;
 margin-left: auto;
 margin-right: auto;
 box-sizing: border-box;
 width: auto;
 min-width: 8.75rem;
 max-width: min(100%, 14rem);
 min-height: 2.75rem;
 padding: 0.72rem 1.35rem;
 font-size: 0.95rem;
 font-weight: 700;
 letter-spacing: 0.1em;
 text-indent: 0;
 text-align: center;
 color: #0a0f14;
 background: #5fb8ff;
 border: none;
 cursor: pointer;
 border-radius: 6px;
 transition: filter 0.2s ease, transform 0.15s ease;
}

.rsi-submit-btn:hover {
 filter: brightness(1.06);
 transform: translateY(-1px);
}

.rsi-submit-btn:active {
 transform: translateY(0);
}

.rsi-submit-btn:disabled {
 opacity: 0.72;
 cursor: not-allowed;
 transform: none;
 filter: grayscale(0.12) brightness(0.92);
}

.rsi-submit-btn--loading {
 gap: 0.5rem;
 opacity: 0.95;
}

.rsi-btn-spinner {
 display: inline-block;
 width: 1rem;
 height: 1rem;
 box-sizing: border-box;
 border: 2px solid rgba(10, 15, 20, 0.22);
 border-top-color: rgba(10, 15, 20, 0.9);
 border-radius: 50%;
 animation: rsi-btn-spin 0.7s linear infinite;
 flex-shrink: 0;
 vertical-align: middle;
}

.rsi-btn-spinner-text {
 font-weight: 700;
 letter-spacing: 0.06em;
}

@keyframes rsi-btn-spin {
 to {
 transform: rotate(360deg);
 }
}

.rsi-submit-btn--wide {
 max-width: min(100%, 18rem);
 min-width: 10rem;
}

#loginDrawerGuest .rsi-submit-btn {
 margin-left: auto;
 margin-right: 0;
 min-width: 6.25rem;
 max-width: min(100%, 11rem);
 min-height: 2.28rem;
 padding: 0.42rem 0.95rem;
 font-size: 1rem;
 font-weight: 700;
 letter-spacing: 0.05em;
 border-radius: 5px;
}

.rsi-btn-ghost {
 display: flex;
 align-items: center;
 justify-content: center;
 width: auto;
 min-width: 8.75rem;
 max-width: min(100%, 14rem);
 margin-top: 0.65rem;
 margin-left: auto;
 margin-right: auto;
 min-height: 2.75rem;
 padding: 0.72rem 1.35rem;
 font-size: 0.95rem;
 font-weight: 600;
 color: #8ad0ff;
 background: transparent;
 border: 1px solid rgba(95, 184, 255, 0.42);
 border-radius: 6px;
 cursor: pointer;
 transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.rsi-btn-ghost:hover {
 background: rgba(95, 184, 255, 0.08);
 border-color: rgba(95, 184, 255, 0.65);
 color: #b8e4ff;
}

.login-drawer-authed {
 --dps: 1.2;
 --drawer-content-inset-x: 1.25rem;
 position: relative;
 flex: 1;
 display: flex;
 flex-direction: column;
 align-self: stretch;
 width: 100%;
 min-height: 0;
 padding-bottom: 2.35rem;
}

.login-drawer .modal-content.login-drawer-content.login-drawer-content--authed {
 justify-content: flex-start;
 transform: none;
 padding: 2.15rem var(--drawer-content-inset-x, 1.25rem) 2.5rem;
 box-sizing: border-box;
}

.login-drawer .modal-content.login-drawer-content.login-drawer-content--authed > #loginDrawerAuthed {
 flex: 1;
 min-height: 0;
}

.login-drawer-authed .drawer-profile-row {
 border-bottom-color: rgba(95, 184, 255, 0.22);
}

.login-drawer-authed .rsi-auth-card--profile {
 flex: 1;
 min-height: 0;
}

/* 已登录抽屉：右下退出 + 设置并排（退出在左、设置在右） */
.drawer-footer-actions {
 position: absolute;
 left: var(--drawer-content-inset-x);
 right: var(--drawer-content-inset-x);
 bottom: -0.55rem;
 z-index: 2;
 display: flex;
 align-items: flex-end;
 justify-content: flex-end;
 gap: 0.5rem;
}

.drawer-footer-icon-btn {
 box-sizing: border-box;
 width: 2.25rem;
 height: 2.25rem;
 min-width: 0;
 max-width: none;
 margin: 0;
 padding: 0.38rem;
 display: inline-flex;
 align-items: center;
 justify-content: center;
 border-radius: 5px;
 cursor: pointer;
 transition: color 0.15s ease, border-color 0.15s ease, background 0.15s ease;
}

.drawer-logout-btn,
#logoutSubmitBtn.drawer-footer-icon-btn {
 border: 1px solid rgba(95, 184, 255, 0.38);
 background: rgba(10, 20, 30, 0.72);
 color: #8ee0ff;
}

.drawer-logout-btn:hover:not(:disabled),
#logoutSubmitBtn.drawer-footer-icon-btn:hover:not(:disabled) {
 color: #b8e4ff;
 border-color: rgba(95, 184, 255, 0.65);
 background: rgba(95, 184, 255, 0.12);
}

.drawer-settings-btn {
 border: 1px solid rgba(180, 190, 200, 0.35);
 background: rgba(30, 36, 44, 0.55);
 color: rgba(200, 208, 216, 0.88);
}

.drawer-settings-btn:hover:not(:disabled) {
 color: rgba(230, 234, 240, 0.95);
 border-color: rgba(200, 210, 220, 0.5);
 background: rgba(55, 62, 72, 0.65);
}

.drawer-footer-icon-btn:disabled {
 opacity: 0.45;
 cursor: default;
}

.drawer-footer-icon {
 width: 1.215rem;
 height: 1.215rem;
 display: block;
 flex-shrink: 0;
}

/* 修改密码弹窗 */
.account-settings-backdrop {
 position: fixed;
 inset: 0;
 z-index: 1105;
 display: flex;
 align-items: center;
 justify-content: center;
 padding: 1.25rem;
 background: rgba(4, 10, 18, 0.72);
 backdrop-filter: blur(4px);
}

.account-settings-backdrop[hidden] {
 display: none !important;
}

.account-settings-panel {
 width: min(100%, 22rem);
 padding: 1.35rem 1.25rem 1.5rem;
 border-radius: 10px;
 color: #e8eef3;
}

.account-settings-panel.rsi-auth-card,
.forgot-password-panel.rsi-auth-card {
 --rsi-accent: #5fb8ff;
 --rsi-accent-dim: rgba(95, 184, 255, 0.45);
 --rsi-surface: #12202b;
 background: var(--rsi-surface);
 border: 1px solid rgba(95, 184, 255, 0.18);
 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04), 0 12px 40px rgba(0, 0, 0, 0.35);
}

.account-settings-head {
 display: flex;
 align-items: center;
 justify-content: space-between;
 gap: 0.75rem;
 margin-bottom: 0.35rem;
}

.account-settings-head .rsi-auth-title {
 margin-bottom: 0;
}

.account-settings-close {
 border: none;
 background: none;
 color: rgba(200, 220, 235, 0.75);
 font-size: 1.35rem;
 line-height: 1;
 cursor: pointer;
 padding: 0.15rem 0.35rem;
}

.account-settings-close:hover {
 color: #b8e4ff;
}

.account-settings-sub {
 margin: 0 0 1.15rem;
}

.account-settings-panel .rsi-field {
 margin-bottom: 1.15rem;
}

.account-settings-actions {
 display: flex;
 justify-content: flex-end;
 align-items: stretch;
 gap: 0.65rem;
 margin-top: 1.1rem;
}

.forgot-password-panel {
 width: min(100%, 24rem);
 padding: 1.35rem 1.25rem 1.5rem;
}

.forgot-password-head {
 margin-bottom: 0.35rem;
}

.forgot-password-head .rsi-auth-title {
 margin-bottom: 0;
}

.forgot-password-sub {
 margin: 0 0 1.15rem;
}

.forgot-password-panel .rsi-field {
 margin-bottom: 1.15rem;
}

.forgot-pw-code-inner {
 display: flex;
 gap: 0.5rem;
 align-items: stretch;
}

.forgot-pw-code-inner .rsi-input {
 flex: 1;
 min-width: 0;
}

.rsi-field--float.forgot-pw-code-row .forgot-pw-code-inner .rsi-input {
 padding-top: 16px;
 padding-bottom: 12px;
}

.rsi-field--float.forgot-pw-code-row.is-filled .forgot-pw-code-inner .rsi-input {
 padding-top: 14px;
 padding-bottom: 11px;
}

.forgot-pw-send-btn {
 flex-shrink: 0;
 align-self: stretch;
 padding: 0 0.75rem;
 font-size: 0.82rem;
 font-weight: 600;
 white-space: nowrap;
 color: #8ad0ff;
 background: transparent;
 border: 1px solid rgba(95, 184, 255, 0.42);
 border-radius: 6px;
 cursor: pointer;
 transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.forgot-pw-send-btn:hover:not(:disabled) {
 background: rgba(95, 184, 255, 0.08);
 border-color: rgba(95, 184, 255, 0.65);
 color: #b8e4ff;
}

.forgot-pw-send-btn:disabled {
 opacity: 0.65;
 cursor: not-allowed;
}

.forgot-password-actions {
 display: flex;
 align-items: center;
 justify-content: flex-end;
 gap: 1rem;
 margin-top: 0.35rem;
}

.forgot-password-actions .rsi-submit-btn {
 margin: 0;
 min-width: 6.25rem;
 max-width: min(100%, 11rem);
 min-height: 2.28rem;
 padding: 0.42rem 0.95rem;
 font-size: 1rem;
 font-weight: 700;
 letter-spacing: 0.05em;
 border-radius: 5px;
}

.forgot-password-actions .rsi-auth-link {
 font-size: 0.82rem;
}

.account-settings-actions .rsi-btn-ghost,
.account-settings-actions .rsi-submit-btn {
 margin: 0;
 box-sizing: border-box;
 width: 7.5rem;
 min-width: 7.5rem;
 max-width: 7.5rem;
 min-height: 2.5rem;
 padding: 0.55rem 0.75rem;
 font-size: 0.9rem;
 font-weight: 600;
 letter-spacing: 0.06em;
 text-indent: 0;
 border-radius: 6px;
 line-height: 1.2;
}

.account-settings-actions .rsi-submit-btn {
 font-weight: 700;
}

/* 舰队下方：签到纯文字（非按钮块） */
.drawer-checkin-textlink {
 display: inline-block;
 width: auto;
 min-width: 0;
 max-width: none;
 margin: calc(0.4rem * var(--dps, 1)) 0 0;
 padding: 0;
 border: none;
 background: none;
 box-shadow: none;
 font: inherit;
 font-size: calc(0.92rem * var(--dps, 1));
 font-weight: 600;
 letter-spacing: 0.06em;
 color: #8ee0ff;
 text-align: left;
 text-decoration: underline;
 text-underline-offset: 0.2em;
 cursor: pointer;
 align-self: flex-start;
}

.drawer-checkin-textlink:hover:not(:disabled) {
 color: #b8e4ff;
}

a.drawer-checkin-textlink {
 text-decoration: underline;
 text-underline-offset: 0.2em;
}

a.drawer-checkin-textlink:hover {
 color: #b8e4ff;
}

.drawer-checkin-textlink:disabled {
 color: rgba(200, 220, 235, 0.55);
 text-decoration: none;
 cursor: default;
 opacity: 1;
}

.login-status-line {
 margin-bottom: 0.75rem;
 font-size: 0.95rem;
 line-height: 1.5;
}

.login-status-line.muted {
 color: rgba(255, 255, 255, 0.65);
 font-size: 0.9rem;
}

.login-status-line.small {
 font-size: 0.8rem;
 line-height: 1.45;
}

.user-controls {
 display: flex;
 align-items: center;
 gap: 1rem;
}

.sign-in {
 color: #ffffff;
 text-decoration: none;
}

.hero {
 position: relative;
 height: 100vh;
 width: 100%;
 overflow: hidden;
 z-index: 1;
}

body.home-page-body .hero {
 height: 90vh;
}

body.home-page-body .video-container {
 height: 100%;
}

.hero-content {
 position: absolute;
 top: 50%;
 left: 10%;
 transform: translateY(-50%);
 text-align: left;
}

.hero-content h1 {
 font-size: 4rem;
 margin-bottom: 1rem;
 text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
}

.hero-content p {
 font-size: 1.5rem;
 margin-bottom: 2rem;
 text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
}

.take-off-btn {
 background-color: #64ffda;
 color: #0a192f;
 border: none;
 padding: 1rem 2rem;
 border-radius: 4px;
 font-size: 1.2rem;
 font-weight: bold;
 cursor: pointer;
 transition: all 0.3s ease;
}

.take-off-btn:hover {
 background-color: #4cd8b2;
 transform: translateY(-2px);
}

.video-container {
 position: relative;
 height: 100vh;
 width: 100%;
 overflow: hidden;
 background: #081625;
}

#heroVideoParking {
 position: fixed;
 left: -120vw;
 width: 1px;
 height: 1px;
 overflow: hidden;
 opacity: 0;
 pointer-events: none;
 z-index: -1;
}

.hero-video-stage {
 position: absolute;
 inset: 0;
 overflow: hidden;
 background: #081625;
 z-index: 0;
}

#heroBootCover,
.hero-boot-cover {
 position: absolute;
 inset: 0;
 z-index: 100;
 background: #081625;
 pointer-events: none;
}

html:not(.hero-video-live) #heroBootCover,
html:not(.hero-video-live) .hero-boot-cover {
 opacity: 1;
 visibility: visible;
}

html.hero-video-live #heroBootCover,
html.hero-video-live .hero-boot-cover {
 opacity: 0;
 visibility: hidden;
 transition: opacity 0.4s ease;
}

html:not(.hero-video-live) .hero-video-stage,
html:not(.hero-video-live) .video-player {
 display: none !important;
}

.video-player.is-parked {
 position: fixed;
 left: -120vw;
 width: 1px;
 height: 1px;
 overflow: hidden;
 opacity: 0;
 pointer-events: none;
}

.video-player.active.is-ready {
 position: absolute;
 inset: 0;
 width: 100%;
 height: 100%;
 object-fit: cover;
 object-position: center;
 display: block;
 background: #081625;
}

.progress-container {
 position: absolute;
 left: 0;
 right: 0;
 bottom: 0;
 z-index: 30;
 box-sizing: border-box;
 padding: 10px var(--home-content-pad-x) calc(12px + env(safe-area-inset-bottom, 0px));
 display: flex;
 justify-content: center;
 pointer-events: none;
 background: linear-gradient(transparent 0%, rgba(0, 10, 20, 0.35) 100%);
}

.progress-controls-row {
 display: flex;
 align-items: center;
 justify-content: flex-end;
 gap: clamp(6px, 1.6vw, 8px);
 width: 100%;
 max-width: var(--home-content-max);
 margin: 0 auto;
 pointer-events: auto;
}

.progress-bar-wrap {
 flex: 0 1 var(--hero-progress-track-max);
 width: var(--hero-progress-track-max);
 max-width: var(--hero-progress-track-max);
 min-width: 0;
 pointer-events: none;
}

.progress-bar {
 width: 100%;
 height: 2px;
 background: rgba(255, 255, 255, 0.12);
 border-radius: 1px;
 overflow: hidden;
}

.progress-fill {
 height: 100%;
 width: 100%;
 background: rgba(148, 210, 255, 0.95);
 transform: scaleX(0);
 transform-origin: left center;
 will-change: transform;
 box-shadow: 0 0 6px rgba(84, 173, 247, 0.25);
}

.next-video {
 flex-shrink: 0;
 display: inline-flex;
 align-items: center;
 justify-content: center;
 width: var(--hero-progress-btn-size);
 height: var(--hero-progress-btn-size);
 min-width: var(--hero-progress-btn-size);
 min-height: var(--hero-progress-btn-size);
 padding: 0;
 margin: 0;
 background: rgba(0, 0, 0, 0.4);
 border: 1px solid rgba(148, 210, 255, 0.22);
 border-radius: 50%;
 color: rgba(200, 230, 255, 0.95);
 cursor: pointer;
 -webkit-tap-highlight-color: transparent;
 transition:
 border-color 0.2s ease,
 background 0.2s ease,
 color 0.2s ease;
}

.next-video-icon {
 display: block;
 width: 16px;
 height: 16px;
}

.next-video:hover {
 border-color: rgba(148, 210, 255, 0.45);
 color: #fff;
 background: rgba(0, 0, 0, 0.48);
}

.next-video:active {
 transform: scale(0.98);
}

.ship-info {
 position: absolute;
 left: 0;
 right: 0;
 bottom: 95px;
 padding: 0 var(--hero-overlay-inset-x);
 box-sizing: border-box;
 z-index: 1000;
 display: block;
}

/* 首页 Hero 右上角 — 配件搜索（透明底 + 白色底线，左右留白与左下文案对称） */
.hero-sc-search {
 position: absolute;
 top: calc(clamp(24px, 4.5vh, 48px) + 10px);
 left: 0;
 right: 0;
 padding: 0 var(--hero-overlay-inset-x);
 box-sizing: border-box;
 z-index: 1000;
 pointer-events: none;
}

.hero-sc-search-inner {
 max-width: var(--home-content-max);
 width: 100%;
 margin: 0 auto;
 display: flex;
 justify-content: flex-end;
 pointer-events: auto;
}

.hero-sc-search-form {
 position: relative;
 width: min(100%, 18rem);
 margin: 0 0 0 auto;
}

#heroScSearchSuggestMount {
 position: static;
 display: block;
 margin: 0;
 padding: 0;
 border: 0;
}

#heroScSearchSuggestMount:not(:has(.is-open)) {
 display: none !important;
}

.hero-sc-search-field {
 display: flex;
 align-items: center;
 gap: 0.35rem;
 margin: 0;
 border-bottom: 1px solid #ffffff;
 transition: border-color 0.2s ease, opacity 0.2s ease;
}

.hero-sc-search-field:focus-within {
 border-bottom-color: #ffffff;
}

.hero-sc-search-input {
 flex: 1 1 auto;
 min-width: 0;
 display: block;
 width: auto;
 margin: 0;
 padding: 0.28rem 0 0.42rem;
 border: 0;
 border-radius: 0;
 background: transparent;
 color: #ffffff;
 font-family: inherit;
 font-size: clamp(13px, 1.45vw, 15px);
 font-weight: 300;
 letter-spacing: 0.1em;
 line-height: 1.4;
 outline: none;
 -webkit-appearance: none;
 appearance: none;
 text-shadow: 0 1px 8px rgba(0, 0, 0, 0.55);
}

.hero-sc-search-icon-btn {
 flex: 0 0 auto;
 display: inline-flex;
 align-items: center;
 justify-content: center;
 margin: 0;
 padding: 0.28rem 0 0.42rem;
 border: 0;
 border-radius: 0;
 background: transparent;
 color: rgba(255, 255, 255, 0.72);
 cursor: pointer;
 line-height: 0;
 transition: color 0.2s ease, opacity 0.2s ease;
}

.hero-sc-search-icon-btn:hover,
.hero-sc-search-icon-btn:focus-visible {
 color: #ffffff;
 outline: none;
}

.hero-sc-search-icon {
 display: block;
 width: 1.05rem;
 height: 1.05rem;
}

.hero-sc-search-input::placeholder {
 color: rgba(255, 255, 255, 0.58);
 letter-spacing: 0.08em;
}

.hero-sc-search-input:focus {
 outline: none;
}

.hero-sc-search-input::-webkit-search-decoration,
.hero-sc-search-input::-webkit-search-cancel-button {
 -webkit-appearance: none;
 appearance: none;
}

.hero-sc-search-input:focus-visible {
 outline: none;
}

.hero-sc-search-suggest {
 position: absolute;
 top: calc(100% + 10px);
 left: 0;
 right: 0;
 z-index: 20;
 margin: 0;
 padding: 8px;
 border-radius: calc(var(--home-module-radius) - 2px);
 border: 1px solid rgba(95, 184, 255, 0.28);
 background:
 linear-gradient(
 155deg,
 rgba(255, 255, 255, 0.12) 0%,
 rgba(8, 22, 37, 0.34) 42%,
 rgba(6, 14, 28, 0.48) 100%
 );
 backdrop-filter: blur(22px) saturate(1.5);
 -webkit-backdrop-filter: blur(22px) saturate(1.5);
 box-shadow:
 inset 0 1px 0 rgba(255, 255, 255, 0.16),
 inset 0 0 0 1px rgba(0, 0, 0, 0.08),
 0 18px 44px rgba(0, 0, 0, 0.38),
 0 0 36px rgba(95, 184, 255, 0.1);
 max-height: min(280px, 42vh);
 overflow-y: auto;
 overflow-x: hidden;
 overscroll-behavior: contain;
 scrollbar-width: thin;
 scrollbar-color: rgba(95, 184, 255, 0.45) transparent;
 isolation: isolate;
}

.hero-sc-search-suggest::before {
 content: '';
 position: absolute;
 inset: 0;
 border-radius: inherit;
 pointer-events: none;
 background:
 linear-gradient(180deg, rgba(255, 255, 255, 0.07) 0%, transparent 32%),
 radial-gradient(ellipse 85% 55% at 50% -18%, rgba(142, 224, 255, 0.14), transparent 58%);
 z-index: 0;
}

.hero-sc-search-suggest::-webkit-scrollbar {
 width: 6px;
}

.hero-sc-search-suggest::-webkit-scrollbar-track {
 background: transparent;
 margin: 6px 0;
}

.hero-sc-search-suggest::-webkit-scrollbar-thumb {
 background: rgba(95, 184, 255, 0.38);
 border-radius: 999px;
 border: 1px solid rgba(255, 255, 255, 0.08);
}

.hero-sc-search-suggest::-webkit-scrollbar-thumb:hover {
 background: rgba(142, 224, 255, 0.52);
}

.hero-sc-search-suggest[hidden],
.hero-sc-search-suggest:empty,
.hero-sc-search-suggest:not(.is-open) {
 display: none !important;
 visibility: hidden !important;
 pointer-events: none !important;
 opacity: 0 !important;
 height: 0 !important;
 padding: 0 !important;
 border: 0 !important;
 box-shadow: none !important;
 backdrop-filter: none !important;
 -webkit-backdrop-filter: none !important;
}

.hero-sc-search-suggest-label {
 position: relative;
 z-index: 1;
 margin: 0.1rem 0.45rem 0.45rem;
 font-size: 11px;
 letter-spacing: 0.1em;
 color: rgba(168, 216, 232, 0.62);
}

.hero-sc-search-suggest-item {
 position: relative;
 z-index: 1;
 display: flex;
 align-items: baseline;
 justify-content: space-between;
 gap: 0.65rem;
 width: 100%;
 margin: 0;
 padding: 0.48rem 0.5rem;
 border: 0;
 border-radius: calc(var(--home-module-radius) - 10px);
 background: transparent;
 color: #e8f4ff;
 font: inherit;
 text-align: left;
 cursor: pointer;
 transition: background 0.14s ease, box-shadow 0.14s ease;
}

.hero-sc-search-suggest-item:hover,
.hero-sc-search-suggest-item:focus-visible {
 background: rgba(95, 184, 255, 0.14);
 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
 outline: none;
}

.hero-sc-search-suggest-name {
 flex: 1 1 auto;
 min-width: 0;
 font-size: 13px;
 line-height: 1.4;
 letter-spacing: 0.04em;
 word-break: break-word;
}

.hero-sc-search-suggest-type {
 flex-shrink: 0;
 font-size: 11px;
 letter-spacing: 0.06em;
 color: rgba(148, 186, 212, 0.78);
}

.ship-info-inner {
 max-width: var(--home-content-max);
 width: 100%;
 margin-left: auto;
 margin-right: auto;
 display: flex;
 flex-direction: column;
 align-items: flex-start;
 gap: 10px;
 box-sizing: border-box;
}

.ship-details {
 color: #FFFFFF;
}

.ship-hero-copy {
 margin: 0;
 max-width: min(40em, 100%);
 color: #FFFFFF;
 text-shadow: 0 0 10px rgba(0, 0, 0, 0.7),
 0 0 20px rgba(0, 0, 0, 0.5);
}

.ship-hero-title {
 display: flex;
 align-items: baseline;
 gap: 0;
 line-height: 1.2;
}

.ship-hero-uss {
 font-size: clamp(14px, 1.85vw, 18px);
 font-weight: 300;
 letter-spacing: 0.38em;
 color: rgba(255, 255, 255, 0.82);
 text-transform: uppercase;
}

.ship-hero-title-vrule {
 flex-shrink: 0;
 width: 1px;
 height: 1.15em;
 margin: 0 clamp(14px, 2.1vw, 22px);
 background: rgba(255, 255, 255, 0.32);
 align-self: center;
}

.ship-hero-name {
 display: block;
 font-weight: 700;
 font-size: clamp(36px, 5.2vw, 58px);
 letter-spacing: 0.14em;
 line-height: 1.2;
 margin: 0;
 color: #FFFFFF;
}

.ship-hero-tagline {
 display: flex;
 flex-direction: column;
 align-items: flex-start;
 gap: 0.6em;
 margin-top: clamp(14px, 1.9vw, 20px);
}

.ship-hero-tagline-hrule {
 display: block;
 width: clamp(36px, 5.2vw, 52px);
 height: 1px;
 background: rgba(255, 255, 255, 0.38);
}

.ship-hero-tagline-text {
 display: block;
 font-size: clamp(18px, 2.25vw, 23px);
 font-weight: 300;
 letter-spacing: 0.22em;
 line-height: 1.5;
 color: rgba(255, 255, 255, 0.92);
}

.ticket-btn {
 background-color: rgb(84, 173, 247);
 color: #000000;
 border: none;
 padding: 0.3rem 0.7rem;
 border-radius: 4px;
 font-weight: bold;
 font-size: 18px;
 cursor: pointer;
 transition: all 0.3s ease;
 width: fit-content;
 margin-top: 0;
 margin-left: 0;
}

.ticket-btn:hover {
 background-color: rgb(84, 173, 247);
 transform: translateY(-2px);
}

/* --- 首页 RSI 服务器状态 --- */
body.home-page-body .rsi-status-section,
body.home-page-body .sc-festival-section,
body.home-page-body .home-exec-hangar-section,
body.home-page-body .oopz-bridge-section,
body.home-page-body .community-section {
 content-visibility: auto;
 contain-intrinsic-size: auto 480px;
}

body.home-page-body .home-exec-hangar-section {
 contain-intrinsic-size: auto 280px;
}

.rsi-status-section {
 position: relative;
 z-index: 3;
 padding: var(--home-section-block-gap) var(--home-content-pad-x) 0;
 background: transparent;
 overflow: visible;
}

.rsi-status-wrap {
 position: relative;
 max-width: var(--home-content-max);
 width: 100%;
 margin: 0 auto;
 overflow: visible;
}

.rsi-status-head,
.sc-festival-head {
 margin-bottom: var(--home-section-head-gap);
}

.rsi-status-title,
.sc-festival-title,
.oopz-bridge-title {
 margin: 0;
 font-family: 'Raleway', 'Segoe UI', sans-serif;
 font-size: var(--home-section-title-size);
 font-weight: var(--home-section-title-weight);
 color: #e8f4ff;
 letter-spacing: var(--home-section-title-tracking);
 line-height: 1.25;
 padding-left: 0.62rem;
 border-left: 2px solid rgba(95, 184, 255, 0.38);
}

.rsi-status-lead-row,
.sc-festival-lead-row {
 display: flex;
 flex-wrap: wrap;
 align-items: baseline;
 gap: 0 10px;
 margin-top: 4px;
 padding-left: calc(0.62rem + 2px);
}

.rsi-status-lead,
.sc-festival-lead,
.rsi-status-updated {
 margin: 0;
 font-size: var(--home-section-lead-size);
 color: rgba(168, 216, 232, 0.62);
 line-height: 1.45;
}

.rsi-status-grid {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 14px;
 overflow: visible;
}

.rsi-status-card {
 display: flex;
 flex-direction: column;
 justify-content: space-between;
 gap: 16px;
 min-height: 132px;
 padding: 1rem 1.1rem 1.05rem;
 border-radius: 12px;
 border: 1px solid var(--home-surface-border);
 background: var(--home-surface-tint);
 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
 position: relative;
}

.rsi-status-card-head {
 min-width: 0;
}

.rsi-status-card-title {
 margin: 0;
 font-size: 1.05rem;
 font-weight: 700;
 color: #eef8ff;
 letter-spacing: 0.02em;
}

.rsi-status-card-sub {
 margin: 4px 0 0;
 font-size: 0.78rem;
 color: rgba(168, 216, 232, 0.62);
 letter-spacing: 0.03em;
}

.rsi-status-badge {
 display: inline-flex;
 align-items: center;
 gap: 8px;
 align-self: flex-start;
 padding: 0.38rem 0.72rem;
 border-radius: 999px;
 font-size: 0.86rem;
 font-weight: 700;
 letter-spacing: 0.02em;
 border: 1px solid transparent;
}

.rsi-status-dot {
 width: 9px;
 height: 9px;
 border-radius: 50%;
 flex-shrink: 0;
}

.rsi-status-badge--green {
 color: #8ef0b8;
 background: rgba(34, 120, 72, 0.28);
 border-color: rgba(72, 210, 130, 0.45);
}

.rsi-status-badge--green .rsi-status-dot {
 background: #3dd97a;
 color: #3dd97a;
}

.rsi-status-card--green {
 border-color: rgba(72, 210, 130, 0.35);
}

.rsi-status-badge--yellow {
 color: #ffe08a;
 background: rgba(140, 110, 20, 0.32);
 border-color: rgba(230, 190, 60, 0.42);
}

.rsi-status-badge--yellow .rsi-status-dot {
 background: #f0c040;
 color: #f0c040;
}

.rsi-status-card--yellow {
 border-color: rgba(230, 190, 60, 0.35);
}

.rsi-status-badge--orange {
 color: #ffc48a;
 background: rgba(150, 70, 20, 0.34);
 border-color: rgba(255, 140, 60, 0.42);
}

.rsi-status-badge--orange .rsi-status-dot {
 background: #ff8c3a;
 color: #ff8c3a;
}

.rsi-status-card--orange {
 border-color: rgba(255, 140, 60, 0.35);
}

.rsi-status-badge--red {
 color: #ffb0b0;
 background: rgba(120, 28, 28, 0.38);
 border-color: rgba(255, 90, 90, 0.45);
}

.rsi-status-badge--red .rsi-status-dot {
 background: #ff5555;
 color: #ff5555;
}

.rsi-status-card--red {
 border-color: rgba(255, 90, 90, 0.35);
}

.rsi-status-badge--blue {
 color: #9ed4ff;
 background: rgba(30, 90, 150, 0.34);
 border-color: rgba(84, 173, 247, 0.45);
}

.rsi-status-badge--blue .rsi-status-dot {
 background: #54adf7;
 color: #54adf7;
}

.rsi-status-card--blue {
 border-color: rgba(84, 173, 247, 0.35);
}

.rsi-status-badge--gray {
 color: #c8d4dc;
 background: rgba(60, 70, 80, 0.35);
 border-color: rgba(140, 150, 160, 0.35);
}

.rsi-status-badge--gray .rsi-status-dot {
 background: #aab5bb;
 color: #aab5bb;
}

.rsi-status-card--gray {
 border-color: rgba(140, 150, 160, 0.3);
}

.rsi-status-updated {
 white-space: nowrap;
 pointer-events: none;
 flex-shrink: 0;
}

.rsi-status-loading,
.rsi-status-error {
 grid-column: 1 / -1;
 padding: 1rem 1.15rem;
 border-radius: 10px;
 border: 1px solid var(--home-surface-border);
 background: var(--home-surface-tint);
 color: rgba(168, 216, 232, 0.85);
 font-size: 0.92rem;
}

.rsi-status-error {
 border-color: rgba(255, 120, 120, 0.35);
 color: #ffb4b4;
}

/* --- RSI 众筹资金统计（工具页） --- */
.rsi-funding-section {
 position: relative;
 z-index: 2;
 margin-top: 0;
 padding: var(--home-section-block-gap-split) var(--home-content-pad-x) var(--home-section-block-gap-split);
 background: transparent;
}

.rsi-funding-wrap {
 position: relative;
 z-index: 1;
 max-width: var(--home-content-max);
 width: 100%;
 margin: 0 auto;
}

.rsi-funding-head {
 margin-bottom: clamp(14px, 2.2vw, 20px);
}

.rsi-funding-title {
 margin: 0;
 font-size: clamp(22px, 3vw, 30px);
 font-weight: 600;
 letter-spacing: 0.06em;
 background: linear-gradient(90deg, #ffffff 0%, #c8f8ff 42%, #ffffff 100%);
 -webkit-background-clip: text;
 background-clip: text;
 -webkit-text-fill-color: transparent;
 filter: drop-shadow(0 0 6px rgba(94, 233, 255, 0.12));
}

.rsi-funding-lead {
 margin: 6px 0 0;
 font-size: 0.92rem;
 color: rgba(168, 216, 232, 0.78);
}

.rsi-funding-panel {
 position: relative;
 border: 1px solid var(--home-surface-border);
 border-radius: 12px;
 background: var(--home-surface-tint);
 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
 overflow: hidden;
}

.rsi-funding-panel::before {
 content: '';
 position: absolute;
 top: 0;
 left: 8%;
 right: 8%;
 height: 1px;
 background: linear-gradient(90deg, transparent, rgba(122, 248, 255, 0.35), transparent);
 pointer-events: none;
}

.rsi-funding-panel::after {
 display: none;
}

.rsi-funding-panel-bar {
 position: relative;
 z-index: 1;
 display: flex;
 align-items: center;
 gap: 10px;
 padding: 0.72rem 1rem;
 border-bottom: 1px solid rgba(94, 233, 255, 0.12);
 background: transparent;
}

.rsi-funding-panel-bar-icon {
 width: 0;
 height: 0;
 border-top: 7px solid transparent;
 border-bottom: 7px solid transparent;
 border-left: 11px solid #5ee9ff;
}

.rsi-funding-panel-bar-title {
 font-size: 0.92rem;
 font-weight: 700;
 letter-spacing: 0.08em;
 color: #7af8ff;
}

.rsi-funding-body {
 position: relative;
 z-index: 1;
 display: grid;
 grid-template-columns: minmax(240px, 0.88fr) minmax(0, 1.62fr);
 grid-template-rows: auto minmax(0, 1fr);
 column-gap: clamp(16px, 2.4vw, 28px);
 row-gap: 14px;
 padding: clamp(16px, 2.2vw, 24px);
 align-items: start;
}

.rsi-funding-body-title {
 margin: 0;
}

.rsi-funding-body-title--stats {
 grid-column: 1;
 grid-row: 1;
}

.rsi-funding-stat-cards {
 display: grid;
 gap: 14px;
 grid-column: 1;
 grid-row: 2;
}

.rsi-funding-subtitle {
 font-size: 0.82rem;
 font-weight: 600;
 letter-spacing: 0.06em;
 color: rgba(158, 230, 255, 0.86);
}

.rsi-funding-stat-card {
 position: relative;
 display: grid;
 grid-template-columns: 42px minmax(0, 1fr);
 gap: 14px;
 align-items: center;
 padding: 0.9rem 1rem;
 border-radius: 12px;
 border: 1px solid var(--home-surface-border);
 background: var(--home-surface-tint);
 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
 overflow: hidden;
 transition: border-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;
}

.rsi-funding-stat-card::before {
 content: '';
 position: absolute;
 left: 0;
 top: 14%;
 bottom: 14%;
 width: 2px;
 background: linear-gradient(180deg, transparent, rgba(94, 233, 255, 0.85), transparent);
 opacity: 0.75;
 pointer-events: none;
}

.rsi-funding-stat-card::after {
 display: none;
}

.rsi-funding-stat-card:hover {
 border-color: rgba(94, 233, 255, 0.32);
 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
 transform: translateY(-1px);
}

.rsi-funding-stat-icon {
 position: relative;
 z-index: 1;
 display: inline-flex;
 align-items: center;
 justify-content: center;
 width: 42px;
 height: 42px;
 min-width: 42px;
 min-height: 42px;
 border-radius: 50%;
 border: 1px solid rgba(94, 233, 255, 0.38);
 background: var(--navbar-bg);
 color: #b8f8ff;
 font-size: 0.95rem;
 font-weight: 700;
 line-height: 1;
 flex-shrink: 0;
 box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.06);
 box-sizing: border-box;
}

.rsi-funding-stat-icon--funds {
 font-size: 1.22rem;
}

.rsi-funding-stat-icon--players {
 padding: 0;
}

.rsi-funding-stat-svg {
 display: block;
 width: 22px;
 height: 22px;
 fill: #b8f4ff;
}

.rsi-funding-stat-copy {
 position: relative;
 z-index: 1;
 min-width: 0;
}

.rsi-funding-stat-label {
 display: block;
 font-size: 0.76rem;
 letter-spacing: 0.04em;
 color: rgba(168, 216, 232, 0.72);
}

.rsi-funding-stat-value {
 display: block;
 margin-top: 6px;
 font-size: clamp(1.15rem, 2vw, 1.55rem);
 font-weight: 700;
 letter-spacing: 0.01em;
 color: #f4fbff;
 line-height: 1.2;
 font-variant-numeric: tabular-nums;
 word-break: break-all;
 text-shadow: 0 0 18px rgba(94, 233, 255, 0.18);
}

.rsi-funding-chart-head {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 justify-content: space-between;
 gap: 10px 14px;
 grid-column: 2;
 grid-row: 1;
}

.rsi-funding-period-tabs {
 display: inline-flex;
 flex-wrap: wrap;
 gap: 6px;
}

.rsi-funding-period-btn {
 min-width: 54px;
 padding: 0.28rem 0.55rem;
 border: 1px solid var(--home-surface-border);
 border-radius: 4px;
 background: var(--home-surface-tint);
 color: rgba(168, 216, 232, 0.78);
 font-size: 0.72rem;
 font-weight: 700;
 letter-spacing: 0.08em;
 cursor: pointer;
 transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}

.rsi-funding-period-btn:hover {
 border-color: rgba(94, 233, 255, 0.48);
 color: #dff9ff;
 box-shadow: 0 0 10px rgba(94, 233, 255, 0.12);
}

.rsi-funding-period-btn.is-active {
 border-color: rgba(94, 233, 255, 0.78);
 background: var(--navbar-bg);
 color: #9ef8ff;
 box-shadow:
 0 0 0 1px rgba(94, 233, 255, 0.14),
 0 0 14px rgba(94, 233, 255, 0.28),
 inset 0 0 10px rgba(94, 233, 255, 0.08);
}

.rsi-funding-chart-frame {
 position: relative;
 display: flex;
 flex-direction: column;
 min-height: 260px;
 padding: 12px 14px 8px 10px;
 border: 1px solid var(--home-surface-border);
 border-radius: 10px;
 background: var(--home-surface-tint);
 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
 overflow: visible;
 grid-column: 2;
 grid-row: 2;
}

.rsi-funding-chart-svg {
 display: block;
 flex: 1 1 auto;
 width: 100%;
 height: 100%;
 min-height: 0;
 overflow: visible;
}

.rsi-funding-chart-hit {
 fill: transparent;
 stroke: none;
 cursor: pointer;
}

.rsi-funding-chart-point.is-active .rsi-funding-chart-dot-halo {
 fill: rgba(95, 184, 255, 0.14);
 stroke: rgba(95, 184, 255, 0.35);
 transform: scale(1.15);
 transform-box: fill-box;
 transform-origin: center;
}

.rsi-funding-chart-point.is-active .rsi-funding-chart-dot {
 fill: rgba(220, 238, 248, 0.98);
 stroke: rgba(168, 216, 232, 0.65);
 stroke-width: 1;
 filter: none;
 transform: scale(1.1);
 transform-box: fill-box;
 transform-origin: center;
}

.rsi-funding-chart-tooltip {
 position: absolute;
 z-index: 3;
 transform: translate(-50%, calc(-100% - 10px));
 padding: 0.35rem 0.55rem;
 border-radius: 6px;
 border: 1px solid rgba(95, 184, 255, 0.28);
 background: var(--navbar-bg);
 box-shadow: 0 4px 14px rgba(0, 0, 0, 0.28);
 pointer-events: none;
 white-space: nowrap;
}

.rsi-funding-chart-tooltip[hidden] {
 display: none !important;
}

.rsi-funding-chart-tooltip-value {
 display: block;
 font-size: 0.82rem;
 font-weight: 700;
 color: #f4fbff;
 font-variant-numeric: tabular-nums;
}

.rsi-funding-chart-grid {
 stroke: rgba(95, 184, 255, 0.07);
 stroke-width: 1;
}

.rsi-funding-chart-area {
 pointer-events: none;
}

.rsi-funding-chart-line {
 fill: none;
 stroke-linecap: round;
 stroke-linejoin: round;
 pointer-events: none;
}

.rsi-funding-chart-line--core {
 stroke: rgba(95, 184, 255, 0.72);
 stroke-width: 1.35;
}

.rsi-funding-chart-dot-halo {
 fill: rgba(95, 184, 255, 0.08);
 stroke: rgba(95, 184, 255, 0.2);
 stroke-width: 0.75;
 pointer-events: none;
}

.rsi-funding-chart-dot {
 fill: rgba(168, 216, 232, 0.92);
 stroke: rgba(95, 184, 255, 0.38);
 stroke-width: 1;
}

.rsi-funding-chart-axis {
 fill: rgba(168, 216, 232, 0.82);
 font-size: 11px;
 font-family: system-ui, -apple-system, 'Segoe UI', sans-serif;
 pointer-events: none;
}

.rsi-funding-chart-empty {
 margin: 0;
 padding: 2.5rem 1rem;
 text-align: center;
 color: rgba(168, 216, 232, 0.72);
 font-size: 0.92rem;
}

.rsi-funding-chart-empty--error {
 color: #ffb4b4;
}

.rsi-funding-updated {
 position: absolute;
 right: 0;
 top: 100%;
 margin: 0;
 padding-top: 2px;
 font-size: 0.78rem;
 color: rgba(168, 216, 232, 0.62);
 text-align: right;
 white-space: nowrap;
 pointer-events: none;
}

.rsi-funding-updated.is-stale {
 color: rgba(255, 196, 120, 0.88);
}

/* --- 首页节日倒计时 --- */
.sc-festival-section {
 position: relative;
 z-index: 2;
 margin-top: var(--home-section-block-gap);
 padding: 0 var(--home-content-pad-x);
 background: transparent;
}

.sc-festival-wrap {
 max-width: var(--home-content-max);
 width: 100%;
 margin: 0 auto;
}

.sc-festival-lead a {
 color: #8ad0ff;
 text-decoration: underline;
 text-underline-offset: 3px;
}

.sc-festival-lead a:hover {
 color: #b8e4ff;
}

.sc-festival-grid {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 14px;
}

.sc-festival-card {
 display: flex;
 align-items: center;
 gap: 12px;
 min-height: 74px;
 padding: 0.85rem 1rem;
 border-radius: 12px;
 border: 1px solid var(--home-surface-border);
 background: var(--home-surface-tint);
 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
 transition: border-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease, background 0.25s ease;
}

.sc-festival-card:hover {
 border-color: rgba(94, 233, 255, 0.32);
 background: rgba(12, 30, 48, 0.95);
 box-shadow:
 inset 0 1px 0 rgba(255, 255, 255, 0.06),
 0 4px 18px rgba(94, 233, 255, 0.1);
 transform: translateY(-2px);
}

.sc-festival-icon-wrap {
 flex-shrink: 0;
 width: 38px;
 height: 38px;
}

.sc-festival-icon-wrap--empty {
 width: 38px;
}

.sc-festival-icon {
 display: block;
 width: 38px;
 height: 38px;
 border-radius: 50%;
 object-fit: cover;
 transition: transform 0.25s ease;
}

.sc-festival-card:hover .sc-festival-icon {
 transform: scale(1.08);
}

.sc-festival-card-body {
 min-width: 0;
 flex: 1;
}

.sc-festival-card-title {
 margin: 0;
 font-size: 0.95rem;
 font-weight: 600;
 color: #fff;
 line-height: 1.3;
}

.sc-festival-card-sub {
 margin: 0.1rem 0 0;
 font-size: 0.78rem;
 color: rgba(168, 216, 232, 0.62);
 line-height: 1.25;
}

.sc-festival-countdown {
 display: flex;
 align-items: baseline;
 gap: 0.45rem;
 margin-top: 0.35rem;
 line-height: 1;
}

.sc-festival-days {
 font-size: 1.35rem;
 font-weight: 700;
 color: #fff;
}

.sc-festival-days--soon {
 color: #ff5f5f;
}

.sc-festival-clock {
 font-size: 0.95rem;
 font-weight: 600;
 color: rgba(220, 236, 245, 0.92);
 font-variant-numeric: tabular-nums;
}

.sc-festival-progress {
 font-size: 1rem;
 font-weight: 700;
 color: #20dc59;
}

.sc-festival-loading,
.sc-festival-error {
 grid-column: 1 / -1;
 padding: 1rem 1.15rem;
 border-radius: 10px;
 border: 1px solid var(--home-surface-border);
 background: var(--home-surface-tint);
 color: rgba(168, 216, 232, 0.85);
 font-size: 0.92rem;
}

.sc-festival-error {
 border-color: rgba(255, 120, 120, 0.35);
 color: #ffb4b4;
}

.sc-festival-disclaimer {
 margin: 0.85rem 0 0;
 font-size: 0.78rem;
 color: rgba(168, 216, 232, 0.45);
 line-height: 1.45;
}

@media (max-width: 900px) {
 .sc-festival-grid {
 grid-template-columns: repeat(2, minmax(0, 1fr));
 }
}

@media (max-width: 560px) {
 .sc-festival-grid {
 grid-template-columns: 1fr;
 }
}

/* --- 首页行政机库（简化版） --- */
.home-exec-hangar-section {
 position: relative;
 z-index: 2;
 margin-top: var(--home-section-block-gap);
 padding: 0 var(--home-content-pad-x) var(--home-section-block-gap);
 background: transparent;
}

.home-exec-hangar-section + .oopz-bridge-section,
.home-exec-hangar-section + .community-section {
 margin-top: 0;
}

.home-exec-hangar-wrap {
 max-width: var(--home-content-max);
 width: 100%;
 margin: 0 auto;
}

.home-exec-hangar-head {
 margin-bottom: var(--home-section-head-gap);
}

.home-exec-hangar-title {
 margin: 0;
}

.home-exec-hangar-lead-row {
 display: flex;
 flex-wrap: wrap;
 align-items: baseline;
 gap: 0 10px;
 margin-top: 4px;
 padding-left: calc(0.62rem + 2px);
}

.home-exec-hangar-lead-row .rsi-status-updated {
 margin: 0;
}

.home-exec-hangar-lead {
 margin: 0;
 font-size: var(--home-section-lead-size);
 color: rgba(168, 216, 232, 0.62);
 line-height: 1.45;
}

.home-exec-hangar-lead a {
 color: #8ad0ff;
 text-decoration: underline;
 text-underline-offset: 3px;
}

.home-exec-hangar-lead a:hover {
 color: #b8e4ff;
}

.home-exec-hangar-error {
 margin-bottom: 0.75rem;
}

.home-exec-hangar-error.is-hidden {
 display: none;
}

.home-exec-hangar-grid.rsi-status-grid {
 overflow: visible;
}

.home-exec-hangar-grid .rsi-status-card {
 min-height: 168px;
 gap: 12px;
}

.home-exec-card-details {
 display: grid;
 grid-template-columns: auto 1fr;
 gap: 0.2rem 0.65rem;
 margin: 0.55rem 0 0;
 padding: 0;
 font-size: 0.74rem;
 line-height: 1.4;
}

.home-exec-card-details dt {
 margin: 0;
 color: rgba(168, 216, 232, 0.52);
 white-space: nowrap;
}

.home-exec-card-details dd {
 margin: 0;
 color: rgba(220, 236, 245, 0.92);
 font-variant-numeric: tabular-nums;
 font-weight: 600;
}

.home-exec-pipeline {
 display: flex;
 align-items: center;
 gap: 0.4rem;
 margin-top: 0.55rem;
}

.home-exec-pipeline-dot {
 width: 0.62rem;
 height: 0.62rem;
 border-radius: 50%;
 border: 1px solid rgba(80, 100, 120, 0.45);
 background: rgba(40, 48, 56, 0.9);
 box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.45);
}

.home-exec-pipeline-dot.is-on {
 border-color: rgba(72, 210, 130, 0.65);
 background: radial-gradient(circle at 35% 30%, #b8ffd4 0%, #3dd97a 45%, #1a8048 100%);
 box-shadow: 0 0 6px rgba(61, 217, 122, 0.55);
}

.home-exec-pipeline-dot.is-red {
 border-color: rgba(255, 0, 24, 0.75);
 background: radial-gradient(circle at 35% 28%, #ff9999 0%, #ff0024 38%, #9a0010 72%, #3a0006 100%);
 box-shadow: 0 0 8px rgba(255, 0, 24, 0.65);
}

@media (max-width: 900px) {
 .home-exec-hangar-grid.rsi-status-grid {
 grid-template-columns: repeat(2, minmax(0, 1fr));
 }
}

@media (max-width: 560px) {
 .home-exec-hangar-grid.rsi-status-grid {
 grid-template-columns: 1fr;
 }
}

/* --- 首页 OOPZ 语音桥接 --- */
.oopz-bridge-section {
 position: relative;
 z-index: 2;
 margin-top: var(--home-section-block-gap);
 padding: 0 var(--home-content-pad-x);
 background: transparent;
}

.oopz-bridge-wrap {
 position: relative;
 z-index: 1;
 max-width: var(--home-content-max);
 width: 100%;
 margin: 0 auto;
 padding-bottom: 0;
 --oopz-fs-xs: 0.88rem;
 --oopz-fs-sm: 1.02rem;
 --oopz-fs-md: 1.1rem;
 --oopz-fs-lg: 1.24rem;
 --oopz-card-h: 200px;
 --oopz-card-max-h: 340px;
 --oopz-member-h: 136px;
 --oopz-member-max-h: 272px;
 --oopz-grid-min: 228px;
 --oopz-avatar: 30px;
 --oopz-log-h: 420px;
}

.oopz-bridge-head {
 --oopz-head-pill-fs: calc(var(--home-section-title-size) * 0.5);
 --oopz-head-pill-py: 0.42em;
 --oopz-head-pill-px: 0.95em;
 display: flex;
 flex-direction: column;
 align-items: flex-start;
 gap: 10px;
 margin-bottom: var(--home-section-head-gap);
}

.oopz-bridge-head-actions {
 display: flex;
 flex-wrap: nowrap;
 align-items: center;
 justify-content: flex-start;
 gap: 8px 10px;
 width: 100%;
 min-width: 0;
}

@media (max-width: 640px) {
 .oopz-bridge-head {
 --oopz-head-pill-fs: calc(var(--home-section-title-size) * 0.46);
 --oopz-head-pill-py: 0.36em;
 --oopz-head-pill-px: 0.68em;
 gap: 8px;
 }

 .oopz-bridge-head-actions {
 gap: 6px 8px;
 }

 .oopz-bind-head-btn,
 .oopz-bridge-status {
 max-width: min(72vw, 220px);
 }

 .oopz-bridge-status-text {
 overflow: hidden;
 text-overflow: ellipsis;
 white-space: nowrap;
 }
}

.oopz-bind-head-btn {
 flex-shrink: 1;
 min-width: 0;
 box-sizing: border-box;
 padding: var(--oopz-head-pill-py) var(--oopz-head-pill-px);
 border-radius: 999px;
 border: 1px solid rgba(94, 233, 255, 0.35);
 background: rgba(94, 233, 255, 0.1);
 color: #9ee8ff;
 font-size: var(--oopz-head-pill-fs);
 font-weight: 700;
 letter-spacing: 0.04em;
 line-height: 1.2;
 white-space: nowrap;
 cursor: pointer;
 transition: background 0.15s ease, border-color 0.15s ease;
}

.oopz-bind-head-btn:hover:not(:disabled) {
 background: rgba(94, 233, 255, 0.2);
 border-color: rgba(94, 233, 255, 0.5);
}

.oopz-bind-head-btn.is-bound {
 border-color: rgba(61, 217, 122, 0.45);
 background: rgba(61, 217, 122, 0.12);
 color: #9ef0bc;
}

.oopz-bind-head-block {
 display: flex;
 justify-content: flex-start;
 align-items: center;
 min-width: 0;
}

.oopz-user-prefs {
 margin: 12px 0 12px;
 padding: 10px 12px;
 border-radius: 10px;
 border: 1px solid rgba(94, 233, 255, 0.3);
 background: rgba(8, 28, 48, 0.55);
}

.oopz-bridge-panel > .oopz-user-prefs {
 margin: 0;
 border: none;
 border-radius: 0;
 border-bottom: 1px solid rgba(94, 233, 255, 0.12);
 background: rgba(8, 28, 48, 0.28);
 padding: 12px 18px;
}

.oopz-bridge-panel > .oopz-bridge-error {
 margin: 0;
 border-radius: 0;
 border-left: none;
 border-right: none;
 border-top: none;
}

.oopz-user-prefs__layout {
 display: flex;
 flex-wrap: wrap;
 align-items: flex-start;
 justify-content: space-between;
 gap: 10px 16px;
}

.oopz-user-prefs__main {
 flex: 1 1 220px;
 min-width: 0;
 display: flex;
 flex-direction: column;
 justify-content: flex-start;
 align-self: flex-start;
 gap: 8px;
 font-size: 1rem;
}

.oopz-user-prefs__checkin {
 flex: 0 0 auto;
 width: max-content;
 max-width: min(100%, 320px);
 min-width: 0;
 margin-left: auto;
 padding-left: 12px;
 border-left: 1px solid rgba(94, 233, 255, 0.12);
 display: flex;
 flex-direction: column;
 align-items: flex-end;
 justify-content: flex-start;
 align-self: flex-start;
 gap: 8px;
 text-align: right;
 font-size: 0.88rem;
}

@media (max-width: 900px) {
 .oopz-user-prefs__layout {
 flex-direction: column;
 }

 .oopz-user-prefs__main {
 flex: 0 0 auto;
 justify-content: flex-start;
 gap: 8px;
 }

 .oopz-user-prefs__checkin {
 flex: 0 0 auto;
 width: 100%;
 max-width: 100%;
 margin-left: 0;
 padding-left: 0;
 padding-top: 10px;
 border-left: none;
 border-top: 1px solid rgba(94, 233, 255, 0.12);
 justify-content: flex-start;
 gap: 8px;
 align-items: flex-start;
 text-align: left;
 }
}

@media (max-width: 640px) {
 .oopz-user-prefs__main {
 flex: 0 0 auto;
 justify-content: flex-start;
 gap: 8px;
 }

 .oopz-user-prefs__checkin {
 flex: 0 0 auto;
 width: 100%;
 max-width: 100%;
 margin-left: 0;
 padding-left: 0;
 padding-top: 10px;
 border-left: none;
 border-top: 1px solid rgba(94, 233, 255, 0.12);
 justify-content: flex-start;
 gap: 8px;
 align-items: flex-start;
 text-align: left;
 }
}

.oopz-user-prefs__checkin-title {
 margin: 0;
 width: auto;
 max-width: 100%;
 text-align: right;
 font-size: 0.82rem;
 font-weight: 600;
 line-height: 1.25;
 letter-spacing: 0.06em;
 color: rgba(94, 233, 255, 0.88);
}

.oopz-user-prefs__checkin-remain {
 margin: 0;
 width: auto;
 max-width: 100%;
 text-align: right;
 font-size: 0.86rem;
 line-height: 1.3;
 color: rgba(210, 236, 248, 0.92);
}

.oopz-user-prefs__checkin-branches {
 display: block;
 margin: 0;
 width: auto;
 max-width: 100%;
 font-size: 0.82rem;
 line-height: 1.3;
 text-align: right;
 color: rgba(168, 216, 232, 0.78);
}

.oopz-user-prefs__checkin-branches-label {
 white-space: nowrap;
}

.oopz-user-prefs__checkin-branch-list {
 display: inline;
 text-align: right;
}

.oopz-user-prefs__checkin-branch-item {
 white-space: nowrap;
}

.oopz-user-prefs__checkin-branch-item:not(:first-child)::before {
 content: '·';
 margin: 0 6px;
 opacity: 0.55;
}

.oopz-user-prefs__checkin-single {
 display: flex;
 flex-direction: column;
 justify-content: flex-start;
 align-items: flex-end;
 gap: 4px;
 width: 100%;
}

.oopz-user-prefs__checkin-single[hidden],
.oopz-user-prefs__checkin-cards[hidden] {
 display: none !important;
}

.oopz-user-prefs__checkin.is-multi .oopz-user-prefs__checkin-single {
 display: none !important;
}

.oopz-user-prefs__checkin:not(.is-multi) .oopz-user-prefs__checkin-cards {
 display: none !important;
}

.oopz-user-prefs__checkin-cards {
 display: flex;
 flex-direction: row;
 align-items: flex-start;
 justify-content: flex-end;
 flex-wrap: nowrap;
 gap: 0;
}

.oopz-user-prefs__checkin-card {
 flex: 0 0 auto;
 display: flex;
 flex-direction: column;
 justify-content: flex-start;
 align-items: flex-end;
 gap: 4px;
 padding-left: 12px;
 margin-left: 12px;
 border-left: 1px solid rgba(94, 233, 255, 0.12);
 text-align: right;
 white-space: nowrap;
}

.oopz-user-prefs__checkin-card:first-child {
 margin-left: 0;
 padding-left: 0;
 border-left: none;
}

.oopz-user-prefs__checkin-branch-name {
 display: inline;
 white-space: nowrap;
}

.oopz-user-prefs__checkin.is-multi {
 flex-direction: row;
 align-items: stretch;
 justify-content: flex-end;
 width: auto;
 max-width: 100%;
 overflow-x: auto;
 scrollbar-width: thin;
 scrollbar-color: rgba(94, 233, 255, 0.25) transparent;
}

.oopz-user-prefs__checkin.is-multi .oopz-user-prefs__checkin-branches {
 white-space: nowrap;
}

@media (max-width: 900px) {
 .oopz-user-prefs__checkin-title,
 .oopz-user-prefs__checkin-remain,
 .oopz-user-prefs__checkin-branches {
 text-align: left;
 }

 .oopz-user-prefs__checkin-single {
 align-items: flex-start;
 }

 .oopz-user-prefs__checkin.is-multi {
 flex-direction: column;
 align-items: stretch;
 width: 100%;
 max-width: 100%;
 overflow-x: visible;
 }

 .oopz-user-prefs__checkin-cards {
 flex-direction: column;
 align-items: stretch;
 justify-content: flex-start;
 width: 100%;
 }

 .oopz-user-prefs__checkin-card {
 margin-left: 0;
 padding-left: 0;
 border-left: none;
 border-top: 1px solid rgba(94, 233, 255, 0.12);
 padding-top: 8px;
 align-items: flex-start;
 text-align: left;
 white-space: normal;
 }

 .oopz-user-prefs__checkin-card:first-child {
 border-top: none;
 padding-top: 0;
 }
}

.oopz-user-prefs__row {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 gap: 8px 12px;
 margin: 0;
}

.oopz-user-prefs__stats {
 margin: 0;
 font-size: 1rem;
 line-height: 1.35;
 color: rgba(210, 236, 248, 0.92);
}

.oopz-user-prefs__live {
 display: inline-flex;
 align-items: center;
 padding: 3px 9px;
 border-radius: 999px;
 font-size: 0.78rem;
 font-weight: 600;
 letter-spacing: 0.04em;
 flex-shrink: 0;
}

.oopz-user-prefs__live[hidden] {
 display: none !important;
}

.oopz-user-prefs__live.is-live {
 color: #0a1a12;
 background: linear-gradient(90deg, #6ef0a8, #3dd97a);
 animation: oopz-live-pulse 2s ease-in-out infinite;
}

.oopz-user-prefs__live.is-off {
 color: rgba(168, 216, 232, 0.82);
 background: rgba(94, 233, 255, 0.08);
 border: 1px solid rgba(94, 233, 255, 0.18);
 animation: none;
}

@keyframes oopz-live-pulse {
 0%,
 100% {
 opacity: 1;
 }
 50% {
 opacity: 0.72;
 }
}

.oopz-user-prefs__toggle {
 display: flex;
 align-items: center;
 gap: 8px;
 margin: 0;
 min-height: 30px;
 cursor: pointer;
 user-select: none;
}

.oopz-user-prefs__toggle input {
 position: absolute;
 opacity: 0;
 width: 0;
 height: 0;
}

.oopz-user-prefs__toggle-ui {
 flex-shrink: 0;
 width: 40px;
 height: 22px;
 border-radius: 11px;
 background: rgba(120, 150, 170, 0.45);
 position: relative;
 transition: background 0.2s ease;
}

.oopz-user-prefs__toggle-ui::after {
 content: '';
 position: absolute;
 top: 2px;
 left: 2px;
 width: 18px;
 height: 18px;
 border-radius: 50%;
 background: #fff;
 transition: transform 0.2s ease;
}

.oopz-user-prefs__toggle input:checked + .oopz-user-prefs__toggle-ui {
 background: rgba(61, 217, 122, 0.85);
}

.oopz-user-prefs__toggle input:checked + .oopz-user-prefs__toggle-ui::after {
 transform: translateX(18px);
}

.oopz-user-prefs__toggle input:disabled + .oopz-user-prefs__toggle-ui {
 opacity: 0.45;
}

.oopz-user-prefs__toggle-label {
 font-size: 0.78rem;
 line-height: 1.25;
 color: rgba(200, 228, 240, 0.88);
}

.oopz-user-prefs__hint {
 margin: 8px 0 0;
 font-size: 0.72rem;
 line-height: 1.4;
 color: rgba(168, 216, 232, 0.65);
}

.oopz-bind-backdrop {
 position: fixed;
 inset: 0;
 z-index: 12000;
 display: flex;
 align-items: center;
 justify-content: center;
 padding: 16px;
 background: rgba(0, 8, 18, 0.72);
 backdrop-filter: blur(4px);
}

.oopz-bind-backdrop[hidden] {
 display: none !important;
}

.oopz-bind-panel {
 width: min(420px, 100%);
 padding: 16px 18px 18px;
 border-radius: 12px;
 border: 1px solid rgba(94, 233, 255, 0.22);
 background: linear-gradient(165deg, rgba(12, 32, 52, 0.98), rgba(8, 20, 36, 0.98));
 box-shadow: 0 16px 48px rgba(0, 0, 0, 0.45);
}

.oopz-bind-panel-head {
 display: flex;
 align-items: center;
 justify-content: space-between;
 gap: 12px;
 margin-bottom: 10px;
}

.oopz-bind-panel-head h3 {
 margin: 0;
 font-size: 1rem;
 font-weight: 700;
 color: #eef8ff;
}

.oopz-bind-close {
 border: none;
 background: none;
 color: rgba(200, 230, 255, 0.75);
 font-size: 1.4rem;
 line-height: 1;
 cursor: pointer;
 padding: 0 4px;
}

.oopz-bind-close:hover {
 color: #fff;
}

.oopz-bind-bound,
.oopz-bind-online {
 margin: 0 0 10px;
 font-size: 0.86rem;
 color: rgba(210, 235, 255, 0.92);
 word-break: break-all;
}

.oopz-bind-online {
 font-size: 0.8rem;
 color: rgba(168, 216, 232, 0.82);
}

.oopz-bind-form-row {
 margin-bottom: 8px;
}

.oopz-bind-input {
 width: 100%;
 box-sizing: border-box;
 padding: 8px 10px;
 border-radius: 8px;
 border: 1px solid rgba(95, 184, 255, 0.28);
 background: rgba(0, 0, 0, 0.28);
 color: #eef8ff;
 font-size: 0.9rem;
}

.oopz-bind-hint,
.oopz-bind-cooldown {
 margin: 0 0 12px;
 font-size: 0.76rem;
 line-height: 1.45;
 color: rgba(160, 190, 210, 0.78);
}

.oopz-bind-cooldown {
 color: #ffb0b0;
}

.oopz-bind-actions {
 display: flex;
 justify-content: flex-end;
}

.oopz-bind-submit {
 padding: 7px 16px;
 border-radius: 8px;
 border: 1px solid rgba(94, 233, 255, 0.4);
 background: rgba(94, 233, 255, 0.16);
 color: #b8f0ff;
 font-size: 0.86rem;
 font-weight: 700;
 cursor: pointer;
}

.oopz-bind-submit:hover:not(:disabled) {
 background: rgba(94, 233, 255, 0.26);
}

.oopz-bind-submit:disabled {
 opacity: 0.55;
 cursor: not-allowed;
}

body.oopz-bind-open {
 overflow: hidden;
}

.oopz-bridge-lead {
 margin: 6px 0 0;
 font-size: 0.92rem;
 color: rgba(168, 216, 232, 0.72);
}

.oopz-bridge-status {
 display: inline-flex;
 align-items: center;
 box-sizing: border-box;
 gap: 0.55em;
 min-width: 0;
 flex-shrink: 1;
 padding: var(--oopz-head-pill-py) var(--oopz-head-pill-px);
 border-radius: 999px;
 border: 1px solid rgba(95, 184, 255, 0.28);
 background: rgba(10, 28, 48, 0.55);
 font-size: var(--oopz-head-pill-fs);
 line-height: 1.2;
}

.oopz-bridge-status-dot {
 width: 0.42em;
 height: 0.42em;
 min-width: 7px;
 min-height: 7px;
 border-radius: 50%;
 flex-shrink: 0;
 background: rgba(255, 120, 120, 0.9);
 box-shadow: 0 0 8px rgba(255, 100, 100, 0.45);
}

.oopz-bridge-status-dot.is-online {
 background: #3dd97a;
 box-shadow: 0 0 8px rgba(61, 217, 122, 0.55);
}

.oopz-bridge-status-text {
 font-size: 1em;
 font-weight: 700;
 color: rgba(220, 240, 255, 0.92);
 letter-spacing: 0.02em;
 line-height: 1.2;
}

.oopz-bridge-panel {
 position: relative;
 border-radius: var(--home-module-radius);
 border: 1px solid var(--home-module-border);
 background: var(--home-surface-tint);
 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
 overflow: visible;
}

.oopz-bridge-panel-bar {
 display: flex;
 align-items: center;
 gap: 14px;
 padding: 1rem 1.3rem;
 border-bottom: 1px solid rgba(94, 233, 255, 0.2);
 background: transparent;
}

.oopz-bridge-panel-bar-icon {
 width: 0;
 height: 0;
 border-top: 9px solid transparent;
 border-bottom: 9px solid transparent;
 border-left: 15px solid #5ee9ff;
}

.oopz-bridge-panel-bar-title {
 font-size: var(--oopz-fs-lg);
 font-weight: 700;
 letter-spacing: 0.08em;
 color: #7af8ff;
}

.oopz-bridge-body {
 display: flex;
 flex-direction: column;
 gap: 0;
 padding: 16px 18px 18px;
}

.oopz-bridge-col {
 display: flex;
 flex-direction: column;
 min-width: 0;
}

.oopz-bridge-col--channels {
 padding-bottom: 16px;
}

.oopz-bridge-col--announce {
 padding-top: 16px;
 border-top: 1px solid rgba(94, 233, 255, 0.12);
}

.oopz-bridge-col-title {
 margin: 0 0 10px;
 font-size: var(--oopz-fs-md);
 font-weight: 700;
 letter-spacing: 0.06em;
 color: rgba(200, 230, 255, 0.82);
 flex-shrink: 0;
}

.oopz-bridge-scroll {
 min-width: 0;
}

.oopz-bridge-area {
 margin-bottom: 10px;
}

.oopz-bridge-area:last-child {
 margin-bottom: 0;
}

.oopz-bridge-area-name {
 margin: 0 0 6px;
 font-size: 0.8rem;
 font-weight: 700;
 color: rgba(200, 230, 255, 0.78);
}

.oopz-bridge-channel-grid {
 display: grid;
 grid-template-columns: repeat(auto-fill, minmax(var(--oopz-grid-min), 1fr));
 gap: 12px;
 align-items: start;
}

.oopz-bridge-channel {
 margin: 0;
 padding: 12px 13px 10px;
 border-radius: 11px;
 border: 1px solid rgba(95, 184, 255, 0.12);
 background: rgba(0, 0, 0, 0.16);
 min-width: 0;
 height: var(--oopz-card-h);
 box-sizing: border-box;
 display: flex;
 flex-direction: column;
 overflow: visible;
}

.oopz-bridge-channel.is-expanded {
 height: auto;
 max-height: var(--oopz-card-max-h);
}

.oopz-bridge-channel-head {
 display: flex;
 align-items: flex-start;
 justify-content: space-between;
 gap: 6px;
 margin-bottom: 4px;
 flex-shrink: 0;
}

.oopz-bridge-channel-name {
 margin: 0;
 flex: 1 1 auto;
 min-width: 0;
 font-size: var(--oopz-fs-sm);
 font-weight: 700;
 line-height: 1.35;
 color: #eef8ff;
 word-break: break-word;
}

.oopz-bridge-channel-actions {
 display: flex;
 flex-shrink: 0;
 align-items: center;
 gap: 4px;
 margin-top: 1px;
}

.oopz-bridge-channel.has-toggle:not(.is-expanded) .oopz-bridge-member-scroll {
 -webkit-mask-image: linear-gradient(180deg, #000 72%, transparent 100%);
 mask-image: linear-gradient(180deg, #000 72%, transparent 100%);
}

.oopz-bridge-channel-toggle {
 flex-shrink: 0;
 display: inline-flex;
 align-items: center;
 justify-content: center;
 margin: 0;
 width: 22px;
 height: 22px;
 padding: 0;
 box-sizing: border-box;
 border: none;
 border-radius: 5px;
 background: rgba(94, 233, 255, 0.1);
 color: rgba(168, 216, 232, 0.92);
 line-height: 0;
 cursor: pointer;
}

.oopz-bridge-channel-toggle:hover {
 background: rgba(94, 233, 255, 0.2);
 color: #dff6ff;
}

.oopz-bridge-channel-toggle-icon {
 width: 0;
 height: 0;
 border-left: 5px solid transparent;
 border-right: 5px solid transparent;
 border-top: 6px solid currentColor;
 transition: transform 0.18s ease;
}

.oopz-bridge-channel.is-expanded .oopz-bridge-channel-toggle-icon {
 transform: rotate(180deg);
}

.oopz-bridge-member-scroll {
 flex: 1 1 auto;
 min-height: 0;
 max-height: var(--oopz-member-h);
 overflow: hidden;
}

.oopz-bridge-channel.is-expanded .oopz-bridge-member-scroll {
 max-height: var(--oopz-member-max-h);
 overflow-x: hidden;
 overflow-y: auto;
 scrollbar-width: thin;
 scrollbar-color: rgba(94, 233, 255, 0.35) transparent;
}

.oopz-bridge-channel-count {
 flex-shrink: 0;
 min-width: 1.5rem;
 margin: 0;
 padding: 2px 7px;
 border-radius: 999px;
 font-size: var(--oopz-fs-xs);
 font-weight: 700;
 text-align: center;
 color: rgba(168, 216, 232, 0.88);
 background: rgba(94, 233, 255, 0.1);
 border: 1px solid rgba(94, 233, 255, 0.16);
}

.oopz-bridge-member-list {
 list-style: none;
 margin: 0;
 padding: 0;
 display: flex;
 flex-direction: column;
 gap: 5px;
 width: 100%;
}

.oopz-bridge-member {
 position: relative;
 display: flex;
 align-items: center;
 gap: 9px;
 width: 100%;
 min-width: 0;
 box-sizing: border-box;
 padding: 5px 9px;
 border-radius: 8px;
 border: 1px solid rgba(95, 184, 255, 0.08);
 background: rgba(0, 0, 0, 0.18);
 font-size: var(--oopz-fs-xs);
 line-height: 1.35;
 color: rgba(210, 235, 255, 0.92);
}

.oopz-bridge-member.has-id-tip {
 cursor: help;
}

.oopz-bridge-member-avatar-wrap {
 position: relative;
 width: var(--oopz-avatar);
 height: var(--oopz-avatar);
 flex-shrink: 0;
}

.oopz-bridge-member-avatar {
 width: var(--oopz-avatar);
 height: var(--oopz-avatar);
 border-radius: 50%;
 flex-shrink: 0;
 object-fit: cover;
 display: block;
}

.oopz-bridge-member-avatar-wrap .oopz-bridge-member-avatar--fallback {
 position: absolute;
 inset: 0;
 display: none;
}

.oopz-bridge-member-avatar-wrap.is-fallback .oopz-bridge-member-avatar:not(.oopz-bridge-member-avatar--fallback) {
 display: none;
}

.oopz-bridge-member-avatar-wrap.is-fallback .oopz-bridge-member-avatar--fallback {
 display: inline-flex;
}

.oopz-bridge-member-avatar--fallback {
 align-items: center;
 justify-content: center;
 background: linear-gradient(145deg, rgba(94, 233, 255, 0.22), rgba(60, 120, 180, 0.28));
 color: #dff6ff;
 font-size: 0.78rem;
 font-weight: 700;
 line-height: 1;
 text-transform: uppercase;
}

.oopz-bridge-member-name {
 flex: 1 1 auto;
 min-width: 0;
 overflow: hidden;
 text-overflow: ellipsis;
 white-space: nowrap;
}

.oopz-bridge-member-tip {
 position: absolute;
 left: 50%;
 top: calc(100% + 6px);
 bottom: auto;
 transform: translateX(-50%) translateY(-3px);
 padding: 5px 10px;
 border-radius: 7px;
 font-size: 0.76rem;
 font-weight: 600;
 line-height: 1.35;
 white-space: nowrap;
 color: #e8f7ff;
 background: rgba(10, 24, 42, 0.98);
 border: 1px solid rgba(94, 233, 255, 0.32);
 box-shadow: 0 6px 18px rgba(0, 0, 0, 0.38);
 opacity: 0;
 visibility: hidden;
 pointer-events: none;
 transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s;
 z-index: 30;
}

.oopz-bridge-member-scroll .oopz-bridge-member-tip {
 display: none;
}

.oopz-bridge-member-tip--float {
 position: fixed;
 left: 0;
 top: 0;
 z-index: 20000;
 opacity: 1;
 visibility: visible;
 transform: none;
 transition: none;
}

.oopz-bridge-member-tip--float[hidden] {
 display: none !important;
}

.oopz-bridge-member-tip--float.is-above::after {
 bottom: auto;
 top: 100%;
 border-bottom-color: transparent;
 border-top-color: rgba(94, 233, 255, 0.32);
}

.oopz-bridge-member-tip--float.is-copy-feedback {
 color: #b8ffd4;
 border-color: rgba(61, 217, 122, 0.45);
 background: rgba(8, 32, 24, 0.98);
 box-shadow: 0 6px 18px rgba(0, 0, 0, 0.38), 0 0 0 1px rgba(61, 217, 122, 0.12);
}

.oopz-bridge-member-tip--float.is-copy-feedback::after {
 border-bottom-color: rgba(61, 217, 122, 0.45);
}

.oopz-bridge-member-tip--float.is-copy-feedback.is-above::after {
 border-bottom-color: transparent;
 border-top-color: rgba(61, 217, 122, 0.45);
}

.oopz-bridge-member-tip::after {
 content: '';
 position: absolute;
 bottom: 100%;
 top: auto;
 left: 50%;
 transform: translateX(-50%);
 border: 5px solid transparent;
 border-bottom-color: rgba(94, 233, 255, 0.32);
}

.oopz-bridge-member.has-id-tip:hover .oopz-bridge-member-tip,
.oopz-bridge-member.has-id-tip:focus-within .oopz-bridge-member-tip {
 opacity: 1;
 visibility: visible;
 transform: translateX(-50%) translateY(0);
}

.oopz-bridge-announce-scroll,
.oopz-bridge-log-scroll {
 max-height: var(--oopz-log-h);
 overflow-y: auto;
 scrollbar-width: thin;
 scrollbar-color: rgba(94, 233, 255, 0.35) transparent;
}

.oopz-bridge-log-summary {
 margin: 0 0 8px;
 padding: 0 2px;
 font-size: 0.72rem;
 line-height: 1.3;
 color: rgba(150, 180, 205, 0.72);
}

.oopz-bridge-log-sections {
 display: flex;
 flex-direction: column;
 gap: 12px;
}

.oopz-bridge-log-section-title {
 margin: 0 0 6px;
 padding: 0 2px;
 font-size: 0.74rem;
 font-weight: 600;
 line-height: 1.3;
 color: rgba(180, 210, 240, 0.88);
 display: flex;
 align-items: center;
 gap: 6px;
}

.oopz-bridge-log-section-count {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 min-width: 1.15rem;
 padding: 0 5px;
 border-radius: 999px;
 font-size: 0.62rem;
 font-weight: 700;
 color: rgba(200, 220, 240, 0.88);
 background: rgba(94, 233, 255, 0.08);
 border: 1px solid rgba(94, 233, 255, 0.12);
}

.oopz-bridge-log-timeline {
 list-style: none;
 margin: 0;
 padding: 0;
 display: flex;
 flex-direction: column;
 gap: 0;
 border: 1px solid rgba(95, 184, 255, 0.08);
 border-radius: 8px;
 overflow: hidden;
 background: rgba(0, 0, 0, 0.12);
}

.oopz-bridge-log-row {
 display: grid;
 grid-template-columns: auto auto 1fr auto;
 align-items: center;
 gap: 8px;
 padding: 6px 10px;
 border-bottom: 1px solid rgba(95, 184, 255, 0.06);
 min-width: 0;
}

.oopz-bridge-log-row:last-child {
 border-bottom: none;
}

.oopz-bridge-log-row:nth-child(even) {
 background: rgba(255, 255, 255, 0.02);
}

.oopz-bridge-log-row-time {
 flex: 0 0 auto;
 font-size: 0.68rem;
 font-variant-numeric: tabular-nums;
 color: rgba(150, 180, 205, 0.75);
 white-space: nowrap;
}

.oopz-bridge-log-row-type {
 flex: 0 0 auto;
 width: 1.1rem;
 height: 1.1rem;
 display: inline-flex;
 align-items: center;
 justify-content: center;
 border-radius: 4px;
 font-size: 0.62rem;
 font-weight: 700;
 line-height: 1;
}

.oopz-bridge-log-row--broadcast .oopz-bridge-log-row-type,
.oopz-bridge-log-row--enter .oopz-bridge-log-row-type,
.oopz-bridge-log-row--enter_announced .oopz-bridge-log-row-type,
.oopz-bridge-log-row--enter_skipped .oopz-bridge-log-row-type,
.oopz-bridge-log-row--voice .oopz-bridge-log-row-type {
 color: #c9b8ff;
 background: rgba(167, 139, 250, 0.14);
}

.oopz-bridge-log-row--checkin .oopz-bridge-log-row-type {
 color: #9ef0bc;
 background: rgba(61, 217, 122, 0.12);
}

.oopz-bridge-log-row-msg {
 min-width: 0;
 font-size: 0.78rem;
 line-height: 1.35;
 color: rgba(230, 245, 255, 0.92);
 overflow: hidden;
 text-overflow: ellipsis;
 white-space: nowrap;
}

.oopz-bridge-log-row-count {
 flex: 0 0 auto;
 padding: 1px 6px;
 border-radius: 999px;
 font-size: 0.65rem;
 font-weight: 700;
 font-variant-numeric: tabular-nums;
 color: rgba(200, 220, 240, 0.9);
 background: rgba(94, 233, 255, 0.1);
 border: 1px solid rgba(94, 233, 255, 0.15);
}

.oopz-bridge-log-list {
 list-style: none;
 margin: 0;
 padding: 0;
 display: grid;
 grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
 gap: 5px;
 align-items: stretch;
}

.oopz-bridge-log {
 position: relative;
 min-width: 0;
 padding: 4px 6px;
 border-radius: 6px;
 border: 1px solid rgba(95, 184, 255, 0.1);
 background: rgba(0, 0, 0, 0.14);
}

.oopz-bridge-log-head {
 display: flex;
 align-items: center;
 justify-content: space-between;
 gap: 4px;
 margin-bottom: 2px;
 min-width: 0;
}

.oopz-bridge-log-time {
 flex: 0 1 auto;
 min-width: 0;
 font-size: 0.58rem;
 line-height: 1.15;
 color: rgba(150, 180, 205, 0.72);
 white-space: nowrap;
 overflow: hidden;
 text-overflow: ellipsis;
}

.oopz-bridge-log--checkin {
 border-color: rgba(61, 217, 122, 0.14);
}

.oopz-bridge-log--voice {
 border-color: rgba(95, 184, 255, 0.12);
}

.oopz-bridge-log-tag {
 display: inline-block;
 flex: 0 0 auto;
 margin-bottom: 0;
 padding: 0 5px;
 border-radius: 999px;
 font-size: 0.58rem;
 font-weight: 700;
 letter-spacing: 0.01em;
 line-height: 1.35;
}

.oopz-bridge-log-tag--checkin {
 color: #9ef0bc;
 background: rgba(61, 217, 122, 0.12);
 border: 1px solid rgba(61, 217, 122, 0.25);
}

.oopz-bridge-log-tag--voice {
 color: #9ee8ff;
 background: rgba(94, 233, 255, 0.1);
 border: 1px solid rgba(94, 233, 255, 0.22);
}

.oopz-bridge-log-text {
 margin: 0;
 font-size: 0.72rem;
 line-height: 1.25;
 color: rgba(230, 245, 255, 0.94);
 display: -webkit-box;
 -webkit-line-clamp: 2;
 line-clamp: 2;
 -webkit-box-orient: vertical;
 overflow: hidden;
 word-break: break-word;
}

.oopz-bridge-log-meta {
 margin: 1px 0 0;
 font-size: 0.58rem;
 line-height: 1.15;
 color: rgba(150, 180, 205, 0.62);
 white-space: nowrap;
 overflow: hidden;
 text-overflow: ellipsis;
}

.oopz-bridge-announce-list {
 list-style: none;
 margin: 0;
 padding: 0;
 display: grid;
 grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
 gap: 8px;
}

.oopz-bridge-announce {
 padding: 8px 9px;
 border-radius: 8px;
 border: 1px solid rgba(95, 184, 255, 0.1);
 background: rgba(0, 0, 0, 0.14);
}

.oopz-bridge-announce-text {
 margin: 0 0 2px;
 font-size: 0.8rem;
 line-height: 1.4;
 color: rgba(230, 245, 255, 0.94);
}

.oopz-bridge-announce-meta {
 margin: 0;
 font-size: 0.7rem;
 color: rgba(150, 180, 205, 0.68);
}

.oopz-bridge-audio-btn {
 margin-top: 5px;
 padding: 3px 10px;
 border-radius: 7px;
 border: 1px solid rgba(95, 184, 255, 0.3);
 background: rgba(95, 184, 255, 0.08);
 color: #8ee0ff;
 font-size: var(--oopz-fs-xs);
 cursor: pointer;
}

.oopz-bridge-audio-btn:hover {
 background: rgba(95, 184, 255, 0.18);
}

.oopz-bridge-empty {
 margin: 0;
 font-size: var(--oopz-fs-sm);
 color: rgba(160, 190, 210, 0.6);
}

.oopz-bridge-error {
 margin: 0 0 12px;
 padding: 0.65rem 0.85rem;
 border-radius: 8px;
 border: 1px solid rgba(255, 120, 120, 0.35);
 background: rgba(80, 20, 30, 0.35);
 color: #ffb0b0;
 font-size: 0.85rem;
}

.oopz-command-guide.oopz-bridge-panel {
 margin-top: var(--home-section-block-gap);
}

.oopz-command-guide.is-staff-locked .oopz-command-guide__summary {
 cursor: not-allowed;
 opacity: 0.72;
}

.oopz-command-guide.is-staff-locked .oopz-command-guide__summary:hover {
 background: transparent;
}

.oopz-command-guide.is-staff-locked .oopz-command-guide__meta {
 color: rgba(255, 176, 120, 0.88);
}

.oopz-command-guide__summary {
 display: flex;
 align-items: center;
 gap: 14px;
 padding: 1rem 1.3rem;
 cursor: pointer;
 list-style: none;
 user-select: none;
 transition: background 0.15s ease;
}

.oopz-command-guide__summary:hover {
 background: rgba(94, 233, 255, 0.04);
}

.oopz-command-guide__summary::-webkit-details-marker {
 display: none;
}

.oopz-command-guide__summary::after {
 content: '';
 width: 0;
 height: 0;
 margin-left: auto;
 border-left: 6px solid transparent;
 border-right: 6px solid transparent;
 border-top: 7px solid rgba(168, 216, 232, 0.85);
 transition: transform 0.18s ease;
}

.oopz-command-guide[open] .oopz-command-guide__summary {
 border-bottom: 1px solid rgba(94, 233, 255, 0.12);
}

.oopz-command-guide[open] .oopz-command-guide__summary::after {
 transform: rotate(180deg);
}

.oopz-command-guide__meta {
 margin-left: 0.35rem;
 font-size: var(--oopz-fs-sm);
 font-weight: 500;
 letter-spacing: 0.04em;
 color: rgba(168, 216, 232, 0.55);
}

.oopz-command-guide__inner {
 padding: 16px 18px 18px;
}

.oopz-command-guide__hint {
 margin: 0 0 0.85rem;
 font-size: var(--oopz-fs-sm);
 color: rgba(168, 216, 232, 0.72);
}

.oopz-command-guide__body {
 display: grid;
 gap: 0.85rem;
}

.oopz-command-guide__section {
 margin: 0;
 padding: 12px 13px;
 border-radius: 11px;
 border: 1px solid rgba(95, 184, 255, 0.12);
 background: rgba(0, 0, 0, 0.16);
}

.oopz-command-guide__section-title {
 margin: 0 0 0.45rem;
 font-size: var(--oopz-fs-sm);
 font-weight: 700;
 letter-spacing: 0.06em;
 color: rgba(200, 230, 255, 0.82);
}

.oopz-command-guide__list {
 margin: 0;
 padding-left: 1.05rem;
 color: rgba(210, 230, 240, 0.88);
 font-size: var(--oopz-fs-sm);
 line-height: 1.55;
}

.oopz-command-guide__list li + li {
 margin-top: 0.2rem;
}

.oopz-command-guide__examples {
 display: flex;
 flex-wrap: wrap;
 gap: 0.45rem;
}

.oopz-command-guide__example {
 display: inline-block;
 padding: 0.28rem 0.55rem;
 border-radius: 6px;
 background: rgba(94, 233, 255, 0.08);
 border: 1px solid rgba(95, 184, 255, 0.14);
 font-size: 0.78rem;
 color: rgba(220, 240, 255, 0.92);
}

/* --- 首页舰员交流区（论坛式） --- */
.community-section {
 position: relative;
 z-index: 2;
 margin-top: var(--home-section-block-gap);
 padding: 0 var(--home-content-pad-x) var(--home-section-block-gap);
 font-size: 17px;
 background: transparent;
}

.community-wrap {
 max-width: var(--home-content-max);
 width: 100%;
 margin: 0 auto;
}

.community-head {
 display: flex;
 flex-wrap: wrap;
 align-items: flex-end;
 justify-content: space-between;
 gap: 16px 24px;
 margin-bottom: 28px;
}

.community-head-text {
 text-align: left;
}

.community-title {
 margin: 0;
 font-size: clamp(28px, 4vw, 40px);
 font-weight: 600;
 color: #fff;
 letter-spacing: 0.04em;
 text-shadow: 0 0 24px rgba(84, 173, 247, 0.35);
}

.community-stack {
 display: flex;
 flex-direction: column;
 gap: var(--home-section-block-gap);
 width: 100%;
}

.community-panel-chat {
 margin-bottom: 0;
 flex: 1;
 min-height: 0;
 max-height: 900px;
}

.community-chat-split {
 position: relative;
 display: flex;
 flex-direction: row;
 align-items: stretch;
 flex: 1;
 min-height: 0;
 min-width: 0;
 max-height: 100%;
 /* 勿同时写 overflow-x: hidden + overflow-y: visible：规范会把 y 算成 auto，
 绝对定位的下拉菜单会撑出垂直滚动条（系统默认白条）。横向靠子项 min-width:0 收敛。 */
 overflow: visible;
}

.community-chat-roster {
 flex: 0 0 360px;
 width: 360px;
 min-width: 300px;
 flex-shrink: 0;
 display: flex;
 flex-direction: column;
 border-right: 1px solid rgba(84, 173, 247, 0.15);
 background: transparent;
 min-height: 0;
 overflow: visible;
}

.community-chat-roster-inner {
 flex: 1;
 min-height: 0;
 padding: 10px 8px 12px;
 display: flex;
 flex-direction: column;
 gap: 6px;
}

.community-chat-roster-inner[hidden] {
 display: none !important;
}

.community-chat-roster-guest {
 padding: 20px 12px;
 text-align: center;
 font-size: 14px;
 color: rgba(180, 210, 230, 0.75);
 line-height: 1.55;
}

.community-chat-roster-guest[hidden] {
 display: none !important;
}

.community-chat-roster-sub {
 font-size: 14px;
 font-weight: 700;
 letter-spacing: 0.08em;
 color: rgba(159, 216, 255, 0.88);
 text-transform: none;
 margin: 14px 6px 8px;
}

.community-chat-roster-search {
 width: 100%;
 box-sizing: border-box;
 margin: 0 0 8px;
 padding: 8px 10px;
 border-radius: 8px;
 border: 1px solid rgba(84, 173, 247, 0.28);
 background: var(--navbar-bg);
 color: #e8f4ff;
 font-size: 14px;
 font-family: inherit;
 outline: none;
}

.community-chat-roster-search::placeholder {
 color: rgba(180, 210, 230, 0.45);
}

.community-chat-roster-search:focus {
 border-color: rgb(84, 173, 247);
 box-shadow: 0 0 0 2px rgba(84, 173, 247, 0.15);
}

/* 成员行用 hidden 过滤时，须压过 .community-chat-roster-item 的 display:flex */
.community-chat-roster-inner .community-chat-roster-peer[hidden] {
 display: none !important;
}

.community-chat-roster-item {
 display: flex;
 align-items: center;
 gap: 8px;
 width: 100%;
 padding: 8px 10px;
 border-radius: 8px;
 border: 1px solid transparent;
 background: transparent;
 color: #dff6ff;
 cursor: pointer;
 text-align: left;
 font: inherit;
 transition: background 0.15s ease, border-color 0.15s ease;
}

.community-chat-roster-item:hover {
 background: rgba(84, 173, 247, 0.1);
}

.community-chat-roster-item.is-active {
 border-color: rgba(84, 173, 247, 0.45);
 background: rgba(84, 173, 247, 0.16);
}

.community-chat-roster-fleet {
 position: relative;
 padding-right: 20px;
 font-weight: 700;
 letter-spacing: 0.06em;
 justify-content: center;
}

.community-chat-unread-badge {
 position: absolute;
 top: 9px;
 right: 11px;
 width: 9px;
 height: 9px;
 border-radius: 50%;
 background: #ff4d4d;
 box-shadow: 0 0 0 2px rgba(12, 28, 42, 0.95);
 pointer-events: none;
}

.community-chat-unread-badge[hidden] {
 display: none !important;
}

.community-chat-unread-badge--peer {
 position: static;
 margin-left: auto;
 width: 8px;
 height: 8px;
 flex-shrink: 0;
 box-shadow: 0 0 0 2px rgba(12, 28, 42, 0.85);
}

.community-chat-roster-peer .community-chat-roster-label {
 flex: 1;
 font-size: 14px;
 font-weight: 600;
 overflow: hidden;
 text-overflow: ellipsis;
 white-space: nowrap;
 min-width: 0;
}

.community-chat-roster-avatar {
 flex-shrink: 0;
 width: 36px;
 height: 36px;
 border-radius: 50%;
 overflow: hidden;
 background: linear-gradient(145deg, rgb(84, 173, 247), rgb(30, 77, 107));
}

.community-chat-roster-avatar-img {
 width: 100%;
 height: 100%;
 object-fit: cover;
 display: block;
}

.community-chat-roster-error {
 font-size: 13px;
 color: #ffb4b4;
 padding: 8px;
}

.community-chat-main {
 position: relative;
 flex: 1;
 min-width: 0;
 display: flex;
 flex-direction: column;
 min-height: 0;
 background: transparent;
}

.community-chat-main-title {
 flex-shrink: 0;
 padding: 10px 14px;
 font-size: 15px;
 font-weight: 700;
 letter-spacing: 0.06em;
 color: #9fd8ff;
 border-bottom: 1px solid rgba(84, 173, 247, 0.15);
 background: transparent;
}

.community-chat-main .community-chat-view {
 flex: 1;
 min-height: 0;
}

@media (max-width: 768px) {
 .community-chat-split {
 flex-direction: column;
 min-height: 0;
 }

 .community-chat-roster {
 flex: 0 0 auto;
 width: 100%;
 min-width: 0;
 max-height: clamp(300px, 46vh, 420px);
 border-right: none;
 border-bottom: 1px solid rgba(84, 173, 247, 0.15);
 overflow: hidden;
 }

 .community-chat-roster-inner {
 flex: 1 1 auto;
 min-height: 0;
 overflow-y: auto;
 -webkit-overflow-scrolling: touch;
 }

 .community-chat-roster-sub {
 margin: 10px 6px 6px;
 }
}

.community-panel-forum {
 margin-top: 0;
 box-shadow: none;
 max-height: 1200px;
 min-height: 0;
 display: flex;
 flex-direction: column;
}

.community-forum-body {
 position: relative;
 display: flex;
 flex-direction: column;
 flex: 1;
 min-height: clamp(300px, 40vh, 420px);
}

.community-panel-forum .community-feed {
 flex: 1;
 min-height: clamp(160px, 22vh, 260px);
}

.community-panel {
 display: flex;
 flex-direction: column;
 width: 100%;
 box-sizing: border-box;
 min-width: 0;
 border-radius: var(--home-module-radius);
 background: var(--navbar-bg);
 border: 1px solid var(--home-module-border);
 overflow: hidden;
}

.community-panel-head,
.community-col-head {
 display: flex;
 align-items: center;
 justify-content: space-between;
 gap: 12px;
 padding: 12px 16px;
 border-bottom: 1px solid rgba(84, 173, 247, 0.16);
 background: transparent;
}

.community-panel-head {
 flex-shrink: 0;
}

.community-col-head {
 flex-shrink: 0;
}

.community-panel-forum .community-panel-head {
 padding: 8px 12px;
}

.community-panel-head-chat,
.community-col-head-chat {
 flex-wrap: wrap;
}

.community-panel-title {
 font-size: 16px;
 font-weight: 600;
 letter-spacing: 0.06em;
 color: #9fd8ff;
 text-transform: uppercase;
}

.community-composer-inline {
 width: 100%;
 box-sizing: border-box;
 margin: 0;
 border: none;
 border-radius: 0;
 border-bottom: 1px solid rgba(84, 173, 247, 0.06);
 box-shadow: none;
 background: transparent;
}

.community-dropzone {
 transition: box-shadow 0.15s ease, outline-color 0.15s ease;
}

.community-dropzone.community-dropzone--active {
 box-shadow: inset 0 0 0 2px rgba(84, 173, 247, 0.55);
 border-radius: 8px;
}

.community-scroller,
.community-chat-roster-inner,
.community-chat-mention-pop,
.community-chat-emoji-pop,
.community-chat-input,
.community-post-textarea {
 overflow-y: auto;
 overflow-x: hidden;
 overscroll-behavior: auto;
 scrollbar-width: thin;
 scrollbar-color: rgba(84, 173, 247, 0.45) rgba(0, 0, 0, 0.25);
}

.community-scroller::-webkit-scrollbar,
.community-chat-roster-inner::-webkit-scrollbar,
.community-chat-mention-pop::-webkit-scrollbar,
.community-chat-emoji-pop::-webkit-scrollbar,
.community-chat-input::-webkit-scrollbar,
.community-post-textarea::-webkit-scrollbar {
 width: 8px;
}

.community-scroller::-webkit-scrollbar-thumb,
.community-chat-roster-inner::-webkit-scrollbar-thumb,
.community-chat-mention-pop::-webkit-scrollbar-thumb,
.community-chat-emoji-pop::-webkit-scrollbar-thumb,
.community-chat-input::-webkit-scrollbar-thumb,
.community-post-textarea::-webkit-scrollbar-thumb {
 background: rgba(84, 173, 247, 0.4);
 border-radius: 4px;
}

.community-scroller::-webkit-scrollbar-track,
.community-chat-roster-inner::-webkit-scrollbar-track,
.community-chat-mention-pop::-webkit-scrollbar-track,
.community-chat-emoji-pop::-webkit-scrollbar-track,
.community-chat-input::-webkit-scrollbar-track,
.community-post-textarea::-webkit-scrollbar-track {
 background: rgba(0, 0, 0, 0.2);
}

.community-scroller.community-scroller-chat {
 width: 100%;
 box-sizing: border-box;
 min-height: 0;
}

.community-panel-forum .community-scroller.community-scroller-feed {
 flex: 1;
 min-height: 0;
 height: auto;
 max-height: none;
}

.community-scroller.community-scroller-feed.community-feed--has-posts {
 min-height: 0;
}

.community-col {
 display: flex;
 flex-direction: column;
 min-width: 0;
 border-radius: 12px;
 background: var(--navbar-bg);
 border: 1px solid rgba(84, 173, 247, 0.09);
 overflow: hidden;
}

.community-col-title {
 font-size: 14px;
 font-weight: 600;
 letter-spacing: 0.06em;
 color: #9fd8ff;
 text-transform: uppercase;
}

.community-composer {
 padding: 18px 18px 16px;
 border-radius: 10px;
 background: transparent;
 border: none;
 box-shadow: none;
}

.community-panel-forum .community-composer {
 flex-shrink: 0;
 padding: 10px 12px;
}

.community-auth-hint {
 margin: 0 0 12px;
 padding: 12px 16px;
 border-radius: 8px;
 background: rgba(255, 193, 7, 0.12);
 border: 1px solid rgba(255, 193, 7, 0.35);
 color: #ffe6a8;
 font-size: 16px;
}

.community-panel-forum .community-auth-hint {
 margin: 0 0 8px;
 padding: 8px 12px;
 font-size: 15px;
}

.community-send-split {
 position: relative;
 display: inline-flex;
 align-items: stretch;
 flex-shrink: 0;
}

.community-send-split--forum {
 flex-shrink: 0;
}

.community-send-split .community-chat-send,
.community-send-split .community-post-btn--main {
 border-radius: 10px 0 0 10px;
 margin-left: 0;
}

/* 聊天 / 发帖：输入框与「发送 + 下拉」同高 */
.community-chat-compose-row .community-send-split .community-chat-send.primary-btn,
.community-post-compose-row .community-send-split .community-post-btn--main.primary-btn {
 height: 48px;
 min-height: 48px;
 padding: 0 18px;
 display: inline-flex;
 align-items: center;
 justify-content: center;
 box-sizing: border-box;
}

.community-chat-compose-row .community-send-split__more,
.community-post-compose-row .community-send-split__more {
 height: 48px;
 min-height: 48px;
 align-self: center;
 box-sizing: border-box;
}

.community-send-split .primary-btn:hover:not(:disabled) {
 transform: none;
 filter: brightness(1.05);
}

.community-send-split__more {
 flex-shrink: 0;
 min-width: 44px;
 padding: 0 12px;
 border: none;
 border-radius: 0 10px 10px 0;
 background-color: rgb(84, 173, 247);
 color: #0a1c2a;
 cursor: pointer;
 display: inline-flex;
 align-items: center;
 justify-content: center;
 border-left: 1px solid rgba(10, 28, 42, 0.25);
 transition: filter 0.2s ease, opacity 0.2s ease;
}

.community-send-split__more:hover:not(:disabled) {
 transform: none;
 filter: brightness(1.08);
}

.community-send-split__more:disabled {
 opacity: 0.45;
 cursor: not-allowed;
}

.community-send-split__caret {
 width: 0;
 height: 0;
 border-left: 5px solid transparent;
 border-right: 5px solid transparent;
 border-top: 6px solid currentColor;
 margin-top: 2px;
}

.community-send-menu {
 position: absolute;
 right: 0;
 top: calc(100% + 8px);
 min-width: 168px;
 padding: 6px;
 border-radius: 10px;
 background: rgba(14, 40, 62, 0.98);
 border: 1px solid rgba(84, 173, 247, 0.35);
 box-shadow: 0 12px 28px rgba(0, 0, 0, 0.45);
 z-index: 80;
}

.community-send-menu__item {
 display: flex;
 align-items: center;
 gap: 10px;
 width: 100%;
 padding: 10px 12px;
 border: none;
 border-radius: 8px;
 background: transparent;
 color: rgba(200, 230, 255, 0.95);
 font-size: 15px;
 font-family: inherit;
 cursor: pointer;
 text-align: left;
 transition: background 0.15s ease;
}

.community-send-menu__item:hover {
 background: rgba(84, 173, 247, 0.18);
 color: #fff;
}

.community-send-menu__item .mi-svg {
 font-size: 20px;
 opacity: 0.9;
}

.mi-svg {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 line-height: 0;
 vertical-align: middle;
}

.mi-svg svg {
 width: 1em;
 height: 1em;
 display: block;
}

/* 聊天输入在面板底部：菜单向上展开，避免向下伸出触发布局/滚动异常 */
.community-chat-compose .community-send-menu {
 top: auto;
 bottom: calc(100% + 8px);
}

.community-post-btn {
 min-width: 100px;
}

.community-post-btn:disabled {
 opacity: 0.45;
 cursor: not-allowed;
 transform: none;
}

.community-preview-row {
 display: flex;
 flex-wrap: wrap;
 gap: 10px;
 margin-top: 14px;
 min-height: 0;
}

.community-panel-forum .community-preview-row {
 margin-top: 8px;
}

.community-panel-forum .community-preview-row:empty {
 margin-top: 0;
}

.community-preview-tile {
 position: relative;
 width: 88px;
 height: 88px;
 border-radius: 8px;
 overflow: hidden;
 border: 1px solid rgba(84, 173, 247, 0.12);
 background: rgba(0, 0, 0, 0.25);
}

.community-preview-tile img {
 width: 100%;
 height: 100%;
 object-fit: cover;
 display: block;
 cursor: pointer;
}

.community-preview-remove {
 position: absolute;
 top: 4px;
 right: 4px;
 width: 26px;
 height: 26px;
 padding: 0;
 border: none;
 border-radius: 50%;
 background: rgba(0, 0, 0, 0.65);
 color: #fff;
 font-size: 18px;
 line-height: 1;
 cursor: pointer;
 display: flex;
 align-items: center;
 justify-content: center;
}

.community-preview-remove:hover {
 background: #ff6b6b;
}

.community-form-hint {
 margin: 12px 0 0;
 min-height: 1.25em;
 font-size: 15px;
 color: #ffb4b4;
}

.community-panel-forum .community-form-hint {
 margin: 6px 0 0;
}

.community-panel-forum .community-form-hint:empty {
 margin: 0;
 min-height: 0;
 padding: 0;
 overflow: hidden;
}

.community-feed {
 display: flex;
 flex-direction: column;
 gap: 4px;
 padding: 10px 8px 12px;
 width: 100%;
 box-sizing: border-box;
}

.community-col-feed .community-feed {
 max-height: none;
}

.community-feed-loading,
.community-feed-error,
.community-empty {
 padding: 20px 16px;
 text-align: center;
 border-radius: 10px;
 background: transparent;
 border: 1px solid rgba(84, 173, 247, 0.1);
 color: rgba(200, 230, 255, 0.75);
 font-size: 17px;
}

.community-feed.community-feed--empty {
 min-height: 0;
 padding-bottom: 8px;
}

.community-feed-error {
 border-color: rgba(255, 107, 107, 0.4);
 color: #ffb4b4;
}

.community-post-card {
 padding: 14px 6px 16px;
 border-radius: 0;
 background: transparent;
 border: none;
 border-bottom: 1px solid rgba(84, 173, 247, 0.07);
 transition: background 0.2s ease;
}

.community-post-card:last-child {
 border-bottom: none;
}

.community-post-card:hover {
 background: transparent;
 box-shadow: none;
}

.community-post-card--compact {
 display: block;
 padding: 0.85rem 1rem;
 margin: 0 0 0.65rem;
 border-radius: 10px;
 border: 1px solid rgba(95, 184, 255, 0.16);
 border-bottom: 1px solid rgba(95, 184, 255, 0.16);
 background: var(--navbar-bg);
 text-decoration: none;
 color: inherit;
 cursor: pointer;
 transition: border-color 0.2s ease, background 0.2s ease, transform 0.2s ease;
}

.community-post-card--compact:last-child {
 margin-bottom: 0;
}

.community-post-card--compact:hover {
 border-color: rgba(95, 184, 255, 0.42);
 background: var(--navbar-bg);
 transform: translateY(-1px);
 box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
}

.community-post-compact-inner {
 display: flex;
 flex-direction: column;
 gap: 0.55rem;
}

.community-post-compact-excerpt {
 margin: 0;
 font-size: 0.92rem;
 line-height: 1.55;
 color: rgba(210, 235, 255, 0.88);
 display: -webkit-box;
 -webkit-line-clamp: 2;
 line-clamp: 2;
 -webkit-box-orient: vertical;
 overflow: hidden;
 word-break: break-word;
}

.community-post-compact-excerpt--media {
 color: rgba(158, 200, 230, 0.72);
 font-style: italic;
}

.community-post-compact-footer {
 display: flex;
 align-items: center;
 gap: 0.65rem;
 flex-wrap: wrap;
}

.community-post-compact-replies {
 font-size: 0.82rem;
 font-weight: 600;
 color: rgba(140, 210, 255, 0.82);
}

.community-post-compact-thumb {
 width: 3rem;
 height: 3rem;
 object-fit: cover;
 border-radius: 6px;
 border: 1px solid rgba(95, 184, 255, 0.22);
 flex-shrink: 0;
}

.community-post-compact-enter {
 margin-left: auto;
 font-size: 0.82rem;
 font-weight: 700;
 color: rgba(140, 220, 255, 0.78);
 letter-spacing: 0.04em;
}

.community-post-card--compact .community-author-row {
 margin-bottom: 0;
}

.community-post-detail-page {
 margin: 0;
 min-height: 100vh;
 background:
 radial-gradient(ellipse 90% 55% at 50% -8%, rgba(56, 140, 210, 0.22), transparent 58%),
 linear-gradient(180deg, #04080e 0%, rgb(15, 44, 62) 38%, #060d14 100%);
 color: #e8f4ff;
}

.community-post-detail-main {
 /* 与首页舰员交流区 .community-wrap 同宽（--home-content-max） */
 max-width: var(--home-content-max);
 width: 100%;
 margin: 0 auto;
 padding: 1.5rem var(--home-content-pad-x) 3rem;
 box-sizing: border-box;
}

.community-post-detail-card {
 border-radius: 12px;
 border: 1px solid rgba(95, 184, 255, 0.24);
 background: rgba(8, 22, 36, 0.72);
 padding: 1.25rem 1.35rem 1.5rem;
}

.community-post-detail-back-hint {
 margin: 0 0 1rem;
 font-size: 0.88rem;
}

.community-post-detail-back-hint a {
 color: #8ee0ff;
 text-decoration: none;
 font-weight: 600;
}

.community-post-detail-back-hint a:hover {
 color: #fff;
}

.community-post-detail-error {
 padding: 1rem 1.15rem;
 border-radius: 10px;
 border: 1px solid rgba(255, 120, 120, 0.35);
 background: rgba(80, 20, 20, 0.35);
 color: #ffb4b4;
}

.community-post-detail-card .community-post-delete,
.community-post-detail-card .community-reply-delete {
 opacity: 1;
}

.community-author-row {
 display: flex;
 align-items: center;
 gap: 10px 14px;
 min-width: 0;
 flex: 1;
}

.community-author-avatar {
 flex-shrink: 0;
 width: 40px;
 height: 40px;
 border-radius: 50%;
 overflow: hidden;
 background: linear-gradient(145deg, rgb(84, 173, 247), rgb(30, 77, 107));
 box-shadow: 0 0 12px rgba(84, 173, 247, 0.25);
}

.community-author-avatar-img {
 width: 100%;
 height: 100%;
 object-fit: cover;
 display: block;
}

a.community-author-avatar-link {
 display: block;
 width: 100%;
 height: 100%;
 color: inherit;
 text-decoration: none;
 cursor: pointer;
 border-radius: inherit;
}

a.community-author-avatar-link:focus-visible {
 outline: 2px solid rgba(84, 173, 247, 0.75);
 outline-offset: 2px;
}

.community-author-id {
 font-weight: 600;
 color: #9fd8ff;
 font-size: 17px;
 word-break: break-word;
}

.community-author-time {
 margin-left: auto;
 flex-shrink: 0;
 font-size: 15px;
 color: rgba(180, 210, 230, 0.55);
 white-space: nowrap;
}

.community-post-avatar {
 flex-shrink: 0;
 width: 48px;
 height: 48px;
 border-radius: 50%;
 background: linear-gradient(145deg, rgb(84, 173, 247), rgb(30, 77, 107));
 color: #fff;
 font-weight: 700;
 font-size: 18px;
 display: flex;
 align-items: center;
 justify-content: center;
 box-shadow: 0 0 16px rgba(84, 173, 247, 0.35);
}

.community-post-main {
 flex: 1;
 min-width: 0;
}

.community-post-head {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 justify-content: space-between;
 gap: 8px 12px;
 margin-bottom: 10px;
}

.community-post-delete,
.community-reply-delete {
 flex-shrink: 0;
 padding: 4px 10px;
 border-radius: 6px;
 border: 1px solid rgba(255, 107, 107, 0.45);
 background: rgba(255, 107, 107, 0.12);
 color: #ffb4b4;
 font-size: 12px;
 cursor: pointer;
 transition: background 0.2s ease, color 0.2s ease;
}

.community-post-head .community-post-delete {
 display: none;
}

.community-post-card.community-post-card--actions-open .community-post-head .community-post-delete {
 display: inline-block;
}

.community-reply-item .community-reply-delete {
 display: none;
 margin-left: auto;
}

.community-reply-item.community-reply-item--actions-open .community-reply-delete {
 display: inline-block;
}

.community-post-delete:hover,
.community-reply-delete:hover {
 background: #ff6b6b;
 color: #fff;
}

.community-post-delete:disabled,
.community-reply-delete:disabled {
 opacity: 0.5;
 cursor: not-allowed;
}

.community-post-author {
 font-weight: 600;
 color: #9fd8ff;
 font-size: 17px;
}

.community-post-time {
 font-size: 15px;
 color: rgba(180, 210, 230, 0.55);
}

.community-post-body {
 color: rgba(232, 244, 255, 0.92);
 font-size: 17px;
 line-height: 1.65;
 white-space: pre-wrap;
 word-break: break-word;
 padding-left: 50px;
}

.community-text-link {
 color: #6ec8ff;
 text-decoration: underline;
 text-underline-offset: 2px;
 word-break: break-all;
}

.community-text-link:hover {
 color: #9fe0ff;
}

.community-post-images {
 display: flex;
 flex-wrap: wrap;
 gap: 10px;
 margin-top: 12px;
}

.community-post-img {
 max-width: min(100%, 420px);
 max-height: 360px;
 border-radius: 8px;
 object-fit: contain;
 background: rgba(0, 0, 0, 0.22);
 border: none;
 cursor: pointer;
}

.community-replies {
 margin-top: 12px;
 padding-top: 10px;
 border-top: 1px solid rgba(84, 173, 247, 0.06);
}

.community-replies-head {
 font-size: 15px;
 color: rgba(159, 216, 255, 0.65);
 margin-bottom: 8px;
}

.community-reply-item {
 margin-bottom: 4px;
 padding: 6px 2px 10px;
 border-radius: 0;
 background: transparent;
 border: none;
}

.community-reply-item .community-author-row {
 margin-bottom: 8px;
}

.community-reply-body {
 font-size: 16px;
 line-height: 1.55;
 color: rgba(232, 244, 255, 0.9);
 white-space: pre-wrap;
 word-break: break-word;
 padding-left: 50px;
}

.community-reply-form {
 margin-top: 12px;
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 gap: 10px;
 width: 100%;
 box-sizing: border-box;
}

.community-reply-input {
 flex: 1;
 min-width: 0;
 width: auto;
 box-sizing: border-box;
 height: 48px;
 min-height: 48px;
 max-height: 48px;
 padding: 12px 14px;
 border-radius: 8px;
 border: 1px solid rgba(84, 173, 247, 0.12);
 background: rgba(8, 20, 32, 0.35);
 color: #e8f4ff;
 font-size: 16px;
 font-family: inherit;
 line-height: 22px;
 resize: none;
 overflow-y: auto;
 outline: none;
}

.community-reply-input:disabled {
 opacity: 0.55;
 cursor: not-allowed;
}

.community-reply-actions {
 display: flex;
 flex-shrink: 0;
 align-items: center;
 margin-top: 0;
}

.community-reply-btn {
 min-width: 80px;
 height: 48px;
 min-height: 48px;
 padding: 0 18px;
 font-size: 16px;
 box-sizing: border-box;
}

.community-reply-hint {
 flex: 0 0 100%;
 margin: 0;
 min-height: 1.1em;
 font-size: 15px;
 color: #ffb4b4;
}

/* 实时聊天 */
.community-col-chat {
 display: flex;
 flex-direction: column;
}

.community-chat-status {
 font-size: 14px;
 color: rgba(180, 210, 230, 0.55);
}

.community-chat-view {
 position: relative;
 flex: 1;
 display: flex;
 flex-direction: column;
 min-height: 0;
 min-width: 0;
 overscroll-behavior: auto;
}

.community-chat-pin-bar {
 flex-shrink: 0;
 display: flex;
 align-items: stretch;
 gap: 8px;
 padding: 8px 12px 0;
 box-sizing: border-box;
}

.community-chat-pin-bar[hidden] {
 display: none !important;
}

.community-chat-pin-bar__btn {
 display: flex;
 align-items: center;
 gap: 8px;
 flex: 1;
 min-width: 0;
 padding: 8px 12px;
 border-radius: 8px;
 border: 1px solid rgba(84, 173, 247, 0.28);
 background: rgba(84, 173, 247, 0.1);
 color: rgba(220, 240, 255, 0.92);
 font-size: 14px;
 font-family: inherit;
 text-align: left;
 cursor: pointer;
 box-sizing: border-box;
 transition: background 0.15s ease, border-color 0.15s ease;
}

.community-chat-pin-bar__btn:hover {
 background: rgba(84, 173, 247, 0.18);
 border-color: rgba(84, 173, 247, 0.45);
}

.community-chat-pin-bar__tag {
 flex-shrink: 0;
 padding: 2px 8px;
 border-radius: 4px;
 background: rgba(84, 173, 247, 0.22);
 color: #9fd8ff;
 font-size: 12px;
 font-weight: 700;
 letter-spacing: 0.06em;
}

.community-chat-pin-bar__text {
 flex: 1;
 min-width: 0;
 overflow: hidden;
 text-overflow: ellipsis;
 white-space: nowrap;
}

.community-chat-pin-bar__unpin {
 flex-shrink: 0;
 align-self: center;
 padding: 8px 12px;
 border-radius: 8px;
 border: 1px solid rgba(180, 210, 230, 0.28);
 background: rgba(8, 20, 32, 0.5);
 color: rgba(200, 220, 235, 0.88);
 font-size: 13px;
 font-family: inherit;
 white-space: nowrap;
 cursor: pointer;
 transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.community-chat-pin-bar__unpin:hover {
 background: rgba(255, 107, 107, 0.12);
 border-color: rgba(255, 107, 107, 0.35);
 color: #ffb4b4;
}

.community-chat-pin-bar__unpin[hidden] {
 display: none !important;
}

.community-chat-time-divider {
 clear: both;
 display: block;
 width: fit-content;
 margin: 10px auto 6px;
 padding: 0 10px;
 font-size: 12px;
 line-height: 1.4;
 color: rgba(180, 210, 230, 0.55);
 text-align: center;
 user-select: none;
}

.community-chat-line--highlight .community-chat-bubble {
 animation: community-chat-bubble-highlight 2.2s ease;
}

@keyframes community-chat-bubble-highlight {
 0% {
 box-shadow: 0 0 0 2px rgba(84, 173, 247, 0.55);
 }
 100% {
 box-shadow: none;
 }
}

.community-chat-scroll {
 flex: 1;
 min-height: 0;
 width: 100%;
 box-sizing: border-box;
 overflow-y: auto;
 overflow-x: hidden;
 overscroll-behavior: auto;
 touch-action: pan-y;
 -webkit-overflow-scrolling: touch;
}

.community-chat-guest-lock {
 position: absolute;
 inset: 0;
 z-index: 12;
 display: flex;
 align-items: center;
 justify-content: center;
 padding: 24px 18px;
 box-sizing: border-box;
 border-radius: inherit;
 background:
 linear-gradient(180deg, rgba(4, 8, 18, 0.78) 0%, rgba(8, 22, 37, 0.82) 100%);
 backdrop-filter: blur(10px) saturate(1.08);
 -webkit-backdrop-filter: blur(10px) saturate(1.08);
 pointer-events: auto;
 overflow-y: auto;
 -webkit-overflow-scrolling: touch;
}

.community-chat-guest-lock::before {
 content: '';
 position: absolute;
 inset: 0;
 pointer-events: none;
 border-radius: inherit;
 background:
 linear-gradient(90deg, rgba(255, 0, 110, 0.05) 0%, transparent 32%, transparent 68%, rgba(0, 240, 255, 0.07) 100%);
}

.community-chat-main:has(.community-chat-guest-lock:not([hidden])) {
 min-height: clamp(320px, 45vh, 520px);
}

.community-chat-guest-lock[hidden] {
 display: none !important;
}

.community-chat-guest-lock-inner {
 position: relative;
 width: min(100%, 300px);
 max-width: 300px;
 text-align: center;
 padding: 24px 22px 20px;
 box-sizing: border-box;
 border-radius: calc(var(--home-module-radius, 17px) - 6px);
 border: 1px solid rgba(0, 240, 255, 0.32);
 background:
 linear-gradient(155deg, rgba(10, 28, 48, 0.94) 0%, rgba(6, 16, 32, 0.92) 55%, rgba(12, 8, 28, 0.9) 100%);
 box-shadow:
 0 14px 36px rgba(0, 0, 0, 0.32),
 0 0 24px rgba(0, 240, 255, 0.1),
 0 0 36px rgba(255, 0, 110, 0.06),
 inset 0 1px 0 rgba(255, 255, 255, 0.05);
 overflow: hidden;
}

.community-chat-guest-lock-inner::before {
 content: '';
 position: absolute;
 top: 0;
 left: 0;
 right: 0;
 height: 2px;
 background: linear-gradient(90deg, transparent, rgba(0, 240, 255, 0.9), rgba(255, 0, 110, 0.55), transparent);
 opacity: 0.88;
}

.community-chat-guest-lock-icon {
 position: relative;
 z-index: 1;
 width: 40px;
 height: 40px;
 margin: 0 auto 12px;
 display: flex;
 align-items: center;
 justify-content: center;
 border-radius: 50%;
 border: 1px solid rgba(0, 240, 255, 0.45);
 background: rgba(4, 12, 24, 0.72);
 color: #ff4d8d;
 font-size: 18px;
 font-weight: 800;
 line-height: 1;
 box-shadow:
 0 0 14px rgba(0, 240, 255, 0.18),
 inset 0 0 12px rgba(255, 0, 110, 0.08);
 text-shadow: 0 0 10px rgba(255, 77, 141, 0.65);
}

.community-chat-guest-lock-title {
 position: relative;
 z-index: 1;
 margin: 0 0 8px;
 font-size: 15px;
 font-weight: 800;
 letter-spacing: 0.14em;
 color: #e8f8ff;
 text-shadow:
 0 0 12px rgba(0, 240, 255, 0.32),
 2px 0 rgba(255, 0, 110, 0.2),
 -2px 0 rgba(0, 240, 255, 0.16);
 animation: community-guest-lock-glitch 1.35s steps(1, end) infinite;
}

.community-chat-guest-lock-desc {
 position: relative;
 z-index: 1;
 margin: 0;
 font-family: ui-monospace, 'Cascadia Code', 'Consolas', monospace;
 font-size: 11px;
 font-weight: 600;
 line-height: 1.55;
 letter-spacing: 0.14em;
 text-transform: uppercase;
 color: rgba(0, 240, 255, 0.72);
 text-shadow: 0 0 10px rgba(0, 240, 255, 0.28);
 animation: community-guest-lock-glitch-sub 1.5s steps(1, end) infinite;
 animation-delay: 0.15s;
}

@keyframes community-guest-lock-glitch {
 0%,
 68%,
 72%,
 100% {
 transform: none;
 text-shadow:
 0 0 12px rgba(0, 240, 255, 0.32),
 2px 0 rgba(255, 0, 110, 0.2),
 -2px 0 rgba(0, 240, 255, 0.16);
 }
 69% {
 transform: translateX(3px);
 text-shadow:
 -4px 0 rgba(255, 0, 110, 0.62),
 4px 0 rgba(0, 240, 255, 0.52);
 }
 70% {
 transform: translateX(-3px);
 text-shadow:
 4px 0 rgba(255, 0, 110, 0.58),
 -4px 0 rgba(0, 240, 255, 0.48);
 }
 71% {
 transform: translateX(1px);
 }
 88% {
 transform: translateX(-2px);
 text-shadow:
 3px 0 rgba(255, 0, 110, 0.55),
 -3px 0 rgba(0, 240, 255, 0.45);
 }
 89% {
 transform: translateX(2px);
 }
 90% {
 transform: translateX(-1px);
 }
}

@keyframes community-guest-lock-glitch-sub {
 0%,
 74%,
 78%,
 100% {
 transform: none;
 text-shadow: 0 0 10px rgba(0, 240, 255, 0.28);
 }
 75% {
 transform: translateX(2px);
 text-shadow:
 -2px 0 rgba(255, 0, 110, 0.45),
 2px 0 rgba(0, 240, 255, 0.4);
 }
 76% {
 transform: translateX(-2px);
 }
 77% {
 transform: translateX(1px);
 }
 92% {
 transform: translateX(-1px);
 text-shadow:
 2px 0 rgba(255, 0, 110, 0.4),
 -2px 0 rgba(0, 240, 255, 0.35);
 }
 93% {
 transform: translateX(1px);
 }
}

@media (prefers-reduced-motion: reduce) {
 .community-chat-guest-lock-title,
 .community-chat-guest-lock-desc {
 animation: none;
 }
}

.community-chat-line--guest-preview {
 pointer-events: none;
 user-select: none;
}

.community-chat-log {
 display: block;
 padding: 12px 14px 14px;
}

.community-chat-log::after {
 content: '';
 display: table;
 clear: both;
}

.community-chat-history-sentinel {
    height: 1px;
    width: 100%;
    pointer-events: none;
    flex-shrink: 0;
}

.community-chat-line {
 box-sizing: border-box;
 display: flex;
 flex-direction: column;
 gap: 4px;
 width: auto;
 max-width: min(88%, 520px);
 margin-bottom: 14px;
 padding: 0;
 background: transparent;
 border: none;
 cursor: pointer;
 user-select: none;
 -webkit-user-select: none;
}

.community-chat-line--other {
 float: left;
 clear: both;
 align-items: flex-start;
}

.community-chat-line--mine {
 float: right;
 clear: both;
 align-items: flex-end;
}

.community-chat-bubble {
 box-sizing: border-box;
 display: inline-block;
 max-width: 100%;
 padding: 8px 12px 10px;
 border-radius: 10px;
 background: rgba(10, 28, 42, 0.65);
 border: 1px solid rgba(84, 173, 247, 0.12);
 user-select: text;
 -webkit-user-select: text;
}

.community-chat-line--mine .community-chat-bubble {
 background: rgba(18, 52, 82, 0.78);
 border-color: rgba(84, 173, 247, 0.28);
}

.community-chat-line--mine.community-chat-line--media-only .community-chat-bubble,
.community-chat-line--other.community-chat-line--media-only .community-chat-bubble {
 padding-top: 6px;
 padding-bottom: 6px;
}

.community-chat-line .community-author-row {
 margin-bottom: 0;
 gap: 8px 10px;
}

.community-chat-line--mine .community-author-row {
 flex-direction: row-reverse;
 justify-content: flex-start;
}

.community-chat-line .community-author-avatar {
 width: 32px;
 height: 32px;
}

.community-chat-line .community-author-id {
 font-size: 15px;
}

.community-chat-line .community-author-time {
 display: none;
 font-size: 13px;
 margin-left: auto;
}

.community-chat-line.community-chat-line--time-open .community-author-time {
 display: block;
}

.community-chat-line--mine .community-author-time {
 margin-left: 0;
}

.community-chat-text {
 font-size: 15px;
 line-height: 1.45;
 color: rgba(232, 244, 255, 0.92);
 white-space: pre-wrap;
 word-break: break-word;
}

.community-chat-emoji-glyph {
 display: inline-block;
 font-size: 1.35em;
 line-height: 1.1;
 vertical-align: -0.1em;
}

.community-chat-text--emoji-only {
 font-size: 26px;
 line-height: 1.05;
 letter-spacing: -0.04em;
 word-spacing: -0.06em;
}

.community-chat-text--emoji-only .community-chat-emoji-glyph {
 font-size: 1em;
 vertical-align: baseline;
}

.community-chat-line--emoji-only .community-chat-bubble {
 padding-top: 6px;
 padding-bottom: 8px;
}

.community-chat-line--emoji-only.community-chat-line--mine .community-chat-text {
 text-align: right;
}

.community-chat-line--other .community-chat-text,
.community-chat-line--mine .community-chat-text {
 padding-left: 0;
 padding-right: 0;
}

.community-chat-line--mine .community-chat-text {
 text-align: right;
}

.community-chat-images {
 display: flex;
 flex-wrap: wrap;
 gap: 8px;
 margin-top: 0;
 width: fit-content;
 max-width: 220px;
}

.community-chat-line--other .community-chat-images {
 padding-left: 0;
}

.community-chat-line--mine .community-chat-images {
 justify-content: flex-end;
 padding-left: 0;
 padding-right: 0;
}

.community-chat-line--mine.community-chat-line--media-only .community-chat-images {
 margin-top: 0;
}

.community-chat-line--mine:not(.community-chat-line--media-only) .community-chat-images {
 margin-top: 6px;
}

.community-chat-line--media-only.community-chat-line--other .community-chat-images {
 padding-left: 0;
 margin-top: 4px;
}

.community-chat-img {
 display: block;
 width: auto;
 height: auto;
 max-width: 220px;
 max-height: 220px;
 border-radius: 8px;
 object-fit: contain;
 border: 1px solid rgba(84, 173, 247, 0.25);
 background: rgba(0, 0, 0, 0.35);
 cursor: pointer;
}

.community-chat-img-wrap {
 position: relative;
 display: inline-block;
 line-height: 0;
 width: auto;
 height: auto;
 max-width: 220px;
 max-height: 220px;
 border-radius: 8px;
 overflow: hidden;
 vertical-align: top;
}

.community-chat-img-wrap--censored .community-chat-img {
 filter: blur(9px) brightness(0.78) saturate(0.88);
 transform: scale(1.04);
 pointer-events: none;
}

.community-chat-img-reveal {
 position: absolute;
 right: 5px;
 bottom: 5px;
 z-index: 2;
 display: flex;
 align-items: center;
 justify-content: center;
 width: 22px;
 height: 22px;
 margin: 0;
 padding: 0;
 border: 1px solid rgba(255, 255, 255, 0.28);
 border-radius: 50%;
 background: rgba(0, 0, 0, 0.45);
 backdrop-filter: blur(3px);
 color: rgba(255, 255, 255, 0.82);
 cursor: pointer;
 box-shadow: 0 1px 4px rgba(0, 0, 0, 0.35);
 transition: color 0.18s ease, background 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
 -webkit-tap-highlight-color: transparent;
}

.community-chat-img-reveal-icon {
 display: block;
 flex-shrink: 0;
}

.community-chat-img-reveal:hover {
 border-color: rgba(255, 255, 255, 0.5);
 color: #fff;
 background: rgba(0, 0, 0, 0.58);
 transform: scale(1.05);
}

.community-chat-video {
 margin-top: 8px;
 max-width: min(360px, 100%);
 border-radius: 10px;
 overflow: hidden;
 border: 1px solid rgba(84, 173, 247, 0.28);
 background: #000;
}

.community-chat-line--other .community-chat-video {
 margin-left: 42px;
}

.community-chat-line--mine .community-chat-video {
 margin-left: auto;
 margin-right: 0;
}

.community-chat-video-player {
 display: block;
 width: 100%;
 max-height: 220px;
 background: #000;
}

.community-chat-context-menu {
 position: fixed;
 z-index: 4500;
 min-width: 132px;
 padding: 6px;
 border-radius: 10px;
 border: 1px solid rgba(84, 173, 247, 0.35);
 background: rgba(8, 22, 38, 0.97);
 box-shadow: 0 12px 36px rgba(0, 0, 0, 0.45);
 box-sizing: border-box;
}

.community-chat-context-menu[hidden] {
 display: none !important;
}

.community-chat-context-menu__item {
 display: block;
 width: 100%;
 padding: 9px 14px;
 border: none;
 border-radius: 7px;
 background: transparent;
 color: #9fd8ff;
 font-size: 15px;
 font-family: inherit;
 text-align: left;
 cursor: pointer;
 transition: background 0.15s ease, color 0.15s ease;
}

.community-chat-context-menu__item:hover {
 background: rgba(84, 173, 247, 0.18);
 color: #dff6ff;
}

.community-chat-context-menu__item--danger {
 color: #ffb4b4;
}

.community-chat-context-menu__item--danger:hover {
 background: rgba(255, 107, 107, 0.18);
 color: #ffe0e0;
}

.community-chat-context-menu__item[hidden] {
 display: none !important;
}

/* 舰员交流区：撤回 / 删除确认 — 与签到中心 USS 网格主题一致 */
.community-confirm-modal {
 position: fixed;
 inset: 0;
 z-index: 5000;
 display: none;
 align-items: center;
 justify-content: center;
 padding: max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right))
 max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));
 box-sizing: border-box;
 background:
 radial-gradient(ellipse 90% 55% at 50% -8%, rgba(56, 140, 210, 0.22), transparent 58%),
 radial-gradient(ellipse 60% 40% at 100% 20%, rgba(30, 90, 140, 0.12), transparent 50%),
 rgba(2, 8, 14, 0.88);
 backdrop-filter: blur(8px);
 -webkit-backdrop-filter: blur(8px);
}

.community-confirm-modal::before {
 content: '';
 position: absolute;
 inset: 0;
 pointer-events: none;
 background-image:
 linear-gradient(rgba(95, 184, 255, 0.035) 1px, transparent 1px),
 linear-gradient(90deg, rgba(95, 184, 255, 0.035) 1px, transparent 1px);
 background-size: 48px 48px;
 z-index: 0;
}

.community-confirm-modal.is-open {
 display: flex;
}

.community-confirm-dialog {
 position: relative;
 z-index: 1;
 width: min(420px, 100%);
 border-radius: 16px;
 border: 1px solid rgba(95, 184, 255, 0.28);
 background: linear-gradient(155deg, rgba(14, 42, 68, 0.95) 0%, rgba(6, 18, 32, 0.92) 100%);
 box-shadow:
 0 0 0 1px rgba(0, 0, 0, 0.4) inset,
 0 0 48px rgba(56, 140, 210, 0.12),
 0 24px 56px rgba(0, 0, 0, 0.55);
 padding: 1.75rem 1.5rem 1.35rem;
 text-align: center;
 overflow: hidden;
}

.community-confirm-dialog::before {
 content: '';
 position: absolute;
 inset: 0;
 border-radius: inherit;
 pointer-events: none;
 background-image:
 linear-gradient(rgba(95, 184, 255, 0.04) 1px, transparent 1px),
 linear-gradient(90deg, rgba(95, 184, 255, 0.04) 1px, transparent 1px);
 background-size: 24px 24px;
 opacity: 0.65;
 z-index: 0;
}

.community-confirm-dialog > * {
 position: relative;
 z-index: 1;
}

.community-confirm-eyebrow {
 margin: 0 0 0.65rem;
 font-size: 0.82rem;
 font-weight: 700;
 letter-spacing: 0.28em;
 color: rgba(140, 210, 255, 0.75);
 text-transform: uppercase;
}

.community-confirm-msg {
 margin: 0 0 1.35rem;
 font-size: clamp(1rem, 2.8vw, 1.2rem);
 line-height: 1.55;
 font-weight: 700;
 letter-spacing: 0.04em;
 color: #fff;
 text-shadow: 0 0 36px rgba(95, 184, 255, 0.2);
}

.community-confirm-actions {
 display: flex;
 flex-wrap: wrap;
 gap: 12px;
 justify-content: center;
}

.community-confirm-btn {
 min-width: 96px;
 padding: 0.55rem 1.15rem;
 border-radius: 8px;
 font-size: 0.95rem;
 font-weight: 600;
 cursor: pointer;
 font-family: inherit;
 transition:
 background 0.2s ease,
 color 0.2s ease,
 border-color 0.2s ease,
 box-shadow 0.2s ease;
}

.community-confirm-btn-cancel {
 border: 1px solid rgba(95, 184, 255, 0.28);
 background: rgba(95, 184, 255, 0.08);
 color: rgba(180, 220, 255, 0.88);
}

.community-confirm-btn-cancel:hover {
 border-color: rgba(140, 210, 255, 0.5);
 background: rgba(95, 184, 255, 0.16);
 color: #fff;
}

.community-confirm-btn-ok {
 border: 1px solid rgba(95, 184, 255, 0.45);
 background: rgba(95, 184, 255, 0.22);
 color: #e8f8ff;
 box-shadow: 0 0 20px rgba(56, 140, 210, 0.2);
}

.community-confirm-btn-ok:hover {
 background: rgba(95, 184, 255, 0.42);
 border-color: rgba(140, 210, 255, 0.75);
 color: #fff;
 box-shadow: 0 0 28px rgba(56, 140, 210, 0.35);
}

.community-confirm-modal--danger .community-confirm-dialog {
 border-color: rgba(255, 120, 120, 0.28);
 box-shadow:
 0 0 0 1px rgba(0, 0, 0, 0.4) inset,
 0 0 40px rgba(200, 60, 60, 0.08),
 0 24px 56px rgba(0, 0, 0, 0.55);
}

.community-confirm-modal--danger .community-confirm-eyebrow {
 color: rgba(255, 180, 180, 0.72);
}

.community-confirm-modal--danger .community-confirm-msg {
 text-shadow: 0 0 28px rgba(255, 100, 100, 0.12);
}

.community-confirm-modal--danger .community-confirm-btn-ok {
 border-color: rgba(255, 107, 107, 0.55);
 background: rgba(255, 107, 107, 0.16);
 color: #ffd4d4;
 box-shadow: 0 0 18px rgba(200, 60, 60, 0.15);
}

.community-confirm-modal--danger .community-confirm-btn-ok:hover {
 background: #ff6b6b;
 border-color: #ff8787;
 color: #fff;
 box-shadow: 0 0 24px rgba(255, 80, 80, 0.35);
}

.community-chat-compose {
 flex-shrink: 0;
 display: flex;
 flex-direction: column;
 gap: 8px;
 padding: 12px 14px;
 border-top: 1px solid rgba(84, 173, 247, 0.15);
 background: transparent;
}

.community-chat-compose-row,
.community-post-compose-row {
 display: flex;
 align-items: center;
 gap: 10px;
 width: 100%;
 box-sizing: border-box;
 min-width: 0;
}

.community-chat-emoji-btn {
 flex-shrink: 0;
 width: 40px;
 height: 40px;
 min-height: 40px;
 padding: 0;
 border-radius: 10px;
 border: 1px solid rgba(84, 173, 247, 0.28);
 background: rgba(8, 22, 38, 0.88);
 color: #c8e8ff;
 font-size: 22px;
 line-height: 1;
 cursor: pointer;
 display: inline-flex;
 align-items: center;
 justify-content: center;
 box-sizing: border-box;
 transition: border-color 0.15s ease, background 0.15s ease;
}

.community-chat-emoji-btn:hover:not(:disabled) {
 border-color: rgba(84, 173, 247, 0.55);
 background: rgba(12, 32, 52, 0.95);
}

.community-chat-emoji-btn:disabled {
 opacity: 0.45;
 cursor: not-allowed;
}

.community-chat-emoji-pop {
 position: absolute;
 left: 0;
 right: auto;
 bottom: calc(100% + 6px);
 z-index: 31;
 width: max-content;
 max-width: calc(100% - 8px);
 max-height: 280px;
 border-radius: 10px;
 border: 1px solid rgba(84, 173, 247, 0.35);
 background: rgba(8, 22, 38, 0.96);
 box-shadow: 0 10px 32px rgba(0, 0, 0, 0.45);
 padding: 4px;
}

.community-chat-emoji-pop[hidden] {
 display: none !important;
}

.community-chat-emoji-pop__grid {
 display: grid;
 grid-template-columns: repeat(10, 34px);
 gap: 0;
 width: max-content;
}

.community-chat-emoji-pop__item {
 width: 34px;
 height: 34px;
 padding: 0;
 border: none;
 border-radius: 5px;
 background: transparent;
 font-size: 23px;
 line-height: 1;
 cursor: pointer;
 display: inline-flex;
 align-items: center;
 justify-content: center;
}

.community-chat-emoji-pop__item:hover {
 background: rgba(84, 173, 247, 0.16);
}

.community-chat-input-wrap,
.community-post-input-wrap {
 flex: 1;
 min-width: 0;
 display: flex;
}

.community-chat-input-wrap {
 position: relative;
}

.community-chat-input-wrap .community-chat-input,
.community-post-input-wrap .community-post-textarea {
 width: 100%;
}

.community-chat-mention-pop {
 position: absolute;
 left: 0;
 right: 0;
 bottom: calc(100% + 6px);
 z-index: 30;
 max-height: 220px;
 border-radius: 10px;
 border: 1px solid rgba(84, 173, 247, 0.35);
 background: rgba(8, 22, 38, 0.96);
 box-shadow: 0 10px 32px rgba(0, 0, 0, 0.45);
 padding: 4px 0;
}

.community-chat-mention-pop__item {
 display: flex;
 align-items: center;
 gap: 10px;
 width: 100%;
 padding: 8px 12px;
 border: none;
 background: transparent;
 color: #c8e8ff;
 font-size: 15px;
 text-align: left;
 cursor: pointer;
 font-family: inherit;
}

.community-chat-mention-pop__avatar {
 flex-shrink: 0;
 width: 32px;
 height: 32px;
 border-radius: 50%;
 overflow: hidden;
 background: linear-gradient(145deg, rgb(84, 173, 247), rgb(30, 77, 107));
 box-shadow: 0 0 8px rgba(84, 173, 247, 0.25);
}

.community-chat-mention-pop__avatar-img {
 width: 100%;
 height: 100%;
 object-fit: cover;
 display: block;
}

.community-chat-mention-pop__label {
 flex: 1;
 min-width: 0;
 font-weight: 600;
 word-break: break-word;
}

.community-chat-mention-pop__item--all .community-chat-mention-pop__label {
 color: rgba(255, 210, 160, 0.98);
}

.community-chat-mention-pop__item:hover,
.community-chat-mention-pop__item.is-active {
 background: rgba(84, 173, 247, 0.22);
 color: #fff;
}

.community-chat-mention-pop__item.is-active .community-chat-mention-pop__avatar,
.community-chat-mention-pop__item:hover .community-chat-mention-pop__avatar {
 box-shadow: 0 0 10px rgba(120, 210, 255, 0.45);
}

.community-chat-mention {
 color: #8af0ff;
 font-weight: 600;
 background: rgba(84, 173, 247, 0.18);
 border-radius: 4px;
 padding: 0 3px;
}

.community-mention-toast {
 margin: 6px 0 0;
 padding: 10px 12px;
 border-radius: 8px;
 border: 1px solid rgba(255, 200, 120, 0.45);
 background: rgba(60, 40, 12, 0.55);
 color: #ffe8c8;
 font-size: 14px;
 line-height: 1.45;
 max-width: 100%;
 word-break: break-word;
}

.community-chat-preview-row {
 margin-top: 2px;
}

.community-chat-preview-row:empty {
 display: none;
}

.community-chat-input,
.community-post-textarea {
 flex: 1;
 min-width: 0;
 min-height: 48px;
 height: auto;
 padding: 12px 14px;
 border-radius: 8px;
 border: 1px solid rgba(84, 173, 247, 0.25);
 background: rgba(10, 28, 42, 0.85);
 color: #e8f4ff;
 font-size: 16px;
 font-family: inherit;
 line-height: 22px;
 outline: none;
 resize: none;
 overflow-y: auto;
 box-sizing: border-box;
 display: block;
 field-sizing: content;
}

.community-chat-input {
 max-height: 160px;
 min-height: 40px;
}

.community-post-textarea {
 margin: 0;
 max-height: 220px;
 transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.community-chat-input::placeholder,
.community-post-textarea::placeholder {
 color: rgba(180, 210, 230, 0.45);
}

.community-chat-input:focus,
.community-post-textarea:focus {
 border-color: rgb(84, 173, 247);
 box-shadow: 0 0 0 2px rgba(84, 173, 247, 0.2);
}

.community-chat-input:disabled,
.community-post-textarea:disabled {
 opacity: 0.55;
 cursor: not-allowed;
}

.community-post-textarea:disabled {
 background: rgba(8, 20, 32, 0.28);
}

.community-chat-send {
 flex-shrink: 0;
 min-width: 100px;
}

.community-chat-send:disabled {
 opacity: 0.45;
 cursor: not-allowed;
}

.community-chat-hint {
 flex-shrink: 0;
 margin: 0;
 padding: 0 14px 12px;
 min-height: 1.25em;
 font-size: 15px;
 color: #ffb4b4;
}

.community-chat-hint:empty {
 min-height: 0;
 margin: 0;
 padding: 0;
 overflow: hidden;
}

/* 全站交流区图片点击放大（滚轮缩放 + 拖动平移） */
.community-image-lightbox {
 display: none;
 position: fixed;
 inset: 0;
 z-index: 100000;
 padding: max(16px, env(safe-area-inset-top, 0px)) max(16px, env(safe-area-inset-right, 0px))
 max(16px, env(safe-area-inset-bottom, 0px)) max(16px, env(safe-area-inset-left, 0px));
 box-sizing: border-box;
 align-items: center;
 justify-content: center;
 overflow: hidden;
 background: rgba(4, 12, 22, 0.92);
 -webkit-backdrop-filter: blur(6px);
 backdrop-filter: blur(6px);
 cursor: default;
 touch-action: none;
}

.community-image-lightbox.is-open {
 display: flex;
}

.community-image-lightbox-img {
 max-width: 100%;
 max-height: 100%;
 width: auto;
 height: auto;
 object-fit: contain;
 border-radius: 10px;
 box-shadow: 0 20px 60px rgba(0, 0, 0, 0.55);
 border: 1px solid rgba(84, 173, 247, 0.28);
 cursor: grab;
 vertical-align: middle;
 transform-origin: center center;
 will-change: transform;
 user-select: none;
 -webkit-user-drag: none;
}

.community-image-lightbox-img.is-dragging {
 cursor: grabbing;
}

.games-section {
 position: relative;
 z-index: 2;
 background: transparent;
 padding: 80px 40px;
}

.section-title {
 color: white;
 font-size: 48px;
 margin-bottom: 40px;
 text-align: center;
 text-shadow: 0 0 10px rgba(0, 0, 0, 0.7),
 0 0 20px rgba(0, 0, 0, 0.5);
 font-weight: 500;
}

.games-container {
 display: flex;
 justify-content: center;
 gap: 40px;
 max-width: 1400px;
 margin: 0 auto;
}

.game-card {
 flex: 1;
 position: relative;
 border-radius: 8px;
 overflow: hidden;
 background: rgba(0, 0, 0, 0.3);
 transition: all 0.3s ease;
 border: 2px solid transparent;
}

.card-refund-btn {
 position: absolute;
 top: 10px;
 right: 10px;
 z-index: 3;
 background: rgba(0, 0, 0, 0.5);
 padding: 5px 15px;
 font-size: 14px;
}

.card-refund-btn:hover {
 background: #ff6b6b;
 color: white;
 transform: translateY(-2px);
}

.game-card:hover {
 transform: translateY(-5px);
 border-color: rgb(84, 173, 247);
 box-shadow: 0 0 15px rgba(84, 173, 247, 0.5);
}

.game-card img {
 width: 100%;
 height: 400px;
 object-fit: cover;
}

.game-info {
 padding: 30px;
 color: white;
}

.game-info h2 {
 font-size: 32px;
 margin-bottom: 15px;
}

.game-info p {
 font-size: 16px;
 opacity: 0.8;
 margin-bottom: 25px;
 line-height: 1.5;
}

.game-buttons {
 display: flex;
 gap: 15px;
 margin-bottom: 15px;
}

.primary-btn, .secondary-btn {
 padding: 12px 30px;
 border-radius: 10px;
 font-weight: bold;
 cursor: pointer;
 transition: all 0.3s ease;
}

.primary-btn {
 background-color: rgb(84, 173, 247);
 color: black;
 border: none;
 font-size: 18px;
}

.secondary-btn {
 background: transparent;
 color: white;
 border: 1px solid white;
}

.primary-btn:hover, .secondary-btn:hover {
 transform: translateY(-2px);
}

.big-buy-btn {
 font-size: 24px;
}

.game-card .age-rating {
 position: absolute;
 top: 10px;
 left: 10px;
 width: 50px;
 height: 50px;
 z-index: 2;
}

/* 侧边弹出框（全高；顶栏随页滚动后从视口顶部展开） */
.sidebar-modal {
 position: fixed;
 top: 0;
 right: -400px;
 width: 400px;
 height: 100vh;
 height: 100dvh;
 background-color: rgb(20, 58, 82);
 z-index: 1000;
 transition: right 0.3s ease-in-out;
 padding: 20px;
 box-shadow: -2px 0 10px rgba(0, 0, 0, 0.3);
 border-top-left-radius: 8px;
}

.sidebar-modal.active {
 right: 0;
}

.modal-close {
 position: absolute;
 top: 20px;
 right: 20px;
 background: none;
 border: none;
 color: #fff;
 font-size: 24px;
 cursor: pointer;
}

.modal-content {
 margin-top: 60px;
 color: #fff;
}

.modal-title {
 font-size: 24px;
 margin-bottom: 10px;
}

.modal-subtitle {
 color: #64B5F6;
 margin-bottom: 30px;
}

.form-input {
 width: 100%;
 padding: 12px;
 margin-bottom: 15px;
 background: rgba(255, 255, 255, 0.1);
 border: 1px solid #64B5F6;
 border-radius: 4px;
 color: #fff;
 font-size: 16px;
}

.form-input::placeholder {
 color: rgba(255, 255, 255, 0.5);
}

.sign-in-btn {
 width: 100%;
 padding: 12px;
 background: #64B5F6;
 border: none;
 border-radius: 4px;
 color: #fff;
 font-size: 16px;
 cursor: pointer;
 transition: background 0.3s;
}

.sign-in-btn:hover {
 background: #1E88E5;
}

.overlay {
 position: fixed;
 top: 0;
 left: 0;
 width: 100%;
 height: 100vh;
 height: 100dvh;
 background: rgba(0, 0, 0, 0.5);
 z-index: 999;
 display: none;
}

.overlay.active {
 display: block;
}

/* 账户侧栏：仅拦截点击，不压暗主页面；自顶栏下缘起，不遮挡导航头像 */
.overlay.overlay--login-only {
 top: var(--navbar-height);
 height: calc(100vh - var(--navbar-height));
 height: calc(100dvh - var(--navbar-height));
 background: transparent;
}

/* 中央提示框样式 */
.alert-modal {
 position: fixed;
 top: 50%;
 left: 50%;
 transform: translate(-50%, -50%);
 background-color: white;
 padding: 20px;
 border-radius: 8px;
 box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
 z-index: 2000;
 min-width: 300px;
 text-align: center;
}

.alert-modal .message {
 color: #0066cc;
 font-size: 16px;
 margin-bottom: 15px;
}

.alert-modal .confirm-btn {
 background-color: #0066cc;
 color: white;
 border: none;
 padding: 8px 20px;
 border-radius: 4px;
 cursor: pointer;
 font-size: 14px;
}

.alert-modal .confirm-btn:hover {
 background-color: #0052a3;
}

.refund-section {
 text-align: right;
 margin-top: 10px;
}

.refund-btn {
 background: transparent;
 color: #ff6b6b;
 border: 1px solid #ff6b6b;
 padding: 0.4rem 1rem;
 border-radius: 4px;
 font-weight: bold;
 font-size: 0.9rem;
 cursor: pointer;
 transition: all 0.3s ease;
}

.refund-btn:hover {
 background: #ff6b6b;
 color: white;
 transform: translateY(-2px);
}

/* 礼品区域样式 */
.gifts-section {
 padding: 60px 40px;
 background: transparent;
}

.gifts-container {
 max-width: 1400px;
 margin: 0 auto;
 display: grid;
 grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
 gap: 30px;
 padding: 20px;
}

.gift-item {
 background: rgba(84, 173, 247, 0.1);
 border: 1px solid rgba(84, 173, 247, 0.3);
 border-radius: 10px;
 padding: 20px;
 text-align: center;
 transition: all 0.3s ease;
 cursor: pointer;
}

.gift-item:hover {
 transform: translateY(-5px);
 background: rgba(84, 173, 247, 0.2);
 border-color: rgb(84, 173, 247);
 box-shadow: 0 0 15px rgba(84, 173, 247, 0.3);
}

.gift-icon {
 font-size: 36px;
 margin-bottom: 15px;
 color: rgb(84, 173, 247);
}

.gift-icon .mi-svg {
 font-size: 36px;
 transition: all 0.3s ease;
}

.gift-icon .mi-svg svg {
 width: 36px;
 height: 36px;
}

.gift-item:hover .mi-svg {
 transform: translateY(-5px);
}

.gift-item.special .gift-icon {
 color: gold;
}

.gift-name {
 color: white;
 font-size: 16px;
 line-height: 1.4;
}

.gift-item.special {
 background: rgba(255, 215, 0, 0.1);
 border-color: rgba(255, 215, 0, 0.3);
}

.gift-item.special:hover {
 background: rgba(255, 215, 0, 0.2);
 border-color: gold;
 box-shadow: 0 0 15px rgba(255, 215, 0, 0.3);
}

.event-info-section {
 background: transparent;
 padding: 60px 40px 40px 40px;
 margin-top: 0;
}

.event-info-text {
 color: #fff;
 font-size: 20px;
 line-height: 2;
 margin-bottom: 30px;
 text-align: center;
}

.event-map {
 display: flex;
 justify-content: center;
 align-items: center;
}

.event-map iframe {
 border-radius: 12px;
 box-shadow: 0 4px 20px rgba(0,0,0,0.2);
 max-width: 700px;
 width: 100%;
 min-height: 300px;
}

/* 与 .gifts-container 同宽，左右与活动礼品板块对齐 */
.event-venue-images {
 max-width: 1400px;
 margin: 24px auto 0;
 padding: 0 20px;
 box-sizing: border-box;
 display: grid;
 grid-template-columns: 1fr 1fr;
 gap: 30px;
 align-items: stretch;
}

.event-venue-images .venue-img {
 width: 100%;
 max-width: none;
 height: auto;
 margin: 0;
 display: block;
 border-radius: 12px;
 box-shadow: 0 2px 12px rgba(0, 0, 0, 0.4);
 border: 2px solid transparent;
 transition: border-color 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease;
 cursor: pointer;
}

.event-venue-images .venue-img:hover {
 border-color: rgb(84, 173, 247);
 box-shadow: 0 0 15px rgba(84, 173, 247, 0.5);
 transform: translateY(-5px);
}

@media (max-width: 600px) {
 :root {
 --navbar-top-height: 37px;
 --navbar-main-height: 3.25rem;
 --navbar-height: calc(var(--navbar-top-height) + var(--navbar-main-height));
 --navbar-logo-offset: 0;
 --home-content-pad-x: 5px;
 --home-section-block-gap: clamp(40px, 7vw, 56px);
 --hero-progress-track-max: min(72px, 16vw);
 --hero-progress-btn-size: 28px;
 }
 body {
 font-size: 15px;
 }
 :root {
 --navbar-pad-x: 0.75rem;
 }
 .navbar-top {
 padding: 0 var(--navbar-pad-x);
 padding-left: var(--navbar-pad-x);
 }
 .navbar-top-brand {
 font-size: 0.78rem;
 letter-spacing: 0.04em;
 word-spacing: 0.45em;
 }
 .navbar {
 flex-direction: row;
 flex-wrap: nowrap;
 align-items: center;
 justify-content: flex-start;
 gap: 0.35rem;
 padding: 0.35rem var(--navbar-pad-x);
 min-height: var(--navbar-main-height);
 }
 .navbar-start {
 margin-left: 0;
 flex: 1 1 auto;
 min-width: 0;
 gap: 0.55rem;
 }
 .logo {
 height: 34px;
 }
 .logo img {
 height: 34px;
 max-height: 34px;
 }
 .nav-links {
 gap: 0.45rem;
 min-width: 0;
 flex-shrink: 1;
 }
 .nav-dropdown-toggle {
 font-size: 0.88rem;
 gap: 0.32rem;
 padding: 0.2rem 0.15rem 0.2rem 0;
 white-space: nowrap;
 }
 .nav-right {
 margin-top: 0;
 margin-left: auto;
 flex-shrink: 0;
 }
 .nav-user-avatar {
 width: 2rem;
 height: 2rem;
 max-width: 2rem;
 max-height: 2rem;
 }
 .nav-mega-inner {
 padding-left: var(--navbar-pad-x);
 }
 .hero {
 height: auto;
 min-height: 0;
 overflow: visible;
 }
 body.home-page-body .hero {
 height: auto;
 min-height: 0;
 }
 .video-container {
 height: 60vw;
 min-height: 220px;
 max-height: none;
 position: relative;
 }
 body.home-page-body .video-container {
 height: 54vw;
 min-height: 198px;
 }
 .progress-container {
 padding: 8px var(--home-content-pad-x) calc(10px + env(safe-area-inset-bottom, 0px));
 }
 .progress-controls-row {
 gap: 6px;
 }
 .next-video-icon {
 width: 14px;
 height: 14px;
 }
 .ship-info {
 position: static;
 margin: 20px 0 0 0;
 padding: 0 var(--hero-overlay-inset-x);
 left: auto;
 right: auto;
 bottom: auto;
 }
 .hero-sc-search {
 top: calc(clamp(14px, 3.5vw, 22px) + 10px);
 padding: 0 var(--hero-overlay-inset-x);
 }
 .hero-sc-search-form {
 width: min(100%, 14rem);
 }
 .hero-sc-search-input {
 font-size: 13px;
 letter-spacing: 0.06em;
 }
 .ship-hero-copy {
 max-width: 100%;
 }
 .ship-hero-name {
 font-size: 32px;
 letter-spacing: 0.1em;
 }
 .ship-hero-uss {
 font-size: 14px;
 letter-spacing: 0.28em;
 text-indent: 0.28em;
 }
 .ship-hero-tagline-text {
 font-size: 19px;
 letter-spacing: 0.16em;
 }
 .games-section {
 position: static;
 width: 100%;
 margin: 10px 0;
 }
 .games-section {
 padding: 30px 5px;
 }
 .rsi-status-grid {
 grid-template-columns: 1fr;
 }
 .rsi-funding-body {
 grid-template-columns: 1fr;
 grid-template-rows: auto;
 }
 .rsi-funding-body-title--stats {
 grid-column: 1;
 grid-row: 1;
 }
 .rsi-funding-chart-head {
 grid-column: 1;
 grid-row: 2;
 align-items: flex-start;
 }
 .rsi-funding-stat-cards {
 grid-column: 1;
 grid-row: 3;
 }
 .rsi-funding-chart-frame {
 grid-column: 1;
 grid-row: 4;
 min-height: 260px;
 padding: 8px 8px 2px 6px;
 }

 .rsi-funding-page-body .rsi-funding-chart-frame {
 min-height: 260px;
 height: 260px;
 }
 .section-title {
 font-size: 28px;
 margin-bottom: 20px;
 }
 .games-container {
 flex-direction: column;
 gap: 20px;
 }
 .game-card {
 min-width: 0;
 border-radius: 8px;
 }
 .game-card img {
 height: 180px;
 }
 .game-info {
 padding: 15px;
 }
 .gifts-section {
 padding: 30px 5px;
 }
 .gifts-container {
 grid-template-columns: 1fr;
 gap: 15px;
 padding: 5px;
 }
 .event-info-section {
 padding: 30px 5px 20px 5px;
 }
 .event-info-text {
 font-size: 15px;
 margin-bottom: 15px;
 }
 .event-map iframe {
 min-height: 180px;
 max-width: 100%;
 }
 .event-venue-images {
 margin-top: 12px !important;
 padding: 0 5px;
 gap: 15px;
 grid-template-columns: 1fr;
 }
 .sidebar-modal,
 .login-drawer,
 .overlay {
 display: none !important;
 }
 .sidebar-modal.active,
 .overlay.active {
 display: block !important;
 }

 .login-drawer.sidebar-modal {
 width: min(18.5rem, calc(100vw - 1rem));
 right: calc(-1 * min(18.5rem, calc(100vw - 1rem)));
 top: var(--navbar-height);
 height: auto;
 max-height: calc(100dvh - var(--navbar-height));
 min-height: 0;
 padding: 0.75rem 0.65rem 0.85rem;
 border-radius: 0;
 border-left: none;
 border-top: none;
 box-shadow: -8px 12px 36px rgba(0, 0, 0, 0.48);
 overflow: hidden;
 }

 .login-drawer.sidebar-modal.active {
 right: 0;
 }

 .login-drawer.active {
 display: flex !important;
 flex-direction: column;
 }

 .modal-content {
 margin-top: 30px;
 width: 100%;
 box-sizing: border-box;
 }

 .login-drawer .modal-content.login-drawer-content {
 margin-top: 0 !important;
 flex: 1 1 auto;
 display: flex;
 flex-direction: column;
 justify-content: flex-start;
 padding: 0.35rem 0 0.5rem;
 min-height: 0;
 overflow-y: auto;
 transform: none;
 }

 .login-drawer-authed {
 --dps: 1;
 --drawer-content-inset-x: 0.55rem;
 padding-bottom: 1.85rem;
 }

 .login-drawer .modal-content.login-drawer-content.login-drawer-content--authed {
 transform: none;
 justify-content: flex-start;
 padding: 0.35rem var(--drawer-content-inset-x) 0.65rem;
 }

 .login-drawer-authed .drawer-profile-row {
 margin-bottom: 0.75rem;
 padding-bottom: 0.75rem;
 row-gap: 0.45rem;
 }

 .drawer-footer-actions {
 left: var(--drawer-content-inset-x);
 right: var(--drawer-content-inset-x);
 bottom: 0.15rem;
 }
 .form-input {
 font-size: 14px;
 padding: 8px;
 }
 .sign-in-btn {
 font-size: 14px;
 padding: 10px;
 }
 .alert-modal {
 min-width: 180px;
 padding: 10px;
 }
 .alert-modal .message {
 font-size: 13px;
 }
 .alert-modal .confirm-btn {
 font-size: 13px;
 padding: 6px 12px;
 }
}

/* 全站底部条 */
.uss-site-footer {
 position: relative;
 z-index: 2;
 margin-top: auto;
 background: var(--navbar-bg);
 border-top: 1px solid rgba(95, 184, 255, 0.22);
 color: rgba(210, 225, 235, 0.88);
 font-family: system-ui, -apple-system, 'Segoe UI', sans-serif;
 overflow: visible;
 --uss-footer-scale: 1.2;
 --uss-footer-icon: calc(2rem * var(--uss-footer-scale));
 --uss-footer-icon-slot: var(--uss-footer-icon);
 --uss-footer-row-h: calc(2.4rem * var(--uss-footer-scale));
 --uss-footer-seg-body-h: calc(var(--uss-footer-row-h) * 2);
 --uss-footer-brand-w: calc(var(--uss-footer-row-h) * 2 + 0.4rem);
 --uss-footer-gap: calc(3rem * var(--uss-footer-scale));
 --uss-footer-duo-col-gap: calc(2rem * var(--uss-footer-scale));
 --uss-footer-link-gap: calc(0.42rem * var(--uss-footer-scale));
 --uss-footer-pad-y: calc(1.15rem * var(--uss-footer-scale));
 --uss-footer-unified: rgba(168, 210, 235, 0.72);
 --uss-footer-unified-hover: rgba(200, 232, 248, 0.92);
}

.uss-site-footer-main {
 padding-left: var(--home-content-pad-x);
 padding-right: var(--home-content-pad-x);
 box-sizing: border-box;
 overflow: visible;
}

.uss-site-footer-bar {
 display: flex;
 align-items: flex-start;
 justify-content: center;
 gap: var(--uss-footer-gap);
 max-width: var(--home-content-max);
 width: fit-content;
 margin: 0 auto;
 padding: var(--uss-footer-pad-y) 0 calc(1.05rem * var(--uss-footer-scale));
 box-sizing: border-box;
 overflow: visible;
}

.uss-site-footer-seg {
 display: flex;
 flex-direction: column;
 justify-content: flex-start;
 align-items: stretch;
 flex: 0 0 auto;
 padding: 0;
 min-height: var(--uss-footer-seg-body-h);
 box-sizing: border-box;
}

.uss-site-footer-seg--brand {
 flex: 0 0 var(--uss-footer-brand-w);
 width: var(--uss-footer-brand-w);
 align-self: center;
 justify-content: center;
 align-items: center;
 padding: 0;
 min-height: var(--uss-footer-seg-body-h);
}

.uss-site-footer-seg--brand .uss-footer-sc-badge {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 width: 100%;
 height: var(--uss-footer-seg-body-h);
}

.uss-site-footer-seg--community,
.uss-site-footer-seg--official,
.uss-site-footer-seg--fleet {
 width: auto;
 max-width: none;
 flex: 0 0 auto;
}

.uss-site-footer-seg-body {
 display: flex;
 flex-direction: column;
 justify-content: flex-start;
 align-items: flex-start;
 width: max-content;
 max-width: 100%;
 height: var(--uss-footer-seg-body-h);
 min-height: var(--uss-footer-seg-body-h);
 overflow: visible;
}

.uss-site-footer-vrule {
 flex: 0 0 1px;
 width: 1px;
 align-self: stretch;
 margin: 0;
 background: rgba(95, 184, 255, 0.24);
}

.uss-footer-link-list {
 list-style: none;
 margin: 0;
 padding: 0;
 display: grid;
 grid-template-rows: repeat(2, var(--uss-footer-row-h));
 align-content: start;
 width: max-content;
 max-width: 100%;
 height: var(--uss-footer-seg-body-h);
 min-height: var(--uss-footer-seg-body-h);
}

.uss-footer-link-list--duo {
 grid-template-columns: max-content max-content;
 grid-template-rows: repeat(2, var(--uss-footer-row-h));
 column-gap: var(--uss-footer-duo-col-gap);
 row-gap: 0;
 align-content: start;
 width: max-content;
 max-width: 100%;
 box-sizing: border-box;
}

.uss-footer-link-list--duo > li:nth-child(1) {
 grid-column: 1;
 grid-row: 1;
}

.uss-footer-link-list--duo > li:nth-child(2) {
 grid-column: 2;
 grid-row: 1;
}

.uss-footer-link-list--duo > li:nth-child(3) {
 grid-column: 1;
 grid-row: 2;
}

.uss-footer-link-list--duo > li:nth-child(4) {
 grid-column: 2;
 grid-row: 2;
}

.uss-footer-link-list li {
 margin: 0;
 padding: 0;
 display: flex;
 align-items: flex-start;
 width: max-content;
 max-width: 100%;
 min-height: 0;
}

.uss-footer-link-list--middle > li {
 grid-row: 1;
 align-self: start;
}

.uss-footer-link-row {
 position: relative;
 display: inline-flex;
 align-items: center;
 gap: var(--uss-footer-link-gap);
 width: max-content;
 max-width: 100%;
 height: var(--uss-footer-row-h);
 min-height: var(--uss-footer-row-h);
 padding: 0;
 text-decoration: none;
 color: inherit;
 border-radius: 6px;
 transition: background 0.15s ease;
 box-sizing: border-box;
}

.uss-footer-link-row:hover {
 background: rgba(95, 184, 255, 0.07);
}

.uss-footer-link-row-icon {
 position: relative;
 flex: 0 0 var(--uss-footer-icon-slot);
 width: var(--uss-footer-icon-slot);
 height: var(--uss-footer-row-h);
 display: flex;
 align-items: center;
 justify-content: center;
 cursor: help;
}

.uss-footer-link-row-icon--rsi {
 flex: 0 0 calc(2.65rem * var(--uss-footer-scale));
 width: calc(2.65rem * var(--uss-footer-scale));
 min-width: calc(2.65rem * var(--uss-footer-scale));
 height: var(--uss-footer-row-h);
}

.uss-footer-link-row-text {
 display: flex;
 flex-direction: column;
 justify-content: center;
 flex: 0 1 auto;
 min-width: 0;
}

.uss-footer-link-title {
 margin: 0;
 font-size: calc(0.8125rem * var(--uss-footer-scale));
 font-weight: 700;
 letter-spacing: 0.015em;
 color: var(--uss-footer-unified);
 line-height: 1;
 white-space: nowrap;
 overflow: hidden;
 text-overflow: ellipsis;
 transition: color 0.15s ease;
}

.uss-site-footer-seg--community .uss-footer-link-title {
 overflow: visible;
 text-overflow: unset;
}

.uss-footer-link-desc-tip {
 position: absolute;
 left: 50%;
 bottom: calc(100% + 0.45rem);
 z-index: 25;
 width: max-content;
 max-width: min(14rem, 75vw);
 padding: 0.35rem 0.5rem;
 border-radius: 6px;
 border: 1px solid rgba(95, 184, 255, 0.35);
 background: rgba(8, 18, 32, 0.97);
 box-shadow: 0 6px 20px rgba(0, 0, 0, 0.4);
 font-size: calc(0.72rem * var(--uss-footer-scale));
 line-height: 1.25;
 color: rgba(170, 200, 220, 0.88);
 text-align: center;
 white-space: nowrap;
 pointer-events: none;
 opacity: 0;
 visibility: hidden;
 transform: translate(-50%, 4px);
 transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s ease;
}

.uss-footer-link-row-icon:hover .uss-footer-link-desc-tip,
.uss-footer-link-row:focus-visible .uss-footer-link-desc-tip {
 opacity: 1;
 visibility: visible;
 transform: translate(-50%, 0);
}

.uss-footer-link-desc {
 margin: 0;
 font-size: calc(0.72rem * var(--uss-footer-scale));
 line-height: 1.25;
 color: rgba(170, 200, 220, 0.62);
}

.uss-footer-link-row-icon--rsi .uss-footer-link-desc-tip {
 white-space: normal;
 max-width: min(12rem, 70vw);
}

.uss-footer-hanghua-logo,
.uss-footer-erkul-logo,
.uss-footer-chub-logo,
.uss-footer-sctools-logo {
 width: var(--uss-footer-icon);
 height: var(--uss-footer-icon);
 object-fit: contain;
 border-radius: 6px;
 display: block;
 opacity: 0.88;
 transition: opacity 0.15s ease;
}

.uss-footer-rsi-logo {
 width: calc(2.65rem * var(--uss-footer-scale));
 max-height: var(--uss-footer-icon);
 height: auto;
 display: block;
 object-fit: contain;
 color: var(--uss-footer-unified);
 opacity: 0.88;
 transition: opacity 0.15s ease, color 0.15s ease;
}

.uss-footer-rsi-logo path {
 fill: currentColor;
}

.uss-footer-link-row:hover .uss-footer-link-title {
 color: var(--uss-footer-unified-hover);
}

.uss-footer-link-row:hover .uss-footer-hanghua-logo,
.uss-footer-link-row:hover .uss-footer-erkul-logo,
.uss-footer-link-row:hover .uss-footer-chub-logo,
.uss-footer-link-row:hover .uss-footer-sctools-logo,
.uss-footer-link-row:hover .uss-footer-rsi-logo {
 opacity: 1;
}

.uss-footer-link-row:hover .uss-footer-rsi-logo {
 color: var(--uss-footer-unified-hover);
}

.uss-footer-bc-badge {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 width: var(--uss-footer-icon);
 height: var(--uss-footer-icon);
 min-width: var(--uss-footer-icon);
 border-radius: 6px;
 background: rgba(148, 198, 240, 0.06);
 border: 1px solid rgba(168, 210, 235, 0.28);
 color: var(--uss-footer-unified);
 font-size: calc(0.72rem * var(--uss-footer-scale));
 font-weight: 900;
 letter-spacing: 0.04em;
 flex-shrink: 0;
 transition: color 0.15s ease, border-color 0.15s ease, opacity 0.15s ease;
}

.uss-footer-link-row:hover .uss-footer-bc-badge {
 opacity: 1;
}

.uss-footer-link-row--bc:hover .uss-footer-bc-badge {
 color: var(--uss-footer-unified-hover);
 border-color: rgba(200, 232, 248, 0.42);
 background: rgba(148, 198, 240, 0.1);
}

.uss-footer-link-row--bc .uss-footer-link-title {
 overflow: visible;
 text-overflow: unset;
}

.uss-footer-link-row--chub .uss-footer-link-title {
 overflow: visible;
 text-overflow: unset;
}

.uss-footer-sc-badge {
 position: relative;
 display: inline-flex;
 align-items: center;
 justify-content: center;
 cursor: help;
 outline: none;
 line-height: 0;
}

.uss-footer-sc-community-logo {
 width: calc(var(--uss-footer-row-h) * 2 - 0.15rem);
 height: calc(var(--uss-footer-row-h) * 2 - 0.15rem);
 object-fit: contain;
 display: block;
 opacity: 0.95;
 transition: opacity 0.15s ease;
}

.uss-footer-sc-badge:hover .uss-footer-sc-community-logo,
.uss-footer-sc-badge:focus-visible .uss-footer-sc-community-logo {
 opacity: 1;
}

.uss-footer-sc-badge-tip {
 position: absolute;
 left: 50%;
 bottom: calc(100% + 0.5rem);
 z-index: 20;
 width: max-content;
 max-width: min(18rem, 82vw);
 padding: 0.55rem 0.65rem;
 border-radius: 8px;
 border: 1px solid rgba(95, 184, 255, 0.35);
 background: rgba(8, 18, 32, 0.97);
 box-shadow: 0 8px 24px rgba(0, 0, 0, 0.45);
 font-size: 0.65rem;
 line-height: 1.45;
 color: rgba(210, 225, 235, 0.92);
 pointer-events: none;
 opacity: 0;
 visibility: hidden;
 transform: translate(-50%, 4px);
 transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s ease;
}

.uss-footer-sc-badge-tip-en {
 display: block;
 margin-bottom: 0.3rem;
}

.uss-footer-sc-badge-tip-zh {
 display: block;
 color: rgba(170, 200, 220, 0.88);
}

.uss-footer-sc-badge:hover .uss-footer-sc-badge-tip,
.uss-footer-sc-badge:focus-visible .uss-footer-sc-badge-tip {
 opacity: 1;
 visibility: visible;
 transform: translate(-50%, 0);
}

.uss-site-footer-bottom {
 border-top: 1px solid rgba(95, 184, 255, 0.18);
 padding-left: var(--home-content-pad-x);
 padding-right: var(--home-content-pad-x);
 box-sizing: border-box;
}

.uss-site-footer-bottom-inner {
 max-width: var(--home-content-max);
 width: 100%;
 margin: 0 auto;
 padding: calc(0.85rem * var(--uss-footer-scale)) 0 calc(1.05rem * var(--uss-footer-scale));
 box-sizing: border-box;
}

.uss-site-footer-copy {
 display: block;
 margin: 0;
 font-size: 0.78rem;
 color: rgba(150, 180, 200, 0.58);
 letter-spacing: 0.04em;
 text-align: center;
 text-decoration: none;
 cursor: pointer;
 transition: color 0.2s ease;
}

.uss-site-footer-copy:hover,
.uss-site-footer-copy:focus-visible {
 color: rgba(190, 228, 248, 0.92);
}

@media (max-width: 900px) {
 .uss-site-footer-bar {
 display: flex;
 flex-direction: column;
 align-items: stretch;
 gap: 0;
 width: 100%;
 max-width: 100%;
 padding: var(--uss-footer-pad-y) 0 calc(0.95rem * var(--uss-footer-scale));
 }

 .uss-site-footer-vrule {
 display: none;
 }

 .uss-site-footer-seg--brand {
 min-height: 0;
 width: 100%;
 flex: none;
 padding: 0 0 calc(0.65rem * var(--uss-footer-scale));
 border-bottom: 1px solid rgba(95, 184, 255, 0.14);
 box-sizing: border-box;
 align-self: stretch;
 justify-content: flex-start;
 align-items: flex-start;
 }

 .uss-site-footer-seg--brand .uss-footer-sc-badge {
 height: auto;
 justify-content: flex-start;
 }

 .uss-site-footer-seg--community,
 .uss-site-footer-seg--official,
 .uss-site-footer-seg--fleet {
 display: contents;
 }

 .uss-site-footer-seg-body {
 display: contents;
 }

 .uss-footer-link-list,
 .uss-footer-link-list--duo {
 display: contents;
 }

 .uss-footer-link-list li,
 .uss-footer-link-list--duo > li:nth-child(1),
 .uss-footer-link-list--duo > li:nth-child(2),
 .uss-footer-link-list--duo > li:nth-child(3),
 .uss-footer-link-list--duo > li:nth-child(4),
 .uss-footer-link-list--middle > li {
 display: flex;
 align-items: center;
 width: 100%;
 max-width: 100%;
 min-height: var(--uss-footer-row-h);
 padding: calc(0.55rem * var(--uss-footer-scale)) 0;
 border-bottom: 1px solid rgba(95, 184, 255, 0.14);
 box-sizing: border-box;
 }

 .uss-site-footer-seg--fleet .uss-footer-link-list li {
 border-bottom: none;
 padding-bottom: 0;
 }

 .uss-footer-link-row {
 width: 100%;
 max-width: 100%;
 }
}

@media (max-width: 520px) {
 .uss-site-footer {
 --uss-footer-icon: calc(1.75rem * var(--uss-footer-scale));
 --uss-footer-icon-slot: calc(2.55rem * var(--uss-footer-scale));
 --uss-footer-row-h: calc(2.25rem * var(--uss-footer-scale));
 }

 .uss-footer-sc-community-logo {
 width: calc(var(--uss-footer-row-h) * 2 - 0.15rem);
 height: calc(var(--uss-footer-row-h) * 2 - 0.15rem);
 }

 .uss-footer-sc-badge-tip {
 left: 0;
 transform: translateY(4px);
 }

 .uss-footer-sc-badge:hover .uss-footer-sc-badge-tip,
 .uss-footer-sc-badge:focus-visible .uss-footer-sc-badge-tip {
 transform: translateY(0);
 }

 .uss-footer-link-desc-tip {
 left: 0;
 transform: translateY(4px);
 text-align: left;
 white-space: normal;
 }

 .uss-footer-link-row-icon:hover .uss-footer-link-desc-tip,
 .uss-footer-link-row:focus-visible .uss-footer-link-desc-tip {
 transform: translateY(0);
 }

 .uss-footer-link-title {
 font-size: calc(0.8rem * var(--uss-footer-scale));
 }

 .uss-footer-link-desc {
 font-size: calc(0.68rem * var(--uss-footer-scale));
 }
}