:root{
  --bg:#070b14; --bg2:#0b1120;
  --panel:rgba(18,26,42,0.72); --panel2:rgba(30,40,62,0.8); --panel-solid:#121a2a;
  --line:rgba(120,160,255,0.16); --line2:rgba(120,160,255,0.28);
  --txt:#e8edf7; --muted:#93a0bd;
  --brand:#00e5a0; --brand2:#22d3ee; --purple:#a855f7; --blue:#3b82f6;
  --red:#ff5c6c; --amber:#ffb020; --ok:#36e08a;
  --chip:rgba(40,52,80,0.7);
  --glow:0 0 18px rgba(0,229,160,0.25);
  --radius:14px;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:
    radial-gradient(1200px 600px at 15% -10%, rgba(34,211,238,0.10), transparent 60%),
    radial-gradient(1000px 500px at 100% 0%, rgba(168,85,247,0.10), transparent 55%),
    linear-gradient(180deg,var(--bg),var(--bg2));
  background-attachment:fixed;
  color:var(--txt);
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;
  font-size:14px;line-height:1.65;min-height:100vh;
}
/* 科技感网格底纹 */
body::before{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.5;
  background-image:
    linear-gradient(rgba(120,160,255,0.05) 1px,transparent 1px),
    linear-gradient(90deg,rgba(120,160,255,0.05) 1px,transparent 1px);
  background-size:42px 42px;
  mask-image:radial-gradient(circle at 50% 30%,#000 0%,transparent 80%);
}
a{color:var(--brand2);text-decoration:none;}
a:hover{text-decoration:underline;}

/* ===== 顶栏 ===== */
.topbar{
  height:60px;background:rgba(10,15,26,0.82);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px;
  padding:0 18px;position:sticky;top:0;z-index:30;
  box-shadow:0 1px 0 rgba(120,160,255,0.08),0 6px 24px rgba(0,0,0,0.35);
}
.topbar .logo{font-weight:800;font-size:17px;letter-spacing:.5px;white-space:nowrap;
  background:linear-gradient(90deg,var(--brand),var(--brand2));-webkit-background-clip:text;background-clip:text;color:transparent;}
.topbar .logo small{color:var(--brand);-webkit-text-fill-color:var(--brand);font-weight:600;font-size:12px;}
.topbar .nav{margin-left:18px;display:flex;gap:6px;flex:1;flex-wrap:wrap;align-items:center;}
.topbar .nav a{padding:7px 13px;border-radius:10px;color:var(--muted);font-size:13px;transition:.18s;white-space:nowrap;}
.topbar .nav a.active,.topbar .nav a:hover{background:linear-gradient(90deg,rgba(0,229,160,0.18),rgba(34,211,238,0.18));color:#fff;text-decoration:none;box-shadow:var(--glow);}
.topbar .right{margin-left:auto;color:var(--muted);font-size:13px;display:flex;gap:14px;align-items:center;white-space:nowrap;}
.topbar .right .uname{color:var(--txt);}
.topbar .right a.reg-link{border:1px solid var(--line2);padding:4px 10px;border-radius:8px;}
.menu-btn{display:none;background:var(--chip);border:1px solid var(--line);color:var(--txt);
  font-size:18px;border-radius:10px;width:40px;height:40px;cursor:pointer;}
/* 登录页极简头部：仅 Logo，无导航/用户信息 */
.topbar.minimal{justify-content:center;gap:0;}
.topbar.minimal .menu-btn{display:none;}
/* 客户端：普通客户免登录，仅代理回登用的极简入口 */
.login-mini{color:var(--muted);font-size:13px;border:1px solid var(--line);padding:5px 12px;border-radius:8px;}
.login-mini:hover{color:var(--brand);border-color:var(--brand);}

.announce{position:relative;z-index:2;display:flex;align-items:center;gap:10px;margin:0 auto 16px;max-width:1180px;padding:11px 44px 11px 16px;border-radius:12px;
  background:linear-gradient(90deg,rgba(0,229,160,0.12),rgba(94,160,255,0.12));border:1px solid rgba(0,229,160,0.35);
  color:var(--txt);font-size:13.5px;line-height:1.5;overflow:hidden;}
.announce::before{content:"📢";font-size:15px;}
.announce .announce-txt{flex:1;word-break:break-word;}
.announce .announce-close{position:absolute;top:6px;right:10px;border:none;background:transparent;color:var(--muted);font-size:18px;line-height:1;cursor:pointer;padding:4px;}
.announce .announce-close:hover{color:var(--brand);}
.wrap{position:relative;z-index:1;max-width:1180px;margin:24px auto;padding:0 18px;}

/* ===== 通用卡片/栅格 ===== */
.grid{display:grid;gap:16px;}
.row{display:flex;gap:14px;flex-wrap:wrap;}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px;
  backdrop-filter:blur(8px);box-shadow:0 8px 30px rgba(0,0,0,0.25);}
.card h3{margin:0 0 12px;font-size:15px;}
.stat{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;
  position:relative;overflow:hidden;}
.stat::after{content:"";position:absolute;right:-20px;top:-20px;width:80px;height:80px;border-radius:50%;
  background:radial-gradient(circle,rgba(0,229,160,0.18),transparent 70%);}
.stat .n{font-size:26px;font-weight:800;background:linear-gradient(90deg,var(--brand),var(--brand2));
  -webkit-background-clip:text;background-clip:text;color:transparent;}
.stat .l{color:var(--muted);font-size:13px;margin-top:4px;}

/* ===== 表格 ===== */
table{width:100%;border-collapse:collapse;background:var(--panel);border-radius:var(--radius);overflow:hidden;}
th,td{padding:11px 12px;text-align:left;border-bottom:1px solid var(--line);font-size:13px;}
th{background:var(--panel2);color:var(--muted);font-weight:600;}
tr:hover td{background:rgba(34,211,238,0.05);}
.badge{display:inline-block;padding:2px 10px;border-radius:20px;font-size:12px;background:var(--chip);color:var(--txt);}
.badge.ok{background:rgba(54,224,138,0.16);color:var(--ok);}
.badge.warn{background:rgba(255,176,32,0.16);color:var(--amber);}
.badge.off{background:rgba(255,92,108,0.16);color:var(--red);}
.badge.agent{background:linear-gradient(90deg,rgba(0,229,160,0.2),rgba(34,211,238,0.2));color:var(--brand);border:1px solid rgba(0,229,160,0.4);}

/* ===== 按钮 ===== */
.btn{display:inline-block;padding:9px 16px;border-radius:10px;border:1px solid var(--line2);
  background:var(--chip);color:var(--txt);font-size:13px;cursor:pointer;transition:.18s;text-align:center;}
.btn:hover{text-decoration:none;transform:translateY(-1px);box-shadow:var(--glow);}
.btn.primary{background:linear-gradient(90deg,var(--brand),var(--brand2));border-color:transparent;color:#04231a;font-weight:700;}
.btn.blue{background:linear-gradient(90deg,var(--blue),var(--brand2));border-color:transparent;color:#fff;font-weight:700;}
.btn.danger{background:rgba(255,92,108,0.14);border-color:var(--red);color:var(--red);}
.btn.sm{padding:5px 11px;font-size:12px;}
.btn.agent-open{background:linear-gradient(90deg,var(--purple),var(--brand2));border-color:transparent;color:#fff;font-weight:700;}
.btn.agent-open.on{background:rgba(54,224,138,0.16);color:var(--ok);border:1px solid rgba(54,224,138,0.4);}

input,select,textarea{width:100%;padding:9px 11px;border-radius:10px;border:1px solid var(--line2);
  background:var(--panel2);color:var(--txt);font-size:14px;outline:none;transition:.15s;}
input:focus,select:focus,textarea:focus{border-color:var(--brand2);box-shadow:0 0 0 3px rgba(34,211,238,0.15);}
label{display:block;color:var(--muted);font-size:13px;margin:10px 0 5px;}
.form{max-width:460px;}
.muted{color:var(--muted);}
.center{text-align:center;}
.mt{margin-top:16px;} .mb{margin-bottom:16px;}
.alert{padding:12px 14px;border-radius:10px;margin-bottom:14px;font-size:13px;}
.alert.ok{background:rgba(54,224,138,0.12);color:var(--ok);border:1px solid rgba(54,224,138,0.3);}
.alert.err{background:rgba(255,92,108,0.12);color:var(--red);border:1px solid rgba(255,92,108,0.3);}
.alert.warn{background:rgba(255,176,32,0.12);color:var(--amber);border:1px solid rgba(255,176,32,0.3);}

/* ===== 标题 ===== */
.page-title{font-size:22px;font-weight:800;margin:4px 0 16px;
  background:linear-gradient(90deg,#fff,var(--brand2));-webkit-background-clip:text;background-clip:text;color:transparent;}

/* ===== 商品网格（客户端）===== */
.tag-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:10px 0 18px;}
.tag-label{font-size:12px;color:var(--muted);letter-spacing:2px;font-weight:700;margin-right:2px;}
.pill{position:relative;display:inline-flex;align-items:center;gap:8px;padding:8px 16px 8px 14px;
  background:linear-gradient(180deg,rgba(30,40,62,.72),rgba(18,26,42,.72));
  border:1px solid var(--line2);border-radius:7px;color:var(--muted);
  font-size:13px;font-weight:700;letter-spacing:1px;
  clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,10px 100%,0 calc(100% - 10px));
  transition:.18s;cursor:pointer;}
.pill::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--brand2);box-shadow:0 0 10px var(--brand2);flex:none;transition:.18s;}
.pill:hover{text-decoration:none;color:#fff;border-color:var(--brand2);box-shadow:0 0 16px rgba(34,211,238,.32);transform:translateY(-2px);}
.pill:hover::before{background:var(--brand);box-shadow:0 0 12px var(--brand);}
.pill.active{background:linear-gradient(90deg,rgba(0,229,160,.95),rgba(34,211,238,.95));color:#06281a;border-color:transparent;box-shadow:0 0 22px rgba(0,229,160,.45);}
.pill.active::before{background:#06281a;box-shadow:none;}
.products{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px;}
.pcard{position:relative;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  padding:16px;display:flex;flex-direction:column;overflow:hidden;transition:.2s;}
.pcard:hover{transform:translateY(-4px);border-color:var(--brand2);box-shadow:0 12px 36px rgba(34,211,238,0.18);}
.pcard .ribbon{position:absolute;top:10px;right:-28px;transform:rotate(45deg);background:linear-gradient(90deg,var(--purple),var(--brand2));
  color:#fff;font-size:11px;font-weight:700;padding:2px 32px;box-shadow:var(--glow);}
.pcard .name{font-weight:700;font-size:15px;}
.pcard .desc{color:var(--muted);font-size:12px;flex:1;margin:8px 0;line-height:1.6;}
.pcard .price{color:var(--amber);font-size:20px;font-weight:800;margin:6px 0;}
/* 首页商品卡：标题/价格/库存/购买 为「商品模块」，下方独立「商品描述」区域做视觉分区 */
.pcard-main{display:flex;flex-direction:column;gap:8px;}
.pcard-desc{margin-top:14px;padding-top:12px;border-top:1px dashed var(--line);
  background:rgba(10,16,28,0.4);border-radius:10px;padding:10px 12px;margin-left:-2px;margin-right:-2px;}
.pcard-desc-label{font-size:11px;letter-spacing:2px;color:var(--brand2);font-weight:700;margin-bottom:4px;}
.pcard-desc-text{font-size:12px;color:var(--muted);line-height:1.7;word-break:break-word;}
/* 首页商品卡：描述默认折叠 2–3 行，超出隐藏，点击展开全部 */
.pcard-desc-text.desc-fold{position:relative;max-height:5.1em;overflow:hidden;transition:max-height .25s ease;}
.pcard-desc-text.desc-fold.expanded{max-height:2000px;}
.pcard-desc-text.desc-fold:not(.expanded)::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1.8em;
  background:linear-gradient(transparent,rgba(12,18,30,0.96));pointer-events:none;}
.pcard-desc-more{display:inline-block;margin-top:6px;background:none;border:none;color:var(--brand2);
  cursor:pointer;font-size:12px;font-weight:600;letter-spacing:.5px;padding:0;transition:.15s;}
.pcard-desc-more:hover{color:var(--brand);}
.pcard-desc-more[hidden]{display:none;}
.product-detail .price{font-size:26px;}
/* 商品详情：默认折叠，点击后展开完整信息 */
.product-detail .pd-head{display:flex;flex-direction:column;gap:12px;padding:6px 0 14px;}
.product-detail .pd-price{font-size:30px;font-weight:800;color:var(--amber);}
.product-detail .pd-cta{display:flex;gap:10px;flex-wrap:wrap;}
.product-detail .pd-full{padding-top:16px;margin-top:4px;border-top:1px dashed var(--line);}

/* ===== 代理横幅 ===== */
.agent-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
  background:linear-gradient(90deg,rgba(168,85,247,0.16),rgba(34,211,238,0.12));
  border:1px solid rgba(168,85,247,0.35);border-radius:var(--radius);padding:14px 18px;margin-bottom:16px;}
.agent-banner.alt{background:linear-gradient(90deg,rgba(0,229,160,0.14),rgba(34,211,238,0.1));border-color:rgba(0,229,160,0.3);}
.agent-banner .hl{color:var(--brand);font-weight:800;}
.perk{color:var(--muted);font-size:13px;margin:10px 0 16px;padding-left:18px;}
.perk li{margin:5px 0;}
.price.big{font-size:24px;font-weight:800;color:var(--amber);}

/* ===== 收银台元素 ===== */
.chan,.title,.amount{color:var(--txt);}
.amount{color:var(--amber);}
.tip{color:var(--muted);font-size:12px;margin-top:10px;line-height:1.7;}
.secret{color:#9fe7ff;}

/* ===== 杂项 ===== */
.qrbox{max-width:300px;margin:0 auto;}
.login-wrap{max-width:380px;margin:80px auto;padding:28px;}
.code-pre{font-family:monospace;background:var(--panel2);padding:10px;border-radius:8px;word-break:break-all;color:#9fe7ff;}
.pager{margin-top:14px;color:var(--muted);font-size:13px;display:flex;flex-wrap:wrap;align-items:center;gap:6px;}
.pager-info{margin-right:6px;}
.pager .btn.sm{padding:5px 11px;min-width:34px;}
.pager .btn.sm.active{border-color:var(--brand);color:var(--brand);background:rgba(0,229,160,0.08);cursor:default;}
.pager .btn.sm.disabled{opacity:.45;cursor:not-allowed;}
.pager-ellipsis{color:var(--muted);padding:0 4px;}
.empty{color:var(--muted);padding:24px;text-align:center;}

/* ===== 卡密展示模块（支付成功页 / 我的卡密） ===== */
.cards-save-hint{margin:0 0 12px;padding:11px 14px;border-radius:10px;text-align:center;font-size:14px;font-weight:800;letter-spacing:1px;color:#04231a;background:linear-gradient(90deg,var(--amber),#ffd27a);border:1px solid rgba(255,176,32,.6);box-shadow:0 0 18px rgba(255,176,32,.22);}
.cards-toolbar{margin:0 0 14px;}
.copy-all-btn{width:100%;padding:11px;border:none;border-radius:10px;cursor:pointer;font-size:14px;font-weight:700;color:#04231a;background:linear-gradient(90deg,var(--brand),var(--brand2));box-shadow:var(--glow);transition:.18s;}
.copy-all-btn:hover{transform:translateY(-1px);box-shadow:0 0 24px rgba(0,229,160,.4);}
.cards-box{display:flex;flex-direction:column;gap:12px;}
.card-item{background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:12px 14px;overflow:hidden;}
.card-item .ci-name{color:var(--brand);font-weight:700;font-size:14px;margin-bottom:8px;word-break:break-all;overflow-wrap:anywhere;}
.card-item .ci-row{display:flex;align-items:flex-start;gap:8px;margin:5px 0;font-size:13px;line-height:1.5;}
.card-item .ci-k{flex:none;width:34px;color:var(--muted);padding-top:2px;}
.card-item .ci-v{flex:1;min-width:0;word-break:break-all;overflow-wrap:anywhere;white-space:normal;background:var(--chip);border:1px solid var(--line);border-radius:7px;padding:4px 8px;font-family:ui-monospace,Consolas,Menlo,monospace;color:var(--brand2);}
.card-item .ci-v.secret{color:#9fe7ff;}
.card-item .ci-time{color:var(--muted);font-size:11px;margin-top:6px;}
.cards-fallback{margin:14px 0 0;color:var(--muted);font-size:13px;text-align:center;}
.cards-fallback a{color:var(--brand2);}

/* ===== 响应式 ===== */
@media (max-width: 920px){
  .wrap{max-width:100%;}
  .products{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));}
}
@media (max-width: 640px){
  .topbar{padding:0 12px;gap:8px;}
  .menu-btn{display:inline-flex;align-items:center;justify-content:center;}
  .topbar .nav{
    position:absolute;top:60px;left:0;right:0;flex-direction:column;align-items:stretch;
    background:rgba(10,15,26,0.97);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);
    padding:8px 12px;gap:4px;display:none;z-index:40;box-shadow:0 12px 30px rgba(0,0,0,0.5);
  }
  .topbar .nav.open{display:flex;}
  .topbar .nav a{padding:11px 12px;}
  .topbar .right{font-size:12px;gap:10px;}
  .topbar .right .reg-link{display:none;}
  .wrap{padding:0 12px;margin-top:16px;}
  .card{padding:14px;}
  .products{grid-template-columns:1fr;}
  .stat .n{font-size:22px;}
  .pcard .price{font-size:18px;}
  table{font-size:12px;}
  th,td{padding:9px 8px;}
  /* 小屏表格横向滚动 */
  .card > table{display:block;overflow-x:auto;white-space:nowrap;}
}

/* ===== 客户端库存显示双模式 ===== */
.stock-toggle{display:flex;align-items:center;gap:8px;}
.stock-toggle .stock-sel{width:auto;display:inline-block;padding:5px 10px;font-size:13px;cursor:pointer;}
.stock-num{color:var(--ok);font-weight:600;}
.stock-num.out{color:var(--red);}
.stock-status{display:inline-block;padding:1px 10px;border-radius:11px;font-size:12px;font-weight:600;line-height:1.6;}
.stock-status.s-out{background:rgba(255,92,108,0.16);color:var(--red);}
.stock-status.s-low{background:rgba(255,176,32,0.16);color:var(--amber);}
.stock-status.s-mid{background:rgba(54,224,138,0.16);color:var(--ok);}
.stock-status.s-high{background:rgba(34,211,238,0.16);color:var(--brand2);}

/* ===== 描述折叠展示 ===== */
.desc-cell{max-width:260px;}
.desc-clamp{max-width:100%;}
.desc-clamp-body{position:relative;max-height:4.8em;overflow:hidden;transition:max-height .2s;line-height:1.6;word-break:break-word;}
.desc-clamp.expanded .desc-clamp-body{max-height:none;}
.desc-clamp:not(.expanded) .desc-clamp-body::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1.6em;background:linear-gradient(transparent,var(--panel));}
.desc-toggle{margin-top:6px;background:none;border:none;color:var(--brand2);cursor:pointer;font-size:12px;padding:0;}
.desc-toggle:hover{color:var(--brand);}
.ops .btn{margin:2px 4px 2px 0;}

/* ===== 模态框 ===== */
.modal-overlay{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;
  background:rgba(4,8,16,0.72);backdrop-filter:blur(3px);padding:16px;}
.modal-overlay[hidden]{display:none;}
.modal{position:relative;width:100%;max-width:520px;background:var(--panel-solid);border:1px solid var(--line2);
  border-radius:var(--radius);padding:20px 22px;box-shadow:0 20px 60px rgba(0,0,0,0.5);}
.modal h3{margin:0 0 12px;font-size:16px;}
.modal-x{position:absolute;top:10px;right:14px;border:none;background:transparent;color:var(--muted);font-size:22px;line-height:1;cursor:pointer;padding:4px;}
.modal-x:hover{color:var(--brand);}

/* ===== 付款后发货声明 ===== */
.ship-notice{border-color:rgba(0,229,160,0.4);background:linear-gradient(90deg,rgba(0,229,160,0.10),rgba(34,211,238,0.08));}
.ship-notice h3{margin:0 0 10px;font-size:15px;color:var(--brand);}
.ship-notice-body{font-size:13.5px;line-height:1.85;color:var(--txt);word-break:break-word;}
