/* ===== 全局样式 ===== */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

:root {
    --primary: #0984e3;
    --primary-dark: #0769b8;
    --secondary: #00b894;
    --accent: #fd79a8;
    --danger: #d63031;
    --warning: #fdcb6e;
    --text: #2d3436;
    --text-light: #636e72;
    --bg: #f8f9fa;
    --bg-card: #ffffff;
    --shadow: 0 3px 16px rgba(0,0,0,0.08);
    --shadow-hover: 0 6px 24px rgba(0,0,0,0.12);
    --radius: 12px;
    --radius-sm: 6px;
    --font-scale: 0.93;
}

body {
    font-family: 'Noto Sans SC', -apple-system, BlinkMacSystemFont, sans-serif;
    background: var(--bg);
    color: var(--text);
    min-height: 100vh;
    line-height: 1.5;
    font-size: calc(15px * var(--font-scale));
}

/* ===== 布局 ===== */
.app-container {
    display: flex;
    min-height: 100vh;
}

/* ===== 侧边栏 ===== */
.sidebar {
    width: 242px;
    background: linear-gradient(180deg, #1a1a2e 0%, #16213e 100%);
    padding: 18px;
    display: flex;
    flex-direction: column;
    position: fixed;
    height: 100vh;
    z-index: 100;
}

.logo {
    display: flex;
    align-items: center;
    gap: 11px;
    margin-bottom: 31px;
    padding-bottom: 20px;
    border-bottom: 1px solid rgba(255,255,255,0.1);
}

.logo-icon {
    font-size: 2.2rem;
    animation: float 3s ease-in-out infinite;
}

@keyframes float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-5px); }
}

.logo-text h1 {
    font-size: 1.32rem;
    font-weight: 700;
    color: #fff;
    margin-bottom: 2px;
}

.logo-text p {
    font-size: 0.77rem;
    color: rgba(255,255,255,0.5);
}

.main-nav ul {
    list-style: none;
    flex: 1;
}

.nav-item {
    margin-bottom: 6px;
}

.nav-item a {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 13px 15px;
    color: rgba(255,255,255,0.7);
    text-decoration: none;
    border-radius: var(--radius-sm);
    transition: all 0.3s ease;
    font-weight: 500;
    font-size: 0.9rem;
}

.nav-item a:hover {
    background: rgba(255,255,255,0.1);
    color: #fff;
}

.nav-item.active a {
    background: linear-gradient(135deg, var(--primary), var(--secondary));
    color: #fff;
    box-shadow: 0 3px 12px rgba(9, 132, 227, 0.4);
}

.icon {
    font-size: 1.1rem;
}

/* 帮助中心链接样式 */
.nav-help a {
    position: relative;
}

.nav-help a::after {
    content: '↗';
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 0.7rem;
    opacity: 0.6;
}

.nav-help a:hover::after {
    opacity: 1;
}

/* ===== 侧边栏底部 ===== */
.sidebar-footer {
    margin-top: auto;
    padding: 18px 12px;
    border-top: 1px solid rgba(255,255,255,0.1);
    display: flex;
    justify-content: center;
    min-height: 60px;
}

.auth-buttons {
    display: flex;
    gap: 8px;
    width: 100%;
    justify-content: center;
}

.auth-buttons button {
    flex: 1;
    max-width: 94px;
    padding: 11px;
    border: none;
    border-radius: var(--radius-sm);
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
}

.btn-login {
    background: var(--primary);
    color: #fff;
    font-size: 0.94rem;
}

.btn-login:hover {
    background: var(--primary-dark);
}

.btn-register {
    background: rgba(255,255,255,0.1);
    color: #fff;
    border: 1px solid rgba(255,255,255,0.2);
}

.btn-register:hover {
    background: rgba(255,255,255,0.2);
}

.user-info {
    padding: 0;
    background: transparent;
    width: 100%;
    display: flex;
    justify-content: center;
}

.user-dropdown {
    position: relative;
    width: 100%;
}

.user-dropdown-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 10px 16px;
    background: rgba(255,255,255,0.08);
    border-radius: 10px;
    cursor: pointer;
    transition: all 0.3s ease;
    border: 1px solid rgba(255,255,255,0.1);
}

.user-dropdown-toggle:hover {
    background: rgba(255,255,255,0.15);
    border-color: rgba(255,255,255,0.2);
}

.user-name {
    color: #fff;
    font-weight: 500;
    font-size: 0.8rem;
    max-width: 120px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dropdown-arrow {
    color: rgba(255,255,255,0.5);
    font-size: 0.5rem;
    transition: transform 0.3s ease;
}

.user-dropdown-toggle:hover .dropdown-arrow {
    color: #fff;
}

/* 横向下拉菜单 */
.user-dropdown-menu {
    position: absolute;
    bottom: calc(100% + 10px);
    left: 50%;
    transform: translateX(-50%);
    background: rgba(26,26,46,0.98);
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 -6px 24px rgba(0,0,0,0.4);
    animation: slideUpFade 0.2s ease;
    display: flex;
    flex-direction: row;
    gap: 0;
    min-width: auto;
    white-space: nowrap;
    border: 1px solid rgba(255,255,255,0.1);
    backdrop-filter: blur(10px);
}

@keyframes slideUpFade {
    from { opacity: 0; transform: translateX(-50%) translateY(8px); }
    to { opacity: 1; transform: translateX(-50%) translateY(0); }
}

.dropdown-item {
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 10px 14px;
    color: rgba(255,255,255,0.85);
    font-size: 0.75rem;
    transition: all 0.2s ease;
    cursor: pointer;
    text-decoration: none;
    border-right: 1px solid rgba(255,255,255,0.08);
}

.dropdown-item:last-child {
    border-right: none;
}

.dropdown-item:hover {
    background: rgba(255,255,255,0.1);
    color: #fff;
}

#admin-link.dropdown-item {
    color: #fdbb2d;
}

#admin-link.dropdown-item:hover {
    background: rgba(253,187,45,0.2);
    color: #fdbb2d;
}

.dropdown-item.points-display {
    /* 横向布局时不需要特殊边框 */
}

.dropdown-item.instances-display {
    /* 横向布局时不需要特殊边框 */
}

.dropdown-user-center {
    color: #4ecdc4;
}

.dropdown-user-center:hover {
    background: rgba(78,205,196,0.2);
    color: #4ecdc4;
}

.dropdown-logout {
    color: #f44336;
    border-right: none;
}

.dropdown-logout:hover {
    background: rgba(244,67,54,0.2);
    color: #f44336;
}

.points-icon, .instances-icon {
    font-size: 1rem;
}

/* ===== 主内容区 ===== */
.main-content {
    flex: 1;
    margin-left: 242px;
    padding: 31px;
    min-height: 100vh;
}

.page {
    display: none;
    animation: fadeIn 0.4s ease;
}

.page.active {
    display: block;
}

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(16px); }
    to { opacity: 1; transform: translateY(0); }
}

/* ===== 首页 Hero - 新设计 ===== */
.hero-section-new {
    position: relative;
    background: linear-gradient(135deg, #0f0c29 0%, #302b63 50%, #24243e 100%);
    border-radius: 18px;
    padding: 55px 44px;
    margin-bottom: 28px;
    overflow: hidden;
    min-height: 300px;
}

/* 粒子动画背景 */
.hero-particles {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    overflow: hidden;
}

.particle {
    position: absolute;
    width: 10px;
    height: 10px;
    background: radial-gradient(circle, rgba(255,255,255,0.8) 0%, transparent 70%);
    border-radius: 50%;
    animation: floatParticle 15s linear infinite;
}

.p1 { left: 10%; top: 20%; animation-delay: 0s; }
.p2 { left: 20%; top: 80%; animation-delay: 2s; }
.p3 { left: 60%; top: 40%; animation-delay: 4s; }
.p4 { left: 80%; top: 60%; animation-delay: 6s; }
.p5 { left: 50%; top: 10%; animation-delay: 8s; }

@keyframes floatParticle {
    0% { transform: translateY(0) scale(1); opacity: 0; }
    10% { opacity: 1; }
    90% { opacity: 1; }
    100% { transform: translateY(-100vh) scale(0.5); opacity: 0; }
}

.hero-content-new {
    position: relative;
    z-index: 1;
    text-align: center;
    color: #fff;
}

/* 流光标题 - 商业化设计 */
.brand-title {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-bottom: 14px;
}

.title-char {
    font-size: 3.1rem;
    font-weight: 900;
    color: #fff;
    text-shadow: 0 0 8px rgba(255,255,255,0.3);
    animation: fadeInChar 0.8s ease forwards, glowSequence 4s ease-in-out infinite;
    opacity: 0;
}

.title-char:nth-child(1) { animation-delay: 0.1s, 0s; color: #fff; }
.title-char:nth-child(2) { animation-delay: 0.2s, 1s; color: #fff; }
.title-char:nth-child(3) { animation-delay: 0.3s, 2s; color: #f093fb; }
.title-char:nth-child(4) { animation-delay: 0.4s, 3s; color: #f5576c; }

@keyframes fadeInChar {
    0% { opacity: 0; transform: translateY(24px); }
    100% { opacity: 1; transform: translateY(0); }
}

@keyframes glowSequence {
    0%, 20% {
        text-shadow: 0 0 8px rgba(255,255,255,0.3);
        transform: scale(1);
    }
    25% {
        text-shadow: 0 0 16px rgba(255,255,255,0.8), 0 0 32px rgba(255,255,255,0.6), 0 0 48px rgba(240,147,251,0.4);
        transform: scale(1.05);
    }
    50%, 100% {
        text-shadow: 0 0 8px rgba(255,255,255,0.3);
        transform: scale(1);
    }
}

.brand-subtitle {
    font-size: 1.21rem;
    color: rgba(255,255,255,0.8);
    margin-bottom: 16px;
    letter-spacing: 3px;
    font-weight: 500;
}

.hero-desc {
    font-size: 1.05rem;
    color: rgba(255,255,255,0.7);
    margin-bottom: 28px;
    max-width: 500px;
    line-height: 1.6;
    margin-left: auto;
    margin-right: auto;
}

/* Hero按钮 */
.hero-buttons-new {
    display: flex;
    gap: 16px;
    justify-content: center;
    margin-bottom: 32px;
}

.btn-hero-main {
    padding: 15px 35px;
    background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
    color: #fff;
    border: none;
    border-radius: 24px;
    font-size: 0.95rem;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 8px;
    box-shadow: 0 6px 24px rgba(245,87,108,0.4);
}

.btn-hero-main:hover {
    transform: translateY(-3px) scale(1.05);
    box-shadow: 0 10px 32px rgba(245,87,108,0.6);
}

.btn-hero-outline {
    padding: 15px 35px;
    background: transparent;
    color: #fff;
    border: 2px solid rgba(255,255,255,0.3);
    border-radius: 24px;
    font-size: 0.95rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 8px;
}

.btn-hero-outline:hover {
    background: rgba(255,255,255,0.1);
    border-color: rgba(255,255,255,0.6);
    transform: translateY(-2px);
}

.btn-icon {
    font-size: 1.1rem;
}

/* 信任指标 */
.trust-indicators {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 16px;
    padding-top: 16px;
}

.trust-item {
    text-align: center;
}

.trust-num {
    font-size: 1.54rem;
    font-weight: 800;
    color: #4facfe;
    display: block;
}

.trust-label {
    font-size: 0.75rem;
    color: rgba(255,255,255,0.6);
}

.trust-divider {
    width: 1px;
    height: 32px;
    background: rgba(255,255,255,0.2);
}

/* ===== 产品特色区域 ===== */
.features-section-new {
    padding: 44px 0;
    background: linear-gradient(180deg, #f8f9fa 0%, #fff 100%);
    border-radius: 16px;
    margin-bottom: 28px;
}

.section-header {
    text-align: center;
    margin-bottom: 36px;
}

.section-header h2 {
    font-size: 1.76rem;
    font-weight: 800;
    color: var(--text);
    margin-bottom: 12px;
}

.section-header p {
    font-size: 1.05rem;
    color: var(--text-light);
    max-width: 500px;
    margin: 0 auto;
}

.features-grid-new {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 20px;
    padding: 0 16px;
}

.feature-card-new {
    background: #fff;
    border-radius: 18px;
    padding: 31px 24px;
    text-align: center;
    box-shadow: 0 8px 32px rgba(0,0,0,0.08);
    transition: all 0.4s ease;
    border: 1px solid rgba(0,0,0,0.05);
    position: relative;
    overflow: hidden;
}

.feature-card-new::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, #4facfe, #00f2fe);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.feature-card-new:hover::before {
    opacity: 1;
}

.feature-card-new:hover {
    transform: translateY(-8px);
    box-shadow: 0 16px 40px rgba(0,0,0,0.15);
}

.feature-icon-wrap {
    position: relative;
    width: 60px;
    height: 60px;
    margin: 0 auto 18px;
}

.feature-icon-bg {
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, #667eea, #764ba2);
    border-radius: 50%;
    opacity: 0.15;
    animation: pulseIcon 2s ease-in-out infinite;
}

@keyframes pulseIcon {
    0%, 100% { transform: scale(1); opacity: 0.15; }
    50% { transform: scale(1.1); opacity: 0.25; }
}

.feature-icon-new {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
}

.feature-card-new h3 {
    font-size: 1.21rem;
    font-weight: 700;
    color: var(--text);
    margin-bottom: 10px;
}

.feature-card-new p {
    font-size: 0.94rem;
    color: var(--text-light);
    line-height: 1.5;
    margin-bottom: 16px;
}

.feature-tag {
    display: inline-block;
    padding: 5px 14px;
    background: linear-gradient(135deg, rgba(9,132,227,0.1), rgba(0,184,148,0.1));
    color: var(--primary);
    border-radius: 16px;
    font-size: 0.75rem;
    font-weight: 600;
}

/* ===== 方案区域 ===== */
.plans-section {
    padding: 40px 16px;
    margin-bottom: 28px;
}

.plans-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 20px;
    max-width: 850px;
    margin: 0 auto;
}

.plan-card {
    background: #fff;
    border-radius: 18px;
    padding: 31px 24px;
    box-shadow: 0 6px 24px rgba(0,0,0,0.08);
    transition: all 0.3s ease;
    border: 2px solid transparent;
    position: relative;
}

.plan-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 32px rgba(0,0,0,0.12);
    border-color: rgba(9,132,227,0.3);
}

.plan-popular {
    border-color: var(--primary);
    background: linear-gradient(180deg, rgba(9,132,227,0.05) 0%, #fff 100%);
}

.plan-badge {
    position: absolute;
    top: -10px;
    left: 50%;
    transform: translateX(-50%);
    background: linear-gradient(135deg, #f093fb, #f5576c);
    color: #fff;
    padding: 5px 16px;
    border-radius: 16px;
    font-size: 0.75rem;
    font-weight: 700;
}

.plan-header {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 16px;
}

.plan-icon {
    font-size: 1.5rem;
}

.plan-header h3 {
    font-size: 1rem;
    font-weight: 700;
    color: var(--text);
}

.plan-price {
    margin-bottom: 12px;
}

.price-num {
    font-size: 2.2rem;
    font-weight: 900;
    color: var(--primary);
}

.price-unit {
    font-size: 0.85rem;
    color: var(--text-light);
}

.plan-desc {
    font-size: 0.8rem;
    color: var(--text-light);
    margin-bottom: 18px;
    line-height: 1.4;
}

.plan-features {
    list-style: none;
    padding: 0;
}

.plan-features li {
    padding: 6px 0;
    font-size: 0.85rem;
    color: var(--text);
    border-bottom: 1px solid rgba(0,0,0,0.05);
}

.plan-features li:last-child {
    border-bottom: none;
}

/* ===== 技术架构 ===== */
.tech-section {
    padding: 40px 16px;
    background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
    border-radius: 16px;
    margin-bottom: 28px;
}

.tech-section .section-header h2 {
    color: #fff;
}

.tech-section .section-header p {
    color: rgba(255,255,255,0.7);
}

.tech-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 20px;
    max-width: 700px;
    margin: 0 auto;
}

.tech-item {
    text-align: center;
    padding: 22px;
    background: rgba(255,255,255,0.05);
    border-radius: 12px;
    transition: all 0.3s ease;
}

.tech-item:hover {
    background: rgba(255,255,255,0.1);
    transform: translateY(-4px);
}

.tech-icon {
    font-size: 2rem;
    display: block;
    margin-bottom: 12px;
}

.tech-item h4 {
    color: #fff;
    font-size: 0.95rem;
    margin-bottom: 6px;
}

.tech-item p {
    color: rgba(255,255,255,0.6);
    font-size: 0.75rem;
}

/* ===== CTA区域 ===== */
.cta-section {
    padding: 55px 35px;
    background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
    border-radius: 16px;
    text-align: center;
    margin-bottom: 28px;
}

.cta-content h2 {
    font-size: 1.76rem;
    font-weight: 800;
    color: #fff;
    margin-bottom: 12px;
}

.cta-content p {
    font-size: 0.95rem;
    color: rgba(255,255,255,0.9);
    margin-bottom: 24px;
}

.btn-cta {
    padding: 15px 44px;
    background: #fff;
    color: #f5576c;
    border: none;
    border-radius: 24px;
    font-size: 1rem;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.3s ease;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    box-shadow: 0 6px 24px rgba(0,0,0,0.2);
}

.btn-cta:hover {
    transform: translateY(-3px) scale(1.05);
    box-shadow: 0 10px 32px rgba(0,0,0,0.3);
}

/* ===== 旧样式保留（兼容） ===== */
.hero-section {
    position: relative;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    border-radius: var(--radius);
    padding: 80px 60px;
    margin-bottom: 40px;
    overflow: hidden;
}

.hero-bg {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    overflow: hidden;
}

.wave {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 200%;
    height: 100%;
}

.wave1 { animation: wave 10s linear infinite; opacity: 0.5; }
.wave2 { animation: wave 15s linear infinite; opacity: 0.3; bottom: 10px; }
.wave3 { animation: wave 20s linear infinite; opacity: 0.2; bottom: 20px; }

@keyframes wave {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

.hero-content {
    position: relative;
    z-index: 1;
    text-align: center;
    color: #fff;
}

.hero-content h1 {
    font-size: 3rem;
    font-weight: 900;
    margin-bottom: 16px;
}

.hero-content .highlight {
    background: linear-gradient(90deg, #fff, #ffeaa7);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.hero-content p {
    font-size: 1.2rem;
    opacity: 0.9;
    margin-bottom: 32px;
}

.hero-buttons {
    display: flex;
    gap: 16px;
    justify-content: center;
    flex-wrap: wrap;
}

.btn-hero-primary, .btn-hero-secondary {
    padding: 16px 32px;
    border-radius: 50px;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 8px;
}

.btn-hero-primary {
    background: #fff;
    color: var(--primary);
    border: none;
    box-shadow: 0 4px 15px rgba(0,0,0,0.2);
}

.btn-hero-primary:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 25px rgba(0,0,0,0.3);
}

.btn-hero-secondary {
    background: transparent;
    color: #fff;
    border: 2px solid rgba(255,255,255,0.5);
}

.btn-hero-secondary:hover {
    background: rgba(255,255,255,0.1);
    border-color: #fff;
}

/* ===== 特色区域 ===== */
.features-section {
    padding: 20px 0;
}

.section-title {
    font-size: 1.8rem;
    font-weight: 700;
    text-align: center;
    margin-bottom: 40px;
    color: var(--text);
}

.features-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 24px;
}

.feature-card {
    background: var(--bg-card);
    border-radius: var(--radius);
    padding: 32px;
    text-align: center;
    box-shadow: var(--shadow);
    transition: all 0.3s ease;
}

.feature-card:hover {
    transform: translateY(-8px);
    box-shadow: var(--shadow-hover);
}

.feature-icon {
    font-size: 3rem;
    margin-bottom: 16px;
}

.feature-card h3 {
    font-size: 1.2rem;
    font-weight: 700;
    margin-bottom: 8px;
    color: var(--text);
}

.feature-card p {
    color: var(--text-light);
    font-size: 0.95rem;
}

/* ===== 页面头部 ===== */
.page-header {
    text-align: center;
    margin-bottom: 28px;
}

.page-header h2 {
    font-size: 1.5rem;
    font-weight: 700;
    margin-bottom: 6px;
    color: var(--text);
}

.page-header p {
    color: var(--text-light);
    font-size: 0.95rem;
}

/* ===== 品种卡片 ===== */
.breeds-container {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 18px;
}

.breed-card {
    background: var(--bg-card);
    border-radius: var(--radius);
    padding: 22px;
    box-shadow: var(--shadow);
    transition: all 0.3s ease;
    border: 2px solid transparent;
}

.breed-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-hover);
    border-color: var(--primary);
}

.breed-card .icon {
    font-size: 2.5rem;
    margin-bottom: 12px;
    display: block;
}

.breed-card h3 {
    font-size: 1.1rem;
    font-weight: 700;
    margin-bottom: 6px;
}

.breed-card p {
    color: var(--text-light);
    margin-bottom: 12px;
    font-size: 0.85rem;
}

.breed-stats {
    margin: 12px 0;
}

.stat-row {
    margin-bottom: 10px;
}

.stat-row label {
    font-size: 0.75rem;
    color: var(--text-light);
    margin-bottom: 3px;
    display: block;
}

.stat-bar {
    height: 6px;
    background: #eee;
    border-radius: 3px;
    overflow: hidden;
}

.stat-fill {
    height: 100%;
    background: linear-gradient(90deg, var(--primary), var(--secondary));
    border-radius: 3px;
}

.btn-select {
    width: 100%;
    padding: 10px;
    background: linear-gradient(135deg, var(--primary), var(--secondary));
    color: #fff;
    border: none;
    border-radius: var(--radius-sm);
    font-size: 0.9rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
}

.btn-select:hover {
    opacity: 0.9;
    transform: scale(1.02);
}

/* ===== 状态页面 ===== */
.lobster-info-card {
    background: linear-gradient(135deg, #667eea, #764ba2);
    border-radius: var(--radius);
    padding: 24px;
    display: flex;
    align-items: center;
    gap: 20px;
    margin-bottom: 18px;
    color: #fff;
}

.lobster-avatar {
    width: 60px;
    height: 60px;
    background: rgba(255,255,255,0.2);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
}

.lobster-name {
    font-size: 1.2rem;
    font-weight: 700;
    margin-bottom: 6px;
}

.lobster-meta {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.breed-tag {
    background: rgba(255,255,255,0.2);
    padding: 3px 10px;
    border-radius: 16px;
    font-size: 0.75rem;
}

.status-badge {
    padding: 3px 10px;
    border-radius: 16px;
    font-size: 0.75rem;
    font-weight: 600;
}

.status-badge.running {
    background: var(--secondary);
}

.status-badge.stopped {
    background: var(--danger);
}

.status-badge.starting {
    background: #3498db;
}

.status-badge.creating {
    background: #f39c12;
}

.status-badge.restarting {
    background: #8e44ad;
}

.info-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 14px;
    margin-bottom: 18px;
}

.info-card {
    background: var(--bg-card);
    border-radius: var(--radius);
    padding: 16px;
    box-shadow: var(--shadow);
}

.info-card h4 {
    font-size: 0.8rem;
    color: var(--text-light);
    margin-bottom: 10px;
}

.info-value {
    display: flex;
    align-items: center;
    gap: 10px;
}

.info-value code {
    flex: 1;
    background: #f1f3f4;
    padding: 6px 10px;
    border-radius: 5px;
    font-size: 0.85rem;
    word-break: break-all;
}

.btn-copy {
    padding: 6px 12px;
    background: var(--primary);
    color: #fff;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    font-size: 0.8rem;
    transition: all 0.3s ease;
}

.btn-copy:hover {
    background: var(--primary-dark);
}

.config-section {
    background: var(--bg-card);
    border-radius: var(--radius);
    padding: 18px;
    margin-bottom: 18px;
    box-shadow: var(--shadow);
}

.config-section h4 {
    margin-bottom: 12px;
    color: var(--text);
    font-size: 0.9rem;
}

.config-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 12px;
}

.config-item {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.config-item .label {
    font-size: 0.75rem;
    color: var(--text-light);
}

.config-item .value {
    font-weight: 600;
    font-size: 0.85rem;
}

/* 过期警告 */
.expire-warning {
    background: linear-gradient(135deg, #ff6b6b 0%, #ee5a24 100%);
    border-radius: var(--radius-sm);
    padding: 12px 16px;
    margin-top: 16px;
    display: flex;
    align-items: center;
    gap: 8px;
    color: #fff;
}

.warning-icon {
    font-size: 1.2rem;
}

.warning-text {
    font-size: 0.9rem;
    font-weight: 500;
}

.config-item .value.expired {
    color: var(--danger);
    font-weight: 700;
}

.config-item .value.expiring-soon {
    color: #e67e22;
    font-weight: 600;
}

.action-section {
    background: var(--bg-card);
    border-radius: var(--radius);
    padding: 24px;
    margin-bottom: 24px;
    box-shadow: var(--shadow);
}

.action-section h4 {
    margin-bottom: 16px;
}

.action-buttons {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

.btn-action {
    padding: 12px 24px;
    border: none;
    border-radius: var(--radius-sm);
    font-size: 0.95rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
}

.btn-start { background: var(--secondary); color: #fff; }
.btn-stop { background: var(--danger); color: #fff; }
.btn-restart { background: var(--warning); color: #333; }
.btn-delete { background: #636e72; color: #fff; }

.btn-action:hover {
    opacity: 0.9;
    transform: translateY(-2px);
}

.log-section {
    background: var(--bg-card);
    border-radius: var(--radius);
    padding: 24px;
    box-shadow: var(--shadow);
}

.log-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
}

.btn-refresh {
    padding: 8px 16px;
    background: var(--primary);
    color: #fff;
    border: none;
    border-radius: 6px;
    cursor: pointer;
}

.log-container {
    background: #1a1a2e;
    border-radius: var(--radius-sm);
    padding: 16px;
    max-height: 300px;
    overflow-y: auto;
}

.log-container pre {
    color: #00ff88;
    font-family: 'Fira Code', monospace;
    font-size: 0.85rem;
    margin: 0;
    white-space: pre-wrap;
}

.empty-state {
    text-align: center;
    padding: 60px;
}

.empty-icon {
    font-size: 4rem;
    margin-bottom: 16px;
    opacity: 0.5;
}

.empty-state h3 {
    font-size: 1.5rem;
    margin-bottom: 8px;
}

.empty-state p {
    color: var(--text-light);
    margin-bottom: 24px;
}

.btn-primary {
    padding: 14px 32px;
    background: linear-gradient(135deg, var(--primary), var(--secondary));
    color: #fff;
    border: none;
    border-radius: 50px;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
}

.btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(9, 132, 227, 0.3);
}

.loading-state {
    text-align: center;
    padding: 60px;
}

.loading-spinner {
    width: 50px;
    height: 50px;
    border: 4px solid #eee;
    border-top-color: var(--primary);
    border-radius: 50%;
    animation: spin 1s linear infinite;
    margin: 0 auto 16px;
}

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

/* ===== 饲料页面 ===== */
.feed-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 24px;
}

.feed-card {
    background: var(--bg-card);
    border-radius: var(--radius);
    padding: 28px;
    text-align: center;
    box-shadow: var(--shadow);
    transition: all 0.3s ease;
}

.feed-card:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow-hover);
}

.feed-icon {
    font-size: 3rem;
    margin-bottom: 16px;
}

.feed-card h3 {
    font-size: 1.3rem;
    font-weight: 700;
    margin-bottom: 8px;
}

.feed-card p {
    color: var(--text-light);
    margin-bottom: 16px;
}

.feed-specs {
    text-align: left;
    background: #f8f9fa;
    padding: 16px;
    border-radius: var(--radius-sm);
    margin-bottom: 16px;
}

.feed-specs .spec {
    display: flex;
    justify-content: space-between;
    padding: 8px 0;
    border-bottom: 1px solid #eee;
}

.feed-specs .spec:last-child {
    border-bottom: none;
}

/* ===== 认领页面 ===== */
.claim-container {
    display: grid;
    grid-template-columns: 1fr 360px;
    gap: 24px;
}

/* ===== 用户账户信息卡片 ===== */
.account-info-card {
    background: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%);
    border-radius: 14px;
    padding: 18px 24px;
    margin-bottom: 24px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: #fff;
    box-shadow: 0 6px 24px rgba(0,0,0,0.15);
    border: 1px solid rgba(255,255,255,0.1);
}

.account-left {
    display: flex;
    align-items: center;
    gap: 12px;
}

.account-avatar {
    width: 44px;
    height: 44px;
    background: linear-gradient(135deg, #fdbb2d 0%, #22c1c3 100%);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    box-shadow: 0 3px 12px rgba(253,187,45,0.3);
}

.account-details {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.account-name {
    font-size: 1rem;
    font-weight: 700;
}

.account-level {
    font-size: 0.75rem;
    color: rgba(255,255,255,0.7);
    background: rgba(255,255,255,0.15);
    padding: 3px 10px;
    border-radius: 10px;
}

.account-right {
    display: flex;
    gap: 18px;
}

.balance-card, .quota-card {
    background: rgba(255,255,255,0.08);
    border-radius: 10px;
    padding: 12px 18px;
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 110px;
}

.balance-icon, .quota-icon {
    font-size: 1.2rem;
}

.balance-info, .quota-info {
    display: flex;
    flex-direction: column;
}

.balance-label, .quota-label {
    font-size: 0.7rem;
    color: rgba(255,255,255,0.6);
}

.balance-value, .quota-value {
    font-size: 1.1rem;
    font-weight: 700;
}

.balance-unit {
    font-size: 0.75rem;
    color: rgba(255,255,255,0.7);
}

/* ===== 套餐选择区域 ===== */
.package-section {
    margin-bottom: 24px;
}

.section-title {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 16px;
}

.title-icon {
    font-size: 1.2rem;
}

.title-text {
    font-size: 1rem;
    font-weight: 700;
    color: var(--text);
}

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

.package-card {
    background: var(--bg-card);
    border-radius: 10px;
    padding: 16px 12px;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s ease;
    border: 2px solid #e0e0e0;
    box-shadow: 0 3px 10px rgba(0,0,0,0.08);
    position: relative;
}

.package-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 18px rgba(0,0,0,0.12);
}

.package-card.selected {
    border-color: var(--primary);
    background: linear-gradient(135deg, rgba(9,132,227,0.05), rgba(0,184,148,0.05));
}

.package-card.popular {
    border-color: #fdbb2d;
}

.package-card.popular::before {
    content: '推荐';
    position: absolute;
    top: -6px;
    left: 50%;
    transform: translateX(-50%);
    background: linear-gradient(135deg, #fdbb2d, #f39c12);
    color: #fff;
    font-size: 0.65rem;
    font-weight: 700;
    padding: 3px 10px;
    border-radius: 6px;
}

.package-icon {
    font-size: 1.6rem;
    margin-bottom: 6px;
}

.package-name {
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--text);
    margin-bottom: 4px;
}

.package-points {
    font-size: 1.1rem;
    font-weight: 800;
    color: var(--primary);
}

.package-unit {
    font-size: 0.7rem;
    color: var(--text-light);
    margin-top: 3px;
}

.package-tag {
    position: absolute;
    top: -8px;
    right: -8px;
    background: linear-gradient(135deg, #fdbb2d, #f39c12);
    color: #fff;
    font-size: 0.65rem;
    font-weight: 700;
    padding: 5px 12px;
    border-radius: 8px;
    box-shadow: 0 2px 6px rgba(253,187,45,0.4);
}

/* ===== 套餐数量选择 ===== */
.duration-quantity-section {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 14px;
    margin-top: 16px;
    padding: 14px;
    background: var(--bg-card);
    border-radius: 10px;
}

.duration-quantity-label {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--text);
}

.duration-quantity-control {
    display: flex;
    align-items: center;
    gap: 0;
}

.qty-btn {
    width: 32px;
    height: 32px;
    border: 2px solid var(--primary);
    background: #fff;
    color: var(--primary);
    font-size: 1rem;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.2s ease;
    display: flex;
    align-items: center;
    justify-content: center;
}

.qty-btn:hover {
    background: var(--primary);
    color: #fff;
}

.qty-btn.qty-minus {
    border-radius: 6px 0 0 6px;
}

.qty-btn.qty-plus {
    border-radius: 0 6px 6px 0;
}

.qty-input {
    width: 50px;
    height: 32px;
    border: 2px solid var(--primary);
    border-left: none;
    border-right: none;
    text-align: center;
    font-size: 1rem;
    font-weight: 700;
    color: var(--text);
    background: #fff;
}

.qty-input:focus {
    outline: none;
}

.package-desc {
    font-size: 0.75rem;
    color: var(--text-light);
    margin-top: 6px;
}

.breed-selection h3, .claim-form h3 {
    font-size: 1.2rem;
    font-weight: 700;
    margin-bottom: 20px;
    color: var(--text);
}

.claim-breeds-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 12px;
}

.claim-breed-card {
    background: var(--bg-card);
    border-radius: 12px;
    padding: 16px;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s ease;
    border: 2px solid transparent;
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}

.claim-breed-card:hover {
    border-color: var(--primary);
    transform: translateY(-2px);
}

.claim-breed-card.selected {
    border-color: var(--secondary);
    background: linear-gradient(135deg, rgba(9,132,227,0.08), rgba(0,184,148,0.08));
    box-shadow: 0 4px 16px rgba(0,184,148,0.15);
}

.claim-breed-card .icon {
    font-size: 2.2rem;
    margin-bottom: 8px;
    display: block;
}

.claim-breed-card .name {
    font-weight: 600;
    font-size: 0.9rem;
}

/* ===== 认领表单 ===== */
.claim-form {
    background: var(--bg-card);
    border-radius: 16px;
    padding: 28px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.08);
    height: fit-content;
}

.selected-breed-preview {
    background: linear-gradient(135deg, rgba(9,132,227,0.1), rgba(0,184,148,0.1));
    border-radius: 12px;
    padding: 12px 16px;
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    gap: 12px;
}

.preview-label {
    font-size: 0.85rem;
    color: var(--text-light);
}

.preview-card {
    display: flex;
    align-items: center;
    gap: 8px;
    background: rgba(255,255,255,0.8);
    padding: 8px 16px;
    border-radius: 8px;
}

.preview-icon {
    font-size: 1.3rem;
}

.preview-name {
    font-weight: 600;
    color: var(--text);
}

.form-group {
    margin-bottom: 20px;
}

.form-label {
    display: flex;
    align-items: center;
    gap: 4px;
    margin-bottom: 10px;
    font-weight: 600;
    color: var(--text);
    font-size: 0.95rem;
}

.form-label .required {
    color: var(--danger);
    font-weight: 700;
}

.form-label .optional {
    color: var(--text-light);
    font-size: 0.85rem;
}

.input-wrapper {
    display: flex;
    align-items: center;
    background: #f8f9fa;
    border: 2px solid #e0e0e0;
    border-radius: 10px;
    transition: all 0.3s ease;
}

.input-wrapper:focus-within {
    border-color: var(--primary);
    background: #fff;
    box-shadow: 0 2px 8px rgba(9,132,227,0.15);
}

.input-icon {
    padding: 14px 16px;
    color: var(--text-light);
    font-size: 1.1rem;
}

.form-input {
    width: 100%;
    padding: 14px 8px;
    background: transparent;
    border: none;
    font-size: 1rem;
    color: var(--text);
}

.form-input:focus {
    outline: none;
}

.form-input::placeholder {
    color: #aaa;
}

/* ===== 费用预估卡片 ===== */
.cost-summary-card {
    background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
    border-radius: 12px;
    padding: 20px;
    margin-bottom: 24px;
    border: 1px solid #dee2e6;
}

.cost-header {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 16px;
    padding-bottom: 12px;
    border-bottom: 1px solid #dee2e6;
}

.cost-icon {
    font-size: 1.2rem;
}

.cost-title {
    font-weight: 700;
    color: var(--text);
}

.cost-details {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.cost-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.cost-row.cost-select-row {
    padding: 6px 0;
}

.cost-select {
    padding: 8px 12px;
    border: 2px solid #e0e0e0;
    border-radius: 8px;
    font-size: 0.9rem;
    color: var(--text);
    background: #fff;
    cursor: pointer;
    transition: all 0.2s ease;
    min-width: 180px;
}

.cost-select:hover {
    border-color: var(--primary);
}

.cost-select:focus {
    outline: none;
    border-color: var(--primary);
    box-shadow: 0 0 0 3px rgba(9,132,227,0.1);
}

.cost-item-label {
    color: var(--text-light);
    font-size: 0.9rem;
}

.cost-item-value {
    font-weight: 600;
    color: var(--text);
}

.cost-row.cost-total {
    padding-top: 12px;
    border-top: 1px solid #dee2e6;
}

.cost-points {
    font-size: 1.3rem;
    font-weight: 800;
    color: var(--primary);
}

.cost-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 16px;
    padding-top: 12px;
    border-top: 1px solid #dee2e6;
}

.cost-footer.insufficient {
    background: linear-gradient(135deg, #fff5f5 0%, #ffe0e0 100%);
    border-top-color: #ffcdd2;
}

.balance-check {
    font-size: 0.85rem;
    color: var(--text-light);
}

.balance-status {
    font-size: 0.85rem;
    font-weight: 600;
    color: #4CAF50;
}

.balance-status.sufficient {
    color: #4CAF50;
}

.balance-status.insufficient {
    color: var(--danger);
}

/* ===== 申请按钮 ===== */
.btn-claim-pro {
    width: 100%;
    padding: 18px 24px;
    background: linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%);
    color: #fff;
    border: none;
    border-radius: 12px;
    font-size: 1.1rem;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    box-shadow: 0 4px 16px rgba(9,132,227,0.3);
}

.btn-claim-pro:hover:not(:disabled) {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(9,132,227,0.4);
}

.btn-claim-pro:disabled {
    background: linear-gradient(135deg, #ccc 0%, #999 100%);
    cursor: not-allowed;
    box-shadow: none;
}

.btn-claim-pro .btn-icon {
    font-size: 1.3rem;
}

.form-group label {
    display: block;
    margin-bottom: 8px;
    font-weight: 600;
    color: var(--text);
}

.form-group label .required {
    color: var(--danger);
}

.form-group input {
    width: 100%;
    padding: 14px 16px;
    border: 2px solid #e0e0e0;
    border-radius: var(--radius-sm);
    font-size: 1rem;
    transition: all 0.3s ease;
}

.form-group input:focus {
    outline: none;
    border-color: var(--primary);
}

.selected-breed {
    margin-bottom: 20px;
}

.selected-breed-card {
    display: flex;
    align-items: center;
    gap: 12px;
    background: #f8f9fa;
    padding: 16px;
    border-radius: var(--radius-sm);
}

.selected-breed-card .breed-icon {
    font-size: 2rem;
}

.selected-breed-card .breed-name {
    font-weight: 600;
}

.btn-claim {
    width: 100%;
    padding: 16px;
    background: linear-gradient(135deg, var(--primary), var(--secondary));
    color: #fff;
    border: none;
    border-radius: var(--radius-sm);
    font-size: 1.1rem;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.3s ease;
}

.btn-claim:hover:not(:disabled) {
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(9, 132, 227, 0.3);
}

.btn-claim:disabled {
    background: #bdc3c7;
    cursor: not-allowed;
}

/* ===== 定制页面 ===== */
.customize-container {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 32px;
}

.current-skills, .available-skills, .params-section {
    background: var(--bg-card);
    border-radius: var(--radius);
    padding: 28px;
    box-shadow: var(--shadow);
}

.current-skills h3, .available-skills h3, .params-section h3 {
    font-size: 1.2rem;
    font-weight: 700;
    margin-bottom: 20px;
}

.skills-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.skill-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px;
    background: #f8f9fa;
    border-radius: var(--radius-sm);
}

.skill-name {
    font-weight: 500;
}

.skill-level {
    color: var(--primary);
    font-weight: 600;
}

.skills-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
}

.skill-card {
    background: #f8f9fa;
    border-radius: var(--radius-sm);
    padding: 20px;
    text-align: center;
}

.skill-card .skill-icon {
    font-size: 2rem;
    margin-bottom: 8px;
}

.skill-card h4 {
    font-size: 1rem;
    margin-bottom: 4px;
}

.skill-card p {
    font-size: 0.85rem;
    color: var(--text-light);
    margin-bottom: 12px;
}

.btn-add-skill {
    padding: 8px 16px;
    background: var(--primary);
    color: #fff;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    font-size: 0.85rem;
}

.params-section {
    grid-column: 1 / -1;
}

.sliders {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.slider-item {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.slider-item label {
    font-weight: 500;
}

.slider-item input[type="range"] {
    width: 100%;
    height: 8px;
    border-radius: 4px;
    background: #e0e0e0;
    outline: none;
    -webkit-appearance: none;
}

.slider-item input[type="range"]::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--primary), var(--secondary));
    cursor: pointer;
    box-shadow: 0 2px 10px rgba(9, 132, 227, 0.3);
}

/* ===== 模态框 ===== */
.modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.6);
    display: none;
    justify-content: center;
    align-items: center;
    z-index: 1000;
}

.modal-overlay.active {
    display: flex;
}

.modal {
    background: var(--bg-card);
    border-radius: var(--radius);
    padding: 32px;
    width: 90%;
    max-width: 420px;
    position: relative;
    animation: modalIn 0.3s ease;
}

@keyframes modalIn {
    from { opacity: 0; transform: scale(0.9); }
    to { opacity: 1; transform: scale(1); }
}

.modal-close {
    position: absolute;
    top: 16px;
    right: 16px;
    background: none;
    border: none;
    font-size: 1.5rem;
    cursor: pointer;
    color: var(--text-light);
}

.modal-header {
    text-align: center;
    margin-bottom: 24px;
}

.modal-logo {
    font-size: 3rem;
    display: block;
    margin-bottom: 8px;
}

.modal-header h2 {
    font-size: 1.5rem;
    font-weight: 700;
}

.auth-form {
    display: none;
}

.auth-form.active {
    display: block;
}

.form-error {
    background: #fee;
    color: var(--danger);
    padding: 12px;
    border-radius: var(--radius-sm);
    margin-bottom: 16px;
    font-size: 0.9rem;
}

.form-success {
    background: #efe;
    color: var(--secondary);
    padding: 12px;
    border-radius: var(--radius-sm);
    margin-bottom: 16px;
    font-size: 0.9rem;
}

.btn-submit {
    width: 100%;
    padding: 14px;
    background: linear-gradient(135deg, var(--primary), var(--secondary));
    color: #fff;
    border: none;
    border-radius: var(--radius-sm);
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
}

.btn-submit:hover {
    opacity: 0.9;
}

.form-switch {
    text-align: center;
    margin-top: 16px;
    color: var(--text-light);
    font-size: 0.9rem;
}

.form-switch a {
    color: var(--primary);
    text-decoration: none;
    font-weight: 600;
}

.modal-small {
    max-width: 380px;
    text-align: center;
}

.modal-small h2 {
    margin-bottom: 16px;
}

.modal-small p {
    color: var(--text-light);
    margin-bottom: 24px;
}

.modal-buttons {
    display: flex;
    gap: 12px;
    justify-content: center;
}

.btn-cancel {
    padding: 12px 24px;
    background: #eee;
    border: none;
    border-radius: var(--radius-sm);
    cursor: pointer;
    font-weight: 600;
}

.btn-confirm-delete {
    padding: 12px 24px;
    background: var(--danger);
    color: #fff;
    border: none;
    border-radius: var(--radius-sm);
    cursor: pointer;
    font-weight: 600;
}

/* ===== 成功模态框 ===== */
.success-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.6);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 1000;
}

.success-content {
    background: var(--bg-card);
    border-radius: var(--radius);
    padding: 48px;
    text-align: center;
    animation: modalIn 0.3s ease;
}

.success-icon {
    font-size: 4rem;
    margin-bottom: 16px;
}

.success-content h3 {
    font-size: 1.5rem;
    margin-bottom: 8px;
}

.success-content p {
    color: var(--text-light);
}

.redirect-hint {
    margin-top: 16px;
    color: var(--primary);
    font-weight: 600;
}

.cost-info {
    margin-top: 12px;
    color: #fdbb2d;
    font-weight: 600;
}

/* ===== 动态加载的品种卡片样式 ===== */
.card.breed-card {
    background: var(--bg-card);
    border-radius: var(--radius);
    padding: 28px;
    box-shadow: var(--shadow);
    transition: all 0.3s ease;
    border: 2px solid transparent;
}

.card.breed-card:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow-hover);
    border-color: var(--primary);
}

.card.breed-card h3 {
    font-size: 1.3rem;
    font-weight: 700;
    margin-bottom: 8px;
    color: var(--text);
}

.card.breed-card p {
    color: var(--text-light);
    margin-bottom: 16px;
}

/* 品种选择卡片 */
.breed-select-card {
    background: var(--bg-card);
    border-radius: var(--radius-sm);
    padding: 20px;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s ease;
    border: 2px solid transparent;
    box-shadow: var(--shadow);
}

.breed-select-card:hover {
    border-color: var(--primary);
}

.breed-select-card.selected {
    border-color: var(--secondary);
    background: linear-gradient(135deg, rgba(9,132,227,0.1), rgba(0,184,148,0.1));
}

.breed-select-card .breed-icon {
    font-size: 2.5rem;
    margin-bottom: 8px;
    display: block;
}

.breed-select-card h4 {
    font-weight: 600;
    font-size: 0.95rem;
    margin-bottom: 4px;
}

.breed-select-card p {
    font-size: 0.85rem;
    color: var(--text-light);
}

/* 饲料卡片样式 */
.feed-option-card {
    background: var(--bg-card);
    border-radius: var(--radius);
    padding: 28px;
    text-align: center;
    box-shadow: var(--shadow);
    transition: all 0.3s ease;
}

.feed-option-card:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow-hover);
}

.feed-option-card .feed-icon {
    font-size: 3rem;
    margin-bottom: 16px;
}

.feed-option-card h3 {
    font-size: 1.3rem;
    font-weight: 700;
    margin-bottom: 8px;
}

.feed-option-card p {
    color: var(--text-light);
    margin-bottom: 16px;
}

/* 加载状态 */
.loading, .no-data, .error {
    text-align: center;
    padding: 40px;
    color: var(--text-light);
}

.error {
    color: var(--danger);
}

/* 品种容器网格 */
#breed-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 20px;
}

#breed-select-cards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 16px;
}

#feed-options {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 24px;
}

/* ===== 品种选择卡片样式 ===== */
.claim-breeds-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 14px;
}

.breed-select-card {
    background: var(--bg-card);
    border-radius: var(--radius-sm);
    padding: 16px;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s ease;
    border: 2px solid #e0e0e0;
    box-shadow: var(--shadow);
}

.breed-select-card:hover {
    border-color: var(--primary);
    transform: translateY(-2px);
}

.breed-select-card.selected {
    border-color: var(--secondary);
    background: linear-gradient(135deg, rgba(9,132,227,0.08), rgba(0,184,148,0.08));
    box-shadow: 0 0 0 3px rgba(0,184,148,0.2);
}

.breed-select-card .breed-icon {
    font-size: 2.2rem;
    margin-bottom: 8px;
    display: block;
}

.breed-select-card h4 {
    font-size: 0.95rem;
    font-weight: 600;
    margin-bottom: 4px;
    color: var(--text);
}

.breed-select-card p {
    font-size: 0.8rem;
    color: var(--text-light);
    line-height: 1.4;
}

/* 实例选择卡片 */
.instance-card {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    background: #f8f9fa;
    border-radius: var(--radius-sm);
    cursor: pointer;
    transition: all 0.3s ease;
    border: 2px solid transparent;
}

.instance-card:hover {
    background: #e8f4f8;
}

.instance-card.active {
    border-color: var(--primary);
    background: rgba(9,132,227,0.1);
}

.instance-icon {
    font-size: 1.5rem;
}

.instance-name {
    font-weight: 500;
}

/* 隐藏空的错误/成功框 */
.form-error:empty, .form-success:empty {
    display: none;
}

.form-error {
    background: #fee2e2;
    color: #dc2626;
    padding: 10px 14px;
    border-radius: 8px;
    margin-bottom: 12px;
    font-size: 0.9rem;
    border: 1px solid #fecaca;
}

.form-success {
    background: #d1fae5;
    color: #059669;
    padding: 10px 14px;
    border-radius: 8px;
    margin-bottom: 12px;
    font-size: 0.9rem;
    border: 1px solid #a7f3d0;
}

/* ===== Shell 终端样式 ===== */
.shell-section {
    background: var(--bg-card);
    border-radius: var(--radius);
    margin-bottom: 24px;
    box-shadow: var(--shadow);
    overflow: hidden;
}

.shell-section.fullscreen {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1000;
    margin: 0;
    border-radius: 0;
}

.shell-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 16px;
    background: #1a1a2e;
    color: #fff;
}

.shell-header h4 {
    margin: 0;
    font-size: 1rem;
}

.shell-controls {
    display: flex;
    gap: 8px;
}

.btn-fullscreen, .btn-close-shell {
    padding: 6px 12px;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-size: 0.85rem;
}

.btn-fullscreen {
    background: #4a5568;
    color: #fff;
}

.btn-fullscreen:hover {
    background: #2d3748;
}

.btn-close-shell {
    background: #e53e3e;
    color: #fff;
}

.btn-close-shell:hover {
    background: #c53030;
}

.shell-container {
    background: #0d1117;
    padding: 0;
    min-height: 300px;
    max-height: 400px;
    overflow: hidden;
}

.shell-section.fullscreen .shell-container {
    height: calc(100vh - 50px);
    max-height: none;
    padding: 0;
}

.btn-shell {
    background: #805ad5 !important;
    color: #fff !important;
}

.btn-shell:hover {
    opacity: 0.9;
}

/* 微信接入页面样式 */
.wechat-container {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    padding: 0;
    margin-top: 0;
}

.wechat-steps {
    background: linear-gradient(135deg, #07c160 0%, #06ad56 100%);
    border-radius: 16px;
    padding: 24px;
    color: white;
}

.wechat-steps h3 {
    margin-bottom: 20px;
    font-size: 1.2rem;
}

.step-card {
    display: flex;
    align-items: center;
    gap: 16px;
    background: rgba(255,255,255,0.15);
    border-radius: 12px;
    padding: 16px;
    margin-bottom: 12px;
}

.step-number {
    width: 36px;
    height: 36px;
    background: white;
    color: #07c160;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: bold;
    font-size: 1.1rem;
}

.step-content h4 {
    margin: 0 0 4px 0;
    font-size: 1rem;
}

.step-content p {
    margin: 0;
    opacity: 0.9;
    font-size: 0.85rem;
}

.wechat-panel {
    background: var(--bg-card);
    border-radius: 16px;
    padding: 24px;
    box-shadow: var(--shadow);
}

.wechat-panel h3 {
    margin-bottom: 16px;
    font-size: 1.1rem;
}

.instance-select {
    display: grid;
    gap: 12px;
    margin-bottom: 16px;
}

.instance-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px;
    background: var(--bg);
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.3s;
    border: 2px solid transparent;
}

.instance-item:hover {
    border-color: #07c160;
    transform: translateY(-2px);
}

.instance-item.selected {
    border-color: #07c160;
    background: rgba(7, 193, 96, 0.1);
}

.instance-icon {
    font-size: 2rem;
}

.instance-info h4 {
    margin: 0 0 4px 0;
    font-size: 1rem;
}

.instance-info p {
    margin: 0;
    font-size: 0.85rem;
    opacity: 0.7;
}

.qr-output {
    background: #ffffff;
    border: 2px solid #07c160;
    border-radius: 12px;
    padding: 16px;
    font-family: "Courier New", Consolas, monospace;
    font-size: 6px;
    line-height: 1.0;
    letter-spacing: 0;
    color: #000;
    overflow-x: auto;
    white-space: pre;
    text-align: center;
    max-width: 100%;
    word-break: break-all;
}

.qr-tip {
    color: #07c160;
    font-weight: 500;
    margin-bottom: 12px;
}

.qr-note {
    font-size: 0.85rem;
    opacity: 0.7;
    margin-top: 12px;
}

.btn-primary {
    background: linear-gradient(135deg, #07c160 0%, #06ad56 100%);
    color: white;
    border: none;
    padding: 12px 24px;
    border-radius: 8px;
    font-size: 1rem;
    cursor: pointer;
    transition: all 0.3s;
}

.btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(7, 193, 96, 0.4);
}

.btn-primary:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

@media (max-width: 768px) {
    .wechat-container {
        grid-template-columns: 1fr;
    }
}

/* ===== 微信接入页面优化样式 ===== */
.wechat-content {
    max-width: 600px;
    margin: 0 auto;
    padding: 20px;
}

.wechat-intro {
    text-align: center;
    padding: 40px 20px;
    background: linear-gradient(135deg, #07c160 0%, #06ad56 100%);
    border-radius: 16px;
    color: white;
    margin-bottom: 24px;
}

.intro-icon {
    font-size: 4rem;
    margin-bottom: 16px;
}

.wechat-intro h3 {
    font-size: 1.5rem;
    margin-bottom: 8px;
}

.wechat-intro p {
    opacity: 0.9;
    font-size: 0.95rem;
}

.wechat-select-card {
    background: var(--bg-card);
    border-radius: 16px;
    padding: 24px;
    box-shadow: var(--shadow);
    margin-bottom: 24px;
}

.wechat-select-card h4 {
    margin-bottom: 16px;
    font-size: 1.1rem;
}

.instance-select-list {
    display: grid;
    gap: 12px;
}

.instance-select-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px;
    background: var(--bg);
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.3s;
    border: 2px solid transparent;
}

.instance-select-item:hover {
    border-color: #07c160;
    transform: translateY(-2px);
}

.instance-select-item.selected {
    border-color: #07c160;
    background: rgba(7, 193, 96, 0.1);
}

.instance-select-item .icon {
    font-size: 2rem;
}

.instance-select-item .info h5 {
    margin: 0 0 4px 0;
    font-size: 1rem;
}

.instance-select-item .info p {
    margin: 0;
    font-size: 0.85rem;
    opacity: 0.7;
}

#wechat-selected-info {
    text-align: center;
    padding: 20px;
    background: var(--bg-card);
    border-radius: 16px;
    box-shadow: var(--shadow);
}

#wechat-selected-info p {
    margin-bottom: 16px;
    font-size: 1.1rem;
}

.btn-wechat-primary {
    background: linear-gradient(135deg, #07c160 0%, #06ad56 100%);
    color: white;
    border: none;
    padding: 14px 32px;
    border-radius: 12px;
    font-size: 1.1rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s;
}

.btn-wechat-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(7, 193, 96, 0.4);
}

.btn-wechat-primary:disabled {
    opacity: 0.6;
    cursor: not-allowed;
    transform: none;
}

/* 二维码弹窗样式 */
.qr-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.6);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 1000;
    animation: fadeIn 0.3s ease;
}

.qr-modal-content {
    background: var(--bg-card);
    border-radius: 20px;
    padding: 40px;
    max-width: 420px;
    width: 90%;
    text-align: center;
    position: relative;
    animation: modalIn 0.3s ease;
}

.qr-modal-content .modal-close {
    position: absolute;
    top: 16px;
    right: 16px;
    background: none;
    border: none;
    font-size: 24px;
    cursor: pointer;
    opacity: 0.5;
    transition: opacity 0.3s;
}

.qr-modal-content .modal-close:hover {
    opacity: 1;
}

/* Loading样式 */
.qr-loading {
    padding: 20px;
}

.loading-spinner {
    width: 60px;
    height: 60px;
    border: 4px solid #e0e0e0;
    border-top-color: #07c160;
    border-radius: 50%;
    margin: 0 auto 20px;
    animation: spin 1s linear infinite;
}

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

.qr-loading h3 {
    font-size: 1.3rem;
    margin-bottom: 8px;
    color: #07c160;
}

.qr-loading p {
    color: var(--text-light);
}

/* 二维码显示样式 */
.qr-success-icon {
    width: 50px;
    height: 50px;
    background: #07c160;
    color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    margin: 0 auto 16px;
}

#qr-result h3 {
    font-size: 1.3rem;
    margin-bottom: 8px;
}

.qr-tip {
    color: #07c160;
    font-weight: 500;
    margin-bottom: 16px;
}

.qr-display {
    background: #fff;
    border: 2px solid #07c160;
    border-radius: 12px;
    padding: 16px;
    font-family: "Courier New", Consolas, monospace;
    font-size: 5px;
    line-height: 1.0;
    letter-spacing: 0;
    color: #000;
    white-space: pre;
    overflow-x: auto;
    margin-bottom: 16px;
}

.qr-link-area {
    margin-bottom: 16px;
}

.qr-link-area a {
    color: #07c160;
    word-break: break-all;
    font-size: 0.85rem;
}

.qr-note {
    font-size: 0.85rem;
    color: var(--text-light);
}

.loading-text {
    text-align: center;
    padding: 20px;
    color: var(--text-light);
}

/* ===== 用户中心页面 ===== */
.user-center-content {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
}

.uc-profile-card {
    background: var(--bg-card);
    border-radius: 16px;
    padding: 24px;
    box-shadow: 0 4px 16px rgba(0,0,0,0.08);
}

.uc-profile-header {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 24px;
    padding-bottom: 20px;
    border-bottom: 1px solid #e0e0e0;
}

.uc-avatar {
    width: 64px;
    height: 64px;
    background: linear-gradient(135deg, var(--primary), var(--secondary));
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    color: #fff;
}

.uc-profile-info h3 {
    font-size: 1.3rem;
    font-weight: 700;
    margin-bottom: 4px;
}

.uc-email {
    color: var(--text-light);
    font-size: 0.9rem;
}

.uc-profile-details {
    display: grid;
    gap: 12px;
}

.uc-detail-item {
    display: flex;
    justify-content: space-between;
    padding: 8px 12px;
    background: #f8f9fa;
    border-radius: 8px;
}

.uc-detail-label {
    color: var(--text-light);
    font-size: 0.9rem;
}

.uc-detail-value {
    font-weight: 600;
    color: var(--text);
}

.uc-points-card {
    background: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%);
    border-radius: 16px;
    padding: 24px;
    color: #fff;
    box-shadow: 0 8px 32px rgba(0,0,0,0.15);
}

.uc-points-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 20px;
}

.uc-points-icon {
    font-size: 1.5rem;
}

.uc-points-header h3 {
    font-size: 1.1rem;
    font-weight: 600;
}

.uc-points-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}

.uc-stat-item {
    text-align: center;
}

.uc-stat-value {
    font-size: 1.8rem;
    font-weight: 800;
    margin-bottom: 4px;
}

.uc-stat-value.uc-stat-spent {
    color: #ff6b6b;
}

.uc-stat-value.uc-stat-received {
    color: #4ecdc4;
}

.uc-stat-label {
    font-size: 0.85rem;
    color: rgba(255,255,255,0.7);
}

.uc-records-card {
    grid-column: span 2;
    background: var(--bg-card);
    border-radius: 16px;
    padding: 24px;
    box-shadow: 0 4px 16px rgba(0,0,0,0.08);
}

.uc-records-header h3 {
    font-size: 1.1rem;
    font-weight: 600;
    margin-bottom: 16px;
}

.uc-records-list {
    max-height: 400px;
    overflow-y: auto;
}

.uc-record-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px;
    background: #f8f9fa;
    border-radius: 8px;
    margin-bottom: 8px;
}

.uc-record-item:last-child {
    margin-bottom: 0;
}

.uc-record-item.income {
    border-left: 4px solid #4ecdc4;
}

.uc-record-item.expense {
    border-left: 4px solid #ff6b6b;
}

.uc-record-left {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.uc-record-type {
    font-weight: 600;
    color: var(--text);
    font-size: 0.95rem;
}

.uc-record-desc {
    color: var(--text-light);
    font-size: 0.85rem;
}

.uc-record-time {
    color: var(--text-light);
    font-size: 0.8rem;
}

.uc-record-right {
    text-align: right;
}

.uc-record-delta {
    font-size: 1.2rem;
    font-weight: 700;
}

.uc-record-delta.income {
    color: #4ecdc4;
}

.uc-record-delta.expense {
    color: #ff6b6b;
}

.uc-record-balance {
    color: var(--text-light);
    font-size: 0.85rem;
}

.uc-records-loading, .uc-records-empty, .uc-records-error {
    text-align: center;
    padding: 40px;
    color: var(--text-light);
}

/* ==================== API 接入信息卡片 ==================== */
.uc-api-card {
    grid-column: span 2;
    background: var(--bg-card);
    border-radius: 16px;
    padding: 24px;
    box-shadow: 0 4px 16px rgba(0,0,0,0.08);
}

.uc-api-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 20px;
}

.uc-api-icon {
    font-size: 1.5rem;
}

.uc-api-header h3 {
    font-size: 1.1rem;
    font-weight: 600;
    flex-grow: 1;
}

.uc-copy-btn {
    padding: 8px 16px;
    background: var(--primary);
    color: white;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    font-size: 0.85rem;
    transition: background 0.2s;
}

.uc-copy-btn:hover {
    background: var(--primary-dark);
}

.uc-api-content {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.uc-api-item {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.uc-api-item label {
    font-size: 0.9rem;
    color: var(--text-light);
}

.uc-api-value-row {
    display: flex;
    align-items: center;
    gap: 12px;
}

.uc-api-value-row code {
    background: #f1f5f9;
    padding: 10px 16px;
    border-radius: 8px;
    font-family: 'Consolas', monospace;
    font-size: 0.9rem;
    flex-grow: 1;
    word-break: break-all;
}

.uc-copy-small {
    padding: 6px 12px;
    background: #e2e8f0;
    color: #475569;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    font-size: 0.8rem;
    transition: background 0.2s;
}

.uc-copy-small:hover {
    background: #cbd5e1;
}

.uc-api-models {
    margin-top: 8px;
}

.uc-api-models label {
    font-size: 0.9rem;
    color: var(--text-light);
    margin-bottom: 8px;
    display: block;
}

.uc-model-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.uc-model-tag {
    background: linear-gradient(135deg, #667eea, #764ba2);
    color: white;
    padding: 6px 12px;
    border-radius: 20px;
    font-size: 0.85rem;
}

.uc-model-empty, .uc-model-loading {
    color: var(--text-light);
    font-size: 0.85rem;
}

/* ==================== Token 统计卡片 ==================== */
.uc-token-card {
    grid-column: span 2;
    background: var(--bg-card);
    border-radius: 16px;
    padding: 24px;
    box-shadow: 0 4px 16px rgba(0,0,0,0.08);
}

.uc-token-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 20px;
}

.uc-token-icon {
    font-size: 1.5rem;
}

.uc-token-header h3 {
    font-size: 1.1rem;
    font-weight: 600;
}

.uc-token-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin-bottom: 20px;
}

.uc-token-stats .uc-stat-item {
    text-align: center;
}

.uc-token-stats .uc-stat-value {
    font-size: 2rem;
    font-weight: 700;
    color: var(--text);
}

.uc-token-stats .uc-stat-value.uc-stat-used {
    color: #ef4444;
}

.uc-token-stats .uc-stat-value.uc-stat-remaining {
    color: #10b981;
}

.uc-token-stats .uc-stat-label {
    font-size: 0.85rem;
    color: var(--text-light);
    margin-top: 4px;
}

.uc-token-progress {
    display: flex;
    align-items: center;
    gap: 16px;
}

.uc-progress-bar {
    flex-grow: 1;
    height: 12px;
    background: #e5e7eb;
    border-radius: 6px;
    overflow: hidden;
}

.uc-progress-fill {
    height: 100%;
    background: linear-gradient(135deg, #ef4444, #f97316);
    border-radius: 6px;
    transition: width 0.3s;
}

.uc-progress-text {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--text);
}

/* ==================== 积分兑换 Token 卡片 ==================== */
.uc-exchange-card {
    grid-column: span 2;
    background: var(--bg-card);
    border-radius: 16px;
    padding: 24px;
    box-shadow: 0 4px 16px rgba(0,0,0,0.08);
}

.uc-exchange-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 20px;
}

.uc-exchange-icon {
    font-size: 1.5rem;
}

.uc-exchange-header h3 {
    font-size: 1.1rem;
    font-weight: 600;
    flex-grow: 1;
}

.uc-current-points-label {
    font-size: 0.9rem;
    color: var(--text-light);
}

.uc-current-points-label strong {
    color: var(--primary);
    font-weight: 700;
}

.uc-packages-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 16px;
}

.uc-package-item {
    background: #f8f9fa;
    border-radius: 12px;
    padding: 20px;
    text-align: center;
    transition: transform 0.2s, box-shadow 0.2s;
}

.uc-package-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}

.uc-package-name {
    font-size: 1rem;
    font-weight: 600;
    color: var(--text);
    margin-bottom: 8px;
}

.uc-package-tokens {
    font-size: 1.2rem;
    font-weight: 700;
    color: #10b981;
    margin-bottom: 4px;
}

.uc-package-points {
    font-size: 0.9rem;
    color: var(--text-light);
    margin-bottom: 12px;
}

.uc-package-btn {
    padding: 10px 24px;
    background: var(--primary);
    color: white;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    font-size: 0.9rem;
    transition: background 0.2s;
}

.uc-package-btn:hover {
    background: var(--primary-dark);
}

.uc-package-btn.disabled {
    background: #e5e7eb;
    color: #9ca3af;
    cursor: not-allowed;
}

.uc-packages-empty, .uc-packages-loading {
    text-align: center;
    padding: 40px;
    color: var(--text-light);
}

/* ==================== Token 使用明细 ==================== */
.uc-token-records-card .uc-records-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.uc-records-toggle {
    color: var(--primary);
    cursor: pointer;
    font-size: 0.85rem;
}

.uc-security-card {
    grid-column: span 2;
    background: var(--bg-card);
    border-radius: 16px;
    padding: 24px;
    box-shadow: 0 4px 16px rgba(0,0,0,0.08);
}

.uc-security-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 24px;
}

.uc-security-icon {
    font-size: 1.5rem;
}

.uc-security-header h3 {
    font-size: 1.1rem;
    font-weight: 600;
}

.uc-security-content {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
}

.uc-form-section {
    padding: 20px;
    background: #f8f9fa;
    border-radius: 12px;
}

.uc-form-section h4 {
    font-size: 1rem;
    font-weight: 600;
    margin-bottom: 16px;
    color: var(--text);
}

.uc-form-group {
    margin-bottom: 12px;
}

.uc-form-group label {
    display: block;
    font-size: 0.85rem;
    color: var(--text-light);
    margin-bottom: 6px;
}

.uc-form-group input {
    width: 100%;
    padding: 10px 14px;
    border: 2px solid #e0e0e0;
    border-radius: 8px;
    font-size: 0.95rem;
    transition: all 0.2s ease;
}

.uc-form-group input:focus {
    outline: none;
    border-color: var(--primary);
}

.uc-btn-save {
    width: 100%;
    padding: 12px;
    background: var(--primary);
    color: #fff;
    border: none;
    border-radius: 8px;
    font-size: 0.95rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s ease;
    margin-top: 8px;
}

.uc-btn-save:hover {
    background: var(--primary-dark);
}

/* ===== 登录提示卡片 ===== */
.login-required-card {
    background: var(--bg-card);
    border-radius: 16px;
    padding: 60px 40px;
    text-align: center;
    box-shadow: 0 4px 16px rgba(0,0,0,0.08);
    max-width: 400px;
    margin: 40px auto;
}

.login-required-icon {
    font-size: 4rem;
    margin-bottom: 20px;
}

.login-required-card h3 {
    font-size: 1.5rem;
    font-weight: 700;
    margin-bottom: 12px;
    color: var(--text);
}

.login-required-card p {
    color: var(--text-light);
    font-size: 1rem;
    margin-bottom: 24px;
}

.btn-login-required {
    padding: 14px 40px;
    background: linear-gradient(135deg, var(--primary), var(--secondary));
    color: #fff;
    border: none;
    border-radius: 10px;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 4px 12px rgba(9,132,227,0.3);
}

.btn-login-required:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(9,132,227,0.4);
}

/* ===== 操作确认模态框样式 ===== */
.modal-center {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.modal-icon {
    font-size: 3rem;
    margin-bottom: 16px;
    animation: pulse 1.5s ease-in-out infinite;
}

@keyframes pulse {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.1); }
}

.modal-warning {
    background: linear-gradient(135deg, #fff3cd 0%, #ffeaa7 100%);
    border: 1px solid #ffc107;
    color: #856404;
    padding: 12px 16px;
    border-radius: 8px;
    margin: 16px 0;
    font-size: 0.9rem;
    text-align: center;
}

.btn-confirm-action {
    padding: 12px 24px;
    background: var(--primary);
    color: #fff;
    border: none;
    border-radius: var(--radius-sm);
    cursor: pointer;
    font-weight: 600;
    transition: all 0.2s ease;
}

.btn-confirm-action:hover {
    background: var(--primary-dark);
}

.btn-confirm-action.btn-start {
    background: var(--secondary);
}

.btn-confirm-action.btn-stop {
    background: var(--danger);
}

.btn-confirm-action.btn-restart {
    background: var(--warning);
    color: #333;
}

/* ===== 操作动画样式 ===== */
.action-spinner {
    display: inline-block;
    animation: spinAction 1s linear infinite;
}

@keyframes spinAction {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

.modal-icon.action-success {
    color: #4CAF50;
    animation: successPop 0.5s ease;
}

.modal-icon.action-error {
    color: var(--danger);
    animation: shake 0.5s ease;
}

@keyframes successPop {
    0% { transform: scale(0); opacity: 0; }
    50% { transform: scale(1.2); }
    100% { transform: scale(1); opacity: 1; }
}

@keyframes shake {
    0%, 100% { transform: translateX(0); }
    20%, 60% { transform: translateX(-5px); }
    40%, 80% { transform: translateX(5px); }
}

.action-loading {
    color: var(--text-light);
    animation: pulseText 1.5s ease-in-out infinite;
}

@keyframes pulseText {
    0%, 100% { opacity: 0.6; }
    50% { opacity: 1; }
}

.action-success-text {
    color: #4CAF50;
    font-weight: 600;
}

.action-error-text {
    color: var(--danger);
}

/* ===== 实例选择器样式 ===== */
.instance-selector {
    margin-bottom: 24px;
}

.instance-selector-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
}

.instance-selector-header h3 {
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--text);
}

.btn-refresh-small {
    padding: 8px 16px;
    background: var(--primary);
    color: #fff;
    border: none;
    border-radius: 8px;
    font-size: 0.85rem;
    cursor: pointer;
    transition: all 0.2s ease;
}

.btn-refresh-small:hover {
    background: var(--primary-dark);
}

.instance-cards-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minwidth(280px, 1fr));
    gap: 16px;
}

.instance-card-item {
    background: var(--bg-card);
    border-radius: 16px;
    padding: 20px;
    display: flex;
    align-items: center;
    gap: 16px;
    cursor: pointer;
    transition: all 0.3s ease;
    border: 2px solid transparent;
    box-shadow: 0 4px 16px rgba(0,0,0,0.08);
}

.instance-card-item:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.12);
    border-color: var(--primary);
}

.instance-card-item.selected {
    border-color: var(--secondary);
    background: linear-gradient(135deg, rgba(9,132,227,0.08), rgba(0,184,148,0.08));
}

.instance-card-icon {
    font-size: 2.5rem;
    width: 60px;
    height: 60px;
    background: linear-gradient(135deg, #f8f9fa, #e9ecef);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.instance-card-content {
    flex: 1;
}

.instance-card-name {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--text);
    margin-bottom: 4px;
}

.instance-card-breed {
    font-size: 0.85rem;
    color: var(--text-light);
    margin-bottom: 8px;
}

.instance-card-info {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

.instance-card-status {
    padding: 4px 10px;
    border-radius: 12px;
    font-size: 0.8rem;
    font-weight: 600;
    background: #eee;
    color: var(--text-light);
}

.instance-card-status.running {
    background: rgba(0,184,148,0.2);
    color: var(--secondary);
}

.instance-card-status.stopped {
    background: rgba(214,48,49,0.2);
    color: var(--danger);
}

.instance-card-status.starting {
    background: rgba(52,152,219,0.2);
    color: #3498db;
}

.instance-card-status.restarting {
    background: rgba(142,68,173,0.2);
    color: #8e44ad;
}

.instance-card-status.creating {
    background: rgba(243,156,18,0.2);
    color: #f39c12;
}

.instance-card-expires {
    font-size: 0.8rem;
    color: var(--text-light);
}

.instance-card-expires.expired {
    color: var(--danger);
    font-weight: 600;
}

.instance-card-expires.expiring {
    color: #f39c12;
    font-weight: 600;
}

.instance-card-arrow {
    font-size: 1.2rem;
    color: var(--text-light);
    transition: all 0.3s ease;
}

.instance-card-item:hover .instance-card-arrow {
    color: var(--primary);
    transform: translateX(4px);
}

.btn-back {
    padding: 10px 20px;
    background: rgba(0,0,0,0.05);
    border: 1px solid rgba(0,0,0,0.1);
    border-radius: 8px;
    font-size: 0.9rem;
    color: var(--text);
    cursor: pointer;
    transition: all 0.2s ease;
    margin-bottom: 16px;
}

.btn-back:hover {
    background: rgba(0,0,0,0.08);
}

.back-to-list {
    margin-bottom: 20px;
}

/* ===== 模型切换按钮样式 ===== */
.config-item-model {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.config-value-row {
    display: flex;
    align-items: center;
    gap: 8px;
}

.config-value-row .value {
    flex: 1;
    min-width: 0;
}

.btn-model-switch {
    padding: 6px 14px;
    background: linear-gradient(135deg, #22c55e, #16a34a);
    color: white;
    border: none;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s ease;
    white-space: nowrap;
}

.btn-model-switch:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(34, 197, 94, 0.3);
}

/* ===== 模型切换弹窗样式 ===== */
.model-switch-desc {
    color: #888;
    font-size: 14px;
    margin-bottom: 20px;
    text-align: center;
}

.model-list {
    max-height: 300px;
    overflow-y: auto;
}

.model-item {
    display: flex;
    align-items: center;
    padding: 12px 16px;
    margin-bottom: 8px;
    background: #f8f9fa;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.2s ease;
}

.model-item:hover {
    background: #e8f4f8;
    border-color: var(--primary);
}

.model-item.selected {
    background: linear-gradient(135deg, rgba(9,132,227,0.1), rgba(0,184,148,0.1));
    border-color: var(--primary);
}

.model-icon {
    font-size: 20px;
    margin-right: 12px;
}

.model-name {
    flex: 1;
    color: var(--text);
    font-weight: 500;
}

.model-check {
    color: var(--secondary);
    font-size: 18px;
    font-weight: bold;
}

.model-switch-footer {
    display: flex;
    gap: 10px;
    margin-top: 20px;
    justify-content: flex-end;
}

.btn-save-model {
    padding: 10px 20px;
    background: linear-gradient(135deg, #fdbb2d, #f59e0b);
    color: #1a1a2e;
    border: none;
    border-radius: 8px;
    font-size: 14px;
    cursor: pointer;
    transition: all 0.2s ease;
}

.btn-save-model:hover:not(:disabled) {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(253,187,45,0.4);
}

.btn-save-model:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

/* 响应式 */
@media (max-width: 768px) {
    .instance-cards-grid {
        grid-template-columns: 1fr;
    }

    /* Token 统计移动端 */
    .uc-token-stats {
        grid-template-columns: repeat(2, 1fr);
    }

    .uc-packages-grid {
        grid-template-columns: 1fr;
    }

    .uc-api-value-row {
        flex-direction: column;
        align-items: stretch;
    }

    .uc-api-value-row code {
        font-size: 0.8rem;
    }

    .uc-copy-small {
        width: 100%;
        text-align: center;
    }
}

/* ===== 汉堡菜单按钮 ===== */
.hamburger-menu {
    display: none;
    position: fixed;
    top: 16px;
    left: 16px;
    z-index: 200;
    width: 44px;
    height: 44px;
    background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
    border: none;
    border-radius: 12px;
    cursor: pointer;
    padding: 10px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.3);
    transition: all 0.3s ease;
}

.hamburger-menu:hover {
    transform: scale(1.05);
    box-shadow: 0 6px 16px rgba(0,0,0,0.4);
}

.hamburger-menu.active {
    background: linear-gradient(135deg, var(--primary), var(--secondary));
}

.hamburger-line {
    display: block;
    width: 24px;
    height: 2px;
    background: #fff;
    margin: 5px auto;
    border-radius: 2px;
    transition: all 0.3s ease;
}

.hamburger-menu.active .hamburger-line:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}

.hamburger-menu.active .hamburger-line:nth-child(2) {
    opacity: 0;
}

.hamburger-menu.active .hamburger-line:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}

/* ===== 改进的响应式设计 ===== */

/* 大屏幕 (1200px+) - 保持原有布局 */
@media (min-width: 1200px) {
    .sidebar {
        width: 242px;
    }

    .main-content {
        margin-left: 242px;
    }
}

/* 中等屏幕 (992px - 1200px) */
@media (max-width: 1200px) and (min-width: 992px) {
    .sidebar {
        width: 264px;
        padding: 22px;
    }

    .main-content {
        margin-left: 264px;
        padding: 33px;
    }

    .logo-text h1 {
        font-size: 1.43rem;
    }

    .brand-title {
        gap: 9px;
    }

    .title-char {
        font-size: 3.3rem;
    }

    .hero-section-new {
        padding: 66px 44px;
    }

    .features-grid-new {
        gap: 26px;
    }

    .plans-grid {
        gap: 26px;
    }

    .claim-container {
        grid-template-columns: 1fr 418px;
        gap: 26px;
    }

    .user-center-content {
        gap: 22px;
    }
}

/* 平板屏幕 (768px - 992px) */
@media (max-width: 992px) and (min-width: 768px) {
    .hamburger-menu {
        display: block;
    }

    .sidebar {
        width: 308px;
        transform: translateX(-100%);
        transition: transform 0.3s ease;
    }

    .sidebar.open {
        transform: translateX(0);
    }

    .main-content {
        margin-left: 0;
        padding: 26px;
    }

    .hero-section-new {
        padding: 55px 33px;
        min-height: 385px;
    }

    .title-char {
        font-size: 3.1rem;
    }

    .brand-subtitle {
        font-size: 1.32rem;
    }

    .hero-desc {
        font-size: 1.1rem;
        padding: 0 22px;
    }

    .hero-buttons-new {
        flex-wrap: wrap;
        gap: 18px;
    }

    .btn-hero-main, .btn-hero-outline {
        padding: 15px 35px;
        font-size: 1.1rem;
    }

    .trust-indicators {
        flex-wrap: wrap;
        gap: 18px;
    }

    .trust-num {
        font-size: 1.65rem;
    }

    .features-grid-new {
        grid-template-columns: repeat(2, 1fr);
        gap: 22px;
    }

    .plans-grid {
        grid-template-columns: repeat(auto-fit, minmax(264px, 1fr));
        gap: 22px;
    }

    .claim-container {
        grid-template-columns: 1fr;
        gap: 26px;
    }

    .account-info-card {
        flex-direction: column;
        gap: 18px;
        text-align: center;
    }

    .account-right {
        width: 100%;
        justify-content: center;
    }

    .user-center-content {
        grid-template-columns: 1fr;
        gap: 22px;
    }

    .uc-records-card, .uc-api-card, .uc-token-card, .uc-exchange-card, .uc-security-card {
        grid-column: span 1;
    }

    .uc-security-content {
        grid-template-columns: 1fr;
    }

    .section-header h2 {
        font-size: 2rem;
    }

    .breeds-container {
        grid-template-columns: repeat(auto-fit, minmax(275px, 1fr));
    }

    .info-cards {
        grid-template-columns: 1fr;
    }

    .config-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .action-buttons {
        justify-content: center;
    }
}

/* 移动端 (< 768px) */
@media (max-width: 768px) {
    .hamburger-menu {
        display: block;
    }

    /* 侧边栏移动端样式 */
    .sidebar {
        width: 100%;
        max-width: 280px;
        height: 100vh;
        position: fixed;
        top: 0;
        left: 0;
        transform: translateX(-100%);
        transition: transform 0.3s ease;
        z-index: 150;
        padding: 20px;
    }

    .sidebar.open {
        transform: translateX(0);
    }

    .sidebar-overlay {
        display: none;
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background: rgba(0,0,0,0.5);
        z-index: 140;
    }

    .sidebar-overlay.active {
        display: block;
    }

    /* Logo 移动端样式 */
    .logo {
        margin-bottom: 24px;
        padding-bottom: 20px;
    }

    .logo-icon {
        font-size: 2rem;
    }

    .logo-text h1 {
        font-size: 1.2rem;
    }

    .logo-text p {
        font-size: 0.75rem;
    }

    /* 导航移动端样式 */
    .nav-item a {
        padding: 12px 14px;
        font-size: 0.9rem;
    }

    .icon {
        font-size: 1.1rem;
    }

    /* 主内容区移动端样式 */
    .main-content {
        margin-left: 0;
        padding: 16px;
        padding-top: 70px;
    }

    /* Hero 移动端样式 */
    .hero-section-new {
        padding: 40px 20px;
        min-height: 300px;
        border-radius: 16px;
    }

    .hero-particles {
        display: none;
    }

    .brand-title {
        gap: 4px;
        flex-wrap: wrap;
        justify-content: center;
    }

    .title-char {
        font-size: 2.2rem;
        animation: fadeInChar 0.5s ease forwards;
    }

    .brand-subtitle {
        font-size: 1rem;
        letter-spacing: 2px;
        margin-bottom: 16px;
    }

    .hero-desc {
        font-size: 0.9rem;
        padding: 0 10px;
        margin-bottom: 24px;
        line-height: 1.6;
    }

    .hero-buttons-new {
        flex-direction: column;
        gap: 12px;
        width: 100%;
        padding: 0 10px;
    }

    .btn-hero-main, .btn-hero-outline {
        width: 100%;
        padding: 12px 24px;
        font-size: 0.95rem;
        justify-content: center;
    }

    .trust-indicators {
        flex-direction: column;
        gap: 12px;
        padding-top: 16px;
    }

    .trust-divider {
        display: none;
    }

    .trust-item {
        display: flex;
        align-items: center;
        gap: 8px;
    }

    .trust-num {
        font-size: 1.3rem;
    }

    .trust-label {
        font-size: 0.85rem;
    }

    /* 特色区域移动端样式 */
    .features-section-new {
        padding: 40px 0;
        border-radius: 16px;
        margin-bottom: 24px;
    }

    .section-header {
        margin-bottom: 30px;
        padding: 0 10px;
    }

    .section-header h2 {
        font-size: 1.5rem;
    }

    .section-header p {
        font-size: 0.9rem;
        padding: 0 10px;
    }

    .features-grid-new {
        grid-template-columns: 1fr;
        gap: 16px;
        padding: 0 10px;
    }

    .feature-card-new {
        padding: 24px 20px;
    }

    .feature-icon-wrap {
        width: 60px;
        height: 60px;
        margin-bottom: 16px;
    }

    .feature-icon-new {
        font-size: 2rem;
    }

    .feature-card-new h3 {
        font-size: 1.1rem;
    }

    .feature-card-new p {
        font-size: 0.85rem;
    }

    /* 方案区域移动端样式 */
    .plans-section {
        padding: 40px 10px;
        margin-bottom: 24px;
    }

    .plans-grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .plan-card {
        padding: 24px 20px;
    }

    .plan-badge {
        top: -8px;
        padding: 4px 12px;
        font-size: 0.75rem;
    }

    .plan-header h3 {
        font-size: 1rem;
    }

    .price-num {
        font-size: 2rem;
    }

    .plan-desc {
        font-size: 0.85rem;
    }

    /* CTA 区域移动端样式 */
    .cta-section {
        padding: 50px 20px;
        border-radius: 16px;
        margin-bottom: 24px;
    }

    .cta-content h2 {
        font-size: 1.5rem;
    }

    .cta-content p {
        font-size: 0.9rem;
        margin-bottom: 20px;
    }

    .btn-cta {
        padding: 14px 32px;
        font-size: 1rem;
    }

    /* 页面头部移动端样式 */
    .page-header {
        margin-bottom: 24px;
    }

    .page-header h2 {
        font-size: 1.5rem;
    }

    .page-header p {
        font-size: 0.9rem;
    }

    /* 品种卡片移动端样式 */
    .breeds-container {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .breed-card {
        padding: 20px;
    }

    .breed-card h3 {
        font-size: 1.1rem;
    }

    /* 认领页面移动端样式 */
    .claim-container {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .account-info-card {
        flex-direction: column;
        gap: 16px;
        padding: 20px;
        text-align: center;
    }

    .account-left {
        flex-direction: column;
    }

    .account-right {
        width: 100%;
        flex-direction: column;
        gap: 12px;
    }

    .balance-card, .quota-card {
        width: 100%;
        justify-content: center;
    }

    .claim-breeds-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
    }

    .claim-breed-card {
        padding: 12px;
    }

    .claim-breed-card .icon {
        font-size: 1.8rem;
    }

    .claim-form {
        padding: 20px;
    }

    .cost-summary-card {
        padding: 16px;
    }

    .cost-select {
        width: 100%;
        min-width: unset;
    }

    .cost-footer {
        flex-direction: column;
        gap: 8px;
        text-align: center;
    }

    .btn-claim-pro {
        padding: 14px 20px;
        font-size: 1rem;
    }

    /* 状态页面移动端样式 */
    .lobster-info-card {
        padding: 20px;
        flex-direction: column;
        text-align: center;
        gap: 16px;
    }

    .lobster-avatar {
        width: 60px;
        height: 60px;
        font-size: 2rem;
    }

    .lobster-name {
        font-size: 1.2rem;
    }

    .info-cards {
        gap: 12px;
    }

    .info-card {
        padding: 16px;
    }

    .info-value {
        flex-direction: column;
        gap: 8px;
    }

    .info-value code {
        font-size: 0.85rem;
    }

    .btn-copy {
        width: 100%;
    }

    .config-section, .action-section, .log-section {
        padding: 16px;
    }

    .config-grid {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .config-value-row {
        flex-direction: column;
        align-items: stretch;
    }

    .btn-model-switch {
        width: 100%;
    }

    .action-buttons {
        flex-wrap: wrap;
        gap: 8px;
    }

    .btn-action {
        flex: 1 1 calc(50% - 4px);
        min-width: calc(50% - 4px);
        padding: 10px 12px;
        font-size: 0.85rem;
    }

    .shell-container {
        min-height: 200px;
        max-height: 300px;
    }

    .shell-header {
        flex-direction: column;
        gap: 8px;
    }

    .shell-controls {
        width: 100%;
        justify-content: center;
    }

    .log-container {
        max-height: 200px;
    }

    /* 实例选择器移动端样式 */
    .instance-selector-header {
        flex-direction: column;
        gap: 12px;
    }

    .instance-cards-grid {
        grid-template-columns: 1fr;
    }

    .instance-card-item {
        padding: 16px;
    }

    .instance-card-icon {
        width: 50px;
        height: 50px;
        font-size: 2rem;
    }

    .instance-card-name {
        font-size: 1rem;
    }

    .instance-card-info {
        flex-direction: column;
        gap: 8px;
    }

    /* 用户中心移动端样式 */
    .user-center-content {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .uc-profile-card {
        padding: 20px;
    }

    .uc-profile-header {
        flex-direction: column;
        text-align: center;
    }

    .uc-avatar {
        width: 56px;
        height: 56px;
        font-size: 1.6rem;
    }

    .uc-points-card {
        padding: 20px;
    }

    .uc-points-stats {
        grid-template-columns: repeat(3, 1fr);
        gap: 12px;
    }

    .uc-stat-value {
        font-size: 1.4rem;
    }

    .uc-records-card, .uc-api-card, .uc-token-card, .uc-exchange-card, .uc-security-card {
        grid-column: span 1;
        padding: 20px;
    }

    .uc-token-stats {
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
    }

    .uc-token-stats .uc-stat-value {
        font-size: 1.6rem;
    }

    .uc-packages-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
    }

    .uc-package-item {
        padding: 16px;
    }

    .uc-security-content {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .uc-form-section {
        padding: 16px;
    }

    /* 微信接入移动端样式 */
    .wechat-content {
        padding: 10px;
    }

    .wechat-intro {
        padding: 30px 16px;
    }

    .intro-icon {
        font-size: 3rem;
    }

    .wechat-intro h3 {
        font-size: 1.2rem;
    }

    .wechat-select-card {
        padding: 16px;
    }

    #wechat-selected-info {
        padding: 16px;
    }

    .btn-wechat-primary {
        padding: 12px 24px;
        font-size: 1rem;
    }

    .qr-modal-content {
        padding: 24px;
        width: 95%;
    }

    .qr-display {
        font-size: 4px;
        padding: 12px;
    }

    /* 模态框移动端样式 */
    .modal {
        width: 95%;
        padding: 20px;
        margin: 10px;
    }

    .modal-header h2 {
        font-size: 1.2rem;
    }

    .modal-small {
        padding: 20px;
    }

    .modal-buttons {
        flex-direction: column;
        gap: 8px;
    }

    .btn-cancel, .btn-confirm-delete, .btn-confirm-action {
        width: 100%;
    }

    /* 登录提示移动端样式 */
    .login-required-card {
        padding: 40px 24px;
        margin: 20px 10px;
    }

    .login-required-icon {
        font-size: 3rem;
    }

    .login-required-card h3 {
        font-size: 1.2rem;
    }

    .btn-login-required {
        padding: 12px 32px;
    }

    /* 空状态移动端样式 */
    .empty-state {
        padding: 40px 20px;
    }

    .empty-icon {
        font-size: 3rem;
    }

    .empty-state h3 {
        font-size: 1.2rem;
    }

    /* Toast 移动端样式 */
    #toast-container {
        top: 70px;
        right: 10px;
        left: 10px;
    }
}

/* 小屏幕 (< 480px) */
@media (max-width: 480px) {
    .hamburger-menu {
        width: 40px;
        height: 40px;
        top: 12px;
        left: 12px;
        padding: 8px;
    }

    .hamburger-line {
        width: 20px;
        margin: 4px auto;
    }

    .main-content {
        padding: 12px;
        padding-top: 60px;
    }

    .hero-section-new {
        padding: 30px 16px;
    }

    .title-char {
        font-size: 1.8rem;
    }

    .brand-subtitle {
        font-size: 0.85rem;
    }

    .hero-desc {
        font-size: 0.8rem;
    }

    .btn-hero-main, .btn-hero-outline {
        padding: 10px 20px;
        font-size: 0.85rem;
    }

    .claim-breeds-grid {
        grid-template-columns: 1fr;
    }

    .balance-card, .quota-card {
        padding: 12px 16px;
    }

    .balance-value, .quota-value {
        font-size: 1.2rem;
    }

    .uc-points-stats {
        grid-template-columns: 1fr;
    }

    .uc-packages-grid {
        grid-template-columns: 1fr;
    }

    .action-buttons .btn-action {
        flex: 1 1 100%;
        min-width: 100%;
    }
}

/* 侧边栏遮罩层 */
.sidebar-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0,0,0,0.5);
    z-index: 140;
    opacity: 0;
    transition: opacity 0.3s ease;
}

/* ==================== 文件下载区域样式 ==================== */
.file-download-section {
    background: var(--bg-card);
    border-radius: var(--radius);
    margin-bottom: 24px;
    box-shadow: var(--shadow);
    overflow: hidden;
}

.file-download-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 24px;
    background: linear-gradient(135deg, rgba(9,132,227,0.08), rgba(0,184,148,0.08));
    cursor: pointer;
    transition: all 0.2s ease;
    user-select: none;
}

.file-download-header:hover {
    background: linear-gradient(135deg, rgba(9,132,227,0.12), rgba(0,184,148,0.12));
}

.file-download-title-area {
    display: flex;
    align-items: center;
    gap: 12px;
}

.collapse-icon {
    font-size: 0.8rem;
    color: var(--text-light);
    transition: transform 0.3s ease;
}

.file-download-section:not(.collapsed) .collapse-icon {
    transform: rotate(90deg);
}

.file-download-header h4 {
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--text);
    margin: 0;
}

.file-download-summary {
    color: var(--text-light);
    font-size: 0.85rem;
}

.file-download-section:not(.collapsed) .file-download-summary {
    display: none;
}

.file-download-content {
    display: none;
    padding: 20px 24px;
    animation: slideDown 0.3s ease;
}

.file-download-section:not(.collapsed) .file-download-content {
    display: block;
}

@keyframes slideDown {
    from { opacity: 0; max-height: 0; }
    to { opacity: 1; max-height: 500px; }
}

.file-download-controls {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 12px;
}

.btn-file-refresh,
.btn-file-select-all,
.btn-file-download-selected {
    padding: 8px 16px;
    border: none;
    border-radius: 8px;
    font-size: 0.85rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s ease;
}

.btn-file-refresh {
    background: var(--primary);
    color: #fff;
}

.btn-file-refresh:hover {
    background: var(--primary-dark);
}

.btn-file-select-all {
    background: #e5e7eb;
    color: #4b5563;
}

.btn-file-select-all:hover {
    background: #d1d5db;
}

.btn-file-download-selected {
    background: linear-gradient(135deg, #10b981, #059669);
    color: #fff;
}

.btn-file-download-selected:hover:not(:disabled) {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(16, 185, 129, 0.3);
}

.btn-file-download-selected:disabled {
    background: #9ca3af;
    cursor: not-allowed;
}

.file-download-desc {
    color: var(--text-light);
    font-size: 0.9rem;
    margin-bottom: 16px;
}

.file-list-container {
    min-height: 100px;
}

.file-list-loading,
.file-list-empty,
.file-list-error {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 40px 20px;
    color: var(--text-light);
    font-size: 0.95rem;
}

.file-list-loading {
    gap: 12px;
}

.loading-spinner-small {
    width: 32px;
    height: 32px;
    border: 3px solid #e5e7eb;
    border-top-color: var(--primary);
    border-radius: 50%;
    animation: spin 1s linear infinite;
}

.file-list-empty .empty-icon {
    font-size: 2rem;
    margin-bottom: 8px;
    opacity: 0.6;
}

.file-list-error {
    color: var(--danger);
}

.file-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    max-height: 400px;
    overflow-y: auto;
    padding: 4px;
}

.file-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    background: #f8f9fa;
    border: 2px solid transparent;
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.2s ease;
}

.file-item:hover {
    background: #e8f4f8;
    border-color: rgba(9, 132, 227, 0.2);
}

.file-item.selected {
    background: linear-gradient(135deg, rgba(9,132,227,0.1), rgba(0,184,148,0.1));
    border-color: var(--primary);
}

.file-checkbox {
    font-size: 1.2rem;
    color: var(--text-light);
    min-width: 24px;
}

.file-item.selected .file-checkbox {
    color: var(--primary);
}

.file-icon {
    font-size: 1.5rem;
    min-width: 32px;
}

.file-info {
    flex: 1;
    min-width: 0;
}

.file-name {
    font-weight: 600;
    color: var(--text);
    font-size: 0.95rem;
    margin-bottom: 2px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.file-path {
    color: var(--text-light);
    font-size: 0.8rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.file-meta {
    display: flex;
    align-items: center;
    gap: 12px;
}

.file-size {
    color: var(--text-light);
    font-size: 0.85rem;
    background: #e5e7eb;
    padding: 4px 10px;
    border-radius: 6px;
}

.btn-file-single-download {
    padding: 6px 12px;
    background: linear-gradient(135deg, #3b82f6, #2563eb);
    color: #fff;
    border: none;
    border-radius: 6px;
    font-size: 0.9rem;
    cursor: pointer;
    transition: all 0.2s ease;
}

.btn-file-single-download:hover {
    transform: scale(1.05);
    box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3);
}

/* 文件列表滚动条样式 */
.file-list::-webkit-scrollbar {
    width: 6px;
}

.file-list::-webkit-scrollbar-track {
    background: #f1f1f1;
    border-radius: 3px;
}

.file-list::-webkit-scrollbar-thumb {
    background: #c1c1c1;
    border-radius: 3px;
}

.file-list::-webkit-scrollbar-thumb:hover {
    background: #a1a1a1;
}

/* 响应式 - 文件下载区域 */
@media (max-width: 768px) {
    .file-download-header {
        flex-direction: column;
        gap: 12px;
    }

    .file-download-controls {
        width: 100%;
        justify-content: space-between;
    }

    .file-item {
        padding: 10px 12px;
    }

    .file-meta {
        flex-direction: column;
        align-items: flex-end;
        gap: 6px;
    }
}

.sidebar-overlay.active {
    display: block;
    opacity: 1;
}
