:root{font-family:"Microsoft YaHei",system-ui,sans-serif;color:#202b40;background:#f4f6fb;font-size:14px;--brand:#625be6;--line:#e5e9f2;--muted:#738098}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;border:0;border-radius:8px;padding:10px 16px;background:var(--brand);color:white;font-weight:600}button:disabled{opacity:.5;cursor:wait}input,select{width:100%;padding:11px;border:1px solid #dce1ec;border-radius:8px;background:white;color:#202b40}input:focus,select:focus{outline:2px solid #c7c2ff;outline-offset:1px}label{display:block;margin-bottom:7px;font-weight:600}h1,h2,h3,p{margin-top:0}h1{font-size:24px}h2{font-size:18px}small,.muted{color:var(--muted)}.login{min-height:100vh;display:grid;place-items:center;background:radial-gradient(ellipse at 15% 10%,#686bd1,transparent 55%),linear-gradient(125deg,#192445,#454799)}.login-card{width:min(420px,92vw);border-radius:20px;padding:36px;background:white;box-shadow:0 25px 80px #10173270}.mark{width:48px;height:48px;border-radius:14px;background:var(--brand);color:white;display:grid;place-items:center;font-size:24px;font-weight:bold;margin-bottom:22px}.field{margin:18px 0}.wide{width:100%}.error{color:#c54752;min-height:22px;margin:12px 0 0}.layout{min-height:100vh;display:grid;grid-template-columns:230px 1fr}.sidebar{background:#1b2347;color:#d8e1ff;padding:26px 16px;position:sticky;top:0;height:100vh}.brand{font-size:17px;font-weight:bold;padding:0 10px 28px}.brand small{font-weight:400;font-size:11px;display:block;margin-top:5px;color:#a5afd4}.platforms{display:flex;gap:5px;padding-bottom:22px}.platforms button{font-size:12px;padding:8px 9px;background:#303b66;color:#b7c1e2}.platforms .active{background:#7770ef;color:white}.nav{display:grid;gap:8px}.nav button{text-align:left;background:none;color:#bac6e9;padding:13px}.nav button.active,.nav button:hover{background:#333f71;color:white}.sidefoot{position:absolute;bottom:24px;left:26px;font-size:11px;color:#a5afd4}.content{padding:28px 34px;min-width:0}.top{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.top p{color:var(--muted);margin:6px 0 0}.secondary{background:#e9e8fc;color:#5c55d7}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px}.stat,.card{background:white;border:1px solid var(--line);border-radius:13px;padding:22px}.stat b{display:block;font-size:27px;margin-top:10px}.card{margin-bottom:20px}.card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.card-head h2{margin:0}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;white-space:nowrap}th,td{text-align:left;padding:14px 11px;border-bottom:1px solid var(--line)}th{color:#7d879a;font-size:12px;font-weight:600}tr:last-child td{border:0}.pill{display:inline-block;border-radius:20px;padding:4px 9px;font-size:12px;background:#eef0f7;color:#738098}.online,.applied{background:#e7f7ee;color:#238554}.pending{background:#fff3dd;color:#a6721b}.failed,.offline{background:#fff0f1;color:#c25460}.search{display:flex;gap:10px;margin-bottom:16px}.search input{max-width:400px}.search select{max-width:260px}.empty{text-align:center;padding:36px;color:#8d97ab}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.form-grid .full{grid-column:1/-1}.form-grid .field{margin:0}.notice{padding:14px 18px;border-radius:9px;background:#eeedff;color:#6258ad;margin-bottom:20px;line-height:1.8}.reserved{padding:70px 20px;text-align:center}.statusline{font-size:12px;color:#7a879c}.link{padding:6px 10px;background:#eeedff;color:#625be6}.login-card p{line-height:1.8}.flow{display:flex;flex-wrap:wrap;gap:14px;margin:18px 0}.flow div{background:#f3f4fb;border-radius:10px;padding:18px;flex:1;min-width:180px}.flow b{display:block;margin-bottom:6px}.danger{color:#be5362}.account{display:flex;align-items:center;gap:14px}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#33a46e;margin-right:6px}#toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%);background:#242f48;color:white;border-radius:10px;padding:13px 24px;box-shadow:0 8px 30px #18213733;display:none;z-index:10;max-width:90vw}#toast.show{display:block}@media(max-width:1100px){.stats{grid-template-columns:repeat(2,1fr)}.content{padding:22px}.layout{grid-template-columns:190px 1fr}}

/* PK console follows the reference's client cards, stacked forms, and battle panel. */
:root{--brand:#5b5ce2;--line:#e6ebf2;--muted:#697386;color:#172033;background:#f4f7fb}
.sidebar{background:#192044}.layout{grid-template-columns:240px minmax(0,1fr)}
.nav button.active,.nav button:hover{background:#323d72}
.card,.stat{border-radius:12px;box-shadow:0 3px 12px #2d3e6309}
th{background:#fafbfc}
.client-status-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:18px}
.client-status-card{display:flex;align-items:center;gap:13px;min-height:70px;padding:14px 18px;background:white;border:1px solid var(--line);border-radius:13px;box-shadow:0 3px 12px #2d3e6309}
.client-status-card b,.client-status-card small{display:block}
.client-status-card .pill{margin-left:auto}
.client-letter{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;color:white;font-size:18px;font-weight:800}
.client-letter.a{background:#3568c9}.client-letter.b{background:#d95038}
.pk-workspace{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;align-items:start;margin-bottom:20px}
.pk-simulators{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.pk-simulator,.battle-card{margin:0}
.simulator-heading{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:16px}
.simulator-heading h2{margin:0 0 4px}.simulator-heading p{margin:0}
.protocol-chip{white-space:nowrap;padding:5px 10px;border-radius:16px;color:#596b87;background:#eef1f6;font-size:12px;font-weight:700}
.pk-simulator label{margin:0}.pk-simulator input,.pk-simulator select{margin-top:6px;font-weight:400}
.pk-simulator input[readonly]{background:#f5f7fa;color:#576681}
.simulator-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:18px}
.pk-send{background:#d95038}
.battle-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid var(--line);border-radius:10px;overflow:hidden}
.battle-stats div{min-height:68px;padding:12px;border-bottom:1px solid var(--line);border-right:1px solid var(--line)}
.battle-stats div:nth-child(2n){border-right:0}.battle-stats div:nth-last-child(-n+2){border-bottom:0}
.battle-stats b,.battle-stats small{display:block}.battle-stats b{margin-top:4px;overflow-wrap:anywhere}
.test-steps{margin-top:16px;padding:14px;border-radius:10px;color:#4d6280;background:#f2f5fa;line-height:1.65}
@media(max-width:1100px){.layout{grid-template-columns:190px minmax(0,1fr)}}
@media(max-width:920px){.pk-simulators{grid-template-columns:minmax(0,1fr)}}


.sidebar{padding:22px 14px;color:#eaf0ff}.brand{font-weight:800;padding:0 10px 24px}
.brand small{color:#aeb8e3}.nav{gap:0}
.nav button{display:flex;align-items:center;gap:9px;width:100%;padding:11px 12px;margin:4px 0;border-radius:8px;color:#bfcaeb;font-weight:400}
.nav button span{width:16px;text-align:center;color:#aeb8e3}
.nav button.active,.nav button.active span,.nav button:hover{color:#fff}
.form-grid > *{min-width:0}
.form-grid .form-action{align-self:end}
.search{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:700px){
  .layout{grid-template-columns:clamp(94px,26vw,160px) minmax(0,1fr)}
  .sidebar{padding:12px 6px;overflow:auto}
  .brand{font-size:13px;padding:0 4px 14px}
  .nav button{padding:8px 4px;gap:4px}
  .sidefoot{display:none}
  .content{padding:10px;overflow-wrap:anywhere}
  .top,.search{flex-wrap:wrap}
  .stats,.client-status-grid,.form-grid{gap:8px}
  .card,.stat,.client-status-card{min-width:0;padding:10px}
  .client-status-card{flex-wrap:wrap}
}
