:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#303133;background:#f5f7fa}*{box-sizing:border-box}body{margin:0}button{background:#4361ee;color:#fff;border:0;border-radius:10px;padding:9px 14px;cursor:pointer}input,textarea,select{border:1px solid #e4e7ed;border-radius:10px;padding:10px;background:#fff;color:#303133}textarea{min-height:80px}.login{min-height:100vh;display:grid;place-items:center}.card{background:#fff;border:1px solid #e4e7ed;border-radius:16px;padding:20px;box-shadow:0 10px 30px #0000000a}.login-card{width:360px;display:grid;gap:12px}.error{color:#e03131;background:#fff5f5;padding:8px;border-radius:8px}.app{display:grid;grid-template-columns:220px 1fr;min-height:100vh}aside{background:#fff;border-right:1px solid #e4e7ed;padding:24px}aside a{display:block;color:#606266;text-decoration:none;padding:12px;border-radius:12px;margin:8px 0}.active{background:#eef2ff!important;color:#4361ee!important}.main{padding:24px}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:16px}.stat span{color:#606266}.stat strong{display:block;font-size:32px;margin-top:8px}.toolbar{display:flex;gap:10px;margin-bottom:14px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;border-bottom:1px solid #e4e7ed;padding:12px;vertical-align:middle}th{color:#606266;font-weight:600;background:#fafafa}.ghost{background:#eef2ff;color:#4361ee;margin-right:8px}.danger{background:#fff5f5;color:#e03131}.muted{color:#909399;text-align:center}.modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#0005;display:grid;place-items:start center;padding:40px;overflow:auto}.editor{width:min(1000px,95vw)}.form{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}.form textarea{grid-column:1/-1}.form label{display:flex;gap:8px;align-items:center}.switch{width:46px;height:26px;background:#dcdfe6;border-radius:999px;padding:3px}.switch span{display:block;width:20px;height:20px;background:#fff;border-radius:50%;transition:.2s}.switch.on{background:#2fb344}.switch.on span{transform:translate(20px)}.target-form{display:grid;grid-template-columns:1fr 2fr 100px auto;gap:10px;margin:12px 0}@media (max-width:900px){.app{grid-template-columns:1fr}aside{display:flex;gap:8px;overflow:auto}.cards,.form,.target-form{grid-template-columns:1fr}.main{padding:14px}}
