:root{font-family:"Microsoft YaHei",system-ui,sans-serif;color:#332e3d;background:#f7f5fa;--purple:#654781;--line:#e6e0ec}*{box-sizing:border-box}body{margin:0}main{max-width:1060px;margin:52px auto;padding:0 24px}header,.section-heading{display:flex;justify-content:space-between;align-items:center;gap:16px}h1{font-size:28px;color:#513266;margin:0 0 10px}h2{font-size:18px;margin:0 0 20px}p{line-height:1.75;margin:8px 0;color:#716a7b}.local{color:#796d84;font-size:13px;white-space:nowrap}.workspace{display:grid;grid-template-columns:340px 1fr;background:white;border:1px solid var(--line);border-radius:16px;margin-top:30px;box-shadow:0 7px 25px #42245b06}.settings{padding:28px;border-right:1px solid var(--line)}.result{padding:28px;min-width:0}label{display:block;font-size:14px;margin-bottom:20px}input,select,textarea{font:inherit;color:inherit;border:1px solid #d8d0df;background:#fff;border-radius:8px;padding:11px 12px;width:100%;margin-top:9px}input:focus,select:focus,textarea:focus,button:focus-visible{outline:3px solid #e4d7f0;outline-offset:1px;border-color:#9476af}.fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}small,.hint{font-size:12px;color:#82778d;line-height:1.8}small{display:block;margin-top:7px}button{font:inherit;font-size:14px;border:1px solid #dcd2e5;border-radius:8px;background:white;color:#5c3e77;padding:11px 15px;cursor:pointer}button:hover:not(:disabled){background:#f6f1fa}button:disabled{opacity:.45;cursor:default}.primary{background:var(--purple);color:white;border-color:var(--purple);width:100%;font-weight:600}.primary:hover:not(:disabled){background:#53366d}.status{font-size:13px;min-height:24px}.status.error{color:#a03d3d}#count{font-size:12px;color:#7e6d8f}.section-heading h2{margin:0}#batch-detail{font-size:13px;margin:16px 0}#codes{resize:vertical;min-height:238px;max-height:450px;margin-top:0;font-family:Consolas,monospace;font-size:14px;line-height:1.8;background:#fbf9fd;white-space:pre}.actions{display:flex;gap:9px;flex-wrap:wrap;margin:18px 0 12px}details{font-size:13px;border-top:1px solid var(--line);padding-top:14px;margin-top:18px}summary{cursor:pointer;color:#675076}details p{font-size:12px}.history{margin-top:30px;border:1px solid var(--line);background:white;border-radius:16px;padding:26px}.history .section-heading p{font-size:13px}#batches{margin-top:20px}.batch{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:15px;border-top:1px solid #eee8f2;padding:16px 0}.batch:first-child{border-top:0}.batch.selected{background:#faf7fd}.batch-name{font-weight:600;font-size:14px;overflow-wrap:anywhere}.batch-info{font-size:12px;color:#897d94;margin-top:6px}footer{font-size:12px;color:#918799;margin:25px 0 40px;line-height:1.8}@media(max-width:740px){main{margin:25px auto;padding:0 16px}.workspace{grid-template-columns:1fr}.settings{border-right:0;border-bottom:1px solid var(--line)}.settings,.result,.history{padding:22px}header{align-items:flex-start}h1{font-size:24px}.local{font-size:11px}.batch-info{line-height:1.8}.actions button{flex:1;padding:11px 8px}.fields{gap:12px}}
.section-heading>button{flex-shrink:0;white-space:nowrap}

[hidden]{display:none!important}.login-panel{max-width:430px;background:white;padding:28px;border:1px solid var(--line);border-radius:16px;margin-top:28px}.login-panel label{display:block;margin-bottom:18px}.login-panel input{width:100%}.actions{flex-wrap:wrap}#batches button{max-width:100%;overflow-wrap:anywhere}

#logout{white-space:nowrap;flex-shrink:0}.actions button{white-space:nowrap;flex:1 1 110px}#batches{display:grid;gap:10px}
