/* ============================================================
   选市366 · 线上糖酒会系统 · 公共样式（酒红 × 鎏金 · 高端会展质感 P1 版）
   说明：全部类名与旧版一致，仅升级视觉；功能不受影响
   ============================================================ */
:root{
  --wine:#7A1F2B; --wine-dark:#5C141D; --wine-deep:#4A0E16; --wine-light:#A93A47;
  --gold:#C9A063; --gold-light:#E8D5AE; --gold-deep:#A87E3F;
  --bg:#F7F4EF; --bg-2:#FDFCFA; --card:#FFFFFF; --text:#2B2320; --text-2:#6E645E;
  --line:#E9E1D6; --line-soft:#F1EAE0;
  --green:#2E7D4F; --blue:#2E5E8C; --orange:#C97A2E; --red:#C0392B;
  --shadow-sm:0 1px 3px rgba(90,50,30,.06), 0 1px 2px rgba(90,50,30,.04);
  --shadow:0 2px 8px rgba(90,50,30,.07), 0 8px 24px -12px rgba(90,50,30,.12);
  --shadow-lg:0 4px 14px rgba(90,50,30,.09), 0 18px 40px -16px rgba(90,50,30,.18);
  --grad-wine:linear-gradient(135deg,#8C2433 0%,#7A1F2B 45%,#5C141D 100%);
  --grad-gold:linear-gradient(135deg,#E2C489 0%,#C9A063 60%,#B08A4E 100%);
  --grad-bg:linear-gradient(180deg,#FBF9F5 0%,#F7F4EF 100%);
  --radius:14px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
::selection{background:rgba(201,160,99,.35)}
::-webkit-scrollbar{width:9px;height:9px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:#D8CBB6;border-radius:9px}
::-webkit-scrollbar-thumb:hover{background:#C9A063}
body{font-family:"Microsoft YaHei","PingFang SC","Helvetica Neue",sans-serif;background:var(--grad-bg);color:var(--text);font-size:14px;line-height:1.65;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:none;background:none}
input,select,textarea{font-family:inherit;font-size:14px;border:1px solid var(--line);border-radius:10px;padding:9px 13px;background:#fff;width:100%;transition:border-color .2s,box-shadow .2s}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,160,99,.16)}
input::placeholder,textarea::placeholder{color:#B8ADA0}
img{max-width:100%}

.wrap{max-width:1120px;margin:0 auto;padding:0 16px}
.hidden{display:none!important}

/* 顶部导航 */
.topbar{background:linear-gradient(135deg,#3E0B12 0%,var(--wine-deep) 26%,var(--wine) 62%,var(--wine-dark) 100%);color:#fff;position:sticky;top:0;z-index:50;box-shadow:0 6px 22px rgba(74,14,22,.38),inset 0 1px 0 rgba(255,255,255,.07);border-bottom:1px solid rgba(201,160,99,.45)}
.topbar:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 6% -30%,rgba(201,160,99,.30),transparent 44%),radial-gradient(circle at 94% -40%,rgba(201,160,99,.16),transparent 40%);pointer-events:none}
.topbar:after{content:"";display:block;height:1px;background:linear-gradient(90deg,transparent,var(--gold) 22%,#F2DEB0 50%,var(--gold) 78%,transparent);opacity:.8;position:absolute;left:0;right:0;bottom:-1px}
.topbar .wrap{display:flex;align-items:center;gap:10px;height:62px;position:relative;flex-wrap:nowrap}
.logo{font-size:17px;font-weight:900;letter-spacing:1.1px;display:flex;align-items:center;gap:9px;white-space:nowrap;transition:.2s;flex:none;color:#F2DEB0;text-shadow:0 2px 10px rgba(0,0,0,.5)}
.logo:hover{text-shadow:0 2px 16px rgba(232,213,174,.6)}
.logo-name{flex:none;line-height:1}
.logo-sub{font-size:12px;font-weight:600;letter-spacing:.5px;color:rgba(242,222,176,.82);flex:none}
.logo .badge{font-size:8.5px;background:linear-gradient(135deg,#F2DEB0,#C9A063 55%,#A87E3F);color:#3E0B12;padding:2.5px 8px;border-radius:7px;font-weight:900;letter-spacing:.8px;box-shadow:0 2px 10px rgba(168,126,63,.5),inset 0 1px 0 rgba(255,255,255,.55);margin-left:2px}
.logo-img{height:48px;width:48px;object-fit:contain;flex:none;border-radius:8px;background:#fff;box-shadow:0 3px 14px rgba(0,0,0,.38),inset 0 0 0 1px rgba(201,160,99,.4)}

/* ===== 顶部账号区：金色胶囊角色 + 金色名称 + 金色描边退出 ===== */
.topbar #userBox{display:flex;align-items:center;gap:7px;flex:none;margin-left:auto;color:#F2DEB0;font-size:12.5px;font-weight:700;letter-spacing:.5px;text-shadow:0 1px 6px rgba(0,0,0,.45)}
.topbar #userBox .badge{background:linear-gradient(135deg,#F2DEB0,#C9A063 55%,#A87E3F);color:#3E0B12;border-radius:7px;padding:4px 10px;font-size:11.5px;font-weight:800;letter-spacing:.4px;box-shadow:0 2px 8px rgba(168,126,63,.45),inset 0 1px 0 rgba(255,255,255,.55);line-height:1.4}
.topbar #userBox .user-name{color:#F2DEB0;font-size:12.5px;font-weight:700;letter-spacing:.5px;line-height:1;text-shadow:0 1px 6px rgba(0,0,0,.45)}
.topbar #userBox .btn-ghost{background:transparent;border:1px solid rgba(242,222,176,.65);color:#F2DEB0;border-radius:7px;padding:4px 11px;font-size:11.5px;font-weight:600;letter-spacing:.4px;line-height:1.4;transition:.2s;cursor:pointer}
.topbar #userBox .btn-ghost:hover{background:rgba(242,222,176,.14);border-color:#F2DEB0;box-shadow:0 0 12px rgba(242,222,176,.35)}
.nav{display:flex;gap:1px;margin-left:6px;align-items:center;flex-wrap:nowrap;overflow:visible;scrollbar-width:none}
.nav::-webkit-scrollbar{display:none}
.nav a{padding:6px 9px;border-radius:10px;font-size:13px;letter-spacing:.5px;transition:.24s;position:relative;color:rgba(255,255,255,.86);white-space:nowrap;flex:none}
.nav a:after{content:"";position:absolute;left:50%;bottom:4px;width:0;height:2px;background:linear-gradient(90deg,transparent,#E8D5AE 30%,#C9A063 70%,transparent);transform:translateX(-50%);transition:width .3s ease;border-radius:2px;opacity:0}
.nav a:hover{color:#FFF6E0;background:linear-gradient(180deg,rgba(201,160,99,.18),rgba(201,160,99,.04));text-shadow:0 0 12px rgba(232,213,174,.4)}
.nav a:hover:after{width:68%;opacity:1}
.nav a.on{background:linear-gradient(135deg,#EAD3A2,#C9A063 55%,#B08A4E);color:#3E0B12;font-weight:800;box-shadow:0 4px 16px rgba(168,126,63,.48),inset 0 1px 0 rgba(255,255,255,.55)}
.nav a.on:after{display:none}
/* 一级/二级分组菜单 */
.nav-g{position:relative;flex:none}
.nav-p{padding:6px 9px;border-radius:10px;font-size:13px;letter-spacing:.5px;transition:.24s;color:rgba(255,255,255,.86);white-space:nowrap;cursor:pointer;display:flex;align-items:center;gap:4px}
.nav-p:hover{color:#FFF6E0;background:linear-gradient(180deg,rgba(201,160,99,.18),rgba(201,160,99,.04));text-shadow:0 0 12px rgba(232,213,174,.4)}
.nav-g.open .nav-p{background:linear-gradient(135deg,#EAD3A2,#C9A063 55%,#B08A4E);color:#3E0B12;font-weight:800;box-shadow:0 4px 16px rgba(168,126,63,.48),inset 0 1px 0 rgba(255,255,255,.55)}
.nav-g .caret{font-size:9px;opacity:.75;transition:transform .2s}
.nav-g.open .caret{transform:rotate(180deg)}
.nav-sub{position:absolute;top:calc(100% + 12px);left:0;min-width:160px;background:linear-gradient(165deg,rgba(74,16,25,.96),rgba(40,9,16,.96));border:1px solid rgba(201,160,99,.5);border-radius:14px;box-shadow:0 18px 40px rgba(20,4,8,.55),inset 0 1px 0 rgba(255,255,255,.08);padding:7px;display:none;flex-direction:column;gap:2px;z-index:80;backdrop-filter:blur(10px)}
.nav-sub:before{content:"";position:absolute;top:-7px;left:24px;width:11px;height:11px;background:#40111A;border-left:1px solid rgba(201,160,99,.5);border-top:1px solid rgba(201,160,99,.5);transform:rotate(45deg);z-index:-1}
.nav-g.open .nav-sub{display:flex}
.nav-sub a{padding:9px 15px;border-radius:9px;font-size:13px;color:rgba(255,255,255,.9);letter-spacing:.4px;white-space:nowrap;position:relative;display:block;text-align:left}
.nav-sub .nav-sec{font-size:10px;color:#C9A063;letter-spacing:2px;padding:9px 15px 4px;border-top:1px solid rgba(201,160,99,.22);margin-top:5px;text-transform:uppercase;font-weight:700}
.nav-sub a:after{display:none}
.nav-sub a:hover{background:rgba(201,160,99,.18);color:#F2DEB0;padding-left:19px}
.nav-sub a.on{background:linear-gradient(135deg,#EAD3A2,#C9A063 55%,#B08A4E);color:#3E0B12;font-weight:800}
.top-right{margin-left:auto;display:flex;align-items:center;gap:12px;flex:none}
.quota-pill{background:linear-gradient(135deg,rgba(15,59,95,.55),rgba(11,46,74,.30));border:1px solid rgba(201,160,99,.45);padding:4px 12px;border-radius:18px;font-size:11.5px;letter-spacing:.3px;color:#F2E3C4;backdrop-filter:blur(6px);box-shadow:inset 0 1px 0 rgba(255,255,255,.08);white-space:nowrap}
.role-switch{font-size:12px;display:flex;gap:2px;background:rgba(255,255,255,.12);border-radius:16px;padding:3px;border:1px solid rgba(255,255,255,.15)}
.role-switch span{padding:3px 11px;border-radius:14px;cursor:pointer;transition:.15s}
.role-switch span.on{background:#fff;color:var(--wine);font-weight:700;box-shadow:0 1px 4px rgba(0,0,0,.15)}

/* 按钮 */
.btn{display:inline-block;padding:9px 20px;border-radius:22px;font-size:14px;transition:.22s;text-align:center;border:1px solid transparent}
.btn-wine{background:var(--grad-wine);color:#fff;box-shadow:0 3px 10px rgba(122,31,43,.28)}
.btn-wine:hover{transform:translateY(-1px);box-shadow:0 5px 16px rgba(122,31,43,.38)}
.btn-gold{background:var(--grad-gold);color:var(--wine-deep);font-weight:700;box-shadow:0 3px 10px rgba(168,126,63,.30)}
.btn-gold:hover{transform:translateY(-1px);box-shadow:0 5px 16px rgba(168,126,63,.42)}
.btn-line{border:1px solid var(--line);color:var(--text-2);background:#fff}
.btn-line:hover{border-color:var(--wine);color:var(--wine);box-shadow:0 2px 8px rgba(122,31,43,.10)}
.btn-ghost{color:#fff;border:1px solid rgba(255,255,255,.55);background:rgba(255,255,255,.06)}
.btn-ghost:hover{background:rgba(255,255,255,.16)}
.btn-sm{padding:5px 13px;font-size:12px;border-radius:15px}
.btn-block{width:100%;padding:12px;border-radius:12px;font-size:15px;font-weight:700}
.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important;box-shadow:none!important}
.btn-danger{background:linear-gradient(135deg,#C0452F,#A93226);color:#fff;box-shadow:0 3px 10px rgba(192,57,43,.25)}
.btn-danger:hover{transform:translateY(-1px)}

/* 卡片 */
.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;margin-bottom:16px;border:1px solid rgba(233,225,214,.55)}
.card h3{font-size:16px;margin-bottom:12px;display:flex;align-items:center;gap:8px;font-weight:700}
.card h3 .bar{width:4px;height:17px;background:var(--grad-gold);border-radius:2px;display:inline-block;box-shadow:0 0 6px rgba(201,160,99,.5)}
.grid{display:grid;gap:16px}
.grid-4{grid-template-columns:repeat(4,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-2{grid-template-columns:repeat(2,1fr)}
@media(max-width:900px){.grid-4{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(2,1fr)}}
/* 导航栏窄屏适配 */
@media(max-width:400px){
.topbar .wrap{height:60px;gap:10px}
.nav a,.nav-p{padding:7px 9px;font-size:12.5px;letter-spacing:.2px}
.logo{font-size:14px;letter-spacing:.4px;gap:8px}
.logo-img{height:42px;width:42px;padding:0}
.logo-sub{display:none}
.top-right .quota-pill{display:none}
}
@media(max-width:560px){.grid-4,.grid-3,.grid-2{grid-template-columns:1fr}}

/* Hero */
.hero{background:radial-gradient(120% 160% at 15% 0%,#9A2B3A 0%,var(--wine) 42%,var(--wine-deep) 100%);color:#fff;border-radius:20px;padding:46px 42px;margin:22px 0;position:relative;overflow:hidden;border:1px solid rgba(201,160,99,.35);box-shadow:0 10px 30px -12px rgba(74,14,22,.45)}
.hero:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 82% 20%,rgba(201,160,99,.22),transparent 45%),radial-gradient(circle at 8% 88%,rgba(255,255,255,.08),transparent 40%);pointer-events:none}
.hero:after{content:"";position:absolute;right:-70px;top:-70px;width:320px;height:320px;border-radius:50%;border:2px solid rgba(201,160,99,.30);background:rgba(201,160,99,.10)}
.hero .ring{position:absolute;right:120px;bottom:-90px;width:220px;height:220px;border-radius:50%;border:1px dashed rgba(201,160,99,.35)}
.hero h1{font-size:34px;margin-bottom:10px;letter-spacing:1.5px;position:relative;z-index:2;font-weight:800}
.hero h1 .gold{background:linear-gradient(120deg,#F2DEB0,#C9A063 60%,#E8D5AE);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.hero p{color:rgba(255,255,255,.88);margin-bottom:22px;position:relative;z-index:2;max-width:640px}
.hero .cta{display:flex;gap:12px;position:relative;z-index:2}
.hero .meta-strip{display:flex;gap:28px;margin-top:22px;position:relative;z-index:2;flex-wrap:wrap}
.hero .meta-strip b{font-size:24px;font-weight:800;background:linear-gradient(120deg,#F2DEB0,#E8D5AE);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.hero .meta-strip span{font-size:12px;color:rgba(255,255,255,.75);display:block;letter-spacing:1px}

/* 展馆卡 */
.hall-card{background:var(--card);border-radius:16px;padding:20px;box-shadow:var(--shadow);border-top:4px solid var(--gold);transition:.25s;cursor:pointer;border-left:1px solid var(--line-soft);border-right:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft)}
.hall-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.hall-card .ic{width:46px;height:46px;border-radius:13px;background:var(--grad-wine);color:#fff;display:flex;align-items:center;justify-content:center;font-size:21px;margin-bottom:11px;box-shadow:0 4px 10px rgba(122,31,43,.25)}
.hall-card h4{font-size:16px;margin-bottom:4px;font-weight:700}
.hall-card .meta{color:var(--text-2);font-size:12px}

/* 展商/展品卡 */
.item-card{background:var(--card);border-radius:16px;box-shadow:var(--shadow);overflow:hidden;transition:.25s;cursor:pointer;border:1px solid var(--line-soft)}
.item-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:rgba(201,160,99,.5)}
.item-card .thumb{height:150px;background:linear-gradient(135deg,#F5ECDD,#EBDDC6);display:flex;align-items:center;justify-content:center;color:#B79B6B;font-size:13px;position:relative;overflow:hidden}
.item-card .thumb img{width:100%;height:100%;object-fit:cover;display:block;position:relative;z-index:1}
.item-card .thumb:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 80% 10%,rgba(201,160,99,.18),transparent 50%);pointer-events:none}
.item-card .body{padding:15px}
.item-card .t{font-weight:700;font-size:15px;margin-bottom:4px;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.item-card .sub{color:var(--text-2);font-size:12px;margin-bottom:8px;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.item-card .price{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;margin-top:6px;line-height:1.35}
.item-card .price .m{color:var(--text-2);font-size:12px;text-decoration:line-through}
.item-card .price .r{color:var(--red);font-size:18px;font-weight:800}
.price .unit{display:block;flex-basis:100%;font-size:11px;color:var(--text-2);font-weight:400}
.badge{display:inline-block;font-size:11px;padding:2.5px 9px;border-radius:11px;margin-right:6px;font-weight:600;letter-spacing:.3px}
.badge-wine{background:#F6E3E5;color:var(--wine);border:1px solid #EFCBD0}
.badge-gold{background:#F7EEDC;color:#8A6A2A;border:1px solid #EAD9B4}
.badge-green{background:#E3F0E9;color:var(--green);border:1px solid #CBE3D3}
.badge-blue{background:#E5EDF5;color:var(--blue);border:1px solid #CEDCEB}
.badge-gray{background:#F0ECE7;color:var(--text-2);border:1px solid #E4DED5}
.badge-danger{background:#F9E2E4;color:#B23B46;border:1px solid #F0C8CD}
.badge-cool{background:linear-gradient(135deg,#F7EEDC,#F0DFB8);color:#7A5A1E;border:1px solid #D9BD7E;box-shadow:0 1px 3px rgba(168,126,63,.18)}
.tag-std{display:inline-block;font-size:11px;padding:2.5px 9px;border-radius:11px;margin-right:6px;font-weight:600;letter-spacing:.3px;background:#F5F2EE;color:#8B8577;border:1px dashed #D8D2C5}
.perm-item{display:inline-flex;align-items:center;gap:5px;margin:0 12px 8px 0;font-size:13px;cursor:pointer}

/* 表格 */
.table-shell{background:#fff;border-radius:14px;border:1px solid var(--line-soft);overflow:hidden;box-shadow:var(--shadow-sm)}
table{width:100%;border-collapse:collapse;background:#fff}
th,td{padding:11px 13px;border-bottom:1px solid var(--line);text-align:left;font-size:13px}
th{background:linear-gradient(180deg,#F7F2EA,#F1EADF);font-weight:700;color:#5B4632;white-space:nowrap;letter-spacing:.3px}
tr:hover td{background:#FBF8F2}
tbody tr:last-child td{border-bottom:none}
.tag{display:inline-block;font-size:12px;padding:2.5px 11px;border-radius:13px;background:#F1ECE4;color:var(--text-2);font-weight:600}
.tag.on{background:#E2F0E8;color:var(--green)}
.tag.warn{background:#FDEBDD;color:var(--orange)}
.tag.hot{background:#F6E3E5;color:var(--wine)}

/* 表单 */
.form-row{margin-bottom:15px}
.form-row label{display:block;font-size:13px;color:var(--text-2);margin-bottom:6px;font-weight:600}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:600px){.form-grid{grid-template-columns:1fr}}
.check-group{display:flex;flex-wrap:wrap;gap:8px}
.chip{border:1px solid var(--line);padding:6px 15px;border-radius:19px;font-size:13px;cursor:pointer;background:#fff;transition:.15s;user-select:none}
.chip:hover{border-color:var(--gold)}
.chip.on{background:var(--grad-wine);color:#fff;border-color:var(--wine);box-shadow:0 2px 8px rgba(122,31,43,.22)}

/* toast */
#toast{position:fixed;top:80px;left:50%;transform:translateX(-50%);z-index:999;display:flex;flex-direction:column;gap:8px;align-items:center}
.toast-item{background:rgba(35,30,28,.93);color:#fff;padding:11px 22px;border-radius:26px;font-size:13px;box-shadow:0 8px 24px rgba(0,0,0,.24);animation:slideIn .25s;border:1px solid rgba(255,255,255,.12)}
.toast-item.err{background:linear-gradient(135deg,#B03A2D,#932E24)}
@keyframes slideIn{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}

/* ===== 飘屏祝贺（右下角悬浮，不定时展示，不遮挡操作） ===== */
.marquee-box{position:fixed;right:22px;bottom:22px;z-index:150;max-width:410px;opacity:0;transform:translateY(18px);pointer-events:none;transition:opacity .5s,transform .5s}
.marquee-box.show{opacity:1;transform:translateY(0);pointer-events:auto}
.marquee-box>div{display:flex;align-items:center;gap:11px;background:linear-gradient(120deg,#8C2433,#A8323F);color:#fff;padding:13px 17px;border-radius:15px;box-shadow:0 10px 30px rgba(122,31,43,.40);border:1px solid rgba(201,160,99,.55);font-size:13px;line-height:1.5}
.marquee-box .mq-text{flex:1;min-width:0}
.marquee-box .mq-close{flex:none;cursor:pointer;color:rgba(255,255,255,.78);font-size:16px;padding:0 2px;line-height:1}
.marquee-box .mq-close:hover{color:#fff}
@media (max-width:560px){.marquee-box{right:12px;bottom:12px;left:12px;max-width:none}}

/* modal */
.modal-mask{position:fixed;inset:0;background:rgba(35,25,20,.52);z-index:200;display:flex;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(3px)}
.modal{background:#fff;border-radius:18px;max-width:560px;width:100%;max-height:86vh;overflow:auto;padding:26px;box-shadow:0 20px 60px -20px rgba(35,25,20,.45);border:1px solid var(--line-soft);animation:slideUp .22s}
@keyframes slideUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
.modal h3{font-size:18px;margin-bottom:16px;font-weight:800}
.modal .close{float:right;font-size:20px;color:var(--text-2);cursor:pointer;transition:.15s}
.modal .close:hover{color:var(--wine);transform:rotate(90deg)}
.modal-actions{display:flex;gap:10px;margin-top:18px;justify-content:flex-end}

/* 状态条 */
.steps{display:flex;align-items:center;gap:0;margin:10px 0 20px;flex-wrap:wrap}
.step{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-2)}
.step .dot{width:23px;height:23px;border-radius:50%;background:#E9E2D8;display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--text-2);font-weight:700;border:1px solid #DDD3C4}
.step.done .dot{background:var(--green);color:#fff;border-color:var(--green)}
.step.on .dot{background:var(--grad-wine);color:#fff;border-color:var(--wine);box-shadow:0 2px 6px rgba(122,31,43,.3)}
.step.on{color:var(--wine);font-weight:700}
.step-line{width:28px;height:2px;background:#E9E2D8;margin:0 6px;border-radius:2px}
.step-line.done{background:var(--green)}

/* 详情页 */
.detail-head{display:flex;gap:24px;background:#fff;border-radius:16px;box-shadow:var(--shadow);padding:24px;margin:20px 0;border:1px solid var(--line-soft)}
.detail-head .pic{width:200px;height:200px;border-radius:14px;background:linear-gradient(135deg,#F5ECDD,#EBDDC6);display:flex;align-items:center;justify-content:center;color:#B79B6B;flex-shrink:0;overflow:hidden;position:relative}.detail-head .pic img{width:100%;height:100%;object-fit:cover;display:block}
.detail-head .info{flex:1}
.detail-head h1{font-size:23px;margin-bottom:8px;font-weight:800}
.detail-head .meta{color:var(--text-2);font-size:13px;margin-bottom:12px}
.area-list .area-item{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border:1px solid var(--line);border-radius:12px;margin-bottom:10px;background:#fff;transition:.18s}
.area-item:hover{border-color:var(--gold)}
.area-item .state{font-size:12px}
.empty{padding:40px;text-align:center;color:var(--text-2)}
.empty .big{font-size:40px;margin-bottom:10px}

/* 我的/台账 */
.stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}
@media(max-width:700px){.stat-row{grid-template-columns:repeat(2,1fr)}}
.stat-box{background:var(--card);border-radius:14px;padding:17px;text-align:center;box-shadow:var(--shadow);border:1px solid var(--line-soft);position:relative;overflow:hidden}
.stat-box:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--grad-gold)}
.stat-box .n{font-size:28px;font-weight:800;color:var(--wine)}
.stat-box .l{font-size:12px;color:var(--text-2)}
.tabs{display:flex;gap:6px;border-bottom:2px solid var(--line);margin-bottom:16px;flex-wrap:wrap}
.tabs span{padding:8px 17px;cursor:pointer;font-size:14px;color:var(--text-2);border-bottom:2px solid transparent;margin-bottom:-2px;transition:.15s}
.tabs span:hover{color:var(--wine)}
.tabs span.on{color:var(--wine);font-weight:700;border-color:var(--wine)}

/* 管理端 */
.kpi{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}
@media(max-width:800px){.kpi{grid-template-columns:repeat(2,1fr)}}
.kpi .box{background:#fff;border-radius:14px;padding:18px;box-shadow:var(--shadow);border-left:4px solid var(--wine);border-top:1px solid var(--line-soft);border-right:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);position:relative;overflow:hidden}
.kpi .box:after{content:"";position:absolute;right:-18px;top:-18px;width:70px;height:70px;border-radius:50%;background:radial-gradient(circle,rgba(201,160,99,.14),transparent 70%)}
.kpi .box .v{font-size:28px;font-weight:800;color:var(--wine)}
.kpi .box .k{font-size:12px;color:var(--text-2)}
.funnel{display:flex;align-items:flex-end;gap:10px;height:150px;margin-top:14px}
.funnel .col{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px}
.funnel .bar{width:100%;max-width:46px;margin:0 auto;background:linear-gradient(180deg,var(--wine-light),var(--wine));border-radius:7px 7px 0 0;min-height:4px;transition:.3s}
.funnel .lbl{font-size:12px;color:var(--text-2);text-align:center}

/* 底部 */
.footer{margin-top:44px;padding:26px;background:linear-gradient(135deg,var(--wine-deep),var(--wine-dark));color:rgba(255,255,255,.78);text-align:center;font-size:12px;border-top:1px solid rgba(201,160,99,.35)}
@media(max-width:760px){
  .topbar .wrap{flex-wrap:wrap;height:auto;padding:10px 16px;gap:10px}
  .nav{order:3;width:100%;overflow-x:auto}
  /* 移动端下拉改为文档流内展开，避免被横向滚动容器裁剪 */
  .nav-g.open .nav-sub{position:static;box-shadow:none;border-radius:10px;margin-top:4px;width:100%;min-width:0}
  .hero{padding:32px 22px}
  .hero h1{font-size:26px}
  .detail-head{flex-direction:column}
  .detail-head .pic{width:100%;height:160px}
}

/* ===== 数据看板：梯形漏斗图 ===== */
.fu-wrap{display:flex;flex-direction:column;align-items:center;gap:2px;margin-top:16px;width:100%;max-width:760px;margin-left:auto;margin-right:auto}
.fu-trap{height:60px;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:4px 10px;color:#3E0B12;box-sizing:border-box;border:1.5px solid rgba(255,255,255,.55);box-shadow:0 3px 10px rgba(74,14,22,.20);transition:transform .25s;border-radius:1px}
.fu-trap.hide-rate .fu-rate{display:none}
.fu-trap.hide-rate .fu-lbl{font-size:12px}
.fu-trap:hover{transform:scale(1.02);z-index:2}
.fu-n{font-size:18px;font-weight:800;min-width:40px;text-align:center;text-shadow:0 1px 0 rgba(255,255,255,.35)}
.fu-lbl{font-size:13px;font-weight:700;letter-spacing:1px}
.fu-rate{font-size:11px;background:rgba(255,255,255,.65);border-radius:20px;padding:2px 9px;font-weight:700;box-shadow:inset 0 1px 2px rgba(0,0,0,.08)}
.fu-legend{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:14px;padding:10px 14px;background:#FDFAF3;border:1px solid var(--line-soft);border-radius:12px}
.fl-legend{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--text-2)}
.fl-legend i{width:12px;height:12px;border-radius:3px;display:inline-block}
.fu-note{margin-top:10px;font-size:12px;color:var(--text-2);text-align:center}
@media(max-width:760px){.fu-trap{height:50px}.fu-n{font-size:15px}.fu-lbl{font-size:12px}.fu-rate{display:none}.fu-legend{gap:10px}}
/* ===== 数据看板：阶段分布（环形图 + 流程图） ===== */
.dist-wrap{display:flex;flex-direction:column;gap:16px;margin-top:8px}
.dist-donut{display:flex;align-items:center;gap:28px;flex-wrap:wrap}
.donut{width:168px;height:168px;border-radius:50%;position:relative;flex:none;box-shadow:var(--shadow)}
.donut::after{content:"";position:absolute;inset:26px;background:#fff;border-radius:50%;box-shadow:inset 0 0 8px rgba(0,0,0,.04)}
.donut .dc{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:2}
.donut .dc b{font-size:28px;font-weight:800;color:var(--wine)}
.donut .dc span{font-size:12px;color:var(--text-2)}
.lg{display:flex;flex-direction:column;gap:6px;flex:1;min-width:220px}
.lg-item{display:flex;align-items:center;gap:8px;font-size:13px}
.lg-item i{width:10px;height:10px;border-radius:3px;flex:none}
.lg-item span{color:var(--text-2);flex:1}
.lg-item b{min-width:24px;text-align:right;color:var(--wine)}
.lg-item em{min-width:38px;text-align:right;font-style:normal;color:var(--text-3,#999)}
.flow-wrap{margin-top:4px}
.flow{display:flex;flex-wrap:wrap;align-items:center;gap:6px;background:#FDFAF3;border:1px solid var(--line-soft);border-radius:12px;padding:12px}
.flow .nd{background:#fff;border:1px solid #EAD9B4;border-radius:10px;padding:8px 14px;text-align:center;min-width:70px;box-shadow:0 1px 3px rgba(0,0,0,.04)}
.flow .nd b{display:block;font-size:17px;font-weight:800;color:var(--wine)}
.flow .nd span{font-size:12px;color:var(--text-2)}
.flow .ar{color:#C9A063;font-weight:800;font-size:15px}
@media(max-width:760px){.dist-donut{justify-content:center}.lg{min-width:160px}.flow .nd{padding:6px 10px;min-width:56px}}

/* ============================================================
   P2 精修层（在不改变结构的前提下提升质感）
   ============================================================ */

/* 全局动效优化 */
.card, .item-card, .hall-card, .stat-box, .kpi .box, .table-shell, .detail-head, .area-item {
  transition: box-shadow .3s cubic-bezier(.4,0,.2,1), transform .3s cubic-bezier(.4,0,.2,1), border-color .3s;
}

/* 卡片增强：微妙渐变顶部光 */
.card {
  position: relative;
  background: linear-gradient(180deg, #FFFFFF 0%, #FDFCFA 100%);
}
.card::before {
  content: "";
  position: absolute;
  top: 0; left: 16px; right: 16px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(201,160,99,.35), transparent);
  pointer-events: none;
}

/* KPI盒子增强 */
.kpi .box {
  transition: transform .25s, box-shadow .25s;
}
.kpi .box:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(90,50,30,.12), 0 2px 6px rgba(90,50,30,.06);
}
.kpi .box .v {
  background: linear-gradient(135deg, #8C2433, #5C141D);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* 统计盒子增强 */
.stat-box:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(90,50,30,.10);
}
.stat-box .n {
  background: linear-gradient(135deg, #8C2433, #5C141D);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* 表格增强 */
table th {
  letter-spacing: .5px;
  font-size: 12px;
  text-transform: uppercase;
}
table tbody tr {
  transition: background .15s;
}
table tbody tr:nth-child(even) {
  background: #FDFBF7;
}
table tbody tr:nth-child(even):hover td {
  background: #FBF6EC;
}
table tbody tr:hover td {
  background: #FBF8F2;
}

/* 按钮精修 */
.btn {
  position: relative;
  overflow: hidden;
  transition: all .25s cubic-bezier(.4,0,.2,1);
}
.btn:active {
  transform: translateY(0px) scale(.98);
}
.btn-wine::after {
  content: "";
  position: absolute;
  top: 0; left: -100%;
  width: 100%; height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.15), transparent);
  transition: left .5s;
}
.btn-wine:hover::after {
  left: 100%;
}
.btn-gold::after {
  content: "";
  position: absolute;
  top: 0; left: -100%;
  width: 100%; height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.25), transparent);
  transition: left .5s;
}
.btn-gold:hover::after {
  left: 100%;
}

/* 输入框精修 */
input, select, textarea {
  transition: all .2s cubic-bezier(.4,0,.2,1);
}
input:hover, select:hover, textarea:hover {
  border-color: #D8CBB6;
}
input:focus, select:focus, textarea:focus {
  border-color: var(--gold);
  box-shadow: 0 0 0 3px rgba(201,160,99,.14), 0 1px 2px rgba(0,0,0,.04);
}

/* 标签/徽章精修 */
.badge, .tag {
  transition: all .2s;
}
.tag.on {
  box-shadow: 0 2px 6px rgba(46,125,79,.2);
}
.tag.hot {
  box-shadow: 0 2px 6px rgba(122,31,43,.15);
}

/* 导航精修 */
.nav a, .nav-p {
  transition: all .2s cubic-bezier(.4,0,.2,1);
}
.nav a:hover {
  transform: translateY(-1px);
}

/* Modal精修 */
.modal {
  border: 1px solid rgba(201,160,99,.2);
}
.modal-mask {
  background: rgba(30,20,15,.55);
}

/* 空状态增强 */
.empty {
  padding: 50px 20px;
}
.empty .big {
  opacity: .3;
  filter: grayscale(.5);
}

/* 流程节点精修 */
.flow .nd {
  transition: all .25s;
}
.flow .nd:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(201,160,99,.2);
  border-color: var(--gold);
}

/* 展品卡增强 */
.item-card .body {
  background: linear-gradient(180deg, #fff, #FDFBF7);
}
.item-card .price .r {
  background: linear-gradient(135deg, #C0392B, #8E2A20);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* 滚动条精修 */
::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, #D8CBB6, #C9B89A);
  border-radius: 9px;
  border: 2px solid transparent;
  background-clip: padding-box;
}
::-webkit-scrollbar-thumb:hover {
  background: linear-gradient(180deg, #C9A063, #A87E3F);
  background-clip: padding-box;
  border: 2px solid transparent;
}

/* 进度条/步骤精修 */
.step .dot {
  transition: all .25s;
}
.step.on .dot {
  box-shadow: 0 0 0 4px rgba(122,31,43,.12);
}

/* Hero区增强 */
.hero {
  background: radial-gradient(120% 160% at 15% 0%, #9A2B3A 0%, #7A1F2B 42%, #4A0E16 100%);
}


/* ===== 二期工程 · 双计划（纵横四海 × 星火燎原）===== */
.plans-g .nav-p{color:#fff;background:linear-gradient(120deg,#0F3B5F,#123A66 60%,#0F3B5F);border:1px solid rgba(126,170,214,.45);border-radius:6px;padding:6px 12px;font-weight:600}
.plans-g .nav-p:hover{box-shadow:0 0 10px rgba(79,132,200,.5)}
.plans-entry{grid-template-columns:repeat(2,1fr);margin-bottom:16px}
.plan-card{position:relative;overflow:hidden;border-radius:14px;padding:22px 24px;cursor:pointer;display:flex;gap:16px;align-items:flex-start;color:#fff;border:1px solid rgba(201,160,99,.4);box-shadow:0 8px 24px -12px rgba(15,59,95,.5);transition:transform .15s ease,box-shadow .15s ease}
.plan-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px -10px rgba(15,59,95,.6)}
.plan-zongheng{background:radial-gradient(120% 150% at 12% 0%,#1B5A8F 0%,#0F3B5F 48%,#0A2C48 100%)}
.plan-xinghuo{background:radial-gradient(120% 150% at 12% 0%,#9A2B3A 0%,#7A1F2B 48%,#5B1620 100%)}
.plan-zongheng:after{content:"";position:absolute;right:-60px;top:-60px;width:230px;height:230px;border-radius:50%;border:2px dashed rgba(201,160,99,.35)}
.plan-ic{width:52px;height:52px;border-radius:12px;background:rgba(255,255,255,.12);border:1px solid rgba(201,160,99,.55);display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:800;color:#F2DEB0;flex-shrink:0}
.plan-body{flex:1;min-width:0}
.plan-tag{display:inline-block;font-size:11px;letter-spacing:2px;color:#F2DEB0;border:1px solid rgba(201,160,99,.5);border-radius:20px;padding:2px 10px;margin-bottom:8px;background:rgba(15,59,95,.3)}
.plan-name{font-size:20px;font-weight:800;margin-bottom:6px;position:relative;z-index:2}
.plan-desc{font-size:13px;color:rgba(255,255,255,.85);margin-bottom:12px;position:relative;z-index:2}
.plan-stats{display:flex;gap:18px;flex-wrap:wrap;position:relative;z-index:2}
.plan-stats span{font-size:12px;color:rgba(255,255,255,.75)}
.plan-stats b{font-size:18px;color:#F2DEB0;margin-right:3px}
.plans-hero{color:#fff;border-radius:18px;padding:34px 34px;margin:22px 0 16px;position:relative;overflow:hidden;border:1px solid rgba(201,160,99,.4);box-shadow:0 10px 30px -14px rgba(10,44,72,.6)}
.plans-hero:after{content:"";position:absolute;right:-80px;top:-80px;width:300px;height:300px;border-radius:50%;border:2px dashed rgba(201,160,99,.35);background:rgba(201,160,99,.08)}
.plans-hero.zh{background:radial-gradient(120% 160% at 12% 0%,#1B5A8F 0%,#0F3B5F 45%,#0A2C48 100%)}
.plans-hero.xh{background:radial-gradient(120% 160% at 12% 0%,#9A2B3A 0%,#7A1F2B 45%,#5B1620 100%)}
.plans-hero-tag{display:inline-block;font-size:12px;letter-spacing:3px;color:#F2DEB0;border:1px solid rgba(201,160,99,.55);border-radius:20px;padding:3px 14px;margin-bottom:12px;background:rgba(10,44,72,.35);position:relative;z-index:2}
.plans-hero h2{font-size:28px;margin-bottom:10px;position:relative;z-index:2;font-weight:800}
.plans-hero h2 .gold{background:linear-gradient(120deg,#F2DEB0,#C9A063 60%,#E8D5AE);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.plans-hero p{color:rgba(255,255,255,.88);margin-bottom:18px;position:relative;z-index:2;max-width:680px}
.plans-hero-meta{display:flex;gap:30px;position:relative;z-index:2;flex-wrap:wrap}
.plans-hero-meta div{display:flex;flex-direction:column}
.plans-hero-meta b{font-size:24px;color:#F2DEB0}
.plans-hero-meta span{font-size:12px;color:rgba(255,255,255,.7);margin-top:2px}
.plans-tabs{display:flex;gap:10px;margin-bottom:18px;flex-wrap:wrap}
.plans-tab{display:inline-flex;align-items:center;gap:8px;padding:9px 18px;border-radius:24px;border:1px solid var(--line);background:#fff;color:var(--text-2);font-size:14px;cursor:pointer;transition:all .15s ease}
.plans-tab b{font-size:13px;color:var(--wine)}
.plans-tab.on{background:linear-gradient(120deg,#0F3B5F,#123A66);color:#fff;border-color:#0F3B5F;box-shadow:0 4px 12px -4px rgba(15,59,95,.5)}
.plans-tab.on b{color:#F2DEB0}
.svc-card{background:var(--card);border-radius:12px;box-shadow:var(--shadow);padding:16px;border:1px solid rgba(233,225,214,.55);transition:transform .15s ease}
.svc-card:hover{transform:translateY(-2px)}
.svc-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.svc-cat{font-size:11px;color:var(--wine);border:1px solid rgba(122,31,43,.3);border-radius:4px;padding:1px 8px;background:rgba(122,31,43,.06)}
.svc-name{font-size:15px;font-weight:700;margin-bottom:6px}
.svc-intro{font-size:12px;color:var(--text-2);margin-bottom:10px;line-height:1.6}
.svc-meta{display:flex;justify-content:space-between;font-size:12px;color:var(--text-2);border-top:1px dashed var(--line);padding-top:8px}
.svc-price{color:var(--wine);font-weight:700}
/* ============ 星火燎原 · 达人专区 ============ */
.xh-toolbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:6px 0 16px}
.xh-search{display:flex;gap:8px;flex:1;min-width:240px}
.xh-search input{flex:1;border:1px solid var(--line);border-radius:20px;padding:9px 16px;font-size:13px;outline:none;background:#fff}
.xh-search input:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,160,99,.16)}
.xh-chips{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.chip-on{background:var(--grad-wine);color:#fff;border-color:var(--wine);box-shadow:0 2px 8px rgba(122,31,43,.22)}
.btn-xs{padding:5px 13px;font-size:12px;border-radius:16px}
.inf-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:9px;transition:.2s;box-shadow:0 3px 12px -8px rgba(10,44,72,.12)}
.inf-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px -12px rgba(10,44,72,.22);border-color:var(--gold)}
.inf-top{display:flex;align-items:center;gap:11px}
.inf-avatar{width:48px;height:48px;border-radius:50%;overflow:hidden;background:linear-gradient(135deg,#7A1F2B,#9A2B3A);color:#F2DEB0;font-size:20px;font-weight:700;display:flex;align-items:center;justify-content:center;flex:0 0 48px;border:1px solid rgba(201,160,99,.45)}
.inf-avatar img{width:100%;height:100%;object-fit:cover}
.inf-who{flex:1;min-width:0}
.inf-name{font-weight:700;font-size:15px;color:var(--text-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.plat-badge{display:inline-block;font-size:11px;font-weight:600;color:var(--wine);background:rgba(122,31,43,.08);border:1px solid rgba(122,31,43,.15);padding:1px 8px;border-radius:11px;margin-left:5px;vertical-align:1px}
.inf-fans{font-size:12px;color:var(--text-2);margin-top:3px}
.inf-state{font-size:11px;font-weight:600;padding:3px 10px;border-radius:12px;flex:0 0 auto;white-space:nowrap}
.st-joined{background:#E7F6EC;color:#1E7A46;border:1px solid #BFE8CD}
.st-claimed{background:#E8F1FB;color:#1D5E96;border:1px solid #C4DCF2}
.st-invited{background:#FBF3DF;color:#9A6B18;border:1px solid #EFDCAB}
.st-opened{background:#F3EEF9;color:#6A3E9E;border:1px solid #D9C9EF}
.st-untouched{background:#F3F3F3;color:#7A7A7A;border:1px solid #E2E2E2}
.inf-cats{display:flex;gap:6px;flex-wrap:wrap}
.inf-cats span{font-size:11px;color:#7A5A28;background:#FBF6EC;border:1px solid #E8D5AE;padding:2px 9px;border-radius:11px}
.inf-intro{font-size:12px;color:var(--text-2);line-height:1.6;min-height:38px}
.inf-meta{display:flex;align-items:center;gap:8px;border-top:1px dashed var(--line-soft);padding-top:9px;flex-wrap:wrap}
.inf-src{font-size:11px;color:#8C2433;background:rgba(140,36,51,.07);padding:2px 9px;border-radius:10px;border:1px solid rgba(140,36,51,.15)}
.inf-mcn{font-size:11px;color:#1D5E96;background:rgba(29,94,150,.07);padding:2px 9px;border-radius:10px;border:1px solid rgba(29,94,150,.15)}
.inf-grade{font-size:11px;color:var(--text-2);margin-left:auto}
.xh-note{margin-top:18px;border-left:4px solid var(--gold-deep)}
.xh-note-t{color:var(--wine-deep);font-size:14px}
.xh-note p{color:var(--text-2);font-size:12px;line-height:1.9;margin-top:8px}
/* 星火燎原 · 双板块 Tab */
.xh-tabs{display:flex;gap:8px;margin:4px 0 16px;border-bottom:1px solid var(--line);padding-bottom:10px}
.xh-tab{font-size:14px;font-weight:600;color:var(--text-2);padding:8px 22px;border-radius:20px;cursor:pointer;transition:.2s;border:1px solid transparent}
.xh-tab:hover{color:var(--wine)}
.xh-tab.on{color:#fff;background:var(--grad-wine);border-color:var(--wine);box-shadow:0 2px 10px rgba(122,31,43,.25)}
/* 电商产品卡片 */
.ecom-card{display:flex;flex-direction:column;overflow:hidden;padding:0}
.ecom-img{height:150px;overflow:hidden;background:#F7F5F0;border-bottom:1px solid var(--line-soft)}
.ecom-img img{width:100%;height:100%;object-fit:cover}
.ecom-info{display:flex;flex-direction:column;gap:7px;padding:13px 15px 15px}
.ecom-name{font-weight:700;font-size:14px;color:var(--text-1);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ecom-brand{font-size:12px;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ecom-price{font-weight:800;font-size:17px;color:var(--wine)}
.ecom-shops{display:flex;gap:6px;flex-wrap:wrap}
.ecom-shop{display:inline-flex;align-items:center;gap:5px;font-size:11px;border:1px solid var(--line);border-radius:12px;padding:3px 9px;color:var(--text-2);background:#FAFAF7;text-decoration:none;transition:.15s}
.ecom-shop:hover{border-color:var(--gold);color:var(--wine-deep)}
.ecom-plat{font-weight:700;color:var(--wine)}
.ecom-sname{max-width:120px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ecom-actions{display:flex;gap:8px;margin-top:2px}
@media(max-width:900px){.grid-3{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.grid-3{grid-template-columns:1fr}}

/* ============================================================
   页面统一美化 P2（登录/个人中心/智能撮合/合作台账/发布需求/服务市场）
   ============================================================ */
/* 页头 Banner：深红渐变 + 金色点缀 */
.pg-head{background:linear-gradient(135deg,#9A2B3A 0%,#7A1F2B 46%,#4E1119 100%);border-radius:16px;padding:24px 30px;color:#fff;margin-bottom:16px;position:relative;overflow:hidden;border:1px solid rgba(201,160,99,.38);box-shadow:0 8px 24px -10px rgba(74,14,22,.4)}
.pg-head:before{content:"";position:absolute;right:-26px;top:-36px;width:180px;height:180px;background:radial-gradient(circle,rgba(214,169,95,.34),transparent 70%);pointer-events:none}
.pg-head:after{content:"";position:absolute;left:38%;bottom:-52px;width:150px;height:150px;background:radial-gradient(circle,rgba(255,255,255,.07),transparent 70%);pointer-events:none}
.pg-head .pg-kick{font-size:11px;letter-spacing:2.6px;opacity:.82;margin-bottom:6px;color:#E8C98A;font-weight:700}
.pg-head .pg-title{font-size:23px;font-weight:800;letter-spacing:1px;display:flex;align-items:center;gap:10px;color:#FFF8EC}
.pg-head .pg-title .bar{width:5px;height:20px;background:var(--grad-gold);border-radius:3px;box-shadow:0 0 10px rgba(201,160,99,.65)}
.pg-head .pg-sub{font-size:12.5px;opacity:.86;margin-top:7px;line-height:1.7;max-width:660px}
.pg-head .pg-actions{position:relative;z-index:2;display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
/* 升级卡片：金色顶边 */
.pg-card{background:#fff;border-radius:16px;box-shadow:var(--shadow);padding:20px;margin-bottom:16px;border:1px solid rgba(233,225,214,.6);border-top:3px solid var(--gold);transition:.22s}
.pg-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-1px)}
.pg-card h3{font-size:16px;margin-bottom:13px;display:flex;align-items:center;gap:8px;font-weight:700;color:var(--wine-deep)}
.pg-card h3 .bar{width:4px;height:17px;background:var(--grad-gold);border-radius:2px;display:inline-block;box-shadow:0 0 6px rgba(201,160,99,.55)}
.pg-card h3 .pg-hint{font-size:12px;color:var(--text-2);font-weight:500}
/* 表格升级：深红渐变表头 */
.pg-card table{width:100%;border-collapse:separate;border-spacing:0;font-size:13.5px}
.pg-card table th{background:linear-gradient(135deg,#7A1F2B,#5C141D);color:#F2E3C4;padding:10px 14px;text-align:left;font-weight:700;letter-spacing:.5px;border:none;white-space:nowrap}
.pg-card table th:first-child{border-radius:10px 0 0 10px}
.pg-card table th:last-child{border-radius:0 10px 10px 0}
.pg-card table td{padding:10px 14px;border-bottom:1px solid var(--line-soft);color:var(--text)}
.pg-card table tr:last-child td{border-bottom:none}
.pg-card table tr:hover td{background:#FBF7F0}
/* 表单升级：金色标签条 */
.pg-form .form-row{margin-bottom:14px}
.pg-form .form-row label{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-2);margin-bottom:7px;font-weight:600}
.pg-form .form-row label:before{content:"";width:4px;height:13px;background:var(--grad-gold);border-radius:2px;flex:none}
.pg-form .form-row input,.pg-form .form-row select,.pg-form .form-row textarea{background:#FDFCFA;border-radius:11px}
.pg-form .form-row input:focus,.pg-form .form-row select:focus,.pg-form .form-row textarea:focus{background:#fff}
/* 统计卡微升级 */
.stat-box{border-top:3px solid var(--gold)}
/* 登录/注册：左右分栏品牌面板 */
.login-wrap{max-width:940px;margin:28px auto 12px}
.login-panel{display:flex;border-radius:22px;overflow:hidden;background:#fff;box-shadow:0 14px 44px -16px rgba(74,14,22,.32),0 3px 12px rgba(90,50,30,.07);border:1px solid rgba(201,160,99,.42)}
.login-left{flex:0 0 44%;background:radial-gradient(130% 150% at 8% 0%,#9A2B3A 0%,#7A1F2B 46%,#4A0E16 100%);color:#fff;padding:44px 34px;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;min-height:540px;border-right:1px solid rgba(201,160,99,.28)}
.login-left:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 88% 14%,rgba(201,160,99,.34),transparent 40%),radial-gradient(circle at 10% 96%,rgba(201,160,99,.16),transparent 42%);pointer-events:none}
.login-left .lg-logo{display:flex;align-items:center;gap:11px;position:relative;z-index:1}
.login-left .lg-logo img{width:52px;height:52px;border-radius:12px;background:#fff;object-fit:contain;box-shadow:0 4px 16px rgba(0,0,0,.35),inset 0 0 0 1px rgba(201,160,99,.45);flex:none}
.login-left .lg-logo .lg-name{font-size:18px;font-weight:900;letter-spacing:1px;color:#F2DEB0;text-shadow:0 2px 12px rgba(0,0,0,.5);line-height:1.2}
.login-left .lg-logo .b2{font-size:10px;background:linear-gradient(135deg,#F2DEB0,#C9A063 55%,#A87E3F);color:#3E0B12;padding:2.5px 9px;border-radius:7px;font-weight:900;letter-spacing:.8px;box-shadow:0 2px 10px rgba(168,126,63,.5);flex:none}
.login-left .lg-hero h1{font-size:29px;font-weight:900;letter-spacing:1.5px;line-height:1.3;color:#FFF8EC;text-shadow:0 3px 18px rgba(0,0,0,.45);margin:0}
.login-left .lg-hero .slogan{font-size:13.5px;color:rgba(255,255,255,.85);letter-spacing:1px;line-height:1.8;margin-top:9px}
.login-left .lg-points{margin-top:22px;display:flex;flex-direction:column;gap:13px;position:relative;z-index:1}
.login-left .lg-point{display:flex;align-items:center;gap:10px;font-size:13.5px;color:rgba(255,255,255,.95);line-height:1.5}
.login-left .lg-point i{width:27px;height:27px;border-radius:8px;background:linear-gradient(135deg,#F2DEB0,#C9A063 55%,#B08A4E);color:#4A0E16;font-style:normal;font-weight:900;font-size:13px;display:flex;align-items:center;justify-content:center;box-shadow:0 3px 10px rgba(168,126,63,.5);flex:none}
.login-left .lg-foot{border-top:1px solid rgba(242,222,176,.3);padding-top:14px;margin-top:18px;font-size:11.5px;color:rgba(255,255,255,.72);line-height:1.8;position:relative;z-index:1}
.login-right{flex:1;padding:46px 48px;display:flex;flex-direction:column;justify-content:center;background:linear-gradient(180deg,#FFFEFC,#FBF8F3)}
.login-right .lg-title{font-size:22px;font-weight:800;color:var(--wine-deep);letter-spacing:1px;display:flex;align-items:center;gap:10px}
.login-right .lg-title .bar{width:5px;height:20px;background:var(--grad-gold);border-radius:3px;box-shadow:0 0 8px rgba(201,160,99,.55)}
.login-right .lg-tabs{display:flex;gap:8px;margin:18px 0 20px}
.login-right .lg-tabs span{padding:8px 22px;border-radius:20px;font-size:13.5px;cursor:pointer;border:1px solid var(--line);color:var(--text-2);background:#fff;transition:.2s;font-weight:600}
.login-right .lg-tabs span:hover{border-color:var(--gold);color:var(--wine)}
.login-right .lg-tabs span.on{background:var(--grad-wine);color:#fff;border-color:var(--wine);box-shadow:0 3px 10px rgba(122,31,43,.28)}
.login-right .lg-opt{display:flex;gap:10px;margin-top:14px}
.login-right .lg-opt .btn{flex:1;padding:11px 0;font-size:13.5px}
.login-right .lg-agree{display:flex;gap:6px;align-items:center;margin:15px 0 4px;font-size:12px;color:var(--text-2);cursor:pointer;flex-wrap:wrap}
.login-right .lg-agree a{color:var(--wine);text-decoration:underline}
.login-right .lg-demo{margin-top:15px;text-align:center;font-size:12px;color:var(--text-2);background:#FDFCFA;border:1px dashed var(--line);border-radius:11px;padding:10px 14px;line-height:1.8}
.login-right .lg-demo b{color:var(--wine)}
.login-right .form-row{margin-bottom:14px}
.login-right .form-row label{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-2);margin-bottom:7px;font-weight:600}
.login-right .form-row label:before{content:"";width:4px;height:13px;background:var(--grad-gold);border-radius:2px;flex:none}
@media(max-width:800px){.login-left{display:none}.login-right{padding:32px 26px}.login-wrap{max-width:560px}}

/* ============================================================
   登录/注册页 · 左右分栏品牌面板（酒红 × 鎏金）
   ============================================================ */
.login-wrap{max-width:940px;margin:30px auto 12px}
.login-panel{display:flex;border-radius:22px;overflow:hidden;background:#fff;box-shadow:0 14px 44px -16px rgba(74,14,22,.34),0 3px 12px rgba(90,50,30,.08);border:1px solid rgba(201,160,99,.4)}
.login-left{flex:0 0 44%;background:radial-gradient(130% 150% at 8% 0%,#9A2B3A 0%,#7A1F2B 46%,#4A0E16 100%);color:#fff;padding:40px 34px 34px;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;min-height:540px}
.login-left:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 88% 14%,rgba(201,160,99,.35),transparent 42%),radial-gradient(circle at 10% 94%,rgba(201,160,99,.18),transparent 44%);pointer-events:none}
.login-left:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,transparent,var(--gold) 30%,#F2DEB0 50%,var(--gold) 70%,transparent);opacity:.75}
.lg-logo{display:flex;align-items:center;gap:11px;position:relative}
.lg-logo img{width:50px;height:50px;border-radius:12px;background:#fff;object-fit:contain;box-shadow:0 4px 16px rgba(0,0,0,.38),inset 0 0 0 1px rgba(201,160,99,.5);flex:none}
.lg-logo b{font-size:18px;font-weight:900;letter-spacing:1.2px;color:#F2DEB0;text-shadow:0 2px 12px rgba(0,0,0,.5);line-height:1.2}
.lg-logo .b2{font-size:10px;background:linear-gradient(135deg,#F2DEB0,#C9A063 55%,#A87E3F);color:#3E0B12;padding:2.5px 8px;border-radius:7px;font-weight:900;letter-spacing:.8px;box-shadow:0 2px 10px rgba(168,126,63,.5),inset 0 1px 0 rgba(255,255,255,.55);flex:none}
.login-left h1{font-size:29px;font-weight:900;letter-spacing:2px;line-height:1.3;color:#FFF8EC;text-shadow:0 3px 18px rgba(0,0,0,.45);margin-top:16px}
.login-left .slogan{font-size:13.5px;color:rgba(255,255,255,.88);letter-spacing:1px;line-height:1.75;margin-top:10px}
.lg-points{margin-top:24px;display:flex;flex-direction:column;gap:14px}
.lg-point{display:flex;align-items:center;gap:11px;font-size:13.5px;color:rgba(255,255,255,.95);line-height:1.5;letter-spacing:.3px}
.lg-point i{width:27px;height:27px;border-radius:8px;background:linear-gradient(135deg,#F2DEB0,#C9A063 55%,#B08A4E);color:#4A0E16;font-style:normal;font-weight:900;font-size:13px;display:flex;align-items:center;justify-content:center;box-shadow:0 3px 10px rgba(168,126,63,.45);flex:none}
.lg-foot{border-top:1px solid rgba(242,222,176,.28);padding-top:13px;margin-top:20px;font-size:11.5px;color:rgba(255,255,255,.7);line-height:1.75;position:relative}
.login-right{flex:1;padding:44px 46px;display:flex;flex-direction:column;justify-content:center;background:linear-gradient(180deg,#FFFEFB 0%,#FBF8F2 100%)}
.lg-title{font-size:22px;font-weight:800;color:var(--wine-deep);letter-spacing:1px;display:flex;align-items:center;gap:10px}
.lg-title .bar{width:5px;height:20px;background:var(--grad-gold);border-radius:3px;box-shadow:0 0 8px rgba(201,160,99,.5);display:inline-block}
.lg-tabs{display:flex;gap:8px;margin:20px 0 22px}
.lg-tabs span{padding:7px 20px;border-radius:20px;font-size:13.5px;cursor:pointer;border:1px solid var(--line);color:var(--text-2);background:#fff;transition:.2s;font-weight:600}
.lg-tabs span:hover{border-color:var(--gold);color:var(--wine)}
.lg-tabs span.on{background:var(--grad-wine);color:#fff;border-color:var(--wine);box-shadow:0 3px 10px rgba(122,31,43,.28);font-weight:700}
.lg-agree{display:flex;gap:6px;align-items:center;margin:14px 0 4px;font-size:12px;color:var(--text-2);cursor:pointer;flex-wrap:wrap;line-height:1.6}
.lg-agree a{color:var(--wine);text-decoration:underline;cursor:pointer}
.lg-opt{display:flex;gap:10px;margin-top:16px}
.lg-opt .btn{flex:1;padding:10px 0;font-size:13.5px}
.lg-demo{margin-top:18px;text-align:center;font-size:12px;color:var(--text-2);background:var(--bg-2);border:1px dashed #D9CDBB;border-radius:12px;padding:10px 14px;line-height:1.8}
.lg-demo b{color:var(--wine);font-weight:700}
@media(max-width:760px){.login-left{display:none}.login-right{padding:32px 26px}.login-wrap{margin:18px auto 10px}}

/* ============================================================
   服务市场 · 服务商卡片（展商端/采购商端统一 2026-10-02）
   ============================================================ */
.svc-card{background:#fff;border-radius:16px;box-shadow:var(--shadow);border:1px solid rgba(233,225,214,.6);padding:18px;display:flex;flex-direction:column;gap:10px;transition:.22s;position:relative;overflow:hidden;height:100%}
.svc-card:before{content:"";position:absolute;left:0;top:0;right:0;height:3px;background:linear-gradient(90deg,var(--gold),#F2DEB0 50%,var(--gold));opacity:.85}
.svc-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:rgba(201,160,99,.55)}
.svc-head{display:flex;gap:12px;align-items:center}
.svc-ico{width:46px;height:46px;border-radius:13px;background:linear-gradient(135deg,#9A2B3A,#7A1F2B);color:#F2DEB0;font-size:20px;font-weight:900;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px rgba(122,31,43,.28),inset 0 1px 0 rgba(255,255,255,.14);flex:none;letter-spacing:0}
.svc-name{font-size:15.5px;font-weight:800;color:var(--wine-deep);line-height:1.35;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.svc-tags{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap}
.svc-intro{font-size:12.5px;color:var(--text-2);line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:40px}
.svc-price{font-size:19px;font-weight:900;color:#A87E3F;line-height:1.2;letter-spacing:.3px;padding:4px 12px;background:linear-gradient(135deg,#FBF5E8,#F5EBD2);border:1px solid #EAD9B4;border-radius:10px;display:inline-block;align-self:flex-start}
.svc-price small{font-size:11px;font-weight:600;color:var(--text-3,#999);letter-spacing:0}
.svc-prov{font-size:12px;color:var(--text-2);background:#FBF7F0;border:1px dashed #E5D8C3;border-radius:9px;padding:7px 10px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.svc-actions{display:flex;gap:8px;margin-top:2px}
.svc-actions .btn{flex:1;justify-content:center}
.svc-meta-line{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:12px;color:var(--text-2)}
.svc-meta-line b{color:var(--wine);font-weight:700}

/* ============================================================
   广告位 Banner（用户端全站统一 2026-10-03）
   ============================================================ */
.ad-banner{position:relative;border-radius:16px;overflow:hidden;margin-bottom:16px;box-shadow:0 8px 24px -10px rgba(74,14,22,.4);border:1px solid rgba(201,160,99,.38);background-size:cover;background-position:center;min-height:250px;display:flex;align-items:center;transition:.2s;cursor:pointer}
.ad-banner:hover{box-shadow:0 12px 30px -10px rgba(74,14,22,.5);border-color:rgba(201,160,99,.7)}
.ad-banner .ad-mask{position:absolute;inset:0;background:linear-gradient(90deg,rgba(58,9,17,.92) 0%,rgba(58,9,17,.64) 36%,rgba(58,9,17,.18) 68%,rgba(58,9,17,0) 100%)}
.ad-banner .ad-copy{position:relative;z-index:2;padding:30px 36px;max-width:62%}
.ad-banner .ad-kick{font-size:11px;letter-spacing:2.6px;color:#E8C98A;font-weight:700;margin-bottom:9px;display:flex;align-items:center;gap:8px}
.ad-banner .ad-kick i{width:22px;height:22px;border-radius:7px;background:linear-gradient(135deg,#D6A95F,#C9A063);display:inline-flex;align-items:center;justify-content:center;font-style:normal;font-size:11px;color:#fff;font-weight:800}
.ad-banner .ad-title{font-size:32px;font-weight:800;letter-spacing:1px;color:#FFF8EC;text-shadow:0 2px 10px rgba(0,0,0,.35);margin-bottom:8px;line-height:1.15}
.ad-banner .ad-sub{font-size:13.5px;color:#F2DEB0;opacity:.94;line-height:1.6;max-width:540px}
.ad-banner .ad-go{margin-top:16px;display:inline-flex;align-items:center;gap:6px;padding:8px 18px;background:linear-gradient(135deg,#D6A95F,#C9A063);color:#fff;font-size:12.5px;font-weight:700;border-radius:999px;box-shadow:0 3px 10px rgba(201,160,99,.35)}
.ad-banner .ad-tag{position:absolute;right:12px;bottom:10px;background:rgba(20,6,10,.55);color:#F2DEB0;font-size:11px;font-weight:700;padding:2px 9px;border-radius:12px;letter-spacing:1px;border:1px solid rgba(242,222,176,.4);z-index:2}
@media(max-width:700px){.ad-banner{min-height:150px}.ad-banner .ad-copy{padding:16px 18px;max-width:78%}.ad-banner .ad-title{font-size:21px}.ad-banner .ad-sub{font-size:11.5px}.ad-banner .ad-go{margin-top:10px;padding:6px 14px;font-size:11px}}

