*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:26px}body{margin:0;background:#f6f8f1;color:#293d35;font:15px/1.6 -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #e0a62c;outline-offset:3px}.topbar{max-width:1280px;margin:auto;padding:25px 32px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #dce4da}.brand{font-weight:750;font-size:20px;display:flex;align-items:center;gap:11px}.brand-mark{display:block;width:42px;height:42px;overflow:hidden}.brand-mark img{display:block;width:100%;height:100%;object-fit:contain}.local-badge{font-size:12px;color:#69796e;display:flex;align-items:center;gap:7px}.local-badge i{width:7px;height:7px;background:#6c9774;border-radius:50%}main{max-width:1280px;margin:auto;padding:0 32px}.welcome{display:flex;justify-content:space-between;align-items:center;padding:38px 0 30px;gap:24px}.eyebrow{margin:0 0 10px;font-size:12px;font-weight:650;letter-spacing:2px;color:#7d8f76}h1{font-size:clamp(28px,3.4vw,43px);line-height:1.35;letter-spacing:-1.5px;margin:0 0 13px;font-weight:750}h1 span{color:#54866b}.intro{color:#778074;font-size:14px;line-height:1.9;margin:0}.welcome-note{display:flex;align-items:center;gap:22px;background:#eaf0df;border-radius:48% 42% 46% 40%;padding:25px 42px;transform:rotate(-3deg)}.welcome-note>span{font-size:72px;line-height:1;color:#9fb270}.welcome-note p{font-size:13px;color:#70805e;line-height:1.9}.welcome-note strong{font-size:18px;color:#576c49}.category-nav{display:flex;gap:10px;flex-wrap:wrap;padding:0 0 16px}.category-nav a{font-size:13px;background:white;border:1px solid #dde4d8;border-radius:24px;padding:7px 17px;transition:background .15s}.category-nav a:hover{background:#e7eedf}.tool-section{padding:10px 0 15px}h2{font-size:19px;margin:9px 0 16px;display:flex;align-items:center;gap:12px}h2 span{font-size:11px;font-weight:400;color:#8b9586}.tool-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.tool-card{background:#fff;border:1px solid #e4e9df;border-radius:17px;overflow:hidden;transition:transform .18s,box-shadow .18s}.tool-card:hover{transform:translateY(-3px);box-shadow:0 9px 24px #3047330c}.tool-card>img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;object-position:top;background:#edf1e5;border-bottom:1px solid #eef0e8}.card-body{padding:17px 18px 18px}.card-body h3{font-size:16px;margin:0 0 6px;font-weight:700}.card-body p{font-size:12px;color:#7a8275;line-height:1.75;margin:0 0 14px;min-height:42px}.start{display:flex;align-items:center;justify-content:space-between;color:#4e745d;font-size:12px;font-weight:650;background:#f0f5eb;border:0;border-radius:8px;padding:8px 12px;width:100%;cursor:pointer}.start::after{content:'↗';font-size:16px}.start:hover{background:#e2edd9}.start.disabled{opacity:.62;cursor:pointer}.start.disabled::after{content:'🔒';font-size:12px}.card-meta{display:flex;justify-content:space-between;gap:8px;color:#7a8275;font-size:12px;margin:-5px 0 12px}.access-state{background:#f1f1ed;border-radius:20px;padding:2px 7px}.access-state.unlocked{background:#e6f2e6;color:#3e7857}.card-actions{display:grid;gap:7px}.trial-button{border:1px solid #d5e3d2;background:#fff;color:#567261;border-radius:8px;padding:7px;cursor:pointer;font-size:12px}.trial-button:hover{background:#f4f8f1}.account-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.account-name{font-weight:650}.account-link{border:1px solid #d8e3d7;border-radius:20px;padding:6px 11px;background:#fff;color:#526b5e;font:12px/1.4 inherit;cursor:pointer}.dashboard-message{background:#fff7dd;color:#785e20;border:1px solid #e9d99f;border-radius:10px;padding:10px 13px;margin:15px 0}.dashboard-message.error{background:#fae9e9;color:#934343;border-color:#efcaca}.redeem-dialog{border:0;border-radius:16px;box-shadow:0 18px 70px #1d352a42;padding:25px;width:min(440px,calc(100% - 32px));color:#293d35}.redeem-dialog::backdrop{background:#1b302759}.redeem-dialog h2{margin:0 0 6px}.redeem-dialog>p{color:#718078;margin:0 0 18px}.redeem-dialog label,.auth-card label{display:grid;gap:6px;color:#687970;font-size:13px}.redeem-dialog input,.auth-card input{border:1px solid #cad9cc;border-radius:9px;padding:11px;font:inherit}.redeem-dialog form:not(.dialog-close){display:grid;gap:12px}.dialog-close{float:right}.dialog-close button{border:0;background:transparent;font-size:25px;color:#748177;cursor:pointer}.primary-button{border:0;background:#3f725a;color:#fff;border-radius:9px;padding:11px 16px;font:inherit;font-weight:650;cursor:pointer}.primary-button:disabled{opacity:.6}.form-message{display:block;min-height:24px;margin-top:10px;color:#66796e}.form-message.success{color:#2d7650}.form-message.error{color:#a34343}.auth-page{min-height:100vh}.auth-layout{max-width:1000px;min-height:100vh;display:grid;grid-template-columns:1.15fr .85fr;align-items:center;gap:70px;padding:50px}.auth-intro>.brand{margin-bottom:65px}.auth-intro>p:last-child{color:#718078;max-width:480px}.auth-card{background:#fff;border:1px solid #dfe8df;border-radius:18px;padding:28px;box-shadow:0 12px 40px #2f513714}.auth-card h2{margin:18px 0}.auth-card form{display:grid;gap:15px}.auth-tabs{display:flex;background:#f0f4ed;border-radius:10px;padding:4px}.auth-tabs button{flex:1;border:0;background:transparent;border-radius:7px;padding:8px;cursor:pointer;color:#687970}.auth-tabs button.active{background:#fff;color:#2f5643;box-shadow:0 2px 8px #29422b10}.back-link{display:inline-block;color:#688074;margin-top:14px;font-size:13px}footer{display:flex;justify-content:space-between;gap:20px;font-size:11px;color:#8a9583;margin-top:28px;padding:25px 0 30px;border-top:1px solid #e0e5da}.skip{position:fixed;top:-80px;background:#fff;padding:12px;z-index:99}.skip:focus{top:10px}@media(min-width:1500px){main,.topbar{max-width:1400px}.tool-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}@media(max-width:1050px){.tool-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.welcome-note{padding:20px 25px}}@media(max-width:740px){main{padding:0 20px}.topbar{padding:20px}.welcome-note{display:none}.tool-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.local-badge{font-size:10px}.brand{font-size:17px}.welcome{padding-top:28px}footer{flex-direction:column;gap:5px}.card-body{padding:13px}.card-body h3{font-size:14px}.auth-layout{display:block;padding:30px 20px}.auth-intro>.brand{margin-bottom:35px}.auth-card{margin-top:35px}.account-name{display:none}}@media(max-width:420px){.tool-grid{grid-template-columns:1fr}.card-body p{min-height:0}.local-badge{display:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* 扫码支付弹窗 */
.payment-dialog{width:min(480px,calc(100% - 32px));text-align:center}.payment-dialog h2{justify-content:center;padding-top:7px}.payment-dialog .dialog-close{position:absolute;right:18px;top:13px}.payment-price{font-size:16px!important}.payment-price strong{color:#2f6f50;font-size:21px}.payment-methods{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;justify-content:center}.payment-methods.single{grid-template-columns:minmax(180px,260px)}.payment-method{border:1px solid #d4ded3;background:#f5f8f2;color:#345344;border-radius:10px;padding:13px 10px;min-height:50px;font:inherit;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;text-align:center}.payment-method.alipay{color:#1266c6;background:#eef6ff}.payment-method.wechat{color:#168947;background:#eefbf3}.payment-method:disabled{opacity:.55}.payment-qr{display:grid;justify-items:center;gap:6px}.payment-qr img{width:min(320px,80vw);height:auto;aspect-ratio:1;background:#fff;border:1px solid #e0e7df;border-radius:12px;padding:9px}.payment-qr p,.payment-qr small{margin:0}.payment-qr small{color:#829087}

/* 已购买与客服入口 */
.purchased-section{margin:4px 0 14px;padding:18px;border:1px solid #cfe1ce;border-radius:20px;background:linear-gradient(135deg,#f2f8ee,#fbfdf9)}
.purchased-section h2{margin-top:0;color:#34654d}
.customer-service-button{position:fixed;right:22px;bottom:22px;z-index:90;border:0;border-radius:999px;background:#3f735c;color:#fff;padding:12px 18px;font:700 14px/1.2 inherit;box-shadow:0 9px 30px #23433335;cursor:pointer}
.customer-service-button::before{content:'💬';margin-right:7px}.customer-service-button:hover{filter:brightness(.96)}.customer-service-button[hidden]{display:none}
.customer-service-dialog{border:0;border-radius:20px;box-shadow:0 18px 70px #1d352a42;padding:26px;width:min(520px,calc(100% - 32px));color:#293d35;text-align:center}
.customer-service-dialog::backdrop{background:#1b302759}.customer-service-dialog .dialog-close{position:absolute;right:16px;top:12px}.customer-service-dialog h2{justify-content:center;margin:3px 0 14px}
.customer-panel>img{display:block;width:min(260px,72vw);height:auto;aspect-ratio:1;object-fit:contain;margin:0 auto 14px;padding:7px;border:1px solid #dfe8df;border-radius:14px;background:#fff}
.customer-service-description{color:#708078;white-space:pre-wrap;margin:0 auto 16px;max-width:310px}.customer-service-wechat{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;padding:12px;border-radius:11px;background:#f1f6ee}
.customer-service-wechat button{border:1px solid #c8d9ca;border-radius:8px;background:#fff;color:#3f735c;padding:7px 10px;font:inherit;cursor:pointer}
.customer-service-tabs{display:flex;gap:6px;padding:5px;margin:0 auto 18px;border-radius:12px;background:#eef4eb}.customer-service-tabs button{flex:1;border:0;border-radius:9px;padding:9px;background:transparent;color:#64766c;font:700 14px/1.2 inherit;cursor:pointer}.customer-service-tabs button.active{background:#fff;color:#32664f;box-shadow:0 2px 9px #23433316}.customer-service-tabs[hidden]{display:none}.customer-panel[hidden]{display:none}.customer-feedback-form{display:grid;gap:12px;text-align:left}.customer-feedback-form label{display:grid;gap:5px;color:#596d63;font-size:13px}.customer-feedback-form input,.customer-feedback-form select,.customer-feedback-form textarea{width:100%;border:1px solid #cfddcf;border-radius:10px;background:#fff;padding:10px;font:inherit;color:#293d35}.customer-feedback-form textarea{resize:vertical}.customer-feedback-form input[type=file]{font-size:13px}.customer-feedback-form>button{border:0;border-radius:11px;background:#3f735c;color:#fff;padding:11px;font:700 14px/1.2 inherit;cursor:pointer}.customer-feedback-form>button:disabled{opacity:.6}.feedback-account{margin:0;padding:9px 11px;border-radius:10px;background:#f1f6ee;color:#63746c;font-size:13px}.customer-feedback-form small{color:#7a8981}.customer-feedback-form output{color:#367157;min-height:20px}.customer-feedback-form output.error{color:#b84444}
@media(max-width:520px){.payment-methods{grid-template-columns:1fr}.payment-methods.single{grid-template-columns:1fr}.customer-service-button{right:14px;bottom:14px}.purchased-section{margin-left:-8px;margin-right:-8px;padding:14px}}

/* 当前班级入口 */
.current-class-control{display:flex;align-items:center;gap:7px;border:1px solid #cbdcc9;background:#eef5e9;border-radius:22px;padding:4px 6px 4px 11px;color:#567060;font-size:11px}.current-class-control select{max-width:190px;border:0;background:#fff;border-radius:17px;padding:5px 24px 5px 9px;color:#315744;font:650 12px/1.3 inherit;cursor:pointer}.current-class-empty{border:1px dashed #b9cdb7;background:#f3f8ef;border-radius:20px;padding:6px 11px;color:#477058;font-size:12px;font-weight:650}.class-management-link{font-weight:650}@media(max-width:740px){.current-class-control span{display:none}.current-class-control{padding-left:5px}.current-class-control select{max-width:150px}.class-management-link{display:none}}

/* ==== 首页改版：左侧分类栏 + 右侧搜索与统一卡片网格 ==== */
.dashboard-layout{display:flex;gap:24px;align-items:flex-start;padding:10px 0 8px}
.sidebar{width:200px;flex:none;position:sticky;top:18px;max-height:calc(100vh - 36px);overflow-y:auto}
.sidebar-group{margin-bottom:18px}
.sidebar-title{margin:0 0 8px;padding-left:12px;font-size:12px;color:#8a9484;letter-spacing:1px}
.sidebar-list{display:flex;flex-direction:column;gap:2px}
.sidebar-item{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;border:0;background:transparent;border-radius:10px;padding:9px 12px;font-size:14px;color:#4b5a48;cursor:pointer;text-align:left;transition:background .15s,color .15s}
.sidebar-item:hover{background:#eef3e8}
.sidebar-item.active{background:#e4f0dc;color:#2f5a41;font-weight:700;position:relative}
.sidebar-item.active::before{content:'';position:absolute;left:0;top:9px;bottom:9px;width:4px;border-radius:4px;background:#3f735c}
.sidebar-count{font-size:12px;color:#93a08d;background:#f1f5ec;border-radius:999px;padding:1px 8px}
.sidebar-item.active .sidebar-count{color:#3f735c;background:#d5e6cd}
.content{flex:1;min-width:0}
.content-toolbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:10px}
.search-box{position:relative;width:min(430px,100%);display:flex;align-items:center}
.search-box input{width:100%;border:1px solid #dde4d8;background:#fff;border-radius:999px;padding:10px 38px 10px 16px;font-size:14px;color:#293d33;outline:none;transition:border-color .15s,box-shadow .15s}
.search-box input::placeholder{color:#a3ada0}
.search-box input:focus{border-color:#8fb799;box-shadow:0 0 0 3px #3f735c14}
.search-clear{position:absolute;right:8px;border:0;background:#eef2e9;color:#6d7a68;width:24px;height:24px;border-radius:50%;font-size:15px;line-height:1;cursor:pointer}
.search-clear:hover{background:#e2e9dd}
.result-count{font-size:13px;color:#7a8275}
.content-title{margin:6px 0 14px;font-size:19px;color:#2f4a3b;font-weight:700}
.tool-empty{background:#fff;border:1px dashed #dbe3d7;border-radius:18px;padding:40px 24px;text-align:center;color:#7a8275}
.tool-empty p{margin:0 0 16px}
.category-toggle{display:none;border:1px solid #dde4d8;background:#fff;border-radius:999px;padding:9px 18px;font-size:14px;color:#3f735c;cursor:pointer}
/* 主体最宽 1400px（与顶栏对齐），减少两侧空白 */
main,.topbar{max-width:1400px}
/* 卡片列数：≥1400 四列 / 1100–1400 三列 / 768–1100 两列 / 手机一列 */
@media(min-width:1400px){.tool-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:1399px){.tool-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1180px){.sidebar{width:170px}}
@media(max-width:1100px){.tool-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:920px){
  .dashboard-layout{flex-direction:column;gap:12px}
  .sidebar{display:none;width:100%;position:static;max-height:none;border:1px solid #e2e9dd;border-radius:16px;background:#fff;padding:12px}
  .sidebar.open{display:block}
  .category-toggle{display:inline-flex}
}
@media(max-width:700px){.tool-grid{grid-template-columns:1fr}}

/* ==== 会员状态徽章与卡片状态标签（0012） ==== */
.membership-badge{display:inline-flex;flex-direction:column;gap:1px;padding:5px 12px;border-radius:12px;background:#f2f7ec;border:1px solid #dbe6d6;font-size:12px;color:#5c6f58;line-height:1.3}
.membership-badge b{font-size:13px;color:#37674e}
.membership-badge.active{background:#e7f3e2;border-color:#bcd9b4}
.membership-badge.active.near-expiry{background:#fdf6e3;border-color:#e8d79c}
.membership-badge.active.near-expiry b{color:#8a6a1f}
.membership-badge.expired{background:#f6f2f0;border-color:#e3d3cf;color:#8a6f68}
.membership-badge.expired b{color:#8a5a52}
.access-state.state-owned{background:#e7f3e2;color:#37674e}
.access-state.state-member{background:#e8f0fb;color:#37527e}
.access-state.state-free{background:#eef4ea;color:#4f6b45}
.access-state.state-trial{background:#fdf6e3;color:#8a6a1f}
.access-state.state-admin{background:#eef4ea;color:#4f6b45}
.access-state.state-closed{background:#f3f2ef;color:#8b8b86}
.access-state.state-price{background:#fdf1ec;color:#9a5f3f}
/* 学科分组用紧凑样式，不占据大面积 */
.sidebar-group.compact{margin-bottom:12px}
.sidebar-group.compact .sidebar-title{margin-bottom:5px}
.sidebar-list.compact{flex-direction:row;flex-wrap:wrap;gap:6px}
.sidebar-list.compact .sidebar-item{width:auto;padding:6px 11px;font-size:13px;border:1px solid #e2e9dd;background:#fff}
.sidebar-list.compact .sidebar-item.active{border-color:#bcd9b4}
.sidebar-list.compact .sidebar-count{padding:0 6px}

/* ==== 邮箱验证码输入行 ==== */
.code-row{display:flex;gap:8px;align-items:center}
.code-row input{flex:1}
.code-send{white-space:nowrap;padding:10px 16px;border:1px solid #d5dece;border-radius:10px;background:#f7faf4;color:#4a6b45;font-size:14px;cursor:pointer}
.code-send:disabled{opacity:.5;cursor:not-allowed}
.auth-links{display:flex;justify-content:space-between;align-items:center;margin-top:14px}
.text-link{background:none;border:none;color:#4a6b45;font-size:14px;cursor:pointer;text-decoration:underline;padding:0}
.text-link:hover{color:#37674e}

/* ==== 登录页底部模式切换提示 ==== */
.auth-switch{margin-top:12px;font-size:14px;color:#6d7a68;text-align:center}
.auth-switch .text-link{font-size:14px}

/* 隐藏字段必须真正不渲染：类选择器（display:flex 等）优先级高于 UA 的 [hidden] */
[hidden]{display:none !important}

/* ==== 会员中心 /member.html ==== */
.member-page{padding-bottom:34px}.member-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;padding:24px 0 16px}.member-title{display:flex;align-items:center;gap:9px;margin:0;font-size:28px;color:#173e31;font-weight:800}.member-title img{width:31px;height:31px}.member-heading p{margin:1px 0 0;color:#6f7f77;font-size:14px}.member-layout{align-items:start}.member-content{min-width:0}.member-hero{position:relative;overflow:hidden;min-height:318px;border:1px solid #f0dfa8;border-radius:22px;background:linear-gradient(115deg,#fff2b8 0%,#fff9df 48%,#f6efc8 100%);color:#174c3b;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(300px,.92fr);box-shadow:0 12px 34px rgba(54,77,49,.09)}
.member-hero::before{content:'';position:absolute;inset:auto 0 0;height:70px;background:linear-gradient(180deg,transparent,#fff8df80)}.member-hero-copy{position:relative;z-index:2;padding:28px 34px 25px}.member-eyebrow{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:750;color:#a86d17}.member-eyebrow img{width:25px;height:25px}.member-sparkle{position:absolute;width:22px;left:360px;top:34px}.member-hero h2{margin:9px 0 1px;font-size:35px;line-height:1.18;letter-spacing:-1px;color:#12513c}.member-hero p{margin:0;color:#5e755f}.member-hero-price{display:flex;align-items:end;gap:8px;margin:14px 0 12px}.member-hero-price strong{font-size:40px;line-height:1;color:#146044}.member-hero-price span{font-size:13px;color:#64806b}.member-hero .member-benefits{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px;margin:0;padding:0;list-style:none}.member-benefits li{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:650}.member-benefits li img{width:27px;height:27px;object-fit:contain;flex:none}.member-hero-actions{display:flex;align-items:center;gap:11px;margin-top:16px}.member-hero .member-buy{margin:0;min-width:142px;background:#24694f;color:#fff;border-radius:999px}.member-hero .member-buy:disabled{opacity:.62;cursor:not-allowed}.member-redeem-link{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:43px;padding:0 17px;border:1px solid #27654f;border-radius:999px;font-size:13px;font-weight:700}.member-redeem-link img{width:21px;height:21px}.member-hero small{display:block;margin-top:7px;color:#718173}.member-hero picture{position:relative;z-index:1;display:flex;align-items:end;justify-content:center;padding:18px 22px 0}.member-hero picture img{display:block;width:100%;max-width:430px;max-height:300px;object-fit:contain;object-position:center bottom}.member-summary-grid{display:grid;grid-template-columns:1.06fr .94fr;gap:14px;margin-top:14px}.member-bottom-grid{display:grid;grid-template-columns:1.35fr .85fr;gap:14px;margin-top:14px}.member-card{background:#fff;border:1px solid #dfe8de;border-radius:17px;padding:18px 20px;margin:0;box-shadow:0 6px 18px rgba(43,71,52,.035)}
.member-hero-custom-banner picture{position:absolute;inset:0;z-index:0;display:block;padding:0;pointer-events:none}.member-hero-custom-banner picture::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,246,199,.93) 0%,rgba(255,246,199,.78) 38%,rgba(255,246,199,.16) 66%,transparent 82%)}.member-hero-custom-banner picture img{width:100%;height:100%;max-width:none;max-height:none;object-fit:cover;object-position:center}.member-hero-custom-banner .member-hero-copy{max-width:58%}
.member-card h2{margin:0 0 14px;font-size:17px;color:#2f4a3b}
.member-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:8px 0;border-top:1px solid #f0f3ec}
.member-row:first-of-type{border-top:0}
.member-field{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}
.member-label{font-size:13px;color:#7a8275;min-width:64px}
.member-value{font-size:15px;font-weight:650;color:#293d35}
.member-mini-button{display:inline-flex;align-items:center;gap:6px;border:1px solid #cfdfcd;background:#fff;color:#3f735c;border-radius:9px;padding:7px 13px;font:650 13px/1.4 inherit;cursor:pointer;margin-left:auto}.member-mini-button img{width:18px;height:18px}
.member-mini-button:hover{background:#f2f7ee}
.member-edit{display:grid;gap:12px;padding:12px 0}
.member-edit label{display:grid;gap:6px;font-size:13px;color:#687970}
.member-edit input{border:1px solid #cad9cc;border-radius:9px;padding:10px;font:inherit}
.member-edit-actions{display:flex;gap:10px;align-items:center}
.member-edit-actions .member-mini-button{margin-left:0}
.member-status-body{display:flex;align-items:center;gap:16px}.member-avatar{width:66px;height:66px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#e2f3e4,#c9e8cf);color:#2e7753;font-size:29px;font-weight:800}.member-identity{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.member-identity strong{font-size:18px;color:#5c6f58}
.member-identity strong.is-member{color:#2f6f50}
.member-identity-extra{font-size:13px;color:#6d7a68}
.member-note{margin:8px 0 0;font-size:13px;color:#7a8275}
.member-plan{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.member-plan-price{font-size:28px;font-weight:750;color:#2f6f50;line-height:1.1}
.member-plan-duration{font-size:13px;color:#7a8275}
.member-benefits{flex:1;min-width:220px;margin:0;padding-left:18px;font-size:13px;color:#5c6f58}
.member-buy{margin-left:auto}
.member-owned{display:grid;gap:10px;margin-top:10px}
.member-owned-item{display:flex;align-items:center;gap:12px;flex-wrap:wrap;border:1px solid #e4e9df;border-radius:13px;padding:12px 14px;background:#fafcf7}
.member-owned-item .member-mini-button{margin-left:auto}
.member-owned-note{display:block;font-size:12px;color:#8a9484;margin-top:2px}
.member-empty{display:flex;align-items:center;justify-content:center;gap:16px;min-height:105px;margin-top:8px;font-size:13px;color:#7a8275}.member-empty>img{width:72px;height:72px}.member-empty strong{display:block;color:#465c50}.member-empty p{margin:2px 0}.member-security{display:inline-flex;align-items:center;gap:5px;margin-left:auto;padding:5px 9px;border-radius:999px;background:#edf7ef;color:#43805b;font-size:11px;font-weight:650}.member-security img{width:17px;height:17px}.member-redeem-title{display:flex;align-items:center;gap:9px}.member-redeem-title img{width:28px;height:28px}.member-redeem-title h2{margin:0}.member-redeem-card form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-top:15px}.member-redeem-card input{min-width:0;border:1px solid #d5e1d4;border-radius:10px;padding:10px 12px;font:inherit}.member-redeem-card .primary-button{white-space:nowrap}.member-redeem-card .form-message{margin:7px 0 0}.sidebar-icon img{display:block;width:18px;height:18px;object-fit:contain}
.member-link{color:#3f735c;font-weight:650}
@media(max-width:980px){.member-summary-grid,.member-bottom-grid{grid-template-columns:1fr}.member-hero{grid-template-columns:minmax(0,1.15fr) minmax(240px,.85fr)}}
@media(max-width:740px){.member-heading{padding-top:17px}.member-title{font-size:24px}.member-layout{display:block}.member-layout>.sidebar{margin-bottom:12px}.member-hero{grid-template-columns:1fr}.member-hero-copy{padding:25px 22px 10px}.member-hero h2{font-size:30px}.member-hero .member-benefits{grid-template-columns:1fr 1fr}.member-hero picture{padding-top:0}.member-hero picture img{max-height:225px}.member-hero-custom-banner picture img{max-height:none}.member-hero-custom-banner picture::after{background:linear-gradient(180deg,rgba(255,246,199,.96) 0%,rgba(255,246,199,.88) 58%,rgba(255,246,199,.35) 100%)}.member-hero-custom-banner .member-hero-copy{max-width:none}.member-card{padding:16px}.member-summary-grid,.member-bottom-grid{gap:11px;margin-top:11px}.member-hero-actions{align-items:stretch;flex-direction:column}.member-buy,.member-redeem-link,.member-owned-item .member-mini-button{margin-left:0;width:100%;text-align:center}.member-redeem-card form{grid-template-columns:1fr}.member-sparkle{display:none}}

/* ==== 全站统一加载层 ==== */
.tbox-loader{position:fixed;inset:0;z-index:1000;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#f6f8f1;gap:18px}.tbox-loader[hidden]{display:none}.tbox-loader-inner{display:flex;flex-direction:column;align-items:center;gap:18px}.tbox-loader-logo{width:96px;height:96px;object-fit:contain}.tbox-spinner{width:36px;height:36px;border:4px solid #e3ebe4;border-top-color:#3f735c;border-radius:50%;animation:tbox-spin 1s linear infinite}.tbox-loader-text{font-size:15px;color:#5c6f58;margin:0}@keyframes tbox-spin{to{transform:rotate(360deg)}}.tbox-loader-error{text-align:center;padding:0 24px}.tbox-loader-error-text{font-size:16px;color:#7a4a42;margin:0 0 14px}.tbox-loader-retry{margin-top:4px}

/* ==== 骨架屏 ==== */
.skeleton-card{pointer-events:none}.skeleton-cover{aspect-ratio:16/9;background:#edf1e5;border-radius:17px 17px 0 0}.skeleton-title{width:55%;height:16px;background:#e8ebe3;border-radius:6px;margin:4px 0 10px}.skeleton-line{width:100%;height:12px;background:#edf1e5;border-radius:6px;margin:6px 0}.skeleton-line.short{width:70%}.skeleton-actions{width:100%;height:34px;background:#e8ebe3;border-radius:8px;margin-top:10px}
@keyframes tbox-pulse{0%,100%{opacity:1}50%{opacity:.6}}.skeleton-cover,.skeleton-title,.skeleton-line,.skeleton-actions{animation:tbox-pulse 1.4s ease-in-out infinite}

/* ==== 按钮加载态 ==== */
button[data-tbox-loading]{opacity:.85;cursor:wait}

/* ==== 首页横幅：黄色工具大厅 + 装饰素材 ==== */
.hero-banner{position:relative;display:flex;justify-content:space-between;align-items:flex-end;gap:24px;background:linear-gradient(135deg,#f8d56b 0%,#fcd34d 100%);border-radius:24px;padding:28px 36px 32px;margin:18px 32px 0;overflow:visible;min-height:180px;box-shadow:0 10px 40px rgba(184,140,20,0.12)}
.hero-content{position:relative;z-index:2;flex:1;min-width:0;max-width:600px}
.hero-eyebrow{margin:0 0 8px;font-size:12px;font-weight:650;letter-spacing:2px;color:#8a6a1f}
.hero-title{font-size:clamp(34px,4.5vw,56px);line-height:1.1;letter-spacing:-1.5px;margin:0 0 18px;font-weight:800;color:#2f4a3b}
.hero-search-row{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.hero-search-box{width:min(420px,100%)}
.hero-search-box input{background:#fff;border-color:#e9c55a;box-shadow:0 4px 14px rgba(160,120,10,0.1)}
.hero-search-box input:focus{border-color:#bfa045;box-shadow:0 0 0 3px rgba(191,160,69,0.2)}
.hero-count{font-size:14px;color:#6b5a2a;font-weight:650;white-space:nowrap}

/* 装饰容器 */
.hero-deco{position:absolute;inset:0;z-index:1;pointer-events:none}
.hero-deco .decoration{position:absolute;pointer-events:auto;cursor:default;user-select:none;-webkit-user-drag:none}
.hero-deco .decoration img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none;-webkit-user-drag:none}

/* 位置 */
.deco-mascot{width:220px;height:200px;right:30px;bottom:-18px;z-index:3}
.deco-star{width:46px;height:46px;right:210px;top:22px}
.deco-flower{width:44px;height:44px;right:44px;bottom:22px;z-index:4}
.deco-squiggle{width:60px;height:34px;right:140px;bottom:58px}
.deco-orange-strokes{width:52px;height:30px;left:260px;top:18px;opacity:0.85}
.deco-motion-lines{width:42px;height:32px;right:118px;bottom:100px}
.deco-brand-sparkle{width:38px;height:38px;left:220px;top:22px}

/* 外层负责默认漂浮 */
.decoration-float{animation:hero-float var(--float-dur,6s) ease-in-out infinite alternate both;animation-delay:var(--float-delay,0s)}
@keyframes hero-float{0%{transform:translateY(0)}100%{transform:translateY(var(--float-amp,5px))}}
.deco-mascot.decoration-float{animation-duration:8s;--float-amp:3px}

/* 内层负责 hover 变换 */
.decoration-hover{transition:transform 220ms cubic-bezier(0.34,1.56,0.64,1),opacity 220ms ease,filter 220ms ease;transform-origin:center}
.decoration:hover .decoration-hover{transform:translateY(var(--hover-translate,0)) translateX(var(--hover-translate-x,0)) scale(var(--hover-scale,1)) rotate(var(--hover-rotate,0deg));opacity:var(--hover-opacity,1);filter:brightness(var(--hover-brightness,1))}

/* 单独设置 transform-origin 避免 squiggle 拉伸变形 */
.deco-squiggle .decoration-hover{transform-origin:center;transition:transform 220ms ease,opacity 220ms ease}
.deco-squiggle:hover .decoration-hover{transform:scaleX(var(--hover-scale-x,1)) translateX(var(--hover-translate-x,0))}

/* 主角使用回弹效果 */
.deco-mascot .decoration-hover{transition:transform 260ms cubic-bezier(0.34,1.8,0.64,1);transform-origin:bottom center}
.deco-mascot:hover .decoration-hover{transform:translateY(-4px) scale(1.035) rotate(-2deg)}

/* 橙色短线弹出反馈 */
.deco-orange-strokes .decoration-hover{transition:transform 180ms cubic-bezier(0.34,1.56,0.64,1),opacity 180ms ease}
.deco-orange-strokes:hover .decoration-hover{animation:pop-once 220ms ease forwards}
@keyframes pop-once{0%{transform:scale(1)}50%{transform:scale(1.12)}100%{transform:scale(1.08)}}

/* 动感线只执行一次 */
.deco-motion-lines .decoration-hover{transition:transform 220ms ease}
.deco-motion-lines:hover .decoration-hover{transform:translate(3px,3px) rotate(3deg)}

/* 移动端 */
@media(max-width:768px){
  .hero-banner{margin:12px 20px 0;padding:22px 22px 28px;min-height:150px}
  .deco-mascot{width:150px;height:136px;right:12px;bottom:-12px}
  .deco-star,.deco-flower{display:none}
  .deco-squiggle,.deco-orange-strokes,.deco-motion-lines{display:none}
  .deco-brand-sparkle{width:28px;height:28px;left:auto;right:130px;top:16px}
  .hero-title{font-size:30px;margin-bottom:14px}
  .hero-search-row{gap:12px}
  .hero-search-box{width:100%;max-width:320px}
  .hero-count{font-size:13px}
}
@media(max-width:520px){
  .hero-banner{border-radius:18px;padding:18px 18px 22px}
  .deco-mascot{width:120px;height:110px;right:8px;bottom:-8px}
  .deco-brand-sparkle{display:none}
  .hero-title{font-size:26px}
  .hero-search-box input{padding:9px 32px 9px 12px;font-size:14px}
  .hero-count{width:100%}
}

/* 减少动画 */
@media(prefers-reduced-motion:reduce){
  .decoration-float{animation:none !important}
  .decoration-hover,.deco-mascot .decoration-hover,.deco-squiggle .decoration-hover,.deco-orange-strokes .decoration-hover,.deco-motion-lines .decoration-hover{transition:none !important;animation:none !important;transform:none !important;opacity:1 !important;filter:none !important}
}

/* 触摸设备不执行 hover 动画 */
@media(hover:none) and (pointer:coarse){
  .decoration-hover{transition:none !important}
  .decoration:hover .decoration-hover,.deco-mascot:hover .decoration-hover{transform:none !important;opacity:1 !important;filter:none !important;animation:none !important}
}

/* ==== 首页改版：顶栏头像菜单 ==== */
.account-bar{flex:1;min-width:0}
.topbar-spacer{flex:1}
.menu-icon{display:inline-grid;place-items:center;width:17px;height:17px;flex:none}
.menu-icon svg{width:17px;height:17px}
.avatar-wrap{position:relative}
.avatar-button{width:38px;height:38px;border-radius:50%;border:2px solid #fff;background:#f2c94c;color:#5b4300;font:700 15px/1 inherit;cursor:pointer;box-shadow:0 3px 10px rgba(120,90,10,.22);display:grid;place-items:center;padding:0}
.avatar-menu{position:absolute;right:0;top:46px;background:#fff;border:1px solid #dde7d8;border-radius:14px;box-shadow:0 14px 36px rgba(35,60,40,.16);padding:8px;min-width:210px;z-index:60}
.avatar-menu-header{display:grid;gap:1px;padding:8px 10px 10px;border-bottom:1px solid #eef2ea;margin-bottom:6px}
.avatar-menu-header strong{font-size:14px;color:#2f4a3b}
.avatar-menu-header span{font-size:12px;color:#8a9586;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.avatar-menu-item{display:flex;align-items:center;gap:9px;width:100%;padding:9px 11px;border:0;border-radius:9px;background:none;font:inherit;font-size:14px;color:#3c5346;cursor:pointer;text-align:left}
.avatar-menu-item:hover{background:#eef5e9}
.logout-btn{display:inline-flex;align-items:center;gap:6px}

/* ==== 左侧导航面板 ==== */
.sidebar{background:#fff;border:1px solid #dfe8dc;border-radius:18px;padding:12px 10px;box-shadow:0 8px 24px rgba(40,70,45,.06)}
.sidebar-group{padding:10px 6px}
.sidebar-group + .sidebar-group{border-top:1px solid #eef2ea;margin-top:8px;padding-top:14px}
.sidebar-item{gap:9px}
.sidebar-icon{display:inline-grid;place-items:center;width:17px;height:17px;color:#93a08d;flex:none}
.sidebar-icon svg{width:17px;height:17px}
.sidebar-item.active .sidebar-icon{color:#2f5a41}
.sidebar-item.item-member{background:#fbf3d0;border:1px solid #eedf9f}
.sidebar-item.item-member:hover{background:#f6ebba}
.sidebar-item.item-member .sidebar-icon{color:#a8821d}
.sidebar-item.item-redeem,.sidebar-item.item-tutorials{background:#fff;border:1px solid #dfe8dc}
.sidebar-item.item-tutorials:hover{background:#eef3e8}
.sidebar-item.item-announcement{position:relative;background:#fff;border:1px solid #dfe8dc}.sidebar-unread-dot{width:8px;height:8px;border-radius:50%;background:#e54848;box-shadow:0 0 0 3px #fde7e7;margin-left:auto;flex:none}.announcement-dialog{width:min(520px,calc(100% - 32px))}.announcement-eyebrow{margin:0 0 5px!important;color:#a8791b!important;font-size:12px;font-weight:750;letter-spacing:1px}.announcement-content{white-space:pre-wrap;color:#53675d;line-height:1.85;padding:14px 0 8px}.announcement-time{display:block;color:#909c94;font-size:12px;border-top:1px solid #edf1e9;padding-top:10px}.trial-used{display:block;text-align:center;cursor:default;color:#89958c;background:#f3f5f1}

/* ==== 工具区顶部：排序 + 视图切换 ==== */
.toolbar-controls{margin-left:auto;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.sort-control{position:relative;display:inline-flex;align-items:center;background:#fff;border:1px solid #dde4d8;border-radius:999px;padding:7px 30px 7px 14px}
.sort-control select{border:0;background:transparent;font:inherit;font-size:13px;color:#3c5346;appearance:none;-webkit-appearance:none;cursor:pointer;outline:none}
.sort-control .sort-chevron{position:absolute;right:10px;width:13px;height:13px;color:#7d8f76;pointer-events:none}
.view-toggle{display:inline-flex;background:#fff;border:1px solid #dde4d8;border-radius:999px;padding:3px;gap:2px}
.view-btn{width:34px;height:28px;border:0;background:transparent;border-radius:999px;display:grid;place-items:center;color:#8a9586;cursor:pointer}
.view-btn svg{width:15px;height:15px}
.view-btn.active{background:#e4f0dc;color:#2f5a41}

/* ==== 列表模式 ==== */
#tools.list-mode .tool-grid{grid-template-columns:1fr;gap:12px}
#tools.list-mode .tool-card{display:flex;align-items:stretch}
#tools.list-mode .tool-card>img{width:280px;min-width:220px;height:auto;border-radius:17px 0 0 17px;border-bottom:0;border-right:1px solid #eef0e8}
#tools.list-mode .card-body{display:flex;flex-direction:column}
#tools.list-mode .card-body p{min-height:0}
#tools.list-mode .card-actions{margin-top:auto}

/* ==== 卡片悬停与图标化按钮 ==== */
.tool-card>img{transition:transform .2s ease}
.tool-card:hover>img{transform:scale(1.015)}
.start::after{display:none}
.start{gap:7px}
.start .start-icon{display:inline-grid;place-items:center}
.start .start-icon svg{width:14px;height:14px}

/* ==== 横幅调整：更大主角 + 波浪底边 ==== */
.hero-banner{align-items:center;min-height:300px;padding:34px 44px 44px;overflow:hidden}
.hero-content{max-width:560px}
.deco-mascot{width:320px;height:290px;right:26px;bottom:8px}
.deco-star{right:280px;top:22px}
.deco-flower{right:42px;bottom:30px}
.deco-squiggle{right:216px;bottom:56px}
.deco-orange-strokes{left:310px;top:24px}
.deco-motion-lines{display:none}
.deco-brand-sparkle{left:236px;top:16px}
.hero-banner::after{content:'';position:absolute;left:0;right:0;bottom:-2px;height:16px;background-image:radial-gradient(circle at 13px 0,#f6f8f1 8px,transparent 9px);background-size:26px 16px;background-repeat:repeat-x;pointer-events:none;z-index:5}
.hero-search-box .search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:#9aa79b;pointer-events:none}
.hero-search-box input{padding-left:40px}

/* ==== 移动端适配 ==== */
@media(max-width:920px){
  .toolbar-controls{margin-left:0;width:100%}
}
@media(max-width:768px){
  .topbar{flex-wrap:wrap;gap:8px;padding:16px 18px}
  .account-bar{flex-wrap:wrap;gap:6px}
  .hero-banner{min-height:180px;padding:22px 22px 30px;border-radius:18px}
  .hero-title{font-size:32px;margin-bottom:14px}
  .deco-mascot{width:140px;height:128px;right:10px;bottom:6px}
  .deco-star,.deco-flower,.deco-squiggle,.deco-orange-strokes{display:none}
  .deco-brand-sparkle{width:26px;height:26px;left:auto;right:128px;top:12px}
  .hero-search-box input{padding-left:38px}
  #tools.list-mode .tool-card{flex-direction:column}
  #tools.list-mode .tool-card>img{width:100%;min-width:0;border-radius:17px 17px 0 0;border-right:0;border-bottom:1px solid #eef0e8}
}
@media(max-width:520px){
  .hero-banner{min-height:150px;padding:18px 18px 24px}
  .deco-brand-sparkle{display:none}
  .deco-mascot{width:110px;height:100px;right:6px;bottom:4px}
  .hero-title{font-size:26px}
  .hero-search-box input{padding-left:36px;padding-right:34px}
  .sort-control{padding:6px 26px 6px 12px}
  .toolbar-controls{gap:8px}
}

/* ==== 首页统一主容器与布局（覆盖旧的窄容器） ==== */
.site-shell{width:calc(100vw - 48px);max-width:1600px;margin:0 auto}
main.site-shell,header.topbar{max-width:1600px}
main.site-shell{padding-left:0;padding-right:0}
.topbar{padding:20px 0}
.topbar-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;min-width:0}

/* 工具区：左侧导航 220px + 右侧内容 */
.dashboard-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:24px;align-items:start;padding:18px 0 8px}
.roster-reminder-wrap{position:relative;display:inline-flex}.roster-reminder{position:absolute;top:calc(100% + 9px);left:50%;transform:translateX(-50%);width:max-content;max-width:280px;padding:7px 11px;border:1px solid rgba(86,128,103,.22);border-radius:10px;background:rgba(244,248,239,.92);box-shadow:0 7px 20px rgba(42,75,56,.1);backdrop-filter:blur(8px);color:#62766a;font-size:12px;font-weight:600;white-space:nowrap;z-index:20}.roster-reminder::before{content:'';position:absolute;left:50%;top:-5px;width:9px;height:9px;background:rgba(244,248,239,.96);border-left:1px solid rgba(86,128,103,.22);border-top:1px solid rgba(86,128,103,.22);transform:translateX(-50%) rotate(45deg)}@media(max-width:740px){.roster-reminder-wrap{display:none}}

/* ==== 黄色横幅：使用正式底板素材 ==== */
.hero-banner{position:relative;overflow:hidden;background:transparent;border-radius:0;box-shadow:none;
  margin:18px 0 0;padding:0;min-height:270px;display:block}
.hero-banner::after{display:none}
.hero-panel-bg{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
.hero-content{position:relative;z-index:2;max-width:none;padding:48px 0 46px 48px}
.hero-title{margin:0;line-height:0}
.hero-title-image{display:block;width:clamp(300px,26vw,440px);height:auto}
.hero-search-row{margin-top:22px}
.hero-deco{z-index:auto}
.hero-deco .decoration{z-index:1}
.deco-mascot{z-index:2;width:300px;height:250px;right:28px;bottom:14px}
.deco-star{right:300px;top:26px}
.deco-flower{right:52px;bottom:34px}
.deco-squiggle{right:236px;bottom:64px}
.deco-orange-strokes{left:330px;top:34px}
.deco-brand-sparkle{left:286px;top:22px}
.hero-count{color:#6b5a2a}

/* ==== 工具卡片网格：宽屏稳定四列 ==== */
.tool-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.sidebar{width:auto}

/* ==== 响应式 ==== */
@media(min-width:1500px){
  .tool-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:1499px){
  .tool-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
}
@media(max-width:1099px){
  .tool-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:920px){
  .dashboard-layout{grid-template-columns:1fr;gap:12px}
}
@media(max-width:768px){
  .hero-banner{min-height:196px}
  .hero-content{padding:24px 0 26px 24px}
  .hero-title-image{width:clamp(210px,60vw,270px)}
  .hero-search-row{margin-top:16px}
  .deco-mascot{width:130px;height:110px;right:8px;bottom:10px}
  .deco-star,.deco-flower,.deco-squiggle,.deco-orange-strokes{display:none}
  .deco-brand-sparkle{width:26px;height:26px;left:auto;right:118px;top:14px}
  .toolbar-controls{margin-left:0;width:100%}
}
@media(max-width:520px){
  .hero-banner{min-height:170px}
  .hero-content{padding:20px 0 22px 18px}
  .deco-brand-sparkle{display:none}
  .deco-mascot{width:104px;height:88px;right:4px;bottom:6px}
}
@media(max-width:767px){
  .tool-grid{grid-template-columns:1fr}
}

/* ==== 统一网格：左侧导航与右侧工具区共用同一个父级网格 ==== */
.tools-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:24px;align-items:start}
.tools-layout .sidebar,.tools-layout .content{margin-top:0}
.sidebar{margin-top:0}
.content{padding-top:0}
.content-toolbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;min-height:46px;margin:0 0 16px}
.content-title{margin:0}
#tools{margin-top:0}
.topbar-inner{align-items:center}
.account-bar{align-items:center;display:flex}

/* ==== 横幅层级：背景0 / 背景装饰1 / 标题搜索2 / 人物3 / 前景装饰4 ==== */
.hero-banner{isolation:isolate}
.hero-panel-bg{z-index:0;object-fit:fill}
.hero-content{z-index:2}
.hero-deco .deco-star,.hero-deco .deco-squiggle,.hero-deco .deco-brand-sparkle{z-index:1}
.hero-deco .deco-mascot{z-index:3}
.hero-deco .deco-flower,.hero-deco .deco-motion-lines,.hero-deco .deco-orange-strokes{z-index:4}
.deco-flower{right:60px;bottom:30px}
.deco-motion-lines{width:44px;height:34px;right:16px;bottom:150px}
.hero-title-image{width:clamp(340px,25vw,440px);height:auto;object-fit:contain}

/* ==== 卡片操作区只使用两套状态色：可使用为绿色，未购买为浅蓝 ==== */
.tool-card.access-ready{--accent-bg:#DDF4D7;--accent-fg:#287A43}
.tool-card.access-locked{--accent-bg:#DCEBFF;--accent-fg:#356FAF}
.tool-card .start,.tool-card .trial-button{background:var(--accent-bg,#f0f5eb);color:var(--accent-fg,#4e745d)}
.tool-card.access-locked .start{justify-content:center;text-align:center}
.tool-card.access-locked .start::after{content:none}
.tool-card.access-locked .trial-button.trial-used{background:var(--accent-bg);color:var(--accent-fg)}
.start.btn-green{background:#DDF4D7;color:#287A43}
.start.btn-cream{background:#FFF0B8;color:#A87900}
.start.btn-accent,.trial-button.btn-accent{background:var(--accent-bg,#f0f5eb);color:var(--accent-fg,#4e745d)}
.tool-empty .start{background:#f0f5eb;color:#4e745d}
.start,.trial-button{transition:transform 180ms ease,box-shadow 180ms ease,filter 180ms ease}
.start:not(.disabled):hover,.trial-button:hover{transform:translateY(-1px);filter:saturate(1.15);box-shadow:0 5px 14px rgba(40,70,45,.15)}
.start.disabled,.start.disabled:hover{cursor:not-allowed;transform:none;box-shadow:none;filter:none;opacity:.85}

/* 动感线桌面显示；手机端只保留人物与1个装饰 */
.deco-motion-lines{display:block}
@media(max-width:768px){
  .deco-motion-lines{display:none}
  .deco-star,.deco-flower,.deco-squiggle,.deco-orange-strokes{display:none}
}

/* 手机端标题宽度（必须放在桌面规则之后才能生效） */
@media(max-width:768px){
  .hero-title-image{width:clamp(210px,60vw,270px)}
}

/* ==== 顶部“课程表”入口：浅蓝色圆角按钮 ==== */
.schedule-link{background:#DCEBFF;border:1px solid #BBD6FA;color:#246FD5;font-weight:700}
.schedule-link:hover{background:#CFE4FF}
.schedule-link.active{background:#C9E0FF}
@media(max-width:740px){.schedule-link{font-size:0;padding:6px 10px}.schedule-link .menu-icon{margin:0}.schedule-link .menu-icon svg{width:17px;height:17px}}

/* ==== 顶部导航：Logo 左对齐，右侧功能区整体靠右并垂直居中 ==== */
.topbar-inner{display:flex;align-items:center;gap:16px;min-width:0}
.account-bar{margin-left:auto;display:flex;align-items:center;justify-content:flex-end;gap:12px;flex:0 1 auto;min-width:0}
.account-bar > *{flex:none}
.avatar-wrap{margin-left:6px} /* 与“课程表”保持约 18px 间距 */
.nav-menu-wrap{display:none;position:relative}
.nav-menu-btn{display:grid;place-items:center;width:36px;height:36px;border:1px solid #d8e3d7;border-radius:12px;background:#fff;color:#526b5e;cursor:pointer;padding:0}
.nav-menu-btn svg{width:17px;height:17px}
.nav-menu{position:absolute;right:0;top:44px;background:#fff;border:1px solid #dde7d8;border-radius:12px;box-shadow:0 12px 30px rgba(35,60,40,.16);padding:8px;min-width:190px;z-index:60;display:grid;gap:6px}
.nav-menu label{display:grid;gap:4px;font-size:12px;color:#7a8275}
.nav-menu select{border:1px solid #dde7d8;border-radius:8px;padding:6px;font:inherit;font-size:13px;color:#315744;background:#fff}
.nav-menu a{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:9px;font-size:14px;color:#3c5346}
.nav-menu a:hover{background:#eef5e9}
@media(max-width:1100px){
  .account-bar{gap:8px}
  .avatar-wrap{margin-left:0}
}
@media(max-width:768px){
  .account-bar{gap:8px}
  .current-class-control,.class-management-link,.schedule-link{display:none}
  .nav-menu-wrap{display:block}
}
.brand{white-space:nowrap}

/* 班级管理、课程表、会员中心共用的明确返回入口。 */
.page-back-link{display:inline-flex;align-items:center;min-height:36px;margin:0 0 14px;padding:0 15px;border:1px solid #d5e1d7;border-radius:999px;background:#fff;color:#486554;font:650 13px/1 system-ui,sans-serif;box-shadow:0 3px 12px rgba(33,61,33,.07);transition:background .15s,border-color .15s,transform .15s}
.page-back-link:hover{background:#edf5e8;border-color:#bfd4c2;transform:translateX(-2px)}
@media(max-width:740px){.page-back-link{min-height:34px;margin-bottom:11px;padding:0 13px;font-size:12px}}
@media print{.page-back-link{display:none!important}}
