/* ============================================================
   贝德学堂 · 一期核心版 · 全局样式
   设计语言：苹果官网式 · 科技蓝 + 黑 + 白（方案 v2.1 定案）
   ============================================================ */
:root{
  --bg:#ffffff; --text:#1d1d1f; --text2:#86868b; --accent:#0062cc; --accent2:#1769ff;
  --card:#f5f5f7; --dark:#0b0b0d; --dark-card:#1a1a1e; --line:rgba(0,0,0,.08);
  --radius:18px; --green:#7caf3d; --purple:#8b6bd9; --orange:#ff9f0a; --blue-pure:#1769ff; --avocado:#7caf3d;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro SC","PingFang SC","Helvetica Neue","Microsoft YaHei",sans-serif;
  color:var(--text);background:#fafafa;-webkit-font-smoothing:antialiased;line-height:1.6;
}
a{color:inherit;text-decoration:none}
button{font-family:inherit}
.wrap{max-width:1120px;margin:0 auto;padding:0 22px}

/* ===== 顶部导航 ===== */
nav{position:sticky;top:0;z-index:100;background:#fff;border-bottom:1px solid var(--line)}
.nav-in{max-width:1120px;margin:0 auto;padding:0 22px;height:52px;display:flex;align-items:center;gap:16px}
.brand{font-size:17px;font-weight:700;display:flex;align-items:center;gap:8px;flex-shrink:0}
.brand .dot{width:25px;height:25px;border-radius:9px;background:#fff;display:inline-flex;align-items:center;justify-content:center;overflow:hidden;box-shadow:0 5px 12px rgba(23,105,255,.2)}
.brand .dot img{width:100%;height:100%;object-fit:contain}
.nav-links{display:flex;gap:4px;flex:1;align-items:center;justify-content:space-between;min-width:0}
.nav-links a{display:inline-flex;align-items:center;flex-shrink:0;gap:4px;font-size:14px;color:var(--text2);transition:color .2s,background .2s,border-color .2s;padding:6px 6px;border:1px solid transparent;border-radius:10px;white-space:nowrap}
.nav-links a::before{font-size:14px;line-height:1;color:#8da0b8;transition:color .2s}
.nav-links a[data-pg="home"]::before{content:"⌂"}
.nav-links a[data-pg="courses"]::before{content:"▦"}
.nav-links a[data-pg="teachers"]::before{content:"◉"}
.nav-links a[data-pg="newbie"]::before{content:"✦"}
.nav-links a[data-pg="groups"]::before{content:"◎"}
.nav-links a[data-pg="activities"]::before{content:"◫"}
.nav-links a[data-pg="rank"]::before{content:"↗"}
.nav-links a[data-pg="me"]::before{content:"○"}
.nav-links a[data-pg="admin"]::before{content:"◇"}
.nav-links a:hover{color:var(--text);background:#f3f6fb;border-color:#e3eaf4}
.nav-links a:hover::before{color:var(--blue-pure)}
.nav-links a.on{color:var(--blue-pure);font-weight:600;background:#edf3ff;border-color:#d7e4ff}
.nav-links a.on::before{color:var(--blue-pure)}
.mobile-menu-btn{display:none;align-items:center;justify-content:center;flex-direction:column;gap:4px;width:44px;height:44px;flex-shrink:0;background:transparent;border:0;border-radius:10px;cursor:pointer}
.mobile-menu-btn span{width:19px;height:2px;background:var(--text);border-radius:2px}
.nav-right{display:flex;align-items:center;gap:10px;margin-left:auto;flex-shrink:0;white-space:nowrap}
.role-switch{position:relative}
.role-btn{display:flex;align-items:center;gap:7px;max-width:190px;background:#f3f6fb;border:1px solid #e2e9f3;border-radius:12px;padding:6px 11px;font-size:12.5px;cursor:pointer;color:var(--text);white-space:nowrap}
.role-btn .av,.role-btn>span:last-child{flex-shrink:0}
#roleBtnLabel{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.role-btn .av{font-size:15px}
.role-menu{position:absolute;right:0;top:calc(100% + 8px);background:#fff;border-radius:14px;box-shadow:0 12px 40px rgba(0,0,0,.14);border:1px solid var(--line);min-width:190px;overflow:hidden;display:none;z-index:120}
.role-menu.open{display:block}
.role-menu .rm{display:flex;align-items:center;gap:10px;padding:11px 15px;font-size:13px;cursor:pointer;transition:background .15s}
.role-menu .rm:hover{background:var(--card)}
.role-menu .rm.on{background:rgba(10,132,255,.08);color:var(--accent);font-weight:600}
.role-menu .rm .tag{margin-left:auto;font-size:10px;color:var(--text2);font-weight:400}
/* 报告 #8：移除未使用的搜索框占位样式。 */
@media(max-width:1040px){
  .nav-in{gap:10px}
  .nav-links{display:none;position:absolute;top:52px;left:0;right:0;padding:12px 22px 18px;background:rgba(255,255,255,.97);box-shadow:0 18px 30px rgba(0,0,0,.10);max-height:calc(100vh - 52px);overflow-y:auto}
  .nav-links.open{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 16px}
  .nav-links a{display:flex;align-items:center;min-height:44px;padding:10px 12px;border:1px solid #e3eaf4;border-radius:12px;background:#fff;font-size:14px}
  .nav-links a.on{border-color:#d7e4ff;background:#edf3ff}
  .mobile-menu-btn{display:flex;margin-left:auto}
  .nav-right{margin-left:0}
}
/* ===== 页面骨架 ===== */
.page{display:none;animation:pgin .35s ease}
.page.on{display:block}
@keyframes pgin{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
/* 报告 #9：为新人模块顶部标题补齐原页面引用的样式。 */
.hero{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin:30px 0 18px;padding:4px 0}
.hero h1{font-size:clamp(26px,4vw,38px);letter-spacing:-.04em}
.hero .date{font-size:12px;color:var(--text2)}
.sec-t{font-size:20px;font-weight:700;margin:30px 0 14px;display:flex;justify-content:space-between;align-items:baseline;letter-spacing:-.01em}
.sec-t .more{font-size:12.5px;color:var(--text2);font-weight:400;cursor:pointer}
.sec-t .more:hover{color:var(--accent)}

/* ===== 首页 ===== */
.home-hero{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);min-height:380px;margin:26px 0 56px;background:#f5f5f7;border-radius:28px;overflow:hidden}
.home-hero-copy{position:relative;z-index:1;padding:48px 24px 44px 56px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}
.home-eyebrow{font-size:12px;font-weight:700;letter-spacing:.08em;color:var(--accent)}
.home-hero h1{font-size:clamp(38px,4.3vw,60px);font-weight:700;letter-spacing:-.055em;line-height:1.16;margin:15px 0 18px}
.home-hero h1 span{color:#606065}
.home-hero-quote{width:100%;min-width:0;overflow-wrap:anywhere}
.home-hero-quote h1.quote-chinese{white-space:nowrap;overflow-wrap:normal}
.home-hero-quote h1.quote-english{white-space:normal;line-height:1.3;letter-spacing:-.025em}
.home-hero-quote cite{display:block;margin:-6px 0 18px;font-size:14px;font-style:normal;color:#6e6e73}
.home-hero p{font-size:15px;color:#5c5c62;max-width:30em}
.home-hero-actions{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin-top:25px}
.home-hero-actions .btn{padding:11px 22px;font-weight:600}
.home-text-link{font-size:14px;color:var(--accent);font-weight:600}
.home-text-link:hover{text-decoration:underline}
.home-hero-meta{font-size:12px;color:#6e6e73;margin-top:30px}
.home-hero-meta strong{color:var(--accent)}
.home-hero-art{position:relative;min-height:380px;display:grid;place-items:center;isolation:isolate}
.home-hero-art::before{content:"";position:absolute;width:360px;height:360px;border-radius:50%;background:radial-gradient(circle,#e3f0ff 0%,#e9eef8 48%,transparent 72%);z-index:-1}
.home-orbit{position:absolute;width:306px;height:306px;border-radius:50%;border:1px solid rgba(0,98,204,.16)}
.home-orbit-two{width:258px;height:258px;border-color:rgba(0,98,204,.24)}
.home-core{width:192px;height:192px;border-radius:48px;background:linear-gradient(135deg,#2f7bff 0%,#0062cc 100%);box-shadow:0 28px 55px rgba(0,75,160,.22),inset 0 1px 1px rgba(255,255,255,.45);color:#fff;display:flex;align-items:center;justify-content:center;flex-direction:column;transform:rotate(-9deg)}
.home-core img{width:132px;height:auto;object-fit:contain}
.home-categories{margin-bottom:32px}
.home-section-head{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:22px}
.home-section-head h2{font-size:clamp(27px,3vw,37px);line-height:1.25;letter-spacing:-.035em;margin-top:6px}
.home-section-head p{font-size:13px;color:#6e6e73;padding-bottom:4px}
.category-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.category-card{position:relative;display:flex;flex-direction:column;min-width:0;min-height:266px;padding:27px;border-radius:24px;overflow:hidden;transition:transform .2s,box-shadow .2s}
.category-card:hover{transform:translateY(-3px);box-shadow:0 14px 28px rgba(0,0,0,.08)}
.category-card:focus-visible,.home-topics a:focus-visible,.mobile-menu-btn:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.category-management{background:#eeeaf4}
.category-skills{background:#e5f1fc}
.category-newbie{background:#eaf1eb}
.category-kicker{font-size:10px;font-weight:700;letter-spacing:.1em;color:#606065}
.category-symbol{position:absolute;top:17px;right:25px;font-size:72px;line-height:1;opacity:.38}
.category-management .category-symbol{color:#8e69ac}
.category-skills .category-symbol{color:#3e9be8}
.category-newbie .category-symbol{color:#65a480}
.category-card h3{font-size:30px;line-height:1.15;letter-spacing:-.04em;margin-top:58px}
.category-card p{font-size:13px;color:#54545b;margin-top:10px;max-width:18em}
.category-foot{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:600;color:#35353a;margin-top:auto;padding-top:22px}
.category-foot span{width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.7);display:grid;place-items:center;font-size:17px}
.home-topics{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:18px;padding:17px 18px;background:#fff;border-radius:18px}
.home-topics>span{font-size:12px;font-weight:700;color:#6e6e73;margin-right:5px}
.home-topics a{font-size:12px;background:#f5f5f7;padding:8px 12px;border-radius:980px;white-space:nowrap;transition:background .2s}
.home-topics a:hover{background:#e7e7eb}
.home-topics .home-topics-all{color:var(--accent);font-weight:600;background:#edf5ff}
@media(max-width:860px){.home-hero-copy{padding-left:34px}.category-card{padding:21px;min-height:250px}.category-card h3{font-size:26px}}
@media(max-width:760px){.category-grid{grid-template-columns:1fr}.category-card{min-height:204px;padding:22px}.category-card h3{margin-top:24px}.category-foot{padding-top:14px}}
@media(max-width:700px){
  .home-hero{grid-template-columns:1fr;margin:16px 0 34px}
  .home-hero-copy{padding:32px 26px 8px}
  .home-hero h1{font-size:clamp(31px,8vw,42px);margin:12px 0 14px}
  .home-hero p{font-size:13.5px}
  .home-hero-actions{gap:14px;margin-top:18px}
  .home-hero-meta{margin-top:20px}
  .home-hero-art{min-height:155px}
  .home-hero-art::before{width:210px;height:210px}
  .home-orbit{width:185px;height:185px}
  .home-orbit-two{width:145px;height:145px}
  .home-core{width:112px;height:112px;border-radius:29px}
  .home-core img{width:78px;height:auto}
  .home-section-head{display:block;margin-bottom:16px}
  .home-section-head p{padding-top:7px}
}

/* 登录入口 */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.auth-gate{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;overflow:auto;padding:36px;background:#0c4d89 url("../assets/beide-park.jpg") center 38%/cover no-repeat;transition:opacity .25s,visibility .25s;isolation:isolate}
.auth-gate::before{content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(180deg,rgba(5,57,111,.66) 0%,rgba(21,112,173,.72) 48%,rgba(5,43,91,.92) 100%)}
.auth-gate::after{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(circle at 18% 18%,rgba(161,224,255,.32),transparent 28%),radial-gradient(circle at 83% 25%,rgba(125,200,255,.22),transparent 23%),linear-gradient(120deg,transparent 18%,rgba(255,255,255,.06) 19%,transparent 20%,transparent 76%,rgba(255,255,255,.04) 77%,transparent 78%);pointer-events:none}
.auth-gate.is-hidden{opacity:0;visibility:hidden;pointer-events:none}
.auth-language{position:absolute;top:38px;right:48px;color:rgba(255,255,255,.86);font-size:13px;letter-spacing:.04em;z-index:2}
.auth-language span{display:inline-block;margin-left:5px;font-size:14px;transform:translateY(-1px)}
.auth-horizon{position:absolute;left:0;right:0;bottom:0;height:26%;z-index:0;display:flex;align-items:flex-end;gap:1.2%;padding:0 2%;opacity:.42;filter:drop-shadow(0 -10px 18px rgba(3,30,70,.18));pointer-events:none}
.auth-horizon i{display:block;flex:1;min-width:22px;background:linear-gradient(180deg,rgba(25,76,127,.55),rgba(2,27,67,.95));border:1px solid rgba(180,225,255,.15);border-bottom:0;clip-path:polygon(0 7%,18% 7%,18% 0,36% 0,36% 11%,61% 11%,61% 4%,79% 4%,79% 16%,100% 16%,100% 100%,0 100%)}
.auth-horizon i:nth-child(1){height:62%}.auth-horizon i:nth-child(2){height:82%}.auth-horizon i:nth-child(3){height:47%}.auth-horizon i:nth-child(4){height:100%}.auth-horizon i:nth-child(5){height:68%}.auth-horizon i:nth-child(6){height:88%}
.auth-panel{position:relative;z-index:1;width:min(100%,432px);flex-shrink:0;padding:31px 36px 30px;border:1px solid rgba(255,255,255,.72);border-radius:22px;background:rgba(255,255,255,.96);box-shadow:0 24px 70px rgba(2,32,70,.3),0 4px 16px rgba(5,48,95,.12);backdrop-filter:blur(10px)}
.auth-tabs{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid #e9edf3;margin-bottom:28px;gap:20px}
.auth-tab{border:0;background:transparent;padding:1px 0 15px;color:#8d96a4;font-size:16px;cursor:pointer;position:relative;transition:color .2s}
.auth-tab.active{color:#316ff0;font-weight:700}.auth-tab.active::after{content:"";position:absolute;left:14%;right:14%;bottom:-1px;height:3px;background:#4b7cff;border-radius:99px}
.auth-form input{display:block;width:100%;height:52px;box-sizing:border-box;margin-bottom:16px;border:1px solid #d9e0ea;border-radius:9px;padding:13px 15px;background:#fff;color:#28374d;font-size:15px;outline:0;transition:border .2s,box-shadow .2s}
.auth-form input::placeholder{color:#a1a8b3}.auth-form input:focus{border-color:#5f89f7;box-shadow:0 0 0 3px rgba(73,119,238,.12)}
.auth-submit{width:100%;height:52px;border:0;border-radius:9px;padding:0;background:linear-gradient(135deg,#4a7df7,#3463dd);color:#fff;font-size:16px;font-weight:700;letter-spacing:.16em;cursor:pointer;margin-top:26px;box-shadow:0 10px 22px rgba(56,103,226,.25);transition:transform .2s,box-shadow .2s,filter .2s}.auth-submit:hover{filter:brightness(1.04);transform:translateY(-1px);box-shadow:0 13px 26px rgba(56,103,226,.3)}
/* 2026-10-03 登录验收报告 六-6、六-7：未配置登录服务时，按钮明确显示不可用。 */
.auth-submit:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none;filter:none}
.auth-submit.secondary{height:46px;background:#eef4ff;color:#376bd5;letter-spacing:.04em;box-shadow:none;margin-top:18px}.auth-submit.secondary:hover{box-shadow:none}
.auth-hint{font-size:11px;color:#a0a8b3;text-align:center;margin:15px 0 0}.auth-status{min-height:18px;font-size:12px;text-align:center;margin-top:12px}.auth-status.error{color:#d84d4d}.auth-status.success{color:#20854d}
.ding-auth{text-align:center}.ding-auth[hidden],.auth-form[hidden]{display:none}.qr-frame{width:220px;height:220px;margin:0 auto 16px;padding:10px;background:#fff;border:1px solid #e2e8f1;border-radius:13px;box-shadow:0 8px 22px rgba(28,67,108,.1)}.ding-auth strong{display:block;color:#34445c;font-size:15px}.ding-auth p{color:#8b94a2;font-size:12px;line-height:1.8;margin:7px 0}.ding-auth p span{color:#6580ad;font-family:monospace}
.qr-frame iframe{width:100%;height:220px;border:0;border-radius:8px}.qr-frame span{display:grid;height:100%;place-items:center;color:#8b94a2;font-size:12px}.qr-fallback{display:block;margin-top:4px;color:#376bd5;font-size:11px}
.password-modal{position:fixed;inset:0;z-index:1300;display:grid;place-items:center;padding:20px;background:rgba(7,29,58,.48)}.password-modal[hidden]{display:none}.password-dialog{position:relative;width:min(100%,390px);padding:28px;border-radius:18px;background:#fff;box-shadow:0 24px 70px rgba(2,32,70,.3)}.password-dialog h2{margin:0 0 8px;font-size:22px}.password-dialog p{margin:0 0 18px;color:var(--text2);font-size:12px}.password-dialog label{display:block;margin:12px 0 6px;font-size:12px;color:var(--text2)}.password-dialog input{display:block;width:100%;box-sizing:border-box;height:44px;border:1px solid #d9e0ea;border-radius:9px;padding:10px 12px;font-size:15px;outline:0}.password-dialog input:focus{border-color:#5f89f7;box-shadow:0 0 0 3px rgba(73,119,238,.12)}.password-dialog .btn{width:100%;margin-top:14px}.password-close{position:absolute;right:14px;top:9px;border:0;background:transparent;color:#69758a;font-size:26px;cursor:pointer}.password-status{min-height:18px;margin-top:10px;color:#d84d4d;font-size:12px}.password-reset-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:14px;background:#fff;border-radius:12px}.password-reset-list .chk{margin:0}
@media(max-width:600px){.auth-gate{padding:28px 20px}.auth-language{top:22px;right:24px}.auth-panel{padding:26px 22px 24px;border-radius:18px}.auth-tabs{margin-bottom:24px}.auth-tab{font-size:15px}.auth-horizon{height:20%}}
@media(max-width:380px){.auth-panel{padding:24px 17px 21px}}
@media(max-width:560px){
  .nav-in,.wrap{padding-left:16px;padding-right:16px}
  .nav-right .pill{display:none}
  #roleBtnLabel{max-width:72px}
}
@media(max-width:390px){
  #roleBtnLabel{display:none}
  .role-btn{min-width:44px;min-height:44px;justify-content:center;padding:6px}
  .home-hero-copy{padding:28px 21px 8px}
  .home-hero-actions .btn{padding:10px 16px}
}
@media(max-width:340px){
  .home-hero-copy{padding-left:16px;padding-right:16px}
  .home-hero h1{font-size:26px}
  .home-hero-actions{gap:10px}
}

/* ===== 卡片与课程卡 ===== */
.card{background:#fff;border-radius:var(--radius);padding:16px;box-shadow:0 1px 3px rgba(0,0,0,.05)}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
@media(max-width:860px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}
.course-card{display:flex;gap:13px;cursor:pointer;transition:transform .25s,box-shadow .25s}
.course-card:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(0,0,0,.09)}
.cover{width:96px;height:72px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:27px;flex-shrink:0;position:relative}
.cover .badge-new{position:absolute;top:-6px;right:-6px;background:#ff3b30;color:#fff;font-size:9px;font-weight:700;padding:2px 6px;border-radius:980px}
.cc-body{flex:1;min-width:0}
.cc-body b{font-size:14.5px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.4}
.cc-meta{font-size:11.5px;color:var(--text2);margin-top:5px;display:flex;gap:10px;flex-wrap:wrap}
.tname{font-size:11.5px;color:var(--text2);margin-top:4px}
.cc-foot{margin-top:8px;display:flex;align-items:center;gap:9px}
.bar{height:5px;border-radius:3px;background:rgba(0,0,0,.07);overflow:hidden;flex:1}
.bar i{display:block;height:100%;border-radius:3px;background:linear-gradient(90deg,var(--accent2),var(--accent))}
.pc{font-size:10.5px;color:var(--accent);font-weight:600;flex-shrink:0}

/* ===== 通用小组件 ===== */
.pill{font-size:11px;font-weight:600;padding:3px 10px;border-radius:980px;background:rgba(10,132,255,.12);color:#0058c7;display:inline-block}
.pill.g{background:rgba(124,175,61,.16);color:#557f1d}
.pill.p{background:rgba(191,90,242,.13);color:#8e37b5}
.pill.o{background:rgba(255,159,10,.15);color:#a35c00}
.pill.gr{background:rgba(29,29,31,.06);color:#3a3a3c}
.btn{display:inline-block;padding:9px 20px;border-radius:980px;font-size:13.5px;border:none;cursor:pointer;transition:all .2s;text-align:center}
.btn.primary{background:var(--accent);color:#fff}
.btn.primary:hover{background:#0050a8}
.btn.ghost{color:var(--accent);border:1px solid rgba(0,98,204,.4);background:transparent}
.btn.ghost:hover{background:rgba(0,98,204,.06)}
.btn.block{display:block;width:100%}
.btn:disabled{opacity:.45;cursor:not-allowed}
.notice{display:flex;align-items:center;gap:10px;background:#fff;border-radius:var(--radius);padding:12px 15px;font-size:12.5px;box-shadow:0 1px 3px rgba(0,0,0,.05);margin-bottom:12px}
.notice .d{width:36px;height:36px;border-radius:11px;background:rgba(10,132,255,.14);display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0}
.notice b{display:block;font-size:13px}
.notice span{color:var(--text2);font-size:11.5px}

/* 排行榜行 */
.rankrow{display:flex;align-items:center;gap:10px;padding:10px 6px;font-size:13px;border-bottom:1px solid rgba(0,0,0,.04)}
.rankrow:last-child{border-bottom:none}
.rk{width:22px;height:22px;border-radius:7px;background:rgba(0,0,0,.05);color:var(--text2);font-size:11.5px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.rk.r1{background:linear-gradient(135deg,#0a84ff,#0062cc);color:#fff}
.rk.r2{background:linear-gradient(135deg,#c0c4cc,#9aa0a8);color:#fff}
.rk.r3{background:linear-gradient(135deg,#e0a878,#c77f4a);color:#fff}
.rhot{margin-left:auto;font-size:11.5px;color:var(--text2);flex-shrink:0;font-weight:600}
.rankrow.me-row{background:rgba(0,98,204,.05);border-radius:9px}
.rankrow.me-row .rk{background:var(--accent);color:#fff}

/* 讲师卡 */
.tcard{display:flex;align-items:center;gap:14px}
.ava{width:54px;height:54px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:27px;flex-shrink:0;background:var(--card)}
.tcard .info{flex:1;min-width:0}
.tcard b{font-size:15.5px}
.tcard .role{font-size:12.5px;color:var(--text2)}
.tnums{display:flex;gap:15px;margin-top:5px;font-size:12px;color:var(--text2);flex-wrap:wrap}
.tnums i{font-style:normal;color:var(--accent);font-weight:700}
.link{font-size:12.5px;color:var(--accent);font-weight:600;flex-shrink:0;cursor:pointer}

/* 统计块 */
.cstat{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:14px 0}
.cstat .s{background:#fff;border-radius:var(--radius);padding:15px 8px;text-align:center;box-shadow:0 1px 3px rgba(0,0,0,.05)}
.cstat b{font-size:20px;display:block;letter-spacing:-.01em}
.cstat span{font-size:11px;color:var(--text2)}
@media(max-width:640px){.cstat{grid-template-columns:repeat(2,1fr)}}

/* 分类 tabs */
.ctabs{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 14px;scrollbar-width:none}
.ctabs::-webkit-scrollbar{display:none}
.ctab{flex-shrink:0;font-size:12.5px;padding:7px 16px;border-radius:980px;background:#fff;color:var(--text2);box-shadow:0 1px 3px rgba(0,0,0,.05);cursor:pointer;border:1px solid transparent}
.ctab.on{background:linear-gradient(120deg,#0a84ff,#0062cc);color:#fff;font-weight:600}

/* ===== 课程详情 ===== */
.detail-hero{display:grid;grid-template-columns:300px 1fr;gap:24px;margin:26px 0 20px}
@media(max-width:860px){.detail-hero{grid-template-columns:1fr}}
.dt-cover{height:200px;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;font-size:56px;color:#fff;position:relative}
.dt-cover .type{position:absolute;top:12px;left:12px;font-size:10.5px;background:rgba(0,0,0,.28);padding:3px 11px;border-radius:980px;color:#fff}
.dt-info h1{font-size:clamp(20px,2.6vw,27px);font-weight:700;letter-spacing:-.01em;line-height:1.3}
.dt-info .meta{font-size:13px;color:var(--text2);margin:10px 0 14px;display:flex;gap:14px;flex-wrap:wrap}
.dt-info .desc{font-size:14px;color:#3a3a3c;background:var(--card);border-radius:14px;padding:14px 16px}
.record{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:16px 0}
.record .r{background:#fff;border-radius:13px;padding:12px 14px;font-size:11px;color:var(--text2);box-shadow:0 1px 3px rgba(0,0,0,.05)}
.record b{font-size:15px;color:var(--text);display:block}
.player{background:#fff;border-radius:var(--radius);padding:18px;box-shadow:0 1px 3px rgba(0,0,0,.05);margin-bottom:14px}
.play-btn{width:58px;height:58px;border-radius:50%;background:linear-gradient(120deg,#0a84ff,#0062cc);color:#fff;display:flex;align-items:center;justify-content:center;margin:4px auto 14px;font-size:22px;cursor:pointer;border:none;box-shadow:0 8px 20px rgba(0,98,204,.35);transition:transform .2s}
.play-btn:hover{transform:scale(1.05)}
.play-btn.playing{background:linear-gradient(120deg,#1d1d1f,#3a3a3c)}
.time-row{display:flex;justify-content:space-between;font-size:11px;color:var(--text2);margin-top:7px}
.now-playing{text-align:center;font-size:12.5px;color:var(--accent);font-weight:600;min-height:18px}
.chap{display:flex;align-items:center;gap:11px;padding:13px 15px;background:#fff;border-radius:13px;margin-bottom:9px;font-size:13.5px;box-shadow:0 1px 3px rgba(0,0,0,.04);cursor:pointer;transition:box-shadow .2s}
.chap:hover{box-shadow:0 6px 18px rgba(0,0,0,.08)}
.chap .st{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11.5px;flex-shrink:0;background:rgba(0,0,0,.05);color:var(--text2)}
.chap.done .st{background:rgba(48,209,88,.15);color:#1d7a36;font-weight:700}
.chap.doing .st{background:rgba(10,132,255,.16);color:#0058c7;font-weight:700}
.chap .dur{margin-left:auto;font-size:11.5px;color:var(--text2);flex-shrink:0}
.chap .cur{font-size:10.5px;color:var(--accent);flex-shrink:0}

/* ===== 活动 ===== */
.act-card{background:linear-gradient(120deg,#0a84ff,#0062cc 75%);color:#fff;border-radius:var(--radius);padding:22px;margin-bottom:14px;position:relative;overflow:hidden}
/* 报告 #3：新人模块横幅统一使用科技蓝渐变。 */
.newbie-banner{background:linear-gradient(120deg,#2f8dff,#0062cc 78%)}
.act-card::after{content:"";position:absolute;right:-34px;bottom:-34px;width:140px;height:140px;border-radius:50%;background:rgba(255,255,255,.12)}
.act-card .row{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px;font-size:12.5px;opacity:.95}
.act-card b.t{font-size:19px;display:block}
.act-card .btn2{background:#fff;color:var(--accent);border:none;font-size:13px;font-weight:600;padding:9px 18px;border-radius:980px;cursor:pointer;margin-top:14px}
.act-card .btn2:disabled{background:rgba(255,255,255,.35);color:#fff;cursor:not-allowed}
.qr-box{text-align:center;padding:30px 20px}
.qr{width:190px;height:190px;margin:18px auto;background:
  repeating-conic-gradient(#1d1d1f 0% 25%, #fff 0% 50%) 0 0/26px 26px;border-radius:14px;border:8px solid #fff;box-shadow:0 10px 30px rgba(0,0,0,.14);position:relative;overflow:hidden}
.qr::after{content:"贝德学堂";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.88);font-size:13px;font-weight:700;color:var(--accent)}

/* ===== 个人主页 ===== */
.me-head{display:flex;align-items:center;gap:16px;margin:30px 0 18px}
.me-head .ava{width:64px;height:64px;font-size:32px;background:linear-gradient(135deg,#c2e0ff,#6db6ff)}
.me-head b{font-size:21px;display:block}
.me-head span{font-size:13px;color:var(--text2)}
.me-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}
.me-stats .s{background:#fff;border-radius:var(--radius);padding:16px 8px;text-align:center;box-shadow:0 1px 3px rgba(0,0,0,.05)}
.me-stats b{font-size:19px;display:block}
.me-stats span{font-size:11px;color:var(--text2)}
.point-card{border-radius:var(--radius);padding:20px;color:#fff;background:linear-gradient(120deg,#0062cc,#004a99);display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;flex-wrap:wrap;gap:12px}
.point-card .l span{font-size:11.5px;opacity:.85}
.point-card .l b{font-size:28px;display:block;line-height:1.25}
.point-card .l i{font-style:normal;font-size:11px;opacity:.8}
.point-card .btn2{background:rgba(255,255,255,.18);border:none;color:#fff;font-size:12.5px;padding:9px 16px;border-radius:980px;cursor:pointer}
.menu{background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.05);margin-bottom:14px}
.mi{display:flex;align-items:center;gap:12px;padding:14px 16px;font-size:14px;border-bottom:1px solid rgba(0,0,0,.05);cursor:pointer}
.mi:last-child{border-bottom:none}
.mi:hover{background:#fafafa}
.mi .ic{width:31px;height:31px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0}
.mi .arr{margin-left:auto;color:#c7c7cc;font-size:15px}
.bdg{margin-left:auto;background:var(--accent);color:#fff;font-size:10.5px;border-radius:980px;padding:1px 8px}
.mi .arr.nb{margin-left:0}
.medals{display:flex;gap:12px;flex-wrap:wrap;margin:6px 0}
.medal{width:56px;height:56px;border-radius:50%;background:linear-gradient(160deg,#eef6ff,#cfe5ff);display:flex;align-items:center;justify-content:center;font-size:25px;box-shadow:inset 0 0 0 1.5px rgba(0,98,204,.25);position:relative;cursor:default}
.medal.locked{opacity:.32;filter:grayscale(1)}
.medal .tip2{display:none;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);background:#1d1d1f;color:#fff;font-size:10.5px;padding:4px 9px;border-radius:8px;white-space:nowrap;z-index:5}
.medal:hover .tip2{display:block}
.growth{display:flex;align-items:flex-end;gap:8px;height:130px;padding:8px 4px 0}
.growth .g{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end}
.growth .col{width:100%;max-width:34px;border-radius:7px 7px 3px 3px;background:linear-gradient(180deg,#0a84ff,#0062cc);transition:height .6s cubic-bezier(.25,.46,.45,.94)}
.growth span{font-size:10px;color:var(--text2)}
.growth b{font-size:10px;color:var(--accent)}

/* ===== 管理后台 ===== */
.admin-grid{display:grid;grid-template-columns:210px 1fr;gap:20px;margin:24px 0}
@media(max-width:860px){.admin-grid{grid-template-columns:1fr}}
.admin-nav{background:#fff;border-radius:var(--radius);padding:10px;box-shadow:0 1px 3px rgba(0,0,0,.05);height:fit-content;position:sticky;top:70px}
.admin-nav .an{padding:11px 14px;font-size:13.5px;border-radius:11px;cursor:pointer;color:var(--text2);display:flex;align-items:center;gap:9px}
.admin-nav .an:hover{background:var(--card)}
.admin-nav .an.on{background:linear-gradient(120deg,#0a84ff,#0062cc);color:#fff;font-weight:600}
.admin-panel{min-width:0}
.role-menu .rm{width:100%;border:0;background:#fff;text-align:left;font-family:inherit;white-space:nowrap}
.account-hint{padding:12px 15px;color:var(--text2);font-size:11px;border-top:1px solid var(--line)}
.identity-note{display:block;margin-top:7px;color:var(--text2);font-size:11px}
.permission-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}
.permission-heading h2{font-size:27px;margin:7px 0 10px;letter-spacing:-.7px}
.permission-heading p,.permission-copy{font-size:13px;color:var(--text2);line-height:1.7}
.permission-copy{margin-bottom:16px}
.permission-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:20px}
.permission-summary>div{padding:20px;background:#fff;border:1px solid var(--line);border-radius:16px}
.permission-summary b{display:block;font-size:30px;letter-spacing:-1px;color:var(--accent)}
.permission-summary span{display:block;font-size:11px;color:var(--text2);margin-top:7px;line-height:1.5}
.approver-card{display:flex;justify-content:space-between;gap:24px;align-items:center;padding:24px;border:1px solid #c6dcf4;background:linear-gradient(120deg,#f1f7ff,#fff);border-radius:18px;margin-bottom:28px}
.approver-card h3{margin:12px 0 8px;font-size:19px}
.approver-card p{font-size:12px;color:var(--text2);line-height:1.8;max-width:360px}
.approver-card small{display:block;font-size:12px;margin-top:10px;color:#0058a8}
.approver-controls{display:grid;gap:9px;min-width:215px}
.approver-controls label,.records-filter label{font-size:12px;font-weight:600}
.approver-controls select,.records-filter select,.member-toolbar input{font:inherit;font-size:13px;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--text);max-width:100%}
.member-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.member-toolbar h3{font-size:17px}
.member-list{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden}
.member-row{display:flex;align-items:center;gap:14px;padding:20px;border-bottom:1px solid var(--line)}
.member-row:last-child{border:0}
.member-avatar{display:grid;place-items:center;flex-shrink:0;width:43px;height:43px;border-radius:13px;font-size:25px;background:var(--card)}
.member-info{flex:1;min-width:0}
.member-info>div{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.member-info p{font-size:12px;color:var(--text2);margin:8px 0 5px}
.member-info small,.permission-readonly{font-size:11px;color:var(--text2);line-height:1.6}
.member-actions{flex-shrink:0}
.member-actions .btn{font-size:12px;padding:8px 13px}
.btn.danger{color:#b3392d}
.btn:disabled{opacity:.45;cursor:not-allowed}
.permission-guide{margin-top:24px;padding:20px;background:#fff;border:1px solid var(--line);border-radius:16px}
.permission-guide h3{font-size:15px;margin-bottom:14px}
.permission-guide p{font-size:12px;color:var(--text2);line-height:1.8;margin-top:14px}
.permission-guide summary{cursor:pointer;font-size:13px;font-weight:600}
.permission-guide[open] summary{margin-bottom:16px}
.table-scroll{overflow-x:auto;max-width:100%}
.table-scroll .tbl{min-width:510px;box-shadow:none}
.records-filter{display:flex;align-items:center;gap:12px;margin-bottom:20px}
.record-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px;margin-bottom:18px}
.record-person{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.record-person h3{font-size:17px}
.record-person small{font-size:11px;color:var(--text2)}
.record-metrics{display:flex;gap:18px;flex-wrap:wrap;padding:18px 0;color:var(--text2);font-size:12px;border-bottom:1px solid var(--line)}
.record-metrics b{color:var(--text)}
.record-card h4{font-size:13px;margin:19px 0 12px}
.record-empty{font-size:12px;color:var(--text2);padding:10px 0}
.record-group{padding:14px 0;border-bottom:1px solid var(--line);font-size:12px}
.record-group>a{color:var(--accent);font-weight:600}
.record-group>span{display:block;margin:8px 0;color:var(--text2)}
.record-group summary{cursor:pointer;color:var(--text2)}
.reflection-record{background:var(--card);border-radius:9px;margin-top:9px;padding:13px;font-size:12px;line-height:1.7;overflow-wrap:anywhere}
.reflection-record p{margin-top:5px}
.reflection-record small{color:var(--text2)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:860px){.admin-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}.admin-nav .an{font-size:12px;padding:11px 9px;min-width:0}}
@media(max-width:600px){.permission-heading{align-items:flex-start}.permission-heading h2{font-size:23px}.permission-summary{gap:7px}.permission-summary>div{padding:14px 10px}.permission-summary b{font-size:25px}.approver-card{padding:18px;flex-direction:column;align-items:stretch;gap:16px}.approver-controls{min-width:0}.member-toolbar{align-items:stretch;flex-direction:column}.member-toolbar input,.member-toolbar label{width:100%}.member-row{padding:16px 12px;gap:10px;flex-wrap:wrap}.member-info{flex-basis:calc(100% - 60px)}.member-actions{margin-left:53px}.permission-guide,.record-card{padding:15px}.records-filter{align-items:stretch;flex-direction:column}.permission-heading>.pill{flex-shrink:0}}
.tbl{width:100%;border-collapse:collapse;font-size:12.5px;background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.05)}
.tbl th{text-align:left;padding:11px 13px;background:var(--card);font-size:11.5px;color:var(--text2);font-weight:600;white-space:nowrap}
.tbl td{padding:11px 13px;border-top:1px solid rgba(0,0,0,.05);vertical-align:middle}
.tbl .ops{display:flex;gap:7px}
.tbl .mini{font-size:11.5px;padding:5px 12px;border-radius:980px;border:none;cursor:pointer;font-weight:600}
.tbl .mini.ok{background:rgba(48,209,88,.15);color:#1d7a36}
.tbl .mini.no{background:rgba(255,59,48,.1);color:#c0392b}
.tbl .mini.bl{background:rgba(10,132,255,.12);color:#0058c7}
.form{background:#fff;border-radius:var(--radius);padding:20px;box-shadow:0 1px 3px rgba(0,0,0,.05)}
.form .frow{margin-bottom:14px}
.form label{display:block;font-size:12.5px;font-weight:600;margin-bottom:6px}
.form label em{color:#c0392b;font-style:normal}
.form input[type=text],.form input[type=date],.form input[type=time],.form select,.form textarea{width:100%;border:1px solid rgba(0,0,0,.12);border-radius:11px;padding:10px 13px;font-size:13px;font-family:inherit;outline:none;transition:border .2s;background:#fff}
.form input:focus,.form textarea:focus,.form select:focus{border-color:var(--accent)}
.form textarea{resize:vertical;min-height:64px}
.form .hint{font-size:11px;color:var(--text2);margin-top:4px}
.check-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}
@media(max-width:640px){.check-grid{grid-template-columns:1fr}}
.chk{display:flex;align-items:center;gap:9px;background:var(--card);border-radius:11px;padding:10px 13px;font-size:12.5px;cursor:pointer}
.chk input{accent-color:var(--accent)}
.switch{position:relative;width:42px;height:24px;background:rgba(0,0,0,.15);border-radius:980px;cursor:pointer;transition:background .25s;flex-shrink:0}
.switch::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .25s;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.switch.on{background:var(--green)}
.switch.on::after{transform:translateX(18px)}
.setting-row{display:flex;align-items:center;gap:12px;padding:14px 16px;background:#fff;font-size:13.5px}
.setting-row:first-child{border-radius:var(--radius) var(--radius) 0 0}
.setting-row:last-child{border-radius:0 0 var(--radius) var(--radius)}
.setting-row span{color:var(--text2);font-size:11.5px;display:block}
.setting-row .sw-wrap{margin-left:auto}

/* toast */
.toast{position:fixed;bottom:36px;left:50%;transform:translateX(-50%) translateY(20px);background:#1d1d1f;color:#fff;font-size:13px;padding:12px 22px;border-radius:980px;opacity:0;pointer-events:none;transition:all .35s;z-index:999;box-shadow:0 12px 34px rgba(0,0,0,.25)}
.toast.on{opacity:1;transform:translateX(-50%) translateY(0)}

/* empty */
.empty{text-align:center;padding:44px 16px;color:var(--text2);font-size:13px}
.empty .e{font-size:36px;display:block;margin-bottom:10px}

footer{background:var(--dark);color:#86868b;padding:34px 0;margin-top:64px;font-size:12px}
footer .fl{max-width:1120px;margin:0 auto;padding:0 22px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}
footer b{color:#f5f5f7;font-size:14px;display:block;margin-bottom:6px}

/* ===== 讲师申请、课程上传、学习小组 ===== */
.feature-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:30px 0 20px;padding:28px 30px;border-radius:24px;background:linear-gradient(120deg,#eaf3ff,#f8fbff 65%,#edf6ff);overflow:hidden;position:relative}
.feature-head h1{font-size:clamp(26px,4vw,38px);letter-spacing:-.04em;margin:8px 0 7px}
.feature-head p{font-size:13px;color:var(--text2);max-width:620px}
.feature-icon{width:88px;height:88px;display:grid;place-items:center;border-radius:22px;background:var(--blue-pure);color:#fff;font-size:42px;box-shadow:0 14px 26px rgba(0,98,204,.2);transform:rotate(8deg);flex-shrink:0}
.feature-icon svg{width:1em;height:1em;display:block}
.feature-form{max-width:820px;margin-bottom:20px}
.form-intro{display:flex;align-items:baseline;gap:12px;padding-bottom:15px;margin-bottom:17px;border-bottom:1px solid rgba(0,0,0,.06)}
.form-intro b{font-size:16px}.form-intro span{font-size:11.5px;color:var(--text2)}
.file-name{font-size:11px;color:var(--text2);margin-top:6px;padding:8px 10px;border-radius:9px;background:var(--card)}
.application-summary{max-width:820px;margin-bottom:16px;display:flex;flex-direction:column;gap:8px}.application-summary b{font-size:16px}.application-summary span{font-size:13px}.application-summary small{font-size:11px;color:var(--text2)}
.status-chip{display:inline-flex;align-items:center;justify-content:center;border-radius:980px;padding:4px 10px;font-size:11px;font-weight:600;white-space:nowrap}.status-chip.pending{background:rgba(255,159,10,.14);color:#9a5a00}.status-chip.approved{background:rgba(48,209,88,.14);color:#1d7a36}.status-chip.rejected{background:rgba(255,59,48,.11);color:#b42318}
.action-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 0 20px}
.action-tile{border:0;text-align:left;display:flex;align-items:center;gap:12px;padding:15px 17px;border-radius:17px;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.06);cursor:pointer;color:var(--text);transition:transform .2s,box-shadow .2s}.action-tile:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,0,0,.09)}.action-tile>span{width:40px;height:40px;display:grid;place-items:center;border-radius:13px;background:#eaf3ff;font-size:20px;flex-shrink:0}.action-tile.teacher>span{background:#f3e9fb}.action-tile.group>span{background:#eaf7ed}.action-tile div{min-width:0}.action-tile b{display:block;font-size:14px}.action-tile small{display:block;color:var(--text2);font-size:11px;margin-top:4px;line-height:1.4}.action-tile strong{margin-left:auto;color:#a1a1a6;font-size:20px;font-weight:400}
.group-card{cursor:pointer;transition:transform .2s,box-shadow .2s}.group-card:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(0,0,0,.08)}.group-card-top{display:flex;justify-content:space-between;align-items:center}.group-percent{font-size:21px;font-weight:700;color:var(--accent)}.group-card h3{font-size:17px;margin-top:13px}.group-card p{font-size:12.5px;color:var(--text2);line-height:1.6;margin:7px 0 15px;min-height:40px}.group-bar,.mini-progress{height:6px;border-radius:99px;background:rgba(0,0,0,.07);overflow:hidden}.group-bar i,.mini-progress i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#62bf7a,#0a84ff)}.group-meta{display:flex;gap:10px;flex-wrap:wrap;margin:11px 0;font-size:11px;color:var(--text2)}
.group-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:30px 0 18px;padding:30px;border-radius:24px;background:linear-gradient(120deg,#eaf7ed,#f9fcf9 70%,#eaf3ff)}.group-hero h1{font-size:clamp(25px,4vw,38px);letter-spacing:-.04em;margin:8px 0}.group-hero p{font-size:13px;color:var(--text2);max-width:700px;line-height:1.6}.group-hero-meta{display:flex;gap:14px;flex-wrap:wrap;margin-top:14px;font-size:11.5px;color:#4b6f55}.group-score{width:112px;height:112px;border-radius:50%;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 12px 24px rgba(42,117,72,.12);flex-shrink:0}.group-score b{font-size:28px;color:#1d7a36}.group-score span{font-size:10px;color:var(--text2)}.group-stats{margin-top:0}.group-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.75fr);gap:20px}.day-card{display:flex;gap:14px;background:#fff;border-radius:16px;padding:17px;margin-bottom:11px;box-shadow:0 1px 3px rgba(0,0,0,.05);border:1px solid transparent}.day-card.is-done{border-color:rgba(48,209,88,.2)}.day-index{width:35px;height:35px;border-radius:11px;background:#eaf3ff;color:var(--accent);font-size:12px;font-weight:700;display:grid;place-items:center;flex-shrink:0}.day-main{flex:1;min-width:0}.day-title{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.day-title h3{font-size:15px}.material-row{display:flex;align-items:center;gap:9px;flex-wrap:wrap;color:var(--text2);font-size:11.5px;margin:9px 0 12px}.material-chip{padding:4px 8px;border-radius:7px;background:var(--card);color:#4b4b50}.day-count{font-size:12px;font-weight:700;color:var(--accent);display:flex;flex-direction:column;align-items:flex-end;flex-shrink:0}.day-count small{font-size:10px;color:var(--text2);font-weight:400;margin-top:3px}.checkin-box{display:flex;gap:9px;align-items:flex-end}.checkin-box textarea{flex:1;min-height:55px;border:1px solid rgba(0,0,0,.12);border-radius:10px;padding:9px 11px;font-family:inherit;font-size:12px;resize:vertical;outline:none}.checkin-box textarea:focus{border-color:var(--accent)}.checkin-box .btn{white-space:nowrap;padding:9px 13px;font-size:12px}.reflection-done{padding:10px 12px;background:#f1fbf3;border-radius:10px;display:flex;flex-direction:column;gap:4px}.reflection-done b{font-size:12px;color:#1d7a36}.reflection-done span{font-size:12px;line-height:1.5}.reflection-done small{font-size:10px;color:var(--text2)}.group-board{padding:8px 14px}.board-person{display:flex;align-items:center;gap:9px;padding:11px 0;border-bottom:1px solid rgba(0,0,0,.05)}.board-person:last-child{border-bottom:0}.board-person .ava{width:34px;height:34px;font-size:18px}.board-person>div{flex:1;min-width:0}.board-person b{display:block;font-size:12.5px}.board-person small{display:block;font-size:10px;color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.board-person strong{font-size:11px;color:var(--accent)}.mini-progress{height:4px;margin-top:6px}.group-manage{padding:15px}.group-manage>b{font-size:13px}.group-add-day{border-top:1px solid rgba(0,0,0,.06);margin-top:15px;padding-top:15px}.group-add-day input[type=text],.group-add-day input[type=date]{width:100%;border:1px solid rgba(0,0,0,.12);border-radius:10px;padding:9px 11px;font-size:12px;margin-top:9px;outline:none}.day-input-row{display:grid;grid-template-columns:.8fr 1.2fr;gap:8px}.group-add-day input[type=file]{width:100%;font-size:11px;margin-top:10px}.group-add-day .btn{font-size:12px;padding:8px 13px}
@media(max-width:860px){.group-layout{grid-template-columns:1fr}.group-hero{align-items:flex-start}.group-score{width:90px;height:90px}.group-score b{font-size:23px}}
@media(max-width:600px){.feature-head,.group-hero{padding:22px;display:block}.feature-icon{width:58px;height:58px;font-size:27px;border-radius:18px;margin-top:18px}.action-strip{grid-template-columns:1fr}.form-intro{display:block}.form-intro span{display:block;margin-top:5px}.feature-form .frow[style*="grid-template-columns"],.day-input-row{grid-template-columns:1fr!important}.checkin-box{display:block}.checkin-box .btn{margin-top:8px;width:100%}.group-score{margin-top:18px}.day-card{padding:14px 12px;gap:9px}.day-title h3{font-size:14px}}
.daily-quote{display:flex;align-items:center;gap:28px;padding:26px 30px;margin:0 0 30px;background:linear-gradient(110deg,#edf4ff,#f8fbff);border:1px solid #dce8fb;border-radius:20px;color:#19365e}
.quote-label{min-width:146px;display:grid;grid-template-columns:30px 1fr;align-items:center;gap:5px 9px;flex-shrink:0}
.quote-label>span{grid-row:span 2;font-family:Georgia,serif;font-size:62px;line-height:1;color:#548acf}
.quote-label b{font-size:14px}.quote-label small{font-size:10px;color:#58708e}
.daily-quote blockquote{margin:0;border-left:1px solid #cadbf2;padding-left:27px;min-width:0;flex:1}
.daily-quote blockquote p{font-size:clamp(15px,1.8vw,20px);line-height:1.65;font-weight:600;overflow-wrap:anywhere}
.daily-quote cite{display:block;text-align:right;margin-top:9px;font-size:12px;font-style:normal;color:#58708e}
.quote-preview{margin-bottom:20px}.quote-form{margin:20px 0}.quote-form h3{margin-bottom:16px;font-size:17px}
.quote-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.quote-actions .btn{font-size:12px;padding:8px 12px}
.quote-actions button:disabled{opacity:.35;cursor:default}.quote-schedule{display:flex;align-items:center;flex-wrap:wrap;gap:12px;font-size:13px;margin:22px 0}
.quote-schedule input,.analytics-filters input,.analytics-filters select{padding:10px 12px;border:1px solid #d7dfe8;border-radius:10px;background:#fff;font:inherit;min-width:0}
.quote-schedule small{width:100%;color:var(--text2);line-height:1.7}.quote-list{display:grid;gap:12px}
.quote-item{display:flex;gap:16px;background:#fff;border:1px solid #e7ebf1;border-radius:16px;padding:20px}.quote-item.is-disabled{background:#f4f5f7}
.quote-number{color:#9aacc2;font-size:20px;font-weight:700}.quote-content{min-width:0}.quote-content p{font-size:14px;line-height:1.7;overflow-wrap:anywhere}.quote-content>small{display:block;color:var(--text2);margin-top:8px}
.records-dashboard{background:#fff;border:1px solid #e5eaf1;border-radius:20px;padding:24px;margin-bottom:28px;min-width:0}
.analytics-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.analytics-heading h3{font-size:23px;margin-top:6px}
.analytics-filters{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin:22px 0 16px}.analytics-filters label{display:flex;flex-direction:column;gap:7px;font-size:12px;color:var(--text2)}.analytics-filters [hidden]{display:none}
.analytics-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.analytics-metrics button{background:#f3f7fd;border:1px solid #e3ecf9;border-radius:13px;text-align:left;padding:16px;color:#173f72;cursor:pointer;font:inherit;min-width:0}
.analytics-metrics span,.analytics-metrics small{display:block;font-size:11px}.analytics-metrics b{display:block;font-size:30px;margin:6px 0}.analytics-metrics small{color:#637c9d;font-size:10px;line-height:1.5}
.analytics-note{font-size:11px;color:var(--text2);line-height:1.8;margin:15px 0 22px}.analytics-charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.analytics-chart{border:1px solid #e7ecf3;border-radius:14px;padding:16px;min-width:0}.analytics-chart h4{font-size:14px;margin-bottom:16px}.analytics-chart h4 small{float:right;color:var(--text2);font-size:11px;font-weight:400}
.chart-scroll{overflow-x:auto}.chart-bars{display:flex;gap:5px;height:200px;align-items:stretch}.chart-column{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:flex-end;background:transparent;border:0;padding:0 2px;min-width:38px;cursor:pointer;font:inherit;color:#53718f}.chart-column.courses{color:#456aa7}.chart-column.learning{color:#5b7d31}
.chart-value{font-size:11px;height:21px}.chart-track{display:flex;align-items:flex-end;width:100%;max-width:38px;height:148px;border-bottom:1px solid #d9e4f1;background:#f4f7fb}
.chart-track i{display:block;width:100%;background:var(--blue-pure);border-radius:5px 5px 0 0}.learning .chart-track i{background:var(--avocado)}
.chart-column:hover .chart-track i{filter:brightness(.88)}.chart-column:focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-radius:5px}.chart-label{font-size:9px;margin-top:8px;white-space:nowrap}.chart-empty{min-height:140px;display:grid;place-items:center;color:var(--text2);font-size:13px;padding:20px;text-align:center}
.analytics-detail{margin-top:24px;border-top:1px solid #e7ecf3;padding-top:20px}.detail-tabs{display:flex;gap:8px;flex-wrap:wrap}.detail-tabs .btn{font-size:12px;padding:8px 12px}.detail-tabs [aria-pressed=true]{background:#e7f1ff;color:#0062cc;box-shadow:inset 0 0 0 1px #b8d6ff}
.detail-heading{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:20px 0 12px}.detail-heading h4{font-size:14px}.detail-heading>span{font-size:11px;color:var(--text2)}.detail-heading .btn{padding:6px 10px;font-size:11px}
.record-archive-title{font-size:18px;margin:24px 0 16px}.record-archive-title small{font-size:11px;font-weight:400;color:var(--text2);display:inline-block}.analytics-detail .tbl{min-width:640px}
@media(max-width:1100px){.analytics-charts{grid-template-columns:1fr}}
@media(max-width:600px){.daily-quote{display:block;padding:20px}.quote-label{margin-bottom:12px;max-width:180px}.daily-quote blockquote{padding:0;border:0}.quote-preview{padding:16px}.records-dashboard{padding:16px 12px}.analytics-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.analytics-metrics button{padding:12px}.analytics-heading h3{font-size:20px}.quote-item{padding:16px 12px;gap:10px}.quote-actions{gap:6px}.record-archive-title small{display:block;margin-top:6px}}
.admin-panel{min-width:0}
@media(max-width:860px){.admin-grid .admin-nav{position:static}}
