:root{--bg: #f4f7fb;--bg-soft: #eef3f8;--panel: #ffffff;--panel-soft: #f7fafc;--sidebar: #111827;--sidebar-soft: #172033;--border: #dfe6ef;--border-strong: #c6d1df;--text: #111827;--text-soft: #334155;--muted: #64748b;--brand: #155e75;--brand-strong: #0f4d61;--brand-soft: #e8f5f7;--accent: #7c3aed;--accent-soft: #f1ecff;--danger: #b42318;--success: #067647;--warning: #b54708;--shadow: 0 16px 36px rgba(15, 23, 42, .08);--shadow-soft: 0 8px 22px rgba(15, 23, 42, .055);--shadow-line: 0 1px 0 rgba(15, 23, 42, .04);--radius: 8px;--control-radius: 6px;--layout-sidebar-width: 252px;--layout-sidebar-collapsed-width: 76px;--layout-header-height: 86px;--el-color-primary: #155e75;--el-color-primary-light-3: #28788e;--el-color-primary-light-5: #6aa5b3;--el-color-primary-light-7: #b7d6dd;--el-color-primary-light-8: #d3e7eb;--el-color-primary-light-9: #eaf4f6;--el-color-primary-dark-2: #164e63;--el-color-success: #067647;--el-color-warning: #b54708;--el-color-danger: #b42318;--el-text-color-primary: var(--text);--el-text-color-regular: #334155;--el-text-color-secondary: var(--muted);--el-border-color: var(--border);--el-border-color-light: #edf1f5;--el-border-color-lighter: #edf1f5;--el-fill-color-light: #f8fafc;--el-fill-color-lighter: #fbfdff;--el-fill-color-extra-light: #fbfdff;--el-bg-color: var(--panel);--el-bg-color-overlay: var(--panel);--el-fill-color-blank: var(--panel);--el-border-radius-base: var(--control-radius)}:root.theme-dark{--bg: #101827;--bg-soft: #141d2c;--panel: #182233;--panel-soft: #202b3d;--sidebar: #0b1220;--sidebar-soft: #111827;--border: #2a3648;--border-strong: #334155;--text: #e5e7eb;--text-soft: #cbd5e1;--muted: #94a3b8;--brand: #22d3ee;--brand-strong: #67e8f9;--brand-soft: rgba(34, 211, 238, .13);--accent: #a78bfa;--accent-soft: rgba(167, 139, 250, .14);--danger: #f87171;--success: #34d399;--warning: #fbbf24;--shadow: 0 18px 42px rgba(0, 0, 0, .34);--shadow-soft: 0 10px 28px rgba(0, 0, 0, .24);--shadow-line: 0 1px 0 rgba(255, 255, 255, .04);--el-color-primary: #22d3ee;--el-color-primary-light-3: #38bdf8;--el-color-primary-light-5: #0891b2;--el-color-primary-light-7: #155e75;--el-color-primary-light-8: #164e63;--el-color-primary-light-9: #0f2f3a;--el-color-primary-dark-2: #67e8f9;--el-color-success: #34d399;--el-color-warning: #fbbf24;--el-color-danger: #f87171;--el-text-color-primary: var(--text);--el-text-color-regular: var(--text-soft);--el-text-color-secondary: var(--muted);--el-border-color: var(--border);--el-border-color-light: #263244;--el-border-color-lighter: #263244;--el-fill-color-light: var(--panel-soft);--el-fill-color-lighter: #1b2638;--el-fill-color-extra-light: #1b2638;--el-bg-color: var(--panel);--el-bg-color-overlay: var(--panel);--el-fill-color-blank: var(--panel)}*{box-sizing:border-box}html,body,#app{margin:0;min-height:100%;font-family:Inter,PingFang SC,Hiragino Sans GB,Microsoft YaHei,system-ui,-apple-system,sans-serif;color:var(--text);background:var(--bg)}body{min-height:100vh;line-height:1.5}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-soft)}.app-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 18px;border:0;border-radius:var(--control-radius);background:var(--brand);color:#fff;font-weight:600;transition:transform .18s ease,opacity .18s ease,background .18s ease}.app-button:hover{background:var(--brand-strong);transform:translateY(-1px)}.app-button:disabled{opacity:.6;cursor:not-allowed}.app-button.secondary{background:var(--panel);color:var(--text);border:1px solid var(--border-strong)}.app-button.ghost{background:transparent;color:var(--text);border:1px dashed var(--border-strong)}.app-input,.app-select{width:100%;height:42px;padding:0 14px;border:1px solid var(--border-strong);border-radius:var(--control-radius);background:var(--panel);color:var(--text);outline:none;transition:border-color .18s ease,box-shadow .18s ease}.app-input:focus,.app-select:focus{border-color:var(--brand);box-shadow:0 0 0 4px #155e751f}.app-textarea{width:100%;min-height:96px;padding:12px 14px;border:1px solid var(--border-strong);border-radius:var(--control-radius);background:var(--panel);color:var(--text);outline:none;resize:vertical}.app-textarea:focus{border-color:var(--brand);box-shadow:0 0 0 4px #155e751f}.page-shell{display:grid;align-content:start;grid-auto-rows:max-content;gap:16px;padding:18px;min-height:100%;background:transparent}.page-header{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:58px;margin-bottom:0;padding:0;border-bottom:0}.page-title{margin:0;font-size:22px;font-weight:760;letter-spacing:0;color:var(--text)}.page-subtitle{margin:5px 0 0;color:var(--muted);font-size:14px;line-height:1.65}.toolbar{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.table-wrap{overflow:auto;border-radius:calc(var(--radius) - 4px)}.app-table{width:100%;border-collapse:collapse}.app-table th,.app-table td{padding:14px 16px;border-bottom:1px solid var(--border);text-align:left;font-size:14px}.app-table th{color:var(--muted);font-weight:600;background:var(--panel-soft)}.status-badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:700}.status-badge.success{color:var(--success);background:#0676471a}.status-badge.danger{color:var(--danger);background:#b423181a}.empty-state{padding:44px 16px;text-align:center;color:var(--muted)}.inline-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.inline-form-grid label span{display:block;margin-bottom:8px;color:var(--muted);font-size:14px}.form-panel{margin-top:18px;padding:20px}.card-block{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow-soft)}.card-block .el-card__body{padding:18px}.el-button{border-radius:var(--control-radius);font-weight:600;transition:transform .16s ease,border-color .16s ease,background .16s ease,color .16s ease}.el-button:not(.is-disabled):active{transform:translateY(1px)}.el-button--primary{--el-button-bg-color: var(--brand);--el-button-border-color: var(--brand);--el-button-hover-bg-color: var(--brand-strong);--el-button-hover-border-color: var(--brand-strong)}.el-input__wrapper,.el-textarea__inner,.el-select__wrapper,.el-input-number,.el-input-number__decrease,.el-input-number__increase{border-radius:var(--control-radius)}.el-input__wrapper,.el-textarea__inner{transition:box-shadow .18s ease,border-color .18s ease,transform .18s ease}.el-input__wrapper.is-focus,.el-textarea__inner:focus{box-shadow:0 0 0 1px #155e7547 inset,0 0 0 4px #155e751a}.el-card,.el-dialog,.el-dropdown-menu,.el-popover{border-radius:var(--radius);border-color:var(--border)}.el-table,.el-dialog,.el-dropdown-menu,.el-popover,.el-message{box-shadow:var(--shadow-soft)}.el-table{border-radius:0;color:#27364a;background:var(--panel);--el-table-bg-color: var(--panel);--el-table-tr-bg-color: var(--panel);--el-table-border-color: #edf1f5;--el-table-header-bg-color: var(--panel-soft);--el-table-expanded-cell-bg-color: var(--panel);--el-table-current-row-bg-color: #f1f7fb;--el-table-row-hover-bg-color: #f5fafb;--el-table-text-color: #27364a;--el-table-header-text-color: #475569}.el-table th.el-table__cell{background:var(--panel-soft);color:#475569;font-weight:700}.el-table tr,.el-table td.el-table__cell,.el-table .el-table__body tr,.el-table .el-table__body tr>td.el-table__cell{background:var(--panel);color:#27364a}.el-table--striped .el-table__body tr.el-table__row--striped,.el-table--striped .el-table__body tr.el-table__row--striped>td.el-table__cell{background:#fbfdff}.el-table__body tr.hover-row>td.el-table__cell,.el-table__body tr:hover>td.el-table__cell{background:#f5fafb}.el-table .el-table__cell{padding:11px 0}.el-table .cell{line-height:1.55}.el-card.card-block{border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-soft)}.el-card.card-block+.el-card.card-block{margin-top:0}.search-form{display:flex;align-items:flex-start;flex-wrap:wrap;gap:12px 14px}.search-form .el-form-item{margin:0}.search-form .el-input,.search-form .el-select{min-width:180px}.pagination-wrap{display:flex;justify-content:flex-end;align-items:center;flex-wrap:wrap;gap:10px;padding-top:14px}.pagination-wrap--top{padding-top:0;padding-bottom:14px}.row-actions,.dialog-footer-actions,.tag-group{display:flex;align-items:center;flex-wrap:wrap}.row-actions{gap:2px 8px}.dialog-footer-actions{gap:10px;justify-content:flex-end}.tag-group{gap:8px}.el-dialog{overflow:hidden}.el-dialog__header{padding:18px 20px 14px;border-bottom:1px solid var(--border)}.el-dialog__title{font-size:17px;font-weight:760;color:var(--text)}.el-dialog__body{padding:20px}.el-dialog__footer{padding:14px 20px 18px;border-top:1px solid var(--border);background:var(--panel-soft)}.el-drawer__header{margin-bottom:0;padding:18px 20px;border-bottom:1px solid var(--border);color:var(--text)}.el-drawer__body{padding:18px 20px;background:var(--bg)}.el-empty{--el-empty-padding: 36px 0}.theme-dark body,.theme-dark #app{color:var(--text);background:var(--bg)}:root.theme-dark .app-card,:root.theme-dark .card-block,:root.theme-dark .el-card,:root.theme-dark .el-dialog,:root.theme-dark .el-dropdown-menu,:root.theme-dark .el-popover,:root.theme-dark .app-confirm-box,body.theme-dark .app-card,body.theme-dark .card-block,body.theme-dark .el-card,body.theme-dark .el-dialog,body.theme-dark .el-dropdown-menu,body.theme-dark .el-popover,body.theme-dark .app-confirm-box{background:var(--panel);border-color:var(--border);color:var(--text)}:root.theme-dark .el-table,body.theme-dark .el-table{color:var(--text-soft);--el-table-bg-color: var(--panel);--el-table-tr-bg-color: var(--panel);--el-table-header-bg-color: var(--panel-soft);--el-table-expanded-cell-bg-color: var(--panel);--el-table-current-row-bg-color: #1d2a3d;--el-table-row-hover-bg-color: #223044;--el-table-border-color: var(--border);--el-table-text-color: var(--text-soft);--el-table-header-text-color: var(--text);--el-table-fixed-left-column: inset 10px 0 10px -10px rgba(0, 0, 0, .32);--el-table-fixed-right-column: inset -10px 0 10px -10px rgba(0, 0, 0, .32)}:root.theme-dark .el-table th.el-table__cell,body.theme-dark .el-table th.el-table__cell{background:var(--panel-soft);color:var(--text-soft)}:root.theme-dark .el-table tr,:root.theme-dark .el-table td.el-table__cell,:root.theme-dark .el-table .el-table__body tr,:root.theme-dark .el-table .el-table__body tr>td.el-table__cell,body.theme-dark .el-table tr,body.theme-dark .el-table td.el-table__cell,body.theme-dark .el-table .el-table__body tr,body.theme-dark .el-table .el-table__body tr>td.el-table__cell{background:var(--panel);color:var(--text-soft)}:root.theme-dark .el-table--striped .el-table__body tr.el-table__row--striped,:root.theme-dark .el-table--striped .el-table__body tr.el-table__row--striped>td.el-table__cell,body.theme-dark .el-table--striped .el-table__body tr.el-table__row--striped,body.theme-dark .el-table--striped .el-table__body tr.el-table__row--striped>td.el-table__cell{background:#1b2638}:root.theme-dark .el-table__body tr.hover-row>td.el-table__cell,:root.theme-dark .el-table__body tr:hover>td.el-table__cell,body.theme-dark .el-table__body tr.hover-row>td.el-table__cell,body.theme-dark .el-table__body tr:hover>td.el-table__cell{background:#223044}:root.theme-dark .el-input__wrapper,:root.theme-dark .el-textarea__inner,:root.theme-dark .el-select__wrapper,:root.theme-dark .app-input,:root.theme-dark .app-select,:root.theme-dark .app-textarea,body.theme-dark .el-input__wrapper,body.theme-dark .el-textarea__inner,body.theme-dark .el-select__wrapper,body.theme-dark .app-input,body.theme-dark .app-select,body.theme-dark .app-textarea{background:var(--panel-soft);color:var(--text);box-shadow:0 0 0 1px var(--border) inset}:root.theme-dark .el-input__inner,:root.theme-dark .el-textarea__inner,:root.theme-dark .el-select__placeholder,:root.theme-dark .el-select__selected-item,body.theme-dark .el-input__inner,body.theme-dark .el-textarea__inner,body.theme-dark .el-select__placeholder,body.theme-dark .el-select__selected-item{color:var(--text)}:root.theme-dark .el-dialog__footer,:root.theme-dark .el-drawer__body,:root.theme-dark .el-message-box__btns,body.theme-dark .el-dialog__footer,body.theme-dark .el-drawer__body,body.theme-dark .el-message-box__btns{background:var(--panel-soft);border-color:var(--border)}:root.theme-dark .el-tag--info,:root.theme-dark .el-tag--primary,:root.theme-dark .el-tag--success,:root.theme-dark .el-tag--warning,:root.theme-dark .el-tag--danger,body.theme-dark .el-tag--info,body.theme-dark .el-tag--primary,body.theme-dark .el-tag--success,body.theme-dark .el-tag--warning,body.theme-dark .el-tag--danger{border-color:var(--border)}:root.theme-dark .search-form,body.theme-dark .search-form{background:transparent}:root.theme-dark .el-form-item__label,body.theme-dark .el-form-item__label{color:var(--text-soft)}:root.theme-dark .el-popper,:root.theme-dark .el-select-dropdown,:root.theme-dark .el-picker-panel,body.theme-dark .el-popper,body.theme-dark .el-select-dropdown,body.theme-dark .el-picker-panel{background:var(--panel);border-color:var(--border);color:var(--text)}.app-confirm-overlay.is-message-box .el-overlay-message-box{display:flex;align-items:center;justify-content:center;padding:16px;background:var(--el-overlay-color-lighter, rgba(0, 0, 0, .5))}.app-confirm-overlay.is-message-box .el-overlay-message-box:after{display:none}.app-confirm-box{width:min(460px,calc(100vw - 32px));max-width:calc(100vw - 32px);padding:24px;background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.app-confirm-box .el-message-box__container{align-items:flex-start}@media (max-width: 960px){.page-shell{padding:14px}.page-title{font-size:20px}.page-header{align-items:flex-start;flex-direction:column}.toolbar{width:100%;justify-content:flex-start}.search-form .el-form-item,.search-form .el-input,.search-form .el-select{width:100%;min-width:0}.search-form{gap:12px}}.app-confirm-box .el-message-box__header{padding-bottom:16px}.app-confirm-box .el-message-box__title{font-size:18px;font-weight:700;color:var(--text)}.app-confirm-box .el-message-box__message{color:var(--text);line-height:1.7}.app-confirm-box .el-message-box__btns{padding-top:18px;border-top:0}.app-confirm-box .el-button{min-width:88px}.panel-title{margin:0 0 16px;font-size:18px;font-weight:700}.panel-note{margin:-8px 0 16px;color:var(--muted);font-size:13px}@media (max-width: 960px){.page-shell{padding:14px}.inline-form-grid{grid-template-columns:1fr}}
