/* ============================================
   心动AI相亲 - 多色调主题（浅蓝/浅橘/浅红）
   ============================================ */
:root{
  --blue-bg:#E8F4FD; --blue-soft:#B8DCF5; --blue-main:#4FA8E8;
  --orange-bg:#FFF0E6; --orange-soft:#FFD8B8; --orange-main:#FF9E5E;
  --red-bg:#FFEBEE; --red-soft:#FFC9CE; --red-main:#FF7B8A;
  --ink:#3A4256; --ink-light:#7A8296;
  --card:#FFFFFF; --line:#EDF1F7;
  --shadow:0 6px 24px rgba(79,168,232,.12);
  --radius:16px;
}
*{margin:0;padding:0;box-sizing:border-box}
body{
  font-family:"PingFang SC","Microsoft YaHei",sans-serif;
  color:var(--ink); background:var(--blue-bg); line-height:1.6;
  background-image:linear-gradient(160deg,var(--blue-bg) 0%,var(--orange-bg) 55%,var(--red-bg) 100%);
  background-attachment:fixed; min-height:100vh;
}
/* 主题切换 */
body.theme-orange{background-image:linear-gradient(160deg,var(--orange-bg),var(--red-bg),var(--blue-bg))}
body.theme-red{background-image:linear-gradient(160deg,var(--red-bg),var(--blue-bg),var(--orange-bg))}

a{color:var(--blue-main);text-decoration:none}
img{max-width:100%;display:block}
.container{max-width:1200px;margin:0 auto;padding:0 20px}

/* 头部 */
.site-header{background:rgba(255,255,255,.85);backdrop-filter:blur(10px);position:sticky;top:0;z-index:99;border-bottom:1px solid var(--line)}
.header-inner{display:flex;align-items:center;gap:28px;height:64px}
.logo{font-size:22px;font-weight:800;background:linear-gradient(90deg,var(--blue-main),var(--orange-main),var(--red-main));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;white-space:nowrap}
.main-nav{display:flex;gap:6px;flex:1}
.main-nav a{padding:8px 14px;border-radius:20px;color:var(--ink);font-size:15px;transition:.2s}
.main-nav a:hover{background:var(--blue-bg);color:var(--blue-main)}
.header-right{display:flex;align-items:center;gap:10px}
.user-chip{display:flex;align-items:center;gap:8px;padding:4px 12px 4px 4px;border-radius:30px;background:var(--blue-bg)}
.chip-avatar{width:34px;height:34px;border-radius:50%;object-fit:cover;border:2px solid #fff}
.vip-tag{background:linear-gradient(90deg,var(--orange-main),var(--red-main));color:#fff;font-size:10px;font-style:normal;padding:2px 8px;border-radius:10px}

/* 按钮 */
.btn{display:inline-block;padding:10px 22px;border-radius:30px;border:none;cursor:pointer;font-size:15px;transition:.25s;text-align:center}
.btn-primary{background:linear-gradient(90deg,var(--blue-main),var(--orange-main));color:#fff;box-shadow:0 4px 14px rgba(79,168,232,.35)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(79,168,232,.45)}
.btn-warm{background:linear-gradient(90deg,var(--orange-main),var(--red-main));color:#fff;box-shadow:0 4px 14px rgba(255,158,94,.35)}
.btn-warm:hover{transform:translateY(-2px)}
.btn-ghost{background:transparent;border:1px solid var(--blue-soft);color:var(--blue-main)}
.btn-ghost:hover{background:var(--blue-bg)}
.btn-sm{padding:7px 16px;font-size:13px}
.btn-block{width:100%}
.btn:disabled{opacity:.5;cursor:not-allowed}

/* 卡片 */
.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px;border:1px solid var(--line)}
.card + .card{margin-top:20px}
.card-title{font-size:20px;font-weight:700;margin-bottom:16px;display:flex;align-items:center;gap:8px}
.card-title::before{content:"";width:4px;height:18px;border-radius:2px;background:linear-gradient(180deg,var(--blue-main),var(--orange-main))}

/* 首页 */
.hero{background:linear-gradient(120deg,rgba(79,168,232,.12),rgba(255,158,94,.12),rgba(255,123,138,.12));border-radius:24px;padding:44px 36px;margin:28px 0;position:relative;overflow:hidden;border:1px solid var(--line)}
.hero::after{content:"💘";position:absolute;right:30px;bottom:-10px;font-size:120px;opacity:.15}
.hero h1{font-size:34px;font-weight:800;margin-bottom:12px}
.hero h1 span{background:linear-gradient(90deg,var(--blue-main),var(--orange-main),var(--red-main));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.hero p{color:var(--ink-light);font-size:16px;max-width:560px}
.hero-actions{margin-top:24px;display:flex;gap:14px}

.section-title{font-size:22px;font-weight:700;margin:32px 0 16px;display:flex;align-items:center;gap:10px}
.section-title .sub{font-size:13px;color:var(--ink-light);font-weight:400}

/* 推荐卡片流 */
.user-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px}
.user-card{background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);border:1px solid var(--line);transition:.3s;cursor:pointer;position:relative}
.user-card:hover{transform:translateY(-6px);box-shadow:0 12px 30px rgba(79,168,232,.2)}
.user-card .uc-photo{height:220px;background:linear-gradient(135deg,var(--blue-soft),var(--orange-soft));display:flex;align-items:center;justify-content:center;font-size:64px;color:#fff}
.user-card .uc-body{padding:16px}
.user-card .uc-name{font-size:18px;font-weight:700;display:flex;align-items:center;gap:6px}
.user-card .uc-info{color:var(--ink-light);font-size:13px;margin-top:6px;line-height:1.7}
.fate-badge{position:absolute;top:12px;right:12px;background:linear-gradient(90deg,var(--orange-main),var(--red-main));color:#fff;font-size:12px;padding:4px 12px;border-radius:20px;font-weight:600}
.vip-flag{position:absolute;top:12px;left:12px;background:#fff;color:var(--orange-main);font-size:11px;padding:3px 10px;border-radius:12px;border:1px solid var(--orange-soft)}
.uc-actions{display:flex;gap:8px;margin-top:12px}
.uc-actions .btn{flex:1}

/* 匹配页 */
.match-hero{text-align:center;padding:40px 20px}
.match-hero .ai-avatar{width:90px;height:90px;border-radius:50%;background:linear-gradient(135deg,var(--blue-main),var(--orange-main),var(--red-main));display:flex;align-items:center;justify-content:center;font-size:42px;margin:0 auto 16px;box-shadow:0 8px 24px rgba(79,168,232,.35);animation:pulse 2s infinite}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.06)}}
.match-banner{background:linear-gradient(120deg,var(--blue-bg),var(--orange-bg),var(--red-bg));border:1px solid var(--line);border-radius:20px;padding:20px 24px;margin-bottom:24px;display:flex;gap:16px;align-items:center}
.match-banner .mb-icon{font-size:36px}
.score-ring{width:70px;height:70px;border-radius:50%;background:conic-gradient(var(--orange-main) calc(var(--score)*1%),#eee 0);display:flex;align-items:center;justify-content:center;position:relative;flex-shrink:0}
.score-ring::before{content:"";position:absolute;inset:8px;background:#fff;border-radius:50%}
.score-ring b{position:relative;font-size:17px;color:var(--orange-main)}

/* 动态广场 */
.post-card{padding:20px 24px}
.post-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.post-avatar{width:44px;height:44px;border-radius:50%;object-fit:cover;background:linear-gradient(135deg,var(--blue-soft),var(--orange-soft))}
.post-name{font-weight:600}
.post-time{font-size:12px;color:var(--ink-light)}
.post-content{margin:12px 0;white-space:pre-wrap}
.post-images{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}
.post-images img{width:100%;height:140px;object-fit:cover;border-radius:10px}
.post-actions{display:flex;gap:18px;color:var(--ink-light);font-size:14px}
.post-actions button{background:none;border:none;cursor:pointer;color:var(--ink-light);font-size:14px;display:flex;align-items:center;gap:4px}
.post-actions button.liked{color:var(--red-main)}
.comment-list{margin-top:14px;padding-top:12px;border-top:1px dashed var(--line);font-size:14px}
.comment-item{margin-bottom:8px;color:var(--ink-light)}

/* 聊天 */
.chat-layout{display:grid;grid-template-columns:280px 1fr;gap:20px;margin:24px 0}
.chat-side .contact{padding:14px;border-radius:14px;cursor:pointer;display:flex;align-items:center;gap:10px;transition:.2s}
.chat-side .contact:hover,.chat-side .contact.active{background:var(--blue-bg)}
.chat-main{display:flex;flex-direction:column;height:560px}
.chat-head{padding:14px 20px;border-bottom:1px solid var(--line);font-weight:600}
.chat-body{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:12px}
.msg{max-width:68%;padding:10px 16px;border-radius:16px;font-size:14px;word-break:break-word}
.msg.in{background:var(--blue-bg);align-self:flex-start;border-bottom-left-radius:4px}
.msg.out{background:linear-gradient(90deg,var(--blue-main),var(--orange-main));color:#fff;align-self:flex-end;border-bottom-right-radius:4px}
.msg-time{font-size:11px;color:var(--ink-light);margin-top:4px}
.chat-input{display:flex;gap:10px;padding:14px;border-top:1px solid var(--line)}
.chat-input input{flex:1;padding:11px 16px;border-radius:24px;border:1px solid var(--line);outline:none;font-size:14px}
.chat-input input:focus{border-color:var(--blue-main)}
.ai-tip{background:linear-gradient(120deg,var(--blue-bg),var(--orange-bg));border:1px dashed var(--blue-soft);border-radius:14px;padding:10px 16px;font-size:13px;color:var(--ink-light);margin-bottom:8px}

/* 表单 */
.form-card{max-width:460px;margin:48px auto}
.form-group{margin-bottom:18px}
.form-group label{display:block;font-size:14px;font-weight:600;margin-bottom:6px}
.form-control{width:100%;padding:12px 16px;border-radius:12px;border:1px solid var(--line);font-size:15px;outline:none;transition:.2s;background:#fff}
.form-control:focus{border-color:var(--blue-main);box-shadow:0 0 0 3px rgba(79,168,232,.12)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form-tip{font-size:13px;color:var(--ink-light);margin-top:6px}
.alert{padding:12px 16px;border-radius:12px;margin-bottom:16px;font-size:14px}
.alert-error{background:var(--red-bg);color:#C62839;border:1px solid var(--red-soft)}
.alert-success{background:#E8F8EE;color:#1E7B45;border:1px solid #BCE8CF}

/* 会员 */
.member-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:24px 0}
.member-plan{background:#fff;border-radius:var(--radius);padding:28px 22px;text-align:center;border:2px solid var(--line);transition:.3s;position:relative}
.member-plan:hover{border-color:var(--orange-main);transform:translateY(-4px)}
.member-plan.hot{border-color:var(--orange-main);box-shadow:0 10px 30px rgba(255,158,94,.25)}
.member-plan .plan-name{font-size:18px;font-weight:700}
.member-plan .plan-price{font-size:34px;font-weight:800;margin:12px 0;background:linear-gradient(90deg,var(--blue-main),var(--orange-main));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.member-plan .plan-price small{font-size:14px}
.member-plan ul{list-style:none;text-align:left;margin:16px 0;color:var(--ink-light);font-size:14px}
.member-plan ul li{padding:5px 0}
.member-plan ul li::before{content:"✔";color:var(--orange-main);margin-right:8px}
.hot-tag{position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:linear-gradient(90deg,var(--orange-main),var(--red-main));color:#fff;padding:3px 16px;border-radius:12px;font-size:12px;font-weight:600}

/* 分享 */
.share-card{max-width:420px;margin:32px auto;border-radius:20px;overflow:hidden;box-shadow:0 16px 48px rgba(0,0,0,.15);background:#fff}
.share-cover{height:260px;background:linear-gradient(135deg,var(--blue-main),var(--orange-main),var(--red-main));position:relative;display:flex;align-items:center;justify-content:center;flex-direction:column;color:#fff}
.share-cover .big-emoji{font-size:80px;margin-bottom:10px}
.share-cover h2{font-size:28px;font-weight:800}
.share-cover p{opacity:.9;font-size:14px}
.share-body{padding:24px;text-align:center}
.qr-box{width:140px;height:140px;margin:0 auto;border:3px solid var(--line);border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--ink-light);background:#fafbfe}
.share-tip{color:var(--ink-light);font-size:13px;margin-top:12px}

/* 后台 */
.admin-body{background:#F2F5F9}
.admin-wrap{display:grid;grid-template-columns:220px 1fr;gap:0;min-height:100vh}
.admin-side{background:#233047;color:#fff;padding:24px 0}
.admin-side .as-logo{font-size:18px;font-weight:700;padding:0 24px 20px;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:16px}
.admin-side a{display:block;padding:11px 24px;color:rgba(255,255,255,.75);transition:.2s;font-size:14px}
.admin-side a:hover,.admin-side a.active{background:rgba(255,255,255,.1);color:#fff}
.admin-main{padding:28px 32px}
.admin-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:24px}
.stat-card{background:#fff;border-radius:14px;padding:20px;box-shadow:0 4px 16px rgba(0,0,0,.05)}
.stat-card .num{font-size:30px;font-weight:800;color:var(--blue-main)}
.stat-card .lbl{color:var(--ink-light);font-size:13px;margin-top:4px}
.table-wrap{background:#fff;border-radius:14px;padding:20px;box-shadow:0 4px 16px rgba(0,0,0,.05);overflow-x:auto}
table.tbl{width:100%;border-collapse:collapse;font-size:14px}
table.tbl th,table.tbl td{padding:11px 12px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}
table.tbl th{background:#F8FAFD;color:var(--ink-light);font-weight:600}
.badge{padding:3px 12px;border-radius:12px;font-size:12px}
.badge.ok{background:#E8F8EE;color:#1E7B45}
.badge.bad{background:var(--red-bg);color:#C62839}
.badge.warn{background:var(--orange-bg);color:#D9701F}
.badge.info{background:var(--blue-bg);color:var(--blue-main)}

/* 通用 */
.empty{padding:60px 20px;text-align:center;color:var(--ink-light)}
.empty .em{font-size:48px;margin-bottom:12px}
.page-title{font-size:26px;font-weight:800;margin:28px 0 8px}
.page-sub{color:var(--ink-light);margin-bottom:24px}
.mt16{margin-top:16px}.mt24{margin-top:24px}.mb16{margin-bottom:16px}
.flex{display:flex;gap:10px;align-items:center}
.footer-links{margin-top:8px;font-size:13px}
.footer-links span{margin:0 8px;color:var(--line)}
.footer-copy{font-size:12px;color:var(--ink-light);margin-top:6px}
.site-footer{background:rgba(255,255,255,.8);margin-top:48px;padding:28px 0;text-align:center;font-size:14px}
@media (max-width:768px){
  .main-nav{display:none}
  .chat-layout{grid-template-columns:1fr}
  .member-grid,.stat-grid{grid-template-columns:1fr 1fr}
  .user-grid{grid-template-columns:1fr 1fr}
  .hero{padding:28px 20px}
  .hero h1{font-size:26px}
}

/* ===== 多城市切换器 ===== */
.city-switch{position:relative;margin-left:6px;font-size:14px}
.city-switch>a{display:flex;align-items:center;gap:3px;padding:6px 10px;background:#fff;border:1px solid var(--line);border-radius:10px;color:var(--ink);font-weight:600;white-space:nowrap}
.city-switch:hover .city-pop{display:block}
.city-pop{display:none;position:absolute;top:calc(100% + 8px);left:0;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 12px 32px rgba(0,0,0,.12);padding:14px;min-width:300px;z-index:99}
.city-pop-title{font-size:13px;font-weight:700;color:var(--ink);margin-bottom:8px}
.city-pop-list{display:flex;flex-wrap:wrap;gap:6px}
.city-pop-list a,.city-pop-all a{display:inline-block;padding:4px 10px;background:#F5F7FA;border-radius:8px;font-size:13px;color:var(--ink);margin:0 4px 4px 0;text-decoration:none}
.city-pop-list a:hover,.city-pop-all a:hover{background:var(--blue-bg);color:var(--blue-main)}
.city-pop-all{display:flex;flex-wrap:wrap}
.city-pop-all a{width:auto}

/* ===== 红娘大厅 ===== */
.mm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}
.mm-card{background:#fff;border-radius:16px;padding:20px;box-shadow:0 4px 16px rgba(0,0,0,.05);text-align:center;border:1px solid var(--line)}
.mm-avatar{width:72px;height:72px;border-radius:50%;margin:0 auto 10px;display:flex;align-items:center;justify-content:center;font-size:36px;background:linear-gradient(135deg,var(--blue-bg),var(--orange-bg))}
.mm-level{display:inline-block;padding:2px 10px;border-radius:10px;font-size:12px;margin-bottom:8px}
.mm-level-3{background:linear-gradient(90deg,#f59e0b,#ef4444);color:#fff}
.mm-level-2{background:var(--orange-bg);color:#D9701F}
.mm-level-1{background:#F1F5F9;color:var(--ink-light)}
.mm-tags{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin:10px 0}
.mm-tags span{font-size:12px;background:#F5F7FA;padding:3px 10px;border-radius:10px;color:var(--ink-light)}

/* ===== 线索登记 ===== */
.lead-form{max-width:520px;margin:0 auto}
.lead-form .form-row{margin-bottom:14px}
.lead-form label{display:block;font-size:13px;margin-bottom:6px;color:var(--ink-light)}
.lead-form input,.lead-form select,.lead-form textarea{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:10px;font-size:14px}

/* ===== 抢单台 ===== */
.grab-item{border:1px solid var(--line);border-radius:14px;padding:16px;margin-bottom:12px;background:#fff;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.grab-new{box-shadow:0 0 0 1px var(--orange-main);background:linear-gradient(135deg,#fff,var(--orange-bg))}
.grab-btn{background:linear-gradient(90deg,var(--orange-main),var(--red-main));color:#fff;padding:10px 26px;border-radius:12px;border:none;font-size:15px;font-weight:700;cursor:pointer}
.grab-btn:disabled{opacity:.4;cursor:not-allowed}

/* ===== 活动卡片 ===== */
.act-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.act-card{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 4px 16px rgba(0,0,0,.05);border:1px solid var(--line)}
.act-body{padding:16px}
.act-meta{display:flex;gap:12px;flex-wrap:wrap;font-size:13px;color:var(--ink-light);margin:10px 0}
.act-meta span{display:flex;align-items:center;gap:4px}

/* ===== 学堂 ===== */
.art-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.art-card{background:#fff;border-radius:16px;padding:18px;box-shadow:0 4px 16px rgba(0,0,0,.05);border:1px solid var(--line);cursor:pointer}
.art-cat{font-size:12px;color:var(--red-main);background:var(--red-bg);padding:2px 10px;border-radius:10px}
.art-views{font-size:12px;color:var(--ink-light)}
