/* =====================================================
   Joey虾虾 - V3 (Linear/Vercel design)
   ===================================================== */

:root {
    --primary: #5E6AD2;
    --primary-dark: #4F5AC0;
    --primary-light: #8B8FDD;
    --primary-bg: rgba(94,106,210,0.06);
    --grad-morning: linear-gradient(135deg,#f59e0b,#f97316);
    --grad-evening: linear-gradient(135deg,#8b5cf6,#a855f7);
    --grad-sector: linear-gradient(135deg,#10b981,#059669);
    --grad-growth: linear-gradient(135deg,#3b82f6,#6366f1);
    --grad-office: linear-gradient(135deg,#6366f1,#8b5cf6);
    --surface: #FFFFFF;
    --background: #FAFAFA;
    --background-elevated: #F5F5F7;
    --border: rgba(0,0,0,0.07);
    --border-hover: rgba(0,0,0,0.12);
    --text-primary: #1A1A2E;
    --text-secondary: #6F6F7A;
    --text-muted: #9D9DAF;
    --text-inverse: #FFFFFF;
    --success: #0CAF60;
    --warning: #F5A623;
    --danger: #E5484D;
    --info: #5E6AD2;
    --shadow-xs: 0 1px 2px rgba(0,0,0,0.03);
    --shadow-sm: 0 1px 3px rgba(0,0,0,0.05);
    --shadow-md: 0 4px 12px rgba(0,0,0,0.06);
    --shadow-lg: 0 8px 24px rgba(0,0,0,0.08);
    --shadow-xl: 0 16px 48px rgba(0,0,0,0.10);
    --radius-xs: 6px;
    --radius-sm: 8px;
    --radius: 10px;
    --radius-md: 12px;
    --radius-lg: 16px;
    --radius-xl: 24px;
    --radius-full: 999px;
    --ease-spring: cubic-bezier(0.16,1,0.3,1);
    --ease-smooth: cubic-bezier(0.4,0,0.2,1);
}

@media (prefers-color-scheme: dark) {
    :root {
        --surface: #1A1A2E;
        --background: #121220;
        --background-elevated: #1E1E34;
        --border: rgba(255,255,255,0.08);
        --border-hover: rgba(255,255,255,0.14);
        --text-primary: #E8E8F0;
        --text-secondary: #9494A8;
        --text-muted: #6A6A80;
    }
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;background:var(--background);color:var(--text-primary);line-height:1.6;min-height:100vh;text-align:center;padding-top:64px;-webkit-font-smoothing:antialiased}
.main-container{max-width:1200px;margin:0 auto;padding:88px 24px 40px}
.page-container{max-width:480px;margin:0 auto;padding:56px 24px}

/* ===== 导航栏 (毛玻璃) ===== */
.navbar{position:fixed;top:0;left:0;right:0;height:64px;background:rgba(255,255,255,0.85);backdrop-filter:blur(20px)saturate(180%);-webkit-backdrop-filter:blur(20px)saturate(180%);border-bottom:1px solid var(--border);z-index:1000;display:flex;align-items:center;padding:0 24px;transition:background .3s var(--ease-smooth)}
@media(prefers-color-scheme:dark){.navbar{background:rgba(26,26,46,0.88)}}
.navbar-container{max-width:1200px;width:100%;margin:0 auto;display:flex;justify-content:space-between;align-items:center}
.navbar-brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--text-primary);font-weight:700;font-size:17px;letter-spacing:-.3px;transition:opacity .2s}
.navbar-brand:hover{opacity:.7}
.navbar-brand img{width:34px;height:34px;border-radius:var(--radius-sm)}
.navbar-links{display:flex;align-items:center;gap:2px}
.navbar-links a{padding:7px 14px;border-radius:var(--radius-sm);font-size:13.5px;font-weight:500;color:var(--text-secondary);text-decoration:none;transition:all .15s var(--ease-smooth);letter-spacing:-.1px}
.navbar-links a:hover{color:var(--text-primary);background:var(--primary-bg)}
.navbar-links a.active{color:var(--primary);background:var(--primary-bg)}

.nav-dropdown{position:relative}
.nav-dropdown-trigger{padding:7px 14px;border-radius:var(--radius-sm);font-size:13.5px;font-weight:500;color:var(--text-secondary);cursor:default;transition:all .15s var(--ease-smooth);user-select:none;letter-spacing:-.1px;display:inline-block}
.nav-dropdown-trigger:hover{color:var(--text-primary);background:var(--primary-bg)}
.nav-dropdown-trigger.active{color:var(--primary);font-weight:600;background:transparent}
.nav-dropdown-menu{display:none;position:absolute;top:calc(100% + 6px);left:50%;transform:translateX(-50%);background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);border:1px solid var(--border);min-width:160px;padding:6px;z-index:1001;animation:ddIn .15s var(--ease-smooth)}

.nav-dropdown-menu a{display:flex;align-items:center;gap:9px;padding:9px 14px;font-size:13.5px;color:var(--text-secondary);text-decoration:none;border-radius:var(--radius-xs);transition:all .12s var(--ease-smooth);white-space:nowrap}
.nav-dropdown-menu a:hover{background:var(--background-elevated);color:var(--text-primary)}
.nav-dropdown-menu a.active{color:var(--primary);font-weight:600}
.dd-icon{font-size:15px;width:20px;text-align:center}
.dd-section{margin-bottom:2px}
.dd-section:not(:last-child){padding-bottom:4px;margin-bottom:4px;border-bottom:1px solid var(--border)}
.dd-section-title{display:flex;align-items:center;gap:7px;padding:9px 14px;font-size:14px;font-weight:700;color:var(--text-primary)!important;text-decoration:none;border-radius:var(--radius-xs);transition:all .12s var(--ease-smooth);white-space:nowrap}
.dd-section-title:hover{background:var(--background-elevated)}
.dd-section-items{padding-left:6px}
.dd-sub-item{display:flex;align-items:center;gap:7px;padding:7px 14px 7px 22px!important;font-size:13px;color:var(--text-secondary);text-decoration:none;border-radius:var(--radius-xs);transition:all .12s var(--ease-smooth);white-space:nowrap;justify-content:space-between}
.dd-sub-item:hover{background:var(--background-elevated);color:var(--text-primary)}
.dd-sub-item.active{color:var(--primary)!important;font-weight:600}
.dd-disabled{display:flex;align-items:center;gap:7px;padding:9px 14px;font-size:13px;color:var(--text-dim);opacity:.45;cursor:default;white-space:nowrap}
@keyframes ddIn{from{opacity:0;transform:translateX(-50%)translateY(-4px)}to{opacity:1;transform:translateX(-50%)translateY(0)}}

/* ===== 搜索 ===== */
.navbar-search{margin-right:12px;flex-shrink:0}
.navbar-search-box{position:relative;display:flex;align-items:center}
.navbar-search input{width:140px;height:34px;padding:0 34px 0 14px;border:1px solid var(--border);border-radius:20px;background:var(--background-elevated);font-size:13px;color:var(--text-primary);outline:none;transition:all .2s var(--ease-smooth)}
.navbar-search input:focus{width:200px;border-color:var(--primary);box-shadow:0 0 0 3px rgba(94,106,210,0.1);background:var(--surface)}
.navbar-search-icon{position:absolute;right:11px;width:14px;height:14px;color:var(--text-muted);cursor:pointer;pointer-events:none;transition:color .2s}
.navbar-search-icon.clickable{pointer-events:auto;color:var(--primary)}

/* ===== 用户 ===== */
.navbar-user{display:flex;align-items:center;gap:12px;flex-shrink:0}
.navbar-user-dropdown{position:relative}
.navbar-user-info{display:flex;align-items:center;gap:8px;padding:5px 10px 5px 5px;border-radius:var(--radius-full);cursor:default;transition:background .15s;text-decoration:none}
.navbar-user-info:hover{background:var(--background-elevated)}
.navbar-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;border:1.5px solid var(--border)}
.navbar-username{font-size:13.5px;font-weight:600;color:var(--text-primary)}
.dropdown-arrow{font-size:9px;color:var(--text-muted);margin-left:2px}
.user-dropdown-menu{display:none;position:absolute;top:calc(100% + 4px);right:0;background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);border:1px solid var(--border);min-width:180px;padding:6px;z-index:1001;animation:ddIn .15s var(--ease-smooth)}
.navbar-user-dropdown:hover .user-dropdown-menu{display:block}
.dropdown-item{display:block;padding:9px 14px;font-size:13.5px;color:var(--text-secondary);text-decoration:none;border-radius:var(--radius-xs);transition:all .12s}
.dropdown-item:hover{background:var(--background-elevated);color:var(--text-primary)}
.dropdown-divider{height:1px;background:var(--border);margin:4px 8px}
.dropdown-checkin-row{display:flex;align-items:center;justify-content:center;gap:10px;padding:8px 12px}
.dropdown-checkin-btn{padding:6px 16px;border:none;border-radius:var(--radius-full);background:linear-gradient(135deg,#5E6AD2,#8B8FDD);color:#fff;font-size:12.5px;font-weight:600;cursor:pointer;transition:all .15s var(--ease-smooth)}
.dropdown-checkin-btn:hover{transform:scale(1.04);box-shadow:0 2px 8px rgba(94,106,210,0.3)}
.dropdown-checkin-done{font-size:12.5px;color:var(--success);font-weight:500}
.dropdown-checkin-streak{font-size:12px;color:var(--text-muted)}

/* ===== 表单 ===== */
.form-group{margin-bottom:24px}
.form-label{display:block;font-size:13px;font-weight:600;color:var(--text-primary);margin-bottom:8px}
.form-input{width:100%;padding:14px 16px;border:2px solid var(--border);border-radius:var(--radius);font-size:15px;color:var(--text-primary);background:var(--surface);transition:all .2s var(--ease-smooth)}
.form-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px rgba(94,106,210,0.1)}
.form-input::placeholder{color:var(--text-muted)}
.form-hint{font-size:12px;color:var(--text-muted);margin-top:6px}
.form-error{font-size:12px;color:var(--danger);margin-top:6px}

/* ===== 按钮 (Linear风格) ===== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;border:none;border-radius:var(--radius-sm);font-size:14px;font-weight:600;cursor:pointer;transition:all .15s var(--ease-smooth);text-decoration:none;letter-spacing:-.2px}
.btn-primary{background:var(--primary);color:#fff}
.btn-primary:hover{background:var(--primary-dark);transform:translateY(-1px);box-shadow:var(--shadow-md)}
.btn-secondary{background:var(--background-elevated);color:var(--text-primary)}
.btn-secondary:hover{background:var(--border)}
.btn-outline{background:transparent;border:1.5px solid var(--border);color:var(--text-primary)}
.btn-outline:hover{border-color:var(--primary);color:var(--primary)}
.btn-danger{background:var(--danger);color:#fff}
.btn-danger:hover{background:#dc2626}
.btn-sm{padding:8px 16px;font-size:12.5px}
.btn-lg{padding:14px 28px;font-size:15px}
.btn-block{width:100%}
.btn-group{display:flex;gap:12px;margin-top:24px}

/* ===== 卡片 ===== */
.card{background:var(--surface);border-radius:var(--radius-lg);padding:32px;margin-bottom:24px;box-shadow:var(--shadow-sm);border:1px solid var(--border);transition:box-shadow .2s var(--ease-smooth),transform .2s var(--ease-smooth)}
.card:hover{box-shadow:var(--shadow-md)}
.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}
.card-title{font-size:24px;font-weight:700;color:var(--text-primary);letter-spacing:-.5px}
.card-subtitle{font-size:14px;color:var(--text-muted);margin-top:4px}

/* ===== 功能卡片 (首页) ===== */
.feature-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-bottom:32px}
.feature-card{position:relative;border-radius:var(--radius-lg);padding:28px 24px;cursor:pointer;transition:box-shadow .3s var(--ease-spring), border-color .3s var(--ease-spring);overflow:hidden;min-height:160px;display:flex;flex-direction:column;justify-content:space-between}
.feature-card::before{content:'';position:absolute;inset:0;transition:opacity .3s;z-index:1}
.feature-card:hover{box-shadow:var(--shadow-xl)}
.feature-card>*{position:relative;z-index:2}
.feature-card.morning,.feature-card.daily-report{background:var(--grad-morning);color:#fff}
.feature-card.evening{background:var(--grad-evening);color:#fff}
.feature-card.sector,.feature-card.sector-prediction{background:var(--grad-sector);color:#fff}
.feature-card.feedback{background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff}
.feature-card.daily-growth{background:var(--grad-growth);color:#fff}
.feature-card.coming{background:linear-gradient(135deg,#6b7280,#4b5563);color:#fff;cursor:default}
.feature-card.disabled{background:#e5e7eb;color:#9ca3af;cursor:not-allowed}
.feature-card.disabled::before{opacity:1;background:rgba(255,255,255,0.5)}
.feature-icon{font-size:36px;margin-bottom:16px}
.feature-title{font-size:18px;font-weight:700;margin-bottom:8px}
.feature-desc{font-size:13px;opacity:.9}
.feature-badge{position:absolute;top:16px;right:16px;background:rgba(255,255,255,0.25);backdrop-filter:blur(8px);padding:4px 12px;border-radius:var(--radius-full);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}

/* ===== 提示 ===== */
.alert{padding:14px 18px;border-radius:var(--radius-sm);margin-bottom:16px;font-size:13.5px;display:flex;align-items:flex-start;gap:10px;animation:slideIn .25s var(--ease-smooth)}
.alert-success{background:#d1fae5;color:#065f46;border:1px solid #a7f3d0}
.alert-error{background:#fee2e2;color:#991b1b;border:1px solid #fecaca}
.alert-warning{background:#fef3c7;color:#92400e;border:1px solid #fde68a}
.alert-info{background:#dbeafe;color:#1e40af;border:1px solid #bfdbfe}
@keyframes slideIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}

/* ===== 功能列表 ===== */
.feature-list{display:flex;flex-direction:column;gap:12px}
.feature-item{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);transition:all .15s var(--ease-smooth)}
.feature-item:hover{border-color:var(--border-hover);box-shadow:var(--shadow-xs)}
.feature-item.disabled{opacity:.5;background:var(--background-elevated)}
.feature-item-info{display:flex;align-items:center;gap:12px}
.feature-item-icon{font-size:24px}
.feature-item-content h4{font-size:15px;font-weight:600;color:var(--text-primary);margin-bottom:2px}
.feature-item-content p{font-size:13px;color:var(--text-muted)}
.feature-item-status{font-size:13px;font-weight:600;padding:4px 12px;border-radius:var(--radius-full)}
.feature-item-status.enabled{background:#d1fae5;color:#065f46}
.feature-item-status.disabled{background:var(--background-elevated);color:var(--text-muted)}
.feature-item-status.locked{background:#fef3c7;color:#92400e}

/* ===== 头像 ===== */
.avatar-selector{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin:20px 0}
.avatar-option{width:100%;aspect-ratio:1;border-radius:var(--radius);cursor:pointer;border:3px solid transparent;transition:all .2s var(--ease-smooth);overflow:hidden;background:var(--background-elevated)}
.avatar-option:hover{border-color:var(--border);transform:scale(1.05)}
.avatar-option.selected{border-color:var(--primary);box-shadow:0 0 0 4px rgba(94,106,210,0.2)}
.avatar-option img{width:100%;height:100%;object-fit:cover}

/* ===== 页脚 ===== */
.footer{text-align:center;padding:32px 24px;color:var(--text-muted);font-size:12.5px;border-top:1px solid var(--border);margin-top:40px}
.footer a{color:var(--text-secondary);text-decoration:none}
.footer a:hover{color:var(--primary)}
.footer-beian{margin-top:8px}
.footer-legal{margin-top:8px;margin-bottom:8px;font-size:12.5px}
.footer-legal a{color:var(--text-muted);text-decoration:none}
.footer-legal a:hover{color:var(--primary)}
.footer-legal-sep{margin:0 10px;color:var(--border)}

/* ===== 组件 ===== */
.back-button{display:inline-flex;align-items:center;gap:8px;color:var(--text-secondary);text-decoration:none;font-size:13.5px;font-weight:500;padding:8px 0;margin-bottom:16px;transition:color .2s}
.back-button:hover{color:var(--primary)}

.toggle-switch{position:relative;width:48px;height:26px;background:var(--border);border-radius:var(--radius-full);cursor:pointer;transition:background .3s}
.toggle-switch.active{background:var(--success)}
.toggle-switch::after{content:'';position:absolute;top:3px;left:3px;width:20px;height:20px;background:#fff;border-radius:50%;transition:transform .3s;box-shadow:var(--shadow-sm)}
.toggle-switch.active::after{transform:translateX(22px)}

.loading{display:inline-block;width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

.empty-state{text-align:center;padding:48px 24px;color:var(--text-muted)}
.empty-state-icon{font-size:48px;margin-bottom:16px;opacity:.5}

/* ===== 首页分类卡片 (V3 重设计) ===== */
.cat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;max-width:780px;margin:0 auto}
.cat-card{position:relative;padding:40px 28px;border-radius:var(--radius-lg);cursor:pointer;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-xs);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;height:220px;contain:layout style;overflow:hidden;transition:box-shadow .35s var(--ease-spring), border-color .35s var(--ease-spring)}
.cat-card:hover{box-shadow:var(--shadow-lg);border-color:var(--border-hover)}
.cat-card-icon{font-size:44px;transition:all .35s var(--ease-spring)}
.cat-card:hover .cat-card-icon{opacity:0;width:0;height:0;margin:0;overflow:hidden}
.cat-card-title{font-size:20px;font-weight:700;color:var(--text-primary);transition:all .35s var(--ease-spring)}
.cat-card:hover .cat-card-title{position:absolute;top:14px;left:18px;font-size:14px;font-weight:600;color:var(--text-secondary)}
.cat-card-desc{font-size:13px;color:var(--text-muted);transition:all .35s;line-height:1.4}
.cat-card:hover .cat-card-desc{opacity:0;margin:0;height:0;overflow:hidden}
.cat-card-sub{display:grid;grid-template-columns:1fr 1fr;gap:8px;justify-items:center;opacity:0;max-height:0;overflow:hidden;transition:all .4s var(--ease-spring);width:100%}
.cat-card:hover .cat-card-sub{opacity:1;max-height:120px;overflow-y:auto;margin-top:0;padding-bottom:4px;scrollbar-width:thin;scrollbar-color:rgba(0,0,0,0.1)transparent}
.cat-card:hover .cat-card-sub::-webkit-scrollbar{width:4px}
.cat-card:hover .cat-card-sub::-webkit-scrollbar-thumb{background:rgba(0,0,0,0.1);border-radius:2px}

/* 分类顶部色条 */
.cat-office{border-top:3px solid #3b82f6;background:linear-gradient(180deg,rgba(59,130,246,0.03),var(--surface))}
.cat-daily-growth{border-top:3px solid #10b981;background:linear-gradient(180deg,rgba(16,185,129,0.03),var(--surface))}
.cat-wealth{border-top:3px solid #f59e0b;background:linear-gradient(180deg,rgba(245,158,11,0.03),var(--surface))}
.cat-system{border-top:3px solid #6366f1;background:linear-gradient(180deg,rgba(99,102,241,0.03),var(--surface))}

.cat-tag-link{display:inline-flex;align-items:center;justify-content:center;gap:5px;width:100%;padding:8px 6px;border-radius:var(--radius-full);font-size:12px;font-weight:600;color:#fff;text-decoration:none;transition:all .2s var(--ease-smooth);box-shadow:0 2px 8px rgba(0,0,0,0.1);white-space:nowrap}
.cat-tag-link:hover{transform:scale(1.06);box-shadow:0 4px 16px rgba(0,0,0,0.18)}
.cat-tag-muted{display:inline-flex;align-items:center;justify-content:center;gap:5px;width:100%;padding:8px 6px;border-radius:var(--radius-full);font-size:12px;font-weight:500;background:var(--background-elevated);color:var(--text-muted);text-decoration:none;cursor:pointer;transition:all .2s;white-space:nowrap}
.cat-tag-muted:hover{background:var(--border);color:var(--text-secondary)}
.cat-office .cat-tag-link{background:linear-gradient(135deg,#3b82f6,#2563eb)}
.cat-daily-growth .cat-tag-link{background:linear-gradient(135deg,#10b981,#059669)}
.cat-wealth .cat-tag-link{background:linear-gradient(135deg,#f59e0b,#dc2626)}
.cat-system .cat-tag-link{background:linear-gradient(135deg,#6366f1,#4f46e5)}
.cat-card-sub>.cat-tag-link:last-child:nth-child(odd),.cat-card-sub>.cat-tag-muted:last-child:nth-child(odd){grid-column:1/-1;max-width:50%}

/* ===== 响应式 ===== */
@media(max-width:768px){
    .navbar-links{display:none}
    .feature-grid{grid-template-columns:1fr}
    .main-container{padding:80px 16px 24px}
    .card{padding:24px}
    .btn-group{flex-direction:column}
    .btn{width:100%}
    .avatar-selector{grid-template-columns:repeat(5,1fr)}
    .cat-grid{grid-template-columns:1fr;max-width:360px}
}
@media(max-width:500px){.cat-grid{grid-template-columns:1fr;max-width:320px}}

/* ===== 动画 ===== */
.card,.feature-card{animation:fadeIn .4s var(--ease-smooth)}
.feature-card:nth-child(1){animation-delay:.05s}
.feature-card:nth-child(2){animation-delay:.1s}
.feature-card:nth-child(3){animation-delay:.15s}
.feature-card:nth-child(4){animation-delay:.2s}
@keyframes fadeIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}

/* ===== 浮动习惯按钮 ===== */
.floating-habits{position:fixed;bottom:24px;right:24px;z-index:9990;display:flex;flex-direction:row;gap:10px;align-items:center}
.floating-habits-inner{display:flex;flex-direction:row;gap:10px;align-items:center}
.fh-circle{width:48px;height:48px;border-radius:50%;flex-shrink:0;background:var(--surface);backdrop-filter:blur(20px);border:1.5px solid var(--border);box-shadow:var(--shadow-md);display:flex;align-items:center;justify-content:center;font-size:22px;cursor:pointer;position:relative;transition:all .2s var(--ease-spring)}
.fh-circle:active{transform:scale(.9)}
.fh-circle:hover{border-radius:24px;padding:0 14px 0 10px;gap:10px;width:auto;min-width:48px;box-shadow:var(--shadow-lg)}
.fh-circle .fh-label{display:none;font-size:13px;font-weight:600;color:var(--text-primary)}
.fh-circle:hover .fh-label{display:inline}
.fh-circle .fh-amount{display:none;font-size:11px;color:var(--text-muted)}
.fh-circle:hover .fh-amount{display:inline}
.fh-circle::after{content:attr(data-count);position:absolute;top:-6px;right:-6px;background:var(--primary);color:#fff;font-size:10px;font-weight:700;min-width:18px;height:18px;line-height:18px;text-align:center;border-radius:9px;padding:0 4px;display:none}
.fh-circle.has-count::after{display:block}
.fh-circle:hover::after{display:none}

/* ===== Toast ===== */
.reminder-toast{position:fixed;bottom:90px;right:24px;z-index:9995;pointer-events:none;animation:toastIn .5s var(--ease-spring)forwards}
.toast-card{width:320px;height:160px;background:var(--surface);backdrop-filter:blur(24px);border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;pointer-events:auto}
.toast-card-close{position:absolute;top:8px;right:12px;width:28px;height:28px;border-radius:50%;border:1px solid var(--border);background:var(--surface);font-size:14px;cursor:pointer;color:var(--text-muted);display:flex;align-items:center;justify-content:center;transition:all .2s}
.toast-card-close:hover{color:var(--text-primary);border-color:var(--border-hover)}
@keyframes toastIn{from{opacity:0;transform:translateY(20px)scale(.85)}to{opacity:1;transform:translateY(-80px)scale(1)}}

/* ===== 表格 ===== */
.data-table,.admin-table{width:100%;border-collapse:separate;border-spacing:0;font-size:14px;background:var(--surface);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-xs);border:1px solid var(--border)}
.data-table th,.admin-table th{background:var(--background-elevated);color:var(--text-secondary);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.5px;padding:12px 16px;border-bottom:1px solid var(--border)}
.data-table td,.admin-table td{padding:14px 16px;border-bottom:1px solid var(--border);color:var(--text-primary)}
.data-table tr:last-child td,.admin-table tr:last-child td{border-bottom:none}
.data-table tr:hover td,.admin-table tr:hover td{background:var(--primary-bg)}

/* ===== 管理后台 ===== */
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;margin-bottom:24px}
.stat-card{background:var(--surface);border-radius:var(--radius);padding:20px;border:1px solid var(--border);text-align:center;transition:all .2s var(--ease-smooth)}
.stat-card:hover{border-color:var(--border-hover);box-shadow:var(--shadow-sm)}
.stat-value{font-size:32px;font-weight:700;color:var(--primary);letter-spacing:-1px}
.stat-label{font-size:12.5px;color:var(--text-muted);margin-top:4px}

/* ===== 学点东西 & Power BI 模拟器 ===== */
.nav-badge{display:inline-block;font-size:10px;font-weight:700;padding:1px 6px;border-radius:3px;margin-left:4px;vertical-align:middle;white-space:nowrap}
.nav-badge.trial{background:#fff0f0;color:#e74c3c;border:1px solid #e74c3c}
.nav-badge.purchased{background:#f0fff0;color:#27ae60;border:1px solid #27ae60}
.cat-card.cat-learn{border-top:3px solid #e74c3c}
.cat-card.cat-learn .cat-card-icon{background:linear-gradient(135deg,#fef3c7,#fde68a)}
.cat-learn .cat-tag-link{background:linear-gradient(135deg,#e74c3c,#c0392b);color:#fff}
