*{box-sizing:border-box}body{margin:0;background:#f6f7fb;color:#222;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,"Microsoft YaHei",sans-serif}.wrap{max-width:1180px;margin:0 auto;padding:24px}.wrap.small{max-width:420px}.card{background:#fff;border-radius:14px;padding:22px;margin:16px 0;box-shadow:0 6px 24px rgba(15,23,42,.08)}.top{display:flex;justify-content:space-between;align-items:center;gap:12px}h1{margin:0 0 16px}h2{margin-top:0}label{display:block;margin:12px 0 6px;font-weight:600}label span{color:#d33}input,textarea,select{width:100%;padding:11px;border:1px solid #d9dce3;border-radius:8px;font-size:15px}button{margin-top:14px;border:0;border-radius:8px;background:#2563eb;color:#fff;padding:11px 18px;font-size:15px;cursor:pointer}button.danger{background:#dc2626}.ok{background:#ecfdf5;color:#047857;padding:10px 12px;border-radius:8px;margin:10px 0}.err{background:#fef2f2;color:#b91c1c;padding:10px 12px;border-radius:8px}.table{overflow:auto}table{width:100%;border-collapse:collapse}th,td{border-bottom:1px solid #eee;text-align:left;padding:10px;vertical-align:top}td p{margin:.2em 0}.grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.mono{word-break:break-all;background:#f1f5f9;padding:10px;border-radius:8px;font-family:ui-monospace,Consolas,monospace}.fieldrow{display:grid;grid-template-columns:1.3fr 1fr auto;gap:10px;align-items:center;margin:8px 0}.check{display:flex;gap:6px;align-items:center;margin:0;font-weight:400}.check input{width:auto}.foot{text-align:center}a{color:#2563eb}.qrlist{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}.qritem{display:block;text-decoration:none;color:#1f2937;border:1px solid #e5e7eb;border-radius:12px;padding:12px;background:#fafafa}.qritem.active{border-color:#2563eb;background:#eff6ff}.qritem b,.qritem span,.qritem small{display:block}.qritem span{color:#64748b;margin-top:4px}.qritem small{color:#475569;margin-top:8px}@media(max-width:760px){.grid,.fieldrow{grid-template-columns:1fr}.wrap{padding:14px}.top{align-items:flex-start;flex-direction:column}}
