:root{--font-sans: "Segoe UI", Inter, "PingFang SC", "Microsoft YaHei", sans-serif;--font-mono: "Cascadia Mono", Consolas, "SFMono-Regular", monospace;--text-xs: 12px;--text-sm: 13px;--text-base: 14px;--text-lg: 16px;--text-xl: 20px;--text-2xl: 28px;--leading-tight: 1.3;--leading-normal: 1.6;--leading-relaxed: 1.7;--weight-regular: 400;--weight-medium: 500;--weight-semibold: 600;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--space-8: 32px;--space-12: 48px;--radius-sm: 6px;--radius-lg: 10px;--radius-full: 999px;--shadow-overlay: 0 16px 48px rgba(0, 0, 0, .45);--shadow-raised: 0 8px 24px rgba(0, 0, 0, .28);--motion-fast: .15s;--motion-base: .2s;--ease-out: cubic-bezier(.2, .8, .2, 1);--layout-rail: 60px;--layout-sidebar: 268px;--layout-content: 820px;--layout-admin-sidebar: 224px;--layout-admin-sidebar-compact: 192px;--layout-table-min: 560px;--form-max: 640px}:root,html[data-theme=dark]{color-scheme:dark;--color-bg: #0B0F14;--color-surface: #111821;--color-surface-subtle: #161F2B;--color-surface-hover: #1A2432;--surface-translucent: rgba(17, 24, 33, .86);--color-border: #1F2937;--color-border-strong: #2A3546;--color-text: #E6EDF7;--color-text-secondary: #9AA8BC;--color-text-tertiary: #6B7A90;--color-accent: #6B93FF;--color-accent-hover: #8AABFF;--color-accent-solid: #2F6BEF;--color-accent-solid-hover: #1F56D0;--color-accent-soft: #16233D;--color-accent-selected: #1E3559;--color-accent-border: #27406B;--color-icon-rest: #6B93FF;--color-danger: #F97066;--color-danger-soft: #2A1517;--color-warning: #FDB022;--color-warning-soft: #2A2110;--color-warning-border: #4A3A12;--color-warning-text: #FDB022;--color-success: #32D583;--code-bg: #0A0E14;--code-text: #C7D2E5;--login-panel: #0E141D;--login-panel-text: #E6EDF7;--login-panel-muted: rgba(230, 237, 247, .66);--login-panel-accent: #6B93FF;--login-grid: rgba(91, 140, 255, .06);--login-glow: rgba(91, 140, 255, .22)}html[data-theme=light]{color-scheme:light;--shadow-overlay: 0 16px 48px rgba(15, 23, 42, .18);--shadow-raised: 0 8px 24px rgba(15, 23, 42, .1);--color-bg: #F4F6FA;--color-surface: #FFFFFF;--color-surface-subtle: #EDF1F7;--color-surface-hover: #F6F8FC;--surface-translucent: rgba(255, 255, 255, .86);--color-border: #DCE3EE;--color-border-strong: #C7D1E0;--color-text: #0C1420;--color-text-secondary: #475467;--color-text-tertiary: #8794A7;--color-accent: #2F6BEF;--color-accent-hover: #1F56D0;--color-accent-solid: #2F6BEF;--color-accent-solid-hover: #1F56D0;--color-accent-soft: #E8F0FF;--color-accent-selected: #CFE0FF;--color-accent-border: #C9DCFF;--color-icon-rest: #2F6BEF;--color-danger: #D92D20;--color-danger-soft: #FEF3F2;--color-warning: #B54708;--color-warning-soft: #FFFAEB;--color-warning-border: #F0D9A0;--color-warning-text: #7A5B12;--color-success: #067647;--code-bg: #1E2734;--code-text: #E6EDF7;--login-panel: #EEF2F8;--login-panel-text: #0C1420;--login-panel-muted: #475467;--login-panel-accent: #2F6BEF;--login-grid: rgba(47, 107, 239, .05);--login-glow: rgba(47, 107, 239, .1)}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px;border-radius:var(--radius-sm)}::selection{background:var(--color-accent-soft);color:var(--color-text)}*{scrollbar-width:thin;scrollbar-color:var(--color-border-strong) transparent}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:var(--radius-full)}*::-webkit-scrollbar-track{background:transparent}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.ui-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:36px;padding:0 14px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font-size:var(--text-sm);font-weight:var(--weight-medium);white-space:nowrap;cursor:pointer;transition:background var(--motion-fast) var(--ease-out),border-color var(--motion-fast) var(--ease-out),color var(--motion-fast) var(--ease-out)}.ui-btn:hover{border-color:var(--color-border-strong)}.ui-btn:disabled{opacity:.55;cursor:not-allowed}.ui-btn--sm{height:32px;padding:0 12px;font-size:var(--text-xs)}.ui-btn--lg{height:44px;padding:0 18px;font-size:var(--text-base)}.ui-btn--block{width:100%}.ui-btn--primary{background:var(--color-accent-solid);border-color:var(--color-accent-solid);color:#fff}.ui-btn--primary:hover:not(:disabled){background:var(--color-accent-solid-hover);border-color:var(--color-accent-solid-hover)}.ui-btn--ghost{background:transparent;border-color:transparent;color:var(--color-text-secondary)}.ui-btn--ghost:hover:not(:disabled){background:var(--color-surface-hover);color:var(--color-text)}.ui-btn--danger{background:var(--color-danger);border-color:var(--color-danger);color:#fff}.ui-btn__spinner{width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:ui-spin .7s linear infinite}@keyframes ui-spin{to{transform:rotate(360deg)}}.ui-field{display:grid;gap:6px}.ui-field__label{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-text-secondary)}.ui-input{height:40px;padding:0 12px;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);outline:none;transition:border-color var(--motion-fast) var(--ease-out),box-shadow var(--motion-fast) var(--ease-out)}.ui-input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft)}.ui-input.is-error{border-color:var(--color-danger)}.ui-field__hint{font-size:var(--text-xs);color:var(--color-text-tertiary)}.ui-field__error{font-size:var(--text-xs);color:var(--color-danger)}.ui-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:grid;place-items:center;padding:24px;background:#00000073}.ui-modal{width:100%;max-height:calc(100vh - 48px);overflow:auto;padding:24px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-overlay);outline:none}.ui-modal__title{margin:0 0 16px;font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--color-text)}.ui-modal__body{color:var(--color-text-secondary);font-size:var(--text-base)}.ui-modal__foot{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:24px}.ui-table-wrap{width:100%;overflow:auto;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.ui-table{width:100%;border-collapse:collapse}.ui-table th{padding:12px 16px;text-align:left;font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-text-tertiary);background:var(--color-surface-subtle)}.ui-table td{padding:14px 16px;border-top:1px solid var(--color-border);font-size:var(--text-sm);color:var(--color-text-secondary)}.ui-table td.is-right{text-align:right}.ui-table-empty{padding:48px;text-align:center;color:var(--color-text-tertiary);font-size:var(--text-sm)}:root{--bg-app: var(--color-bg);--bg-surface: var(--color-surface);--bg-subtle: var(--color-surface-subtle);--bg-hover: var(--color-surface-hover);--bg-active: var(--color-accent-soft);--border: var(--color-border);--border-strong: var(--color-border-strong);--text: var(--color-text);--text-muted: var(--color-text-secondary);--text-faint: var(--color-text-tertiary);--brand: var(--color-accent);--brand-strong: var(--color-accent-hover);--brand-soft: var(--color-accent-soft);--brand-bg: var(--color-accent-solid);--brand-bg-hover: var(--color-accent-solid-hover);--brand-selected: var(--color-accent-selected);--brand-border: var(--color-accent-border);--icon-rest: var(--color-icon-rest);--danger: var(--color-danger);--danger-soft: var(--color-danger-soft);--warn-soft: var(--color-warning-soft);--warn-border: var(--color-warning-border);--warn-text: var(--color-warning-text);--r-sm: var(--radius-sm);--r-md: var(--radius-sm);--r-lg: var(--radius-lg);--r-full: var(--radius-full);--shadow-1: 0 1px 2px rgba(16, 24, 40, .04);--shadow-2: var(--shadow-overlay);--shadow-3: 0 16px 40px rgba(16, 24, 40, .16);--sidebar-w: var(--layout-sidebar);--rail-w: var(--layout-rail);--content-max: var(--layout-content);--font: var(--font-sans);--mono: var(--font-mono)}*{box-sizing:border-box}body{margin:0;font-family:var(--font);background:var(--bg-app);color:var(--text);-webkit-font-smoothing:antialiased}.app{display:flex;height:100vh;height:100dvh}.sidebar{flex:none;width:var(--sidebar-w);border-right:1px solid var(--border);background:var(--bg-surface);display:flex;flex-direction:column;min-height:0}.icon{flex:none;vertical-align:-.15em}.rail{flex:none;width:var(--rail-w);display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 0 12px;background:var(--bg-subtle);border-right:1px solid var(--border)}.rail-mark{flex:none;width:24px;height:24px;display:grid;place-items:center;border-radius:8px;background:linear-gradient(135deg,var(--brand),#6d9bff);color:#fff;line-height:1;box-shadow:var(--shadow-1)}.rail-account{position:relative;flex:none}.rail-account-btn{width:100%}.rail-account-btn .rail-label{display:block;max-width:56px;margin:0 auto;overflow:hidden;text-overflow:ellipsis}.rail-account .rail-account-btn .rail-mark .icon{color:#fff}.rail-menu{position:absolute;left:calc(100% + 8px);top:0;z-index:30;min-width:176px;padding:6px;background:var(--bg-surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 6px 20px #00000029;text-align:left}.rail-menu-head{padding:4px 10px 8px;margin-bottom:4px;border-bottom:1px solid var(--border)}.rail-menu-label{display:block;font-size:var(--text-xs);color:var(--text-faint)}.rail-menu-name{display:block;font-size:var(--text-sm);font-weight:600}.rail-menu-item{display:block;width:100%;text-align:left;padding:6px 10px;border:0;border-radius:6px;background:transparent;color:inherit;font-size:var(--text-sm);cursor:pointer}.rail-menu-item:hover{background:var(--bg-subtle);text-decoration:none}.rail-toggle{display:none;flex:none;width:40px;height:40px;align-items:center;justify-content:center;margin-bottom:10px;border:none;border-radius:var(--r-md);background:transparent;color:var(--text-muted);cursor:pointer;transition:background .15s ease,color .15s ease}.rail-toggle:hover{background:var(--bg-hover);color:var(--text)}.rail-toggle .icon{color:var(--icon-rest)}.rail-toggle:hover .icon{color:var(--brand)}.app-backdrop{display:none}.rail-item{flex:none;width:56px;display:flex;flex-direction:column;align-items:center;gap:3px;padding:7px 0 6px;border:none;border-radius:var(--r-md);background:transparent;color:var(--text-muted);font-size:var(--text-xs);line-height:1;cursor:pointer;transition:background .15s ease,color .15s ease}.rail-item:hover{background:var(--bg-hover);color:var(--text)}.rail-item.on{background:var(--bg-active);color:var(--brand-strong)}.rail-item .icon{color:var(--icon-rest)}.rail-item:hover .icon{color:var(--brand)}.rail-item.on .icon{color:var(--brand-strong)}.rail-label{white-space:nowrap}.rail-spacer{flex:1}.session-items{flex:1;overflow-y:auto;padding:6px 8px 12px}.sidebar-foot{flex:none;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px 12px;border-top:1px solid var(--border)}.role-trigger.account-name{font-weight:var(--weight-regular);font-size:var(--text-xs);color:var(--text-muted);text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-foot button.ghost{flex:none;font-size:var(--text-xs);padding:4px 8px}.session-item{position:relative;padding:8px 10px;border-radius:var(--r-sm);cursor:pointer;font-size:var(--text-sm);display:flex;align-items:center;gap:6px}.session-title{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-actions{position:absolute;right:6px;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:4px;padding-left:10px;background:inherit;opacity:0;pointer-events:none}.session-item:hover .session-actions,.session-item:focus-within .session-actions{opacity:1;pointer-events:auto}.session-actions.confirm{opacity:1;pointer-events:auto}.session-delete{flex:none;padding:2px 6px;font-size:var(--text-xs)}.session-confirm{flex:none;font-size:var(--text-xs);color:var(--danger)}.session-item:hover{background:var(--bg-hover)}.session-item.active{background:var(--bg-active);box-shadow:inset 3px 0 0 var(--brand)}.session-item.locked{cursor:not-allowed}.session-item.locked:hover:not(.active){background:transparent}.session-item.locked:not(.active){opacity:.55}.content{flex:1;display:flex;flex-direction:column;min-width:0;background:var(--bg-app)}.main{flex:1;display:flex;flex-direction:column;min-height:0;background:var(--bg-app);--gutter: max(24px, calc((100% - var(--content-max)) / 2))}.chat-header{flex:none;display:flex;align-items:center;gap:12px;padding:13px var(--gutter);background:var(--surface-translucent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}.chat-title{flex:1;min-width:0;margin:0;font-size:var(--text-base);font-weight:var(--weight-semibold);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-status{flex:none;display:flex;align-items:center;gap:6px;min-height:18px;font-size:var(--text-xs);color:var(--brand)}.messages-region{position:relative;flex:1;min-height:0;display:flex;flex-direction:column}.messages-region:after{content:"";position:absolute;left:0;right:0;bottom:0;height:18px;pointer-events:none;background:linear-gradient(to bottom,transparent,var(--bg-app))}.messages{flex:1;overflow-y:auto;display:flex;flex-direction:column;padding:26px var(--gutter) 30px;scrollbar-gutter:stable}.message{margin-bottom:22px;display:flex}.message:last-child{margin-bottom:6px}.message.user{justify-content:flex-end}.bubble{padding:10px 14px;border-radius:var(--r-lg);white-space:pre-wrap;word-break:break-word;line-height:1.7;font-size:var(--text-base)}.bubble-wrap{display:flex;flex-direction:column;max-width:100%;min-width:0}.message.user .bubble-wrap{align-items:flex-end;max-width:78%}.message .bubble{max-width:100%}.message.user .bubble{background:var(--brand-bg);color:#fff;box-shadow:var(--shadow-1)}.message.assistant .bubble{background:transparent;padding:0}.tool-call{width:fit-content;max-width:100%;font-size:var(--text-xs);color:var(--text-muted);background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--r-sm);padding:5px 10px;margin:5px 0;font-family:var(--mono);overflow-wrap:anywhere}.tool-group{width:fit-content;max-width:100%;margin:5px 0}.tool-summary{display:flex;align-items:center;gap:6px;width:fit-content;max-width:100%;text-align:left;font-size:var(--text-xs);color:var(--text-muted);background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--r-sm);padding:6px 10px;font-family:var(--mono);cursor:pointer}.tool-summary:hover{background:var(--bg-hover);border-color:var(--border-strong)}.tool-summary:focus-visible{outline:2px solid var(--brand);outline-offset:1px}.tool-caret{flex:none}.tool-names{color:var(--text-faint);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tool-running{flex:none;margin-left:auto;display:flex;align-items:center;gap:5px;color:var(--brand)}.tool-live{width:6px;height:6px;border-radius:50%;background:var(--brand-bg);animation:tool-live-pulse 1.2s ease-in-out infinite}@keyframes tool-live-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.7)}}.tool-group-body{margin-top:6px;padding-left:10px;border-left:2px solid var(--border)}.tool-group-body .tool-call{margin-left:1px}@media (prefers-reduced-motion: reduce){.tool-live{animation:none}}.stats{font-size:var(--text-xs);color:var(--text-faint);margin-top:12px;padding-top:9px;border-top:1px dashed var(--border-strong)}.notice{font-size:var(--text-xs);color:var(--text-faint);text-align:center;margin:10px 0}.composer-quota{margin:10px var(--gutter) 0;color:var(--text-muted);font-size:var(--text-sm)}.composer-hint{margin:10px var(--gutter) 0;padding:9px 12px;background:var(--warn-soft);border:1px solid var(--warn-border);border-radius:var(--r-md);color:var(--warn-text);font-size:var(--text-sm);line-height:1.5}.attachments{list-style:none;margin:10px var(--gutter) 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.attachment-chip{display:flex;align-items:center;gap:7px;padding:5px 10px;background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--r-full);font-size:var(--text-sm);max-width:100%;box-shadow:var(--shadow-1)}.attachment-chip a{color:var(--brand);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:240px}.attachment-chip a:hover{text-decoration:underline}.attachment-meta{color:var(--text-faint);white-space:nowrap}.attachment-thumb{width:28px;height:28px;object-fit:cover;border-radius:50%;border:1px solid var(--border-strong);flex-shrink:0;background:var(--bg-surface)}.composer{flex:none;display:flex;flex-direction:column;gap:7px;padding:10px var(--gutter) 14px;background:transparent}.composer-box{display:flex;flex-direction:column;gap:4px;padding:8px;background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--r-lg);box-shadow:var(--shadow-2);transition:border-color .15s ease,box-shadow .15s ease}.composer-box:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft),var(--shadow-2)}.composer textarea{width:100%;min-width:0;resize:none;min-height:52px;max-height:200px;overflow-y:hidden;padding:8px 8px 4px;border:none;background:transparent;outline:none;color:var(--text);font-family:inherit;font-size:var(--text-base);line-height:1.6}.composer textarea::placeholder{color:var(--text-faint)}.composer-row{display:flex;align-items:center;gap:8px;padding:0 2px}.composer-left{flex:1;min-width:0;display:flex;align-items:center;gap:6px}.composer-right{flex:none;display:flex;align-items:center;gap:2px}.composer-tool .icon{color:var(--icon-rest)}.composer-tool:hover:not(:disabled) .icon{color:var(--brand)}.composer-tool{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border:none;border-radius:var(--r-full);background:transparent;color:var(--text-muted);font-family:inherit;font-size:var(--text-sm);line-height:1.4;cursor:pointer;transition:background .15s ease,color .15s ease}.composer-tool:hover:not(:disabled){background:var(--bg-subtle);color:var(--text)}.composer-tool:disabled{background:transparent;color:var(--text-faint);cursor:not-allowed}.composer-icon{padding:5px 8px;font-size:var(--text-base)}.composer-uploading{font-size:var(--text-xs);color:var(--text-faint)}.composer-icon.recording{color:var(--danger, #d33)}.composer-voice{display:block;font-size:var(--text-xs);color:var(--text-soft, var(--text-faint));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.send-icon{flex:none;width:34px;height:34px;padding:0;display:grid;place-items:center;border-radius:50%;font-size:var(--text-base);line-height:1}.send-icon.stop{border-radius:var(--r-md);background:var(--text)}.send-icon.stop:hover:not(:disabled){background:#000}.model-picker,.mode-picker,.upload-picker{position:relative;display:inline-flex}.composer-menu{position:absolute;bottom:calc(100% + 6px);right:0;z-index:20;margin:0;padding:5px;list-style:none;min-width:240px;background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--r-md);box-shadow:var(--shadow-3)}.upload-picker .composer-menu,.mode-picker .composer-menu{right:auto;left:0}.composer-menu button{display:flex;flex-direction:column;gap:1px;width:100%;padding:7px 10px;text-align:left;border:none;border-radius:var(--r-sm);background:transparent;color:inherit;font-family:inherit;cursor:pointer}.composer-menu button:hover:not(:disabled){background:var(--bg-subtle)}.composer-menu button:disabled{background:transparent;color:var(--text-faint);cursor:not-allowed}.composer-menu-name{display:inline-flex;align-items:center;gap:5px;font-size:var(--text-sm)}.composer-menu-note{font-size:var(--text-xs);color:var(--text-faint)}.composer-menu button[aria-current=true] .composer-menu-name:before{content:"✓ ";color:var(--brand)}.chat-capability{flex:none;padding:2px 9px;border-radius:var(--r-full);background:var(--brand-soft);color:var(--brand);font-size:var(--text-xs);white-space:nowrap}.welcome-capabilities{display:flex;gap:4px;margin-top:18px;padding:4px;border-radius:var(--r-full);background:var(--bg-subtle)}.welcome-capability{padding:6px 16px;border:none;border-radius:var(--r-full);background:transparent;color:var(--text-muted);font-family:inherit;font-size:var(--text-sm);cursor:pointer;transition:background .15s ease,color .15s ease}.welcome-capability:hover:not(:disabled):not(.on){color:var(--text)}.welcome-capability.on{background:var(--bg-surface);color:var(--text);box-shadow:var(--shadow-1)}.welcome-capability:disabled{background:transparent;color:var(--text-faint);cursor:not-allowed}.composer-foot{display:flex;align-items:center;gap:12px;padding:0 4px;min-height:18px}.composer-slot{flex:1;min-width:0}.composer-tip{flex:none;font-size:var(--text-xs);color:var(--text-faint);-webkit-user-select:none;user-select:none}button{padding:8px 16px;border:none;border-radius:var(--r-md);background:var(--brand-bg);color:#fff;cursor:pointer;font-family:inherit;font-size:var(--text-base);transition:background .15s ease,color .15s ease,border-color .15s ease}button:hover:not(:disabled){background:var(--brand-bg-hover)}button:disabled{background:var(--brand-soft);cursor:not-allowed}button.ghost{background:transparent;color:var(--text-muted);padding:6px 10px;border-radius:var(--r-sm)}button.ghost:hover:not(:disabled){background:var(--bg-subtle);color:var(--text)}.error-bar{flex:none;background:var(--danger-soft);color:var(--danger);padding:9px 16px;font-size:var(--text-sm);cursor:pointer}.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(420px,44%) 1fr;background:var(--color-bg)}.login-brand{display:flex;flex-direction:column;justify-content:space-between;padding:48px 56px;color:var(--login-panel-text);background:linear-gradient(var(--login-grid) 1px,transparent 1px),linear-gradient(90deg,var(--login-grid) 1px,transparent 1px),radial-gradient(circle at 18% 16%,var(--login-glow),transparent 42%),var(--login-panel);background-size:32px 32px,32px 32px,auto,auto}.login-wordmark{display:flex;align-items:center;gap:10px;font-size:var(--text-lg);font-weight:var(--weight-semibold);letter-spacing:.01em}.login-brand .brand-mark{flex:none;color:var(--login-panel-accent)}.login-brand-accent{color:var(--login-panel-accent)}.login-brand-copy{max-width:460px}.login-brand-copy h1{margin:0 0 16px;font-size:var(--text-2xl);line-height:var(--leading-tight);font-weight:var(--weight-semibold);letter-spacing:-.01em}.login-brand-copy p{margin:0 0 28px;color:var(--login-panel-muted);font-size:var(--text-base);line-height:var(--leading-relaxed)}.login-brand-points{list-style:none;margin:0;padding:0;display:grid;gap:12px;color:var(--login-panel-muted);font-size:var(--text-sm)}.login-brand-points li{display:flex;align-items:center;gap:10px}.login-brand-points li:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--color-accent-solid);flex:none}.login-brand-foot{color:var(--login-panel-muted);opacity:.7;font-size:var(--text-xs)}.login-main{display:flex;align-items:center;justify-content:center;padding:48px 24px}.login-card{width:100%;max-width:380px;padding:40px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.login-card h2{margin:0 0 6px;font-size:var(--text-xl);font-weight:var(--weight-semibold);letter-spacing:-.01em}.login-sub{margin:0 0 28px;color:var(--color-text-secondary);font-size:var(--text-sm)}.login-card input{width:100%;height:44px;padding:0 14px;margin-bottom:14px;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);font-size:var(--text-base);background:var(--color-surface);color:var(--color-text);outline:none;transition:border-color var(--motion-fast) var(--ease-out),box-shadow var(--motion-fast) var(--ease-out)}.login-card input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft)}.login-card .login-remember{display:flex;align-items:center;gap:8px;margin:0 0 16px;font-size:var(--text-sm);color:var(--color-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.login-card .login-remember input[type=checkbox]{width:16px;height:16px;padding:0;margin:0;accent-color:var(--brand);cursor:pointer}.login-error{margin-top:12px;color:var(--color-danger);font-size:var(--text-sm)}.login-about{width:100%;height:36px;margin-top:8px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);font-size:var(--text-sm);cursor:pointer}.login-about:hover{color:var(--color-accent)}.login-hint{margin-top:16px;padding-top:16px;border-top:1px solid var(--color-border);color:var(--color-text-tertiary);font-size:var(--text-xs);text-align:center}@media (max-width: 900px){.login-page{grid-template-columns:1fr}.login-brand{display:none}.login-main{padding:24px}}.hint{font-size:var(--text-xs);color:var(--color-text-tertiary);margin-top:12px}.empty{color:var(--text-faint);font-size:var(--text-base);text-align:center;margin-top:40px}.session-items .empty{margin-top:20px;font-size:var(--text-sm)}.admin-page{flex:1;padding:24px;overflow-y:auto}.admin-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.admin-warning{background:var(--warn-soft);border:1px solid var(--warn-border);border-radius:6px;padding:10px 12px;font-size:var(--text-sm);line-height:1.6;color:var(--warn-text)}.admin-field{margin-top:18px}.admin-field label{font-weight:600;font-size:var(--text-base)}.admin-hint{font-size:var(--text-xs);color:var(--color-text-tertiary);margin:2px 0 6px}.admin-output{font-family:var(--mono);font-size:var(--text-xs);line-height:1.6;white-space:pre-wrap;word-break:break-word;background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--r-sm);padding:10px 12px;margin:6px 0 0;max-height:260px;overflow:auto;color:var(--text)}.admin-field textarea{width:100%;box-sizing:border-box;resize:vertical;font-family:inherit}.repo-picker-trigger{display:block;width:100%;box-sizing:border-box;margin-top:6px;padding:6px 8px;border:1px solid var(--color-border-strong);border-radius:4px;background:var(--bg-surface);color:var(--text);font-size:var(--text-base);text-align:left}.repo-picker-trigger:hover:not(:disabled){background:var(--bg-surface)}.repo-picker-trigger:disabled{background:var(--bg-subtle);color:var(--color-text-tertiary)}.repo-picker{margin-top:6px;border:1px solid var(--color-border-strong);border-radius:4px;padding:4px;max-height:240px;overflow-y:auto;background:var(--bg-surface)}.repo-picker-item{display:flex;align-items:flex-start;gap:8px;padding:6px 8px;font-size:var(--text-sm);cursor:pointer;border-radius:4px}.repo-picker-item:hover{background:var(--bg-subtle)}.repo-picker-item input{margin-top:2px}.repo-picker-text{display:flex;flex-direction:column;gap:1px;min-width:0}.repo-picker-name{font-weight:600;font-family:var(--mono)}.repo-picker-desc{color:var(--color-text-tertiary)}.repo-picker-item.is-blocked{cursor:not-allowed}.repo-picker-item.is-blocked:hover{background:transparent}.repo-picker-item.is-blocked .repo-picker-name{color:var(--text-faint)}.repo-picker-blocked{color:var(--danger)}.repo-picker-wrap{position:relative}.dv-filter .repo-picker-wrap{flex:1;min-width:0}.repo-picker--popup{position:absolute;left:0;right:0;top:100%;z-index:30;margin-top:4px;box-shadow:0 6px 20px #00000024}.admin-counter{font-size:var(--text-xs);color:var(--color-text-tertiary);margin-top:2px}.admin-counter-warn{color:var(--color-warning)}.admin-footer{display:flex;align-items:center;gap:12px;margin-top:20px}.admin-meta{font-size:var(--text-xs);color:var(--color-text-tertiary)}.admin-section{border-top:1px solid var(--color-border);margin-top:18px;padding-top:6px}.admin-section-head{display:flex;align-items:baseline;gap:10px;width:100%;color:inherit;background:none;border:none;padding:6px 0;cursor:pointer;text-align:left}.admin-section-title{font-weight:600;font-size:var(--text-base)}.admin-section-toggle{margin-left:auto;font-size:var(--text-xs);color:var(--color-text-tertiary)}.admin-section-head .admin-hint{margin:0}.admin-section-body{padding-left:2px}.admin-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.admin-ai-off .admin-field label,.admin-ai-off .admin-hint{color:var(--color-text-tertiary)}.admin-tabpanel{padding-top:2px;min-height:220px}.admin-subtab.has-error{border-color:var(--danger);color:var(--danger)}.admin-tab-error{margin-left:6px;font-weight:var(--weight-semibold);color:var(--color-danger)}.admin-problem-bar{background:var(--danger-soft);border:1px solid var(--danger);border-radius:6px;padding:10px 12px;margin-top:14px;font-size:var(--text-sm);line-height:1.7;color:var(--danger)}.admin-problem-bar ul{margin:6px 0 0;padding-left:18px}.admin-problem-jump{background:none;border:none;padding:0;font:inherit;color:var(--danger);cursor:pointer;text-align:left;text-decoration:underline}.sidebar-block{padding:12px 12px 8px}.sidebar-block button.block{width:100%;padding:9px 14px;font-weight:500}.sidebar-search{padding:0 12px 6px}.sidebar-search input{width:100%;padding:7px 11px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-subtle);color:var(--text);font-family:inherit;font-size:var(--text-sm);outline:none;transition:border-color .15s ease,background .15s ease}.sidebar-search input::placeholder{color:var(--text-faint)}.sidebar-search input:focus{background:var(--bg-surface);border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.busy-banner{display:flex;align-items:center;gap:8px;margin:10px 12px 0;padding:8px 10px;border-radius:var(--r-md);background:var(--brand-soft);color:var(--brand);font-size:var(--text-xs)}.session-group{position:sticky;top:0;z-index:1;padding:12px 10px 5px;font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.04em;color:var(--text-faint);background:var(--bg-surface)}.session-time{flex:none;font-size:var(--text-xs);color:var(--text-faint)}.session-item:hover .session-time,.session-item:focus-within .session-time{display:none}.session-busy{flex:none;display:inline-flex;align-items:center;gap:4px;font-size:var(--text-xs);color:var(--brand)}.spinner{width:10px;height:10px;border-radius:50%;border:2px solid var(--brand-border);border-top-color:var(--brand);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.session-item .session-delete{opacity:0}.session-item:hover .session-delete,.session-item:focus-within .session-delete{opacity:1}button:focus-visible,.session-item:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.msg-meta{display:flex;align-items:center;gap:8px;margin-top:6px;padding:0 2px;font-size:var(--text-xs);color:var(--text-faint)}.msg-time{-webkit-user-select:none;user-select:none}.turn-copy{display:inline-flex;align-items:center;gap:6px}.turn-copy-btn{padding:2px 10px;font-size:var(--text-xs);line-height:1.5;border-radius:var(--r-full);background:var(--bg-surface);color:var(--brand-strong);border:1px solid var(--brand-border)}.turn-copy-btn:hover:not(:disabled){background:var(--brand-soft)}.md{white-space:normal}.md>:first-child{margin-top:0}.md>:last-child{margin-bottom:0}.md p{margin:0 0 12px}.md h1,.md h2,.md h3,.md h4{margin:20px 0 8px;line-height:1.35;font-weight:600}.md h1{font-size:var(--text-xl)}.md h2{font-size:var(--text-lg)}.md h3{font-size:var(--text-base)}.md ul,.md ol{margin:0 0 12px;padding-left:22px}.md li{margin:3px 0}.md a{color:var(--brand)}.md blockquote{margin:0 0 12px;padding:2px 14px;color:var(--text-muted);border-left:3px solid var(--border-strong)}.md table{border-collapse:collapse;margin:0 0 12px;font-size:var(--text-sm);background:var(--bg-surface)}.md th,.md td{border:1px solid var(--border);padding:6px 12px;text-align:left}.md th{background:var(--bg-subtle);font-weight:600}.md code{font-family:var(--mono);font-size:var(--text-sm);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-sm);padding:1px 5px}.md-code{position:relative;margin:0 0 12px}.md-code pre{margin:0;padding:14px 16px;overflow-x:auto;background:var(--code-bg);border-radius:var(--r-md);color:#e3eaf4}.md-code pre code{background:none;border:none;padding:0;font-size:var(--text-sm);line-height:1.6;color:inherit}.md-copy-code{position:absolute;top:8px;right:8px;padding:3px 9px;font-size:var(--text-xs);background:#ffffff1f;color:#dbe4f0;border:1px solid rgba(255,255,255,.18);border-radius:var(--r-sm)}.md-copy-code:hover:not(:disabled){background:#ffffff38}.md-example{margin:0 0 14px}.md-example>summary{list-style:none;cursor:pointer;padding:3px 0;font-size:var(--text-xs);color:var(--text-muted)}.md-example>summary::-webkit-details-marker{display:none}.md-example>summary:before{content:"";display:inline-block;vertical-align:middle;width:0;height:0;margin-right:6px;border-left:4px solid currentColor;border-top:4px solid transparent;border-bottom:4px solid transparent}.md-example[open]>summary:before{transform:rotate(90deg)}.md-example>.md-code{margin:6px 0 0}.md-example[open]>summary .md-example-hint{visibility:hidden;position:relative}.md-example[open]>summary .md-example-hint:after{visibility:visible;position:absolute;left:0;content:"点击收起"}.jump-bottom{z-index:1;position:absolute;right:var(--gutter);bottom:14px;padding:7px 14px;font-size:var(--text-sm);background:var(--bg-surface);color:var(--brand);border:1px solid var(--border-strong);border-radius:var(--r-full);box-shadow:var(--shadow-2)}.jump-bottom:hover:not(:disabled){background:var(--bg-surface);border-color:var(--brand-border)}.skeleton{padding:4px 0}.skeleton-line{height:14px;margin-bottom:12px;border-radius:var(--r-sm);background:linear-gradient(90deg,var(--color-border) 25%,#f3f5f8 37%,var(--color-border) 63%);background-size:400% 100%;animation:skeleton-shimmer 1.2s ease-in-out infinite}.skeleton-line.short{width:45%}@keyframes skeleton-shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}.pending{display:inline-flex;gap:5px;align-items:center;height:20px}.pending i{width:6px;height:6px;border-radius:50%;background:var(--text-faint);animation:pending-bounce 1.2s ease-in-out infinite}.pending i:nth-child(2){animation-delay:.15s}.pending i:nth-child(3){animation-delay:.3s}@keyframes pending-bounce{0%,60%,to{transform:translateY(0);opacity:.5}30%{transform:translateY(-4px);opacity:1}}.caret{display:inline-block;width:2px;height:1em;margin-left:2px;vertical-align:text-bottom;background:var(--brand-bg);animation:caret-blink 1s step-end infinite}@keyframes caret-blink{50%{opacity:0}}.terminated-tag{display:inline-block;margin-left:8px;padding:1px 8px;border-radius:var(--r-full);background:var(--bg-subtle);color:var(--text-muted);font-size:var(--text-xs);vertical-align:middle}.empty.welcome{display:flex;flex-direction:column;align-items:center;margin:auto;padding-bottom:8vh;width:100%;max-width:760px}.welcome-mark{width:56px;height:56px;display:grid;place-items:center;border-radius:16px;background:var(--bg-surface);border:1px solid var(--border);color:var(--brand);font-size:var(--text-xl);line-height:1;margin-bottom:20px}.welcome-title{margin:0 0 8px;font-size:var(--text-2xl);font-weight:var(--weight-semibold);line-height:var(--leading-tight);letter-spacing:-.01em;color:var(--color-text);text-align:center}.welcome-sub{margin:0 0 28px;font-size:var(--text-base);color:var(--color-text-secondary);text-align:center}.welcome-suggestions{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.welcome-label{grid-column:1 / -1;margin-bottom:2px;font-size:var(--text-xs);color:var(--color-text-tertiary);text-align:center}.welcome-chip{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:76px;padding:16px;text-align:left;font-size:var(--text-base);line-height:var(--leading-normal);background:var(--bg-surface);color:var(--color-text);border:1px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;transition:border-color var(--motion-fast) var(--ease-out),box-shadow var(--motion-fast) var(--ease-out),transform var(--motion-fast) var(--ease-out)}.welcome-chip:hover:not(:disabled){border-color:var(--color-accent);box-shadow:var(--shadow-raised);transform:translateY(-1px)}.welcome-chip-arrow{flex:none;color:var(--color-text-tertiary);transition:color var(--motion-fast) var(--ease-out)}.welcome-chip:hover .welcome-chip-arrow{color:var(--color-accent)}@media (max-width: 768px){.welcome-suggestions{grid-template-columns:1fr}}@media (prefers-reduced-motion: reduce){.skeleton-line,.pending i,.caret,.spinner{animation:none}}.session-item .session-rename{opacity:0;flex:none;padding:2px 6px;font-size:var(--text-xs)}.session-item:hover .session-rename,.session-item:focus-within .session-rename{opacity:1}.session-rename-input{flex:1;min-width:0;padding:3px 7px;border:1px solid var(--brand);border-radius:var(--r-sm);background:var(--bg-surface);color:var(--text);font-family:inherit;font-size:var(--text-sm);outline:none;box-shadow:0 0 0 3px var(--brand-soft)}.admin-page.admin-shell{flex:1;display:flex;height:100%;padding:0;overflow:hidden;background:var(--color-bg)}.admin-side{width:232px;flex:none;display:flex;flex-direction:column;padding:18px 12px;background:var(--color-surface);border-right:1px solid var(--color-border)}.admin-brand{display:flex;align-items:center;gap:10px;padding:4px 10px 22px}.admin-brand .brand-mark{flex:none;color:var(--color-accent)}.admin-brand strong{display:block;font-size:var(--text-sm);font-weight:600}.admin-brand span{display:block;color:var(--color-text-tertiary);font-size:11px}.admin-tabs{display:flex;flex-direction:column;gap:2px;margin:0;border:0}.admin-shell .admin-tab{width:100%;height:38px;padding:0 12px;border:0;border-left:2px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);font-size:var(--text-sm);text-align:left}.admin-shell .admin-tab:hover{background:var(--color-surface-hover);color:var(--color-text)}.admin-shell .admin-tab.active{background:var(--color-accent-soft);color:var(--color-accent);border-left-color:var(--color-accent);font-weight:500}.admin-side-foot{margin-top:auto;padding-top:12px;border-top:1px solid var(--color-border)}.admin-side-foot .ghost{width:100%;justify-content:flex-start;padding-left:12px}.admin-main{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}.admin-topbar{height:64px;flex:none;display:flex;align-items:center;justify-content:space-between;padding:0 32px;border-bottom:1px solid var(--color-border);background:var(--surface-translucent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.admin-topbar h1{margin:0;font-size:var(--text-xl);font-weight:600}.admin-topbar-hint{color:var(--color-text-tertiary);font-size:var(--text-xs)}.admin-body{flex:1;overflow:auto;padding:28px 32px 48px}.admin-subtabs{display:flex;gap:6px;margin-bottom:14px}.admin-subtab{background:none;border:1px solid var(--color-border-strong);border-radius:var(--r-full);padding:4px 12px;cursor:pointer;color:var(--color-text-secondary);font-size:var(--text-sm)}.admin-subtab.active{color:var(--color-accent);background:var(--color-accent-soft);border-color:var(--color-accent)}.admin-subpanel{display:flex;flex-direction:column;gap:12px;overflow-x:auto}.admin-inline-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.admin-inline-form input,.admin-inline-form select{padding:6px 8px;border:1px solid var(--color-border-strong);border-radius:4px;font-size:var(--text-base)}.admin-form input,.admin-form textarea,.admin-form select,.admin-inline-form input,.admin-inline-form select{background:var(--color-surface);color:var(--color-text)}.admin-table{width:100%;border-collapse:collapse;font-size:var(--text-base)}.admin-table th,.admin-table td{text-align:left;padding:8px;border-bottom:1px solid var(--color-border);vertical-align:middle}.admin-table th{color:var(--color-text-secondary);font-weight:var(--weight-medium)}@media (max-width: 768px){.admin-table th:last-child,.admin-table td:last-child,.case-admin-table th:last-child,.case-admin-table td:last-child{position:sticky;right:0;background:var(--bg-app);box-shadow:inset 8px 0 8px -8px #00000040}}.admin-mono{font-family:ui-monospace,Consolas,monospace;font-size:var(--text-xs);color:var(--color-text-secondary)}.admin-row-actions{display:flex;gap:6px;justify-content:flex-end}.admin-more{position:relative;display:flex}.admin-menu{position:absolute;top:100%;right:0;z-index:20;margin:4px 0 0;padding:5px;list-style:none;min-width:118px;white-space:nowrap;background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--r-md);box-shadow:var(--shadow-3)}.admin-subpanel-users{overflow:visible}.admin-badge{margin-left:6px;padding:1px 6px;border-radius:8px;background:var(--brand-soft);color:var(--color-accent);font-size:var(--text-xs)}.admin-badge.is-disabled{background:var(--warn-soft);color:#8a5a00}.admin-confirm{color:var(--danger);font-size:var(--text-sm)}.admin-subpanel h4{margin:0;font-size:var(--text-base)}.admin-member-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}.admin-member-list li{display:flex;align-items:center;justify-content:space-between;padding:4px 0;border-bottom:1px solid var(--color-surface-subtle);font-size:var(--text-base)}.picker-page{min-height:100vh;display:flex;flex-direction:column;background:var(--color-bg)}.picker-topbar{height:64px;flex:none;display:flex;align-items:center;justify-content:space-between;padding:0 40px;background:var(--color-surface);border-bottom:1px solid var(--color-border)}.picker-brand{display:flex;align-items:center;gap:10px;font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--color-text)}.picker-brand .brand-mark{flex:none;color:var(--color-accent)}.picker-user{display:flex;align-items:center;gap:16px;color:var(--color-text-secondary);font-size:var(--text-sm)}.picker-main{width:100%;max-width:1040px;margin:0 auto;padding:56px 40px 80px}.picker-heading{margin-bottom:32px}.picker-heading h1{margin:0 0 8px;font-size:var(--text-2xl);font-weight:var(--weight-semibold);letter-spacing:-.01em}.picker-heading p{margin:0;color:var(--color-text-secondary);font-size:var(--text-base)}.picker-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.picker-item{position:relative;width:100%;min-height:132px;text-align:left;padding:20px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);cursor:pointer;display:flex;flex-direction:column;gap:8px;transition:border-color var(--motion-fast) var(--ease-out),box-shadow var(--motion-fast) var(--ease-out),transform var(--motion-fast) var(--ease-out)}.picker-item:hover{border-color:var(--color-accent);box-shadow:var(--shadow-raised);transform:translateY(-1px)}.picker-name{font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--color-text)}.picker-desc{padding-right:24px;font-size:var(--text-sm);line-height:var(--leading-normal);color:var(--color-text-secondary)}.picker-arrow{position:absolute;right:20px;bottom:18px;color:var(--color-text-tertiary);font-size:var(--text-base);transition:color var(--motion-fast) var(--ease-out)}.picker-item:hover .picker-arrow{color:var(--color-accent)}.picker-empty{max-width:480px;margin:48px auto;text-align:center;color:var(--color-text-secondary);font-size:var(--text-base);line-height:var(--leading-relaxed)}.project-switch{position:relative;flex:none;margin:12px 12px 0}.project-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border:none;border-radius:var(--r-md);background:var(--bg-subtle);color:var(--text);font-size:var(--text-sm);font-weight:var(--weight-medium);text-align:left;cursor:pointer}.project-trigger:hover{background:var(--bg-hover)}.project-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-caret{flex:none;color:var(--text-faint);font-size:var(--text-xs)}.project-menu{position:absolute;top:100%;left:0;right:0;z-index:20;margin:4px 0 0;padding:5px;list-style:none;background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--r-md);box-shadow:var(--shadow-3)}.project-menu button{display:block;width:100%;padding:7px 10px;text-align:left;font-size:var(--text-sm);border:none;border-radius:var(--r-sm);background:transparent;color:inherit;cursor:pointer}.project-menu button:hover{background:var(--bg-subtle)}.project-menu button[aria-current=true]{color:var(--brand-strong);font-weight:500}.context-now{flex:none;display:flex;flex-direction:column;gap:4px;margin:8px 12px 0;padding:8px 10px;border-radius:var(--r-md);background:var(--bg-subtle)}.role-switch{position:relative;display:flex;align-items:center;justify-content:space-between;gap:6px;min-width:0}.role-current{font-size:var(--text-xs);color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.role-trigger-btn{flex:none;font-size:var(--text-xs);padding:3px 7px}.context-quota{flex:none;font-size:var(--text-xs);color:var(--text-faint);white-space:nowrap}.role-menu{position:absolute;top:100%;left:0;z-index:20;margin:4px 0 0;padding:5px;list-style:none;min-width:140px;background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--r-md);box-shadow:var(--shadow-3)}.role-menu button,.admin-menu button{display:block;width:100%;padding:7px 10px;text-align:left;font-size:var(--text-sm);border:none;border-radius:var(--r-sm);background:transparent;color:inherit;cursor:pointer}.role-menu button:hover,.admin-menu button:hover{background:var(--bg-subtle)}.role-trigger-btn:disabled{opacity:.5;cursor:not-allowed}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#11182773;display:flex;align-items:center;justify-content:center;z-index:100}.modal{width:380px;max-width:calc(100vw - 32px);max-height:70vh;display:flex;flex-direction:column;gap:10px;padding:16px;border-radius:8px;background:var(--bg-surface);box-shadow:0 10px 30px #0003}.modal h3{margin:0;font-size:var(--text-base)}.modal-body{overflow-y:auto}.modal-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:2px}.modal-row{display:flex;align-items:center;gap:8px;padding:6px 4px;border-radius:4px;font-size:var(--text-base);cursor:pointer}.modal-row:hover{background:var(--bg-hover)}.modal-row-off{cursor:not-allowed;color:var(--color-text-tertiary)}.modal-row-off:hover{background:transparent}.modal-role{color:var(--color-text-secondary);font-size:var(--text-xs)}.modal-row-off .modal-role{color:var(--color-text-tertiary)}.modal-empty{padding:16px 4px;color:var(--color-text-tertiary);font-size:var(--text-sm);text-align:center}.modal-foot{display:flex;justify-content:flex-end;gap:8px}.repo-toolbar{margin-bottom:8px}.repo-search{flex:1 1 200px;min-width:160px}.repo-filter{display:flex;align-items:center;gap:4px}.repo-filter .admin-hint{margin:0}.repo-selected{font-size:var(--text-sm);color:var(--text-muted)}.repo-check{width:34px}.repo-row-on{background:var(--bg-active)}.repo-name{display:flex;align-items:center;gap:6px}.repo-url{font-family:var(--mono);font-size:var(--text-xs);color:var(--text-faint);word-break:break-all}.repo-status{display:inline-flex;align-items:center;gap:5px;font-size:var(--text-sm)}.repo-status:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;flex:0 0 auto}.repo-status-ok{color:var(--text-muted)}.repo-status-warn{color:var(--warn-text)}.repo-status-muted{color:var(--text-faint)}.repo-output-row td{background:var(--bg-subtle);padding:6px 10px 10px}.repo-output-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.repo-output-head .admin-hint{margin:0}.repo-dialog{width:520px}.repo-import-dialog{width:640px}.modal-textarea{width:100%;box-sizing:border-box;resize:vertical;font-family:var(--mono);font-size:var(--text-xs);line-height:1.6}.pwd-dialog{width:360px}.pwd-form{display:flex;flex-direction:column;gap:10px}.pwd-field{display:flex;flex-direction:column;gap:5px;font-size:var(--text-xs);color:var(--text-muted)}.pwd-field input{padding:8px 11px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-surface);font:inherit;font-size:var(--text-sm);color:var(--text)}.pwd-hint{margin:0;font-size:var(--text-xs);color:var(--text-muted);line-height:1.6}.pwd-done{margin:0;font-size:var(--text-sm);line-height:1.7}.guide-modal{width:560px;max-height:84vh;gap:6px}.guide-lead{margin:0;font-size:var(--text-xs);color:var(--text-muted)}.guide-body{display:flex;flex-direction:column;gap:16px;padding-right:4px}.guide-section h4{margin:0 0 6px;font-size:var(--text-sm);font-weight:var(--weight-semibold)}.guide-section h4:before{content:"";display:inline-block;width:3px;height:12px;margin-right:7px;border-radius:2px;background:var(--brand-bg);vertical-align:-1px}.guide-section p{margin:0 0 6px;font-size:var(--text-sm);line-height:1.7}.guide-steps,.guide-list{margin:0 0 6px;padding-left:20px;font-size:var(--text-sm);line-height:1.75}.guide-steps li,.guide-list li{margin-bottom:3px}.guide-list{list-style:none;padding-left:0}.guide-list li{position:relative;padding-left:12px}.guide-list li:before{content:"·";position:absolute;left:2px;color:var(--text-faint)}.guide-warn{padding:8px 10px;border:1px solid var(--warn-border);border-radius:var(--r-sm);background:var(--warn-soft);color:var(--warn-text)}.guide-template{padding:9px 11px;border:1px dashed var(--border-strong);border-radius:var(--r-sm);background:var(--bg-subtle);line-height:1.7}.guide-table{width:100%;border-collapse:collapse;font-size:var(--text-xs)}.guide-table th,.guide-table td{border:1px solid var(--border);padding:6px 8px;text-align:left;vertical-align:top;line-height:1.6}.guide-table th{background:var(--bg-subtle);font-weight:600;white-space:nowrap}.guide-table td:first-child,.guide-table th:first-child{width:24%}.guide-table td:nth-child(2),.guide-table th:nth-child(2){width:30%}.guide-table td:first-child{background:var(--danger-soft);color:var(--danger)}.guide-foot{justify-content:space-between;align-items:center}.guide-never{display:flex;align-items:center;gap:6px;font-size:var(--text-xs);color:var(--text-muted);cursor:pointer}.role-trigger{padding:0;background:transparent;color:inherit;font:inherit;cursor:pointer}.role-trigger:hover{text-decoration:underline}.role-block+.role-block{margin-top:16px;padding-top:12px;border-top:1px solid var(--color-border)}.role-name{font-size:var(--text-base);font-weight:600}.composer-role{display:flex;align-items:center;gap:6px;padding:6px 12px 0;font-size:var(--text-sm);color:var(--muted, #666)}.composer-role select{font:inherit;color:inherit;padding:2px 6px;border:1px solid #ccc;border-radius:4px;background:transparent}.composer-role select:disabled{opacity:.6}.role-pick-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 0}.role-pick-row label{display:flex;align-items:center;gap:6px}.role-pick-default{font-size:var(--text-sm);color:var(--muted, #666)}.role-pick-row label input{padding:0;border:none;border-radius:0;font-size:inherit}.audit-admin{display:flex;flex-direction:column;gap:12px}.audit-filters{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}.audit-filters label,.audit-filters .audit-field{display:flex;flex-direction:column;gap:4px;font-size:var(--text-xs);color:var(--color-text-secondary)}.audit-filters select,.audit-filters input{padding:4px 6px;border:1px solid var(--color-border-strong);border-radius:4px;font-size:var(--text-sm)}.audit-table{width:100%;border-collapse:collapse;font-size:var(--text-sm);display:block;overflow-x:auto;white-space:nowrap}.audit-table th,.audit-table td{padding:6px 10px;border-bottom:1px solid var(--color-border);text-align:left}.audit-table thead th{color:var(--color-text-secondary);font-weight:600}.audit-table tbody tr{cursor:pointer}.audit-table tbody tr:hover{background:var(--bg-hover)}.audit-table tbody tr.selected{background:var(--color-accent-soft)}.audit-table tbody tr.failed{background:var(--danger-soft)}.audit-table tbody tr.failed td:first-child{box-shadow:inset 3px 0 0 var(--color-danger)}.audit-table tbody tr.failed:hover{background:var(--danger-soft)}.login-audit .audit-table tbody tr{cursor:default}.audit-ranges{display:inline-flex;gap:4px}.audit-range{padding:4px 8px;border:1px solid var(--color-border-strong);border-radius:4px;background:var(--bg-surface);color:var(--color-text);font-size:var(--text-xs);cursor:pointer}.audit-range.on{background:var(--color-accent-soft);border-color:var(--color-accent);color:var(--color-accent-hover);font-weight:600}.audit-filters label.audit-check{flex-direction:row;align-items:center;gap:6px;color:var(--color-text);font-size:var(--text-sm)}.audit-loaded{margin:0;font-size:var(--text-sm);color:var(--color-text)}.audit-note{color:var(--color-text-secondary);font-size:var(--text-xs)}.admin-load-failed{display:flex;align-items:center;flex-wrap:wrap;gap:8px;color:var(--danger);font-size:var(--text-sm)}.audit-ip{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.audit-device{line-height:1.35}.audit-device-label{display:block}.audit-device-id{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--text-xs);color:var(--color-text-secondary)}.audit-share{margin:4px 0 12px;padding:10px 12px;border:1px solid #f2c94c;border-radius:6px;background:var(--warn-soft)}.audit-share-head{margin:0 0 4px;font-size:var(--text-sm);font-weight:600;color:#92400e}.audit-share-list{margin:8px 0 0;padding:0;list-style:none}.audit-share-list li{display:flex;align-items:baseline;gap:10px;padding:3px 0;font-size:var(--text-sm)}.audit-share-user{padding:0;border:none;background:none;color:var(--color-accent-hover);font-size:var(--text-sm);font-weight:var(--weight-semibold);text-decoration:underline;cursor:pointer}.audit-share-counts{color:var(--color-text-secondary);font-size:var(--text-xs)}.audit-share-error{color:var(--danger)}.audit-drillback{display:flex;align-items:center;gap:12px;margin:0;padding:6px 10px;border-radius:4px;background:var(--color-accent-soft);font-size:var(--text-sm);color:var(--color-accent-hover)}.audit-overview{display:flex;flex-direction:column;gap:8px}.audit-kpis{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 24px}.audit-kpi{display:flex;flex-direction:column;gap:2px}.audit-kpi-label{display:inline-flex;align-items:center;gap:5px;font-size:var(--text-xs);color:var(--color-text-secondary)}.audit-kpi-value{font-size:var(--text-xl);line-height:1.2;color:var(--text)}.audit-overview-head{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:var(--text-xs);color:var(--color-text-secondary)}.audit-legend{display:inline-flex;align-items:center;gap:12px}.audit-swatch{display:inline-block;width:9px;height:9px;border-radius:2px}.audit-swatch.ok{background:var(--color-accent-solid)}.audit-swatch.fail{background:var(--color-danger)}.audit-plot{display:flex;align-items:flex-end;gap:2px;height:72px}.audit-bucket{position:relative;display:flex;flex:1 1 0;align-items:flex-end;min-width:8px;max-width:24px;height:100%;padding:0;border:0;background:none;cursor:pointer}.audit-bucket:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px;border-radius:3px}.audit-bucket:hover .audit-bar{opacity:.85}.audit-bar{display:flex;flex-direction:column;gap:2px;width:100%;border-radius:4px 4px 0 0;overflow:hidden}.audit-seg{flex-basis:0;min-height:0}.audit-seg.ok{background:var(--color-accent-solid)}.audit-seg.fail{background:var(--color-danger)}.audit-tip{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);z-index:5;padding:4px 8px;border-radius:4px;background:#111827;color:#fff;font-size:var(--text-xs);line-height:1.4;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .08s}.audit-bucket:hover .audit-tip,.audit-bucket:focus-visible .audit-tip{opacity:1}.audit-axis{display:flex;justify-content:space-between;gap:12px;font-size:var(--text-xs);color:var(--color-text-secondary)}.audit-more{display:flex;align-items:center;gap:12px;font-size:var(--text-sm)}.audit-drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:flex;justify-content:flex-end;background:#00000040}.audit-drawer{position:relative;width:min(760px,92vw);height:100%;overflow-y:auto;padding:16px 20px 48px;background:var(--bg-surface);border-left:1px solid var(--color-border);box-shadow:-8px 0 24px #00000014}.audit-drawer-close{position:absolute;top:12px;right:16px}.audit-fields{width:100%;border-collapse:collapse;font-size:var(--text-sm);margin-bottom:12px}.audit-fields th{text-align:left;color:var(--color-text-secondary);font-weight:var(--weight-medium);width:140px;padding:4px 8px 4px 0;vertical-align:top}.audit-fields td{padding:4px 0;overflow-wrap:anywhere}.audit-instruction{margin-bottom:12px;font-size:var(--text-sm)}.audit-instruction summary{cursor:pointer;color:var(--color-accent)}.audit-instruction pre{max-height:240px;overflow:auto;background:var(--bg-surface);border:1px solid var(--color-border);border-radius:4px;padding:8px;white-space:pre-wrap;word-break:break-word;font-size:var(--text-xs)}.audit-messages{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:var(--text-sm)}.audit-entry{display:flex;gap:8px;align-items:baseline}.audit-entry-tool{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.audit-entry-role{flex:0 0 32px;color:var(--color-text-secondary);font-size:var(--text-xs)}.audit-entry.user .audit-entry-text{font-weight:600}.audit-entry-text{white-space:pre-wrap;word-break:break-word;min-width:0;flex:1 1 auto}.audit-entry.notice{color:var(--color-text-tertiary);font-size:var(--text-xs)}.audit-entry.audit-error{color:#b42318}.audit-entry.notice,.audit-entry.audit-error{overflow-wrap:anywhere}.case-top{flex:none;padding:18px var(--gutter) 0}.case-title-row{display:flex;align-items:baseline;gap:10px}.case-h1{margin:0;font-size:var(--text-xl);font-weight:var(--weight-semibold);letter-spacing:-.01em}.guide-no{color:var(--text-faint)}.guide-yes{color:var(--brand)}.case-tagline{margin:7px 0 0;font-size:var(--text-xs);color:var(--text-faint);line-height:1.6}.case-tagline b{font-weight:500;color:var(--text-muted)}.tabs{display:flex;gap:2px;margin-top:14px}.tab{padding:7px 12px;font:inherit;font-size:var(--text-sm);color:var(--text-muted);background:transparent;border-radius:var(--r-sm)}.tab:hover:not(:disabled){background:var(--bg-subtle);color:var(--text)}.tab.on{background:transparent;color:var(--brand-strong);font-weight:600;box-shadow:inset 0 -2px 0 var(--brand)}.case-toolbar{flex:none;display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;padding:0 var(--gutter) 12px;border-bottom:1px solid var(--border)}.case-search{position:relative;flex:1;max-width:400px}.case-search input{width:100%;padding:8px 34px 8px 12px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-surface);font:inherit;font-size:var(--text-sm);color:var(--text)}.case-search input::placeholder{color:var(--text-faint)}.case-search input:focus{outline:none;border-color:var(--brand-border);box-shadow:0 0 0 3px var(--brand-soft)}.kbd{position:absolute;right:9px;top:50%;transform:translateY(-50%);font-family:var(--mono);font-size:var(--text-xs);color:var(--text-faint);border:1px solid var(--border);border-radius:4px;padding:1px 5px;background:var(--bg-subtle);pointer-events:none}.spacer{flex:1}.case-list{flex:1;min-height:0;overflow-y:auto;padding:14px var(--gutter) 40px;display:flex;flex-direction:column;gap:10px}.case-filter{display:flex;align-items:center;gap:6px;font-size:var(--text-xs);color:var(--text-muted)}.case-filter select,.case-filter input[type=date]{padding:7px 9px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-surface);color:inherit;font:inherit;font-size:var(--text-xs)}.case-filter input[type=date]{width:134px}.case-filter .sep{color:var(--text-faint)}.case-filter select:focus,.case-filter input[type=date]:focus{outline:none;border-color:var(--brand-border);box-shadow:0 0 0 3px var(--brand-soft)}.case-clear-filter{flex:none;padding:6px 10px;font-size:var(--text-xs)}.case-card{display:block;width:100%;text-align:left;background:var(--bg-surface);border:0;border-radius:var(--r-lg);padding:14px 16px;box-shadow:var(--shadow-1);cursor:pointer;transition:box-shadow .15s ease,transform .15s ease}.case-card:hover{background:var(--bg-surface);box-shadow:var(--shadow-2);transform:translateY(-1px)}.case-card:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.case-card-title{margin:0;font-size:var(--text-base);font-weight:600;color:var(--text);line-height:1.5}.case-card-sum{margin:6px 0 0;font-size:var(--text-sm);line-height:1.65;color:var(--text-muted);font-weight:400;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.case-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.case-tag{padding:1px 7px;border-radius:var(--r-full);font-size:var(--text-xs);font-weight:400;background:var(--bg-subtle);color:var(--text-muted);border:1px solid var(--border)}.case-meta{display:flex;align-items:center;gap:7px;margin-top:11px;font-size:var(--text-xs);color:var(--text-faint);font-weight:400;flex-wrap:wrap}.case-meta .sep{color:var(--border-strong)}.case-meta-right{margin-left:auto;display:flex;align-items:center;gap:8px}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:var(--r-full);font-size:var(--text-xs);font-weight:400;background:var(--bg-subtle);color:var(--text-muted);border:1px solid transparent}.badge.pub{background:var(--brand-soft);color:var(--brand-strong);border-color:var(--brand-border)}.badge.reuse{background:transparent;color:var(--text-muted)}.avatar{flex:none;width:20px;height:20px;border-radius:var(--r-full);display:grid;place-items:center;font-size:var(--text-xs);font-weight:600;background:var(--bg-active);color:var(--brand-strong)}.case-empty{display:flex;flex-direction:column;align-items:center;gap:10px;margin:auto;padding-bottom:6vh;text-align:center}.case-empty h3{margin:0;font-size:var(--text-base);font-weight:600}.case-empty p{margin:0;max-width:440px;font-size:var(--text-sm);line-height:1.7;color:var(--text-muted)}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#11182761;display:flex;justify-content:flex-end;z-index:90}.drawer{width:780px;max-width:94vw;height:100%;background:var(--bg-surface);box-shadow:var(--shadow-3);display:flex;flex-direction:column}.drawer-head{flex:none;padding:16px 22px 14px;border-bottom:1px solid var(--border)}.drawer-head-row{display:flex;align-items:flex-start;gap:12px}.drawer-title{flex:1;margin:0;font-size:var(--text-xl);font-weight:var(--weight-semibold);line-height:1.5;letter-spacing:-.01em}.drawer-close{flex:none;padding:4px 8px;font-size:var(--text-base);color:var(--text-faint);background:transparent}.drawer-close:hover:not(:disabled){background:var(--bg-subtle);color:var(--text)}.drawer-body{flex:1;min-height:0;overflow-y:auto;padding:16px 22px 48px}.drawer-foot{flex:none;display:flex;align-items:center;gap:8px;padding:12px 22px;border-top:1px solid var(--border);background:var(--bg-surface)}.case-foot-note{font-size:var(--text-xs);color:var(--text-faint)}.anchor{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:9px 12px;background:var(--bg-subtle);border-radius:var(--r-md);font-size:var(--text-xs);color:var(--text-muted)}.anchor code{font-family:var(--mono);font-size:var(--text-xs);color:var(--text)}.anchor .sep{color:var(--border-strong)}.anchor .stale{flex-basis:100%;margin-top:4px;padding-top:7px;border-top:1px solid var(--border);font-size:var(--text-xs);color:var(--text-faint)}.sec{margin-top:20px;font-size:var(--text-base);line-height:1.8}.case-nosummary{margin:18px 0 0;font-size:var(--text-sm);color:var(--text-faint)}.raw{margin-top:24px;border-top:1px solid var(--border);padding-top:14px}.raw-toggle{display:flex;align-items:center;gap:8px;width:100%;padding:4px 0;background:transparent;color:var(--text-muted);font:inherit;font-size:var(--text-sm);text-align:left}.raw-toggle:hover:not(:disabled){background:transparent;color:var(--text)}.raw-caret{font-size:var(--text-xs)}.raw-body{margin-top:12px}.raw-msg{margin-bottom:16px}.raw-role{font-size:var(--text-xs);color:var(--text-faint);margin-bottom:5px}.raw-user{display:inline-block;background:var(--bg-subtle);border-radius:var(--r-md);padding:10px 14px;font-size:var(--text-base);line-height:1.7;white-space:pre-wrap}.raw-assist{font-size:var(--text-base);line-height:1.8}.case-source-link{margin-top:20px;padding:6px 10px}.chat-case-save{padding:5px 11px;font-size:var(--text-xs)}.chat-case-note{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-xs);color:var(--text-muted)}.chat-case-note.error{color:var(--danger)}.chat-case-note button{padding:2px 8px;font-size:var(--text-xs)}.pgroup{margin-top:18px}.pgroup-h{display:flex;align-items:center;gap:8px;padding:0 2px 8px;border-bottom:1px solid var(--border)}.pgroup-h .t{font-size:var(--text-sm);font-weight:600}.pgroup-h .c{font-size:var(--text-xs);color:var(--text-faint)}.prow{display:flex;align-items:flex-start;gap:12px;padding:12px;border-radius:var(--r-md)}.prow:hover{background:var(--bg-hover)}.prow .body{flex:1;min-width:0}.prow .txt{display:block;width:100%;text-align:left;padding:0;background:transparent;color:var(--text);font:inherit;font-size:var(--text-sm);line-height:1.7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.prow .txt:hover:not(:disabled){background:transparent;color:var(--brand-strong)}.prow .m{margin-top:7px;display:flex;align-items:center;gap:7px;font-size:var(--text-xs);color:var(--text-faint);flex-wrap:wrap}.prow-meta-line{display:flex;align-items:center;gap:7px;font-size:var(--text-xs);color:var(--text-faint);flex-wrap:wrap}.prow-meta-line .sep{color:var(--border-strong)}.prompt-dialog{width:720px;max-width:calc(100vw - 32px);max-height:76vh;display:flex;flex-direction:column;gap:12px;padding:18px 20px;background:var(--bg-surface);border-radius:var(--r-lg);box-shadow:var(--shadow-3)}.prompt-dialog-text{flex:1;min-height:0;overflow-y:auto;font-size:var(--text-base);line-height:1.85;white-space:pre-wrap;background:var(--bg-subtle);border-radius:var(--r-md);padding:12px 14px}.prow .m .sep{color:var(--border-strong)}.prow .act{flex:none;display:flex;gap:4px}.prow .act button{padding:4px 10px;font-size:var(--text-xs)}.prow .act button.ghost{border:1px solid var(--border)}.prow .act button.apply{background:var(--bg-surface);color:var(--brand-strong);border:1px solid var(--brand-border)}.prow .act button.apply:hover:not(:disabled){background:var(--brand-bg);color:#fff;border-color:var(--brand)}.cross{display:inline-flex;align-items:center;gap:4px;padding:1px 7px;border-radius:var(--r-full);font-size:var(--text-xs);background:var(--warn-soft);color:var(--warn-text);border:1px solid var(--warn-border)}.pfoot{margin-top:20px;padding:11px 14px;background:var(--bg-subtle);border-radius:var(--r-md);font-size:var(--text-xs);color:var(--text-muted);line-height:1.7}.gen-cost{margin-left:auto;font-size:var(--text-xs);color:var(--text-faint);font-variant-numeric:tabular-nums}.seg-block{margin:2px 0 10px}.ask-editor{min-height:76px;font-size:var(--text-sm);line-height:1.7}.summarizing-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:120;display:grid;place-items:center;background:#11182773}.summarizing-card{display:flex;flex-direction:column;align-items:center;gap:10px;padding:26px 34px;background:var(--bg-surface);border-radius:var(--r-lg);box-shadow:var(--shadow-3)}.summarizing-t{font-size:var(--text-base);font-weight:600}.summarizing-h{font-size:var(--text-xs);color:var(--text-faint)}.case-purpose{margin-top:6px;line-height:1.85}.case-purpose b{color:var(--text-muted)}.case-more{margin-top:4px;align-self:center;padding:7px 16px;font-size:var(--text-xs);border:1px solid var(--border)}.case-card mark{background:var(--bg-active);color:inherit;border-radius:3px;padding:0 2px}.chat-prompt-note{margin-bottom:8px;padding:9px 12px;background:var(--warn-soft);border:1px solid var(--warn-border);border-radius:var(--r-md);font-size:var(--text-xs);color:var(--warn-text);line-height:1.6}.related{margin-top:22px;border-top:1px solid var(--border);padding-top:14px}.related-h{margin:0 0 6px;font-size:var(--text-xs);font-weight:600;color:var(--text-faint);letter-spacing:.04em}.related-row{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;margin-top:4px;background:transparent;color:var(--text);font:inherit;font-size:var(--text-sm);text-align:left;border-radius:var(--r-sm)}.related-row:hover:not(:disabled){background:var(--bg-hover)}.related-row .t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.related-row .m{flex:none;font-size:var(--text-xs);color:var(--text-faint)}.case-stale{margin-left:8px}.case-stat-grid{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 10px}.case-stat{display:flex;align-items:baseline;gap:8px;padding:8px 12px;border-radius:var(--r-md);background:var(--bg-subtle);min-width:210px}.case-stat.zero{background:transparent;border:1px dashed var(--border-strong)}.case-stat .n{font-size:var(--text-base);font-weight:600;font-variant-numeric:tabular-nums}.case-stat.zero .n{color:var(--text-faint);font-weight:400}.case-stat .t{font-size:var(--text-xs);color:var(--text-muted)}.case-stat .off{margin-left:6px;font-size:var(--text-xs);color:var(--text-faint)}.case-stat-note{margin:0;font-size:var(--text-xs);color:var(--text-faint);line-height:1.7;max-width:760px}.case-admin-toggle{margin-left:auto;font-size:var(--text-xs);color:var(--text-muted);display:inline-flex;align-items:center;gap:6px}.case-admin-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.case-admin-table th{text-align:left;font-weight:600;color:var(--text-muted);font-size:var(--text-xs);padding:6px 8px;border-bottom:1px solid var(--border)}.case-admin-table td{padding:8px;border-bottom:1px solid var(--border);vertical-align:middle}.case-admin-table td.title{font-weight:500}.case-admin-table tr.withdrawn td{color:var(--text-faint)}.case-admin-off{font-size:var(--text-xs);color:var(--text-faint)}.wizard-backdrop{justify-content:center;align-items:center}.wizard{width:960px;max-width:95vw;height:min(760px,92vh);display:flex;flex-direction:column;background:var(--bg-surface);border-radius:var(--r-lg);box-shadow:var(--shadow-3);overflow:hidden}.wizard-head{flex:none;display:flex;align-items:center;gap:14px;padding:14px 20px;border-bottom:1px solid var(--border)}.wizard-title{margin:0;font-size:var(--text-base);font-weight:600}.steps{display:flex;align-items:center;gap:16px;margin-left:auto}.step{display:flex;align-items:center;gap:6px;font-size:var(--text-xs);color:var(--text-faint)}.step .n{width:18px;height:18px;border-radius:var(--r-full);display:grid;place-items:center;font-size:var(--text-xs);background:var(--bg-subtle)}.step.on{color:var(--brand-strong);font-weight:600}.step.on .n{background:var(--brand-bg);color:#fff}.step.done{color:var(--text-muted)}.step.done .n{background:var(--bg-active);color:var(--brand-strong)}.session-cases{flex:none;padding:14px 20px 12px;border-bottom:1px solid var(--border)}.session-cases .pane-h{margin:0 0 8px}.session-case-row{display:flex;align-items:center;gap:8px;padding:3px 0;font-size:var(--text-sm)}.session-case-row .t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-case-row .d{flex:none;font-family:var(--mono);font-size:var(--text-xs);color:var(--text-faint)}.tag-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.tag-chip{padding:2px 9px;border-radius:var(--r-full);cursor:pointer;font-size:var(--text-xs);font-weight:400;background:var(--bg-subtle);color:var(--text-muted);border:1px solid var(--border)}.tag-chip:hover{background:var(--bg-active);color:var(--text)}.tag-chip.on{background:var(--brand-soft);color:var(--brand-strong);border-color:var(--brand-border)}.preview-note{margin:0 0 14px;padding:9px 12px;border:1px solid var(--warn-border);border-radius:var(--r-md);background:var(--warn-soft);color:var(--warn-text);font-size:var(--text-xs);line-height:1.6}.preview-note b{font-weight:600}.wizard-body{flex:1;min-height:0;display:grid;grid-template-columns:1fr 1fr}.pane{min-height:0;overflow-y:auto;padding:16px 20px 24px}.pane+.pane{border-left:1px solid var(--border);background:var(--bg-app)}.pane-h{display:flex;align-items:baseline;gap:8px;margin:0 0 10px;font-size:var(--text-xs);font-weight:600;color:var(--text-muted)}.pane-h .note{font-weight:400;color:var(--text-faint);font-size:var(--text-xs);margin-left:auto}.wizard-foot{flex:none;display:flex;align-items:center;gap:10px;padding:13px 20px;border-top:1px solid var(--border)}.wizard-foot .note{font-size:var(--text-xs);color:var(--text-faint)}.turn-row{display:flex;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--r-md);margin-bottom:8px;cursor:pointer;background:var(--bg-surface)}.turn-row.on{border-color:var(--brand-border);background:var(--bg-active)}.turn-row input{flex:none;margin-top:3px;accent-color:var(--brand)}.turn-row .t{flex:1;min-width:0}.turn-q{display:block;font-size:var(--text-sm);line-height:1.6}.turn-m{display:block;margin-top:5px;font-size:var(--text-xs);color:var(--text-faint)}.turn-running{color:var(--warn-text)}.preview-box{background:var(--bg-surface);border-radius:var(--r-md);padding:14px 16px;box-shadow:var(--shadow-1);font-size:var(--text-sm);line-height:1.75}.preview-box .q{margin:0 0 8px;color:var(--text-muted)}.body-preview{margin-top:10px;max-height:320px;overflow-y:auto}.field{margin-bottom:12px}.field label,.field .field-label{display:block;font-size:var(--text-xs);font-weight:600;color:var(--text-muted);margin-bottom:6px}.field input[type=text],.field textarea{width:100%;padding:9px 12px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-surface);font:inherit;font-size:var(--text-sm);color:var(--text);resize:vertical}.field textarea{min-height:92px;font-size:var(--text-sm);line-height:1.8}.field input:focus,.field textarea:focus{outline:none;border-color:var(--brand-border);box-shadow:0 0 0 3px var(--brand-soft)}.field-hint{margin:6px 0 0;font-size:var(--text-xs);color:var(--text-faint);line-height:1.7}.md-editor{font-family:var(--mono);font-size:var(--text-xs);line-height:1.85;min-height:240px}.gen-row{display:flex;align-items:center;gap:8px;margin-bottom:8px;flex-wrap:wrap}.gen-btn{border:1px solid var(--border)}.seg{display:inline-flex;gap:2px;padding:2px;background:var(--bg-subtle);border-radius:var(--r-sm)}.seg button{padding:3px 10px;font-size:var(--text-xs);background:transparent;color:var(--text-muted);border-radius:4px}.seg button:hover:not(:disabled){background:transparent;color:var(--text)}.seg button.on{background:var(--bg-surface);color:var(--text);box-shadow:var(--shadow-1)}.vis{display:flex;flex-direction:column;gap:8px}.vis label{display:flex;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--r-md);cursor:pointer;background:var(--bg-surface)}.vis label.on{border-color:var(--brand-border);background:var(--bg-active)}.vis input{flex:none;margin-top:2px;accent-color:var(--brand)}.vis .t{display:block;font-size:var(--text-sm);font-weight:600;color:var(--text)}.vis .h{display:block;margin-top:3px;font-size:var(--text-xs);color:var(--text-muted);line-height:1.6}.confirm{display:flex;gap:9px;margin-top:12px;padding:11px 12px;background:var(--warn-soft);border:1px solid var(--warn-border);border-radius:var(--r-md);cursor:pointer}.confirm input{flex:none;margin-top:2px;accent-color:var(--brand)}.confirm .t{font-size:var(--text-xs);color:var(--warn-text);line-height:1.65}.po-dialog{width:760px;max-width:calc(100vw - 32px);max-height:82vh;display:flex;flex-direction:column;gap:12px;padding:18px 20px;background:var(--bg-surface);border-radius:var(--r-lg);box-shadow:var(--shadow-3)}.po-h h3{margin:0;font-size:var(--text-base);font-weight:600}.po-h p{margin:5px 0 0;font-size:var(--text-xs);color:var(--text-muted);line-height:1.65}.po-running{display:flex;align-items:center;gap:8px;padding:22px 0;font-size:var(--text-sm);color:var(--text-muted)}.po-empty{padding:18px 0;font-size:var(--text-sm);color:var(--text-muted)}.po-compare{flex:1;min-height:0;display:grid;grid-template-columns:1fr 1fr;gap:12px}.po-col{min-height:0;display:flex;flex-direction:column;gap:6px}.po-col-h{font-size:var(--text-xs);font-weight:600;color:var(--text-faint);letter-spacing:.04em}.po-text{flex:1;min-height:60px;overflow-y:auto;padding:11px 13px;border-radius:var(--r-md);background:var(--bg-subtle);font-size:var(--text-sm);line-height:1.8;white-space:pre-wrap}.po-col:first-child .po-text{color:var(--text-muted)}.po-text-new{background:var(--bg-surface);border:1px solid var(--brand-border)}.po-note{flex:none;padding:9px 12px;background:var(--warn-soft);border:1px solid var(--warn-border);border-radius:var(--r-md);font-size:var(--text-xs);color:var(--warn-text);line-height:1.6}.po-gaps{flex:none;padding:10px 12px;background:var(--bg-subtle);border-radius:var(--r-md)}.po-gaps ul{margin:5px 0 0;padding-left:18px;font-size:var(--text-sm);line-height:1.75}@media (max-width: 640px){.po-compare{grid-template-columns:1fr}}.chat-optimize-note{display:flex;align-items:center;gap:8px;margin-bottom:8px;padding:7px 12px;background:var(--bg-active);border:1px solid var(--brand-border);border-radius:var(--r-md);font-size:var(--text-xs);color:var(--text-muted)}.chat-optimize-note button{margin-left:auto;padding:2px 10px;font-size:var(--text-xs);border:1px solid var(--border)}.suggest-modal{width:920px;max-height:86vh;gap:8px}.suggest-lead{margin:0;font-size:var(--text-xs);color:var(--text-muted)}.suggest-body{flex:1;min-height:0;display:grid;grid-template-columns:1fr 1fr;margin:0 -16px -16px}.suggest-pane{min-height:0;overflow-y:auto;padding:12px 16px 32px}.suggest-pane+.suggest-pane{border-left:1px solid var(--border);background:var(--bg-app)}.suggest-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px}.suggest-search{position:relative;flex:1 1 150px}.suggest-search input{width:100%;padding:7px 11px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-surface);font:inherit;font-size:var(--text-sm);color:var(--text)}.suggest-search input::placeholder{color:var(--text-faint)}.suggest-search input:focus,.suggest-filter select:focus,.suggest-field input:focus,.suggest-field select:focus,.suggest-field textarea:focus{outline:none;border-color:var(--brand-border);box-shadow:0 0 0 3px var(--brand-soft)}.suggest-filter{display:flex;align-items:center;gap:5px;font-size:var(--text-xs);color:var(--text-muted)}.suggest-filter select{padding:6px 8px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-surface);color:inherit;font:inherit;font-size:var(--text-xs)}.suggest-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.suggest-item{display:flex;align-items:stretch;gap:4px}.suggest-open{flex:1;min-width:0;text-align:left;padding:10px 12px;border:1px solid transparent;border-radius:var(--r-lg);background:var(--bg-surface);box-shadow:var(--shadow-1);font:inherit;cursor:pointer;transition:box-shadow .15s ease}.suggest-open:hover{box-shadow:var(--shadow-2)}.suggest-open.on{border-color:var(--brand-border);background:var(--bg-active)}.suggest-open:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.suggest-title{display:block;font-size:var(--text-sm);font-weight:600;color:var(--text);line-height:1.5}.suggest-open.on .suggest-title{color:var(--brand-strong)}.suggest-excerpt{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;margin:4px 0 0;font-size:var(--text-xs);color:var(--text-muted);font-weight:400}.suggest-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:7px;font-size:var(--text-xs);color:var(--text-faint);font-weight:400}.suggest-meta .sep{color:var(--border-strong)}.suggest-vote{flex:none;align-self:center;padding:7px 10px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-surface);font:inherit;font-size:var(--text-xs);color:var(--text-muted);cursor:pointer}.suggest-vote:hover{border-color:var(--brand-border);color:var(--brand-strong)}.suggest-vote.on{background:var(--bg-active);border-color:var(--brand-border);color:var(--brand-strong)}.suggest-chip{padding:1px 7px;border-radius:var(--r-full);font-size:var(--text-xs);background:var(--bg-subtle);color:var(--text-muted);border:1px solid var(--border)}.suggest-status{padding:1px 7px;border-radius:var(--r-full);font-size:var(--text-xs);border:1px solid var(--border)}.suggest-status-pending{background:var(--bg-subtle);color:var(--text-muted)}.suggest-status-accepted{background:var(--brand-soft);color:var(--brand-strong);border-color:var(--brand-border)}.suggest-status-done{background:var(--brand-bg);color:#fff;border-color:var(--brand)}.suggest-status-rejected{background:transparent;color:var(--text-faint);border-color:var(--border-strong);border-style:dashed}.suggest-pane-h{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-size:var(--text-xs);font-weight:600;color:var(--text-muted)}.suggest-pane-h .spacer{flex:1}.suggest-hint{margin:0;font-size:var(--text-sm);color:var(--text-faint);line-height:1.7}.suggest-detail-title{margin:0 0 8px;font-size:var(--text-base);font-weight:600;color:var(--text);line-height:1.5}.suggest-detail-body{margin:0;font-size:var(--text-sm);color:var(--text);line-height:1.8;white-space:pre-wrap}.suggest-block{margin-top:16px;padding-top:12px;border-top:1px solid var(--border)}.suggest-block h4{margin:0 0 6px;font-size:var(--text-xs);font-weight:600;color:var(--text-muted)}.suggest-note{margin:0;padding:9px 12px;background:var(--bg-surface);border:1px solid var(--brand-border);border-radius:var(--r-md);font-size:var(--text-sm);line-height:1.7;color:var(--text)}.suggest-note-by{display:block;margin-top:5px;font-size:var(--text-xs);color:var(--text-faint)}.suggest-voters{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}.suggest-voter{padding:1px 8px;border-radius:var(--r-full);font-size:var(--text-xs);background:var(--bg-surface);border:1px solid var(--border);color:var(--text-muted)}.suggest-form{display:flex;flex-direction:column;gap:10px}.suggest-field{display:flex;flex-direction:column;gap:5px;font-size:var(--text-xs);color:var(--text-muted)}.suggest-field input,.suggest-field select,.suggest-field textarea{padding:8px 11px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-surface);font:inherit;font-size:var(--text-sm);color:var(--text)}.suggest-field textarea{min-height:96px;resize:vertical;line-height:1.7}.suggest-actions{display:flex;align-items:center;gap:8px;margin-top:4px}.suggest-actions .spacer{flex:1}.suggest-error{margin:0;font-size:var(--text-xs);color:var(--danger);line-height:1.6}.suggest-improve-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.suggest-improve{display:flex;flex-direction:column;gap:8px;padding:10px 12px;border-left:3px solid var(--brand);border-radius:var(--r-sm);background:var(--bg-subtle)}.suggest-improve-item{display:flex;flex-direction:column;gap:3px}.suggest-improve-tag{font-size:var(--text-xs);color:var(--text-faint)}.suggest-improve-item p{margin:0;font-size:var(--text-sm);line-height:1.7}.suggest-improve-body{white-space:pre-wrap}@media (max-width: 768px){:root{--rail-w: 56px}.login-wrap{height:100dvh}.picker-page{min-height:100dvh}.picker-topbar{padding:0 20px}.picker-main{padding:32px 20px 56px}.picker-list{grid-template-columns:1fr}.sidebar{display:none;position:fixed;top:0;bottom:0;left:var(--rail-w);z-index:60;width:min(var(--sidebar-w),84vw);height:100dvh;box-shadow:var(--shadow-3)}.sidebar.open{display:flex}.app-backdrop{display:block;position:fixed;inset:0 0 0 var(--rail-w);z-index:55;background:#11182761}.rail-toggle{display:flex}.main{--gutter: 12px}.wizard-body,.po-compare,.suggest-body{grid-template-columns:1fr}.suggest-modal{width:94vw;max-height:86dvh}.drawer{width:94vw}.composer-row{flex-wrap:wrap}.composer-right{margin-left:auto}.composer-tool{white-space:nowrap}.admin-page{padding:16px 12px}.admin-tabs,.admin-subtabs,.admin-footer{flex-wrap:wrap}.admin-footer button{white-space:nowrap}.about-reader-bar{padding:10px 14px}.about-reader-doc{padding:18px 16px 96px;font-size:var(--text-base);line-height:1.85}.about-reader-doc .md h1{font-size:var(--text-2xl)}.about-reader-doc .md h2{margin:30px 0 12px;padding-top:12px;font-size:var(--text-xl)}.about-reader-doc .md h3{margin:22px 0 9px;font-size:var(--text-base)}.about-reader-doc .md table{font-size:var(--text-sm)}.about-reader-doc .md th,.about-reader-doc .md td{padding:7px 10px}.about-outline ol{max-height:40vh}}.login-card .login-about{width:auto;display:block;width:fit-content;margin:6px auto 0;padding:2px 4px;background:transparent;color:var(--color-text-secondary);font-size:var(--text-xs);text-decoration:underline;cursor:pointer}.login-card .login-about:hover:not(:disabled){color:var(--brand)}.about-reader{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:var(--bg-surface);overflow-y:auto;overscroll-behavior:contain}.about-reader-bar{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 20px;border-bottom:1px solid var(--border);background:var(--bg-surface)}.about-reader-title{margin:0;font-size:var(--text-base);font-weight:600}.about-reader-doc{max-width:820px;margin:0 auto;padding:26px 24px 120px;font-size:var(--text-base);line-height:1.9}.about-note{margin:0;font-size:var(--text-sm);color:var(--text-muted);line-height:1.7}.about-reader-doc .md h1{margin:0 0 22px;font-size:var(--text-2xl);line-height:1.4}.about-reader-doc .md h2{margin:40px 0 14px;padding-top:14px;border-top:1px solid var(--border);font-size:var(--text-xl);line-height:1.5}.about-reader-doc .md h3{margin:28px 0 10px;font-size:var(--text-lg);line-height:1.5}.about-reader-doc .md h2,.about-reader-doc .md h3{scroll-margin-top:64px}.about-reader-doc .md p{margin:0 0 16px}.about-reader-doc .md ul,.about-reader-doc .md ol{margin:0 0 16px;padding-left:26px}.about-reader-doc .md li{margin:7px 0}.about-reader-doc .md blockquote{margin:0 0 18px;padding:4px 18px;line-height:1.85}.about-reader-doc .md table{width:100%;margin:0 0 18px;font-size:var(--text-sm);line-height:1.75}.about-reader-doc .md th,.about-reader-doc .md td{padding:9px 14px}.about-reader-doc .md th,.about-reader-doc .md td{overflow-wrap:break-word}.about-outline{margin:0 0 26px;padding:10px 16px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-subtle);font-size:var(--text-sm);line-height:1.8}.about-outline>summary{cursor:pointer;font-weight:600;color:var(--text-muted)}.about-outline ol{margin:8px 0 2px;padding-left:0;list-style:none;max-height:46vh;overflow-y:auto}.about-outline li.lv2{margin-top:6px;font-weight:600}.about-outline li.lv3{padding-left:18px}.about-outline button{padding:1px 0;background:transparent;color:var(--brand);font:inherit;text-align:left;cursor:pointer}.about-outline button:hover:not(:disabled){text-decoration:underline}.about-field{display:flex;flex-direction:column;gap:5px;font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--text-muted)}.about-textarea{width:100%;box-sizing:border-box;padding:9px 12px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-surface);font:inherit;font-size:var(--text-sm);color:var(--text);line-height:1.7;resize:vertical}.about-textarea:focus{outline:none;border-color:var(--brand-border);box-shadow:0 0 0 3px var(--brand-soft)}.dv-view{display:flex;min-height:0;height:100%}.dv-side{flex:0 0 288px;min-width:0;display:flex;flex-direction:column;min-height:0;background:var(--bg-sunken);border-right:1px solid var(--border)}.dv-side-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px 8px}.dv-title{display:flex;align-items:center;gap:8px;margin:0;font-size:var(--text-base);font-weight:600}.dv-filters3{display:flex;flex-direction:column;gap:6px;padding:0 12px 10px}.dv-filter{display:flex;align-items:center;gap:8px;font-size:var(--text-xs)}.dv-filter-label{flex:0 0 28px;color:var(--text-weak)}.dv-filter select{flex:1;min-width:0}.dv-list{flex:1;overflow:auto;margin:0;padding:8px;list-style:none}.dv-empty,.dv-hint{color:var(--text-weak);font-size:var(--text-xs)}.dv-empty{padding:12px}.dv-notice{margin:0 0 8px;padding:8px 10px;border-radius:8px;font-size:var(--text-xs);cursor:pointer;background:var(--brand-soft);color:var(--brand-strong, var(--brand))}.dv-item{display:flex;align-items:flex-start;gap:6px;padding:6px 6px 6px 8px;margin-bottom:4px;border-radius:8px}.dv-item:hover{background:var(--bg-hover)}.dv-item.on{background:var(--brand-soft)}.dv-item-check{flex:0 0 auto;margin-top:3px}.dv-item-main{flex:1;min-width:0;text-align:left;padding:2px 0;background:transparent;border:0;border-radius:6px;cursor:pointer;color:inherit}.dv-item-title{display:block;font-size:var(--text-sm)}.dv-item-meta,.dv-item-desc{display:block;font-size:var(--text-xs);color:var(--text-weak)}.dv-item-desc{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dv-more{position:relative;flex:0 0 auto}.dv-menu{position:absolute;right:0;top:100%;z-index:20;margin:4px 0 0;padding:4px;list-style:none;min-width:158px;background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;box-shadow:0 6px 20px #00000024}.dv-menu button{display:block;width:100%;text-align:left;padding:6px 8px;font-size:var(--text-xs);background:transparent;border:0;border-radius:6px;cursor:pointer;color:inherit}.dv-menu button:hover{background:var(--bg-subtle)}.dv-main{flex:1;min-width:0;display:flex;flex-direction:column;overflow:auto;padding:12px 16px}.dv-progress progress{width:100%}.dv-create-jobs{list-style:none;margin:8px 0 0;padding:0;max-height:40vh;overflow:auto}.dv-create-job{display:flex;align-items:baseline;gap:8px;padding:3px 0;font-size:var(--text-xs)}.dv-create-job-name{flex:0 0 auto;color:var(--text-faint)}.dv-create-job-state{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dv-create-job.ok .dv-create-job-state{color:var(--text-faint)}.dv-create-job.running .dv-create-job-state{color:var(--text)}.dv-create-job.fail .dv-create-job-name,.dv-create-job.fail .dv-create-job-state{color:var(--danger)}.dv-head{display:flex;align-items:center;gap:12px;margin-bottom:8px}.dv-head-meta{font-size:var(--text-xs);color:var(--text-weak)}.dv-reader{flex:1;min-height:320px;display:flex;gap:8px}.dv-reader.dv-dragging{-webkit-user-select:none;user-select:none;cursor:col-resize}.dv-toc{flex:0 0 var(--dv-toc-w, 300px);display:flex;flex-direction:column;min-height:0;overflow:hidden}.dv-search{width:100%}.dv-toc-count{font-size:var(--text-xs);color:var(--text-weak);margin:6px 0}.dv-toc ul{flex:1;min-height:0;overflow:auto;list-style:none;margin:0;padding:0}.dv-toc-row{display:flex;align-items:flex-start;gap:2px}.dv-toc-row>.dv-toc-item{flex:1 1 auto;min-width:0}.dv-toc-check{flex:0 0 auto;margin:7px 0 0 2px;cursor:pointer}.dv-batch{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:4px 2px;border-radius:6px;background:var(--bg-subtle)}.dv-batch-count{font-size:var(--text-xs);color:var(--text-muted);margin-right:2px}.dv-batch button{font-size:var(--text-xs);padding:2px 8px}.dv-toc-item{display:flex;align-items:center;gap:6px;width:100%;padding:4px 6px;background:transparent;border:0;border-radius:6px;cursor:pointer;text-align:left;color:inherit;font-size:var(--text-xs)}.dv-toc-item:hover{background:var(--bg-hover)}.dv-toc-item.on{background:var(--brand-selected);color:var(--brand-strong);box-shadow:inset 2px 0 0 var(--brand)}.dv-toc-item.on .dv-toc-name{font-weight:600}.dv-split{flex:0 0 5px;position:relative;cursor:col-resize;border-radius:3px}.dv-split:before{content:"";position:absolute;left:2px;top:0;bottom:0;width:1px;background:var(--border)}.dv-split:hover:before,.dv-split.on:before{background:var(--brand-bg)}.dv-split:focus-visible{outline:2px solid var(--brand);outline-offset:1px}.dv-filter-row{display:flex;flex-wrap:nowrap;align-items:center;gap:6px;margin:6px 0}.dv-filter-row>.dv-filterbox{position:relative;flex:0 1 auto;min-width:0;margin:0}.dv-filter-row>.dv-filterbox>.dv-chip{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dv-chip{font-size:var(--text-xs);padding:2px 8px;border-radius:999px;border:1px solid var(--line, transparent);background:transparent;color:var(--text-weak);cursor:pointer}.dv-chip.on{background:var(--brand-soft);color:var(--brand);border-color:transparent}.dv-filter-menu{position:absolute;left:0;top:100%;z-index:20;margin-top:4px;padding:6px;min-width:136px;background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;box-shadow:0 6px 20px #00000024}.dv-filter-menu label{display:flex;align-items:center;gap:6px;padding:4px 6px;font-size:var(--text-xs);border-radius:6px;cursor:pointer;white-space:nowrap}.dv-filter-menu label:hover{background:var(--bg-subtle)}.dv-history-toggle{width:100%;font-size:var(--text-xs);padding:4px;background:transparent;color:var(--text-weak);border:1px dashed var(--line, transparent);border-radius:6px;cursor:pointer}.dv-failed-actions{display:flex;gap:8px;margin-top:8px}.dv-diff{margin-top:6px;font-size:var(--text-xs)}.dv-diff ul{list-style:none;margin:4px 0 0;padding:0}.dv-diff li{font-family:ui-monospace,monospace;white-space:pre-wrap;word-break:break-all;padding:1px 4px;border-radius:3px}.dv-diff-del{background:var(--warn-soft, #fdecec)}.dv-diff-add{background:var(--brand-soft, #eef7ee)}.dv-toc-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dv-toc-src{flex:0 0 auto;max-width:72px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-xs);color:var(--text-faint, var(--text-weak))}.dv-badge{flex:0 0 auto;font-size:var(--text-xs);padding:1px 5px;border-radius:999px;background:var(--bg-hover);color:var(--text-weak)}.dv-badge.pass{background:var(--brand-soft);color:var(--brand)}.dv-badge.need_fix,.dv-badge.uncertain{background:var(--warn-soft, var(--bg-hover))}.dv-badge.skeleton_only{background:var(--warn-soft, var(--bg-hover));color:var(--text-weak)}.dv-badge.degraded{background:var(--warn-soft, var(--bg-hover));font-weight:600}.dv-badge.deprecated{background:var(--bg-hover);color:var(--text-weak);text-decoration:line-through}.dv-hint.dv-deprecated{margin:6px 0;padding:6px 10px;border-radius:8px;background:var(--bg-subtle);border-left:3px solid var(--border-strong)}.dv-section{flex:1;min-width:0;min-height:0;overflow:auto}.dv-statusbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:var(--text-xs);padding:6px 0}.dv-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:6px;border-radius:8px;background:var(--brand-soft);border-left:3px solid var(--brand)}.dv-actions-mark{margin-top:4px;background:var(--bg-subtle);border-left-color:var(--border-strong)}.dv-act-label{flex:0 0 auto;width:30px;font-size:var(--text-xs);font-weight:600;color:var(--brand-strong)}.dv-actions-mark>.dv-act-label{color:var(--text-muted)}.dv-actions>button.ghost{background:var(--bg-surface);color:var(--brand-strong);border:1px solid var(--brand-border)}.dv-actions>button.ghost:hover:not(:disabled){background:var(--bg-active)}.dv-actions-mark>button.ghost{background:var(--bg-surface);color:var(--text-muted);border-color:var(--border-strong)}.dv-actions>button.ghost:disabled{background:var(--bg-subtle);color:var(--text-faint);border-color:var(--border);cursor:not-allowed}.dv-act-sep{flex:0 0 auto;width:1px;height:14px;background:var(--border-strong);margin:0 2px}.dv-actions>button.ghost,.dv-seg button.dv-seg-btn{font-size:var(--text-xs);padding:5px 12px}.dv-seg{display:inline-flex;gap:4px}.dv-seg button.dv-seg-btn{background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--r-sm);color:var(--text-muted)}.dv-seg button.dv-seg-btn.pass{border-color:var(--brand-border);color:var(--brand-strong)}.dv-seg button.dv-seg-btn.need_fix{border-color:var(--warn-border);color:var(--warn-text)}.dv-seg button.dv-seg-btn:hover:not(:disabled){background:var(--bg-hover)}.dv-seg button.dv-seg-btn.pass:hover:not(:disabled){background:var(--brand-soft)}.dv-seg button.dv-seg-btn.need_fix:hover:not(:disabled){background:var(--warn-soft)}.dv-seg button.dv-seg-btn.on{font-weight:600}.dv-seg button.dv-seg-btn.pass.on,.dv-seg button.dv-seg-btn.pass.on:hover:not(:disabled){background:var(--brand-soft);border-color:var(--brand)}.dv-seg button.dv-seg-btn.need_fix.on,.dv-seg button.dv-seg-btn.need_fix.on:hover:not(:disabled){background:var(--warn-soft);border-color:var(--warn-text)}.dv-seg button.dv-seg-btn.uncertain.on,.dv-seg button.dv-seg-btn.uncertain.on:hover:not(:disabled){background:var(--bg-hover);border-color:var(--border-strong);color:var(--text)}.dv-spacer{flex:1}.dv-body-md{padding:4px 0}.dv-body-md .md{font-size:var(--text-sm);line-height:1.8}.dv-body-md .md table,.dv-body-md .md code{font-size:var(--text-sm)}.dv-body-md .md p{margin:0 0 10px}.dv-body-md .md blockquote{padding:5px 14px}.dv-body-md .md h3{margin:0 0 12px;font-size:var(--text-base)}.dv-body-md .md h4{margin:22px 0 8px;padding-top:12px;border-top:1px solid var(--border);font-size:var(--text-xs);font-weight:600;letter-spacing:.02em;color:var(--text-muted)}.dv-body-md .md>h3:first-child+*{margin-top:0}.dv-body-md .md h5{margin:14px 0 6px;padding-left:10px;border-left:2px solid var(--border-strong);font-size:var(--text-xs);font-weight:600}.dv-collect-failed{color:var(--danger);font-weight:600}.dv-hint.dv-section-run{margin:6px 0;padding:6px 10px;border-radius:8px;background:var(--danger-soft);color:var(--danger);border-left:3px solid var(--danger);font-size:var(--text-sm);font-weight:600}.dv-edit textarea{width:100%;font-family:ui-monospace,monospace;font-size:var(--text-xs)}.dv-edit-bar{display:flex;gap:8px;justify-content:flex-end;padding-top:6px}.dv-refs{margin-top:16px;font-size:var(--text-xs)}.dv-refs h4{margin:0 0 4px;font-size:var(--text-xs)}.dv-refs ul{list-style:none;margin:0;padding:0}.dv-refs>summary{cursor:pointer;font-weight:600;font-size:var(--text-xs)}.dv-refs>summary::marker{font-size:var(--text-xs)}.dv-refs[open]>summary{margin-bottom:4px}.dv-doc-header{margin:6px 0 2px;padding:6px 10px;border:1px solid var(--border);border-radius:8px;background:var(--bg-subtle)}.dv-doc-header>summary{cursor:pointer;font-weight:600;font-size:var(--text-xs)}.dv-doc-header>summary::marker{font-size:var(--text-xs)}.dv-doc-header[open]>summary{margin-bottom:6px}.dv-doc-header>.dv-body-md{max-height:45vh;overflow:auto}.dv-hint.dv-ai-legend{margin:6px 0 2px;padding:6px 10px;border-radius:8px;background:var(--bg-subtle);border-left:3px solid var(--brand-soft)}.dv-body-md .md h3.md-ai-block,.dv-body-md .md h4.md-ai-block{border-left:3px solid var(--brand);padding-left:8px}.dv-change-group{margin-bottom:6px}.dv-change-at{margin:4px 0 2px;font-size:var(--text-xs);font-weight:600;color:var(--text-muted)}.dv-repos{margin-top:16px;font-size:var(--text-xs)}.dv-repos h4{margin:0 0 4px;font-size:var(--text-xs)}.dv-repo-table{border-collapse:collapse;width:100%}.dv-repo-table th,.dv-repo-table td{text-align:left;vertical-align:top;padding:3px 8px 3px 0;border-bottom:1px solid var(--border)}.dv-repo-table th{color:var(--text-weak);font-weight:500}.dv-note{display:block;margin-top:12px;font-size:var(--text-xs)}.dv-note textarea{width:100%}.dv-field-table{width:100%;border-collapse:collapse;font-size:var(--text-xs);margin:4px 0}.dv-field-table th,.dv-field-table td{text-align:left;padding:4px 8px;border-bottom:1px solid var(--border);vertical-align:top}.dv-field-table th{color:var(--text-muted);font-weight:600}.dv-field-table-act{width:1%;white-space:nowrap}.dv-field-table-act button{font-size:var(--text-xs);padding:2px 8px}.dv-field-table-act button.has-note:before{content:"● ";color:var(--brand)}.fx-dialog{background:var(--bg-surface);border-radius:var(--r-lg);padding:16px;width:min(720px,92vw);max-height:86vh;overflow:auto}.fx-h h3{margin:0 0 4px}.fx-h p{margin:0 0 8px;color:var(--text-muted);font-size:var(--text-xs)}.fx-running{display:flex;align-items:center;gap:8px;padding:8px 0;color:var(--text-muted);font-size:var(--text-xs)}.fx-note{font-size:var(--text-xs)}.fx-note p{margin:4px 0}.fx-hint{display:block;margin-top:12px;font-size:var(--text-xs);color:var(--text-muted)}.fx-hint textarea{width:100%;margin-top:4px}.dv-prompt{margin:4px 0 10px}.dv-prompt-text{max-height:320px;overflow:auto;margin:6px 0 0;padding:8px 10px;background:var(--bg-sunken);border:1px solid var(--border);border-radius:8px;font-family:ui-monospace,monospace;font-size:var(--text-xs);line-height:1.5;white-space:pre-wrap;word-break:break-word}@media (max-width: 768px){.dv-view{flex-direction:column}.dv-side{flex:0 0 auto;width:100%;max-height:44vh;border-right:0;border-bottom:1px solid var(--border)}.dv-reader{flex-direction:column}.dv-split{display:none}.dv-list,.dv-toc{flex:0 0 auto;width:100%;max-height:30vh}}.ds-admin{display:flex;flex-direction:column;gap:8px}.ds-row{display:flex;gap:12px;align-items:flex-start;padding:10px 12px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-surface)}.ds-main{flex:1;min-width:0}.ds-title{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.ds-name{font-size:var(--text-sm);font-weight:600}.ds-conn{margin-top:4px;font-size:var(--text-xs);color:var(--text-muted);font-family:var(--mono);word-break:break-all}.ds-note{margin-top:6px;padding:6px 8px;border-radius:var(--r-sm);font-size:var(--text-xs);line-height:1.6;word-break:break-all}.ds-note.ok{background:var(--bg-subtle);color:var(--text-muted)}.ds-note.bad{background:var(--danger-soft);color:var(--danger)}.ds-actions{display:flex;gap:6px;flex-wrap:wrap;flex:0 0 auto}.ds-form{padding:14px 16px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-subtle)}.ds-form h4{margin:0 0 10px;font-size:var(--text-sm)}.ds-inline{display:flex;gap:8px}.ds-inline>*{flex:1;min-width:0}.dv-desc{color:var(--text-muted)}.ai-key-modal{width:560px;max-height:86vh;gap:6px}.ai-key-lead{margin:0;font-size:var(--text-xs);color:var(--text-muted);line-height:1.7}.ai-key-body{display:flex;flex-direction:column;gap:14px;padding-right:4px}.ai-key-status{padding:8px 10px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--bg-subtle);font-size:var(--text-xs);line-height:1.6}.ai-key-section h4{margin:0 0 6px;font-size:var(--text-sm);font-weight:600}.ai-key-steps{margin:0;padding-left:20px;font-size:var(--text-xs);line-height:1.8}.ai-key-steps code{font-family:var(--mono);font-size:var(--text-xs)}.ai-key-note{margin:0;font-size:var(--text-xs);color:var(--text-muted);line-height:1.7}.ai-key-form{display:flex;flex-direction:column;gap:10px}.ai-key-field{display:flex;flex-direction:column;gap:5px;font-size:var(--text-xs);color:var(--text-muted)}.ai-key-field input,.ai-key-field select{padding:8px 11px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-surface);font:inherit;font-size:var(--text-sm);color:var(--text)}.ai-key-actions{display:flex;flex-wrap:wrap;gap:8px}.ai-key-message{margin:0;font-size:var(--text-xs);line-height:1.6}.ai-key-message.good{color:var(--brand-strong)}.ai-key-message.bad{color:var(--color-warning)}.announcement-modal{width:560px;max-height:84vh;gap:10px}.announcement-section{display:flex;flex-direction:column;gap:6px}.announcement-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.announcement-head h3{margin:0;font-size:var(--text-xl)}.announcement-badge{padding:2px 8px;border-radius:999px;background:var(--bg-active);color:var(--brand-strong);font-size:var(--text-xs);font-weight:600}.announcement-badge.maintenance{background:var(--warn-soft);color:var(--warn-text)}.announcement-badge.notice{background:var(--bg-subtle);color:var(--text-muted)}.announcement-body{font-size:var(--text-sm);line-height:1.7}.announcement-body p:first-child{margin-top:0}.announcement-body ul,.announcement-body ol{padding-left:20px}.announcement-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.announcement-preview-tag{margin:0;font-size:var(--text-xs);color:var(--color-warning)}.announcement-admin{display:flex;flex-direction:column;gap:8px}.announcement-admin .admin-section-head{display:flex;align-items:center;justify-content:space-between}.announcement-admin .admin-section-head h3{margin:0;font-size:var(--text-base)}.announcement-table td.title{font-weight:500}.announcement-ops{display:flex;flex-wrap:wrap;gap:6px}.announcement-form{display:flex;flex-direction:column;gap:10px;margin-top:18px;padding-top:14px;border-top:1px solid var(--color-border)}.announcement-form h4{margin:0;font-size:var(--text-base)}.announcement-form .admin-field{display:flex;flex-direction:column;gap:5px;margin-top:0;font-size:var(--text-xs);color:var(--text-muted)}.announcement-form .admin-field input,.announcement-form .admin-field select,.announcement-form .admin-field textarea{padding:8px 11px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-surface);font:inherit;font-size:var(--text-sm);color:var(--text)}.announcement-form .admin-field textarea{resize:vertical}.admin-check{display:flex;align-items:center;gap:8px;font-size:var(--text-sm)}.announcement-form-actions{display:flex;gap:8px}button.ghost.danger{color:var(--danger)}.entry-theme{position:absolute;top:var(--space-4);right:var(--space-6);z-index:2}.theme-toggle.ui-btn{white-space:nowrap}.login-page{position:relative}.login-main{padding-top:var(--space-12)}.picker-user{flex-wrap:wrap;justify-content:flex-end;gap:var(--space-3)}.picker-topbar{min-height:64px;height:auto;gap:var(--space-4);padding-block:var(--space-3)}.picker-brand{flex-shrink:0}.picker-name,.picker-desc{overflow-wrap:anywhere}.admin-shell .admin-side{width:var(--layout-admin-sidebar);min-height:0;padding:var(--space-4) var(--space-3)}.admin-shell .admin-brand{padding:var(--space-1) var(--space-2) var(--space-6)}.admin-shell .admin-brand span{font-size:var(--text-xs)}.admin-shell .admin-tabs{flex:1;min-height:0;overflow-y:auto;gap:var(--space-4);flex-wrap:nowrap}.admin-nav-group{display:flex;flex-direction:column;gap:var(--space-1)}.admin-nav-label{padding:0 var(--space-3) var(--space-1);color:var(--color-text-secondary);font-size:var(--text-xs);font-weight:var(--weight-medium)}.admin-shell .admin-tab{flex-shrink:0;min-height:40px;height:auto;padding-block:var(--space-2)}.admin-shell .admin-side-foot{flex-shrink:0}.admin-shell .admin-topbar{min-height:80px;height:auto;gap:var(--space-4);padding:var(--space-4) var(--space-8)}.admin-breadcrumb{margin:0 0 var(--space-1);font-size:var(--text-xs);color:var(--color-text-secondary)}.admin-shell .admin-topbar-hint{color:var(--color-text-secondary)}.admin-shell .admin-body{min-height:0;padding:var(--space-6) var(--space-8) var(--space-12)}.admin-shell .admin-tab:focus-visible,.theme-toggle.ui-btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}@media (max-width: 1024px){.admin-shell .admin-side{width:var(--layout-admin-sidebar-compact)}.admin-shell .admin-body,.admin-shell .admin-topbar{padding-inline:var(--space-4)}}@media (max-width: 768px){.admin-page.admin-shell{flex-direction:column;min-width:0}.admin-shell .admin-side{width:100%;max-height:42%;padding:var(--space-2) var(--space-3);border-right:0;border-bottom:1px solid var(--color-border)}.admin-shell .admin-brand{display:none}.admin-shell .admin-tabs{gap:var(--space-2)}.admin-nav-group{flex-direction:row;flex-wrap:wrap;align-items:center}.admin-nav-label{width:100%;padding:0}.admin-shell .admin-tab{width:auto;min-height:40px;padding-inline:var(--space-2)}.admin-shell .admin-side-foot{padding-top:var(--space-1);margin-top:var(--space-2)}.admin-shell .admin-side-foot .ghost{min-height:40px;padding-block:var(--space-1)}.admin-shell .admin-topbar{min-height:72px;padding:var(--space-3)}.admin-shell .admin-topbar-hint{display:none}.admin-shell .admin-body{padding:var(--space-4) var(--space-3) var(--space-8)}.admin-shell .admin-table{min-width:var(--layout-table-min)}.admin-shell .admin-table button{white-space:nowrap}.picker-topbar{align-items:flex-start;flex-wrap:wrap}.picker-user{width:100%;justify-content:flex-start;gap:var(--space-2)}.entry-theme{top:var(--space-3);right:var(--space-4)}}.work-header{flex:none;padding:var(--space-4) var(--gutter, var(--space-6));background:var(--color-surface);border-bottom:1px solid var(--color-border)}.work-header-row{display:flex;align-items:center;gap:var(--space-4);min-width:0}.work-header-copy{flex:1;min-width:0}.work-header-eyebrow{margin:0 0 var(--space-1);font-size:var(--text-xs);color:var(--color-text-secondary)}.work-header-title{margin:0;font-size:var(--text-xl);font-weight:var(--weight-semibold);line-height:var(--leading-tight)}.work-header-description{margin-top:var(--space-2);font-size:var(--text-sm);color:var(--color-text-secondary);line-height:var(--leading-normal);overflow-wrap:anywhere}.work-header-meta{flex:none;font-size:var(--text-xs);color:var(--color-text-secondary)}.work-header-badge{display:inline-block;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);background:var(--color-surface-subtle)}.work-header-tail{margin-top:var(--space-3)}.work-state{width:100%;max-width:var(--layout-content);margin:var(--space-6) auto;padding:var(--space-6);text-align:center;color:var(--color-text-secondary)}.work-state h2{margin:0;font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--color-text)}.work-state p{margin:var(--space-2) 0 0;font-size:var(--text-sm);line-height:var(--leading-relaxed);overflow-wrap:anywhere}.work-state-action{margin-top:var(--space-4)}.work-state-spinner{display:inline-block;margin-bottom:var(--space-3)}.work-state--error{background:var(--color-danger-soft);border:1px solid var(--color-danger);border-radius:var(--radius-lg)}.work-state--error h2{color:var(--color-danger)}.work-state--compact{max-width:none;margin-block:0;padding:var(--space-3) var(--space-4);text-align:left}.work-state--compact .work-state-spinner{margin:0 var(--space-2) 0 0;vertical-align:middle}.work-state--compact h2{display:inline;font-size:var(--text-sm)}.work-chat .chat-header{display:block}.work-chat .chat-title{font-size:var(--text-xl)}.work-chat .welcome{width:100%;max-width:var(--layout-content);margin-inline:auto}.work-chat .welcome-sub,.work-chat .bubble{line-height:var(--leading-relaxed)}.work-cases .case-top{padding-bottom:0}.work-cases .case-tagline{margin:0;font-size:var(--text-sm);color:var(--color-text-secondary)}.work-cases .case-tagline b{color:var(--color-text)}.work-cases .tabs{margin-top:0}.work-cases .case-toolbar{margin-top:0;padding-block:var(--space-3);background:var(--color-surface)}.work-cases .case-search{flex:1 1 100%;max-width:none;min-width:0}.case-filters{display:flex;width:100%;flex-wrap:wrap;align-items:center;gap:var(--space-2);min-width:0}.work-cases .case-list{padding-top:var(--space-4);gap:var(--space-3)}.work-cases .case-card{flex:none;padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:none}.work-cases .case-card:hover{border-color:var(--color-accent);box-shadow:none}.work-cases .case-card-title{font-size:var(--text-lg)}.work-cases .case-card-sum{line-height:var(--leading-relaxed)}.work-cases .case-meta{color:var(--color-text-secondary)}.work-cases .prow{min-width:0}.work-cases .pfoot{line-height:var(--leading-relaxed)}.work-deliverables{min-width:0}.work-deliverables .dv-side{background:var(--color-surface)}.work-deliverables .dv-side-head{padding:var(--space-4) var(--space-3)}.work-deliverables .dv-title{flex-shrink:0}.work-deliverables .dv-filter-label,.work-deliverables .dv-item-meta,.work-deliverables .dv-item-desc,.work-deliverables .dv-head-meta{color:var(--color-text-secondary)}.work-deliverables .dv-item-title{font-weight:var(--weight-medium);overflow-wrap:anywhere}.work-deliverables .dv-main{padding:0}.work-deliverables .dv-main>:not(.work-header):not(.work-state){margin-inline:var(--space-4)}.work-deliverables .dv-main>.work-state{width:calc(100% - var(--space-8))}.work-deliverables .dv-head{padding:var(--space-3) var(--space-4);margin-top:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface)}.work-deliverables .dv-head-meta{font-size:var(--text-sm);line-height:var(--leading-relaxed)}.work-deliverables .dv-reader{margin-bottom:var(--space-4)}.work-deliverables .dv-body-md{font-size:var(--text-base);line-height:var(--leading-relaxed);overflow-wrap:anywhere}.work-deliverables .dv-body-md>:is(p,ul,ol,blockquote){max-width:var(--layout-content)}@media (max-width: 768px){.work-header{padding-inline:var(--space-3)}.work-header-row{flex-wrap:wrap;gap:var(--space-2)}.work-header-copy{flex-basis:60%}.work-state{padding:var(--space-4) var(--space-3)}.work-cases .case-filter--dates{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);width:100%;min-width:0}.work-cases .case-filter--dates>span:first-child{grid-column:1 / -1}.work-cases .case-filter--dates input{min-width:0;width:100%}.work-cases .case-filter select{min-width:0;max-width:100%}.work-deliverables .dv-side{max-height:44vh;max-height:44dvh}.work-deliverables .dv-list{flex:1 1 auto;min-height:0;max-height:none}.work-deliverables .dv-main>:not(.work-header):not(.work-state){margin-inline:var(--space-3)}.work-deliverables .dv-main>.work-state{width:calc(100% - var(--space-6))}}.work-deliverables .dv-filters3 select,.work-deliverables .dv-search,.work-deliverables .dv-note textarea,.work-deliverables .dv-edit textarea{min-width:0;max-width:100%;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font:inherit;font-size:var(--text-sm);padding:var(--space-2) var(--space-3)}.work-deliverables .dv-filters3 select,.work-deliverables .dv-search{min-height:36px;width:100%}.work-deliverables .dv-search{margin-bottom:var(--space-2)}.work-deliverables .dv-note textarea,.work-deliverables .dv-edit textarea{line-height:var(--leading-relaxed);resize:vertical}.work-deliverables :is(.dv-filters3 select,.dv-search,.dv-note textarea,.dv-edit textarea):focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.work-deliverables :is(.dv-search,.dv-note textarea,.dv-edit textarea)::placeholder{color:var(--color-text-secondary)}.admin-shell .admin-body{scroll-padding-block:var(--space-4)}.admin-shell :where(.admin-form,.admin-config,.admin-tabpanel,.admin-field){min-width:0}.admin-shell .admin-form{padding:var(--space-6);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.admin-shell .admin-form h3{margin:0;font-size:var(--text-lg)}.admin-shell .admin-form h4{margin-block:var(--space-4) var(--space-2)}.admin-shell .admin-field{margin-top:var(--space-4)}.admin-shell .admin-field>label{display:block;margin-bottom:var(--space-1)}.admin-shell .admin-hint{color:var(--color-text-secondary);line-height:var(--leading-normal);overflow-wrap:anywhere}.admin-shell .admin-grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--space-4)}:is(.admin-shell,.modal,.ui-modal,.fx-dialog,.wizard) :where(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=hidden]),select,textarea){min-width:0;max-width:100%;min-height:40px;box-sizing:border-box;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font:inherit}:is(.admin-shell,.modal,.ui-modal,.fx-dialog,.wizard) :where(textarea){line-height:var(--leading-normal);resize:vertical}.admin-shell .admin-field :where(input:not([type=checkbox]):not([type=radio]),select,textarea){width:100%}:is(.admin-shell,.modal,.ui-modal) :where(input,textarea)::placeholder{color:var(--color-text-tertiary);opacity:1}:is(.admin-shell,.modal,.ui-modal) :where(input,select,textarea):focus-visible{border-color:var(--color-accent);outline:2px solid var(--color-accent);outline-offset:2px}:is(.admin-shell,.modal,.ui-modal) :where(input,select,textarea)[aria-invalid=true]{border-color:var(--color-danger)}:is(.admin-shell,.modal,.ui-modal) :where(input,select,textarea):disabled{opacity:.65;cursor:not-allowed}:is(.admin-shell,.modal,.ui-modal) :where(input[type=checkbox],input[type=radio]){accent-color:var(--color-accent-solid);flex-shrink:0}:is(.admin-shell,.modal,.ui-modal,.fx-dialog) button:not(.admin-problem-jump):not(.admin-section-head){min-height:40px}.admin-shell button:disabled{cursor:not-allowed}.admin-shell .admin-subtabs{flex-wrap:wrap;gap:var(--space-2)}.admin-shell .admin-subtab{white-space:nowrap;padding-inline:var(--space-3)}.admin-shell .admin-subtab:hover:not(:disabled){background:var(--color-surface-hover);color:var(--color-text)}.admin-shell .admin-subtab.active,.admin-shell .admin-subtab.active:hover:not(:disabled){background:var(--color-accent-soft);color:var(--color-accent);border-color:var(--color-accent)}.admin-shell .admin-subtab.has-error{color:var(--color-danger);border-color:var(--color-danger)}.admin-shell .admin-subtab:disabled{background:var(--color-surface-subtle);color:var(--color-text-tertiary)}.admin-shell .admin-section-head:hover:not(:disabled){background:var(--color-surface-hover)}.admin-shell .admin-tabpanel{padding-top:var(--space-1)}.admin-shell .admin-section{margin-top:var(--space-6)}.admin-shell .admin-section-head{min-height:40px;gap:var(--space-2);flex-wrap:wrap}.admin-shell .admin-footer{flex-wrap:wrap;gap:var(--space-2);padding-top:var(--space-4);border-top:1px solid var(--color-border)}.admin-shell .admin-footer>.admin-hint{flex:1 1 280px;margin:0}.admin-editor-head{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:var(--space-3);margin-bottom:var(--space-4)}.admin-editor-head .admin-hint{margin-bottom:0}.admin-draft{display:inline-flex;flex-shrink:0;font-size:var(--text-xs);padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);color:var(--color-text-secondary);background:var(--color-surface-subtle)}.admin-draft.is-dirty{color:var(--color-warning-text);background:var(--color-warning-soft)}.admin-save-scope{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3) var(--space-4);border:1px solid var(--color-accent-border);border-radius:var(--radius-sm);background:var(--color-accent-soft);color:var(--color-text-secondary);font-size:var(--text-sm)}.admin-save-scope strong{color:var(--color-accent);font-weight:var(--weight-medium)}.admin-shell .admin-problem-bar{margin-top:var(--space-4);border-radius:var(--radius-sm)}.admin-shell .admin-table th{background:var(--color-surface-subtle);font-size:var(--text-xs)}.admin-shell .admin-table :is(th,td){padding:var(--space-3)}.admin-shell .admin-table tbody tr:hover>td{background-color:var(--color-surface-hover)}.admin-shell .admin-table .admin-row-actions{flex-wrap:wrap}.admin-shell :where(.admin-output,.admin-mono){overflow-wrap:anywhere}.admin-shell .admin-output{max-width:100%;overflow-x:auto}:is(.modal-backdrop,.ui-modal-backdrop){padding:var(--space-4);box-sizing:border-box}:is(.modal,.ui-modal,.fx-dialog){max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);box-sizing:border-box;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-overlay)}.modal{padding:var(--space-6);gap:var(--space-4)}.modal>:where(h3,.modal-search,.modal-foot){flex-shrink:0}.modal h3{font-size:var(--text-lg);line-height:var(--leading-tight)}.modal-body{min-height:0;overscroll-behavior:contain}.modal-row{min-height:40px;box-sizing:border-box;padding:var(--space-2);overflow-wrap:anywhere}.modal-foot{flex-shrink:0;flex-wrap:wrap;padding-top:var(--space-4);border-top:1px solid var(--color-border)}.ui-modal__foot{flex-wrap:wrap}.fx-dialog{overflow:auto}@media (max-width: 768px){.admin-shell .admin-form{padding:var(--space-4)}.admin-shell .admin-grid-2{grid-template-columns:minmax(0,1fr)}.admin-shell .admin-inline-form{gap:var(--space-2)}.admin-shell .admin-inline-form>:where(input,select){flex:1 1 160px}.admin-save-scope{padding:var(--space-3)}.modal{padding:var(--space-4)}.modal .admin-grid-2{grid-template-columns:minmax(0,1fr)}}:is(.drawer,.wizard,.dv-create-dialog,.dv-settings-dialog,.dv-rerun-dialog,.fx-dialog){outline:none}:is(.drawer,.wizard){box-sizing:border-box;background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-overlay)}.drawer{width:min(860px,100vw);max-width:100vw;border-left:1px solid var(--color-border)}.drawer :where(.drawer-head,.drawer-foot){padding:var(--space-4) var(--space-6)}.drawer .drawer-body{padding:var(--space-6) var(--space-6);overscroll-behavior:contain}.drawer .drawer-title{overflow-wrap:anywhere;font-size:var(--text-xl)}.drawer .drawer-foot{flex-wrap:wrap}.drawer :where(.anchor-row,.case-meta){flex-wrap:wrap;overflow-wrap:anywhere}.drawer :where(.markdown,.raw-messages){min-width:0;overflow-wrap:anywhere}:is(.drawer,.wizard) button{min-height:40px}.wizard-backdrop{padding:var(--space-4);box-sizing:border-box}.wizard{width:1040px;max-width:100%;height:min(800px,calc(100dvh - 32px));max-height:calc(100dvh - 32px);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.wizard .wizard-head{padding:var(--space-4) var(--space-6);gap:var(--space-3)}.wizard .wizard-body{grid-template-columns:repeat(2,minmax(0,1fr))}.wizard .pane{min-width:0;padding:var(--space-6);overscroll-behavior:contain;overflow-wrap:anywhere}.wizard .pane+.pane{background:var(--color-surface-subtle)}.wizard .wizard-foot{flex-wrap:wrap;padding:var(--space-4) var(--space-6);gap:var(--space-2)}.wizard .wizard-foot>.note{flex:1 1 300px;line-height:var(--leading-normal)}.wizard .wizard-foot>.spacer{display:none}.wizard .gen-row{flex-wrap:wrap;gap:var(--space-2)}.wizard :where(.preview-box,.summary-preview){min-width:0;overflow-wrap:anywhere}.wizard :where(input[type=text],textarea){width:100%}.wizard :where(.field-hint,.note){color:var(--color-text-secondary)}.wizard .session-cases{max-height:18dvh;overflow:auto;flex-shrink:0}.wizard .wizard-load-error{padding:var(--space-3) var(--space-6);flex-shrink:0}.wizard>.error-bar{flex-shrink:0;max-height:20dvh;overflow:auto;margin:var(--space-2) var(--space-6)}.wizard .seg button:hover:not(:disabled){background:var(--color-surface-hover);color:var(--color-text)}.wizard .seg button.on,.wizard .seg button.on:hover:not(:disabled){background:var(--color-accent-soft);color:var(--color-accent)}:is(.wizard,.fx-dialog) :where(input,select,textarea):focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}:is(.dv-create-dialog,.dv-settings-dialog,.dv-rerun-dialog) :where(h3,.admin-hint,.error-bar){overflow-wrap:anywhere}:is(.dv-create-dialog,.dv-settings-dialog) .admin-field>:where(input,select,textarea){width:100%}.dialog-load-error{margin-top:var(--space-2)}.dv-create-jobs .dv-create-job{align-items:flex-start;flex-wrap:wrap;padding-block:var(--space-2)}.dv-create-jobs .dv-create-job-name{max-width:100%;overflow-wrap:anywhere}.dv-create-jobs .dv-create-job-state{white-space:normal;overflow-wrap:anywhere;min-width:min(180px,100%)}.dv-rerun-dialog .dv-prompt-text{max-height:35dvh;max-width:100%;overflow:auto;overscroll-behavior:contain}.fx-dialog{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-6);overflow:hidden}.fx-dialog .fx-h{flex-shrink:0;overflow-wrap:anywhere}.fx-dialog .fx-h h3{font-size:var(--text-lg);line-height:var(--leading-tight)}.fx-dialog .fx-body{min-height:0;overflow:auto;overscroll-behavior:contain;overflow-wrap:anywhere}.fx-dialog .fx-note{font-size:var(--text-sm);line-height:var(--leading-normal)}.fx-dialog .fx-hint{margin-bottom:var(--space-1)}.fx-dialog .modal-foot{margin:0}@media (max-width: 768px){.drawer :where(.drawer-head,.drawer-body,.drawer-foot){padding:var(--space-4)}.wizard .wizard-head{flex-wrap:wrap;padding:var(--space-3) var(--space-4);gap:var(--space-2)}.wizard .steps{gap:var(--space-2)}.wizard .wizard-body{display:block;overflow:auto;overscroll-behavior:contain}.wizard .pane{min-height:auto;overflow:visible;padding:var(--space-4)}.wizard .pane+.pane{border-left:0;border-top:1px solid var(--color-border)}.wizard .wizard-foot{padding:var(--space-3) var(--space-4)}.wizard .wizard-foot>.note{flex-basis:100%}.fx-dialog{padding:var(--space-4)}}
