.image-upload{min-width:0}.image-upload__list{vertical-align:top;flex-wrap:wrap;gap:10px;max-width:100%;display:inline-flex}.image-upload__item,.image-upload__button{border-radius:var(--radius);background:#fff;border:1px solid #cfd8e6;justify-content:center;align-items:center;width:82px;height:82px;display:inline-flex;position:relative;overflow:hidden}.image-upload__item{cursor:move}.image-upload__item img{object-fit:cover;width:100%;height:100%;display:block}.image-upload__placeholder{color:var(--muted);font-size:12px}.image-upload__button{cursor:pointer;color:var(--brand);text-align:center;flex-direction:column;gap:5px;font-size:13px}.image-upload__button-icon{stroke-width:1.8px;width:20px;height:20px}.image-upload__button:hover{border-color:var(--brand);background:#f8fbff}.image-upload__button input{display:none}.image-upload__actions,.image-upload__mask{position:absolute;inset:0}.image-upload__actions{background:#0f172a9e;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px;padding:6px;display:none}.image-upload__item:hover .image-upload__actions{display:flex}.image-upload__actions button{border-radius:var(--radius);color:#fff;background:#ffffff1f;border:1px solid #ffffff73;justify-content:center;align-items:center;width:24px;height:24px;padding:0;display:inline-flex}.image-upload__actions button:hover{background:#ffffff3d}.image-upload__actions button svg{stroke-width:2px;width:14px;height:14px}.image-upload__mask{color:var(--brand);background:#ffffffb8;justify-content:center;align-items:center;font-size:12px;display:flex}.image-upload__mask--error{color:#d92d20}.image-upload__hint{color:var(--muted);margin-top:6px;font-size:12px}.image-upload--compact .image-upload__list{gap:0}.image-upload--compact .image-upload__item,.image-upload--compact .image-upload__button{width:34px;height:34px}.image-upload--compact .image-upload__item{overflow:visible}.image-upload--compact .image-upload__item img{border-radius:var(--radius);overflow:hidden}.image-upload--compact .image-upload__button{font-size:12px}.image-upload--compact .image-upload__button-icon{width:17px;height:17px}.image-upload--compact .image-upload__actions{gap:0;padding:0}.image-upload__actions--pop{opacity:0;visibility:hidden;white-space:nowrap;background:#fff;border:1px solid #d9d9d9;border-radius:2px;flex-wrap:nowrap;gap:0;width:auto;margin-bottom:4px;padding:4px;display:none;inset:auto auto 100% 50%;transform:translate(-50%);box-shadow:0 2px 8px #00000026}.image-upload__actions--pop:before{content:"";border-top:7px solid #d9d9d9;border-left:7px solid #0000;border-right:7px solid #0000;width:0;height:0;position:absolute;bottom:-7px;left:50%;transform:translate(-50%)}.image-upload__actions--pop:after{content:"";border-top:6px solid #fff;border-left:6px solid #0000;border-right:6px solid #0000;width:0;height:0;position:absolute;bottom:-6px;left:50%;transform:translate(-50%)}.image-upload__item:hover .image-upload__actions--pop{opacity:1;visibility:visible;display:flex}.image-upload__actions--pop button{color:#666;background:0 0;border:0;border-radius:2px;flex-direction:column;gap:2px;width:48px;height:44px;padding:5px 0 3px;display:flex}.image-upload__actions--pop button:hover{color:#333;background:#f5f5f5}.image-upload__actions--pop button svg{width:13px;height:13px}.image-upload__actions--pop button span{font-size:12px;line-height:1}.base-radio-group{align-items:center;gap:var(--base-radio-gap,8px);flex-wrap:wrap;min-height:34px;display:inline-flex}.base-radio-group__item{color:#344054;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;min-height:32px;font-size:13px;display:inline-flex}.base-radio-group__item input{width:14px;height:14px;accent-color:var(--brand);flex:none;margin:0}.base-radio-group__item span{white-space:nowrap;display:inline}.base-radio-group--bordered .base-radio-group__item{border-radius:var(--button-radius);background:#fff;border:1px solid #cfd8e6;padding:0 12px}.base-radio-group--bordered .base-radio-group__item.is-active{border-color:var(--brand);color:var(--brand);background:var(--brand-soft)}.base-radio-group--plain .base-radio-group__item{background:0 0;border:0;padding:0 4px}.base-radio-group--plain .base-radio-group__item.is-active{color:var(--brand)}.base-radio-group.is-disabled,.base-radio-group__item.is-disabled{cursor:not-allowed;opacity:.62}.ui-modal-mask{z-index:900;background:#0f172a7a;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.ui-modal{border-radius:var(--radius);background:#fff;flex-direction:column;width:min(1120px,100vw - 32px);max-height:calc(100vh - 32px);display:flex;overflow:hidden;box-shadow:0 22px 54px #0f172a47}.ui-modal__head,.ui-modal__footer{border-bottom:1px solid var(--line);flex:none;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.ui-modal__head h2{color:var(--text);margin:0;font-size:16px;font-weight:600}.ui-modal__head span{color:var(--muted);margin-top:4px;font-size:12px;display:block}.ui-modal__body{flex:1;min-height:0;padding:14px;overflow:auto}.ui-modal__footer{border-top:1px solid var(--line);border-bottom:0;justify-content:flex-end}.feedback-create{grid-template-columns:minmax(0,200px) minmax(0,1fr);gap:14px 16px;display:grid}.feedback-create__field{color:var(--text);flex-direction:column;gap:6px;font-size:13px;display:flex}.feedback-create__shortcut{grid-column:1/-1;justify-content:flex-end;margin-bottom:-4px;display:flex}.feedback-create__shortcut button{color:var(--brand);background:0 0;border:0;padding:0;font-size:13px;font-weight:600;text-decoration:underline}.feedback-create__shortcut button:hover{color:var(--button-color)}.feedback-create__field--full{grid-column:1/-1}.feedback-create__field span{justify-content:space-between;align-items:center;display:flex}.feedback-create__field em{color:#98a2b3;font-size:12px;font-style:normal}.feedback-create__textarea{border-radius:var(--input-radius);width:100%;min-height:150px;color:var(--text);font:inherit;resize:vertical;background:#fff;border:1px solid #cfd8e6;outline:none;padding:8px 10px}.feedback-create__textarea:focus{border-color:var(--brand);box-shadow:0 0 0 2px #153f8533}@media (width<=760px){.feedback-create{grid-template-columns:minmax(0,1fr)}}.app-tabs[data-v-4aebb17a]{flex:1;align-items:center;min-width:0;height:100%;padding:0 10px;display:flex}.app-tabs__list[data-v-4aebb17a]{flex:1;align-items:center;gap:4px;min-width:0;height:100%;display:flex}.app-tabs__item[data-v-4aebb17a]{color:#ffffffd1;cursor:pointer;border-radius:3px;outline:none;align-items:center;min-width:0;max-width:138px;height:32px;padding:0 8px 0 10px;display:flex}.app-tabs__item[data-v-4aebb17a]:hover,.app-tabs__item.is-active[data-v-4aebb17a],.app-tabs__item[data-v-4aebb17a]:focus-visible{color:#fff;background:#ffffff29}.app-tabs__text[data-v-4aebb17a]{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:14px;display:block;overflow:hidden}.app-tabs__close[data-v-4aebb17a]{color:currentColor;background:0 0;border:0;border-radius:3px;flex:none;justify-content:center;align-items:center;width:18px;height:18px;margin-left:5px;line-height:1;display:inline-flex}.app-tabs__close[data-v-4aebb17a]:hover,.app-tabs__dropdown-close[data-v-4aebb17a]:hover{background:#ffffff2e}.app-tabs__more[data-v-4aebb17a],.app-tabs__actions[data-v-4aebb17a]{flex:none;position:relative}.app-tabs__actions[data-v-4aebb17a]{align-items:center;gap:4px;display:flex}.app-tabs__tool[data-v-4aebb17a]{color:#ffffffdb;white-space:nowrap;background:0 0;border:0;border-radius:3px;height:30px;padding:0 9px}.app-tabs__tool[data-v-4aebb17a]:hover{color:#fff;background:#ffffff24}.app-tabs__tool--icon[data-v-4aebb17a]{justify-content:center;align-items:center;width:30px;padding:0;display:inline-flex}.app-tabs__tool--icon svg[data-v-4aebb17a]{width:17px;height:17px}.app-tabs__dropdown[data-v-4aebb17a]{z-index:80;background:#fff;border:1px solid #153f8529;border-radius:6px;min-width:160px;padding:5px;position:absolute;top:38px;left:0;box-shadow:0 16px 38px #0f172a2e}.app-tabs__dropdown-item[data-v-4aebb17a]{color:#344054;text-align:left;white-space:nowrap;background:0 0;border:0;border-radius:4px;justify-content:space-between;align-items:center;gap:12px;width:100%;min-height:32px;padding:0 9px;display:flex}.app-tabs__dropdown-item[data-v-4aebb17a]:hover,.app-tabs__dropdown-item.is-active[data-v-4aebb17a]{background:var(--brand-soft);color:var(--brand)}.app-tabs__dropdown-close[data-v-4aebb17a]{width:18px;height:18px;color:inherit;border-radius:3px;justify-content:center;align-items:center;display:inline-flex}@media (width<=768px){.app-tabs[data-v-4aebb17a]{padding:0 6px}.app-tabs__item[data-v-4aebb17a]{max-width:96px;padding:0 6px}.app-tabs__tool[data-v-4aebb17a]{padding:0 6px}}.base-drawer-mask{z-index:1000;background:#0f172a52;display:flex;position:fixed;inset:0}.base-drawer-mask--right{justify-content:flex-end}.base-drawer-mask--left{justify-content:flex-start}.base-drawer{background:#fff;flex-direction:column;width:min(360px,92vw);height:100%;display:flex;box-shadow:-18px 0 42px #0f172a2e}.base-drawer-mask--left .base-drawer{box-shadow:18px 0 42px #0f172a2e}.base-drawer__head,.base-drawer__foot{border-bottom:1px solid var(--line);flex:none;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.base-drawer__title strong{color:var(--text);font-size:16px;display:block}.base-drawer__title span{color:var(--muted);margin-top:4px;font-size:12px;display:block}.base-drawer__body{flex:1;min-height:0;padding:16px;overflow:auto}.base-drawer__foot{border-top:1px solid var(--line);border-bottom:0;justify-content:flex-end}.app-shell{flex-direction:column;min-width:0;height:100vh;display:flex;overflow:hidden}.app-header{background:var(--header-color);color:#fff;flex:none;align-items:center;min-width:0;height:56px;display:flex}.app-brand{flex:0 0 var(--menu-width);justify-content:center;align-items:center;height:100%;padding:0;display:flex}.app-brand__logo{object-fit:contain;width:76px;height:auto;max-height:30px;display:block}.app-actions{flex:none;align-items:center;gap:10px;padding:0 16px;display:flex}.app-header-icon{color:#ffffffd6;background:0 0;border:0;border-radius:50%;flex:none;justify-content:center;align-items:center;width:34px;height:34px;padding:0 2px 2px 0;display:inline-flex;position:relative}.app-header-icon:hover{color:#fff;background:#ffffff1f}.app-header-icon svg{stroke-width:2px;width:20px;height:20px}.app-header-icon__badge{border:1px solid var(--brand);color:#fff;background:#1677ff;border-radius:999px;justify-content:center;align-items:center;min-width:18px;height:16px;padding:0 4px;font-size:10px;font-weight:600;line-height:1;display:inline-flex;position:absolute;top:-4px;right:-7px}.app-help-menu{position:relative}.app-help-menu__panel{z-index:120;border:1px solid var(--line);border-radius:var(--radius);min-width:132px;color:var(--text);background:#fff;padding:6px;position:absolute;top:calc(100% + 8px);right:-8px;box-shadow:0 12px 28px #0f172a2e}.app-help-menu__item{border-radius:var(--button-radius);color:#344054;text-align:left;background:0 0;border:0;align-items:center;gap:8px;width:100%;height:34px;padding:0 10px;font-size:13px;display:flex}.app-help-menu__item:hover{background:var(--brand-soft);color:var(--brand)}.app-help-menu__item svg{flex:none;width:16px;height:16px}.app-user-menu{position:relative}.app-user-menu__trigger{border-radius:var(--button-radius);color:#fff;background:0 0;border:0;align-items:center;gap:8px;height:38px;padding:0 10px;display:inline-flex}.app-user-menu__trigger:hover{background:#ffffff1f}.app-user-menu__name{text-overflow:ellipsis;white-space:nowrap;max-width:112px;font-size:14px;overflow:hidden}.app-user-menu__arrow{color:#ffffffb8;font-size:13px}.app-user-menu__panel{z-index:120;border:1px solid var(--line);border-radius:var(--radius);width:240px;color:var(--text);background:#fff;padding:0 0 8px;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden;box-shadow:0 16px 36px #0f172a33}.app-user-menu__panel-head{background:#dff0fb;height:48px;margin-bottom:20px;position:relative}.app-user-menu__panel-avatar{color:#fff;background:#d4d983;border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:42px;height:42px;font-size:14px;font-weight:700;display:inline-flex;position:absolute;bottom:-20px;left:50%;transform:translate(-50%)}.app-user-menu__group{padding:10px 16px 8px}.app-user-menu__item,.app-user-menu__link{border-radius:var(--button-radius);color:#344054;text-align:left;background:0 0;border:0;align-items:center;width:100%;min-height:34px;padding:0;display:flex}.app-user-menu__item:hover,.app-user-menu__link:hover{color:var(--brand)}.app-user-menu__link{min-height:28px;color:var(--brand);padding:0;font-size:12px}.app-theme-field{color:#344054;grid-template-columns:82px 48px minmax(0,1fr);align-items:center;gap:10px;min-height:42px;font-size:13px;display:grid}.app-theme-field input[type=color]{border:1px solid var(--line);border-radius:var(--button-radius);background:#fff;width:48px;height:30px;padding:0}.app-theme-field input[type=range]{width:100%}.app-theme-hex-input{border:1px solid var(--line);border-radius:var(--input-radius);width:100%;height:30px;color:var(--text);outline:none;padding:0 8px}.app-theme-hex-input:focus{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand-soft)}.app-theme-field em{color:var(--muted);text-align:right;font-style:normal}.app-theme-preview{border-top:1px dashed var(--line);gap:8px;margin-top:18px;padding-top:14px;display:flex}.app-logout-modal .ui-modal__body{padding:18px 16px}.app-logout-confirm{flex-direction:column;gap:8px;display:flex}.app-logout-confirm strong{color:var(--text);font-size:15px;font-weight:600}.app-logout-confirm span{color:var(--muted);font-size:13px;line-height:1.6}.app-main{flex:1;min-width:0;min-height:0;display:flex;position:relative}.app-menu-zone{z-index:40;flex:0 0 var(--menu-width);width:var(--menu-width);min-height:0;position:relative}.app-sider{flex:0 0 var(--menu-width);width:var(--menu-width);background:var(--sider-color);height:100%;overflow:auto}.app-menu{padding:0 6px 10px}.app-menu__item{color:#ffffffd1;text-align:center;background:0 0;border:0;border-radius:4px;flex-direction:column;justify-content:center;align-items:center;gap:6px;width:100%;min-height:78px;margin:0;padding:6px 2px;display:flex}.app-menu__item:hover,.app-menu__item.is-active{color:#fff;background:#ffffff24}.app-menu__item--child{min-height:64px;font-size:12px}.app-menu__icon{color:#fff;flex:none;justify-content:center;align-items:center;width:32px;min-height:32px;font-size:26px;font-weight:700;line-height:1;display:inline-flex}.app-menu__image{object-fit:contain;width:32px;height:32px;display:block}.app-menu__text{color:#ffffffdb;text-overflow:ellipsis;white-space:normal;max-width:100%;font-size:16px;line-height:1.15;display:block;overflow:hidden}.app-menu__children{margin:2px 0 6px}.app-menu__dot{background:currentColor;border-radius:50%;width:5px;height:5px}.app-submenu{top:10px;bottom:10px;left:var(--menu-width);z-index:30;background:#fff;border:1px solid #153f8524;border-radius:8px;width:168px;padding:10px 8px;position:absolute;overflow:auto;box-shadow:0 18px 42px #0f172a2e}.app-submenu__title{color:var(--text);padding:6px 8px 10px;font-size:15px;font-weight:600}.app-submenu__item{border-radius:var(--radius);color:#344054;text-align:left;background:0 0;border:0;align-items:center;width:100%;min-height:34px;margin-bottom:4px;padding:0 10px;display:flex}.app-submenu__item:hover,.app-submenu__item.is-active{background:var(--brand-soft);color:var(--brand)}.app-content{flex-direction:column;flex:1;min-width:0;padding:12px 16px 16px;display:flex;overflow:auto}.app-content>.page-frame{flex:1;min-height:0}.icon-button{border-radius:var(--radius);color:#fff;background:0 0;border:0;flex:none;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex}.icon-button:hover{background:#ffffff1f}.ui-tag{border-radius:var(--radius);white-space:nowrap;justify-content:center;align-items:center;display:inline-flex}@media (width<=1024px){.app-content{padding:8px}}@media (width<=768px){.app-header{height:48px}.app-submenu{width:132px}}:root{--brand:#153f85;--brand-dark:#0f326e;--brand-soft:#eaf1ff;--header-color:#153f85;--header-dark:#0f326e;--sider-color:#153f85;--sider-dark:#0f326e;--button-color:#153f85;--button-hover:#0f326e;--button-soft:#eaf1ff;--bg:#f5f5f5;--panel:#fff;--line:#dbe3ef;--text:#1f2937;--muted:#667085;--blue:#1d4ed8;--green:#16803c;--orange:#c56a12;--radius:3px;--input-radius:3px;--button-radius:3px;--menu-width:84px}html,body,#app{height:100%;margin:0}body{background:var(--bg);min-width:0;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif}button,input,select{font:inherit}button{cursor:pointer;border-radius:var(--button-radius)}*{box-sizing:border-box}.page-stack,.page-frame,.page-frame__body{flex-direction:column;display:flex}.page-stack,.page-frame{gap:12px}.page-frame__body{gap:10px}.page-frame--fill{height:100%;min-height:0}.page-frame--fill .page-frame__body{flex:1;min-height:0}.page-frame--fill .table-panel--fill{flex-direction:column;flex:1;min-height:0;display:flex}.table-panel--fill .base-table--fill{flex:1;min-height:0}.page-frame__head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.page-frame__title{color:var(--text);margin:0;font-size:18px;font-weight:600;line-height:1.25}.page-frame__subtitle{color:var(--muted);margin:4px 0 0;font-size:13px}.ui-card,.compact-search,.table-panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel)}.ui-card{padding:14px}.table-panel{padding:12px}.ui-card__head,.page-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.ui-card__head h2{margin:0;font-size:15px}.compact-search{padding:10px 12px}.compact-search__form,.toolbar-actions{flex-wrap:wrap;align-items:flex-end;gap:8px;display:flex}.toolbar-actions{align-items:center}.compact-search__actions .toolbar-actions{align-items:flex-end}.compact-search__actions{align-items:flex-end;margin-left:auto;display:flex}.form-stack{flex-direction:column;gap:14px;display:flex}.form-field{color:var(--text);flex-direction:column;gap:6px;font-size:13px;display:flex}.form-field b{color:#d92d20;font-weight:600}.form-field--inline{flex:0 auto;min-width:0}.ui-input{border-radius:var(--input-radius);width:100%;height:34px;color:var(--text);background:#fff;border:1px solid #cfd8e6;outline:none;padding:0 10px}.ui-input[type=number]{padding-right:4px;line-height:32px}.ui-input[type=number]::-webkit-inner-spin-button{height:32px;margin:0}.ui-input[type=number]::-webkit-outer-spin-button{height:32px;margin:0}.ui-input:focus{border-color:var(--brand);box-shadow:0 0 0 2px #153f8533}.ui-input[readonly]{color:#667085;background:#f8fafc}.ui-input::placeholder{color:#b7c0ce}.search-input{width:180px}.search-select{width:136px}.ui-button{border-radius:var(--button-radius);height:34px;color:var(--text);background:#fff;border:1px solid #cfd8e6;justify-content:center;align-items:center;gap:5px;padding:0 12px;display:inline-flex}.ui-button:hover{border-color:var(--button-color);color:var(--button-color)}.ui-button--primary{border-color:var(--button-color);background:var(--button-color);color:#fff}.ui-button--primary:hover{background:var(--button-hover);color:#fff}.ui-button--block{width:100%}.ui-button--icon-text{padding:0 10px}.button-icon{stroke-width:2px;flex:none;width:15px;height:15px}.ui-button:disabled{cursor:not-allowed;opacity:.65}.table-pager{justify-content:flex-end;margin-top:12px;display:flex}.table-summary{color:var(--muted);font-size:13px}.ui-tabs{border-bottom:1px solid var(--line);align-items:center;gap:6px;margin-bottom:10px;display:flex}.ui-tab{height:34px;color:var(--muted);border-radius:var(--button-radius) var(--button-radius) 0 0;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:6px;padding:0 10px;display:inline-flex}.ui-tab:hover,.ui-tab.is-active{color:var(--brand)}.ui-tab.is-active{border-bottom-color:var(--brand);font-weight:600}.ui-tab strong{font-size:12px;font-weight:600}.row-actions{align-items:center;gap:8px;display:inline-flex}.row-actions a,.row-actions button{color:var(--brand);background:0 0;border:0;padding:0;text-decoration:none}.row-actions a:hover,.row-actions button:hover{text-decoration:underline}.ui-tag{min-height:22px;padding:0 7px;font-size:12px}.ui-tag--blue{color:var(--blue);background:#eaf1ff}.ui-tag--orange{color:var(--orange);background:#fff3e0}.ui-tag--green{color:var(--green);background:#e9f8ef}.app-toast{z-index:9999;border-radius:var(--radius);color:#fff;background:#111827;min-width:220px;max-width:min(420px,100vw - 32px);padding:10px 14px;position:fixed;top:16px;left:50%;transform:translate(-50%);box-shadow:0 12px 32px #0f172a2e}@media (width<=1024px){.page-frame__actions,.search-input,.search-select{width:100%}.form-field--inline{flex:180px}}@media (width<=768px){.page-frame__subtitle{display:none}.form-field--inline,.compact-search__actions{flex-basis:100%}.table-grid{min-height:260px}}
