.toast-stack{position:fixed;top:64px;right:16px;z-index:3000;display:flex;flex-direction:column;gap:8px}.toast{min-width:240px;max-width:360px;padding:10px 14px;border-radius:var(--kdd-radius);border:1px solid var(--kdd-border-strong);background:var(--kdd-bg);box-shadow:var(--kdd-shadow-lg);font-size:13px}.toast--error{border-left:4px solid var(--kdd-danger)}.toast--success{border-left:4px solid var(--kdd-success)}.breadcrumb[data-v-20fc49b1]{display:flex;align-items:center;gap:var(--kdd-space-2);flex-wrap:wrap;min-height:24px}.crumb-list[data-v-20fc49b1]{display:flex;align-items:center;gap:6px;list-style:none;margin:0;padding:0}.crumb-item[data-v-20fc49b1]{display:inline-flex;align-items:center;gap:6px;font-size:13px}.crumb-link[data-v-20fc49b1]{color:var(--kdd-primary)}.crumb-link[data-v-20fc49b1]:hover{color:var(--kdd-primary-hover);text-decoration:underline}.crumb-current[data-v-20fc49b1]{color:var(--kdd-text);font-weight:600}.crumb-sep[data-v-20fc49b1]{color:var(--kdd-text-subtle)}.crumb-filters[data-v-20fc49b1]{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.chip[data-v-20fc49b1]{font-size:11px}.layout[data-v-8a47fad8]{display:flex;height:100%}.sidebar[data-v-8a47fad8]{width:var(--kdd-sidebar-w);background:var(--kdd-surface);border-right:1px solid var(--kdd-border);display:flex;flex-direction:column;flex-shrink:0}.brand[data-v-8a47fad8]{display:flex;align-items:center;gap:var(--kdd-space-1);height:var(--kdd-topbar-h);padding:0 var(--kdd-space-2);border-bottom:1px solid var(--kdd-border)}.brand-name[data-v-8a47fad8]{font-weight:600;color:var(--kdd-text);white-space:nowrap}.nav[data-v-8a47fad8]{padding:var(--kdd-space-1);display:flex;flex-direction:column;gap:2px;overflow-y:auto}.nav-item[data-v-8a47fad8]{padding:10px var(--kdd-space-2);border-radius:var(--kdd-radius);color:var(--kdd-text-muted);min-height:44px;display:flex;align-items:center}.nav-item[data-v-8a47fad8]:hover{background:var(--kdd-surface-2);color:var(--kdd-text)}.nav-item--active[data-v-8a47fad8]{background:var(--kdd-primary);color:var(--kdd-text-inverse)}.main[data-v-8a47fad8]{flex:1;display:flex;flex-direction:column;min-width:0}.topbar[data-v-8a47fad8]{height:var(--kdd-topbar-h);display:flex;align-items:center;justify-content:space-between;padding:0 var(--kdd-space-3);border-bottom:1px solid var(--kdd-border);background:var(--kdd-bg);gap:var(--kdd-space-2)}.topbar-left[data-v-8a47fad8]{min-width:0}.topbar-title[data-v-8a47fad8]{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-right[data-v-8a47fad8]{display:flex;align-items:center;gap:var(--kdd-space-2);flex-shrink:0}.icon-btn[data-v-8a47fad8]{display:inline-flex;align-items:center;justify-content:center;min-width:36px;min-height:36px;padding:0 8px;border:1px solid var(--kdd-border-strong);border-radius:var(--kdd-radius);background:var(--kdd-bg);color:var(--kdd-text);cursor:pointer;font-size:13px;font-weight:600}.icon-btn[data-v-8a47fad8]:hover{background:var(--kdd-surface-2)}.icon-btn[data-v-8a47fad8]:focus-visible{outline:2px solid var(--kdd-border-focus);outline-offset:1px}.topbar-user[data-v-8a47fad8]{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--kdd-text-muted)}.topbar-user .dot[data-v-8a47fad8]{width:8px;height:8px;border-radius:50%;background:var(--kdd-success)}.role[data-v-8a47fad8]{text-transform:uppercase}.crumbbar[data-v-8a47fad8]{padding:8px var(--kdd-space-3);border-bottom:1px solid var(--kdd-border);background:var(--kdd-bg)}.content[data-v-8a47fad8]{flex:1;padding:var(--kdd-space-3);overflow:auto;min-width:0}@media(max-width:1199px)and (min-width:768px){.sidebar[data-v-8a47fad8]{width:64px}.brand-name[data-v-8a47fad8]{display:none}.nav-item[data-v-8a47fad8]{padding:10px;justify-content:center}.nav-label[data-v-8a47fad8]{font-size:0}}@media(max-width:767px){.layout[data-v-8a47fad8]{flex-direction:column}.sidebar[data-v-8a47fad8]{width:100%;flex-direction:row;overflow-x:auto;border-right:none;border-bottom:1px solid var(--kdd-border)}.brand[data-v-8a47fad8]{border-bottom:none}.nav[data-v-8a47fad8]{flex-direction:row}.nav-item[data-v-8a47fad8]{white-space:nowrap;min-height:40px}.topbar-user[data-v-8a47fad8]{display:none}.content[data-v-8a47fad8]{padding:var(--kdd-space-2)}}:root{--kdd-bg: #ffffff;--kdd-surface: #f6f7f9;--kdd-surface-2: #eceff3;--kdd-overlay: rgba(26, 35, 50, .45);--kdd-text: #1a2332;--kdd-text-muted: #4b5563;--kdd-text-subtle: #6b7280;--kdd-text-inverse: #ffffff;--kdd-primary: #1f4e79;--kdd-primary-hover: #173d5f;--kdd-primary-active: #123250;--kdd-primary-soft: rgba(31, 78, 121, .1);--kdd-gold: #d4af37;--kdd-gold-soft: rgba(212, 175, 55, .16);--kdd-success: #1e7e46;--kdd-success-hover: #186638;--kdd-success-soft: rgba(30, 126, 70, .12);--kdd-danger: #b3261e;--kdd-danger-hover: #8f1e18;--kdd-danger-soft: rgba(179, 38, 30, .12);--kdd-warning: #9a6700;--kdd-warning-hover: #7c5300;--kdd-warning-soft: rgba(154, 103, 0, .14);--kdd-info: #1f6f8b;--kdd-info-hover: #18586e;--kdd-info-soft: rgba(31, 111, 139, .14);--kdd-border: #d9dde3;--kdd-border-strong: #b9c0ca;--kdd-border-focus: #1f4e79;--kdd-space-1: 8px;--kdd-space-2: 16px;--kdd-space-3: 24px;--kdd-space-4: 32px;--kdd-space-5: 48px;--kdd-radius-sm: 4px;--kdd-radius: 8px;--kdd-radius-lg: 12px;--kdd-shadow: 0 1px 3px rgba(26, 35, 50, .08);--kdd-shadow-md: 0 2px 8px rgba(26, 35, 50, .1);--kdd-shadow-lg: 0 4px 16px rgba(26, 35, 50, .12);--kdd-font: -apple-system, "PingFang SC", "Microsoft YaHei", "Segoe UI", sans-serif;--kdd-font-mono: "SFMono-Regular", Consolas, monospace;--kdd-fs-xs: 12px;--kdd-fs-sm: 13px;--kdd-fs-md: 14px;--kdd-fs-lg: 20px;--kdd-fs-xl: 26px;--kdd-sidebar-w: 232px;--kdd-topbar-h: 56px}.dark{--kdd-bg: #141922;--kdd-surface: #1b2230;--kdd-surface-2: #252e3f;--kdd-overlay: rgba(0, 0, 0, .55);--kdd-text: #e9edf4;--kdd-text-muted: #a7b2c2;--kdd-text-subtle: #8b97a9;--kdd-text-inverse: #0f1620;--kdd-primary: #5b9bd5;--kdd-primary-hover: #74addb;--kdd-primary-active: #8abae2;--kdd-primary-soft: rgba(91, 155, 213, .18);--kdd-gold: #d4af37;--kdd-gold-soft: rgba(212, 175, 55, .2);--kdd-success: #4cc37a;--kdd-success-hover: #66d08d;--kdd-success-soft: rgba(76, 195, 122, .16);--kdd-danger: #e5695f;--kdd-danger-hover: #ee877e;--kdd-danger-soft: rgba(229, 105, 95, .16);--kdd-warning: #d9a53a;--kdd-warning-hover: #e6b95c;--kdd-warning-soft: rgba(217, 165, 58, .18);--kdd-info: #5bb8d4;--kdd-info-hover: #7cc7de;--kdd-info-soft: rgba(91, 184, 212, .16);--kdd-border: #2e3949;--kdd-border-strong: #45536a;--kdd-border-focus: #74addb;--kdd-shadow: 0 1px 3px rgba(0, 0, 0, .35);--kdd-shadow-md: 0 2px 8px rgba(0, 0, 0, .45);--kdd-shadow-lg: 0 4px 16px rgba(0, 0, 0, .55)}*{box-sizing:border-box}html,body,#app{margin:0;height:100%;background:var(--kdd-bg);color:var(--kdd-text);font-family:var(--kdd-font);font-size:14px;line-height:1.6;transition:background-color .2s ease,color .2s ease}a{color:var(--kdd-primary);text-decoration:none}a:hover{color:var(--kdd-primary-hover)}.kdd-card{background:var(--kdd-bg);border:1px solid var(--kdd-border);border-radius:var(--kdd-radius-lg);padding:var(--kdd-space-3);box-shadow:var(--kdd-shadow)}:focus-visible{outline:2px solid var(--kdd-border-focus);outline-offset:2px}.kdd-input,.kdd-select{height:36px;padding:0 10px;border:1px solid var(--kdd-border-strong);border-radius:var(--kdd-radius);background:var(--kdd-bg);color:var(--kdd-text);font-family:var(--kdd-font);font-size:14px}.kdd-input::placeholder{color:var(--kdd-text-subtle)}.kdd-input:focus,.kdd-select:focus{outline:2px solid var(--kdd-border-focus);outline-offset:0}.kdd-input:disabled,.kdd-select:disabled{opacity:.55;cursor:not-allowed}.kdd-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:36px;padding:6px 16px;border:1px solid var(--kdd-border-strong);border-radius:var(--kdd-radius);background:var(--kdd-bg);color:var(--kdd-text);font-size:14px;font-family:var(--kdd-font);cursor:pointer;transition:background-color .15s ease,border-color .15s ease}.kdd-btn:hover{background:var(--kdd-surface-2)}.kdd-btn:active{background:var(--kdd-surface-2);transform:translateY(1px)}.kdd-btn:focus-visible{outline:2px solid var(--kdd-border-focus);outline-offset:1px}.kdd-btn:disabled{opacity:.55;cursor:not-allowed}.kdd-btn--primary{background:var(--kdd-primary);border-color:var(--kdd-primary);color:var(--kdd-text-inverse)}.kdd-btn--primary:hover{background:var(--kdd-primary-hover)}.kdd-btn--primary:active{background:var(--kdd-primary-active)}.kdd-btn--danger{background:var(--kdd-danger);border-color:var(--kdd-danger);color:var(--kdd-text-inverse)}.kdd-btn--danger:hover{background:var(--kdd-danger-hover)}.kdd-btn--sm{min-height:28px;padding:2px 10px;font-size:13px}.kdd-table{width:100%;border-collapse:collapse;font-size:14px}.kdd-table th{text-align:left;font-weight:600;color:var(--kdd-text-muted);border-bottom:1px solid var(--kdd-border-strong);padding:10px var(--kdd-space-2);white-space:nowrap}.kdd-table td{padding:10px var(--kdd-space-2);border-bottom:1px solid var(--kdd-border)}.kdd-table tbody tr{cursor:pointer}.kdd-table tbody tr:hover{background:var(--kdd-primary-soft)}.kdd-table tbody tr.no-click{cursor:default}.kdd-table tbody tr.no-click:hover{background:transparent}.kdd-tag{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600;border:1px solid transparent;white-space:nowrap}.kdd-tag--green{background:var(--kdd-success-soft);color:var(--kdd-success);border-color:var(--kdd-success)}.kdd-tag--yellow{background:var(--kdd-warning-soft);color:var(--kdd-warning);border-color:var(--kdd-warning)}.kdd-tag--red{background:var(--kdd-danger-soft);color:var(--kdd-danger);border-color:var(--kdd-danger)}.kdd-tag--blue{background:var(--kdd-info-soft);color:var(--kdd-info);border-color:var(--kdd-info)}.kdd-tag--neutral{background:var(--kdd-surface-2);color:var(--kdd-text-muted);border-color:var(--kdd-border)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--kdd-border-strong);border-radius:4px}::-webkit-scrollbar-track{background:transparent}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}
