@charset "utf-8";
/* 首行 @charset 不可删：OSS/CDN 侧 Content-Type 不带 charset，缺它则直接打开本资源时中文注释乱码 */

/* ============================================
   TeacherOnHand · 中小学AI教育服务平台
   公共样式表 — 所有页面共享
   ============================================ */

/* --- CSS 变量 ---
   默认主题：科技教育蓝（官方 · 专业 · 科技+教育）
   双层结构：主色层 = 官方蓝（交互/链接/激活）；品牌层 = 启焰橙红（点缀位，与 logo 同色族呼应） */
:root {
  --c-primary: #0052D9; --c-primary-dark: #003CBB; --c-primary-light: #ECF2FE;
  --c-secondary: #1A3A5C; --c-secondary-light: #E8EEF4;
  --c-bg: #F3F4F7; --c-bg-alt: #F0F2F6; --c-card: #FFFFFF;
  --c-accent: #E04B2A; --c-accent-light: #FDEEE7; --c-accent-dark: #C13D20;
  --c-text: #1F2A37; --c-text-light: #5F6B7C; --c-text-muted: #94A3B8;
  --c-border: #E3E9F2; --c-red: #D94A3A; --c-blue: #3A7BD5; --c-star: #F5A623;
  --shadow-sm: 0 2px 8px rgba(23,36,61,0.06); --shadow: 0 4px 16px rgba(23,36,61,0.08);
  --shadow-lg: 0 8px 32px rgba(23,36,61,0.12);
  --radius-sm: 8px; --radius-card: 14px; --radius-lg: 18px; --radius-btn: 10px;
  --font: 'HarmonyOS Sans SC','MiSans','PingFang SC','Microsoft YaHei','Noto Sans SC','Helvetica Neue',sans-serif;
  --font-hand: 'KaiTi','STKaiti','楷体',serif;
  --transition: 0.25s cubic-bezier(0.4,0,0.2,1);
}

/* --- 全局重置 --- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--font);background:var(--c-bg);color:var(--c-text);line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden}
.container{max-width:1200px;margin:0 auto;padding:0 40px}

/* ============================================
   导航栏
   ============================================ */
.navbar{position:sticky;top:0;z-index:100;background:rgba(255,255,255,0.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--c-border);padding:0 40px;height:64px;display:flex;align-items:center;justify-content:space-between}
.nav-left{display:flex;align-items:center;gap:10px}
.nav-logo{width:40px;height:40px;border-radius:8px;flex-shrink:0}
.nav-title{font-size:16px;font-weight:600;color:var(--c-secondary);white-space:nowrap}
.nav-brand-en{font-size:16px;font-weight:600;color:var(--c-secondary);letter-spacing:0.3px;white-space:nowrap}
.nav-links{display:flex;align-items:center;gap:4px}
.nav-links a{text-decoration:none;color:var(--c-text-light);font-size:14px;padding:8px 16px;border-radius:20px;transition:var(--transition);cursor:pointer;font-weight:500}
.nav-links a:hover{background:var(--c-primary-light);color:var(--c-primary)}
.nav-links a.active{font-weight:600}
.nav-sep{display:inline-block;width:1px;height:22px;background:var(--c-border);margin:0 4px;align-self:center;border-radius:1px}
/* 教师FDE 板块子项小胶囊改由 header.php 页内定义（.nav-pill 描边/选中实底，2026-09-26）；此处历史橙色胶囊死样式已删（全站零引用） */
/* 教师FDE 已改为板块级下拉（nav-dropdown 模式，2026-09-26 四板块重组），原描边/渐变胶囊 nav-feature 系列样式退役删除 */

/* 导航项激活态：首页 / 课程资源中心 / 名师分身馆 与四个子胶囊统一同款激活样式 */
.nav-links a.active{background:var(--c-primary);color:#FFF;font-weight:600}
.nav-links a.active:hover{background:var(--c-primary);color:#FFF}
/* 子胶囊：与主入口同款样式，仅字号略小；四个子胶囊与培训期次统一带实线圆框 */
.nav-module-sub{font-size:12px !important;padding:5px 12px !important;border:1px solid var(--c-border);color:var(--c-text-light) !important}
.nav-module-sub:hover{border-color:var(--c-primary);background:var(--c-primary-light);color:var(--c-primary) !important}
.nav-module-sub.active{background:var(--c-primary);border-color:var(--c-primary);color:#FFF !important;font-weight:600}
.nav-module-sub.active:hover{border-color:var(--c-primary);background:var(--c-primary);color:#FFF !important}
.nav-training-sub{font-size:12px !important;padding:5px 12px !important;border:1px solid var(--c-border);color:var(--c-text-light) !important}
.nav-training-sub:hover{border-color:var(--c-primary);background:var(--c-primary-light);color:var(--c-primary) !important}
.nav-training-sub.active{background:var(--c-primary);color:#FFF !important;border-color:var(--c-primary);font-weight:600}

/* 课程资源中心下拉（2026-09-14 导航重排）：桌面 hover 展开、移动端点按展开（.open 由 header 内联脚本切换） */
.nav-dropdown{position:relative;display:flex;align-items:center}
.nav-dd-trigger{display:inline-flex;align-items:center;gap:5px;background:transparent;border:none;cursor:pointer;font-family:var(--font);font-size:14px;font-weight:500;color:var(--c-text-light);padding:8px 16px;border-radius:20px;transition:var(--transition)}
.nav-dd-trigger:hover{background:var(--c-primary-light);color:var(--c-primary)}
.nav-dd-trigger.active{background:var(--c-primary);color:#FFF;font-weight:600}
.nav-dd-trigger.active:hover{background:var(--c-primary);color:#FFF}
.nav-dd-caret{font-size:11px;transition:transform .15s}
.nav-dropdown:hover .nav-dd-caret,.nav-dropdown.open .nav-dd-caret{transform:rotate(180deg)}
.nav-dd-trigger:focus{outline:none}
.nav-dd-trigger:focus-visible{outline:2px solid var(--c-primary);outline-offset:2px}
/* hover 隐形桥：填补按钮与菜单间 6px 空隙，避免鼠标下移时 :hover 断开导致菜单闪烁收起 */
.nav-dropdown::after{content:'';position:absolute;left:0;right:0;top:100%;height:8px}
.nav-dd-menu{display:none;position:absolute;top:calc(100% + 6px);left:0;min-width:150px;background:#FFF;border:1px solid var(--c-border);border-radius:14px;box-shadow:var(--shadow-lg);padding:6px;z-index:1200;animation:fadeIn 0.15s ease}
.nav-dropdown:hover .nav-dd-menu,.nav-dropdown.open .nav-dd-menu{display:block}
.nav-dd-menu a{display:block;padding:8px 14px;border-radius:10px;font-size:13.5px;color:var(--c-text-light);text-decoration:none;transition:var(--transition);white-space:nowrap}
.nav-dd-menu a:hover{background:var(--c-primary-light);color:var(--c-primary)}
.nav-dd-menu a.active{background:var(--c-primary);color:#FFF;font-weight:600}
.nav-right{display:flex;align-items:center;gap:12px}
.nav-theme-toggle{padding:8px 14px;border-radius:var(--radius-btn);border:1px solid var(--c-border);background:#FFF;color:var(--c-text-light);font-size:13px;font-weight:600;cursor:pointer;font-family:var(--font);transition:var(--transition);white-space:nowrap}
.nav-theme-toggle:hover{border-color:var(--c-accent);color:var(--c-accent-dark);background:var(--c-accent-light)}

/* ============================================
   用户菜单（头像 + 昵称 + 下拉）
   ============================================ */
.nav-user{position:relative;display:flex;align-items:center}
.user-menu{position:relative}
.user-trigger{display:flex;align-items:center;gap:8px;padding:4px 8px 4px 4px;border-radius:24px;border:1px solid var(--c-border);background:#FFF;cursor:pointer;font-family:var(--font);transition:var(--transition)}
.user-trigger:hover{border-color:var(--c-accent);box-shadow:var(--shadow-sm)}
.user-avatar{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,var(--c-accent),var(--c-accent-dark));color:#FFF;font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.user-name{font-size:14px;font-weight:600;color:var(--c-secondary);max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.user-caret{font-size:11px;color:var(--c-text-muted);transition:var(--transition)}
.user-menu.open .user-caret{transform:rotate(180deg)}
.user-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:140px;background:#FFF;border:1px solid var(--c-border);border-radius:12px;box-shadow:var(--shadow-lg);padding:6px;z-index:1100;animation:fadeIn 0.15s ease}
.user-drop-item{display:flex;width:100%;align-items:center;gap:8px;padding:10px 12px;border:none;background:transparent;border-radius:8px;font-size:14px;color:var(--c-text);cursor:pointer;font-family:var(--font);text-align:left;transition:var(--transition)}
.user-drop-item:hover{background:var(--c-bg-alt)}
.user-drop-item.danger{color:var(--c-red)}
.user-drop-item.danger:hover{background:rgba(217,74,58,0.08)}

/* ============================================
   按钮体系
   ============================================ */
.btn{display:inline-flex;align-items:center;gap:6px;padding:12px 28px;border-radius:var(--radius-btn);font-size:15px;font-weight:600;cursor:pointer;font-family:var(--font);transition:var(--transition);text-decoration:none;border:none}
.btn-primary{background:linear-gradient(135deg,var(--c-primary),var(--c-primary-dark));color:#FFF}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,82,217,0.35)}
.btn-outline{background:transparent;color:var(--c-primary);border:2px solid var(--c-primary)}
.btn-outline:hover{background:var(--c-primary);color:#FFF;transform:translateY(-2px)}
.btn-accent{background:linear-gradient(135deg,var(--c-accent),var(--c-accent-dark));color:#FFF}
.btn-accent:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(224,75,42,0.35)}
.btn-white{background:#FFF;color:var(--c-primary)}
.btn-white:hover{background:var(--c-primary-light)}
.btn-login{padding:6px 16px;border-radius:var(--radius-btn);background:transparent;color:var(--c-primary);border:1.5px solid var(--c-primary);font-size:13px;cursor:pointer;font-family:var(--font);font-weight:500;transition:var(--transition)}
.btn-login:hover{background:var(--c-primary-light);color:var(--c-primary);transform:none;box-shadow:none}
.btn-login.logged-in{background:var(--c-secondary);border-color:var(--c-secondary);color:#FFF;font-size:12px;padding:5px 14px}

/* ============================================
   通用区块
   ============================================ */
.section{padding:64px 0}
.section-header{text-align:center;margin-bottom:44px}
.section-header .en{font-size:12px;letter-spacing:4px;color:var(--c-primary);font-weight:600;margin-bottom:8px;text-transform:uppercase}
.section-header h2{font-size:32px;color:var(--c-secondary);font-weight:700;margin-bottom:10px;letter-spacing:.5px}
.section-header .sub{font-size:15px;color:var(--c-text-light);max-width:560px;margin:0 auto}

/* ============================================
   动画
   ============================================ */
@keyframes fadeInUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(0,82,217,0.4)}50%{box-shadow:0 0 0 8px rgba(0,82,217,0)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes slideUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}

/* ============================================
   页脚
   ============================================ */
.footer{text-align:center;padding:36px 0;font-size:13px;color:var(--c-text-muted);border-top:1px solid var(--c-border);background:var(--c-card)}
.footer strong{color:var(--c-secondary)}

/* ============================================
   登录弹窗
   ============================================ */
.modal-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;z-index:2000;background:rgba(0,0,0,0.5);align-items:center;justify-content:center;animation:fadeIn 0.2s ease}
.modal-overlay.show{display:flex}
.modal-box{background:#FFF;border-radius:18px;padding:40px;max-width:400px;width:90%;box-shadow:0 8px 32px rgba(23,36,61,0.12);position:relative;animation:slideUp 0.3s ease}
.modal-close{position:absolute;top:16px;right:16px;width:32px;height:32px;border-radius:50%;border:none;background:var(--c-bg-alt);cursor:pointer;font-size:18px;color:var(--c-text-muted);transition:var(--transition)}
.modal-close:hover{background:var(--c-border);color:var(--c-text)}
.modal-title{font-size:20px;font-weight:700;color:var(--c-secondary);margin-bottom:24px;text-align:center}
.form-group{margin-bottom:16px}
.form-group label{display:block;font-size:13px;font-weight:600;color:var(--c-text);margin-bottom:6px}
.form-group input{width:100%;padding:10px 14px;border:1.5px solid var(--c-border);border-radius:10px;font-size:14px;font-family:var(--font);outline:none;transition:var(--transition)}
.form-group input:focus{border-color:var(--c-primary);box-shadow:0 0 0 3px rgba(0,82,217,0.1)}
.form-row{display:flex;gap:10px}
.form-row input{flex:1}
.form-row .btn-send{padding:10px 16px;background:var(--c-primary-light);color:var(--c-primary);border:none;border-radius:10px;font-size:13px;font-weight:600;cursor:pointer;font-family:var(--font);white-space:nowrap;transition:var(--transition)}
.form-row .btn-send:hover{background:var(--c-primary);color:#FFF}
.form-row .btn-send:disabled{background:var(--c-bg);color:var(--c-text-muted);cursor:not-allowed}
.form-hint{font-size:12px;color:var(--c-text-muted);text-align:center;margin-top:10px}

/* ============================================
   Toast 提示
   ============================================ */
.toast{position:fixed;top:76px;left:50%;transform:translateX(-50%);background:var(--c-secondary);color:#FFF;padding:12px 28px;border-radius:8px;font-size:14px;z-index:9999;box-shadow:var(--shadow-lg);opacity:0;transition:opacity 0.3s;pointer-events:none}

/* ============================================
   响应式
   ============================================ */
@media(max-width:1100px){
  .container{padding:0 24px}
  .section-header h2{font-size:28px}
  .nav-title{display:none}
}
@media(max-width:768px){
  .container{padding:0 16px}
  .navbar{padding:0 16px;height:auto;padding-top:10px;padding-bottom:10px;flex-wrap:wrap;gap:8px;justify-content:center}
  .nav-links{flex-wrap:wrap;justify-content:center}
  .nav-links a{font-size:12px;padding:4px 8px}
  .nav-dd-trigger{font-size:12px;padding:4px 8px}
  .nav-dd-menu{min-width:130px;left:50%;transform:translateX(-50%)}  /* 移动端导航换行居中布局：菜单相对按钮水平居中展开，避免靠边溢出视口 */
  .section{padding:40px 0}
  .section-header h2{font-size:24px}
  .section-header .sub{font-size:14px}
  .modal-box{padding:28px 20px}
  .toast{top:116px}  /* 移动端导航栏换行更高，Toast 随之下移避让 */
}

/* ============================================
   文化气质主题（body[data-theme="culture"]）
   传道授业 · 书卷气 · 体制内观感（新旧并存，一键切换）
   ============================================ */
body[data-theme="culture"]{
  --c-primary:#2E5E4E; --c-primary-dark:#244D3F; --c-primary-light:#E9F0EC;
  --c-secondary:#2A3642; --c-secondary-light:#EAE6DA;
  --c-bg:#F5F1E8; --c-bg-alt:#EDE7DA; --c-card:#FDFBF6;
  --c-accent:#B8893C; --c-accent-light:#F4EBD8; --c-accent-dark:#966E2C;
  --c-text:#2B2925; --c-text-light:#6B6257; --c-text-muted:#A89E8F;
  --c-border:#E2DACB; --c-red:#A63A2B; --c-star:#B8893C;
  --shadow-sm:0 1px 4px rgba(43,41,37,.05); --shadow:0 3px 12px rgba(43,41,37,.08);
  --shadow-lg:0 8px 28px rgba(43,41,37,.12);
  --radius-sm:6px; --radius-card:10px; --radius-lg:14px; --radius-btn:8px;
  --font-title:'Songti SC','STSong','SimSun','宋体','Noto Serif SC',serif;
}
/* ↓ 【底纹注入点】整页宣纸纹（内联 SVG 图案）。如需换成图片底纹：将下一条 background-image 的 url("data:...") 替换为 url("assets/img/xx.png")，并同步调整 background-size */
body[data-theme="culture"]{background-color:var(--c-bg);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='260' height='260' viewBox='0 0 260 260'%3E%3Cg fill='none' stroke='%23B8893C' stroke-opacity='0.07' stroke-width='1.1'%3E%3Cpath d='M20 200 L95 110 L150 200'/%3E%3Cpath d='M110 200 L175 132 L240 200'/%3E%3Ccircle cx='188' cy='86' r='16'/%3E%3Cpath d='M0 226 Q65 206 130 226 T260 226'/%3E%3C/g%3E%3C/svg%3E");background-size:260px 260px}

/* 标题：宋体 / 楷体，端庄书卷气 */
body[data-theme="culture"] h1,
body[data-theme="culture"] h2,
body[data-theme="culture"] h3,
body[data-theme="culture"] .section-header h2,
body[data-theme="culture"] .hero h1{
  font-family:var(--font-title);font-weight:700;color:var(--c-secondary);letter-spacing:.5px;
}
body[data-theme="culture"] .section-header .en{
  font-family:var(--font-title);letter-spacing:6px;color:var(--c-accent-dark);font-size:11px;
}

/* 导航：宣纸底 + 细墨线 + 宋体主入口 */
body[data-theme="culture"] .navbar{background:rgba(253,251,246,.96);border-bottom:1px solid var(--c-border)}
body[data-theme="culture"] .nav-brand-en{font-family:var(--font-title);color:var(--c-secondary);letter-spacing:1px}
body[data-theme="culture"] .nav-title{font-family:var(--font-title);color:var(--c-secondary)}
body[data-theme="culture"] .nav-theme-toggle{font-family:var(--font-title);letter-spacing:1px;color:var(--c-accent-dark)}
body[data-theme="culture"] .nav-theme-toggle:hover{background:var(--c-accent-light);color:var(--c-accent-dark)}
body[data-theme="culture"] .nav-links a{font-family:var(--font-title);font-weight:500}
body[data-theme="culture"] .nav-links a.active{background:var(--c-primary);color:#FFF;font-weight:600}

/* 按钮：方正、稳重、字距 */
body[data-theme="culture"] .btn,
body[data-theme="culture"] .btn-login{font-family:var(--font-title);letter-spacing:1px}
body[data-theme="culture"] .btn-primary{background:linear-gradient(135deg,var(--c-primary),var(--c-primary-dark));box-shadow:none}
body[data-theme="culture"] .btn-primary:hover{box-shadow:0 6px 18px rgba(46,94,78,.28)}
body[data-theme="culture"] .btn-outline{border-color:var(--c-primary);color:var(--c-primary)}
body[data-theme="culture"] .btn-accent{background:linear-gradient(135deg,var(--c-accent),var(--c-accent-dark));box-shadow:none}
body[data-theme="culture"] .btn-accent:hover{box-shadow:0 6px 18px rgba(184,137,60,.3)}

/* 卡片：纸感、细边 */
body[data-theme="culture"] .trio-card,
body[data-theme="culture"] .twin-card,
body[data-theme="culture"] .philosophy-card{background:var(--c-card);border:1px solid var(--c-border)}

/* 首页 Hero 装饰与深色横幅的绿色硬编码 → 墨黛 / 赭金 */
body[data-theme="culture"] .hero::before{background:radial-gradient(circle,rgba(184,137,60,.09) 0%,transparent 70%)}
body[data-theme="culture"] .hero-badge{background:var(--c-accent-light);color:var(--c-accent-dark);font-family:var(--font-title)}
body[data-theme="culture"] .master-banner,
body[data-theme="culture"] .cta-banner{background:linear-gradient(135deg,var(--c-secondary),#1B2733)}
body[data-theme="culture"] .master-banner::before,
body[data-theme="culture"] .cta-banner::before{background:radial-gradient(circle,rgba(184,137,60,.16) 0%,transparent 70%)}
body[data-theme="culture"] .mb-badge{color:var(--c-accent);background:rgba(184,137,60,.16)}
body[data-theme="culture"] .mb-title{font-family:var(--font-title)}
body[data-theme="culture"] .cb-title{font-family:var(--font-title)}

/* 页脚：宣纸 + 细线 */
body[data-theme="culture"] .footer{background:var(--c-bg);border-top:1px solid var(--c-border);color:var(--c-text-muted)}

/* 悬浮按钮：墨黛主色 */
body[data-theme="culture"] .fc-head{background:linear-gradient(135deg,var(--c-primary),var(--c-primary-dark))}
body[data-theme="culture"] .fc-fab{background:linear-gradient(135deg,var(--c-primary),var(--c-primary-dark));box-shadow:0 8px 22px rgba(46,94,78,.3)}
body[data-theme="culture"] .fc-fab:hover{box-shadow:0 12px 28px rgba(46,94,78,.4)}