/* 阳光均衡分班系统 前台样式 */
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:"PingFang SC","Microsoft YaHei","Helvetica Neue",Arial,sans-serif;color:#26303a;font-size:15px;line-height:1.75;background:#fff;-webkit-font-smoothing:antialiased}
a{text-decoration:none;color:#2f6fd0}
img{max-width:100%;border:0}
.container{max-width:1140px;margin:0 auto;padding:0 20px}
.btn{display:inline-block;background:linear-gradient(135deg,#2f80ed,#1d5fc0);color:#fff!important;padding:11px 30px;border-radius:8px;font-size:15px;border:none;cursor:pointer;transition:.2s;box-shadow:0 4px 14px rgba(37,99,235,.25)}
.btn:hover{transform:translateY(-2px);box-shadow:0 7px 18px rgba(37,99,235,.35)}
.btn-line{background:#fff;color:#1d5fc0!important;border:1px solid #bcd0ea;box-shadow:none}
.btn-line:hover{border-color:#2f80ed}
.btn-big{padding:15px 46px;font-size:17px}

/* 顶栏 */
.topbar{position:sticky;top:0;z-index:99;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-bottom:1px solid #e8eef6}
.topbar-in{display:flex;align-items:center;height:64px}
.logo a{font-size:20px;font-weight:700;color:#153e77;letter-spacing:.5px}
.logo-icon{display:inline-block;margin-right:6px;color:#2f80ed}
.nav{margin-left:40px;flex:1}
.nav a{color:#3b4a5a;margin:0 15px;font-size:15px;padding:20px 2px}
.nav a.cur,.nav a:hover{color:#1d5fc0;font-weight:600}
.top-act{white-space:nowrap}
.top-act .btn{margin-left:10px;padding:8px 20px}

/* 首页hero */
.hero{background:linear-gradient(180deg,#eef5ff 0%,#f7faff 70%,#fff 100%);padding:64px 0 40px;overflow:hidden}
.hero-in{display:flex;align-items:center;gap:40px}
.hero-txt{flex:1.1}
.hero-txt h1{font-size:38px;line-height:1.35;color:#0f2f5e;margin-bottom:14px}
.hero-txt h1 em{font-style:normal;color:#2f80ed}
.hero-txt p.sub{font-size:17px;color:#5a6b80;margin-bottom:8px}
.hero-txt .tags{margin:16px 0 26px}
.hero-txt .tags span{display:inline-block;background:#e2ecfb;color:#1d5fc0;border-radius:4px;padding:3px 12px;margin:0 8px 8px 0;font-size:13px}
.hero-cta .btn+.btn{margin-left:14px}
.hero-note{margin-top:14px;font-size:13px;color:#8896a8}
.hero-shot{flex:1;background:#fff;border:1px solid #dbe6f5;border-radius:14px;box-shadow:0 24px 60px rgba(23,63,120,.14);padding:18px}
.mock-table{border-collapse:collapse;width:100%;font-size:12.5px}
.mock-table th{background:#eef4fc;color:#1d5fc0;padding:7px 6px;font-weight:600;border:1px solid #dfe9f5}
.mock-table td{padding:6px;border:1px solid #ecf2f9;text-align:center;color:#42536a}
.mock-table td.c1{background:#fff7e8}
.mock-table td.c2{background:#eefaf0}
.mock-table td.c3{background:#fdeef0}
.mock-cap{text-align:center;color:#8896a8;font-size:12px;margin-top:10px}

/* 通用区块 */
.section{padding:64px 0}
.section.alt{background:#f7faff}
.sec-head{text-align:center;max-width:760px;margin:0 auto 44px}
.sec-head h2{font-size:30px;color:#0f2f5e;margin-bottom:12px}
.sec-head p{color:#617288;font-size:15px}

/* 功能特性（十大均衡维度：每行5个，共2行） */
.feat-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.feat{background:#fff;border:1px solid #e6edf6;border-radius:12px;padding:20px 14px;transition:.25s}
.feat:hover{transform:translateY(-4px);box-shadow:0 14px 32px rgba(23,63,120,.09);border-color:#c8dbf5}
.feat .fi{width:38px;height:38px;border-radius:9px;background:linear-gradient(135deg,#e8f1fd,#d7e8fb);color:#1d5fc0;font-size:18px;display:flex;align-items:center;justify-content:center;margin-bottom:10px}
.feat h3{font-size:15px;color:#15365f;margin-bottom:6px}
.feat p{color:#63748a;font-size:12.5px;line-height:1.7}

/* 流程 */
.flow{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.flow-step{position:relative;text-align:center;padding:0 18px}
.flow-step .fsn{width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,#2f80ed,#1d5fc0);color:#fff;font-size:20px;font-weight:700;line-height:52px;margin:0 auto 14px;box-shadow:0 8px 20px rgba(37,99,235,.3)}
.flow-step h4{font-size:16px;color:#15365f;margin-bottom:6px}
.flow-step p{font-size:13px;color:#63748a}
.flow-step:not(:last-child)::after{content:"›";position:absolute;right:-8px;top:12px;font-size:30px;color:#c2d4ee}

/* 价格 */
.price-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:26px}
.price-card{background:#fff;border:1px solid #e6edf6;border-radius:14px;padding:30px 28px;text-align:center}
.price-card.hot{border:2px solid #2f80ed;box-shadow:0 20px 44px rgba(37,99,235,.16);position:relative}
.price-card .pt{font-size:16px;font-weight:700;color:#15365f}
.price-card .pd{font-size:13px;color:#63748a;min-height:38px}
.price-card .pv{font-size:34px;color:#1d5fc0;font-weight:800;margin:10px 0}
.price-card .pv small{font-size:14px;font-weight:400;color:#8896a8}
.price-card ul{list-style:none;margin:14px 0 20px;text-align:left}
.price-card li{padding:5px 0 5px 24px;position:relative;color:#42536a;font-size:13.5px}
.price-card li::before{content:"✓";position:absolute;left:2px;color:#1e9e4a;font-weight:700}
.hot-tag{position:absolute;top:-13px;left:50%;transform:translateX(-50%);background:#ff8b33;color:#fff;font-size:12px;padding:2px 14px;border-radius:10px}

/* 文章列表页 */
.page-wrap{padding:46px 0 70px;min-height:52vh}
.crumbs{color:#8896a8;font-size:13px;margin-bottom:20px}
.art-list{background:#fff;border:1px solid #e8eef6;border-radius:12px}
.art-item{padding:20px 26px;border-bottom:1px solid #eef3f9;display:flex;align-items:center}
.art-item:last-child{border-bottom:0}
.art-item .at{flex:1}
.art-item .at a{font-size:16.5px;color:#26303a;font-weight:600}
.art-item .at a:hover{color:#1d5fc0}
.art-item .at p{color:#63748a;font-size:13px;margin-top:4px}
.art-item .ad{color:#a3b0c0;font-size:13px;white-space:nowrap;margin-left:16px}
.empty{padding:60px;text-align:center;color:#a3b0c0}

/* 文章正文 */
.art-body{background:#fff;border:1px solid #e8eef6;border-radius:12px;padding:40px 46px}
.art-body h1{font-size:26px;color:#0f2f5e;margin-bottom:10px}
.art-meta{color:#8896a8;font-size:13px;border-bottom:1px solid #eef3f9;padding-bottom:16px;margin-bottom:22px}
.art-content{font-size:15px;color:#37475a}
.art-content h2{font-size:20px;margin:26px 0 10px;color:#15365f}
.art-content h3{font-size:17px;margin:20px 0 8px;color:#15365f}
.art-content p{margin:10px 0}
.art-content ul,.art-content ol{margin:10px 0 10px 24px}
.art-content table{border-collapse:collapse;margin:14px 0;width:100%}
.art-content th,.art-content td{border:1px solid #dbe6f5;padding:8px 12px}
.art-content th{background:#eef4fc}
.pager{margin-top:22px;text-align:center}
.pager a,.pager span{display:inline-block;min-width:34px;height:34px;line-height:34px;border:1px solid #d9e4f2;border-radius:6px;margin:0 4px;color:#42536a}
.pager .cur{background:#2f80ed;color:#fff;border-color:#2f80ed}

/* 表单 */
.auth-box{max-width:420px;margin:56px auto;background:#fff;border:1px solid #e6edf6;border-radius:14px;padding:38px 40px;box-shadow:0 16px 40px rgba(23,63,120,.08)}
.auth-box h2{text-align:center;font-size:22px;color:#0f2f5e;margin-bottom:24px}
.frm label{display:block;font-weight:600;font-size:13.5px;margin:14px 0 6px;color:#3b4a5a}
.frm input[type=text],.frm input[type=password],.frm input[type=number],.frm select{width:100%;padding:11px 13px;border:1px solid #ccd8e6;border-radius:8px;font-size:15px;transition:.2s}
.frm input:focus,.frm select:focus{outline:none;border-color:#2f80ed;box-shadow:0 0 0 3px rgba(47,128,237,.12)}
.frm .row{display:flex;gap:14px}
.frm .row>div{flex:1}
.msg{border-radius:8px;padding:10px 14px;margin:12px 0;font-size:14px}
.msg-err{background:#fdecec;color:#b03a3a}
.msg-ok{background:#e9f9ee;color:#1e7e43}

/* 个人中心（左右分栏：左侧栏目 + 右侧主窗口） */
.uc-wrap{display:grid;grid-template-columns:240px 1fr;gap:26px;align-items:start;padding:36px 0 70px}
.uc-grid{display:grid;grid-template-columns:240px 1fr;gap:26px;align-items:start}
.uc-side{background:#fff;border:1px solid #e8eef6;border-radius:12px;overflow:hidden;box-shadow:0 6px 18px rgba(23,63,120,.06)}
.uc-side .uc-user{display:flex;align-items:center;gap:12px;padding:22px 20px;background:linear-gradient(135deg,#eef5ff,#f7fbff);border-bottom:1px solid #e8eef6}
.uc-side .uc-user b{display:block;font-size:16px;color:#153e77}
.uc-side .uc-user span{font-size:12.5px;color:#8896a8}
.uc-side nav a{display:block;padding:13px 22px;color:#3b4a5a;font-size:14.5px;border-left:3px solid transparent;transition:.15s}
.uc-side nav a:hover{background:#f7faff;padding-left:26px}
.uc-side nav a.cur{background:#eef5ff;color:#1d5fc0;font-weight:600;border-left-color:#2f80ed}
.uc-main{background:#fff;border:1px solid #e8eef6;border-radius:12px;padding:28px 30px;min-height:420px;box-shadow:0 6px 18px rgba(23,63,120,.06)}
.uc-main h2{font-size:20px;color:#0f2f5e}
.card{border:1px solid #e6edf6;border-radius:10px;padding:18px 20px;margin-bottom:16px}
/* vip-card 新版卡片样式见下方“用户中心补充样式” */
table.list{width:100%;border-collapse:collapse;font-size:13.5px}
table.list th{background:#f2f7fd;color:#42536a;padding:10px 12px;text-align:left;font-weight:600;border-bottom:1px solid #e2ebf5}
table.list td{padding:11px 12px;border-bottom:1px solid #f0f4f9;color:#42536a;vertical-align:middle}
table.list tr:hover td{background:#fafffe}
.tag{display:inline-block;border-radius:4px;padding:1px 9px;font-size:12px}
.tag-g{background:#e9f9ee;color:#1e7e43}
.tag-o{background:#fff4e5;color:#b26b00}
.tag-b{background:#e8f1fd;color:#1d5fc0}
.tag-r{background:#fdecec;color:#b03a3a}
.tag-gray{background:#eef2f7;color:#7a8797}

/* 上传向导步骤 */
.steps-bar{display:flex;margin-bottom:26px}
.steps-bar .st{flex:1;text-align:center;position:relative;color:#9aa8ba;font-size:13px}
.steps-bar .st i{display:block;width:30px;height:30px;line-height:30px;border-radius:50%;background:#e6edf6;margin:0 auto 6px;font-style:normal;font-weight:700}
.steps-bar .st.cur{color:#1d5fc0;font-weight:600}
.steps-bar .st.cur i{background:#2f80ed;color:#fff}
.steps-bar .st.done i{background:#1e9e4a;color:#fff}
.up-zone{border:2px dashed #c3d6ee;border-radius:12px;padding:38px 20px;text-align:center;background:#f9fcff;cursor:pointer;transition:.2s}
.up-zone:hover,.up-zone.on{border-color:#2f80ed;background:#eef5ff}
.up-zone .uz-i{font-size:40px;color:#9fc0ea}
.up-zone p{color:#63748a;margin:8px 0 2px}
.up-zone .uz-tip{font-size:12.5px;color:#98a6b8}
.param-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px 22px}
.param-item{display:flex;align-items:flex-start;padding:13px 15px;border:1px solid #e0e9f4;border-radius:10px;cursor:pointer;transition:.15s}
.param-item:hover{border-color:#b9d2f0}
.param-item.sel{border-color:#2f80ed;background:#eef5ff;box-shadow:0 0 0 3px rgba(47,128,237,.1)}
.param-item input{margin:4px 8px 0 0}
.param-item .pi-t{font-weight:600;font-size:14.5px;color:#26303a}
.param-item .pi-d{font-size:12.5px;color:#8a97a8;margin-top:2px}
.check-tbl{border-collapse:collapse;width:100%;font-size:13px}
.check-tbl th{background:#f2f7fd;padding:8px 10px;border:1px solid #e2ebf5}
.check-tbl td{padding:7px 10px;border:1px solid #ecf2f9;text-align:center}

/* 收银台 */
.pay-box{max-width:560px;margin:50px auto;background:#fff;border:1px solid #e6edf6;border-radius:14px;overflow:hidden;box-shadow:0 18px 44px rgba(23,63,120,.1)}
.pay-head{background:linear-gradient(135deg,#2f80ed,#1d5fc0);color:#fff;padding:22px 30px}
.pay-head .po{font-size:13px;opacity:.85}
.pay-head .pa{font-size:28px;font-weight:800}
.pay-body{padding:28px 30px;text-align:center}
.pay-body .qr{width:230px;height:230px;margin:6px auto;border:1px solid #e6edf6;border-radius:10px;padding:10px}
.pay-body .qr img{width:100%;height:100%}
.pay-status{margin-top:14px;font-size:14px;color:#63748a}
.pay-status b.ok{color:#1e9e4a}
.pay-tabs{display:flex;border-bottom:1px solid #e6edf6}
.pay-tabs a{flex:1;padding:14px;text-align:center;color:#63748a;border-bottom:2px solid transparent}
.pay-tabs a.cur{color:#1d5fc0;font-weight:700;border-bottom-color:#2f80ed}

/* 底部 */
.footer{background:#10233c;color:#8ba2c0;padding:38px 0 26px;margin-top:40px;font-size:13.5px}
.foot-links{text-align:center;margin-bottom:12px}
.foot-links a{color:#b9cae2;margin:0 14px}
.foot-bah{text-align:center}
.foot-bah span{display:block;margin:0 0 6px;color:#8ba2c0}
.foot-bah a{display:inline-block;color:#8ba2c0;margin:0}

/* 悬浮客服（图标 + 文字，弹层展示后台上传的客服二维码） */
.contact-float{position:fixed;right:18px;bottom:90px;z-index:90}
.cf-item{width:56px;height:56px;background:#fff;border:1px solid #dbe6f5;border-radius:10px;color:#42536a;font-size:10.5px;text-align:center;cursor:pointer;margin-top:10px;box-shadow:0 6px 18px rgba(23,63,120,.1);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;transition:.15s}
.cf-item:hover{color:#1d5fc0;border-color:#2f80ed;box-shadow:0 8px 22px rgba(23,63,120,.16)}
.cf-item .cf-ico{display:block;flex:none}
.cf-item .cf-txt{line-height:1;letter-spacing:.5px}
.cf-wx{position:relative}
.cf-pop{display:none;position:absolute;right:66px;top:0;background:#fff;border:1px solid #dbe6f5;border-radius:10px;padding:14px 16px;font-size:12.5px;color:#42536a;width:176px;text-align:center;box-shadow:0 10px 26px rgba(23,63,120,.14)}
.cf-pop img{width:142px;height:142px;display:block;margin:0 auto 8px;border-radius:6px}
.cf-pop-t{font-size:12px;color:#63748a;line-height:1.7}
.cf-pop b{color:#1d5fc0}
.cf-wx:hover .cf-pop{display:block}

/* ===================== 用户中心补充样式（v2 完整版） ===================== */

/* 侧栏用户信息 */
.uc-avatar{width:46px;height:46px;border-radius:50%;background:linear-gradient(135deg,#2f80ed,#1d5fc0);color:#fff;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;flex:none;box-shadow:0 4px 10px rgba(37,99,235,.28)}
.uc-name{font-size:15.5px;font-weight:600;color:#153e77;line-height:1.3}
.uc-vip{font-size:11.5px;color:#7a8797;background:#eef2f7;border-radius:9px;padding:1px 9px;display:inline-block;margin-top:3px}
.uc-vip.on{color:#9a6b1f;background:linear-gradient(135deg,#fdf0d5,#fbe9bb)}

/* 主窗口标题行：左标题 + 右步骤条 */
.uc-head{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;border-bottom:1px solid #eef3f9;padding-bottom:12px;margin-bottom:20px}
.uc-head h2{border-bottom:none;padding-bottom:0;margin-bottom:0}

/* 四步流程步骤条 */
.flow-steps{display:flex;gap:6px;flex-wrap:wrap}
.fs{font-size:12.5px;color:#9aa8ba;padding:5px 13px;border-radius:14px;background:#f1f5fa;white-space:nowrap}
.fs.on{background:#e8f1fd;color:#1d5fc0;font-weight:600}
.fs.ok{background:#e9f9ee;color:#1e7e43}

/* 通用小元素 */
.sub{color:#8a97a8;font-size:13px}
.mono{font-family:Consolas,Menlo,monospace;font-size:13px;letter-spacing:.3px}
.hl{color:#e0564f}
.num{font-variant-numeric:tabular-nums;text-align:center;color:#6a7a8c;font-size:12.5px;width:34px}
.marks{font-size:12px;color:#b26b00;white-space:nowrap}
.g-m{color:#1d5fc0}
.g-f{color:#c9448f}
.op{white-space:nowrap;text-align:right}
.op .btn{margin-left:6px}
.big{font-size:46px;line-height:1.3}
.sec-title{font-size:16px;color:#0f2f5e;margin:26px 0 14px;padding-left:10px;border-left:4px solid #2f80ed;line-height:1.4}

/* 按钮 */
.btn-mini{padding:4px 13px;font-size:12.5px;border-radius:6px;box-shadow:none}
.btn-mini:hover{transform:none;box-shadow:none}
.btn-warn{background:linear-gradient(135deg,#f0a12f,#dd8615);box-shadow:0 3px 10px rgba(221,134,21,.28)}
.btn-line2{background:#fff;color:#6a7a8c!important;border:1px solid #d5dfeb;box-shadow:none}
.btn-line2:hover{border-color:#9fb3c8;color:#3b4a5a!important}

/* 消息与标签 */
.msg-warn{background:#fff7e8;color:#b26b00}
.tag-blue{background:#e8f1fd;color:#1d5fc0}
.tag-green{background:#e9f9ee;color:#1e7e43}
.tag-red{background:#fdecec;color:#b03a3a}
.tag-warn{background:#fff4e5;color:#b26b00}

/* 列表表格（任务/订单/开票） */
.uc-table{width:100%;border-collapse:collapse;font-size:13.5px}
.uc-table th{background:#f2f7fd;color:#42536a;padding:10px 12px;text-align:left;font-weight:600;border-bottom:1px solid #e2ebf5;white-space:nowrap}
.uc-table td{padding:11px 12px;border-bottom:1px solid #f0f4f9;color:#42536a;vertical-align:middle}
.uc-table tr:hover td{background:#fafcff}
.empty-box{text-align:center;padding:56px 20px;color:#8a97a8}
.empty-box .btn{margin-top:16px}

/* 上传页：左表单 + 右说明 */
.up-layout{display:grid;grid-template-columns:1.15fr 1fr;gap:28px;align-items:start}
.up-file{margin-top:10px;font-size:13px;color:#1d5fc0;font-weight:600;min-height:18px}
.up-icon{font-size:42px;line-height:1.2}
.up-title{font-size:16px;font-weight:600;color:#26303a;margin-top:6px}
.up-sub{font-size:12.5px;color:#98a6b8;margin-top:2px}
.tip-list{list-style:none}
.tip-list li{position:relative;padding:7px 0 7px 24px;font-size:13.5px;color:#4a5a6c;border-bottom:1px dashed #edf2f8}
.tip-list li:last-child{border-bottom:none}
.tip-list li:before{content:"✓";position:absolute;left:2px;top:7px;color:#2f80ed;font-weight:700}
.price-note{margin-top:18px;background:#fffaf1;border:1px solid #f3e3c3;border-radius:10px;padding:14px 18px}
.price-note b{color:#9a6b1f;font-size:14px}
.price-note p{font-size:13px;color:#8a744a;margin:4px 0}
.vip-tip{margin-top:8px;padding-top:8px;border-top:1px dashed #ecd9ac;color:#9a6b1f}
.vip-tip a{color:#b26b00;font-weight:600}

/* 参数页：解析概览 + 支付提示条 */
.parse-summary{background:#f2f7fd;border:1px solid #e0eaf6;border-radius:10px;padding:12px 16px;font-size:13.5px;color:#3b4a5a;margin-bottom:20px;line-height:2.1}
.param-item .pi-b{display:block;font-weight:600;font-size:14px;color:#26303a}
.param-item .pi-s{display:block;font-size:12px;color:#8a97a8;margin-top:1px}
.k-input{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.k-input input{width:130px;max-width:130px;flex:none}
.pay-preview-bar{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;background:linear-gradient(135deg,#f5f9ff,#eef5ff);border:1px solid #d8e6f7;border-radius:12px;padding:18px 22px;margin-top:26px;font-size:14.5px;color:#3b4a5a}

/* 预览/报告页：摘要卡 + 统计表 + 班级卡片 */
.preview-banner{background:linear-gradient(135deg,#fff7e8,#fffdf7);border:1px solid #f0dcb2;color:#9a6b1f;border-radius:10px;padding:12px 18px;font-size:13.5px;margin-bottom:20px}
.report-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:14px;margin:20px 0 22px}
.rs-item{background:#f7fafd;border:1px solid #e4edf6;border-radius:10px;padding:14px 16px;text-align:center}
.rs-item span{display:block;font-size:12.5px;color:#8a97a8}
.rs-item b{display:block;font-size:22px;color:#1d5fc0;margin-top:4px;font-variant-numeric:tabular-nums}
.stats-table-wrap{overflow-x:auto;border:1px solid #eef3f9;border-radius:10px}
.stats-table{width:100%;min-width:640px;border-collapse:collapse;font-size:13px}
.stats-table th{background:#f2f7fd;color:#42536a;padding:9px 12px;border-bottom:1px solid #e2ebf5;white-space:nowrap;text-align:center}
.stats-table td{padding:9px 12px;border-bottom:1px solid #f0f4f9;color:#4a5a6c;text-align:center}
.stats-table tr:hover td{background:#fafcff}
.dl-bar{display:flex;gap:14px;flex-wrap:wrap;margin:8px 0 12px}
.dl-note{margin-bottom:4px}
.class-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:18px;margin-top:16px}
.class-card{border:1px solid #e6edf6;border-radius:12px;overflow:hidden;background:#fff;transition:.15s}
.class-card:hover{box-shadow:0 8px 22px rgba(23,63,120,.09);border-color:#d3e2f4}
.cc-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 16px;background:linear-gradient(135deg,#eef5ff,#f7fbff);border-bottom:1px solid #e8eef6}
.cc-head b{color:#153e77;font-size:15px}
.cc-sub{font-size:12px;color:#8896a8;white-space:nowrap}
.cc-table{width:100%;border-collapse:collapse;font-size:13px}
.cc-table td{padding:7px 14px;border-bottom:1px solid #f2f6fa;color:#4a5a6c}
.cc-table tr:last-child td{border-bottom:none}
.more-row td{text-align:center!important;color:#b26b00;background:#fffaf1;font-size:12.5px;padding:9px!important}

/* 预览页底部吸底支付条 */
.pay-bar{position:sticky;bottom:14px;display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;background:#fff;border:1px solid #d8e6f7;border-radius:14px;box-shadow:0 10px 30px rgba(23,63,120,.14);padding:16px 24px;margin-top:26px;z-index:5}
.pb-info{flex:1;min-width:240px}
.pb-price{font-size:15px;color:#26303a}
.pb-price b{color:#e0564f;font-size:21px}
.pb-sub{font-size:12.5px;color:#8a97a8;margin-top:2px}
.pb-form{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.pb-select{padding:10px 14px;border:1px solid #ccd8e6;border-radius:8px;font-size:14px;background:#fff;color:#26303a}

/* VIP 页 */
.vip-status-bar{background:linear-gradient(135deg,#eef5ff,#f7fbff);border:1px solid #d8e6f7;border-radius:12px;padding:16px 20px;font-size:14px;color:#3b4a5a;margin-bottom:22px;line-height:2.1}
.warn-t{color:#b26b00;font-size:12.5px}
.vip-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:18px;margin:22px 0}
.vip-card{position:relative;background:#fff;border:1.5px solid #e0e9f4;border-radius:14px;padding:28px 22px 22px;text-align:center;transition:.2s}
.vip-card:hover{transform:translateY(-4px);box-shadow:0 12px 28px rgba(23,63,120,.1)}
.vip-card.hot{border-color:#2f80ed;box-shadow:0 10px 26px rgba(47,128,237,.16)}
.vc-badge{position:absolute;top:-11px;left:50%;transform:translateX(-50%);background:linear-gradient(135deg,#2f80ed,#1d5fc0);color:#fff;font-size:11.5px;padding:3px 14px;border-radius:12px;white-space:nowrap;box-shadow:0 4px 10px rgba(37,99,235,.3)}
.vc-years{font-size:15px;font-weight:700;color:#26303a}
.vc-price{margin:10px 0 2px;color:#e0564f}
.vc-price b{font-size:30px}
.vc-per{font-size:12px;color:#8a97a8}
.vc-features{list-style:none;margin:16px 0 18px;text-align:left}
.vc-features li{font-size:12.8px;color:#4a5a6c;padding:5px 0 5px 20px;position:relative}
.vc-features li:before{content:"✓";position:absolute;left:0;color:#2f80ed;font-weight:700}
.vc-form{display:flex;gap:10px;justify-content:center;align-items:center;flex-wrap:wrap}
.vip-note{border-top:1px dashed #e0e9f4;padding-top:14px;font-size:12.5px;color:#8a97a8;line-height:1.9}

/* 个人资料 */
.profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:22px}
.uc-frm{background:#f9fbfe;border:1px solid #e8eef6;border-radius:12px;padding:20px 22px 22px;margin:0}
.pg-title{font-size:15.5px;color:#0f2f5e;margin-bottom:4px}

/* 收银台（pay/pay.php、pay/return.php） */
.pay-wrap{padding:40px 0 70px}
.pay-box .pb-title{font-size:19px;color:#0f2f5e;text-align:center;padding:20px 24px 15px;border-bottom:1px solid #eef3f9}
.pb-row{display:flex;justify-content:space-between;gap:16px;padding:10px 28px;font-size:14px;color:#4a5a6c}
.pb-row span{color:#8a97a8}
.qr-zone{text-align:center;padding:20px 0 8px}
.qr-zone img{width:232px;height:232px;border:1px solid #e8eef6;border-radius:10px;padding:8px;background:#fff}
.qr-tip{font-size:13.5px;color:#4a5a6c;margin-top:12px}
.qr-waiting{font-size:12.5px;color:#8a97a8;margin-top:4px}
.dots:after{content:"...";animation:dots 1.6s steps(4,end) infinite}
@keyframes dots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}
.pb-links{text-align:center;padding:14px 0 24px;font-size:13.5px}

/* 响应式 */
@media(max-width:900px){
  .hero-in{flex-direction:column}
  .feat-grid{grid-template-columns:repeat(3,1fr)}
  .flow{grid-template-columns:1fr 1fr;gap:24px 0}
  .price-grid{grid-template-columns:1fr}
  .uc-grid{grid-template-columns:1fr}
  .uc-wrap{grid-template-columns:1fr}
  .up-layout{grid-template-columns:1fr}
  .nav{display:none}
  .hero-txt h1{font-size:29px}
  .param-grid{grid-template-columns:1fr}
}
@media(max-width:640px){
  .feat-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:560px){
  .flow{grid-template-columns:1fr}
  .art-body{padding:24px 18px}
  .uc-main{padding:20px 16px}
  .uc-wrap{padding:24px 0 56px}
  .uc-head{padding-bottom:10px;margin-bottom:16px}
  .flow-steps{width:100%}
  .pay-box{margin:30px 14px}
  .pb-row{padding:9px 18px}
  .pb-info{min-width:100%}
}
@media(max-width:400px){
  .feat-grid{grid-template-columns:1fr}
}

/* ==================== 智能排课系统 扩展样式 ==================== */

/* 轻提示 */
.toast{position:fixed;left:50%;top:70px;transform:translateX(-50%) translateY(-12px);background:#153e77;color:#fff;padding:10px 24px;border-radius:8px;font-size:14px;opacity:0;transition:.3s;z-index:999;box-shadow:0 8px 24px rgba(15,47,94,.3)}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.toast.err{background:#c0392b}

/* 向导步骤条 */
.wiz-steps{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 18px}
.wiz-steps a{flex:1;min-width:104px;text-align:center;background:#f2f7fd;border:1px solid #dfe9f5;color:#5a6b80;font-size:13px;padding:9px 6px;border-radius:8px;transition:.2s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wiz-steps a:hover{border-color:#9fc3ef;color:#1d5fc0}
.wiz-steps a.done{background:#e8f4ee;border-color:#bfe3cf;color:#1e7e46}
.wiz-steps a.cur{background:linear-gradient(135deg,#2f80ed,#1d5fc0);border-color:#1d5fc0;color:#fff;font-weight:600}
.wiz-steps a .sn{display:block;font-size:11px;opacity:.75}
.wiz-panel{background:#fff;border:1px solid #e6edf6;border-radius:14px;padding:26px 28px;box-shadow:0 8px 26px rgba(23,63,120,.06)}
.wiz-title{font-size:20px;color:#0f2f5e;margin-bottom:6px}
.wiz-sub{color:#63748a;font-size:13.5px;margin-bottom:18px}
.wiz-actions{display:flex;justify-content:space-between;align-items:center;margin-top:24px;padding-top:18px;border-top:1px dashed #e2eaf4}
.hint{font-size:12.5px;color:#8b99ab;line-height:1.8}

/* 行式编辑器通用 */
.row-list{display:flex;flex-direction:column;gap:10px}
.row-item{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.row-item input[type=text],.row-item input[type=number],.row-item select{border:1px solid #d6e0ee;border-radius:7px;padding:9px 12px;font-size:14px;color:#26303a;outline:none;transition:.2s;background:#fff}
.row-item input:focus,.row-item select:focus{border-color:#2f80ed;box-shadow:0 0 0 3px rgba(47,128,237,.12)}
.btn-mini{display:inline-block;padding:6px 13px;border-radius:7px;font-size:13px;border:1px solid #c9d9ef;background:#f4f8fd;color:#1d5fc0;cursor:pointer;transition:.2s}
.btn-mini:hover{background:#e5effc}
.btn-mini.del{color:#c0392b;border-color:#eec7c2;background:#fdf3f2}
.btn-mini.del:hover{background:#fbe3e0}
.btn-mini.pri{background:linear-gradient(135deg,#2f80ed,#1d5fc0);color:#fff;border:none}

/* 年级班级编辑 */
.grade-block{border:1px solid #e3ebf6;border-radius:12px;padding:16px 18px;margin-bottom:14px;background:#fbfdff}
.grade-head{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}
.grade-head .gname{font-size:15px;font-weight:600;color:#15365f}
.cls-chips{display:flex;flex-wrap:wrap;gap:8px}
.cls-chip{display:inline-flex;align-items:center;gap:6px;background:#e8f1fd;color:#1d5fc0;border:1px solid #c8dbf5;border-radius:16px;padding:4px 8px 4px 13px;font-size:13.5px}
.cls-chip button{border:none;background:transparent;color:#7c9cc7;cursor:pointer;font-size:14px;padding:0 3px}
.cls-chip button:hover{color:#c0392b}

/* 勾选星期 */
.day-checks{display:flex;gap:12px;flex-wrap:wrap}
.day-check{position:relative}
.day-check input{position:absolute;opacity:0}
.day-check label{display:inline-block;background:#f2f7fd;border:1.5px solid #dfe9f5;color:#3b4a5a;border-radius:10px;padding:12px 26px;font-size:15px;cursor:pointer;transition:.2s;user-select:none}
.day-check input:checked + label{background:linear-gradient(135deg,#2f80ed,#1d5fc0);border-color:#1d5fc0;color:#fff;font-weight:600;box-shadow:0 5px 14px rgba(37,99,235,.28)}

/* 学科/教师行 */
.inline-name{width:200px}
.inline-short{width:90px;text-align:center}

/* 节次编辑器 */
.day-tab{display:inline-block;padding:8px 18px;border:1.5px solid #dfe9f5;border-radius:8px 8px 0 0;background:#f2f7fd;color:#3b4a5a;font-size:14px;cursor:pointer;margin-right:6px;border-bottom:none}
.day-tab.cur{background:#fff;border-color:#2f80ed;color:#1d5fc0;font-weight:600}
.sec-block{border:1px solid #e3ebf6;border-radius:12px;margin-bottom:14px;overflow:hidden;background:#fff}
.sec-block-head{display:flex;align-items:center;gap:12px;background:#f6f9fe;padding:10px 16px;border-bottom:1px solid #e9eff7;flex-wrap:wrap}
.sec-block-head .sec-name{font-weight:600;color:#15365f;font-size:14.5px}
.slot-rows{padding:10px 16px}
.slot-row{display:flex;align-items:center;gap:10px;padding:7px 0;flex-wrap:wrap}
.slot-row .sn{width:170px}
.slot-row .st{width:110px}
.tag-off{display:inline-block;background:#f1f5f9;color:#8b99ab;border-radius:5px;font-size:12px;padding:2px 10px}

/* 任教分配 */
.assign-row{display:grid;grid-template-columns:1.2fr 1.4fr 1fr 90px auto;gap:10px;align-items:center;padding:9px 0;border-bottom:1px dashed #edf2f9}
.assign-row select,.assign-row input{border:1px solid #d6e0ee;border-radius:7px;padding:8px 10px;font-size:14px;background:#fff;color:#26303a;outline:none;width:100%}
.assign-row .tname-b{font-weight:600;color:#15365f;font-size:14px}
.assign-head{display:grid;grid-template-columns:1.2fr 1.4fr 1fr 90px auto;gap:10px;font-size:12.5px;color:#8b99ab;padding-bottom:4px}

/* 科目偏好 / 固定课程 / 教师特殊需求 */
.pref-card{border:1px solid #e3ebf6;border-radius:12px;padding:14px 18px;margin-bottom:12px;background:#fbfdff}
.pref-card .pf-head{display:flex;align-items:center;gap:12px;margin-bottom:10px;flex-wrap:wrap}
.pref-slots{display:flex;flex-wrap:wrap;gap:8px}
.pslot{display:inline-flex;align-items:center;background:#f2f7fd;border:1.5px solid #dfe9f5;color:#3b4a5a;border-radius:16px;padding:4px 8px 4px 13px;font-size:13px;cursor:pointer;user-select:none;transition:.15s}
.pslot.on{background:#e8f1fd;border-color:#2f80ed;color:#1d5fc0;font-weight:600}
.pslot .x{margin-left:5px;color:#9db4d2;font-size:13px}
.pslot.on .x{color:#1d5fc0}
.list-tbl{width:100%;border-collapse:collapse;font-size:14px}
.list-tbl th{background:#f6f9fe;color:#42536a;font-weight:600;padding:9px 12px;border:1px solid #e9eff7;text-align:left}
.list-tbl td{padding:8px 12px;border:1px solid #eef3f9;color:#33445c}
.list-tbl td .op{white-space:nowrap}

/* 参数预览表 */
.pv-school{text-align:center;margin-bottom:6px}
.pv-school h2{font-size:24px;color:#0f2f5e}
.pv-grade{margin-bottom:26px}
.pv-grade h3{font-size:16px;color:#1d5fc0;margin-bottom:10px;border-left:4px solid #2f80ed;padding-left:10px}
.pv-tbl{width:100%;border-collapse:collapse;font-size:14px}
.pv-tbl th{background:#eef4fc;color:#1d5fc0;padding:9px 10px;border:1px solid #dfe9f5;font-weight:600;white-space:nowrap}
.pv-tbl td{padding:8px 10px;border:1px solid #ecf2f9;text-align:center;color:#33445c}
.pv-tbl td.subj{text-align:left;background:#fbfdff;font-weight:600;white-space:nowrap}

/* 课表展示 */
.tt-class-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.tt-class-tabs button{border:1.5px solid #dfe9f5;background:#f2f7fd;color:#3b4a5a;border-radius:8px;padding:7px 16px;font-size:13.5px;cursor:pointer}
.tt-class-tabs button.cur{background:linear-gradient(135deg,#2f80ed,#1d5fc0);color:#fff;border-color:#1d5fc0;font-weight:600}
.tt-grid{width:100%;border-collapse:collapse;font-size:13.5px;table-layout:fixed}
.tt-grid th{background:#eef4fc;color:#1d5fc0;border:1px solid #dfe9f5;padding:9px 4px;font-weight:600}
.tt-grid td{border:1px solid #ecf2f9;padding:7px 4px;text-align:center;vertical-align:middle;min-height:44px;height:46px}
.tt-grid td .sj{font-weight:600;color:#15365f;font-size:14px;display:block}
.tt-grid td .tc{color:#63748a;font-size:12px;display:block}
.tt-grid td.sec-td{background:#f6f9fe;font-weight:600;color:#42536a;width:86px}
.tt-grid td.time-td{background:#fbfdff;color:#8b99ab;font-size:11.5px;width:92px;white-space:nowrap}
.tt-grid td.fixed-td{background:#fff7e8}
.tt-grid td.fixed-td .sj{color:#9a6b1f}
.sec-label-row td{background:#eef4fc;color:#1d5fc0;font-weight:600;font-size:12.5px;letter-spacing:2px}

/* 排课动画 */
.anim-stage{position:fixed;inset:0;background:linear-gradient(180deg,#0b1f3f 0%,#123a6b 100%);z-index:200;display:none;flex-direction:column;align-items:center;overflow:hidden}
.anim-stage.show{display:flex}
.anim-top{width:100%;max-width:1200px;display:flex;justify-content:space-between;align-items:center;padding:18px 28px;color:#cfe2ff}
.anim-top .at-title{font-size:17px;font-weight:600;letter-spacing:1px}
.anim-top .at-ctrl button{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);color:#fff;border-radius:7px;padding:7px 16px;font-size:13px;cursor:pointer;margin-left:8px}
.anim-top .at-ctrl button:hover{background:rgba(255,255,255,.22)}
.anim-board{width:100%;max-width:1200px;flex:1;display:flex;gap:22px;padding:0 28px 26px;min-height:0}
.anim-pool{width:210px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);border-radius:14px;padding:14px;overflow:hidden}
.anim-pool .ap-head{color:#9fc3ef;font-size:13px;margin-bottom:10px;letter-spacing:2px}
.ap-chips{display:flex;flex-wrap:wrap;gap:7px}
.ap-chip{background:rgba(255,255,255,.92);color:#153e77;border-radius:14px;padding:3px 12px;font-size:12.5px;font-weight:600}
.ap-chip.used{opacity:.28}
.anim-tt{flex:1;overflow:auto;background:rgba(255,255,255,.96);border-radius:14px;padding:12px}
.anim-tt table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:12px}
.anim-tt th{background:#eef4fc;color:#1d5fc0;border:1px solid #dfe9f5;padding:6px 2px}
.anim-tt td{border:1px solid #ecf2f9;height:38px;text-align:center;color:#33445c;transition:background .4s}
.anim-tt td.fill{background:#e8f1fd;font-weight:600;color:#15365f}
.anim-tt td.fixed-td{background:#fff7e8;color:#9a6b1f;font-weight:600}
.fly-chip{position:fixed;z-index:300;background:linear-gradient(135deg,#ffd76e,#ffb03a);color:#5c3a00;font-weight:700;font-size:12.5px;padding:4px 12px;border-radius:14px;box-shadow:0 6px 18px rgba(0,0,0,.35);pointer-events:none;transition:top .55s cubic-bezier(.5,.1,.3,1),left .55s cubic-bezier(.5,.1,.3,1),transform .55s,opacity .4s}
.anim-done{position:fixed;inset:0;z-index:400;display:none;align-items:center;justify-content:center;flex-direction:column;background:rgba(9,26,54,.86);color:#fff}
.anim-done.show{display:flex}
.anim-done .ad-ico{font-size:60px;margin-bottom:16px}
.anim-done h2{font-size:26px;letter-spacing:2px;margin-bottom:8px}
.anim-done p{color:#9fc3ef;margin-bottom:24px}

/* 响应式补充 */
@media(max-width:860px){
  .assign-row{grid-template-columns:1fr 1fr;gap:8px}
  .assign-head{display:none}
  .anim-board{flex-direction:column}
  .anim-pool{width:100%;max-height:90px}
  .wiz-steps a{min-width:72px;font-size:12px}
}
