/**
 * 刀客CMS（https://daokecms.com）
 * 轻量级、模板化的 PHP 建站系统，专注内容管理、模板资源与运营变现。
 */
/* daokeCMS 授权中心 · 前台样式（独立站，浅色卡片风；主色与系统后台一致 #1677ff） */

*{box-sizing:border-box}
html,body{margin:0}
body{
  background:#f2f4f7;color:#1a2233;
  font:14px/1.75 -apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif;
}
a{color:#1677ff;text-decoration:none}
a:hover{text-decoration:underline}
.wrap{width:1080px;max-width:94vw;margin:0 auto}
.muted{color:#8a94a6}

/* ---------- 顶栏 ---------- */
.topbar{background:#fff;border-bottom:1px solid #e9edf3;position:sticky;top:0;z-index:20}
.topbar-inner{display:flex;align-items:center;justify-content:space-between;height:66px;gap:20px}
.brand{display:flex;align-items:center;gap:11px;color:#1a2233;text-decoration:none}
.brand:hover{text-decoration:none}
.logo{
  width:38px;height:38px;border-radius:11px;display:grid;place-items:center;
  background:linear-gradient(135deg,#1677ff,#5b8cff);color:#fff;font-weight:800;letter-spacing:.5px;
}
.brand-text{display:flex;flex-direction:column;line-height:1.3}
.brand-text b{font-size:15px}
.brand-text i{font-style:normal;font-size:12px;color:#8a94a6}
.nav{display:flex;align-items:center;gap:4px}
.nav a{padding:8px 14px;border-radius:9px;color:#3b465c;font-weight:600;font-size:13.5px}
.nav a:hover{background:#f2f6ff;text-decoration:none}
.nav a.on{background:#eef4ff;color:#1677ff}
.nav a.nav-admin{color:#8a94a6;font-weight:500}

/* ---------- 通用块 ---------- */
.panel{background:#fff;border:1px solid #e9edf3;border-radius:16px;margin:22px 0;box-shadow:0 8px 22px rgba(26,34,51,.04)}
.panel-head{padding:16px 22px;border-bottom:1px solid #f0f3f8;display:flex;align-items:center;justify-content:space-between;gap:12px}
.panel-head h2{margin:0;font-size:15.5px}
.panel-body{padding:20px 22px}
.hero{
  margin:26px 0 0;padding:34px 34px 30px;border-radius:18px;color:#fff;
  background:linear-gradient(125deg,#1677ff 0%,#4f7dff 55%,#7b4ff2 100%);
  box-shadow:0 16px 34px rgba(22,119,255,.22);
}
.hero h1{margin:0 0 10px;font-size:27px;letter-spacing:.3px}
.hero p{margin:0;font-size:14.5px;color:rgba(255,255,255,.92);max-width:760px}
.hero .hero-tags{margin-top:16px;display:flex;gap:8px;flex-wrap:wrap}
.hero .hero-tags span{
  background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.28);
  padding:4px 11px;border-radius:99px;font-size:12.5px;
}

/* ---------- 入口卡 / 统计 ---------- */
.grid{display:grid;gap:18px}
.grid-2{grid-template-columns:1fr 1fr}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
.entry{
  display:block;background:#fff;border:1px solid #e9edf3;border-radius:16px;padding:24px;color:#1a2233;
  transition:.18s;text-decoration:none;
}
.entry:hover{text-decoration:none;border-color:#c7dbff;box-shadow:0 12px 26px rgba(22,119,255,.12);transform:translateY(-2px)}
.entry .ico{width:42px;height:42px;border-radius:12px;background:#eef4ff;color:#1677ff;display:grid;place-items:center;font-size:19px;font-weight:800}
.entry h3{margin:14px 0 6px;font-size:17px}
.entry p{margin:0;color:#5c6a85;font-size:13.5px}
.entry .go{margin-top:14px;color:#1677ff;font-weight:700;font-size:13px}
.stat{background:#fff;border:1px solid #e9edf3;border-radius:14px;padding:16px 18px}
.stat b{display:block;font-size:24px;letter-spacing:.5px}
.stat span{color:#8a94a6;font-size:12.5px}

/* ---------- 表单 ---------- */
.form-row{margin-bottom:16px}
label{display:block;font-size:13px;font-weight:700;margin-bottom:6px}
label .req{color:#ff4d4f}
input[type=text],input[type=password],input[type=search],select,textarea{
  width:100%;padding:11px 13px;border:1px solid #e3e8f0;border-radius:10px;font-size:14px;
  outline:none;background:#fff;color:#1a2233;font-family:inherit;
}
input:focus,select:focus,textarea:focus{border-color:#1677ff;box-shadow:0 0 0 3px rgba(22,119,255,.1)}
.help{color:#8a94a6;font-size:12.5px;margin:6px 0 0}
.inline{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}
.inline .form-row{flex:1 1 260px;margin-bottom:0}
.captcha-row{display:flex;gap:10px;align-items:center}
.captcha-q{background:#f5f8ff;border:1px dashed #c7dbff;border-radius:10px;padding:11px 14px;font-weight:700;color:#1677ff;white-space:nowrap}

/* ---------- 按钮 ---------- */
.btn{
  display:inline-block;padding:11px 20px;border-radius:10px;border:1px solid transparent;background:#1677ff;color:#fff;
  font-size:14px;font-weight:700;cursor:pointer;text-decoration:none;
}
.btn:hover{background:#0f68e6;text-decoration:none}
.btn-lg{padding:13px 26px;font-size:15px}
.btn-ghost{background:#fff;border-color:#dfe5ee;color:#3b465c}
.btn-ghost:hover{background:#f7f9fc;color:#1677ff}
.btn-danger{background:#fff;border-color:#ffd2d2;color:#ff4d4f}
.btn-danger:hover{background:#fff5f5;color:#ff4d4f}
.btn-sm{padding:6px 12px;font-size:12.5px;border-radius:8px}

/* ---------- 提示 ---------- */
.ok-msg,.alert,.info{
  padding:12px 16px;border-radius:11px;font-size:13.5px;margin:16px 0;
}
.ok-msg{background:#eafff4;border:1px solid rgba(24,181,102,.4);color:#12a05c}
.alert{background:#fff1f0;border:1px solid rgba(255,77,79,.4);color:#e03b3d}
.info{background:#f5f8ff;border:1px solid #dbe7ff;color:#3b465c}

/* ---------- 徽章 / 代码 ---------- */
.badge{display:inline-block;padding:2px 10px;border-radius:99px;font-size:12px;font-weight:700}
.badge.ok{background:#eafff4;color:#12a05c;border:1px solid rgba(24,181,102,.35)}
.badge.warn{background:#fff8e6;color:#c9920b;border:1px solid rgba(201,146,11,.35)}
.badge.off{background:#f2f4f7;color:#8a94a6;border:1px solid #e3e8f0}
.badge.gold{background:#fff5e0;color:#c9920b;border:1px solid rgba(201,146,11,.35)}
.mono{font-family:Consolas,Menlo,monospace}
.req{color:#ff4d4f}
table.kv{width:100%;border-collapse:collapse}
table.kv th,table.kv td{border-bottom:1px solid #eef1f6;padding:11px 2px;font-size:13.5px;text-align:left;vertical-align:top}
table.kv th{width:150px;color:#5b6579;font-weight:600}
table.kv tr:last-child th,table.kv tr:last-child td{border-bottom:0}
table.data{width:100%;border-collapse:collapse;font-size:13.5px}
table.data th,table.data td{border-bottom:1px solid #eef1f6;padding:10px 12px;text-align:left;white-space:nowrap}
table.data th{background:#f7f9fc;color:#5b6579;font-weight:600}
.code-box{
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  background:#f5f8ff;border:1px dashed #c7dbff;border-radius:12px;padding:16px 18px;margin:14px 0;
}
.code-box code{
  font-family:Consolas,Menlo,monospace;font-size:22px;font-weight:800;letter-spacing:1.4px;color:#1677ff;
}
code.mono{font-family:Consolas,Menlo,monospace;background:#f2f4f7;padding:1px 6px;border-radius:6px;font-size:12.5px}

/* ---------- 表格 ---------- */
.table-wrap{overflow:auto;border-radius:12px;border:1px solid #eef1f6}
table.data{width:100%;border-collapse:collapse;font-size:13.5px;background:#fff}
table.data th,table.data td{padding:11px 14px;border-bottom:1px solid #f0f3f8;text-align:left;white-space:nowrap}
table.data th{background:#fafbfd;font-size:12.5px;color:#5c6a85;font-weight:700}
table.data tr:last-child td{border-bottom:0}
table.data tr:hover td{background:#fafcff}
table.kv{width:100%;border-collapse:collapse;font-size:13.5px}
table.kv th{width:130px;text-align:left;color:#5c6a85;font-weight:600;padding:10px 0;vertical-align:top}
table.kv td{padding:10px 0}
.pager{display:flex;gap:6px;flex-wrap:wrap;padding:14px 0 2px}
.pager a,.pager span{padding:6px 12px;border-radius:8px;border:1px solid #e3e8f0;background:#fff;font-size:13px;color:#3b465c}
.pager a:hover{border-color:#c7dbff;color:#1677ff;text-decoration:none}
.pager span.cur{background:#1677ff;border-color:#1677ff;color:#fff;font-weight:700}

/* ---------- 步骤 / FAQ ---------- */
.steps{counter-reset:s;display:grid;gap:14px}
.steps .step{display:flex;gap:14px;align-items:flex-start}
.steps .step:before{
  counter-increment:s;content:counter(s);flex:0 0 26px;height:26px;border-radius:50%;
  background:#eef4ff;color:#1677ff;font-weight:800;display:grid;place-items:center;font-size:13px;
}
.steps .step b{display:block;font-size:14px}
.steps .step p{margin:2px 0 0;color:#5c6a85;font-size:13px}
.faq dt{font-weight:700;margin:14px 0 4px;font-size:13.5px}
.faq dd{margin:0;color:#5c6a85;font-size:13px}

/* ---------- 结果卡 ---------- */
.result-hero{
  border-radius:14px;padding:20px 22px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
}
.result-hero.ok{background:linear-gradient(120deg,#eafff4,#f4fffa);border:1px solid rgba(24,181,102,.35)}
.result-hero.warn{background:linear-gradient(120deg,#fff8e6,#fffdf6);border:1px solid rgba(201,146,11,.3)}
.result-hero.off{background:#f7f9fc;border:1px solid #e3e8f0}
.result-hero h3{margin:0;font-size:18px}
.result-hero p{margin:4px 0 0;color:#5c6a85;font-size:13px}

/* ---------- 后台管理端 ---------- */
.admin-head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:22px 0 0}
.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:center;padding:14px 22px;border-bottom:1px solid #f0f3f8}
.filters input[type=search]{width:240px}
.ops{display:flex;gap:6px}

/* ---------- 底栏 ---------- */
.foot{margin:40px 0 30px;text-align:center;color:#8a94a6;font-size:12.5px}
.foot p{margin:4px 0}
.foot a{color:#8a94a6}

/* ---------- 窄屏 ---------- */
@media (max-width:820px){
  .grid-2,.grid-3,.grid-4{grid-template-columns:1fr}
  .hero{padding:26px 22px}
  .hero h1{font-size:22px}
  .code-box code{font-size:18px}
  .nav a{padding:7px 10px;font-size:13px}
  .brand-text i{display:none}
}
