:root {
  --ttch-ink: #14211b;
  --ttch-muted: #5c6b63;
  --ttch-line: #d9e1dc;
  --ttch-paper: #f5f7f4;
  --ttch-accent: #e45a2a;
  --ttch-accent-dark: #b83d14;
  --ttch-white: #fff;
}

.ttch-shell { box-sizing: border-box; width: min(1120px, calc(100% - 32px)); margin: 48px auto; color: var(--ttch-ink); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.ttch-shell *, .ttch-admin * { box-sizing: border-box; }
.ttch-shell h1 { max-width: 780px; margin: 8px 0 12px; font-size: clamp(2.2rem, 7vw, 5.5rem); line-height: .95; letter-spacing: -.055em; }
.ttch-kicker { color: var(--ttch-accent-dark); font-size: .76rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.ttch-lead { max-width: 680px; margin: 0 0 32px; color: var(--ttch-muted); font-size: clamp(1rem, 2vw, 1.25rem); line-height: 1.65; }
.ttch-form { display: grid; gap: 22px; max-width: 780px; padding: clamp(22px, 4vw, 48px); border: 1px solid var(--ttch-line); border-radius: 4px; background: var(--ttch-white); box-shadow: 16px 16px 0 #e8ece8; }
.ttch-field { display: grid; gap: 8px; margin: 0; }
.ttch-field > span { font-weight: 760; }
.ttch-field small, .ttch-fineprint { color: var(--ttch-muted); }
.ttch-field input, .ttch-field textarea { width: 100%; padding: 13px 14px; border: 1px solid #aebbb4; border-radius: 3px; background: #fff; color: var(--ttch-ink); font: inherit; }
.ttch-field input:focus, .ttch-field textarea:focus { outline: 3px solid rgba(228,90,42,.22); border-color: var(--ttch-accent); }
.ttch-more { padding: 16px 0; border-top: 1px solid var(--ttch-line); border-bottom: 1px solid var(--ttch-line); }
.ttch-more summary { cursor: pointer; font-weight: 760; }
.ttch-more[open] { display: grid; gap: 18px; }
.ttch-button { justify-self: start; display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 12px 22px; border: 0; border-radius: 3px; background: var(--ttch-accent); color: white !important; font: inherit; font-weight: 800; text-decoration: none; cursor: pointer; }
.ttch-button:hover { background: var(--ttch-accent-dark); }
.ttch-notice { max-width: 780px; padding: 18px 22px; border-left: 5px solid #567; background: var(--ttch-paper); }
.ttch-notice--error { border-color: #b42318; }.ttch-notice--success { border-color: #25855a; }
.ttch-product-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.ttch-product-card { margin: 0; border: 1px solid var(--ttch-line); background: var(--ttch-white); }
.ttch-product-card a { display: block; color: var(--ttch-ink); text-decoration: none; }
.ttch-product-card img, .ttch-product-placeholder { width: 100%; aspect-ratio: 4/3; object-fit: cover; background: #e7ece8; }
.ttch-product-card h2, .ttch-product-card p, .ttch-product-card span { display: block; margin: 14px 18px; }.ttch-product-card h2 { font-size: 1.3rem; }
.ttch-rfq { max-width: 900px; margin: 64px auto; padding: clamp(24px, 5vw, 56px); background: var(--ttch-paper); }.ttch-rfq h2 { margin: 6px 0 24px; font-size: clamp(2rem, 4vw, 3.8rem); letter-spacing: -.04em; }.ttch-rfq .ttch-form { padding: 0; border: 0; background: transparent; box-shadow: none; }
.ttch-two { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }.ttch-honeypot { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }
.ttch-review-grid { display: grid; grid-template-columns: 1fr 1fr 1.2fr; gap: 18px; }.ttch-review-card { padding: 20px; border: 1px solid #ccd0d4; background: #fff; }.ttch-original { white-space: normal; line-height: 1.6; }.ttch-photo-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }.ttch-photo-grid img { width: 100%; aspect-ratio: 1; object-fit: cover; }

@media (max-width: 900px) { .ttch-product-grid { grid-template-columns: repeat(2, 1fr); }.ttch-review-grid { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .ttch-shell { width: min(100% - 22px, 1120px); margin: 28px auto; }.ttch-form { padding: 19px; box-shadow: 7px 7px 0 #e8ece8; }.ttch-product-grid, .ttch-two { grid-template-columns: 1fr; }.ttch-button { width: 100%; }.ttch-rfq { margin: 40px -4px; }.ttch-shell h1 { font-size: clamp(2.4rem, 15vw, 4.2rem); } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; } }

/* Homepage product gallery and source-safe visuals */
.ttch-featured-products { background: color-mix(in srgb, var(--ttch-paper) 72%, #fff); }
.ttch-featured-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.ttch-featured-card, .ttch-product-card { position: relative; overflow: hidden; border: 1px solid var(--ttch-line); border-radius: 20px; background: var(--ttch-white); }
.ttch-featured-card a, .ttch-product-card a { display: block; height: 100%; color: var(--ttch-ink); text-decoration: none; }
.ttch-product-visual { position: relative; width: 100%; aspect-ratio: 4 / 3; overflow: hidden; background: #e7ece8; }
.ttch-product-visual img, .ttch-product-visual .ttch-product-placeholder { display: block; width: 100%; height: 100%; margin: 0; object-fit: cover; border-radius: 0; }
.ttch-product-visual.is-quadrant { aspect-ratio: 3 / 2; }
.ttch-product-visual.is-quadrant img { position: absolute; width: 200%; max-width: none; height: 200%; object-fit: fill; }
.ttch-quadrant-1 img { left: 0; top: 0; }
.ttch-quadrant-2 img { left: -100%; top: 0; }
.ttch-quadrant-3 img { left: 0; top: -100%; }
.ttch-quadrant-4 img { left: -100%; top: -100%; }
.visual-badge { position: absolute; left: 12px; top: 12px; z-index: 2; margin: 0 !important; padding: 7px 10px; border-radius: 999px; background: rgba(20,33,27,.88); color: #fff; font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; backdrop-filter: blur(8px); }
.ttch-card-body { display: flex; flex-direction: column; min-height: 228px; padding: 20px; }
.ttch-card-body h3 { margin: 0 0 10px; font-size: 1.18rem; line-height: 1.18; }
.ttch-card-body p { margin: 0 0 14px; color: var(--ttch-muted); line-height: 1.55; }
.ttch-card-link { margin-top: auto; color: var(--ttch-accent-dark); font-size: .86rem; font-weight: 800; }
.ttch-card-specs { display: grid; gap: 8px; margin: 2px 0 18px; padding: 0; list-style: none; }
.ttch-card-specs li { display: grid; gap: 2px; padding-top: 8px; border-top: 1px solid var(--ttch-line); }
.ttch-card-specs strong { color: var(--ttch-muted); font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; }
.ttch-card-specs span { font-size: .78rem; line-height: 1.4; }
.featured-products-footer { display: flex; justify-content: center; margin-top: 30px; }
.product-specs { margin: 34px 0; }
.spec-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; overflow: hidden; padding: 1px; border-radius: 16px; background: var(--ttch-line); }
.spec-list div { padding: 18px; background: #fff; }
.spec-list dt { color: var(--ttch-muted); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.spec-list dd { margin: 5px 0 0; color: var(--ttch-ink); font-weight: 720; }
.spec-source-note, .reference-visual-note { padding: 14px 16px; border-left: 4px solid var(--ttch-accent); background: var(--ttch-paper); color: var(--ttch-muted); font-size: .88rem; }
@media (max-width: 980px) { .ttch-featured-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .ttch-featured-grid, .spec-list { grid-template-columns: 1fr; } .ttch-card-body { min-height: 0; } }
.ttch-colour-list { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 3px; }
.ttch-colour-chip { display: inline-flex; align-items: center; gap: 5px; padding: 4px 7px; border: 1px solid var(--ttch-line); border-radius: 999px; background: #fff; font-size: .7rem; line-height: 1; }
.ttch-colour-chip i { width: 11px; height: 11px; flex: 0 0 11px; border: 1px solid rgba(20,33,27,.14); border-radius: 50%; background: var(--chip); }

/* Unified conversational Product Workbench */
.ttch-workbench { --wb-navy:#10263f; --wb-blue:#3978ff; --wb-cream:#f6f3ed; width:min(1420px,calc(100% - 30px)); margin:32px auto 110px; color:var(--wb-navy); font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
.ttch-workbench * { box-sizing:border-box; }
.ttch-workbench-head { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; padding:26px 4px 22px; border-bottom:1px solid #cbd3da; }
.ttch-workbench-head h1 { max-width:850px; margin:8px 0 0; font-family:Georgia,"Times New Roman",serif; font-size:clamp(2.3rem,5vw,5.5rem); font-weight:500; line-height:.94; letter-spacing:-.045em; }
.ttch-workbench-fallback { color:var(--wb-navy); font-size:.82rem; font-weight:800; text-decoration:none; border-bottom:1px solid currentColor; }
.ttch-workbench-timeline { display:grid; grid-template-columns:repeat(4,1fr); gap:0; margin:0; padding:0; list-style:none; border-bottom:1px solid #cbd3da; }
.ttch-workbench-timeline li { position:relative; padding:17px 10px 17px 26px; color:#6b7782; font-size:.72rem; font-weight:850; letter-spacing:.1em; text-transform:uppercase; }
.ttch-workbench-timeline li::before { content:""; position:absolute; left:7px; top:50%; width:8px; height:8px; margin-top:-4px; border:1px solid #97a2aa; border-radius:50%; background:#fff; }
.ttch-workbench-timeline li.is-current { color:var(--wb-blue); }.ttch-workbench-timeline li.is-current::before { border-color:var(--wb-blue); background:var(--wb-blue); box-shadow:0 0 0 4px #dce7ff; }.ttch-workbench-timeline li.is-complete::before { border-color:#1d7652; background:#1d7652; }
.ttch-workbench-status { min-height:0; margin:14px 0; padding:0 4px; font-size:.85rem; }.ttch-workbench-status:not(:empty) { min-height:42px; padding:12px 15px; border-left:4px solid #718095; background:#eef1f3; }.ttch-workbench-status.is-success { border-color:#1d7652; background:#eaf5ef; }.ttch-workbench-status.is-error { border-color:#b42318; background:#fff0ee; }
.ttch-workbench-start { max-width:920px; margin:54px auto; padding:clamp(24px,5vw,60px); border:1px solid #cbd3da; border-radius:18px; background:#fff; box-shadow:18px 18px 0 #e5e1d8; }.ttch-workbench-start h2 { margin:0 0 28px; font-family:Georgia,serif; font-size:clamp(2rem,4vw,3.5rem); font-weight:500; }
.ttch-operation-cards { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:24px; }.ttch-operation-cards label { position:relative; cursor:pointer; }.ttch-operation-cards input { position:absolute; opacity:0; }.ttch-operation-cards span { display:grid; gap:7px; min-height:115px; padding:22px; border:1px solid #b9c2c9; border-radius:12px; background:#f9faf9; color:#63717d; }.ttch-operation-cards b { color:var(--wb-navy); font-size:1.06rem; }.ttch-operation-cards input:checked + span { border-color:var(--wb-blue); background:#edf3ff; box-shadow:inset 0 0 0 1px var(--wb-blue); }
.ttch-update-hints { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:20px; }.ttch-update-hints label { display:grid; gap:7px; font-weight:750; }.ttch-update-hints input { width:100%; padding:13px; border:1px solid #aeb8c0; border-radius:6px; font:inherit; }
.ttch-workbench-main { display:grid; grid-template-columns:minmax(0,.92fr) minmax(460px,1.08fr); min-height:720px; border:1px solid #cbd3da; background:#fff; }
.ttch-conversation-pane,.ttch-draft-pane { min-width:0; padding:clamp(20px,3vw,38px); }.ttch-conversation-pane { display:flex; flex-direction:column; border-right:1px solid #cbd3da; background:var(--wb-cream); }.ttch-draft-pane { background:#fff; }
.ttch-pane-head { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; padding-bottom:20px; border-bottom:1px solid #cbd3da; }.ttch-pane-head span { color:#687782; font-size:.68rem; font-weight:850; letter-spacing:.11em; text-transform:uppercase; }.ttch-pane-head h2 { margin:4px 0 0; font-family:Georgia,serif; font-size:clamp(1.75rem,3vw,2.7rem); font-weight:500; }.ttch-model-state,.ttch-draft-revision { flex:0 0 auto; padding:7px 9px; border:1px solid #b9c2ca; border-radius:999px; background:#fff; }
.ttch-model-tools { display:grid; justify-items:end; gap:7px; }.ttch-analyze-action { padding:7px 9px; border:1px solid var(--wb-blue); border-radius:6px; background:#edf3ff; color:#245dce; font:inherit; font-size:.68rem; font-weight:850; cursor:pointer; }
.ttch-message-list { display:grid; gap:14px; min-height:180px; padding:24px 0; }.ttch-message { max-width:86%; padding:14px 16px; border:1px solid #c7cfd5; border-radius:14px 14px 14px 3px; background:#fff; }.ttch-message.is-user { justify-self:end; border-radius:14px 14px 3px 14px; background:#e8efff; }.ttch-message span { color:#687782; font-size:.68rem; font-weight:850; text-transform:uppercase; }.ttch-message p { margin:5px 0 0; white-space:pre-wrap; line-height:1.55; }.ttch-empty-message { padding:20px; border:1px dashed #aeb8c0; color:#62717c; line-height:1.6; }
.ttch-upload-zone { grid-column:1/-1; padding:18px; border:1px solid #c6ced4; border-radius:10px; background:#fff; }.ttch-upload-summary { display:flex; align-items:center; justify-content:space-between; gap:14px; }.ttch-upload-copy { display:grid; gap:5px; min-width:0; }.ttch-upload-title { font-weight:800; }.ttch-upload-zone small { color:#6d7880; font-weight:500; }.ttch-upload-actions { display:flex; align-items:center; gap:7px; flex:0 0 auto; }.ttch-upload-zone label { display:block; font-weight:800; cursor:pointer; }.ttch-upload-zone input[type="file"] { position:absolute; width:1px; height:1px; margin:0; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }.ttch-upload-zone .ttch-file-picker,.ttch-asset-manage { display:block; padding:8px 13px; border:1px solid #10263f; border-radius:6px; background:#fff; color:#10263f; font:inherit; font-size:.78rem; font-weight:800; line-height:1.2; cursor:pointer; }.ttch-asset-manage { border-color:#b8c2ca; }.ttch-upload-zone label:hover .ttch-file-picker,.ttch-upload-zone input[type="file"]:focus + .ttch-file-picker,.ttch-asset-manage:hover { background:#10263f; color:#fff; }.ttch-asset-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin-top:14px; }.ttch-asset-list figure { margin:0; }.ttch-asset-list img { display:block; width:100%; aspect-ratio:1; object-fit:cover; border-radius:6px; }.ttch-asset-list figcaption { margin-top:5px; overflow:hidden; color:#67747d; font-size:.68rem; text-overflow:ellipsis; white-space:nowrap; }
.ttch-upload-zone.has-assets { padding:9px 11px; background:#f8fafc; }.ttch-upload-zone.has-assets .ttch-upload-copy { gap:2px; }.ttch-upload-zone.has-assets .ttch-upload-title { font-size:.82rem; }.ttch-upload-zone.has-assets small { font-size:.7rem; }.ttch-upload-zone.has-assets:not(.is-expanded) .ttch-asset-list { display:flex; gap:5px; margin-top:7px; overflow:hidden; }.ttch-upload-zone.has-assets:not(.is-expanded) .ttch-asset-list figure { flex:0 0 42px; }.ttch-upload-zone.has-assets:not(.is-expanded) .ttch-asset-list figure:nth-child(n+5) { display:none; }.ttch-upload-zone.has-assets:not(.is-expanded) .ttch-asset-list img { width:42px; height:42px; aspect-ratio:auto; }.ttch-upload-zone.has-assets:not(.is-expanded) .ttch-asset-list figcaption,.ttch-upload-zone.has-assets:not(.is-expanded) .ttch-asset-controls { display:none; }
.ttch-asset-manage[hidden] { display:none; }
.ttch-upload-zone input[type="file"]:disabled + .ttch-file-picker { opacity:.45; cursor:not-allowed; }
.ttch-asset-controls { display:grid; grid-template-columns:1fr 1.5fr 1fr; gap:4px; margin-top:7px; }.ttch-asset-controls button { min-height:30px; padding:3px; border:1px solid #b8c2ca; border-radius:4px; background:#fff; color:var(--wb-navy); font-size:.65rem; font-weight:800; cursor:pointer; }.ttch-asset-controls button:disabled { opacity:.35; cursor:default; }.ttch-asset-controls .is-remove { grid-column:1/-1; color:#a52a24; }.ttch-asset-list figcaption small { display:block; margin-top:3px; color:#74828c; }.ttch-media-modes { display:flex; flex-wrap:wrap; gap:6px; margin:12px 0; }.ttch-media-modes button { padding:7px 9px; border:1px solid #b8c2ca; border-radius:999px; background:#fff; color:#30475f; font:inherit; font-size:.68rem; font-weight:750; cursor:pointer; }.ttch-media-modes button.is-active { border-color:var(--wb-blue); background:#edf3ff; color:#245dce; }
.ttch-message-compose { display:grid; grid-template-columns:1fr auto; gap:10px; margin-top:auto; padding-top:20px; }.ttch-message-compose textarea { min-width:0; padding:13px; resize:vertical; border:1px solid #aeb8c0; border-radius:8px; font:inherit; }.ttch-message-compose .ttch-button { align-self:end; }
.ttch-draft-alerts { display:grid; gap:8px; margin:18px 0; }.ttch-draft-alert { padding:11px 13px; border-left:4px solid #b77a08; background:#fff5d8; font-size:.82rem; }.ttch-draft-alert.is-warning { border-color:#b42318; background:#fff0ee; }
.ttch-match-control { display:grid; gap:8px; padding:14px; border:1px solid #b9c5cf; background:#eef4ff; }.ttch-match-control select { width:100%; padding:10px; border:1px solid #9eacb8; background:#fff; font:inherit; }
.ttch-draft-form { display:grid; gap:0; border-top:1px solid #d4dbe0; }.ttch-draft-field { display:grid; grid-template-columns:minmax(150px,.38fr) minmax(0,.62fr); gap:18px; padding:18px 0; border-bottom:1px solid #d4dbe0; }.ttch-draft-field > span { display:grid; align-content:start; gap:5px; }.ttch-draft-field em { color:#75818a; font-size:.66rem; font-style:normal; text-transform:capitalize; }.ttch-draft-field input,.ttch-draft-field textarea { width:100%; padding:11px 12px; border:1px solid #abb6be; border-radius:5px; background:#fff; color:var(--wb-navy); font:inherit; }.ttch-draft-field textarea { resize:vertical; }.ttch-draft-field small { grid-column:2; margin-top:-12px; color:#6b7880; }.ttch-draft-field input:focus,.ttch-draft-field textarea:focus,.ttch-message-compose textarea:focus { outline:3px solid rgba(57,120,255,.2); border-color:var(--wb-blue); }.ttch-draft-field input:disabled,.ttch-draft-field textarea:disabled { border-color:transparent; background:#f5f6f6; opacity:1; }
.ttch-save-draft { margin-top:22px; background:var(--wb-navy); }.ttch-save-draft:hover { background:#203f60; }
.ttch-workbench-action { position:fixed; z-index:100; left:50%; bottom:18px; display:grid; grid-template-columns:1fr auto auto; align-items:center; gap:20px; width:min(1180px,calc(100% - 30px)); padding:14px 18px; transform:translateX(-50%); border:1px solid rgba(16,38,63,.2); border-radius:14px; background:rgba(255,255,255,.94); box-shadow:0 18px 60px rgba(16,38,63,.2); backdrop-filter:blur(14px); }.ttch-workbench-action > div { display:grid; gap:3px; }.ttch-action-title { font-size:.95rem; }.ttch-action-reason { color:#667580; font-size:.75rem; }.ttch-link-button { padding:9px; border:0; background:transparent; color:#9b291f; font:inherit; font-size:.76rem; font-weight:800; text-decoration:underline; cursor:pointer; }
.ttch-workbench [hidden], .ttch-workbench-action[hidden], .ttch-workbench-main[hidden], .ttch-workbench-start[hidden] { display:none !important; }
.ttch-workbench-admin { margin-left:0; }
.ttch-workbench-admin .ttch-workbench { width:100%; max-width:1420px; margin:16px 0 110px; }
.ttch-workbench-admin .ttch-workbench-head h1 { font-family:"Noto Serif SC","Songti SC",Georgia,serif; font-size:clamp(2.2rem,4vw,4.4rem); }
.ttch-workbench-admin .ttch-workbench-action { left:auto; right:24px; width:min(1180px,calc(100vw - 208px)); transform:none; }
body.folded .ttch-workbench-admin .ttch-workbench-action { width:min(1180px,calc(100vw - 84px)); }
@media (max-width:900px) { .ttch-workbench-main { grid-template-columns:1fr; }.ttch-conversation-pane { border-right:0; border-bottom:1px solid #cbd3da; }.ttch-workbench-action { grid-template-columns:1fr auto; }.ttch-rollback-action { grid-column:1/-1; }.ttch-workbench-head { align-items:flex-start; } }
@media (max-width:782px) { .ttch-workbench-admin .ttch-workbench-action,body.folded .ttch-workbench-admin .ttch-workbench-action { left:8px; right:8px; width:auto; } }
@media (max-width:560px) { .ttch-workbench { width:min(100% - 16px,1420px); margin-top:10px; }.ttch-workbench-head { display:grid; }.ttch-workbench-head h1 { font-size:2.65rem; }.ttch-workbench-timeline li { padding:14px 4px 14px 16px; font-size:.58rem; }.ttch-workbench-timeline li::before { left:2px; }.ttch-operation-cards,.ttch-update-hints { grid-template-columns:1fr; }.ttch-workbench-start { margin:28px 0; padding:20px; box-shadow:7px 7px 0 #e5e1d8; }.ttch-conversation-pane,.ttch-draft-pane { padding:18px 15px; }.ttch-message-compose { grid-template-columns:1fr; }.ttch-asset-list { grid-template-columns:repeat(2,1fr); }.ttch-upload-summary { align-items:flex-start; }.ttch-upload-zone.has-assets small { display:none; }.ttch-upload-actions { gap:5px; }.ttch-upload-zone .ttch-file-picker,.ttch-asset-manage { padding:7px 9px; font-size:.7rem; }.ttch-draft-field { grid-template-columns:1fr; gap:9px; }.ttch-draft-field small { grid-column:1; margin-top:0; }.ttch-workbench-action { bottom:8px; grid-template-columns:1fr; gap:9px; padding:12px; }.ttch-workbench-action .ttch-button { width:100%; }.ttch-action-reason { display:none; } }

/* Product Workbench V2: conversation input + read-only facts panel */
.ttch-workbench-v2 { margin-bottom:32px; }
.ttch-workbench-v2 .ttch-workbench-head { align-items:flex-start; padding:18px 4px; }
.ttch-workbench-v2 .ttch-workbench-head h1 { margin-top:5px; font-size:clamp(2rem,3.4vw,3.6rem); line-height:1.02; }
.ttch-workbench-v2 .ttch-workbench-head p { max-width:720px; margin:12px 0 0; color:#63717d; font-size:.9rem; line-height:1.6; }
.ttch-workbench-v2 .ttch-workbench-timeline { grid-template-columns:repeat(3,1fr); }
.ttch-workbench-v2 .ttch-workbench-main { position:relative; grid-template-columns:minmax(0,1.7fr) minmax(330px,1fr); min-height:680px; border-radius:14px; overflow:hidden; box-shadow:0 14px 42px rgba(16,38,63,.08); }
.ttch-workbench-v2 .ttch-conversation-pane { min-height:680px; }
.ttch-workbench-v2 .ttch-message-list { min-height:210px; max-height:360px; overflow-y:auto; overscroll-behavior:contain; }
.ttch-workbench-v2 .ttch-facts-pane { max-height:760px; overflow-y:auto; }
.ttch-facts-mobile-toggle { display:none; }
.ttch-facts-close { display:none; width:34px; height:34px; padding:0; border:1px solid #c7cfd5; border-radius:50%; background:#fff; color:var(--wb-navy); font-size:1.35rem; line-height:1; cursor:pointer; }
.ttch-completeness-card { margin:20px 0 14px; padding:18px; border:1px solid #c8d3df; border-radius:13px; background:#f7faff; }
.ttch-completeness-card > div:first-child { display:flex; align-items:baseline; justify-content:space-between; gap:14px; }
.ttch-completeness-card span { color:#5f6f7c; font-size:.78rem; font-weight:800; }
.ttch-completeness-card strong { color:var(--wb-blue); font-size:1.75rem; line-height:1; }
.ttch-completeness-track { height:8px; margin-top:13px; overflow:hidden; border-radius:999px; background:#dce4ec; }
.ttch-completeness-track i { display:block; width:0; height:100%; border-radius:inherit; background:linear-gradient(90deg,#3978ff,#1d7652); transition:width .28s ease; }
.ttch-completeness-detail { margin:10px 0 0; color:#63717d; font-size:.75rem; }
.ttch-fact-groups { display:grid; gap:22px; margin-top:22px; }
.ttch-fact-group > header { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; margin-bottom:8px; }
.ttch-fact-group > summary { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; padding:8px 0; cursor:pointer; list-style:none; }
.ttch-fact-group > summary::-webkit-details-marker { display:none; }
.ttch-fact-group > summary::after { content:"展开"; order:3; color:#245dce; font-size:.68rem; font-weight:800; }
.ttch-fact-group[open] > summary::after { content:"收起"; }
.ttch-fact-group h3 { margin:0; color:var(--wb-navy); font-size:.9rem; }
.ttch-fact-group header p,.ttch-fact-group summary p { margin:4px 0 0; color:#6d7982; font-size:.7rem; line-height:1.45; }
.ttch-fact-group header > span,.ttch-fact-group summary > span { min-width:24px; padding:4px 7px; border-radius:999px; background:#edf1f5; color:#52616e; font-size:.68rem; font-weight:850; text-align:center; }
.ttch-fact-row { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:12px; padding:14px 0; border-top:1px solid #dce2e7; }
.ttch-fact-row b { font-size:.78rem; }
.ttch-fact-row p { margin:5px 0; overflow-wrap:anywhere; color:#233d58; font-size:.88rem; line-height:1.5; white-space:pre-wrap; }
.ttch-fact-row small { color:#71808b; font-size:.68rem; }
.ttch-fact-row button { align-self:center; padding:7px 9px; border:1px solid #b9c6d2; border-radius:7px; background:#fff; color:#245dce; font:inherit; font-size:.68rem; font-weight:800; cursor:pointer; }
.ttch-fact-row button:hover,.ttch-fact-row button:focus-visible { border-color:var(--wb-blue); background:#edf3ff; outline:none; }
.ttch-fact-group.is-attention .ttch-fact-row { border-left:3px solid #c18715; padding-left:11px; }
.ttch-fact-group.is-confirmed .ttch-fact-row small { color:#1d7652; }
.ttch-fact-group.is-missing .ttch-fact-row p { color:#7a858e; }
.ttch-compose-context { grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:9px 12px; border:1px solid #aac0ef; border-radius:8px; background:#edf3ff; color:#245dce; font-size:.76rem; font-weight:800; }
.ttch-compose-context[hidden] { display:none; }
.ttch-compose-context button { width:25px; height:25px; padding:0; border:0; border-radius:50%; background:#fff; color:#245dce; font-size:1rem; cursor:pointer; }
.ttch-workbench-v2 .ttch-message-compose textarea { min-height:78px; background:#fff; }
.ttch-workbench-v2 .ttch-workbench-action,.ttch-workbench-admin .ttch-workbench-v2 .ttch-workbench-action,body.folded .ttch-workbench-admin .ttch-workbench-v2 .ttch-workbench-action { position:sticky; z-index:20; left:auto; right:auto; bottom:0; width:100%; margin-top:12px; transform:none; box-shadow:0 12px 36px rgba(16,38,63,.14); }
.ttch-workbench-v2.is-complete .ttch-upload-zone,.ttch-workbench-v2.is-complete .ttch-message-compose,.ttch-workbench-v2.is-complete .ttch-model-tools { display:none; }
.ttch-workbench-v2.is-complete .ttch-message-list { max-height:260px; }

@media (max-width:900px) {
  .ttch-workbench-v2 .ttch-workbench-main { grid-template-columns:1fr; overflow:visible; }
  .ttch-workbench-v2 .ttch-conversation-pane { min-height:620px; border:0; }
  .ttch-facts-mobile-toggle { position:static; z-index:18; display:grid; grid-template-columns:1fr auto auto; align-items:center; gap:10px; width:100%; padding:12px 15px; border:1px solid #c8d3df; border-radius:10px; background:#fff; color:var(--wb-navy); text-align:left; box-shadow:0 8px 24px rgba(16,38,63,.1); }
  .ttch-facts-mobile-toggle span { font-weight:800; }.ttch-facts-mobile-toggle strong { color:var(--wb-blue); font-size:1.1rem; }.ttch-facts-mobile-toggle em { color:#5e6d79; font-size:.72rem; font-style:normal; }
  .ttch-workbench-v2 .ttch-facts-pane { position:fixed; z-index:100001; left:8px; right:8px; bottom:8px; max-height:min(78vh,760px); padding:20px 16px; visibility:hidden; border:1px solid #bdc9d3; border-radius:18px; box-shadow:0 22px 70px rgba(8,24,41,.28); opacity:0; transform:translateY(calc(100% + 24px)); transition:transform .24s ease,opacity .2s ease,visibility .2s; }
  .ttch-workbench-v2.is-facts-open .ttch-facts-pane { visibility:visible; opacity:1; transform:translateY(0); }
  .ttch-facts-close { display:block; }
  .ttch-workbench-v2.is-complete .ttch-facts-pane { position:static; max-height:none; visibility:visible; opacity:1; transform:none; box-shadow:none; }
  .ttch-workbench-v2.is-complete .ttch-facts-mobile-toggle,
  .ttch-workbench-v2.is-complete .ttch-facts-close { display:none; }
}

@media (max-width:560px) {
  .ttch-workbench-v2 .ttch-workbench-head h1 { font-size:2.15rem; }
  .ttch-workbench-v2 .ttch-workbench-head p { font-size:.82rem; }
  .ttch-workbench-v2 .ttch-workbench-main { min-height:0; border-radius:10px; }
  .ttch-workbench-v2 .ttch-conversation-pane { min-height:560px; padding:17px 14px; }
  .ttch-workbench-v2 .ttch-message-list { max-height:310px; }
  .ttch-workbench-v2 .ttch-message-compose { grid-template-columns:1fr auto; }
  .ttch-workbench-v2 .ttch-message-compose .ttch-button { width:auto; min-width:72px; }
  .ttch-fact-row { grid-template-columns:1fr; }.ttch-fact-row button { justify-self:start; }
  .ttch-workbench-v2 .ttch-workbench-action { position:static; grid-template-columns:1fr; }
}

/* Product Workbench V3: state-driven task workspace */
.ttch-workbench-v3 { --wb-danger:#b42318; --wb-danger-soft:#fff3f1; --wb-success:#187552; --wb-warning:#9a6700; max-width:1360px; }
.ttch-workbench-v3 .ttch-workbench-head { padding:12px 4px 14px; }
.ttch-workbench-admin .ttch-workbench-v3 .ttch-workbench-head h1,.ttch-workbench-v3 .ttch-workbench-head h1 { margin-top:3px; font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; font-size:clamp(1.75rem,2.6vw,2.65rem); font-weight:780; letter-spacing:-.035em; line-height:1.08; }
.ttch-workbench-v3 .ttch-workbench-head p { margin-top:7px; font-size:.82rem; }
.ttch-taskbar { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:12px 0 0; padding:12px 15px; border:1px solid #d3dbe2; border-radius:10px 10px 0 0; background:#fff; }
.ttch-taskbar[hidden] { display:none; }
.ttch-task-identity,.ttch-task-signals { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.ttch-task-identity > span { color:#687782; font-size:.68rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.ttch-task-reference { font-size:.86rem; }
.ttch-task-state,.ttch-task-signals span { padding:5px 8px; border-radius:999px; background:#edf2f7; color:#4f6170; font-size:.68rem; font-style:normal; font-weight:800; }
.ttch-task-saved::before { content:""; display:inline-block; width:6px; height:6px; margin-right:6px; border-radius:50%; background:var(--wb-success); vertical-align:1px; }
.ttch-workbench-v3 .ttch-workbench-timeline { grid-template-columns:repeat(4,1fr); border:1px solid #d3dbe2; border-top:0; border-radius:0 0 10px 10px; background:#f8fafb; }
.ttch-workbench-v3 .ttch-workbench-status:empty { display:none; }
.ttch-blocker-card { display:grid; grid-template-columns:38px minmax(0,1fr); gap:14px; margin:14px 0; padding:17px 18px; border:1px solid #efb2aa; border-left:5px solid var(--wb-danger); border-radius:10px; background:var(--wb-danger-soft); }
.ttch-blocker-card[hidden] { display:none; }
.ttch-blocker-icon { display:grid; place-items:center; width:34px; height:34px; border-radius:50%; background:var(--wb-danger); color:#fff; font-size:1rem; font-weight:900; }
.ttch-blocker-card span { color:var(--wb-danger); font-size:.68rem; font-weight:850; letter-spacing:.09em; text-transform:uppercase; }
.ttch-blocker-card h2 { margin:3px 0 5px; font-size:1.08rem; }
.ttch-blocker-card p { margin:3px 0; color:#5d3a35; font-size:.8rem; line-height:1.55; }
.ttch-blocker-card .ttch-blocker-retention { color:#3e6757; font-weight:700; }
.ttch-blocker-secondary { margin-top:10px; }
.ttch-blocker-secondary button { padding:7px 10px; border:1px solid #ca8d84; border-radius:6px; background:#fff; color:#8d241a; font:inherit; font-size:.72rem; font-weight:800; cursor:pointer; }
.ttch-blocker-card .ttch-workbench-action,.ttch-workbench-admin .ttch-blocker-card .ttch-workbench-action,body.folded .ttch-workbench-admin .ttch-blocker-card .ttch-workbench-action { position:static; display:grid; grid-template-columns:minmax(0,1fr) auto; width:100%; margin:12px 0 0; padding:12px 0 0; transform:none; border:0; border-top:1px solid #efb2aa; border-radius:0; background:transparent; box-shadow:none; backdrop-filter:none; }
.ttch-blocker-card .ttch-workbench-action .ttch-button { background:var(--wb-danger); }
.ttch-workbench-v3 .ttch-workbench-main { grid-template-columns:minmax(0,1.55fr) minmax(340px,.85fr); min-height:0; overflow:visible; border-radius:12px; }
.ttch-workbench-v3 .ttch-conversation-pane { min-height:640px; }
.ttch-workbench-v3 .ttch-message-list { min-height:180px; max-height:none; overflow:visible; overscroll-behavior:auto; }
.ttch-workbench-v3 .ttch-facts-pane { position:sticky; top:44px; align-self:start; max-height:none; overflow:visible; }
.ttch-workbench-v3 .ttch-message-compose { position:sticky; z-index:14; bottom:76px; margin:0 -12px -12px; padding:14px 12px 12px; border-top:1px solid #d9d5ce; border-radius:10px; background:rgba(246,243,237,.97); box-shadow:0 -10px 24px rgba(16,38,63,.07); backdrop-filter:blur(10px); }
.ttch-fact-statuses { display:flex; align-items:center; flex-wrap:wrap; gap:5px; }
.ttch-fact-statuses small,.ttch-fact-statuses span { padding:4px 6px; border-radius:999px; background:#f0f3f5; color:#647480; font-size:.64rem; font-weight:750; line-height:1; }
.ttch-fact-statuses .is-confirmation { background:#edf4ff; color:#245dce; }
.ttch-fact-statuses .is-validation.is-valid { background:#eaf5ef; color:var(--wb-success); }
.ttch-fact-statuses .is-validation.is-failed { background:#fff0ee; color:var(--wb-danger); }
.ttch-fact-statuses .is-validation.is-checking { background:#fff5d8; color:var(--wb-warning); }
.ttch-fact-group.is-blocking { padding:12px; border:1px solid #efb2aa; border-radius:10px; background:#fff8f7; }
.ttch-fact-group.is-blocking .ttch-fact-row { border-left:3px solid var(--wb-danger); padding-left:10px; }
.ttch-fact-row[data-validation="failed"] .is-validation { font-weight:850; }
.ttch-workbench-v3.has-blocker .ttch-workbench-status.is-success { display:none; }

@media (max-width:900px) {
  .ttch-taskbar { align-items:flex-start; }
  .ttch-workbench-v3 .ttch-workbench-main { grid-template-columns:1fr; }
  .ttch-workbench-v3 .ttch-facts-pane { position:fixed; top:auto; max-height:min(78vh,760px); overflow-y:auto; }
  .ttch-workbench-v3.is-complete .ttch-facts-pane { position:static; max-height:none; overflow:visible; }
  .ttch-workbench-v3 .ttch-message-compose { bottom:8px; }
}

@media (max-width:560px) {
  .ttch-workbench-v3 .ttch-workbench-head { padding-top:7px; }
  .ttch-workbench-admin .ttch-workbench-v3 .ttch-workbench-head h1,.ttch-workbench-v3 .ttch-workbench-head h1 { font-size:1.8rem; }
  .ttch-taskbar { display:grid; gap:9px; margin-top:8px; padding:11px 12px; }
  .ttch-taskbar[hidden] { display:none; }
  .ttch-task-signals { justify-content:space-between; }
  .ttch-workbench-v3 .ttch-workbench-timeline li { padding:12px 3px 12px 15px; letter-spacing:.03em; text-transform:none; }
  .ttch-blocker-card { grid-template-columns:30px minmax(0,1fr); padding:14px 12px; }
  .ttch-blocker-icon { width:28px; height:28px; }
  .ttch-workbench-v3 .ttch-conversation-pane { min-height:520px; }
  .ttch-workbench-v3 .ttch-message-compose { margin:0 -6px -6px; padding:12px 6px 6px; }
}
.ttch-next-prompt{margin:18px 8px 4px;padding:18px;border:1px solid #bfd0ff;border-radius:16px;background:#f4f7ff;color:#182338}.ttch-next-prompt>span{display:block;margin-bottom:6px;color:#315ee7;font-size:12px;font-weight:700}.ttch-next-prompt p{margin:0;line-height:1.65}.ttch-next-prompt>div{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.ttch-next-prompt button{border:1px solid #9eb4f2;border-radius:999px;background:#fff;color:#244fc4;padding:7px 13px;cursor:pointer}.ttch-next-prompt button:hover{background:#e8efff}.ttch-fact-row>div{width:100%}

/* Product Workbench 0.10: guided conversation and message attachments */
.ttch-welcome-message { max-width:650px; margin:0 auto; }
.ttch-welcome-message > span { display:inline-flex; margin-bottom:14px; padding:5px 9px; border-radius:999px; background:#edf3ff; color:#245dce; font-size:.7rem; font-weight:850; }
.ttch-workbench .ttch-welcome-message h2 { margin:0 0 14px; font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei","PingFang SC",sans-serif; font-size:clamp(1.375rem,1.8vw,1.625rem); font-weight:700; line-height:1.45; letter-spacing:normal; overflow-wrap:anywhere; }
.ttch-welcome-message p { max-width:570px; margin:0; color:#5f6e79; font-size:1rem; line-height:1.7; }
.ttch-start-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:26px; }
.ttch-secondary-button { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:11px 20px; border:1px solid #aeb9c3; border-radius:6px; background:#fff; color:var(--wb-navy); font:inherit; font-weight:800; cursor:pointer; }
.ttch-secondary-button:hover,.ttch-secondary-button:focus-visible { border-color:var(--wb-blue); background:#edf3ff; outline:none; }

.ttch-workbench-v3 .ttch-message-compose { display:grid; grid-template-columns:minmax(0,1fr); gap:9px; }
.ttch-workbench-v3:not(.has-formal-action) .ttch-message-compose { bottom:8px; }
.ttch-compose-row { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:end; gap:9px; min-width:0; }
.ttch-compose-row textarea { width:100%; min-width:0; }
.ttch-attach-button { display:grid; grid-template-columns:auto auto; align-items:center; gap:5px; min-height:48px; padding:10px 11px; border:1px solid #aeb8c0; border-radius:8px; background:#fff; color:#30475f; font-size:.76rem; font-weight:800; cursor:pointer; }
.ttch-attach-button > span { color:#245dce; font-size:1.25rem; font-weight:500; line-height:1; }
.ttch-attach-button input { position:absolute; width:1px; height:1px; margin:0; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.ttch-attach-button:hover,.ttch-attach-button:focus-within { border-color:var(--wb-blue); background:#edf3ff; outline:3px solid rgba(57,120,255,.16); }
.ttch-attach-button:has(input:disabled) { opacity:.45; cursor:not-allowed; }
.ttch-compose-help { color:#667680; font-size:.7rem; line-height:1.45; }
.ttch-pending-attachments { display:flex; align-items:center; gap:8px; min-width:0; padding:9px; overflow-x:auto; border:1px solid #c7d4e0; border-radius:10px; background:#fff; }
.ttch-pending-attachments figure { position:relative; flex:0 0 72px; width:72px; margin:0; }
.ttch-pending-attachments img { display:block; width:72px; height:58px; border-radius:7px; object-fit:cover; }
.ttch-pending-attachments figcaption { margin-top:4px; overflow:hidden; color:#64727d; font-size:.62rem; text-overflow:ellipsis; white-space:nowrap; }
.ttch-pending-attachments .ttch-pending-remove { position:absolute; top:-5px; right:-5px; display:grid; place-items:center; width:22px; height:22px; padding:0; border:2px solid #fff; border-radius:50%; background:#233b53; color:#fff; font:inherit; line-height:1; cursor:pointer; }.ttch-pending-main { width:100%; margin-top:4px; padding:4px; border:1px solid #9dabba; border-radius:5px; background:#fff; color:#245dce; font:inherit; font-size:.6rem; font-weight:800; cursor:pointer; }.ttch-pending-main:disabled { border-color:#245dce; background:#edf3ff; opacity:1; cursor:default; }
.ttch-pending-attachments > span { flex:0 0 auto; color:#526777; font-size:.68rem; font-weight:750; }
.ttch-message-assets { width:min(86%,460px); }
.ttch-message-assets > div { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:5px; margin-top:7px; }
.ttch-message-assets figure { margin:0; }
.ttch-message-assets img { display:block; width:100%; aspect-ratio:1; border-radius:7px; object-fit:cover; }
.ttch-history-toggle { justify-self:center; padding:7px 12px; border:1px solid #c4ced6; border-radius:999px; background:#fff; color:#526676; font:inherit; font-size:.7rem; font-weight:750; cursor:pointer; }
.ttch-history-toggle:hover,.ttch-history-toggle:focus-visible { border-color:#7f94a5; background:#f7f9fa; outline:none; }

.ttch-assets-summary { display:grid; grid-template-columns:54px minmax(0,1fr) auto; align-items:center; gap:11px; margin:18px 0 8px; padding:10px; border:1px solid #d4dce3; border-radius:11px; background:#f8fafb; }
.ttch-assets-preview { overflow:hidden; width:54px; height:54px; border-radius:8px; background:#e8edf1; }
.ttch-assets-preview img { display:block; width:100%; height:100%; object-fit:cover; }
.ttch-assets-summary > div:nth-child(2) { display:grid; gap:4px; min-width:0; }
.ttch-assets-summary span { color:#667681; font-size:.68rem; font-weight:750; }
.ttch-assets-summary strong { overflow:hidden; font-size:.78rem; text-overflow:ellipsis; white-space:nowrap; }
.ttch-asset-manage { padding:7px 9px; border:1px solid #b8c2ca; border-radius:6px; background:#fff; color:#245dce; font:inherit; font-size:.68rem; font-weight:800; cursor:pointer; }
.ttch-asset-manage:hover,.ttch-asset-manage:focus-visible { border-color:var(--wb-blue); background:#edf3ff; outline:none; }
.ttch-assets-drawer { position:fixed; z-index:100003; top:32px; right:0; bottom:0; width:min(430px,calc(100vw - 20px)); padding:24px; overflow-y:auto; background:#fff; box-shadow:-24px 0 70px rgba(8,24,41,.22); }
.ttch-assets-drawer-head { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; padding-bottom:14px; border-bottom:1px solid #d8dfe5; }
.ttch-assets-drawer-head span { color:#667681; font-size:.68rem; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }
.ttch-assets-drawer-head h2 { margin:4px 0 0; font-size:1.25rem; }
.ttch-assets-drawer > p { color:#60717d; font-size:.78rem; line-height:1.55; }
.ttch-assets-close { display:grid; place-items:center; width:34px; height:34px; padding:0; border:1px solid #c6cfd6; border-radius:50%; background:#fff; color:#203950; font:inherit; font-size:1.2rem; cursor:pointer; }
.ttch-assets-drawer .ttch-asset-list { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.ttch-assets-drawer .ttch-asset-list figure { padding:8px; border:1px solid #d4dce3; border-radius:9px; background:#fafbfc; }
.ttch-assets-drawer .ttch-asset-list figcaption { white-space:normal; }
.ttch-drawer-backdrop { position:fixed; z-index:100002; inset:0; background:rgba(8,24,41,.42); backdrop-filter:blur(2px); }

.ttch-readiness-card strong { max-width:72%; color:var(--wb-blue); font-size:1.08rem; line-height:1.25; text-align:right; }
.ttch-workbench-v3[data-readiness="blocked"] .ttch-readiness-card { border-color:#efb2aa; background:#fff7f5; }
.ttch-workbench-v3[data-readiness="blocked"] .ttch-readiness-card strong { color:var(--wb-danger); }
.ttch-workbench-v3.has-formal-action .ttch-send-button { border:1px solid #9eabb5; background:#fff; color:#30475f !important; }
.ttch-workbench-v3.has-formal-action .ttch-send-button:hover { background:#edf2f5; }

@media (max-width:900px) {
  .ttch-assets-drawer { top:0; }
}

@media (max-width:560px) {
  .ttch-start-actions { display:grid; grid-template-columns:1fr; }
  .ttch-start-actions .ttch-button,.ttch-start-actions .ttch-secondary-button { width:100%; }
  .ttch-workbench-v3 .ttch-message-compose,.ttch-workbench-v2 .ttch-message-compose { grid-template-columns:minmax(0,1fr); }
  .ttch-compose-row { grid-template-columns:auto minmax(0,1fr) auto; gap:6px; }
  .ttch-attach-button { min-height:46px; padding:9px 8px; }
  .ttch-compose-row textarea { min-height:68px; padding:10px; }
  .ttch-workbench-v2 .ttch-message-compose .ttch-button { min-width:58px; padding-right:10px; padding-left:10px; }
  .ttch-pending-attachments figure { flex-basis:62px; width:62px; }
  .ttch-pending-attachments img { width:62px; height:52px; }
  .ttch-message-assets > div { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ttch-assets-summary { grid-template-columns:46px minmax(0,1fr) auto; gap:8px; }
  .ttch-assets-preview { width:46px; height:46px; }
  .ttch-readiness-card strong { max-width:68%; font-size:.92rem; }
  .ttch-assets-drawer { top:auto; left:8px; right:8px; bottom:8px; width:auto; max-height:82vh; padding:18px 14px; border-radius:17px; }
  .ttch-assets-drawer .ttch-asset-list { grid-template-columns:1fr 1fr; }
  .ttch-workbench-v3 .ttch-message-compose { bottom:8px; }
}

@media (max-width:390px) {
  .ttch-attach-button b { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
  .ttch-attach-button { grid-template-columns:1fr; width:42px; }
  .ttch-assets-summary { grid-template-columns:42px minmax(0,1fr); }
  .ttch-assets-summary .ttch-asset-manage { grid-column:1/-1; width:100%; }
}

.ttch-product-gallery { display:grid; gap:12px; margin:0 0 28px; }.ttch-gallery-main { display:block; overflow:hidden; border-radius:12px; background:#f2f4f5; }.ttch-gallery-main img { display:block; width:100%; max-height:720px; aspect-ratio:4/3; object-fit:contain; }.ttch-gallery-thumbs { display:flex; gap:8px; padding:2px; overflow-x:auto; scrollbar-width:thin; }.ttch-gallery-thumbs a { flex:0 0 76px; width:76px; height:76px; padding:3px; border:2px solid transparent; border-radius:9px; background:#fff; cursor:pointer; }.ttch-gallery-thumbs a[aria-current="true"] { border-color:#245dce; }.ttch-gallery-thumbs a:focus-visible { outline:3px solid rgba(36,93,206,.25); outline-offset:2px; }.ttch-gallery-thumbs img { display:block; width:100%; height:100%; border-radius:5px; object-fit:cover; }
/* Product selection is navigation; product field editing stays in the composer. */
.ttch-product-picker { padding: 24px; background: #fff; border: 1px solid #dcdcde; border-radius: 12px; }
.ttch-product-picker[hidden], .ttch-selected-product[hidden] { display: none; }
.ttch-picker-search, .ttch-picker-pages, .ttch-selected-product, .ttch-switch-guard { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.ttch-picker-search label { display: grid; gap: 6px; flex: 1; }
.ttch-picker-search input { width: 100%; min-height: 44px; }
.ttch-picker-results { margin: 20px 0; }
.ttch-picker-product { display: flex; align-items: center; gap: 14px; width: 100%; text-align: left; padding: 14px; background: #fff; color: #172b3a; border: 1px solid #dcdcde; border-radius: 6px; margin: 8px 0; cursor: pointer; }
.ttch-picker-product:hover, .ttch-picker-product:focus-visible { background: #f0f6fc; outline: 2px solid #2271b1; }
.ttch-picker-product > span, .ttch-selected-product > span { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.ttch-picker-product strong, .ttch-picker-product small, .ttch-selected-product strong, .ttch-selected-product small { display: block; }
.ttch-picker-product img, .ttch-selected-product img { object-fit: cover; flex: 0 0 56px; border-radius: 4px; }
.ttch-product-no-image { flex: 0 0 56px !important; font-size: 12px; color: #646970; }
.ttch-selected-product { position: sticky; top: 32px; z-index: 5; background: #fff; padding: 10px 16px; border: 1px solid #dcdcde; }
.ttch-picker-pages button, .ttch-selected-product button, .ttch-switch-guard button { min-height: 44px; cursor: pointer; }
.ttch-workbench-v3 .ttch-task-summary { margin:12px 0 16px; border:1px solid #d3dbe2; border-radius:10px; background:#fff; overflow:hidden; }
.ttch-workbench-v3 .ttch-task-summary:has(> .ttch-taskbar[hidden]):not(:has(> .ttch-workbench-status:not(:empty))) { display:none; }
.ttch-workbench-v3 .ttch-task-summary .ttch-taskbar { margin:0; border:0; border-radius:0; padding:10px 16px; }
.ttch-workbench-v3 .ttch-task-summary .ttch-task-state[hidden] { display:none; }
.ttch-workbench-v3 .ttch-task-summary .ttch-task-saved { display:none; }
.ttch-workbench-v3 .ttch-task-summary .ttch-selected-product { position:static; border:0; border-top:1px solid #edf0f2; padding:10px 16px; }
.ttch-workbench-v3 .ttch-task-summary .ttch-readiness-card { margin:0; padding:10px 16px; border:0; border-radius:0; background:#f7fafc; display:flex; align-items:center; flex-wrap:wrap; gap:8px 20px; }
.ttch-workbench-v3 .ttch-task-summary .ttch-readiness-card[hidden] { display:none; }
.ttch-workbench-v3 .ttch-task-summary .ttch-readiness-card > div:first-child { display:flex; gap:12px; align-items:center; }
.ttch-workbench-v3 .ttch-task-summary .ttch-readiness-card strong { max-width:none; font-size:16px; line-height:1.5; }
.ttch-workbench-v3 .ttch-task-summary .ttch-completeness-track { display:none; }
.ttch-workbench-v3 .ttch-task-summary .ttch-completeness-detail { margin:0; font-size:12px; line-height:1.6; }
.ttch-workbench-v3 .ttch-task-summary .ttch-workbench-timeline { border:0; border-radius:0; }
.ttch-workbench-v3 .ttch-task-summary .ttch-workbench-timeline li { padding-top:10px; padding-bottom:10px; }
.ttch-workbench-v3 .ttch-task-summary .ttch-workbench-status:not(:empty) { margin:0; min-height:0; padding:8px 16px; border-left:0; border-top:1px solid #edf0f2; font-size:12px; line-height:1.6; }
.ttch-workbench-v3 .ttch-task-summary .ttch-workbench-status.is-success { background:#fff; color:#276749; }
.ttch-workbench-v3 .ttch-task-summary .ttch-blocker-card { margin:0; border-radius:0; }
.ttch-workbench-v3 .ttch-pane-head h2 { font-family:inherit; font-size:22px; line-height:1.4; margin:4px 0 0; }
@media (max-width:600px) { .ttch-workbench-v3 .ttch-task-summary .ttch-selected-product { flex-wrap:wrap; }.ttch-workbench-v3 .ttch-task-summary .ttch-readiness-card { gap:4px; }.ttch-workbench-v3 .ttch-task-summary .ttch-completeness-detail { flex-basis:100%; } }
@media (max-width: 600px) { .ttch-product-picker { padding: 14px; } .ttch-picker-product { flex-wrap: wrap; } .ttch-picker-product > b { width: 100%; text-align: right; } .ttch-selected-product { position: static; } }
.ttch-admin-gallery { margin-top:20px; padding-top:16px; border-top:1px solid #dcdcde; }.ttch-admin-gallery-list { display:flex; flex-wrap:wrap; gap:10px; margin:12px 0; }.ttch-admin-gallery-list figure { width:112px; margin:0; padding:7px; border:1px solid #dcdcde; border-radius:7px; background:#fff; }.ttch-admin-gallery-list img { display:block; width:112px; height:88px; object-fit:cover; }.ttch-admin-gallery-list figcaption { margin:5px 0; overflow:hidden; font-size:12px; font-weight:650; text-overflow:ellipsis; white-space:nowrap; }.ttch-admin-gallery-list button { min-width:30px; margin-right:3px; border:1px solid #a7aaad; border-radius:3px; background:#fff; cursor:pointer; }
