.shell[data-v-ab4dadfc]{height:100vh;display:flex;overflow:hidden;background:var(--surface)}.side[data-v-ab4dadfc]{width:232px;flex-shrink:0;min-height:0;overflow:hidden;display:flex;flex-direction:column;background:var(--surface);border-right:1px solid var(--border-2);padding:14px 12px 12px}.brand[data-v-ab4dadfc]{display:flex;align-items:center;gap:10px;padding:4px 8px 16px}.brand__mark[data-v-ab4dadfc]{width:30px;height:30px;border-radius:9px;flex-shrink:0;object-fit:cover}.brand__text[data-v-ab4dadfc]{display:flex;align-items:baseline;white-space:nowrap;font-size:14px;font-weight:600;letter-spacing:.01em;color:var(--fg)}.brand__text b[data-v-ab4dadfc],.brand__text i[data-v-ab4dadfc]{font-size:inherit;font-weight:inherit;letter-spacing:inherit;color:inherit}.brand__text i[data-v-ab4dadfc]{font-style:normal}.nav[data-v-ab4dadfc]{flex:1 1 auto;min-height:0;overflow:hidden;display:flex;flex-direction:column;gap:20px;padding:2px 0 8px}.nav__group[data-v-ab4dadfc]{display:flex;flex-direction:column;gap:2px}.nav__group[data-v-ab4dadfc]:nth-child(2){margin-top:10px}.nav__label[data-v-ab4dadfc]{padding:0 10px 6px;font-size:11px;font-weight:600;letter-spacing:.08em;color:var(--muted)}.nav__item[data-v-ab4dadfc]{display:flex;align-items:center;gap:10px;height:32px;padding:0 10px;border-radius:var(--radius-xs);color:var(--fg-2);font-size:13.5px;cursor:pointer;border:none;background:none;width:100%;text-align:left;position:relative;flex-shrink:0;transition:background-color .12s ease,color .12s ease}.nav__icon[data-v-ab4dadfc]{display:flex;align-items:center;justify-content:center;width:15px;height:15px;flex-shrink:0;color:var(--muted)}.nav__item[data-v-ab4dadfc]:hover{background:var(--hover);color:var(--fg)}.nav__item:hover .nav__icon[data-v-ab4dadfc]{color:var(--fg-2)}.nav__item.is-active[data-v-ab4dadfc]{background:var(--accent-soft);color:var(--accent);font-weight:600}.nav__item.is-active .nav__icon[data-v-ab4dadfc]{color:var(--accent)}.nav__item.is-active[data-v-ab4dadfc]:before{content:"";position:absolute;left:-12px;top:50%;transform:translateY(-50%);width:3px;height:14px;border-radius:0 2px 2px 0;background:var(--accent)}.newchat[data-v-ab4dadfc]{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;height:32px;border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--surface);color:var(--fg);font-size:13.5px;font-weight:500;cursor:pointer;margin-bottom:10px;flex-shrink:0}.newchat[data-v-ab4dadfc]:hover{border-color:var(--accent);color:var(--accent)}.convlist[data-v-ab4dadfc]{display:flex;flex-direction:column;gap:1px;flex:0 0 auto;max-height:calc(100vh - 589px);min-height:120px;overflow-y:auto}.convlist.is-empty[data-v-ab4dadfc]{min-height:0;overflow:hidden}.conv[data-v-ab4dadfc]{position:relative;display:block;padding:6px 26px 6px 8px;border-radius:var(--radius-xs);font-size:13.5px;color:var(--fg-2);cursor:pointer;border:none;background:none;width:100%;text-align:left;flex-shrink:0}.conv__text[data-v-ab4dadfc]{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conv[data-v-ab4dadfc]:hover{background:var(--hover);color:var(--fg)}.conv.is-active[data-v-ab4dadfc]{background:var(--accent-soft);color:var(--accent);font-weight:600}.conv__del[data-v-ab4dadfc]{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:18px;height:18px;display:none;align-items:center;justify-content:center;border:none;border-radius:4px;background:none;color:var(--muted);cursor:pointer;padding:0}.conv:hover .conv__del[data-v-ab4dadfc]{display:flex}.conv__del[data-v-ab4dadfc]:hover{background:var(--danger);color:#fff}.side__me[data-v-ab4dadfc]{flex-shrink:0;display:flex;align-items:center;gap:9px;padding:9px 8px;border:none;border-top:1px solid var(--border-2);border-radius:var(--radius-sm);background:none;width:100%;text-align:left;cursor:pointer}.side__me-text[data-v-ab4dadfc]{min-width:0}.side__me small[data-v-ab4dadfc]{display:block;font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side__me b[data-v-ab4dadfc]{font-size:13.5px;font-weight:600}.side__me[data-v-ab4dadfc]:hover{background:var(--hover)}.side__me.is-active[data-v-ab4dadfc]{background:var(--accent-soft)}.side__me.is-active b[data-v-ab4dadfc]{color:var(--accent)}.main[data-v-ab4dadfc]{flex:1;display:flex;flex-direction:column;min-width:0;background:var(--bg)}.titlebar[data-v-ab4dadfc]{height:48px;flex-shrink:0;display:flex;align-items:center;padding-left:20px;border-bottom:1px solid var(--border-2);background:var(--surface)}.titlebar__title[data-v-ab4dadfc]{font-size:14.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:40%}.titlebar__drag[data-v-ab4dadfc]{flex:1;height:100%}.titlebar__actions[data-v-ab4dadfc]{display:flex;align-items:center;gap:8px;height:100%;flex-shrink:0}.titlebar__actions .btn[data-v-ab4dadfc]{margin-right:4px}.winctrl[data-v-ab4dadfc]{display:flex;height:100%;margin-left:6px}.winctrl button[data-v-ab4dadfc]{width:44px;height:100%;border:none;background:none;display:flex;align-items:center;justify-content:center;color:var(--muted);cursor:pointer}.winctrl button[data-v-ab4dadfc]:hover{background:var(--hover);color:var(--fg)}.winctrl button[data-v-ab4dadfc]:last-child:hover{background:var(--danger);color:#fff}.content[data-v-ab4dadfc]{flex:1;overflow:auto;display:flex;flex-direction:column;min-height:0}.dlg-mask[data-v-e9f71459]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;background:#20212b52;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;padding:24px}.dlg-panel[data-v-e9f71459]{width:360px;max-width:100%;background:var(--surface);border-radius:12px;box-shadow:var(--shadow-3);padding:24px 22px 18px;text-align:center;animation:dlg-pop-e9f71459 .2s cubic-bezier(.2,.9,.3,1.2)}@keyframes dlg-pop-e9f71459{0%{opacity:0;transform:translateY(10px) scale(.94)}to{opacity:1;transform:none}}.dlg-icon[data-v-e9f71459]{width:46px;height:46px;border-radius:50%;background:var(--danger-soft);display:flex;align-items:center;justify-content:center;margin:0 auto 12px}.dlg-title[data-v-e9f71459]{margin:0;font-size:16px;font-weight:700;color:var(--fg)}.dlg-text[data-v-e9f71459]{margin:8px 0 0;font-size:13.5px;line-height:1.75;color:var(--fg-2);white-space:pre-line;word-break:break-all}.dlg-actions[data-v-e9f71459]{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.dlg-btn[data-v-e9f71459]{height:34px;padding:0 16px;border-radius:var(--radius-xs);border:1px solid var(--border);background:var(--surface);font-size:14px;font-weight:500;color:var(--fg);cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease}.dlg-btn[data-v-e9f71459]:hover{border-color:var(--faint);background:var(--surface-2)}.dlg-btn--primary[data-v-e9f71459]{border:1px solid transparent;background:var(--accent);color:var(--on-accent);font-weight:500}.dlg-btn--primary[data-v-e9f71459]:hover{background:var(--accent-hover)}.dlg-btn--primary[data-v-e9f71459]:focus-visible{outline:2px solid var(--accent-soft);outline-offset:1px}.dlg-btn--danger[data-v-e9f71459]{background:var(--danger)}.dlg-btn--danger[data-v-e9f71459]:hover{background:var(--danger-strong)}.dlg-btn--danger[data-v-e9f71459]:focus-visible{outline-color:var(--danger-soft)}.dlg-toasts[data-v-e9f71459]{position:fixed;top:60px;left:50%;transform:translate(-50%);z-index:400;display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none}.dlg-toast[data-v-e9f71459]{display:inline-flex;align-items:center;gap:7px;max-width:78vw;background:#20212be6;color:#fff;font-size:13.5px;line-height:1.6;border-radius:var(--radius-xs);padding:9px 16px;box-shadow:var(--shadow-2)}.dlg-toast-ico[data-v-e9f71459]{flex-shrink:0}.dlg-fade-enter-active[data-v-e9f71459],.dlg-fade-leave-active[data-v-e9f71459]{transition:opacity .18s ease}.dlg-fade-enter-from[data-v-e9f71459],.dlg-fade-leave-to[data-v-e9f71459]{opacity:0}.dlg-toast-enter-active[data-v-e9f71459],.dlg-toast-leave-active[data-v-e9f71459]{transition:opacity .22s ease,transform .22s ease}.dlg-toast-enter-from[data-v-e9f71459]{opacity:0;transform:translateY(-10px)}.dlg-toast-leave-to[data-v-e9f71459]{opacity:0;transform:translateY(-6px)}:root{--bg: oklch(.972 .003 280);--surface: oklch(1 0 0);--surface-2: oklch(.983 .002 280);--fg: oklch(.235 .015 280);--fg-2: oklch(.43 .014 280);--muted: oklch(.545 .012 280);--faint: oklch(.7 .009 280);--border: oklch(.916 .004 280);--border-2: oklch(.949 .003 280);--hover: oklch(.962 .003 280);--accent: oklch(.52 .21 285);--accent-hover: oklch(.46 .2 285);--accent-soft: oklch(.95 .032 285);--accent-softer: oklch(.97 .016 285);--on-accent: oklch(1 0 0);--ok: oklch(.6 .125 155);--ok-strong: oklch(.455 .105 155);--ok-soft: oklch(.958 .03 155);--warn: oklch(.78 .13 80);--warn-strong: oklch(.485 .095 70);--warn-soft: oklch(.968 .033 85);--danger: oklch(.545 .185 27);--danger-strong: oklch(.49 .17 27);--danger-soft: oklch(.96 .018 27);--radius: 10px;--radius-sm: 8px;--radius-xs: 6px;--shadow-1: 0 1px 2px oklch(.2 .02 280 / .05);--shadow-2: 0 10px 32px oklch(.2 .02 280 / .1);--shadow-3: 0 24px 64px oklch(.2 .02 280 / .18);--sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", sans-serif;--mono: ui-monospace, "SF Mono", "Cascadia Mono", "JetBrains Mono", Consolas, "Courier New", monospace;--dw-primary: var(--accent);--dw-primary-hover: var(--accent-hover);--dw-primary-soft: var(--accent-soft);--dw-primary-soft-2: var(--accent-softer);--dw-sky-bg-1: var(--bg);--dw-sky-bg-2: var(--bg);--dw-panel: var(--surface-2);--dw-bubble: var(--accent-soft);--dw-text: var(--fg);--dw-text-secondary: var(--fg-2);--dw-muted: var(--muted);--dw-border: var(--border);--dw-border-light: var(--border-2);--dw-table-header: var(--surface-2);--dw-warn: var(--warn-strong);--dw-success: var(--ok-strong);--dw-danger: var(--danger);--agentic-bg: var(--bg);--agentic-chrome: var(--surface-2);--agentic-surface: var(--surface);--agentic-subtle: var(--surface-2);--agentic-hover: var(--hover);--agentic-active: var(--hover);--agentic-text: var(--fg);--agentic-text-secondary: var(--fg-2);--agentic-muted: var(--muted);--agentic-brand: var(--accent);--agentic-brand-strong: var(--accent-hover);--agentic-brand-muted: var(--muted);--agentic-selected: var(--accent-soft);--agentic-selected-hover: var(--accent-softer);--agentic-action: var(--accent);--agentic-action-hover: var(--accent-hover);--agentic-action-soft: var(--accent-softer);--agentic-link: var(--accent);--agentic-info-text: var(--fg-2);--agentic-info-bg: var(--surface-2);--agentic-success-text: var(--ok-strong);--agentic-success-bg: var(--ok-soft);--agentic-success-border: var(--ok-soft);--agentic-warning-text: var(--warn-strong);--agentic-warning-bg: var(--warn-soft);--agentic-warning-border: var(--warn-soft);--agentic-border: var(--border);--agentic-radius: var(--radius);--agentic-radius-sm: var(--radius-sm);--font-family: var(--sans)}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%}body{font-family:var(--sans);font-size:14px;color:var(--fg);background:var(--bg);-webkit-font-smoothing:antialiased;overflow:hidden;-webkit-user-select:none;user-select:none;cursor:default}#app{height:100%}button,input,select,textarea{font-family:inherit;font-size:inherit;outline:none}button{cursor:pointer}a{color:inherit;text-decoration:none}h1,h2,h3,h4,p{margin:0}[hidden]{display:none!important}.mono{font-family:var(--mono);font-feature-settings:"tnum"}.eyebrow{font-family:var(--mono);font-size:11.5px;letter-spacing:.09em;color:var(--muted);text-transform:uppercase}:focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-radius:4px}input:focus-visible,textarea:focus-visible,select:focus-visible{outline:none}input:focus,textarea:focus,select:focus{border-color:var(--accent)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#d0d1d5;border:3px solid transparent;border-radius:8px;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:#b6b7bc;background-clip:padding-box}::-webkit-scrollbar-track{background:transparent}.page-root{height:100vh;display:flex;flex-direction:column;overflow:hidden}.avatar{width:26px;height:26px;border-radius:50%;background:var(--accent-softer);border:1px solid var(--accent-soft);color:var(--accent);display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;flex-shrink:0}.avatar--lg{width:48px;height:48px;font-size:20px}img.avatar{object-fit:cover;background:var(--surface)}.phead{flex-shrink:0;display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:22px 26px 16px}.phead h1{font-size:19px;font-weight:700;letter-spacing:.01em;margin:3px 0 5px}.phead__desc{font-size:13.5px;color:var(--muted)}.phead__actions{display:flex;align-items:center;gap:8px}.pbody{flex:1;min-height:0;padding:0 26px 20px;display:flex;flex-direction:column;gap:14px}.dw-page{flex:1;display:flex;flex-direction:column;padding:0 22px 14px;min-height:0}.dw-page__body{flex:1;overflow:auto;min-height:0}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;flex-shrink:0}.stat{background:var(--surface);border:1px solid var(--border-2);border-radius:var(--radius-sm);padding:12px 14px}.stat__label{display:block;margin-bottom:6px}.stat__value{font-family:var(--mono);font-size:23px;font-weight:600;letter-spacing:-.01em}.stat__delta{margin-left:8px;font-size:12px;font-weight:600}.stat__delta--up{color:var(--ok-strong)}.stat__delta--down{color:var(--danger-strong)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:34px;padding:0 16px;border-radius:var(--radius-xs);border:1px solid transparent;font-size:14px;font-weight:500;cursor:pointer;white-space:nowrap;transition:background .12s ease,border-color .12s ease,color .12s ease}.btn--primary{background:var(--accent);color:var(--on-accent)}.btn--primary:hover:not(:disabled){background:var(--accent-hover)}.btn--primary:disabled{opacity:.45;cursor:default}.btn--ghost{background:var(--surface);border-color:var(--border);color:var(--fg)}.btn--ghost:hover:not(:disabled){border-color:var(--faint);background:var(--surface-2)}.btn--ghost:disabled{opacity:.5;cursor:default}.btn--sm{height:28px;padding:0 12px;font-size:13px}.btn:disabled{opacity:.5;cursor:not-allowed}.dw-solid-btn{height:34px;padding:0 16px;border:none;border-radius:var(--radius-xs);background:var(--accent);color:var(--on-accent);font-size:14px;font-weight:500}.dw-solid-btn:hover{background:var(--accent-hover)}.dw-ghost-btn{height:34px;padding:0 16px;border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--surface);color:var(--fg);font-size:14px}.dw-ghost-btn:hover{border-color:var(--faint);background:var(--surface-2)}.dw-pill-btn{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 16px;border:none;border-radius:var(--radius-xs);background:var(--accent);color:var(--on-accent);font-size:14px;font-weight:500;align-self:flex-start;margin:14px 0 18px}.dw-pill-btn:hover{background:var(--accent-hover)}.dw-mini-add{display:inline-flex;align-items:center;border:1px solid var(--border);background:var(--surface);color:var(--fg-2);border-radius:var(--radius-xs);padding:5px 12px;font-size:13px;font-weight:500}.dw-mini-add:hover{border-color:var(--accent);color:var(--accent)}.tbtn{white-space:nowrap;border:none;background:none;padding:2px 4px;font-size:13.5px;color:var(--accent);cursor:pointer;border-radius:4px}.tbtn:hover{color:var(--accent-hover);background:var(--accent-softer)}.tbtn--danger{color:var(--danger-strong)}.tbtn--danger:hover{color:var(--danger);background:var(--danger-soft)}.dw-link{color:var(--accent);background:none;border:none;font-size:13.5px;padding:2px 4px;border-radius:4px}.dw-link:hover{background:var(--accent-softer)}.dw-link--danger{color:var(--danger-strong)}.dw-link--danger:hover{color:var(--danger);background:var(--danger-soft)}.iconbtn{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--surface);color:var(--fg-2);cursor:pointer}.iconbtn:hover{border-color:var(--faint);color:var(--fg)}.tblcard{background:var(--surface);border:1px solid var(--border-2);border-radius:var(--radius);box-shadow:var(--shadow-1);overflow:auto;flex:1;min-height:0}.tbl{width:100%;border-collapse:collapse;font-size:14px}.tbl th{position:sticky;top:0;z-index:1;text-align:left;font-family:var(--mono);font-size:11.5px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:var(--surface-2);border-bottom:1px solid var(--border-2);padding:9px 16px;white-space:nowrap}.tbl td{padding:12px 16px;border-bottom:1px solid var(--border-2);color:var(--fg-2);vertical-align:middle}.tbl tbody tr:last-child td{border-bottom:none}.tbl tbody tr{transition:background .1s ease}.tbl tbody tr:hover{background:#f7f7fa}.tbl .td-name{color:var(--fg);font-weight:550}.tbl .td-mono{font-family:var(--mono);font-size:13.5px}.tbl .td-clip{max-width:380px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tfoot{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:10px 4px 0;font-family:var(--mono);font-size:12.5px;color:var(--muted)}.dw-table{width:100%;border-collapse:collapse;font-size:14px}.dw-table th{text-align:left;font-family:var(--mono);font-size:11.5px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:var(--surface-2);padding:9px 16px;white-space:nowrap}.dw-table td{padding:12px 16px;border-bottom:1px solid var(--border-2);color:var(--fg-2);vertical-align:middle}.dw-table tr:hover td{background:#f7f7fa}.dw-desc-cell{max-width:520px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.6}.pager{display:flex;align-items:center;gap:4px}.pager__num{min-width:26px;height:26px;padding:0 6px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--surface);font-family:var(--mono);font-size:13px;color:var(--fg-2);cursor:pointer}.pager__num:hover{border-color:var(--faint)}.pager__num.is-active{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:600}.pager__nav{border:none;background:none;color:var(--muted);font-size:16px;cursor:pointer;padding:0 4px}.pager__nav.is-disabled{color:var(--border);cursor:default}.dw-page-footer{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:10px 4px 0;font-family:var(--mono);font-size:12.5px;color:var(--muted)}.dw-page-size{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);border-radius:var(--radius-xs);padding:4px 10px;background:var(--surface);color:var(--fg-2);font-family:var(--mono);font-size:13px;cursor:pointer;-webkit-user-select:none;user-select:none}.dw-page-size:hover{border-color:var(--accent);color:var(--accent)}.chip{display:inline-flex;align-items:center;gap:6px;padding:2px 9px;border-radius:999px;font-size:12.5px;font-weight:550;background:var(--hover);color:var(--fg-2);white-space:nowrap}.chip:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.75}.chip--ok{background:var(--ok-soft);color:var(--ok-strong)}.chip--warn{background:var(--warn-soft);color:var(--warn-strong)}.chip--danger{background:var(--danger-soft);color:var(--danger-strong)}.chip--accent{background:var(--accent-soft);color:var(--accent)}.chip--plain:before{display:none}.switch,.dw-switch{position:relative;display:inline-block;width:34px;height:20px;flex-shrink:0}.switch input,.dw-switch input{display:none}.switch span,.dw-switch span{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:999px;background:#d3d4d8;transition:background .15s ease}.switch span:after,.dw-switch span:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #14151f33;transition:left .15s ease}.switch input:checked+span,.dw-switch input:checked+span{background:var(--accent)}.switch input:checked+span:after,.dw-switch input:checked+span:after{left:16px}.input,.dw-input{height:34px;padding:0 12px;border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--surface);color:var(--fg);font-size:14px;-webkit-user-select:text;user-select:text;transition:border-color .12s ease}.input::placeholder,.dw-input::placeholder{color:var(--faint)}.input:hover,.dw-input:hover{border-color:#d0d1d5}.input:focus,.dw-input:focus{border-color:var(--accent)}select.input,select.dw-input{cursor:pointer}.textarea,.dw-textarea{width:100%;border:1px solid var(--border);border-radius:var(--radius-xs);padding:10px 12px;font-size:14px;line-height:1.7;color:var(--fg);background:var(--surface);resize:vertical;font-family:inherit;-webkit-user-select:text;user-select:text;box-sizing:border-box}.textarea::placeholder,.dw-textarea::placeholder{color:var(--faint)}.textarea:focus,.dw-textarea:focus{outline:none;border-color:var(--accent)}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px;text-align:left}.field__label,.form-field__label{font-size:13.5px;font-weight:550;color:var(--fg-2)}.field__hint{font-size:12.5px;color:var(--muted)}.form-field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px;text-align:left}.form-input{height:34px;border:1px solid var(--border);border-radius:var(--radius-xs);padding:0 12px;font-size:14px;background:var(--surface);color:var(--fg);width:100%;-webkit-user-select:text;user-select:text}.form-input:focus{border-color:var(--accent)}.mask,.dw-modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#20212b52;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center}.modal,.dw-modal{width:520px;max-width:92vw;max-height:84vh;background:var(--surface);border-radius:12px;box-shadow:var(--shadow-3);display:flex;flex-direction:column;overflow:hidden}.modal__head,.dw-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px}.modal__title,.dw-modal-title{margin:0;font-size:16px;font-weight:700;color:var(--fg)}.modal__close,.dw-modal-close{width:26px;height:26px;border:none;border-radius:var(--radius-xs);background:none;color:var(--muted);font-size:16px;line-height:1;cursor:pointer}.modal__close:hover,.dw-modal-close:hover{background:var(--hover);color:var(--fg)}.modal__body,.dw-modal-body{padding:2px 20px 6px;overflow:auto}.modal__foot,.dw-modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px 18px}.modal__foot .btn,.dw-modal-footer .dw-solid-btn,.dw-modal-footer .dw-ghost-btn{min-width:76px}.dw-confirm{width:360px;background:var(--surface);border-radius:12px;box-shadow:var(--shadow-3);padding:22px 22px 16px}.dw-confirm__title{font-size:15px;font-weight:700;color:var(--fg);margin-bottom:8px}.dw-confirm__text{font-size:13.5px;line-height:1.7;color:var(--fg-2);margin:0 0 18px}.dw-confirm__actions{display:flex;justify-content:flex-end;gap:10px}.drawer-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#20212b47}.drawer{position:fixed;top:0;right:0;bottom:0;z-index:101;width:420px;max-width:92vw;background:var(--surface);border-left:1px solid var(--border-2);box-shadow:var(--shadow-3);display:flex;flex-direction:column}.drawer__head{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-2)}.drawer__title{font-size:16px;font-weight:700}.drawer__body{flex:1;overflow:auto;padding:18px 20px}.drawer__foot{flex-shrink:0;display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid var(--border-2)}.toast,.dw-toast{position:fixed;top:60px;left:50%;transform:translate(-50%);z-index:200;background:#20212be6;color:#fff;font-size:13.5px;border-radius:var(--radius-xs);padding:9px 16px;pointer-events:none}.empty,.dw-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:60px 20px;color:var(--muted);font-size:14px}.empty__icon,.dw-empty__icon{width:44px;height:44px;border-radius:50%;background:var(--hover);display:flex;align-items:center;justify-content:center;color:var(--muted)}.page-placeholder{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--muted);padding:40px}.page-placeholder__icon{font-size:40px;opacity:.4}.page-placeholder__title{font-size:16px;color:var(--fg-2);font-weight:600}.page-placeholder__desc{font-size:13px;max-width:320px;text-align:center;line-height:1.6}.filters{flex-shrink:0;display:flex;align-items:center;gap:10px;padding-bottom:2px}.filters .input--search{width:260px}.rangewrap{display:flex;align-items:center;gap:6px;height:34px;padding:0 10px;border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--surface);color:var(--muted)}.rangewrap .input{border:none;height:30px;padding:0;width:118px;font-family:var(--mono);font-size:13px}.rangewrap .input:hover{border:none}.dw-chat-item{position:relative;padding-right:26px!important}.dw-chat-del{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:18px;height:18px;border:none;border-radius:4px;background:transparent;color:var(--muted);font-size:14px;line-height:1;display:none;align-items:center;justify-content:center;padding:0}.dw-chat-item:hover .dw-chat-del{display:flex}.dw-chat-del:hover{background:var(--danger);color:#fff}.md-content{white-space:normal;-webkit-user-select:text;user-select:text;word-break:break-word}.md-content>:first-child{margin-top:0}.md-content>:last-child{margin-bottom:0}.md-content .md-p{margin:0 0 8px;line-height:1.8}.md-content .md-h{margin:14px 0 8px;font-weight:700;line-height:1.5;color:var(--dw-text)}.md-content .md-h1{font-size:18px}.md-content .md-h2{font-size:17px}.md-content .md-h3{font-size:15.5px}.md-content .md-h4,.md-content .md-h5,.md-content .md-h6{font-size:14.5px}.md-content .md-pre{margin:8px 0;padding:10px 12px;background:var(--surface-2);border:1px solid var(--border-2);border-radius:var(--radius-sm);overflow:auto}.md-content .md-pre code{font-family:Consolas,Menlo,Courier New,monospace;font-size:13px;line-height:1.6;color:var(--danger-strong);background:none;padding:0;white-space:pre}.md-content .md-code{font-family:Consolas,Menlo,Courier New,monospace;font-size:13px;background:var(--surface-2);border-radius:4px;padding:1px 5px;color:var(--danger-strong)}.md-content .md-quote{margin:8px 0;padding:6px 12px;border-left:3px solid var(--border);background:var(--surface-2);border-radius:0 8px 8px 0;color:var(--fg-2)}.md-content .md-quote .md-p{margin:0 0 4px}.md-content .md-list{margin:6px 0;padding-left:22px}.md-content .md-ul{list-style:disc}.md-content .md-ol{list-style:decimal}.md-content .md-list li{margin:3px 0;line-height:1.75}.md-content .md-table-wrap{margin:8px 0;overflow-x:auto}.md-content .md-table{border-collapse:collapse;font-size:13.5px;width:100%}.md-content .md-table th,.md-content .md-table td{border:1px solid var(--dw-border);padding:6px 10px;text-align:left;line-height:1.6}.md-content .md-table th{background:var(--surface-2);font-weight:600}.md-content .md-hr{border:none;border-top:1px solid var(--dw-border);margin:12px 0}.md-content .md-link{color:var(--dw-primary);text-decoration:none}.md-content .md-link:hover{text-decoration:underline}.md-content .md-img{max-width:100%;border-radius:8px}.md-content .md-cursor{display:inline-block;color:var(--dw-primary);animation:md-cursor-blink .8s step-end infinite}@keyframes md-cursor-blink{50%{opacity:0}}.admin-shell{display:flex;height:100vh;overflow:hidden}.admin-side{width:232px;flex-shrink:0;display:flex;flex-direction:column;background:var(--surface);border-right:1px solid var(--border)}.admin-brand{display:flex;align-items:center;gap:10px;padding:18px 18px 16px;border-bottom:1px solid var(--border-2)}.admin-brand__logo{width:34px;height:34px;border-radius:10px;background:var(--accent);color:var(--on-accent);display:inline-flex;align-items:center;justify-content:center;font-size:17px;font-weight:700;flex-shrink:0}.admin-brand__logo--lg{width:46px;height:46px;font-size:23px;border-radius:13px}.admin-brand__name{font-size:14.5px;font-weight:700;letter-spacing:.01em}.admin-brand__sub{margin-top:2px}.admin-back{flex-shrink:0;display:flex;align-items:center;justify-content:center;gap:6px;margin:12px;padding:10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--accent);font-size:13px;font-weight:550;cursor:pointer;transition:background .15s,border-color .15s}.admin-back:hover{background:var(--accent-soft);border-color:var(--accent-soft)}.admin-nav{flex:1;padding:10px;display:flex;flex-direction:column;gap:2px;overflow:auto}.admin-nav__item{display:block;padding:9px 12px;border-radius:var(--radius-sm);color:var(--fg-2);font-size:13.5px;text-decoration:none}.admin-nav__item:hover{background:var(--hover);color:var(--fg)}.admin-nav__item.router-link-active{background:var(--accent-soft);color:var(--accent);font-weight:600}.admin-side__foot{padding:14px;border-top:1px solid var(--border-2);display:flex;align-items:center;gap:10px}.admin-user{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.admin-user__meta{min-width:0}.admin-user__name{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-user__role{font-size:11px;color:var(--muted)}.admin-main{flex:1;min-width:0;overflow:auto;display:flex;flex-direction:column}.admin-main .page-root{height:100%}.admin-titlebar{height:48px;flex-shrink:0;display:flex;align-items:center;padding-left:20px;border-bottom:1px solid var(--border-2);background:var(--surface)}.admin-titlebar__title{font-size:14.5px;font-weight:600;white-space:nowrap}.admin-titlebar__drag{flex:1;height:100%}.admin-titlebar .winctrl{display:flex;height:100%;margin-left:6px}.admin-titlebar .winctrl button{width:44px;height:100%;border:none;background:none;display:flex;align-items:center;justify-content:center;color:var(--muted);cursor:pointer}.admin-titlebar .winctrl button:hover{background:var(--hover);color:var(--fg)}.admin-titlebar .winctrl button:last-child:hover{background:var(--danger);color:#fff}.admin-content{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column}.tblcard__head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px 0}.tblcard__head h3{font-size:15px;font-weight:700}.tfoot{display:flex;align-items:center;justify-content:space-between;padding:12px 18px 14px;color:var(--muted);font-size:12.5px}.tbtn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border);background:var(--surface);color:var(--fg-2);font-size:12px;padding:4px 9px;border-radius:var(--radius-xs);margin-right:4px}.tbtn:hover{color:var(--accent);border-color:var(--accent-soft);background:var(--accent-softer)}.tbtn--danger:hover{color:var(--danger);border-color:var(--danger-soft);background:var(--danger-soft)}.tbtn.code-copy{margin-left:8px;margin-right:0}.td-mono{font-family:var(--mono);font-feature-settings:"tnum";font-size:12.5px}.empty{padding:42px 0;text-align:center;color:var(--muted);font-size:13px}.filter-input{height:34px;width:200px}.login-wrap{height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg)}.login-card{width:360px;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-2);padding:34px 32px 26px}.login-brand{text-align:center;margin-bottom:24px;display:flex;flex-direction:column;align-items:center;gap:8px}.login-brand h1{font-size:19px;font-weight:700}.login-btn{width:100%;margin-top:6px}.login-hint{margin-top:14px;text-align:center;color:var(--muted);font-size:12px}.llm-card{max-width:620px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-1);padding:22px 24px 18px}.llm-actions{display:flex;align-items:center;gap:10px;margin-top:4px}.tbl td:has(.tbtn){white-space:nowrap}
