/* gongyu.css */
        :root{
          --bg:#0c1a0f;--bg2:#122018;--bg3:#1a2d1e;
          --tx:#e0ede2;--tx2:#9dbfa1;
          --ac:#3dba6a;--ac2:#52d47f;
          --gd:linear-gradient(135deg,#3dba6a,#52d47f);
          --bd:rgba(255,255,255,.06);
        }

        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        body { max-width:480px; margin:0 auto; box-shadow:0 0 30px rgba(0,0,0,0.15);
            font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
            background: var(--bg);
            color: var(--tx);
            min-height: 100vh;
            display: flex;
            flex-direction: column;
            padding-bottom: 70px;
        }

        /* 顶部标题栏 */
        .header {
            background: var(--bg2);
            border-bottom: 1px solid var(--bd);
            color: var(--tx);
            padding: 16px 16px;
            position: relative;
        }

        .header-content {
            text-align: center;
        }

        .header h1 {
            font-size: 20px;
            font-weight: 500;
            margin-bottom: 4px;
            color: var(--tx);
        }

        .header h1 em {
            font-style: normal;
            background: var(--gd);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
        }

        .header .subtitle {
            font-size: 12px;
            color: var(--tx2);
        }

        .login-btn {
            position: absolute;
            right: 16px;
            top: 15px;
            transform: none;
            background: rgba(61,186,106,.15);
            border: 1px solid rgba(61,186,106,.35);
            color: var(--ac);
            padding: 8px 16px;
            border-radius: 20px;
            font-size: 13px;
            min-height: 36px;
            cursor: pointer;
            transition: all 0.2s;
        }

        .login-btn:hover {
            background: rgba(61,186,106,.25);
        }

        /* 主内容区 */
        .main-content {
            flex: 1;
            padding: 16px;
            max-width: 800px;
            margin: 0 auto;
            width: 100%;
            background: transparent;
        }


        .chat-messages {
            height: 300px;
            padding: 20px;
            overflow-y: auto;
            background: var(--bg2);
            display: flex;
            flex-direction: column;
        }

        .welcome-message {
            text-align: center;
            color: var(--tx2);
            padding: 60px 20px;
            margin: auto;
        }

        .welcome-message h3 {
            font-size: 20px;
            color: var(--ac);
            margin-bottom: 10px;
            font-weight: 600;
        }

        .welcome-message p {
            font-size: 14px;
            color: var(--tx2);
        }

        /* AI风格输入区 */
        .chat-input-area {
            background: var(--bg3);
            border-top: 1px solid var(--bd);
            padding: 12px 16px;
        }

        .input-wrapper {
            position: relative;
            display: flex;
            align-items: center;
            gap: 8px;
            background: var(--bg2);
            border-radius: 24px;
            padding: 8px 8px 8px 16px;
            border: 1px solid rgba(0,0,0,0.08);
            transition: border-color 0.2s, box-shadow 0.2s;
        }

        .input-wrapper:focus-within {
            border-color: #3dba6a;
            box-shadow: 0 0 0 2px rgba(102, 126, 234, 0.15);
        }

        .chat-input {
            flex: 1;
            border: none;
            background: transparent;
            padding: 5px 0;
            font-size: 15px;
            outline: none;
            resize: none;
            min-height: 24px;
            max-height: 120px;
            line-height: 1.5;
            color: var(--tx);
        }

        .chat-input::placeholder {
            color: var(--tx2);
        }

        .input-actions {
            display: flex;
            align-items: center;
            gap: 4px;
        }

        .action-btn {
            width: 44px;
            height: 44px;
            border-radius: 50%;
            border: none;
            background: transparent;
            color: var(--tx2);
            font-size: 18px;
            cursor: pointer;
            display: flex;
            align-items: center;
            justify-content: center;
            transition: background 0.2s, color 0.2s;
        }

        .action-btn:hover {
            background: rgba(255,255,255,0.05);
            color: var(--tx);
        }

        .send-btn {
            width: 44px;
            height: 44px;
            border-radius: 50%;
            background: linear-gradient(135deg, #3dba6a 0%, #1a6b4a 100%);
            border: none;
            color: white;
            font-size: 16px;
            cursor: pointer;
            display: flex;
            align-items: center;
            justify-content: center;
            transition: transform 0.2s, opacity 0.2s;
        }

        .send-btn:hover {
            transform: scale(1.05);
        }

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

        /* 上传提示区 */
        .upload-hint {
            display: flex;
            justify-content: center;
            gap: 16px;
            padding: 8px 0 4px;
            font-size: 12px;
            color: #999;
        }

        .upload-hint span { cursor:pointer; 
            display: flex;
            align-items: center;
            gap: 4px;
        }

        /* 隐藏的文件输入 */
        .hidden-input {
            display: none;
        }

        /* 潜心索引分类 */
        .index-section {
            background: var(--bg2);
            border-radius: 12px;
            padding: 12px;
            margin-bottom: 12px;
            border: 1px solid var(--bd);
        }

        .index-section .section-title {
            font-size: 12px;
            color: var(--tx);
            margin-bottom: 10px;
            padding-left: 4px;
        }
        .section-title {
            color: var(--tx);
        }

        .index-tabs {
            display: flex;
            gap: 8px;
            flex-wrap: wrap;
        }

        .index-tab {
            flex: 1;
            min-width: calc(20% - 8px);
            padding: 10px 8px;
            background: var(--bg3);
            border: none;
            border-radius: 8px;
            font-size: 14px;
            color: var(--tx2);
            cursor: pointer;
            transition: all 0.2s;
            text-align: center;
        }

        .index-tab:hover {
            background: rgba(61,186,106,.15);
            color: var(--ac);
        }

        .index-tab.active {
            background: linear-gradient(135deg, #3dba6a 0%, #1a6b4a 100%);
            color: white;
        }

        .index-content {
            display: none;
            margin-top: 12px;
            padding: 12px;
            background: var(--bg3);
            border-radius: 8px;
        }

        .index-content.active {
            display: block;
        }

        .index-items {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
        }

        .index-item {
            padding: 8px 14px;
            background: var(--bg3);
            border: 1px solid var(--bd);
            border-radius: 20px;
            font-size: 12px;
            color: var(--tx2);
            cursor: pointer;
            transition: all 0.2s;
        }

        .index-item:hover {
            background: var(--ac);
            color: white;
            border-color: var(--ac);
        }

        /* 训练插件区 */
        .plugins-section {
            margin-bottom: 16px;
            background: var(--bg2);
            border: 1px solid var(--bd);
            border-radius: 12px;
        }

        .plugin-group {
            margin-bottom: 12px;
        }

        .plugin-group-title {
            font-size: 12px;
            color: var(--tx);
            margin-bottom: 8px;
            display: flex;
            align-items: center;
            gap: 5px;
            font-weight: 400;
        }

        .plugin-group-title .icon {
            font-size: 14px;
        }

        .plugin-cards {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 10px;
        }

        .plugin-card.featured {
            background: linear-gradient(135deg, rgba(245,158,11,0.15), rgba(253,230,138,0.08));
            border: 1px solid rgba(245,158,11,0.3);
        }

        .plugin-card.featured .name {
            color: #FCD34D;
        }

        .plugin-card.featured .desc {
            color: #F59E0B;
        }

        /* 底部导航栏 */
        .bottom-nav { max-width:480px; width:100%; left:50%; transform:translateX(-50%);
            position: fixed;
            bottom: 0;
            background: var(--bg2);
            display: flex;
            justify-content: space-around;
            padding: 5px 0;
            border-top: 1px solid var(--bd);
            z-index: 100;
        }

        .nav-item {
            display: flex;
            flex-direction: column;
            align-items: center;
            padding: 10px 20px;
            min-height: 48px;
            color: var(--tx2);
            text-decoration: none;
            cursor: pointer;
            transition: color 0.2s;
        }

        .nav-item:hover {
            color: var(--ac);
        }

        .nav-item.active {
            color: var(--ac);
        }

        .nav-item .nav-icon {
            font-size: 22px;
            margin-bottom: 4px;
        }

        .nav-item .nav-text {
            font-size: 12px;
        }

        /* 消息气泡样式 */
        .message {
            margin-bottom: 16px;
            display: flex;
            animation: fadeIn 0.3s ease;
        }

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

        .message.user {
            justify-content: flex-end;
        }

        .message-bubble {
            max-width: 80%;
            padding: 12px 16px;
            border-radius: 18px;
            font-size: 14px;
            line-height: 1.6;
        }

        .message.user .message-bubble {
            background: linear-gradient(135deg, #3dba6a 0%, #1a6b4a 100%);
            color: white;
            border-bottom-right-radius: 4px;
        }

        .message.assistant{flex-direction:column;align-items:flex-start}
.msg-actions{display:flex;gap:2px;padding:0;margin:4px 0 0 4px;opacity:0;transition:opacity 0.2s}
.message.assistant:hover .msg-actions,.message.assistant:active .msg-actions{opacity:1}
.msg-actions button{background:none;border:none;color:#b0b0b0;cursor:pointer;padding:5px 7px;border-radius:6px;transition:all 0.15s;display:flex;align-items:center;justify-content:center}
.msg-actions button:hover{background:rgba(255,255,255,0.06);color:#ECF0F5}
.msg-actions button.active-like{color:#3dba6a}
.msg-actions button.active-dislike{color:#e53e3e}
.msg-actions svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.message.assistant .message-bubble {
            background: var(--bg3);
            color: var(--tx);
            border: 1px solid var(--bd);
            border-bottom-left-radius: 4px;
        }

        /* 文件消息 */
        .message-file {
            display: flex;
            align-items: center;
            gap: 8px;
            padding: 8px 12px;
            background: rgba(255,255,255,0.06);
            border-radius: 8px;
            margin-bottom: 8px;
            font-size: 12px;
        }

        .message.assistant .message-file {
            background: rgba(255,255,255,0.04);
        }

        /* 加载动画 */
        .typing-indicator {
            display: flex;
            gap: 4px;
            padding: 4px 0;
        }

        .typing-indicator span {
            width: 8px;
            height: 8px;
            background: #3dba6a;
            border-radius: 50%;
            animation: typing 1.4s infinite ease-in-out;
        }

        .typing-indicator span:nth-child(2) { animation-delay: 0.2s; }
        .typing-indicator span:nth-child(3) { animation-delay: 0.4s; }

        @keyframes typing {
            0%, 60%, 100% { transform: translateY(0); opacity: 0.4; }
            30% { transform: translateY(-8px); opacity: 1; }
        }

        /* 打字光标 */
        .typing-cursor {
            display: inline-block;
            animation: blink 0.7s infinite;
            color: #3dba6a;
            font-weight: bold;
        }

        @keyframes blink {
            0%, 50% { opacity: 1; }
            51%, 100% { opacity: 0; }
        }

        /* 响应式 */
        @media (max-width: 480px) {
            .index-tab {
                min-width: calc(33.33% - 8px);
                font-size: 12px;
            }

            .chat-messages {
                height: 240px;
            }

            .upload-hint {
                font-size: 12px;
                gap: 12px;
            }
        }
        .collapse-toggle { display:flex; align-items:center; justify-content:center; gap:8px; padding:12px 16px; min-height:44px; margin-bottom:12px; background:linear-gradient(135deg,#3dba6a,#1a6b4a); border-radius:10px; color:white; font-size:14px; cursor:pointer; box-shadow:0 2px 8px rgba(102,126,234,0.3); } .collapse-toggle:hover,.collapse-toggle:active { background:linear-gradient(135deg,#7c8ff0,#8b6cb5); } .collapsible-area { max-height:5000px; opacity:1; overflow:hidden; transition: max-height 0.4s ease, opacity 0.3s ease; } .collapsible-area.collapsed { max-height:0!important; opacity:0; overflow:hidden; }
    
/* +号菜单和模式选择样式 */
.add-btn{width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,0.04);border:none;font-size:20px;color:#3dba6a;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.add-btn:hover{background:rgba(255,255,255,0.06);}
.add-menu{position:absolute;bottom:50px;left:0;background:var(--bg2);border-radius:12px;box-shadow:0 4px 20px rgba(0,0,0,0.4);border:1px solid rgba(255,255,255,0.05);padding:8px 0;display:none;min-width:140px;z-index:200;max-height:320px;overflow-y:auto;}
.add-menu.show{display:block;}
.add-menu-item{display:flex;align-items:center;gap:10px;padding:10px 16px;cursor:pointer;font-size:14px;color:var(--tx);}
.add-menu-item:hover{background:rgba(255,255,255,0.04);}
.mode-select{position:relative;flex-shrink:0;}
.mode-btn{display:flex;align-items:center;gap:4px;padding:6px 10px;background:rgba(255,255,255,0.04);border:none;border-radius:16px;font-size:12px;color:var(--tx2);cursor:pointer;}
.mode-btn:hover{background:rgba(255,255,255,0.06);color:#3dba6a;}
.mode-menu{position:absolute;bottom:40px;right:0;background:var(--bg2);border-radius:12px;box-shadow:0 4px 20px rgba(0,0,0,0.4);border:1px solid rgba(255,255,255,0.05);padding:8px 0;display:none;min-width:130px;z-index:200;}
.mode-menu.show{display:block;}
.mode-menu-item{display:flex;align-items:center;gap:8px;padding:10px 16px;cursor:pointer;font-size:13px;color:var(--tx);}
.mode-menu-item:hover{background:rgba(255,255,255,0.04);}
.mode-menu-item.active{color:#3dba6a;background:rgba(45,125,95,0.12);}
/* .input-wrapper merged into main declaration above */
    
        /* ===== 五区折叠布局新增样式 ===== */
        .plugin-group-header {
            display: flex; align-items: center; justify-content: space-between;
            padding: 10px 14px; min-height: 44px; cursor: pointer; border-radius: 8px;
            transition: all 0.2s; user-select: none;
            background: rgba(0,0,0,0.03);
        }
        .plugin-group-header:active { transform: scale(0.98); }
        .plugin-group-header .left { display: flex; align-items: center; gap: 6px; }
        .plugin-group-header .group-icon { font-size: 13px; }
        .plugin-group-header .group-name { font-size: 12px; font-weight: 400; color: var(--tx); }
        .plugin-group-header .group-count { font-size: 12px; color: var(--tx2); background: rgba(0,0,0,0.08); padding: 1px 5px; border-radius: 6px; }
        .plugin-group-header .arrow { font-size: 12px; color: var(--tx2); transition: transform 0.3s; }
        .plugin-group.collapsed .arrow { transform: rotate(-90deg); }
        .plugin-group-header.bg-mind, .plugin-group-header.bg-ability, .plugin-group-header.bg-study, .plugin-group-header.bg-workshop, .plugin-group-header.bg-growth { background: rgba(0,0,0,0.03); }

        /* ===== 成长见证区（系统内建功能） ===== */
        .growth-section { margin-bottom: 8px; }
        .growth-section-header {
            display: flex; align-items: center; justify-content: space-between;
            padding: 12px 14px; border-radius: 12px; cursor: pointer;
            background: linear-gradient(135deg, #1a5c3a 0%, #2d9f6f 80%);
            margin-bottom: 10px; transition: transform 0.1s;
        }
        .growth-section-header:active { transform: scale(0.98); }
        .growth-section-header .left { display: flex; align-items: center; gap: 8px; }
        .growth-section-header .section-icon { font-size: 14px; }
        .growth-section-header .section-title { font-size: 13px; font-weight: 500; color: #fff; }
        .growth-section-header .section-badge {
            font-size: 12px; color: rgba(255,255,255,.8); background: rgba(255,255,255,.2);
            padding: 2px 8px; border-radius: 10px;
        }
        .growth-section-header .arrow { font-size: 12px; color: rgba(255,255,255,.8); transition: transform 0.3s; }
        .growth-section.collapsed .arrow { transform: rotate(-90deg); }
        .growth-section.collapsed .growth-grid { display: none; }
        .growth-grid {
            display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px;
        }
        .growth-card {
            background: var(--bg3);
            border: 1px solid var(--bd); border-radius: 14px;
            padding: 14px 8px; text-align: center; cursor: pointer;
            transition: all 0.2s; position: relative;
        }
        .growth-card:hover, .growth-card:active {
            border-color: rgba(111,207,151,0.35);
            background: linear-gradient(145deg, rgba(111,207,151,0.15), rgba(61,186,106,0.08));
            transform: translateY(-1px);
        }
        .growth-card .g-icon { font-size: 22px; margin-bottom: 4px; }
        .growth-card .g-name { font-size: 12px; font-weight: 400; color: var(--tx); margin-bottom: 1px; }
        .growth-card .g-desc { font-size:12px; color: var(--tx2); }
        .growth-card .g-status {
            position: absolute; top: 6px; right: 6px; font-size: 12px;
            padding: 1px 5px; border-radius: 6px;
        }
        .growth-card .g-status.ready { background: rgba(72,187,120,0.2); color: #48BB78; }
        .growth-card .g-status.dev { background: rgba(236,201,75,0.2); color: #ECC94B; }
        .growth-card .g-status.plan { background: rgba(203,213,224,0.15); color: #CBD5E0; }
        .plugin-group-body { max-height: 1200px; overflow: hidden; transition: max-height 0.4s ease, opacity 0.3s ease, padding 0.3s ease; opacity: 1; padding: 6px 4px 4px 4px; }
        .plugin-group.collapsed .plugin-group-body { max-height: 0; opacity: 0; padding: 0; }
        .plugin-sub-row { display: flex; align-items: flex-start; margin-bottom: 8px; gap: 0; }
        .plugin-sub-label { font-size:12px; color: var(--tx2); width: 32px; min-width: 32px; text-align: center; flex-shrink: 0; padding-top: 12px; }
        .plugin-sub-row .plugin-cards { flex: 1; display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
        .plugin-card { background: var(--bg3); border-radius: 12px; padding: 12px 4px; text-align: center; cursor: pointer; transition: all 0.2s; border: 1px solid var(--bd); position: relative; color: var(--tx); }
        .plugin-card:hover, .plugin-card:active { transform: translateY(-2px); border-color: rgba(61,186,106,.35); background: rgba(45,165,93,0.08); }
        .plugin-card .icon { font-size: 22px; margin-bottom: 3px; }
        .plugin-card .name { font-size: 12px; font-weight: 400; color: var(--tx); margin-bottom: 1px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
        .plugin-card .desc { font-size:12px; color: var(--tx2); }
        .plugin-card .status-dot { position: absolute; top: 6px; right: 6px; width: 6px; height: 6px; border-radius: 50%; }
        .plugin-card .status-dot.ready { background: var(--ac); }
        .plugin-card .status-dot.dev { background: #888; }
        .plugin-card .status-dot.plan { background: #CBD5E0; }
        .plugin-group { margin-bottom: 8px; }

        
/* achievement-v1 */
.star-fly{position:fixed;font-size:28px;z-index:9999;pointer-events:none;animation:starFly 1.2s cubic-bezier(0.25,0.46,0.45,0.94) forwards}
@keyframes starFly{0%{opacity:1;transform:scale(1)}40%{opacity:1;transform:scale(1.5) translateY(-30px)}100%{opacity:0;transform:scale(0.5) translateY(-120px)}}
.celebrate-overlay{position:fixed;inset:0;z-index:9998;pointer-events:none}
.celebrate-particle{position:absolute;width:8px;height:8px;border-radius:50%;animation:particleFall 1.5s ease-out forwards}
@keyframes particleFall{0%{opacity:1;transform:translateY(0) rotate(0deg)}100%{opacity:0;transform:translateY(100vh) rotate(720deg)}}
.level-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:12px;font-size:12px;font-weight:700}
.level-badge.lv1{background:linear-gradient(135deg,#E8D5B7,#C9A96E);color:#5C4A2A}
.level-badge.lv2{background:linear-gradient(135deg,#C0C0C0,#8A8A8A);color:#fff}
.level-badge.lv3{background:linear-gradient(135deg,#FFD700,#FFA500);color:#5C3A00}
.level-badge.lv4{background:linear-gradient(135deg,#B9F2FF,#00BCD4);color:#004D5A}
.level-badge.lv5{background:linear-gradient(135deg,#E040FB,#7B1FA2);color:#fff}
.streak-fire{animation:fireGlow 1s ease infinite alternate}
@keyframes fireGlow{from{text-shadow:0 0 4px #ff6b00}to{text-shadow:0 0 12px #ff6b00,0 0 20px #ff3d00}}
.combo-popup{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:9999;text-align:center;animation:comboIn 0.6s cubic-bezier(0.175,0.885,0.32,1.275)}
@keyframes comboIn{from{opacity:0;transform:translate(-50%,-50%) scale(0.3)}60%{transform:translate(-50%,-50%) scale(1.1)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}

/* a11y-v1: 无障碍基础 */
:focus-visible{outline:2px solid #3dba6a;outline-offset:2px;border-radius:4px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
@media(prefers-reduced-motion:reduce){*{animation-duration:0.01ms!important;transition-duration:0.01ms!important}}
.file-preview{display:none;padding:4px 8px;max-height:80px;overflow-y:auto;}
.file-preview.show{display:flex;flex-wrap:wrap;gap:4px;}
.preview-item{display:flex;align-items:center;background:var(--bg3);border-radius:6px;padding:3px 8px;font-size:12px;color:var(--tx2);}
.preview-item img{margin-right:4px;}
.preview-item .remove-file{cursor:pointer;color:var(--tx2);font-size:14px;}
.preview-item .remove-file:hover{color:#e53e3e;}


.upload-hint span{cursor:pointer;transition:all .2s;padding:4px 6px;border-radius:8px;}
.upload-hint span:hover{background:rgba(61,186,106,.15);color:var(--ac);}
.upload-hint span:active{transform:scale(0.95);}
.ftime input{border:1px solid rgba(0,0,0,.1);border-radius:8px;padding:4px 8px;font-size:13px;width:60%;margin-left:4px;background:var(--bg3);color:var(--tx);}

/* ===== 暗色主题：通用表单和组件 ===== */
.chat-container{background:var(--bg2);border:1px solid var(--bd);box-shadow:0 4px 20px rgba(0,0,0,.4);}
.chat-input-area textarea,#chatInput{background:var(--bg3);color:var(--tx);border-color:rgba(61,186,106,.2);}
.chat-input-area textarea::placeholder,#chatInput::placeholder{color:var(--tx2);}
textarea,input[type=text]{background:var(--bg3);color:var(--tx);border:1px solid rgba(61,186,106,.2);border-radius:8px;}
button[class*="submit"],button[id*="Btn"]:not(:disabled){background:var(--gd);color:#fff;border:none;}
.plugin-group-header{color:var(--tx);border-bottom:1px solid var(--bd);}
.fdim-tag{min-height:36px;display:inline-flex;align-items:center;background:var(--bg3);color:var(--tx2);border-color:var(--bd);}
.fdim-tag.active{background:var(--ac);color:#fff;border-color:var(--ac);}
.mtag{min-height:36px;display:inline-flex;align-items:center;background:var(--bg3);color:var(--tx2);border-color:var(--bd);}
.mtag.sel{background:var(--ac);color:#fff;border-color:var(--ac);}
.cb{background:var(--bg3);color:var(--tx);}
#training-stats-bar>div{background:var(--bg2);border:1px solid var(--bd);}
#training-stats-bar>div:last-child{background:linear-gradient(135deg,#3dba6a,#1a6b4a);border:none;}
/* 共育空间欢迎卡 */
.gongyu-welcome-card {
    background: rgba(45,125,95,.12);
    border: 1px solid rgba(45,125,95,.25);
    border-radius: 14px;
    padding: 16px;
    margin-bottom: 10px;
    line-height: 1.7;
}
.gongyu-welcome-card .welcome-title {
    font-size: 15px;
    font-weight: 700;
    color: #48bb78;
    margin-bottom: 8px;
}
.gongyu-welcome-card .welcome-body {
    font-size: 13px;
    color: var(--tx2);
}
/* 成长画像卡 */
.growth-portrait-card {
    background: rgba(45,125,95,.15);
    border: 1px solid rgba(45,125,95,.3);
    border-radius: 14px;
    padding: 14px;
    margin-bottom: 10px;
}
.dim-row {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 6px;
}
.dim-label {
    font-size: 12px;
    color: var(--tx2);
    width: 56px;
    flex-shrink: 0;
}
.dim-bar-bg {
    flex: 1;
    height: 6px;
    background: rgba(0,0,0,.05);
    border-radius: 3px;
    overflow: hidden;
}
.dim-bar-fill {
    height: 100%;
    border-radius: 3px;
    transition: width .6s ease;
}
.dim-conf {
    font-size:12px;
    color: var(--tx2);
    width: 48px;
    text-align: right;
    flex-shrink: 0;
}
@keyframes cvF1{0%,100%{transform:translateY(0)}50%{transform:translateY(-20px)}}
@keyframes cvF2{0%,100%{transform:translateY(0)}50%{transform:translateY(15px)}}
@keyframes cvIn{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}
#coverPage .cv{opacity:0;animation:cvIn .8s ease forwards}

/* ===== Extracted inline-style classes ===== */

/* Section containers */
.section-box {
    margin-bottom: 12px;
    border-radius: 14px;
    padding: 14px 16px;
}
.section-box--feed {
    background: var(--bg2);
    border: 1px solid rgba(45,165,93,.2);
    overflow: hidden;
}
.section-box--foundation {
    background: linear-gradient(135deg,rgba(59,130,246,.18),rgba(45,165,93,.12));
    border: 1px solid rgba(59,130,246,.35);
}
.section-box--assessment {
    background: rgba(124,92,191,.18);
    border: 1px solid rgba(124,92,191,.35);
}

/* Section header row */
.section-header {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
}
.section-header--tight {
    margin-bottom: 10px;
}

/* Circular icon containers */
.icon-circle {
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}
.icon-circle--lg {
    width: 40px;
    height: 40px;
    font-size: 18px;
}
.icon-circle--md {
    width: 36px;
    height: 36px;
    font-size: 16px;
}
.icon-circle--feed {
    background: linear-gradient(135deg,#3dba6a,#1a6b4a);
}
.icon-circle--foundation {
    background: linear-gradient(135deg,#3b82f6,#6366f1);
}
.icon-circle--assessment {
    background: linear-gradient(135deg,#7c5cbf,#9b7ee0);
}

/* Section title + subtitle */
.section-title-text {
    font-size: 14px;
    font-weight: 700;
    color: var(--tx);
}
.section-subtitle-text {
    font-size: 12px;
    color: var(--tx2);
}

/* Grid layouts */
.grid-3col {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 8px;
}
.grid-2col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}

/* Feed cards (投喂中心 buttons) */
.feed-card {
    background: rgba(45,165,93,.08);
    border: 1px solid rgba(45,165,93,.2);
    border-radius: 10px;
    padding: 10px 6px;
    text-align: center;
    cursor: pointer;
}

/* Foundation cards (基本盘 buttons) */
.foundation-card {
    background: rgba(59,130,246,.06);
    border: 1px solid rgba(59,130,246,.12);
    border-radius: 10px;
    padding: 10px 8px;
    cursor: pointer;
}

/* Card icon, label, description (shared across feed/foundation/assessment) */
.card-icon {
    margin-bottom: 4px;
}
.card-icon--lg {
    font-size: 18px;
}
.card-icon--md {
    font-size: 13px;
    margin-bottom: 2px;
}
.card-icon--xl {
    font-size: 20px;
}
.card-label {
    font-size: 12px;
    font-weight: 600;
}
.card-label--green {
    color: #3dba6a;
}
.card-label--blue {
    color: #3b82f6;
}
.card-label--assess-green {
    font-size: 12px;
    font-weight: 600;
    color: #3dba6a;
}
.card-label--assess-purple {
    font-size: 12px;
    font-weight: 600;
    color: #9b7ee0;
}
.card-desc {
    font-size: 12px;
    margin-top: 2px;
}
.card-desc--green {
    color: #7a9a80;
}
.card-desc--muted {
    color: var(--tx2);
}

/* Assessment link cards */
.assess-card {
    padding: 12px;
    border-radius: 10px;
    text-decoration: none;
    text-align: center;
}
.assess-card--green {
    background: rgba(45,165,93,.06);
    border: 1px solid rgba(45,165,93,.2);
}
.assess-card--purple {
    background: rgba(124,92,191,.08);
    border: 1px solid rgba(124,92,191,.2);
}

/* Ecosystem entry cards */
.eco-row {
    display: flex;
    gap: 6px;
    margin: 0 0 12px;
}
.eco-card {
    flex: 1;
    border-radius: 10px;
    padding: 10px 4px;
    cursor: pointer;
    text-align: center;
}
.eco-card--dangran {
    background: rgba(240,96,48,.06);
    border: 1px solid rgba(240,96,48,.12);
}
.eco-card--yimai {
    background: rgba(124,92,191,.06);
    border: 1px solid rgba(124,92,191,.12);
}
.eco-card--aifriendly {
    background: rgba(59,130,246,.06);
    border: 1px solid rgba(59,130,246,.12);
}
.eco-card--dualsoul {
    background: rgba(100,60,180,.06);
    border: 1px solid rgba(140,100,200,.12);
}
.eco-card-icon {
    font-size: 18px;
    margin-bottom: 3px;
}
.eco-card-label {
    font-size: 12px;
    font-weight: 500;
}
.eco-card-desc {
    font-size: 12px;
    color: rgba(255,255,255,.45);
    margin-top: 1px;
}

/* Eco label colors */
.eco-card--dangran .eco-card-label { color: rgba(240,128,64,.9); }
.eco-card--yimai .eco-card-label { color: rgba(155,126,224,.9); }
.eco-card--aifriendly .eco-card-label { color: rgba(91,156,245,.9); }
.eco-card--dualsoul .eco-card-label { color: rgba(180,140,240,.9); }

/* Foundation status badge */
.foundation-status {
    font-size: 12px;
    color: #9dbfa1;
    background: rgba(0,0,0,.04);
    padding: 2px 8px;
    border-radius: 8px;
}

/* Eco section label */
.eco-section-label {
    margin: 16px 0 8px;
    font-size: 12px;
    color: var(--tx2);
    padding: 0 4px;
}

/* Utility: flex:1 */
.flex-1 { flex: 1; }
