.advisor-chat { --chat-line:#e1e7db; --chat-muted:#64705b; --chat-green:#284322; min-width:0; }
.main-shell:has(.advisor-chat) { height:var(--advisor-viewport-height,100dvh); display:flex; flex-direction:column; }
.main-shell:has(.advisor-chat)>.topbar { flex-shrink:0; }
.main-shell:has(.advisor-chat) #main { flex:1; min-height:0; width:100%; display:flex; flex-direction:column; padding-top:20px; padding-bottom:var(--advisor-nav-space,20px); }
.main-shell:has(.advisor-chat) #main>.cloud-banner { flex-shrink:0; margin-bottom:16px; }
.main-shell:has(.advisor-chat)>.app-footer { display:none; }
.main-shell:has(.advisor-chat) #library-content { flex:1; min-height:0; }
.main-shell.advisor-keyboard-open>.topbar,.main-shell.advisor-keyboard-open #main>.cloud-banner { display:none; }
.main-shell.advisor-keyboard-open #main { padding-top:8px; padding-bottom:8px; }
.advisor-workspace { display:grid; grid-template-columns:236px minmax(0,1fr); min-height:0; height:100%; background:#fff; border:1px solid var(--chat-line); border-radius:20px; overflow:hidden; }
.advisor-workspace *,.advisor-dialog * { box-sizing:border-box; }
.advisor-workspace>* { min-width:0; min-height:0; }
.advisor-button,.advisor-send { appearance:none; display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px; padding:10px 14px; border:1px solid var(--chat-line,#dbe2d4); border-radius:10px; background:#fff; color:#293d23; font:inherit; font-size:14px; font-weight:600; line-height:1.4; cursor:pointer; text-align:center; }
.advisor-button:hover:not(:disabled) { background:#edf3e7; border-color:#a5b695; }
.advisor-button:disabled,.advisor-send:disabled { opacity:.55; cursor:not-allowed; }
.advisor-button:focus-visible,.advisor-send:focus-visible,.advisor-chat input:focus-visible,.advisor-chat textarea:focus-visible,.advisor-dialog input:focus-visible,.advisor-dialog select:focus-visible,.advisor-dialog textarea:focus-visible,.advisor-dialog summary:focus-visible { outline:3px solid #3155c5; outline-offset:3px; }
.advisor-primary,.advisor-send { color:#fff; background:#294523; border-color:#294523; }
.advisor-primary:hover:not(:disabled),.advisor-send:hover:not(:disabled) { background:#1e3519; color:#fff; }
.advisor-subtle { background:transparent; border-color:transparent; }
.advisor-small { font-size:13px; padding-inline:10px; }
.advisor-muted { color:var(--chat-muted,#64705b); font-size:14px; line-height:1.7; }
.advisor-history { padding:18px 12px; background:#f6f8f3; border-right:1px solid var(--chat-line); overflow-y:auto; overscroll-behavior:contain; }
.advisor-history-top { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:0 4px; margin-bottom:18px; }
.advisor-history-top strong { font-size:15px; }
.advisor-history-search { display:block; margin:0 0 18px; }
.advisor-history-search input { width:100%; min-height:44px; padding:10px 12px; border:1px solid #dce3d6; border-radius:10px; background:#fff; color:#263b21; font:inherit; font-size:13px; }
.advisor-thread { display:flex; align-items:center; border-radius:10px; margin:4px 0; }
.advisor-thread>.advisor-button:first-child { flex:1; min-width:0; display:block; text-align:left; background:transparent; border:0; padding:12px 10px; font-size:13px; }
.advisor-thread>.advisor-button>span { display:block; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.advisor-thread small { display:block; color:#66735b; margin-top:5px; font-weight:400; font-size:11px; }
.advisor-thread:hover,.advisor-thread.is-current { background:#e8efdf; }
.advisor-thread-menu { background:transparent; border:0; width:44px; min-width:44px; padding:10px; font-size:22px; }
.advisor-chat-panel { display:flex; flex-direction:column; min-height:0; }
.advisor-chat-header { display:flex; align-items:center; gap:14px; padding:17px 24px; border-bottom:1px solid var(--chat-line); }
.advisor-chat-header>div:first-of-type { flex:1; min-width:0; }
.advisor-kicker { display:block; color:#5b7150; font-size:10px; font-weight:700; letter-spacing:.14em; margin-bottom:5px; }
.advisor-chat-header h2 { overflow:hidden; white-space:nowrap; text-overflow:ellipsis; font-size:17px; margin:0; line-height:1.4; }
.advisor-header-actions { display:flex; align-items:center; gap:4px; }
.advisor-header-actions .advisor-button { font-size:12px; }
.advisor-mobile-history { display:none; }
.advisor-scroll { flex:1; overflow-y:auto; min-height:0; overscroll-behavior:contain; scroll-behavior:auto; padding:26px clamp(18px,4vw,50px); }
[data-advisor-messages] { max-width:850px; margin:0 auto; }
.advisor-welcome { max-width:580px; padding:clamp(14px,4vh,60px) 0; margin:auto; text-align:center; }
.advisor-welcome-mark { display:grid; width:56px; height:56px; place-items:center; margin:0 auto 20px; background:#eff5e6; color:#5b7d36; border:1px solid #dce9cb; border-radius:18px; font-size:31px; }
.advisor-welcome h3 { font-size:clamp(24px,2.8vw,34px); font-weight:650; letter-spacing:-.035em; margin:0 0 13px; }
.advisor-welcome p { color:#627158; font-size:15px; line-height:1.7; margin:0 auto; max-width:440px; }
.advisor-suggestions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:28px; }
.advisor-suggestions .advisor-button { text-align:left; justify-content:flex-start; padding:15px; min-height:56px; font-size:13px; background:#fafcf7; }
.advisor-chat-message { margin:0 0 27px; overflow-wrap:anywhere; }
.advisor-message-author { font-size:12px; font-weight:700; color:#526348; margin-bottom:9px; }
.advisor-message-content { font-size:15px; line-height:1.8; color:#263522; }
.advisor-message-content>*:first-child { margin-top:0; }
.advisor-message-content>*:last-child { margin-bottom:0; }
.advisor-message-content p { margin:0 0 14px; }
.advisor-message-content h3 { font-size:17px; margin:24px 0 10px; line-height:1.5; }
.advisor-message-content ul,.advisor-message-content ol { padding-left:23px; margin:10px 0 16px; }
.advisor-message-content li { padding-left:3px; margin:6px 0; }
.advisor-message-content blockquote { border-left:3px solid #aec798; margin:15px 0; padding:8px 16px; color:#4d6042; }
.advisor-message-content a { color:#345792; text-decoration:underline; text-underline-offset:3px; }
.advisor-message-content code { font-size:.9em; padding:2px 4px; border-radius:4px; background:#f0f3ec; white-space:pre-wrap; }
.advisor-message-content pre { overflow-x:auto; max-width:100%; padding:16px; background:#f3f6ef; border-radius:10px; line-height:1.5; }
.advisor-message-content pre code { padding:0; background:transparent; }
.advisor-chat-message.is-user { margin-left:clamp(12px,7%,50px); }
.advisor-chat-message.is-user .advisor-message-author { text-align:right; }
.advisor-chat-message.is-user .advisor-message-content { margin-left:auto; width:fit-content; max-width:100%; border-radius:16px 16px 4px 16px; background:#eff4e8; padding:14px 19px; }
.advisor-thinking { color:#607253; font-size:14px; line-height:1.8; }
.advisor-thinking { display:flex; align-items:center; gap:12px; }
.advisor-thinking-dots { display:inline-flex; gap:5px; align-items:center; flex-shrink:0; min-height:26px; }
.advisor-thinking-dots i { display:block; width:7px; height:7px; border-radius:50%; background:#607c49; animation:advisor-thinking-pulse 1.35s ease-in-out infinite; }
.advisor-thinking-dots i:nth-child(2) { animation-delay:.18s; }.advisor-thinking-dots i:nth-child(3) { animation-delay:.36s; }
@keyframes advisor-thinking-pulse { 0%,65%,100% { opacity:.4; transform:translateY(0); } 30% { opacity:1; transform:translateY(-4px); } }
.advisor-table { width:100%; overflow-x:auto; margin:18px 0; border:1px solid #dce4d5; border-radius:10px; }
.advisor-table table { border-collapse:collapse; width:100%; font-size:13px; }
.advisor-table th,.advisor-table td { min-width:90px; padding:10px 13px; text-align:left; border-bottom:1px solid #e3e9dd; }
.advisor-table th { background:#f1f5eb; font-weight:650; }
.advisor-table tr:last-child td { border-bottom:0; }
.advisor-compose-area { flex-shrink:0; padding:0 24px 16px; background:#fff; }
.advisor-composer { max-width:850px; margin:0 auto; padding:13px; border:1px solid #bccaaf; border-radius:16px; box-shadow:0 3px 16px #283c2010; }
.advisor-composer:focus-within { border-color:#809b66; }
.advisor-composer textarea { display:block; width:100%; resize:vertical; max-height:210px; min-height:60px; padding:10px; margin-bottom:10px; border:0; border-radius:8px; color:#293b23; background:#fff; font:inherit; font-size:15px; line-height:1.6; }
.advisor-chat .advisor-composer textarea:focus-visible { outline:3px solid #3155c5 !important; outline-offset:-3px !important; }
.advisor-composer textarea::placeholder { color:#6a765f; opacity:1; }
.advisor-composer-toolbar { display:flex; justify-content:space-between; align-items:flex-end; gap:10px; }
.advisor-attach-actions { display:flex; flex-wrap:wrap; gap:3px; }
.advisor-attach-actions .advisor-button { font-size:12px; border:0; padding:8px 10px; background:transparent; }
.advisor-send { flex-shrink:0; min-height:44px; padding:10px 17px; }
.advisor-send span { font-size:20px; line-height:1; }
.advisor-composer-meta { max-width:850px; margin:9px auto 0; display:flex; justify-content:space-between; gap:12px; font-size:11px; line-height:1.5; color:#637357; }
[data-advisor-status][data-error="true"] { color:#9b3e24; }
.advisor-attachments { display:flex; flex-wrap:wrap; gap:8px; max-width:850px; max-height:min(160px,22dvh); overflow-y:auto; margin:0 auto 10px; }
.advisor-attachments:empty { display:none; }
.advisor-file-chip { display:flex; align-items:center; max-width:100%; border:1px solid #d4dfca; border-radius:9px; background:#f4f8ee; font-size:12px; }
.advisor-file-chip>span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; padding-left:12px; }
.advisor-file-chip .advisor-button { flex-shrink:0; width:44px; border:0; background:transparent; padding:10px; font-size:20px; }
.advisor-message-files { display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; }
.advisor-message-files>span { max-width:100%; padding:4px 9px; border:1px solid #cddbc1; border-radius:7px; font-size:12px; overflow-wrap:anywhere; }
.advisor-uploading { padding:12px; font-size:13px; color:#586c4c; }
.advisor-proposal-card { display:flex; align-items:center; gap:12px; margin:20px 0 10px; padding:17px; border:1px solid #c7d9b7; background:#f7faf2; border-radius:13px; }
.advisor-proposal-symbol { font-size:27px; color:#708c54; }
.advisor-proposal-card>div { flex:1; min-width:0; }
.advisor-proposal-card strong { font-size:14px; line-height:1.6; }
.advisor-proposal-card p { margin:3px 0 0; font-size:12px; color:#617252; }
.advisor-proposal-card .advisor-button { font-size:12px; }
.advisor-message-details { margin:12px 0; font-size:12px; color:#617155; }
.advisor-message-details>summary { min-height:44px; display:list-item; padding-block:11px; cursor:pointer; }
.advisor-sources { margin-top:20px; }
.advisor-sources h4 { margin:0 0 9px; font-size:12px; color:#54694a; font-weight:650; }
.advisor-source-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; max-height:280px; overflow-y:auto; padding:3px; }
.advisor-source-preview { max-height:none; overflow:visible; }
.advisor-more-sources>summary { min-height:44px; padding:12px 3px; color:#3e5f30; font-size:12px; font-weight:600; cursor:pointer; }
.advisor-more-sources>summary:focus-visible { outline:3px solid #3155c5; outline-offset:3px; }
.advisor-more-sources:not([open]) .advisor-sources-hide,.advisor-more-sources[open] .advisor-sources-show { display:none; }
.advisor-source-card { display:flex; flex-direction:column; align-items:flex-start; gap:5px; text-align:left; padding:12px; background:#f7faf3; font-weight:400; min-width:0; overflow-wrap:anywhere; }
.advisor-source-card>span { font-size:10px; color:#5c7251; text-transform:uppercase; letter-spacing:.06em; }
.advisor-source-card>strong { font-size:12px; line-height:1.5; }
.advisor-source-card>small { font-size:11px; color:#617455; line-height:1.5; }
.advisor-source-dialog { width:min(800px,calc(100vw - 32px)); }
.advisor-source-dialog h3 { margin:4px 0 16px; overflow-wrap:anywhere; }
.advisor-source-dialog h4 { font-size:14px; margin:24px 0 10px; }
.advisor-source-dialog .advisor-source-kind { font-size:12px; color:#526b43; margin-bottom:4px; }
.advisor-source-metadata { font-size:13px; display:grid; gap:10px; margin:18px 0; }
.advisor-source-metadata>div { display:grid; grid-template-columns:135px minmax(0,1fr); gap:12px; }
.advisor-source-metadata dt { color:#627457; }.advisor-source-metadata dd { margin:0; overflow-wrap:anywhere; }
.advisor-source-excerpt { padding:18px; margin:12px 0; max-height:440px; overflow:auto; white-space:pre-wrap; overflow-wrap:anywhere; font:inherit; font-size:14px; line-height:1.8; background:#f3f7ed; border:1px solid #d6e0ca; border-radius:10px; }
.advisor-source-dialog .advisor-source-explanation { font-size:12px; }
.advisor-source-identifiers summary { display:flex; align-items:center; min-height:44px; cursor:pointer; font-size:12px; text-decoration:underline; text-underline-offset:3px; }
.advisor-source-original { margin-top:24px; padding-top:14px; border-top:1px solid #dce4d3; }
.advisor-pdf-preview { display:block; width:100%; height:450px; max-height:60dvh; border:1px solid #b3c3a4; border-radius:8px; margin-top:16px; }
.advisor-file-chip>span>small { display:block; font-size:11px; line-height:1.5; white-space:normal; padding:4px 0 7px; }
.advisor-file-freshness { display:block; flex-basis:100%; font-size:11px; line-height:1.6; color:#715233; overflow-wrap:anywhere; }
@media(max-width:560px) { .advisor-source-cards { grid-template-columns:minmax(0,1fr); }.advisor-source-metadata>div { grid-template-columns:1fr; gap:3px; }.advisor-source-excerpt { padding:14px; } }
.advisor-request-error { margin:0 0 25px; padding:16px; border:1px solid #e1c6a8; border-radius:12px; background:#fff8ef; color:#80502d; font-size:14px; line-height:1.7; }
.advisor-request-error p { margin:0 0 12px; }
.advisor-request-error>div { display:flex; flex-wrap:wrap; gap:8px; }
.advisor-earlier { display:flex; margin:0 auto 24px; font-size:12px; }
.advisor-dialog { width:min(680px,calc(100vw - 32px)); max-height:calc(100dvh - 40px); margin:auto; padding:24px; border:1px solid #a6b896; border-radius:18px; background:#fff; color:#263a21; overflow:auto; box-shadow:0 20px 90px #17231238; }
.advisor-dialog::backdrop { background:#14200fd0; }
.advisor-dialog header { display:flex; align-items:center; justify-content:space-between; gap:15px; margin-bottom:18px; }
.advisor-dialog h2 { font-size:21px; line-height:1.4; margin:0; }
.advisor-dialog p { font-size:14px; line-height:1.8; margin:12px 0; color:#596b4e; }
.advisor-dialog footer { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:10px; margin-top:22px; }
.advisor-field { display:flex; flex-direction:column; gap:7px; font-size:13px; font-weight:600; min-width:0; }
.advisor-field input,.advisor-field select,.advisor-field textarea { width:100%; min-width:0; min-height:46px; padding:10px 12px; border:1px solid #b8c7aa; border-radius:8px; background:#fff; color:#283d21; font:inherit; font-size:15px; font-weight:400; }
.advisor-field textarea { resize:vertical; }
.advisor-material-choice { display:flex; align-items:center; gap:12px; padding:14px 0; min-height:60px; border-bottom:1px solid #e4eadd; cursor:pointer; }
.advisor-material-choice>input,.advisor-review>input { flex-shrink:0; width:23px; height:23px; accent-color:#345328; }
.advisor-material-choice>span { min-width:0; }
.advisor-material-choice strong,.advisor-material-choice small { display:block; overflow-wrap:anywhere; }
.advisor-material-choice strong { font-size:14px; line-height:1.6; }
.advisor-material-choice small { margin-top:4px; font-size:12px; color:#65735a; }
.advisor-proposal-dialog { width:min(850px,calc(100vw - 32px)); }
.advisor-proposal-row { margin:14px 0; padding:0 16px 12px; border:1px solid #d7e1cc; border-radius:11px; }
.advisor-proposal-row>summary { font-size:15px; font-weight:650; cursor:pointer; min-height:52px; padding:15px 0; overflow-wrap:anywhere; }
.advisor-proposal-fields { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; padding:5px 0; }
.advisor-wide { grid-column:1/-1; }
.advisor-dialog .advisor-row-source { font-size:12px; }
.advisor-row-warnings { font-size:13px; color:#87542f; padding-left:19px; line-height:1.7; }
.advisor-field-error { color:#9c3e25 !important; font-size:12px !important; }
.advisor-field input[aria-invalid="true"] { border-color:#b85836; }
[data-advisor-validation] { padding:12px 14px; background:#eef4e7; border-radius:9px; font-size:13px; line-height:1.7; }
.advisor-review { display:flex; align-items:flex-start; gap:12px; font-size:14px; line-height:1.8; padding:14px 0; }
.advisor-review>input { margin-top:3px; }
.advisor-history-dialog>div { margin-top:18px; }
.advisor-rename-dialog,.advisor-archive-dialog { width:min(480px,calc(100vw - 32px)); }
.advisor-sr-only { position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
html.large-text .advisor-chat :is(.advisor-message-content,.advisor-composer textarea,.advisor-welcome p),html.large-text .advisor-dialog :is(p,input,textarea,select,.advisor-review) { font-size:1.125rem; }
html.large-text .advisor-chat :is(.advisor-button,.advisor-send,.advisor-thread>.advisor-button:first-child),html.large-text .advisor-dialog .advisor-button { font-size:1rem; }
html.high-contrast .advisor-chat { --chat-muted:#29451d; --chat-line:#526b3d; }
html.high-contrast :is(.advisor-workspace,.advisor-composer,.advisor-dialog,.advisor-proposal-card,.advisor-field input,.advisor-field select,.advisor-field textarea) { border:2px solid #36551d; }
html.high-contrast .advisor-chat :is(.advisor-kicker,.advisor-message-author,.advisor-thinking,.advisor-composer-meta,.advisor-welcome p,.advisor-message-details) { color:#29451d; }
@media(max-width:1180px) { .advisor-workspace { grid-template-columns:200px minmax(0,1fr); } .advisor-chat-header { padding:16px; } .advisor-header-actions [data-advisor-action="rename"] { display:none; } .advisor-compose-area { padding:0 16px 14px; } .advisor-composer-meta>span:last-child { display:none; } }
@media(max-width:850px) { .advisor-workspace { display:flex; flex-direction:column; } .advisor-history { display:none; } .advisor-chat-panel { flex:1; } .advisor-mobile-history { display:inline-flex; font-size:12px; padding-inline:10px; } .advisor-chat-header { gap:10px; } .advisor-chat-header h2 { font-size:15px; } .advisor-header-actions [data-advisor-action="new-thread"] { font-size:12px; padding-inline:8px; } .advisor-scroll { padding:22px 18px; } }
@media(max-width:560px) { .advisor-workspace { border-radius:14px; } .advisor-chat-header { padding:12px; } .advisor-kicker { font-size:9px; } .advisor-chat-header h2 { font-size:14px; } .advisor-scroll { padding:24px 14px; } .advisor-compose-area { padding:0 10px 12px; } .advisor-composer { padding:9px; border-radius:13px; } .advisor-composer textarea { font-size:16px; min-height:70px; } .advisor-composer-toolbar { gap:3px; align-items:flex-end; } .advisor-attach-actions { gap:0; } .advisor-attach-actions .advisor-button { font-size:11px; padding-inline:7px; } .advisor-send { font-size:12px; padding-inline:12px; } .advisor-send span { display:none; } .advisor-welcome { padding-top:12px; } .advisor-welcome h3 { font-size:26px; } .advisor-welcome p { font-size:14px; } .advisor-suggestions { gap:8px; margin-top:22px; } .advisor-suggestions .advisor-button { padding:12px; font-size:12px; } .advisor-message-content { font-size:14px; } .advisor-chat-message.is-user { margin-left:12px; } .advisor-proposal-card { flex-wrap:wrap; padding:13px; } .advisor-proposal-card>.advisor-button { width:100%; } .advisor-dialog { padding:18px; max-height:calc(100dvh - 24px); } .advisor-dialog h2 { font-size:18px; } .advisor-dialog header { align-items:flex-start; } .advisor-dialog header>.advisor-button { font-size:12px; padding-inline:10px; } .advisor-proposal-fields { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; } .advisor-field input,.advisor-field textarea,.advisor-field select { font-size:16px; } .advisor-proposal-row { padding-inline:12px; } }
@media(prefers-reduced-motion:reduce) { .advisor-chat * { scroll-behavior:auto !important; animation:none !important; transition:none !important; } }
