:root{--bg:#f5f6f3;--surface:#fff;--surface-2:#f8f9f6;--surface-3:#eef1eb;--sidebar:#eff2ec;--border:#e2e6de;--border-strong:#cfd6c9;--overlay:#16201961;--text:#1e2721;--text-2:#4f5b52;--text-3:#7d877f;--text-inverse:#f4f7f1;--accent:#2c4a37;--accent-hover:#3b5f47;--accent-soft:#e3ebdd;--accent-text:#2f5a3d;--focus:#5f8d58;--success:#3c7b4c;--success-soft:#e6f1e4;--warning:#9a6d17;--warning-soft:#f8efd9;--danger:#b2432f;--danger-soft:#f9e7e2;--info:#346b9a;--info-soft:#e4eef7;--neutral:#6c746d;--neutral-soft:#eceeea;--chart-ok:#93b07a;--chart-err:#d0846c;--chart-line:#2c4a37;--chart-grid:#e9ece5;--code-bg:#1f2b23;--code-text:#d6e4cb;--code-muted:#8ea08a;--font-sans:-apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-mono:"SF Mono", "JetBrains Mono", Menlo, Consolas, "Liberation Mono", monospace;--fs-xs:11px;--fs-sm:12px;--fs-md:13px;--fs-lg:15px;--fs-xl:18px;--fs-2xl:22px;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-8:32px;--r-sm:4px;--r-md:6px;--r-lg:10px;--shadow-sm:0 1px 2px #141e160d;--shadow-md:0 6px 20px #141e1614;--shadow-lg:0 24px 64px #141e162e;--ease-out:cubic-bezier(.2, .8, .2, 1);--ease-spring:cubic-bezier(.34, 1.4, .64, 1);--dur-fast:.12s;--dur-med:.18s;--dur-enter:.26s;--sidebar-w:220px;--sidebar-w-collapsed:60px;--topbar-h:56px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg:#121714;--surface:#181f1b;--surface-2:#1c241f;--surface-3:#242e28;--sidebar:#141a16;--border:#2a342e;--border-strong:#3a463f;--overlay:#0000008c;--text:#e4ebe3;--text-2:#b0bcb2;--text-3:#808c83;--text-inverse:#10150f;--accent:#a6c99a;--accent-hover:#bad8ae;--accent-soft:#263a2d;--accent-text:#a9cf9b;--focus:#8fbf83;--success:#7fc28c;--success-soft:#1f3526;--warning:#e0b45a;--warning-soft:#3a3019;--danger:#ee8a76;--danger-soft:#3d221d;--info:#84b5e4;--info-soft:#1c2d3d;--neutral:#9aa49c;--neutral-soft:#262d29;--chart-ok:#5f8f5c;--chart-err:#c26e58;--chart-line:#cfe3c4;--chart-grid:#26302a;--code-bg:#0e1310;--code-text:#d0dec6;--code-muted:#7b8c78;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 6px 20px #00000059;--shadow-lg:0 24px 64px #00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);font-size:var(--fs-md);color:var(--text);background:var(--bg);font-synthesis:none;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;line-height:1.5}h1,h2,h3,h4,p{margin:0}a{color:var(--accent-text);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}svg{flex-shrink:0}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}::selection{background:var(--accent-soft)}code,pre,kbd,.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.muted{color:var(--text-3)}.text-2{color:var(--text-2)}.danger-text{color:var(--danger)}.success-text{color:var(--success)}.warning-text{color:var(--warning)}.small{font-size:var(--fs-sm)}.xs{font-size:var(--fs-xs)}.nowrap{white-space:nowrap}.truncate{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.page{gap:var(--s-4);flex-direction:column;min-width:0;display:flex}.page-head{justify-content:space-between;align-items:flex-end;gap:var(--s-4);flex-wrap:wrap;display:flex}.page-head h1{font-size:var(--fs-2xl);letter-spacing:-.02em;font-weight:600;line-height:1.25}.page-head p{margin-top:var(--s-1);color:var(--text-3);font-size:var(--fs-sm)}.page-actions{align-items:center;gap:var(--s-2);flex-wrap:wrap;display:flex}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);min-width:0;box-shadow:var(--shadow-sm)}.panel-head{justify-content:space-between;align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--border);flex-wrap:wrap;min-height:48px;display:flex}.panel-head h2{font-size:var(--fs-md);font-weight:600}.panel-head .sub{font-size:var(--fs-xs);color:var(--text-3);margin-top:2px}.panel-body{padding:var(--s-4)}.toolbar{align-items:center;gap:var(--s-2);flex-wrap:wrap;display:flex}.toolbar .spacer{flex:1}.grid{gap:var(--s-4);min-width:0;display:grid}.input,.select,.textarea{border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface);width:100%;min-height:32px;color:var(--text);font-size:var(--fs-md);transition:border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);padding:6px 10px;line-height:1.4;display:block}.input::placeholder,.textarea::placeholder{color:var(--text-3)}.input:hover,.select:hover,.textarea:hover{border-color:var(--text-3)}.input:focus,.select:focus,.textarea:focus{border-color:var(--focus);box-shadow:0 0 0 3px color-mix(in srgb, var(--focus) 22%, transparent);outline:none}.input:disabled,.select:disabled,.textarea:disabled{opacity:.6;cursor:not-allowed}.input[aria-invalid=true],.textarea[aria-invalid=true]{border-color:var(--danger)}.textarea{resize:vertical;min-height:72px}.textarea.code,.input.code{font-family:var(--font-mono);font-size:var(--fs-sm)}.select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%237d877f' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 9px center;background-repeat:no-repeat;padding-right:28px}.input.sm,.select.sm{min-height:28px;font-size:var(--fs-sm);padding-top:3px;padding-bottom:3px}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field>.label,.label{font-size:var(--fs-sm);color:var(--text-2);align-items:center;gap:var(--s-1);font-weight:500;display:flex}.label .req{color:var(--danger)}.help{font-size:var(--fs-xs);color:var(--text-3);line-height:1.5}.field-error{font-size:var(--fs-xs);color:var(--danger)}.form-grid{gap:var(--s-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.form-grid .span-2{grid-column:1/-1}@media (width<=640px){.form-grid{grid-template-columns:minmax(0,1fr)}}.input-group{align-items:stretch;display:flex}.input-group .input{border-top-right-radius:0;border-bottom-right-radius:0}.input-group .addon{border:1px solid var(--border-strong);border-radius:0 var(--r-md) var(--r-md) 0;background:var(--surface-2);color:var(--text-3);font-size:var(--fs-sm);white-space:nowrap;border-left:0;align-items:center;padding:0 10px;display:flex}.check{align-items:center;gap:var(--s-2);cursor:pointer;font-size:var(--fs-md);-webkit-user-select:none;user-select:none;display:inline-flex}.check input{accent-color:var(--accent);width:15px;height:15px;margin:0}.seg{background:var(--surface-3);border-radius:var(--r-md);gap:2px;padding:2px;display:inline-flex}.seg button{border-radius:var(--r-sm);min-height:26px;font-size:var(--fs-sm);color:var(--text-2);transition:background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);white-space:nowrap;background:0 0;border:0;padding:4px 10px}.seg button:hover{color:var(--text)}.seg button[aria-pressed=true],.seg button[aria-selected=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm);font-weight:500}.table-scroll{min-width:0;overflow-x:auto}.tbl{border-collapse:separate;border-spacing:0;width:100%;font-size:var(--fs-sm)}.tbl th{z-index:1;background:var(--surface-2);color:var(--text-3);font-weight:500;font-size:var(--fs-xs);text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:8px 12px;position:sticky;top:0}.tbl td{border-bottom:1px solid var(--border);vertical-align:middle;color:var(--text);padding:9px 12px}.tbl tr:last-child td{border-bottom:0}.tbl tbody tr{transition:background-color var(--dur-fast) var(--ease-out)}.tbl tbody tr:hover{background:var(--surface-2)}.tbl .r{text-align:right}.tbl .c{text-align:center}.kv{gap:6px var(--s-4);font-size:var(--fs-sm);grid-template-columns:max-content minmax(0,1fr);display:grid}.kv dt{color:var(--text-3)}.kv dd{overflow-wrap:anywhere;margin:0}.chip{background:var(--surface-3);color:var(--text-2);font-size:var(--fs-xs);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:1px 7px;line-height:18px;display:inline-flex}.skeleton{border-radius:var(--r-sm);background:linear-gradient(90deg, var(--surface-3) 0%, var(--surface-2) 50%, var(--surface-3) 100%);animation:skeleton 1.4s var(--ease-out) infinite;background-size:200% 100%;display:block}@keyframes skeleton{0%{background-position:100% 0}to{background-position:-100% 0}}.enter-list>*{animation:rise var(--dur-enter) var(--ease-spring) both}.enter-list>:nth-child(2){animation-delay:30ms}.enter-list>:nth-child(3){animation-delay:60ms}.enter-list>:nth-child(4){animation-delay:90ms}.enter-list>:nth-child(5){animation-delay:.12s}.enter-list>:nth-child(6){animation-delay:.15s}.enter-list>:nth-child(n+7){animation-delay:.18s}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.progress-line{pointer-events:none;height:2px;position:absolute;top:0;left:0;right:0;overflow:hidden}.progress-line:after{content:"";background:var(--focus);width:40%;animation:progress 1s var(--ease-out) infinite;position:absolute;inset:0}@keyframes progress{0%{transform:translate(-100%)}to{transform:translate(260%)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important;animation-delay:0s!important}.skeleton{animation:none}.progress-line:after{opacity:.5;width:100%;animation:none}}.callout{align-items:flex-start;gap:var(--s-2);padding:var(--s-2) var(--s-3);border-radius:var(--r-md);border:1px solid color-mix(in srgb, var(--c,var(--info)) 28%, transparent);background:var(--bg-c,var(--info-soft));color:var(--text-2);font-size:var(--fs-sm);line-height:1.55;display:flex}.callout>svg{color:var(--c,var(--info));margin-top:2px}.callout b,.callout strong{color:var(--text);font-weight:600}.callout code{border-radius:var(--r-sm);background:color-mix(in srgb, var(--surface) 70%, transparent);font-size:var(--fs-xs);padding:0 4px}.callout.warning{--c:var(--warning);--bg-c:var(--warning-soft)}.callout.danger{--c:var(--danger);--bg-c:var(--danger-soft)}.callout.success{--c:var(--success);--bg-c:var(--success-soft)}.callout.neutral{--c:var(--neutral);--bg-c:var(--surface-2)}.stale-error{align-items:center;gap:var(--s-2);padding:6px var(--s-3);border-radius:var(--r-md);background:var(--danger-soft);color:var(--danger);font-size:var(--fs-sm);display:flex}.stale-error .spacer{flex:1}.icon-btn{border-radius:var(--r-sm);width:28px;height:28px;color:var(--text-2);transition:background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);background:0 0;border:1px solid #0000;place-items:center;display:inline-grid}.icon-btn:hover:not(:disabled){background:var(--surface-3);color:var(--text)}.icon-btn:active:not(:disabled){transform:scale(.94)}.icon-btn:disabled{opacity:.4;cursor:not-allowed}.icon-btn.danger:hover:not(:disabled){background:var(--danger-soft);color:var(--danger)}.row-actions{justify-content:flex-end;align-items:center;gap:2px;display:inline-flex}.search{min-width:180px;position:relative}.search>svg{color:var(--text-3);pointer-events:none;position:absolute;top:50%;left:9px;transform:translateY(-50%)}.search .input{padding-left:30px}.meter{background:var(--surface-3);border-radius:999px;height:4px;position:relative;overflow:hidden}.meter>i{border-radius:inherit;background:var(--c,var(--success));transition:width var(--dur-med) var(--ease-out), background-color var(--dur-med) var(--ease-out);position:absolute;inset:0 auto 0 0}.section-title{font-size:var(--fs-xs);color:var(--text-3);text-transform:uppercase;letter-spacing:.04em;font-weight:600}.stack{gap:var(--s-3);flex-direction:column;min-width:0;display:flex}.row{align-items:center;gap:var(--s-2);min-width:0;display:flex}.wrap{flex-wrap:wrap}.grow{flex:1;min-width:0}.md{overflow-wrap:anywhere;line-height:1.65}.md>*+*{margin-top:.6em}.md p,.md ul,.md ol,.md blockquote{margin:0}.md ul,.md ol{padding-left:1.4em}.md li+li{margin-top:2px}.md h3,.md h4,.md h5,.md h6{font-size:var(--fs-lg);margin:.8em 0 .2em;font-weight:600}.md h5,.md h6{font-size:var(--fs-md)}.md blockquote{padding-left:var(--s-3);border-left:3px solid var(--border-strong);color:var(--text-2)}.md hr{border:0;border-top:1px solid var(--border)}.md code{border-radius:var(--r-sm);background:var(--surface-3);padding:1px 5px;font-size:.92em}.md-code{border-radius:var(--r-md);background:var(--code-bg);color:var(--code-text);overflow:hidden}.md-code-head{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--code-muted);border-bottom:1px solid #ffffff12;justify-content:space-between;align-items:center;padding:4px 8px 4px 12px;display:flex}.md-copy{border-radius:var(--r-sm);height:22px;color:var(--code-text);font-size:var(--fs-xs);background:0 0;border:1px solid #ffffff1f;padding:0 8px}.md-copy:hover{background:#ffffff1a}.md-code pre{padding:var(--s-3);font-size:var(--fs-sm);margin:0;line-height:1.6;overflow-x:auto}.md-code code{background:0 0;padding:0}.page-enter-active{transition:opacity var(--dur-med) var(--ease-out), transform var(--dur-enter) var(--ease-spring)}.page-leave-active{transition:opacity 90ms var(--ease-out)}.page-enter-from{opacity:0;transform:translateY(6px)}.page-leave-to{opacity:0}@media (prefers-reduced-motion:reduce){.page-enter-from{transform:none}}.spinner[data-v-7d413d79]{border:2px solid color-mix(in srgb, currentColor 22%, transparent);border-top-color:currentColor;border-radius:50%;flex-shrink:0;animation:.7s cubic-bezier(.45,.1,.55,.9) infinite spin-7d413d79;display:inline-block}@keyframes spin-7d413d79{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner[data-v-7d413d79]{animation-duration:1.6s!important;animation-iteration-count:infinite!important}}.btn[data-v-757d17eb]{--h:32px;height:var(--h);border-radius:var(--r-md);font-size:var(--fs-md);white-space:nowrap;-webkit-user-select:none;user-select:none;transition:background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:0 12px;font-weight:500;line-height:1;display:inline-flex}.btn[data-v-757d17eb]:active:not(:disabled){transform:translateY(1px)scale(.98)}.btn[data-v-757d17eb]:disabled{cursor:not-allowed;opacity:.55}.btn.is-loading[data-v-757d17eb]{cursor:progress}.btn-sm[data-v-757d17eb]{--h:28px;font-size:var(--fs-sm);gap:5px;padding:0 10px}.btn-icon[data-v-757d17eb]{width:var(--h);padding:0}.btn-primary[data-v-757d17eb]{background:var(--accent);color:var(--text-inverse)}.btn-primary[data-v-757d17eb]:hover:not(:disabled){background:var(--accent-hover)}.btn-secondary[data-v-757d17eb]{background:var(--surface);border-color:var(--border-strong);color:var(--text)}.btn-secondary[data-v-757d17eb]:hover:not(:disabled){background:var(--surface-2);border-color:var(--text-3)}.btn-ghost[data-v-757d17eb]{color:var(--text-2);background:0 0}.btn-ghost[data-v-757d17eb]:hover:not(:disabled){background:var(--surface-3);color:var(--text)}.btn-danger[data-v-757d17eb]{background:var(--danger);color:#fff}:root[data-theme=dark] .btn-danger[data-v-757d17eb]{color:#1a0f0c}.btn-danger[data-v-757d17eb]:hover:not(:disabled){background:color-mix(in srgb, var(--danger) 86%, black)}.btn-danger-ghost[data-v-757d17eb]{color:var(--danger);background:0 0}.btn-danger-ghost[data-v-757d17eb]:hover:not(:disabled){background:var(--danger-soft)}.btn-label[data-v-757d17eb]{align-items:center;gap:6px;display:inline-flex}.dlg-backdrop[data-v-1da3c532]{z-index:200;padding:max(6vh, 24px) var(--s-4) var(--s-4);background:var(--overlay);justify-content:center;align-items:flex-start;display:flex;position:fixed;inset:0;overflow-y:auto}.dlg[data-v-1da3c532]{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);max-width:100%;max-height:calc(100vh - max(6vh,24px) - 16px);box-shadow:var(--shadow-lg);outline:none;flex-direction:column;display:flex}.dlg-head[data-v-1da3c532]{align-items:flex-start;gap:var(--s-3);padding:var(--s-4) var(--s-5) var(--s-3);display:flex}.dlg-titles[data-v-1da3c532]{flex:1;min-width:0}.dlg-head h2[data-v-1da3c532]{font-size:var(--fs-lg);font-weight:600}.dlg-head p[data-v-1da3c532]{font-size:var(--fs-sm);color:var(--text-3);margin-top:4px}.dlg-x[data-v-1da3c532]{border-radius:var(--r-sm);width:28px;height:28px;color:var(--text-3);transition:background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);background:0 0;border:0;place-items:center;margin:-2px -6px 0 0;display:grid}.dlg-x[data-v-1da3c532]:hover:not(:disabled){background:var(--surface-3);color:var(--text)}.dlg-body[data-v-1da3c532]{padding:var(--s-2) var(--s-5) var(--s-5);min-height:0;overflow-y:auto}.dlg-foot[data-v-1da3c532]{justify-content:flex-end;align-items:center;gap:var(--s-2);padding:var(--s-3) var(--s-5);border-top:1px solid var(--border);background:var(--surface-2);border-radius:0 0 var(--r-lg) var(--r-lg);flex-wrap:wrap;display:flex}.dlg-enter-active[data-v-1da3c532]{transition:opacity var(--dur-med) var(--ease-out)}.dlg-enter-active .dlg[data-v-1da3c532]{transition:transform var(--dur-enter) var(--ease-spring), opacity var(--dur-med) var(--ease-out)}.dlg-leave-active[data-v-1da3c532]{transition:opacity var(--dur-fast) var(--ease-out)}.dlg-leave-active .dlg[data-v-1da3c532]{transition:transform var(--dur-fast) var(--ease-out), opacity var(--dur-fast) var(--ease-out)}.dlg-enter-from[data-v-1da3c532],.dlg-leave-to[data-v-1da3c532]{opacity:0}.dlg-enter-from .dlg[data-v-1da3c532]{opacity:0;transform:translateY(10px)scale(.98)}.dlg-leave-to .dlg[data-v-1da3c532]{opacity:0;transform:scale(.985)}@media (prefers-reduced-motion:reduce){.dlg-enter-from .dlg[data-v-1da3c532],.dlg-leave-to .dlg[data-v-1da3c532]{transform:none}}@media (width<=640px){.dlg-backdrop[data-v-1da3c532]{padding:var(--s-3);align-items:flex-end}.dlg[data-v-1da3c532]{max-height:calc(100vh - 24px)}}.msg[data-v-d6cfabd0]{color:var(--text-2);font-size:var(--fs-md);white-space:pre-line;line-height:1.6}.toasts[data-v-5614bdf2]{right:var(--s-5);bottom:var(--s-5);z-index:400;gap:var(--s-2);pointer-events:none;flex-direction:column;width:min(380px,100vw - 32px);display:flex;position:fixed}.toast[data-v-5614bdf2]{pointer-events:auto;align-items:flex-start;gap:var(--s-3);padding:var(--s-3) var(--s-3) var(--s-3) var(--s-4);background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--c);border-radius:var(--r-md);box-shadow:var(--shadow-md);display:flex}.k-success[data-v-5614bdf2]{--c:var(--success)}.k-error[data-v-5614bdf2]{--c:var(--danger)}.k-warning[data-v-5614bdf2]{--c:var(--warning)}.k-info[data-v-5614bdf2]{--c:var(--info)}.ti[data-v-5614bdf2]{color:var(--c);margin-top:1px}.tt[data-v-5614bdf2]{flex:1;min-width:0}.tt strong[data-v-5614bdf2]{font-weight:500;font-size:var(--fs-md)}.tt p[data-v-5614bdf2]{font-size:var(--fs-sm);color:var(--text-2);overflow-wrap:anywhere;margin-top:2px}.tx[data-v-5614bdf2]{color:var(--text-3);border-radius:var(--r-sm);background:0 0;border:0;place-items:center;padding:2px;display:grid}.tx[data-v-5614bdf2]:hover{background:var(--surface-3);color:var(--text)}.toast-enter-active[data-v-5614bdf2]{transition:transform var(--dur-enter) var(--ease-spring), opacity var(--dur-med) var(--ease-out)}.toast-leave-active[data-v-5614bdf2]{transition:transform var(--dur-med) var(--ease-out), opacity var(--dur-fast) var(--ease-out)}.toast-move[data-v-5614bdf2]{transition:transform var(--dur-med) var(--ease-out)}.toast-enter-from[data-v-5614bdf2]{opacity:0;transform:translateY(12px)scale(.97)}.toast-leave-to[data-v-5614bdf2]{opacity:0;transform:translate(24px)}@media (prefers-reduced-motion:reduce){.toast-enter-from[data-v-5614bdf2],.toast-leave-to[data-v-5614bdf2]{transform:none}}.shell[data-v-2ec4c0b0]{--logo-bg:#25392e;--logo-fg:#edf3dc;grid-template-columns:var(--sidebar-w) minmax(0, 1fr);min-height:100vh;transition:grid-template-columns var(--dur-enter) var(--ease-out);display:grid}:root[data-theme=dark] .shell[data-v-2ec4c0b0]{--logo-bg:#a6c99a;--logo-fg:#142019}.shell.collapsed[data-v-2ec4c0b0]{grid-template-columns:var(--sidebar-w-collapsed) minmax(0, 1fr)}.shell.narrow[data-v-2ec4c0b0]{grid-template-columns:minmax(0,1fr)}.skip[data-v-2ec4c0b0]{z-index:500;border-radius:var(--r-md);background:var(--accent);color:var(--text-inverse);padding:6px 10px;position:absolute;top:-40px;left:8px}.skip[data-v-2ec4c0b0]:focus{top:8px}.side[data-v-2ec4c0b0]{background:var(--sidebar);border-right:1px solid var(--border);flex-direction:column;height:100vh;display:flex;position:sticky;top:0;overflow:hidden}.narrow .side[data-v-2ec4c0b0]{z-index:150;width:min(260px,82vw);box-shadow:none;transition:transform var(--dur-med) var(--ease-out), box-shadow var(--dur-med) var(--ease-out);position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.narrow.m-open .side[data-v-2ec4c0b0]{box-shadow:var(--shadow-lg);transition:transform var(--dur-enter) cubic-bezier(.22, 1.12, .36, 1), box-shadow var(--dur-med) var(--ease-out);transform:none}.side-backdrop[data-v-2ec4c0b0]{z-index:140;background:var(--overlay);position:fixed;inset:0}.brand[data-v-2ec4c0b0]{height:var(--topbar-h);flex-shrink:0;align-items:center;gap:10px;padding:0 14px;display:flex}.logo[data-v-2ec4c0b0]{flex-shrink:0;width:30px;height:30px}.brand-text[data-v-2ec4c0b0]{white-space:nowrap;flex-direction:column;flex:1;min-width:0;line-height:1.2;display:flex}.brand-text strong[data-v-2ec4c0b0]{font-size:var(--fs-md);letter-spacing:-.01em;font-weight:650}.brand-text span[data-v-2ec4c0b0]{font-size:var(--fs-xs);color:var(--text-3)}.nav[data-v-2ec4c0b0]{padding:var(--s-2) 10px;flex-direction:column;flex:1;gap:2px;display:flex;overflow-y:auto}.nav-link[data-v-2ec4c0b0]{border-radius:var(--r-md);height:34px;color:var(--text-2);font-size:var(--fs-md);white-space:nowrap;text-align:left;width:100%;transition:background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);background:0 0;border:0;align-items:center;gap:10px;padding:0 10px;text-decoration:none;display:flex;position:relative}.nav-link[data-v-2ec4c0b0]:hover{background:color-mix(in srgb, var(--surface-3) 80%, var(--border));color:var(--text);text-decoration:none}.nav-link.router-link-exact-active[data-v-2ec4c0b0]{background:var(--surface);color:var(--accent-text);box-shadow:var(--shadow-sm), inset 0 0 0 1px var(--border);font-weight:600}.nav-link.router-link-exact-active[data-v-2ec4c0b0]:before{content:"";background:var(--accent);border-radius:0 3px 3px 0;width:3px;position:absolute;top:8px;bottom:8px;left:-10px}.nav-label[data-v-2ec4c0b0]{text-overflow:ellipsis;transition:opacity var(--dur-fast) var(--ease-out);overflow:hidden}.side-foot[data-v-2ec4c0b0]{padding:var(--s-2) 10px var(--s-3);border-top:1px solid var(--border)}.collapse-btn[data-v-2ec4c0b0]{color:var(--text-3)}.collapsed .brand-text[data-v-2ec4c0b0],.collapsed .nav-label[data-v-2ec4c0b0]{opacity:0;pointer-events:none}.collapsed .brand[data-v-2ec4c0b0]{padding:0 15px}.close-m[data-v-2ec4c0b0]{margin-right:-6px}.main[data-v-2ec4c0b0]{flex-direction:column;min-width:0;display:flex}.topbar[data-v-2ec4c0b0]{z-index:100;align-items:center;gap:var(--s-2);height:var(--topbar-h);padding:0 var(--s-6);background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:saturate(1.4)blur(8px);backdrop-filter:saturate(1.4)blur(8px);border-bottom:1px solid var(--border);display:flex;position:sticky;top:0}.top-title[data-v-2ec4c0b0]{font-size:var(--fs-lg);font-weight:600}.spacer[data-v-2ec4c0b0]{flex:1}.mock-flag[data-v-2ec4c0b0]{background:var(--warning-soft);height:22px;color:var(--warning);border:1px dashed color-mix(in srgb, var(--warning) 60%, transparent);font-size:var(--fs-xs);white-space:nowrap;cursor:help;border-radius:999px;align-items:center;gap:4px;padding:0 8px;font-weight:600;display:inline-flex}.ver[data-v-2ec4c0b0]{font-size:var(--fs-xs);color:var(--text-3);background:var(--surface-3);white-space:nowrap;border-radius:999px;padding:2px 8px}.logout[data-v-2ec4c0b0]{border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface);height:30px;color:var(--text-2);font-size:var(--fs-sm);transition:background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);align-items:center;gap:6px;padding:0 10px;display:inline-flex}.logout[data-v-2ec4c0b0]:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.logout[data-v-2ec4c0b0]:disabled{opacity:.55;cursor:progress}.content[data-v-2ec4c0b0]{padding:var(--s-6);outline:none;min-width:0}@media (width<=640px){.topbar[data-v-2ec4c0b0]{padding:0 var(--s-3)}.content[data-v-2ec4c0b0]{padding:var(--s-4) var(--s-3)}.logout-label[data-v-2ec4c0b0],.ver[data-v-2ec4c0b0]{display:none}.logout[data-v-2ec4c0b0]{justify-content:center;width:30px;padding:0}}.fade-enter-active[data-v-2ec4c0b0],.fade-leave-active[data-v-2ec4c0b0]{transition:opacity var(--dur-med) var(--ease-out)}.fade-enter-from[data-v-2ec4c0b0],.fade-leave-to[data-v-2ec4c0b0]{opacity:0}
