:root{--qh-bg: #f4f6fb;--qh-card: #ffffff;--qh-primary: #2f6dff;--qh-primary-deep: #1f55d5;--qh-primary-soft: #edf3ff;--qh-text: #111827;--qh-muted: #64748b;--qh-border: #e6ebf3;--qh-danger: #dc2626;--qh-warning: #d97706;--qh-shadow: 0 8px 24px rgba(15, 23, 42, .06);--qh-shadow-hover: 0 14px 30px rgba(15, 23, 42, .12)}*{box-sizing:border-box}html,body,#app{margin:0;min-height:100%;font-family:Microsoft YaHei,PingFang SC,Arial,sans-serif;color:var(--qh-text);background:var(--qh-bg)}h1,h2,h3{margin:0 0 10px;letter-spacing:.2px}.panel{background:var(--qh-card);border:1px solid var(--qh-border);border-radius:12px;box-shadow:var(--qh-shadow);padding:16px}.sub{margin:0 0 10px;color:var(--qh-muted);font-size:13px}.error{margin:0 0 12px;color:var(--qh-danger);font-size:13px}.toolbar{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px;align-items:center}input,select,textarea{border:1px solid var(--qh-border);border-radius:10px;padding:9px 11px;background:#fff;min-height:38px;color:var(--qh-text)}input:focus,select:focus,textarea:focus{outline:none;border-color:#9fb8ff;box-shadow:0 0 0 3px #2563eb26}button{border:1px solid var(--qh-border);border-radius:10px;padding:8px 14px;background:#fff;color:var(--qh-text);cursor:pointer;transition:all .2s ease;font-weight:500}button:hover:not(:disabled){border-color:#aec5ff;box-shadow:0 6px 16px #2563eb24;transform:translateY(-1px)}button:disabled{opacity:.55;cursor:not-allowed}table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--qh-border);border-radius:10px;overflow:hidden}thead th{background:#eff4ff;color:#1e3a8a;font-weight:600}th,td{border-bottom:1px solid #edf2fc;text-align:left;padding:10px;font-size:13px}tbody tr:hover{background:#f8faff}.btn-primary{background:linear-gradient(135deg,var(--qh-primary),var(--qh-primary-deep));color:#fff;border-color:transparent}.btn-danger{background:#fff0f0;color:#b42318;border-color:#f3c9c9}.page-head{border:1px solid #e3e8f3;border-radius:10px;background:#fff;padding:14px;margin-bottom:16px}.page-title-row{display:flex;justify-content:space-between;align-items:center;gap:12px}.page-title-row h2{margin:0}.kpi-grid{margin-top:12px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.kpi-item{border:1px solid #e2eafb;border-radius:14px;padding:12px;background:#fff}.kpi-item .label{font-size:12px;color:var(--qh-muted)}.kpi-item .value{margin-top:5px;font-size:22px;font-weight:700;color:#1f3f8f}.chip{display:inline-block;border-radius:999px;padding:2px 10px;font-size:12px;line-height:20px;border:1px solid transparent}.chip-success{background:#eaf2ff;color:#1e40af}.chip-gray{background:#f3f4f6;color:#4b5563}.chip-warning{background:#fff6ea;color:#9a5b03}.chip-danger{background:#fff1f1;color:#b42318}@media (max-width: 1024px){.kpi-grid{grid-template-columns:1fr}.page-title-row{flex-direction:column;align-items:flex-start}}.el-card{border-radius:14px!important;border-color:var(--qh-border)!important;box-shadow:var(--qh-shadow)!important}.el-card__header{padding:16px 18px!important;border-bottom:1px solid #edf1f8!important}.el-card__body{padding:16px 18px!important}.el-button{border-radius:10px!important;font-weight:500!important}.el-button--primary{background:linear-gradient(135deg,var(--qh-primary),var(--qh-primary-deep))!important;border-color:transparent!important}.el-input__wrapper,.el-select__wrapper,.el-textarea__inner,.el-date-editor.el-input__wrapper{border-radius:10px!important;box-shadow:0 0 0 1px var(--qh-border) inset!important}.el-input__wrapper.is-focus,.el-select__wrapper.is-focused,.el-date-editor.el-input__wrapper.is-focus{box-shadow:0 0 0 1px #8aacff inset,0 0 0 3px #2f6dff1f!important}.el-table{border-radius:12px!important;overflow:hidden!important}.el-table th.el-table__cell{background:#f4f7ff!important;color:#27458f!important;font-weight:600!important}.el-table--border .el-table__inner-wrapper:before{height:0!important}.el-statistic__head{color:var(--qh-muted)!important}.el-statistic__content{color:#1f3f8f!important}.admin-page-card{background:linear-gradient(180deg,#fff,#fff 72%,#fcfdff)}.admin-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px}.row-actions{display:flex;flex-wrap:wrap;align-items:center;gap:2px}
