:root{font-family:system-ui,"Microsoft YaHei",sans-serif;color:#172338;background:#f3f6fb;font-size:16px}*{box-sizing:border-box}body{margin:0}header{height:80px;background:#fff;border-bottom:1px solid #dde4ef;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1150px)/2))}a{color:#2563eb;text-decoration:none}.brand{font-weight:750;color:#172338;font-size:20px}nav{display:flex;gap:22px;align-items:center}main{max-width:1150px;margin:48px auto;padding:0 24px}.login{max-width:470px;margin:70px auto;background:white;padding:40px;border:1px solid #dde4ef;border-radius:18px;box-shadow:0 18px 50px #19386809}h1{font-size:30px;letter-spacing:-.03em;margin:0 0 12px}h2{font-size:20px;margin:0 0 22px}p{line-height:1.8;color:#627087}.eyebrow{color:#2563eb;font-size:14px;font-weight:700;margin-bottom:15px}label{display:block;font-size:14px;font-weight:600;margin:22px 0 9px}input,select{font:inherit;width:100%;padding:12px 14px;border:1px solid #cad4e2;border-radius:8px;background:white;color:#172338}input:focus,select:focus{outline:3px solid #2563eb25;border-color:#2563eb}button{font:inherit;cursor:pointer;border:1px solid #cad4e2;background:white;border-radius:8px;padding:10px 16px;color:#253a55}button:hover{background:#edf3ff}button:disabled{opacity:.55;cursor:wait}.primary{background:#2563eb;color:#fff;border-color:#2563eb}.primary:hover{background:#1d4ed8}.wide{width:100%;margin-top:26px}.muted{color:#627087;font-size:14px}.head{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:30px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.panel{background:#fff;border:1px solid #dde4ef;border-radius:14px;padding:28px;margin-bottom:24px}.formrow{display:flex;gap:12px;align-items:end}.formrow>div{flex:1}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:14px}th{font-weight:600;color:#627087;background:#f7f9fc}td,th{padding:14px 12px;border-bottom:1px solid #e8edf4;white-space:nowrap}td button{padding:6px 10px;font-size:14px}.pill{background:#eaf1ff;color:#2563eb;padding:5px 9px;border-radius:5px}.off{background:#f0f1f4;color:#727d8e}.code{font-size:42px;font-weight:750;letter-spacing:.18em;color:#2563eb;text-align:center;padding:24px 0;overflow-wrap:anywhere}.generated{padding:18px;background:#eaf1ff;border-radius:10px;overflow-wrap:anywhere;line-height:1.8;margin-top:20px}.generated code{display:block;user-select:all;font-size:16px}.steps{padding-left:22px;color:#627087;line-height:2}.empty{text-align:center;padding:26px;color:#627087}#notice:not(:empty){position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#172338;color:#fff;padding:14px 24px;border-radius:10px;max-width:90vw;z-index:10}#result{margin-top:24px}.stats{display:flex;gap:18px;margin:24px 0}.stats>div{background:#f4f7fc;padding:14px;border-radius:8px;flex:1}.stats strong{display:block;font-size:22px;margin-top:5px}@media(max-width:760px){header{padding:0 20px;height:70px}.brand{font-size:17px}nav{gap:10px;font-size:14px}main{margin:28px auto;padding:0 16px}.login{margin:30px auto;padding:26px}.grid{grid-template-columns:1fr;gap:0}.panel{padding:20px}.formrow{flex-wrap:wrap}.formrow>div{min-width:100px}.head{align-items:start}h1{font-size:26px}.code{font-size:34px}}
dialog{width:min(520px,calc(100vw - 32px));max-height:90vh;overflow:auto;border:1px solid #dde4ef;border-radius:16px;padding:30px;color:#172338}dialog::backdrop{background:#17233888}dialog .head{margin-bottom:12px}dialog h2{margin:0}.form-error{color:#b42318;font-size:14px;line-height:1.6}.form-error:empty{display:none}
