/* 欢乐巧匠 workspace — one stylesheet.
   unslop by Damir Sokolovsky / @heydamir, CC BY 4.0 https://heydamir.design/unslop
   Login: finesse · graphite architectural planes / warm grazing light. */
@font-face{font-family:"HLQJ UI Sans";src:url("/assets/fonts/hlqj-ui-sans.woff2?v=e53f1621a20e") format("woff2");font-style:normal;font-weight:400 600;font-display:swap}

/* Theme and shared controls */
:root{
 --font-ui:"HLQJ UI Sans","Noto Sans SC","Microsoft YaHei","PingFang SC",system-ui,sans-serif;
 --bg:#f3f5f7;--surface:#fcfcfd;--raised:#eceff2;--text:#202326;--secondary:#5c6671;--muted:#626d78;--line:rgba(32,35,38,.11);
 --accent:#ffb000;--accent-hover:#f5a800;--accent-ink:#9e5900;--accent-tint:#fff0ca;--on-accent:#202326;
 --positive:#26704c;--positive-tint:#e9f3ec;--danger:#ad433b;--danger-tint:#faebe8;--warn:#946500;
 --sidebar:#222527;--sidebar-text:#f0f3f5;--sidebar-muted:#aeb8c1;--sidebar-raised:#2d3236;--sidebar-active:#353b40;--sidebar-line:rgba(240,243,245,.12);
 --status-ready:#46db8d;--status-pending:#ffc75c;--status-error:#ff8078;--status-offline:#a2afbd;
 --question:#e9edf0;--input:#fcfcfd;--focus:#9e5900;--scrollbar:#bac2ca;--hit:#fff0ca;--scrim:rgba(20,24,28,.38);
 --shadow:0 2px 8px rgba(26,33,39,.045);--shadow-lg:0 20px 60px rgba(26,33,39,.15);--ease:cubic-bezier(.22,1,.36,1);
 --auth-light-deep:#0c1115;--auth-light-base:#161e23;--auth-light-wall:#2b353b;--auth-light-face:#383c3c;--auth-light-edge:#71807f;--auth-light-reflection:#69553a;--auth-light-softgold:#f8ddab;
 font-family:var(--font-ui);font-size:15px;font-synthesis:none;color:var(--text);color-scheme:light
}
:root[data-theme="dark"]{
 --bg:#171a1e;--surface:#20242a;--raised:#2a3038;--text:#eff2f6;--secondary:#afb8c4;--muted:#98a4b3;--line:rgba(239,242,246,.12);
 --accent:#ffb000;--accent-hover:#ffc044;--accent-ink:#ffbe45;--accent-tint:#3d3320;--on-accent:#202326;
 --positive:#96cba8;--positive-tint:#253b30;--danger:#f0a39c;--danger-tint:#402c2c;--warn:#efc47b;
 --question:#303740;--input:#252b32;--focus:#ffbe45;--scrollbar:#53606c;--hit:#3d3320;--scrim:rgba(7,10,14,.62);
 --shadow:none;--shadow-lg:0 20px 60px rgba(7,10,14,.32);color-scheme:dark
}
*,*::before,*::after{box-sizing:border-box}
html{min-height:100%}
body{margin:0;min-width:280px;background:var(--bg);color:var(--text);font-family:var(--font-ui);font-size:15px;line-height:1.7}
button,input,select,textarea{font:inherit}
button,a,summary{touch-action:manipulation}
button{cursor:pointer}
button:disabled,input:disabled,select:disabled,textarea:disabled{cursor:not-allowed;opacity:.52}
a{color:var(--accent-ink);text-underline-offset:4px}
h1,h2,h3,h4{min-width:0;font-weight:500;overflow-wrap:anywhere}
strong,b{font-weight:600}
small,time,.source-meta,.source-path,.result-meta{font-variant-numeric:tabular-nums}
[hidden]{display:none!important}
::selection{background:var(--accent);color:var(--on-accent)}
button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--focus);outline-offset:3px}
svg.icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;flex:none}
.sr-only,.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.skip-link{position:fixed;z-index:200;top:8px;left:8px;transform:translateY(-160%);padding:12px 16px;border-radius:8px;background:var(--surface);color:var(--text);box-shadow:var(--shadow-lg)}
.skip-link:focus{transform:none}
.primary-button,.secondary-button,.message-delete-confirm-button,.message-delete-cancel{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;margin:0;padding:10px 18px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--text);font-size:15px;font-weight:500;line-height:22px;text-decoration:none;transition:background 150ms var(--ease),border-color 150ms var(--ease),color 150ms var(--ease)}
.primary-button{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}
.primary-button:hover:not(:disabled){border-color:var(--accent-hover);background:var(--accent-hover);color:var(--on-accent)}
.secondary-button:hover:not(:disabled),.message-delete-cancel:hover:not(:disabled){background:var(--raised)}
.text-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:8px 12px;border:0;border-radius:8px;background:transparent;color:var(--secondary);font-size:14px;line-height:24px;text-decoration:none}
.text-button:hover:not(:disabled){color:var(--text);background:var(--raised)}
.icon-button{display:inline-flex;align-items:center;justify-content:center;flex:none;width:36px;height:36px;padding:9px;border:0;border-radius:9px;background:transparent;color:var(--secondary)}
.icon-button:hover:not(:disabled){background:var(--raised);color:var(--text)}
.theme-switch{display:inline-flex;align-items:center;flex:none;gap:2px;padding:3px;border:1px solid var(--line);border-radius:12px;background:var(--raised)}
.theme-option{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:70px;height:34px;padding:0 10px;border:0;border-radius:8px;background:transparent;color:var(--secondary);font-size:13px;line-height:1.2;white-space:nowrap}
.theme-option:hover{background:var(--surface);color:var(--text)}
.theme-option[aria-pressed="true"]{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}
.theme-option[aria-pressed="true"] .icon{color:var(--accent-ink)}
.panel{min-width:0;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:var(--shadow)}
.empty-message{margin:0;padding:28px 24px;color:var(--secondary);font-size:15px;line-height:1.85}
.account-help,.publication-help{color:var(--secondary);font-size:14px;line-height:1.85}
.account-status,.publication-status{margin:0;color:var(--secondary);font-size:14px;line-height:1.85}
.account-status:empty,.publication-status:empty,.conversation-status:empty{display:none}
.account-error,.publication-error{color:var(--danger)}
.account-status.account-error{padding:12px 16px;border:1px solid color-mix(in srgb,var(--danger) 28%,var(--line));border-radius:10px;background:var(--danger-tint)}
.account-warning{padding:12px 16px;border-left:2px solid var(--accent);background:var(--raised);color:var(--secondary);font-size:14px;line-height:1.8}
.account-notice{flex:none;margin:12px 32px 0;padding:12px 16px;border:1px solid var(--line);border-radius:10px;background:var(--raised);color:var(--secondary);font-size:14px;line-height:1.8}

/* Login and invitation activation */
.account-access.auth-page{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.04fr);min-height:100dvh;margin:0;background:var(--surface);color:var(--text)}
.auth-brand-panel{position:relative;isolation:isolate;display:flex;flex-direction:column;justify-content:flex-start;gap:0;min-width:0;overflow:hidden;padding:40px 48px;background:var(--auth-light-base);border-right:1px solid var(--sidebar-line)}
.auth-brand-panel .auth-brand{position:relative;z-index:1;display:flex;align-items:center;align-self:flex-start;flex:none;gap:14px;color:var(--sidebar-text);text-decoration:none}
.auth-brand-panel .auth-brand img{display:block;width:36px;height:48px;object-fit:contain;flex:none}
.auth-brand-panel .auth-brand strong{display:block;font-size:25px;line-height:1.4;font-weight:500;color:var(--sidebar-text)}
.auth-brand-panel .auth-brand small{display:block;margin-top:4px;font-size:10px;line-height:1.6;letter-spacing:.08em;color:var(--sidebar-muted)}
.auth-title-block{position:relative;z-index:1;display:flex;flex:1;flex-direction:column;align-items:flex-start;justify-content:center;min-height:360px;padding:0 0 144px}
.auth-title-kicker{display:flex;align-items:center;gap:12px;margin:0 0 24px;color:var(--sidebar-muted);font-size:14px;line-height:24px;font-weight:400}
.auth-title-kicker::before{content:"";display:block;width:28px;height:2px;background:var(--accent)}
.auth-title-block h2{min-width:0;margin:0;color:var(--sidebar-text);font-size:clamp(44px,4.5vw,64px);font-weight:500;line-height:1.2;letter-spacing:-.02em;overflow-wrap:anywhere}
.auth-title-block h2>span{display:inline-block;margin-top:8px;color:var(--accent)}
.auth-brand-relief{position:absolute;z-index:0;inset:0;overflow:hidden;pointer-events:none}
.auth-light-scene{position:absolute;inset:0;display:block;width:100%;height:100%;overflow:hidden}
.access-content.auth-content{display:flex;align-items:center;justify-content:center;min-width:0;padding:48px clamp(32px,5vw,80px);background:var(--surface)}
.auth-content .auth-card{width:100%;max-width:420px;min-width:0}
.access-content h1{margin:0;color:var(--text);font-size:32px;line-height:1.45;font-weight:500}
.access-tabs{display:flex;gap:28px;margin:28px 0 24px;border-bottom:1px solid var(--line)}
.access-tabs button{position:relative;min-height:48px;margin:0;padding:12px 0;border:0;border-radius:0;background:transparent;color:var(--secondary);font-size:15px;line-height:24px;white-space:nowrap}
.access-tabs button[aria-pressed="true"]{color:var(--text);font-weight:500}
.access-tabs button[aria-pressed="true"]::after{position:absolute;right:0;bottom:-1px;left:0;height:3px;background:var(--accent);content:""}
.auth-content .account-status{margin-bottom:20px}
.account-form,.account-field-group{display:flex;flex-direction:column;gap:20px;margin:0}
.account-field{display:flex;flex-direction:column;gap:8px;min-width:0}
.account-field label{margin:0;color:var(--text);font-size:15px;line-height:1.6;font-weight:500}
.account-field input{width:100%;min-width:0;height:48px;margin:0;padding:11px 14px;border:1px solid var(--line);border-radius:10px;background:var(--input);color:var(--text);font-size:16px;line-height:24px;box-shadow:none;transition:border-color 150ms var(--ease)}
.account-field input::placeholder{color:var(--muted);opacity:1}
.account-field input:hover:not(:disabled){border-color:color-mix(in srgb,var(--text) 26%,transparent)}
.account-field input:focus{outline:2px solid var(--accent-tint);outline-offset:2px;border-color:var(--accent-ink)}
.account-field input[aria-invalid="true"]{border-color:var(--danger);background:var(--danger-tint)}
.account-field small{color:var(--secondary);font-size:13px;line-height:1.8}
.auth-content .account-field input{height:52px}
.auth-content .account-form>.primary-button,.auth-content .account-form>.secondary-button{width:100%;min-height:52px;margin-top:4px;font-size:16px}
.auth-content .account-help{margin:0 0 20px;font-size:14px}
.activation-details{margin-top:24px;padding-top:24px;border-top:1px solid var(--line)}
.activation-details h2{margin:0 0 16px;font-size:21px;line-height:1.5}
.activation-details .account-help{margin:4px 0}
.activation-details .account-form{margin-top:20px}
.access-footnote{margin:28px 0 0;padding-top:20px;border-top:1px solid var(--line);color:var(--secondary);font-size:14px;line-height:1.8}
.auth-page .theme-switch{display:none;min-height:0;margin:0;padding:0}

/* Workspace shell and navigation */
.app-shell{--sidebar-width:256px;--source-width:416px;position:relative;display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr);gap:12px;width:100%;height:100dvh;min-height:0;padding:12px;overflow:hidden;background:var(--surface)}
.app-shell[data-sidebar-collapsed="true"]{--sidebar-width:0px;grid-template-columns:minmax(0,1fr)}
.app-shell[data-sidebar-collapsed="true"] .sidebar{display:none}
.sidebar{display:flex;flex-direction:column;min-width:0;min-height:0;padding:20px 16px 16px;overflow:hidden;border:1px solid var(--sidebar-line);border-radius:20px;background:var(--sidebar);color:var(--sidebar-text)}
.sidebar-heading{display:flex;align-items:center;flex:none;gap:8px;min-height:44px}
.sidebar-heading .sidebar-brand{flex:1;min-width:0;gap:10px;padding:0}
.sidebar-collapse{width:44px;height:44px;color:var(--sidebar-muted)}
.sidebar-collapse:active:not(:disabled){background:var(--sidebar-active);color:var(--sidebar-text)}
.sidebar-brand{display:flex;align-items:center;flex:none;gap:12px;margin:0;padding:0 8px;color:var(--sidebar-text);text-decoration:none}
.sidebar-brand-logo{display:block;width:32px;height:44px;object-fit:contain;flex:none}
.sidebar-brand-copy{min-width:0}
.sidebar-brand-name{display:block;color:var(--sidebar-text);font-size:22px;line-height:1.4;font-weight:500}
.sidebar-brand-roman{display:block;margin-top:3px;color:var(--sidebar-muted);font-size:10px;line-height:1.5;letter-spacing:.04em;white-space:nowrap}
.nav-list{display:flex;flex-direction:column;gap:4px}
.chat-primary-nav{flex:none;margin:24px 0 20px}
.nav-item{display:flex;align-items:center;gap:12px;width:100%;min-height:40px;margin:0;padding:8px 12px;border:0;border-radius:9px;background:transparent;color:var(--sidebar-muted);font-size:15px;line-height:24px;text-align:left}
.nav-item:hover:not(:disabled),.nav-item.active{background:var(--sidebar-raised);color:var(--sidebar-text)}
.nav-item.active svg{color:var(--accent)}
.nav-item svg,.conversation-history-toggle svg,.knowledge-label svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;flex:none}
.chat-primary-nav .nav-item,.chat-primary-nav .nav-item.active{min-height:44px;padding:10px 16px;border:1px solid var(--accent);border-radius:10px;background:var(--accent);color:var(--on-accent);font-weight:500}
.chat-primary-nav .nav-item svg{color:inherit}
.chat-primary-nav .nav-item:hover:not(:disabled){border-color:var(--accent-hover);background:var(--accent-hover)}
.nav-count{margin-left:auto;color:var(--sidebar-muted);font-size:12px;font-variant-numeric:tabular-nums}
.conversation-history{display:flex;flex-direction:column;flex:1;min-height:0}
.conversation-history-toggle{display:flex;align-items:center;justify-content:space-between;flex:0 0 auto;gap:8px;width:100%;min-height:44px;padding:10px 12px;border:0;border-radius:9px;background:transparent;color:var(--sidebar-muted);font-size:15px;line-height:24px;text-align:left}
.conversation-history-toggle:hover{color:var(--sidebar-text)}
.conversation-history-toggle svg{transition:transform 150ms var(--ease)}
.conversation-history[data-open="false"]{flex:0 0 auto;min-height:44px}
.conversation-history[data-open="false"] .conversation-history-body{display:none}
.conversation-history[data-open="false"] .conversation-history-toggle svg{transform:rotate(-90deg)}
.conversation-history-body{display:flex;flex-direction:column;flex:1;min-height:0}
.conversation-list{flex:1;min-height:0;overflow:auto;scrollbar-width:thin;scrollbar-color:#53606a transparent}
.conversation-status,.conversation-empty{margin:0 12px 8px;color:var(--sidebar-muted);font-size:13px;line-height:1.8}
.conversation-item{display:flex;flex-direction:column;gap:4px;width:100%;min-height:44px;margin:0 0 4px;padding:10px 12px;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--sidebar-muted);text-align:left}
.conversation-item:hover:not(:disabled){background:var(--sidebar-raised);color:var(--sidebar-text)}
.conversation-item.active{border-color:color-mix(in srgb,var(--accent) 28%,transparent);background:var(--sidebar-active);color:var(--sidebar-text)}
.conversation-title{display:block;width:100%;overflow:hidden;font-size:15px;line-height:24px;text-overflow:ellipsis;white-space:nowrap}
.sidebar .conversation-more{flex:none;width:100%;color:var(--sidebar-muted);font-size:13px}
.sidebar .conversation-more:hover{background:var(--sidebar-raised);color:var(--sidebar-text)}
.knowledge-management{flex:none;margin-top:16px;padding-top:12px;border-top:1px solid var(--sidebar-line)}
.conversation-history[data-open="false"]~.knowledge-management{margin-top:auto}
.knowledge-label{display:none}
.sidebar-model-state{display:flex;align-items:center;justify-content:space-between;flex:none;gap:12px;margin:16px 12px;color:var(--sidebar-muted);font-size:13px;line-height:24px}
.model-status-indicator{display:inline-block;flex:none;width:12px;height:12px;border:2px solid var(--sidebar);border-radius:50%;color:var(--status-offline);background:currentColor;box-shadow:0 0 0 3px color-mix(in srgb,currentColor 18%,transparent)}
.model-status-indicator[data-state="connected"],.model-status-indicator[data-state="ready"]{color:var(--status-ready)}
.model-status-indicator[data-state="pending"],.model-status-indicator[data-state="configured"],.model-status-indicator[data-state="unverified"]{color:var(--status-pending)}
.model-status-indicator[data-state="error"],.model-status-indicator[data-state="unavailable"]{color:var(--status-error)}
.account-identity{display:grid;grid-template-columns:36px minmax(0,1fr) 44px;align-items:center;flex:none;gap:12px;margin-top:0;padding:16px 8px 0;border-top:1px solid var(--sidebar-line)}
.account-avatar{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid var(--sidebar-line);border-radius:50%;background:var(--sidebar-raised);color:var(--sidebar-text);font-size:13px}
.account-info{min-width:0}
.identity-meta{overflow:hidden;margin:0;color:var(--sidebar-muted);font-size:13px;line-height:1.65;text-overflow:ellipsis;white-space:nowrap}
#current-user{color:var(--sidebar-text);font-size:17px;font-weight:500}
.sidebar .logout-button{min-width:36px;min-height:36px;padding:6px;color:var(--sidebar-muted);font-size:13px}
.sidebar .logout-button:hover{background:var(--sidebar-raised);color:var(--sidebar-text)}
.work-area{display:flex;flex-direction:column;gap:12px;min-width:0;min-height:0;background:transparent}
.workspace-header{display:flex;align-items:center;justify-content:space-between;flex:none;gap:20px;min-height:52px;padding:0 20px;background:transparent}
.breadcrumb{display:flex;align-items:center;gap:12px;min-width:0;color:var(--secondary);font-size:15px;line-height:1.5}
#view-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.header-actions{display:flex;align-items:center;flex:none;gap:16px}
.header-actions>.secondary-button{font-size:14px}
.menu-toggle{display:none;align-items:center;justify-content:center;flex:none;width:44px;height:44px;padding:10px;border:0;border-radius:9px;background:transparent;color:var(--secondary)}
.menu-toggle:hover{background:var(--raised);color:var(--text)}
.app-shell[data-sidebar-collapsed="true"] .menu-toggle{display:inline-flex}
.sidebar-menu-icon{display:none}
.sidebar-backdrop{display:none}
#main-content{display:flex;flex-direction:column;flex:1;min-width:0;min-height:0;overflow:auto;border:1px solid var(--line);border-radius:20px;background:var(--bg);scrollbar-color:var(--scrollbar) transparent}
.app-shell[data-view="chat"] #main-content{overflow:hidden}
.app-shell[data-view="chat"][data-chat-empty="true"] #main-content{overflow:auto}
.document-open-link{display:inline-flex;align-items:center;max-width:100%;min-height:44px;color:inherit;font:inherit;font-weight:inherit;text-decoration-color:color-mix(in srgb,var(--secondary) 35%,transparent);text-underline-offset:4px}
.document-open-link:active{color:var(--accent-ink)}
@media(hover:hover){.document-open-link:hover{color:var(--accent-ink);text-decoration-color:currentColor}}

/* Conversation, composer and source citations */
#chat-view{--rabbit-width:clamp(220px,24vw,300px);--rabbit-baseline:.70625;display:flex;flex-direction:column;flex:1;width:100%;max-width:980px;min-height:0;margin:0 auto;padding:32px 44px 20px}
.welcome{flex:none;margin:auto 0 24px;padding:0;text-align:center}
.welcome h1{margin:0;color:var(--text);font-size:38px;font-weight:500;line-height:1.4;letter-spacing:0}
.welcome p{margin:16px 0 0;color:var(--secondary);font-size:16px;line-height:1.8}
.empty-company{padding:12px 16px;border-left:2px solid var(--accent);background:var(--raised);font-size:14px!important}
#empty-upload-button{margin-top:16px}
.messages{display:flex;flex-direction:column;flex:1;min-width:0;min-height:0;overflow:auto;padding:0 16px 8px 20px;scrollbar-width:thin;scrollbar-color:var(--scrollbar) transparent;overscroll-behavior:contain}
.messages:empty{display:none}
.account-message{flex:none;min-width:0;margin:0 0 36px;padding:0;border:0;background:transparent}
.message-question,.message-answer{position:relative;display:flex;flex-direction:column;min-width:0}
.message-question{align-items:flex-end}
.account-question{max-width:88%;margin:0;padding:12px 18px;border-radius:16px 16px 5px 16px;background:var(--question);color:var(--text);font-size:17px;font-weight:400;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}
.message-answer{margin-top:28px;color:var(--text);font-size:17px;line-height:1.95}
.result-label{position:relative;display:block;align-self:flex-start;width:auto;min-height:0;margin:0 0 16px;padding:0;border:0;border-radius:0;background:transparent;color:var(--secondary);font-size:17px;font-weight:400;line-height:1.9}
.result-label::before{position:absolute;top:calc(.95em - 2px);left:-17px;width:5px;height:5px;border-radius:50%;background:var(--muted);content:""}
.result-label.success::before{background:var(--positive)}
.result-label.partial::before,.result-label.clarification::before{background:var(--warn)}
.result-label.error::before{background:var(--danger)}
.answer-text{margin:0;color:var(--text);font-size:17px;font-weight:400;line-height:1.95;white-space:pre-wrap;overflow-wrap:anywhere}
.answer-text strong{font-weight:600}
.answer-markdown{white-space:normal}
.answer-markdown p{margin:0 0 14px;white-space:pre-line}
.answer-markdown h3,.answer-markdown h4,.answer-markdown h5,.answer-markdown h6{margin:20px 0 8px;color:var(--text);font-weight:600;line-height:1.6}
.answer-markdown h3{font-size:20px}.answer-markdown h4{font-size:18px}.answer-markdown h5,.answer-markdown h6{font-size:17px}
.answer-markdown ul,.answer-markdown ol{margin:8px 0 16px;padding-inline-start:26px}
.answer-markdown li{padding-inline-start:3px}.answer-markdown li+li{margin-top:5px}
.answer-markdown>:first-child{margin-top:0}.answer-markdown>:last-child{margin-bottom:0}
.inline-source-link{position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:24px;margin:0 3px;padding:0 3px;border:0;border-radius:5px;background:var(--accent-tint);background:color-mix(in srgb,var(--accent) 9%,var(--surface));color:var(--accent-ink);font-size:13px;font-weight:500;line-height:24px;text-decoration:none;vertical-align:baseline}
.inline-source-link:active{background:var(--accent-tint);color:var(--accent-ink)}
@media(hover:hover){.inline-source-link:hover{background:var(--accent-tint);background:color-mix(in srgb,var(--accent) 17%,var(--surface));color:var(--accent-ink);text-decoration:underline;text-underline-offset:3px}}
.answer-sources{margin:16px 0 0;padding:0;border:0;border-radius:0;background:transparent}
.answer-sources>summary{position:relative;display:block;width:fit-content;min-height:40px;padding:6px 0;color:var(--secondary);font-size:17px;line-height:1.9;list-style:none;cursor:pointer}
.answer-sources>summary::-webkit-details-marker{display:none}
.answer-sources>summary::before{position:absolute;top:17px;left:-16px;width:0;height:0;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:5px solid var(--muted);content:"";transition:transform 150ms var(--ease)}
.answer-sources[open]>summary::before{transform:rotate(90deg)}
.answer-sources>summary:hover{color:var(--accent-ink);text-decoration:underline;text-underline-offset:4px}
.source-item{min-width:0;margin:0;padding:20px 0;border-top:1px solid var(--line);font-size:15px;line-height:1.9}
.source-item h3{margin:0 0 8px;color:var(--text);font-size:16px;font-weight:500;line-height:1.6}
.source-path,.source-meta{margin:4px 0;color:var(--muted);font-size:13px;line-height:1.8;overflow-wrap:anywhere}
.source-excerpt{margin:12px 0;padding:0 0 0 16px;border-left:2px solid var(--line);color:var(--secondary);font-size:15px;line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere}
.source-open-link{display:inline-flex;align-items:center;gap:8px;min-height:44px;color:var(--accent-ink);font-size:14px;line-height:24px;text-decoration:none}
.source-open-link:hover{text-decoration:underline}
.answer-sources>.account-help,.answer-sources>.result-meta{margin:12px 0 0;color:var(--muted);font-size:13px;line-height:1.9;overflow-wrap:anywhere}
.answer-sources>.source-item+.account-help{padding-top:16px;border-top:1px solid var(--line)}
.message-meta{display:flex;align-items:center;gap:12px;min-height:36px;margin-top:8px;color:var(--muted);font-size:13px;line-height:20px}
.message-question>.message-meta{justify-content:flex-end}
.message-actions{display:inline-flex;align-items:center;gap:4px;opacity:0;pointer-events:none;transition:opacity 150ms var(--ease)}
.message-question:hover>.message-meta .message-actions,.message-answer:hover>.message-meta .message-actions,.message-question:focus-within>.message-meta .message-actions,.message-answer:focus-within>.message-meta .message-actions{opacity:1;pointer-events:auto}
.message-action{display:inline-flex;align-items:center;justify-content:center;flex:none;width:32px;height:32px;padding:7px;border:0;border-radius:8px;background:transparent;color:var(--muted)}
.message-action:hover:not(:disabled){background:var(--raised);color:var(--text)}
.message-action svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.message-action-status{margin:8px 0 0;color:var(--secondary);font-size:13px;line-height:1.8}
.message-action-status:empty{display:none}
.message-delete-confirm{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:16px;padding:16px;border:1px solid color-mix(in srgb,var(--danger) 26%,var(--line));border-radius:12px;background:var(--danger-tint)}
.message-delete-confirm p{flex-basis:100%;margin:0;color:var(--text);font-size:14px;line-height:1.8}
.message-delete-confirm-button{border-color:var(--danger);background:var(--danger);color:var(--surface);font-size:14px}
.message-delete-cancel{font-size:14px}
.answer-waiting{display:inline-flex;align-items:center;gap:12px;min-height:32px;color:var(--secondary);font-size:14px;line-height:24px}
/* finesse · component: answer-progress · register=product · tokens: inherited */
.answer-progress{min-width:0}
.answer-progress-header{display:flex;align-items:center;flex-wrap:wrap;gap:4px 16px;min-height:36px}
.answer-progress-header .thinking-dots{color:var(--accent)}
.answer-phase-label{color:var(--secondary);font-size:15px}
.answer-elapsed{color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}
.answer-progress-steps{display:grid;gap:7px;margin:12px 0 0;padding:0;list-style:none}
.answer-progress-step{display:flex;align-items:baseline;flex-wrap:wrap;gap:3px 12px;font-size:13px;line-height:22px}
.answer-progress-name{min-width:6em;color:var(--secondary)}
.answer-progress-state{color:var(--muted)}
.answer-progress-step[data-status="running"] .answer-progress-name{color:var(--accent-ink)}
.answer-progress-step[data-status="completed"] .answer-progress-name::before{margin-right:6px;color:var(--positive);content:"✓"}
.answer-thinking-step{display:block}
.answer-thinking-details{min-width:0}
.answer-thinking-details>summary{gap:3px 12px;min-height:36px}
.answer-thinking-text{max-height:320px;margin:4px 0 12px;padding:0 4px 0 0;overflow:auto;overscroll-behavior:contain;color:var(--secondary);font-size:14px;line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere;scrollbar-width:thin;scrollbar-color:var(--scrollbar) transparent}
.answer-thinking-text:focus-visible{outline:2px solid var(--focus);outline-offset:4px;border-radius:4px}
.answer-planning-note{margin:4px 0 12px;color:var(--muted);font-size:13px;line-height:24px}
.answer-preview-note{margin:18px 0 8px;color:var(--muted);font-size:13px;line-height:22px}
.answer-stream-preview{white-space:pre-wrap;overflow-wrap:anywhere}
.answer-stage-history{margin:0 0 16px;color:var(--secondary)}
.answer-stage-details>summary{position:relative;display:flex;align-items:center;flex-wrap:wrap;gap:2px 12px;width:fit-content;max-width:100%;min-height:44px;font-size:14px;line-height:24px;cursor:pointer;list-style:none;outline:2px solid transparent;outline-offset:3px;border-radius:4px}
.answer-stage-details>summary::-webkit-details-marker{display:none}
.answer-stage-details>summary::before{position:absolute;left:-16px;color:var(--muted);content:"›"}
.answer-stage-details[open]>summary::before{transform:rotate(90deg)}
.answer-stage-details>summary:focus-visible{outline-color:var(--focus)}
.answer-stage-details>summary:active{color:var(--accent-ink)}
.answer-stage-title{font-weight:500}
.answer-stage-meta{color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums}
.answer-stage-details>.account-help{margin:0 0 8px;font-size:13px;line-height:24px}
.answer-stage-documents{margin:0 0 12px;padding:0;list-style:none}
.answer-stage-documents .source-open-link{min-height:44px;padding:4px 0;font-size:14px;line-height:24px}
@media (hover:hover){.answer-stage-details>summary:hover{color:var(--accent-ink);text-decoration:underline;text-underline-offset:4px}}
@media(max-width:760px){.answer-thinking-details>summary{min-height:44px}.answer-thinking-text{max-height:260px}}
.thinking-dots{display:inline-flex;align-items:center;gap:5px;min-height:24px}
.thinking-dots>span{display:block;width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.4;animation:answer-dot 1.2s ease-in-out infinite}
.thinking-dots>span:nth-child(2){animation-delay:.16s}
.thinking-dots>span:nth-child(3){animation-delay:.32s}
@keyframes answer-dot{0%,80%,100%{opacity:.35;transform:translateY(0)}40%{opacity:1;transform:translateY(-4px)}}
.composer-wrap{position:relative;flex:none;margin-top:16px}
.composer-edit-note{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin:0 0 12px;color:var(--secondary);font-size:13px;line-height:1.8}
.composer-edit-note button{min-height:36px;padding:4px 8px;border:0;background:transparent;color:var(--accent-ink);font-size:13px}
.composer-stage{position:relative;min-width:0}
/* 兔子身体横线的 y/画布宽度由媒体实测写入 --rabbit-baseline；预留高度与上抬量始终一致。 */
.rabbit-mascot{position:absolute;z-index:1;top:calc(var(--rabbit-width) * var(--rabbit-baseline) * -1);left:50%;display:none;width:var(--rabbit-width);height:auto;transform:translateX(-50%);pointer-events:none}
#rabbit-animation{display:block;width:100%;height:auto;object-fit:contain;background:transparent;pointer-events:none}
#welcome:not([hidden])~.composer-wrap{margin-top:0;margin-bottom:auto;padding-top:calc(var(--rabbit-width) * var(--rabbit-baseline))}
#welcome:not([hidden])~.composer-wrap .rabbit-mascot{display:block}
.composer{position:relative;margin:0;padding:16px 20px;border:1px solid var(--line);border-radius:20px;background:var(--input);box-shadow:var(--shadow)}
.composer:focus-within{border-color:var(--accent);outline:2px solid var(--accent-tint);outline-offset:0}
.composer>label{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.composer textarea{display:block;width:100%;min-width:0;height:56px;min-height:48px;max-height:min(180px,25dvh);margin:0;padding:0;border:0;outline:none;resize:none;background:transparent;color:var(--text);font-size:17px;line-height:1.8;box-shadow:none}
.composer textarea::placeholder{color:var(--muted);opacity:1}
#welcome:not([hidden])~.composer-wrap textarea{height:80px;min-height:80px}
.composer-bottom{display:flex;align-items:center;justify-content:flex-end;gap:20px;min-height:44px;padding-top:12px}
.composer-footer{display:flex;align-items:center;justify-content:flex-end;gap:12px;width:100%;min-width:0}
.composer-footer>span{margin-right:auto;color:var(--muted);font-size:13px;line-height:1.6}
kbd{padding:1px 4px;border:1px solid var(--line);border-radius:4px;background:var(--raised);color:var(--secondary);font-family:inherit;font-size:12px}
#send-button{flex:none;min-width:96px;height:44px;min-height:44px;padding:0 14px;border-radius:11px;font-size:15px;white-space:nowrap}
#stop-answer-button{flex:none;min-height:44px;padding:8px 14px;font-size:14px;white-space:nowrap}
.composer-note{display:flex;align-items:flex-start;justify-content:center;gap:8px;margin:12px 0 0;color:var(--muted);font-size:13px;line-height:1.7}
.composer-note svg{flex:none;width:18px;height:18px;margin-top:2px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}

/* Visible documents and publishing */
#documents-view,#publication-view,.members-view{width:100%;max-width:1440px;min-width:0;margin:0 auto;padding:32px 40px 40px}
.documents-header,.publication-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:24px}
.documents-header>div,.publication-header>div{min-width:0}
.documents-header h1,.publication-header h1{margin:0;color:var(--text);font-size:28px;font-weight:500;line-height:1.4}
.documents-header p,.publication-header p{margin:8px 0 0;color:var(--secondary);font-size:15px;line-height:1.85}
.documents-header>.secondary-button,.publication-header>.secondary-button{flex:none;font-size:14px}
.list-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;min-width:0;margin-bottom:20px}
.search-field{display:flex;align-items:center;gap:8px;width:360px;max-width:100%;min-width:0;min-height:48px;padding:0 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--muted)}
.search-field:focus-within{outline:2px solid var(--accent-tint);outline-offset:2px;border-color:var(--accent-ink)}
.search-field svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;flex:none}
.search-field input{width:100%;min-width:0;min-height:46px;padding:10px 0;border:0;outline:none;background:transparent;color:var(--text);font-size:15px}
.search-field input::placeholder{color:var(--muted);opacity:1}
.document-version{margin:0;color:var(--muted);font-size:13px;line-height:1.8;overflow-wrap:anywhere}
.list-heading{display:grid;grid-template-columns:minmax(0,1fr) 100px;gap:16px;padding:12px 20px 12px 76px;border:1px solid var(--line);border-radius:14px 14px 0 0;background:var(--raised);color:var(--secondary);font-size:13px;line-height:20px}
.list-heading>span:last-child{text-align:right}
.documents-list{overflow:hidden;border:1px solid var(--line);border-top:0;border-radius:0 0 14px 14px;background:var(--surface)}
.document-row{display:grid;grid-template-columns:36px minmax(0,1fr) 100px;align-items:center;gap:20px;min-height:72px;padding:12px 20px;border-bottom:1px solid var(--line)}
.document-row:last-child{border-bottom:0}
.doc-file-icon{display:flex;align-items:center;justify-content:center;width:36px;height:40px;border:1px solid var(--line);border-radius:6px;background:var(--raised);color:var(--secondary);font-size:11px;font-weight:500}
.document-info{min-width:0}
.account-document-title{margin:0;color:var(--text);font-size:16px;font-weight:500;line-height:1.6}
.document-info .source-meta{margin-top:4px}
.document-badge{display:inline-flex;align-items:center;justify-content:flex-end;gap:6px;color:var(--positive);font-size:13px;line-height:22px}
.document-badge::before{width:5px;height:5px;border-radius:50%;background:currentColor;content:"";flex:none}
.list-footnote{display:flex;align-items:flex-start;gap:8px;margin:16px 0 0;color:var(--muted);font-size:13px;line-height:1.85}
.list-footnote svg,.publication-boundary svg{width:18px;height:18px;margin-top:3px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;flex:none}
.publication-boundary{display:flex;align-items:flex-start;gap:8px;margin:-8px 0 24px;color:var(--secondary);font-size:13px;line-height:1.85}
.publication-tabs{display:flex;align-items:center;gap:28px;min-width:0;overflow-x:auto;margin:0;border-bottom:1px solid var(--line);scrollbar-width:thin}
.publication-tabs button{flex:none;min-height:48px;margin:0;padding:12px 0;border:0;border-bottom:3px solid transparent;border-radius:0;background:transparent;color:var(--secondary);font-size:15px;line-height:24px;white-space:nowrap}
.publication-tabs button:hover{color:var(--text)}
.publication-tabs button.active,.publication-tabs button[aria-pressed="true"]{border-bottom-color:var(--accent);color:var(--text);font-weight:500}
.publication-meta{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:8px 20px;margin:16px 0 24px}
.publication-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:0 0 24px;padding:0;list-style:none}
.publication-steps li{position:relative;display:flex;align-items:center;gap:12px;min-width:0;color:var(--muted)}
.publication-steps li>span{display:flex;align-items:center;justify-content:center;flex:none;width:32px;height:32px;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--muted);font-size:13px;line-height:1;font-variant-numeric:tabular-nums}
.publication-steps li>div{min-width:0}
.publication-steps strong{display:block;font-size:14px;font-weight:500;line-height:1.6}
.publication-steps small{display:block;color:var(--muted);font-size:12px;line-height:1.7}
.publication-steps li[data-state="current"]{color:var(--text)}
.publication-steps li[data-state="current"]>span{border-color:var(--accent);background:var(--accent-tint);color:var(--accent-ink)}
.publication-steps li[data-state="complete"]>span{border-color:color-mix(in srgb,var(--positive) 28%,var(--line));background:var(--positive-tint);color:var(--positive)}
.publication-columns{display:grid;grid-template-columns:minmax(300px,.9fr) minmax(0,1.1fr);align-items:start;gap:24px}
.publication-section{min-width:0;margin:0;padding:24px}
.publication-section h2{margin:0 0 16px;color:var(--text);font-size:21px;line-height:1.5}
.publication-section>.publication-help{margin:0 0 20px}
.publication-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 16px;margin:0}
.publication-field{display:flex;flex-direction:column;gap:8px;min-width:0}
.publication-field-wide{grid-column:1/-1}
.publication-field>label{color:var(--text);font-size:15px;font-weight:500;line-height:1.6}
.publication-field input:not([type="checkbox"]),.publication-field select{width:100%;min-width:0;min-height:48px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--input);color:var(--text);font-size:15px;line-height:24px}
.publication-field input::placeholder{color:var(--muted);opacity:1}
.publication-field>small{color:var(--secondary);font-size:13px;line-height:1.8}
.publication-field input:focus,.publication-field select:focus{border-color:var(--accent-ink);outline:2px solid var(--accent-tint);outline-offset:2px}
.file-upload{padding:20px;border:1px dashed color-mix(in srgb,var(--text) 24%,transparent);border-radius:12px;background:var(--raised)}
.file-instruction{display:flex;align-items:center;gap:8px;color:var(--text);font-size:16px;font-weight:500;line-height:1.7}
.file-instruction svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.publication-field input[type="file"]{min-height:44px;padding:0;border:0;border-radius:8px;background:transparent;color:var(--secondary);font-size:13px}
.publication-field input[type="file"]::file-selector-button{min-height:40px;margin:0 12px 0 0;padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);font:inherit;cursor:pointer}
.publication-check{display:flex;align-items:flex-start;gap:12px;min-width:0;margin:0;padding:16px;border:1px solid var(--line);border-radius:10px;background:var(--raised);color:var(--secondary);font-size:14px;line-height:1.8;cursor:pointer}
.publication-check input{flex:none;width:18px;height:18px;margin:4px 0 0;accent-color:var(--accent)}
.publication-check span{min-width:0;overflow-wrap:anywhere}
.publication-actions{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
.publication-actions>span{flex:1;min-width:160px;color:var(--muted);font-size:13px;line-height:1.8}
.publication-actions button{flex:none}
.publication-uploads{min-width:0}
.publication-uploads>.publication-field{margin-bottom:20px}
.publication-preview-top{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:12px}
.publication-preview-top h3{flex:1;min-width:180px;margin:0;color:var(--text);font-size:18px;line-height:1.6}
.publication-preview-top .document-badge{justify-content:flex-start}
.publication-uploads>.publication-help{margin:12px 0;font-size:13px}
.publication-change-note{margin:16px 0;padding:12px 16px;border-left:2px solid var(--accent);border-radius:0 8px 8px 0;background:var(--raised);color:var(--secondary);font-size:14px;line-height:1.85}
.publication-preview{margin:20px 0 0}
.publication-preview>summary{min-height:44px;padding:8px 0;color:var(--secondary);font-size:14px;line-height:24px;cursor:pointer}
.publication-preview>summary:hover{color:var(--accent-ink)}
.publication-preview-text{min-width:0;max-height:min(420px,44dvh);margin:12px 0 0;padding:20px;overflow:auto;border:1px solid var(--line);background:var(--surface);color:var(--text);font-family:inherit;font-size:15px;line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere;scrollbar-width:thin;scrollbar-color:var(--scrollbar) transparent}
.publication-publish-form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;min-width:0;margin-top:16px}
.publication-publish-form>.primary-button,.publication-publish-form>.secondary-button{min-width:0}
.publication-uploads>.publication-actions,.publication-uploads>.publication-publish-form{position:sticky;z-index:2;bottom:-24px;padding-top:16px;padding-bottom:16px;border-top:1px solid var(--line);background:var(--surface)}
.publication-record{min-width:0;padding:20px 0;border-bottom:1px solid var(--line)}
.publication-record:first-child{padding-top:0}
.publication-record:last-child{padding-bottom:0;border-bottom:0}
.publication-record h3,.publication-record-title{margin:0 0 8px;color:var(--text);font-size:16px;font-weight:500;line-height:1.7;overflow-wrap:anywhere}
.publication-record .publication-help{margin:4px 0;color:var(--muted);font-size:13px}
.publication-document-action,.publication-restore{margin-top:12px}
.publication-document-action>summary,.publication-restore>summary{width:fit-content;min-height:44px;padding:8px 0;color:var(--accent-ink);font-size:14px;line-height:24px;cursor:pointer}
.publication-document-action>summary:hover,.publication-restore>summary:hover{text-decoration:underline;text-underline-offset:4px}

/* Members and explicit account actions */
.member-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:24px;margin-top:20px}
.member-directory{min-width:0;overflow:hidden}
.directory-top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:24px 24px 16px}
.directory-top h2,.member-invite h2{margin:0;color:var(--text);font-size:21px;line-height:1.5}
.soft-tag{color:var(--muted);font-size:13px;line-height:22px}
.member-directory>.search-field{width:calc(100% - 48px);margin:0 24px 20px}
.member-list-heading{display:grid;grid-template-columns:minmax(0,1fr) 176px 160px;gap:12px;padding:12px 20px 12px 68px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--raised);color:var(--secondary);font-size:13px;line-height:20px}
.member-list-heading>span:last-child{text-align:right}
.member-row{display:grid;grid-template-columns:36px minmax(120px,1fr) minmax(80px,.5fr) minmax(72px,.4fr) minmax(160px,auto);align-items:center;gap:12px;min-height:72px;padding:16px 20px;border-bottom:1px solid var(--line)}
.member-row:last-child{border-bottom:0}
.member-avatar{display:flex;align-items:center;justify-content:center;flex:none;width:36px;height:36px;border:1px solid var(--line);border-radius:50%;background:var(--raised);color:var(--secondary);font-size:14px;font-weight:500}
.member-info{min-width:0}
.member-info h3{margin:0;color:var(--text);font-size:16px;line-height:1.6;font-weight:500}
.member-account{margin:4px 0 0;color:var(--muted);font-size:13px;line-height:1.7;overflow-wrap:anywhere}
.member-role,.member-status,.member-self{margin:0;color:var(--secondary);font-size:13px;line-height:1.75}
.member-status{display:inline-flex;align-items:center;gap:6px}
.member-status::before{flex:none;width:5px;height:5px;border-radius:50%;background:currentColor;content:""}
.member-status[data-active="true"]{color:var(--positive)}
.member-status[data-active="false"]{color:var(--muted)}
.member-self{text-align:right;color:var(--muted)}
.member-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px;min-width:0}
.member-action{min-width:0}
.member-action>summary{display:flex;align-items:center;justify-content:flex-end;min-height:44px;padding:8px;border-radius:8px;color:var(--secondary);font-size:13px;line-height:24px;list-style:none;cursor:pointer}
.member-action>summary::-webkit-details-marker{display:none}
.member-action>summary:hover{background:var(--raised);color:var(--accent-ink)}
.member-actions:has(.member-action[open]){grid-column:2/-1;width:100%}
.member-action[open]{flex-basis:100%}
.member-action[open]>.publication-publish-form{grid-template-columns:minmax(0,1fr) auto;margin-top:8px;padding-bottom:4px}
.member-action .publication-check{font-size:14px}
.member-action .secondary-button{font-size:14px}
.member-invite{position:sticky;top:0;min-width:0;padding:24px}
.member-invite>.account-help{margin:12px 0 20px}
.member-form>.primary-button{margin-top:4px}
.member-invitation{margin-top:24px;padding-top:24px;border-top:1px solid var(--line)}
.member-invitation h3{margin:0 0 12px;color:var(--text);font-size:16px;line-height:1.6}
.member-invitation .account-help{margin:12px 0;font-size:13px}
.invite-token{max-height:180px;margin:16px 0;padding:16px;overflow:auto;border:1px solid var(--line);border-radius:10px;background:var(--raised);color:var(--text);font-size:14px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}
.member-invitation>.secondary-button{width:100%}

/* Source reader shell; source document owns its own stylesheet */
.app-shell[data-source-open="true"]:not([data-reader-modal="true"]){grid-template-columns:var(--sidebar-width) minmax(0,1fr) var(--source-width)}
.app-shell[data-source-open="true"][data-sidebar-collapsed="true"]:not([data-reader-modal="true"]){grid-template-columns:minmax(0,1fr) var(--source-width)}
.app-shell[data-source-open="true"] #chat-view{padding-right:32px;padding-left:32px}
.source-panel{display:flex;flex-direction:column;min-width:0;min-height:0;height:100%;overflow:hidden;border:1px solid var(--line);border-radius:20px;background:var(--surface)}
/* 分隔条只负责布局；拖动时临时屏蔽iframe命中，结束或取消后立即恢复。 */
.source-resizer{position:absolute;z-index:20;top:76px;right:calc(var(--source-width) + 12px);bottom:12px;display:flex;align-items:center;justify-content:center;width:12px;cursor:col-resize;touch-action:none;outline-offset:-2px}
.source-resizer>span{display:block;width:3px;height:44px;border-radius:3px;background:var(--line);transition:background 120ms var(--ease),height 120ms var(--ease)}
.source-resizer:focus-visible{outline:2px solid var(--focus);border-radius:6px}
.source-resizer:focus-visible>span,.app-shell[data-source-resizing="true"] .source-resizer>span{height:64px;background:var(--accent)}
.app-shell[data-source-resizing="true"],.app-shell[data-source-resizing="true"] *{cursor:col-resize!important;user-select:none!important}
.app-shell[data-source-resizing="true"] .source-frame{pointer-events:none}
.app-shell[data-reader-modal="true"] .source-panel{position:fixed;z-index:120;inset:12px;width:calc(100% - 24px);height:calc(100dvh - 24px);box-shadow:var(--shadow-lg)}
@media(hover:hover){.source-resizer:hover>span{height:64px;background:var(--accent)}.sidebar-collapse:hover{background:var(--sidebar-raised);color:var(--sidebar-text)}}
.source-panel-header{display:grid;grid-template-columns:minmax(0,1fr) auto 44px;align-items:center;flex:none;gap:8px;min-height:80px;padding:12px 16px;border-bottom:1px solid var(--line);background:var(--surface)}
.source-panel-heading{min-width:0}
.source-panel-heading h2{overflow:hidden;margin:0;color:var(--text);font-size:16px;font-weight:500;line-height:1.6;text-overflow:ellipsis;white-space:nowrap}
.source-panel-header>.text-button{padding:8px 4px;font-size:13px}
.source-panel-close{display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:12px;border:0;border-radius:9px;background:transparent;color:var(--secondary)}
.source-panel-close:hover{background:var(--raised);color:var(--text)}
.source-panel-close svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.source-frame{display:block;flex:1;width:100%;height:100%;min-height:0;border:0;background:var(--surface)}

/* Responsive behavior uses the same breakpoints as the scripts */
@media(min-width:761px) and (max-width:1320px){
 .member-grid{grid-template-columns:minmax(0,1fr)}
 .member-invite{position:static}
 .member-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 16px}
 .member-form>.primary-button{grid-column:1/-1;width:fit-content}
}
@media(min-width:761px) and (max-width:1180px){
 .auth-brand-panel{padding:36px 32px}
 .access-content.auth-content{padding-right:40px;padding-left:40px}
 .auth-title-block{padding-bottom:112px}
 .workspace-header{padding-right:28px;padding-left:28px}
 #chat-view{padding-right:32px;padding-left:32px}
 .welcome h1{font-size:34px}
 #documents-view,#publication-view,.members-view{padding:28px 28px 40px}
}
@media(min-width:761px) and (max-height:800px){
 .auth-brand-panel{padding-top:32px;padding-bottom:32px}
 .auth-title-block{min-height:280px;padding-bottom:80px}
 .access-content.auth-content{padding-top:32px;padding-bottom:32px}
 .access-content h1{font-size:30px}
 .welcome{margin-bottom:20px}
 .welcome h1{font-size:34px}
 .welcome p{margin-top:12px}
}
@media(max-width:1100px){
 .publication-columns{grid-template-columns:minmax(0,1fr)}
 .publication-section{padding:24px}
 .member-row{grid-template-columns:36px minmax(0,1fr) 88px 80px}
 .member-actions,.member-self{grid-column:2/-1}
 .member-list-heading{grid-template-columns:minmax(0,1fr) 176px}
 .member-list-heading>span:last-child{display:none}
}
@media(max-width:1000px){
 .app-shell[data-source-open="true"]{grid-template-columns:var(--sidebar-width) minmax(0,1fr)}
 .app-shell[data-source-open="true"][data-sidebar-collapsed="true"]{grid-template-columns:minmax(0,1fr)}
 .source-resizer{display:none}
}
@media(max-width:760px){
 .account-access.auth-page{display:block;min-height:100dvh}
 .auth-brand-panel{display:block;padding:24px 24px 20px;border-right:0;border-bottom:1px solid var(--sidebar-line)}
 .auth-brand-panel .auth-brand{gap:12px}
 .auth-brand-panel .auth-brand img{width:28px;height:40px}
 .auth-brand-panel .auth-brand strong{font-size:22px}
 .auth-brand-panel .auth-brand small{font-size:9px}
 .auth-title-block{display:block;min-height:0;margin-top:20px;padding:0}
 .auth-title-kicker{display:none}
 .auth-title-block h2{font-size:30px;line-height:1.2;letter-spacing:0}
 .auth-title-block h2>span{margin-top:4px}
 .access-content.auth-content{display:block;padding:28px 24px 40px}
 .auth-content .auth-card{max-width:460px;margin:0 auto}
 .access-content h1{font-size:28px}
 .auth-content .account-field input,.auth-content .account-form>.primary-button,.auth-content .account-form>.secondary-button{min-height:48px}
 .access-footnote{margin-top:24px}
 .app-shell,.app-shell[data-source-open="true"]{grid-template-columns:minmax(0,1fr);gap:0;height:100dvh;padding:8px}
 .work-area{gap:8px}
 .sidebar{position:fixed;z-index:110;top:8px;bottom:8px;left:8px;width:268px;max-width:calc(100vw - 32px);height:calc(100dvh - 16px);transform:translateX(calc(-100% - 8px));transition:transform 180ms var(--ease)}
 .app-shell[data-sidebar-open="true"] .sidebar{transform:none}
 .app-shell[data-sidebar-open="true"] .sidebar-backdrop{position:fixed;z-index:100;inset:0;display:block;width:100%;height:100%;padding:0;border:0;background:var(--scrim)}
 .nav-item,.conversation-history-toggle{min-height:44px}
 .sidebar .logout-button{width:44px;height:44px}
 .sidebar-menu-icon{display:inline-flex}
 .sidebar-expand-icon{display:none}
 .app-shell[data-reader-modal="true"] .source-panel{inset:0;width:100%;height:100dvh;border:0;border-radius:0}
 #main-content{border-radius:16px}
 .workspace-header{gap:8px;min-height:64px;padding:0 12px}
 .breadcrumb{gap:4px;font-size:14px}
 .menu-toggle{display:inline-flex}
 .icon-button{width:44px;height:44px;padding:13px}
 .header-actions{gap:4px}
 .header-actions>#clear-chat{min-width:44px;padding:8px 10px;font-size:13px}
 .theme-switch{gap:0;padding:2px;border-radius:11px}
 .theme-option{width:44px;min-width:44px;height:44px;padding:0}
 .theme-option span:not([data-icon]){display:none}
 .account-notice{margin:12px 16px 0;font-size:13px}
 #chat-view,.app-shell[data-source-open="true"] #chat-view{--rabbit-width:clamp(190px,60vw,260px);padding:24px 16px 16px}
 .welcome{margin-bottom:24px}
 .welcome h1{font-size:29px;line-height:1.5;text-wrap:balance}
 .welcome p{margin-top:12px;font-size:15px;line-height:1.85}
 .messages{padding:0 12px 8px 16px}
 .account-message{margin-bottom:28px}
 .account-question{max-width:96%;padding:12px 16px;font-size:16px}
 .message-answer{margin-top:24px;font-size:17px;line-height:1.9}
 .result-label,.answer-text,.answer-sources>summary{font-size:17px;line-height:1.9}
 .answer-sources>summary{min-height:44px}
 .message-meta{gap:6px;min-height:44px;font-size:12px}
 .message-actions{gap:0;opacity:1;pointer-events:auto}
 .message-action{width:44px;height:44px;padding:13px}
 .inline-source-link::after{position:absolute;top:50%;left:50%;width:44px;height:44px;transform:translate(-50%,-50%);content:""}
 .composer{padding:14px 16px;border-radius:18px}
 .composer textarea{font-size:16px}
 .composer-bottom{gap:12px;padding-top:8px}
 .composer-footer{gap:8px}
 .composer-footer>span{font-size:0}
 .composer-footer>span::before{content:"回车换行";font-size:12px}
 .composer-footer kbd{display:none}
 #send-button{min-width:88px;padding:0 12px}
 #stop-answer-button{padding:8px 10px;font-size:13px}
 .composer-note{margin-top:12px;font-size:12px}
 #documents-view,#publication-view,.members-view{padding:24px 20px 32px}
 .documents-header,.publication-header{flex-wrap:wrap;gap:16px}
 .documents-header h1,.publication-header h1{font-size:28px}
 .documents-header p,.publication-header p{font-size:14px}
 .documents-header>.secondary-button,.publication-header>.secondary-button{min-height:44px}
 .search-field{width:100%}
 .list-toolbar{gap:12px}
 .list-heading{grid-template-columns:minmax(0,1fr) 72px;padding:12px 16px}
 .document-row{grid-template-columns:32px minmax(0,1fr);gap:8px 12px;padding:16px}
 .doc-file-icon{grid-column:1;grid-row:1/3;width:32px;height:38px}
 .document-info{grid-column:2}
 .document-badge{grid-column:2;justify-content:flex-start;font-size:13px}
 .account-document-title{font-size:16px}
 .source-meta,.source-path{font-size:13px}
 .publication-boundary{margin-top:-4px;font-size:13px}
 .publication-tabs{gap:24px}
 .publication-tabs button{min-height:44px;font-size:14px}
 .publication-meta{margin-bottom:20px}
 .publication-steps{gap:8px;margin-bottom:20px}
 .publication-steps li{flex-direction:column;align-items:flex-start;gap:8px}
 .publication-steps strong{font-size:13px}
 .publication-steps small{display:none}
 .publication-section{padding:20px 16px}
 .publication-section h2{font-size:20px}
 .publication-form{grid-template-columns:minmax(0,1fr)}
 .publication-field-wide{grid-column:auto}
 .file-upload{padding:16px}
 .publication-field input:not([type="checkbox"]),.publication-field select{font-size:16px}
 .publication-check{padding:14px;font-size:14px}
 .publication-actions{align-items:stretch}
 .publication-actions>button{flex:1;width:100%}
 .publication-actions>span{flex-basis:100%}
 .publication-preview-top h3{min-width:0;flex-basis:100%;font-size:17px}
 .publication-preview-text{max-height:min(360px,40dvh);padding:16px;font-size:15px}
 .publication-publish-form{grid-template-columns:minmax(0,1fr);gap:12px}
 .publication-publish-form>button{width:100%}
 .publication-uploads>.publication-actions,.publication-uploads>.publication-publish-form{bottom:-20px}
 .publication-record{padding:20px 0}
 .publication-document-action>summary,.publication-restore>summary{min-height:44px}
 .member-grid{grid-template-columns:minmax(0,1fr)}
 .member-directory{overflow:visible}
 .directory-top{padding:20px 20px 16px}
 .directory-top h2,.member-invite h2{font-size:20px}
 .soft-tag{display:none}
 .member-directory>.search-field{width:calc(100% - 40px);margin:0 20px 20px}
 .member-list-heading{display:none}
 .member-row{grid-template-columns:36px minmax(0,1fr);gap:8px 12px;padding:20px}
 .member-avatar{grid-column:1;grid-row:1}
 .member-info{grid-column:2;grid-row:1}
 .member-role{grid-column:2;grid-row:2}
 .member-status{grid-column:2;grid-row:3}
 .member-self{grid-column:2;grid-row:4;text-align:left}
 .member-actions{grid-column:2;grid-row:4;justify-content:flex-start}
 .member-action>summary{justify-content:flex-start;padding:8px 0;font-size:14px}
 .member-actions:has(.member-action[open]){grid-column:1/-1}
 .member-action[open]>.publication-publish-form{grid-template-columns:minmax(0,1fr)}
 .member-invite{position:static;padding:20px}
 .member-form{display:flex}
 .member-form>.primary-button{width:100%}
 .source-panel-header{gap:4px;padding:12px 16px}
 .source-panel-heading h2{font-size:15px}
 .source-panel-header>.text-button{padding:8px 4px;font-size:12px}
 .source-panel-close{width:44px;height:44px}
}
@media(max-width:360px){
 .auth-brand-panel{padding-right:20px;padding-left:20px}
 .auth-title-block h2{font-size:28px}
 .access-content.auth-content{padding-right:20px;padding-left:20px}
 .access-content h1{font-size:27px}
 .access-tabs{gap:24px}
 .workspace-header{padding-right:8px;padding-left:8px}
 .header-actions>#clear-chat{font-size:12px;padding-right:8px;padding-left:8px}
 .breadcrumb{font-size:13px}
 #chat-view,.app-shell[data-source-open="true"] #chat-view{padding-right:12px;padding-left:12px}
 .welcome h1{font-size:27px}
 .welcome p{font-size:14px}
 .message-meta{gap:4px}
 .composer-footer>span{display:none}
 #documents-view,#publication-view,.members-view{padding-right:16px;padding-left:16px}
 .publication-tabs{gap:20px}
 .publication-tabs button{font-size:13px}
 .source-panel-header{padding-right:12px;padding-left:12px}
}
@media(hover:none),(pointer:coarse){
 .message-actions{opacity:1;pointer-events:auto}
 .message-action{width:44px;height:44px;padding:13px}
}
@media(prefers-reduced-motion:reduce){
 *,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}
 .thinking-dots>span{opacity:.65;transform:none}
}

/* 钉钉接入沿用既有表单和管理页，不另建视觉主题。 */
.dingtalk-access{margin:24px 0}.dingtalk-access .secondary-button{width:100%}.dingtalk-access p{margin:10px 0 0}
.organization-panel{padding:24px;margin:20px 0 24px}.organization-header{display:flex;gap:20px;align-items:flex-start;justify-content:space-between}.organization-header h2{margin:0;font-size:21px;font-weight:600}.organization-header p{margin:8px 0 0}.organization-panel>p{margin:12px 0}.organization-panel details>summary{cursor:pointer;color:var(--secondary);padding:10px 0;min-height:44px}.organization-panel details>summary:hover{color:var(--text)}.organization-tree,.organization-tree ul{list-style:none;padding-left:20px}.organization-tree{padding-left:0;margin:12px 0 0}.organization-tree li{line-height:1.9;overflow-wrap:anywhere}.organization-tree span{display:block;padding:5px 0;font-size:15px}.organization-tree ul{border-left:1px solid var(--line);margin-left:6px}
@media(max-width:760px){.organization-panel{padding:20px}.organization-header{flex-direction:column;gap:16px}.organization-header .secondary-button{min-height:44px}}
