/* ===== 高校通 全站样式 v2（高顿风格） ===== */
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:"PingFang SC","Microsoft YaHei","Helvetica Neue",Arial,sans-serif;background:#f3f6fb;color:#33404f;font-size:14px;line-height:1.7;-webkit-font-smoothing:antialiased}
a{color:#2563eb;text-decoration:none;transition:color .2s}
img{max-width:100%}
.wrap{max-width:1280px;margin:0 auto;padding:0 24px}
.flex-between{display:flex;align-items:center;justify-content:space-between}
.text-muted{color:#8a94a6}
.text-right{text-align:right}
.mt{margin-top:16px}.mb{margin-bottom:16px}
:root{--blue:#2563eb;--dark:#0f2b52;--deep:#12335f;--gold:#ffb02e;--line:#e6ecf5;--bg:#f3f6fb}

/* ===== 官网顶部导航（白色通栏，高顿式） ===== */
.topbar{background:#fff;box-shadow:0 2px 12px rgba(15,43,82,.06);position:sticky;top:0;z-index:60}
.topbar .wrap{height:60px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.logo{color:var(--dark);font-size:20px;font-weight:800;letter-spacing:.5px;display:flex;align-items:center;flex-shrink:0}
.logo .logo-img{height:36px;width:auto;display:block}
.logo small{font-size:11px;color:#8a94a6;font-weight:400;margin-left:8px;letter-spacing:0}
.pub-nav{display:flex;gap:2px;flex-wrap:nowrap;overflow-x:auto;flex:1;justify-content:center}
.pub-nav a{color:#33404f;margin:0 2px;padding:7px 11px;border-radius:7px;font-size:14px;font-weight:500;white-space:nowrap;transition:all .15s}
.pub-nav a:hover{color:var(--blue);background:#eef4ff}
.pub-nav a.on{color:var(--blue);font-weight:600;background:#eef4ff}
.top-user{display:flex;align-items:center;gap:10px;color:#5a6b85;flex-shrink:0;font-size:13px}
.top-user a{color:#5a6b85;white-space:nowrap}
.top-user a:hover{color:var(--blue)}
.top-user em{font-style:normal;background:#eef4ff;color:var(--blue);padding:2px 10px;border-radius:10px;font-size:12px;font-weight:600}
.top-user .btn{padding:7px 18px;border-radius:7px;font-size:13px;color:#fff}
.top-user .btn-primary{color:#fff}
.avatar-img{width:28px;height:28px;border-radius:50%;object-fit:cover}
.avatar-letter{display:inline-flex;width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,#1e4fd8,#2563eb);color:#fff;align-items:center;justify-content:center;font-size:13px}
.topbar .phone{display:flex;align-items:center;gap:6px;font-size:12px;color:#5a6b85}
.topbar .phone b{color:var(--dark);font-size:14px;letter-spacing:.5px}

/* ===== 后台布局（证书管理式：深蓝顶栏+白侧栏） ===== */
.admin-top{background:linear-gradient(90deg,#0f2b52,#12335f 60%,#1b4a86);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 24px;height:58px;position:sticky;top:0;z-index:70;box-shadow:0 2px 14px rgba(4,17,41,.35)}
.admin-top .at-left{display:flex;align-items:center;gap:22px;min-width:0}
.admin-top .at-brand img{height:36px;width:auto;display:block}
.admin-top .at-crumb{color:#a9bede;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.admin-top .at-right{display:flex;align-items:center;gap:12px;color:#dbe6f5;font-size:13px;flex-shrink:0}
.admin-top .at-time{color:#8fb0dd;font-size:12px;font-variant-numeric:tabular-nums}
.admin-top .at-user{font-weight:600;color:#fff}
.admin-top .at-role{font-style:normal;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.25);padding:2px 12px;border-radius:12px;font-size:12px}
.admin-top .at-right a{color:#a9bede;font-size:13px}
.admin-top .at-right a:hover{color:#fff}
.admin-top .avatar-img{width:28px;height:28px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 2px rgba(255,255,255,.25)}
.admin-top .avatar-letter{width:28px;height:28px;border-radius:50%;background:rgba(255,255,255,.16);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:13px;box-shadow:0 0 0 2px rgba(255,255,255,.25)}
.layout{display:flex;min-height:calc(100vh - 58px)}
.sidebar{width:216px;background:#fff;border-right:1px solid #e6ecf5;padding:14px 0 30px;flex-shrink:0;box-shadow:2px 0 10px rgba(15,43,82,.04)}
.sidebar ul{list-style:none}
.sidebar li{margin:2px 8px}
.sidebar li a{display:flex;align-items:center;gap:10px;color:#5a6b85;padding:11px 14px;border-radius:10px;font-size:14px;transition:all .2s}
.sidebar li a .ico{width:20px;text-align:center;font-size:15px}
.sidebar li.active a{background:linear-gradient(135deg,#2563eb,#1e4fd8);color:#fff;box-shadow:0 4px 12px rgba(37,99,235,.28)}
.sidebar li a:hover{background:#eef4ff;color:var(--blue)}
.sidebar li.active a:hover{background:linear-gradient(135deg,#2563eb,#1e4fd8);color:#fff}
.main{flex:1;padding:22px 26px;min-width:0;background:#f5f7fb}
.page-title{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:18px}
.page-title h1{font-size:22px;font-weight:700;color:#0f2b52}
.page-title h1:before{content:"";width:4px;height:20px;background:linear-gradient(180deg,#2563eb,#1e4fd8);border-radius:2px;display:inline-block;margin-right:10px;vertical-align:-2px}
/* 标题右侧操作按钮组 */
.page-actions{display:flex;gap:10px;align-items:center}
.page-actions .btn{display:inline-flex;align-items:center;gap:4px}

/* ===== 卡片/表格（后台与通用） ===== */
.card{background:#fff;border-radius:14px;padding:20px 22px;box-shadow:0 1px 6px rgba(15,43,82,.06),0 1px 2px rgba(15,43,82,.04);margin-bottom:16px;border:1px solid rgba(15,43,82,.03)}
.card h3.mb,.card .mb h3{color:var(--dark)}
.table{width:100%;border-collapse:collapse;background:#fff}
.table th,.table td{padding:12px 14px;border-bottom:1px solid #eef2f7;text-align:left;vertical-align:middle}
.table th{background:#f7f9fd;color:#5a6b85;font-weight:600;font-size:13px;white-space:nowrap}
.table tr:last-child td{border-bottom:none}
.table tr:hover td{background:#f8fbff}
.table .btn{margin-right:4px}
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px;margin-bottom:16px}
.stat-card{background:#fff;border-radius:14px;padding:20px;box-shadow:0 1px 6px rgba(15,43,82,.06);border-top:3px solid var(--blue);position:relative;overflow:hidden;transition:transform .2s}
.stat-card:hover{transform:translateY(-2px)}
.stat-card .num{font-size:28px;font-weight:800;color:var(--dark);line-height:1.2}
.stat-card .lbl{color:#8a94a6;font-size:13px;margin-top:6px}
.stat-card:before{content:"";position:absolute;right:-14px;top:-14px;width:70px;height:70px;border-radius:50%;background:rgba(37,99,235,.05)}
.stat-card.gold{border-top-color:var(--gold)}
.stat-card.green{border-top-color:#16a34a}
.stat-card.red{border-top-color:#e11d48}

/* ===== 按钮 ===== */
.btn{display:inline-block;background:linear-gradient(135deg,#2563eb,#1e4fd8);color:#fff;border:none;border-radius:8px;padding:9px 20px;cursor:pointer;font-size:14px;text-align:center;transition:all .2s;box-shadow:0 2px 8px rgba(37,99,235,.25)}
.btn:hover{background:linear-gradient(135deg,#1e4fd8,#1a45c4);box-shadow:0 4px 14px rgba(37,99,235,.35);color:#fff;transform:translateY(-1px)}
.btn-sm{padding:5px 14px;font-size:13px;border-radius:7px;box-shadow:none}
.btn-ghost{background:#f0f4fa;color:#33404f;box-shadow:none}
.btn-ghost:hover{background:#e4ecf6;color:var(--dark);box-shadow:none}
.btn-warn{background:linear-gradient(135deg,#ffb02e,#f59e0b);color:#0f2b52;box-shadow:0 2px 8px rgba(245,158,11,.3)}
.btn-warn:hover{background:linear-gradient(135deg,#f59e0b,#e08e00);color:#0f2b52}
.btn-danger{background:linear-gradient(135deg,#e11d48,#be123c);box-shadow:0 2px 8px rgba(225,29,72,.25)}
.btn-danger:hover{background:linear-gradient(135deg,#be123c,#9f1239)}
.btn-green{background:linear-gradient(135deg,#16a34a,#15803d);box-shadow:0 2px 8px rgba(22,163,74,.25)}
.btn-green:hover{background:linear-gradient(135deg,#15803d,#166534)}
.btn-outline{background:transparent;border:1.5px solid rgba(255,255,255,.7);color:#fff;box-shadow:none}
.btn-outline:hover{background:rgba(255,255,255,.12);border-color:#fff;color:#fff}
.btn-primary{background:var(--blue);color:#fff;box-shadow:none}

/* ===== 表单 ===== */
.form-group{margin-bottom:16px}
.form-group label{display:block;margin-bottom:6px;color:#5a6b85;font-weight:600;font-size:13px}
.form-control{width:100%;max-width:480px;padding:10px 13px;border:1px solid #d9e2ee;border-radius:8px;font-size:14px;background:#fff;transition:all .2s}
.form-control:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(37,99,235,.12)}
textarea.form-control{min-height:120px}
select.form-control{max-width:480px}
.form-hint{color:#8a94a6;font-size:12px;margin-top:4px}
.search-form{display:flex;gap:8px;align-items:center}
.search-form input[type=text]{padding:7px 12px;border:1px solid #d9e2ee;border-radius:8px;font-size:13px;width:200px;transition:all .2s}
.search-form input[type=text]:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(37,99,235,.1)}

/* ===== 徽标 ===== */
.badge{display:inline-block;padding:3px 12px;border-radius:12px;font-size:12px;background:#eef2f7;color:#5a6b85;font-weight:500}
.badge-green{background:#e4f6ea;color:#12853b}
.badge-blue{background:#e5efff;color:#1d4fc4}
.badge-orange{background:#fff3e0;color:#b45309}
.badge-red{background:#fde8e8;color:#b91c1c}
.badge-purple{background:#f1e9fd;color:#6d28d9}

/* ===== 老师名片 ===== */
.teacher-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:18px}
.teacher-card{background:#fff;border-radius:16px;padding:24px;box-shadow:0 2px 12px rgba(15,43,82,.07);display:flex;gap:16px;border:1px solid rgba(15,43,82,.04);transition:all .25s;position:relative}
.teacher-card:hover{transform:translateY(-4px);box-shadow:0 10px 28px rgba(15,43,82,.12)}
.teacher-card .tc-main{flex:1}
.teacher-card h3{font-size:17px;color:var(--dark);font-weight:700;display:flex;align-items:center;gap:8px}
.teacher-card .tags{margin:10px 0}
.tag{display:inline-block;background:#eef5ff;color:var(--blue);border-radius:10px;padding:3px 12px;font-size:12px;margin:2px 6px 2px 0;font-weight:500}
.teacher-card .price{color:#e0500a;font-size:20px;font-weight:800}
.tc-avatar{width:88px;height:88px;border-radius:14px;object-fit:cover;flex-shrink:0;box-shadow:0 4px 12px rgba(15,43,82,.15)}
.tc-avatar.letter{display:flex;background:linear-gradient(135deg,#0f2b52,#1b4a86);color:var(--gold);font-size:34px;align-items:center;justify-content:center}
.tc-stars{color:#f5a623;font-size:13px;letter-spacing:1px}

/* ===== 官网 Hero / 区块 ===== */
.hero{background:radial-gradient(800px 400px at 80% -10%,rgba(37,99,235,.55),transparent),linear-gradient(135deg,#0a1f3d 0%,#12335f 55%,#1b4a86 100%);color:#fff;padding:88px 0 96px;text-align:center;position:relative;overflow:hidden}
.hero:after{content:"";position:absolute;left:-60px;top:-60px;width:280px;height:280px;border-radius:50%;background:radial-gradient(circle,rgba(255,176,46,.18),transparent 65%)}
.hero h1{font-size:46px;font-weight:800;letter-spacing:1px;line-height:1.25;margin-bottom:18px}
.hero h1 .hl{color:var(--gold)}
.hero p{color:#b9c9e4;font-size:17px;max-width:720px;margin:0 auto 32px;line-height:1.8}
.hero .btn{font-size:16px;padding:13px 34px;border-radius:10px;margin:0 8px}
.hero-sub{display:flex;justify-content:center;gap:44px;margin-top:46px;flex-wrap:wrap}
.hero-sub .it{text-align:center}
.hero-sub .it b{display:block;font-size:30px;font-weight:800;color:#fff}
.hero-sub .it span{color:#8fb0dd;font-size:13px}
.hero-sub .it:not(:last-child):after{content:"";position:absolute}
.hero-badge{display:inline-block;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);color:#fff;border-radius:30px;padding:6px 18px;font-size:13px;margin-bottom:22px;letter-spacing:2px}
.section{padding:56px 0}
.section.alt{background:#fff}
.section-title{text-align:center;font-size:30px;font-weight:800;color:var(--dark);margin-bottom:10px;letter-spacing:.5px}
.section-sub{text-align:center;color:#8a94a6;margin-bottom:36px;font-size:15px}
.section-title-bar{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:10px}
.section-title-bar:before,.section-title-bar:after{content:"";width:34px;height:2px;background:linear-gradient(90deg,transparent,var(--gold))}
.section-title-bar:after{background:linear-gradient(90deg,var(--gold),transparent)}

/* 服务能力卡 */
.feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}
.feature{background:#fff;border-radius:16px;padding:28px 24px;box-shadow:0 2px 12px rgba(15,43,82,.06);border:1px solid rgba(15,43,82,.04);transition:all .25s;position:relative;overflow:hidden}
.feature:hover{transform:translateY(-4px);box-shadow:0 12px 30px rgba(15,43,82,.12)}
.feature .icon{width:56px;height:56px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:28px;background:linear-gradient(135deg,#eef4ff,#e0ecff);margin-bottom:16px}
.feature h3{font-size:17px;margin-bottom:8px;color:var(--dark);font-weight:700}
.feature p{color:#5a6b85;font-size:13.5px;line-height:1.8}
.feature .more{display:inline-block;margin-top:14px;font-size:13px;color:var(--blue);font-weight:600}
.feature .more:hover{color:var(--dark)}

/* 数据背书条 */
.band{background:linear-gradient(135deg,#0a1f3d,#12335f);color:#fff;padding:44px 0}
.band .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;text-align:center}
.band .it b{display:block;font-size:38px;font-weight:800;color:var(--gold)}
.band .it span{color:#9db4d8;font-size:14px;letter-spacing:1px}

/* 服务流程 */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px}
.step{text-align:center;padding:28px 20px;background:#fff;border-radius:16px;box-shadow:0 2px 12px rgba(15,43,82,.06);border:1px solid rgba(15,43,82,.04);transition:all .25s}
.step:hover{transform:translateY(-4px);box-shadow:0 12px 30px rgba(15,43,82,.12)}
.step .no{width:52px;height:52px;line-height:52px;border-radius:50%;background:linear-gradient(135deg,#0f2b52,#1b4a86);color:var(--gold);font-size:20px;font-weight:800;margin:0 auto 14px;box-shadow:0 6px 16px rgba(15,43,82,.2)}
.step h4{font-size:16px;color:var(--dark);margin-bottom:6px}
.step p{color:#5a6b85;font-size:13px;line-height:1.7}

/* Banner 轮播 */
.banner-slider{position:relative;border-radius:16px;overflow:hidden;height:300px;background:linear-gradient(120deg,#12335f,#2563eb);box-shadow:0 8px 30px rgba(15,43,82,.18)}
.banner-slider .slide{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;transition:opacity .5s}
.banner-slider .slide h2{font-size:30px;font-weight:700}
.banner-dots{position:absolute;left:0;right:0;bottom:14px;display:flex;justify-content:center;gap:8px}
.banner-dots span{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.45);cursor:pointer;transition:background .3s}
.banner-dots span.on{background:var(--gold);width:22px;border-radius:5px}

/* 资讯 */
.news-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}
.news-card{background:#fff;border-radius:14px;padding:20px 22px;box-shadow:0 2px 12px rgba(15,43,82,.06);border:1px solid rgba(15,43,82,.04);transition:all .25s}
.news-card:hover{transform:translateY(-3px);box-shadow:0 10px 26px rgba(15,43,82,.1)}
.news-card h4{font-size:15.5px;color:var(--dark);margin-bottom:6px;line-height:1.5}
.news-card h4 a{color:var(--dark)}
.news-card h4 a:hover{color:var(--blue)}
.news-card p{color:#8a94a6;font-size:13px}

/* 详情页 */
.detail-head{display:flex;gap:24px;background:#fff;border-radius:16px;padding:28px;box-shadow:0 2px 12px rgba(15,43,82,.06);margin-bottom:18px;border:1px solid rgba(15,43,82,.04)}
.detail-head .tc-avatar{width:110px;height:110px;border-radius:16px;font-size:46px}
.detail-head h2{color:var(--dark);font-size:24px;font-weight:800}
.detail-head .meta{color:#8a94a6;font-size:13px;margin:8px 0}

/* 列表页工具 */
.filter-bar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:16px}
.filter-bar a{display:inline-block;padding:7px 18px;border-radius:20px;background:#fff;border:1px solid #e2e9f2;color:#5a6b85;font-size:13px;transition:all .2s}
.filter-bar a:hover{border-color:var(--blue);color:var(--blue)}
.filter-bar a.on{background:var(--blue);color:#fff;border-color:var(--blue)}

/* 消息 */
.msg-thread{max-height:460px;overflow-y:auto;padding:14px;background:#f8fafd;border-radius:12px;margin-bottom:14px}
.msg-item{margin-bottom:12px;max-width:72%}
.msg-item.me{margin-left:auto;text-align:right}
.msg-item .bubble{display:inline-block;background:#fff;border:1px solid #e2e9f2;border-radius:14px;padding:9px 14px;font-size:14px}
.msg-item.me .bubble{background:linear-gradient(135deg,#2563eb,#1e4fd8);color:#fff;border-color:transparent}
.msg-item .time{font-size:11px;color:#8a94a6;display:block;margin-top:3px}

/* 分页 */
.pagination{display:flex;gap:6px;list-style:none;margin:16px 0}
.pagination li a{display:inline-block;padding:7px 14px;background:#fff;border:1px solid #dde5f0;border-radius:8px;color:#5a6b85;transition:all .2s}
.pagination li a:hover{border-color:var(--blue);color:var(--blue)}
.pagination li.active a{background:var(--blue);color:#fff;border-color:var(--blue);box-shadow:0 2px 8px rgba(37,99,235,.25)}

/* 内页头部 */
.page-hero{background:radial-gradient(700px 300px at 85% -20%,rgba(37,99,235,.5),transparent),linear-gradient(135deg,#0a1f3d,#12335f 60%,#1b4a86);color:#fff;padding:48px 0;text-align:center}
.page-hero h1{font-size:32px;font-weight:800;margin-bottom:8px;letter-spacing:.5px}
.page-hero p{color:#a9bede;font-size:15px}

/* ===== 登录/注册 ===== */
.auth-wrap{min-height:calc(100vh - 64px);display:flex;align-items:center;justify-content:center;padding:40px 16px;background:radial-gradient(700px 400px at 20% 10%,rgba(37,99,235,.2),transparent),linear-gradient(135deg,#0a1f3d,#12335f 60%,#1b4a86)}
.auth-card{width:100%;max-width:460px;background:#fff;border-radius:18px;padding:38px 40px;box-shadow:0 24px 60px rgba(4,17,41,.4)}
.auth-card h2{text-align:center;margin-bottom:8px;color:var(--dark);font-size:24px;font-weight:800}
.auth-card .auth-sub{text-align:center;color:#8a94a6;font-size:13px;margin-bottom:26px}
.role-tabs{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}
.role-tabs label{flex:1;text-align:center;border:1px solid #d4dde8;border-radius:10px;padding:10px;cursor:pointer;font-size:13px;color:#5a6b85;transition:all .2s;background:#f8fafd}
.role-tabs label:hover{border-color:var(--blue)}
.role-tabs input{display:none}
.role-tabs input:checked+span{color:var(--blue);font-weight:700}
.role-tabs label:has(input:checked){border-color:var(--blue);background:#eef4ff}

/* ===== 页脚 ===== */
.site-footer{background:#0a1f3d;color:#8aa0c4;padding:48px 0 0;margin-top:20px}
.site-footer .footer-logo{height:42px;width:auto;display:block;margin-bottom:6px}
.site-footer .cols{display:grid;grid-template-columns:2fr 1fr 1fr 1.4fr;gap:36px;padding-bottom:36px}
.site-footer h5{color:#fff;font-size:15px;margin-bottom:14px;font-weight:600}
.site-footer a{color:#8aa0c4;display:block;margin:7px 0;font-size:13px}
.site-footer a:hover{color:#fff}
.site-footer .desc{font-size:13px;line-height:1.9;margin-top:10px}
.site-footer .hotline{font-size:24px;font-weight:800;color:var(--gold);margin:8px 0}
.site-footer .bottom{border-top:1px solid rgba(255,255,255,.1);padding:16px 0;text-align:center;font-size:12px;color:#64799e}

/* ===== 后台概览快捷入口 ===== */
.quick-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-bottom:8px}
.quick-item{background:#fff;border-radius:14px;padding:16px;text-align:center;box-shadow:0 1px 6px rgba(15,43,82,.06);border:1px solid rgba(15,43,82,.04);transition:all .2s;color:#33404f}
.quick-item:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(15,43,82,.12);color:var(--blue)}
.quick-item .qi{font-size:26px;display:block;margin-bottom:6px}
.quick-item span{font-size:13px;font-weight:600}

/* 双栏布局 */
.two-col{display:grid;grid-template-columns:1.2fr 1fr;gap:16px}
@media (max-width:1100px){.two-col{grid-template-columns:1fr}}

/* 响应式 */
@media (max-width:900px){
  .layout{flex-direction:column}
  .sidebar{width:100%;overflow-x:auto;padding:6px 0;position:static}
  .sidebar .brand{display:none}
  .sidebar ul{display:flex;white-space:nowrap}
  .sidebar li{margin:0}
  .sidebar li a{border-left:none;border-bottom:3px solid transparent;padding:9px 16px}
  .sidebar li.active a,.sidebar li a:hover{border-bottom-color:var(--gold);background:rgba(255,255,255,.08)}
  .main{padding:16px}
  .teacher-grid{grid-template-columns:1fr}
  .detail-head{flex-direction:column}
  .banner-slider{height:200px}
  .banner-slider .slide h2{font-size:20px}
  .table{display:block;overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch}
  .hero h1{font-size:30px}
  .hero{padding:60px 0 64px}
  .hero-sub{gap:22px}
  .band .wrap{grid-template-columns:repeat(2,1fr)}
  .site-footer .cols{grid-template-columns:1fr 1fr;gap:24px}
  .pub-nav{order:3;width:100%;justify-content:center;padding:6px 0 10px}
  .topbar .wrap{height:auto;flex-wrap:wrap;padding:10px 16px;gap:8px}
  .topbar .phone{display:none}
}

/* ===== 后台升级组件 ===== */
.grid-2col{display:grid;grid-template-columns:1fr 1.4fr;gap:16px;align-items:start}
.grid-2col .card:first-child{position:sticky;top:76px}
@media (max-width:1100px){.grid-2col{grid-template-columns:1fr}.grid-2col .card:first-child{position:static}}
.batch-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:#f6f8fb;border:1px dashed #d4dde8;border-radius:10px;padding:10px 14px}
.batch-bar label{font-size:13px;color:#5a6b85}
.inline-edit{background:#f8fafd;border:1px solid #e2e9f2;border-radius:10px;padding:12px}
.edit-row,.detail-row,.admins-row{background:#f8fafd}
.order-detail{background:#f8fafd;border:1px solid #e2e9f2;border-radius:12px;padding:14px 18px}
.order-detail p{font-size:13px;line-height:1.9;color:#33404f}
.order-detail .grid-2col{grid-template-columns:1fr 1fr;gap:10px}
@media (max-width:700px){.order-detail .grid-2col{grid-template-columns:1fr}}
.avatar-img{width:34px;height:34px;border-radius:50%;object-fit:cover}
.avatar-letter{display:inline-flex;width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#2563eb,#1e4fd8);color:#fff;font-weight:700;font-size:15px;align-items:center;justify-content:center}

/* ===== 证书式组件：搜索栏 / 操作组 / 弹窗 / 复选框 ===== */
.search-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:#fff;border:1px solid #e6ecf5;border-radius:12px;padding:14px 16px;margin-bottom:16px;box-shadow:0 1px 4px rgba(15,43,82,.04)}
.search-bar .sb-label{font-size:13px;color:#5a6b85;font-weight:600}
.search-bar .form-control{max-width:220px}
.op-group{display:flex;gap:6px;flex-wrap:nowrap}
.op-group .btn-sm{padding:4px 12px;font-size:12px;border-radius:6px}
.op-group form{display:inline}
.op-group form .btn-sm{margin:0}
.table th:first-child,.table td:first-child{text-align:center}
.row-check{width:16px;height:16px;accent-color:#2563eb;cursor:pointer}
/* 通用弹窗 */
.modal-mask{display:none;position:fixed;inset:0;background:rgba(10,20,40,.55);z-index:999;align-items:center;justify-content:center;padding:20px}
.modal-mask.show{display:flex}
.modal-box{background:#fff;border-radius:14px;padding:26px 30px;width:560px;max-width:96vw;max-height:88vh;overflow-y:auto;box-shadow:0 24px 60px rgba(4,17,41,.35)}
.modal-box h3{color:#0f2b52;margin-bottom:16px;font-size:18px;display:flex;align-items:center;justify-content:space-between}
.modal-box h3 .close{cursor:pointer;color:#8a94a6;font-size:22px;line-height:1;font-weight:400}
.modal-box h3 .close:hover{color:#e11d48}
.modal-box .kv{display:grid;grid-template-columns:1fr 1fr;gap:10px 22px}
.modal-box .kv p{font-size:13px;line-height:1.9;border-bottom:1px dashed #edf1f7;padding-bottom:6px}
.modal-box .kv b{color:#5a6b85;font-weight:600;margin-right:8px}
@media (max-width:700px){.modal-box .kv{grid-template-columns:1fr}}

/* ===== 筛选条统一为白卡片样式（证书式） ===== */
.filter-bar{background:#fff;border:1px solid #e6ecf5;border-radius:12px;padding:12px 16px;box-shadow:0 1px 4px rgba(15,43,82,.04);margin-bottom:16px}
.filter-bar a{display:inline-block;padding:6px 16px;border-radius:18px;background:#f5f7fb;border:1px solid #e6ecf5;color:#5a6b85;font-size:13px;transition:all .2s}
.filter-bar a:hover{border-color:var(--blue);color:var(--blue);background:#eef4ff}
.filter-bar a.on{background:linear-gradient(135deg,#2563eb,#1e4fd8);color:#fff;border-color:transparent;box-shadow:0 2px 8px rgba(37,99,235,.25)}
.filter-bar .form-control{max-width:220px}
/* 表格外卡整版通栏（证书式表格） */
.card.table-card{padding:0;overflow:hidden}
.card.table-card .table{margin:0}
.card.table-card .pagination{padding:10px 16px;margin:0}

/* 富文本文章正文排版 */
.article-body{line-height:1.85;font-size:15px;color:#334}
.article-body p{margin:8px 0}
.article-body h1,.article-body h2,.article-body h3{margin:18px 0 8px;line-height:1.45;color:#0f2b52}
.article-body blockquote{border-left:4px solid #3b82f6;margin:12px 0;padding:8px 16px;background:#f5f9ff;color:#445;border-radius:0 8px 8px 0}
.article-body pre{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;padding:12px 16px;overflow-x:auto;font-family:Consolas,Menlo,monospace;font-size:13px;white-space:pre-wrap}
.article-body img{max-width:100%;height:auto;border-radius:8px}
.article-body ul,.article-body ol{padding-left:24px;margin:8px 0}
.article-body a{color:#2563eb;text-decoration:underline}

/* ===== AI 智能客服悬浮对话 ===== */
.ai-fab{position:fixed;right:22px;bottom:26px;z-index:9990;width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,#2563eb,#1d4ed8);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 6px 20px rgba(37,99,235,.4);transition:transform .2s}
.ai-fab:hover{transform:scale(1.08)}
.ai-fab.hide{display:none}
.ai-fab-tip{position:absolute;right:64px;top:16px;background:#0f2b52;color:#fff;font-size:12px;padding:4px 10px;border-radius:6px;white-space:nowrap;opacity:0;transition:opacity .2s;pointer-events:none}
.ai-fab:hover .ai-fab-tip{opacity:1}
.ai-panel{position:fixed;right:22px;bottom:26px;z-index:9991;width:360px;max-width:calc(100vw - 32px);height:520px;max-height:calc(100vh - 100px);background:#fff;border-radius:16px;box-shadow:0 12px 40px rgba(15,43,82,.22);display:none;flex-direction:column;overflow:hidden;border:1px solid #e3ebf7}
.ai-panel.show{display:flex}
.ai-head{display:flex;align-items:center;justify-content:space-between;background:linear-gradient(135deg,#0f2b52,#1d4ed8);color:#fff;padding:13px 16px;font-weight:600;font-size:15px}
.ai-bot{display:flex;align-items:center;gap:8px}
.ai-dot{width:8px;height:8px;border-radius:50%;background:#4ade80;box-shadow:0 0 0 3px rgba(74,222,128,.25)}
.ai-close{background:none;border:none;color:#fff;font-size:22px;line-height:1;cursor:pointer;padding:0 4px}
.ai-msg{flex:1;overflow-y:auto;padding:14px;background:#f7f9fc}
.ai-item{margin-bottom:10px;max-width:82%;padding:10px 13px;border-radius:12px;font-size:13px;line-height:1.65;word-break:break-word;white-space:pre-wrap}
.ai-bot-msg{background:#fff;border:1px solid #e3ebf7;border-top-left-radius:4px;color:#233}
.ai-me-msg{background:#2563eb;color:#fff;margin-left:auto;border-top-right-radius:4px}
.ai-typing{color:#94a3b8;font-style:italic}
.ai-quick{display:flex;flex-wrap:wrap;gap:6px;padding:10px 14px 0;background:#fff;border-top:1px solid #eef2f8}
.ai-quick span{background:#eff4ff;color:#1d4ed8;font-size:12px;padding:5px 10px;border-radius:20px;cursor:pointer;border:1px solid #dbe7ff}
.ai-quick span:hover{background:#dbe7ff}
.ai-input{display:flex;gap:8px;padding:12px 14px;background:#fff;border-top:1px solid #eef2f8}
.ai-input input{flex:1;border:1px solid #dbe3f0;border-radius:20px;padding:9px 14px;font-size:13px;outline:none}
.ai-input input:focus{border-color:#2563eb}
.ai-input button{background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;border:none;border-radius:20px;padding:0 18px;font-size:13px;cursor:pointer}
.ai-input button:hover{opacity:.92}
@media(max-width:640px){.ai-panel{right:8px;bottom:10px;width:calc(100vw - 16px);height:72vh}}

/* ===== v2.8 美化补丁：导航不折行 + hero 优化 ===== */
.hero{padding:72px 0 80px}
.hero h1{font-size:40px;line-height:1.3}
.hero p{font-size:16px;max-width:640px}
.section{padding:48px 0}
.section-title{font-size:26px}
.feature-grid{gap:16px}
.feature{padding:24px 20px}
.news-grid{gap:16px}
.band{padding:36px 0}
.band .it b{font-size:32px}
.page-hero{padding:40px 0}
.page-hero h1{font-size:28px}
/* 导航栏在 1200-1400px 下紧凑适配 */
@media (min-width:1200px) and (max-width:1400px){
  .pub-nav a{padding:7px 9px;font-size:13.5px}
  .logo{font-size:18px}
  .logo .logo-img{height:32px}
}
/* 文章详情正文 */
.article-body{font-size:15px;line-height:2;color:#33404f}
.article-body p{margin-bottom:14px}
.article-body img{border-radius:10px;margin:10px 0}

/* ===== v2.8.3 全站统一美化补丁 ===== */
/* 空状态 */
.empty-state{text-align:center;padding:60px 20px;color:#8a94a6;font-size:14px}
.empty-state .es-icon{font-size:48px;display:block;margin-bottom:12px;opacity:.5}

/* 前台文章列表卡片统一 */
.card h3 a{color:#0f2b52;transition:color .2s}
.card h3 a:hover{color:#2563eb}

/* 老师列表页筛选条 */
.filter-bar a{margin-bottom:4px}

/* 文章详情页 */
.article-body{max-width:820px;margin:0 auto}
.article-body p{margin-bottom:16px}

/* 首页三个模块推荐链接 */
.feature p a{color:#2563eb;font-size:13px;line-height:2}

/* 页脚版权 */
.site-footer .bottom a{display:inline;margin:0 6px}

/* 移动端导航不折行优化 */
@media (max-width:900px){
  .pub-nav{flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;-webkit-overflow-scrolling:touch}
  .pub-nav a{flex-shrink:0}
  .hero h1{font-size:26px}
  .hero p{font-size:14px}
  .section{padding:36px 0}
  .section-title{font-size:22px}
}

/* 后台表格紧凑 */
.table th,.table td{padding:10px 12px;font-size:13px}

/* 后台卡片间距 */
.main .card{margin-bottom:14px}

/* 弹窗统一 */
.modal-body{padding:20px 24px}

/* v2.12 留言板滚动 */
.feedback-scroll{overflow:hidden;max-height:300px;position:relative}
.feedback-scroll .fb-item{display:flex;gap:12px;padding:14px 0;border-bottom:1px solid #eef2f7}
.fb-avatar{width:40px;height:40px;border-radius:50%;background:#dbeafe;color:#2563eb;display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0}
.fb-body{flex:1}
.fb-head{font-size:14px;margin-bottom:4px}
.fb-tag{display:inline-block;background:#dbeafe;color:#2563eb;font-size:11px;padding:1px 8px;border-radius:10px;margin:0 6px}
.fb-text{font-size:13px;color:#475569;line-height:1.6}
.fb-school{font-size:12px;color:#94a3b8;margin-top:4px}

/* v2.12 留资弹窗 */
.lead-modal{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:9999;display:flex;align-items:center;justify-content:center}
.lead-box{background:#fff;border-radius:16px;padding:32px;max-width:400px;width:90%;position:relative;box-shadow:0 20px 60px rgba(0,0,0,.2)}
.lead-close{position:absolute;top:12px;right:16px;font-size:24px;color:#94a3b8;cursor:pointer;line-height:1}
