:root {
  font-family: "Segoe UI", Arial, sans-serif;
  font-size: 16px;
  line-height: 1.6;
  color: #252729;
  background: #f6f6f4;
  font-synthesis: none;
  --ink: #252729;
  --muted: #626668;
  --line: #e3e3df;
  --soft: #f5f5f2;
  --accent: #c53636;
  --accent-brand: #d74343;
  --accent-soft: #fff1ef;
  --brand-green: #00c400;
  --brand-green-line: #c5e6c5;
  --success: #16713f;
  --success-bright: #00c200;
  --success-soft: #eef8ee;
  --warning: #805000;
  --warning-soft: #fff6df;
  --error: #9e2029;
  --error-soft: #fff0f2;
}
* { box-sizing: border-box; }
body { margin: 0; }
.new-project-dialog { width: min(560px,calc(100vw - 32px)); max-height: calc(100dvh - 32px); overflow-y: auto; border: 1px solid var(--line); border-radius: 18px; padding: 28px; color: var(--ink); background: #fff; box-shadow: 0 20px 70px #292b2d30; }
.new-project-dialog::backdrop { background: #292b2d55; backdrop-filter: blur(3px); }
.project-organization-picker { min-inline-size: 0; margin: 18px 0 0; padding: 0; border: 0; font-size: 14px; }
.project-organization-picker legend { padding: 0; margin-bottom: 7px; font-weight: 600; }
.project-organization-choices { display: grid; gap: 6px; }
.project-organization-choice { display: block; position: relative; }
.project-organization-choice input { position: absolute; left: 12px; top: 50%; width: 16px; height: 16px; margin: 0; transform: translateY(-50%); accent-color: var(--accent); cursor: pointer; }
.project-organization-choice span { display: block; min-height: 38px; padding: 7px 12px 7px 36px; border: 1px solid #d1cfcb; border-radius: 8px; background: #fafaf8; cursor: pointer; }
.project-organization-choice:hover input:enabled + span { border-color: var(--accent); }
.project-organization-choice input:checked + span { border-color: var(--accent); background: var(--accent-soft); font-weight: 600; }
.project-organization-choice input:focus-visible { outline: none; }
.project-organization-choice input:focus-visible + span { outline: 2px solid var(--accent); outline-offset: 2px; }
.project-organization-choice input:disabled, .project-organization-choice input:disabled + span { cursor: wait; opacity: .6; }
.project-create-actions { display: flex; justify-content: flex-end; margin-top: 18px; }
.workflow-choices { display: grid; gap: 12px; margin-top: 22px; }
.workflow-choice { display: grid; gap: 6px; width: 100%; text-align: left; border: 1px solid #e2dedb; border-radius: 12px; padding: 18px 20px; background: #fafaf8; }
.workflow-choice strong { font-size: 18px; }
.workflow-choice span { font-size: 14px; color: var(--muted); }
.workflow-choice:hover:not(:disabled) { background: var(--accent-soft); border-color: var(--accent); }
.document-conditions { font-size: 14px; color: var(--muted); }
.document-conditions h4 { margin-bottom: 6px; color: var(--ink); }
.document-conditions ul { padding-left: 20px; }
.document-conditions li { margin-bottom: 8px; }
.chat-pdf-author,.release-author { display: block; color: var(--muted); font-size: 13px; font-weight: 400; }
.chat-pdf-state { display: block; color: var(--warning); font-size: 13px; }
.chat-pdf.outdated { border-color: #d8b66a; background: var(--warning-soft); }
.release-card.outdated { border-color: #d8b66a; background: var(--warning-soft); }
.messages .message.token-request .message-content { border-color: #d4aa4b; background: #fff8e8; }
.token-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.token-result { margin-top: 12px; font-size: 14px; color: #68511b; }
.project-glyph.project-glyph-document_bundle,.project-item.active .project-glyph.project-glyph-document_bundle { color: #686264; background: #f4f2f1; border-color: #ded9d6; }
.project-glyph.project-glyph-document_bundle svg { fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linejoin: round; }
button, input, textarea { font: inherit; }
button, a, input, textarea, summary { -webkit-tap-highlight-color: transparent; }
button { color: inherit; cursor: pointer; }
button:disabled { cursor: wait; opacity: .55; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible {
  outline: 3px solid var(--accent);
  outline-offset: 3px;
}
a { color: var(--accent); text-underline-offset: 3px; }
[hidden] { display: none !important; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; top: 8px; left: 8px; z-index: 100; background: #fff; padding: 12px; transform: translateY(-150%); }
.skip-link:focus { transform: translateY(0); }

/* Light reading surfaces; brand red marks actions and green marks success. */
.app-shell { display: grid; grid-template-columns: 246px minmax(0,1fr); height: 100dvh; min-height: 560px; }
.sidebar { display: flex; flex-direction: column; min-height: 0; background: #f3f3f0; border-right: 1px solid #e3e2de; padding: 26px 16px 18px; }
.brand { display: flex; align-items: center; justify-content: center; width: 185px; max-width: 100%; min-height: 96px; text-decoration: none; }
.brand-wordmark { display: block; width: 100%; height: auto; object-fit: contain; }
.workspace-label { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: 13px; margin: 25px 2px 17px; }
.small-dot { display: inline-block; flex: none; width: 6px; height: 6px; border-radius: 50%; background: #d74343; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; border: 1px solid transparent; border-radius: 10px; padding: 10px 15px; font-size: 15px; font-weight: 600; line-height: 1.35; text-decoration: none; transition: background .15s, border-color .15s; }
.button.primary { background: var(--accent); border-color: var(--accent); color: #fff; box-shadow: 0 3px 9px #c536361c; }
.button.primary:hover:not(:disabled) { background: #b63030; border-color: #b63030; }
.button.secondary { background: #fff; color: #202124; border-color: #858c97; }
.button.secondary:hover:not(:disabled) { background: #f0f1f3; border-color: #52565e; }
.button.subtle { background: #fff; border-color: var(--line); color: #303238; }
.new-project { width: 100%; justify-content: flex-start; padding: 11px 13px; }
.new-project span { font-size: 22px; font-weight: 400; line-height: 1; }
.section-label { display: flex; justify-content: space-between; align-items: center; margin: 26px 7px 10px; color: #50545a; font-size: 13px; font-weight: 650; text-transform: uppercase; letter-spacing: .7px; }
.count { display: inline-flex; min-width: 25px; min-height: 25px; padding: 0 7px; align-items: center; justify-content: center; border: 1px solid #e3dad7; border-radius: 7px; background: #f7efec; color: #9c3535; font-size: 13px; letter-spacing: 0; font-weight: 600; }
.project-list { overflow: auto; min-height: 0; scrollbar-width: thin; margin: 0 -4px; padding: 1px 4px; }
.project-item { display: flex; align-items: flex-start; gap: 9px; text-align: left; width: 100%; border: 1px solid transparent; background: none; border-radius: 8px; padding: 12px 10px; margin-bottom: 6px; }
.project-item:hover { background: #eeefeb; }
.project-item.active { background: #fff1ef; border-color: #edc9c5; box-shadow: inset 3px 0 var(--accent),0 3px 10px #2b2d2e0b; }
.project-item.active .project-item-title { color: #9c3535; }
.project-glyph { flex: none; display: grid; place-items: center; width: 27px; height: 31px; border: 1px solid #c3c6cc; border-radius: 5px; color: #656970; background: #fff; font-size: 16px; }
.project-item.active .project-glyph { color: #202124; border-color: #a5a9b0; background: #f0f1f3; }
.project-glyph svg { width: 20px; height: 24px; fill: currentColor; }
.project-glyph-electric_low svg { width: 13px; height: 17px; }
.project-glyph-electric_medium svg { width: 23px; height: 29px; }
.project-glyph-electric_low, .project-item.active .project-glyph-electric_low { color: #9a5800; border-color: #ecd29a; background: #fff1ca; }
.project-glyph-electric_medium, .project-item.active .project-glyph-electric_medium { color: #b54708; border-color: #efc39c; background: #ffead7; }
.project-glyph-water, .project-item.active .project-glyph-water { color: #0369a1; border-color: #aed8ef; background: #e0f2fe; }
.project-glyph-unknown svg { width: 15px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.project-item-text { min-width: 0; flex:1; }
.project-item-type,.project-item-title,.project-item-address { display:block; overflow-wrap:normal; word-break:normal; hyphens:none; white-space:normal; }
.project-item-type { font-size:11px; font-weight:500; line-height:1.35; color:#3c4248; margin-bottom:3px; }
.project-item-title { font-size:13px; font-weight:600; line-height:1.4; color:#202428; }
.project-item-address { font-size:13px; font-weight:400; line-height:1.4; color:#3c4248; margin-top:3px; }
.project-item-meta { display: block; font-size: 11px; color: #3c4248; margin-top: 5px; }
.sidebar-empty { font-size: 14px; line-height: 1.6; color: var(--muted); padding: 4px 9px; }
.sidebar-footer { margin-top: auto; padding-top: 18px; }
.settings-button { width: 100%; display: flex; align-items: center; gap: 10px; background: none; border: 0; border-top: 1px solid var(--line); padding: 18px 5px 9px; text-align: left; font-size: 15px; font-weight: 600; }
.settings-button:hover { color: var(--accent); }
.settings-icon { font-size: 22px; color: #6d6d68; }
.settings-button small { display: block; font-size: 13px; font-weight: 400; color: var(--muted); margin-top: 3px; }
.chevron { margin-left: auto; font-size: 24px; color: #646870; }
.sidebar-note { font-size: 13px; color: var(--muted); margin: 12px 5px 0; }

.main-workspace { display: flex; flex-direction: column; min-width: 0; min-height: 0; background: #fff; }
.workspace-header { display: flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 106px; padding: 19px 28px; border-bottom: 1px solid var(--line); background: #fff; }
.object-heading { min-width: 0; }
.eyebrow { font-size: 13px; text-transform: uppercase; letter-spacing: .8px; font-weight: 600; color: #a43c3c; }
.object-heading h1 { margin: 6px 0 0; font-size: 23px; line-height: 1.3; font-weight: 650; letter-spacing: -.3px; overflow-wrap: anywhere; }
.project-organization { margin: 4px 0 0; color: #454c53; font-size: 13px; line-height: 1.4; overflow-wrap: anywhere; }
.header-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 10px; flex-shrink: 0; }
#download-bundle { border-color: #deded8; color: #484b4d; background: #fff; }
#download-bundle:hover:not(:disabled) { border-color: #abaeaa; background: #f4f5f1; }
#download-bundle[aria-busy="true"] { cursor: progress; }
#download-bundle .bundle-download-label { display:flex; flex-direction:column; align-items:flex-start; min-width:0; gap:2px; text-align:left; }
#download-bundle .bundle-download-composition { max-width:100%; color:#414849; font-size:11px; line-height:1.25; font-weight:500; white-space:normal; overflow-wrap:normal; }
.release-mode-control { display: grid; gap: 3px; max-width: 100%; color: #414849; font-size: 12px; line-height: 1.25; }
.release-mode-control label { font-weight: 600; }
.release-mode-control select { min-height: 36px; max-width: 100%; padding: 6px 8px; border: 1px solid #aaaeb0; border-radius: 7px; background: #fff; color: #26292c; font: inherit; font-size: 14px; }
.release-mode-control select:disabled { background: #f3f3ef; }
.release-mode-hint { font-size: 11px; }
.preview-badge.release-mode-ready { background: #e9f4e9; color: #245a32; border-color: #c4dfc6; }
#build-release { color: #b63030; border-color: #e2d6d2; background: #fbf4f1; }
#build-release:hover:not(:disabled) { border-color: #d69e98; background: #fae8e3; }
.status-pill { display: inline-flex; align-items: center; gap: 7px; padding: 7px 10px; border: 1px solid #d6d8dc; border-radius: 6px; font-size: 13px; color: #52565e; background: #f5f6f7; }
.status-dot { width: 7px; height: 7px; flex: none; background: #73777e; border-radius: 50%; }
.status-pill.ready .status-dot { background: var(--success-bright); box-shadow: 0 0 0 1px var(--success); }
.status-pill.error { color: var(--error); background: var(--error-soft); border-color: #e2acac; }
.status-pill.error .status-dot { background: var(--error); }
.content-columns { display: grid; grid-template-columns: minmax(0,1fr); flex: 1; min-height: 0; }
.chat-column { min-width: 0; min-height: 0; display: flex; flex-direction: column; background: #f7f7f4; }
.chat-scroll { flex: 1; min-height: 0; overflow: auto; overscroll-behavior: contain; scrollbar-width: thin; padding: 30px 30px 20px; scroll-behavior: smooth; }
.messages { max-width: 820px; margin: 0 auto; }
.message { margin: 0 0 30px; display: flex; align-items: flex-start; gap: 12px; }
.message-avatar { width: 32px; height: 32px; border-radius: 9px; flex: none; display: grid; place-items: center; font-size: 12px; font-weight: 650; background: #f1f1ed; color: #656763; border: 1px solid #e0e0d9; }
.message-content { min-width: 0; max-width: calc(100% - 44px); flex: 1; }
.message-meta { display: flex; align-items: center; flex-wrap: wrap; column-gap: 12px; row-gap: 1px; font-size: 13px; color: #3c4248; margin: 3px 0 9px; }
.message-author { font-weight: 650; color: #202428; }
.message-text { white-space: pre-wrap; overflow-wrap: anywhere; font-size: 15px; line-height: 1.5; color: #202428; }
.message.user { flex-direction: row-reverse; }
.message.user .message-avatar { display: none; }
.message.user .message-content { flex: initial; max-width: 94%; background: #fff; border: 1px solid #e5dfdb; border-radius: 18px 5px 18px 18px; padding: 14px 18px; }
.message.user .message-author { color: #8d3c38; }
.message.user .message-meta { margin: 0 0 7px; }
.message.user .message-text { font-size: 15px; }
.message.system .message-avatar { color: #16713f; background: #eef8ee; border-color: #cde5d1; }
.message.system .message-content { padding: 12px 15px; background: #f6f7f8; border: 1px solid #e0e2e5; border-left: 3px solid #989da6; border-radius: 6px; }
.message.system .message-text { color: #202428; font-size: 15px; line-height: 1.5; }
.message.system.success .message-content { background: var(--success-soft); border-color: #bddbc8; border-left-color: var(--success); }
.message.system.success .message-text { color: #205438; }
.message.system.error .message-content { background: var(--error-soft); border-color: #ebc4c4; border-left-color: var(--error); }
.message.system.error .message-text { color: #872727; }
.message.system.warning .message-content { background: var(--warning-soft); border-color: #ead8ae; border-left-color: #a36c00; }
.message.system.warning .message-text { color: #72500c; }
.message-changes { margin-top: 14px; padding-top: 10px; border-top: 1px solid var(--line); font-size: 14px; line-height: 1.7; color: #3c4248; }
.busy-indicator { display: flex; align-items: center; gap: 10px; max-width: 820px; margin: 5px auto 18px; padding: 10px 14px; border-radius: 7px; color: #8d3c38; background: var(--accent-soft); font-size: 15px; }
.spinner { display: inline-block; flex: none; width: 18px; height: 18px; border: 2px solid #e4c7c1; border-top-color: var(--accent); border-radius: 50%; animation: spin .8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }

.composer-area { padding: 10px 28px 18px; max-width: 100%; background: #fff; border-top: 1px solid #e4e5de; }
.composer { border: 1px solid #d7d9d0; border-radius: 14px; background: #fff; overflow: hidden; box-shadow: 0 4px 18px #30332c0b; }
.composer:focus-within { border-color: var(--accent); box-shadow: 0 0 0 2px #c5363620; }
.composer textarea { display: block; resize: none; border: 0; padding: 15px 16px 8px; min-height: 80px; max-height: 200px; width: 100%; color: #202428; background: transparent; font-size: 17px; line-height: 1.6; outline: none; }
.composer textarea::placeholder { color: #3c4248; opacity: 1; }
.composer textarea:focus-visible { outline: none; }
.composer-toolbar { display: flex; justify-content: space-between; align-items: center; padding: 8px 11px 11px; gap: 10px; }
.composer-left { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; min-width: 0; }
.attach-button { display: flex; align-items: center; gap: 5px; color: #98403b; font-size: 15px; min-height: 40px; padding: 6px 9px; background: #f6f5ef; border: 1px solid #e1e2d9; border-radius: 7px; }
.attach-button:hover { background: #edeee6; border-color: #bbbfb2; }
.undo-correction { font-size:12px; min-height:34px; padding:5px 8px; color:#30383e; background:#fff; }
.undo-correction[hidden] { display:none; }
.undo-correction span { font-size:17px; }
.undo-correction:disabled { opacity:.5; cursor:not-allowed; }
.attach-button span { font-size: 21px; line-height: 1; }
.supported-files { font-size: 12px; color: #3c4248; }
.send-button { padding: 10px 15px; font-size: 15px; flex: none; }
.send-button>span:last-child { font-size: 21px; line-height: 1; margin-left: 3px; }
.composer-note { display: flex; justify-content: space-between; gap: 14px; margin: 10px 2px 0; font-size: 12px; color: #3c4248; }
.connection-hint { padding: 3px 1px 12px; font-size: 14px; line-height: 1.6; color: #3c4248; }
.connection-hint button { border: 0; background: none; color: var(--accent); padding: 0 3px; text-decoration: underline; font-size: 14px; }

/* Sources and output links are available in the on-demand object dialog. */
.detail-section { padding: 0 0 25px; margin: 0 0 25px; border-bottom: 1px solid var(--line); }
.detail-section-title { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 16px; }
.detail-section h3 { font-size: 16px; font-weight: 650; color: #353940; margin: 0; }
.section-symbol { color: #727882; font-size: 20px; }
.empty-copy { font-size: 14px; line-height: 1.7; color: var(--muted); margin: 0; }
.file-list, .release-list { display: flex; flex-direction: column; gap: 10px; }
.file-card { display: flex; align-items: flex-start; gap: 10px; padding: 12px 11px; border: 1px solid #d2d6dc; border-radius: 8px; background: #fff; text-decoration: none; }
.file-card[href]:hover { border-color: #7e8477; background: #f6f6f3; }
.file-kind { flex: none; display: grid; place-items: center; width: 34px; height: 38px; background: #f1f2f4; border: 1px solid #d9dce1; border-radius: 4px; color: #444951; font-size: 11px; font-weight: 650; }
.file-card-content { min-width: 0; }
.file-name { display: block; color: #303641; font-size: 14px; font-weight: 600; overflow-wrap: anywhere; line-height: 1.55; }
.file-meta { font-size: 13px; color: #5e6570; line-height: 1.6; margin-top: 5px; }
.field-list { margin: 0; }
.field-row { margin-bottom: 23px; }
.field-row:last-child { margin-bottom: 0; }
.field-row dt { font-size: 14px; color: #585d66; font-weight: 500; margin: 0 0 6px; }
.field-row dd { margin: 0; color: #242830; font-size: 16px; font-weight: 550; line-height: 1.65; overflow-wrap: anywhere; }
.field-source { display: block; font-size: 13px; font-weight: 400; line-height: 1.6; color: #5a626e; margin-top: 5px; }
.field-evidence { margin-top: 6px; }
.field-evidence>summary.field-source { display: list-item; cursor: pointer; margin-left: 16px; }
.field-evidence[open] { margin-top: 9px; padding: 9px 10px; background: var(--accent-soft); border: 1px solid #e4d8d2; border-radius: 7px; }
.field-evidence[open]>summary.field-source { color: #8f3d37; margin-top: 0; }
.field-evidence-link { display: inline-block; font-size: 14px; font-weight: 600; margin: 9px 0 3px; }
.field-evidence-quote { font-size: 14px; font-weight: 400; line-height: 1.7; color: #50534d; margin: 8px 0 2px; white-space: pre-wrap; overflow-wrap: anywhere; }
.project-search { width: 100%; min-height: 42px; margin: 18px 0 6px; padding: 9px 10px; border: 1px solid #c5c7bd; border-radius: 6px; background: #fff; color: #202124; font-size: 15px; }
.ai-cost { margin: 1px 0 12px; color: #555d68; font-size: 14px; line-height: 1.6; font-weight: 400; font-variant-numeric: tabular-nums; }
.sidebar-tool { display: block; text-align: left; width: 100%; border: 0; padding: 10px 5px; color: #555d68; background: transparent; font-size: 14px; line-height: 1.5; border-radius: 5px; }
.sidebar-tool:hover { color: #b63030; background: #f1eeea; }
.sidebar-tool[aria-pressed=true] { background: #f1eeea; color: #b63030; }
.project-search-panel>label { display: block; font-size: 13px; line-height: 1.6; color: #555d68; margin-top: 7px; }
.project-search-panel .project-search { margin-top: 6px; }
.project-row { display: flex; position: relative; align-items: center; min-width: 0; }
.project-row>.project-item { flex: 1; padding-right: 32px; min-width: 0; }
.project-more { position: absolute; top: 9px; right: 4px; display: grid; place-items: center; width: 27px; height: 29px; border: 0; border-radius: 4px; background: transparent; color: #606873; font-size: 23px; line-height: 1; }
.project-more:hover, .project-item.active~.project-more { color: #c53636; background: #f6e1da; }
.project-menu { position: fixed; width: min(292px,calc(100vw - 16px)); max-height: calc(100dvh - 16px); overflow-y: auto; z-index: 25; padding: 6px; border: 1px solid #dfdcd6; border-radius: 11px; background: #fff; box-shadow: 0 10px 30px #23282722; }
.project-menu button { display: block; width: 100%; border: 0; border-radius: 4px; background: #fff; color: #303742; padding: 10px; font-size: 15px; text-align: left; }
.project-menu button:hover { background: #fbf4f1; }
.project-menu hr { border: 0; border-top: 1px solid #e0e2e6; margin: 5px 0; }
.menu-reference { padding: 10px 10px 5px; border-radius: 7px; background: #f7f6f3; }
.menu-object-title { font-size: 13px; font-weight: 600; color: #98403b; overflow-wrap: anywhere; margin-bottom: 12px; }
.menu-reference .ai-cost { margin-bottom: 10px; }
.menu-designer { display: grid; gap: 2px; margin-bottom: 4px; font-size: 13px; color: #5b626c; }
.menu-designer strong { color: #303742; font-size: 14px; font-weight: 400; }
.menu-value { display: block; font-size: 13px; color: #606773; overflow-wrap: anywhere; }
.menu-feedback { padding: 5px 10px; color: var(--error); font-size: 14px; line-height: 1.6; }
.object-dialog-subtitle { font-size: 14px; color: #5b626c; overflow-wrap: anywhere; margin: 8px 0 22px; }
.object-details-dialog { width: min(760px,calc(100vw - 28px)); max-height: calc(100dvh - 32px); overflow-y: auto; padding: 25px; border: 1px solid #b9bdc4; border-radius: 10px; color: #202124; background: #fff; }
.object-details-dialog::backdrop { background: #17191d66; }
.object-details-dialog h2 { font-size: 23px; line-height: 1.3; margin: 0; }
.object-details-dialog .dialog-heading { margin-bottom: 8px; }
.object-details-dialog .detail-section:last-child { margin-bottom: 0; padding-bottom: 0; }
.project-menu button.menu-delete { color: #9f3333; }
.project-menu button.menu-delete:hover { background: #fff0f0; }
.rename-dialog { width: min(460px,calc(100vw - 28px)); padding: 24px; border: 1px solid #c5c9cf; border-radius: 9px; }
.rename-dialog::backdrop { background: #17191d66; }
.rename-dialog h2 { font-size: 22px; margin: 0 0 22px; }
.rename-dialog label { display: block; font-size: 15px; margin-bottom: 8px; }
.rename-dialog input { width: 100%; padding: 11px; font-size: 16px; border: 1px solid #c5c7bd; border-radius: 5px; }
.rename-actions { display: flex; justify-content: flex-end; gap: 9px; margin-top: 22px; }
.chat-pdf { display: grid; gap: 7px; max-width: 560px; padding: 14px 16px; margin-top: 14px; border: 1px solid #dedbd2; border-left: 4px solid #d74343; border-radius: 9px; color: #4f504b; background: #f7f6f3; font-size: 15px; text-decoration: none; box-shadow: 0 2px 7px #282a2908; }
.chat-pdf strong { justify-self: start; margin-top: 3px; padding: 5px 9px; border-radius: 6px; color: #b63030; background: #f2e4dc; font-size: 14px; }
.chat-pdf-name { color: #202428; font-size: 14px; line-height: 1.5; overflow-wrap: anywhere; }
.chat-pdf:hover { border-color: #b7a69c; background: #fbf7f0; }
.project-restore { flex-shrink: 0; padding: 6px; border: 1px solid #c5c9cf; border-radius: 4px; color: #444c57; background: #fff; font-size: 12px; }
.project-trash-item { padding: 12px 7px; }
.file-open { display: block; color: inherit; text-decoration: none; }
.file-open:hover .file-name { text-decoration: underline; }
.file-purpose { width: 100%; min-height: 38px; padding: 7px 5px; margin-top: 10px; border: 1px solid #9299a4; border-radius: 5px; background: #fff; color: #333b47; font-size: 14px; }
.search-result { display: block; text-align: left; padding: 10px 13px; margin-top: 10px; border: 1px solid #e1d7ce; border-radius: 6px; background: var(--accent-soft); color: #4f504b; font-size: 16px; }
.releases-section { border-bottom: 0; }
.release-card { display: block; padding: 13px 14px; border: 1px solid #dfd9ce; border-left: 3px solid #d74343; border-radius: 7px; text-decoration: none; background: var(--accent-soft); color: #4f504b; }
.release-card:hover { border-color: #baa69a; background: #faf4eb; }
.release-name { font-size: 14px; font-weight: 600; display: flex; gap: 7px; line-height: 1.7; overflow-wrap: anywhere; }
.release-date { display: block; font-size: 13px; color: #6a6d61; margin-top: 6px; }

/* Color communicates actionable state, not decoration. */
.notice { display: flex; align-items: center; justify-content: space-between; gap: 12px; background: var(--warning-soft); border-bottom: 1px solid #ead7aa; color: var(--warning); padding: 12px 20px; font-size: 15px; line-height: 1.65; }
.notice.error { background: var(--error-soft); border-color: #e3b2b2; color: var(--error); }
.notice.success { background: var(--success-soft); border-color: #b9d9c5; color: var(--success); }
.notice button { border: 0; background: none; font-size: 26px; color: inherit; padding: 0 5px; min-width: 36px; }
.settings-dialog { width: min(600px,calc(100vw - 32px)); max-height: calc(100dvh - 32px); overflow: auto; border: 1px solid #b9bdc4; border-radius: 13px; padding: 27px; box-shadow: 0 24px 80px #00000033; color: #202124; background: #fff; }
.settings-dialog::backdrop { background: #17191d77; backdrop-filter: blur(2px); }
.dialog-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.dialog-heading h2 { font-weight: 650; font-size: 26px; letter-spacing: -.3px; margin: 7px 0 0; }
.icon-button { border: 0; background: transparent; font-size: 30px; font-weight: 400; line-height: 1; min-width: 36px; min-height: 36px; padding: 3px 6px; border-radius: 5px; color: #555c67; }
.icon-button:hover { background: #e9ecf1; color: #202124; }
.dialog-description { font-size: 16px; line-height: 1.7; color: #535b66; margin: 20px 0; }
.settings-state { font-size: 14px; line-height: 1.7; padding: 11px 13px; border: 1px solid #d8dce2; border-radius: 7px; background: #f5f6f8; color: #62665d; margin-bottom: 22px; }
.settings-dialog label { display: block; margin: 20px 0 8px; font-size: 16px; font-weight: 600; color: #30363f; }
.settings-dialog label span { font-size: 14px; font-weight: 400; color: #606773; margin-left: 6px; }
.settings-dialog input { display: block; width: 100%; min-width: 0; padding: 12px 13px; border: 1px solid #c5c7bd; border-radius: 7px; background: #fff; color: #242a34; font-size: 16px; }
.settings-dialog input::placeholder { color: #6a6e65; opacity: 1; }
.input-help { margin: 9px 0 0; color: #5a626e; font-size: 14px; line-height: 1.7; overflow-wrap: anywhere; }
.advanced-settings { margin-top: 22px; font-size: 15px; color: #5b6055; }
.advanced-settings summary { cursor: pointer; display: list-item; width: fit-content; }
.advanced-settings label { margin-top: 15px; }
.dialog-actions { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 14px; margin-top: 26px; padding-top: 20px; border-top: 1px solid var(--line); }
.dialog-actions>div { display: flex; gap: 9px; margin-left: auto; }
.dialog-actions .button { font-size: 15px; padding: 10px 13px; }
.danger-text { background: none; color: #9f3333; font-weight: 500; padding-left: 0 !important; }
.danger-text:hover { color: #771d1d; text-decoration: underline; }
.settings-feedback { font-size: 15px; line-height: 1.7; color: var(--success); background: var(--success-soft); border-left: 3px solid #409266; padding: 12px 14px; border-radius: 6px; margin: 22px 0 0; }
.settings-feedback.error { color: var(--error); background: var(--error-soft); border-left-color: #b54040; }

.welcome { max-width: 620px; margin: clamp(10px,5vh,55px) auto 30px; text-align: center; }
.welcome-symbol { display: grid; place-items: center; margin: 0 auto 25px; width: 68px; height: 68px; border-radius: 18px; background: #fff1ef; border: 1px solid #ded5cf; box-shadow: 0 7px 20px #c5363610; }
.welcome-symbol span { font-size: 40px; line-height: 1; color: #c53636; }
.welcome h2 { font-size: 31px; line-height: 1.3; font-weight: 600; letter-spacing: -.5px; color: #202124; margin: 15px 0; }
.welcome>p { font-size: 17px; line-height: 1.8; color: #555d68; margin: 18px 0; }
.welcome-steps { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px 20px; margin: 27px 0; }
.welcome-steps>span { display: flex; align-items: center; gap: 7px; font-size: 14px; color: #62665d; }
.welcome-steps b { display: grid; place-items: center; width: 24px; height: 24px; background: #fff1ef; border: 1px solid #e3dad7; border-radius: 50%; font-size: 13px; font-weight: 650; color: #98403b; }
.sample-request { text-align: left; max-width: 450px; margin: auto; border: 1px solid #e0ded3; border-left: 3px solid #989898; border-radius: 10px; background: #f7f8f3; padding: 15px 18px; }
.sample-label { font-size: 13px; font-weight: 600; color: #656960; }
.sample-request p { font-size: 16px; line-height: 1.7; color: #4a4d47; margin: 7px 0 0; }

@media (min-width: 1600px) {
  .app-shell { grid-template-columns: 270px minmax(0,1fr); }
  .chat-scroll { padding-left: 56px; padding-right: 56px; }
  .composer-area { padding-left: 56px; padding-right: 56px; }
}
@media (max-width: 1250px) {
  .app-shell { grid-template-columns: 216px minmax(0,1fr); }
  .sidebar { padding-left: 12px; padding-right: 12px; }
  .brand { width: 185px; min-height: 96px; }
  .workspace-header { padding: 18px 22px; }
  .status-pill { display: none; }
  .chat-scroll { padding: 25px 22px 20px; }
  .composer-area { padding: 10px 22px 16px; }
  .composer-note>span:last-child { display: none; }
}
@media (max-width: 1080px) {
  .content-columns { grid-template-columns: minmax(0,1fr); }
  .object-heading h1 { font-size: 21px; }
  .header-actions { gap: 8px; }
  .header-actions>.button { padding: 9px 11px; font-size: 14px; }
  .workspace-header { gap: 12px; flex-wrap: wrap; }
  .header-actions { margin-left: auto; }
  .chat-scroll { padding-left: 28px; padding-right: 28px; }
  .composer-area { padding-left: 28px; padding-right: 28px; }
}
@media (max-width: 680px) {
  .app-shell { grid-template-columns: minmax(0,1fr); grid-template-rows: auto minmax(0,1fr); min-height: 440px; }
  .sidebar { min-width: 0; padding: 12px 15px; flex-direction: row; align-items: center; gap: 10px; flex-wrap: wrap; border-right: 0; border-bottom: 1px solid var(--line); }
  .brand { width: 142px; min-height: 70px; }
  .workspace-label, .section-label, .sidebar-note, .sidebar-empty { display: none !important; }
  .new-project { margin-left: auto; width: auto; font-size: 14px; padding: 9px 10px; }
  .new-project span { font-size: 19px; }
  .sidebar-footer { padding: 0; margin: 0; }
  .settings-button { padding: 6px; border: 0; width: auto; gap: 0; }
  .settings-button>span:not(.settings-icon) { display: none; }
  .settings-icon { font-size: 25px; }
  .project-list { display: flex; gap: 7px; order: 5; width: 100%; margin: 0; padding: 0; max-height: 190px; overflow-x: auto; overflow-y: auto; align-items: flex-start; }
  .project-item { flex: none; align-items: center; width: auto; max-width: 240px; margin: 0; padding: 8px 10px; border-radius: 6px; }
  .project-item-meta { display: block; }
  .project-item-title { font-size: 13px; line-height: 1.4; max-width: 200px; max-height: none; overflow: visible; }
  .project-row { flex-shrink: 0; max-width: 290px; }
  .project-row>.project-item { padding-right: 35px; }
  .sidebar>.sidebar-tool { width: auto; font-size: 13px; padding: 8px; }
  .project-search-panel { width: 100%; order: 4; }
  .main-workspace { min-height: 0; }
  .workspace-header { min-height: 0; padding: 15px 16px; gap: 12px; flex-wrap: wrap; }
  .object-heading { width: 100%; }
  .eyebrow { font-size: 12px; letter-spacing: .6px; }
  .object-heading h1 { font-size: 21px; margin-top: 5px; }
  .header-actions { width: 100%; min-width: 0; max-width: 100%; flex-shrink: 1; justify-content: flex-end; }
  .header-actions>.button { font-size: 14px; min-height: 41px; padding: 9px 12px; }
  .chat-scroll { padding: 22px 16px 14px; }
  .message { gap: 9px; margin-bottom: 24px; }
  .message-avatar { width: 28px; height: 28px; font-size: 11px; }
  .message-content { max-width: calc(100% - 37px); }
  .message-text, .message.user .message-text { font-size: 15px; line-height: 1.5; }
  .message-meta { font-size: 12px; }
  .message.user .message-content { max-width: 96%; padding: 12px 14px; }
  .composer-area { padding: 10px 14px 13px; }
  .composer textarea { padding: 13px 13px 7px; font-size: 16px; min-height: 76px; }
  .composer-toolbar { padding: 7px 9px 9px; }
  .supported-files { display: none; }
  .composer-note { font-size: 12px; }
  .settings-dialog { padding: 22px; width: calc(100vw - 24px); max-height: calc(100dvh - 24px); }
  .dialog-heading h2 { font-size: 24px; }
  .dialog-actions { align-items: flex-start; gap: 15px; }
  .dialog-actions>div { width: 100%; justify-content: flex-end; }
  .welcome { margin-top: 12px; }
  .welcome-symbol { width: 56px; height: 56px; margin-bottom: 20px; }
  .welcome-symbol span { font-size: 34px; }
  .welcome h2 { font-size: 27px; }
  .welcome>p { font-size: 16px; }
  .welcome-steps { gap: 12px; margin: 24px 0; }
  .sample-request { padding: 13px 15px; }
  .sample-request p { font-size: 15px; }
}
@media (max-height: 650px) and (min-width: 681px) {
  .workspace-header { min-height: 85px; padding-top: 13px; padding-bottom: 13px; }
  .chat-scroll { padding-top: 20px; }
  .composer-area { padding-bottom: 10px; }
  .composer textarea { min-height: 65px; }
  .composer-note { margin-top: 6px; }
}
@media (prefers-reduced-motion: reduce) {
  * { scroll-behavior: auto !important; transition: none !important; }
  .spinner { animation-duration: 1.5s; }
}
.chat-pdf.preliminary, .release-card.preliminary { border-color: #d9bb75; border-left-color: #b47b18; background: #fffaf0; color: #654a1b; }
.preview-badge { display: inline-block; width: fit-content; margin-top: 7px; padding: 3px 8px; border: 1px solid #d9bb75; border-radius: 5px; background: #fff0c9; color: #654a1b; font-size: 13px; font-weight: 600; }
.preview-assumptions { margin-top: 18px; border: 1px solid #d6dde7; border-radius: 7px; padding: 12px; }
.preview-assumptions>summary { cursor: pointer; color: #30362e; font-weight: 600; }
.preview-assumptions-list { margin: 12px 0 0; }
.preview-assumption { padding: 10px 0; border-top: 1px solid #e1e6ed; }
.preview-assumption dt { font-weight: 600; }
.preview-assumption dd { margin: 4px 0 0; overflow-wrap: anywhere; }
.assumption-state, .assumption-basis { display: block; margin-top: 4px; font-size: 13px; line-height: 1.5; }
.assumption-state { color: #5b6055; }
.assumption-assumed .assumption-state { color: #8a5c11; }
.assumption-unknown .assumption-state { color: #a33c2f; }
.assumption-basis { color: #656960; }
.preview-parameters-warning { margin: 10px 0; color: #8a5c11; font-size: 14px; }

/* Document family icons approved 04.11.2026: graphite outlines, small semantic accents. */
.project-glyph.project-glyph-outline,.project-item.active .project-glyph.project-glyph-outline { width:28px; height:32px; border:0; border-radius:0; color:#3c4149; background:transparent; }
.project-glyph.project-glyph-outline svg { width:24px; height:28px; fill:none; stroke:currentColor; stroke-width:1.35; stroke-linejoin:round; stroke-linecap:round; }
.project-glyph-outline .project-glyph-accent-amber { fill:#be8225; stroke:none; }
.project-glyph-outline .project-glyph-accent-water { fill:#3289b2; stroke:none; }
.project-glyph.project-glyph-executive_bundle svg { stroke-width:1.25; }

/* Multiple document scopes are explicit server data, never a guess from a title. */
.project-glyph-cluster { flex:none; display:grid; grid-template-columns:22px; gap:2px; justify-items:center; align-content:start; align-self:flex-start; padding-top:1px; }
.project-glyph-cluster .project-glyph.project-glyph-outline,.project-item.active .project-glyph-cluster .project-glyph.project-glyph-outline { width:22px; height:26px; }
.project-glyph-cluster .project-glyph.project-glyph-outline svg { width:22px; height:25px; }

.project-glyph-outline .project-glyph-accent-fire { fill:#c4624b; stroke:none; }

.project-trash-actions { flex:none; display:flex; flex-direction:column; gap:5px; align-self:center; }
.project-purge { max-width:84px; padding:5px 6px; border:1px solid #dfc5c2; border-radius:4px; background:#fff; color:#9b3932; font-size:11px; line-height:1.3; cursor:pointer; }
.project-purge:hover:not(:disabled) { background:#fff2ef; border-color:#ba766c; }
.permanent-delete-copy,.permanent-delete-scope { font-size:14px; line-height:1.5; color:#625953; overflow-wrap:anywhere; }
.permanent-delete-scope.error { color:#9b3932; }
.permanent-delete-submit { color:#9b3932; border-color:#d6b2ad; }

.workspace-identity { align-items:center; gap:7px; min-width:0; }
.workspace-user-name { flex:1; min-width:0; line-height:1.35; overflow-wrap:anywhere; }
.workspace-role-badge { display:inline-flex; flex:none; align-items:center; border:1px solid #ead4cd; border-radius:5px; padding:2px 5px; color:#8d4740; background:#fff4f0; font-size:10px; line-height:14px; }
.workspace-role-badge[hidden] { display:none; }

/* The logo green is a quiet decorative accent; document statuses keep their own palette. */
.sidebar { border-right-color:var(--brand-green-line); }
.project-item:hover:not(.active) { background:#f1f7f0; border-color:#dcebd9; }
.project-item.active { box-shadow:inset 3px 0 var(--accent),0 3px 10px #00c4000c; }
.composer { border-color:var(--brand-green-line); box-shadow:0 4px 18px #00c40008; }
.composer:focus-within { border-color:#6ca66c; box-shadow:0 0 0 2px #00c40017; }
.workflow-choice:hover:not(:disabled) { box-shadow:0 3px 12px #00c40010; }
.messages .chat-pdf-author { color:#3c4248; }

/* HVAC project: document with a compact steam accent. */
.project-glyph-outline .project-glyph-accent-steam{fill:none;stroke:#25845d;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
