:root{font-family:"Microsoft YaHei",system-ui,sans-serif;background:#f3f6fa;color:#243c51;font-size:14px}*{box-sizing:border-box}body{margin:0}header{height:76px;background:#fff;border-bottom:1px solid #e2e9f0;display:flex;align-items:center;justify-content:space-between;padding:0 5vw}.brand{font-size:26px;font-weight:700;color:#129db1;display:flex;align-items:center;gap:14px}.brand span{font-size:17px;color:#344f65}main{max-width:1500px;margin:0 auto;padding:32px 26px}h1{font-size:27px;margin:10px 0}h2{font-size:17px;margin:0}p{color:#8290a3;line-height:1.7;margin:8px 0}button,input,textarea{font:inherit;border:1px solid #d9e2eb;border-radius:8px;background:#fff;padding:10px 13px;color:#405a70}button{cursor:pointer;white-space:nowrap}button:hover{background:#eff8fa}button:disabled{opacity:.45;cursor:default}button.primary{background:#139eb2;border-color:#139eb2;color:#fff}button.danger{color:#b95b5b;border-color:#efcaca}input:focus,textarea:focus{outline:2px solid #20b4c536}.card{background:#fff;border:1px solid #dfe7ef;border-radius:12px;box-shadow:0 3px 10px #203d4d03}.login{max-width:440px;padding:35px;margin:8vh auto}.login form{display:grid;gap:20px;margin-top:25px}.login label{display:grid;gap:10px}.eyebrow{font-size:10px;letter-spacing:1.8px;color:#12a0b4;font-weight:700}.page-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:22px}.stats article{padding:20px}.stats span{display:block;color:#8392a4;font-size:13px}.stats b{display:block;font-size:34px;margin:11px 0;color:#284e62}.stats article:first-child b{color:#139db1}.stats small{color:#a2afbd;font-size:11px}.admin-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.admin-tabs button.active{background:#139eb2;border-color:#139eb2;color:white}.view-section{padding:0 0 14px;overflow:hidden}.table-toolbar,.section-heading{padding:20px;display:flex;align-items:center;justify-content:space-between;gap:14px}.table-toolbar form{display:flex;gap:8px}.table-toolbar input{min-width:250px}.create-form{display:grid;grid-template-columns:minmax(250px,1fr) 150px auto;gap:12px;align-items:end;padding:0 20px 20px}.create-form label{display:grid;gap:7px}.generated-wrap{margin:0 20px 20px;padding:16px;background:#f3fafb;border:1px solid #cce9ed;border-radius:10px;display:grid;gap:10px}.generated-wrap textarea,.detail-modal textarea{width:100%;font-family:Consolas,monospace;overflow-wrap:anywhere}.actions{display:flex;gap:7px;flex-wrap:wrap}.small{padding:6px 9px;font-size:12px}.table-scroll{overflow:auto;min-height:160px}table{border-collapse:collapse;width:100%;font-size:12px;text-align:left}th{background:#f8fafc;color:#94a0b0;font-weight:500;padding:14px 16px;white-space:nowrap}td{padding:14px 16px;border-bottom:1px solid #edf1f5;max-width:260px;overflow-wrap:anywhere}.badge{display:inline-block;padding:4px 8px;border-radius:5px;background:#eef3f7;color:#647b8e;white-space:nowrap}.badge.good{background:#eaf7f2;color:#2b9a7f}.badge.warn{background:#fff2ed;color:#c48565}.pagination{padding:15px 20px;display:flex;align-items:center;justify-content:space-between;color:#93a0af;font-size:12px}.pagination button{padding:7px 13px;margin-left:7px}.note{font-size:12px;margin-top:18px}.muted{color:#8795a6;font-size:12px}.row-error{display:block;color:#b76565;font-size:11px;max-width:260px;margin-top:4px;white-space:normal}#message{color:#b76565;white-space:pre-wrap;position:sticky;bottom:8px;background:#fff;padding:6px 0}[hidden]{display:none!important}.detail-modal{border:1px solid #dfe7ef;border-radius:12px;width:min(850px,94vw);padding:22px;box-shadow:0 16px 60px #203d4d30}.detail-modal::backdrop{background:#1a2d3d66}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.detail-modal textarea{margin:10px 0 14px;min-height:180px}.detail-modal p{overflow-wrap:anywhere}@media(max-width:850px){.stats{grid-template-columns:1fr 1fr}.page-title{align-items:flex-start;gap:10px}.table-toolbar{align-items:flex-start;flex-direction:column}.table-toolbar form{flex-wrap:wrap}.table-toolbar input{min-width:0;width:100%}.create-form{grid-template-columns:1fr}.create-form button{width:100%}main{padding:22px 12px}header{padding:0 15px}.brand span{font-size:14px}}
