.notification-center[data-v-830fc2ac]{position:fixed;z-index:3000;top:20px;left:50%;display:grid;width:min(720px,calc(100vw - 32px));gap:10px;pointer-events:none;transform:translateX(-50%)}.notification-item[data-v-830fc2ac]{display:grid;width:-moz-max-content;width:max-content;max-width:100%;box-sizing:border-box;justify-self:center;grid-template-columns:22px minmax(0,1fr) 28px;align-items:center;gap:10px;min-height:48px;padding:10px 10px 10px 14px;border:1px solid;border-radius:8px;background:#fff;box-shadow:0 14px 36px rgba(15,23,42,.16);pointer-events:auto}.notification-item>.layui-icon[data-v-830fc2ac]{font-size:19px}.notification-item span[data-v-830fc2ac]{min-width:0;overflow-wrap:anywhere;color:#334155;line-height:1.5}.notification-item button[data-v-830fc2ac]{display:grid;width:28px;height:28px;padding:0;border:0;place-items:center;color:#64748b;background:transparent}.notification-item--warning[data-v-830fc2ac]{border-color:#f6c96b;background:#fffbeb}.notification-item--warning>.layui-icon[data-v-830fc2ac]{color:#d97706}.notification-item--error[data-v-830fc2ac]{border-color:#f5a5a5;background:#fef2f2}.notification-item--error>.layui-icon[data-v-830fc2ac]{color:#dc2626}.notification-item--success[data-v-830fc2ac]{border-color:#86efac;background:#f0fdf4}.notification-item--success>.layui-icon[data-v-830fc2ac]{color:#16a34a}.notification-list-enter-active[data-v-830fc2ac],.notification-list-leave-active[data-v-830fc2ac]{transition:opacity .32s ease-in-out,transform .32s ease-in-out!important}.notification-list-enter-from[data-v-830fc2ac],.notification-list-leave-to[data-v-830fc2ac]{opacity:0;transform:translateY(-12px)}:root{--portal-primary:#0f172a;--portal-secondary:#334155;--portal-accent:#16a34a;--portal-accent-strong:#15803d;--portal-blue:#2563eb;--portal-bg:#f6f8fb;--portal-surface:#fff;--portal-soft:#eef2f7;--portal-border:#dbe3ee;--portal-text:#0f172a;--portal-muted:#64748b;--portal-danger:#dc2626;--portal-warning:#d97706;--portal-radius:8px;--portal-shadow:0 16px 48px rgba(15,23,42,.1)}*{box-sizing:border-box}#app,body,html{width:100%;min-height:100%;margin:0}body{color:var(--portal-text);background:var(--portal-bg);font-family:Open Sans,PingFang SC,Microsoft YaHei,Arial,sans-serif;line-height:1.6}a{color:inherit;text-decoration:none}button,input,select,textarea{font-family:inherit}.clickable,button{cursor:pointer}a:focus-visible,button:focus-visible{outline:3px solid rgba(37,99,235,.35);outline-offset:2px}.layui-input,.layui-select,.layui-textarea{transition:none}.layui-input:focus,.layui-select:focus,.layui-textarea:focus{outline:none;border-color:var(--portal-accent)!important;box-shadow:none}.portal-shell{min-height:100dvh;background:radial-gradient(circle at 14% 12%,rgba(34,197,94,.16),transparent 32%),linear-gradient(135deg,#07111f,#0f172a 42%,#10223b)}.portal-card{background:var(--portal-surface);border:1px solid var(--portal-border);border-radius:var(--portal-radius);box-shadow:0 10px 26px rgba(15,23,42,.06)}.section-title{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:18px}.section-title h1,.section-title h2{margin:0;color:var(--portal-text);font-weight:700;line-height:1.25}.section-title p{margin:6px 0 0;color:var(--portal-muted)}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.stat-card{min-height:126px;padding:18px}.stat-label{color:var(--portal-muted);font-size:13px}.stat-value{margin-top:8px;color:var(--portal-text);font-size:28px;font-weight:700;line-height:1.2}.stat-note{margin-top:12px;color:#0f766e;font-size:13px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-grid .full{grid-column:1/-1}.form-field label{display:block;margin-bottom:6px;color:var(--portal-secondary);font-weight:600}.action-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.portal-btn{min-height:40px;border-radius:6px;transition:transform .16s ease,box-shadow .16s ease,background .16s ease}.portal-btn:hover{transform:translateY(-1px)}.portal-btn-primary{border-color:var(--portal-accent);background:var(--portal-accent);color:#fff}.portal-btn-primary:hover{border-color:var(--portal-accent-strong);background:var(--portal-accent-strong)}.portal-tag{display:inline-flex;align-items:center;flex-shrink:0;width:-moz-max-content;width:max-content;min-width:-moz-max-content;min-width:max-content;min-height:26px;padding:3px 9px;border-radius:999px;background:#e8f7ee;color:#166534;font-size:12px;font-weight:700;white-space:nowrap}.portal-tag.blue{background:#eaf1ff;color:#1d4ed8}.portal-tag.gray{background:#f1f5f9;color:#475569}.portal-tag.warn{background:#fff7ed;color:#c2410c}.data-table-wrap{overflow-x:auto}.portal-table{min-width:760px}.portal-table td,.portal-table th{vertical-align:middle}.portal-table .portal-tag{display:flex;margin-right:auto;margin-left:auto}.portal-table td:last-child,.portal-table th:last-child{text-align:center}.portal-table td:last-child .layui-btn{margin-right:0;margin-left:0}.empty-state{padding:36px;text-align:center;color:var(--portal-muted);border:1px dashed var(--portal-border);border-radius:var(--portal-radius);background:#fbfdff}@media (max-width:1100px){.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:760px){.section-title{align-items:flex-start;flex-direction:column}.form-grid,.stat-grid{grid-template-columns:1fr}}html{scroll-behavior:smooth;scroll-padding-top:76px}.portal-loading-region{position:relative}.portal-region-busy{min-height:120px}.portal-loading-mask{position:absolute;inset:0;z-index:10;display:flex;justify-content:center;align-items:center;padding:24px 16px;border-radius:inherit;background:hsla(0,0%,100%,.86);cursor:progress}.portal-loading-indicator{position:sticky;top:35vh;display:inline-flex;flex-direction:column;align-items:center;gap:12px;color:var(--portal-accent-strong,#15803d);font-size:14px;font-weight:600}.portal-loading-ring{display:block;width:36px;height:36px;border:3px solid rgba(22,163,74,.18);border-top-color:var(--portal-accent,#16a34a);border-radius:50%;animation:portal-loading-rotate .8s linear infinite}.portal-loading-compact.portal-region-busy{min-height:0}.portal-loading-compact>.portal-loading-mask{padding:0;align-items:center}.portal-loading-compact .portal-loading-indicator{position:static}.portal-loading-compact .portal-loading-ring{width:20px;height:20px;border-width:2px}.portal-loading-compact .portal-loading-indicator>span:last-child{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.portal-region-busy .portal-region-busy>.portal-loading-mask{display:none}.portal-region-busy .data-load-feedback .portal-loading-indicator{visibility:hidden}.portal-region-busy .plan-skeleton,.portal-region-busy .skeleton-card small,.portal-region-busy .skeleton-card span,.portal-region-busy .skeleton-card strong{animation:none}.portal-submit-loading{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:24px;border:0;background:hsla(0,0%,100%,.9);cursor:progress}.portal-submit-loading[open]{display:grid;place-items:center}.portal-submit-loading::backdrop{background:transparent}.portal-submit-loading .portal-loading-ring{width:46px;height:46px}@keyframes portal-loading-rotate{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.portal-loading-ring{animation:none}}