:root{
  --bg:#f5f7fa;
  --surface:#fff;
  --ink:#17202a;
  --muted:#667085;
  --line:#d8e0e8;
  --accent:#0f766e;
  --accent2:#255a9b;
  --danger:#b42318;
  --warning:#a76512;
  --ok:#247c56;
  --radius:8px;
  --shadow:0 20px 60px rgba(23,32,42,.12);
}
*{box-sizing:border-box}
body{margin:0;min-width:340px;color:var(--ink);background:radial-gradient(circle at 20% 0,rgba(15,118,110,.12),transparent 32%),linear-gradient(180deg,#fbfcfd,#edf2f6);font-family:"Microsoft YaHei","PingFang SC","Noto Sans SC",Arial,sans-serif}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
.page{min-height:100svh;display:grid}
.hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,460px);gap:44px;align-items:center;width:min(1120px,calc(100vw - 36px));margin:auto;padding:44px 0}
.brand{display:grid;gap:18px}
.eyebrow{color:var(--accent);font-size:13px;font-weight:800}
.brand h1{margin:0;font-size:clamp(42px,6vw,76px);line-height:1.02;letter-spacing:0}
.brand p{max-width:560px;margin:0;color:#405064;font-size:18px;line-height:1.65}
h2{margin:0;font-size:18px}
.terminal,.panel{background:rgba(255,255,255,.94);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.terminal{padding:22px;display:grid;gap:18px}
.panel{padding:20px}
.form{display:grid;gap:14px}
label{display:grid;gap:8px;color:var(--muted);font-size:13px;font-weight:700}
input,select,textarea{width:100%;min-height:42px;padding:9px 11px;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:var(--radius);outline:0}
textarea{resize:vertical;line-height:1.5}
input:focus,select:focus,textarea:focus{border-color:#8bc7c0;box-shadow:0 0 0 3px rgba(15,118,110,.12)}
.code-input{font-size:24px;letter-spacing:1.5px;text-align:center;font-weight:800}
.compact-code{font-size:17px;letter-spacing:1px;text-align:left}
.button{min-height:42px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;color:var(--ink);padding:0 14px}
.button.primary{border-color:var(--accent);background:var(--accent);color:#fff}
.button.danger{border-color:var(--danger);background:var(--danger);color:#fff}
.button.compact{min-height:30px;padding:0 9px;font-size:12px}
.button:disabled{opacity:.58;cursor:not-allowed}
.result{display:grid;gap:12px;padding-top:4px}
.kv{display:grid;grid-template-columns:120px minmax(0,1fr);gap:8px 12px;padding:14px;background:#f8fbfc;border:1px solid var(--line);border-radius:var(--radius)}
.kv span{color:var(--muted)}
.kv strong{overflow-wrap:anywhere}
.code-box{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;background:#edf8f5;border:1px solid #bfe5dc;border-radius:var(--radius)}
.code-box span{display:grid;gap:4px;color:var(--muted);font-size:13px;font-weight:700}
.code-box small{min-height:18px;color:#247c56;font-size:12px;font-weight:700;letter-spacing:0}
.code-box strong{font-family:Consolas,monospace;font-size:34px;letter-spacing:6px}
.notice{padding:12px 14px;border-radius:var(--radius);background:#fff7ed;border:1px solid #fed7aa;color:#7c2d12;line-height:1.5}
.notice.ok{background:#edf8f5;border-color:#bfe5dc;color:#123b35}
.pool-panel{display:grid;gap:10px;max-width:560px;padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:rgba(255,255,255,.72)}
.pool-summary{font-weight:800;color:#20323c}
.pool-groups{display:flex;gap:8px;flex-wrap:wrap}
.pool-groups span{padding:5px 8px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--muted);font-size:12px;font-weight:700}
.renew-box{display:grid;gap:12px;padding-top:16px;border-top:1px solid var(--line)}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 22px;background:rgba(255,255,255,.9);border-bottom:1px solid var(--line)}
.topbar h1{font-size:20px;margin:0}
.layout{width:min(1180px,calc(100vw - 28px));margin:22px auto;display:grid;grid-template-columns:320px minmax(0,1fr);gap:16px}
.stack{display:grid;gap:14px}
.metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.metric{padding:14px;background:#f8fbfc;border:1px solid var(--line);border-radius:var(--radius)}
.metric strong{display:block;font-size:28px}
.table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.table th,.table td{padding:11px 12px;border-bottom:1px solid var(--line);text-align:left;font-size:13px;vertical-align:top}
.table th{color:var(--muted);background:#f8fbfc}
.table td{overflow-wrap:anywhere}
.actions{display:flex;gap:8px;flex-wrap:wrap}
.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:2px 0}
.select-inline{display:inline-flex;grid-template-columns:auto;align-items:center;gap:8px;color:var(--muted);font-size:13px;font-weight:700}
.select-inline select{width:auto;min-width:86px;min-height:34px;padding:5px 9px}
.pager,.row-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.row-actions .button{white-space:nowrap}
.small{font-size:12px}
.code-line{display:flex;align-items:center;gap:8px;min-width:190px}
.code-full,.code-partial{font-family:Consolas,monospace;letter-spacing:1px;white-space:nowrap}
.code-partial{color:var(--muted)}
.created-list{display:grid;gap:8px;max-height:260px;overflow:auto}
.created-code{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;background:#f8fbfc;border:1px solid var(--line);border-radius:var(--radius);font-family:Consolas,monospace}
.created-code strong{white-space:nowrap;letter-spacing:1px}
.muted{color:var(--muted)}
.hidden{display:none!important}
@media(max-width:860px){
  .hero,.layout{grid-template-columns:1fr}
  .hero{padding:24px 0}
  .metrics{grid-template-columns:1fr}
  .kv{grid-template-columns:1fr}
  .topbar{align-items:flex-start;flex-direction:column}
}
