/* ===== 查数鸭 全局样式 v2（精致化设计系统）===== */
:root{
  --ink:#0E1B2E; --ink2:#33455F; --ink3:#5B6B85;
  --paper:#F2F5FA; --card:#FFFFFF;
  --teal:#0E9F8E; --teal-d:#0B7F71; --teal-soft:#E1F4F0; --teal-glow:rgba(14,159,142,.18);
  --amber:#E8A33D; --amber-d:#C8871F; --amber-soft:#FDF3E2;
  --up:#D64545; --down:#2E8B57; --line:#E4EAF2; --line2:#D5DEEA;
  --shadow-sm:0 1px 2px rgba(14,27,46,.05),0 4px 14px rgba(14,27,46,.05);
  --shadow-md:0 2px 6px rgba(14,27,46,.06),0 12px 32px rgba(14,27,46,.09);
  --shadow-lg:0 8px 24px rgba(14,27,46,.12),0 24px 60px rgba(14,27,46,.14);
  --r-sm:10px; --r-md:16px; --r-lg:20px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{font-family:"Noto Sans SC","PingFang SC","Microsoft YaHei",system-ui,-apple-system,sans-serif;background:var(--paper);color:var(--ink);line-height:1.66;min-height:100vh;display:flex;flex-direction:column;font-size:14.5px}
.wrap{max-width:1100px;margin:0 auto;padding:0 22px;width:100%}
main.wrap{flex:1;padding-top:28px;padding-bottom:64px}
a{color:inherit;text-decoration:none}
button{font-family:inherit}
::selection{background:rgba(14,159,142,.25)}

/* ---------- 顶栏（毛玻璃） ---------- */
.topbar{position:sticky;top:0;z-index:60;background:rgba(12,22,38,.92);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid rgba(255,255,255,.08)}
.topbar::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:linear-gradient(90deg,transparent,rgba(232,163,61,.5),transparent)}
.topbar-in{display:flex;align-items:center;gap:26px;height:60px}
.brand{display:flex;align-items:center;gap:11px;flex:none}
.logo{font-size:21px;font-weight:900;letter-spacing:2px;color:#FFF;background:linear-gradient(120deg,#35D0BC,#0E9F8E 55%,#E8A33D);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.brand-sub{font-size:11px;color:#93A3BC;border-left:1px solid rgba(255,255,255,.18);padding-left:11px;letter-spacing:1px}
.nav{display:flex;gap:2px;flex:1}
.nav a{padding:8px 15px;border-radius:10px;font-size:13.5px;color:#B9C5D8;font-weight:500;transition:.16s;position:relative}
.nav a:hover{color:#FFF;background:rgba(255,255,255,.07)}
.nav a.active{color:#FFF;font-weight:700;background:rgba(14,159,142,.2)}
.nav a.active::after{content:"";position:absolute;left:14px;right:14px;bottom:3px;height:2px;border-radius:2px;background:linear-gradient(90deg,#35D0BC,#E8A33D)}
.userbox{display:flex;align-items:center;gap:11px;font-size:13px;flex:none}
.userbox .pts{background:linear-gradient(135deg,rgba(232,163,61,.2),rgba(232,163,61,.08));border:1px solid rgba(232,163,61,.45);color:#F5CB7E;padding:4px 13px;border-radius:999px;font-weight:800;font-size:12.5px;box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}
.userbox .uname{color:#E8EDF6;font-weight:600;max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---------- 按钮 ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:none;cursor:pointer;border-radius:12px;padding:10px 22px;font-size:14px;font-weight:700;color:#FFF;background:var(--ink);transition:.18s;box-shadow:var(--shadow-sm);position:relative;overflow:hidden}
.btn::before{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.18) 50%,transparent 60%);transform:translateX(-110%);transition:.5s}
.btn:hover::before{transform:translateX(110%)}
.btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}
.btn:active{transform:translateY(0)}
.btn.teal{background:linear-gradient(135deg,#16B5A2,#0B8A7A);box-shadow:0 4px 14px rgba(14,159,142,.32)}
.btn.teal:hover{box-shadow:0 6px 20px rgba(14,159,142,.42)}
.btn.amber{background:linear-gradient(135deg,#F0AE4C,#D98F1F);color:#53390A;box-shadow:0 4px 14px rgba(232,163,61,.32)}
.btn.amber:hover{box-shadow:0 6px 20px rgba(232,163,61,.42)}
.btn.ghost{background:transparent;border:1px solid var(--line2);color:var(--ink2);box-shadow:none}
.btn.ghost:hover{background:#F4F7FB;border-color:#C4D0E0}
.btn.danger{background:#FCEDED;color:var(--up);box-shadow:none}
.btn.sm{padding:5px 13px;font-size:12.5px;border-radius:9px}
.btn.block{width:100%}
.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}
input,select,textarea{width:100%;padding:10px 14px;border:1px solid var(--line2);border-radius:11px;font-size:14px;font-family:inherit;background:#FFF;color:var(--ink);transition:.16s;box-shadow:inset 0 1px 2px rgba(14,27,46,.04)}
input:hover,select:hover,textarea:hover{border-color:#B9C6D8}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3.5px var(--teal-glow)}
label{display:block;font-size:12.5px;font-weight:700;color:var(--ink2);margin-bottom:6px;letter-spacing:.2px}

/* ---------- 卡片 ---------- */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);padding:22px;box-shadow:var(--shadow-sm);transition:.2s}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.mt{margin-top:18px}
.hide{display:none!important}
.muted{color:var(--ink3);font-size:13px}
.small{font-size:12.5px}
.center{text-align:center}
.right{text-align:right}
.csy-pay-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.csy-pay-card{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:16px;border:1px solid var(--line2);border-radius:14px;background:linear-gradient(180deg,#fff,#f8fbff);cursor:pointer;transition:.18s;box-shadow:var(--shadow-sm);text-align:left}
.csy-pay-card:hover{transform:translateY(-2px);border-color:rgba(14,159,142,.5);box-shadow:var(--shadow-md)}
.csy-pay-credits{font-size:16px;font-weight:900;color:var(--ink)}
.csy-pay-price{font-size:22px;font-weight:900;color:var(--amber-d)}
.csy-pay-tip{font-size:12px;color:var(--ink3)}

/* ---------- 首页 Hero ---------- */
.hero{position:relative;text-align:center;padding:56px 0 30px;overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(600px 260px at 12% -10%,rgba(14,159,142,.14),transparent 65%),
    radial-gradient(560px 240px at 88% -12%,rgba(232,163,61,.16),transparent 65%),
    radial-gradient(420px 200px at 50% 110%,rgba(14,159,142,.07),transparent 70%)}
.hero::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:radial-gradient(rgba(14,27,46,.10) 1px,transparent 1px);background-size:26px 26px;mask-image:linear-gradient(180deg,rgba(0,0,0,.8),transparent 55%)}
.hero>*{position:relative;z-index:1}
.hero-badge{display:inline-flex;align-items:center;gap:8px;background:linear-gradient(135deg,rgba(14,159,142,.1),rgba(232,163,61,.12));border:1px solid rgba(14,159,142,.3);color:var(--teal-d);font-size:12.5px;font-weight:800;padding:6px 16px;border-radius:999px;letter-spacing:1px}
.hero h1{font-size:clamp(27px,4.6vw,42px);font-weight:900;letter-spacing:.5px;margin-top:18px;line-height:1.3}
.hero h1 .grad{background:linear-gradient(115deg,#0B8A7A,#16B5A2 45%,#E8A33D);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.hero p{color:var(--ink3);margin-top:12px;font-size:15px}
.searchbox{max-width:660px;margin:28px auto 0;display:flex;gap:10px;background:#FFF;border:1px solid var(--line2);border-radius:18px;padding:7px;box-shadow:var(--shadow-md)}
.searchbox:focus-within{border-color:var(--teal);box-shadow:0 0 0 4px var(--teal-glow),var(--shadow-md)}
.searchbox input{flex:1;height:48px;font-size:15.5px;padding:0 14px;border:none;box-shadow:none}
.searchbox input:focus{box-shadow:none}
.searchbox .btn{height:48px;padding:0 32px;border-radius:13px;font-size:15px}
.hotbrands{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:22px}
.chip{background:#FFF;border:1px solid var(--line2);border-radius:999px;padding:6px 17px;font-size:13px;cursor:pointer;transition:.16s;color:var(--ink2);font-weight:500;box-shadow:var(--shadow-sm)}
.chip:hover{border-color:var(--teal);color:var(--teal-d);transform:translateY(-2px);box-shadow:var(--shadow-md)}
.feature-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:38px}
.feature{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);padding:20px 18px;text-align:left;box-shadow:var(--shadow-sm);transition:.2s;position:relative;overflow:hidden}
.feature::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--teal),var(--amber));opacity:0;transition:.2s}
.feature:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.feature:hover::before{opacity:1}
.feature .fic{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;margin-bottom:12px;font-size:18px}
.feature .fic.teal{background:var(--teal-soft)} .feature .fic.amber{background:var(--amber-soft)}
.feature h4{font-size:14.5px;font-weight:800;margin-bottom:4px}
.feature p{font-size:12.5px;color:var(--ink3);line-height:1.55}

.sec-title{font-size:17px;font-weight:900;margin:36px 0 14px;display:flex;align-items:center;gap:10px}
.sec-title::before{content:"";width:6px;height:17px;border-radius:3px;background:linear-gradient(180deg,var(--amber),#F0BE6A)}

/* ---------- 表格 ---------- */
.tblwrap{overflow-x:auto;border:1px solid var(--line);border-radius:14px;background:#FFF}
table{width:100%;border-collapse:collapse;font-size:13.5px;min-width:640px}
th{background:#F5F8FC;color:var(--ink3);font-weight:800;text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);white-space:nowrap;font-size:12px;letter-spacing:.4px}
td{padding:11px 14px;border-bottom:1px solid #EEF2F8;vertical-align:middle}
tbody tr{transition:.12s}
tbody tr:hover{background:#FAFCFF}
tr:last-child td{border-bottom:none}
.badge{display:inline-block;font-size:11.5px;font-weight:800;border-radius:999px;padding:3px 11px;white-space:nowrap;letter-spacing:.3px}
.b-up{background:#FDECEC;color:var(--up)} .b-down{background:#E6F3EC;color:var(--down)}
.b-stable{background:#EDF1F7;color:var(--ink2)} .b-new{background:var(--amber-soft);color:#A06B13}
.b-out{background:#F2F3F7;color:var(--ink3)} .b-ok{background:var(--teal-soft);color:var(--teal-d)}
.b-wait{background:#EDF1F7;color:var(--ink2)} .b-err{background:#FDECEC;color:var(--up)}
.up{color:var(--up);font-weight:700} .down{color:var(--down);font-weight:700}

/* ---------- 表单页 ---------- */
.auth{max-width:410px;margin:34px auto;padding:30px 30px 26px;border-radius:20px;position:relative;overflow:hidden}
.auth::before{content:"";position:absolute;top:-60px;right:-60px;width:150px;height:150px;border-radius:50%;background:radial-gradient(circle,rgba(14,159,142,.14),transparent 70%)}
.auth h2{font-size:21px;font-weight:900;margin-bottom:4px}
.form-row{margin-bottom:16px}
.sms-row{display:flex;gap:10px}
.sms-row input{flex:1}
.sms-row .btn{flex:none;min-width:118px}
.lg-tabs{display:flex;background:#F0F4FA;border-radius:12px;padding:4px;margin-bottom:18px;gap:4px}
.lg-tab{flex:1;border:none;background:transparent;padding:9px 0;border-radius:9px;font-size:13.5px;font-weight:700;color:var(--ink3);cursor:pointer;transition:.15s}
.lg-tab.active{background:#FFF;color:var(--ink);box-shadow:var(--shadow-sm)}
.hint{font-size:12px;color:var(--ink3);margin-top:6px}
.err-msg{background:#FDEBEB;color:var(--up);border-radius:11px;padding:11px 15px;font-size:13px;margin-bottom:14px;display:none;border:1px solid #F5CACA}
.err-msg.show{display:block}
.ok-msg{background:var(--teal-soft);color:#0B6E63;border-radius:11px;padding:11px 15px;font-size:13px;margin-bottom:14px;display:none;border:1px solid #BFE4DC}
.ok-msg.show{display:block}

/* ---------- 报告页 ---------- */
.report-head{background:linear-gradient(135deg,#0E1B2E,#16283F 55%,#0F3B37);color:#F3F6FB;border-radius:20px;padding:26px 28px;position:relative;overflow:hidden;box-shadow:var(--shadow-lg)}
.report-head::before{content:"";position:absolute;top:-70px;right:-40px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(232,163,61,.18),transparent 65%)}
.report-head::after{content:"";position:absolute;bottom:-80px;left:-50px;width:230px;height:230px;border-radius:50%;background:radial-gradient(circle,rgba(14,159,142,.2),transparent 65%)}
.report-head>*{position:relative;z-index:1}
.report-head h1{font-size:24px;font-weight:900}
.report-head .meta{display:flex;flex-wrap:wrap;gap:6px 20px;margin-top:11px;font-size:13px;color:#C6D0DF}
.report-head .meta b{color:#FFF}
.kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-top:16px}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px 14px;box-shadow:var(--shadow-sm);transition:.18s;position:relative;overflow:hidden}
.kpi:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}
.kpi::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,var(--teal),var(--amber));opacity:.6}
.kpi .lab{font-size:11.5px;color:var(--ink3);font-weight:600}
.kpi .val{font-size:21px;font-weight:900;margin-top:3px;letter-spacing:.2px}
.kpi .sub{font-size:12px;margin-top:2px}
.sechead{display:flex;align-items:baseline;gap:12px;margin:32px 0 14px}
.secnum{font-size:13px;font-weight:900;color:#FFF;background:linear-gradient(135deg,#0E1B2E,#1C3A52);border-radius:9px;padding:3px 11px;letter-spacing:1px;flex:none;box-shadow:var(--shadow-sm)}
.secnum i{font-style:normal;color:var(--amber)}
.sectitle{font-size:19px;font-weight:900}
.secdesc{font-size:12.5px;color:var(--ink3);margin-top:2px}
.chart{width:100%;height:300px}
.chart-sm{width:100%;height:260px}
.charts2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.note{background:linear-gradient(135deg,var(--teal-soft),#EFFAF8);border:1px solid #C9E8E2;border-radius:12px;padding:12px 16px;font-size:13.5px;color:#0B5D54;margin-top:14px}
.note b{color:#0B6E63}
.listbox{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);padding:18px 20px;box-shadow:var(--shadow-sm)}
.listbox h4{font-size:14px;font-weight:900;margin-bottom:10px}
.listbox ul{list-style:none}
.listbox li{font-size:13.5px;padding:6px 0 6px 18px;position:relative;color:var(--ink2);border-bottom:1px dashed #EDF1F6}
.listbox li:last-child{border-bottom:none}
.listbox li::before{content:"";position:absolute;left:0;top:14px;width:6px;height:6px;border-radius:50%;background:linear-gradient(135deg,var(--teal),var(--amber))}
.contentitem{display:flex;gap:12px;align-items:center;padding:10px 4px;border-bottom:1px dashed #EDF1F6}
.contentitem:last-child{border-bottom:none}
.contentitem .rank{flex:none;width:30px;height:30px;border-radius:9px;background:linear-gradient(135deg,#0E1B2E,#24405C);color:#FFF;font-weight:900;font-size:13px;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm)}
.contentitem .ct{flex:1;min-width:0}
.contentitem .ct .t{font-size:14px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.contentitem .ct .d{font-size:12px;color:var(--ink3)}
.opps{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.opp{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px;display:flex;flex-direction:column;gap:10px;box-shadow:var(--shadow-sm);transition:.2s;position:relative;overflow:hidden}
.opp::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--amber),#F0BE6A,var(--amber));opacity:.85}
.opp:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}
.opp .otype{font-size:11.5px;font-weight:900;color:#A06B13;background:var(--amber-soft);border-radius:999px;padding:2px 13px;width:fit-content;letter-spacing:.5px}
.opp .otitle{font-size:15px;font-weight:900}
.opp .oev{font-size:13px;color:var(--ink3);flex:1}
.opp .osug{font-size:13px;color:#0B6E63;background:var(--teal-soft);border-radius:10px;padding:9px 12px;border-left:3px solid var(--teal)}
.summary{background:linear-gradient(180deg,#FFF,#FDFDFE);border:1px solid var(--line);border-left:5px solid var(--amber);border-radius:var(--r-md);padding:24px 26px;font-size:14.5px;color:var(--ink2);box-shadow:var(--shadow-sm);position:relative;overflow:hidden}
.summary::before{content:"AI";position:absolute;right:-18px;bottom:-22px;font-size:110px;font-weight:900;color:rgba(232,163,61,.07);pointer-events:none}
.summarylabel{font-size:12.5px;font-weight:900;color:#A06B13;letter-spacing:1px;margin-bottom:10px;display:flex;align-items:center;gap:8px}
.summarylabel::before{content:"";width:22px;height:2px;background:linear-gradient(90deg,var(--amber),transparent);border-radius:2px}

/* ---------- 生成进度 ---------- */
.progress-steps{max-width:560px;margin:30px auto}
.pstep{display:flex;align-items:center;gap:14px;padding:15px 18px;background:#FFF;border:1px solid var(--line);border-radius:13px;margin-bottom:10px;font-size:14px;color:var(--ink3);box-shadow:var(--shadow-sm);transition:.2s}
.pstep .dot{width:20px;height:20px;border-radius:50%;border:2px solid var(--line2);flex:none;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:900;color:var(--ink3)}
.pstep.doing{border-color:rgba(232,163,61,.6);color:var(--ink);font-weight:700;box-shadow:0 0 0 4px rgba(232,163,61,.08)}
.pstep.doing .dot{border-color:var(--amber);border-top-color:transparent;animation:spin 1s linear infinite}
.pstep.done{border-color:#CFE9E3;color:var(--ink2)}
.pstep.done .dot{border-color:var(--teal);background:var(--teal);color:#FFF;box-shadow:0 0 0 4px var(--teal-glow)}
@keyframes spin{to{transform:rotate(360deg)}}

/* ---------- 管理后台 ---------- */
.admin-layout{display:grid;grid-template-columns:196px 1fr;gap:18px;align-items:start}
.admin-menu{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:10px;position:sticky;top:74px;box-shadow:var(--shadow-sm)}
.admin-menu a{display:block;padding:10px 15px;border-radius:10px;font-size:13.5px;color:var(--ink2);margin-bottom:2px;transition:.14s;font-weight:500}
.admin-menu a:hover{background:var(--paper);color:var(--ink)}
.admin-menu a.active{background:linear-gradient(135deg,#0E1B2E,#1C3A52);color:#FFF;font-weight:700;box-shadow:var(--shadow-sm)}
.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:14px;flex-wrap:wrap}
.toolbar input{width:200px}
.toolbar .spacer{flex:1}
.pager{display:flex;gap:8px;align-items:center;margin-top:14px;font-size:13px;color:var(--ink3)}
.pager .btn{padding:5px 12px}

/* ---------- 页脚 ---------- */
.foot{margin-top:auto;background:linear-gradient(180deg,#0E1B2E,#132338);color:#93A3BC;padding:22px 0;font-size:12.5px;border-top:1px solid rgba(255,255,255,.06)}
.foot .wrap{display:flex;align-items:center;justify-content:center;gap:10px}
.foot .flogo{font-weight:900;color:#C9D4E4;letter-spacing:1px}

@media (max-width:900px){
  .grid2,.grid3,.grid4{grid-template-columns:1fr}
  .csy-pay-grid{grid-template-columns:1fr}
  .kpis{grid-template-columns:repeat(3,1fr)}
  .charts2{grid-template-columns:1fr}
  .opps{grid-template-columns:1fr}
  .feature-grid{grid-template-columns:repeat(2,1fr)}
  .admin-layout{grid-template-columns:1fr}
  .admin-menu{position:static;display:flex;overflow-x:auto}
  .admin-menu a{white-space:nowrap}
  .nav a{padding:7px 8px;font-size:13px}
  .brand-sub{display:none}
}
@media (max-width:560px){
  .kpis{grid-template-columns:repeat(2,1fr)}
  .topbar-in{gap:12px}
  .userbox .pts{display:none}
  .feature-grid{grid-template-columns:1fr}
}
