/*
Theme Name: 九思社区
Theme URI:
Author:
Author URI:
Description: 九思社区主题 - 资源分享社区首页
Version: 1.0
Requires at least: 5.9
Requires PHP: 7.4
Text Domain: jiusi-community
*/

/* ==========================================================================
   变量
   ========================================================================== */
:root{
  --jiusi-pink-1: #ff8fc0;
  --jiusi-pink-2: #ffd3e6;
  --jiusi-purple: #7c5cff;
  --jiusi-purple-2: #9c7bff;
  --jiusi-teal: #12b981;
  --jiusi-teal-2: #17d696;
  --jiusi-blue: #3b82f6;
  --jiusi-blue-2: #5b9bff;
  --jiusi-amber: #f5a623;
  --jiusi-amber-2: #ffc247;
  --jiusi-red: #e0393e;
  --jiusi-text: #1f2430;
  --jiusi-text-light: #6b7280;
  --jiusi-border: #ececef;
  --jiusi-bg: #f7f7fb;
  --jiusi-radius: 14px;
  --jiusi-header-height: 64px;
}

* { box-sizing: border-box; }

body.jiusi-theme{
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;
  color: var(--jiusi-text);
  background: #fff;
  -webkit-font-smoothing: antialiased;
}

a{ color: inherit; text-decoration: none; }
ul{ margin: 0; padding: 0; list-style: none; }
img{ max-width: 100%; display: block; }
button{ font-family: inherit; cursor: pointer; }

.jiusi-container{
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 20px;
}

.jiusi-header-container{
  max-width: 1600px;
  margin: 0 auto;
  padding: 0 32px;
}

/* ==========================================================================
   顶部导航
   ========================================================================== */
.jiusi-header{
  position: sticky;
  top: 0;
  z-index: 100;
  background: var(--jiusi-bg);
  border-bottom: 1px solid var(--jiusi-border);
}

.jiusi-header-inner{
  display: flex;
  align-items: center;
  gap: 28px;
  height: var(--jiusi-header-height);
}

.jiusi-logo{
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 19px;
  font-weight: 700;
  white-space: nowrap;
}
.jiusi-logo .jiusi-logo-mark{
  width: 32px;
  height: 32px;
  border-radius: 9px;
  background: linear-gradient(135deg, var(--jiusi-purple), var(--jiusi-pink-1));
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 15px;
}
.jiusi-logo .jiusi-logo-img{
  height: calc(var(--jiusi-header-height) * 0.8);
  width: auto;
}

.jiusi-nav{
  display: flex;
  align-items: center;
  gap: 4px;
  flex: 1;
}
.jiusi-nav-item{
  position: relative;
}
.jiusi-nav-link{
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 10px 14px;
  border-radius: 8px;
  font-size: 14.5px;
  color: var(--jiusi-text);
}
.jiusi-nav-link:hover,
.jiusi-nav-item.jiusi-active .jiusi-nav-link{
  background: var(--jiusi-bg);
  color: var(--jiusi-purple);
}
.jiusi-nav-link svg{ width: 16px; height: 16px; flex-shrink: 0; }
.jiusi-nav-link .jiusi-caret{
  width: 10px; height: 10px;
  opacity: .55;
  transition: transform .15s ease;
}
.jiusi-nav-item:hover .jiusi-caret{ transform: rotate(180deg); }

.jiusi-submenu{
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  min-width: 160px;
  background: #fff;
  border: 1px solid var(--jiusi-border);
  border-radius: 10px;
  box-shadow: 0 12px 30px rgba(20,20,40,.09);
  padding: 6px;
  opacity: 0;
  visibility: hidden;
  transform: translateY(4px);
  transition: all .15s ease;
}
.jiusi-nav-item:hover .jiusi-submenu,
.jiusi-nav-item.jiusi-open .jiusi-submenu{
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.jiusi-submenu a{
  display: block;
  padding: 8px 10px;
  border-radius: 7px;
  font-size: 14px;
  color: var(--jiusi-text);
}
.jiusi-submenu a:hover{ background: var(--jiusi-bg); color: var(--jiusi-purple); }

.jiusi-header-actions{
  display: flex;
  align-items: center;
  gap: 10px;
  white-space: nowrap;
}

.jiusi-btn{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  border-radius: 999px;
  font-size: 13.5px;
  font-weight: 600;
  border: 1px solid transparent;
}
.jiusi-btn svg{ width: 14px; height: 14px; flex-shrink: 0; }
.jiusi-btn-solid{
  background: var(--jiusi-red);
  color: #fff;
}
.jiusi-btn-outline-blue{
  border-color: var(--jiusi-blue);
  color: var(--jiusi-blue);
  background: #fff;
}
.jiusi-btn-outline-green{
  border-color: var(--jiusi-teal);
  color: var(--jiusi-teal);
  background: #fff;
}

.jiusi-icon-btn{
  width: 34px; height: 34px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 50%;
  color: var(--jiusi-text-light);
}
.jiusi-icon-btn:hover{ background: var(--jiusi-bg); color: var(--jiusi-text); }
.jiusi-icon-btn svg{ width: 18px; height: 18px; }

.jiusi-user{ position: relative; }
.jiusi-user-avatar{
  width: 34px; height: 34px;
  border-radius: 50%;
  background: #fff;
  border: 1px solid var(--jiusi-border);
  overflow: hidden;
  display: flex; align-items: center; justify-content: center;
}
.jiusi-user-avatar img{
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 5px;
}
.jiusi-user-menu{
  position: absolute;
  right: 0;
  top: calc(100% + 8px);
  width: 300px;
  background: #fff;
  border: 1px solid var(--jiusi-border);
  border-radius: 14px;
  box-shadow: 0 14px 34px rgba(20,20,40,.1);
  padding: 8px;
  opacity: 0;
  visibility: hidden;
  transform: translateY(4px);
  transition: all .15s ease;
}
.jiusi-user:hover .jiusi-user-menu{
  opacity: 1; visibility: visible; transform: translateY(0);
}
.jiusi-user-menu a{
  display: flex; align-items: center; gap: 10px;
  padding: 11px 12px;
  border-radius: 9px;
  font-size: 14.5px;
}
.jiusi-user-menu a svg{ width: 18px; height: 18px; color: var(--jiusi-text-light); flex-shrink: 0; }
.jiusi-user-menu a:hover{ background: var(--jiusi-bg); }
.jiusi-user-menu .jiusi-logout{ color: var(--jiusi-red); }
.jiusi-user-menu .jiusi-logout svg{ color: var(--jiusi-red); }

.jiusi-user-menu-head{
  display: flex;
  gap: 14px;
  padding: 14px 12px 16px;
  border-bottom: 1px solid var(--jiusi-border);
  margin-bottom: 6px;
}
.jiusi-user-menu-avatar{
  width: 56px; height: 56px; flex-shrink: 0;
  border-radius: 50%;
  overflow: hidden;
  border: 1px solid var(--jiusi-border);
  display: flex; align-items: center; justify-content: center;
  background: #fff;
}
.jiusi-user-menu-avatar img{ width: 100%; height: 100%; object-fit: contain; padding: 6px; }

.jiusi-user-menu-info{ min-width: 0; flex: 1; }
.jiusi-user-menu-name{
  margin: 0 0 6px;
  font-size: 16px;
  font-weight: 700;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.jiusi-user-menu-badges{ display: flex; align-items: center; gap: 6px; margin-bottom: 6px; flex-wrap: wrap; }
.jiusi-badge-member,
.jiusi-badge-balance{
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 11.5px; font-weight: 700;
  padding: 3px 9px;
  border-radius: 999px;
}
.jiusi-badge-member svg{ width: 12px; height: 12px; }
.jiusi-badge-member{ background: var(--jiusi-bg); color: var(--jiusi-text-light); }
.jiusi-badge-member-active{ background: #fff6dc; color: #b8860b; }
.jiusi-badge-balance{ background: #e4f9ef; color: #0f9d63; }
.jiusi-badge-balance svg{ width: 12px; height: 12px; }

.jiusi-user-menu-email{
  margin: 0;
  font-size: 12.5px;
  color: var(--jiusi-text-light);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.jiusi-user-menu-vip-line{
  margin: 3px 0 0;
  font-size: 12px;
  color: var(--jiusi-text-light);
}

.jiusi-user-menu-divider{
  height: 1px;
  background: var(--jiusi-border);
  margin: 6px 4px;
}

.jiusi-guest-actions{ display: flex; gap: 8px; }
.jiusi-guest-actions a{
  padding: 8px 16px;
  border-radius: 999px;
  font-size: 13.5px;
  font-weight: 600;
}
.jiusi-guest-actions .jiusi-login{ background: var(--jiusi-purple); color: #fff; }
.jiusi-guest-actions .jiusi-register{ border: 1px solid var(--jiusi-border); }

.jiusi-menu-toggle{ display: none; }

/* ==========================================================================
   Hero
   ========================================================================== */
.jiusi-hero{
  margin: 24px auto 0;
  border-radius: 20px;
  overflow: hidden;
  position: relative;
  background: var(--jiusi-pink-1);
  line-height: 0;
}
.jiusi-hero-img{
  display: block;
  width: 100%;
  height: auto;
}

.jiusi-search{
  max-width: 720px;
  margin: -26px auto 0;
  position: relative;
  z-index: 2;
  padding: 0 20px;
}
.jiusi-search-form{
  display: flex;
  align-items: center;
  gap: 10px;
  background: #fff;
  border-radius: 999px;
  box-shadow: 0 14px 34px rgba(20,20,40,.12);
  padding: 8px 8px 8px 20px;
}
.jiusi-search-form svg{ width: 18px; height: 18px; color: var(--jiusi-text-light); flex-shrink: 0; }
.jiusi-search-form input{
  flex: 1;
  border: 0;
  outline: 0;
  font-size: 14.5px;
  background: transparent;
  padding: 10px 0;
}
.jiusi-search-toggle{
  display: flex; align-items: center; gap: 4px;
  font-size: 13px;
  color: var(--jiusi-text-light);
  background: var(--jiusi-bg);
  border-radius: 999px;
  padding: 7px 12px;
  white-space: nowrap;
}
.jiusi-search-submit{
  background: var(--jiusi-purple);
  color: #fff;
  border: 0;
  border-radius: 999px;
  padding: 10px 22px;
  font-size: 14px;
  font-weight: 700;
  display: flex; align-items: center; gap: 6px;
  white-space: nowrap;
}

/* ==========================================================================
   分类卡片
   ========================================================================== */
.jiusi-categories{
  margin-top: 34px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}
.jiusi-cat-card{
  border-radius: var(--jiusi-radius);
  padding: 22px 22px 24px;
  color: #fff;
  min-height: 110px;
  position: relative;
  overflow: hidden;
}
.jiusi-cat-card::after{
  content: "";
  position: absolute;
  right: -20px; top: -20px;
  width: 90px; height: 90px;
  border-radius: 50%;
  background: rgba(255,255,255,.14);
}
.jiusi-cat-card h3{
  margin: 0 0 6px;
  font-size: 19px;
  display: flex;
  align-items: center;
  gap: 6px;
}
.jiusi-cat-card p{
  margin: 0;
  font-size: 13px;
  opacity: .92;
}
.jiusi-cat-1{ background: linear-gradient(135deg, var(--jiusi-purple), var(--jiusi-purple-2)); }
.jiusi-cat-2{ background: linear-gradient(135deg, var(--jiusi-teal), var(--jiusi-teal-2)); }
.jiusi-cat-3{ background: linear-gradient(135deg, var(--jiusi-blue), var(--jiusi-blue-2)); }
.jiusi-cat-4{ background: linear-gradient(135deg, var(--jiusi-amber), var(--jiusi-amber-2)); }

/* ==========================================================================
   内容区块
   ========================================================================== */
.jiusi-section{ margin-top: 40px; }
.jiusi-section-head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 18px;
}
.jiusi-section-title{
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 19px;
  font-weight: 700;
  margin: 0;
}
.jiusi-section-title svg{ width: 20px; height: 20px; color: var(--jiusi-purple); }
.jiusi-section-more{
  display: flex; align-items: center; gap: 4px;
  font-size: 13.5px;
  color: var(--jiusi-purple);
  font-weight: 600;
}

.jiusi-grid{
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 18px;
}

.jiusi-card{
  background: #fff;
  border-radius: var(--jiusi-radius);
  overflow: hidden;
  border: 1px solid var(--jiusi-border);
  transition: transform .15s ease, box-shadow .15s ease;
}
.jiusi-card:hover{
  transform: translateY(-3px);
  box-shadow: 0 16px 32px rgba(20,20,40,.09);
}
.jiusi-card-thumb{
  position: relative;
  aspect-ratio: 4/3;
  background: var(--jiusi-bg);
  overflow: hidden;
}
.jiusi-card-thumb img{
  width: 100%; height: 100%; object-fit: cover;
}
.jiusi-card-badge{
  position: absolute;
  top: 8px; left: 8px;
  background: var(--jiusi-red);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 5px;
}
.jiusi-card-body{ padding: 12px 13px 14px; }
.jiusi-card-title{
  margin: 0 0 8px;
  font-size: 13.5px;
  line-height: 1.5;
  font-weight: 600;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 2.9em;
}
.jiusi-card-meta{
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 11px;
  color: var(--jiusi-text-light);
}
/* 首页卡片的标签比列表页小一号，只在首页这套 .jiusi-card 卡片里覆盖，不影响列表页 */
.jiusi-card .jiusi-list-card-tags{ gap: 5px; margin-bottom: 8px; }
.jiusi-card .jiusi-tag{ font-size: 10px; padding: 2px 8px; }
.jiusi-card-meta span{ display: flex; align-items: center; gap: 3px; }
.jiusi-card-meta svg{ width: 12px; height: 12px; }

.jiusi-empty{
  grid-column: 1 / -1;
  text-align: center;
  padding: 60px 20px;
  color: var(--jiusi-text-light);
  background: #fff;
  border: 1px dashed var(--jiusi-border);
  border-radius: var(--jiusi-radius);
}

/* ==========================================================================
   写真列表 - 竖版网格卡片
   ========================================================================== */
.jiusi-image-grid{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}
.jiusi-image-card{
  display: block;
  background: #fff;
  border-radius: var(--jiusi-radius);
  overflow: hidden;
  border: 1px solid var(--jiusi-border);
  transition: transform .15s ease, box-shadow .15s ease;
}
.jiusi-image-card:hover{
  transform: translateY(-3px);
  box-shadow: 0 16px 32px rgba(20,20,40,.09);
}
.jiusi-image-card-thumb{
  position: relative;
  aspect-ratio: 3/4;
  background: var(--jiusi-bg);
  overflow: hidden;
}
.jiusi-image-card-thumb img{
  width: 100%; height: 100%; object-fit: cover;
}
.jiusi-image-card-body{ padding: 12px 13px 14px; }
.jiusi-image-card-title{
  margin: 0 0 8px;
  font-size: 13.5px;
  line-height: 1.5;
  font-weight: 600;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 2.9em;
}
.jiusi-image-card-tag{
  display: inline-block;
  font-size: 10.5px;
  color: var(--jiusi-purple);
  background: #f1edff;
  padding: 2px 7px;
  border-radius: 5px;
  margin-bottom: 9px;
}
.jiusi-image-card-meta{
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 11px;
  color: var(--jiusi-text-light);
}
.jiusi-image-card-meta span{ display: flex; align-items: center; gap: 3px; }
.jiusi-image-card-meta svg{ width: 12px; height: 12px; }

/* ==========================================================================
   分页
   ========================================================================== */
.jiusi-pagination{
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 6px;
  margin: 34px 0 10px;
}
.jiusi-pagination a,
.jiusi-pagination span{
  min-width: 34px;
  height: 34px;
  padding: 0 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  font-size: 13.5px;
  color: var(--jiusi-text);
  background: #fff;
  border: 1px solid var(--jiusi-border);
}
.jiusi-pagination a:hover{ border-color: var(--jiusi-purple); color: var(--jiusi-purple); }
.jiusi-pagination .current{
  background: var(--jiusi-purple);
  border-color: var(--jiusi-purple);
  color: #fff;
}

/* ==========================================================================
   页脚
   ========================================================================== */
.jiusi-footer{
  margin-top: 60px;
  background: var(--jiusi-bg);
  border-top: 1px solid var(--jiusi-border);
  padding-top: 44px;
}
.jiusi-footer-grid{
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1.2fr;
  gap: 30px;
  padding-bottom: 34px;
}
.jiusi-footer-brand .jiusi-logo{ margin-bottom: 12px; }
.jiusi-footer-brand .jiusi-logo-img{ height: 32px; }
.jiusi-footer-brand p{
  font-size: 13.5px;
  color: var(--jiusi-text-light);
  line-height: 1.7;
  margin: 0;
}
.jiusi-footer h4{
  font-size: 14.5px;
  margin: 0 0 14px;
}
.jiusi-footer ul li{ margin-bottom: 10px; }
.jiusi-footer ul li a{
  font-size: 13.5px;
  color: var(--jiusi-text-light);
  display: flex; align-items: center; gap: 6px;
}
.jiusi-footer ul li a:hover{ color: var(--jiusi-purple); }
.jiusi-footer-field{
  display: flex; align-items: center; gap: 8px;
  border: 1px solid var(--jiusi-border);
  border-radius: 8px;
  padding: 9px 12px;
  margin-bottom: 10px;
  font-size: 13px;
  color: var(--jiusi-text-light);
}
.jiusi-footer-field svg{ width: 14px; height: 14px; }
.jiusi-footer-bottom{
  border-top: 1px solid var(--jiusi-border);
  padding: 16px 0;
  display: flex;
  justify-content: space-between;
  font-size: 12.5px;
  color: var(--jiusi-text-light);
}
.jiusi-footer-bottom a{ margin-left: 16px; }

/* ==========================================================================
   响应式
   ========================================================================== */
@media (max-width: 1080px){
  .jiusi-grid{ grid-template-columns: repeat(3, 1fr); }
  .jiusi-image-grid{ grid-template-columns: repeat(3, 1fr); }
  .jiusi-categories{ grid-template-columns: repeat(2, 1fr); }
  .jiusi-footer-grid{ grid-template-columns: 1fr 1fr; }
}

@media (max-width: 780px){
  .jiusi-header-container{ padding: 0 16px; }
  .jiusi-nav, .jiusi-header-actions .jiusi-btn, .jiusi-header-actions .jiusi-icon-btn{ display: none; }
  .jiusi-menu-toggle{ display: flex; }
  .jiusi-grid{ grid-template-columns: repeat(2, 1fr); }
  .jiusi-image-grid{ grid-template-columns: repeat(2, 1fr); }
  .jiusi-categories{ grid-template-columns: 1fr 1fr; }
}

@media (max-width: 480px){
  .jiusi-grid{ grid-template-columns: 1fr 1fr; }
  .jiusi-image-grid{ grid-template-columns: 1fr 1fr; }
}

/* ==========================================================================
   登录 / 注册
   ========================================================================== */
.jiusi-auth-wrap{
  max-width: 520px;
  margin: 60px auto 90px;
  padding: 0 20px;
}
.jiusi-auth-card{
  background: #fff;
  border: 1px solid var(--jiusi-border);
  border-radius: 18px;
  padding: 40px 36px;
}
.jiusi-auth-card h1{
  text-align: center;
  font-size: 21px;
  margin: 0 0 8px;
}
.jiusi-auth-sub{
  text-align: center;
  font-size: 13.5px;
  color: var(--jiusi-text-light);
  margin: 0 0 26px;
}
.jiusi-auth-sub a{ color: var(--jiusi-blue); font-weight: 600; }

.jiusi-auth-alert{
  background: #fef2f2;
  border: 1px solid #fecaca;
  color: #b91c1c;
  font-size: 13px;
  padding: 12px 16px;
  border-radius: 10px;
  margin-bottom: 20px;
}
.jiusi-auth-alert ul{ margin: 0; padding-left: 18px; list-style: disc; }
.jiusi-auth-alert ul li + li{ margin-top: 4px; }

.jiusi-auth-tabs{
  display: flex;
  gap: 4px;
  background: var(--jiusi-bg);
  border-radius: 10px;
  padding: 4px;
  margin-bottom: 22px;
}
.jiusi-auth-tabs button{
  flex: 1;
  border: 0;
  background: transparent;
  padding: 9px 0;
  border-radius: 8px;
  font-size: 13.5px;
  color: var(--jiusi-text-light);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
}
.jiusi-auth-tabs button svg{ width: 14px; height: 14px; }
.jiusi-auth-tabs button.jiusi-active{
  background: #fff;
  color: var(--jiusi-blue);
  box-shadow: 0 1px 3px rgba(20,20,40,.1);
  font-weight: 600;
}

.jiusi-field{ margin-bottom: 18px; }
.jiusi-field label{
  display: block;
  font-size: 13px;
  font-weight: 600;
  margin-bottom: 6px;
}
.jiusi-field input{
  width: 100%;
  padding: 11px 14px;
  border: 1px solid var(--jiusi-border);
  border-radius: 9px;
  font-size: 14px;
  outline: 0;
  background: #fff;
}
.jiusi-field input:focus{ border-color: var(--jiusi-blue); }
.jiusi-field-hint{
  font-size: 12px;
  color: var(--jiusi-text-light);
  margin-top: 6px;
}

.jiusi-pass-wrap{ position: relative; }
.jiusi-pass-wrap input{ padding-right: 44px; }
.jiusi-pass-toggle{
  position: absolute;
  right: 6px;
  top: 50%;
  transform: translateY(-50%);
  width: 30px;
  height: 30px;
  border: 0;
  background: transparent;
  color: var(--jiusi-text-light);
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 6px;
}
.jiusi-pass-toggle:hover{ background: var(--jiusi-bg); }
.jiusi-pass-toggle svg{ width: 17px; height: 17px; }

.jiusi-captcha-row{ display: flex; gap: 10px; }
.jiusi-captcha-row input{ flex: 1; min-width: 0; }
.jiusi-captcha-img{
  width: 110px;
  height: 44px;
  flex-shrink: 0;
  border-radius: 9px;
  cursor: pointer;
  border: 1px solid var(--jiusi-border);
}

.jiusi-auth-row{ text-align: right; margin: -8px 0 18px; }
.jiusi-auth-row a{ font-size: 12.5px; color: var(--jiusi-blue); }

.jiusi-auth-submit{
  width: 100%;
  padding: 13px 0;
  background: var(--jiusi-blue);
  color: #fff;
  border: 0;
  border-radius: 10px;
  font-size: 15px;
  font-weight: 700;
}
.jiusi-auth-submit:hover{ opacity: .92; }

.jiusi-auth-back{ text-align: center; margin-top: 22px; }
.jiusi-auth-back a{ font-size: 13px; color: var(--jiusi-text-light); }

.jiusi-auth-resend{ text-align: center; margin-top: 16px; }
.jiusi-auth-link-btn{
  border: 0;
  background: transparent;
  color: var(--jiusi-blue);
  font-size: 13px;
  font-weight: 600;
}
.jiusi-auth-link-btn:hover{ text-decoration: underline; }

@media (max-width: 480px){
  .jiusi-auth-card{ padding: 30px 22px; }
}

/* ==========================================================================
   游戏列表 / 分类归档
   ========================================================================== */
.jiusi-list-page{ padding-bottom: 20px; }

.jiusi-list-header{ padding: 32px 0 20px; }
.jiusi-list-header h1{ margin: 0 0 8px; font-size: 24px; }
.jiusi-list-header p{ margin: 0; font-size: 13.5px; color: var(--jiusi-text-light); }

.jiusi-list-search-row{
  display: flex;
  gap: 12px;
  margin-bottom: 20px;
}
.jiusi-list-search{
  flex: 1;
  display: flex;
  align-items: center;
  gap: 10px;
  background: #fff;
  border: 1px solid var(--jiusi-border);
  border-radius: 12px;
  padding: 4px 4px 4px 16px;
}
.jiusi-list-search svg{ width: 18px; height: 18px; color: var(--jiusi-text-light); flex-shrink: 0; }
.jiusi-list-search input{
  flex: 1;
  border: 0;
  outline: 0;
  font-size: 14px;
  padding: 11px 0;
  background: transparent;
}
.jiusi-list-search button{
  background: var(--jiusi-blue);
  color: #fff;
  border: 0;
  border-radius: 9px;
  padding: 10px 22px;
  font-size: 14px;
  font-weight: 700;
}
.jiusi-filter-toggle{
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 0 20px;
  background: #fff;
  border: 1px solid var(--jiusi-border);
  border-radius: 12px;
  font-size: 14px;
  font-weight: 600;
  color: var(--jiusi-text);
  white-space: nowrap;
}
.jiusi-filter-toggle svg{ width: 16px; height: 16px; }
.jiusi-filter-toggle.jiusi-active{ border-color: var(--jiusi-blue); color: var(--jiusi-blue); }

.jiusi-filter-panel{
  background: #fff;
  border: 1px solid var(--jiusi-border);
  border-radius: 14px;
  padding: 24px 26px 6px;
  margin-bottom: 24px;
}
.jiusi-filter-panel.jiusi-collapsed{ display: none; }

.jiusi-filter-group{ margin-bottom: 20px; }
.jiusi-filter-group h4{
  margin: 0 0 12px;
  font-size: 13.5px;
  font-weight: 700;
  color: var(--jiusi-text-light);
}
.jiusi-pills{ display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.jiusi-pill{
  padding: 7px 16px;
  border-radius: 999px;
  border: 1px solid var(--jiusi-border);
  font-size: 13px;
  color: var(--jiusi-text);
  background: #fff;
}
.jiusi-pill:hover{ border-color: var(--jiusi-blue); color: var(--jiusi-blue); }
.jiusi-pill.jiusi-active{
  background: var(--jiusi-blue);
  border-color: var(--jiusi-blue);
  color: #fff;
}
.jiusi-pills-sep{ font-size: 13px; color: var(--jiusi-text-light); margin-left: 4px; }

.jiusi-list{ display: flex; flex-direction: column; gap: 18px; }

.jiusi-list-card{
  display: flex;
  align-items: flex-start;
  gap: 24px;
  background: #fff;
  border: 1px solid var(--jiusi-border);
  border-radius: 16px;
  padding: 22px 24px;
}
.jiusi-list-card-body{ flex: 1; min-width: 0; }
.jiusi-list-card-title{ margin: 0 0 10px; font-size: 17px; }
.jiusi-list-card-title a:hover{ color: var(--jiusi-blue); }
.jiusi-list-card-desc{
  margin: 0 0 14px;
  font-size: 13.5px;
  line-height: 1.7;
  color: var(--jiusi-text-light);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.jiusi-list-card-tags{ display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.jiusi-tag{
  font-size: 12px;
  font-weight: 600;
  padding: 4px 12px;
  border-radius: 999px;
}
.jiusi-tag-region{ background: #f1edff; color: var(--jiusi-purple); }
.jiusi-tag-genre{ background: #fff4e0; color: #b96a06; }
.jiusi-tag-lang{ background: #e4f9ef; color: #0f9d63; }
.jiusi-tag-platform{ background: var(--jiusi-bg); color: var(--jiusi-text-light); border: 1px solid var(--jiusi-border); }

.jiusi-list-card-meta{
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  font-size: 12px;
  color: var(--jiusi-text-light);
}
.jiusi-list-card-meta span{ display: flex; align-items: center; gap: 4px; }
.jiusi-list-card-meta svg{ width: 13px; height: 13px; }

.jiusi-list-card-thumbs{
  display: flex;
  align-items: flex-start;
  gap: 8px;
  flex-shrink: 0;
}
.jiusi-thumb{
  width: 155px;
  flex-shrink: 0;
  aspect-ratio: 4/3;
  border-radius: 10px;
  background: var(--jiusi-bg);
  overflow: hidden;
}
.jiusi-thumb img{ width: 100%; height: 100%; object-fit: cover; }

.jiusi-pagination-row{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 20px;
  margin: 34px 0 10px;
}
.jiusi-pagination-row .jiusi-pagination{ margin: 0; }
.jiusi-pagination-jump{
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: var(--jiusi-text-light);
}
.jiusi-pagination-jump input{
  width: 56px;
  padding: 6px 8px;
  border: 1px solid var(--jiusi-border);
  border-radius: 7px;
  font-size: 13px;
  text-align: center;
}
.jiusi-pagination-jump button{
  padding: 7px 14px;
  border-radius: 7px;
  border: 1px solid var(--jiusi-blue);
  color: var(--jiusi-blue);
  background: #fff;
  font-size: 13px;
  font-weight: 600;
}
.jiusi-pagination-jump button:hover{ background: var(--jiusi-blue); color: #fff; }

@media (max-width: 780px){
  .jiusi-list-card{ flex-direction: column; }
  .jiusi-list-card-thumbs{ width: 100%; }
  .jiusi-thumb{ flex: 1; width: auto; }
  .jiusi-list-search-row{ flex-wrap: wrap; }
}

@media (max-width: 480px){
  .jiusi-list-card-thumbs{ display: grid; grid-template-columns: repeat(3, 1fr); }
  .jiusi-thumb{ width: auto; }
}

/* ==========================================================================
   小说列表页
   ========================================================================== */
.jiusi-toggle-row{ display: flex; align-items: center; gap: 12px; font-size: 13.5px; color: var(--jiusi-text); cursor: pointer; }
.jiusi-toggle-group{ display: flex; flex-wrap: wrap; gap: 14px 32px; }

.jiusi-novel-list{ display: flex; flex-direction: column; gap: 18px; }

.jiusi-novel-thumb{ width: 110px; aspect-ratio: 3/4; }
.jiusi-novel-thumb img{ width: 100%; height: 100%; object-fit: cover; }
.jiusi-novel-author{ margin: 0 0 10px; font-size: 13px; color: var(--jiusi-text-light); }

.jiusi-tag-novel-genre{ background: #f1edff; color: var(--jiusi-purple); }
.jiusi-tag-novel-going{ background: #e8f2ff; color: var(--jiusi-blue); }
.jiusi-tag-novel-done{ background: #e4f9ef; color: #0f9d63; }
.jiusi-tag-novel-words{ background: var(--jiusi-bg); color: var(--jiusi-text-light); display: inline-flex; align-items: center; gap: 4px; }
.jiusi-tag-novel-words svg{ width: 12px; height: 12px; }

@media (max-width: 780px){
  .jiusi-novel-card{ flex-direction: row; }
  .jiusi-novel-thumb{ width: 90px; }
}

/* ==========================================================================
   游戏详情页
   ========================================================================== */
.jiusi-detail-page{ padding: 32px 0 60px; }

.jiusi-detail-title{ margin: 0 0 14px; font-size: 24px; line-height: 1.4; }

.jiusi-detail-meta{
  display: flex; flex-wrap: wrap; gap: 18px;
  font-size: 13px; color: var(--jiusi-text-light);
  margin-bottom: 16px;
}

.jiusi-detail-tags-head{ font-size: 13px; color: var(--jiusi-text-light); margin-bottom: 8px; }
.jiusi-detail-tags{ display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 26px; }
.jiusi-detail-tags span{
  font-size: 12px; color: var(--jiusi-text-light);
  background: var(--jiusi-bg); border: 1px solid var(--jiusi-border);
  padding: 4px 12px; border-radius: 999px;
}

.jiusi-detail-layout{ display: flex; align-items: flex-start; gap: 24px; }
.jiusi-detail-main{ flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 20px; }
.jiusi-detail-side{ width: 320px; flex-shrink: 0; position: sticky; top: 84px; display: flex; flex-direction: column; gap: 18px; }

.jiusi-detail-block{
  background: var(--jiusi-bg);
  border: 1px solid var(--jiusi-border);
  border-radius: 16px;
  padding: 14px;
  box-shadow: 0 4px 18px rgba(20, 20, 40, .05);
}
.jiusi-detail-block > *:last-child{ margin-bottom: 0; }

.jiusi-panel-title{
  display: flex; align-items: center; gap: 8px;
  font-size: 17px; font-weight: 700; margin: 0 0 16px;
}
.jiusi-panel-title svg{ width: 19px; height: 19px; color: var(--jiusi-purple); }

.jiusi-info-grid{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px 20px;
  background: #fff;
  border: 1px solid var(--jiusi-border);
  border-radius: 14px;
  padding: 22px 24px;
  margin-bottom: 24px;
}
.jiusi-info-item{ display: flex; align-items: center; gap: 10px; }
.jiusi-info-text{ display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.jiusi-info-label{ font-size: 12px; color: var(--jiusi-text-light); }
.jiusi-info-value{ font-size: 14px; font-weight: 600; }

.jiusi-info-icon{
  width: 36px; height: 36px; border-radius: 50%; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
}
.jiusi-info-icon svg{ width: 18px; height: 18px; }
.jiusi-info-icon-category{ background: #e8f2ff; color: var(--jiusi-blue); }
.jiusi-info-icon-developer{ background: #e5f8f1; color: var(--jiusi-teal); }
.jiusi-info-icon-region{ background: #e8f9ee; color: #22c55e; }
.jiusi-info-icon-quality{ background: #fff4e0; color: var(--jiusi-amber); }
.jiusi-info-icon-lang{ background: #f1edff; color: var(--jiusi-purple); }
.jiusi-info-icon-size{ background: var(--jiusi-pink-2); color: var(--jiusi-pink-1); }
.jiusi-info-icon-platform{ background: #e8f2ff; color: var(--jiusi-blue); }
.jiusi-info-icon-hanhua{ background: #eeeafd; color: var(--jiusi-purple-2); }

.jiusi-post-content{ margin-bottom: 28px; line-height: 1.85; font-size: 14.5px; color: var(--jiusi-text); }
.jiusi-post-content h5,
.jiusi-post-content h6{ font-size: 16px; font-weight: 700; margin: 26px 0 12px; }
.jiusi-post-content h5:first-child,
.jiusi-post-content h6:first-child{ margin-top: 0; }
.jiusi-post-content p{ margin: 0 0 14px; color: var(--jiusi-text); }
.jiusi-post-content img{ border-radius: 12px; margin: 10px 0; width: 100%; height: auto; }

.jiusi-fixed-block{ margin-bottom: 28px; }
.jiusi-fixed-block-title{ font-size: 17px; font-weight: 700; margin: 0 0 14px; }
.jiusi-fixed-block-inline-title{ display: inline; font-size: 14.5px; font-weight: 700; margin: 0; }
.jiusi-fixed-block-value{ font-size: 14.5px; color: var(--jiusi-text); }
.jiusi-fixed-block-text{ font-size: 14.5px; line-height: 1.85; color: var(--jiusi-text); }
.jiusi-fixed-block-text p{ margin: 0 0 14px; }
.jiusi-fixed-block-images{ display: flex; flex-direction: column; gap: 14px; }
.jiusi-fixed-block-images img{ width: 100%; height: auto; border-radius: 12px; background: var(--jiusi-bg); display: block; }

.jiusi-version-panel{ margin-bottom: 28px; }
.jiusi-version-box{
  background: #fff;
  border: 1px solid var(--jiusi-border);
  border-radius: 14px;
  padding: 24px 26px;
}
.jiusi-version-head{ display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; padding-bottom: 18px; border-bottom: 1px solid var(--jiusi-border); }
.jiusi-version-num{ font-size: 16px; font-weight: 700; margin-right: 8px; }
.jiusi-version-badge{ font-size: 11px; font-weight: 700; color: var(--jiusi-blue); background: #eaf2ff; padding: 3px 10px; border-radius: 999px; }
.jiusi-version-line{ margin: 6px 0 0; font-size: 13px; color: var(--jiusi-text-light); }

.jiusi-btn-buy{
  display: flex; align-items: center; gap: 6px; white-space: nowrap;
  background: var(--jiusi-blue); color: #fff;
  border: 0; outline: 0;
  padding: 10px 20px; border-radius: 9px; font-size: 14px; font-weight: 700;
  cursor: pointer;
  transition: background-color .15s ease, transform .15s ease;
}
.jiusi-btn-buy svg{ width: 15px; height: 15px; }
.jiusi-btn-buy:hover{ background: var(--jiusi-blue-2); transform: translateY(-1px); }
.jiusi-btn-buy:active{ transform: translateY(0); }

.jiusi-price-info{ padding: 18px 0; border-bottom: 1px solid var(--jiusi-border); }
.jiusi-price-info h4{ margin: 0 0 10px; font-size: 13.5px; color: var(--jiusi-text-light); font-weight: 600; }
.jiusi-price-original{ margin: 0 0 14px; font-size: 13.5px; }
.jiusi-price-original span{ font-weight: 700; margin-left: 4px; }
.jiusi-price-info-head{ display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.jiusi-price-info-head h4{ margin-bottom: 4px; }
.jiusi-price-info-head .jiusi-price-original{ margin-bottom: 0; }
.jiusi-price-info-head .jiusi-btn-buy{ flex-shrink: 0; }

.jiusi-price-tiers{ display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.jiusi-price-tiers-2{ grid-template-columns: repeat(2, 1fr); }
.jiusi-price-tier{
  text-align: center;
  border: 1px solid var(--jiusi-border);
  border-radius: 12px;
  padding: 14px 10px;
}
.jiusi-price-tier .jiusi-tier-label{ display: block; font-size: 12.5px; color: var(--jiusi-text-light); margin-bottom: 6px; }
.jiusi-price-tier .jiusi-tier-value{ display: block; font-size: 16px; font-weight: 700; }
.jiusi-price-tier .jiusi-tier-hint{ display: block; font-size: 10.5px; color: var(--jiusi-text-light); margin-top: 4px; }
.jiusi-tier-vip{ border-color: var(--jiusi-amber); background: #fffaf0; }
.jiusi-tier-vip .jiusi-tier-value{ color: #b96a06; }
.jiusi-price-tier.jiusi-tier-active{ box-shadow: 0 0 0 1px var(--jiusi-blue-2) inset; }
.jiusi-price-tier.jiusi-tier-vip.jiusi-tier-active{ box-shadow: 0 0 0 1px var(--jiusi-amber-2) inset; }
.jiusi-price-vip-link{ text-align: right; margin: 10px 0 0; }
.jiusi-price-vip-link a{ font-size: 12.5px; color: var(--jiusi-blue); font-weight: 600; }

.jiusi-access-banner{
  margin-top: 18px;
  background: #e4f9ef;
  color: #0f9d63;
  font-size: 13.5px;
  font-weight: 600;
  text-align: center;
  padding: 12px;
  border-radius: 10px;
}

.jiusi-download-section,
.jiusi-extract-section{ margin-top: 20px; }
.jiusi-download-section h4,
.jiusi-extract-section h4{
  display: flex; align-items: center; gap: 7px;
  font-size: 13.5px; font-weight: 700; margin: 0 0 12px;
}
.jiusi-download-section h4 svg,
.jiusi-extract-section h4 svg{ width: 15px; height: 15px; color: var(--jiusi-text-light); }

.jiusi-file-row{
  background: var(--jiusi-bg);
  border-radius: 10px;
  padding: 12px 16px;
  margin-bottom: 10px;
}
.jiusi-file-row-top{ display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.jiusi-file-name{ display: flex; align-items: center; gap: 8px; font-size: 13.5px; min-width: 0; flex: 1; }
.jiusi-file-name svg{ width: 15px; height: 15px; color: var(--jiusi-text-light); flex-shrink: 0; }
.jiusi-file-name-text{ overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.jiusi-file-download{
  display: flex; align-items: center; gap: 5px; flex-shrink: 0; white-space: nowrap;
  font-size: 12.5px; font-weight: 700; color: #fff;
  background: var(--jiusi-blue);
  padding: 7px 14px; border-radius: 8px;
}
.jiusi-file-download svg{ flex-shrink: 0; width: 14px; height: 14px; }
.jiusi-file-note{ font-size: 12px; color: var(--jiusi-text-light); margin: 8px 0 0; }

.jiusi-file-row-codes{
  display: flex; flex-wrap: wrap; gap: 6px 18px;
  margin-top: 10px; padding-top: 10px;
  border-top: 1px dashed var(--jiusi-border);
  font-size: 12.5px; color: var(--jiusi-text-light);
}
.jiusi-file-code strong{ color: var(--jiusi-text); font-weight: 700; margin-right: 5px; }

@media (max-width: 480px){
  .jiusi-file-row-top{ flex-wrap: wrap; }
  .jiusi-file-name{ flex-basis: 100%; }
  .jiusi-file-download{ margin-left: auto; }
}

.jiusi-extract-code{
  background: var(--jiusi-bg);
  border-radius: 10px;
  padding: 14px 16px;
  font-size: 14px;
  font-weight: 600;
  margin: 0;
}

.jiusi-locked-banner{
  margin-top: 18px;
  display: flex; align-items: center; justify-content: center; gap: 10px;
  border: 1px solid #fecaca;
  background: #fff8f8;
  color: var(--jiusi-text);
  font-size: 13.5px;
  padding: 16px;
  border-radius: 10px;
  text-align: center;
}
.jiusi-locked-banner svg{ width: 18px; height: 18px; color: var(--jiusi-red); flex-shrink: 0; }
.jiusi-locked-banner a{ color: var(--jiusi-red); font-weight: 700; }
.jiusi-locked-banner a:first-of-type{ color: var(--jiusi-text); text-decoration: underline; }

.jiusi-comments-section{
  background: #fff;
  border: 1px solid var(--jiusi-border);
  border-radius: 14px;
  padding: 24px 26px;
}
.jiusi-comment-textarea{
  width: 100%;
  min-height: 90px;
  border: 1px solid var(--jiusi-border);
  border-radius: 10px;
  padding: 14px;
  font-size: 13.5px;
  font-family: inherit;
  resize: vertical;
  margin-bottom: 12px;
}
#jiusi-comment-submit,
.jiusi-comment-submit{
  background: var(--jiusi-blue);
  color: #fff;
  border: 0;
  border-radius: 9px;
  padding: 9px 22px;
  font-size: 13.5px;
  font-weight: 700;
}
.jiusi-comment-locked{ margin-bottom: 10px; }
.jiusi-comment-locked textarea{ background: var(--jiusi-bg); }
.jiusi-comment-login-btn{
  display: inline-block;
  background: var(--jiusi-blue);
  color: #fff;
  padding: 9px 20px;
  border-radius: 9px;
  font-size: 13.5px;
  font-weight: 700;
}

.jiusi-comments-list{ list-style: none; margin: 24px 0 0; padding: 0; }
.jiusi-comments-list .comment,
.jiusi-comments-list .comment-body{ list-style: none; }
.jiusi-comments-list li{ border-top: 1px solid var(--jiusi-border); padding: 16px 0; }
.jiusi-comments-list .comment-author img{ border-radius: 50%; float: left; margin-right: 12px; }
.jiusi-comments-list .comment-author .fn{ font-weight: 700; font-size: 13.5px; font-style: normal; }
.jiusi-comments-list .comment-metadata{ font-size: 11.5px; color: var(--jiusi-text-light); margin-bottom: 6px; }
.jiusi-comments-list .comment-metadata a{ color: inherit; }
.jiusi-comments-list p{ font-size: 13.5px; margin: 4px 0 0; }
.jiusi-comments-list ul.children{ list-style: none; margin: 0 0 0 52px; padding: 0; }

.jiusi-comments-empty{
  text-align: center;
  color: var(--jiusi-text-light);
  padding: 50px 20px;
  margin-top: 20px;
  background: var(--jiusi-bg);
  border-radius: 12px;
}
.jiusi-comments-empty svg{ width: 30px; height: 30px; margin-bottom: 8px; opacity: .5; }
.jiusi-comments-empty p{ margin: 0; font-size: 13.5px; }

.jiusi-anime-stats{
  background: #fff; border: 1px solid var(--jiusi-border); border-radius: 14px; padding: 18px 20px;
}
.jiusi-anime-stats .jiusi-panel-title{ margin-bottom: 14px; font-size: 15px; }
.jiusi-anime-stats-grid{ display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; text-align: center; }
.jiusi-anime-stats-grid > div{ display: flex; flex-direction: column; gap: 2px; }
.jiusi-anime-stats-num{ font-size: 15px; font-weight: 700; }
.jiusi-anime-stats-label{ font-size: 11px; color: var(--jiusi-text-light); }

.jiusi-detail-actions{
  display: flex; gap: 10px;
  padding: 0;
}
.jiusi-action-btn{
  flex: 1;
  display: flex; align-items: center; justify-content: center; gap: 6px;
  background: #fff;
  border: 1px solid var(--jiusi-border);
  border-radius: 9px;
  padding: 10px 8px;
  font-size: 11px;
  color: var(--jiusi-text);
}
.jiusi-action-btn svg{ width: 15px; height: 15px; }
.jiusi-action-btn.jiusi-action-active{ background: #f1edff; color: var(--jiusi-purple); border-color: var(--jiusi-purple); }

.jiusi-related-games{
  padding: 0;
}
.jiusi-related-list{ display: flex; flex-direction: column; gap: 14px; }
.jiusi-related-card{ display: flex; gap: 10px; }
.jiusi-related-thumb{ width: 84px; height: 64px; flex-shrink: 0; border-radius: 8px; overflow: hidden; background: var(--jiusi-bg); }
.jiusi-related-thumb img{ width: 100%; height: 100%; object-fit: cover; }
.jiusi-related-body h4{
  margin: 0 0 6px; font-size: 12.5px; font-weight: 600; line-height: 1.4;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.jiusi-related-card:hover h4{ color: var(--jiusi-purple); }
.jiusi-related-tags{ display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 5px; }
.jiusi-related-tags .jiusi-tag{ font-size: 9.5px; padding: 1px 6px; }
.jiusi-related-meta{ display: flex; gap: 8px; font-size: 10.5px; color: var(--jiusi-text-light); }
.jiusi-related-empty{ font-size: 13px; color: var(--jiusi-text-light); }

@media (max-width: 960px){
  .jiusi-detail-layout{ flex-direction: column; }
  .jiusi-detail-side{ width: 100%; position: static; }
  .jiusi-info-grid{ grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 560px){
  .jiusi-price-tiers{ grid-template-columns: 1fr; }
  .jiusi-version-head,
  .jiusi-price-info-head{ flex-direction: column; }
  .jiusi-info-grid{ grid-template-columns: 1fr; }
}

/* ==========================================================================
   小说详情页
   ========================================================================== */
.jiusi-novel-hero{
  display: flex;
  gap: 26px;
  background: #fff;
  border: 1px solid var(--jiusi-border);
  border-radius: 16px;
  padding: 24px;
  margin-bottom: 24px;
}
.jiusi-novel-hero-cover{
  width: 180px;
  aspect-ratio: 3/4;
  flex-shrink: 0;
  border-radius: 12px;
  overflow: hidden;
  background: var(--jiusi-bg);
  box-shadow: 0 8px 20px rgba(0,0,0,.08);
}
.jiusi-novel-hero-cover img{ width: 100%; height: 100%; object-fit: cover; }
.jiusi-novel-hero-info{ flex: 1; min-width: 0; }
.jiusi-novel-hero-info .jiusi-detail-title{ margin-bottom: 10px; }
.jiusi-novel-hero-info .jiusi-detail-meta{ margin-bottom: 18px; }
.jiusi-novel-hero-info .jiusi-detail-meta svg{ width: 13px; height: 13px; vertical-align: -2px; margin-right: 2px; }
.jiusi-novel-info-grid{ grid-template-columns: repeat(4, 1fr); padding: 16px 20px; margin-bottom: 18px; }

.jiusi-novel-synopsis h4{ margin: 0 0 8px; font-size: 13.5px; color: var(--jiusi-text-light); font-weight: 600; }
.jiusi-novel-synopsis-text{
  font-size: 13.5px; line-height: 1.8; color: var(--jiusi-text);
  max-height: 4.8em; overflow: hidden; position: relative;
}
.jiusi-novel-synopsis-text p{ margin: 0 0 8px; }
.jiusi-novel-synopsis-open .jiusi-novel-synopsis-text{ max-height: none; }
.jiusi-novel-synopsis-toggle{
  margin-top: 8px; background: none; border: 0; padding: 0;
  font-size: 12.5px; color: var(--jiusi-blue); font-weight: 600; cursor: pointer;
}

.jiusi-novel-price-grid{
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px;
  background: var(--jiusi-bg); border-radius: 12px; padding: 16px;
  margin-bottom: 18px; text-align: center;
}
.jiusi-novel-price-stat{ display: flex; flex-direction: column; gap: 4px; }
.jiusi-novel-price-num{ font-size: 16px; font-weight: 700; }
.jiusi-novel-price-label{ font-size: 12px; color: var(--jiusi-text-light); }
.jiusi-novel-price-head{ border-bottom: 0; padding-bottom: 0; }
.jiusi-novel-price-amount{ display: block; font-size: 22px; font-weight: 800; color: var(--jiusi-blue); margin-top: 4px; }

.jiusi-novel-tabs{
  display: flex; gap: 28px;
  border-bottom: 1px solid var(--jiusi-border);
  margin-bottom: 20px;
}
.jiusi-novel-tab{
  display: flex; align-items: center; gap: 6px;
  background: none; border: 0; border-bottom: 2px solid transparent;
  padding: 0 2px 12px; font-size: 14.5px; font-weight: 600; color: var(--jiusi-text-light);
  cursor: pointer;
}
.jiusi-novel-tab svg{ width: 16px; height: 16px; }
.jiusi-novel-tab-active{ color: var(--jiusi-blue); border-bottom-color: var(--jiusi-blue); }

.jiusi-novel-chapters-head{ display: flex; align-items: center; }
.jiusi-novel-chapters-count{
  margin-left: 10px; font-size: 11.5px; font-weight: 700; color: #fff;
  background: var(--jiusi-blue); padding: 3px 10px; border-radius: 999px;
}
.jiusi-novel-chapter-rows{
  background: #fff; border: 1px solid var(--jiusi-border); border-radius: 14px; overflow: hidden;
}
.jiusi-novel-chapter-row{
  display: block; padding: 16px 22px; border-bottom: 1px solid var(--jiusi-border);
}
.jiusi-novel-chapter-row:last-child{ border-bottom: 0; }
.jiusi-novel-chapter-row:hover{ background: var(--jiusi-bg); }
.jiusi-novel-chapter-title{ display: flex; align-items: center; gap: 10px; font-size: 14.5px; font-weight: 600; margin-bottom: 6px; }
.jiusi-novel-chapter-meta{ margin: 0; font-size: 12px; color: var(--jiusi-text-light); }
.jiusi-novel-chapter-locked .jiusi-novel-chapter-title,
.jiusi-novel-chapter-locked .jiusi-novel-chapter-meta{ color: var(--jiusi-text-light); }

.jiusi-novel-chapter-row-with-thumb{ display: flex; align-items: center; gap: 14px; }
.jiusi-novel-chapter-row-with-thumb .jiusi-novel-chapter-title{ margin-bottom: 4px; }
.jiusi-novel-chapter-thumb{
  width: 96px; aspect-ratio: 4/3; flex-shrink: 0; border-radius: 8px; overflow: hidden;
  background: var(--jiusi-bg); display: flex; align-items: center; justify-content: center;
}
.jiusi-novel-chapter-thumb img{ width: 100%; height: 100%; object-fit: cover; display: block; }
.jiusi-novel-chapter-thumb svg{ width: 22px; height: 22px; color: var(--jiusi-text-light); opacity: .5; }
.jiusi-novel-chapter-body{ flex: 1; min-width: 0; }
.jiusi-tag-novel-locked{ background: #fff0f0; color: var(--jiusi-red); display: inline-flex; align-items: center; gap: 3px; }
.jiusi-tag-novel-locked svg{ width: 11px; height: 11px; }

@media (max-width: 640px){
  .jiusi-novel-hero{ flex-direction: column; }
  .jiusi-novel-hero-cover{ width: 130px; margin: 0 auto; }
  .jiusi-novel-info-grid{ grid-template-columns: repeat(2, 1fr); }
}

/* ==========================================================================
   小说阅读页
   ========================================================================== */
.jiusi-reader-page{ max-width: 860px; padding: 28px 0 60px; }

.jiusi-reader-head{
  display: flex; align-items: center; gap: 16px;
  background: #fff; border: 1px solid var(--jiusi-border); border-radius: 14px;
  padding: 18px 22px; margin-bottom: 16px;
}
.jiusi-reader-icon-btn{
  flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  width: 38px; height: 38px; border-radius: 10px;
  background: var(--jiusi-bg); border: 0; color: var(--jiusi-text);
  cursor: pointer;
}
.jiusi-reader-icon-btn svg{ width: 17px; height: 17px; }
.jiusi-reader-icon-btn:hover{ color: var(--jiusi-blue); }
.jiusi-reader-head-titles{ flex: 1; min-width: 0; text-align: center; }
.jiusi-reader-novel-title{ display: block; font-size: 13px; color: var(--jiusi-text-light); margin-bottom: 4px; }
.jiusi-reader-novel-title:hover{ color: var(--jiusi-blue); }
.jiusi-reader-chapter-title{ margin: 0 0 4px; font-size: 17px; }
.jiusi-reader-word-count{ font-size: 12px; color: var(--jiusi-text-light); }

.jiusi-reader-settings-panel{
  display: none; align-items: center; gap: 12px; justify-content: flex-end;
  background: #fff; border: 1px solid var(--jiusi-border); border-radius: 12px;
  padding: 12px 18px; margin-bottom: 16px; font-size: 13px; color: var(--jiusi-text-light);
}
.jiusi-reader-settings-panel.jiusi-reader-settings-open{ display: flex; }
.jiusi-reader-font-btn{
  width: 34px; height: 30px; border-radius: 8px;
  border: 1px solid var(--jiusi-border); background: var(--jiusi-bg);
  font-size: 12.5px; font-weight: 700; color: var(--jiusi-text); cursor: pointer;
}
.jiusi-reader-font-btn:hover{ border-color: var(--jiusi-blue); color: var(--jiusi-blue); }

.jiusi-reader-body{
  background: #fff; border: 1px solid var(--jiusi-border); border-radius: 14px;
  padding: 34px 40px; margin-bottom: 16px; min-height: 200px;
}
.jiusi-reader-content{ font-size: 16px; line-height: 2; color: var(--jiusi-text); }
.jiusi-reader-content p{ margin: 0 0 20px; text-indent: 2em; }

.jiusi-reader-locked{ text-align: center; padding: 40px 20px; color: var(--jiusi-text-light); }
.jiusi-reader-locked svg{ width: 34px; height: 34px; color: var(--jiusi-red); margin-bottom: 12px; }
.jiusi-reader-locked h3{ margin: 0 0 8px; font-size: 16px; color: var(--jiusi-text); }
.jiusi-reader-locked p{ margin: 0 0 20px; font-size: 13.5px; }
.jiusi-reader-locked-actions{ display: flex; align-items: center; justify-content: center; gap: 14px; }
.jiusi-reader-locked-actions .jiusi-btn-buy{ text-decoration: none; }
.jiusi-reader-locked-vip{ font-size: 13.5px; font-weight: 700; color: var(--jiusi-blue); }

/* ==========================================================================
   写真详情页 - 大图顺序展示
   ========================================================================== */
.jiusi-image-gallery{ display: flex; flex-direction: column; gap: 12px; }
.jiusi-image-gallery-item{
  border-radius: 10px; overflow: hidden; background: var(--jiusi-bg);
}
.jiusi-image-gallery-item img{ display: block; width: 100%; height: auto; }
.jiusi-image-gallery-locked{ margin-top: 12px; }

.jiusi-reader-nav{ display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.jiusi-reader-nav-btn{
  display: flex; align-items: center; gap: 6px;
  background: #fff; border: 1px solid var(--jiusi-border); border-radius: 10px;
  padding: 11px 20px; font-size: 13.5px; font-weight: 600; color: var(--jiusi-text);
}
.jiusi-reader-nav-btn svg{ width: 14px; height: 14px; }
.jiusi-reader-nav-btn:hover{ border-color: var(--jiusi-blue); color: var(--jiusi-blue); }
.jiusi-reader-nav-disabled{ color: var(--jiusi-text-light); opacity: .5; cursor: default; }
.jiusi-reader-nav-primary{ background: var(--jiusi-blue); border-color: var(--jiusi-blue); color: #fff; }
.jiusi-reader-nav-primary:hover{ background: var(--jiusi-blue-2); color: #fff; }

@media (max-width: 560px){
  .jiusi-reader-body{ padding: 24px 20px; }
  .jiusi-reader-content{ font-size: 15px; }
}

/* ==========================================================================
   漫画阅读页
   ========================================================================== */
.jiusi-comic-reader{ max-width: 900px; }
.jiusi-comic-reader-head{ gap: 10px; position: relative; }
.jiusi-comic-reader-head .jiusi-reader-head-titles{ min-width: 0; }

.jiusi-comic-mode-toggle{ display: flex; gap: 6px; flex-shrink: 0; }
.jiusi-comic-mode-btn{
  display: flex; align-items: center; justify-content: center;
  width: 38px; height: 38px; border-radius: 10px;
  background: var(--jiusi-bg); border: 0; color: var(--jiusi-text-light); cursor: pointer;
}
.jiusi-comic-mode-btn svg{ width: 17px; height: 17px; }
.jiusi-comic-mode-btn.jiusi-comic-mode-active{ background: var(--jiusi-blue); color: #fff; }

.jiusi-comic-zoom-toggle{ display: flex; align-items: center; gap: 4px; flex-shrink: 0; margin-left: 8px; }
.jiusi-comic-zoom-pct{ font-size: 12.5px; color: var(--jiusi-text-light); width: 40px; text-align: center; }

.jiusi-comic-body{ position: relative; }

.jiusi-comic-scroll{ display: flex; flex-direction: column; background: #000; border-radius: 14px; overflow: hidden; }
.jiusi-comic-page{ line-height: 0; background: #000; min-height: 200px; }
.jiusi-comic-page img{ width: 100%; height: auto; display: block; }

.jiusi-comic-progress{
  position: fixed; top: 50%; right: 24px; transform: translateY(-50%);
  display: flex; flex-direction: column; align-items: center; gap: 8px;
  z-index: 40;
}
.jiusi-comic-progress-num{ font-size: 12px; color: var(--jiusi-text-light); font-weight: 600; }
.jiusi-comic-progress-track{
  position: relative; width: 4px; height: 220px; border-radius: 999px;
  background: var(--jiusi-border); cursor: pointer; touch-action: none;
}
.jiusi-comic-progress-thumb{
  position: absolute; left: 50%; top: 0; width: 14px; height: 14px; border-radius: 50%;
  background: var(--jiusi-blue); transform: translateX(-50%);
  box-shadow: 0 0 0 3px #fff, 0 1px 4px rgba(0,0,0,.25); cursor: grab; touch-action: none;
}

.jiusi-comic-page-mode{
  display: flex; align-items: center; justify-content: center;
  background: #000; border-radius: 14px; min-height: 420px; overflow: auto; padding: 20px;
}
.jiusi-comic-page-viewport{ max-width: 100%; }
#jiusi-comic-page-img{ max-width: 100%; height: auto; display: block; transition: transform .15s ease; }

.jiusi-comic-footer-nav{ margin-top: 16px; display: flex; flex-direction: column; gap: 12px; }
.jiusi-comic-page-nav{
  display: flex; align-items: center; justify-content: center; gap: 20px;
  background: #fff; border: 1px solid var(--jiusi-border); border-radius: 12px; padding: 12px;
}
.jiusi-comic-page-counter{ font-size: 13.5px; font-weight: 600; color: var(--jiusi-text); min-width: 64px; text-align: center; }

@media (max-width: 780px){
  .jiusi-comic-progress{ right: 8px; }
  .jiusi-comic-progress-track{ height: 160px; }
}

@media (max-width: 560px){
  .jiusi-comic-reader-head{ flex-wrap: wrap; }
  .jiusi-comic-zoom-toggle{ margin-left: 0; }
}

/* ==========================================================================
   动漫播放页
   ========================================================================== */
.jiusi-anime-reader{ max-width: 960px; }

.jiusi-anime-player{ background: #000; border-radius: 14px; overflow: hidden; margin-bottom: 16px; }
.jiusi-anime-video{ display: block; width: 100%; max-height: 70vh; background: #000; }

.jiusi-anime-episode-nav{ display: flex; gap: 14px; margin-bottom: 16px; }
.jiusi-anime-episode-nav-btn{
  flex: 1;
  display: flex; align-items: center; justify-content: center; gap: 6px;
  background: #fff; border: 1px solid var(--jiusi-border); border-radius: 10px;
  padding: 13px 20px; font-size: 14px; font-weight: 600; color: var(--jiusi-text);
}
.jiusi-anime-episode-nav-btn svg{ width: 15px; height: 15px; }
.jiusi-anime-episode-nav-btn:hover{ border-color: var(--jiusi-blue); color: var(--jiusi-blue); }
.jiusi-anime-episode-nav-primary{ background: var(--jiusi-blue); border-color: var(--jiusi-blue); color: #fff; }
.jiusi-anime-episode-nav-primary:hover{ background: var(--jiusi-blue-2); color: #fff; }

.jiusi-anime-episode-info{
  background: #fff; border: 1px solid var(--jiusi-border); border-radius: 14px;
  padding: 20px 24px; margin-bottom: 16px;
}
.jiusi-anime-episode-info h3{ margin: 0 0 10px; font-size: 16px; }
.jiusi-anime-episode-info-meta{ display: flex; align-items: center; gap: 16px; font-size: 13px; color: var(--jiusi-text-light); }
.jiusi-anime-episode-info-meta span{ display: flex; align-items: center; gap: 5px; }
.jiusi-anime-episode-info-meta svg{ width: 14px; height: 14px; }

/* ==========================================================================
   会员页
   ========================================================================== */
.jiusi-vip-page{ padding: 40px 0 60px; }

.jiusi-vip-head{ text-align: center; margin-bottom: 26px; }
.jiusi-vip-head h1{ margin: 0 0 8px; font-size: 26px; }
.jiusi-vip-head p{ margin: 0; font-size: 14px; color: var(--jiusi-text-light); }

.jiusi-vip-status{
  max-width: 640px;
  margin: 0 auto 26px;
  text-align: center;
  background: #f1edff;
  color: var(--jiusi-purple);
  font-size: 13.5px;
  padding: 12px 20px;
  border-radius: 10px;
}

.jiusi-vip-grid{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
  max-width: 1000px;
  margin: 0 auto 40px;
}

.jiusi-vip-card{
  position: relative;
  background: #fff;
  border: 1px solid var(--jiusi-border);
  border-radius: 16px;
  padding: 26px 20px;
  text-align: center;
}
.jiusi-vip-card-active{ border-color: var(--jiusi-purple); box-shadow: 0 0 0 2px var(--jiusi-purple); }
.jiusi-vip-card-selected{ border-color: var(--jiusi-amber); box-shadow: 0 0 0 2px var(--jiusi-amber); }
.jiusi-vip-current-badge{
  position: absolute; top: -11px; left: 50%; transform: translateX(-50%);
  background: var(--jiusi-purple); color: #fff;
  font-size: 11px; font-weight: 700; padding: 3px 12px; border-radius: 999px;
}
.jiusi-vip-card h3{ margin: 0 0 4px; font-size: 18px; }
.jiusi-vip-card-name{ margin: 0 0 16px; font-size: 12.5px; color: var(--jiusi-text-light); }
.jiusi-vip-price{ margin: 0 0 18px; }
.jiusi-vip-price-num{ font-size: 26px; font-weight: 800; color: var(--jiusi-purple); }
.jiusi-vip-price-tbd{ font-size: 15px; font-weight: 600; color: var(--jiusi-text-light); }

.jiusi-vip-card-benefits{
  list-style: none;
  margin: 0 0 20px;
  padding: 18px 0 0;
  border-top: 1px solid var(--jiusi-border);
  text-align: left;
}
.jiusi-vip-card-benefits li{
  display: flex; align-items: flex-start; gap: 8px;
  font-size: 12.5px; color: var(--jiusi-text);
  margin-bottom: 10px;
}
.jiusi-vip-card-benefits svg{ width: 15px; height: 15px; color: #0f9d63; flex-shrink: 0; margin-top: 1px; }

.jiusi-vip-buy-btn{
  display: block;
  width: 100%;
  background: var(--jiusi-purple);
  color: #fff;
  border: 0;
  border-radius: 9px;
  padding: 11px 0;
  font-size: 14px;
  font-weight: 700;
}
.jiusi-vip-buy-disabled{ background: var(--jiusi-bg); color: var(--jiusi-text-light); }
.jiusi-vip-buy-btn{ border: 0; cursor: pointer; }

.jiusi-vip-checkout{
  max-width: 640px;
  margin: 0 auto 40px;
  display: none;
}
.jiusi-vip-checkout-open{ display: block; }
.jiusi-vip-checkout-banner{
  display: flex; align-items: center; gap: 8px; justify-content: center;
  background: #f0faf6; color: #0f9d63;
  font-size: 13.5px; font-weight: 600;
  padding: 12px; border-radius: 10px 10px 0 0;
}
.jiusi-vip-checkout-banner svg{ width: 16px; height: 16px; }
.jiusi-vip-checkout .jiusi-uc-panel{ border-radius: 0 0 14px 14px; border-top: 0; margin-bottom: 0; }

.jiusi-vip-pay-methods{ display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.jiusi-vip-pay-method{
  display: flex; align-items: center; justify-content: center; gap: 10px;
  border: 1px solid var(--jiusi-border);
  border-radius: 12px;
  padding: 16px;
  background: #fff;
  font-size: 14px; font-weight: 600;
  cursor: pointer;
}
.jiusi-vip-pay-method:hover{ border-color: var(--jiusi-amber); }
.jiusi-vip-pay-active{ border-color: var(--jiusi-amber); background: #fffaf0; }
.jiusi-vip-pay-icon{
  width: 26px; height: 26px; border-radius: 7px;
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-size: 13px; font-weight: 700; flex-shrink: 0;
}
.jiusi-vip-pay-alipay{ background: #1677ff; }
.jiusi-vip-pay-wechat{ background: #07c160; }

.jiusi-vip-compare{
  max-width: 900px;
  margin: 0 auto 50px;
}
.jiusi-vip-compare-head{ text-align: center; margin-bottom: 20px; }
.jiusi-vip-compare-head h2{ margin: 0 0 6px; font-size: 20px; }
.jiusi-vip-compare-head p{ margin: 0; font-size: 13.5px; color: var(--jiusi-text-light); }

.jiusi-vip-compare-table-wrap{
  overflow-x: auto;
  background: #fff;
  border: 1px solid var(--jiusi-border);
  border-radius: 14px;
}
.jiusi-vip-compare-table{ width: 100%; border-collapse: collapse; min-width: 560px; }
.jiusi-vip-compare-table th,
.jiusi-vip-compare-table td{
  padding: 14px 18px;
  text-align: center;
  border-bottom: 1px solid var(--jiusi-border);
  font-size: 13px;
}
.jiusi-vip-compare-table th:first-child,
.jiusi-vip-compare-table td:first-child{ text-align: left; }
.jiusi-vip-compare-table thead th{ font-weight: 700; background: var(--jiusi-bg); }
.jiusi-vip-compare-table tbody tr:last-child td{ border-bottom: 0; }
.jiusi-vip-compare-table svg{ width: 16px; height: 16px; color: #0f9d63; }

.jiusi-vip-faq{ max-width: 760px; margin: 0 auto 30px; }
.jiusi-vip-faq-title{
  display: flex; align-items: center; justify-content: center; gap: 8px;
  font-size: 20px; margin: 0 0 20px; text-align: center;
}
.jiusi-vip-faq-title svg{ width: 22px; height: 22px; color: var(--jiusi-text); }

.jiusi-vip-faq-list{ display: flex; flex-direction: column; gap: 12px; }
.jiusi-faq-item{
  background: #fff;
  border: 1px solid var(--jiusi-border);
  border-radius: 12px;
  padding: 16px 20px;
}
.jiusi-faq-item summary{
  display: flex; align-items: center; justify-content: space-between;
  cursor: pointer;
  font-size: 14px; font-weight: 600;
  list-style: none;
}
.jiusi-faq-item summary::-webkit-details-marker{ display: none; }
.jiusi-faq-item summary svg{ width: 16px; height: 16px; color: var(--jiusi-text-light); flex-shrink: 0; transition: transform .15s ease; }
.jiusi-faq-item[open] summary svg{ transform: rotate(180deg); }
.jiusi-faq-answer{ margin-top: 12px; font-size: 13.5px; color: var(--jiusi-text-light); line-height: 1.8; }
.jiusi-faq-answer p{ margin: 0; }

.jiusi-vip-fineprint{
  text-align: center;
  font-size: 12px;
  color: var(--jiusi-text-light);
  line-height: 1.9;
}

@media (max-width: 780px){
  .jiusi-vip-grid{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px){
  .jiusi-vip-grid{ grid-template-columns: 1fr; }
}

/* ==========================================================================
   购买确认弹窗
   ========================================================================== */
.jiusi-modal-overlay{
  position: fixed; inset: 0;
  background: rgba(20,20,30,.5);
  display: flex; align-items: center; justify-content: center;
  z-index: 1000;
  opacity: 0; visibility: hidden;
  transition: opacity .15s ease;
  padding: 20px;
}
.jiusi-modal-overlay.jiusi-modal-open{ opacity: 1; visibility: visible; }

.jiusi-modal{
  background: #fff;
  border-radius: 16px;
  padding: 28px 26px;
  max-width: 420px;
  width: 100%;
}
.jiusi-modal h3{ margin: 0 0 8px; font-size: 18px; }
.jiusi-modal-sub{ margin: 0 0 20px; font-size: 13px; color: var(--jiusi-text-light); }
.jiusi-modal-sub span{ color: var(--jiusi-text); font-weight: 600; }

.jiusi-modal-rows{ background: var(--jiusi-bg); border-radius: 10px; padding: 4px 16px; margin-bottom: 16px; }
.jiusi-modal-row{
  display: flex; justify-content: space-between; align-items: center;
  padding: 11px 0;
  border-bottom: 1px solid var(--jiusi-border);
  font-size: 13.5px;
}
.jiusi-modal-row:last-child{ border-bottom: 0; }
.jiusi-modal-row span{ color: var(--jiusi-text-light); }
.jiusi-modal-price{ color: var(--jiusi-blue); font-size: 15px; }

.jiusi-modal-note{ font-size: 12px; color: var(--jiusi-text-light); margin: 0 0 22px; }

.jiusi-modal-actions{ display: flex; gap: 12px; }
.jiusi-modal-cancel,
.jiusi-modal-confirm{
  flex: 1;
  padding: 11px 0;
  border-radius: 9px;
  font-size: 14px;
  font-weight: 700;
  display: flex; align-items: center; justify-content: center; gap: 6px;
  text-decoration: none;
  cursor: pointer;
}
.jiusi-modal-cancel{ background: var(--jiusi-bg); border: 1px solid var(--jiusi-border); color: var(--jiusi-text); }
.jiusi-modal-confirm{ background: var(--jiusi-blue); border: 0; color: #fff; }
.jiusi-modal-confirm svg{ width: 15px; height: 15px; }
.jiusi-modal-confirm:disabled{ opacity: .7; }

.jiusi-buy-link{
  background: transparent; border: 0; padding: 0;
  color: var(--jiusi-text); text-decoration: underline;
  font-size: inherit; font-family: inherit;
}

/* ==========================================================================
   Toast 提示
   ========================================================================== */
.jiusi-toast{
  position: fixed;
  top: 20px; right: 20px;
  background: #fff;
  border: 1px solid var(--jiusi-border);
  border-left: 4px solid var(--jiusi-blue);
  border-radius: 10px;
  padding: 14px 20px;
  font-size: 13.5px;
  box-shadow: 0 12px 30px rgba(20,20,40,.14);
  z-index: 1100;
  opacity: 0;
  transform: translateY(-10px);
  transition: all .2s ease;
}
.jiusi-toast-show{ opacity: 1; transform: translateY(0); }
.jiusi-toast-error{ border-left-color: var(--jiusi-red); color: var(--jiusi-red); }

/* ==========================================================================
   用户中心
   ========================================================================== */
.jiusi-uc-page{ padding: 28px 0 60px; }
.jiusi-uc-layout{ display: flex; align-items: flex-start; gap: 24px; }

.jiusi-uc-sidebar{
  width: 300px;
  flex-shrink: 0;
  background: #fff;
  border: 1px solid var(--jiusi-border);
  border-radius: 14px;
  padding: 22px 18px;
  position: sticky;
  top: 84px;
}
.jiusi-uc-sidebar-title{ margin: 0 0 18px; padding: 0 8px; font-size: 18px; }
.jiusi-uc-nav-group{ margin-bottom: 18px; }
.jiusi-uc-nav-group h4{ margin: 0 0 6px; padding: 0 8px; font-size: 12px; color: var(--jiusi-text-light); font-weight: 600; }
.jiusi-uc-nav-link{
  display: flex; align-items: center; gap: 10px;
  padding: 10px 8px;
  border-radius: 9px;
  font-size: 14px;
  color: var(--jiusi-text);
}
.jiusi-uc-nav-link svg{ width: 17px; height: 17px; color: var(--jiusi-text-light); flex-shrink: 0; }
.jiusi-uc-nav-link span{ flex: 1; }
.jiusi-uc-nav-chevron{ width: 14px !important; height: 14px !important; }
.jiusi-uc-nav-link:hover{ background: var(--jiusi-bg); }
.jiusi-uc-nav-active{ background: #eaf2ff; color: var(--jiusi-blue); font-weight: 600; }
.jiusi-uc-nav-active svg{ color: var(--jiusi-blue); }
.jiusi-uc-nav-active .jiusi-uc-nav-chevron{ transform: rotate(90deg); }

.jiusi-uc-nav-children{ margin: 2px 0 4px 14px; border-left: 1px solid var(--jiusi-border); padding-left: 10px; }
.jiusi-uc-nav-child{
  display: flex; align-items: center; gap: 8px;
  padding: 8px;
  border-radius: 8px;
  font-size: 13px;
  color: var(--jiusi-text-light);
}
.jiusi-uc-nav-child svg{ width: 15px; height: 15px; }
.jiusi-uc-nav-child:hover{ background: var(--jiusi-bg); }
.jiusi-uc-nav-child-active{ color: var(--jiusi-blue); font-weight: 600; }

.jiusi-uc-main{ flex: 1; min-width: 0; }

.jiusi-uc-title{ display: flex; align-items: center; gap: 8px; font-size: 22px; margin: 0 0 18px; }
.jiusi-uc-title svg{ width: 20px; height: 20px; }
.jiusi-uc-title-row{ display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 18px; }
.jiusi-uc-title-row .jiusi-uc-title{ margin-bottom: 0; }
.jiusi-uc-back-link{
  width: 34px; height: 34px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  border: 1px solid var(--jiusi-border);
  border-radius: 9px;
  color: var(--jiusi-text);
}
.jiusi-uc-back-link svg{ width: 16px; height: 16px; }

/* -------- dashboard -------- */
.jiusi-uc-profile-card{
  display: flex; align-items: center; gap: 16px;
  background: #fff; border: 1px solid var(--jiusi-border); border-radius: 14px;
  padding: 20px 24px; margin-bottom: 20px;
}
.jiusi-uc-profile-avatar{ width: 56px; height: 56px; border-radius: 50%; overflow: hidden; border: 1px solid var(--jiusi-border); flex-shrink: 0; }
.jiusi-uc-profile-avatar img{ width: 100%; height: 100%; object-fit: contain; padding: 6px; }
.jiusi-uc-profile-name{ display: flex; align-items: center; gap: 10px; margin: 0 0 4px; font-size: 17px; font-weight: 700; }
.jiusi-uc-profile-email{ margin: 0; font-size: 13px; color: var(--jiusi-text-light); }

.jiusi-uc-stat-grid{ display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-bottom: 26px; }
.jiusi-uc-stat-card{ border-radius: 16px; padding: 24px 26px; color: #fff; }
.jiusi-uc-stat-card h4{ display: flex; align-items: center; gap: 7px; margin: 0 0 14px; font-size: 13.5px; font-weight: 600; opacity: .9; }
.jiusi-uc-stat-card h4 svg{ width: 16px; height: 16px; }
.jiusi-uc-stat-value{ margin: 0 0 6px; font-size: 22px; font-weight: 800; }
.jiusi-uc-stat-sub{ margin: 0 0 18px; font-size: 12.5px; opacity: .85; }
.jiusi-uc-stat-dark{ background: linear-gradient(135deg, #3b4254, #262c3a); }
.jiusi-uc-stat-green{ background: linear-gradient(135deg, #17b978, #0f9d63); }
.jiusi-uc-stat-btn{ display: inline-flex; background: rgba(255,255,255,.14); color: #fff; padding: 9px 18px; border-radius: 9px; font-size: 13px; font-weight: 700; border: 0; cursor: pointer; transition: background .15s, transform .1s, box-shadow .15s; }
.jiusi-uc-stat-btn:hover{ background: rgba(255,255,255,.22); }
.jiusi-uc-stat-btn:active{ transform: scale(.97); }
/* 用在深色/彩色渐变卡片上的"亮色"按钮变体（比如"申请提现"）：跟卡片背景色拉开对比度，
   不能用前面那个半透明白色（在绿色/深色卡片上几乎跟背景融在一起，看不清），
   这里直接用实色白底 + 卡片主题色文字，hover 时轻微下沉一点提示可点击 */
.jiusi-uc-stat-btn-light{ background: #fff; color: var(--jiusi-green, #17b978); box-shadow: 0 2px 8px rgba(0,0,0,.12); }
.jiusi-uc-stat-btn-light:hover{ background: #f0fdf6; box-shadow: 0 4px 12px rgba(0,0,0,.18); }

.jiusi-uc-quicklinks{ background: #fff; border: 1px solid var(--jiusi-border); border-radius: 14px; padding: 24px 26px; margin-bottom: 20px; }
.jiusi-uc-quicklinks > h3{ margin: 0 0 20px; font-size: 18px; }
.jiusi-uc-quick-group{ margin-bottom: 22px; }
.jiusi-uc-quick-group:last-child{ margin-bottom: 0; }
.jiusi-uc-quick-group h5{ margin: 0 0 12px; font-size: 13px; color: var(--jiusi-text-light); font-weight: 600; }
.jiusi-uc-quick-grid{ display: grid; gap: 12px; }
.jiusi-uc-quick-grid-1{ grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); max-width: 220px; }
.jiusi-uc-quick-grid-2{ grid-template-columns: repeat(2, 1fr); }
.jiusi-uc-quick-grid-3{ grid-template-columns: repeat(3, 1fr); }
.jiusi-uc-quick-grid-4{ grid-template-columns: repeat(4, 1fr); }
.jiusi-uc-quick-card{
  display: flex; flex-direction: column; align-items: center; gap: 8px;
  border: 1px solid var(--jiusi-border); border-radius: 12px;
  padding: 18px 10px;
  font-size: 13px; color: var(--jiusi-text); text-align: center;
}
.jiusi-uc-quick-card svg{ width: 20px; height: 20px; color: var(--jiusi-purple); }
.jiusi-uc-quick-card:hover{ border-color: var(--jiusi-purple); background: #f8f6ff; }

.jiusi-uc-preview-row{ display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-bottom: 20px; }
.jiusi-uc-preview-card{ background: #fff; border: 1px solid var(--jiusi-border); border-radius: 14px; padding: 22px 24px; }
.jiusi-uc-preview-head{ display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.jiusi-uc-preview-head h4{ display: flex; align-items: center; gap: 7px; margin: 0; font-size: 15px; }
.jiusi-uc-preview-head h4 svg{ width: 16px; height: 16px; color: var(--jiusi-text-light); }
.jiusi-uc-preview-head a{ font-size: 12.5px; color: var(--jiusi-blue); }
.jiusi-uc-preview-list{ display: flex; flex-direction: column; gap: 8px; }
.jiusi-uc-preview-row-item{ display: flex; justify-content: space-between; gap: 10px; font-size: 13px; padding: 8px 0; border-bottom: 1px solid var(--jiusi-border); }
.jiusi-uc-preview-row-item:last-child{ border-bottom: 0; }

.jiusi-uc-empty{ text-align: center; padding: 60px 20px; color: var(--jiusi-text-light); }
.jiusi-uc-empty svg{ width: 40px; height: 40px; opacity: .4; margin-bottom: 12px; }
.jiusi-uc-empty p{ margin: 4px 0 0; font-size: 13.5px; }
.jiusi-uc-empty-sub{ font-size: 12.5px !important; color: var(--jiusi-text-light); }
.jiusi-uc-empty-inline{ padding: 30px 10px; }

.jiusi-uc-benefits-block{ background: #fff; border: 1px solid var(--jiusi-border); border-radius: 14px; padding: 24px 26px; }
.jiusi-uc-benefits-block h4{ margin: 0 0 16px; font-size: 16px; }
.jiusi-uc-benefits-grid{ display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.jiusi-uc-benefit-item p{ margin: 6px 0 0; font-size: 12.5px; color: var(--jiusi-text-light); }
.jiusi-uc-benefit-tag{ display: inline-block; font-size: 11px; font-weight: 700; color: #fff; padding: 3px 10px; border-radius: 999px; }
.jiusi-uc-benefit-item:nth-child(1) .jiusi-uc-benefit-tag{ background: var(--jiusi-blue); }
.jiusi-uc-benefit-item:nth-child(2) .jiusi-uc-benefit-tag{ background: #0f9d63; }
.jiusi-uc-benefit-item:nth-child(3) .jiusi-uc-benefit-tag{ background: #b8860b; }
.jiusi-uc-benefit-item:nth-child(4) .jiusi-uc-benefit-tag{ background: var(--jiusi-red); }

/* -------- 通用面板 -------- */
.jiusi-uc-panel{ background: #fff; border: 1px solid var(--jiusi-border); border-radius: 14px; padding: 24px 26px; margin-bottom: 20px; }
.jiusi-uc-panel-flush{ padding: 0; overflow: hidden; }
.jiusi-uc-panel-title{ display: flex; align-items: center; gap: 8px; margin: 0 0 16px; font-size: 15px; font-weight: 700; padding-bottom: 14px; border-bottom: 1px solid var(--jiusi-border); }
.jiusi-uc-panel-title svg{ width: 16px; height: 16px; color: var(--jiusi-text-light); }
.jiusi-uc-panel-sub{ margin: -8px 0 16px; font-size: 12.5px; color: var(--jiusi-text-light); }

/* -------- 账号设置 -------- */
.jiusi-uc-avatar-row{ display: flex; align-items: center; gap: 18px; }
.jiusi-uc-avatar-wrap{ position: relative; width: 80px; height: 80px; flex-shrink: 0; }
.jiusi-uc-avatar-preview{ width: 80px; height: 80px; border-radius: 50%; overflow: hidden; border: 1px solid var(--jiusi-border); background: var(--jiusi-bg); }
.jiusi-uc-avatar-preview img{ width: 100%; height: 100%; object-fit: contain; padding: 8px; }
.jiusi-uc-avatar-btn{
  position: absolute; right: -2px; bottom: -2px;
  width: 28px; height: 28px; border-radius: 50%;
  background: var(--jiusi-blue); color: #fff; border: 2px solid #fff;
  display: flex; align-items: center; justify-content: center;
}
.jiusi-uc-avatar-btn svg{ width: 14px; height: 14px; }
.jiusi-uc-avatar-click{ cursor: pointer; }
.jiusi-uc-avatar-label{ margin: 0 0 4px; font-size: 14px; font-weight: 600; }
.jiusi-uc-avatar-hint{ margin: 0; font-size: 12px; color: var(--jiusi-text-light); }

.jiusi-uc-info-row{ display: flex; align-items: center; justify-content: space-between; padding: 14px 16px; background: var(--jiusi-bg); border-radius: 10px; margin-bottom: 12px; }
.jiusi-uc-info-left{ display: flex; align-items: center; gap: 12px; }
.jiusi-uc-info-left svg{ width: 18px; height: 18px; color: var(--jiusi-text-light); }
.jiusi-uc-info-label{ display: block; font-size: 11.5px; color: var(--jiusi-text-light); }
.jiusi-uc-info-value{ margin: 2px 0 0; font-size: 14px; font-weight: 600; }
.jiusi-uc-edit-btn, .jiusi-uc-bind-btn{
  width: 32px; height: 32px; border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  background: #fff; border: 1px solid var(--jiusi-border); color: var(--jiusi-text-light);
}
.jiusi-uc-edit-btn svg{ width: 15px; height: 15px; }
.jiusi-uc-bind-btn{ width: auto; padding: 0 16px; font-size: 12.5px; color: var(--jiusi-blue); border-color: var(--jiusi-blue); }
.jiusi-uc-bind-btn:disabled{ opacity: .5; cursor: not-allowed; color: var(--jiusi-text-light); border-color: var(--jiusi-border); }

.jiusi-uc-notify-row{ display: flex; align-items: center; justify-content: space-between; padding: 14px 0; border-bottom: 1px solid var(--jiusi-border); }
.jiusi-uc-notify-left{ display: flex; align-items: center; gap: 12px; }
.jiusi-uc-notify-left svg{ width: 18px; height: 18px; color: var(--jiusi-text-light); }
.jiusi-uc-notify-subtitle{ margin: 20px 0 2px; font-size: 14px; }
.jiusi-uc-notify-toggle{
  width: 42px; height: 24px; border-radius: 999px;
  background: var(--jiusi-border); border: 0; position: relative; flex-shrink: 0;
  transition: background-color .15s ease;
}
.jiusi-uc-notify-toggle::after{
  content: ""; position: absolute; top: 2px; left: 2px;
  width: 20px; height: 20px; border-radius: 50%; background: #fff;
  transition: transform .15s ease;
  box-shadow: 0 1px 3px rgba(0,0,0,.2);
}
.jiusi-uc-toggle-on{ background: var(--jiusi-blue); }
.jiusi-uc-toggle-on::after{ transform: translateX(18px); }
.jiusi-uc-notify-note{ margin-top: 18px; background: #f0faf6; border-radius: 10px; padding: 14px 18px; font-size: 12.5px; color: #0f9d63; }
.jiusi-uc-notify-note p{ margin: 4px 0 0; }

/* -------- tabs / pills -------- */
.jiusi-uc-tabs{ display: flex; gap: 4px; margin-bottom: 18px; border-bottom: 1px solid var(--jiusi-border); }
.jiusi-uc-tabs-padded{ margin: 0; padding: 0 20px; }
.jiusi-uc-tab{ display: flex; align-items: center; gap: 6px; padding: 14px 18px; font-size: 13.5px; color: var(--jiusi-text-light); border-bottom: 2px solid transparent; margin-bottom: -1px; white-space: nowrap; }
.jiusi-uc-tab svg{ width: 15px; height: 15px; }
.jiusi-uc-tab:hover{ color: var(--jiusi-text); }
.jiusi-uc-tab-active{ color: var(--jiusi-blue); border-bottom-color: var(--jiusi-blue); font-weight: 600; }

.jiusi-uc-pill-row{ display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }
.jiusi-uc-pill-row-padded{ padding: 18px 20px 0; margin-bottom: 4px; }

.jiusi-uc-grid{ padding: 20px; }

/* -------- 浏览历史 -------- */
.jiusi-uc-clear-btn{ display: flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--jiusi-red); border: 1px solid #fecaca; background: #fff8f8; padding: 8px 14px; border-radius: 8px; }
.jiusi-uc-clear-btn svg{ width: 14px; height: 14px; }
.jiusi-uc-history-list{ padding: 10px 20px; }
.jiusi-uc-history-item{ display: flex; align-items: center; gap: 14px; padding: 14px 0; border-bottom: 1px solid var(--jiusi-border); }
.jiusi-uc-history-item:last-child{ border-bottom: 0; }
.jiusi-uc-history-thumb{ width: 88px; height: 62px; flex-shrink: 0; border-radius: 8px; overflow: hidden; background: var(--jiusi-bg); }
.jiusi-uc-history-thumb img{ width: 100%; height: 100%; object-fit: cover; }
.jiusi-uc-history-body h4{ margin: 0 0 6px; font-size: 13.5px; font-weight: 600; }
.jiusi-uc-history-body p{ display: flex; align-items: center; gap: 5px; margin: 0; font-size: 12px; color: var(--jiusi-text-light); }
.jiusi-uc-history-body p svg{ width: 12px; height: 12px; }

/* -------- 订单 -------- */
.jiusi-uc-order-list{ padding: 6px 0; }
.jiusi-uc-order-list-padded{ padding: 6px 20px 20px; }
.jiusi-uc-order-row{ display: flex; align-items: center; gap: 14px; padding: 16px 20px; border-bottom: 1px solid var(--jiusi-border); }
.jiusi-uc-order-row-simple{ padding: 14px 0; }
.jiusi-uc-order-row:last-child{ border-bottom: 0; }
.jiusi-uc-order-thumb{ width: 72px; height: 54px; flex-shrink: 0; border-radius: 8px; overflow: hidden; background: var(--jiusi-bg); }
.jiusi-uc-order-thumb img{ width: 100%; height: 100%; object-fit: cover; }
.jiusi-uc-order-body{ flex: 1; min-width: 0; }
.jiusi-uc-order-body a, .jiusi-uc-order-body span{ font-size: 13.5px; font-weight: 600; }
.jiusi-uc-order-body p{ margin: 4px 0 0; font-size: 12px; color: var(--jiusi-text-light); }
.jiusi-uc-order-price{ text-align: right; font-size: 14px; font-weight: 700; white-space: nowrap; }
.jiusi-uc-order-status{ display: block; margin-top: 4px; font-size: 11px; font-weight: 600; padding: 2px 9px; border-radius: 999px; }
.jiusi-uc-status-done, .jiusi-uc-status-completed{ background: #e4f9ef; color: #0f9d63; }
.jiusi-uc-status-pending{ background: #fff6dc; color: #b8860b; }
.jiusi-uc-status-expired, .jiusi-uc-status-failed{ background: #fef2f2; color: var(--jiusi-red); }

/* -------- 充值 -------- */
.jiusi-uc-page-head{ display: flex; align-items: center; gap: 14px; margin-bottom: 20px; }
.jiusi-uc-page-head-icon{ width: 44px; height: 44px; border-radius: 12px; display: flex; align-items: center; justify-content: center; color: #fff; }
.jiusi-uc-page-head-icon svg{ width: 20px; height: 20px; }
.jiusi-uc-head-blue{ background: var(--jiusi-blue); }
.jiusi-uc-page-head h1{ margin: 0 0 2px; font-size: 19px; }
.jiusi-uc-page-head p{ margin: 0; font-size: 12.5px; color: var(--jiusi-text-light); }

.jiusi-uc-recharge-grid{ display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.jiusi-uc-recharge-card{
  position: relative;
  text-align: center;
  border: 1px solid var(--jiusi-border);
  border-radius: 12px;
  padding: 26px 10px;
  background: #fff;
  width: 100%;
  font-family: inherit;
  cursor: pointer;
}
.jiusi-uc-recharge-card:hover{ border-color: var(--jiusi-blue); background: #eaf2ff; }
.jiusi-uc-recharge-tag{ position: absolute; top: -9px; left: 50%; transform: translateX(-50%); background: var(--jiusi-red); color: #fff; font-size: 10.5px; font-weight: 700; padding: 2px 10px; border-radius: 999px; }
.jiusi-uc-recharge-num{ display: block; font-size: 28px; font-weight: 800; color: var(--jiusi-blue); }
.jiusi-uc-recharge-unit{ font-size: 12.5px; color: var(--jiusi-text-light); }

.jiusi-uc-info-box{ background: #eaf2ff; border-radius: 14px; padding: 22px 26px; }
.jiusi-uc-info-box h4{ margin: 0 0 10px; font-size: 14px; }
.jiusi-uc-info-box ul{ margin: 0; padding-left: 18px; }
.jiusi-uc-info-box li{ font-size: 12.5px; line-height: 2; color: var(--jiusi-text); }

/* -------- 工单 / 申诉 -------- */
.jiusi-uc-primary-btn{ display: flex; align-items: center; gap: 6px; background: var(--jiusi-blue); color: #fff; padding: 9px 18px; border-radius: 9px; font-size: 13.5px; font-weight: 700; white-space: nowrap; }
.jiusi-uc-primary-btn svg{ width: 15px; height: 15px; }
.jiusi-uc-ticket-list{ padding: 6px 20px 20px; }
.jiusi-uc-ticket-row{ display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 0; border-bottom: 1px solid var(--jiusi-border); }
.jiusi-uc-ticket-row:last-child{ border-bottom: 0; }
.jiusi-uc-ticket-row h4{ margin: 0 0 5px; font-size: 14px; }
.jiusi-uc-ticket-row p{ margin: 0; font-size: 12px; color: var(--jiusi-text-light); }
.jiusi-uc-ticket-status{ font-size: 11.5px; font-weight: 600; padding: 3px 12px; border-radius: 999px; background: var(--jiusi-bg); color: var(--jiusi-text-light); white-space: nowrap; }

.jiusi-uc-notice{
  display: flex; align-items: center; flex-wrap: wrap; gap: 8px;
  background: #fff8e6; border: 1px solid #ffe4a3; color: #92660a;
  border-radius: 10px; padding: 14px 18px; margin-bottom: 20px; font-size: 12.5px;
}
.jiusi-uc-notice svg{ width: 16px; height: 16px; flex-shrink: 0; }
.jiusi-uc-notice a{ margin-left: auto; font-weight: 700; color: #92660a; text-decoration: underline; white-space: nowrap; }

.jiusi-uc-tip-box{ background: #f0faf6; border-radius: 10px; padding: 16px 20px; margin-bottom: 20px; }
.jiusi-uc-tip-box p{ margin: 4px 0; font-size: 12.5px; color: #0f9d63; }

.jiusi-uc-upload-row{ display: flex; flex-wrap: wrap; align-items: flex-start; gap: 10px; }
/* 选择器比 .jiusi-field label 更高优先级（那条规则会把这个 label 的 display 强制改成 block，
   导致里面的图标和文字跑到左上角），所以这里必须用 .jiusi-uc-upload-row 打底再定义一次 */
.jiusi-uc-upload-row .jiusi-uc-upload-box{
  width: 84px; height: 84px; border: 1px dashed var(--jiusi-border); border-radius: 10px;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px;
  color: var(--jiusi-text-light); font-size: 11.5px; cursor: pointer; flex-shrink: 0;
  margin: 0;
}
.jiusi-uc-upload-box svg{ width: 18px; height: 18px; }
.jiusi-uc-upload-preview{ display: flex; flex-wrap: wrap; align-items: flex-start; gap: 10px; }
.jiusi-uc-upload-preview img{ display: block; flex-shrink: 0; }
.jiusi-uc-upload-preview img{ width: 84px; height: 84px; object-fit: cover; border-radius: 10px; border: 1px solid var(--jiusi-border); }

.jiusi-uc-form-actions{ display: flex; justify-content: flex-end; gap: 12px; margin-top: 10px; }
.jiusi-uc-form-actions .jiusi-modal-cancel,
.jiusi-uc-form-actions .jiusi-modal-confirm{ flex: none; padding: 10px 24px; }

#jiusi-ticket-form select,
#jiusi-ticket-form input[type="text"],
#jiusi-ticket-form textarea{
  width: 100%;
  border: 1px solid var(--jiusi-border);
  border-radius: 9px;
  padding: 12px 14px;
  font-size: 13.5px;
  font-family: inherit;
}
#jiusi-ticket-form textarea{ resize: vertical; }

@media (max-width: 960px){
  .jiusi-uc-layout{ flex-direction: column; }
  .jiusi-uc-sidebar{ width: 100%; position: static; }
  .jiusi-uc-stat-grid, .jiusi-uc-preview-row{ grid-template-columns: 1fr; }
  .jiusi-uc-quick-grid-3, .jiusi-uc-quick-grid-4{ grid-template-columns: repeat(2, 1fr); }
  .jiusi-uc-benefits-grid{ grid-template-columns: 1fr; }
  .jiusi-uc-recharge-grid{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px){
  .jiusi-uc-quick-grid-2, .jiusi-uc-quick-grid-3, .jiusi-uc-quick-grid-4{ grid-template-columns: repeat(2, 1fr); }
}
