/* =========================================================
   共享商业系统门户 · 视觉规范（对齐 www.calay.cn 设计令牌）
   品牌主色 #1D6DF0 / 深蓝 hero #062646 / 圆角 12px / 柔阴影
   ========================================================= */
:root{
  --primary-rgb: 29, 109, 240;
  --primary: #1D6DF0;
  --primary-dark: #0C447C;
  --primary-darker: #093661;
  --primary-deep: #062646;
  --primary-light: #E6F1FB;
  --blue-50:#E6F1FB; --blue-100:#CCE3F8; --blue-200:#99C7F0;
  --blue-300:#66ABE8; --blue-400:#338FE0; --blue-500:#1D6DF0;
  --blue-600:#1668DC; --blue-700:#0C447C; --blue-800:#093661; --blue-900:#062646;
  --green:#10B981; --orange:#F97316; --purple:#7C3AED; --teal:#0891B2; --red:#DC2626;
  --gray-0:#ffffff; --gray-50:#f8fafc; --gray-100:#f1f5f9; --gray-200:#e5e7eb;
  --gray-300:#cbd5e1; --gray-400:#94a3b8; --gray-500:#64748b; --gray-600:#475569;
  --gray-700:#334155; --gray-800:#1e293b; --gray-900:#0f172a;
  --text:#334155; --text-strong:#0f172a; --text-secondary:#64748b; --text-muted:#94a3b8;
  --border:#e5e7eb; --border-light:#f1f5f9; --line:#e5e7eb;
  --card-bg:#ffffff;
  --bg:#f5f8fc;
  --radius-sm:8px; --radius-md:10px; --radius-lg:12px; --radius-xl:16px;
  --shadow-sm:0 1px 3px rgba(15,42,92,.06);
  --shadow-md:0 2px 8px rgba(15,42,92,.06);
  --shadow-lg:0 12px 32px rgba(15,42,92,.12);
  --maxw:1200px;
  --font: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--font);color:var(--text);background:var(--bg);line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 24px}
.text-primary{color:var(--primary)}
.muted{color:var(--text-secondary)}
.center{text-align:center}

/* ---------- 按钮 ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:46px;padding:0 26px;border-radius:var(--radius-md);font-size:15px;font-weight:600;cursor:pointer;border:1px solid transparent;transition:.18s;white-space:nowrap}
.btn-primary{background:var(--primary);color:#fff;box-shadow:0 6px 16px rgba(29,109,240,.28)}
.btn-primary:hover{background:var(--blue-600);transform:translateY(-1px)}
.btn-ghost{background:rgba(255,255,255,.12);color:#fff;border-color:rgba(255,255,255,.35)}
.btn-ghost:hover{background:rgba(255,255,255,.2)}
.btn-outline{background:#fff;color:var(--primary);border-color:var(--blue-200)}
.btn-outline:hover{background:var(--blue-50)}
.btn-light{background:var(--blue-50);color:var(--primary-dark)}
.btn-light:hover{background:var(--blue-100)}
.btn-sm{height:36px;padding:0 16px;font-size:13px;border-radius:var(--radius-sm)}
.btn-block{width:100%}

/* ---------- 顶部导航 ---------- */
.site-nav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.86);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:68px}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:19px;color:var(--text-strong);letter-spacing:.3px}
.brand .logo{width:34px;height:34px;border-radius:9px;background:linear-gradient(135deg,var(--blue-500),var(--blue-800));display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:16px;box-shadow:0 4px 12px rgba(29,109,240,.35)}
.brand small{font-size:12px;font-weight:600;color:var(--text-secondary);margin-left:2px}
.nav-links{display:flex;align-items:center;gap:30px}
.nav-links a{font-size:15px;color:var(--text-secondary);font-weight:500;transition:.15s}
.nav-links a:hover{color:var(--primary)}
.nav-cta{display:flex;align-items:center;gap:14px}
.nav-cta .login{font-size:15px;font-weight:600;color:var(--text-strong)}
.nav-toggle{display:none}

/* ---------- HERO ---------- */
.hero{position:relative;background:linear-gradient(135deg,var(--blue-900) 0%,var(--blue-800) 45%,var(--primary-darker) 100%);color:#fff;overflow:hidden;
  background-image:
    radial-gradient(900px 500px at 82% -10%, rgba(var(--primary-rgb),.35), transparent 60%),
    radial-gradient(700px 520px at 8% 110%, rgba(var(--primary-rgb),.22), transparent 55%),
    linear-gradient(135deg,var(--blue-900),var(--primary-darker));
}
.hero-inner{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center;padding:84px 0 96px}
.hero .eyebrow{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);color:#cfe2fb;font-size:13px;font-weight:600;padding:7px 14px;border-radius:999px;margin-bottom:22px}
.hero .eyebrow .dot{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px rgba(16,185,129,.25)}
.hero h1{font-size:46px;line-height:1.18;font-weight:800;letter-spacing:-.5px;margin-bottom:20px}
.hero h1 .hl{background:linear-gradient(90deg,#7ec0ff,#cfe2fb);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero p.sub{font-size:17px;color:#c4d8f2;max-width:560px;margin-bottom:30px}
.hero .actions{display:flex;gap:14px;flex-wrap:wrap}
.hero .mini-stats{display:flex;gap:34px;margin-top:40px}
.hero .mini-stats .n{font-size:26px;font-weight:800;color:#fff}
.hero .mini-stats .l{font-size:13px;color:#9fbcdf}
/* hero 右：产品卡片预览 */
.hero-card{background:rgba(255,255,255,.96);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);padding:22px;color:var(--text)}
.hero-card .hc-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.hero-card .hc-head .t{font-weight:700;color:var(--text-strong);font-size:15px}
.hero-card .hc-head .badge{font-size:12px;background:var(--blue-50);color:var(--primary);padding:4px 10px;border-radius:999px;font-weight:600}
.kpi-row{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.kpi{background:var(--gray-50);border:1px solid var(--border-light);border-radius:var(--radius-md);padding:14px}
.kpi .lab{font-size:12px;color:var(--text-secondary)}
.kpi .val{font-size:20px;font-weight:800;color:var(--text-strong);margin-top:4px}
.kpi .val.green{color:var(--green)} .kpi .val.blue{color:var(--primary)}
.hc-bar{margin-top:16px;height:10px;border-radius:999px;background:var(--gray-100);overflow:hidden;display:flex}
.hc-bar i{display:block;height:100%}
.hc-legend{display:flex;gap:14px;margin-top:10px;font-size:12px;color:var(--text-secondary);flex-wrap:wrap}
.hc-legend span{display:inline-flex;align-items:center;gap:6px}
.hc-legend i{width:10px;height:10px;border-radius:3px;display:inline-block}

/* ---------- 信任条 ---------- */
.trust{background:#fff;border-bottom:1px solid var(--border)}
.trust-inner{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:34px 0}
.trust .item{text-align:center}
.trust .n{font-size:34px;font-weight:800;color:var(--primary);letter-spacing:-.5px}
.trust .l{font-size:14px;color:var(--text-secondary);margin-top:4px}

/* ---------- 区块标题 ---------- */
.section{padding:84px 0}
.section.alt{background:#fff}
.sec-head{max-width:720px;margin:0 auto 48px;text-align:center}
.sec-head .tag{display:inline-block;font-size:13px;font-weight:700;color:var(--primary);background:var(--blue-50);padding:5px 14px;border-radius:999px;margin-bottom:16px}
.sec-head h2{font-size:34px;font-weight:800;color:var(--text-strong);letter-spacing:-.4px;line-height:1.25}
.sec-head p{font-size:16px;color:var(--text-secondary);margin-top:14px}

/* ---------- 三系统卡片 ---------- */
.sys-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.sys-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius-xl);padding:30px;transition:.2s;position:relative;overflow:hidden}
.sys-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--blue-200)}
.sys-card .ico{width:56px;height:56px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:26px;color:#fff;margin-bottom:18px}
.sys-card.c1 .ico{background:linear-gradient(135deg,var(--blue-500),var(--blue-800))}
.sys-card.c2 .ico{background:linear-gradient(135deg,var(--teal),#0e7490)}
.sys-card.c3 .ico{background:linear-gradient(135deg,var(--purple),#5b21b6)}
.sys-card h3{font-size:20px;font-weight:800;color:var(--text-strong);margin-bottom:6px}
.sys-card .role{font-size:13px;color:var(--primary);font-weight:600;margin-bottom:14px}
.sys-card ul{list-style:none;margin-top:8px}
.sys-card li{font-size:14px;color:var(--text-secondary);padding:7px 0 7px 24px;position:relative;border-top:1px dashed var(--border-light)}
.sys-card li:first-child{border-top:none}
.sys-card li::before{content:"";position:absolute;left:4px;top:14px;width:8px;height:8px;border-radius:50%;background:var(--blue-300)}
.sys-card.c2 li::before{background:var(--teal)}
.sys-card.c3 li::before{background:var(--purple)}

/* ---------- 三步解决方案 ---------- */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;counter-reset:step}
.step{background:var(--gray-50);border:1px solid var(--border);border-radius:var(--radius-xl);padding:30px;position:relative}
.step .num{counter-increment:step;font-size:15px;font-weight:800;color:#fff;background:var(--primary);width:40px;height:40px;border-radius:11px;display:flex;align-items:center;justify-content:center;margin-bottom:16px}
.step .num::before{content:counter(step,decimal-leading-zero)}
.step h4{font-size:18px;font-weight:700;color:var(--text-strong);margin-bottom:8px}
.step p{font-size:14px;color:var(--text-secondary)}

/* ---------- 平台 ---------- */
.plat{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:8px}
.plat .p{background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);padding:22px;text-align:center;font-weight:700;color:var(--text-strong);font-size:16px}
.plat .p small{display:block;font-weight:500;color:var(--text-secondary);font-size:13px;margin-top:6px}

/* ---------- FAQ ---------- */
.faq{max-width:840px;margin:0 auto}
.faq details{border:1px solid var(--border);border-radius:var(--radius-lg);background:#fff;padding:4px 22px;margin-bottom:14px}
.faq summary{cursor:pointer;list-style:none;font-weight:600;color:var(--text-strong);padding:16px 0;display:flex;justify-content:space-between;align-items:center;font-size:15px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:22px;color:var(--primary);font-weight:400}
.faq details[open] summary::after{content:"−"}
.faq .ans{padding:0 0 18px;color:var(--text-secondary);font-size:14px}

/* ---------- CTA ---------- */
.cta-band{background:linear-gradient(135deg,var(--blue-800),var(--primary-dark));color:#fff;border-radius:var(--radius-xl);padding:54px 48px;text-align:center;position:relative;overflow:hidden}
.cta-band::before{content:"";position:absolute;right:-60px;top:-60px;width:260px;height:260px;border-radius:50%;background:rgba(var(--primary-rgb),.3)}
.cta-band h2{font-size:30px;font-weight:800;margin-bottom:12px}
.cta-band p{color:#cfe2fb;margin-bottom:24px;font-size:16px}

/* ---------- 页脚 ---------- */
.footer{background:var(--blue-900);color:#a9c2e3;padding:54px 0 28px}
.footer .f-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:30px}
.footer .brand{color:#fff;margin-bottom:14px}
.footer .brand small{color:#9fbcdf}
.footer p.desc{font-size:13px;max-width:300px}
.footer h5{color:#fff;font-size:14px;margin-bottom:14px}
.footer a{display:block;font-size:13px;padding:5px 0;color:#a9c2e3;transition:.15s}
.footer a:hover{color:#fff}
.footer .bottom{border-top:1px solid rgba(255,255,255,.12);margin-top:36px;padding-top:20px;font-size:12px;color:#7f9bc0;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px}

/* ============ 登录页 ============ */
.login-page{min-height:100vh;display:flex;align-items:stretch;background:var(--blue-900);background-image:radial-gradient(800px 500px at 80% -10%,rgba(var(--primary-rgb),.4),transparent 60%),radial-gradient(700px 500px at 0% 110%,rgba(var(--primary-rgb),.25),transparent 55%);}
.login-aside{flex:1;color:#fff;padding:64px;display:flex;flex-direction:column;justify-content:center;max-width:560px}
.login-aside .brand{color:#fff;font-size:22px;margin-bottom:40px}
.login-aside .brand .logo{box-shadow:0 6px 18px rgba(0,0,0,.3)}
.login-aside h1{font-size:34px;font-weight:800;line-height:1.3;margin-bottom:18px}
.login-aside p{color:#bcd3f3;font-size:15px;max-width:420px;margin-bottom:14px}
.login-aside .feat{margin-top:30px;display:grid;gap:14px}
.login-aside .feat .f{display:flex;gap:12px;align-items:flex-start}
.login-aside .feat .f .ck{width:22px;height:22px;border-radius:50%;background:rgba(255,255,255,.14);color:#7ec0ff;display:flex;align-items:center;justify-content:center;font-size:13px;flex:none;margin-top:2px}
.login-aside .copy{margin-top:auto;color:#7f9bc0;font-size:12px;padding-top:30px}
.login-main{flex:1;background:#fff;display:flex;align-items:center;justify-content:center;padding:40px}
.login-box{width:100%;max-width:380px}
.login-box .lt{font-size:24px;font-weight:800;color:var(--text-strong);margin-bottom:6px}
.login-box .ls{color:var(--text-secondary);font-size:14px;margin-bottom:28px}
.field{margin-bottom:16px}
.field label{display:block;font-size:13px;font-weight:600;color:var(--text-strong);margin-bottom:7px}
.field input{width:100%;height:46px;border:1px solid var(--gray-300);border-radius:var(--radius-md);padding:0 14px;font-size:14px;color:var(--text);transition:.15s;background:#fff}
.field input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(var(--primary-rgb),.12)}
.login-box .row{display:flex;justify-content:space-between;align-items:center;font-size:13px;margin-bottom:20px}
.login-box .row a{color:var(--primary);font-weight:600}
.login-box .row label{display:flex;gap:8px;align-items:center;color:var(--text-secondary);cursor:pointer}
.login-foot{margin-top:22px;text-align:center;font-size:13px;color:var(--text-muted)}

/* ============ 控制台 ============ */
.console{display:flex;flex-direction:column;min-height:100vh}
.topbar{height:60px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 20px;position:sticky;top:0;z-index:40}
.topbar .left{display:flex;align-items:center;gap:18px}
.topbar .brand{font-size:16px}
.topbar .sys-switch{display:flex;background:var(--gray-100);border-radius:var(--radius-md);padding:4px;gap:4px}
.topbar .sys-switch button{border:none;background:transparent;height:36px;padding:0 16px;border-radius:var(--radius-sm);font-size:14px;font-weight:600;color:var(--text-secondary);cursor:pointer;transition:.15s;display:flex;align-items:center;gap:7px}
.topbar .sys-switch button .si{font-size:15px}
.topbar .sys-switch button.active{background:#fff;color:var(--primary);box-shadow:var(--shadow-sm)}
.topbar .right{display:flex;align-items:center;gap:16px}
.topbar .dep{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:600;padding:6px 12px;border-radius:999px;background:rgba(16,185,129,.12);color:#0f9d6b}
.topbar .dep .d{width:8px;height:8px;border-radius:50%;background:var(--green)}
.topbar .dep.warn{background:rgba(249,115,22,.14);color:var(--orange)}
.topbar .dep.warn .d{background:var(--orange)}
.topbar .user{display:flex;align-items:center;gap:10px;cursor:pointer}
.topbar .user .av{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,var(--blue-500),var(--blue-800));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px}
.topbar .user .nm{font-size:14px;font-weight:600;color:var(--text-strong)}
.topbar .user .rl{font-size:12px;color:var(--text-muted)}

.console-body{display:flex;flex:1}
.sidebar{width:232px;background:#fff;border-right:1px solid var(--border);padding:18px 14px;flex:none;overflow-y:auto}
.sidebar .grp{font-size:12px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin:14px 8px 8px}
.sidebar .grp:first-child{margin-top:4px}
.sidebar a{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:var(--radius-sm);font-size:14px;color:var(--text-secondary);font-weight:500;cursor:pointer;transition:.13s;margin-bottom:2px}
.sidebar a .mi{width:18px;text-align:center;font-size:15px}
.sidebar a:hover{background:var(--gray-50);color:var(--text-strong)}
.sidebar a.active{background:var(--blue-50);color:var(--primary);font-weight:700}
.main{flex:1;padding:26px 30px;overflow-y:auto;background:var(--bg)}
.crumb{font-size:13px;color:var(--text-muted);margin-bottom:8px}
.crumb b{color:var(--text-secondary)}
.page-title{font-size:22px;font-weight:800;color:var(--text-strong);margin-bottom:4px}
.page-sub{font-size:14px;color:var(--text-secondary);margin-bottom:22px}
.notice{display:flex;gap:12px;align-items:flex-start;background:var(--blue-50);border:1px solid var(--blue-200);border-radius:var(--radius-md);padding:14px 16px;font-size:13px;color:var(--primary-dark);margin-bottom:22px}
.notice.red{background:rgba(220,38,38,.07);border-color:#f3b4b4;color:#b42318}
.notice.green{background:rgba(16,185,129,.1);border-color:#9fe3c8;color:#0f7a54}
.notice.orange{background:rgba(249,115,22,.1);border-color:#fcd2a8;color:#b45309}
.notice b{font-weight:700}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:22px}
.kpi-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px 20px;box-shadow:var(--shadow-sm)}
.kpi-card .k{font-size:13px;color:var(--text-secondary);display:flex;align-items:center;gap:8px}
.kpi-card .k .ic{width:30px;height:30px;border-radius:9px;background:var(--blue-50);color:var(--primary);display:flex;align-items:center;justify-content:center;font-size:15px}
.kpi-card .v{font-size:26px;font-weight:800;color:var(--text-strong);margin-top:12px;letter-spacing:-.5px}
.kpi-card .v small{font-size:14px;font-weight:600;color:var(--text-muted);margin-left:2px}
.kpi-card .d{font-size:12px;margin-top:6px;color:var(--green);font-weight:600}
.kpi-card .d.down{color:var(--red)}

.panel{background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden;margin-bottom:22px}
.panel .ph{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border)}
.panel .ph .t{font-size:15px;font-weight:700;color:var(--text-strong)}
.panel .ph .more{font-size:13px;color:var(--primary);font-weight:600;cursor:pointer}
.panel .pb{padding:6px 20px 16px}
.split2{display:grid;grid-template-columns:1.4fr 1fr;gap:22px}
.split2b{display:grid;grid-template-columns:1fr 1fr;gap:22px}

/* 表格 */
.tbl{width:100%;border-collapse:collapse;font-size:13px}
.tbl th{text-align:left;color:var(--text-muted);font-weight:600;padding:11px 12px;border-bottom:1px solid var(--border);background:var(--gray-50);white-space:nowrap}
.tbl td{padding:12px;border-bottom:1px solid var(--border-light);color:var(--text)}
.tbl tr:last-child td{border-bottom:none}
.tbl tbody tr:hover{background:var(--gray-50)}
.tag{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px}
.tag.green{background:rgba(16,185,129,.12);color:#0f9d6b}
.tag.red{background:rgba(220,38,38,.1);color:#dc2626}
.tag.blue{background:var(--blue-50);color:var(--primary)}
.tag.orange{background:rgba(249,115,22,.12);color:var(--orange)}
.tag.gray{background:var(--gray-100);color:var(--text-secondary)}
.tag.purple{background:rgba(124,58,237,.12);color:var(--purple)}

/* 进度条 */
.prog{height:9px;border-radius:999px;background:var(--gray-100);overflow:hidden}
.prog i{display:block;height:100%;background:linear-gradient(90deg,var(--blue-500),var(--blue-700));border-radius:999px}
.prog.i-green i{background:linear-gradient(90deg,var(--green),#0e9f6e)}

/* 列表型说明 */
.dotlist{list-style:none}
.dotlist li{display:flex;gap:10px;padding:9px 0;border-bottom:1px dashed var(--border-light);font-size:13px;color:var(--text-secondary)}
.dotlist li:last-child{border-bottom:none}
.dotlist li::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--blue-300);margin-top:7px;flex:none}
.dotlist li b{color:var(--text-strong)}

/* 移动端 */
@media(max-width:980px){
  .hero-inner{grid-template-columns:1fr;padding:60px 0}
  .hero-card{display:none}
  .sys-grid,.steps,.plat{grid-template-columns:1fr}
  .trust-inner{grid-template-columns:repeat(2,1fr);gap:20px}
  .split2,.split2b,.kpis{grid-template-columns:1fr}
  .nav-links{display:none}
  .footer .f-grid{grid-template-columns:1fr 1fr}
  .login-aside{display:none}
  .login-main{padding:30px 18px}
  .console-body{flex-direction:column}
  .sidebar{width:100%;display:flex;gap:6px;overflow-x:auto;border-right:none;border-bottom:1px solid var(--border)}
  .sidebar .grp{display:none}
  .sidebar a{white-space:nowrap;margin:0}
}
