:root{--ar-bg: #f5f6f8;--ar-surface: #ffffff;--ar-text: #181b24;--ar-muted: #6b7180;--ar-border: #e8eaee;--ar-row-line: #eef0f3;--ar-table-head-bg: #f8f9fb;--ar-table-head-fg: #8990a0;--ar-code-fg: #5a6070;--ar-side-bg: #fbfcfd;--ar-side-border: #e8eaee;--ar-side-fg: #3d4250;--ar-side-muted: #9aa0ad;--ar-side-brand: #181b24;--ar-accent: oklch(.5 .058 248);--ar-accent-hover: oklch(.44 .058 248);--ar-accent-muted: oklch(.5 .058 248 / .12);--ar-accent-soft: oklch(.965 .014 248);--ar-text-on-accent: #ffffff;--ar-link: oklch(.48 .07 248);--ar-nav-active-bg: oklch(.95 .02 248);--ar-nav-active-fg: oklch(.42 .07 248);--ar-row-hover: var(--ar-accent-soft);--ar-radius-sm: 8px;--ar-radius: 8px;--ar-radius-lg: 14px;--ar-radius-xl: 14px;--ar-shadow-card: 0 1px 2px rgba(20, 22, 34, .04);--ar-shadow-hover: 0 4px 16px rgba(20, 22, 34, .08);--ar-font: "Inter", "Segoe UI", system-ui, sans-serif;--ar-danger: #b91c1c;--ar-excel-dot: #217346;--ar-tone-success-bg: #e2f6ef;--ar-tone-success-fg: #0a6e5c;--ar-tone-progress-bg: #e3ecfa;--ar-tone-progress-fg: #1e5fbf;--ar-tone-neutral-bg: #eef0f4;--ar-tone-neutral-fg: #5a5f75;--ar-tone-warning-bg: #faf1dd;--ar-tone-warning-fg: #92610c;--ar-tone-danger-bg: #fbe9e9;--ar-tone-danger-fg: #b91c1c}*,*:before,*:after{box-sizing:border-box}html{height:100%;-webkit-text-size-adjust:100%}body{margin:0;height:100%;overflow:hidden;font-family:var(--ar-font);background:var(--ar-bg);color:var(--ar-text);line-height:1.45}#app{height:100%;min-height:100vh;min-height:100dvh}input,select,textarea,button{font-family:inherit}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#d0d3dc;border-radius:4px}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.page-head h1{margin:0;font-size:26px;font-weight:700;letter-spacing:-.01em;color:var(--ar-text)}.page-sub{margin:5px 0 0;font-size:13px;color:var(--ar-muted)}.btn{padding:8px 14px;border-radius:var(--ar-radius-sm);text-decoration:none;font-size:13px;line-height:1.2;border:1px solid transparent;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px;text-align:center;font-weight:600;white-space:nowrap;transition:background .15s,border-color .15s,color .15s,box-shadow .15s}.btn-sm{padding:5px 10px;font-size:12.5px}.btn-primary{background:var(--ar-accent);color:var(--ar-text-on-accent);border-color:var(--ar-accent)}.btn-primary:hover:not(:disabled){background:var(--ar-accent-hover);border-color:var(--ar-accent-hover)}.btn-primary:disabled{opacity:.65;cursor:not-allowed}.btn-secondary{background:var(--ar-surface);color:var(--ar-text);border-color:var(--ar-border)}.btn-secondary:hover:not(:disabled){background:var(--ar-row-hover);border-color:#d0d3dc}.btn-ghost{background:transparent;color:var(--ar-muted);border-color:var(--ar-border)}.btn-ghost:hover:not(:disabled){background:var(--ar-row-hover);color:var(--ar-text)}.btn-excel{background:var(--ar-surface);color:var(--ar-text);border-color:var(--ar-border)}.btn-excel:before{content:"";width:8px;height:8px;border-radius:2px;background:var(--ar-excel-dot);flex:none}.btn-excel:hover:not(:disabled){background:var(--ar-row-hover);border-color:#d0d3dc}.btn-excel:disabled{opacity:.65;cursor:not-allowed}.card{background:var(--ar-surface);border-radius:var(--ar-radius-lg);box-shadow:var(--ar-shadow-card);border:1px solid var(--ar-border)}.card--padded,.form.card,.card.form{padding:1.5rem}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem 1.25rem}.field-wide{grid-column:1 / -1}.field label{display:block;margin-bottom:.35rem;font-weight:600;font-size:13px;color:var(--ar-muted)}.field input,.field select,.field textarea{width:100%;padding:.5rem .65rem;border:1px solid var(--ar-border);border-radius:var(--ar-radius-sm);font-size:.95rem;color:var(--ar-text);background:var(--ar-surface);transition:border-color .15s,box-shadow .15s}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--ar-accent);box-shadow:0 0 0 2px var(--ar-accent-muted)}.req{color:var(--ar-danger)}.actions{margin-top:1.5rem;display:flex;gap:.75rem;flex-wrap:wrap}.tabs{display:flex;gap:.35rem;margin-bottom:1rem;flex-wrap:wrap}.tab{padding:.5rem 1rem;border:1px solid var(--ar-border);background:var(--ar-surface);border-radius:var(--ar-radius-sm);cursor:pointer;font-size:.9rem;font-weight:500;color:var(--ar-muted);transition:background .15s,border-color .15s,color .15s}.tab:hover{background:var(--ar-row-hover);border-color:#d0d3dc}.tab.active{background:var(--ar-accent);color:var(--ar-text-on-accent);border-color:var(--ar-accent);font-weight:600}.table-wrap{padding:0;overflow:hidden}.table{width:100%;border-collapse:collapse;font-size:13px}.table th,.table td{text-align:left}.table th{padding:13px 16px;background:transparent;font-weight:600;color:var(--ar-table-head-fg);font-size:12px;border-bottom:1px solid var(--ar-border)}.table td{padding:12px 16px;border-bottom:1px solid var(--ar-row-line)}.table tbody tr:last-child td{border-bottom:none}.table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.table th.sortable:hover,.table tbody tr:hover{background:var(--ar-row-hover)}.sort-indicator{margin-left:.25rem;font-size:.8em;color:var(--ar-accent)}.link{color:var(--ar-link);text-decoration:none;font-weight:600}.link:hover{text-decoration:underline}.loading,.error,.empty{padding:1rem}.error{color:var(--ar-danger)}.btn-link{background:none;border:none;cursor:pointer;font-size:.9rem;text-decoration:underline;padding:0;font-family:inherit}.btn-link.danger{color:var(--ar-danger)}.toast-host[data-v-ae218f2a]{position:fixed;right:1rem;bottom:1rem;z-index:1000;display:flex;flex-direction:column;gap:.5rem;max-width:360px}.toast[data-v-ae218f2a]{display:flex;align-items:flex-start;gap:.75rem;padding:.65rem .9rem;background:var(--ar-surface);border:1px solid var(--ar-border);border-left:4px solid var(--ar-accent);border-radius:var(--ar-radius);box-shadow:0 6px 24px #00000024;font-size:.9rem;color:var(--ar-text);cursor:pointer}.toast--success[data-v-ae218f2a]{border-left-color:var(--ar-accent)}.toast--info[data-v-ae218f2a]{border-left-color:var(--ar-muted)}.toast--error[data-v-ae218f2a]{border-left-color:var(--ar-danger)}.toast--error .toast-msg[data-v-ae218f2a]{color:var(--ar-danger)}.toast-msg[data-v-ae218f2a]{flex:1;overflow-wrap:anywhere}.toast-link[data-v-ae218f2a]{display:block;margin-top:.25rem;color:var(--ar-link);font-weight:600}.toast-close[data-v-ae218f2a]{color:var(--ar-muted);font-size:1rem;line-height:1}.ar-toast-enter-active[data-v-ae218f2a],.ar-toast-leave-active[data-v-ae218f2a]{transition:opacity .18s ease,transform .18s ease}.ar-toast-enter-from[data-v-ae218f2a],.ar-toast-leave-to[data-v-ae218f2a]{opacity:0;transform:translateY(8px)}.modal-overlay[data-v-14208388]{position:fixed;top:0;right:0;bottom:0;left:0;background:#1a1d2e73;display:flex;align-items:center;justify-content:center;z-index:200}.modal[data-v-14208388]{background:var(--ar-surface);padding:1.5rem;border-radius:var(--ar-radius-lg);min-width:400px;max-width:520px;box-shadow:0 12px 40px #0000002e;border:1px solid var(--ar-border)}.modal h3[data-v-14208388]{margin:0 0 1rem;font-size:1.1rem;color:var(--ar-text)}.leave-text[data-v-14208388]{margin:0 0 1.25rem;color:var(--ar-text);font-size:.95rem}.leave-actions[data-v-14208388]{display:flex;gap:.5rem;flex-wrap:wrap}.btn-danger-ghost[data-v-14208388]{color:var(--ar-danger);border:1px solid var(--ar-danger);background:transparent}.btn-danger-ghost[data-v-14208388]:hover{background:color-mix(in srgb,var(--ar-danger) 8%,transparent)}.bf-treemap-wrap[data-v-5acf98df]{width:100%;min-height:0;flex:1;display:flex;flex-direction:column}.chart[data-v-5acf98df]{width:100%;flex:1;min-height:200px}.state[data-v-5acf98df]{padding:1rem;text-align:center;color:var(--ar-muted);font-size:.9rem}.state.error[data-v-5acf98df]{color:var(--ar-danger)}.state.empty[data-v-5acf98df]{color:var(--ar-muted)}.breadcrumbs[data-v-fe655a9d]{display:flex;flex-wrap:wrap;align-items:center;gap:7px;font-size:12.5px;color:var(--ar-muted);margin-bottom:10px}.breadcrumb-link[data-v-fe655a9d]{color:var(--ar-link);text-decoration:none;font-weight:500}.breadcrumb-link[data-v-fe655a9d]:hover{text-decoration:underline}.breadcrumb-sep[data-v-fe655a9d]{opacity:.5}.breadcrumb-current[data-v-fe655a9d]{color:var(--ar-muted)}.layout[data-v-44385bf9]{display:flex;height:100vh;height:100dvh;min-height:100vh;min-height:100dvh;overflow:hidden;background:var(--ar-bg)}.sidebar[data-v-44385bf9]{width:236px;flex-shrink:0;height:100%;min-height:0;background:var(--ar-side-bg);display:flex;flex-direction:column;border-right:1px solid var(--ar-side-border);transition:width .18s ease}.sidebar--collapsed[data-v-44385bf9]{width:64px}.sidebar-header[data-v-44385bf9]{flex-shrink:0;display:flex;align-items:center;gap:.5rem;padding:18px;border-bottom:1px solid var(--ar-side-border)}.sidebar--collapsed .sidebar-header[data-v-44385bf9]{flex-direction:column;padding:.75rem .5rem;gap:.6rem}.sidebar-toggle[data-v-44385bf9]{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;color:var(--ar-side-muted);background:none;border:1px solid var(--ar-side-border);border-radius:var(--ar-radius-sm);cursor:pointer;transition:color .15s,background .15s}.sidebar-toggle[data-v-44385bf9]:hover{color:var(--ar-side-fg);background:var(--ar-accent-soft)}.logo[data-v-44385bf9]{display:flex;align-items:center;gap:10px;font-weight:600;font-size:13px;line-height:1.25;color:var(--ar-side-brand);text-decoration:none}.logo[data-v-44385bf9]:hover{color:var(--ar-accent)}.logo-img[data-v-44385bf9]{width:30px;height:30px;object-fit:contain;flex-shrink:0;border-radius:8px;background:var(--ar-accent);padding:3px}.logo-text[data-v-44385bf9]{flex:1;min-width:0}.sidebar--collapsed .logo-text[data-v-44385bf9],.sidebar--collapsed .nav-text[data-v-44385bf9],.sidebar--collapsed .nav-group-chevron[data-v-44385bf9]{display:none}.sidebar--collapsed .nav-link[data-v-44385bf9],.sidebar--collapsed .nav-group-title[data-v-44385bf9]{justify-content:center;padding-left:0;padding-right:0}.sidebar--collapsed .nav-group-title.active[data-v-44385bf9]{background:var(--ar-nav-active-bg);color:var(--ar-nav-active-fg)}.sidebar-nav[data-v-44385bf9]{flex:1;min-height:0;padding:12px;display:flex;flex-direction:column;gap:2px;overflow-y:auto;overflow-x:hidden}.sidebar-auth[data-v-44385bf9]{flex-shrink:0;border-top:1px solid var(--ar-side-border);padding:8px 12px}.auth-link[data-v-44385bf9]{display:flex;align-items:center;gap:11px;padding:7px 12px;color:var(--ar-side-fg);text-decoration:none;border-radius:var(--ar-radius-sm);transition:background .15s,color .15s}.auth-link[data-v-44385bf9]:hover{background:var(--ar-accent-soft)}.auth-text[data-v-44385bf9]{display:flex;flex-direction:column;min-width:0;line-height:1.25}.auth-name[data-v-44385bf9]{font-size:.82rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.auth-role[data-v-44385bf9]{font-size:.72rem;color:var(--ar-side-muted)}.sidebar--collapsed .auth-link[data-v-44385bf9]{justify-content:center;padding-left:0;padding-right:0}.nav-group-title[data-v-44385bf9]{display:flex;align-items:center;gap:11px;width:100%;padding:9px 12px;font-size:13.5px;font-weight:500;color:var(--ar-side-fg);background:none;border:none;cursor:pointer;text-align:left;font-family:inherit;border-radius:var(--ar-radius-sm);transition:background .15s,color .15s}.nav-group-title[data-v-44385bf9]:hover{background:var(--ar-accent-soft)}.nav-group-chevron[data-v-44385bf9]{margin-left:auto;flex-shrink:0;width:6px;height:6px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:rotate(-45deg);opacity:.5;transition:transform .15s}.nav-group-chevron.open[data-v-44385bf9]{transform:rotate(45deg)}.nav-group-children[data-v-44385bf9]{display:flex;flex-direction:column;gap:2px;padding:2px 0 6px}.nav-link[data-v-44385bf9],.nav-link-sub[data-v-44385bf9]{display:flex;align-items:center;gap:11px;padding:9px 12px;color:var(--ar-side-fg);text-decoration:none;font-size:13.5px;font-weight:500;border-radius:var(--ar-radius-sm);transition:background .15s,color .15s}.nav-link-sub[data-v-44385bf9]{padding:7px 12px 7px 40px;font-size:13px;color:var(--ar-side-muted)}.nav-icon[data-v-44385bf9]{flex-shrink:0;width:1.25em;text-align:center}.nav-icon-svg[data-v-44385bf9]{color:currentColor;opacity:.72}.nav-link.active .nav-icon-svg[data-v-44385bf9],.nav-group-title.active .nav-icon-svg[data-v-44385bf9]{opacity:1}.nav-link[data-v-44385bf9]:hover,.nav-link-sub[data-v-44385bf9]:hover{background:var(--ar-accent-soft);color:var(--ar-side-fg)}.nav-link.active[data-v-44385bf9],.nav-link-sub.active[data-v-44385bf9]{background:var(--ar-nav-active-bg);color:var(--ar-nav-active-fg);font-weight:600}.main[data-v-44385bf9]{flex:1;min-width:0;min-height:0;padding:16px 28px 28px;overflow:auto}.layout--minimal[data-v-44385bf9]{height:100dvh;max-height:100dvh;min-height:100dvh;overflow:hidden}.main--minimal[data-v-44385bf9]{flex:1;min-width:0;min-height:0;max-width:none;padding:0;display:flex;flex-direction:column;overflow:hidden;box-sizing:border-box}.v-ng-selection-box{shape-rendering:crispEdges}.v-ng-background-grid{pointer-events:none}.v-ng-line-background.selectable{cursor:pointer}.v-ng-edge{transition:stroke .1s linear,stroke-width .1s linear;pointer-events:none}.v-ng-line-summarized.selectable{cursor:pointer}.v-ng-edge-labels .v-ng-text,.v-ng-edge-labels .v-ng-text-background,.v-ng-node-focusring{pointer-events:none}:where(.v-ng-shape-circle){transition:r .1s linear}:where(.v-ng-shape-rect){transition:x .1s linear,y .1s linear,width .1s linear,height .1s linear}:where(.dragging .v-ng-shape-circle),:where(.dragging .v-ng-shape-rect){transition:none}.v-ng-node :where(.v-ng-shape-circle){transition:fill .1s linear,stroke .1s linear,stroke-width .1s linear,r .1s linear}.v-ng-node :where(.v-ng-shape-rect){transition:fill .1s linear,stroke .1s linear,stroke-width .1s linear,x .1s linear,y .1s linear,width .1s linear,height .1s linear}.v-ng-node :where(.v-ng-node-default.v-ng-shape-circle){pointer-events:none}.v-ng-node :where(.v-ng-node-default.v-ng-shape-rect){pointer-events:none}.v-ng-node .draggable,.v-ng-node .selectable{pointer-events:all;cursor:pointer}:where(.v-ng-node-label)>:where(*){cursor:default;-webkit-user-select:none;user-select:none;transition:transform .1s linear}:where(.v-ng-node-label) .draggable,:where(.v-ng-node-label) .selectable{pointer-events:all;cursor:pointer}.v-path{pointer-events:none;transition:stroke .1s linear,stroke-width .1s linear}.v-path.clickable{pointer-events:stroke;cursor:pointer}.v-path.hoverable{pointer-events:stroke}:where(.v-ng-container){width:100%;height:100%}.v-ng-container{padding:0;position:relative;-webkit-user-select:none;user-select:none}.v-ng-canvas{-webkit-tap-highlight-color:transparent;width:100%;height:100%;opacity:0}.v-ng-canvas.show{opacity:1;transition:opacity .5s linear}.v-ng-canvas.dragging *{cursor:grabbing!important}.v-ng-canvas.dragging .v-ng-line{transition:d 0s}.v-ng-canvas.touches{touch-action:none}.v-ng-canvas.box-selection-mode,.v-ng-canvas.box-selection-mode *{cursor:crosshair!important}.v-ng-canvas:not(.show) .v-ng-node,.v-ng-canvas:not(.show) .v-ng-node-label,.v-ng-canvas:not(.show) .v-ng-node-focusring,.v-ng-canvas:not(.show) .v-ng-edge,.v-ng-canvas:not(.show) .v-ng-edge-label,.v-ng-canvas:not(.show) .v-ng-path{transition:none}.v-ng-canvas:not(.show) .v-ng-node>*,.v-ng-canvas:not(.show) .v-ng-node-label>*,.v-ng-canvas:not(.show) .v-ng-node-focusring>*,.v-ng-canvas:not(.show) .v-ng-edge>*,.v-ng-canvas:not(.show) .v-ng-edge-label>*,.v-ng-canvas:not(.show) .v-ng-path>*{transition:none}.v-ng-viewport.v-ng-transition{--transition-duration: .3s;--transition-function: linear}.v-ng-viewport.v-ng-transition .v-ng-node,.v-ng-viewport.v-ng-transition .v-ng-node-label,.v-ng-viewport.v-ng-transition .v-ng-node-focusring,.v-ng-viewport.v-ng-transition .v-ng-edge,.v-ng-viewport.v-ng-transition .v-ng-edge-label,.v-ng-viewport.v-ng-transition .v-ng-path{transition:all var(--transition-duration) var(--transition-function)}.v-ng-viewport.v-ng-transition .v-ng-node>*,.v-ng-viewport.v-ng-transition .v-ng-node-label>*,.v-ng-viewport.v-ng-transition .v-ng-node-focusring>*,.v-ng-viewport.v-ng-transition .v-ng-edge>*,.v-ng-viewport.v-ng-transition .v-ng-edge-label>*,.v-ng-viewport.v-ng-transition .v-ng-path>*{transition:all var(--transition-duration) var(--transition-function)}.v-ng-line.animate,.v-ng-path.animate{--animation-speed: 100;animation:v-ng-dash 10s linear infinite;stroke-dashoffset:var(--animation-speed)}@keyframes v-ng-dash{to{stroke-dashoffset:0}}
