:root { --ink:#1e293b; --muted:#708099; --line:#e7ebf2; --canvas:#f6f8fb; --blue:#2f6fed; --blue-dark:#225ac8; --navy:#1f3150; --soft-blue:#edf4ff; --green:#23a06b; --danger:#d95858; --shadow:0 10px 30px rgba(36, 58, 95, .08); font-family: Inter, "PingFang SC", "Microsoft YaHei", sans-serif; color:var(--ink); }

/* 图片工作台：消息引用按输入时的位置内联呈现。手动生图布局在文件末尾统一定义。 */
.chat-message-content { overflow-wrap:anywhere; }
.chat-message-content .sent-message-attachment { margin:0 3px; vertical-align:middle; }
* { box-sizing:border-box; } body { margin:0; min-width:320px; background:var(--canvas); font-size:14px; } button,input,select { font:inherit; } button { cursor:pointer; } button:disabled { cursor:not-allowed; opacity:.55; }
.topbar { height:68px; padding:0 max(30px, calc((100vw - 1380px)/2)); display:flex; align-items:center; gap:46px; background:#fff; border-bottom:1px solid var(--line); } .brand { display:flex; align-items:center; gap:9px; color:var(--navy); font-weight:750; text-decoration:none; font-size:18px; letter-spacing:.2px; white-space:nowrap; } .brand-mark { width:30px; height:30px; display:grid; place-items:center; border-radius:9px; color:white; background:linear-gradient(135deg,#4b83fa,#2356b5); font-size:16px; box-shadow:0 4px 10px #b9ceff; } .brand em { padding:3px 5px; border-radius:4px; background:#eff4ff; color:#6791e8; font-style:normal; font-size:9px; letter-spacing:.7px; } .page-nav { display:flex; align-self:stretch; gap:24px; } .page-nav a { display:flex; align-items:center; border-bottom:2px solid transparent; color:#7a879a; text-decoration:none; font-weight:600; } .page-nav a.active { color:var(--blue); border-color:var(--blue); } .role-badge { margin-left:auto; display:flex; align-items:center; gap:8px; color:#526178; font-size:13px; } .status-dot { width:8px; height:8px; border-radius:50%; background:#38c98a; box-shadow:0 0 0 4px #e9f9f0; } .admin-dot { background:#6f88b9; box-shadow:0 0 0 4px #edf1f8; }
.page-shell { width:min(1260px, calc(100% - 48px)); margin:0 auto; padding:42px 0 52px; } .page-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:24px; margin-bottom:27px; } .eyebrow,.section-kicker { margin:0 0 6px; color:#7e9bd2; font-size:10px; line-height:1; letter-spacing:1.4px; font-weight:750; } h1,h2,p { margin-top:0; } h1 { margin-bottom:9px; color:#1c2d49; font-size:28px; letter-spacing:-.5px; } h2 { margin:0; color:#233655; font-size:17px; } .page-heading > div > p:last-child { margin-bottom:0; color:var(--muted); } .heading-actions { display:flex; gap:10px; } .button { border:1px solid transparent; border-radius:8px; padding:10px 15px; font-weight:650; transition:.18s; } .button-primary { color:white; background:var(--blue); box-shadow:0 5px 12px rgba(47,111,237,.2); } .button-primary:hover { background:var(--blue-dark); } .button-secondary { color:#4b5e7b; border-color:#dbe3ef; background:white; } .button-secondary:hover { border-color:#b6c7e3; background:#f7faff; } .button-small { padding:7px 10px; font-size:12px; }
.quote-layout { display:grid; grid-template-columns:370px minmax(0,1fr); gap:20px; align-items:start; } .card { background:#fff; border:1px solid var(--line); border-radius:13px; box-shadow:var(--shadow); } .image-panel { padding:20px; } .panel-title-row { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; margin-bottom:17px; } .source-tag,.item-counter,.ready-chip { padding:5px 8px; color:#5080d7; background:#eff5ff; border-radius:5px; font-size:11px; font-weight:650; white-space:nowrap; } .product-image-wrap { position:relative; overflow:hidden; background:#efe9e2; border-radius:9px; aspect-ratio:4/5; } .product-image-wrap img { display:block; width:100%; height:100%; object-fit:cover; } .image-state { position:absolute; top:12px; right:12px; padding:5px 8px; border-radius:5px; color:#18734c; background:rgba(245,255,250,.92); font-size:11px; font-weight:650; } .image-meta { display:grid; grid-template-columns:1fr 1fr; padding:15px 0; } .image-meta > div { min-width:0; } .image-meta > div + div { padding-left:16px; border-left:1px solid var(--line); } .image-meta span { display:block; margin-bottom:5px; color:#8490a4; font-size:11px; } .image-meta strong { display:block; overflow:hidden; color:#43516a; font-size:12px; white-space:nowrap; text-overflow:ellipsis; } .success-text { color:var(--green)!important; } .image-actions { display:flex; gap:17px; border-top:1px solid var(--line); padding-top:13px; } .text-button { padding:0; border:0; color:#5080d7; background:none; font-size:12px; font-weight:650; } .text-button:hover { color:#235ac2; } .integration-note { display:flex; gap:10px; margin-top:18px; padding:12px; border-radius:8px; background:#f6f9ff; color:#7685a0; font-size:11px; line-height:1.65; } .integration-note span { color:#5181da; font-size:15px; font-weight:bold; } .integration-note p { margin:0; }
.form-panel { min-height:620px; padding:23px; } .quote-info-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:20px; } label { display:grid; gap:7px; color:#53627a; font-weight:650; font-size:12px; } input,select { min-width:0; border:1px solid #dce3ed; border-radius:7px; outline:none; padding:9px 10px; color:#2c3c57; background:#fff; transition:border-color .18s,box-shadow .18s; } input:focus,select:focus { border-color:#80a7f7; box-shadow:0 0 0 3px rgba(78,132,242,.12); } .inline-warning { margin:0 0 15px; padding:10px 12px; color:#a65d21; border:1px solid #f2d2b1; border-radius:8px; background:#fff8ef; font-size:12px; } .quote-table-wrap { overflow:auto; border:1px solid var(--line); border-radius:9px; } table { width:100%; border-collapse:collapse; } th { padding:11px 10px; color:#76859c; background:#f9fafc; text-align:left; font-size:11px; font-weight:650; white-space:nowrap; } th sup { color:#e26060; } td { padding:9px 8px; border-top:1px solid #eff1f5; vertical-align:middle; } .quote-editor-table input,.quote-editor-table select { width:100%; min-width:96px; padding:8px; font-size:12px; } .quote-editor-table .amount-cell { min-width:88px; color:#263d62; font-weight:700; white-space:nowrap; } .remove-row,.remove-field { padding:5px 7px; border:0; border-radius:5px; color:#a8b1c0; background:transparent; } .remove-row:hover,.remove-field:not(:disabled):hover { color:var(--danger); background:#fff0f0; } .add-row-button { display:flex; align-items:center; gap:5px; margin-top:13px; border:0; color:#3975df; background:transparent; font-size:12px; font-weight:700; } .add-row-button span { font-size:17px; font-weight:400; } .quote-total-bar { display:flex; justify-content:space-between; align-items:flex-end; margin-top:25px; padding:17px 18px; border-radius:9px; background:linear-gradient(100deg,#f5f8ff,#edf3ff); } .quote-total-bar span { display:block; margin-bottom:5px; color:#71809a; font-size:12px; } .quote-total-bar strong { color:#2f65c5; font-size:24px; letter-spacing:.2px; } .quote-total-bar p { margin:0; color:#8090ab; font-size:11px; }.empty-inline { display:grid; place-items:center; gap:5px; padding:36px; color:#6c7d97; text-align:center; }.empty-inline span { font-size:12px; }
.empty-inline[hidden], .inline-warning[hidden] { display:none; }.tip-card { display:flex; align-items:center; gap:13px; margin-top:20px; padding:16px 19px; border:1px solid #dae6fb; border-radius:10px; background:#fafdff; color:#60718d; } .tip-icon { display:grid; place-items:center; width:19px; height:19px; border-radius:50%; color:#5d8de5; background:#e9f1ff; font:700 12px Georgia,serif; } .tip-card strong { color:#405271; font-size:12px; } .tip-card p { margin:3px 0 0; font-size:12px; } .tip-card a { margin-left:auto; color:#3671d8; font-size:12px; font-weight:700; text-decoration:none; white-space:nowrap; }
.admin-grid { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(300px,.8fr); gap:20px; align-items:start; } .config-card,.preview-card { padding:22px; } .section-description { margin:0 0 19px; color:#74839b; font-size:12px; line-height:1.6; } .field-table-wrap { overflow:auto; border:1px solid var(--line); border-radius:9px; } .field-config-table { min-width:670px; } .field-config-table th { padding:11px 12px; } .field-config-table td { padding:10px 12px; } .field-config-table input,.field-config-table select { width:100%; padding:8px; font-size:12px; } .field-config-table td:first-child { min-width:145px; } .field-config-table td:nth-child(2) { min-width:110px; } .field-config-table td:nth-child(3) { min-width:210px; } .checkbox-cell { text-align:center; }.checkbox-cell input { width:15px; height:15px; accent-color:var(--blue); }.system-label { display:inline-block; margin-top:5px; padding:2px 4px; color:#7b8aa2; background:#f1f4f8; border-radius:3px; font-size:9px; }.preview-window { overflow:hidden; border:1px solid #dae3ef; border-radius:10px; background:#fbfcff; }.preview-header { display:flex; justify-content:space-between; padding:12px; color:#435b83; background:#f2f6ff; font-size:12px; font-weight:700; }.preview-header small { color:#8295b6; font-weight:500; }.preview-content { padding:12px; overflow:auto; }.preview-table-head,.preview-table-row { display:grid; grid-template-columns:repeat(auto-fit,minmax(84px,1fr)); min-width:320px; gap:7px; }.preview-table-head { margin-bottom:7px; color:#7989a2; font-size:10px; }.preview-table-head i { color:#e26060; font-style:normal; }.preview-table-row { align-items:center; }.fake-input { overflow:hidden; padding:7px; border:1px solid #dce4f0; border-radius:5px; color:#a0adbf; background:white; font-size:10px; white-space:nowrap; }.preview-table-row strong { color:#356dc8; font-size:11px; }.preview-empty { padding:20px; color:#91a0b5; font-size:12px; text-align:center; }.system-note { margin-top:17px; padding:13px; border-radius:8px; background:#f8fafc; color:#73829a; font-size:11px; line-height:1.7; }.system-note strong { color:#566985; }.system-note ul { padding-left:16px; margin:6px 0 0; }.integration-settings { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-top:20px; padding:21px 22px; }.integration-settings h2 { margin-bottom:8px; }.integration-settings p { margin:0; color:#718099; line-height:1.7; font-size:12px; }.integration-settings code { padding:2px 4px; border-radius:3px; background:#f0f3f8; color:#506889; }.ready-chip { color:#24835a; background:#ebfaf1; }
.dialog-card { width:min(470px, calc(100% - 30px)); padding:0; border:0; border-radius:13px; box-shadow:0 24px 70px rgba(28,44,71,.22); }.dialog-card::backdrop { background:rgba(22,33,52,.36); }.dialog-card form { display:grid; gap:15px; padding:23px; }.dialog-heading { display:flex; justify-content:space-between; align-items:flex-start; }.icon-button { width:29px; height:29px; border:0; border-radius:6px; color:#71809a; background:#f3f5f8; font-size:20px; line-height:1; }.form-help { margin:0; color:#8390a2; font-size:11px; line-height:1.6; }.dialog-actions { display:flex; justify-content:flex-end; gap:9px; margin-top:3px; }.toast { position:fixed; z-index:10; left:50%; bottom:26px; max-width:calc(100% - 30px); padding:11px 15px; border-radius:8px; color:white; background:#243757; box-shadow:0 10px 26px rgba(22,40,69,.22); font-size:13px; opacity:0; pointer-events:none; transform:translate(-50%,12px); transition:.2s; }.toast.show { opacity:1; transform:translate(-50%,0); }.toast.error { background:#b94f4f; }
@media (max-width:850px) { .topbar { height:auto; min-height:63px; padding:12px 22px; gap:20px; flex-wrap:wrap; }.page-nav { order:3; width:100%; height:34px; gap:22px; }.role-badge { margin-left:auto; }.page-shell { width:min(100% - 30px,650px); padding-top:29px; }.page-heading { align-items:flex-start; flex-direction:column; }.quote-layout,.admin-grid { grid-template-columns:1fr; }.image-panel { display:grid; grid-template-columns:1fr 1.15fr; gap:0 18px; }.image-panel > .panel-title-row { grid-column:1/-1; }.product-image-wrap { max-height:360px; }.image-meta { align-self:start; }.image-actions,.integration-note { grid-column:2; }.form-panel { min-height:0; }.tip-card { align-items:flex-start; flex-wrap:wrap; }.tip-card a { margin-left:32px; }.integration-settings { align-items:flex-start; flex-direction:column; } }
@media (max-width:560px) { .topbar { gap:12px; }.brand { font-size:16px; }.role-badge { font-size:11px; }.page-heading h1 { font-size:24px; }.heading-actions { width:100%; }.heading-actions .button { flex:1; }.quote-info-grid { grid-template-columns:1fr; }.image-panel { display:block; }.image-actions,.integration-note { margin-top:15px; }.quote-editor-table { min-width:600px; }.form-panel,.image-panel,.config-card,.preview-card { padding:16px; }.quote-total-bar { align-items:flex-start; flex-direction:column; gap:8px; }.tip-card a { margin-left:32px; }.page-nav { gap:17px; } }

.managed-note { display:inline-flex; align-items:center; min-height:34px; padding:0 9px; color:#72829c; border-radius:6px; background:#f3f6fa; font-size:11px; }.process-library-card { margin-top:20px; padding:22px; }.admin-library-root { margin-top:0; }.library-actions { display:flex; gap:9px; }.process-group-list { display:grid; gap:14px; }.process-group-card { overflow:hidden; border:1px solid #dce5f2; border-radius:10px; background:#fbfcff; }.group-card-header { display:flex; justify-content:space-between; align-items:center; gap:15px; padding:12px 14px; border-bottom:1px solid #e6edf7; background:#f5f8fe; }.group-name-control { display:flex; align-items:center; gap:9px; }.group-name-control input { width:180px; padding:7px 9px; color:#284977; font-weight:700; }.group-index { padding:4px 6px; border-radius:4px; color:#6d86aa; background:#eaf1fd; font-size:10px; white-space:nowrap; }.group-actions { display:flex; align-items:center; gap:12px; }.text-danger-button { border:0; color:#aa6b76; background:transparent; font-size:12px; }.text-danger-button:hover { color:#c34f5c; }.process-table-wrap { overflow:auto; }.process-table { min-width:640px; }.process-table th { padding:10px 12px; }.process-table td { padding:8px 12px; }.process-table input,.process-table select { width:100%; padding:8px; font-size:12px; }.process-table td:nth-child(1) { min-width:155px; }.process-table td:nth-child(2) { min-width:110px; }.process-table td:nth-child(3) { min-width:120px; }.process-table td:nth-child(4) { min-width:155px; }.remove-process-button { width:28px; height:28px; border:0; border-radius:5px; color:#9aa6b7; background:transparent; font-size:16px; }.remove-process-button:hover { color:#c34f5c; background:#fff0f1; }.process-picker { display:grid; grid-template-columns:1fr 1fr; gap:6px; min-width:190px; }.process-picker select { min-width:0!important; }.catalog-value { color:#627795!important; background:#f5f8fb!important; cursor:not-allowed; }.amount-cell small { display:block; margin-top:4px; color:#8a98ae; font-size:9px; font-weight:500; white-space:nowrap; }
.process-formula-fixed { display:inline-flex; min-height:32px; align-items:center; padding:6px 10px; border:1px solid #d8e4f5; border-radius:7px; color:#3e6caf; background:#f2f6fd; font-size:11px; font-weight:750; white-space:nowrap; }

/* 包材库：后台负责写入与启停，前台只读取已启用数据。 */
.package-admin-page,.mockup-page { padding-top:42px; }.library-summary { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:20px; padding:16px 20px; }.library-summary div { display:flex; align-items:baseline; gap:8px; }.library-summary strong { color:var(--blue); font-size:24px; }.library-summary span,.library-summary p { color:#74839b; font-size:12px; }.library-summary p { margin:0; }.package-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:17px; }.package-thumb { overflow:hidden; background:#f0eee9; aspect-ratio:4/5; }.package-thumb img { display:block; width:100%; height:100%; object-fit:cover; }.package-admin-card { overflow:hidden; }.package-admin-body { display:grid; gap:12px; padding:14px; }.package-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }.package-admin-body label { font-size:11px; }.package-admin-body input,.package-admin-body select { padding:8px; font-size:12px; }.toggle-label { display:flex; align-items:center; gap:8px; color:#53627a; }.toggle-label input { width:15px; height:15px; accent-color:var(--blue); }.package-card-actions { display:flex; align-items:center; justify-content:space-between; padding-top:2px; }.package-front-card { overflow:hidden; border:1px solid var(--line); transition:.18s; }.package-front-card:hover,.package-front-card.selected { border-color:#82a9f5; box-shadow:0 12px 28px rgba(47,111,237,.14); transform:translateY(-2px); }.package-front-body { padding:14px; }.package-front-body > span { display:inline-block; margin-bottom:8px; padding:4px 6px; border-radius:4px; color:#5a82c9; background:#edf4ff; font-size:10px; font-weight:700; }.package-front-body h2 { margin-bottom:6px; font-size:16px; }.package-front-body p { min-height:19px; margin-bottom:13px; color:#7c8ba2; font-size:12px; }.package-front-body .button { width:100%; }.mockup-layout { display:grid; grid-template-columns:minmax(0,1fr) 330px; gap:20px; align-items:start; }.selection-side { position:sticky; top:16px; padding:20px; }.selection-side h2 { margin-bottom:13px; }.selected-package-preview { display:grid; overflow:hidden; min-height:240px; margin-bottom:15px; border-radius:9px; background:#f4f4f2; place-items:center; color:#8592a4; font-size:12px; }.selected-package-preview img { display:block; width:100%; height:100%; object-fit:cover; }.selection-side dl { display:grid; gap:10px; margin:0 0 18px; }.selection-side dl div { display:flex; justify-content:space-between; gap:8px; padding-bottom:10px; border-bottom:1px solid var(--line); }.selection-side dt { color:#7b899d; font-size:12px; }.selection-side dd { margin:0; color:#435472; font-size:12px; font-weight:650; text-align:right; }.angle-control { display:grid; gap:10px; margin-bottom:18px; padding:13px; border-radius:9px; background:#f6f8fc; }.angle-control > div { display:flex; justify-content:space-between; align-items:center; gap:8px; }.angle-control strong { color:#415574; font-size:12px; }.angle-control > div span { color:#6182bb; font-size:10px; }.angle-control label { gap:4px; color:#71809a; font-size:11px; }.angle-control input[type="range"] { width:100%; padding:0; accent-color:var(--blue); }.angle-control p { margin:0; color:#8090a8; font-size:10px; line-height:1.55; }.selection-side > .button { width:100%; }.package-dialog label { font-size:12px; }.package-dialog input[type="file"] { padding:7px; font-size:12px; }.package-dialog .package-form-grid { margin-top:-1px; }
@media (max-width:1000px) { .package-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.mockup-layout { grid-template-columns:minmax(0,1fr) 290px; } }
@media (max-width:700px) { .package-grid { grid-template-columns:1fr; }.mockup-layout { grid-template-columns:1fr; }.selection-side { position:static; }.library-summary { align-items:flex-start; flex-direction:column; gap:6px; }.package-admin-page,.mockup-page { padding-top:29px; } }

/* 后台配置：用左侧目录组织两个同级管理模块。 */
.admin-console { display:grid; width:100%; min-height:calc(100vh - 68px); margin:0; padding:0; grid-template-columns:230px minmax(0,1fr); gap:0; align-items:stretch; }.admin-side-nav.card { position:sticky; top:0; align-self:start; min-height:calc(100vh - 68px); padding:34px 24px; border:0; border-right:1px solid var(--line); border-radius:0; background:#fff; box-shadow:none; }.admin-side-nav h2 { margin:0 0 16px; font-size:20px; }.admin-nav-list { display:grid; gap:4px; }.admin-nav-item { display:grid; gap:4px; width:100%; padding:9px 10px; border:1px solid transparent; border-radius:7px; color:#4d5e77; background:transparent; text-align:left; transition:.18s; }.admin-nav-item span { font-weight:700; }.admin-nav-item small { color:#93a0b3; font-size:10px; }.admin-nav-item:hover { background:#f4f7fb; }.admin-nav-item.active { border-color:#d5e4fe; color:#2868db; background:#eef4ff; }.admin-nav-item.active small { color:#628bd4; }.admin-side-note { margin-top:20px; padding:12px; border-radius:8px; background:#f7f9fc; color:#74839a; font-size:11px; line-height:1.55; }.admin-side-note strong { color:#586b88; }.admin-side-note p { margin:5px 0 0; }.admin-content { width:min(1260px, 100%); min-width:0; padding:40px 36px 55px; }.admin-panel[hidden] { display:none; }.admin-panel-heading { margin:0 0 22px; }.admin-panel-heading h1 { margin-bottom:8px; }.admin-panel-heading > p:last-child { max-width:720px; margin:0; color:var(--muted); }.panel-heading-with-action { display:flex; justify-content:space-between; align-items:flex-end; gap:18px; }.admin-panel .process-library-card { margin-top:0; }.admin-panel .library-summary { margin-top:0; }.admin-panel .package-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }

/* 后台包材库：先在左侧选分类，再处理该分类下的单个样式。 */
#adminOverviewSide[hidden],#packageCategorySide[hidden] { display:none; }.back-config-button { width:100%; margin:0 0 20px; padding:0 0 12px; border:0; border-bottom:1px solid var(--line); color:#5a78ad; background:transparent; font-size:12px; font-weight:700; text-align:left; }.back-config-button:hover { color:var(--blue); }.side-description { margin:-7px 0 22px; color:#7b899e; font-size:12px; line-height:1.65; }.new-category-button { width:100%; margin:0 0 14px; padding:9px 10px; border:1px dashed #9bbdf7; border-radius:7px; color:#2f6fed; background:#f7faff; font-weight:700; text-align:left; }.new-category-button:hover { border-style:solid; background:#edf4ff; }.package-admin-catalog { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }.package-admin-catalog-card { overflow:hidden; transition:.18s; }.package-admin-catalog-card:hover { border-color:#91b3f7; box-shadow:0 13px 28px rgba(47,111,237,.13); transform:translateY(-2px); }.package-admin-catalog-card .package-thumb { aspect-ratio:4/3.55; }.catalog-card-footer { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:5px; }.catalog-card-footer strong { display:inline-flex; padding:4px 7px; border-radius:5px; font-size:10px; }.catalog-enabled { color:#2b9b65; background:#e7f8ef; }.catalog-draft { color:#5877ab; background:#ecf3ff; }.edit-package-preview { display:block; width:100%; max-height:205px; margin-bottom:4px; border:1px solid var(--line); border-radius:8px; object-fit:cover; }.edit-dialog-actions { justify-content:space-between; }.edit-dialog-actions > div { display:flex; gap:9px; }.category-dialog { max-width:430px; }.category-dialog form { display:grid; gap:16px; }.category-dialog label { display:grid; gap:7px; color:#4e607b; font-size:12px; font-weight:700; }

/* 前台包材库：左侧固定筛选，右侧按筛选结果浏览。 */
.package-browser-shell { display:grid; grid-template-columns:230px minmax(0,1fr); min-height:calc(100vh - 68px); }.package-filter-side { padding:34px 24px; border-right:1px solid var(--line); background:#fff; }.package-filter-brand { margin-bottom:24px; }.package-filter-brand h2 { margin-bottom:8px; font-size:20px; }.package-filter-brand p:last-child { margin:0; color:#7c8b9e; font-size:12px; line-height:1.65; }.package-search { margin-bottom:16px; color:#65758f; font-size:11px; }.package-search input { width:100%; padding:8px 9px; font-size:12px; }.package-filter-list { display:grid; gap:4px; }.package-filter-item { display:flex; align-items:center; justify-content:space-between; width:100%; padding:9px 10px; border:1px solid transparent; border-radius:7px; color:#4d5e77; background:transparent; text-align:left; font-size:13px; }.package-filter-item small { min-width:19px; color:#93a0b1; font-size:10px; text-align:right; }.package-filter-item:hover { background:#f4f7fb; }.package-filter-item.active { border-color:#d5e4fe; color:#2868db; background:#eef4ff; font-weight:700; }.package-filter-item.active small { color:#628bd4; }.package-browser-content { width:min(1180px, 100%); padding:40px 36px 55px; }.browser-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:20px; margin-bottom:25px; }.browser-heading h1 { margin-bottom:8px; }.browser-heading > div > p:last-child { margin:0; color:var(--muted); }.package-browser-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }.package-browser-card { overflow:hidden; transition:.18s; }.package-browser-card:hover { border-color:#91b3f7; box-shadow:0 13px 28px rgba(47,111,237,.13); transform:translateY(-2px); }.package-browser-card .package-thumb { aspect-ratio:4/4.65; }.package-browser-card .package-front-body { padding:14px; }.package-browser-card .package-front-body p { min-height:18px; }.package-browser-content > .empty-inline { margin-top:4px; }

/* 图片生成工作台：不再承担包材浏览，只显示已经选择的一个样式。 */
.generation-page { padding-top:42px; }.generation-layout { display:grid; grid-template-columns:330px minmax(0,1fr); gap:20px; align-items:start; }.generation-package-card,.generation-settings { padding:20px; }.generation-package-card h2 { margin-bottom:14px; }.generation-preview { overflow:hidden; margin-bottom:10px; border-radius:9px; background:#f1efeb; aspect-ratio:4/5; }.generation-package-card dl { display:grid; gap:10px; margin:0; }.generation-package-card dl div { display:flex; justify-content:space-between; gap:8px; padding-bottom:10px; border-bottom:1px solid var(--line); }.generation-package-card dt { color:#7a899e; font-size:12px; }.generation-package-card dd { margin:0; color:#405371; font-size:12px; font-weight:700; text-align:right; }.generation-angle { max-width:550px; margin:22px 0; }.generation-next { display:grid; gap:5px; margin-top:18px; padding:16px; border:1px dashed #d6e1f2; border-radius:9px; background:#fafcff; }.generation-next strong { color:#4c6286; font-size:13px; }.generation-next p { margin:0 0 7px; color:#7b8aa1; font-size:12px; line-height:1.6; }.generation-next .button { justify-self:start; }

/* 360° 包材预览：第一阶段用 CSS 纸盒实现拖拽查看；后续可由 GLB/GLTF 替换。 */
.packaging-3d-viewer { position:relative; isolation:isolate; display:grid; overflow:hidden; min-height:310px; cursor:grab; perspective:920px; place-items:center; touch-action:none; user-select:none; }.packaging-3d-viewer:active { cursor:grabbing; }.packaging-3d-viewer:focus-visible { outline:3px solid #80aaf6; outline-offset:3px; }.viewer-floor { position:absolute; z-index:-1; width:150%; height:46%; bottom:-16%; transform:rotateX(63deg); transform-origin:center top; background-image:linear-gradient(rgba(87,111,140,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(87,111,140,.12) 1px,transparent 1px); background-size:24px 24px; mask-image:linear-gradient(to bottom,#000 0%,transparent 88%); }.packaging-box-3d { --preview-image:none; position:relative; width:138px; height:228px; transform-style:preserve-3d; will-change:transform; }.box-face { position:absolute; box-sizing:border-box; border:1px solid rgba(67,69,61,.19); backface-visibility:visible; box-shadow:inset 0 0 0 1px rgba(255,255,255,.18); }.box-front,.box-back { width:138px; height:228px; background:#f5eee6; }.box-front { transform:translateZ(34px); background-color:#f4ede3; background-image:linear-gradient(135deg,rgba(255,255,255,.25),rgba(100,83,59,.08)),var(--preview-image); background-position:center; background-size:cover; }.box-back { transform:rotateY(180deg) translateZ(34px); background:linear-gradient(135deg,#dfd6ca,#c9bcad); }.box-right,.box-left { top:0; left:35px; width:68px; height:228px; background:linear-gradient(90deg,#baaa96,#e1d6c8); }.box-right { transform:rotateY(90deg) translateZ(69px); }.box-left { transform:rotateY(-90deg) translateZ(69px); background:linear-gradient(90deg,#91806b,#c2b09b); }.box-top,.box-bottom { top:80px; left:0; width:138px; height:68px; background:linear-gradient(135deg,#f4eee6,#cbbdac); }.box-top { transform:rotateX(90deg) translateZ(114px); }.box-bottom { transform:rotateX(-90deg) translateZ(114px); background:#a69580; }.viewer-hint { position:absolute; right:9px; bottom:9px; padding:5px 7px; border-radius:5px; color:#677a95; background:rgba(255,255,255,.83); font-size:10px; pointer-events:none; }.viewer-actions { display:flex; justify-content:space-between; margin:0 0 11px; padding:0 1px; }.viewer-actions .text-button { padding:4px 0; font-size:11px; }.viewer-note { margin:0 0 14px; color:#8190a5; font-size:10px; line-height:1.55; }
@media (max-width:1000px) { .admin-console { grid-template-columns:200px minmax(0,1fr); }.admin-side-nav.card { padding:34px 20px; }.admin-panel .package-grid,.package-browser-grid,.package-admin-catalog { grid-template-columns:repeat(2,minmax(0,1fr)); }.package-browser-shell { grid-template-columns:200px minmax(0,1fr); }.package-browser-content { padding:34px 25px; }.admin-content { padding:34px 25px 50px; } }
@media (max-width:760px) { .admin-console,.generation-layout { grid-template-columns:1fr; }.admin-side-nav.card { position:static; min-height:0; padding:21px 16px; border-right:0; border-bottom:1px solid var(--line); }.admin-nav-list { grid-template-columns:1fr 1fr; }.admin-side-note { display:none; }.panel-heading-with-action { align-items:flex-start; flex-direction:column; }.package-browser-shell { grid-template-columns:1fr; }.package-filter-side { padding:21px 16px; border-right:0; border-bottom:1px solid var(--line); }.package-filter-brand { margin-bottom:14px; }.package-filter-list { display:flex; overflow:auto; gap:7px; }.package-filter-item { flex:0 0 auto; width:auto; }.package-browser-content,.admin-content { width:100%; padding:28px 16px 45px; }.package-browser-grid,.package-admin-catalog { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }.generation-page { padding-top:29px; } }
@media (max-width:480px) { .package-admin-catalog { grid-template-columns:1fr; } }

.catalog-card-footer { flex-wrap:wrap; gap:7px 10px; }.model-status { color:#9aa6b8; font-size:10px; }.model-status.has-model { color:#5d82bf; }.model-upload-section { display:grid; gap:8px; padding:11px; border:1px dashed #cedcf2; border-radius:8px; background:#f9fbff; }.model-upload-section > div { display:flex; align-items:center; justify-content:space-between; gap:8px; }.model-upload-section strong { color:#496080; font-size:12px; }.model-upload-section span { color:#6c88ba; font-size:11px; }.model-upload-section label { display:grid; gap:6px; color:#5a6c87; font-size:11px; }.model-upload-section input[type="file"] { padding:7px; font-size:11px; }.model-upload-section p { margin:0; color:#8190a7; font-size:10px; line-height:1.55; }

.packaging-3d-viewer canvas { position:absolute; inset:0; z-index:2; width:100%; height:100%; }.packaging-3d-viewer.has-uploaded-model .viewer-floor { z-index:1; opacity:.55; }.packaging-3d-viewer.has-uploaded-model .viewer-hint { z-index:3; }.save-view-button { width:100%; margin:0 0 11px; }

.edit-model-preview { position:relative; display:grid; overflow:hidden; min-height:205px; margin-bottom:4px; border:1px solid var(--line); border-radius:8px; background:linear-gradient(145deg,#f7f6f3,#e9edf3); cursor:grab; place-items:center; touch-action:none; }.edit-model-preview:active { cursor:grabbing; }.edit-model-preview canvas { width:100%; height:205px; }.edit-model-preview span { position:absolute; right:8px; bottom:8px; padding:4px 6px; border-radius:4px; color:#687d99; background:rgba(255,255,255,.85); font-size:10px; pointer-events:none; }
@media (max-width:500px) { .admin-nav-list,.package-browser-grid { grid-template-columns:1fr; }.browser-heading { align-items:flex-start; flex-direction:column; }.package-browser-card .package-thumb { aspect-ratio:4/4.25; }.panel-heading-with-action .heading-actions { width:100%; }.panel-heading-with-action .heading-actions .button { flex:1; } }

/* 图片对话工作台：对话、参考附件、确认生成与结果池清晰分层。 */
.generation-chat-layout { grid-template-columns:330px minmax(0,1fr); }.chat-workspace { min-height:660px; padding:20px; }.chat-messages { display:grid; max-height:360px; min-height:218px; gap:12px; overflow:auto; padding:5px 3px 12px; }.chat-empty { display:grid; min-height:180px; place-content:center; gap:7px; padding:22px; border:1px dashed #d6e1f2; border-radius:9px; color:#7787a0; background:#fafcff; text-align:center; }.chat-empty strong { color:#455c80; }.chat-empty span { max-width:410px; font-size:12px; line-height:1.6; }.chat-message { max-width:86%; padding:11px 13px; border-radius:11px; color:#526178; background:#f5f7fb; line-height:1.65; }.chat-message span { display:block; margin-bottom:4px; color:#7c8ea8; font-size:10px; font-weight:750; letter-spacing:.6px; }.chat-message p { margin:0; font-size:13px; white-space:normal; }.chat-message small { display:block; margin-top:7px; color:#8da0bb; font-size:10px; }.chat-message.user { justify-self:end; color:#fff; background:linear-gradient(135deg,#3477ef,#2b68d7); }.chat-message.user span,.chat-message.user small { color:#dfeaff; }.chat-message.assistant { border:1px solid #dce7fa; background:#f5f8fe; }.chat-message.system { max-width:100%; padding:8px 11px; color:#6a7f9f; background:#fffaf2; font-size:12px; }.chat-message.system span { display:none; }.reference-panel { margin-top:13px; padding:13px; border:1px solid #dfe7f3; border-radius:9px; background:#fbfcff; }.reference-panel-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; }.reference-panel-heading > div { display:flex; align-items:center; gap:8px; }.reference-panel-heading strong { color:#4c6286; font-size:12px; }.reference-panel-heading span { color:#8d9bb0; font-size:10px; }.reference-panel > p { margin:7px 0 0; color:#8a98ac; font-size:10px; }.upload-reference-button { position:relative; overflow:hidden; white-space:nowrap; }.reference-list { display:flex; flex-wrap:wrap; gap:8px; margin-top:11px; }.reference-chip { display:flex; align-items:center; width:calc(50% - 4px); min-width:180px; gap:7px; padding:6px; border:1px solid #e1e8f2; border-radius:7px; background:#fff; }.reference-chip img { width:38px; height:38px; border-radius:5px; object-fit:cover; }.reference-chip div { min-width:0; flex:1; }.reference-chip strong,.reference-chip span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.reference-chip strong { color:#50617b; font-size:10px; }.reference-chip span { margin-top:3px; color:#8b99ad; font-size:9px; }.reference-chip button { width:22px; height:22px; border:0; border-radius:5px; color:#93a1b4; background:#f3f6fa; font-size:17px; line-height:1; }.reference-chip button:hover { color:#c25151; background:#fff0f0; }.prompt-summary { display:grid; gap:11px; margin-top:13px; padding:14px; border:1px solid #d7e4fa; border-radius:9px; background:#f8fbff; }.prompt-summary textarea,.chat-composer textarea { width:100%; resize:vertical; line-height:1.6; }.generation-confirm-row { display:flex; align-items:end; justify-content:space-between; gap:12px; }.generation-confirm-row label { width:180px; }.generation-confirm-row .button { white-space:nowrap; }.chat-composer { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; align-items:end; margin-top:14px; padding-top:14px; border-top:1px solid var(--line); }.chat-input-wrap { position:relative; min-width:0; }.chat-composer .button { min-height:42px; }.mention-menu { position:absolute; z-index:20; right:0; bottom:calc(100% + 8px); left:0; max-height:290px; overflow:auto; padding:10px; border:1px solid #cbdcf6; border-radius:10px; box-shadow:0 12px 28px rgba(45,74,119,.18); background:#fff; }.mention-menu[hidden] { display:none; }.mention-menu-heading { display:flex; justify-content:space-between; margin:0 2px 8px; color:#6680a4; font-size:10px; }.mention-menu-heading strong { color:#49688f; }.mention-image-list { display:grid; gap:5px; }.mention-image { display:grid; grid-template-columns:34px minmax(0,1fr) auto; align-items:center; width:100%; gap:8px; padding:6px; border:0; border-radius:6px; color:#4b5e78; background:#fff; text-align:left; }.mention-image:hover { background:#f0f5ff; }.mention-image img { width:34px; height:34px; border-radius:5px; object-fit:cover; }.mention-image span { overflow:hidden; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }.mention-image small { color:#5c8ee5; font-size:10px; }.mention-empty { margin:8px 2px; color:#8495ac; font-size:11px; }.mention-upload { display:block; margin-top:8px; padding-top:8px; border-top:1px solid #edf1f7; color:#3271dc; font-size:11px; cursor:pointer; }.message-attachment-list { display:flex; flex-wrap:wrap; gap:6px; margin-top:7px; }.message-attachment-chip { display:inline-flex; align-items:center; max-width:100%; gap:5px; padding:3px 5px 3px 3px; border:1px solid #d6e3f8; border-radius:999px; color:#4c6b98; background:#f4f8ff; font-size:10px; }.message-attachment-chip img { width:20px; height:20px; border-radius:50%; object-fit:cover; }.message-attachment-chip strong { overflow:hidden; max-width:150px; text-overflow:ellipsis; white-space:nowrap; }.message-attachment-chip button { padding:0; border:0; color:#7791b8; background:transparent; font-size:15px; line-height:1; }.generation-results { margin-top:20px; padding:20px; }.generated-image-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }.generated-image-card { overflow:hidden; border:1px solid var(--line); border-radius:10px; background:#fff; }.generated-image-card > img { display:block; width:100%; aspect-ratio:1/1; object-fit:cover; background:#f3f4f6; }.generated-image-card > div { padding:11px; }.generated-image-card span { display:inline-block; padding:3px 5px; border-radius:4px; color:#5b82c5; background:#eef4ff; font-size:9px; font-weight:700; }.generated-image-card h3 { overflow:hidden; margin:7px 0 3px; color:#344966; font-size:13px; white-space:nowrap; text-overflow:ellipsis; }.generated-image-card p { margin:0; color:#8b99ad; font-size:10px; }.generated-card-actions { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:11px; }.generated-card-actions .button { padding:6px 8px; font-size:10px; }.generated-card-actions .text-button { white-space:nowrap; font-size:10px; }

/* 图片池：当前项目的可编辑素材与用户历史生成图片分层展示。 */
.image-pool-page { width:min(1440px,calc(100% - 36px)); max-width:none; }.image-pool-page .page-heading { margin-bottom:22px; }.image-pool-card,.image-history-card { padding:20px; }.image-history-card { margin-top:18px; }.pool-title-row,.history-title-row { align-items:flex-start; gap:18px; }.pool-header-actions,.history-meta { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:9px; color:#8190a6; font-size:11px; }.upload-pool-button { white-space:nowrap; }.pool-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(156px,1fr)); gap:13px; }.pool-image-card,.history-image-card { overflow:visible; border:1px solid var(--line); border-radius:10px; background:#fff; }.pool-image-card img { display:block; width:100%; aspect-ratio:1/1; border-radius:9px 9px 0 0; object-fit:cover; background:#f4f6f9; }.pool-card-body { padding:9px; }.pool-card-heading { display:flex; align-items:flex-start; gap:5px; justify-content:space-between; }.pool-image-card h3,.history-image-card h3 { overflow:hidden; margin:0; color:#405473; font-size:12px; line-height:1.45; white-space:nowrap; text-overflow:ellipsis; }.pool-image-card h3 { max-width:112px; }.pool-image-card p,.history-image-card p { overflow:hidden; margin:4px 0 8px; color:#8492a6; font-size:10px; line-height:1.35; white-space:nowrap; text-overflow:ellipsis; }.pool-item-menu { position:relative; flex:0 0 auto; }.pool-item-menu summary { color:#597096; cursor:pointer; font-size:10px; list-style:none; }.pool-item-menu summary::-webkit-details-marker { display:none; }.pool-item-menu[open] summary { color:var(--primary); }.pool-item-menu > div { position:absolute; top:18px; right:0; z-index:5; display:grid; min-width:92px; padding:5px; border:1px solid #dce5f2; border-radius:8px; background:#fff; box-shadow:0 10px 22px rgba(39,63,103,.15); }.pool-item-menu button { padding:6px 7px; border:0; border-radius:5px; color:#445b7d; background:transparent; text-align:left; font:inherit; font-size:11px; cursor:pointer; }.pool-item-menu button:hover { background:#f1f6ff; }.pool-item-menu .danger-action { color:#d85353; }.pool-empty { min-height:210px; }.history-meta { max-width:720px; }.history-filter { display:inline-flex; align-items:center; padding:5px 9px; border:1px solid #cbdaf3; border-radius:6px; color:#3975df; background:#f7faff; font-weight:650; }.history-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(116px,1fr)); gap:11px; }.history-image-card { display:grid; grid-template-columns:42px minmax(0,1fr); gap:7px; padding:7px; border-radius:8px; }.history-image-card img { width:42px; height:42px; border-radius:5px; object-fit:cover; background:#f4f6f9; }.history-image-card h3 { font-size:10px; }.history-image-card p { margin:2px 0 5px; font-size:9px; }.history-image-card .button { min-height:24px; padding:3px 6px; font-size:9px; white-space:nowrap; }.rename-image-dialog { width:min(92vw,420px); padding:0; border:0; border-radius:12px; box-shadow:0 22px 60px rgba(21,42,77,.25); }.rename-image-dialog::backdrop { background:rgba(28,47,77,.42); }.rename-image-dialog form { display:grid; gap:12px; padding:22px; }.rename-image-dialog h2 { margin:0; color:#263d61; font-size:18px; }.rename-image-dialog p { margin:0; color:#7d8ea5; font-size:12px; line-height:1.6; }.rename-image-dialog label { display:grid; gap:6px; color:#536985; font-size:12px; font-weight:650; }.rename-image-dialog input { width:100%; }.rename-image-dialog .dialog-actions { display:flex; justify-content:flex-end; gap:9px; margin-top:4px; }
@media (max-width:1000px) { .image-pool-page { width:min(100% - 30px,980px); }.pool-title-row,.history-title-row { align-items:flex-start; flex-direction:column; }.pool-header-actions,.history-meta { justify-content:flex-start; }.history-grid { grid-template-columns:repeat(auto-fill,minmax(132px,1fr)); } }
@media (max-width:760px) { .image-pool-page { width:min(100% - 24px,650px); }.pool-header-actions,.history-meta { align-items:flex-start; flex-direction:column; }.pool-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.history-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.history-image-card { grid-template-columns:48px minmax(0,1fr); }.history-image-card img { width:48px; height:48px; }.rename-image-dialog .dialog-actions { align-items:stretch; flex-direction:column-reverse; }.rename-image-dialog .button { width:100%; } }

/* 生图摘要的精准引用与结果确认入口。 */
.prompt-field { min-width:0; }.prompt-field > label { display:block; margin-bottom:6px; }.prompt-input-wrap { position:relative; }.generation-mention-menu { bottom:auto; top:calc(100% + 8px); }.generation-attachment-list { min-height:0; }.generation-attachment-hint { margin:7px 0 0; color:#7588a4; font-size:11px; line-height:1.55; }.chat-result-link { display:inline-block; margin-top:8px; color:#2e6fdb; font-size:11px; font-weight:700; text-decoration:none; }.chat-result-link:hover { text-decoration:underline; }

/* 类似对话产品的内联图片引用：图片标签直接位于输入文字中，而不是输入框下方。 */
.inline-image-input { display:block; box-sizing:border-box; width:100%; min-height:92px; padding:10px 11px; overflow:auto; border:1px solid #cad8eb; border-radius:8px; outline:0; color:#405474; background:#fff; line-height:1.7; white-space:pre-wrap; word-break:break-word; cursor:text; }.inline-image-input:focus { border-color:#4b82ed; box-shadow:0 0 0 3px rgba(59,118,235,.12); }.inline-image-input:empty::before { content:attr(data-placeholder); color:#9aa8ba; pointer-events:none; }.chat-inline-input { min-height:70px; }.inline-image-token { display:inline-flex; vertical-align:middle; align-items:center; max-width:220px; gap:5px; margin:1px 4px 1px 0; padding:3px 6px 3px 3px; border-radius:999px; color:#344b6a; background:#eef2f6; font-size:12px; line-height:1.25; user-select:none; }.inline-image-token img { width:20px; height:20px; flex:0 0 20px; border-radius:50%; object-fit:cover; }.inline-image-token strong { overflow:hidden; font-size:11px; font-weight:650; text-overflow:ellipsis; white-space:nowrap; }.inline-image-token button { flex:0 0 auto; padding:0; border:0; color:#7790ad; background:transparent; font-size:16px; line-height:1; cursor:pointer; }.inline-image-token button:hover { color:#bd4e4e; }

/* 生成页三栏工作台：对话、确认摘要和异步任务状态始终各自独立。 */
.generation-layout.generation-chat-layout { grid-template-columns:272px minmax(0,1fr) 342px; align-items:start; gap:16px; }.generation-page { padding-top:26px; }.generation-quick-actions { display:flex; justify-content:flex-end; margin:0 0 18px; }.generation-package-card { position:sticky; top:84px; }.chat-workspace { display:flex; flex-direction:column; height:clamp(560px,calc(100vh - 188px),720px); min-height:0; overflow:hidden; }.chat-workspace .chat-messages { flex:1; min-height:0; max-height:none; overflow-y:auto; overscroll-behavior:contain; scrollbar-gutter:stable; }.chat-workspace .chat-messages::-webkit-scrollbar { width:8px; }.chat-workspace .chat-messages::-webkit-scrollbar-thumb { border:2px solid transparent; border-radius:99px; background:#b8c6dc; background-clip:padding-box; }.chat-workspace .chat-composer { margin-top:auto; }.generation-control-column { position:sticky; top:84px; display:grid; gap:14px; }.generation-control-column .card { padding:16px; }.prompt-summary { margin-top:0; }.prompt-summary .panel-title-row { align-items:flex-start; }.prompt-summary .panel-title-row h2,.generation-queue-panel h2 { font-size:17px; }.prompt-summary .inline-image-input { min-height:126px; max-height:166px; }.compact-reference-panel { margin-top:8px; padding:9px; }.compact-reference-panel .reference-list { max-height:72px; overflow:auto; }.compact-reference-panel .reference-chip { width:100%; min-width:0; }.compact-reference-panel .reference-chip img { width:30px; height:30px; }.compact-reference-panel > p { margin-top:4px; font-size:9px; }.generation-confirm-row { align-items:end; }.generation-confirm-row label { width:130px; }.generation-confirm-row .button { flex:1; }.generation-queue-panel { min-height:236px; }.queue-description { margin:5px 0 9px; color:#7e90a8; font-size:11px; line-height:1.5; }.generation-job-list { display:grid; gap:8px; max-height:310px; overflow:auto; }.job-empty { display:grid; min-height:88px; place-content:center; padding:12px; border:1px dashed #d7e2f0; border-radius:8px; color:#8493a7; background:#fbfcff; text-align:center; font-size:11px; line-height:1.65; }.generation-job { display:grid; gap:7px; padding:9px; border:1px solid #e0e8f3; border-radius:8px; background:#fff; }.generation-job.is-running { border-color:#a8c6fb; background:#f8fbff; }.generation-job.is-failed { border-color:#f3c8c8; background:#fffafa; }.generation-job-header { display:flex; align-items:start; justify-content:space-between; gap:8px; }.generation-job h3 { overflow:hidden; margin:0; color:#435875; font-size:12px; white-space:nowrap; text-overflow:ellipsis; }.generation-job p { margin:2px 0 0; color:#8696ac; font-size:10px; }.job-status { flex:0 0 auto; padding:3px 6px; border-radius:99px; font-size:9px; font-weight:700; }.job-status.queued { color:#9a6a1f; background:#fff4dc; }.job-status.running { color:#2871cf; background:#edf5ff; }.job-status.completed { color:#26845b; background:#e8f8ef; }.job-status.failed { color:#c75050; background:#fff0f0; }.job-progress { height:5px; overflow:hidden; border-radius:99px; background:#eaf0f8; }.job-progress > span { display:block; height:100%; border-radius:inherit; background:#3477ef; transition:width .3s ease; }.generation-job.is-failed .job-progress > span { background:#e16b6b; }.job-meta { display:flex; align-items:center; justify-content:space-between; gap:8px; color:#8594a7; font-size:9px; }.job-error { color:#c45959; font-size:10px; line-height:1.45; }.job-retry { justify-self:end; padding:5px 9px; font-size:10px; }.generation-results { margin-left:288px; margin-right:358px; }
@media (max-width:1180px) { .generation-layout.generation-chat-layout { grid-template-columns:250px minmax(0,1fr); }.generation-control-column { position:static; grid-column:1 / -1; grid-template-columns:minmax(0,1fr) minmax(290px,.72fr); }.generation-results { margin-left:266px; margin-right:0; } }
@media (max-width:760px) { .generation-layout.generation-chat-layout { grid-template-columns:1fr; }.generation-quick-actions { justify-content:flex-start; }.generation-package-card,.generation-control-column { position:static; }.generation-control-column { grid-column:auto; grid-template-columns:1fr; }.chat-workspace { height:auto; }.chat-workspace .chat-messages { min-height:250px; max-height:420px; }.generation-results { margin-right:0; margin-left:0; } }

/* 候选图、报价待命与多图报价：选图与带入报价是同一条连续路径。 */
.generation-action-panel { display:grid; gap:11px; }.generation-action-note { margin:0; color:#7789a3; font-size:11px; line-height:1.55; }.generation-action-panel .reference-panel { margin-top:0; }.selection-queue-panel { min-height:250px; }.selected-image-queue { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; min-height:88px; }.selected-queue-image { position:relative; display:grid; gap:4px; overflow:hidden; padding:0; border:1px solid #d7e4f5; border-radius:8px; color:#4d6180; background:#fff; text-align:left; cursor:pointer; }.selected-queue-image:hover,.selected-queue-image:focus-visible { border-color:#4b82ed; box-shadow:0 0 0 3px rgba(59,118,235,.12); outline:0; }.selected-queue-image img { display:block; width:100%; aspect-ratio:1/1; object-fit:cover; background:#f1f4f8; }.selected-queue-image span { overflow:hidden; padding:0 6px 6px; font-size:9px; white-space:nowrap; text-overflow:ellipsis; }.selected-queue-image i { position:absolute; top:4px; right:4px; display:grid; width:18px; height:18px; border-radius:50%; color:#fff; background:rgba(39,68,110,.72); font-size:14px; font-style:normal; line-height:1; place-items:center; }.selection-queue-empty { display:grid; min-height:88px; padding:11px; border:1px dashed #d7e2f0; border-radius:8px; color:#8493a7; background:#fbfcff; text-align:center; font-size:11px; line-height:1.65; place-content:center; }.selection-quote-button { width:100%; margin-top:10px; }.generated-image-card.is-selected { border-color:#79a5f2; box-shadow:0 0 0 3px rgba(72,130,237,.1); }.generated-image-preview { display:block; width:100%; padding:0; border:0; background:#f3f4f6; cursor:zoom-in; }.generated-image-preview:hover img,.generated-image-preview:focus-visible img { transform:scale(1.025); }.generated-image-preview:focus-visible { outline:3px solid rgba(59,118,235,.32); outline-offset:-3px; }.generated-image-preview img { transition:transform .18s ease; }.image-preview-dialog { width:min(92vw,680px); padding:22px; }.image-preview-dialog::backdrop { background:rgba(32,48,75,.48); }.image-preview-dialog #previewImage { display:block; width:100%; max-height:72vh; border-radius:9px; object-fit:contain; background:#f3f5f8; }.image-preview-dialog .dialog-actions { margin-top:16px; }.product-image-gallery { position:relative; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; overflow:auto; max-height:470px; padding:0; border-radius:9px; background:#efe9e2; }.product-image-gallery figure { min-width:0; margin:0; background:#fff; }.product-image-gallery img { display:block; width:100%; aspect-ratio:4/5; object-fit:cover; background:#f2f3f5; }.product-image-gallery figcaption { overflow:hidden; padding:6px 8px; color:#5a6c85; font-size:10px; white-space:nowrap; text-overflow:ellipsis; }.product-image-gallery .image-state { position:sticky; top:12px; right:12px; justify-self:end; align-self:start; margin:-1px 10px -34px 0; z-index:1; }.product-image-gallery:has(figure:only-child) { grid-template-columns:1fr; }.product-image-gallery:has(figure:only-child) img { max-height:430px; }.product-image-gallery:has(figure:only-child) figcaption { display:none; }

/* 生成方案由对话确认，右侧只保留附件、确认入口和任务队列。 */
.chat-thinking { display:flex; align-items:center; gap:7px; margin:4px 0 8px; color:#5276a9; font-size:12px; font-weight:650; }.chat-thinking::before { width:7px; height:7px; border-radius:50%; background:#3474eb; box-shadow:0 0 0 4px rgba(52,116,235,.12); content:""; animation:chat-thinking-pulse 1.1s ease-in-out infinite; }.chat-thinking[hidden] { display:none; } @keyframes chat-thinking-pulse { 50% { opacity:.42; transform:scale(.78); } }
.generation-confirm-button { width:100%; }.job-status.partial { color:#956e2a; background:#fff4dc; }.generation-job.is-partial { border-color:#f0d59d; background:#fffdf8; }
.job-actions { display:flex; align-items:center; justify-content:flex-end; gap:7px; }.job-detail { padding:4px 2px; font-size:10px; }.generation-job-detail-dialog { width:min(680px,calc(100% - 30px)); max-height:84vh; overflow:auto; padding:20px; }.generation-job-detail-facts { display:flex; flex-wrap:wrap; gap:7px; margin:15px 0; }.generation-job-detail-facts span { padding:5px 8px; border:1px solid #dce7f7; border-radius:6px; color:#58719a; background:#f6f9ff; font-size:11px; }.generation-job-detail-section { padding:13px; border:1px solid #dfe8f5; border-radius:9px; background:#fbfcff; }.generation-job-detail-section + .generation-job-detail-section { margin-top:11px; }.generation-job-detail-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; }.generation-job-detail-heading h3 { margin:0; color:#405879; font-size:13px; }.generation-job-detail-heading span { color:#7d91ad; font-size:11px; }.generation-job-detail-prompt { max-height:230px; margin:9px 0 0; overflow:auto; color:#536a8d; font-size:12px; line-height:1.7; white-space:pre-wrap; }.generation-job-detail-results,.generation-job-detail-attachments { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:8px; margin-top:10px; }.generation-job-detail-result,.generation-job-detail-attachment { display:flex; min-width:0; align-items:center; gap:8px; padding:7px; border:1px solid #e0e8f4; border-radius:7px; background:#fff; }.generation-job-detail-result-preview { width:58px; height:58px; flex:0 0 auto; overflow:hidden; padding:0; border:0; border-radius:6px; background:#edf3fd; cursor:zoom-in; }.generation-job-detail-result-preview img { display:block; width:100%; height:100%; object-fit:cover; }.generation-job-detail-result > div,.generation-job-detail-attachment div { min-width:0; flex:1; }.generation-job-detail-attachment-visual { display:grid; flex:0 0 auto; width:32px; height:32px; place-items:center; border-radius:5px; object-fit:cover; color:#59739c; background:#edf3fd; font-size:9px; font-weight:700; }.generation-job-detail-result strong,.generation-job-detail-result span,.generation-job-detail-attachment strong,.generation-job-detail-attachment span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.generation-job-detail-result strong,.generation-job-detail-attachment strong { color:#4c6180; font-size:11px; }.generation-job-detail-result span,.generation-job-detail-attachment span,.generation-job-detail-empty,.generation-job-detail-unavailable { margin:2px 0 0; color:#8a9bb0; font-size:10px; }.generation-job-detail-file-actions { display:flex; gap:9px; margin-top:6px; }.generation-job-detail-file-actions a { color:#3975d5; font-size:10px; font-weight:700; text-decoration:none; }.generation-job-detail-file-actions a:hover { color:#1e5fbd; text-decoration:underline; }
@media (max-width:1180px) { .selection-queue-panel { min-height:0; }.selected-image-queue { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media (max-width:760px) { .selected-image-queue { grid-template-columns:repeat(3,minmax(0,1fr)); }.product-image-gallery { max-height:none; }.image-preview-dialog { padding:16px; } }

/* 结果坞站版工作台：左侧集中操作，右侧以对话与候选结果为主。 */
.generation-page { width:min(1440px,calc(100% - 36px)); max-width:none; padding-top:18px; }.generation-layout.generation-dock-layout { grid-template-columns:360px minmax(0,1fr); align-items:start; gap:16px; }.generation-left-rail { position:sticky; top:82px; display:flex; flex-direction:column; gap:16px; padding:18px; }.generation-left-rail .generation-preview { margin-bottom:8px; aspect-ratio:4/3.35; }.generation-left-rail .save-view-button { margin-bottom:0; }.generation-left-rail .viewer-note { margin:0; }.generation-left-rail dl { margin-top:2px; }.generation-left-rail .generation-action-panel,.generation-left-rail .generation-queue-panel { padding-top:16px; border-top:1px solid var(--line); }.generation-left-rail .generation-action-panel { display:grid; gap:10px; }.generation-left-rail .generation-action-panel .panel-title-row,.generation-left-rail .generation-queue-panel .panel-title-row { margin-bottom:0; }.generation-left-rail .generation-action-note { margin:0; }.generation-left-rail .compact-reference-panel { margin-top:0; }.generation-left-rail .generation-confirm-row { align-items:stretch; flex-direction:column; gap:9px; }.generation-left-rail .generation-confirm-row label,.generation-left-rail .generation-confirm-row .button { width:100%; }.generation-left-rail .generation-job-list { max-height:220px; }.generation-main-stage { display:grid; min-width:0; gap:16px; }.generation-dock-layout .chat-workspace { height:clamp(430px,calc(100vh - 112px),620px); }.generation-dock-layout .chat-workspace .chat-messages { min-height:0; }.generation-dock-layout .generation-results { margin:0; padding:18px; }.generation-results .panel-title-row { align-items:center; margin-bottom:13px; }.generation-result-status { margin:0; color:#5c927a; font-size:11px; font-weight:650; text-align:right; }.generation-result-dock { display:grid; grid-template-columns:minmax(0,1fr) 278px; gap:16px; align-items:stretch; }.generation-result-dock .generated-image-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }.generation-result-dock .generated-image-card { border-radius:10px; }.generation-result-dock .generated-image-card > div { padding:9px; }.generation-result-dock .generated-card-actions { margin-top:8px; }.generation-result-dock .selection-queue-panel { display:flex; flex-direction:column; min-height:0; padding:0 0 0 16px; border-left:1px solid var(--line); }.generation-result-dock .selection-queue-panel .panel-title-row { margin-bottom:8px; }.generation-result-dock .selection-queue-panel .queue-description { margin-top:0; }.generation-result-dock .selected-image-queue { grid-template-columns:repeat(auto-fill,minmax(72px,1fr)); align-content:start; max-height:246px; overflow:auto; padding-right:3px; }.generation-result-dock .selection-queue-empty { min-height:160px; }.generation-result-dock .selection-quote-button { margin-top:auto; }.generation-result-dock .selected-queue-image span { display:none; }
.generation-result-dock .generated-image-grid { align-content:start; max-height:340px; overflow-y:auto; overscroll-behavior:contain; padding:0 4px 2px 0; scrollbar-gutter:stable; }.generation-result-dock .generated-image-preview { display:block; aspect-ratio:1/1; overflow:hidden; }.generation-result-dock .generated-image-preview img { display:block; width:100%; height:100%; object-fit:cover; }
@media (max-width:1180px) { .generation-page { width:min(100% - 30px,980px); }.generation-layout.generation-dock-layout { grid-template-columns:300px minmax(0,1fr); }.generation-result-dock { grid-template-columns:1fr; }.generation-result-dock .selection-queue-panel { padding:16px 0 0; border-top:1px solid var(--line); border-left:0; }.generation-result-dock .selected-image-queue { grid-template-columns:repeat(auto-fill,minmax(78px,1fr)); max-height:180px; }.generation-result-dock .selection-quote-button { width:auto; align-self:end; min-width:180px; } }
@media (max-width:760px) { .generation-page { width:min(100% - 24px,650px); }.generation-layout.generation-dock-layout { grid-template-columns:1fr; }.generation-left-rail { position:static; }.generation-dock-layout .chat-workspace { height:auto; }.generation-dock-layout .chat-workspace .chat-messages { min-height:260px; max-height:440px; }.generation-result-dock .generated-image-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.generation-result-status { text-align:left; }.generation-results .panel-title-row { align-items:flex-start; flex-direction:column; }.generation-result-dock .selection-quote-button { width:100%; align-self:auto; } }

/* 选定稿：顶部三栏，候选图与报价待命单独横跨下方。 */
.generation-layout.generation-dock-layout { grid-template-columns:272px minmax(0,1fr) 342px; }.generation-left-rail { display:block; padding:18px; }.generation-left-rail .generation-preview { aspect-ratio:4/3.35; }.generation-control-column { position:sticky; top:82px; display:grid; gap:16px; }.generation-control-column .card { padding:16px; }.generation-control-column .generation-action-panel { display:grid; gap:10px; }.generation-control-column .generation-action-panel .panel-title-row,.generation-control-column .generation-queue-panel .panel-title-row { margin-bottom:0; }.generation-control-column .compact-reference-panel { margin-top:0; }.generation-control-column .generation-job-list { max-height:220px; }.generation-layout.generation-dock-layout > .generation-results { grid-column:1 / -1; margin:0; }.generation-layout.generation-dock-layout > .chat-workspace { height:clamp(620px,calc(100vh - 84px),780px); }
@media (max-width:1180px) { .generation-layout.generation-dock-layout { grid-template-columns:250px minmax(0,1fr); }.generation-control-column { position:static; grid-column:1 / -1; grid-template-columns:minmax(0,1fr) minmax(290px,.72fr); }.generation-layout.generation-dock-layout > .generation-results { grid-column:1 / -1; } }
@media (max-width:760px) { .generation-layout.generation-dock-layout { grid-template-columns:1fr; }.generation-control-column { grid-column:auto; grid-template-columns:1fr; }.generation-control-column .generation-confirm-row { align-items:stretch; flex-direction:column; }.generation-control-column .generation-confirm-row label,.generation-control-column .generation-confirm-row .button { width:100%; }.generation-layout.generation-dock-layout > .chat-workspace { height:auto; }.generation-left-rail,.generation-control-column { position:static; } }

/* 避免滚动后侧栏覆盖候选图；宽屏适度向两侧展开，使工作区整体更靠左。 */
.generation-left-rail,.generation-control-column { position:static; }
@media (min-width:1181px) { .generation-page { width:min(1600px,calc(100% - 36px)); } }

/* 宽屏首列对齐到左侧工作区，并将 3D 预览严格限制在包材卡内。 */
@media (min-width:1181px) { .generation-page { width:min(1800px,calc(100% - 48px)); margin-right:auto; margin-left:24px; }.generation-layout.generation-dock-layout { grid-template-columns:clamp(320px,22.75vw,466px) minmax(0,1fr) 342px; }.generation-package-card.generation-left-rail { width:100%; min-width:0; }.generation-left-rail .generation-preview,.generation-left-rail .packaging-3d-viewer { width:100%; max-width:100%; }.generation-left-rail #generationModelCanvas { max-width:100%; max-height:100%; } }

/* 结果坞站改为上下两层：候选图横向浏览，报价待命紧随其后。 */
.generation-result-dock { grid-template-columns:minmax(0,1fr); gap:16px; }.generation-result-dock .generated-image-grid { display:flex; align-items:stretch; gap:12px; max-height:none; overflow-x:auto; overflow-y:hidden; padding:0 4px 10px 0; scroll-snap-type:x proximity; scrollbar-gutter:stable; }.generation-result-dock .generated-image-grid::-webkit-scrollbar { height:10px; }.generation-result-dock .generated-image-grid::-webkit-scrollbar-track { border-radius:99px; background:#edf2f8; }.generation-result-dock .generated-image-grid::-webkit-scrollbar-thumb { border:2px solid #edf2f8; border-radius:99px; background:#aebfd8; }.generation-result-dock .generated-image-card { flex:0 0 clamp(156px,11vw,196px); scroll-snap-align:start; }.generation-result-dock .selection-queue-panel { display:grid; grid-template-columns:minmax(190px,240px) minmax(0,1fr) minmax(168px,220px); grid-template-rows:auto auto; align-items:center; gap:4px 16px; min-height:0; padding:16px 0 0; border-top:1px solid var(--line); border-left:0; }.generation-result-dock .selection-queue-panel .panel-title-row { grid-column:1; grid-row:1; margin:0; }.generation-result-dock .selection-queue-panel .queue-description { grid-column:1; grid-row:2; margin:0; }.generation-result-dock .selected-image-queue { display:flex; grid-column:2; grid-row:1 / span 2; align-items:center; align-content:normal; gap:8px; max-height:none; min-height:76px; overflow-x:auto; overflow-y:hidden; padding:2px 3px 8px 0; }.generation-result-dock .selected-queue-image { flex:0 0 72px; }.generation-result-dock .selection-quote-button { grid-column:3; grid-row:1 / span 2; width:100%; margin:0; }.generation-result-dock .selection-queue-empty { min-height:76px; width:100%; }
@media (max-width:760px) { .generation-result-dock .generated-image-card { flex-basis:156px; }.generation-result-dock .selection-queue-panel { grid-template-columns:1fr; grid-template-rows:auto; gap:8px; }.generation-result-dock .selection-queue-panel .panel-title-row,.generation-result-dock .selection-queue-panel .queue-description,.generation-result-dock .selected-image-queue,.generation-result-dock .selection-quote-button { grid-column:1; grid-row:auto; }.generation-result-dock .selected-image-queue { min-height:76px; }.generation-result-dock .selection-quote-button { width:100%; } }

/* 宽屏上方工作区共用底部基线，结果区与上方模块保持清晰间距。 */
@media (min-width:1181px) { .generation-page { padding-top:30px; }.generation-layout.generation-dock-layout { align-items:stretch; row-gap:28px; }.generation-layout.generation-dock-layout > .generation-package-card,.generation-layout.generation-dock-layout > .chat-workspace,.generation-layout.generation-dock-layout > .generation-control-column { min-height:780px; }.generation-layout.generation-dock-layout > .chat-workspace,.generation-layout.generation-dock-layout > .generation-control-column { height:780px; }.generation-control-column { min-height:0; grid-template-rows:auto minmax(0,1fr); }.generation-control-column .generation-queue-panel { height:100%; }.generation-layout.generation-dock-layout > .generation-results { align-self:start; } }

/* 消息必须随内容收缩：成功、等待和失败都不允许占据整个对话区。 */
.chat-message { align-self:start; height:fit-content; }

/* 宽屏侧栏的任务列表应吃满可用高度；失败任务很多时仅列表自身滚动。 */
@media (min-width:1181px) { .generation-control-column .generation-queue-panel { display:flex; flex-direction:column; min-height:0; overflow:hidden; }.generation-control-column .generation-job-list { flex:1 1 auto; min-height:0; max-height:none; overflow-x:hidden; overflow-y:auto; overscroll-behavior:contain; }.chat-workspace .chat-messages { align-content:start; grid-auto-rows:max-content; }.chat-workspace .chat-messages > .chat-empty { min-height:100%; } }

/* 图片放大查看：滚轮缩放、拖拽平移，并让右侧附件区优先承载可引用素材。 */
.image-preview-dialog .preview-image-canvas { position:relative; display:grid; min-height:280px; max-height:72vh; overflow:hidden; border-radius:9px; background:#f3f5f8; cursor:zoom-in; place-items:center; touch-action:none; user-select:none; }.image-preview-dialog .preview-image-canvas.is-zoomed { cursor:grab; }.image-preview-dialog .preview-image-canvas.is-panning { cursor:grabbing; }.image-preview-dialog #previewImage { max-height:72vh; transform-origin:center; transition:transform .12s ease-out; will-change:transform; }.image-preview-dialog .preview-image-canvas.is-panning #previewImage { transition:none; }.preview-zoom-controls { position:absolute; right:12px; bottom:12px; z-index:2; display:grid; grid-template-columns:36px 58px 36px; align-items:center; overflow:hidden; border:1px solid rgba(196,210,230,.96); border-radius:9px; background:rgba(255,255,255,.94); box-shadow:0 7px 20px rgba(34,52,83,.16); cursor:default; backdrop-filter:blur(8px); }.preview-zoom-controls button { display:grid; width:36px; height:36px; padding:0; border:0; color:#315f9f; background:transparent; font-size:20px; font-weight:500; line-height:1; cursor:pointer; place-items:center; }.preview-zoom-controls button:hover:not(:disabled) { color:#1f64d8; background:#eef5ff; }.preview-zoom-controls button:focus-visible { z-index:1; outline:3px solid rgba(47,111,237,.2); outline-offset:-3px; }.preview-zoom-controls button:disabled { color:#b6c0cf; cursor:not-allowed; }.preview-zoom-controls output { display:grid; height:36px; border-right:1px solid #e0e7f0; border-left:1px solid #e0e7f0; color:#536984; font-size:10px; font-weight:750; place-items:center; }.generation-control-column .compact-reference-panel { padding:10px; }.generation-control-column .compact-reference-panel .reference-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; max-height:184px; overflow:auto; }.generation-control-column .compact-reference-panel .reference-chip { width:auto; min-width:0; }.generation-control-column .compact-reference-panel .reference-chip img { width:28px; height:28px; }.generation-control-column .compact-reference-panel .reference-chip strong { font-size:9px; }
#referenceDropZone { position:relative; transition:border-color .16s ease,background .16s ease,box-shadow .16s ease; } #referenceDropZone::after { position:absolute; inset:6px; z-index:2; display:none; align-items:center; justify-content:center; border:1px dashed #4d83ee; border-radius:7px; color:#2f6fdc; background:rgba(246,250,255,.94); font-size:11px; font-weight:700; pointer-events:none; content:"松开即可添加参考图"; } #referenceDropZone.is-file-drop-target { border-color:#77a4ef; background:#f5f9ff; box-shadow:0 0 0 3px rgba(65,124,233,.12); } #referenceDropZone.is-file-drop-target::after { display:flex; } #referenceDropZone.is-file-uploading::after { display:flex; border-color:#9eb8e8; color:#5475a8; content:"正在添加参考图…"; } #referenceDropZone.is-file-uploading { border-color:#a8c1ea; } .upload-reference-button.is-disabled { pointer-events:none; opacity:.58; }
#referenceDropZone::after { content:"松开即可添加参考资料"; } #referenceDropZone.is-file-uploading::after { content:"正在添加参考资料…"; } .attachment-file-icon { display:grid; flex:0 0 auto; width:30px; height:30px; border:1px solid #cddcf5; border-radius:5px; color:#3570cf; background:#f1f6ff; font-size:7px; font-weight:800; letter-spacing:.1px; line-height:1; place-items:center; } .reference-chip .reference-attachment-visual { width:38px; height:38px; border-radius:5px; object-fit:cover; } .generation-control-column .compact-reference-panel .reference-chip .reference-attachment-visual { width:28px; height:28px; } .inline-image-token .attachment-file-icon { width:20px; height:20px; border-radius:50%; font-size:6px; } .mention-image .attachment-file-icon { width:34px; height:34px; border-radius:5px; font-size:7px; }
.chat-message.user.is-pending { box-shadow:0 0 0 2px rgba(106,154,238,.2); } .message-delivery-status { color:#dfeaff!important; } .message-delivery-status.is-failed { color:#ffd7d7!important; } .chat-message.user.is-failed { background:#b95e67; } #sendChat.is-pending:disabled { opacity:1; color:#fff; background:linear-gradient(135deg,#3477ef,#2b68d7); box-shadow:0 5px 12px rgba(47,111,237,.2); }
@media (min-width:1181px) { .generation-page { width:min(2000px,calc(100% - 48px)); margin-right:auto; margin-left:auto; } }
@media (max-width:760px) { .generation-control-column .compact-reference-panel .reference-list { grid-template-columns:1fr; max-height:220px; } }

/* 简单用户系统：登录、账户资料与业务工作台分层，不把个人设置塞进报价流程。 */
.account-entry { cursor:pointer; text-decoration:none; }.account-entry:hover,.account-entry[aria-expanded="true"] { color:#2f6fed; }.account-entry:focus-visible { border-radius:7px; outline:3px solid rgba(47,111,237,.18); outline-offset:5px; }.account-entry-identity { display:grid; gap:1px; line-height:1.15; }.account-entry-identity strong { color:inherit; font-size:12px; font-weight:700; }.account-entry-identity small { color:#8a98ac; font-size:9px; font-weight:600; }.account-entry-arrow { margin-left:3px; color:#8193ad; transition:transform .16s ease; }.account-entry[aria-expanded="true"] .account-entry-arrow { transform:rotate(180deg); }.account-menu-popover { position:fixed; z-index:80; display:grid; width:220px; overflow:hidden; padding:7px; border:1px solid #dce5f2; border-radius:11px; background:#fff; box-shadow:0 16px 38px rgba(34,58,97,.18); }.account-menu-popover[hidden] { display:none; }.account-menu-summary { display:grid; gap:3px; margin:0 3px 5px; padding:9px 10px 11px; border-bottom:1px solid #edf1f6; }.account-menu-summary strong { color:#314b70; font-size:13px; }.account-menu-summary span { overflow:hidden; color:#8a98ac; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }.account-menu-popover > a,.account-menu-popover > button { box-sizing:border-box; width:100%; padding:9px 10px; border:0; border-radius:7px; color:#455c7c; background:transparent; text-align:left; text-decoration:none; font:inherit; font-size:12px; cursor:pointer; }.account-menu-popover > a:hover,.account-menu-popover > a:focus-visible,.account-menu-popover > button:hover,.account-menu-popover > button:focus-visible { outline:0; color:#2f6fed; background:#f1f6ff; }.account-menu-popover > button:disabled { cursor:wait; opacity:.58; }.account-menu-popover > .account-menu-danger { color:#c34d4d; }.account-menu-popover > .account-menu-danger:hover,.account-menu-popover > .account-menu-danger:focus-visible { color:#b43d3d; background:#fff1f1; }.account-menu-status { min-height:0; margin:3px 10px 0; color:#bd4e4e; font-size:10px; line-height:1.5; }.account-menu-status:empty { display:none; }.password-dialog { width:min(460px,calc(100% - 30px)); }.password-dialog form { gap:13px; }.password-dialog label { display:grid; gap:6px; color:#526680; font-size:12px; font-weight:650; }.password-dialog label small { color:#8c99aa; font-size:10px; font-weight:400; }.password-dialog-status { min-height:17px; color:#bd4e4e; }.password-dialog-status:empty { min-height:0; }
.auth-page { min-height:100vh; overflow-x:hidden; background:#f7faff; }
.auth-shell-editorial { position:relative; display:grid; grid-template-columns:minmax(0,1.04fr) minmax(410px,.96fr); width:min(1680px,calc(100% - 96px)); min-height:100vh; margin:0 auto; gap:clamp(72px,8vw,164px); align-items:stretch; }
.auth-story { position:relative; min-width:0; }.auth-story .brand { position:absolute; top:50px; left:-124px; display:inline-flex; margin:0; font-size:22px; }.auth-story .brand-mark { width:39px; height:39px; border-radius:12px; font-size:19px; }
.auth-story-content { position:absolute; top:252px; left:-7px; width:760px; padding:0 0 30px; }.auth-story-content::before { position:absolute; z-index:-1; top:-128px; left:-82px; width:840px; height:840px; border:1px solid #dceaff; border-radius:50%; content:""; opacity:.75; }
.auth-story-content::after { position:absolute; z-index:-1; top:-71px; left:130px; width:520px; height:520px; border:1px dashed #dbe9ff; border-radius:50%; content:""; opacity:.8; }
.auth-story h1 { max-width:760px; margin:0 0 24px; color:#172d52; font-size:64px; font-weight:800; letter-spacing:-2.2px; line-height:1.14; }.auth-story-copy { max-width:650px; margin:0; color:#647a9b; font-size:17px; line-height:1.85; }
.auth-value-row { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); max-width:720px; margin-top:59px; }.auth-value-item { display:grid; gap:8px; min-width:0; padding:0 25px; color:#6d82a2; font-size:13px; line-height:1.7; }.auth-value-item:first-child { padding-left:0; }.auth-value-item + .auth-value-item { border-left:1px solid #d7e3f5; }.auth-value-item strong { color:#1d3e70; font-size:17px; font-weight:750; }.auth-value-item span { max-width:150px; }
.auth-access { align-self:start; width:min(100%,508px); margin-top:184px; padding:0; transform:translateX(10px); }.auth-access > .section-kicker { margin-bottom:17px; }.auth-form { display:grid; gap:21px; }.auth-form[hidden] { display:none!important; }.auth-form h2 { color:#152d53; font-size:47px; line-height:1.1; letter-spacing:-1.2px; }.auth-form-copy { margin:-6px 0 7px; color:#7488a7; font-size:14px; line-height:1.65; }.auth-form label,.account-form label { display:grid; gap:9px; color:#314b70; font-size:13px; font-weight:750; }.auth-form input,.account-form input { width:100%; min-height:58px; box-sizing:border-box; border-color:#d2dfef; border-radius:8px; padding:14px 16px; color:#263e61; background:rgba(255,255,255,.78); font-size:15px; }.auth-form input::placeholder { color:#a1b0c5; }.auth-form input:focus { border-color:#4f85ef; box-shadow:0 0 0 4px rgba(47,111,237,.1); }.auth-form-actions { display:flex; justify-content:flex-end; min-height:18px; margin:-8px 0 4px; color:#2f6fed; font-size:12px; }.auth-form-support { color:#2f6fed; }.auth-form .button { width:100%; min-height:58px; margin-top:3px; border-radius:9px; font-size:16px; }.auth-route { margin:0; color:#7c8da5; font-size:13px; text-align:center; }.auth-route button { padding:0; border:0; color:#2f6fed; background:transparent; font:inherit; font-weight:750; }.auth-route button:hover { color:#1d56c8; text-decoration:underline; }.auth-error { margin:0 0 18px; padding:11px 13px; border-radius:8px; color:#b34c4c; background:#fff0f0; font-size:12px; line-height:1.5; }
.account-page { width:min(1120px,calc(100% - 48px)); padding-top:46px; }.account-layout { display:grid; grid-template-columns:280px minmax(0,1fr); gap:18px; align-items:start; }.account-summary { position:sticky; top:88px; padding:24px; }.account-summary h2 { margin:8px 0; }.account-summary > p { margin:0 0 16px; color:#7285a1; }.account-section { display:grid; gap:10px; padding:24px; }.account-section h2,.account-section p { margin:0; }.account-section p { max-width:680px; color:#70829c; font-size:13px; line-height:1.65; }.account-form { display:grid; max-width:420px; gap:12px; margin-top:5px; }.account-form > div { display:flex; align-items:center; gap:12px; }.account-danger { border-color:#ebdede; }.account-danger .button-secondary { color:#a94e4e; border-color:#e7c8c8; }.account-danger .button-secondary:hover { background:#fff5f5; }
@media (max-width:1600px) { .auth-shell-editorial { grid-template-columns:minmax(0,1fr) minmax(360px,.8fr); width:min(1280px,calc(100% - 64px)); gap:60px; align-items:center; }.auth-story { padding:46px 0; }.auth-story .brand { position:static; margin-bottom:90px; }.auth-story-content { position:relative; top:auto; left:auto; width:auto; max-width:690px; padding:0 0 30px 3vw; }.auth-story-content::before { top:-128px; left:-5vw; width:700px; height:700px; }.auth-story-content::after { top:-48px; left:4vw; width:520px; height:520px; }.auth-story h1 { max-width:710px; font-size:clamp(43px,4.1vw,64px); }.auth-access { align-self:center; margin-top:0; padding:20px 0; transform:none; }.auth-value-row { gap:0; }.auth-value-item { padding:0 17px; }.auth-value-item strong { font-size:15px; }.auth-value-item span { font-size:12px; } }
@media (max-width:760px) { .auth-shell-editorial,.account-layout { grid-template-columns:1fr; width:min(100% - 32px,600px); gap:24px; padding:32px 0 44px; }.auth-story { padding:0; }.auth-story .brand { margin-bottom:47px; }.auth-story-content { padding:0; }.auth-story-content::before { top:-66px; left:-80px; width:365px; height:365px; }.auth-story-content::after { top:-18px; left:-34px; width:270px; height:270px; }.auth-story h1 { max-width:500px; font-size:38px; letter-spacing:-1.5px; }.auth-story-copy { font-size:15px; }.auth-value-row { max-width:none; margin-top:36px; }.auth-access { width:100%; padding-top:18px; }.auth-form h2 { font-size:37px; }.account-page { width:min(100% - 32px,650px); padding-top:28px; }.account-summary { position:static; } }

/* 后台管理：按“总览—配置—人员与审计”分层，避免把所有设置堆在同一张表里。 */
.admin-console { grid-template-columns:205px minmax(0, 1fr); background:linear-gradient(125deg,#f8faff 0%,#f5f8fc 48%,#fbfcff 100%); }
.admin-side-nav.card { padding:30px 20px; }
.admin-side-nav h2 { font-size:18px; }
.admin-content { width:min(1540px, 100%); padding:30px 32px 58px; }
.admin-panel-heading { margin-bottom:20px; }
.admin-panel-heading h1 { font-size:27px; }
.admin-section-kicker { margin:0 0 5px; color:#7c9bd4; font-size:10px; font-weight:750; letter-spacing:1.3px; }
.admin-overview-layout { display:grid; grid-template-columns:minmax(0,1.65fr) 330px; gap:18px; align-items:start; }
.admin-overview-main { display:grid; gap:18px; }
.admin-overview-card,.admin-pending-card,.admin-help-card,.admin-list-card { padding:20px; }
.admin-overview-card h2,.admin-pending-card h2,.admin-help-card h2,.admin-list-card h2 { margin:0 0 5px; font-size:17px; }
.admin-overview-card > p,.admin-pending-card > p,.admin-help-card > p,.admin-list-card > p { margin:0 0 16px; color:#7888a0; font-size:12px; line-height:1.55; }
.admin-module-row { display:grid; grid-template-columns:48px minmax(180px,1fr) 135px auto; gap:14px; align-items:center; padding:13px; border:1px solid #e0e8f3; border-radius:9px; background:#fff; }
.admin-module-row + .admin-module-row { margin-top:11px; }
.admin-module-icon,.workspace-icon { display:grid; width:42px; height:42px; border-radius:11px; place-items:center; color:#2f6fed; background:#edf4ff; font-size:14px; font-weight:800; }
.admin-module-row strong { color:#314967; font-size:14px; }.admin-module-row p { margin:4px 0 0; color:#7c8ba0; font-size:11px; line-height:1.5; }
.module-status { color:#6b7e99; font-size:11px; }.module-status .status-dot { display:inline-block; margin-right:7px; vertical-align:middle; transform:scale(.7); }
.admin-pending-list { display:grid; }.admin-pending-item { display:grid; grid-template-columns:1fr auto 14px; gap:8px; align-items:center; padding:15px 0; border:0; border-bottom:1px solid #edf1f6; color:#54657f; background:transparent; text-align:left; font-size:12px; }.admin-pending-item strong { color:#e56868; font-size:14px; }.admin-pending-item:hover { color:var(--blue); }
.admin-help-card { margin-top:18px; }.admin-help-link { display:flex; align-items:center; justify-content:space-between; margin-top:9px; padding:12px; border:1px solid #e4ebf5; border-radius:8px; color:#4d6691; text-decoration:none; font-size:12px; }.admin-help-link:hover { border-color:#a8c5f5; color:#2868db; }
.admin-recent-table { overflow:auto; }.admin-recent-table table { min-width:700px; }.admin-recent-table td,.admin-recent-table th { font-size:11px; }.admin-recent-table td:last-child { color:#536d98; }
.admin-process-layout { display:grid; grid-template-columns:245px minmax(0,1fr) 292px; gap:16px; align-items:start; }.process-side-card,.process-work-card,.process-preview-card { padding:18px; }.process-side-card h2,.process-work-card h2,.process-preview-card h2 { margin-bottom:6px; }.process-side-card > p,.process-work-card > p,.process-preview-card > p { margin:0 0 14px; color:#7b8ba1; font-size:11px; line-height:1.55; }
.process-group-picker { display:grid; gap:4px; margin:12px 0; }.process-picker-item { display:flex; justify-content:space-between; align-items:center; width:100%; padding:11px 10px; border:1px solid transparent; border-radius:7px; color:#50627d; background:transparent; text-align:left; }.process-picker-item:hover { background:#f4f7fc; }.process-picker-item.active { border-color:#d4e3fe; color:#2e6fde; background:#edf4ff; font-weight:700; }.process-picker-item small { color:#8495ae; }
.process-group-card { box-shadow:none; }.process-work-card .process-group-card { margin-top:14px; }.process-formula-list { display:grid; gap:8px; }.process-formula-list div { display:flex; justify-content:space-between; gap:12px; padding:10px; border:1px solid #e3eaf4; border-radius:7px; color:#4c6ea5; font-size:11px; }.process-formula-list span { color:#77879e; }
.quote-impact-preview { margin-top:16px; padding:13px; border:1px solid #e1eaf7; border-radius:8px; background:#f8fbff; }.quote-impact-preview h3 { margin:0 0 11px; color:#45608a; font-size:12px; }.quote-impact-preview div { display:flex; justify-content:space-between; padding:8px 0; border-bottom:1px solid #e7edf7; color:#76869d; font-size:11px; }.quote-impact-preview div:last-child { border-bottom:0; color:#2d65c5; font-weight:750; }
.admin-filter-bar { display:grid; grid-template-columns:minmax(180px,1.25fr) minmax(150px,.9fr) minmax(150px,.9fr) auto; gap:14px; align-items:end; margin-bottom:14px; padding:18px; }.admin-filter-bar input,.admin-filter-bar select { width:100%; }.admin-filter-bar .button { white-space:nowrap; }
.admin-data-layout { display:grid; grid-template-columns:minmax(0,1fr) 330px; gap:16px; align-items:start; }.admin-table-card { overflow:hidden; }.admin-table-wrap { overflow:auto; }.admin-table-wrap table { min-width:920px; }.admin-table-wrap td,.admin-table-wrap th { padding:12px 10px; font-size:12px; }.user-cell { display:flex; align-items:center; gap:8px; min-width:130px; }.user-cell > span { display:grid; width:29px; height:29px; border-radius:50%; place-items:center; color:white; background:linear-gradient(135deg,#4c85f6,#2a64d2); font-size:12px; font-weight:750; }.user-cell strong { display:block; color:#405574; font-size:12px; }.user-cell em { padding:2px 4px; color:#5280d1; background:#edf4ff; border-radius:4px; font-size:9px; font-style:normal; }.user-cell small { display:block; margin-top:2px; color:#8896aa; font-size:10px; }.row-role-select { width:128px; padding:6px 7px; font-size:11px; }.scope-chip,.module-tag { display:inline-block; padding:4px 6px; border-radius:4px; color:#4c82c9; background:#eef4ff; font-size:10px; white-space:nowrap; }.scope-chip.personal-workspace { color:#289b70; background:#ecfaf3; }.scope-chip.package-library { color:#c07920; background:#fff6e9; }.row-switch { display:flex; align-items:center; gap:6px; color:#5a6c85; font-size:11px; font-weight:600; }.row-switch input { position:absolute; opacity:0; }.row-switch span { position:relative; width:30px; height:17px; border-radius:999px; background:#ccd5e2; }.row-switch span::after { position:absolute; top:3px; left:3px; width:11px; height:11px; border-radius:50%; background:#fff; content:""; transition:.18s; }.row-switch input:checked + span { background:#3d7aea; }.row-switch input:checked + span::after { transform:translateX(13px); }
.data-boundary-card { padding:20px; border-color:#d5e4fc; background:#f9fcff; }.data-boundary-card h2 { margin-bottom:8px; }.data-boundary-card > p { color:#73839b; font-size:12px; line-height:1.65; }.boundary-scope-list { display:grid; gap:10px; margin:15px 0; }.boundary-scope-list div { padding:11px; border:1px solid #dce9fb; border-radius:8px; background:#fff; }.boundary-scope-list strong { display:block; margin-bottom:3px; color:#4175c9; font-size:12px; }.boundary-scope-list span { color:#75859e; font-size:11px; line-height:1.45; }.boundary-lock-note { margin:15px 0 0!important; padding-top:14px; border-top:1px solid #dbe8fa; }
.admin-roles-layout { display:grid; grid-template-columns:250px minmax(0,1fr) 235px; gap:16px; align-items:start; }.role-templates-card,.role-editor-card,.role-impact-card { padding:18px; }.role-template-item { display:grid; gap:4px; width:100%; margin-top:7px; padding:12px; border:1px solid transparent; border-radius:8px; color:#4f6079; background:transparent; text-align:left; }.role-template-item:hover { background:#f5f8fd; }.role-template-item.active { border-color:#bdd4fb; color:#2c69d4; background:#f0f6ff; }.role-template-item small { color:#8393aa; font-size:10px; }.role-editor-card { min-height:560px; }.role-editor-header { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding-bottom:15px; border-bottom:1px solid #e7edf5; }.role-editor-header p { margin:5px 0 0; color:#7888a0; font-size:12px; }.permission-group { display:grid; grid-template-columns:165px minmax(0,1fr); gap:12px; margin-top:12px; padding:14px; border:1px solid #e4ebf5; border-radius:9px; }.permission-group h3 { margin:0 0 4px; color:#3e5576; font-size:13px; }.permission-group p { margin:0; color:#8896aa; font-size:10px; }.permission-options { display:flex; flex-wrap:wrap; gap:10px 18px; align-content:center; }.permission-options label { display:flex; align-items:center; gap:5px; color:#52647d; font-size:11px; font-weight:600; }.permission-options input { width:14px; height:14px; padding:0; accent-color:var(--blue); }.data-scope-control { display:grid; gap:8px; margin-top:14px; }.data-scope-control > span { color:#53657f; font-size:12px; font-weight:700; }.data-scope-options { display:flex; flex-wrap:wrap; gap:9px; }.data-scope-options label { display:flex; align-items:center; gap:5px; color:#61718a; font-size:11px; font-weight:600; }.role-impact-card { border-color:#d5e4fc; background:#f9fcff; }.role-impact-number { margin:20px 0 5px; color:#24436f; font-size:36px; font-weight:800; }.role-impact-card p { color:#7c8ca4; font-size:11px; line-height:1.6; }
.admin-audit-layout { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:16px; align-items:start; }.audit-detail-card { position:sticky; top:20px; min-height:360px; padding:19px; }.audit-detail-card dl { display:grid; gap:11px; margin:19px 0; }.audit-detail-card dl div { display:grid; grid-template-columns:72px minmax(0,1fr); gap:8px; }.audit-detail-card dt { color:#8492a7; font-size:11px; }.audit-detail-card dd { margin:0; color:#4d5f7c; font-size:11px; line-height:1.5; }.audit-change { padding-top:13px; border-top:1px solid #e6edf6; }.audit-change h3 { margin:0 0 8px; color:#465b7a; font-size:12px; }.audit-change p { margin:0; color:#76869d; font-size:11px; line-height:1.65; }.result-success { color:#1d9b64; }.result-failed { color:#d75b5b; }.admin-table-wrap tr.is-selected td { background:#f0f6ff; }
.button-danger { color:#d95252; border-color:#f0b7b7; background:#fff; }.button-danger:hover { color:#be3f3f; border-color:#df7a7a; background:#fff6f6; }
.role-wizard-dialog { width:min(850px, calc(100% - 30px)); }.role-wizard-dialog form { display:grid; gap:18px; }.role-wizard-steps { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }.role-wizard-step { display:flex; align-items:center; gap:7px; color:#8d9bb0; font-size:11px; font-weight:650; }.role-wizard-step span { display:grid; width:25px; height:25px; border:1px solid #d6e0ef; border-radius:50%; place-items:center; }.role-wizard-step.active { color:#2f6fed; }.role-wizard-step.active span { border-color:#2f6fed; color:#fff; background:#2f6fed; }.role-dialog-grid { display:grid; grid-template-columns:1.2fr .8fr; gap:14px; }.role-template-choice { display:grid; grid-template-columns:1fr 1fr; gap:10px; }.role-template-choice label { display:grid; gap:4px; padding:12px; border:1px solid #dfe7f2; border-radius:8px; color:#53657d; font-size:12px; }.role-template-choice input { position:absolute; opacity:0; }.role-template-choice label:has(input:checked) { border-color:#7ea7f4; background:#f3f7ff; }.role-template-choice strong { color:#37527b; }.role-template-choice small { color:#8593a7; font-size:10px; font-weight:500; }
.role-dialog-grid textarea { width:100%; min-height:92px; resize:vertical; border:1px solid #dce3ed; border-radius:7px; outline:none; padding:9px 10px; color:#2c3c57; background:#fff; font:inherit; }.role-dialog-grid textarea:focus { border-color:#80a7f7; box-shadow:0 0 0 3px rgba(78,132,242,.12); }

/* 账户中心：将资料、工作区和会话操作拆为独立层级。 */
.account-page { width:min(1540px, calc(100% - 64px)); padding-top:42px; }.account-heading { margin-bottom:24px; }.account-dashboard { display:grid; grid-template-columns:365px minmax(0,1fr); gap:18px; align-items:start; }.account-identity-card { display:grid; gap:13px; padding:28px; }.account-identity-card > div:nth-child(2) { margin-top:-75px; margin-left:112px; min-height:79px; }.account-avatar { display:grid; width:88px; height:88px; border-radius:50%; place-items:center; color:#fff; background:linear-gradient(135deg,#5d8cff,#1f5fd9); font-size:35px; font-weight:700; }.account-identity-card h2 { margin:3px 0 4px; font-size:24px; }.account-identity-card p { margin:0; color:#6f809a; }.account-member-tag { display:inline-block; margin-top:10px; padding:4px 8px; border-radius:5px; color:#3773d9; background:#edf4ff; font-size:11px; font-weight:700; }.identity-meta { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:12px; padding:19px 0; border-top:1px solid #e3eaf3; }.identity-meta div + div { padding-left:18px; border-left:1px solid #e3eaf3; }.identity-meta span,.identity-meta strong { display:block; }.identity-meta span { margin-bottom:5px; color:#8391a5; font-size:11px; }.identity-meta strong { color:#52647e; font-size:13px; }.status-live { color:#2b9d68!important; }.account-main-column { display:grid; gap:15px; }.account-profile-card,.account-workspace-card,.account-session-card,.account-boundary-card { padding:22px 25px; }.section-title-with-action { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; }.section-title-with-action h2 { margin:0; }.account-form { display:grid; grid-template-columns:1fr 1fr; max-width:none; gap:15px 20px; margin-top:17px; }.account-form label { font-size:12px; }.account-form input { min-height:44px; padding:10px 12px; font-size:13px; }.account-form input:disabled { color:#4a5e7b; background:#f5f7fa; }.account-form small { color:#8795a8; font-weight:500; }.account-form-actions { grid-column:1/-1; }.account-workspace-card { display:grid; grid-template-columns:170px minmax(0,1fr); align-items:center; gap:20px; }.workspace-stats { display:grid; grid-template-columns:repeat(3,1fr); }.workspace-stats a { display:flex; align-items:center; gap:10px; padding:6px 16px; border-left:1px solid #dfe7f0; color:inherit; text-decoration:none; }.workspace-stats a:hover strong,.workspace-stats a:hover em { color:#2768da; }.workspace-icon { width:38px; height:38px; flex:0 0 auto; border-radius:50%; font-size:11px; }.workspace-stats small,.workspace-stats strong,.workspace-stats em { display:block; }.workspace-stats small { color:#8290a5; font-size:11px; }.workspace-stats strong { margin:2px 0; color:#263f67; font-size:20px; }.workspace-stats em { color:#3b75d6; font-size:10px; font-style:normal; font-weight:700; }.account-session-card { display:flex; align-items:center; justify-content:space-between; gap:20px; }.account-session-card h2 { margin-bottom:7px; }.account-session-card p { max-width:700px; margin:0; color:#7a899f; font-size:12px; line-height:1.65; }.account-boundary-card { grid-column:1; grid-row:2; border-color:#d9e6fa; background:#fafdff; }.account-boundary-card h2 { margin:0 0 8px; }.account-boundary-card p,.account-boundary-card small { color:#74849c; font-size:12px; line-height:1.65; }.account-boundary-card ul { display:grid; gap:8px; padding:0; margin:18px 0; list-style:none; }.account-boundary-card li { padding:10px; border:1px solid #e1ebf9; border-radius:7px; color:#4d75bb; background:#fff; font-size:12px; font-weight:650; }
@media (max-width:1220px) { .admin-overview-layout,.admin-data-layout,.admin-audit-layout { grid-template-columns:minmax(0,1fr); }.admin-help-card,.data-boundary-card,.audit-detail-card { position:static; }.admin-process-layout { grid-template-columns:220px minmax(0,1fr); }.process-preview-card { grid-column:1/-1; }.admin-roles-layout { grid-template-columns:220px minmax(0,1fr); }.role-impact-card { grid-column:1/-1; }.account-dashboard { grid-template-columns:310px minmax(0,1fr); }.account-boundary-card { grid-row:auto; } }
@media (max-width:920px) { .admin-console { grid-template-columns:1fr; }.admin-side-nav.card { position:static; min-height:0; border-right:0; border-bottom:1px solid var(--line); }.admin-nav-list { grid-template-columns:repeat(3, minmax(0,1fr)); }.admin-content { width:100%; padding:27px 20px 46px; }.admin-process-layout,.admin-roles-layout { grid-template-columns:1fr; }.process-preview-card,.role-impact-card { grid-column:auto; }.account-page { width:min(100% - 36px, 760px); }.account-dashboard { grid-template-columns:1fr; }.account-boundary-card { grid-column:auto; }.account-identity-card > div:nth-child(2) { margin-left:106px; }.account-workspace-card { grid-template-columns:1fr; }.workspace-stats { grid-template-columns:repeat(3,1fr); }.workspace-stats a:first-child { border-left:0; } }
@media (max-width:640px) { .admin-nav-list { grid-template-columns:1fr 1fr; }.admin-module-row { grid-template-columns:42px minmax(0,1fr); }.admin-module-row .module-status,.admin-module-row .button { grid-column:2; justify-self:start; }.admin-filter-bar { grid-template-columns:1fr; }.permission-group { grid-template-columns:1fr; }.role-dialog-grid,.role-template-choice,.account-form { grid-template-columns:1fr; }.role-wizard-steps { overflow:auto; grid-template-columns:repeat(4,130px); }.account-workspace-card { padding:19px; }.workspace-stats { grid-template-columns:1fr; gap:12px; }.workspace-stats a { padding:8px 0; border-left:0; border-top:1px solid #e1e8f1; }.workspace-stats a:first-child { border-top:0; }.account-session-card { align-items:flex-start; flex-direction:column; }.account-session-card .button { width:100%; }.account-identity-card > div:nth-child(2) { margin-top:-75px; }.admin-content { padding-left:16px; padding-right:16px; } }
@media (max-width:480px) { .auth-story .brand { margin-bottom:34px; }.auth-story h1 { font-size:32px; }.auth-value-row { grid-template-columns:1fr; gap:14px; }.auth-value-item,.auth-value-item:first-child { padding:0; }.auth-value-item + .auth-value-item { padding-top:14px; border-top:1px solid #d7e3f5; border-left:0; }.auth-value-item span { max-width:none; }.auth-form { gap:17px; }.auth-form h2 { font-size:33px; }.auth-form-actions { align-items:flex-start; flex-direction:column; gap:5px; }.auth-form input,.auth-form .button { min-height:54px; } }

/* 图片池：搜索仅过滤历史生成图；预览与紧凑加入操作。 */
.pool-image-preview,.history-image-preview { display:block; overflow:hidden; padding:0; border:0; background:#f4f6f9; cursor:zoom-in; }
.pool-image-preview { width:100%; border-radius:9px 9px 0 0; }
.pool-image-preview img { display:block; width:100%; aspect-ratio:1/1; object-fit:cover; transition:transform .18s ease; }
.history-image-preview { width:42px; height:42px; border-radius:5px; }
.history-image-preview img { display:block; width:42px; height:42px; object-fit:cover; transition:transform .18s ease; }
.pool-image-preview:hover img,.history-image-preview:hover img { transform:scale(1.04); }
.pool-image-preview:focus-visible,.history-image-preview:focus-visible { outline:3px solid rgba(59,118,235,.32); outline-offset:2px; }
.history-meta { max-width:780px; }
.history-search { display:block; }
.history-search input { width:148px; padding:6px 8px; font-size:11px; }
.history-add-button { min-height:20px; padding:2px 5px; border:1px solid #cbdaf3; border-radius:5px; color:#3975df; background:#f7faff; font-size:9px; font-weight:650; line-height:1.25; white-space:nowrap; }
.history-add-button:hover { border-color:#8baded; background:#edf4ff; }
.history-add-button:disabled { border-color:#e1e8f2; color:#9ba9bb; background:#f7f9fc; }
.image-pool-preview-dialog { position:relative; width:min(92vw,760px); padding:20px; }
.image-pool-preview-dialog .dialog-close-button { position:absolute; top:8px; right:8px; z-index:1; padding:6px 9px; border:1px solid #dce5f2; border-radius:6px; color:#405473; background:rgba(255,255,255,.94); font-size:11px; line-height:1; }
.image-pool-preview-dialog #poolPreviewImage { display:block; width:100%; max-height:72vh; border-radius:9px; object-fit:contain; background:#f3f5f8; }
.image-pool-preview-dialog .dialog-actions { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:13px; }
.image-pool-preview-dialog .dialog-actions strong { display:block; color:#263d61; font-size:14px; }
.image-pool-preview-dialog .dialog-actions p { margin:3px 0 0; color:#7d8ea5; font-size:11px; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media (max-width:760px) { .history-search input { width:100%; }.image-pool-preview-dialog .dialog-actions { align-items:stretch; flex-direction:column; }.image-pool-preview-dialog .dialog-actions .button { width:100%; } }
.pool-card-actions { display:flex; flex-wrap:wrap; align-items:center; gap:7px; }.pool-card-actions .button { margin-right:auto; }.pool-card-actions .text-button { padding:3px 0; font-size:10px; }.pool-card-actions .danger-action { color:#d85353; }.chat-result-gallery { display:grid; grid-template-columns:repeat(auto-fit,minmax(112px,1fr)); gap:8px; margin-top:10px; }.chat-result-image { overflow:hidden; padding:0; border:1px solid #d8e4f4; border-radius:8px; color:#4d6384; background:#fff; cursor:zoom-in; text-align:left; }.chat-result-image:hover,.chat-result-image:focus-visible { border-color:#4b82ed; box-shadow:0 0 0 3px rgba(59,118,235,.12); outline:0; }.chat-result-image img { display:block; width:100%; aspect-ratio:1/1; object-fit:cover; background:#f2f5f8; }.chat-result-image span { overflow:hidden; display:block; margin:0; padding:5px 6px 6px; color:#536c91; font-size:10px; font-weight:650; letter-spacing:0; white-space:nowrap; text-overflow:ellipsis; }.chat-message.system:has(.chat-result-gallery) { padding:11px; }

/* 未选择包材：把引导收进当前工作区，避免顶部空白占据页面。 */
#selectPackageAction[hidden],#changePackageAction[hidden],#packageSelectionHint[hidden] { display:none !important; }
.generation-package-card.is-empty { gap:14px; }
.generation-package-card.is-empty .generation-preview { margin-bottom:0; border:1px solid #e4e5e8; background:#f5f2ec; }
.generation-package-card.is-empty .packaging-3d-viewer { cursor:default; }
.generation-package-card.is-empty .viewer-floor { opacity:.44; }
.generation-package-card.is-empty .packaging-box-3d { width:128px; height:218px; opacity:.9; }
.generation-package-card.is-empty .box-front,.generation-package-card.is-empty .box-back { width:128px; height:218px; }
.generation-package-card.is-empty .box-front { background-image:linear-gradient(145deg,rgba(255,255,255,.72),rgba(185,169,148,.11)); }
.generation-package-card.is-empty .box-right,.generation-package-card.is-empty .box-left { height:218px; }
.generation-package-card.is-empty .box-right { transform:rotateY(90deg) translateZ(64px); }
.generation-package-card.is-empty .box-left { transform:rotateY(-90deg) translateZ(64px); }
.generation-package-card.is-empty .box-top,.generation-package-card.is-empty .box-bottom { left:-5px; width:128px; }
.package-selection-entry { display:grid; gap:8px; margin:0 0 14px; }
.package-selection-entry .save-view-button { margin:0; }
.package-selection-entry p { margin:0; color:#7e8fa5; font-size:11px; line-height:1.55; }
.viewer-control-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:15px 0 0; padding:13px 0 8px; border-top:1px solid var(--line); color:#607391; font-size:11px; font-weight:700; }
.viewer-control-heading small { color:#97a4b5; font-size:10px; font-weight:500; }
.generation-package-card.is-empty .viewer-actions { gap:8px; margin:0; padding:0; }
.generation-package-card.is-empty .viewer-actions .text-button,.generation-package-card.is-empty #captureGenerationView { color:#9aa8ba; cursor:not-allowed; opacity:.72; }
.generation-package-card.is-empty #captureGenerationView { border-color:#e1e7ef; background:#f5f7fa; box-shadow:none; }
.upload-reference-button.is-disabled { pointer-events:none; color:#9aa8ba; border-color:#e0e6ef; background:#f5f7fa; box-shadow:none; }
.chat-workspace .chat-messages[hidden],.chat-workspace .chat-composer[hidden] { display:none !important; }
.generated-image-preview[draggable="true"],.chat-result-image[draggable="true"] { cursor:grab; }.generated-image-preview[draggable="true"]:active,.chat-result-image[draggable="true"]:active { cursor:grabbing; }.chat-inline-input.is-result-drop-target { border-color:#4d82e8; background:#f3f8ff; box-shadow:0 0 0 3px rgba(68,124,230,.14); }

/* 工作总览：首页只汇总当前账号真实可推导的本地工作状态，不虚构报价任务。 */
.dashboard-page { width:min(1545px,calc(100% - 64px)); padding-top:23px; }.dashboard-heading { margin-bottom:12px; }.dashboard-heading h1 { margin-bottom:6px; font-size:24px; }.dashboard-heading p:last-child { max-width:none; font-size:13px; }.dashboard-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)) auto; align-items:center; min-height:61px; padding:0 14px; }.dashboard-summary-item { display:grid; justify-items:center; gap:4px; padding:10px 18px; border-right:1px solid #edf0f5; }.dashboard-summary-item span { color:#8190a4; font-size:11px; font-weight:650; }.dashboard-summary-item strong { color:#263d61; font-size:19px; line-height:1; }.dashboard-summary-item:first-child strong { color:#2f6fed; }.dashboard-create-button { min-width:112px; margin-left:14px; white-space:nowrap; }.dashboard-layout { display:grid; grid-template-columns:minmax(0,1fr); align-items:start; margin-top:10px; }.dashboard-task-card { min-width:0; padding:14px 16px 10px; }.dashboard-card-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:1px 0 13px; }.dashboard-card-heading h2 { margin:2px 0 0; color:#223a60; font-size:16px; }.dashboard-refresh-button,.dashboard-row-action { min-height:30px; padding:5px 12px; font-size:11px; }.dashboard-table-wrap { overflow:auto; }.dashboard-task-table { width:100%; min-width:820px; border-collapse:collapse; text-align:left; }.dashboard-task-table th { padding:9px 11px; color:#78889e; background:#f7f9fc; font-size:11px; font-weight:700; white-space:nowrap; }.dashboard-task-table td { padding:10px 11px; border-bottom:1px solid #edf1f5; color:#50627d; font-size:12px; vertical-align:middle; }.dashboard-task-table tbody tr:last-child td { border-bottom:0; }.dashboard-task-table td small { display:block; margin-top:3px; color:#92a0b4; font-size:10px; line-height:1.35; }.dashboard-package-cell { display:flex; align-items:center; min-width:220px; gap:11px; }.dashboard-package-cell img { width:58px; height:42px; flex:0 0 auto; border-radius:5px; background:#f1f3f6; object-fit:contain; }.dashboard-package-cell strong,.dashboard-project-name { display:block; max-width:180px; overflow:hidden; color:#344967; font-size:12px; font-weight:700; white-space:nowrap; text-overflow:ellipsis; }.dashboard-status { display:inline-flex; align-items:center; min-width:48px; justify-content:center; padding:3px 7px; border-radius:5px; font-size:10px; font-weight:700; white-space:nowrap; }.dashboard-status.blue { color:#3974d7; background:#eaf2ff; }.dashboard-status.warning { color:#d38732; background:#fff4df; }.dashboard-status.success { color:#24945f; background:#e6f8ef; }.dashboard-status.danger { color:#d65757; background:#fff0f0; }.dashboard-status.muted { color:#8493a7; background:#eff3f7; }.dashboard-updated-at { color:#8190a3!important; white-space:nowrap; }.dashboard-empty { display:grid; justify-items:center; gap:8px; padding:42px 20px 46px; text-align:center; }.dashboard-empty strong { color:#3e526f; font-size:14px; }.dashboard-empty p { max-width:380px; margin:0 0 8px; color:#8090a5; font-size:12px; line-height:1.65; }
@media (max-width:1060px) { .dashboard-page { width:min(100% - 40px,1240px); }.dashboard-layout { grid-template-columns:1fr; }.dashboard-summary { grid-template-columns:repeat(4,minmax(0,1fr)); padding:10px; }.dashboard-create-button { grid-column:1/-1; margin:6px 0 0; }.dashboard-summary-item:last-of-type { border-right:0; } }
@media (max-width:680px) { .dashboard-page { width:min(100% - 28px,640px); padding-top:20px; }.dashboard-heading h1 { font-size:21px; }.dashboard-summary { grid-template-columns:1fr 1fr; }.dashboard-summary-item { border-bottom:1px solid #edf0f5; }.dashboard-summary-item:nth-child(2n) { border-right:0; }.dashboard-summary-item:nth-child(n+3) { border-bottom:0; }.dashboard-task-card { padding:13px 10px 9px; }.dashboard-task-table th,.dashboard-task-table td { padding-left:9px; padding-right:9px; }.dashboard-create-button { width:100%; } }

/* 报价任务按账号由服务端隔离；超级管理员筛选只作用于服务端已授权返回的全量任务。 */
.dashboard-admin-filters { display:grid; grid-template-columns:minmax(180px,1fr) repeat(3,minmax(150px,220px)); align-items:end; gap:13px; margin-top:10px; padding:11px 14px; }.dashboard-admin-filters[hidden] { display:none!important; }.dashboard-admin-filters > div { display:grid; gap:3px; align-self:center; }.dashboard-admin-filters > div strong { color:#304867; font-size:13px; }.dashboard-admin-filters > div span { color:#8797ac; font-size:10px; }.dashboard-admin-filters label { display:grid; gap:5px; color:#71829b; font-size:10px; font-weight:700; }.dashboard-admin-filters select { width:100%; min-height:34px; padding:6px 9px; border-color:#dce5f1; color:#4d607d; background:#fff; font-size:11px; }.dashboard-owner-name { display:block; max-width:130px; overflow:hidden; color:#3f5573; font-size:12px; text-overflow:ellipsis; white-space:nowrap; }.dashboard-loading { padding:34px!important; color:#8392a7!important; text-align:center; }.dashboard-task-dialog { width:min(760px,calc(100% - 30px)); }.dashboard-task-dialog-inner { display:grid; gap:18px; padding:22px; }.dashboard-task-detail-body { display:grid; gap:16px; }.dashboard-task-detail-meta { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); overflow:hidden; border:1px solid #e0e8f3; border-radius:9px; }.dashboard-task-detail-meta > div { min-width:0; padding:13px; background:#f9fbfe; }.dashboard-task-detail-meta > div + div { border-left:1px solid #e4ebf4; }.dashboard-task-detail-meta span,.dashboard-task-detail-meta strong,.dashboard-task-detail-meta small { display:block; }.dashboard-task-detail-meta span { margin-bottom:5px; color:#8795a9; font-size:10px; }.dashboard-task-detail-meta strong { overflow:hidden; color:#405674; font-size:12px; text-overflow:ellipsis; white-space:nowrap; }.dashboard-task-detail-meta small { margin-top:3px; color:#8b99ab; font-size:9px; }.dashboard-task-detail-meta em { font-style:normal; }.dashboard-task-detail-body section { padding:14px; border:1px solid #e4eaf2; border-radius:9px; }.dashboard-task-detail-body h3 { margin:0 0 8px; color:#3e5575; font-size:12px; }.dashboard-task-detail-body section > p { margin:0; color:#71819a; font-size:11px; line-height:1.6; }.dashboard-detail-images { display:flex; gap:10px; overflow:auto; }.dashboard-detail-images > p { margin:0; color:#8795a9; font-size:11px; }.dashboard-detail-images a { display:grid; flex:0 0 112px; gap:6px; color:#536a8d; font-size:10px; text-decoration:none; }.dashboard-detail-images img { width:112px; height:82px; border:1px solid #e1e8f2; border-radius:7px; background:#f3f5f8; object-fit:contain; }.dashboard-detail-images span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
@media (max-width:920px) { .dashboard-admin-filters { grid-template-columns:1fr 1fr; }.dashboard-admin-filters > div { grid-column:1/-1; }.dashboard-task-detail-meta { grid-template-columns:1fr 1fr; }.dashboard-task-detail-meta > div:nth-child(3) { border-left:0; border-top:1px solid #e4ebf4; }.dashboard-task-detail-meta > div:nth-child(4) { border-top:1px solid #e4ebf4; } }
@media (max-width:560px) { .dashboard-admin-filters { grid-template-columns:1fr; }.dashboard-admin-filters > div { grid-column:auto; }.dashboard-task-detail-meta { grid-template-columns:1fr; }.dashboard-task-detail-meta > div + div { border-top:1px solid #e4ebf4; border-left:0; } }

/* 图片放大预览：原图与本次生成信息并列，便于选图前核对。 */
.image-preview-dialog { width:min(94vw,1120px); padding:22px; }.image-preview-dialog #previewImage { max-height:62vh; }.preview-image-facts { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0; }.preview-fact { padding:6px 9px; border:1px solid #dce8fb; border-radius:6px; color:#50698f; background:#f5f8ff; font-size:11px; font-weight:700; }.image-preview-layout { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(260px,.75fr); gap:16px; align-items:stretch; }.preview-image-stage { min-width:0; }.preview-prompt-panel { display:flex; min-width:0; min-height:280px; flex-direction:column; padding:14px; border:1px solid #dce7f5; border-radius:9px; background:#f9fbff; }.preview-prompt-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:10px; color:#405d88; font-size:12px; font-weight:750; }.preview-prompt-heading span:last-child { flex:0 0 auto; padding:3px 6px; border-radius:99px; color:#356ec8; background:#eaf2ff; font-size:9px; font-weight:700; }.preview-image-prompt { width:100%; min-height:0; flex:1; resize:none; overflow:auto; margin:0; padding:10px; border:1px solid #d6e3f5; border-radius:8px; color:#536681; background:#fff; font:inherit; font-size:12px; line-height:1.7; white-space:pre-wrap; overflow-wrap:anywhere; }.preview-image-prompt:focus { border-color:#78a6f3; box-shadow:0 0 0 3px rgba(68,127,231,.12); outline:0; }.preview-prompt-help { margin:9px 0 0; color:#8190a5; font-size:9px; line-height:1.55; }
@media (max-width:760px) { .image-preview-dialog { padding:16px; }.image-preview-layout { grid-template-columns:1fr; }.image-preview-dialog .preview-image-canvas { min-height:220px; max-height:52vh; }.image-preview-dialog #previewImage { max-height:52vh; }.preview-prompt-panel { min-height:0; }.preview-image-prompt { min-height:150px; max-height:180px; }.image-preview-dialog .dialog-actions { flex-wrap:wrap; } }
.dashboard-empty[hidden] { display:none!important; }
.dashboard-card-heading { align-items:flex-end; padding:0; border-bottom:1px solid #e8edf4; }
.dashboard-lifecycle-tabs { display:flex; min-width:0; gap:30px; }
.dashboard-lifecycle-tab { position:relative; display:inline-flex; align-items:center; min-height:43px; gap:7px; padding:0 2px; border:0; color:#65758f; background:transparent; font-size:13px; font-weight:700; white-space:nowrap; cursor:pointer; }
.dashboard-lifecycle-tab::after { position:absolute; right:0; bottom:-1px; left:0; height:2px; border-radius:999px 999px 0 0; background:transparent; content:""; }
.dashboard-lifecycle-tab:hover { color:#356bc7; }
.dashboard-lifecycle-tab:focus-visible { border-radius:6px; outline:2px solid #9dbcf5; outline-offset:3px; }
.dashboard-lifecycle-tab.active { color:#286ce0; }
.dashboard-lifecycle-tab.active::after { background:#2f6fed; }
.dashboard-lifecycle-tab span { display:inline-grid; min-width:19px; height:19px; padding:0 5px; border-radius:999px; color:#74849a; background:#f0f3f7; font-size:10px; line-height:1; place-items:center; }
.dashboard-lifecycle-tab.active span { color:#2f6fed; background:#edf4ff; }
.dashboard-heading-actions { display:flex; align-items:center; gap:8px; padding-bottom:7px; }
.dashboard-edit-button { min-height:30px; padding:5px 12px; font-size:11px; }
.dashboard-edit-button[hidden] { display:none!important; }
.dashboard-lifecycle-helper { margin:10px 0 9px; color:#8392a8; font-size:10px; line-height:1.5; }
.dashboard-bulk-toolbar { display:flex; align-items:center; min-height:42px; gap:10px; margin:8px 0 10px; padding:6px 9px; border:1px solid #d9e5f7; border-radius:8px; background:#f8fbff; }
.dashboard-bulk-toolbar[hidden] { display:none!important; }
.dashboard-bulk-toolbar > strong { min-width:65px; color:#506784; font-size:11px; }
.dashboard-bulk-toolbar > div { display:flex; align-items:center; flex:1; gap:8px; }
.dashboard-bulk-toolbar .button { min-height:28px; padding:5px 10px; font-size:10px; }
.dashboard-bulk-toolbar .button:disabled { cursor:not-allowed; opacity:.48; }
.dashboard-bulk-toolbar .dashboard-danger-button { min-height:28px; }
.dashboard-select-column { width:38px; min-width:38px; padding-right:3px!important; text-align:center; }
.dashboard-select-column[hidden] { display:none!important; }
.dashboard-select-column input { width:15px; height:15px; margin:0; accent-color:#2f6fed; cursor:pointer; }
.dashboard-select-column input:disabled { cursor:not-allowed; opacity:.4; }
.dashboard-task-table tr.is-selected td { background:#f8fbff; }
.dashboard-task-table tr.is-readonly-edit td { opacity:.74; }
.dashboard-edit-readonly { color:#8a99ad; font-size:10px; white-space:nowrap; }
.dashboard-danger-button { min-height:34px; padding:7px 13px; border:1px solid #d95a5a; border-radius:7px; color:#fff; background:#d95a5a; font:inherit; font-size:11px; font-weight:700; cursor:pointer; }
.dashboard-danger-button:hover { border-color:#c84b4b; background:#c84b4b; }
.dashboard-danger-button:focus-visible { outline:2px solid #efaaaa; outline-offset:2px; }
.dashboard-danger-button:disabled { cursor:not-allowed; opacity:.5; }
.dashboard-delete-dialog { width:min(430px,calc(100% - 30px)); padding:0; border:1px solid #e1e7f0; border-radius:12px; box-shadow:0 24px 60px rgba(32,49,76,.24); }
.dashboard-delete-dialog::backdrop { background:rgba(27,42,65,.42); backdrop-filter:blur(2px); }
.dashboard-delete-dialog-inner { display:grid; gap:16px; padding:22px; }
.dashboard-delete-dialog h2 { margin:4px 0 8px; color:#2f405c; font-size:18px; }
.dashboard-delete-dialog p { margin:0; color:#74849a; font-size:12px; line-height:1.65; }
.dashboard-delete-summary { max-height:138px; overflow:auto; padding:10px 12px; border:1px solid #f0d4d4; border-radius:8px; color:#7d5151; background:#fff8f8; font-size:11px; line-height:1.65; white-space:pre-line; }
.dashboard-delete-actions { display:flex; justify-content:flex-end; gap:9px; }
.dashboard-delete-actions .button { min-height:34px; }
.quote-target-dialog { width:min(620px,calc(100% - 30px)); }
.quote-target-dialog form { gap:13px; }
.quote-target-list { display:grid; max-height:min(430px,52vh); gap:8px; overflow:auto; padding:2px; }
.quote-target-option { display:grid; grid-template-columns:20px minmax(0,1fr) auto; align-items:center; gap:11px; padding:12px 13px; border:1px solid #dfe7f2; border-radius:9px; color:#526681; background:#fff; cursor:pointer; transition:border-color .16s,background-color .16s,box-shadow .16s; }
.quote-target-option:hover { border-color:#9abcf4; background:#f9fbff; }
.quote-target-option:has(input:checked) { border-color:#6f9ff0; background:#f4f8ff; box-shadow:0 0 0 3px rgba(59,118,235,.1); }
.quote-target-option.is-disabled { cursor:not-allowed; opacity:.55; }
.quote-target-option input { width:16px; height:16px; margin:0; accent-color:#2f6fed; }
.quote-target-option > span { display:grid; min-width:0; gap:4px; }
.quote-target-option strong,.quote-target-option small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.quote-target-option strong { color:#344b6b; font-size:12px; }
.quote-target-option small { color:#8594a8; font-size:10px; }
.quote-target-option em { padding:4px 7px; border-radius:999px; color:#4b76b7; background:#edf4ff; font-size:9px; font-style:normal; font-weight:700; white-space:nowrap; }
.quote-target-option.is-disabled em { color:#9b6767; background:#fff0f0; }
.quote-target-state { display:grid; min-height:116px; place-content:center; gap:8px; padding:18px; border:1px dashed #d6e1ef; border-radius:9px; color:#8190a5; background:#fbfcff; font-size:11px; line-height:1.6; text-align:center; }
.quote-target-state strong { color:#516984; font-size:13px; }
.quote-target-state a { color:#2f6fed; font-weight:700; text-decoration:none; }
.quote-target-status { min-height:16px; margin:0; color:#c25454; font-size:11px; }
@media (max-width:680px) {
  .dashboard-card-heading { align-items:stretch; flex-direction:column; gap:4px; }
  .dashboard-lifecycle-tabs { width:100%; gap:16px; overflow-x:auto; overflow-y:hidden; }
  .dashboard-lifecycle-tab { flex:0 0 auto; }
  .dashboard-heading-actions { justify-content:flex-end; padding:6px 0; }
  .dashboard-bulk-toolbar { align-items:flex-start; flex-wrap:wrap; }
  .dashboard-bulk-toolbar > div { flex:1 1 100%; order:3; }
}

/* 创建报价任务：独立填写页，避免复用主导航和流程步骤造成重复上下文。 */
.task-creation-body { min-height:100vh; background:linear-gradient(180deg,#f8fbff 0,#f4f7fb 55%,#f7f9fc 100%); }.task-creation-page { width:min(1320px,calc(100% - 56px)); margin:0 auto; padding:46px 0 42px; }.task-creation-heading { margin:0 0 22px; }.task-creation-heading h1 { margin:0 0 7px; font-size:30px; }.task-creation-heading > p:last-child { margin:0; color:var(--muted); }.task-creation-layout { display:grid; grid-template-columns:minmax(0,1fr) 350px; gap:18px; align-items:start; }.task-creation-form-card,.task-quote-card,.selected-task-images { padding:22px; }.task-card-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:14px; margin-bottom:18px; }.task-card-heading h2 { font-size:18px; }.task-stage-badge,.task-estimate-badge,.task-image-count { padding:5px 8px; border-radius:6px; color:#3e73d5; background:#edf4ff; font-size:11px; font-weight:750; white-space:nowrap; }.task-estimate-badge { color:#9b6c22; background:#fff5e7; }.task-image-count { color:#278559; background:#eaf9f0; }.task-profile-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px 18px; }.task-profile-grid input,.task-profile-grid select { width:100%; }.task-profile-span { grid-column:1 / -1; }.task-keywords { margin-top:22px; padding-top:19px; border-top:1px solid var(--line); }.task-subheading { display:flex; justify-content:space-between; align-items:baseline; gap:14px; margin-bottom:12px; }.task-subheading h3 { margin:0; color:#334866; font-size:14px; }.task-subheading span { color:#8897ac; font-size:11px; }.task-keyword-list { display:flex; flex-wrap:wrap; gap:9px; }.task-keyword-list span { padding:9px 12px; border:1px solid #dce8f8; border-radius:8px; color:#4b6486; background:#fbfdff; font-size:12px; }.task-quote-card { position:sticky; top:20px; }.task-quote-list { display:grid; gap:0; margin:0; }.task-quote-list div { display:flex; justify-content:space-between; gap:15px; padding:12px 0; border-bottom:1px solid #e9eef5; }.task-quote-list dt { color:#71819b; font-size:13px; }.task-quote-list dd { margin:0; color:#304361; font-size:13px; font-weight:700; text-align:right; }.task-quote-list .task-pending { color:#dc7b22; }.task-price-total { display:grid; gap:12px; margin-top:17px; padding:16px 0 0; border-top:1px solid #dce7f8; }.task-price-total div { display:flex; justify-content:space-between; align-items:baseline; gap:12px; }.task-price-total span { color:#71819b; font-size:13px; }.task-price-total strong { color:#1e64d9; font-size:18px; }.task-price-total div:last-child strong { font-size:26px; }.task-quote-note { margin:18px 0 0; padding:12px 13px; border:1px solid #d7e5fb; border-radius:8px; color:#6680ad; background:#f4f8ff; font-size:12px; line-height:1.65; }.selected-task-images { margin-top:18px; }.task-selected-image-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }.task-selected-image-card { display:grid; grid-template-columns:106px minmax(0,1fr); align-items:center; gap:13px; min-height:112px; margin:0; padding:9px; border:1px solid #dbe5f2; border-radius:10px; background:#fff; }.task-selected-image-card img { display:block; width:106px; height:92px; border-radius:7px; object-fit:cover; background:#eef2f6; }.task-selected-image-card figcaption { display:grid; gap:9px; min-width:0; }.task-selected-image-card strong { overflow:hidden; color:#314565; font-size:13px; white-space:nowrap; text-overflow:ellipsis; }.task-selected-image-card span { width:max-content; padding:4px 7px; border-radius:5px; color:#258458; background:#e9f8ef; font-size:11px; font-weight:750; }.task-selected-image-empty { display:grid; min-height:116px; padding:20px; border:1px dashed #cfddec; border-radius:9px; color:#7f90a8; background:#fbfdff; place-items:center; text-align:center; }.task-selected-image-empty strong { color:#536985; font-size:13px; }.task-selected-image-empty p { max-width:470px; margin:7px 0 0; font-size:12px; line-height:1.6; }.task-creation-actions { display:flex; justify-content:center; gap:12px; padding:20px 0 0; }.task-creation-actions .button { min-width:172px; }.task-creation-actions .button-primary { padding-right:22px; padding-left:22px; }
@media (max-width:980px) { .task-creation-page { width:min(100% - 36px,760px); }.task-creation-layout { grid-template-columns:1fr; }.task-quote-card { position:static; }.task-selected-image-list { grid-template-columns:1fr; } }
@media (max-width:620px) { .task-creation-page { width:min(100% - 28px,520px); padding-top:30px; }.task-creation-heading h1 { font-size:25px; }.task-creation-form-card,.task-quote-card,.selected-task-images { padding:16px; }.task-profile-grid { grid-template-columns:1fr; gap:13px; }.task-profile-span { grid-column:auto; }.task-subheading { align-items:flex-start; flex-direction:column; gap:5px; }.task-selected-image-card { grid-template-columns:88px minmax(0,1fr); }.task-selected-image-card img { width:88px; height:84px; }.task-creation-actions { align-items:stretch; flex-direction:column; }.task-creation-actions .button { width:100%; }.task-card-heading { margin-bottom:15px; } }

/* 创建报价任务二期：同页完成基础资料、工艺明细和已选概念图，避免在报价前丢失上下文。 */
.task-creation-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; }.task-heading-actions { display:flex; align-items:center; gap:18px; padding-top:1px; }.task-heading-actions .button { min-width:121px; padding:11px 20px; }.task-draft-button { padding:9px 2px; border:0; color:#637799; background:transparent; font-size:13px; font-weight:700; }.task-draft-button:hover { color:#2f6fed; }.task-creation-layout { display:block; }.task-creation-form-card,.task-quote-editor-card,.selected-task-images { padding:18px 20px; }.task-quote-editor-card { margin-top:10px; }.task-creation-form-card .task-card-heading,.task-quote-editor-card .task-card-heading { margin-bottom:14px; }.task-creation-form-card .section-kicker,.task-quote-editor-card .section-kicker { margin-bottom:5px; }.task-creation-form-card .task-card-heading h2,.task-quote-editor-card .task-card-heading h2 { font-size:18px; }.task-quote-info-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px 18px; margin:0 0 14px; }.task-quote-info-grid input { width:100%; }.task-quote-table-wrap { overflow:auto; border:1px solid var(--line); border-radius:9px; }.task-quote-editor-table { min-width:720px; }.task-quote-editor-table th { padding:10px 12px; }.task-quote-editor-table td { padding:8px 10px; }.task-quote-editor-table input,.task-quote-editor-table select { width:100%; min-width:104px; padding:8px 9px; font-size:12px; }.task-quote-editor-table .process-picker { display:grid; grid-template-columns:1fr 1fr; gap:7px; min-width:190px; }.task-quote-editor-table .catalog-value { color:#60728e; background:#f4f7fa; }.task-quote-editor-table .amount-cell { min-width:116px; }.task-quote-editor-table .amount-cell small { display:block; margin-top:3px; color:#8190a5; font-size:10px; font-weight:500; }.task-quote-total-bar { margin-top:16px; padding:13px 16px; }.task-quote-total-bar strong { font-size:26px; }.selected-task-images { margin-top:10px; }.selected-task-images .task-card-heading { margin-bottom:12px; }.task-selected-image-list { grid-template-columns:repeat(2,minmax(0,1fr)); }.task-selected-image-card { min-height:94px; grid-template-columns:92px minmax(0,1fr); }.task-selected-image-card img { width:92px; height:76px; }
.task-packaging-process-groups { display:grid; gap:12px; }.task-packaging-process-card { overflow:hidden; padding:13px; border:1px solid #d7e4f7; border-radius:10px; background:#fbfdff; }.task-packaging-process-card-inner { border-color:#cfe0fa; }.task-packaging-process-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:11px; }.task-packaging-process-heading h3 { margin:0 0 4px; color:#33527d; font-size:14px; }.task-packaging-process-heading p { margin:0; color:#8997aa; font-size:10px; line-height:1.55; }.task-process-count { flex:0 0 auto; padding:4px 8px; border-radius:5px; color:#3972d8; background:#edf4ff; font-size:10px; font-weight:750; }.task-packaging-process-card .task-quote-table-wrap { background:#fff; }.task-packaging-process-card .empty-inline { min-height:86px; padding:20px; }.task-packaging-process-footer { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:38px; padding:5px 3px 0; }.task-packaging-process-footer .add-row-button { margin-top:0; }.task-packaging-process-footer p { margin:0; color:#71829c; font-size:11px; white-space:nowrap; }.task-packaging-process-footer strong { margin-left:7px; color:#2f69ce; font-size:15px; }.is-task-readonly .task-packaging-process-footer { justify-content:flex-end; }
.task-readonly-notice { margin:-8px 0 14px; padding:11px 14px; border:1px solid #d5e3f8; border-radius:9px; color:#55719a; background:#f3f7fd; font-size:12px; line-height:1.6; }.is-task-readonly input:read-only,.is-task-readonly textarea:read-only,.is-task-readonly select:disabled { color:#425774; border-color:#e1e7ef; background:#f7f9fc; opacity:1; }.is-task-readonly input:read-only,.is-task-readonly textarea:read-only,.is-task-readonly .task-readonly-value,.is-task-readonly .process-picker-readonly { cursor:text; user-select:text; }.is-task-readonly .task-profile-remove-button,.is-task-readonly .task-product-remove-button { display:none; }.is-task-readonly .task-heading-actions { padding-top:8px; }.process-picker-readonly { display:grid; grid-template-columns:1fr 1fr; min-width:190px; overflow:hidden; border:1px solid #e1e7ef; border-radius:7px; color:#425774; background:#f7f9fc; }.process-picker-readonly span,.process-picker-readonly strong { min-width:0; padding:8px 9px; overflow:hidden; font-size:12px; text-overflow:ellipsis; white-space:nowrap; }.process-picker-readonly strong { border-left:1px solid #e1e7ef; font-weight:600; }.task-readonly-value { display:block; min-width:104px; padding:8px 9px; border:1px solid #e1e7ef; border-radius:7px; color:#425774; background:#f7f9fc; font-size:12px; }
@media (max-width:760px) { .task-creation-heading { align-items:stretch; flex-direction:column; }.task-heading-actions { justify-content:flex-end; }.task-quote-info-grid { grid-template-columns:1fr; }.task-selected-image-list { grid-template-columns:1fr; } }
@media (max-width:620px) { .task-creation-page { padding-top:28px; }.task-heading-actions { justify-content:space-between; gap:14px; }.task-heading-actions .button { min-width:118px; }.task-creation-form-card,.task-quote-editor-card,.selected-task-images { padding:15px; }.task-packaging-process-card { padding:11px; }.task-packaging-process-heading { align-items:flex-start; flex-direction:column; gap:7px; }.task-packaging-process-footer { align-items:flex-start; flex-direction:column; gap:5px; }.task-packaging-process-footer p { align-self:flex-end; }.task-quote-total-bar { align-items:flex-start; flex-direction:column; gap:7px; } }
.task-creation-form-card { display:grid; gap:12px; padding:0; border:0; background:transparent; box-shadow:none; }
.task-profile-panel { min-width:0; padding:18px 20px; border:1px solid var(--line); border-radius:13px; background:#fff; box-shadow:var(--shadow); }
.task-profile-panel-heading { margin:0 0 14px; }
.task-profile-panel-heading h2 { margin:0; color:#273c5d; font-size:16px; font-weight:750; line-height:1.35; }
.task-profile-panel-heading h2 span,.task-profile-attachment-heading h3 span { margin-right:3px; color:#2f5f9e; }
.task-profile-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px 18px; }
.task-profile-grid label,.task-profile-copy-grid label { min-width:0; }
.task-profile-grid input,.task-profile-copy-grid input { box-sizing:border-box; min-height:38px; }
.task-profile-span-2 { grid-column:span 2; }
.task-profile-extension { margin-top:18px; padding-top:16px; border-top:1px solid var(--line); }
.task-profile-section-heading { display:flex; align-items:baseline; justify-content:space-between; gap:14px; margin-bottom:10px; }
.task-profile-section-heading h3 { margin:0; color:#334866; font-size:13px; }
.task-profile-section-heading span { color:#8796aa; font-size:10px; }
.task-profile-copy-request { margin-top:0; padding:18px 20px; border-color:var(--line); border-radius:13px; background:#fff; }
.task-profile-copy-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px 18px; }
.task-profile-copy-grid input { width:100%; background:#fff; }
.task-profile-copy-extras { margin-top:16px; padding-top:14px; }
.task-profile-attachment-heading { margin-bottom:0; }
.task-profile-attachment-heading h3 { margin:0; color:#273c5d; font-size:16px; font-weight:750; }
.task-product-attachments { margin-top:0; }
.task-custom-field-list { display:grid; gap:8px; }
.task-custom-field-row { display:grid; grid-template-columns:34px minmax(0,1fr) 42px; align-items:center; gap:0; overflow:hidden; border:1px solid #dce3ed; border-radius:7px; background:#fff; }
.task-custom-field-index { display:grid; align-self:stretch; border-right:1px solid #e7ebf2; color:#7186a5; background:#fbfcfe; font-size:11px; font-weight:700; place-items:center; }
.task-custom-field-row input { width:100%; }
.task-custom-field-row > input { min-height:36px; border:0; border-radius:0; box-shadow:none; }
.task-custom-field-row > input:focus { box-shadow:inset 0 0 0 2px rgba(78,132,242,.16); }
.task-custom-field-row .task-profile-remove-button { margin:0 4px; }
.task-profile-remove-button,.task-product-remove-button { min-width:34px; min-height:28px; padding:4px 5px; border:0; border-radius:6px; color:#8293aa; background:transparent; font-size:9px; font-weight:700; line-height:1; cursor:pointer; }
.task-profile-remove-button:hover,.task-product-remove-button:hover { color:#c45151; background:#fff1f1; }
.task-profile-remove-button:focus-visible,.task-product-remove-button:focus-visible { outline:3px solid rgba(47,111,237,.18); }
.task-profile-add-button { margin-top:9px; padding:4px 0; border:0; color:#2f6fed; background:transparent; font-size:11px; font-weight:750; cursor:pointer; }
.task-profile-add-button:disabled { color:#a8b4c5; cursor:not-allowed; }
.task-profile-empty-note { margin:0; padding:10px 12px; border:1px dashed #dbe4f0; border-radius:7px; color:#8a99ad; background:#fbfcfe; font-size:11px; }
.task-product-upload-button { position:relative; display:inline-flex; min-height:32px; align-items:center; gap:5px; padding:7px 10px; border:1px solid #bdd3fa; border-radius:7px; color:#2f6fed; background:#f8fbff; font-size:10px; font-weight:750; cursor:pointer; }
.task-product-upload-button:hover { border-color:#83abf1; background:#f1f6ff; }
.task-product-upload-button.is-disabled { color:#a5b2c5; border-color:#dde5ef; background:#f7f9fc; cursor:not-allowed; }
.task-product-upload-button:focus-visible { outline:3px solid rgba(47,111,237,.18); outline-offset:2px; }
.task-product-upload-input { position:fixed; width:1px; height:1px; overflow:hidden; opacity:0; pointer-events:none; }
.task-attachment-save-guard { margin:8px 0 0; padding:8px 10px; border:1px solid #f0d5a5; border-radius:7px; color:#8b6424; background:#fffaf0; font-size:10px; line-height:1.55; }
.task-attachment-save-guard[hidden] { display:none; }
.task-packaging-attachment-groups { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:10px; }
.task-packaging-attachment-group { min-width:0; padding:12px; border:1px solid #dce6f4; border-radius:10px; background:#fbfdff; }
.task-packaging-attachment-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.task-packaging-attachment-heading h4 { margin:0; color:#274a78; font-size:12px; }
.task-packaging-attachment-heading p { margin:4px 0 0; color:#8796aa; font-size:9px; line-height:1.55; }
.task-packaging-attachment-heading .task-product-upload-button { flex:0 0 auto; }
.task-product-attachment-list { display:grid; grid-template-columns:1fr; gap:8px; margin-top:9px; }
.task-product-attachment-card { display:flex; min-width:0; min-height:54px; align-items:center; gap:9px; padding:7px; border:1px solid #dce5f1; border-radius:8px; background:#fff; }
.task-product-attachment-card.is-error { border-color:#f0caca; background:#fffafa; }
.task-product-attachment-thumb,.task-product-file-type { width:40px; height:40px; flex:0 0 40px; border-radius:6px; }
.task-product-attachment-thumb { object-fit:cover; background:#f1f4f8; }
.task-product-file-type { display:grid; border:1px solid #cedcf2; color:#3e72c9; background:#f1f6ff; font-size:8px; font-weight:800; letter-spacing:.2px; place-items:center; }
.task-product-attachment-info { min-width:0; flex:1; }
.task-product-attachment-info strong,.task-product-attachment-info span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.task-product-attachment-info strong { color:#435977; font-size:10px; }
.task-product-attachment-info span { margin-top:4px; color:#8b99ac; font-size:9px; }
.task-product-attachment-actions { display:flex; flex:0 0 auto; align-items:center; gap:6px; }
.task-product-attachment-action { padding:3px 0; border:0; color:#2f6fed; background:transparent; font-size:9px; font-weight:700; text-decoration:none; cursor:pointer; }
.task-product-attachment-action:hover { color:#174fae; text-decoration:underline; }
.task-product-upload-state { flex:0 0 auto; color:#4d7dcc; font-size:9px; font-weight:700; }
.task-product-attachment-empty { display:grid; min-height:62px; margin-top:9px; padding:12px; border:1px dashed #d7e2f0; border-radius:8px; color:#8b99ac; background:#fbfcfe; text-align:center; place-content:center; }
.task-product-attachment-empty[hidden] { display:none; }
.task-product-attachment-empty strong { color:#5c708e; font-size:11px; }
.task-product-attachment-empty span { margin-top:4px; font-size:9px; }
.task-product-preview-dialog { width:min(900px,calc(100% - 32px)); max-height:86vh; padding:0; overflow:hidden; border:0; border-radius:14px; box-shadow:0 24px 70px rgba(24,45,78,.28); }
.task-product-preview-dialog::backdrop { background:rgba(26,43,70,.48); }
.task-product-preview-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:18px 20px; border-bottom:1px solid #e1e8f2; }
.task-product-preview-heading h2 { margin:0; color:#2a405f; font-size:17px; }
.task-product-preview-actions { display:flex; align-items:center; gap:8px; }
.task-product-preview-actions .modal-close { min-height:32px; padding:7px 10px; border:0; border-radius:7px; color:#62748e; background:#f1f4f8; font-size:10px; font-weight:700; cursor:pointer; }
.task-product-preview-body { display:grid; min-height:260px; max-height:calc(86vh - 76px); overflow:auto; padding:18px; background:#f7f9fc; place-items:center; }
.task-product-preview-image { display:block; max-width:100%; max-height:calc(86vh - 114px); border-radius:9px; object-fit:contain; background:#fff; box-shadow:0 8px 22px rgba(46,64,91,.12); }
.task-product-preview-frame { width:100%; min-height:62vh; border:1px solid #dce5f1; border-radius:9px; background:#fff; }
.task-product-preview-text { width:100%; max-height:62vh; margin:0; overflow:auto; padding:16px; border:1px solid #dce5f1; border-radius:9px; color:#425975; background:#fff; font:12px/1.7 ui-monospace,SFMono-Regular,Consolas,monospace; white-space:pre-wrap; }
.task-product-preview-unavailable { max-width:420px; padding:28px; border:1px dashed #ccd9ea; border-radius:10px; color:#7a8ca5; background:#fff; text-align:center; }
.task-product-preview-unavailable strong { color:#4d6381; font-size:14px; }
.task-product-preview-unavailable p { margin:8px 0 0; font-size:11px; line-height:1.7; }
.task-selected-image-upload-status { margin:-4px 0 10px; color:#8493a7; font-size:10px; line-height:1.55; }
.task-selected-image-remove { width:max-content; padding:2px 0; border:0; color:#7f90a7; background:transparent; font-size:9px; font-weight:700; cursor:pointer; }
.task-selected-image-remove:hover { color:#c45151; text-decoration:underline; }
.task-selected-image-remove:focus-visible { outline:3px solid rgba(47,111,237,.18); outline-offset:2px; }
@media (max-width:980px) {
  .task-profile-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .task-profile-span-2 { grid-column:span 2; }
}
@media (max-width:900px) { .task-packaging-attachment-groups { grid-template-columns:1fr; } }
@media (max-width:620px) {
  .task-profile-panel { padding:15px; }
  .task-profile-grid { grid-template-columns:1fr; }
  .task-profile-span-2 { grid-column:auto; }
  .task-profile-section-heading { align-items:flex-start; flex-direction:column; gap:4px; }
  .task-profile-copy-request { padding:15px; }
  .task-profile-copy-grid { grid-template-columns:1fr; gap:12px; }
  .task-product-attachment-list { grid-template-columns:1fr; }
  .task-product-preview-heading { padding:14px; }
  .task-product-preview-heading .section-kicker { display:none; }
  .task-product-preview-actions .button { padding:7px 9px; }
  .task-product-preview-body { padding:12px; }
}

/* 任务与概念图往返：把返回、续图和破坏性清空收进当前操作区。 */
.task-home-link { color:#637799; font-size:13px; font-weight:700; text-decoration:none; white-space:nowrap; }.task-home-link:hover { color:#2f6fed; }.task-image-actions,.chat-heading-actions { display:flex; align-items:center; gap:10px; }.task-image-actions .button { white-space:nowrap; }.chat-heading-actions .text-button { padding:5px 7px; border:1px solid #dbe5f2; border-radius:6px; color:#677b98; background:#fff; font-size:11px; }.chat-heading-actions .text-button:hover { border-color:#bdcdef; color:#2f6fed; background:#f7faff; }.context-dialog { width:min(440px,calc(100% - 30px)); }.context-dialog .form-help { margin:2px 0 4px; }.context-dialog .dialog-actions { margin-top:5px; }
@media (max-width:620px) { .task-heading-actions { flex-wrap:wrap; }.task-image-actions { align-items:flex-end; flex-direction:column; gap:7px; }.chat-heading-actions { gap:7px; }.chat-heading-actions .source-tag { max-width:150px; overflow:hidden; text-overflow:ellipsis; } }

/* 角色只读详情：补充信息与产品附件保持紧凑、可扫描。 */
.dashboard-detail-custom-fields { display:grid; gap:7px; margin:0; padding:0; list-style:none; }
.dashboard-detail-custom-fields li { padding:8px 10px; border-radius:7px; color:#596c87; background:#f7f9fc; font-size:11px; line-height:1.55; }
.dashboard-detail-profile-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin:12px 0 0; }
.dashboard-detail-profile-grid > div { min-width:0; padding:9px 10px; border-radius:7px; background:#f7f9fc; }
.dashboard-detail-profile-grid > div.is-wide { grid-column:1 / -1; }
.dashboard-detail-profile-grid dt { margin:0 0 4px; color:#8795a9; font-size:9px; font-weight:700; }
.dashboard-detail-profile-grid dd { margin:0; color:#526884; font-size:11px; line-height:1.55; overflow-wrap:anywhere; }
.dashboard-detail-profile-empty { margin-top:8px!important; }
.dashboard-detail-attachments { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.dashboard-detail-attachment { display:grid; grid-template-columns:40px minmax(0,1fr) auto; align-items:center; min-width:0; gap:9px; padding:8px; border:1px solid #e0e8f3; border-radius:8px; background:#fff; }
.dashboard-detail-attachment > img,.dashboard-detail-file-type { width:40px; height:40px; border-radius:6px; }
.dashboard-detail-attachment > img { object-fit:cover; background:#f2f5f8; }
.dashboard-detail-file-type { display:grid; border:1px solid #cedcf2; color:#3e72c9; background:#f1f6ff; font-size:8px; font-weight:800; place-items:center; }
.dashboard-detail-attachment > div { min-width:0; }
.dashboard-detail-attachment strong,.dashboard-detail-attachment small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.dashboard-detail-attachment strong { color:#435977; font-size:10px; }
.dashboard-detail-attachment small { margin-top:4px; color:#8b99ac; font-size:9px; }
.dashboard-detail-attachment-actions { display:flex; gap:7px; }
.dashboard-detail-attachment-actions a { color:#2f6fed; font-size:9px; font-weight:700; text-decoration:none; }
.dashboard-detail-attachment-actions a:hover { text-decoration:underline; }
@media (max-width:620px) {
  .dashboard-detail-profile-grid { grid-template-columns:1fr; }
  .dashboard-detail-profile-grid > div.is-wide { grid-column:auto; }
  .dashboard-detail-attachments { grid-template-columns:1fr; }
  .dashboard-detail-attachment { grid-template-columns:36px minmax(0,1fr) auto; }
  .dashboard-detail-attachment > img,.dashboard-detail-file-type { width:36px; height:36px; }
}

/* 对话中的生成结果只作为可点击、可拖拽的缩略预览，避免挤占需求讨论区域。 */
.chat-result-gallery { display:flex; align-items:flex-start; gap:10px; max-height:150px; margin-top:10px; overflow-x:auto; overflow-y:hidden; padding:2px 2px 8px; }.chat-result-image { width:auto; max-width:min(180px,36vw); flex:0 0 auto; }.chat-result-image img { display:block; width:auto; height:auto; max-width:min(180px,36vw); max-height:116px; aspect-ratio:auto; object-fit:contain; background:#f2f5f8; }.chat-result-image span { max-width:min(180px,36vw); font-size:10px; }.chat-message.system:has(.chat-result-gallery) { max-width:none; }.chat-message.system.is-completion-group { width:100%; }
@media (max-width:760px) { .chat-result-gallery { max-height:136px; }.chat-result-image { max-width:42vw; }.chat-result-image img { max-width:42vw; max-height:104px; }.chat-result-image span { max-width:42vw; } }

/* 手动生图：复用右侧附件和对话结果，规格集中在紧凑菜单内。 */
.generation-mode-tabs { display:flex; gap:20px; margin:13px 0 9px; border-bottom:1px solid #e7edf5; }.generation-mode-tab { position:relative; padding:8px 3px 10px; border:0; color:#75859a; background:transparent; font-size:13px; font-weight:750; cursor:pointer; }.generation-mode-tab::after { position:absolute; right:0; bottom:-1px; left:0; height:2px; content:""; background:transparent; }.generation-mode-tab.is-active { color:#2f6fed; }.generation-mode-tab.is-active::after { background:#2f6fed; }.manual-generation-panel { display:grid; gap:12px; min-height:0; padding:10px 0 2px; }.manual-generation-panel[hidden] { display:none !important; }.manual-reference-note,.manual-generation-help { margin:0; color:#7b8da7; font-size:11px; line-height:1.55; }.manual-reference-note strong { color:#2f6fed; }.manual-prompt { box-sizing:border-box; width:100%; min-height:176px; resize:vertical; padding:13px 14px; border:1px solid #cfddf0; border-radius:9px; outline:0; color:#405474; background:#fff; font:inherit; font-size:13px; line-height:1.65; }.manual-prompt:focus { border-color:#4b82ed; box-shadow:0 0 0 3px rgba(59,118,235,.12); }.manual-action-bar { display:flex; align-items:center; justify-content:space-between; gap:12px; }.generation-settings { position:relative; }.manual-settings-trigger { display:inline-flex; min-height:40px; align-items:center; gap:8px; padding:0 12px; border:1px solid #99bafd; border-radius:8px; color:#3974df; background:#f9fbff; font-size:12px; cursor:pointer; }.manual-settings-trigger strong { font-weight:750; }.manual-settings-menu { position:absolute; z-index:30; bottom:calc(100% + 8px); left:0; display:grid; grid-template-columns:166px 104px; gap:12px; min-width:282px; padding:12px; border:1px solid #d7e3f5; border-radius:10px; box-shadow:0 14px 30px rgba(43,70,110,.18); background:#fff; }.manual-settings-menu[hidden] { display:none; }.manual-settings-menu > div + div { padding-left:12px; border-left:1px solid #edf1f6; }.manual-settings-menu p { margin:0 0 8px; color:#91a0b4; font-size:10px; font-weight:700; }.manual-ratio-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:5px; }.manual-count-options { display:grid; gap:5px; }.manual-option { display:flex; min-height:31px; align-items:center; gap:7px; padding:5px 7px; border:1px solid transparent; border-radius:6px; color:#627795; background:#fff; font-size:11px; text-align:left; cursor:pointer; }.manual-option:hover { background:#f3f7ff; }.manual-option.is-selected { border-color:#c8dafb; color:#2f6fed; background:#edf4ff; font-weight:750; }.ratio-preview { display:inline-block; box-sizing:border-box; flex:0 0 auto; border:1.5px solid currentColor; border-radius:2px; }.manual-count-option { justify-content:center; }.manual-action-bar .button { min-width:144px; }.chat-workspace:has(.manual-generation-panel:not([hidden])) .section-description,.chat-workspace:has(.manual-generation-panel:not([hidden])) .chat-thinking { display:none; }
.chat-workspace:has(.manual-generation-panel:not([hidden])) .chat-messages { order:10; }.chat-workspace:has(.manual-generation-panel:not([hidden])) .manual-generation-panel { display:grid; grid-template-columns:minmax(0,1fr) 110px; order:11; align-items:stretch; flex:0 0 auto; gap:9px 10px; }.chat-workspace:has(.manual-generation-panel:not([hidden])) .manual-reference-note { grid-column:1 / -1; }.chat-workspace:has(.manual-generation-panel:not([hidden])) .manual-prompt { grid-column:1; min-height:94px; max-height:132px; padding:10px 11px; border-color:#cad8eb; border-radius:8px; resize:vertical; line-height:1.7; }.chat-workspace:has(.manual-generation-panel:not([hidden])) .manual-action-bar { display:flex; grid-column:2; grid-row:2; align-self:stretch; flex-direction:column; justify-content:space-between; gap:7px; }.chat-workspace:has(.manual-generation-panel:not([hidden])) .generation-settings { margin:0; }.chat-workspace:has(.manual-generation-panel:not([hidden])) .manual-settings-trigger,.chat-workspace:has(.manual-generation-panel:not([hidden])) #manualGenerate { width:110px; min-width:110px; min-height:42px; height:42px; padding:0 8px; white-space:nowrap; }.chat-workspace:has(.manual-generation-panel:not([hidden])) .manual-settings-trigger { justify-content:center; flex-direction:row; gap:5px; }.chat-workspace:has(.manual-generation-panel:not([hidden])) #manualGenerate { align-self:stretch; }.chat-workspace:has(.manual-generation-panel:not([hidden])) .chat-composer { display:none; }

/* 手动操作组：规格是轻量筛选，生成是明确但克制的主操作。 */
.chat-workspace:has(.manual-generation-panel:not([hidden])) .manual-action-bar { gap:8px; }.chat-workspace:has(.manual-generation-panel:not([hidden])) .manual-settings-trigger { border-color:#d6e2f4; border-radius:10px; color:#54729b; background:#fff; box-shadow:0 1px 2px rgba(39,66,105,.04); font-size:11px; transition:border-color .16s ease,background .16s ease,box-shadow .16s ease,color .16s ease; }.chat-workspace:has(.manual-generation-panel:not([hidden])) .manual-settings-trigger:hover { border-color:#a9c4ed; color:#2f6fed; background:#f8fbff; box-shadow:0 3px 8px rgba(48,99,174,.08); }.chat-workspace:has(.manual-generation-panel:not([hidden])) #manualGenerate { border-radius:10px; background:linear-gradient(135deg,#4582ef,#2f6fed); box-shadow:0 4px 10px rgba(47,111,237,.18); font-size:11px; font-weight:750; letter-spacing:.05em; transition:transform .16s ease,box-shadow .16s ease,background .16s ease; }.chat-workspace:has(.manual-generation-panel:not([hidden])) #manualGenerate:hover { transform:translateY(-1px); background:linear-gradient(135deg,#4a87f2,#3474e5); box-shadow:0 6px 13px rgba(47,111,237,.22); }.chat-workspace:has(.manual-generation-panel:not([hidden])) #manualGenerate:active { transform:translateY(0); box-shadow:0 2px 6px rgba(47,111,237,.18); }

/* 手动输入框复用 AI 助理的内联 @ 引用能力。 */
.chat-workspace:has(.manual-generation-panel:not([hidden])) .manual-input-wrap { grid-column:1; grid-row:2; min-width:0; }.chat-workspace:has(.manual-generation-panel:not([hidden])) .manual-input-wrap .manual-prompt { min-height:94px; max-height:132px; }.chat-workspace:has(.manual-generation-panel:not([hidden])) .manual-input-wrap .mention-menu { right:0; left:0; }.chat-workspace:has(.manual-generation-panel:not([hidden])) .manual-input-wrap .mention-upload { cursor:pointer; }

/* 手动输入与右侧操作列共享固定高度，禁止拖拽改变布局。 */
.chat-workspace:has(.manual-generation-panel:not([hidden])) .manual-generation-panel { grid-template-rows:auto 94px; }.chat-workspace:has(.manual-generation-panel:not([hidden])) .manual-input-wrap,.chat-workspace:has(.manual-generation-panel:not([hidden])) .manual-action-bar { height:94px; align-self:end; }.chat-workspace:has(.manual-generation-panel:not([hidden])) .manual-input-wrap .manual-prompt { box-sizing:border-box; height:94px; min-height:94px; max-height:94px; resize:none; overflow-y:auto; }

/* 通用按钮的内边距不得把手动操作列撑出输入框高度。 */
.chat-workspace:has(.manual-generation-panel:not([hidden])) .manual-settings-trigger,.chat-workspace:has(.manual-generation-panel:not([hidden])) #manualGenerate { box-sizing:border-box; flex:0 0 42px; height:42px; min-height:42px; max-height:42px; }.chat-workspace:has(.manual-generation-panel:not([hidden])) .manual-action-bar { overflow:hidden; }
@media (max-width:760px) { .generation-mode-tabs { gap:15px; }.manual-action-bar { align-items:stretch; flex-direction:column; }.manual-action-bar .button { width:100%; }.manual-settings-trigger { width:100%; justify-content:center; }.manual-settings-menu { right:0; left:auto; grid-template-columns:1fr; width:min(282px,calc(100vw - 48px)); }.manual-settings-menu > div + div { padding-top:9px; padding-left:0; border-top:1px solid #edf1f6; border-left:0; }.manual-count-options { grid-template-columns:repeat(3,1fr); } }

/* 用户消息：把本条真实引用素材留在气泡内，署名与用户发送方向保持一致。 */
.chat-message.user > span { margin-left:auto; text-align:right; }.sent-message-attachment-list { display:flex; flex-wrap:wrap; justify-content:flex-start; gap:6px; margin-top:8px; }.chat-message.user .sent-message-attachment-list { justify-content:flex-end; }.sent-message-attachment { display:inline-flex; align-items:center; max-width:100%; gap:6px; padding:4px 7px 4px 4px; border:1px solid rgba(255,255,255,.34); border-radius:7px; color:#fff; background:rgba(22,69,162,.2); font-size:10px; line-height:1.2; }.sent-message-attachment-visual { width:24px; height:24px; flex:0 0 24px; border-radius:4px; object-fit:cover; background:#edf4ff; }.sent-message-attachment .attachment-file-icon { display:grid; place-items:center; border-color:rgba(255,255,255,.5); color:#2f6fed; background:#fff; font-size:7px; }.sent-message-attachment strong { overflow:hidden; max-width:160px; text-overflow:ellipsis; white-space:nowrap; }

/* 手动生图：分层引用卡 + 固定输入/操作网格，避免内容和字体把控件撑歪。 */
.chat-workspace:has(.manual-generation-panel:not([hidden])) .manual-generation-panel { display:block; order:11; flex:0 0 auto; min-height:0; padding:10px 0 2px; }
.chat-workspace:has(.manual-generation-panel:not([hidden])) .manual-composer-card { display:grid; grid-template-rows:auto auto; overflow:visible; border:1px solid #dce7f7; border-radius:10px; background:#fff; box-shadow:0 5px 16px rgba(36,58,95,.05); }
.chat-workspace:has(.manual-generation-panel:not([hidden])) .manual-reference-strip { display:flex; min-height:52px; align-items:center; gap:10px; padding:9px 12px; border-bottom:1px solid #e6edf7; border-radius:10px 10px 0 0; background:linear-gradient(90deg,#f5f9ff 0%,#fbfdff 100%); }
.chat-workspace:has(.manual-generation-panel:not([hidden])) .manual-reference-summary { flex:0 0 auto; color:#4d6688; font-size:12px; line-height:1.2; white-space:nowrap; }.chat-workspace:has(.manual-generation-panel:not([hidden])) .manual-reference-summary span { color:#2f6fed; }
.chat-workspace:has(.manual-generation-panel:not([hidden])) .manual-reference-tokens { display:flex; flex:1 1 auto; min-width:0; flex-wrap:wrap; align-items:center; gap:6px; }
.chat-workspace:has(.manual-generation-panel:not([hidden])) .manual-reference-token { display:inline-flex; min-width:0; max-width:250px; height:30px; align-items:center; gap:6px; padding:3px 5px 3px 3px; border:1px solid #dce6f3; border-radius:6px; color:#4b6284; background:#fff; font-size:10px; line-height:1; }.chat-workspace:has(.manual-generation-panel:not([hidden])) .manual-reference-visual { width:22px; height:22px; flex:0 0 22px; border-radius:4px; object-fit:cover; background:#edf4ff; }.chat-workspace:has(.manual-generation-panel:not([hidden])) .manual-reference-token .attachment-file-icon { display:grid; place-items:center; border:1px solid #d7e3f4; color:#5980bb; background:#f5f9ff; font-size:7px; font-weight:800; }.chat-workspace:has(.manual-generation-panel:not([hidden])) .manual-reference-token strong { overflow:hidden; min-width:0; flex:1; text-overflow:ellipsis; white-space:nowrap; }.chat-workspace:has(.manual-generation-panel:not([hidden])) .manual-reference-token button { width:18px; height:18px; flex:0 0 18px; padding:0; border:0; border-radius:4px; color:#8ea0b6; background:transparent; font-size:15px; line-height:1; }.chat-workspace:has(.manual-generation-panel:not([hidden])) .manual-reference-token button:hover { color:#c45151; background:#fff0f0; }.chat-workspace:has(.manual-generation-panel:not([hidden])) .manual-reference-empty { color:#8b9ab0; font-size:11px; }
.chat-workspace:has(.manual-generation-panel:not([hidden])) .manual-composer-row { display:grid; grid-template-columns:minmax(0,1fr) 124px; align-items:stretch; gap:12px; padding:10px 12px; }
.chat-workspace:has(.manual-generation-panel:not([hidden])) .manual-input-wrap { grid-column:auto; grid-row:auto; min-width:0; height:94px; align-self:stretch; }.chat-workspace:has(.manual-generation-panel:not([hidden])) .manual-input-wrap .manual-prompt { box-sizing:border-box; width:100%; height:94px; min-height:94px; max-height:94px; padding:12px; resize:none; overflow-y:auto; border-color:#c9d8ec; border-radius:8px; line-height:1.65; }.chat-workspace:has(.manual-generation-panel:not([hidden])) .manual-input-wrap .mention-menu { right:0; left:0; }.chat-workspace:has(.manual-generation-panel:not([hidden])) .manual-input-wrap .mention-upload { cursor:pointer; }
.chat-workspace:has(.manual-generation-panel:not([hidden])) .manual-action-bar { display:grid; grid-template-rows:42px 42px; align-content:space-between; gap:10px; width:124px; min-width:124px; height:94px; min-height:94px; margin:0; padding:0; overflow:visible; grid-column:auto; grid-row:auto; align-self:stretch; justify-content:stretch; }.chat-workspace:has(.manual-generation-panel:not([hidden])) .manual-generation-panel .generation-settings { position:relative; min-width:0; margin:0; padding:0; }
.chat-workspace:has(.manual-generation-panel:not([hidden])) .manual-settings-trigger,.chat-workspace:has(.manual-generation-panel:not([hidden])) #manualGenerate { box-sizing:border-box; width:100%; min-width:0; height:42px; min-height:42px; max-height:42px; padding:0 10px; white-space:nowrap; }.chat-workspace:has(.manual-generation-panel:not([hidden])) .manual-settings-trigger { display:flex; align-items:center; justify-content:center; gap:5px; border-color:#d5e1f2; border-radius:9px; color:#54729b; background:#fff; box-shadow:0 1px 2px rgba(39,66,105,.04); font-size:11px; }.chat-workspace:has(.manual-generation-panel:not([hidden])) .manual-settings-trigger:hover { border-color:#a9c4ed; color:#2f6fed; background:#f8fbff; box-shadow:0 3px 8px rgba(48,99,174,.08); }.chat-workspace:has(.manual-generation-panel:not([hidden])) #manualGenerate { display:flex; align-items:center; justify-content:center; border-radius:9px; background:linear-gradient(135deg,#4582ef,#2f6fed); box-shadow:0 4px 10px rgba(47,111,237,.18); font-size:11px; font-weight:750; letter-spacing:.03em; }.chat-workspace:has(.manual-generation-panel:not([hidden])) #manualGenerate:hover { transform:translateY(-1px); background:linear-gradient(135deg,#4a87f2,#3474e5); box-shadow:0 6px 13px rgba(47,111,237,.22); }.chat-workspace:has(.manual-generation-panel:not([hidden])) #manualGenerate:active { transform:translateY(0); box-shadow:0 2px 6px rgba(47,111,237,.18); }.chat-workspace:has(.manual-generation-panel:not([hidden])) .manual-action-bar .button { min-width:0; }
.chat-workspace:has(.manual-generation-panel:not([hidden])) .manual-settings-menu { right:0; left:auto; bottom:calc(100% + 8px); }.chat-workspace:has(.manual-generation-panel:not([hidden])) .chat-composer { display:none; }

@media (max-width:760px) { .chat-workspace:has(.manual-generation-panel:not([hidden])) .manual-reference-strip { align-items:flex-start; flex-direction:column; gap:6px; }.chat-workspace:has(.manual-generation-panel:not([hidden])) .manual-reference-tokens { width:100%; }.chat-workspace:has(.manual-generation-panel:not([hidden])) .manual-composer-row { grid-template-columns:1fr; gap:8px; padding:10px; }.chat-workspace:has(.manual-generation-panel:not([hidden])) .manual-action-bar { grid-template-columns:minmax(0,1fr) minmax(0,1fr); grid-template-rows:42px; gap:8px; width:100%; min-width:0; height:42px; min-height:42px; }.chat-workspace:has(.manual-generation-panel:not([hidden])) .manual-settings-trigger,.chat-workspace:has(.manual-generation-panel:not([hidden])) #manualGenerate { height:42px; min-height:42px; max-height:42px; }.chat-workspace:has(.manual-generation-panel:not([hidden])) .manual-settings-menu { right:0; left:auto; width:min(282px,calc(100vw - 48px)); grid-template-columns:1fr; }.chat-workspace:has(.manual-generation-panel:not([hidden])) .manual-settings-menu > div + div { padding-top:9px; padding-left:0; border-top:1px solid #edf1f6; border-left:0; } }
/* 账号与固定四角色的小屏适配。 */
.admin-filter-bar { grid-template-columns:minmax(180px,1.25fr) minmax(150px,.9fr) minmax(150px,.9fr) minmax(0,1fr) auto; }
.role-wizard-steps { grid-template-columns:repeat(4,1fr); }
.account-form-status { grid-column:1/-1; }
@media (max-width:640px) {
  .admin-filter-bar { grid-template-columns:1fr; }
  .role-wizard-steps { grid-template-columns:repeat(4,130px); }
}

/* 报价订单号：保持长编号单行展示，窄屏由既有表格容器横向滚动。 */
.dashboard-task-table { min-width:980px; }
.dashboard-order-number { display:block; min-width:155px; color:#3569bc; font-family:ui-monospace,"SFMono-Regular",Consolas,"Liberation Mono",monospace; font-size:11px; font-variant-numeric:tabular-nums; letter-spacing:.01em; white-space:nowrap; }
.dashboard-order-banner { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:11px 13px; border:1px solid #d9e6f8; border-radius:8px; color:#73849d; background:#f7faff; }
.dashboard-order-banner span { font-size:10px; font-weight:700; }
.dashboard-order-banner strong { color:#3569bc; font-family:ui-monospace,"SFMono-Regular",Consolas,"Liberation Mono",monospace; font-size:12px; font-variant-numeric:tabular-nums; white-space:nowrap; }
.task-order-number-badge { display:inline-flex; align-items:center; gap:8px; width:max-content; margin:10px 0 0!important; padding:6px 9px; border:1px solid #d9e6f8; border-radius:7px; color:#788aa4!important; background:#f7faff; font-size:11px; }
.task-order-number-badge[hidden] { display:none!important; }
.task-order-number-badge strong { color:#3569bc; font-family:ui-monospace,"SFMono-Regular",Consolas,"Liberation Mono",monospace; font-size:11px; font-variant-numeric:tabular-nums; }

/* 超级管理员 AI 服务配置：状态与编辑分层，API Key 始终保持写入式。 */
.ai-service-form { display:grid; gap:18px; }.ai-config-status-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }.ai-config-status-card { display:grid; min-width:0; gap:5px; padding:16px 17px; box-shadow:none; }.ai-config-status-card > span { color:#8190a6; font-size:10px; font-weight:750; letter-spacing:.08em; }.ai-config-status-card strong { overflow:hidden; color:#2f4666; font-size:16px; text-overflow:ellipsis; white-space:nowrap; }.ai-config-status-card small { overflow:hidden; color:#8b99ac; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }.ai-service-layout { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:18px; align-items:start; }.ai-service-editor,.ai-service-notes { padding:21px; }.ai-service-editor .panel-title-row h2,.ai-service-notes h2 { margin:0 0 5px; font-size:18px; }.ai-service-editor .panel-title-row p { margin:0; color:#7d8da3; font-size:11px; line-height:1.55; }.ai-readiness-badge { display:inline-flex; min-height:27px; align-items:center; padding:0 10px; border-radius:999px; color:#9a7423; background:#fff5d9; font-size:10px; font-weight:750; white-space:nowrap; }.ai-readiness-badge[data-state="ready"] { color:#168657; background:#e8f8ef; }.ai-service-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px 16px; margin-top:20px; }.ai-service-fields label { display:grid; min-width:0; gap:7px; color:#445b7b; font-size:12px; font-weight:750; }.ai-service-fields input { box-sizing:border-box; width:100%; min-height:43px; padding:9px 11px; border:1px solid #d3dfef; border-radius:8px; outline:0; color:#334b6d; background:#fff; font:inherit; font-weight:500; }.ai-service-fields input:focus { border-color:#4b82ed; box-shadow:0 0 0 3px rgba(59,118,235,.11); }.ai-service-fields input:disabled { color:#98a4b4; background:#f4f6f9; cursor:not-allowed; }.ai-service-fields label small { color:#8d9bad; font-size:10px; font-weight:500; line-height:1.55; }.ai-service-fields .ai-field-wide { grid-column:1/-1; }.ai-service-feedback { min-height:38px; margin-top:17px; padding:10px 12px; border:1px solid #dce7f5; border-radius:8px; color:#617796; background:#f7faff; font-size:11px; line-height:1.55; }.ai-service-feedback.is-error { border-color:#f0c3c3; color:#b34848; background:#fff6f6; }.ai-service-actions { display:flex; align-items:center; gap:9px; margin-top:14px; }.ai-service-actions > span { flex:1; }.ai-service-notes { position:sticky; top:22px; }.ai-service-notes ul { display:grid; gap:10px; margin:16px 0; padding:0; list-style:none; }.ai-service-notes li { position:relative; padding-left:16px; color:#697b94; font-size:11px; line-height:1.65; }.ai-service-notes li::before { position:absolute; top:.62em; left:0; width:6px; height:6px; border-radius:50%; content:""; background:#6c9bf0; }.ai-service-notes .warning-note { margin:15px 0 10px; }.ai-service-notes .form-help { margin-bottom:0; line-height:1.6; }
.ai-service-actions .button { box-sizing:border-box; min-width:116px; }
@media (max-width:1180px) { .ai-config-status-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.ai-service-layout { grid-template-columns:1fr; }.ai-service-notes { position:static; } }
@media (max-width:640px) { .ai-config-status-grid,.ai-service-fields { grid-template-columns:1fr; }.ai-service-fields .ai-field-wide { grid-column:auto; }.ai-service-actions { align-items:stretch; flex-direction:column; }.ai-service-actions > span { display:none; }.ai-service-actions .button { width:100%; }.ai-service-editor,.ai-service-notes { padding:17px; } }

/* 报价任务进入图片生成：内包材、外包材和空白上下文使用一致的选择与切换界面。 */
.generation-scope-dialog { width:min(620px,calc(100% - 30px)); }
.generation-scope-dialog::backdrop { background:rgba(23,39,65,.46); backdrop-filter:blur(2px); }
.generation-scope-dialog-content { display:grid; gap:16px; padding:24px; }
.generation-scope-dialog-content h2 { margin:3px 0 0; color:#263e61; font-size:21px; }
.generation-scope-intro { margin:0; color:#74869f; font-size:12px; line-height:1.65; }
.generation-scope-options { display:grid; gap:10px; }
.generation-scope-option { display:grid; grid-template-columns:44px minmax(0,1fr) 24px; align-items:center; width:100%; gap:12px; padding:13px 14px; border:1px solid #d8e4f4; border-radius:11px; color:#425b7d; background:#fff; text-align:left; cursor:pointer; transition:border-color .16s,box-shadow .16s,transform .16s; }
.generation-scope-option:hover,.generation-scope-option:focus-visible { border-color:#7da7ef; box-shadow:0 7px 20px rgba(47,111,237,.12); outline:0; transform:translateY(-1px); }
.generation-scope-option.is-current { border-color:#72a0ee; background:#f7faff; box-shadow:0 0 0 3px rgba(47,111,237,.08); }
.generation-scope-option:disabled { cursor:wait; opacity:.62; transform:none; }
.generation-scope-option > span:nth-child(2) { display:grid; min-width:0; gap:4px; }
.generation-scope-option strong { color:#304b70; font-size:14px; }
.generation-scope-option small { color:#8292a7; font-size:11px; line-height:1.45; }
.generation-scope-option small b { color:#2f6fed; }
.generation-scope-option > i { color:#8aa4c8; font-size:18px; font-style:normal; text-align:right; }
.generation-scope-option-icon { display:grid; width:44px; height:44px; border-radius:10px; color:#2467dc; background:#eaf2ff; font-size:13px; font-weight:800; place-items:center; }
.generation-scope-option-icon.is-outer { color:#7e58c7; background:#f2edff; }
.generation-scope-option-icon.is-plain { color:#718098; background:#eef1f5; }
.generation-scope-option.is-plain { border-style:dashed; }
.generation-scope-status { min-height:17px; margin:0; color:#6580a8; font-size:11px; line-height:1.5; }

.generation-scope-bar { display:flex; align-items:center; justify-content:space-between; gap:14px; margin:12px 0 0; padding:10px 12px; border:1px solid #d8e5f7; border-radius:10px; background:linear-gradient(135deg,#f8fbff,#f3f7fe); }
.generation-scope-bar[hidden] { display:none; }
.generation-scope-bar > div { display:flex; min-width:0; align-items:center; gap:10px; }
.generation-scope-bar-icon { display:grid; flex:0 0 auto; width:32px; height:32px; border-radius:8px; color:#2467dc; background:#e4eeff; font-size:11px; font-weight:800; place-items:center; }
.generation-scope-bar[data-scope="outer"] .generation-scope-bar-icon { color:#7952bd; background:#eee8fb; }
.generation-scope-bar[data-scope="none"] .generation-scope-bar-icon { color:#6f7d91; background:#e9edf2; }
.generation-scope-bar p { display:grid; min-width:0; grid-template-columns:auto 1fr; align-items:baseline; gap:2px 8px; margin:0; }
.generation-scope-bar p small { color:#8796aa; font-size:9px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.generation-scope-bar p strong { color:#355276; font-size:12px; }
.generation-scope-bar p span { grid-column:1/-1; overflow:hidden; color:#74869f; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.generation-scope-bar .button { flex:0 0 auto; }

.task-generation-context-card { margin-top:9px; border:1px solid #d8e5f7; border-radius:8px; background:#f7faff; }
.task-generation-context-card[hidden] { display:none; }
.task-generation-context-card summary { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:8px 9px; color:#42628d; font-size:10px; font-weight:750; cursor:pointer; list-style:none; }
.task-generation-context-card summary::-webkit-details-marker { display:none; }
.task-generation-context-card summary::after { color:#7894ba; content:"⌄"; font-size:12px; }
.task-generation-context-card[open] summary::after { transform:rotate(180deg); }
.task-generation-context-card summary small { margin-left:auto; color:#8293aa; font-size:9px; font-weight:500; }
.task-generation-context-card dl { display:grid; max-height:180px; gap:7px; overflow:auto; margin:0; padding:0 9px 9px; }
.task-generation-context-card dl > div { display:grid; grid-template-columns:80px minmax(0,1fr); gap:8px; padding-top:7px; border-top:1px solid #e3ebf6; }
.task-generation-context-card dt { color:#8190a5; font-size:9px; }
.task-generation-context-card dd { margin:0; color:#4d6381; font-size:9px; line-height:1.45; overflow-wrap:anywhere; }
.reference-chip.is-locked { background:#f8fbff; }
.reference-chip .reference-lock { flex:0 0 auto; width:auto; margin:0; padding:3px 5px; border-radius:999px; color:#3c78dc; background:#eaf2ff; font-size:8px; font-weight:750; }
.reference-chip .reference-chip-preview { display:flex; flex:1; width:auto; min-width:0; height:auto; align-items:center; gap:7px; padding:0; border:0; border-radius:5px; color:inherit; background:transparent; text-align:left; cursor:zoom-in; }
.reference-chip .reference-chip-preview:hover { color:inherit; background:#f3f7ff; }
.reference-chip .reference-chip-preview:focus-visible { outline:2px solid #74a5f7; outline-offset:2px; }
.reference-chip .reference-chip-copy { min-width:0; flex:1; }
.reference-chip > [data-remove-reference] { flex:0 0 auto; width:22px; height:22px; padding:0; }
.reference-attachment-dialog { width:min(780px,calc(100% - 32px)); }
.reference-attachment-dialog-shell { display:grid; gap:16px; padding:22px; }
.reference-attachment-preview-body { display:grid; min-height:280px; max-height:70vh; overflow:auto; border:1px solid #dfe7f3; border-radius:10px; background:#f7f9fc; place-items:center; }
.reference-attachment-preview-image { display:block; max-width:100%; max-height:68vh; object-fit:contain; }
.reference-attachment-preview-frame { width:100%; min-height:520px; border:0; background:#fff; }
.reference-attachment-preview-unavailable { display:grid; max-width:420px; gap:8px; padding:28px; color:#71829a; text-align:center; }
.reference-attachment-preview-unavailable strong { color:#435a79; font-size:15px; }
.reference-attachment-preview-unavailable p { margin:0; font-size:12px; line-height:1.7; }
@media (max-width:760px) {
  .reference-attachment-dialog-shell { padding:16px; }
  .reference-attachment-preview-body { min-height:220px; max-height:64vh; }
  .reference-attachment-preview-frame { min-height:420px; }
}

@media (max-width:760px) {
  .generation-scope-dialog-content { padding:19px; }
  .generation-scope-option { grid-template-columns:38px minmax(0,1fr) 18px; padding:11px; }
  .generation-scope-option-icon { width:38px; height:38px; }
  .generation-scope-bar { align-items:stretch; flex-direction:column; }
  .generation-scope-bar .button { width:100%; }
  .generation-scope-bar p span { white-space:normal; }
}

/* 2026-08-03 创建报价：2K 双列内外包材工作区。 */
.task-creation-body { background:#f5f8fc; }
.task-creation-page { width:min(1960px,calc(100% - 40px)); max-width:none; padding:22px 0 30px; }
.task-creation-heading { margin-bottom:14px; }
.task-creation-heading h1 { font-size:26px; }
.task-creation-heading .eyebrow { margin-bottom:4px; }
.task-creation-form-card { gap:10px; }
.task-profile-panel { padding:16px 18px; box-shadow:0 4px 16px rgba(39,65,101,.045); }
.task-profile-panel-heading { margin-bottom:11px; }
.task-profile-grid { gap:11px 14px; }
.task-profile-copy-grid { gap:11px 14px; }
.task-profile-extension { margin-top:14px; padding-top:12px; }
.task-quote-editor-card { margin-top:10px; padding:16px 18px; }
.task-quote-editor-card > .task-card-heading { margin-bottom:11px; }
.task-quote-info-grid { gap:11px 14px; margin-bottom:10px; }
.task-material-status-row { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:0 2px 10px; color:#8493a7; font-size:10px; line-height:1.5; }
.task-selected-image-upload-status { margin:0; }
.task-material-workspaces { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; align-items:start; }
.task-material-workspace { min-width:0; overflow:hidden; padding:12px; border:1px solid #d5e3f7; border-radius:11px; background:#fff; }
.task-material-workspace-outer { border-color:#d6e7e2; }
.task-material-workspace-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; padding:0 2px 10px; }
.task-material-workspace-heading h3 { margin:0 0 4px; color:#27486f; font-size:15px; }
.task-material-workspace-outer .task-material-workspace-heading h3 { color:#2c6759; }
.task-material-workspace-heading p { margin:0; color:#8796aa; font-size:9px; line-height:1.55; }
.task-material-subsection { min-width:0; margin:0; padding:10px 2px 0; border:0; border-top:1px solid #e5ebf3; border-radius:0; background:transparent; }
.task-material-subsection + .task-material-subsection { margin-top:9px; }
.task-packaging-attachment-heading { align-items:center; }
.task-packaging-attachment-heading h4,.task-packaging-process-heading h4,.task-material-images-heading h4 { margin:0; color:#314d72; font-size:12px; }
.task-packaging-process-heading h4 span { color:#8493a7; font-size:10px; font-weight:550; }
.task-packaging-attachment-heading p { margin-top:3px; }
.task-material-workspace .task-product-upload-button { min-height:28px; padding:5px 9px; }
.task-material-workspace .task-product-attachment-list { grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:6px; margin-top:7px; }
.task-material-workspace .task-product-attachment-card { min-height:46px; gap:7px; padding:5px 6px; }
.task-material-workspace .task-product-attachment-thumb,.task-material-workspace .task-product-file-type { width:34px; height:34px; flex-basis:34px; }
.task-material-workspace .task-product-attachment-empty { min-height:46px; margin-top:7px; padding:8px; }
.task-material-workspace .task-product-attachment-empty strong { font-size:10px; }
.task-material-workspace .task-product-attachment-empty span { font-size:8px; }
.task-material-workspace .task-packaging-process-card { overflow:visible; }
.task-material-workspace .task-packaging-process-heading { align-items:center; margin-bottom:8px; }
.task-material-workspace .task-quote-table-wrap { border-radius:7px; background:#fff; }
.task-material-workspace .task-quote-editor-table { min-width:680px; }
.task-material-workspace .task-quote-editor-table th { padding:8px 9px; }
.task-material-workspace .task-quote-editor-table td { padding:6px 7px; }
.task-material-workspace .task-quote-editor-table input,.task-material-workspace .task-quote-editor-table select { padding:7px 8px; }
.task-material-workspace .task-packaging-process-footer { min-height:32px; padding-top:3px; }
.task-material-images-heading { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:7px; }
.task-material-images-heading > div { display:flex; align-items:baseline; gap:7px; min-width:0; }
.task-material-images-heading span { color:#7185a1; font-size:9px; }
.task-selected-image-strip { display:flex; min-height:138px; gap:8px; overflow-x:auto; padding:1px 1px 4px; }
.task-selected-image-strip .task-selected-image-card { display:grid; width:112px; min-width:112px; min-height:0; grid-template-columns:1fr; gap:5px; padding:0; overflow:hidden; border-color:#d9e3ef; border-radius:8px; }
.task-selected-image-preview { position:relative; display:block; width:100%; padding:0; overflow:hidden; border:0; background:#eef2f7; cursor:zoom-in; }
.task-selected-image-preview img { display:block; width:100%; height:68px; border-radius:0; object-fit:cover; transition:transform .16s ease; }
.task-selected-image-preview span { position:absolute; right:4px; bottom:4px; width:auto; padding:3px 5px; border-radius:4px; color:#fff; background:rgba(32,49,76,.72); font-size:8px; font-weight:650; }
.task-selected-image-preview:hover img,.task-selected-image-preview:focus-visible img { transform:scale(1.035); }
.task-selected-image-preview:focus-visible { outline:3px solid rgba(47,111,237,.2); outline-offset:-3px; }
.task-selected-image-strip .task-selected-image-card figcaption { display:grid; gap:4px; padding:0 6px 6px; }
.task-selected-image-strip .task-selected-image-card strong { font-size:9px; }
.task-selected-image-actions { display:grid; gap:3px; }
.task-selected-image-order-actions,.task-selected-image-secondary-actions { display:grid; grid-template-columns:1fr 1fr; gap:3px; }
.task-selected-image-secondary-actions { grid-template-columns:minmax(0,1fr) auto; }
.task-selected-image-actions button { min-width:0; min-height:20px; padding:3px 4px; border:1px solid #d9e4f2; border-radius:4px; color:#587091; background:#f8fbff; font-size:8px; font-weight:700; line-height:1.2; cursor:pointer; white-space:nowrap; }
.task-selected-image-actions button:hover:not(:disabled) { color:#2865ce; border-color:#aec7ef; background:#eef5ff; }
.task-selected-image-actions button:focus-visible { outline:3px solid rgba(47,111,237,.18); outline-offset:1px; }
.task-selected-image-actions button:disabled { opacity:.38; cursor:not-allowed; }
.task-selected-image-strip .task-selected-image-remove { width:auto; padding:3px 5px; color:#8a98aa; font-size:8px; }
.task-selected-image-strip .task-selected-image-remove:hover:not(:disabled) { color:#c45151; border-color:#e6bcbc; background:#fff4f4; text-decoration:none; }
.task-selected-image-strip .task-selected-image-empty { min-width:100%; min-height:132px; padding:10px; }
.task-selected-image-strip .task-selected-image-empty strong { font-size:10px; }
.task-selected-image-strip .task-selected-image-empty p { margin-top:3px; font-size:9px; }
.task-quote-total-bar { margin-top:12px; }
.task-quote-total-actions { display:flex; align-items:center; gap:14px; }
.task-quote-total-actions p { margin:0; }
.task-selected-image-dialog { width:min(1200px,calc(100% - 36px)); max-height:90vh; padding:0; overflow:hidden; border:0; border-radius:14px; box-shadow:0 24px 70px rgba(24,45,78,.3); }
.task-selected-image-dialog::backdrop { background:rgba(23,38,61,.62); }
.task-selected-image-preview-viewport { display:grid; min-height:420px; max-height:calc(90vh - 76px); overflow:auto; padding:22px; background:#eef2f7; place-items:center; }
.task-selected-image-preview-viewport img { display:block; max-width:100%; max-height:calc(90vh - 122px); object-fit:contain; transform-origin:center; transition:transform .18s ease; }
.task-selected-image-dialog .task-product-preview-actions .button:disabled { opacity:.45; cursor:not-allowed; }
.is-task-readonly .task-selected-image-actions { display:none; }
@media (max-width:1500px) {
  .task-material-workspaces { grid-template-columns:1fr; }
  .task-material-workspace .task-product-attachment-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:980px) {
  .task-creation-page { width:min(100% - 28px,900px); }
  .task-material-workspace .task-product-attachment-list { grid-template-columns:1fr; }
  .task-material-status-row { align-items:flex-start; flex-direction:column; gap:4px; }
}
@media (max-width:620px) {
  .task-creation-page { width:min(100% - 20px,560px); padding-top:18px; }
  .task-material-workspace { padding:10px; }
  .task-material-workspace-heading { align-items:flex-start; flex-direction:column; gap:7px; }
  .task-material-workspace .task-quote-editor-table { min-width:650px; }
  .task-quote-total-actions { width:100%; align-items:flex-start; flex-direction:column; gap:8px; }
  .task-quote-total-actions .button { width:100%; }
  .task-selected-image-dialog .task-product-preview-heading { align-items:stretch; flex-direction:column; }
  .task-selected-image-dialog .task-product-preview-actions { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); }
  .task-selected-image-preview-viewport { min-height:300px; padding:12px; }
}

.task-order-meta { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:13px; }
.task-order-meta .task-order-number-badge { box-sizing:border-box; min-height:30px; margin:0!important; line-height:1; }
.task-view-tabs { display:inline-flex; align-items:stretch; overflow:hidden; border:1px solid #cbdcf7; border-radius:7px; background:#f7faff; }
.task-view-tabs[hidden] { display:none; }
.task-view-tab { position:relative; min-height:30px; padding:5px 14px; border:0; color:#657895; background:transparent; font:inherit; font-size:11px; font-weight:750; cursor:pointer; }
.task-view-tab + .task-view-tab { border-left:1px solid #dbe6f5; }
.task-view-tab:hover,.task-view-tab:focus-visible { color:#2f6fdc; background:#edf4ff; outline:0; }
.task-view-tab:focus-visible { box-shadow:inset 0 0 0 2px rgba(47,111,237,.25); }
.task-view-tab.active { color:#2f6fdc; background:#eef5ff; }
.task-view-tab.active::after { position:absolute; right:0; bottom:0; left:0; height:2px; background:#2f6fed; content:""; }
.task-view-tab.is-loading { cursor:wait; }
.task-audit-panel { min-height:510px; padding:0; overflow:hidden; }
.task-audit-panel[hidden] { display:none; }
.task-audit-panel-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; padding:24px 28px 20px; border-bottom:1px solid #e3eaf4; }
.task-audit-panel-heading h2 { margin:3px 0 7px; color:#2f4362; font-size:20px; }
.task-audit-panel-heading p:last-child { max-width:760px; margin:0; color:#7a899e; font-size:11px; line-height:1.6; }
.task-audit-filter select { min-width:132px; padding:9px 32px 9px 11px; color:#405473; background-color:#fff; font-size:11px; }
.task-audit-filter select:disabled { color:#9aa8ba; background-color:#f5f7fa; cursor:wait; }
.task-audit-list { display:grid; padding:0 28px 24px; background:#fff; }
.task-audit-state { display:grid; min-height:180px; padding:24px; border:1px dashed #d6e1ef; border-radius:10px; color:#8090a6; background:#fff; text-align:center; line-height:1.7; place-content:center; }
.task-audit-state strong { color:#506582; font-size:13px; }
.task-audit-state p { margin:5px 0 0; font-size:11px; }
.task-audit-state button { justify-self:center; margin-top:12px; }
.task-audit-event { display:grid; grid-template-columns:160px 170px minmax(0,1fr); gap:20px; align-items:start; padding:20px 0; border-bottom:1px solid #e5ebf3; background:#fff; }
.task-audit-event:last-child { border-bottom:0; }
.task-audit-event-time { color:#536984; font-size:11px; font-variant-numeric:tabular-nums; line-height:1.65; }
.task-audit-event-actor { margin:0; color:#536984; font-size:11px; font-weight:650; line-height:1.65; }
.task-audit-event-content { min-width:0; }
.task-audit-event-content > strong { color:#314867; font-size:12px; }
.task-audit-event-meta { margin:6px 0 0; color:#71839e; font-size:10px; }
.task-audit-changes { display:grid; gap:7px; margin:11px 0 0; padding:0; list-style:none; }
.task-audit-change { display:grid; grid-template-columns:minmax(110px,.4fr) minmax(0,1.6fr); gap:11px; padding:8px 10px; border-radius:7px; background:#f6f9fd; }
.task-audit-change > strong { color:#526a8d; font-size:11px; }
.task-audit-change-values { display:flex; min-width:0; align-items:flex-start; gap:7px; color:#627691; font-size:11px; line-height:1.55; overflow-wrap:anywhere; }
.task-audit-change-values span { min-width:0; }
.task-audit-change-values i { flex:0 0 auto; color:#9aa7b8; font-style:normal; }

@media (max-width:980px) {
  .task-audit-event { grid-template-columns:135px 150px minmax(0,1fr); gap:12px; }
}

@media (max-width:620px) {
  .task-order-meta { align-items:flex-start; flex-direction:column; }
  .task-audit-panel { min-height:420px; }
  .task-audit-panel-heading { align-items:stretch; flex-direction:column; padding:17px; }
  .task-audit-filter select { width:100%; }
  .task-audit-list { padding:0 17px 18px; }
  .task-audit-event { grid-template-columns:1fr; gap:5px; padding:16px 0; }
  .task-audit-event-actor { margin-bottom:5px; }
  .task-audit-change { grid-template-columns:1fr; gap:5px; }
  .task-audit-change-values { flex-direction:column; gap:3px; }
  .task-audit-change-values i { transform:rotate(90deg); }
}

/* Brand asset library and quote-task brand snapshot */
.brand-admin-filter { display:grid; grid-template-columns:minmax(220px,1fr) 180px minmax(220px,1fr); gap:16px; align-items:end; margin-bottom:18px; padding:16px 18px; }
.brand-admin-filter label { font-size:11px; }
.brand-admin-filter input,.brand-admin-filter select { width:100%; }
.brand-admin-filter p { margin:0 0 8px; color:#75859b; font-size:11px; text-align:right; }
.brand-admin-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.brand-admin-state { grid-column:1/-1; display:grid; min-height:180px; gap:7px; padding:24px; color:#7d8ca1; text-align:center; place-content:center; }
.brand-admin-state strong { color:#526884; }
.brand-admin-state .button { justify-self:center; margin-top:8px; }
.brand-admin-card { overflow:hidden; }
.brand-admin-logo { display:grid; height:148px; padding:18px; border-bottom:1px solid var(--line); color:#8795a9; background:linear-gradient(145deg,#f6f8fc,#eef3fa); place-items:center; }
.brand-admin-logo img { display:block; width:100%; height:100%; object-fit:contain; }
.brand-admin-logo span { font-size:11px; }
.brand-admin-card-body { display:grid; gap:10px; padding:15px; }
.brand-admin-card-body > div { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.brand-admin-card-body h2 { min-width:0; margin:0; overflow:hidden; color:#314765; font-size:15px; text-overflow:ellipsis; white-space:nowrap; }
.brand-admin-card-body > div span { flex:0 0 auto; padding:4px 7px; border-radius:5px; font-size:10px; font-weight:700; }
.brand-admin-card-body p { margin:0; color:#7a8a9f; font-size:11px; }
.brand-admin-card-body .button { width:100%; }
.brand-dialog { width:min(760px,calc(100% - 30px)); max-width:760px; }
.brand-dialog form { display:grid; gap:16px; }
.brand-dialog-fields { display:grid; grid-template-columns:minmax(0,1fr) 220px; gap:16px; align-items:end; }
.brand-dialog-fields > label:first-child { font-size:12px; }
.brand-dialog-fields input[type="text"] { width:100%; }
.brand-dialog-fields .toggle-label { min-height:40px; padding:9px 11px; border:1px solid var(--line); border-radius:8px; }
.brand-dialog-section { display:grid; gap:10px; padding:14px; border:1px solid var(--line); border-radius:10px; background:#fbfcfe; }
.brand-dialog-section > div:first-child h3 { margin:0 0 4px; color:#354c6b; font-size:13px; }
.brand-dialog-section > div:first-child p { margin:0; color:#7b899d; font-size:10px; line-height:1.55; }
.brand-logo-current,.brand-asset-current { display:grid; gap:7px; }
.brand-asset-row { display:grid; grid-template-columns:46px minmax(0,1fr) auto auto; gap:9px; align-items:center; min-height:48px; padding:6px 8px; border:1px solid #e0e7f0; border-radius:8px; background:#fff; }
.brand-asset-row > img { display:block; width:46px; height:38px; border-radius:5px; object-fit:contain; background:#f3f5f8; }
.brand-asset-type { display:grid; width:40px; height:34px; border-radius:5px; color:#4f76b4; background:#edf4ff; font-size:9px; font-weight:800; place-items:center; }
.brand-asset-row > div { display:grid; min-width:0; gap:3px; }
.brand-asset-row strong { overflow:hidden; color:#465c79; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.brand-asset-row small { color:#8b99ac; font-size:9px; }
.brand-asset-row .text-button,.brand-asset-row .text-danger-button { font-size:10px; }
.brand-dialog-empty { margin:0; padding:12px; border:1px dashed #d7e1ee; border-radius:7px; color:#8594a8; background:#fff; font-size:10px; text-align:center; }
.brand-file-picker { display:flex; align-items:center; justify-content:space-between; gap:12px; color:#506786; font-size:11px; }
.brand-file-picker input { max-width:68%; padding:7px; font-size:10px; }
.brand-form-feedback { min-height:19px; margin:0; color:#607794; font-size:11px; line-height:1.6; }
.task-brand-snapshot { display:grid; grid-template-columns:64px minmax(160px,.34fr) minmax(0,1fr); gap:12px; align-items:center; margin-top:14px; padding:10px 12px; border:1px solid #dbe6f5; border-radius:9px; background:#f8fbff; }
.task-brand-snapshot > div:first-child:not(.task-brand-snapshot-copy) { grid-column:1/-1; display:flex; justify-content:space-between; gap:12px; }
.task-brand-snapshot > div:first-child:not(.task-brand-snapshot-copy) strong { color:#425b7b; font-size:11px; }
.task-brand-snapshot > div:first-child:not(.task-brand-snapshot-copy) span { color:#7e8ea4; font-size:10px; }
.task-brand-logo { display:grid; width:64px; height:48px; overflow:hidden; border:1px solid #dce5f1; border-radius:7px; background:#fff; place-items:center; }
.task-brand-logo img { display:block; width:100%; height:100%; object-fit:contain; }
.task-brand-logo.is-empty { color:#8b99ab; font-size:9px; }
.task-brand-snapshot-copy { display:grid; min-width:0; gap:4px; }
.task-brand-snapshot-copy strong { overflow:hidden; color:#364f70; font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
.task-brand-snapshot-copy span { color:#8090a5; font-size:9px; line-height:1.5; }
.task-brand-snapshot-assets { display:flex; min-width:0; overflow:auto; gap:7px; padding-bottom:2px; }
.task-brand-snapshot-assets a { display:flex; flex:0 0 auto; max-width:180px; align-items:center; gap:7px; padding:7px 9px; border:1px solid #dce6f3; border-radius:7px; color:#526a89; background:#fff; text-decoration:none; }
.task-brand-snapshot-assets a:hover { border-color:#9ebcf1; }
.task-brand-snapshot-assets a strong { max-width:125px; overflow:hidden; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.task-brand-snapshot-assets a span { color:#2f6fed; font-size:9px; }
.task-brand-assets-empty { color:#8b99ab; font-size:10px; }

@media (max-width:1100px) {
  .brand-admin-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .task-brand-snapshot { grid-template-columns:64px minmax(0,1fr); }
  .task-brand-snapshot-assets { grid-column:1/-1; }
}

@media (max-width:760px) {
  .brand-admin-filter { grid-template-columns:1fr 1fr; }
  .brand-admin-filter p { grid-column:1/-1; text-align:left; }
  .brand-dialog-fields { grid-template-columns:1fr; }
  .brand-asset-row { grid-template-columns:40px minmax(0,1fr) auto; }
  .brand-asset-row .text-danger-button { grid-column:3; }
}

@media (max-width:520px) {
  .brand-admin-grid,.brand-admin-filter { grid-template-columns:1fr; }
  .brand-admin-filter p { grid-column:auto; }
  .brand-file-picker { align-items:flex-start; flex-direction:column; }
  .brand-file-picker input { width:100%; max-width:none; }
  .task-brand-snapshot { grid-template-columns:52px minmax(0,1fr); }
  .task-brand-logo { width:52px; height:44px; }
}
