.sidebar { overflow-y: auto; }
.submodule-nav { display: grid; gap: 2px; margin: -2px 0 7px 32px; padding-left: 9px; border-left: 1px solid #465650; }
.test-module-hidden { display: none !important; }
.submodule-nav[hidden] { display: none; }
.submodule-nav button { min-height: 36px; display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 7px 8px; color: #a9bbb6; text-align: left; border: 0; border-radius: 3px; background: transparent; font-size: 12px; line-height: 1.35; }
.submodule-nav button:hover, .submodule-nav button.active { color: white; background: #30413c; }
.submodule-nav button b { min-width: 20px; height: 20px; display: grid; place-items: center; padding: 0 6px; color: white; background: #d63d3d; border-radius: 999px; font-size: 10px; line-height: 1; }
.submodule-nav button b[hidden] { display: none; }
.main-panel.business-mode > :not(#businessWorkspace) { display: none !important; }
.business-workspace { min-height: 100vh; padding-bottom: 44px; }
.business-workspace[hidden] { display: none; }
.auth-booting > .app-shell { visibility:hidden; }
.auth-login-active > .app-shell { visibility:hidden; }
.auth-boot-screen { position:fixed; inset:0; z-index:200; display:grid; place-items:center; padding:20px; background:#18231f; }
.auth-boot-card { display:grid; justify-items:center; gap:9px; color:#eaf5f1; text-align:center; }
.auth-boot-mark { width:42px; height:42px; display:grid; place-items:center; color:#14342d; background:#8bc7b8; border-radius:9px; font:700 20px/1 Georgia,serif; }
.auth-boot-card strong { font-size:18px; }
.auth-boot-card > span:last-child { color:#a9bbb6; font-size:11px; }
.business-topbar { min-height: 86px; display: flex; align-items: center; justify-content: space-between; gap: 20px; border-bottom: 1px solid var(--line); }
.business-topbar p { margin: 0 0 6px; color: var(--muted); font-size: 10px; }
.business-topbar h1 { margin: 0; font-size: 21px; }
.presence-strip { flex: none; min-width: 150px; color: #0b6b5e; font-size: 11px; }
.presence-strip details { position: relative; }
.presence-strip summary { padding: 7px 10px; border: 1px solid #a8d2c7; border-radius: 4px; background: #f2fbf8; cursor: pointer; font-weight: 800; list-style: none; white-space: nowrap; }
.presence-strip summary::-webkit-details-marker { display: none; }
.presence-strip summary::after { content: " ▾"; color: #6c8f86; }
.presence-strip details[open] summary::after { content: " ▴"; }
.presence-strip ul { position: absolute; z-index: 8; top: calc(100% + 5px); right: 0; width: min(260px, 75vw); max-height: 240px; overflow: auto; margin: 0; padding: 6px; border: 1px solid #a8d2c7; border-radius: 4px; background: #fff; box-shadow: 0 8px 20px rgba(18,53,45,.14); list-style: none; }
.presence-strip li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 6px 7px; border-bottom: 1px solid #edf3f1; }
.presence-strip li:last-child { border-bottom: 0; }
.presence-strip li strong { color: var(--ink); }
.presence-strip li span { color: var(--muted); font-size: 10px; }
.presence-strip .presence-empty { justify-content: center; color: var(--muted); }
.user-session { display: flex; align-items: center; gap: 8px; }
.user-session span { color: var(--muted); font-size: 10px; }
.business-product-bar { position: sticky; top: 0; z-index: 8; display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 15px 0; padding: 12px 16px; color: white; background: #263c36; border-radius: 5px; box-shadow: 0 4px 12px #17201e16; }
.business-product-bar span { color: #a9beb8; font-size: 9px; }
.business-product-bar strong { display: block; margin-top: 3px; font-size: 14px; }
.business-product-bar b { color: #9cd2c5; font-size: 10px; }
.product-vs-bar { align-items: center; min-height: 58px; }
.product-vs-main { min-width: 0; }
.product-vs-main strong { font-size: 18px; line-height: 1.35; overflow-wrap: anywhere; }
.product-vs-main em { margin: 0 10px; color: #d9fff6; font-style: normal; font-weight: 900; }
.product-vs-main small { color: #9cd2c5; font-size: 13px; }
.product-vs-bar .business-product-actions > span { display: block; max-width: 320px; color: #bed0ca; text-align: right; line-height: 1.45; }
.business-product-actions { display: flex; align-items: center; gap: 14px; text-align: right; }
.business-product-actions .button { min-height: 30px; color: var(--ink); background: white; }
.business-product-actions .button.primary { color: white; background: var(--teal); border-color: var(--teal); }
.business-panel { background: white; border: 1px solid var(--line); border-radius: var(--radius); }
.business-panel-head { display: flex; justify-content: space-between; gap: 20px; padding: 18px 20px; border-bottom: 1px solid var(--line); }
.business-panel-head h2 { margin: 5px 0 0; font-size: 17px; }
.business-panel-head p { max-width: 600px; margin: 4px 0 0; color: var(--muted); font-size: 10px; line-height: 1.6; }
.violation-page { overflow: hidden; background: #f7faf9; border-color: #d7e4df; box-shadow: 0 10px 28px rgba(24, 61, 52, .06); }
.main-panel.business-mode #businessWorkspace { display: block; width: 100%; max-width: none; margin: 0; }
.main-panel.business-mode #businessWorkspace .business-topbar { padding: 0 8px; }
.main-panel.business-mode #businessWorkspace .business-panel { margin-top: 22px; }
.violation-page .business-panel-head { align-items: center; padding: 26px 30px 24px; background: linear-gradient(120deg, #f7fcfa 0%, #eef8f4 100%); border-bottom-color: #d7e7e1; }
.violation-page .business-panel-head h2 { color: #173b32; font-size: 22px; letter-spacing: -.02em; }
.violation-page .business-panel-head p { max-width: 760px; margin-top: 8px; font-size: 12px; }
.violation-page .section-label { letter-spacing: .08em; }
.violation-page .violation-kpis { min-width: 150px; padding: 12px 0 12px 26px; border-left: 1px solid #cfe0d9; }
.violation-page .violation-kpis b { color: #0b7865; font-size: 36px; font-weight: 750; }
.violation-page .violation-kpis span { color: #58746b; font-size: 11px; }
.violation-page .violation-filters { margin: 20px 24px 0; padding: 18px; grid-template-columns: repeat(5, minmax(130px, 1fr)); gap: 14px; background: white; border-color: #d8e5e0; box-shadow: 0 2px 8px rgba(20, 62, 51, .04); }
.violation-page .violation-filters label { color: #557069; font-size: 11px; font-weight: 700; }
.violation-page .violation-filters input, .violation-page .violation-filters select { height: 40px; margin-top: 7px; border-color: #c8d9d3; border-radius: 6px; font-size: 12px; }
.violation-page .violation-filters button { min-width: 78px; height: 40px; align-self: end; }
.violation-page .violation-report-grid { margin: 20px 24px 0; gap: 16px; }
.violation-page .violation-report-grid article { min-height: 246px; padding: 20px; border-color: #d8e5e0; box-shadow: 0 2px 8px rgba(20, 62, 51, .035); }
.violation-page .violation-report-grid article.wide { min-height: 270px; }
.violation-page .violation-report-grid article header { padding-bottom: 14px; border-bottom: 1px solid #edf2f0; }
.violation-page .violation-report-grid header strong { color: #1e3932; font-size: 15px; }
.violation-page .violation-report-grid header small { color: #81958e; font-size: 11px; }
.violation-page .violation-detail { margin: 20px 24px 24px; border-color: #d8e5e0; box-shadow: 0 2px 8px rgba(20, 62, 51, .035); }
.violation-page .violation-detail header { padding: 17px 20px; background: #fbfdfc; }
.violation-page .violation-detail header strong { font-size: 15px; }
.violation-page .violation-detail table { min-width: 1160px; }
.violation-page .violation-detail th { color: #557069; background: #f0f6f3; font-size: 11px; }
.violation-page .violation-detail td { height: 48px; font-size: 11px; }
.violation-page .violation-detail tbody tr:hover { background: #f4faf7; }
.violation-page .violation-empty { padding: 46px 20px; color: #81958e; font-size: 12px; }
.module-requirements { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border-bottom: 1px solid var(--line); background: #f7faf9; }
.module-requirements > div { min-width: 0; padding: 13px 16px; border-right: 1px solid var(--line); }
.module-requirements > div:last-child { border-right: 0; }
.module-requirements span { color: var(--teal-dark); font-size: 9px; font-weight: 800; }
.module-requirements p { margin: 5px 0 0; color: var(--muted); font-size: 9px; line-height: 1.6; }
.benchmark-picker { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; padding: 16px 20px; }
.benchmark-source-switch { display: inline-flex; gap: 8px; margin: 15px 20px 0; padding: 5px; background: #edf2f0; border-radius: 4px; }
.benchmark-source-switch button { min-height: 42px; padding: 0 24px; color: #4f5f58; background: white; border: 1px solid #d1ded9; border-radius: 3px; font-size: 13px; font-weight: 800; }
.benchmark-source-switch button.active { color: white; background: var(--teal); border-color: var(--teal); box-shadow: 0 2px 6px #0d7f6c24; }
.benchmark-selection-panel { padding-bottom: 20px; }
.selection-block { margin: 16px 20px 0; overflow: hidden; border: 2px solid var(--teal); border-radius: 6px; background: white; box-shadow: 0 1px 0 #137c6b18; }
.selection-block-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 14px 16px; border-bottom: 2px solid #b7d9d1; background: #f2f9f7; }
.selection-block-head h3 { margin: 0; color: var(--teal-dark); font-size: 17px; line-height: 1.3; }
.selection-block-head p { margin: 6px 0 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.selection-block-head > b { flex: 0 0 auto; padding: 5px 10px; color: white; background: var(--teal); border-radius: 999px; font-size: 11px; }
.draft-summary-actions { display: flex; align-items: center; gap: 10px; flex: 0 0 auto; }
.draft-summary-actions > b { padding: 5px 10px; color: white; background: var(--teal); border-radius: 999px; font-size: 11px; white-space: nowrap; }
.draft-summary-actions .small-command { height: 30px; padding: 0 12px; font-size: 11px; font-weight: 700; }
.draft-summary-actions .small-command.primary { color: white; background: var(--teal); border-color: var(--teal); }
.source-single-note { display:flex; align-items:center; gap:10px; margin:10px 20px 0; padding:10px 12px; color:var(--muted); background:#f5f8f7; border-left:3px solid var(--teal); font-size:10px; line-height:1.55; }
.source-single-note strong { flex:0 0 auto; color:var(--ink); }
.selected-project-summary { margin: 12px 20px 0; border: 1px solid var(--line); background: white; }
.selected-project-head { display: flex; justify-content: space-between; gap: 12px; padding: 11px 12px; border-bottom: 1px solid var(--line); }
.selected-project-head strong,.selected-project-head span { display: block; }
.selected-project-head strong { font-size: 12px; }
.selected-project-head span { margin-top: 3px; color: var(--muted); font-size: 9px; }
.selected-project-list { display: grid; grid-template-columns: repeat(auto-fill,minmax(220px,1fr)); gap: 8px; max-height: 250px; overflow: auto; padding: 10px; background: #fbfcfc; }
.selected-project-card { min-width: 0; display: grid; gap: 3px; padding: 10px; text-align: left; border: 1px solid var(--line); border-radius: 4px; background: white; }
.selected-project-card.active { border-color: var(--teal); background: var(--teal-soft); box-shadow: inset 3px 0 0 var(--teal); }
.selected-project-card.locked { background: #f6f7f7; }
.selected-project-card span { color: var(--teal-dark); font-size: 8px; font-weight: 800; }
.selected-project-card strong,.selected-project-card small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.selected-project-card strong { font-size: 11px; }
.selected-project-card small { color: var(--muted); font-size: 8px; }
.selected-project-card em { justify-self: start; margin-top: 3px; padding: 2px 6px; color: #4f5f58; background: #edf2f0; border-radius: 3px; font-size: 8px; font-style: normal; font-weight: 800; }
.selected-project-card.active em { color: white; background: var(--teal); }
.draft-submission-summary { border-top: 0; border-bottom: 1px solid var(--line); background: #fbfcfc; }
.draft-submission-summary .selected-project-head { align-items: center; }
.draft-submission-summary .selected-project-head small { display: block; margin-top: 3px; color: var(--muted); font-size: 9px; line-height: 1.45; }
.draft-submission-summary .selected-project-head > b { flex: 0 0 auto; padding: 4px 8px; color: white; background: var(--teal); border-radius: 999px; font-size: 10px; }
.draft-submission-summary .selected-project-list { grid-template-columns: repeat(auto-fill,minmax(280px,1fr)); background: #f5f5fa; }
.draft-submission-summary .selected-project-card { grid-template-columns: minmax(0,1fr); align-items: stretch; gap: 9px; border-color: #d2d2de; background: #f0f0f5; cursor: pointer; }
.draft-submission-summary .selected-project-card > div { min-width: 0; }
.draft-submission-summary .selected-project-card span { color: #6b7280; font-size: 10px; }
.draft-submission-summary .selected-project-card strong { display: block; max-width: 100%; color: #111827; font-size: 12px; }
.draft-submission-summary .selected-project-card small { color: #4b5563; font-size: 10px; }
.draft-submission-summary .selected-project-card em { color: #4b5563; background: #e5e7eb; font-size: 9px; }
.draft-submission-summary .selected-project-card:hover { border-color: #b9bdd0; background: #f8f8fb; }
.draft-submission-summary .selected-project-card.active { border-color: #7c3aed; background: #f3e8ff; box-shadow: inset 4px 0 0 #7c3aed, 0 0 0 1px rgba(124,58,237,.12); }
.draft-submission-summary .selected-project-card.active span { color: #7c3aed; }
.draft-submission-summary .selected-project-card.active strong { color: #4c1d95; }
.draft-submission-summary .selected-project-card.active small { color: #5b21b6; }
.draft-submission-summary .selected-project-card.active em { color: white; background: #7c3aed; }
.draft-submission-summary .selected-project-card footer { display: flex; justify-content: flex-end; gap: 6px; min-width: 0; }
.draft-submission-summary .selected-project-card footer .small-command { min-height: 30px; white-space: nowrap; }
.manual-benchmark-form .selection-block { grid-column: 1 / -1; margin: 16px 20px 0; }
.benchmark-source-pane[hidden] { display: none; }
.manual-benchmark-form { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; padding: 0; }
.manual-benchmark-fields { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; padding: 16px; }
.manual-auto-hint { grid-column: 1 / -1; padding: 9px 11px; color: var(--teal-dark); background: #eef8f5; border: 1px solid #a9d8cc; border-radius: 4px; font-size: 12px; line-height: 1.45; }
.manual-benchmark-form label { color: var(--muted); font-size: 9px; }
.manual-benchmark-form input { margin-top: 5px; }
.manual-benchmark-form select { margin-top:5px; }
.selection-block .selection-product-name { margin: 0; padding: 14px 16px 16px; border-top: 2px solid #b7d9d1; background: #fbfcfc; }
.selection-block .selection-product-name label { font-size: 11px; }
.selection-block .selection-product-name input { height: 42px; }
.benchmark-extra-fields { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.benchmark-extra-fields label { display: grid; gap: 6px; color: var(--muted); font-size: 11px; }
.benchmark-extra-fields .form-input { width: 100%; height: 38px; }
.benchmark-meta-only { padding: 14px 16px 16px; border-top: 2px solid #b7d9d1; background: #fbfcfc; }
.manual-benchmark-image { grid-column:1 / -1; display:grid; grid-template-columns:minmax(150px,1fr) 150px auto; align-items:center; gap:12px; margin-top:4px; padding-top:12px; border-top:1px solid var(--line); }
.manual-benchmark-image > div:first-child span,.manual-benchmark-image > div:first-child small { display:block; }
.manual-benchmark-image > div:first-child span { color:var(--ink); font-size:10px; font-weight:800; }
.manual-benchmark-image > div:first-child small { margin-top:4px; color:var(--muted); font-size:9px; line-height:1.4; }
.manual-benchmark-image-preview { height:82px; display:grid; place-items:center; overflow:hidden; border:1px dashed var(--line-strong); background:#f5f8f7; color:var(--muted); font-size:9px; }
.manual-benchmark-image-preview img { width:100%; height:100%; object-fit:contain; }
.manual-benchmark-image-actions { display:flex; align-items:center; gap:7px; }
.manual-saved-projects { margin: 0 20px 16px; border: 1px solid var(--line); background: #fbfcfc; }
.manual-saved-head { display: flex; justify-content: space-between; gap: 12px; padding: 10px 12px; border-bottom: 1px solid var(--line); }
.manual-saved-head strong { font-size: 10px; }
.manual-saved-head span { color: var(--muted); font-size: 9px; }
.manual-saved-list article { display: grid; grid-template-columns: minmax(0,1fr) auto auto; align-items: center; gap: 8px; padding: 10px 12px; border-bottom: 1px solid var(--line); }
.manual-saved-list article:last-child { border-bottom: 0; }
.manual-saved-list article.active { background: var(--teal-soft); }
.manual-saved-list article div { min-width: 0; }
.manual-saved-list article strong,.manual-saved-list article span,.manual-saved-list article small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.manual-saved-list article strong { font-size: 10px; }
.manual-saved-list article span,.manual-saved-list article small { margin-top: 3px; color: var(--muted); font-size: 8px; }
.creative-evaluation table { min-width:980px; }
.creative-evaluation th:nth-child(2),.creative-evaluation th:nth-child(3) { min-width:270px; }
.creative-evaluation th:nth-child(4) { min-width:270px; }
.benchmark-card { display: grid; grid-template-columns: 18px 48px minmax(0,1fr) auto; align-items: center; gap: 10px; min-height: 76px; padding: 10px; border: 1px solid var(--line); border-radius: 5px; cursor: pointer; }
.benchmark-card.selected { background: var(--teal-soft); border-color: #8dc5b7; }
.benchmark-card input { accent-color: var(--teal); }
.benchmark-card img { width: 48px; height: 48px; object-fit: cover; border-radius: 3px; }
.benchmark-card strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; }
.benchmark-card span { display: block; margin-top: 5px; color: var(--muted); font-size: 9px; }
.benchmark-card .benchmark-delete { align-self: center; }
.page-image-import { padding: 18px 20px; border-top: 1px solid var(--line); background: #fbfcfc; }
.selection-block.page-image-import { padding: 0; border: 2px solid var(--teal); background: white; }
.page-image-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.page-image-head h3 { margin: 4px 0 0; font-size: 15px; }
.page-image-head p { margin: 5px 0 0; color: var(--muted); font-size: 10px; line-height: 1.6; }
.page-image-head > span { color: var(--teal-dark); font-size: 10px; font-weight: 700; }
.page-image-drop { min-height: 118px; display: grid; place-items: center; align-content: center; gap: 6px; margin-top: 13px; padding: 16px; text-align: center; border: 1px dashed #86b9ad; border-radius: 5px; background: #f1f8f6; outline: 0; }
.page-image-drop:focus, .page-image-drop.dragging { border-color: var(--teal); background: #e5f4f0; box-shadow: 0 0 0 3px #137c6b18; }
.page-image-drop strong { font-size: 13px; }
.page-image-drop span { color: var(--muted); font-size: 10px; }
.page-image-drop .button { margin-top: 5px; min-height: 32px; }
.page-image-previews { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 8px; margin-top: 10px; }
.page-image-previews:empty { display: none; }
.page-image-previews figure { min-width: 0; margin: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 4px; background: white; }
.page-image-previews img { width: 100%; aspect-ratio: 4 / 3; display: block; object-fit: contain; background: #f1f4f3; }
.page-image-previews figcaption { min-height: 31px; display: grid; grid-template-columns: minmax(0,1fr) 26px; align-items: center; gap: 4px; padding: 3px 3px 3px 7px; }
.page-image-previews figcaption span { overflow: hidden; color: var(--muted); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.page-image-previews figcaption button { width: 26px; height: 26px; color: var(--danger); border: 0; background: transparent; font-size: 16px; }
.structured-page-images { display: grid; gap: 18px; }
.structured-page-images .main-image-grid { padding: 16px; }
.structured-page-images .main-copy-suggestions { margin: 0 16px; }
.structured-page-images .page-ai-result { margin: 0 16px 16px; }
.structured-page-images > .review-subsection { border-color: #0f806c; }
.image-section-title { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 10px; }
.structured-page-images .image-section-title { margin: 0 16px -8px; }
.image-section-title > div { display: grid; gap: 3px; }
.image-section-title strong { font-size: 14px; }
.image-section-title span { color: var(--muted); font-size: 10px; }
.main-image-section,.detail-image-section { padding-top: 16px; border-top: 1px solid var(--line); }
.main-image-grid { display: grid; grid-template-columns: repeat(5,minmax(120px,1fr)); gap: 10px; }
.main-image-slot { min-width: 0; padding: 8px; border: 1px solid var(--line); border-radius: 5px; background: white; outline: 0; }
.main-image-slot:focus,.main-image-slot.dragging { border-color: var(--teal); box-shadow: 0 0 0 3px #137c6b18; }
.main-image-preview { position: relative; height: 138px; display: grid; place-items: center; align-content: center; gap: 5px; overflow: hidden; border: 1px dashed #8dbdb2; background: #f2f8f6; text-align: center; }
.main-image-preview strong { font-size: 12px; }
.main-image-preview span { padding: 0 8px; color: var(--muted); font-size: 9px; }
.main-image-preview img { width: 100%; height: 100%; display: block; object-fit: contain; background: #f3f5f4; }
.main-image-preview button { position: absolute; top: 5px; right: 5px; width: 27px; height: 27px; border: 1px solid #efd4ce; border-radius: 3px; background: #fff; color: var(--danger); font-size: 16px; }
.main-image-preview .main-image-zoom { position: static; width: 100%; height: 100%; display: block; padding: 0; border: 0; border-radius: 0; background: transparent; color: var(--teal-dark); cursor: zoom-in; }
.main-image-preview .main-image-zoom span { position: absolute; right: 6px; bottom: 6px; padding: 3px 6px; color: white; background: rgba(18, 71, 61, .78); border-radius: 3px; font-weight: 700; }
.main-image-preview .main-image-zoom + button { z-index: 2; }
.main-image-slot > .small-command { width: 100%; margin: 7px 0 0; }
.main-image-slot > label { display: grid; gap: 4px; color: var(--muted); font-size: 9px; }
.main-image-slot textarea { min-height: 66px; resize: vertical; font-size: 11px; line-height: 1.5; }
.image-preview-overlay { position: fixed; inset: 0; z-index: 1200; display: grid; place-items: center; padding: 32px; background: rgba(9, 24, 21, .72); }
.image-preview-overlay[hidden] { display: none; }
.image-preview-dialog { width: min(92vw, 980px); max-height: 92vh; display: grid; grid-template-rows: auto minmax(0,1fr); overflow: hidden; border-radius: 6px; background: white; box-shadow: 0 24px 70px rgba(0,0,0,.28); }
.image-preview-dialog header { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 14px; border-bottom: 1px solid var(--line); }
.image-preview-dialog header strong { font-size: 14px; }
.image-preview-dialog header button { width: 32px; height: 30px; border: 1px solid var(--line); border-radius: 4px; background: white; color: var(--ink); font-size: 18px; }
.image-preview-dialog img { width: 100%; max-height: calc(92vh - 58px); display: block; object-fit: contain; background: #f4f6f5; }
.detail-image-drop { min-height: 104px; }
.main-copy-suggestions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin-top: 10px; }
.main-copy-suggestions:empty { display: none; }
.main-copy-suggestions article { padding: 10px 12px; border-left: 3px solid #d49a2d; background: #fff8e8; }
.main-copy-suggestions article.ready { border-left-color: var(--teal); background: #edf8f5; }
.main-copy-suggestions header { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.main-copy-suggestions header strong { font-size: 11px; }
.main-copy-suggestions header span { color: var(--muted); font-size: 9px; text-align: right; }
.main-copy-suggestions ul { margin: 7px 0 0; padding-left: 18px; color: #8c5d12; font-size: 9px; line-height: 1.6; }
.main-copy-suggestions p { margin: 7px 0 0; color: var(--teal-dark); font-size: 9px; }
.research-archive-note { display:flex; align-items:center; gap:10px; padding:10px 12px; border-left:3px solid var(--teal); background:#f1f8f6; }
.research-archive-note strong { color:var(--teal-dark); font-size:10px; }
.research-archive-note span { color:var(--muted); font-size:9px; }
.benchmark-research-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; padding-top:16px; border-top:1px solid var(--line); }
.benchmark-source-card { min-width:0; display:grid; gap:8px; padding:11px; border:1px solid var(--line); border-radius:5px; background:white; }
.benchmark-source-card.dragging { border-color:var(--teal); background:#f1f8f6; box-shadow:0 0 0 3px #137c6b18; }
.benchmark-source-card-head { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.benchmark-source-card-head strong,.benchmark-source-card-head span { display:block; }
.benchmark-source-card-head strong { font-size:12px; }
.benchmark-source-card-head span { margin-top:4px; color:var(--muted); font-size:9px; line-height:1.45; }
.benchmark-source-actions { flex:0 0 auto; display:flex; align-items:center; gap:6px; }
.benchmark-source-textarea { min-height:150px; resize:vertical; }
.research-drop-hint { padding:8px 9px; color:var(--muted); border:1px dashed var(--line-strong); border-radius:4px; background:#fbfcfc; font-size:9px; }
.research-image-list { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; min-height:96px; }
.research-image-list figure { min-width:0; margin:0; overflow:hidden; border:1px solid var(--line); border-radius:4px; background:#f7faf9; }
.research-image-list img { width:100%; aspect-ratio:1 / 1; display:block; object-fit:contain; background:#eef3f1; }
.research-image-list figcaption { display:grid; grid-template-columns:minmax(0,1fr) 22px; align-items:center; gap:3px; padding:3px 3px 3px 6px; }
.research-image-list span { overflow:hidden; color:var(--muted); font-size:8px; text-overflow:ellipsis; white-space:nowrap; }
.research-image-list figcaption button { width:22px; height:22px; color:var(--danger); border:0; background:transparent; font-size:14px; }
.research-image-empty { grid-column:1 / -1; padding:8px 9px; color:var(--muted); background:#f5f8f7; border:1px dashed var(--line-strong); border-radius:4px; font-size:9px; }
.page-ai-result { position: relative; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 16px; margin-top: 12px; padding: 12px 13px 16px; overflow: hidden; border: 2px solid #96c9bc; border-radius: 5px; background: #f5fbf9; }
.page-ai-result.ready { border-color: var(--teal); background: #f1f8f6; }
.page-ai-result.running { border-color: #3b82f6; background: #eff6ff; }
.page-ai-result.error { border-color: #ef4444; background: #fff5f5; }
.page-ai-result span { display: block; font-size: 11px; font-weight: 700; }
.page-ai-result p { margin: 5px 0 0; color: var(--ink); font-size: 10px; line-height: 1.55; }
.page-ai-result small { display: block; margin-top: 4px; color: #9a6c13; font-size: 9px; line-height: 1.5; }
.page-ai-result .page-ai-error-detail { max-width: 780px; color: #9a4b1d; }
.page-ai-result .button { min-height: 36px; white-space: nowrap; }
.page-ai-actions { display:flex; align-items:center; gap:8px; }
.page-ai-result .ai-setup-command { margin-top: 8px; }
.page-ai-progress { position: absolute; inset: auto 0 0; height: 4px; background: #e7eeec; }
.page-ai-progress i { width: 0; height: 100%; display: block; background: var(--teal); transition: width .25s ease; }
.page-ai-result.running .page-ai-progress i { background: #3b82f6; }
.page-ai-result.error .page-ai-progress i { background: #ef4444; }
.product-name-entry { display: flex; align-items: flex-end; gap: 12px; padding: 15px 20px 20px; border-top: 1px solid var(--line); }
.product-name-entry label { flex: 1; color: var(--muted); font-size: 10px; }
.product-name-entry input, .form-input, .form-select, .form-textarea { width: 100%; color: var(--ink); background: white; border: 1px solid var(--line-strong); border-radius: 4px; outline: 0; }
.product-name-entry input { height: 38px; display: block; margin-top: 5px; padding: 0 10px; }
.selection-feedback { max-width: 320px; min-height: 34px; display: none; align-items: center; padding: 8px 10px; border-radius: 4px; font-size: 10px; font-weight: 700; line-height: 1.35; }
.selection-feedback.error { display: flex; color: var(--danger); background: #f8e7e4; border: 1px solid #dfb7b1; }
.selection-feedback.ready { display: flex; color: var(--teal-dark); background: #e7f4f0; border: 1px solid #9bc9bd; }
.product-name-first { background: #f8faf9; }
.intake-overview { border-top: 1px solid var(--line); }
.intake-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 22px; padding: 20px; }
.intake-heading h3, .excel-score-head h3 { margin: 4px 0 0; font-size: 16px; }
.intake-heading p, .excel-score-head p { max-width: 700px; margin: 5px 0 0; color: var(--muted); font-size: 10px; line-height: 1.65; }
.intake-summary { min-width: 180px; padding-left: 18px; border-left: 1px solid var(--line); }
.intake-summary span, .intake-summary small { display: block; color: var(--muted); font-size: 9px; }
.intake-summary strong { display: block; margin: 4px 0; color: var(--teal); font-size: 25px; }
.intake-table { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); overflow-x: auto; }
.intake-row { min-width: 980px; display: grid; grid-template-columns: 130px minmax(250px,1.15fr) minmax(250px,1.15fr) 160px 64px; gap: 12px; align-items: center; min-height: 58px; padding: 8px 20px; border-top: 1px solid #e8edeb; font-size: 10px; }
.intake-row:first-child { border-top: 0; }
.intake-row:nth-child(odd):not(.intake-header) { background: #fbfcfc; }
.intake-row > span { color: var(--muted); line-height: 1.55; }
.intake-row > b { color: var(--teal-dark); font-size: 10px; }
.intake-row > i, .score-structure-row > i { color: var(--muted); text-align: center; font-style: normal; }
.intake-header { min-height: 36px; color: #61716c; background: #f0f4f3; font-size: 9px; font-weight: 700; }
.excel-score { padding: 20px; background: #f7faf9; }
.excel-score-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.score-structure { margin-top: 13px; border: 1px solid var(--line); background: white; }
.score-structure-row { display: grid; grid-template-columns: minmax(160px,1fr) 60px 72px minmax(280px,1.7fr) 58px; gap: 10px; align-items: center; min-height: 48px; padding: 7px 12px; border-top: 1px solid #e8edeb; font-size: 10px; }
.score-structure-row:first-child { border-top: 0; }
.score-structure-row > b { text-align: right; color: var(--muted); }
.score-structure-row > strong { text-align: right; color: var(--teal); }
.score-structure-row > small { color: var(--muted); line-height: 1.5; }
.form-input, .form-select { height: 33px; padding: 0 8px; font-size: 10px; }
.unit-input { position: relative; display: block; }
.unit-input > .form-input { padding-right: 52px; }
.unit-input > span { position: absolute; right: 30px; top: 50%; color: var(--muted); font-size: 10px; transform: translateY(-50%); pointer-events: none; }
.derived-value small { display:block; margin-top:5px; color:var(--muted); font-size:9px; line-height:1.4; }
.form-textarea { min-height: 62px; padding: 8px; resize: vertical; font-size: 10px; line-height: 1.5; }
.field-market-evidence-benchmark { min-height: 220px; font-size: 12px; line-height: 1.65; }
.field-market-evidence-benchmark.ai-missing-input,.field-market-coreIngredient-benchmark.ai-missing-input { border-color: #b7d9d1; background: #fff; }
.market-evidence-field { display: grid; gap: 9px; }
.market-core-ingredient { display: grid; grid-template-columns: 118px minmax(0,1fr); align-items: center; gap: 10px; padding: 9px 10px; border: 1px solid #b7d9d1; border-radius: 5px; background: #f3faf8; }
.market-core-ingredient-only { grid-template-columns: 170px minmax(0,1fr); }
.market-core-ingredient span { color: #0b5f53; font-size: 12px; font-weight: 700; }
.market-core-ingredient .form-input { height: 36px; font-size: 13px; }
.market-rating-control small { display: block; margin-top: 5px; color: var(--muted); font-size: 9px; line-height: 1.4; }
.row-help-button { display: inline-flex; align-items: center; margin-top: 7px; padding: 3px 8px; border: 1px solid #9ccbc0; border-radius: 4px; color: #0b6b5e; background: #f4fbf9; font-size: 9px; font-weight: 800; cursor: pointer; }
.expense-formula-note { margin-top: 7px; }
.expense-formula-note summary { width: fit-content; display: inline-flex; align-items: center; padding: 3px 8px; color: #0b6b5e; border: 1px solid #9ccbc0; border-radius: 4px; background: #f4fbf9; cursor: pointer; font-size: 9px; font-weight: 800; list-style: none; }
.expense-formula-note summary::-webkit-details-marker { display: none; }
.expense-formula-note span { display: block; margin-top: 7px; padding: 7px 8px; color: #526b64; border-left: 3px solid #d59a27; background: #fff8e8; font-size: 9px; font-weight: 500; line-height: 1.55; }
.info-dialog { position: fixed; inset: 0; z-index: 120; display: grid; place-items: center; padding: 20px; background: rgba(16,25,21,.38); }
.info-dialog-card { width: min(92vw, 560px); overflow: hidden; border-radius: 6px; background: white; border: 1px solid #b7d9d1; box-shadow: 0 20px 60px rgba(0,0,0,.2); }
.info-dialog-card header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 15px; border-bottom: 1px solid #d8e8e4; background: #f4fbf9; }
.info-dialog-card header strong { color: var(--teal-dark); font-size: 13px; }
.info-dialog-card header button { width: 30px; height: 28px; border: 1px solid #b7d9d1; border-radius: 4px; background: white; color: var(--ink); font-size: 17px; cursor: pointer; }
.info-dialog-card p { margin: 0; padding: 16px; color: var(--ink); font-size: 12px; line-height: 1.8; white-space: pre-wrap; }
.benchmark-ingredient-source { margin: 0 16px; padding: 0; border: 1px solid #b7d9d1; border-radius: 5px; background: #fbfefd; }
.benchmark-ingredient-source .review-subsection-head { border-bottom: 1px solid #d8e8e4; }
.ingredient-source-layout { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 12px; padding: 14px; }
.ingredient-source-pane { min-width: 0; display: grid; gap: 10px; align-content: start; padding: 12px; border: 2px solid #137c6b; border-radius: 5px; background: #fff; }
.ingredient-source-pane.dragging { background: #eef9f6; box-shadow: 0 0 0 3px #137c6b18; }
.ingredient-pane-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding-bottom: 8px; border-bottom: 1px solid #d8e8e4; }
.ingredient-pane-head strong { color: #0b5f53; font-size: 13px; }
.ingredient-pane-head span { color: var(--muted); font-size: 10px; line-height: 1.45; text-align: right; }
.benchmark-ingredient-textarea,.ingredient-effect-textarea { min-height: 156px; font-size: 12px; line-height: 1.65; }
.ingredient-effect-textarea { min-height: 190px; background: #f7fbfa; }
.ingredient-effect-preview { display: grid; gap: 10px; }
.ingredient-effect-empty { padding: 14px; border: 1px dashed #a7cfc6; border-radius: 5px; background: #f6fbfa; color: #5f756f; font-size: 13px; line-height: 1.6; }
.ingredient-effect-editor { border: 1px solid #d7e5e1; border-radius: 5px; background: #fbfefd; }
.ingredient-effect-editor summary { cursor: pointer; padding: 8px 10px; color: #4c6a63; font-size: 11px; font-weight: 800; }
.ingredient-effect-editor .ingredient-effect-textarea { border: 0; border-top: 1px solid #d8e8e4; border-radius: 0 0 5px 5px; }
.ingredient-preview-block { padding: 12px 14px; border: 1px solid #cddfdb; border-left-width: 5px; border-radius: 5px; background: #fff; }
.ingredient-preview-block strong { display: block; margin-bottom: 8px; font-size: 14px; }
.ingredient-preview-block ol { margin: 0; padding-left: 20px; display: grid; gap: 6px; }
.ingredient-preview-block li,.ingredient-preview-block p { margin: 0; color: #1f332f; font-size: 13px; line-height: 1.65; }
.ingredient-preview-effect { border-left-color: #0f8b73; background: #f4fbf8; }
.ingredient-preview-effect strong { color: #08705c; }
.ingredient-preview-weakness { border-left-color: #dc6b36; background: #fff8f2; }
.ingredient-preview-weakness strong { color: #b34c1f; }
.ingredient-preview-optimize { border-left-color: #2d6cdf; background: #f4f8ff; }
.ingredient-preview-optimize strong { color: #2358b8; }
.ingredient-image-drop { display: grid; gap: 5px; justify-items: start; padding: 12px; border: 1px dashed #7ebaae; border-radius: 5px; background: #f4faf8; }
.ingredient-image-drop.dragging { border-color: var(--teal); background: #eaf7f3; box-shadow: 0 0 0 3px #137c6b18; }
.ingredient-image-drop strong { color: var(--teal-dark); font-size: 12px; }
.ingredient-image-drop span { color: var(--muted); font-size: 10px; }
.ingredient-image-list { grid-template-columns: repeat(2,minmax(180px,1fr)); gap:10px; }
.ingredient-image-list figure { border-color:#9fcfc4; box-shadow:0 1px 0 rgba(19,124,107,.08); }
.ingredient-image-list .review-detail-thumb { min-height:150px; border:0; }
.ingredient-image-list .review-detail-thumb img { aspect-ratio:16 / 10; min-height:150px; }
.ingredient-image-list figcaption { min-height:34px; }
.ingredient-image-list figcaption span { font-size:10px; }
.form-input:focus, .form-select:focus, .form-textarea:focus, .product-name-entry input:focus { border-color: var(--teal); box-shadow: 0 0 0 2px #137c6b1c; }
.ai-missing-input { border-color:#d64f40 !important; background:#fff6f4 !important; box-shadow:inset 3px 0 0 #d64f40; }
.ai-missing-input::placeholder { color:#b94739; }
.review-kpis { display: grid; grid-template-columns: repeat(5,1fr); border-bottom: 1px solid var(--line); }
.review-kpis article { min-width: 0; padding: 14px 16px; border-right: 1px solid var(--line); }
.review-kpis article:last-child { border-right: 0; }
.review-kpis span { color: var(--muted); font-size: 9px; }
.review-kpis strong { display: block; margin-top: 6px; font-size: 17px; }
.review-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; padding: 20px; }
.review-source-banner { display: flex; align-items: center; gap: 12px; padding: 11px 20px; border-bottom: 1px solid var(--line); background: #f5faf8; }
.review-source-banner.manual { background: #fff8e9; }
.review-source-banner strong { color: var(--teal-dark); font-size: 10px; }
.review-source-banner span { color: var(--muted); font-size: 9px; }
.review-audit-strip { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border-bottom: 1px solid var(--line); background: #fbfcfc; }
.review-audit-strip > div { min-width: 0; padding: 11px 14px; border-right: 1px solid var(--line); }
.review-audit-strip > div:last-child { border-right: 0; }
.review-audit-strip span, .review-audit-strip strong { display: block; }
.review-audit-strip span { color: var(--muted); font-size: 8px; }
.review-audit-strip strong { margin-top: 4px; font-size: 9px; line-height: 1.45; }
.review-category { display: grid; grid-template-columns: 190px minmax(0,1fr); align-items: center; gap: 14px; padding: 13px 20px; border-bottom: 1px solid var(--line); }
.review-category > span { color: var(--muted); font-size: 10px; }
.review-month-table { padding: 16px 20px 4px; }
.review-month-table h3 { margin: 0 0 10px; font-size: 13px; }
.review-month-table table { min-width: 680px; }
.review-month-table td { height: 45px; }
.review-month-table strong { color: var(--ink); }
.review-metric-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 8px; padding: 14px 20px 18px; }
.review-metric-grid article { min-width: 0; padding: 11px; border: 1px solid var(--line); border-radius: 4px; background: #f8faf9; }
.review-metric-grid article > span { display: block; min-height: 27px; color: var(--muted); font-size: 9px; line-height: 1.45; }
.review-metric-grid article > strong { display: block; margin-top: 6px; color: var(--teal-dark); font-size: 14px; }
.review-section h3 { margin: 0 0 12px; font-size: 13px; }
.review-list { display: grid; gap: 8px; }
.review-line { display: flex; justify-content: space-between; gap: 14px; padding: 9px 0; border-bottom: 1px solid #edf0ef; font-size: 10px; }
.review-line span { color: var(--muted); }
.review-line b { text-align: right; }
.mini-trend { height: 210px; border: 1px solid var(--line); border-radius: 5px; background: #fafcfc; }
.mini-trend svg { width: 100%; height: 100%; }
.evaluation-table { overflow: auto; }
.evaluation-table table { min-width: 1000px; }
.evaluation-table th:nth-child(1) { min-width: 180px; }
.evaluation-table th:nth-child(2), .evaluation-table th:nth-child(3) { min-width: 300px; }
.evaluation-table td { height: auto; min-height: 52px; vertical-align: top; white-space: normal; }
.evaluation-table td.score-cell { min-width: 250px; background: #f0f8f5; }
.evaluation-table .score-value { display: block; margin-top: 6px; color: var(--teal); font-size: 13px; font-weight: 800; }
.ingredient-score-stack { display: grid; gap: 10px; }
.ingredient-score-item { display: grid; grid-template-columns: minmax(0,1fr) 46px; gap: 8px; align-items: end; padding: 8px; border: 1px solid #c9ddd7; border-radius: 5px; background: #fff; }
.ingredient-score-item .rating-control > span { color: #31554c; font-size: 10px; font-weight: 800; }
.ingredient-score-item .score-value,
.ingredient-score-item .na-score { min-width: 42px; margin-top: 0; padding: 7px 4px; text-align: center; border-radius: 4px; background: #edf7f4; }
.project-module-panel { overflow: visible; }
.module-comparison-box { margin: 16px 20px 0; overflow: hidden; border: 2px solid #8bc5b7; border-radius: 6px; background: #fff; }
.module-comparison-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 14px 16px; border-bottom: 1px solid var(--line); background: #f3faf8; }
.module-comparison-head h3 { margin: 4px 0 0; color: var(--teal-dark); font-size: 16px; line-height: 1.35; }
.module-comparison-head p { margin: 5px 0 0; color: var(--muted); font-size: 10px; line-height: 1.55; }
.module-comparison-head .button { flex: 0 0 auto; min-height: 34px; }
.module-comparison-box .evaluation-table { border: 0; }
.module-comparison-box .evaluation-table th { background: #f7fbfa; }
.module-comparison-box .form-input,.module-comparison-box .form-select,.module-comparison-box .form-textarea { font-size: 12px; line-height: 1.6; }
.benchmark-readonly { min-height: 72px; padding: 10px 11px; border: 1px solid #d7e7e2; border-radius: 4px; background: #f5faf8; }
.benchmark-readonly p { max-height: 120px; margin: 0; overflow: auto; color: var(--ink); font-size: 12px; line-height: 1.6; white-space: pre-wrap; }
.ingredient-benchmark-readonly { padding: 8px; }
.ingredient-benchmark-list { max-height: 144px; display: grid; gap: 5px; overflow: auto; }
.ingredient-benchmark-row { --ingredient-accent: #137c6b; --ingredient-bg: #eaf7f3; min-width: 0; min-height: 30px; display: grid; grid-template-columns: minmax(72px,112px) minmax(0,1fr); align-items: center; gap: 9px; padding: 6px 9px; border-left: 4px solid var(--ingredient-accent); background: var(--ingredient-bg); }
.ingredient-benchmark-row:nth-child(5n+2) { --ingredient-accent: #3276b1; --ingredient-bg: #edf5fb; }
.ingredient-benchmark-row:nth-child(5n+3) { --ingredient-accent: #b57917; --ingredient-bg: #fff7e7; }
.ingredient-benchmark-row:nth-child(5n+4) { --ingredient-accent: #b14f68; --ingredient-bg: #fff0f3; }
.ingredient-benchmark-row:nth-child(5n) { --ingredient-accent: #6d62a8; --ingredient-bg: #f4f1fb; }
.ingredient-benchmark-row strong,.ingredient-benchmark-row span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ingredient-benchmark-row strong { color: var(--ingredient-accent); font-size: 11px; }
.ingredient-benchmark-row span { color: var(--ink); font-size: 11px; }
.benchmark-textarea-readonly { border-color: #d7e7e2; background: #f5faf8; color: var(--ink); }
.benchmark-source-note { display: block; margin-top: 5px; color: var(--teal-dark); font-size: 9px; font-weight: 800; line-height: 1.4; }
.rating-control { display:block; }
.rating-control > span { display:block; margin-bottom:6px; color:var(--muted); font-size:10px; }
.rating-control select { width:100%; }
.auto-score-control { padding:9px 10px; border:1px solid #a9cfc6; border-radius:4px; background:#fff; }
.auto-score-control strong, .auto-score-control small { display:block; }
.auto-score-control strong { color:#086957; font-size:11px; }
.auto-score-control small { margin-top:5px; color:var(--muted); line-height:1.5; }
.inline-score-rules { margin-top:8px; padding-top:7px; border-top:1px solid var(--line); }
.inline-score-rules summary { color:var(--teal); cursor:pointer; font-weight:700; }
.inline-score-rules span { display:flex; justify-content:space-between; gap:8px; margin-top:6px; color:var(--muted); }
.inline-score-rules b { flex:0 0 auto; color:var(--ink); }
.pending-score { display:inline-block; margin-top:7px; color:#9a6a12; font-weight:700; }
.score-method-note { color:var(--muted); font-size:10px; }
.na-score { color: var(--muted); font-weight: 700; }
.module-total { display: flex; align-items: center; justify-content: flex-end; gap: 18px; padding: 14px 20px; background: #f6f9f8; border-top: 1px solid var(--line); }
.module-total span { color: var(--muted); font-size: 10px; }
.module-total strong { color: var(--teal); font-size: 19px; }
.module-actions { display: flex; justify-content: space-between; gap: 10px; padding: 15px 20px; border-top: 1px solid var(--line); }
.module-actions.market-module-actions { justify-content: flex-end; }
.market-module-actions .missing-summary { display: none; }
.missing-summary { color: var(--danger); font-size: 10px; }
.selling-module-panel .module-comparison-box,
.selling-module-panel .selling-one-click-box,
.selling-module-panel .selling-score-box { margin: 0 20px 18px; padding: 16px; border: 2px solid #8bc5b7; border-radius: 6px; background: #fff; }
.selling-module-panel .selling-one-click-box,
.selling-module-panel .selling-score-box { border-color: #b8d8d0; background: #fbfefd; }
.selling-module-panel .selling-summary-points { display: grid; gap: 8px; margin: 12px 0 0; padding: 0; list-style: none; }
.selling-module-panel .selling-summary-points li { display: grid; grid-template-columns: 26px minmax(0,1fr); gap: 10px; align-items: flex-start; padding: 10px 12px; border: 1px solid #d5e5e1; border-radius: 5px; background: #f8fbfa; }
.selling-module-panel .selling-summary-points i { width: 26px; height: 26px; display: grid; place-items: center; color: white; background: var(--teal); border-radius: 50%; font-style: normal; font-size: 10px; font-weight: 800; }
.selling-module-panel .selling-summary-points span { color: var(--ink); font-size: 11px; line-height: 1.6; }
.selling-module-panel .selling-benchmark-source { min-height: 112px; margin-top: 12px; background: #f7fbfa; font-size: 11px; line-height: 1.65; }
.selling-module-panel .selling-one-click-head,
.selling-module-panel .selling-score-box { display: grid; gap: 10px; }
.selling-module-panel .selling-one-click-head,
.selling-module-panel .selling-score-box { grid-template-columns: minmax(0,1fr) auto; align-items: center; }
.selling-module-panel .selling-project-summary-text { min-height: 160px; margin-top: 12px; font-size: 12px; line-height: 1.65; }
.selling-module-panel .selling-score-box { grid-template-columns: minmax(0,1fr) auto auto; align-items: start; }
.selling-module-panel .selling-score-box .rating-control { min-width: 280px; }
.selling-module-panel .selling-score-box .na-score,
.selling-module-panel .selling-score-box .score-value { align-self: center; padding-top: 24px; font-size: 16px; font-weight: 800; }
.selling-module-panel .selling-score-box .score-value { color: var(--teal); }
.selling-module-panel .module-comparison-head h3,
.selling-module-panel .selling-one-click-head h3,
.selling-module-panel .selling-score-box h3 { margin: 4px 0 0; font-size: 14px; }
.selling-module-panel .module-comparison-head p,
.selling-module-panel .selling-one-click-head p,
.selling-module-panel .selling-score-box p { margin: 5px 0 0; color: var(--muted); font-size: 10px; line-height: 1.55; }
.selling-module-panel .module-comparison-head { display:flex; align-items:flex-start; justify-content:space-between; gap: 12px; }
.selling-module-panel .selling-one-click-head { display:flex; align-items:flex-start; justify-content:space-between; gap: 12px; }
.selling-module-panel .selling-score-box { justify-content: space-between; }
.selling-module-panel .selling-comparison-box { padding: 0; }
.selling-comparison-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 14px; padding: 16px; background: #fbfdfc; }
.selling-side-panel { min-width: 0; display: grid; align-content: start; gap: 12px; padding: 15px; border: 2px solid #8bc5b7; border-radius: 6px; background: #fff; }
.selling-side-panel.own { border-color: #7eb5aa; background: #f9fcfb; }
.selling-side-head { display: grid; gap: 4px; padding-bottom: 10px; border-bottom: 1px solid #d7e8e3; }
.selling-side-head span { width: fit-content; padding: 4px 8px; color: #fff; background: var(--teal); border-radius: 3px; font-size: 10px; font-weight: 800; line-height: 1; }
.selling-side-head h3 { margin: 0; color: var(--ink); font-size: 17px; line-height: 1.35; }
.selling-side-head p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.selling-edit-box { display: grid; gap: 7px; color: var(--muted); font-size: 10px; }
.selling-edit-box > span { color: var(--teal-dark); font-size: 12px; font-weight: 800; }
.selling-module-panel .selling-benchmark-source,
.selling-module-panel .selling-project-summary-text { width: 100%; min-height: 210px; margin-top: 0; font-size: 13px; line-height: 1.7; resize: vertical; }
.selling-module-panel .selling-benchmark-source { background: #f7fbfa; }
.selling-inline-score { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 12px; align-items: end; padding: 12px; border: 1px solid #cfe2dc; border-radius: 5px; background: #fff; }
.selling-inline-score .rating-control { min-width: 0; }
.selling-inline-score .score-value,
.selling-inline-score .na-score { min-width: 58px; padding: 8px 10px; text-align: center; border-radius: 4px; background: #eef7f4; font-size: 17px; font-weight: 800; }
.selling-inline-score .score-value { color: var(--teal); }
.bom-section { padding: 18px 20px; border-top: 1px solid var(--line); }
.bom-section h3 { margin: 0 0 11px; font-size: 13px; }
.bom-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin-bottom: 12px; }
.bom-head p { margin: -5px 0 0; color: var(--muted); font-size: 9px; }
.bom-head > strong { color: var(--teal); font-size: 13px; white-space: nowrap; }
.bom-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
.bom-grid label { color: var(--muted); font-size: 9px; }
.bom-grid input { margin-top: 4px; }
.bom-unit-field { position: relative; }
.bom-unit-field input { padding-right: 50px; }
.bom-unit-field::after { content: "元"; position: absolute; right: 30px; bottom: 9px; color: var(--muted); font-size: 9px; pointer-events: none; }
.bom-total-summary { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:14px; padding:13px 15px; color:white; background:#173d35; border-radius:4px; }
.bom-total-summary div span,.bom-total-summary div small { display:block; }
.bom-total-summary div span { font-weight:800; }
.bom-total-summary div small { margin-top:3px; color:#bcd5cf; }
.bom-total-summary strong { color:#a6e1d3; font-size:18px; }
.bom-warning { margin-top:10px; padding:10px 12px; color:#b4362b; background:#fff3f1; border:1px solid #efc0b8; border-radius:4px; font-size:9px; line-height:1.5; }
.project-module-panel > .bom-section { margin: 22px 20px 0; padding: 16px; border: 2px solid #8bc5b7; border-radius: 6px; background: #fff; }
.project-module-panel > .bom-section h3 { color: var(--teal-dark); font-size: 16px; line-height: 1.35; }
.strategy-files { padding: 17px 20px; border-top: 1px solid var(--line); background: #fbfcfc; }
.strategy-files-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.strategy-files-head h3 { margin: 4px 0 0; font-size: 13px; }
.strategy-files-head p { margin: 5px 0 0; color: var(--muted); font-size: 9px; }
.strategy-file-list { display: grid; gap: 7px; margin-top: 12px; }
.strategy-file-list article { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 4px; background: white; }
.strategy-file-list article strong, .strategy-file-list article span { display: block; }
.strategy-file-list article strong { font-size: 10px; }
.strategy-file-list article span { margin-top: 4px; color: var(--muted); font-size: 8px; }
.strategy-file-list article > div:last-child { display: flex; gap: 6px; }
.strategy-file-empty { padding: 13px; color: var(--muted); text-align: center; border: 1px dashed var(--line-strong); font-size: 9px; }
.copy-review-panel { overflow: hidden; border: 2px solid #72b7a9; }
.copy-review-head { align-items: flex-start; background: #fbfefd; }
.copy-review-title-strip { padding: 12px 20px 8px; border-bottom: 1px solid #d8e8e4; background: #fff; }
.copy-review-title-strip strong { color: var(--ink); font-size: 14px; }
.copy-review-dashboard { display: grid; grid-template-columns: minmax(480px,.9fr) minmax(380px,1.1fr); gap: 18px; align-items: center; padding: 10px 20px; border-bottom: 1px solid var(--line); background: #f8fcfb; }
.copy-review-summary { display: grid; grid-template-columns: repeat(4, minmax(90px, 1fr)); gap: 6px; min-width: 0; }
.copy-review-summary article { min-height: 46px; display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 7px 9px; border: 1px solid #d8e8e4; background: #fff; }
.copy-review-summary span { color: var(--muted); font-size: 9px; white-space: nowrap; }
.copy-review-summary strong { color: var(--ink); font-size: 16px; line-height: 1; }
.copy-review-department-summary { min-width: 0; display: grid; grid-template-columns: 130px minmax(0,1fr); gap: 12px; align-items: center; padding-left: 18px; border-left: 1px solid #cfe1dc; }
.copy-review-department-summary header strong, .copy-review-department-summary header span { display: block; }
.copy-review-department-summary header strong { color: var(--ink); font-size: 11px; }
.copy-review-department-summary header span { margin-top: 4px; color: var(--muted); font-size: 8px; }
.copy-review-department-list { min-width: 0; display: grid; grid-template-columns: repeat(auto-fit,minmax(105px,1fr)); gap: 5px; }
.copy-review-department-list article { min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 6px 8px; border: 1px solid #cfe1dc; background: #fff; }
.copy-review-department-list article span { min-width: 0; color: #526963; font-size: 9px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.copy-review-department-list article strong { flex: none; color: var(--teal); font-size: 14px; }
.copy-review-department-list article.total { border-color: #0b8068; background: #edf8f4; }
.copy-review-department-list article.total span, .copy-review-department-list article.total strong { color: #087764; font-weight: 900; }
.copy-review-department-list > p { margin: 0; color: var(--muted); font-size: 9px; }
.copy-review-filter { display: grid; grid-template-columns: repeat(6, minmax(105px, 1fr)) auto; gap: 10px; align-items: end; padding: 14px 20px; border-bottom: 1px solid var(--line); background: #fff; }
.copy-review-filter label { display: flex; flex-direction: column; gap: 5px; }
.copy-review-filter label span { color: var(--ink); font-size: 10px; font-weight: 800; }
.copy-review-filter select, .copy-review-filter input { height: 34px; padding: 0 10px; border: 1px solid #c9ddd8; border-radius: 4px; background: #fff; color: var(--ink); font-size: 12px; }
.copy-review-create-row { display: flex; align-items: center; gap: 18px; padding: 18px 20px; border-bottom: 1px solid #d8e8e4; background: linear-gradient(90deg,#fbfefd,#f5faf8); }
.copy-review-create-row span { color: var(--ink); font-size: 14px; font-weight: 900; }
.copy-review-create-button { display: inline-flex; align-items: center; gap: 8px; }
.copy-review-create-button i { width: 18px; height: 18px; display: inline-grid; place-items: center; border: 1px solid rgba(255,255,255,.7); border-radius: 50%; font-size: 16px; font-style: normal; font-weight: 900; line-height: 1; }
.copy-review-create-button span { color: inherit; font-size: 12px; }
.copy-review-pagination { display:flex; align-items:center; justify-content:center; gap:14px; padding:14px 20px; border-top:1px solid var(--line); }
.copy-review-pagination span { color:var(--muted); font-size:11px; font-weight:700; }
.copy-review-list { padding: 16px 20px 20px; background: #fbfcfc; }
.copy-issue-summary-panel { overflow: hidden; border: 2px solid #72b7a9; }
.summary-snapshot-note { margin-left: 14px; color: var(--muted); font-size: 10px; font-weight: 600; }
.copy-issue-summary-actions { display:flex; align-items:center; gap:8px; flex-wrap:wrap; padding:14px 20px; border-bottom:1px solid var(--line); background:#f8fcfb; }
.copy-issue-summary-actions > span { margin-left:auto; color:var(--muted); font-size:11px; font-weight:700; }
.copy-issue-summary-filter { display:grid; grid-template-columns:repeat(6,minmax(120px,1fr)) auto; gap:8px; align-items:end; padding:12px 20px; border-bottom:1px solid var(--line); background:#fff; }
.copy-issue-summary-filter label { display:flex; flex-direction:column; gap:4px; }
.copy-issue-summary-filter label span { color:var(--ink); font-size:10px; font-weight:800; }
.copy-issue-summary-table-wrap { max-height:calc(100vh - 330px); overflow:auto; margin:16px 20px; border:2px solid #087764; background:#fff; }
.copy-issue-summary-table { width:100%; min-width:980px; border-collapse:collapse; table-layout:fixed; }
.copy-issue-summary-table th { position:sticky; top:0; z-index:1; padding:7px 5px; color:#fff; background:#0b8068; border:1px solid #087764; font-size:11px; text-align:center; }
.copy-issue-summary-table td { padding:5px; border:1px solid #c4ddd7; vertical-align:top; }
.copy-issue-summary-table tbody tr:nth-child(odd) td { background:#f4fbf8; }
.copy-issue-summary-table textarea { width:100%; min-height:48px; resize:vertical; box-sizing:border-box; font-size:11px; }
.copy-issue-summary-table th:first-child, .copy-issue-summary-table td:first-child { width:44px; text-align:center; }
.copy-issue-summary-table th:last-child, .copy-issue-summary-table td:last-child { width:52px; text-align:center; }
.copy-issue-summary-footnote { margin:0 20px 18px; color:var(--muted); font-size:10px; }
.copy-review-table-wrap { width: 100%; max-height: calc(100vh - 332px); overflow-x: hidden; overflow-y: auto; border: 2px solid #087764; background: #fff; }
.node-proposal-panel { display:flex; flex-direction:column; min-height:calc(100vh - 110px); background:#f7fbfa; }

/* 开发进度节点：独立于新品提报登记表，避免改变既有表格布局。 */
.node-proposal-progress-page { min-height:calc(100vh - 110px); padding:18px 20px 32px; background:#f7fbfa; }
.node-progress-panel { overflow:hidden; border:1px solid #d5e5e0; background:#fff; box-shadow:0 8px 24px rgba(16,75,63,.06); }
.node-progress-panel .business-panel-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:18px 20px 14px; border-bottom:1px solid #e1eeeb; }
.node-progress-panel .business-panel-head h2 { margin:4px 0; color:var(--ink); font-size:22px; }
.node-progress-panel .business-panel-head p { margin:4px 0 0; color:var(--muted); font-size:11px; }
.node-progress-filters { display:flex; align-items:flex-end; gap:10px; flex-wrap:wrap; margin-bottom:14px; padding:12px 14px; border:1px solid #d5e5e0; background:#fff; }
.node-progress-filters label { display:flex; min-width:150px; flex-direction:column; gap:4px; color:var(--muted); font-size:10px; font-weight:800; }
.node-progress-filters .form-input,.node-progress-filters .form-select { min-height:32px; }
.node-progress-legend { display:flex; align-items:center; gap:22px; flex-wrap:wrap; color:var(--muted); font-size:12px; }
.node-progress-legend-top { min-height:46px; margin:0 0 14px; padding:10px 18px; border:1px solid #d5e5e0; border-radius:8px; background:linear-gradient(90deg,#ffffff 0%,#f7fcfa 100%); box-shadow:0 4px 14px rgba(16,75,63,.04); }
.node-progress-legend span { display:inline-flex; align-items:center; gap:7px; color:#38534b; font-weight:800; white-space:nowrap; }
.node-progress-legend .node-progress-legend-note { color:var(--muted); font-size:11px; font-weight:700; }
.node-progress-legend i { display:inline-block; width:11px; height:11px; border-radius:50%; box-shadow:0 0 0 2px rgba(255,255,255,.9),0 0 0 3px rgba(16,75,63,.12); }
.node-progress-legend i.completed { background:#15966e; }
.node-progress-legend i.pending { background:#dd4d59; }
.node-progress-list { display:flex; flex-direction:column; gap:14px; padding:16px 20px 22px; overflow:auto; }
.node-progress-record { min-width:1120px; border:1px solid #d5e5e0; border-radius:8px; background:#fbfefd; }
.node-progress-record-info { display:flex; align-items:center; gap:10px; min-height:60px; padding:10px 14px; border-bottom:1px solid #e1eeeb; color:var(--muted); font-size:12px; }
.node-progress-record-info > strong { color:var(--ink); font-size:13px; font-weight:800; }
.node-progress-sequence { color:#087764; font-size:12px; font-weight:800; }
.node-progress-brand { color:#087764; font-weight:800; }
.node-progress-follower { color:#546963; white-space:nowrap; }
.node-progress-follower b { color:#087764; font-weight:800; }
.node-progress-product { display:flex; align-items:center; gap:7px; min-width:190px; margin-left:4px; }
.node-progress-product-name { max-width:230px; overflow:hidden; color:#087764; font-size:13px; font-weight:800; text-overflow:ellipsis; white-space:nowrap; }
.node-progress-product-thumb { display:grid; place-items:center; width:42px; height:42px; padding:2px; border:1px solid #acd3c8; border-radius:5px; background:#fff; cursor:zoom-in; }
.node-progress-product-thumb img { width:36px; height:36px; object-fit:cover; border-radius:3px; }
.node-progress-product-no-image { display:inline-flex; align-items:center; height:24px; padding:0 7px; border:1px dashed #c7d6d2; border-radius:4px; color:#9aa9a5; background:#f7faf9; font-size:10px; white-space:nowrap; }
.node-progress-track { display:flex; align-items:flex-start; min-width:1080px; padding:16px 16px 18px; }
.node-progress-connector { flex:1 1 34px; min-width:28px; height:4px; margin-top:78px; background:#ff3b30; }
.node-progress-connector.done { background:#007a57; }
.node-progress-station { position:relative; display:flex; flex:0 0 128px; min-height:126px; flex-direction:column; align-items:center; text-align:center; }
.node-progress-note { width:128px; min-height:42px; color:#71827d; font-size:11px; line-height:1.4; }
.node-progress-note-bottom { color:#546963; }
.node-progress-note-bottom span { color:#007a57; font-weight:900; }
.node-progress-note-empty { min-height:0; }
.node-progress-approval-only { min-height:42px; color:#007a57; font-size:10px; font-weight:900; letter-spacing:-.02em; white-space:nowrap; }
.node-progress-station.late .node-progress-note-bottom span { color:#ff3b30; font-weight:900; }
.node-progress-shape { position:relative; z-index:1; display:grid; place-items:center; width:72px; height:72px; margin:0 auto 3px; border:5px solid #007a57; border-radius:50%; color:#fff; background:#007a57; box-shadow:0 0 0 4px #fff,0 0 0 5px rgba(0,122,87,.28); }
.node-progress-shape strong { max-width:62px; color:#fff; font-family:"Microsoft YaHei","PingFang SC",Arial,sans-serif; font-size:14px; font-weight:900; letter-spacing:.02em; line-height:1.2; }
.node-progress-station.pending .node-progress-shape { border-color:#ff3b30; color:#fff; background:#ff3b30; box-shadow:0 0 0 4px #fff,0 0 0 5px rgba(255,59,48,.28); }
.node-progress-duration { display:flex; flex:0 0 150px; min-height:96px; margin:14px 0 0 18px; padding:14px 12px; flex-direction:column; align-items:center; justify-content:center; gap:8px; border:2px solid #007a57; border-radius:8px; background:#f2fcf7; color:#007a57; text-align:center; }
.node-progress-duration span { font-size:11px; font-weight:800; }
.node-progress-duration strong { color:#007a57; font-size:20px; font-weight:900; line-height:1.2; white-space:nowrap; }
@media (max-width:900px) {
  .node-proposal-progress-page { padding:12px 10px 24px; }
  .node-progress-panel .business-panel-head { padding:14px; }
  .node-progress-list { padding:12px 10px 18px; }
  .node-progress-record-info { flex-wrap:wrap; }
}
/* The proposal register is the primary workspace.  Do not reserve a second
   blank band between the global page header and the dashboard/table. */
.main-panel.business-mode #businessWorkspace .node-proposal-panel { margin-top:0; }
.node-proposal-panel > .node-proposal-page-head { display:none; }
.node-proposal-page-head { flex:0 0 auto; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:18px 24px; border-bottom:1px solid var(--line); background:#fff; }
.node-proposal-page-head h1 { margin:4px 0; color:var(--ink); font-size:24px; }
.node-proposal-page-head p { margin:5px 0 0; color:var(--muted); font-size:11px; }
.node-proposal-page-actions { display:flex; align-items:center; gap:16px; flex-wrap:wrap; white-space:normal; }
.node-proposal-page-actions strong { color:var(--teal); font-size:13px; }
.node-proposal-single-item-warning { display:inline-flex; align-items:center; flex:1 1 auto; min-width:0; max-width:none; overflow:hidden; padding:5px 10px; border:1px solid #f0b36a; border-left:4px solid #d86a16; border-radius:6px; color:#8a3f08; background:#fff5e8; font-size:12px; font-weight:800; line-height:1.2; white-space:nowrap; text-overflow:ellipsis; }
.node-proposal-standards { flex:0 0 auto; margin:14px 20px 0; padding:14px; border:1px solid #d5e5e0; background:#fff; }
.node-proposal-panel > .node-proposal-standards { display:none; }
.node-proposal-section-head { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:10px; }
.node-proposal-section-head h3 { margin:2px 0; color:var(--ink); font-size:15px; }
.node-proposal-section-head p { margin:3px 0 0; color:var(--muted); font-size:10px; }
.node-proposal-standards-grid { display:grid; grid-template-columns:repeat(2,minmax(260px,1fr)); gap:8px 14px; }
.node-proposal-standards-grid label { display:grid; grid-template-columns:120px minmax(0,1fr) 72px; gap:6px; align-items:center; color:var(--ink); font-size:10px; }
.node-proposal-standards-grid label span { font-weight:800; }
.node-proposal-standards-grid input { min-width:0; height:30px; }
.node-proposal-editor { flex:0 0 40%; min-height:310px; max-height:48vh; overflow:auto; margin:14px 20px 0; padding:16px; border:2px solid #087764; background:#fff; }
.node-proposal-empty-editor { display:flex; align-items:center; justify-content:center; text-align:center; background:linear-gradient(135deg,#fff,#f0faf6); }
.node-proposal-empty-editor h2 { margin:7px 0; color:var(--ink); font-size:20px; }
.node-proposal-empty-editor p { color:var(--muted); font-size:12px; }
.node-proposal-editor-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding-bottom:12px; border-bottom:1px solid var(--line); }
.node-proposal-editor-head h2 { margin:4px 0; color:var(--ink); font-size:18px; }
.node-proposal-editor-head p { margin:3px 0 0; color:var(--muted); font-size:10px; }
.node-proposal-editor-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:6px; }
.node-proposal-category-grid { display:grid; grid-template-columns:repeat(4,minmax(100px,1fr)); gap:5px; }
.node-proposal-category-grid label { display:flex; flex-direction:column; gap:3px; color:var(--muted); font-size:9px; font-weight:600; }
.node-proposal-category-grid .form-select { min-width:0; height:30px; padding:0 4px; font-size:10px; }
.node-proposal-file-badge { display:grid; place-items:center; width:54px; height:54px; background:#e9f4f1; color:#0b8068; font-size:10px; font-weight:800; }
.node-proposal-inline-select { min-width:74px; height:30px; padding:0 4px; font-size:11px; }
.node-proposal-empty-value { color:var(--muted); font-size:11px; }
.node-proposal-category-trigger { min-width:90px; white-space:normal; }
.node-proposal-table-attachment-cell { display:flex; flex-direction:column; align-items:center; gap:4px; min-width:74px; }
.node-proposal-attachment-main { position:relative; display:flex; width:100%; min-width:0; flex-direction:column; align-items:center; justify-content:center; gap:4px; }
.node-proposal-table-attachment-cell { display:flex; flex-direction:column; align-items:center; gap:4px; min-width:0; }
.node-proposal-detail-actions { display:flex; flex-direction:column; align-items:center; gap:3px; }
.node-proposal-submit-status { display:inline-flex; align-items:center; justify-content:center; min-width:52px; padding:2px 5px; border:1px solid; border-radius:999px; font-size:9px; line-height:1.2; font-weight:800; white-space:nowrap; }
.node-proposal-submit-status.submitted { color:#087c4c; border-color:#a8d9c2; background:#effaf4; }
.node-proposal-submit-status.not-submitted { color:#9a5b15; border-color:#f0cf9e; background:#fff8eb; }
.node-proposal-attachment-download { min-width:42px; }
.node-proposal-table-attachment { display:flex; width:100%; align-items:center; justify-content:center; gap:3px; min-height:44px; padding:2px; border:1px solid #c9ddd8; background:#fff; color:var(--ink); cursor:pointer; }
.node-proposal-table-attachment img { width:46px; height:46px; object-fit:cover; }
.node-proposal-table-attachment span { font-size:9px; }
.node-proposal-table-image-wrap { position:relative; display:flex; flex:0 0 56px; width:56px; min-width:56px; align-self:center; }
.node-proposal-table-image-preview { width:56px; min-width:56px; cursor:zoom-in; }
.node-proposal-table-image-preview:focus { outline:0; }
.node-proposal-table-image-remove { position:absolute; top:2px; right:2px; z-index:2; display:flex; width:20px; height:20px; align-items:center; justify-content:center; padding:0; border:2px solid #fff; border-radius:50%; color:#fff; background:#c64059; box-shadow:0 1px 4px #0005; font-size:14px; line-height:1; cursor:pointer; }
.node-proposal-table-attachment-actions { display:flex; align-items:center; gap:4px; width:100%; }
.node-proposal-table-attachment-actions .small-command { flex:1; min-width:0; min-height:25px; padding:3px 4px; font-size:9px; }
.node-proposal-image-note { display:block; color:var(--muted); font-size:9px; line-height:1.2; }
.node-proposal-table-attachment-cell .node-proposal-attachment-main { gap:4px; }
.node-proposal-table-attachment-cell .node-proposal-attachment-main > .node-proposal-table-image-wrap { order:0; flex-direction:column; align-items:center; gap:3px; }
.node-proposal-table-attachment-cell .node-proposal-attachment-main > .node-proposal-image-note { order:3; }
.node-proposal-table-attachment-cell .node-proposal-attachment-main > .node-proposal-table-attachment-actions { order:2; }
.node-proposal-table-attachment-cell .node-proposal-attachment-main > .node-proposal-empty-value { order:0; }
.node-proposal-category-backdrop { position:fixed; inset:0; z-index:60; display:flex; align-items:center; justify-content:center; padding:18px; background:rgba(16,38,33,.52); }
.node-proposal-category-dialog { width:min(650px,94vw); border:1px solid #b5d2ca; background:#fff; box-shadow:0 18px 60px rgba(0,0,0,.25); }
.node-proposal-category-dialog header { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding:14px 18px; border-bottom:1px solid var(--line); }
.node-proposal-category-dialog h3 { margin:4px 0; color:var(--ink); font-size:18px; }
.node-proposal-category-dialog p { margin:4px 0 0; color:var(--muted); font-size:11px; }
.node-proposal-category-dialog .node-proposal-category-grid { padding:18px; }
.node-proposal-category-search { display:flex; flex-direction:column; gap:5px; padding:14px 18px 0; color:var(--ink); font-size:10px; font-weight:800; }
.node-proposal-category-search-results { display:flex; flex-direction:column; gap:4px; max-height:180px; overflow:auto; margin:8px 18px 0; padding:5px; border:1px solid #d8e8e4; background:#f8fcfb; }
.node-proposal-category-search-result { display:flex; align-items:center; gap:10px; padding:7px 9px; border:1px solid transparent; background:#fff; color:var(--ink); text-align:left; cursor:pointer; }
.node-proposal-category-search-result:hover,.node-proposal-category-search-result:focus { border-color:#79bcae; background:#effaf6; outline:none; }
.node-proposal-category-search-result strong { min-width:110px; color:var(--teal); font-size:11px; }
.node-proposal-category-search-result span { color:var(--muted); font-size:10px; }
.node-proposal-category-dialog .node-proposal-category-summary,.node-proposal-category-dialog .node-proposal-category-empty { margin:0; padding:0 18px 18px; }
.node-proposal-category-dialog .node-proposal-category-summary small { display:block; margin-top:4px; color:var(--muted); font-size:10px; font-weight:400; }
.node-proposal-score-standard-backdrop { position:fixed; inset:0; z-index:65; display:flex; align-items:center; justify-content:center; padding:18px; background:rgba(16,38,33,.52); }
.node-proposal-score-standard-dialog { width:min(720px,94vw); max-height:86vh; display:flex; flex-direction:column; border:1px solid #b5d2ca; background:#fff; box-shadow:0 18px 60px rgba(0,0,0,.25); }
.node-proposal-score-standard-dialog header { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding:14px 18px; border-bottom:1px solid var(--line); }
.node-proposal-score-standard-dialog h3 { margin:4px 0; color:var(--ink); font-size:18px; }
.node-proposal-score-standard-dialog p { margin:4px 0 0; color:var(--muted); font-size:11px; }
.node-proposal-score-standard-body { overflow:auto; padding:14px 18px; }
.node-proposal-score-standard-body table { width:100%; border-collapse:collapse; }
.node-proposal-score-standard-body th,.node-proposal-score-standard-body td { padding:7px 8px; border:1px solid #d8e8e4; vertical-align:top; font-size:10px; text-align:left; }
.node-proposal-score-standard-body th { color:#fff; background:#0b8068; }
.node-proposal-score-standard-dialog footer { display:flex; justify-content:flex-end; gap:8px; padding:11px 18px; border-top:1px solid var(--line); background:#f8fcfb; }
.node-proposal-score-query { display:block; margin-top:5px; padding:3px 5px; font-size:9px; white-space:nowrap; }
.node-proposal-standards-list { overflow:auto; border:1px solid #d8e8e4; }
.node-proposal-standards-list table { width:100%; min-width:780px; border-collapse:collapse; }
.node-proposal-standards-list th,.node-proposal-standards-list td { padding:7px 8px; border:1px solid #d8e8e4; vertical-align:top; font-size:10px; text-align:left; }
.node-proposal-standards-list th { color:#fff; background:#0b8068; }
.node-proposal-standard-editor-backdrop { position:fixed; inset:0; z-index:70; display:flex; align-items:center; justify-content:center; padding:18px; background:rgba(16,38,33,.52); }
.node-proposal-standard-editor-dialog { width:min(1120px,96vw); max-height:90vh; display:flex; flex-direction:column; border:1px solid #b5d2ca; background:#fff; box-shadow:0 18px 60px rgba(0,0,0,.25); }
.node-proposal-standard-editor-dialog header { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding:14px 18px; border-bottom:1px solid var(--line); }
.node-proposal-standard-editor-dialog h3 { margin:4px 0; color:var(--ink); font-size:18px; }
.node-proposal-standard-editor-dialog p { margin:4px 0 0; color:var(--muted); font-size:11px; }
.node-proposal-standard-editor-body { overflow:auto; padding:14px 18px; }
.node-proposal-standard-editor-description { display:flex; flex-direction:column; gap:5px; margin-bottom:9px; color:var(--ink); font-size:10px; font-weight:800; }
.node-proposal-standard-editor-table { overflow:auto; border:1px solid #d8e8e4; }
.node-proposal-standard-editor-table table { width:100%; min-width:940px; border-collapse:collapse; }
.node-proposal-standard-editor-table th,.node-proposal-standard-editor-table td { padding:5px; border:1px solid #d8e8e4; vertical-align:middle; font-size:10px; }
.node-proposal-standard-editor-table th { color:#fff; background:#0b8068; }
.node-proposal-standard-editor-table input { width:100%; min-width:60px; height:28px; padding:3px 5px; }
.node-proposal-standard-editor-dialog footer { display:flex; justify-content:flex-end; gap:8px; padding:11px 18px; border-top:1px solid var(--line); background:#f8fcfb; }
.node-proposal-category-dialog footer { display:flex; justify-content:flex-end; gap:8px; padding:11px 18px; border-top:1px solid var(--line); background:#f8fcfb; }
.node-proposal-flow { display:grid; grid-template-columns:repeat(6,minmax(120px,1fr)); gap:7px; margin-bottom:12px; }
.node-proposal-flow > div { display:flex; flex-direction:column; gap:3px; padding:7px 9px; border:1px solid #d8e8e4; background:#f8fcfb; }
.node-proposal-flow span { color:var(--muted); font-size:9px; }
.node-proposal-flow strong { color:var(--ink); font-size:11px; }
.node-proposal-operation-time { color:var(--muted); font-size:9px; line-height:1.3; }
.node-proposal-detail-section { border-top:1px solid var(--line); padding-top:10px; }
.node-proposal-detail-section > .node-proposal-section-head p { display:none; }
.node-proposal-total-score { color:var(--teal); font-size:15px; white-space:nowrap; }
.node-proposal-detail-table { height:min(52vh,500px); max-height:none; overflow:auto; border:1px solid #c9ddd8; }
.node-proposal-detail-table table { width:100%; min-width:820px; border-collapse:collapse; table-layout:fixed; }
.node-proposal-detail-table th,.node-proposal-detail-table td { padding:6px; border:1px solid #d8e8e4; vertical-align:top; font-size:10px; }
.node-proposal-detail-table thead th { position:sticky; top:0; z-index:1; color:#fff; background:#0b8068; }
.node-proposal-detail-table thead th:first-child { width:8%; }
.node-proposal-detail-table tbody th { position:static; top:auto; z-index:auto; width:110px; color:var(--ink); background:#f5faf8; text-align:left; }
.node-proposal-detail-table tbody th.node-proposal-category-cell { width:auto; color:#0b8068; background:#edf8f4; font-size:11px; vertical-align:top; }
.node-proposal-detail-table textarea { width:100%; min-height:42px; resize:vertical; overflow-y:auto; padding:4px; border:1px solid #c9ddd8; border-radius:3px; font-size:10px; scrollbar-gutter:stable; }
.node-proposal-detail-table .node-proposal-appearance-textarea { display:block; min-height:118px; max-height:240px; }
.node-proposal-detail-table-note { display:flex; align-items:center; flex-wrap:wrap; gap:6px; margin:8px 0; color:var(--muted); font-size:10px; }
.node-proposal-input-hint { display:inline-flex; align-items:center; width:max-content; padding:1px 5px; border-radius:999px; font-size:9px; line-height:1.35; font-style:normal; font-weight:800; white-space:nowrap; }
.node-proposal-input-hint.required { color:#9b3e21; background:#fff0e9; border:1px solid #f0c6b5; }
.node-proposal-input-hint.optional { color:#477066; background:#eef7f4; border:1px solid #c9e2da; }
.node-proposal-input-hint.auto { color:#315e9b; background:#edf3ff; border:1px solid #c9d9f4; }
.node-proposal-input-hint.none { color:#68726f; background:#f1f3f2; border:1px solid #d9dfdd; }
.node-proposal-field-note { display:block; margin-top:3px; color:var(--muted); font-size:9px; font-weight:400; line-height:1.3; }
.node-proposal-input-wrap { display:flex; flex-direction:column; gap:4px; }
.node-proposal-detail-input-with-link { display:flex; align-items:center; gap:5px; min-width:0; flex-wrap:wrap; }
.node-proposal-detail-input-with-link .node-proposal-detail-input { min-width:180px; flex:1 1 220px; }
.node-proposal-detail-input-with-link.has-unit { flex-wrap:nowrap; gap:4px; }
.node-proposal-detail-input-with-link.has-unit .node-proposal-detail-input { min-width:0; flex:1 1 auto; }
.node-proposal-detail-input-with-link.has-unit .node-proposal-input-unit { white-space:nowrap; }
.node-proposal-detail-link { position:relative; z-index:2; display:inline-flex; align-items:center; min-height:26px; padding:2px 6px; border:1px solid #8cc7b8; border-radius:4px; color:#0b8068; background:#f4fbf9; cursor:pointer; font-size:11px; font-weight:700; white-space:nowrap; text-decoration:underline; }
.node-proposal-read-value .node-proposal-detail-link { display:inline-block; margin-left:6px; }
.node-proposal-detail-control .node-proposal-detail-input { min-width:0; flex:1 1 auto; }
.node-proposal-input-unit { flex:0 0 auto; font-weight:700; }
.node-proposal-fixed-value { display:inline-flex; align-items:center; min-height:28px; padding:4px 7px; color:var(--muted); background:#f1f3f2; border:1px solid #d9dfdd; border-radius:3px; font-size:10px; }
.node-proposal-detail-control { display:flex; align-items:center; gap:5px; }
.node-proposal-measure-control { display:flex; align-items:center; gap:5px; width:100%; }
.node-proposal-measure-control .node-proposal-detail-input { flex:1; min-width:0; }
.node-proposal-measure-unit { flex:0 0 76px; width:76px; }
.node-proposal-detail-input { min-width:0; flex:1; }
.node-proposal-detail-select { width:100%; min-height:28px; }
.node-proposal-input-unit { color:var(--muted); font-size:10px; white-space:nowrap; }
.node-proposal-derived-note { display:block; color:#315e9b; font-size:9px; line-height:1.3; }
.node-proposal-read-value { min-height:42px; white-space:pre-wrap; color:#4f655f; }
.node-proposal-read-value .node-proposal-input-hint { margin-bottom:4px; }
.node-proposal-detail-attachment-zone { display:flex; flex-direction:column; gap:5px; margin-top:4px; padding:5px; border:1px dashed #9ccdc3; background:#f8fcfb; }
.node-proposal-detail-attachment-empty { display:block; min-height:34px; padding:8px 5px; color:var(--muted); background:#fff; font-size:9px; text-align:center; }
.node-proposal-detail-paste-command { display:flex; align-items:center; justify-content:center; min-height:34px; width:100%; padding:7px 8px; border:1px dashed #8cc7b8; background:#fff; color:var(--teal); font-size:11px; font-weight:800; cursor:pointer; }
.node-proposal-detail-attachment-preview { position:relative; min-height:44px; padding:2px 22px 2px 2px; background:#fff; }
.node-proposal-detail-attachment-remove { position:absolute; top:1px; right:1px; z-index:1; display:grid; place-items:center; width:20px; height:20px; padding:0; border:1px solid #c94a61; border-radius:50%; background:#fff; color:#b52f49; font-size:15px; line-height:1; cursor:pointer; }
.node-proposal-detail-attachment { display:flex; align-items:center; gap:6px; min-height:44px; padding:3px; border:1px solid #c9ddd8; background:#fff; color:var(--ink); text-align:left; cursor:pointer; }
.node-proposal-detail-attachment img { width:42px; height:42px; object-fit:cover; }
.node-proposal-detail-attachment span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:9px; }
.node-proposal-detail-attachment-actions { display:flex; gap:4px; }
.node-proposal-detail-attachment-actions .small-command { flex:1; min-width:0; min-height:25px; padding:3px 4px; font-size:9px; }
.node-proposal-own-appearance { display:flex; flex-direction:column; min-height:184px; }
.node-proposal-own-reference-zone { display:flex; min-width:0; flex-direction:column; justify-content:center; gap:4px; padding-bottom:5px; border-bottom:1px solid #b7d9d0; }
.node-proposal-own-reference-zone:focus { outline:2px solid #8cc7b8; outline-offset:-2px; }
.node-proposal-own-reference-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:6px; min-height:40px; align-items:center; }
.node-proposal-own-reference-item { position:relative; min-width:0; }
.node-proposal-own-reference-image { display:block; width:100%; height:154px; padding:2px; border:1px solid #c9ddd8; background:#fff; cursor:zoom-in; }
.node-proposal-own-reference-image img { display:block; width:100%; height:100%; object-fit:contain; }
.node-proposal-own-reference-download { width:100%; margin-top:3px; }
.node-proposal-own-reference-item .node-proposal-detail-attachment-remove { top:-4px; right:-4px; }
.node-proposal-own-reference-actions { display:flex; gap:3px; }
.node-proposal-own-reference-actions .small-command { flex:1; min-width:0; padding:3px; font-size:9px; }
.node-proposal-own-appearance-text { min-width:0; padding-top:5px; text-align:left; }
.node-proposal-own-appearance-text textarea { min-height:74px; text-align:left; }
.node-proposal-own-appearance-text .node-proposal-read-value { display:block; text-align:left; white-space:pre-wrap; }
.node-proposal-rule { color:#4f655f; line-height:1.35; }
.node-proposal-detail-table small { color:var(--muted); }
.node-proposal-detail-table thead small { display:block; margin-top:2px; color:#d9f2eb; font-size:9px; font-weight:400; }
.node-proposal-detail-table table { width:100%; min-width:0; table-layout:fixed; }
.node-proposal-detail-table thead th:nth-child(1) { width:8%; }
.node-proposal-detail-table thead th:nth-child(2) { width:12%; }
.node-proposal-detail-table thead th:nth-child(3) { width:40%; }
.node-proposal-detail-table thead th:nth-child(4) { width:40%; }
.node-proposal-detail-table .node-proposal-competitor-data { background:#eef8ee; }
.node-proposal-detail-table .node-proposal-own-data { background:#fceff3; }
.node-proposal-detail-table thead .node-proposal-competitor-data { color:#234c2c; background:#d7eed9; }
.node-proposal-detail-table thead .node-proposal-own-data { color:#653344; background:#f7dce5; }
.node-proposal-detail-table .node-proposal-competitor-data input,.node-proposal-detail-table .node-proposal-competitor-data textarea,.node-proposal-detail-table .node-proposal-competitor-data select { background:rgba(255,255,255,.82); }
.node-proposal-detail-table .node-proposal-own-data input,.node-proposal-detail-table .node-proposal-own-data textarea,.node-proposal-detail-table .node-proposal-own-data select { background:rgba(255,255,255,.82); }
.node-proposal-detail-table .node-proposal-category-cell { background:#edf8f4; color:#18211f; text-align:center; }
.node-proposal-detail-table tbody th.node-proposal-category-cell { border-top:2px solid #56883f; border-bottom:2px solid #56883f; }
.node-proposal-detail-table .node-proposal-score-cell { background:#dff5ee; text-align:center; }
.node-proposal-score-layout { display:grid; grid-template-columns:minmax(0,3fr) minmax(0,2fr); align-items:stretch; width:100%; min-height:34px; }
.node-proposal-score-value-area { display:flex; align-items:center; justify-content:center; min-width:0; padding:2px 5px; border-right:1px solid #b7d9d0; }
.node-proposal-score-query-area { display:flex; align-items:center; justify-content:center; min-width:0; padding:2px 4px; }
.node-proposal-score-query { width:100%; min-height:28px; padding:3px 4px; white-space:normal; line-height:1.2; }
.node-proposal-detail-table tr.node-proposal-group-start > * { border-top:2px solid #56883f; }
.node-proposal-detail-table tr.node-proposal-group-end > * { border-bottom:2px solid #56883f; }
.node-proposal-detail-table tr.node-proposal-fixed-height-row { height:52px; }
.node-proposal-detail-table tr.node-proposal-fixed-height-row textarea { height:36px; min-height:36px; max-height:36px; resize:none; overflow-y:auto; }
.node-proposal-detail-table tr.node-proposal-fixed-height-row .node-proposal-read-value { display:block; max-height:38px; overflow-y:auto; }
.node-proposal-detail-table tfoot td { border-top:2px solid #56883f; background:#f8fcfb; font-weight:800; text-align:right; }
.node-proposal-detail-attachment-zone { min-height:32px; cursor:pointer; }
.node-proposal-detail-attachment-zone:focus-within { outline:2px solid #8cc7b8; outline-offset:1px; }
.node-proposal-detail-attachment-zone .node-proposal-detail-input { cursor:text; }
.node-proposal-detail-attachment { display:block; width:100%; padding:0; border:0; background:transparent; cursor:pointer; }
.node-proposal-detail-attachment img { display:block; max-width:100%; max-height:120px; margin:0 auto; object-fit:contain; }
.node-proposal-score-input { width:64px; height:28px; padding:0 4px; }
.node-proposal-score-value { color:var(--teal); font-size:13px; }
.node-proposal-assignment { display:flex; align-items:end; gap:8px; margin-top:10px; padding:10px; border:1px solid #d8e8e4; background:#f8fcfb; }
.node-proposal-assignment label { display:flex; flex-direction:column; gap:5px; color:var(--ink); font-size:10px; font-weight:800; }
.node-proposal-assignment .form-select { min-width:220px; height:32px; }
.node-proposal-assignment-read { margin-top:10px; padding:9px; color:var(--ink); background:#f8fcfb; font-size:11px; }
.node-proposal-history { margin-top:10px; border-top:1px solid var(--line); padding-top:7px; }
.node-proposal-history summary { color:var(--teal); cursor:pointer; font-size:10px; font-weight:800; }
.node-proposal-history p { display:flex; gap:8px; margin:5px 0; color:var(--muted); font-size:9px; }
.node-proposal-history p strong { color:var(--ink); }
.node-proposal-records { flex:1 1 60%; min-height:180px; display:flex; flex-direction:column; margin:14px 20px 20px; padding:14px; border:1px solid #d5e5e0; background:#fff; }
.node-proposal-mine-toggle { color:var(--muted); font-size:10px; white-space:nowrap; }
.node-proposal-record-table { flex:1; min-height:0; overflow:auto; border:2px solid #087764; }
.node-proposal-record-table table { width:max-content; min-width:100%; table-layout:fixed; border-collapse:collapse; }
.node-proposal-record-table th,.node-proposal-record-table td { box-sizing:border-box; padding:7px 6px; border:1px solid #c9ddd8; vertical-align:middle; font-size:10px; white-space:nowrap; }
.node-proposal-record-table td small { display:block; margin-top:2px; }
.node-proposal-record-table thead th { position:sticky; top:0; z-index:1; color:#fff; background:#0b8068; }
.node-proposal-record-table tbody tr:nth-child(odd) { background:#f3edff; }
.node-proposal-record-table tbody tr:nth-child(even) { background:#eaf5ff; }
.node-proposal-record-table tbody tr.active { outline:0; outline-offset:0; }
.node-proposal-sequence { display:inline-grid; place-items:center; min-width:28px; height:25px; color:#fff; background:#0b8068; }
.node-proposal-sequence.urgent { display:inline-flex; flex-direction:column; justify-content:center; gap:0; min-width:32px; min-height:36px; height:auto; color:#c62828 !important; font-weight:900; background:#fff0f0; }
.node-proposal-sequence.urgent::before { content:"⚡"; color:#c62828; font-size:13px; line-height:12px; }
.node-proposal-sequence.urgent { text-shadow:none; }
.node-proposal-stage { display:inline-block; padding:3px 6px; border-radius:3px; font-size:9px; }
.node-proposal-stage.passed { color:#087764; background:#dff5ee; }
.node-proposal-stage.rejected { color:#a52d44; background:#fde7ed; }
.node-proposal-stage.pending { color:#8b5a00; background:#fff3d7; }
@media (max-width:1100px) { .node-proposal-flow { grid-template-columns:repeat(3,minmax(120px,1fr)); } .node-proposal-page-head { align-items:flex-start; flex-direction:column; } .node-proposal-standards-grid { grid-template-columns:1fr; } }
@media (max-width:680px) { .node-proposal-flow { grid-template-columns:repeat(2,minmax(120px,1fr)); } }
.node-proposal-dashboard { margin:0 20px; padding:14px; border:1px solid #d5e5e0; background:#fff; }
.node-proposal-dashboard-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:10px; }
.node-proposal-dashboard-head .section-label { color:var(--teal); font-size:17px; font-weight:900; }
.node-proposal-dashboard-meta { display:flex; align-items:center; gap:12px; color:var(--teal); font-size:11px; font-weight:800; white-space:nowrap; }
.node-proposal-target-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:8px; }
.node-proposal-target-card { display:flex; flex-direction:column; gap:4px; padding:9px; border:1px solid #d8e8e4; background:#f8fcfb; }
.node-proposal-target-card strong { color:var(--ink); font-size:12px; }
.node-proposal-target-card span,.node-proposal-target-card b { color:var(--muted); font-size:10px; }
.node-proposal-target-card b { color:var(--teal); }
.node-proposal-filters { display:flex; flex-wrap:wrap; align-items:end; gap:8px; margin:14px 20px 0; padding:10px 12px; border:1px solid #d5e5e0; background:#fff; }
.node-proposal-filters label { display:flex; flex-direction:column; gap:4px; color:var(--muted); font-size:10px; font-weight:800; }
.node-proposal-filters .form-input,.node-proposal-filters .form-select { min-width:150px; height:32px; }
.node-proposal-filter-count { margin-left:auto; color:var(--teal); font-size:10px; font-weight:800; }
.node-proposal-disabled-command { opacity:.42; filter:grayscale(1); }
.node-proposal-table-image { display:inline-grid; place-items:center; width:42px; height:42px; padding:2px; border:1px solid #c9ddd8; background:#fff; cursor:pointer; }
.node-proposal-table-image img { width:36px; height:36px; object-fit:cover; }
.node-proposal-record-table td small { color:var(--muted); }
.node-proposal-inline-name { width:140px; min-width:120px; height:30px; }
.node-proposal-modal-backdrop { position:fixed; inset:0; z-index:50; display:flex; align-items:center; justify-content:center; padding:12px; background:rgba(16,38,33,.52); }
.node-proposal-modal { display:flex; flex-direction:column; width:min(1680px,calc(100vw - 24px)); max-height:96vh; border:1px solid #b5d2ca; background:#fff; box-shadow:0 18px 60px rgba(0,0,0,.25); }
.node-proposal-modal-backdrop.fullscreen { padding:0; background:rgba(16,38,33,.68); }
.node-proposal-modal.fullscreen { width:100vw; height:100vh; max-width:none; max-height:none; border:0; border-radius:0; }
.node-proposal-image-suggestion-backdrop { position:fixed; inset:0; z-index:55; display:flex; align-items:center; justify-content:center; padding:18px; background:rgba(16,38,33,.52); }
.node-proposal-image-suggestion-dialog { width:min(560px,94vw); display:flex; flex-direction:column; max-height:86vh; border:1px solid #b5d2ca; background:#fff; box-shadow:0 18px 60px rgba(0,0,0,.25); }
.node-proposal-image-suggestion-dialog header { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding:14px 18px; border-bottom:1px solid var(--line); background:#f8fcfb; }
.node-proposal-image-suggestion-dialog h3 { margin:4px 0; color:var(--ink); font-size:18px; }
.node-proposal-image-suggestion-dialog p { margin:4px 0 0; color:var(--muted); font-size:11px; }
.node-proposal-image-suggestion-body { display:flex; flex-direction:column; gap:6px; overflow:auto; padding:16px 18px; }
.node-proposal-image-suggestion-body label { color:var(--ink); font-size:11px; font-weight:800; }
.node-proposal-image-suggestion-body textarea { width:100%; min-height:150px; resize:vertical; padding:8px; border:1px solid #9fc9c0; border-radius:4px; color:var(--ink); background:#fff; font:inherit; font-size:13px; line-height:1.5; }
.node-proposal-image-suggestion-body textarea[readonly] { background:#f7fbfa; }
.node-proposal-image-suggestion-body small { color:var(--muted); font-size:10px; text-align:right; }
.node-proposal-image-suggestion-dialog footer { display:flex; justify-content:flex-end; gap:8px; padding:11px 18px; border-top:1px solid var(--line); background:#f8fcfb; }
.node-proposal-modal-head { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:11px 18px; border-bottom:1px solid var(--line); background:#f8fcfb; }
.node-proposal-modal-head-title { min-width:0; }
.node-proposal-modal-head h2 { margin:3px 0 0; color:var(--ink); font-size:17px; }
.node-proposal-modal-head p { margin:3px 0 0; color:var(--muted); font-size:10px; }
.node-proposal-modal-head .node-proposal-modal-submitter { color:var(--ink); font-weight:800; }
.node-proposal-modal-head-actions { display:flex; align-items:center; gap:7px; flex:0 0 auto; }
.node-proposal-modal-head-actions .dialog-close { width:32px; height:32px; padding:0; border:1px solid #c9ddd8; border-radius:4px; color:var(--ink); background:#fff; font-size:20px; line-height:1; cursor:pointer; }
.node-proposal-modal-body { overflow:auto; padding:14px 18px; }
.node-proposal-modal .node-proposal-flow { grid-template-columns:repeat(7,minmax(110px,1fr)); }
.node-proposal-node-actions { display:flex; flex-wrap:wrap; gap:7px; margin-top:11px; }
.node-proposal-modal-foot { display:flex; justify-content:flex-end; gap:8px; padding:11px 18px; border-top:1px solid var(--line); background:#f8fcfb; }
.node-proposal-approval-muted { opacity:.45; filter:grayscale(1); }
.node-proposal-history { margin-top:12px; }
.node-proposal-history h3 { margin:0 0 6px; color:var(--ink); font-size:13px; }
.node-proposal-history p { display:flex; gap:9px; margin:5px 0; color:var(--muted); font-size:9px; }
.node-proposal-history p strong { color:var(--ink); }
.node-proposal-standard-block { display:grid; grid-template-columns:1fr 1fr; gap:5px; align-items:center; padding:8px; border:1px solid #d8e8e4; background:#f8fcfb; }
.node-proposal-standard-block > strong { grid-column:1/-1; color:var(--ink); font-size:11px; }
.node-proposal-standard-block label { display:flex; flex-direction:column; gap:3px; color:var(--muted); font-size:9px; }
.node-proposal-standard-options { grid-column:1/-1; display:flex; flex-direction:column; gap:4px; }
.node-proposal-standard-options > div { display:grid; grid-template-columns:minmax(0,1fr) 70px auto; gap:4px; }
.node-proposal-standard-options input { min-width:0; height:28px; }
@media (max-width:1100px) { .node-proposal-modal .node-proposal-flow { grid-template-columns:repeat(3,minmax(120px,1fr)); } }

/* The proposal detail is a dense form, so let its table consume the dialog height. */
.node-proposal-modal { min-height:0; }
.node-proposal-modal-body { flex:1 1 auto; min-height:0; display:flex; flex-direction:column; overflow:hidden; }
.node-proposal-detail-section { flex:1 1 auto; min-height:0; display:flex; flex-direction:column; }
.node-proposal-detail-section .node-proposal-detail-table { flex:1 1 auto; min-height:0; height:auto; max-height:none; }
.node-proposal-modal.fullscreen .node-proposal-modal-body { padding-bottom:18px; }
.node-proposal-modal-head h2 { font-size:20px; }
.node-proposal-modal-head-actions .button { min-height:36px; padding:0 13px; font-size:12px; }
.node-proposal-modal-head-actions { flex-wrap:wrap; justify-content:flex-end; }
.node-proposal-modal-head-actions .node-proposal-assignment { margin:0; padding:0; border:0; background:transparent; }
.node-proposal-modal-head-actions .node-proposal-assignment label { flex-direction:row; align-items:center; gap:5px; }
.node-proposal-modal-head-actions .node-proposal-assignment .form-select { min-width:150px; height:36px; }
.node-proposal-detail-table th,.node-proposal-detail-table td { padding:3px 5px; font-size:11px; line-height:1.2; }
.node-proposal-detail-table thead th { font-size:12px; }
.node-proposal-detail-font-control { display:inline-flex; align-items:center; gap:5px; color:var(--muted); font-size:10px; font-weight:800; }
.node-proposal-detail-font-control .form-select { width:72px; min-width:72px; height:28px; padding:0 4px; font-size:10px; }
.node-proposal-detail-table.node-proposal-detail-font-small th,
.node-proposal-detail-table.node-proposal-detail-font-small td,
.node-proposal-detail-table.node-proposal-detail-font-small input,
.node-proposal-detail-table.node-proposal-detail-font-small textarea,
.node-proposal-detail-table.node-proposal-detail-font-small select,
.node-proposal-detail-table.node-proposal-detail-font-small .node-proposal-read-value,
.node-proposal-detail-table.node-proposal-detail-font-small .node-proposal-fixed-value { font-size:10px !important; }
.node-proposal-detail-table.node-proposal-detail-font-medium th,
.node-proposal-detail-table.node-proposal-detail-font-medium td,
.node-proposal-detail-table.node-proposal-detail-font-medium input,
.node-proposal-detail-table.node-proposal-detail-font-medium textarea,
.node-proposal-detail-table.node-proposal-detail-font-medium select,
.node-proposal-detail-table.node-proposal-detail-font-medium .node-proposal-read-value,
.node-proposal-detail-table.node-proposal-detail-font-medium .node-proposal-fixed-value { font-size:11px !important; }
.node-proposal-detail-table.node-proposal-detail-font-large th,
.node-proposal-detail-table.node-proposal-detail-font-large td,
.node-proposal-detail-table.node-proposal-detail-font-large input,
.node-proposal-detail-table.node-proposal-detail-font-large textarea,
.node-proposal-detail-table.node-proposal-detail-font-large select,
.node-proposal-detail-table.node-proposal-detail-font-large .node-proposal-read-value,
.node-proposal-detail-table.node-proposal-detail-font-large .node-proposal-fixed-value { font-size:14px !important; }
.node-proposal-detail-table.node-proposal-detail-font-large th,
.node-proposal-detail-table.node-proposal-detail-font-large td { line-height:1.35; }
.node-proposal-detail-table tbody th.node-proposal-category-cell { font-size:12px; }
.node-proposal-detail-table tbody th.node-proposal-item-cell { font-size:11px; }
.node-proposal-detail-table textarea,.node-proposal-detail-table .form-input,.node-proposal-detail-table .form-select { min-height:28px; font-size:11px !important; }
.node-proposal-detail-table textarea { min-height:36px; }
.node-proposal-detail-table .node-proposal-appearance-textarea { min-height:56px; max-height:120px; }
.node-proposal-detail-table .node-proposal-read-value { min-height:0; }
.node-proposal-detail-table .node-proposal-detail-attachment-zone { gap:3px; margin-top:2px; padding:3px; }
.node-proposal-detail-table .node-proposal-detail-paste-command { min-height:28px; padding:4px 6px; font-size:10px; }
.node-proposal-detail-table .node-proposal-detail-attachment-preview,.node-proposal-detail-table .node-proposal-detail-attachment { min-height:36px; }
.node-proposal-detail-table tr.node-proposal-image-detail-row > * { height:184px; }
.node-proposal-detail-table tr.node-proposal-image-detail-row .node-proposal-detail-image-zone { min-height:168px; height:168px; }
.node-proposal-detail-table tr.node-proposal-image-detail-row .node-proposal-detail-attachment-preview,.node-proposal-detail-table tr.node-proposal-image-detail-row .node-proposal-detail-attachment { height:100%; min-height:160px; }
.node-proposal-detail-table tr.node-proposal-image-detail-row .node-proposal-detail-attachment img { width:100%; height:154px; max-height:none; object-fit:contain; }
.node-proposal-detail-table tr.node-proposal-centered-row td { text-align:center; vertical-align:middle; }
.node-proposal-detail-table tr.node-proposal-centered-row .node-proposal-read-value,.node-proposal-detail-table tr.node-proposal-centered-row .node-proposal-fixed-value { display:block; text-align:center; }
.node-proposal-score-input { width:100%; min-height:34px; font-size:12px; }
.node-proposal-score-value { font-size:15px; font-weight:800; }
.node-proposal-total-score { font-size:19px; font-weight:800; }
.node-proposal-total-score.low { color:#c62828; }
.node-proposal-total-score.high { color:#087f5b; }
.node-proposal-total-score.neutral { color:#4f655f; }
.node-proposal-record-table { overflow:auto; }
.node-proposal-records { min-height:0; }
/* Keep the large registration table as its own scroll surface.  Without a
   definite height the table grows with every record, so the browser scrolls
   the whole page and the sticky column header scrolls out of view. */
.node-proposal-record-table {
  flex:1 1 auto;
  height:clamp(260px,calc(100vh - 360px),760px);
  min-height:260px;
  max-height:calc(100vh - 240px);
  overflow:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable both-edges;
}
.node-proposal-record-table table { width:2752px; min-width:2752px; max-width:none; table-layout:fixed; border-collapse:separate; border-spacing:0; }
.node-proposal-record-table th,.node-proposal-record-table td { box-sizing:border-box; white-space:normal; overflow-wrap:anywhere; word-break:break-word; padding:6px 5px; border-right:1px solid #c9ddd8; border-bottom:1px solid #c9ddd8; font-size:11px; line-height:1.3; text-align:center; vertical-align:middle; }
.node-proposal-record-table tr > :first-child { border-left:0; }
.node-proposal-record-table thead th { height:34px; padding:5px 4px; font-size:11px; line-height:20px; white-space:nowrap; }
.node-proposal-record-table thead th .node-proposal-header-note { display:block; margin-top:1px; font-size:9px; line-height:12px; font-weight:700; white-space:nowrap; }
.node-proposal-record-table thead tr { height:42px; }
.node-proposal-record-table thead th { top:0; z-index:3; background-clip:padding-box; box-shadow:0 2px 0 rgba(8,119,100,.35); }
.node-proposal-record-table thead .node-proposal-submission-group { background:#0b8068; }
.node-proposal-record-table thead .node-proposal-design-group { background:#d97706; }
.node-proposal-record-table thead .node-proposal-product-group { background:#1769aa; }
.node-proposal-record-table thead .node-proposal-procurement-group { background:#0b8068; }
.node-proposal-record-table thead .node-proposal-duration-group { background:#c62828; }
.node-proposal-record-table thead .node-proposal-remark-group { background:#2f855a; }
.node-proposal-record-table .small-command { max-width:100%; padding:3px 4px; font-size:8px; white-space:normal; }
.node-proposal-record-table td > button,.node-proposal-record-table td > select { margin-right:auto; margin-left:auto; text-align:center; }
.node-proposal-record-table td small { display:block; margin-top:2px; text-align:center; }
.node-proposal-market-verifier { display:block; margin-top:3px; color:#19705f; font-size:9px; font-weight:700; line-height:1.35; }
.node-proposal-record-table .node-proposal-own-image-suggestion { margin:0; text-align:left; }
.node-proposal-record-table .node-proposal-table-image { width:34px; height:34px; max-width:100%; }
.node-proposal-record-table .node-proposal-table-image img { width:29px; height:29px; }
.node-proposal-product-development { display:flex; flex-direction:column; align-items:stretch; justify-content:flex-start; gap:3px; width:100%; min-width:0; min-height:62px; }
.node-proposal-product-development .node-proposal-development-files { order:1; display:flex; align-items:center; justify-content:center; flex-wrap:nowrap; gap:2px; width:100%; min-height:40px; max-height:44px; overflow:hidden; }
.node-proposal-product-development .node-proposal-development-thumb { position:relative; display:block; width:40px; height:40px; flex:0 0 40px; overflow:hidden; }
.node-proposal-product-development .node-proposal-table-image-preview { display:block; width:52px; height:52px; min-width:52px; padding:0; overflow:hidden; }
.node-proposal-product-development .node-proposal-development-files .node-proposal-table-image-preview { width:40px; height:40px; min-width:40px; }
.node-proposal-product-development .node-proposal-table-image-preview img { display:block; width:40px; height:40px; object-fit:contain; }
.node-proposal-product-development .node-proposal-table-image-remove { position:static; width:auto; height:20px; min-width:0; padding:2px 4px; font-size:9px; line-height:14px; }
.node-proposal-development-actions { order:2; display:flex; align-items:center; justify-content:center; flex-wrap:wrap; width:100%; gap:2px; }
.node-proposal-development-actions .small-command { flex:1 1 0; min-width:0; padding:3px 4px; font-size:9px; }
.node-proposal-development-hint { display:none; }
@media (max-width:680px) { .node-proposal-modal-backdrop { padding:0; } .node-proposal-modal { width:100vw; max-height:100vh; } .node-proposal-filters .form-input,.node-proposal-filters .form-select { min-width:120px; } }
.node-proposal-table-attachment-cell.has-suggestion { display:flex; flex-direction:column; align-items:center; gap:4px; min-width:0; }
.node-proposal-record-table td:nth-child(2) small { display:none; }
.node-proposal-record-table .node-proposal-followup-control { width:100%; min-width:0; height:32px; padding:3px 4px; box-sizing:border-box; font-size:10px; text-align:left; }
.node-proposal-record-table select.node-proposal-followup-control { text-align:center; }
.node-proposal-assignment-control { display:flex; align-items:center; gap:4px; min-width:0; }
.node-proposal-assignment-control .node-proposal-followup-control { flex:1 1 auto; }
.node-proposal-assignment-save { flex:0 0 auto; white-space:nowrap; }
.node-proposal-record-table .node-proposal-followup-read { display:block; white-space:normal; }
.node-proposal-followup-pending { color:#c52f2f !important; font-weight:800 !important; }
.node-proposal-record-table .node-proposal-followup-control.node-proposal-followup-pending::placeholder { color:#c52f2f; opacity:1; font-weight:800; }
.node-proposal-mobile-date-field .node-proposal-followup-control.node-proposal-followup-pending::placeholder { color:#c52f2f; opacity:1; font-weight:800; }
.node-proposal-date-control { position:relative; display:block; width:100%; min-height:26px; }
.node-proposal-date-control .node-proposal-date-display { display:block; width:100%; min-height:26px; padding:2px 3px; color:var(--ink); border:1px solid transparent; border-radius:4px; background:transparent; font:inherit; font-size:10px; text-align:center; cursor:pointer; }
.node-proposal-record-table .node-proposal-date-display:hover,.node-proposal-record-table .node-proposal-date-display:focus-visible { color:#0f5d50; border-color:#8bb8ae; background:#f4faf8; outline:0; }
.node-proposal-date-control .node-proposal-date-picker { position:absolute; inset:0; z-index:2; display:block; width:100%; height:100%; min-height:26px; padding:0; border:0; opacity:0; cursor:pointer; pointer-events:auto; }
.node-proposal-date-control .node-proposal-date-picker:focus-visible { outline:2px solid #8bb8ae; outline-offset:1px; }
.node-proposal-record-table .node-proposal-registration-copy { display:block; width:100%; margin:3px auto 0; padding:2px 3px; font-size:8px; }
.node-proposal-record-table .node-proposal-registration-copy:disabled { cursor:not-allowed; opacity:.45; }
.node-proposal-record-table .node-proposal-duration-cell { color:#087764; background:#f3faf7; font-weight:800; }
.node-proposal-record-table .node-proposal-audit-cell { display:grid; gap:3px; text-align:left; }
.node-proposal-record-table .node-proposal-audit-cell > div { display:grid; grid-template-columns:44px minmax(0,1fr); align-items:center; gap:3px; padding:2px 0; border-bottom:1px solid #d8e8e4; }
.node-proposal-record-table .node-proposal-audit-cell > div .node-proposal-audit-actions { grid-column:1/-1; display:grid; grid-template-columns:1fr 1fr; gap:3px; padding-top:4px; border-bottom:0; }
.node-proposal-record-table .node-proposal-audit-cell > div:last-child { border-bottom:0; }
.node-proposal-record-table .node-proposal-audit-cell span { color:var(--muted); font-size:11px; font-weight:900; }
.node-proposal-record-table .node-proposal-audit-cell strong { font-size:9px; text-align:center; }
.node-proposal-record-table .node-proposal-audit-cell small { grid-column:1/-1; margin:0; font-size:8px; }
.node-proposal-record-table .node-proposal-audit-cell > .node-proposal-audit-actions { display:grid; grid-template-columns:1fr 1fr; gap:3px; padding-top:4px; border-bottom:0; }
.node-proposal-record-table .node-proposal-audit-actions .small-command { width:100%; min-width:0; height:23px; padding:2px; }
.node-proposal-record-table .node-proposal-audit-actions .small-command.primary { color:#fff; border-color:#087764; background:#087764; }
.node-proposal-record-table .node-proposal-audit-actions .small-command:disabled { cursor:not-allowed; opacity:.42; filter:grayscale(1); }
.node-proposal-record-table .node-proposal-audit-actions > small { grid-column:1/-1; color:var(--muted); text-align:center; }
.node-proposal-record-table tbody .node-proposal-sticky-col { position:sticky !important; z-index:4; background-clip:padding-box; }
.node-proposal-record-table .node-proposal-sticky-col { position:sticky !important; z-index:4; background:#fff; }
.node-proposal-record-table tbody tr:nth-child(odd) .node-proposal-sticky-col { background:#f3edff; }
.node-proposal-record-table tbody tr:nth-child(even) .node-proposal-sticky-col { background:#eaf5ff; }
.node-proposal-record-table thead .node-proposal-sticky-col { position:sticky !important; z-index:6; color:#fff; background:#0b8068; }
.node-proposal-record-table thead .node-proposal-sticky-col.node-proposal-submission-group { background:#0b8068; }
.node-proposal-record-table thead .node-proposal-sticky-col { top:0; }
.node-proposal-record-table .node-proposal-sticky-9 { box-shadow:2px 0 0 #087764; }
.node-proposal-mobile-cards { display:none; }
.node-proposal-mobile-card { border:1px solid #b5d2ca; border-radius:10px; background:#fff; box-shadow:0 3px 14px rgba(18,53,45,.08); overflow:hidden; }
.node-proposal-mobile-card-head { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; padding:12px 13px; background:#f2faf7; border-bottom:1px solid #d8e8e4; }
.node-proposal-mobile-card-head strong { display:block; color:var(--ink); font-size:15px; line-height:1.35; }
.node-proposal-mobile-card-head small { display:block; margin-top:4px; color:var(--muted); font-size:11px; }
.node-proposal-mobile-urgent { flex:0 0 auto; padding:4px 7px; color:#a54800; border:1px solid #f1c28e; border-radius:999px; background:#fff5e8; font-size:11px; font-weight:800; }
.node-proposal-mobile-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; padding:10px 13px; }
.node-proposal-mobile-facts div { min-width:0; padding:7px 8px; border-radius:6px; background:#f8fbfa; }
.node-proposal-mobile-facts span,.node-proposal-mobile-status-grid h4 { display:block; color:var(--muted); font-size:10px; font-weight:700; }
.node-proposal-mobile-facts b { display:block; margin-top:3px; overflow-wrap:anywhere; color:var(--ink); font-size:12px; }
.node-proposal-mobile-status-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; padding:0 13px 10px; }
.node-proposal-mobile-status-grid > section { min-width:0; padding:9px; border:1px solid #e0ece8; border-radius:7px; background:#fff; }
.node-proposal-mobile-status-grid h4 { margin:0 0 6px; color:#087764; font-size:12px; }
.node-proposal-mobile-status-grid .node-proposal-record-table { border:0; }
.node-proposal-mobile-status-grid .node-proposal-audit-cell { font-size:11px; }
.node-proposal-mobile-status-grid .node-proposal-audit-cell > div { grid-template-columns:40px minmax(0,1fr); }
.node-proposal-mobile-status-grid .node-proposal-design-cell { min-height:0; }
.node-proposal-mobile-product-state { display:grid; gap:8px; }
.node-proposal-mobile-product-state > div:first-child { display:grid; gap:3px; }
.node-proposal-mobile-product-state > div:first-child > span { color:var(--muted); font-size:10px; }
.node-proposal-mobile-product-state .node-proposal-table-attachment-cell { min-height:44px; }
.node-proposal-mobile-dates { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; margin-top:9px; }
.node-proposal-mobile-date-field { min-width:0; padding:6px; border:1px solid #d8e8e4; border-radius:6px; background:#f8fcfb; }
.node-proposal-mobile-date-field > span { display:block; margin-bottom:3px; color:var(--muted); font-size:9px; line-height:1.25; }
.node-proposal-mobile-date-field .node-proposal-date-display { width:100%; min-height:32px; padding:5px 3px; border:1px solid #8bb8ae; border-radius:4px; background:#fff; color:var(--ink); font:inherit; font-size:11px; text-align:center; cursor:pointer; }
.node-proposal-mobile-date-field .node-proposal-date-display:hover,.node-proposal-mobile-date-field .node-proposal-date-display:focus-visible { color:#0f5d50; background:#f4faf8; outline:2px solid #8bb8ae; outline-offset:1px; }
.node-proposal-mobile-card-actions { display:flex; gap:7px; padding:10px 13px; border-top:1px solid #d8e8e4; background:#f8fcfb; }
.node-proposal-mobile-card-actions .button { flex:1 1 0; min-height:36px; padding:7px 8px; font-size:12px; }
.node-proposal-mobile-card-actions .node-proposal-mobile-delete { flex:0 0 auto; color:#a22; }
@media (max-width:680px) {
  .node-proposal-record-table { height:auto; min-height:0; max-height:none; scrollbar-gutter:auto; }
  .node-proposal-record-table { display:none; }
  .node-proposal-mobile-cards { display:grid; gap:10px; }
  .node-proposal-records { overflow:visible; }
  .node-proposal-list-mode { position:sticky; top:0; z-index:8; padding:6px 0; background:var(--paper,#f4f8f6); }
  .node-proposal-list-mode .node-proposal-single-item-warning { order:5; flex:1 0 100%; margin:0; font-size:10px; }
  .node-proposal-list-mode .node-proposal-table-fullscreen-button { margin-left:auto; }
  .node-proposal-mobile-status-grid .node-proposal-record-table { display:block; }
  .node-proposal-mobile-card .node-proposal-audit-cell { display:grid; gap:3px; text-align:left; }
  .node-proposal-mobile-card .node-proposal-audit-cell > div { display:grid; grid-template-columns:40px minmax(0,1fr); align-items:center; gap:3px; padding:2px 0; border-bottom:1px solid #d8e8e4; }
  .node-proposal-mobile-card .node-proposal-audit-cell > div:last-child { border-bottom:0; }
  .node-proposal-mobile-card .node-proposal-audit-cell span { color:var(--muted); font-size:11px; font-weight:900; }
  .node-proposal-mobile-card .node-proposal-audit-cell strong { font-size:11px; text-align:center; }
  .node-proposal-mobile-card .node-proposal-audit-cell small { grid-column:1/-1; font-size:9px; }
  .node-proposal-mobile-card .node-proposal-audit-actions { grid-column:1/-1; display:grid; grid-template-columns:1fr 1fr; gap:4px; padding-top:4px; }
  .node-proposal-mobile-card .node-proposal-audit-actions .small-command { min-height:27px; }
  .node-proposal-records.fullscreen .node-proposal-mobile-cards { display:none; }
  .node-proposal-records.fullscreen .node-proposal-record-table { display:block; }
}
.node-proposal-design-receipt-backdrop { position:fixed; inset:0; z-index:60; display:flex; align-items:center; justify-content:center; padding:18px; background:rgba(16,38,33,.52); }
.node-proposal-design-receipt-dialog { width:min(520px,94vw); display:flex; flex-direction:column; max-height:86vh; border:1px solid #b5d2ca; background:#fff; box-shadow:0 18px 60px rgba(0,0,0,.25); }
.node-proposal-design-receipt-dialog header { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding:14px 18px; border-bottom:1px solid var(--line); background:#f8fcfb; }
.node-proposal-design-receipt-dialog h3 { margin:4px 0; color:var(--ink); font-size:18px; }
.node-proposal-design-receipt-dialog p { margin:4px 0 0; color:var(--muted); font-size:11px; }
.node-proposal-design-receipt-body { padding:18px; }
.node-proposal-design-receipt-body label { display:flex; flex-direction:column; gap:6px; color:var(--ink); font-size:11px; font-weight:800; }
.node-proposal-design-receipt-dialog footer { display:flex; justify-content:flex-end; gap:8px; padding:11px 18px; border-top:1px solid var(--line); background:#f8fcfb; }
.node-proposal-design-cell { display:flex; flex-direction:column; align-items:center; gap:4px; min-width:0; line-height:1.2; }
.node-proposal-design-cell > small { color:var(--muted); font-size:9px; white-space:normal; text-align:center; }
.node-proposal-design-cell .node-proposal-design-draft-preview { display:flex; justify-content:center; width:100%; min-height:52px; }
.node-proposal-design-cell .node-proposal-design-draft-preview { order:0; }
.node-proposal-design-cell .node-proposal-design-assignment,
.node-proposal-design-cell .node-proposal-design-actions { display:flex; align-items:center; justify-content:center; gap:3px; width:100%; }
.node-proposal-design-cell .node-proposal-design-assignment > span { font-size:10px; font-weight:800; }
.node-proposal-design-cell .node-proposal-design-actions > * { flex:1 1 0; min-width:0; }
.node-proposal-design-cell .small-command,
.node-proposal-table-attachment-cell .small-command { min-height:23px; padding:2px 4px; font-size:9px; line-height:1.2; }
.node-proposal-design-cell .node-proposal-design-actions input[type=file] { display:none; }
.node-proposal-design-cell > button.small-command { order:3; }
.node-proposal-design-cell .node-proposal-design-receipt-button { margin:0 auto; }
.node-proposal-design-cell .node-proposal-table-attachment { max-width:100%; }
.node-proposal-design-cell .node-proposal-design-draft-preview .node-proposal-table-image-wrap { flex-direction:column; align-items:center; gap:3px; width:68px; }
.node-proposal-design-cell .node-proposal-design-draft-preview .node-proposal-attachment-download { order:2; }
.node-proposal-record-table .node-proposal-audit-cell > div { min-height:32px; }
.node-proposal-record-table .node-proposal-audit-cell strong { font-size:11px; font-weight:900; }
.node-proposal-record-table .node-proposal-audit-cell strong.approved { color:#087c4c; }
.node-proposal-record-table .node-proposal-audit-cell strong.rejected { color:#c62828; }
.node-proposal-design-pending,.node-proposal-assignment-status { display:inline-flex; align-items:center; justify-content:center; min-height:24px; padding:3px 6px; color:#8a5a0a; border:1px solid #efd49d; border-radius:999px; background:#fff8e8; font-size:9px; font-weight:800; line-height:1.25; white-space:normal; text-align:center; }
.node-proposal-design-node { margin-top:14px; padding:14px; border:1px solid #b5d2ca; background:#f8fcfb; }
.node-proposal-design-node-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.node-proposal-design-node-head h3 { margin:0; font-size:16px; }
.node-proposal-design-node-head p { margin:4px 0 0; color:var(--muted); font-size:11px; }
.node-proposal-design-node-head > small { color:var(--muted); font-size:10px; }
.node-proposal-design-draft { display:grid; grid-template-columns:120px minmax(0,1fr); gap:8px; align-items:center; margin-top:12px; padding-top:12px; border-top:1px solid var(--line); }
.node-proposal-design-draft > strong { font-size:12px; }
.node-proposal-design-draft > div { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.node-proposal-design-draft > small { grid-column:2; color:var(--muted); font-size:10px; }
.node-proposal-brands-panel { margin-top:12px; }
.node-proposal-brand-actions { display:flex; gap:8px; margin:10px 0; }
.node-proposal-brand-table table { width:100%; border-collapse:collapse; }
.node-proposal-brand-table th,.node-proposal-brand-table td { padding:8px; border:1px solid var(--line); text-align:left; vertical-align:middle; }
.node-proposal-brand-table th:first-child,.node-proposal-brand-table td:first-child { width:70px; text-align:center; }
.node-proposal-brand-table .form-input { width:100%; min-height:32px; }
.node-proposal-record-table .node-proposal-category-trigger,.node-proposal-record-table .node-proposal-inline-select { width:100%; min-width:0; max-width:100%; box-sizing:border-box; }
.node-proposal-record-table .node-proposal-category-trigger { padding:3px 2px; line-height:1.2; }
.node-proposal-list-mode { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin:0 0 10px; }
.node-proposal-mode-empty { display:grid; gap:6px; place-items:center; min-height:120px; }
.node-proposal-mode-empty strong { color:var(--ink); font-size:13px; }
.node-proposal-mode-empty span { color:var(--muted); }
.node-proposal-mode-empty .button { margin-top:4px; }
.node-proposal-list-mode strong { margin-right:4px; color:var(--ink); font-size:15px; }
.node-proposal-list-mode .node-proposal-create-button { color:#fff; background:#1769d1; border-color:#1769d1; }
.node-proposal-list-mode .node-proposal-create-button:hover { color:#fff; background:#1255aa; border-color:#1255aa; }
.node-proposal-records > .node-proposal-section-head { display:none; }
.node-proposal-table-fullscreen-button { margin-left:auto; }
.node-proposal-records.fullscreen { position:fixed; inset:0; z-index:10020; width:100vw; height:100vh; min-height:0; margin:0; padding:12px; border:0; background:#fff; box-sizing:border-box; }
.node-proposal-records.fullscreen > .node-proposal-section-head { display:none; }
.node-proposal-records.fullscreen .node-proposal-list-mode { flex:0 0 auto; min-height:38px; padding:0 4px; }
.node-proposal-records.fullscreen .node-proposal-record-table { flex:1 1 auto; height:calc(100vh - 62px); max-height:none; }
.node-proposal-records.fullscreen .node-proposal-table-fullscreen-button { position:sticky; right:0; z-index:8; }
.node-proposal-stock-record-table table { width:100%; min-width:900px; table-layout:fixed; }
.node-proposal-stock-description { display:flex; align-items:center; gap:6px; min-height:34px; text-align:left; white-space:normal; overflow-wrap:anywhere; }
.node-proposal-stock-description-edit { display:grid; grid-template-columns:minmax(140px,1fr) minmax(140px,1fr); gap:5px; }
.node-proposal-stock-description-edit textarea { width:100%; min-width:0; min-height:38px; box-sizing:border-box; resize:vertical; }
.node-proposal-stock-description-edit > .form-input { width:100%; min-width:0; box-sizing:border-box; }
.node-proposal-stock-image-actions { display:flex; align-items:center; gap:5px; grid-column:1/-1; }
.node-proposal-stock-link { color:#087764; text-decoration:underline; }
.node-proposal-stock-image-wrap { position:relative; display:inline-flex; align-items:center; }
.node-proposal-stock-image { width:42px; height:42px; padding:0; border:1px solid #c9ddd8; background:#fff; cursor:pointer; }
.node-proposal-stock-image img { width:100%; height:100%; object-fit:contain; }
.node-proposal-stock-image-wrap .node-proposal-table-image-remove { position:absolute; top:-8px; right:-8px; z-index:1; }
.node-proposal-stock-purchase-input { width:100%; min-width:0; box-sizing:border-box; font-size:10px; }
.node-proposal-stock-purchase-read { white-space:normal; }
.node-proposal-stock-status { display:block; margin-top:4px; font-size:10px; font-weight:700; }
.node-proposal-stock-status.confirmed { color:#137c6b; }
.node-proposal-stock-status.pending { color:#a46713; }
.node-proposal-stock-modal-backdrop { position:fixed; inset:0; z-index:1200; display:grid; place-items:center; padding:12px; background:rgba(16,39,35,.46); }
.node-proposal-stock-modal-backdrop.fullscreen { padding:0; }
.node-proposal-stock-modal { width:min(900px,calc(100vw - 24px)); max-height:min(90vh,900px); display:flex; flex-direction:column; overflow:hidden; border:1px solid var(--line-strong); border-radius:10px; background:#fff; box-shadow:0 20px 70px rgba(0,0,0,.25); }
.node-proposal-stock-modal.fullscreen { width:100vw; height:100vh; max-height:none; border:0; border-radius:0; }
.node-proposal-stock-modal header { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:18px 22px; border-bottom:1px solid var(--line); background:#f8fcfb; }
.node-proposal-stock-modal h2 { margin:4px 0 5px; color:var(--ink); font-size:19px; line-height:1.4; }
.node-proposal-stock-modal-actions { display:flex; align-items:center; gap:7px; flex-wrap:wrap; justify-content:flex-end; }
.node-proposal-stock-modal-body { flex:1 1 auto; overflow:auto; display:grid; gap:16px; padding:22px; }
.node-proposal-stock-modal-link-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; align-items:center; }
.node-proposal-stock-modal-link-row .button { white-space:nowrap; }
.node-proposal-stock-modal-body > label { display:grid; gap:7px; color:var(--ink); font-size:14px; font-weight:700; }
.node-proposal-stock-modal-body .form-input, .node-proposal-stock-modal-body .form-textarea { font-size:15px; }
.node-proposal-stock-modal-upload-zone { min-height:220px; display:grid; place-items:center; align-content:center; gap:12px; padding:16px; border:1px dashed #8bb8ae; border-radius:8px; background:#f4faf8; outline:0; }
.node-proposal-stock-modal-upload-zone:focus, .node-proposal-stock-modal-upload-zone:hover { border-color:var(--teal); background:#eaf7f3; }
.node-proposal-stock-modal-image-wrap { position:relative; max-width:min(680px,100%); }
.node-proposal-stock-modal-image { display:block; max-width:100%; padding:0; border:1px solid var(--line); border-radius:6px; background:#fff; cursor:zoom-in; }
.node-proposal-stock-modal-image img { display:block; max-width:100%; max-height:48vh; object-fit:contain; }
.node-proposal-stock-modal-image-actions { display:flex; align-items:center; justify-content:center; gap:8px; }
.node-proposal-stock-modal-empty { color:var(--muted); font-size:13px; }
.node-proposal-stock-modal-state { margin:0; font-size:12px; }
.node-proposal-stock-modal-state.confirmed { color:#137c6b; font-weight:700; }
.node-proposal-stock-modal-state.pending { color:#a46713; }
.node-proposal-stock-modal footer { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 22px; border-top:1px solid var(--line); color:var(--muted); font-size:12px; }
@media (max-width:720px) {
  .node-proposal-stock-modal header { padding:14px; }
  .node-proposal-stock-modal h2 { font-size:16px; }
  .node-proposal-stock-modal-body { padding:14px; }
  .node-proposal-stock-modal footer { padding:12px 14px; }
}

.node-proposal-read-summary { display:grid; gap:3px; margin-top:5px; }
.node-proposal-read-summary-button { display:flex; align-items:center; justify-content:space-between; gap:5px; width:100%; min-width:0; padding:3px 5px; color:#53665f; border:1px solid #cbded7; border-radius:4px; background:#f6faf8; font:inherit; font-size:9px; line-height:1.25; cursor:pointer; }
.node-proposal-read-summary-button:hover,.node-proposal-read-summary-button:focus-visible { color:#0f5d50; border-color:#78aa9f; background:#eaf7f3; outline:0; }
.node-proposal-read-summary b { color: #176d5d; font-size: 9px; }
.node-proposal-read-dialog-backdrop { position:fixed; inset:0; z-index:10080; display:flex; align-items:center; justify-content:center; padding:18px; background:rgba(16,38,33,.55); }
.node-proposal-read-dialog { width:min(620px,94vw); max-height:86vh; display:flex; flex-direction:column; overflow:hidden; border:1px solid #a9cbc3; border-radius:10px; background:#fff; box-shadow:0 20px 70px rgba(0,0,0,.28); }
.node-proposal-read-dialog header { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding:16px 18px; border-bottom:1px solid var(--line); background:#f4faf8; }
.node-proposal-read-dialog h3 { margin:4px 0 0; color:var(--ink); font-size:18px; }
.node-proposal-read-dialog-body { overflow:auto; padding:16px 18px; }
.node-proposal-read-dialog-body table { width:100%; border-collapse:collapse; table-layout:fixed; }
.node-proposal-read-dialog-body th,.node-proposal-read-dialog-body td { padding:9px 10px; border:1px solid #d8e7e2; text-align:left; overflow-wrap:anywhere; }
.node-proposal-read-dialog-body th { color:#285d53; background:#eef7f4; font-size:11px; }
.node-proposal-read-dialog-body td { color:var(--ink); font-size:11px; }
.node-proposal-read-dialog-empty { padding:26px 10px !important; color:var(--muted) !important; text-align:center !important; }
.node-proposal-read-dialog footer { display:flex; justify-content:flex-end; padding:11px 18px; border-top:1px solid var(--line); background:#f8fcfb; }
.node-proposal-time-rules-panel { display: grid; gap: 16px; }
.control-pane[data-control-pane="node-proposal-time-rules"] { padding-bottom: 18px; }
.node-proposal-time-rules-table table { min-width: 980px; }
.node-proposal-time-rules-table th { white-space: nowrap; }
.node-proposal-time-rules-table td { vertical-align: middle; }
.node-proposal-time-rules-table .form-input { min-width: 90px; }
.node-proposal-calendar-panel { display:grid; gap:16px; }
.control-pane[data-control-pane="node-proposal-calendar"] { padding-bottom:18px; }
.node-calendar-toolbar { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.node-calendar-toolbar label { display:flex; align-items:center; gap:6px; color:var(--muted); font-size:12px; }
.node-calendar-toolbar select, .node-proposal-calendar-panel input, .node-proposal-calendar-panel select { min-height:32px; }
.node-calendar-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:16px; }
.node-calendar-layout > div { min-width:0; }
.node-calendar-layout h4 { margin:0 0 8px; color:var(--ink); font-size:13px; }
.node-proposal-calendar-panel table { min-width:640px; }
.node-proposal-calendar-panel th, .node-proposal-calendar-panel td { white-space:nowrap; vertical-align:middle; }
.node-proposal-calendar-panel input[data-calendar-name] { min-width:130px; }
.node-calendar-subtitle { margin-top:16px !important; }
.node-calendar-reference-note { color:#a15b00; font-size:12px; font-weight:700; }
.node-calendar-help { margin:10px 0 0; color:var(--muted); font-size:11px; line-height:1.6; }
.node-calendar-node-rules { margin-top:2px; }
.node-calendar-node-rules table { min-width:760px; }
.node-calendar-node-rules th:not(:first-child), .node-calendar-node-rules td { text-align:center; }
.node-calendar-node-rules input[type="checkbox"] { width:16px; height:16px; }
@media (max-width:900px) { .node-calendar-layout { grid-template-columns:1fr; } }
.node-rule-switch { display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; }
.node-rule-recipients { display: grid; gap: 5px; }
.node-rule-recipients label { display: flex; align-items: center; gap: 6px; color: var(--ink); font-size: 11px; white-space: nowrap; }
.copy-review-table { min-width: 0; width: 100%; border-collapse: collapse; table-layout: fixed; }
.copy-review-table th { position: sticky; top: 0; z-index: 2; padding: 5px 2px; color: #fff; background: #0b8068; border: 2px solid #087764; font-size: 11px; line-height: 1.2; text-align: center; white-space: normal; overflow-wrap: anywhere; }
.copy-review-table th span, .copy-review-table th small { display: block; }
.copy-review-table th small { margin-top: 2px; color: #dff5ee; font-size: 8px; font-weight: 500; }
.copy-review-table td { min-width: 0; padding: 4px 3px; border-top: 1px solid #77b8aa; border-right: 1px solid #9ccdc3; vertical-align: middle; color: var(--ink); font-size: 11px; white-space: normal; overflow-wrap: anywhere; }
.copy-review-table th:nth-child(1), .copy-review-table td:nth-child(1) { width: 3.5%; text-align: center; }
.copy-review-table th:nth-child(2), .copy-review-table td:nth-child(2) { width: 6.5%; text-align: center; font-size: 10px; }
.copy-review-table td:nth-child(2) { padding-right: 1px; padding-left: 1px; white-space: nowrap; }
.copy-review-table th:nth-child(3), .copy-review-table td:nth-child(3) { width: 4.5%; text-align: center; }
.copy-review-table th:nth-child(4), .copy-review-table td:nth-child(4) { width: 4.5%; text-align: center; }
.copy-review-table th:nth-child(5), .copy-review-table td:nth-child(5) { width: 7%; text-align: center; }
.copy-review-table th:nth-child(6), .copy-review-table td:nth-child(6) { width: 13.5%; }
.copy-review-table th:nth-child(7), .copy-review-table td:nth-child(7) { width: 16%; }
.copy-review-table th:nth-child(8), .copy-review-table td:nth-child(8) { width: 5.5%; text-align: center; }
.copy-review-table th:nth-child(9), .copy-review-table td:nth-child(9) { width: 15.5%; }
.copy-review-table th:nth-child(10), .copy-review-table td:nth-child(10) { width: 7%; text-align: center; }
.copy-review-table th:nth-child(11), .copy-review-table td:nth-child(11) { width: 7%; text-align: center; }
.copy-review-table th:nth-child(12), .copy-review-table td:nth-child(12) { width: 6%; text-align: center; }
.copy-review-table th:nth-child(13), .copy-review-table td:nth-child(13) { width: 3.5%; text-align: center; }
.copy-review-data-row:nth-child(odd), .copy-review-data-row:nth-child(odd) td { background: #f1e8ff; }
.copy-review-data-row:nth-child(even), .copy-review-data-row:nth-child(even) td { background: #ffe8f1; }
.copy-review-data-row:hover td { background: #e0f4ef; }
.copy-review-data-row td:first-child { vertical-align: middle; }
.copy-review-seq { display: inline-flex; width: 26px; height: 25px; align-items: center; justify-content: center; background: #0b8068; color: #fff; font-size: 11px; font-weight: 900; }
.copy-review-product-input { width: 100%; height: 40px; min-height: 40px; max-height: 64px; padding: 5px; border: 1px solid #b8d5ce; border-radius: 4px; background: #fff; color: var(--ink); font-size: 11px; line-height: 1.35; resize: vertical; }
.copy-review-sync-state { display: block; width: 100%; min-height: 16px; margin: 2px 0 0; padding: 1px 2px; border: 0; border-radius: 0; background: transparent; color: #64756f; font: inherit; font-size: 9px; line-height: 1.3; text-align: left; white-space: normal; overflow-wrap: anywhere; }
.copy-review-sync-state:disabled { opacity: 1; cursor: default; }
.copy-review-sync-state.saving, .copy-review-sync-state.deleting { color: #8b5a00; }
.copy-review-sync-state.saved { color: #397266; }
.copy-review-sync-state.error, .copy-review-sync-state.conflict { color: #a52d44; font-weight: 800; }
.copy-review-sync-state.error { cursor: pointer; text-decoration: underline; }
.copy-review-note-input { width: 100%; height: 54px; min-height: 54px; max-height: 90px; padding: 5px; border: 1px solid #d6b96d; border-radius: 4px; background: #fffbed; color: var(--ink); font-size: 10px; line-height: 1.35; resize: vertical; }
.copy-review-note-input:read-only { border-color: #cbd9d5; background: rgba(255,255,255,.55); color: #536a64; resize: none; }
.copy-review-type-select { width: 100%; min-width: 0; height: 30px; padding: 0 18px 0 3px; border: 1px solid #93c9bd; border-radius: 4px; background-color: #fff; color: var(--ink); font-size: 11px; font-weight: 800; }
.copy-review-type-select:disabled { color: #667a75; background-color: #edf3f1; cursor: not-allowed; }
.copy-review-table small { display: block; margin-top: 4px; color: var(--muted); font-size: 9px; line-height: 1.3; overflow-wrap: anywhere; }
.copy-review-table small.warn { color: #b36a00; font-weight: 800; }
.copy-review-file-cell { display: grid; grid-template-columns: minmax(0,1fr); width: 100%; min-width: 0; gap: 4px; place-items: center; outline: 0; overflow: hidden; }
.copy-review-file-cell:focus { box-shadow: 0 0 0 2px #0b806833 inset; }
.copy-review-file-cell.dragging { box-shadow: 0 0 0 2px #0b8068 inset; background: #e9f8f4; }
.copy-review-file-actions { display: flex; width: 100%; min-width: 0; gap: 3px; justify-content: center; flex-wrap: wrap; }
.copy-review-file-actions .small-command { max-width: 100%; min-width: 0; height: 22px; padding: 0 4px; color: #087764; border-color: #91cabe; background: #f2fbf8; font-size: 9px; white-space: normal; overflow-wrap: anywhere; }
.copy-review-file-actions .small-command:hover:not(:disabled) { color: #fff; border-color: #087764; background: #087764; }
.copy-review-file-chip { display: grid; grid-template-columns: 26px minmax(0,1fr); align-items: center; width: 100%; max-width: 100%; min-height: 28px; border: 1px solid #c8e0da; background: #fff; overflow: hidden; }
.copy-review-file-chip-button { padding: 0; cursor: pointer; }
.copy-review-file-chip-button:focus { box-shadow: 0 0 0 2px #0b806833 inset; }
.copy-review-file-chip i { display: grid; height: 30px; place-items: center; color: #fff; background: #10966f; font-size: 17px; font-style: normal; font-weight: 900; }
.copy-review-file-chip.archive { border-color: #b8c7cf; }
.copy-review-file-chip.archive i { background: #5b6f7b; font-size: 8px; }
.copy-review-file-chip.link { border-color: #aebfca; }
.copy-review-file-chip.link i { background: #426b82; font-size: 8px; }
.copy-review-file-chip.pasted i { font-size: 11px; }
.copy-review-file-chip span { min-width: 0; padding: 0 6px; color: var(--ink); font-size: 10px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.copy-review-file-empty { display: inline-flex; min-height: 24px; align-items: center; justify-content: center; padding: 0 8px; color: #6d817c; border: 1px solid transparent; background: transparent; font-size: 11px; text-align: center; }
.copy-review-file-empty.protected { color: #8a4b5f; border-color: #ebc3cf; background: #fff3f7; font-weight: 800; }
.copy-review-file-hint { max-width: 100%; margin: 0 !important; color: #6b7d79 !important; font-size: 8px !important; line-height: 1.25 !important; }
.copy-review-file-cell.uploading .copy-review-file-actions button { pointer-events: none; opacity: .55; }
.copy-review-upload-progress { width: min(170px,100%); color: #526963; font-size: 9px; line-height: 1.3; text-align: center; }
.copy-review-upload-progress i { display: block; width: 0; height: 4px; margin-bottom: 3px; border-radius: 2px; background: #0b8068; transition: width .15s linear; }
.copy-review-upload-progress.error { color: #a52d44; }
.copy-review-upload-progress.error i { background: #c64059; }
.copy-review-upload-progress.uploading { color: #8b5a00; }
.copy-review-status-wrap { display: flex; min-width: 0; align-items: center; justify-content: center; gap: 3px; flex-wrap: wrap; }
.copy-review-status-wrap .button { width: 100%; min-width: 0; height: 26px; padding: 0 3px; font-size: 10px; white-space: normal; }
.copy-review-status-wrap .copy-review-status-badge { max-width: 100%; margin: 0 !important; padding: 2px 4px; font-size: 9px; line-height: 1.2; flex: 0 1 auto; }
.copy-review-status-badge { display: inline-block !important; margin: 5px auto 0 !important; padding: 3px 8px; border: 1px solid #bfe1d8; border-radius: 999px; color: #0a6659 !important; background: #edf8f4; font-weight: 800; }
.copy-review-status-badge.draft { color: #8b5a00 !important; background: #fff8e8; border-color: #ead7a4; }
.copy-review-status-badge.reviewed, .copy-review-status-badge.done { color: #0b6b2f !important; background: #edf8ef; border-color: #bfe1c8; }
.copy-review-table .good { color: #0b6b2f; }
.copy-review-table .pending { color: #b36a00; }
.small-command.danger { color: #b03a2f; border-color: #e4b7b0; background: #fff7f5; }
.copy-review-table .small-command.danger { max-width: 100%; padding: 0 3px; white-space: normal; }
.small-command.danger:hover:not(:disabled) { color: #fff; border-color: #b03a2f; background: #b03a2f; }
.copy-review-disabled { opacity: .45; cursor: not-allowed; }
.auto-draft-state { align-self: center; margin-right: auto; padding: 5px 9px; color: #286b5e; background: #eaf6f3; border: 1px solid #b8ddd4; border-radius: 4px; font-size: 9px; font-weight: 800; white-space: nowrap; }
.auto-draft-restore { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin: 14px 20px 0; padding: 12px 14px; border: 2px solid #78b9aa; border-radius: 6px; background: #f0faf7; box-shadow: 0 6px 18px #0f2a2412; }
.auto-draft-restore strong, .auto-draft-restore span { display: block; }
.auto-draft-restore strong { color: var(--teal-dark); font-size: 12px; }
.auto-draft-restore span { margin-top: 4px; color: var(--muted); font-size: 9px; line-height: 1.5; }
.auto-draft-restore > div:last-child { display: flex; gap: 8px; flex: 0 0 auto; }
.submission-layout { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(330px,.75fr); gap: 16px; padding: 18px 20px; }
.score-breakdown { display: grid; gap: 7px; }
.score-row { display: grid; grid-template-columns: 1fr 70px 70px 76px; gap: 8px; align-items: center; padding: 9px 10px; background: #f6f9f8; border-radius: 4px; font-size: 10px; }
.score-row b, .score-row strong { text-align: right; }
.weighted-score { margin-top: 12px; padding: 17px; color: white; background: #263c36; border-radius: 5px; }
.weighted-score strong { display: block; margin-top: 6px; color: #a8d7cc; font-size: 28px; }
.formula-explanation { padding: 14px; background: #fff8e9; border-left: 3px solid var(--amber); font-size: 10px; line-height: 1.7; }
.approval-chain { display: grid; gap: 8px; margin-top: 13px; }
.route-warning { margin-top: 10px; padding: 10px 12px; color: var(--danger); background: #fff3f1; border: 1px solid #edcbc6; border-radius: 4px; font-size: 9px; line-height: 1.5; }
.approval-step { display: grid; grid-template-columns: 24px 1fr auto; gap: 9px; align-items: center; padding: 9px; border: 1px solid var(--line); border-radius: 4px; font-size: 10px; }
.approval-step i { width: 24px; height: 24px; display: grid; place-items: center; color: white; background: var(--teal); border-radius: 50%; font-style: normal; }
.board-filters { display: grid; grid-template-columns: repeat(3,minmax(120px,1fr)) auto; gap: 9px; padding: 14px 20px; border-bottom: 1px solid var(--line); }
.board-status-tabs { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; padding: 15px 20px 0; }
.board-status-tabs button { min-height: 54px; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 0 13px; color: var(--muted); background: #f4f7f6; border: 1px solid var(--line); border-radius: 4px; font-size: 10px; font-weight: 700; }
.board-status-tabs button.active { color: white; background: #263c36; border-color: #263c36; }
.board-status-tabs b { min-width: 24px; height: 24px; display: grid; place-items: center; color: var(--teal-dark); background: white; border-radius: 12px; font-size: 9px; }
.submission-list { display: grid; gap: 9px; padding: 16px 20px 20px; }
.board-current-mode { padding: 9px 20px 0; color: var(--muted); font-size: 9px; }
.submission-card.detailed { display: grid; grid-template-columns: minmax(0,1fr) 120px auto; align-items: center; gap: 16px; margin: 0; }
.submission-card.awaiting-me { border-color: #72b9a8; box-shadow: inset 4px 0 0 var(--teal); }
.submission-card.rejected { border-color: #e8c2bd; box-shadow: inset 4px 0 0 var(--danger); }
.submission-title-line { display: flex; align-items: center; gap: 8px; }
.submission-title-line em { padding: 3px 7px; color: white; background: var(--teal); border-radius: 10px; font-size: 8px; font-style: normal; font-weight: 700; }
.submission-progress { height: 5px; margin-top: 9px; overflow: hidden; background: #e7eeeb; border-radius: 3px; }
.submission-progress i { display: block; height: 100%; background: var(--teal); }
.submission-card-main > strong { font-size: 12px; }
.submission-card-score { padding-left: 13px; border-left: 1px solid var(--line); }
.submission-card-score span, .submission-card-score strong { display: block; }
.submission-card-score span { color: var(--muted); font-size: 9px; }
.submission-card-score strong { margin-top: 5px; color: var(--teal); font-size: 16px; }
.submission-card.detailed footer { margin: 0; justify-content: flex-end; }
.board-column { min-width: 0; padding: 11px; background: #f5f8f7; border-radius: 5px; }
.board-column h3 { margin: 0 0 10px; font-size: 12px; }
.submission-card { margin-bottom: 8px; padding: 11px; background: white; border: 1px solid var(--line); border-radius: 4px; }
.submission-card strong { display: block; font-size: 11px; }
.submission-card span { display: block; margin-top: 5px; color: var(--muted); font-size: 9px; }
.submission-card footer { display: flex; gap: 6px; margin-top: 10px; }
.submission-detail-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding: 18px 20px; border-bottom: 1px solid var(--line); }
.submission-detail-head h2 { margin: 4px 0; font-size: 18px; }
.submission-detail-head p { margin: 0; color: var(--muted); font-size: 9px; }
.submission-detail-head-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }
.approval-decision-bar { position: sticky; top: 0; z-index: 4; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 12px 20px; border-bottom: 1px solid #acd1c7; background: #eef8f5; box-shadow: 0 4px 10px #10251f12; }
.approval-decision-bar strong, .approval-decision-bar span { display: block; }
.approval-decision-bar strong { color: var(--teal-dark); font-size: 12px; }
.approval-decision-bar span { margin-top: 3px; color: var(--muted); font-size: 9px; }
.approval-decision-actions { display: flex; gap: 7px; }
.approval-open-command { color: white; border-color: var(--teal); background: var(--teal); }
.submission-facts { display: grid; grid-template-columns: 2fr 2fr 1fr 1fr; border-bottom: 1px solid var(--line); }
.submission-facts > div { min-width: 0; padding: 13px 16px; border-right: 1px solid var(--line); }
.submission-facts > div:last-child { border-right: 0; }
.submission-facts span, .submission-facts strong { display: block; }
.submission-facts span { color: var(--muted); font-size: 9px; }
.submission-facts strong { margin-top: 5px; font-size: 11px; }
.submission-history { padding: 15px 20px; border-bottom: 1px solid var(--line); background: #fafcfc; }
.submission-history h3, .submission-module-title h3 { margin: 0; font-size: 13px; }
.submission-history > div { display: grid; grid-template-columns: 145px 90px 130px minmax(0,1fr); gap: 10px; margin-top: 8px; font-size: 9px; }
.submission-history span, .submission-history em { color: var(--muted); font-style: normal; }
.submission-module-list { padding: 16px 20px 20px; }
.submission-module-title { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.submission-module-title span { color: var(--muted); font-size: 9px; }
.submission-module { border: 1px solid var(--line); border-radius: 4px; margin-top: 7px; overflow: hidden; }
.submission-module summary { display: grid; grid-template-columns: 1fr 80px 180px; align-items: center; gap: 10px; padding: 11px 13px; cursor: pointer; background: #f7faf9; font-size: 10px; }
.submission-module summary strong, .submission-module summary small { text-align: right; }
.submission-module summary strong { color: var(--teal); }
.submission-module summary small { color: var(--muted); font-size: 8px; }
.submission-module table { min-width: 900px; }
.submission-module td { height: auto; min-height: 40px; white-space: normal; vertical-align: top; line-height: 1.5; }
.approval-module-card { margin-top: 12px; overflow: hidden; border: 1px solid var(--line); border-radius: 5px; background: white; }
.approval-module-card > header { display: grid; grid-template-columns: 38px minmax(0,1fr) auto; align-items: center; gap: 12px; padding: 12px 14px; background: #f5f9f7; border-bottom: 1px solid var(--line); }
.approval-module-card > header i { width: 32px; height: 32px; display: grid; place-items: center; color: white; background: var(--teal); border-radius: 50%; font-style: normal; font-size: 11px; font-weight: 800; }
.approval-module-card > header span, .approval-module-card > header small { display: block; }
.approval-module-card > header span { font-size: 13px; font-weight: 800; }
.approval-module-card > header small { margin-top: 3px; color: var(--muted); font-size: 8px; }
.approval-module-card > header > strong { color: var(--teal); font-size: 23px; }
.approval-module-grid { display: grid; grid-template-columns: minmax(0,1.8fr) minmax(320px,.9fr); min-width: 0; }
.approval-module-grid.single { grid-template-columns: 1fr; }
.approval-module-content { min-width: 0; border-right: 1px solid var(--line); }
.approval-module-grid h4 { margin: 0; padding: 10px 13px; color: var(--teal-dark); font-size: 10px; border-bottom: 1px solid var(--line); }
.approval-module-grid aside { min-width: 0; background: #fbfcfc; }
.approval-module-grid table { min-width: 720px; }
.approval-module-grid td { height: auto; padding: 8px 10px; white-space: normal; vertical-align: top; line-height: 1.5; }
.approval-standard-list { display: grid; grid-template-columns: repeat(auto-fit,minmax(170px,1fr)); gap: 6px; padding: 8px; max-height: 300px; overflow: auto; }
.approval-standard-list article { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 3px 8px; padding: 7px 8px; background: white; border: 1px solid var(--line); border-radius: 4px; }
.approval-standard-list article span { color: var(--muted); font-size: 8px; }
.approval-standard-list article p { grid-column: 1; margin: 0; font-size: 9px; line-height: 1.35; }
.approval-standard-list article strong { grid-column: 2; grid-row: 1 / 3; align-self: center; white-space: nowrap; color: var(--teal); font-size: 13px; }
.bom-summary-row td { background: #fbfcfc; }
.bom-chip-list { display: flex; flex-wrap: wrap; gap: 6px; }
.bom-chip { display: inline-flex; align-items: center; gap: 8px; padding: 4px 7px; border: 1px solid var(--line); border-radius: 3px; background: white; font-size: 9px; }
.bom-chip b { font-weight: 600; }
.bom-chip em { color: var(--teal-dark); font-style: normal; font-weight: 800; }
.approval-no-standard { margin: 12px; padding: 18px; color: var(--muted); text-align: center; border: 1px dashed var(--line-strong); font-size: 9px; }
.submission-detail-actions { display: flex; justify-content: flex-end; gap: 8px; padding: 15px 20px; border-top: 1px solid var(--line); background: #f8faf9; }
.danger-button { color: var(--danger) !important; border-color: #dfb7b1 !important; }
.small-command { height: 27px; padding: 0 8px; color: var(--teal-dark); background: white; border: 1px solid #9bc9bd; border-radius: 3px; font-size: 9px; }
.small-command.reject { color: var(--danger); border-color: #dfb7b1; }
.user-management { flex: none; max-height: 520px; overflow: auto; padding: 14px 22px; border-top: 1px solid var(--line); background: #fbfcfc; }
.user-management[hidden] { display: none; }
.control-pane .user-management { height: 100%; max-height: none; display: flex; flex-direction: column; overflow: hidden; border-top: 0; }
.user-management-head { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.user-management-head h3 { margin: 0; font-size: 13px; }
.user-management-head div { display: flex; gap: 7px; }
.roster-note { flex: 0 0 auto; margin-bottom: 10px; padding: 9px 11px; color: #315e56; background: #eef7f4; border: 1px solid #c8ded8; font-size: 9px; }
.roster-editor { flex: 0 0 auto; margin: 0 0 12px; border: 1px solid var(--line); background: #fff; }
.roster-editor-status { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 14px; border-bottom: 1px solid var(--line); background: #f7faf9; }
.roster-editor-status strong { color: var(--teal-dark); font-size: 11px; }
.roster-editor-status span { color: var(--muted); font-size: 9px; }
.roster-editor-grid { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 10px; padding: 14px; }
.roster-editor-grid label { color: var(--muted); font-size: 9px; font-weight: 700; }
.roster-editor-grid .form-input,.roster-editor-grid .form-select { margin-top: 5px; background: #fbfcfc; }
.roster-brand-field { grid-column: span 2; color: var(--muted); font-size: 9px; font-weight: 700; }
.roster-brand-checklist { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px 10px; min-height: 82px; max-height: 132px; margin-top: 5px; padding: 9px 10px; overflow-y: auto; background: #fbfcfc; border: 1px solid var(--line-strong); border-radius: 4px; }
.roster-brand-option { display: flex; align-items: center; gap: 7px; min-height: 26px; padding: 4px 7px; color: var(--ink) !important; background: #fff; border: 1px solid #d7e4e0; border-radius: 4px; cursor: pointer; font-size: 10px !important; font-weight: 600 !important; }
.roster-brand-option:hover { border-color: #87bfb2; background: #f2faf7; }
.roster-brand-option input { width: 16px; height: 16px; margin: 0; accent-color: var(--teal); cursor: pointer; }
.roster-brand-checklist.disabled { opacity: .55; background: #f1f3f2; }
.roster-brand-checklist.disabled .roster-brand-option { cursor: not-allowed; }
.roster-admin-toggle { display: flex; align-items: center; gap: 7px; min-height: 36px; padding-top: 15px; color: var(--ink) !important; }
.roster-admin-toggle input { width: 15px; height: 15px; margin: 0; }
.roster-access-state { display: inline-flex; align-items: center; min-height: 22px; padding: 2px 7px; border: 1px solid; border-radius: 4px; font-size: 9px; font-weight: 700; white-space: nowrap; }
.roster-access-state.enabled { color: #176f5f; background: #edf8f4; border-color: #b8d9d0; }
.roster-access-state.disabled { color: #7a5a24; background: #fff8e8; border-color: #e6d5aa; }
.roster-table-wrap { min-height: 0; flex: 1; overflow: auto; border: 1px solid var(--line); background: white; }
.user-table { width: 100%; font-size: 9px; }
.user-table td, .user-table th { height: 30px; padding: 4px 7px; }
.user-table thead th { position: sticky; top: 0; z-index: 2; background: #eef7f4; box-shadow: 0 1px 0 var(--line); }
.password-value { display: grid; grid-template-columns: auto auto; align-items: center; gap: 4px 8px; min-width: 126px; }
.password-value code { color: var(--ink); font-family: Consolas, monospace; }
.password-value small { grid-column: 1 / -1; color: var(--muted); }
.submission-quota-management { min-height:100%; padding:20px 22px; background:#fbfcfc; }
.quota-management-head { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; margin-bottom:14px; }
.quota-management-head h3 { margin:4px 0 0; font-size:15px; }
.quota-management-head p { max-width:760px; margin:6px 0 0; color:var(--muted); font-size:9px; line-height:1.6; }
.quota-management-head > strong { color:var(--muted); }
.quota-management-head > strong.ready { color:var(--teal); }
.quota-editor { display:grid; grid-template-columns:minmax(170px,1fr) 170px 190px auto; gap:10px; align-items:end; padding:14px; background:#eef7f4; border:1px solid #c5ded7; border-radius:4px; }
.quota-editor label { color:var(--muted); font-size:9px; }
.quota-editor .form-input,.quota-editor .form-select { margin-top:5px; background:white; }
.quota-editor .button { height:36px; }
.node-proposal-target-management { margin-top:20px; padding-top:18px; border-top:2px solid #d5e5e0; }
.node-target-editor { background:#f5faf8; }
.node-proposal-target-table { margin-top:12px; }
.quota-readonly-note { padding:11px 13px; color:var(--muted); background:#f4f6f5; border:1px solid var(--line); }
.quota-summary-strip { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin:14px 0; border:1px solid var(--line); background:white; }
.quota-summary-strip div { padding:10px 13px; border-right:1px solid var(--line); }
.quota-summary-strip div:last-child { border-right:0; }
.quota-summary-strip span,.quota-summary-strip strong { display:block; }
.quota-summary-strip span { color:var(--muted); font-size:9px; }
.quota-summary-strip strong { margin-top:4px; font-size:13px; }
.quota-table table { min-width:900px; }
.quota-table td small { display:block; margin-top:3px; color:var(--muted); }
.quota-state { display:inline-flex; align-items:center; min-height:24px; padding:0 8px; border-radius:3px; font-size:9px; font-weight:800; }
.quota-state.open { color:#0c715f; background:#e6f5f0; }
.quota-state.locked { color:#b3473b; background:#fbe9e6; }
.submission-quota-status { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px 24px; align-items:center; margin:16px 20px 0; padding:13px 15px; border:1px solid var(--line); border-left:4px solid var(--teal); background:#f5faf8; }
.submission-quota-status span,.submission-quota-status small { display:block; color:var(--muted); font-size:9px; }
.submission-quota-status strong { display:block; margin-top:4px; }
.submission-quota-status > div:nth-child(2) { min-width:110px; text-align:right; }
.submission-quota-status > div:nth-child(2) b { display:block; color:var(--teal); font-size:20px; }
.submission-quota-status p { grid-column:1 / -1; margin:3px 0 0; color:var(--danger); font-size:9px; }
.submission-quota-status.locked { border-color:#e5b4ad; border-left-color:var(--danger); background:#fff5f3; }
.submission-quota-status.locked > div:nth-child(2) b { color:var(--danger); }
.scoring-standards { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--line); }
.scoring-standards-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 14px; margin-bottom: 9px; }
.scoring-standards-head h3 { margin: 4px 0 0; font-size: 13px; }
.scoring-standards-head > div:last-child { display: flex; gap: 7px; }
.scoring-standards table { min-width: 760px; }
.scoring-standards td { padding: 6px 8px; }
.scoring-standards .form-input { min-width: 78px; height: 30px; font-size: 9px; }
.scoring-standards p { margin: 8px 0 0; color: var(--muted); font-size: 9px; }
.project-module-panel > .scoring-standards { margin: 22px 20px 20px; padding: 0; overflow: hidden; border: 2px solid #8bc5b7; border-radius: 6px; background: #fff; }
.project-module-panel > .scoring-standards .scoring-standards-head { align-items: center; margin: 0; padding: 14px 16px; border-bottom: 1px solid var(--line); background: #f3faf8; }
.project-module-panel > .scoring-standards .scoring-standards-head h3 { color: var(--teal-dark); font-size: 16px; line-height: 1.35; }
.project-module-panel > .scoring-standards .table-wrap { border: 0; }
.project-module-panel > .scoring-standards table { min-width: 880px; }
.project-module-panel > .scoring-standards th { background: #f7fbfa; }
.project-module-panel > .scoring-standards p { margin: 0; padding: 10px 16px 12px; border-top: 1px solid var(--line); background: #fbfdfc; }
.project-control-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 20px 22px; border-bottom: 1px solid var(--line); }
.project-control-head h3 { margin: 4px 0 0; font-size: 15px; }
.project-control-head p { max-width: 720px; margin: 5px 0 0; color: var(--muted); font-size: 9px; line-height: 1.6; }
.project-control-head > strong { color: var(--danger); font-size: 14px; }
.project-control-head > strong.ready { color: var(--teal); }
.project-control-table { min-width: 880px; }
.project-control-row { display: grid; grid-template-columns: 180px 75px 75px 75px minmax(300px,1fr); gap: 9px; align-items: center; padding: 9px 22px; border-bottom: 1px solid #edf0ef; }
.project-control-row strong { font-size: 10px; }
.project-control-row textarea { min-height: 48px; }
.project-control-label { color: var(--muted); background: #f7f9f8; font-size: 9px; font-weight: 700; }
.project-control-note { margin: 12px 22px 20px; color: var(--muted); font-size: 9px; }
.no-score-note { display: flex; align-items: center; gap: 12px; padding: 13px 20px; border-top: 1px solid var(--line); background: #f7faf9; }
.no-score-note strong { color: var(--teal-dark); font-size: 10px; }
.no-score-note span { color: var(--muted); font-size: 9px; }
.project-module-panel > .no-score-note { margin: 22px 20px 20px; padding: 14px 16px; border: 2px solid #8bc5b7; border-radius: 6px; background: #f3faf8; }
.project-module-panel > .no-score-note strong { font-size: 14px; }
.project-module-panel > .no-score-note span { font-size: 10px; }
.visual-comparison { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; padding: 18px 20px; border-bottom: 1px solid var(--line); }
.visual-comparison section { min-width: 0; }
.visual-comparison h3, .blind-test h3 { margin: 0 0 10px; font-size: 13px; }
.visual-comparison figure, .visual-previews figure { margin: 0 0 9px; overflow: hidden; border: 1px solid var(--line); border-radius: 4px; background: #f4f7f6; }
.visual-comparison figure img, .visual-previews figure img { width: 100%; height: 210px; display: block; object-fit: contain; }
.visual-comparison figcaption { min-height: 32px; display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 4px 8px; color: var(--muted); font-size: 9px; background: white; }
.visual-comparison figcaption button { width: 26px; height: 24px; color: var(--danger); border: 0; background: transparent; font-size: 16px; }
.visual-previews { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
.visual-previews figure img { height: 150px; }
.visual-comparison .button { margin-top: 4px; }
.visual-comparison section > small { display: block; margin-top: 6px; color: var(--muted); font-size: 9px; }
.visual-comparison-scored { grid-template-columns:minmax(220px,1fr) minmax(220px,1fr) minmax(300px,1.15fr); align-items:start; }
.visual-score-panel { min-width:0; padding:14px; background:#f0f8f5; border:1px solid #b9d5ce; border-radius:4px; }
.visual-score-panel-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:10px; }
.visual-score-panel-head h3 { margin-top:4px; }
.visual-score-panel-head > strong { flex:0 0 auto; color:var(--teal); font-size:17px; }
.visual-score-item { display:grid; gap:10px; padding:12px 0; border-top:1px solid var(--line); }
.visual-score-item h4 { margin:0 0 7px; }
.visual-score-item ul { display:grid; gap:5px; margin:0; padding:0; list-style:none; }
.visual-score-item li { display:flex; justify-content:space-between; gap:10px; color:var(--muted); font-size:9px; }
.visual-score-item li b { flex:0 0 auto; color:var(--ink); }
.visual-score-item label { color:var(--ink); font-size:10px; font-weight:700; }
.visual-score-item .form-input { margin-top:6px; background:white; }
.appearance-standard-admin { margin:18px 20px; border:1px solid var(--line); border-radius:4px; }
.appearance-standard-admin > summary { padding:12px 14px; color:var(--teal); cursor:pointer; font-weight:800; }
.appearance-standard-admin .scoring-standards { border-top:1px solid var(--line); }
.visual-empty { min-height: 150px; display: grid; place-items: center; margin-bottom: 9px; color: var(--muted); border: 1px dashed var(--line-strong); background: #fafcfc; font-size: 10px; }
.blind-test { padding: 18px 20px; border-bottom: 1px solid var(--line); }
.blind-test-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.blind-test-head strong { color: var(--teal); font-size: 19px; }
.blind-test-grid { display: grid; grid-template-columns: repeat(5,minmax(120px,1fr)); gap: 10px; margin-top: 12px; }
.blind-test-grid label { color: var(--muted); font-size: 9px; }
.blind-test-grid input, .blind-test-grid textarea { margin-top: 5px; }
.blind-test-grid .blind-evidence { grid-column: 1 / -1; }
.login-overlay { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; padding: 18px; background: #18231fe8; }
.login-card { width: min(390px,100%); padding: 24px; background: white; border-radius: 6px; box-shadow: 0 24px 70px #0005; }
.login-card h1 { margin: 0; font-size: 21px; }
.login-card p { margin: 7px 0 20px; color: var(--muted); font-size: 10px; }
.login-card label { display: block; margin-top: 11px; color: var(--muted); font-size: 10px; }
.login-card input { margin-top: 5px; }
.login-card .button { width: 100%; margin-top: 16px; }
.login-error { min-height: 18px; margin-top: 8px; color: var(--danger); font-size: 10px; }
.denied-login-card { text-align: center; }
.denied-login-message { margin: 16px 0 8px !important; color: var(--danger) !important; font-size: 14px !important; line-height: 1.7; }
.dingtalk-login-button { height: 42px; font-size: 13px; }
.dingtalk-login-status { min-height: 24px; margin-top: 9px; color: var(--muted); font-size: 10px; line-height: 1.55; text-align: center; }
.fallback-login-toggle { width: 100%; margin-top: 8px; padding: 0; color: var(--teal); background: transparent; border: 0; font-size: 10px; cursor: pointer; }
.admin-login-pane { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line); }
.dingtalk-redirect-note { margin-top: 12px; padding: 9px 10px; color: var(--muted); background: #f7faf9; border: 1px dashed var(--line-strong); font-size: 9px; line-height: 1.5; word-break: break-all; }
.dingtalk-redirect-note code { color: var(--ink); font-family: inherit; }
.developer-login-hint { display: grid; gap: 4px; padding: 11px 12px; border: 1px solid #bcd8d2; background: #eff8f5; color: #295d55; font-size: 10px; }
.developer-login-hint strong { color: #135f54; }
.password-dialog { position: fixed; inset: 0; z-index: 90; display: grid; place-items: center; background: #10191599; }
.password-card { width: min(420px,calc(100% - 28px)); padding: 20px; background: white; border-radius: 6px; }
.password-card h2 { margin: 0 0 14px; font-size: 16px; }
@media (max-width: 900px) {
  .violation-page .business-panel-head { align-items: flex-start; flex-direction: column; padding: 20px; }
  .violation-page .violation-kpis { width: 100%; padding: 12px 0 0; border-top: 1px solid #d7e7e1; border-left: 0; align-items: flex-start; }
  .violation-page .violation-filters, .violation-page .violation-report-grid, .violation-page .violation-detail { margin-left: 12px; margin-right: 12px; }
  .main-image-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .benchmark-research-grid { grid-template-columns: 1fr; }
  .benchmark-picker, .review-grid, .submission-layout, .board-columns, .visual-comparison { grid-template-columns: 1fr; }
  .source-single-note { align-items:flex-start; flex-direction:column; }
  .quota-editor { grid-template-columns:1fr 1fr; }
  .roster-editor-grid { grid-template-columns:1fr 1fr; }
  .quota-summary-strip { grid-template-columns:1fr; }
  .quota-summary-strip div { border-right:0; border-bottom:1px solid var(--line); }
  .submission-quota-status { grid-template-columns:1fr; }
  .submission-quota-status > div:nth-child(2) { text-align:left; }
  .review-kpis { grid-template-columns: repeat(2,1fr); }
  .bom-grid { grid-template-columns: repeat(2,1fr); }
  .board-filters { grid-template-columns: 1fr 1fr; }
  .page-image-previews { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .intake-heading, .excel-score-head { display:grid; }
  .intake-summary { padding:0; border-left:0; }
  .blind-test-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .manual-benchmark-form { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .review-metric-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .review-audit-strip { grid-template-columns: 1fr 1fr; }
  .submission-card.detailed { grid-template-columns: minmax(0,1fr) 100px; }
  .submission-card.detailed footer { grid-column: 1 / -1; justify-content: flex-start; }
  .submission-facts { grid-template-columns: 1fr 1fr; }
  .approval-module-grid { grid-template-columns: 1fr; }
  .approval-module-content { border-right: 0; border-bottom: 1px solid var(--line); }
}
@media (max-width: 620px) {
  .approval-decision-bar { position: static; align-items: stretch; flex-direction: column; }
  .approval-decision-actions .button { flex: 1; }
  .main-image-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .main-copy-suggestions { grid-template-columns: 1fr; }
  .image-section-title { align-items: stretch; flex-direction: column; }
  .business-topbar, .business-product-bar, .product-name-entry { align-items: stretch; flex-direction: column; }
  .presence-strip { width: 100%; }
  .presence-strip summary { width: fit-content; max-width: 100%; overflow: hidden; text-overflow: ellipsis; }
  .presence-strip ul { left: 0; right: auto; }
  .benchmark-picker { padding: 12px; }
  .review-kpis { grid-template-columns: 1fr 1fr; }
  .bom-grid, .board-filters { grid-template-columns: 1fr; }
  .score-row { grid-template-columns: 1fr 52px 52px 58px; }
  .page-image-head, .page-ai-result { grid-template-columns:1fr; }
  .page-image-head { display:grid; }
  .page-ai-actions { align-items:stretch; flex-direction:column; }
  .benchmark-extra-fields { grid-template-columns: 1fr; }
  .page-image-previews { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .page-ai-result .button { width:100%; }
  .score-structure { overflow-x:auto; }
  .score-structure-row { min-width:760px; }
  .module-requirements, .blind-test-grid { grid-template-columns: 1fr; }
  .module-requirements > div { border-right: 0; border-bottom: 1px solid var(--line); }
  .module-requirements > div:last-child { border-bottom: 0; }
  .board-status-tabs { grid-template-columns: 1fr 1fr; }
  .submission-history > div { grid-template-columns: 1fr 1fr; }
  .submission-module summary { grid-template-columns: 1fr 58px; }
  .submission-module summary small { grid-column: 1 / -1; text-align: left; }
  .business-product-actions { align-items: flex-start; flex-direction: column; text-align: left; }
  .manual-benchmark-form { grid-template-columns: 1fr; }
  .manual-benchmark-image { grid-template-columns:1fr; }
  .review-audit-strip { grid-template-columns: 1fr; }
  .review-audit-strip > div { border-right: 0; border-bottom: 1px solid var(--line); }
  .quota-editor { grid-template-columns:1fr; }
  .roster-editor-grid { grid-template-columns:1fr; }
}
@media (max-width: 760px) and (pointer: coarse) {
  .auth-boot-screen { padding:16px; }
  .login-overlay { align-items:start; overflow:auto; padding:12px; }
  .login-card { width:100%; max-width:430px; margin:12px auto; padding:22px 16px 18px; border-radius:12px; }
  .login-card h1 { font-size:22px; }
  .login-card p { margin-bottom:16px; line-height:1.6; }
  .dingtalk-organization-login { margin-top:14px !important; }
  .dingtalk-login-button { min-height:46px; margin-top:14px !important; border-radius:8px; }
  .dingtalk-login-status { padding:7px 8px; border-radius:6px; background:#f5f9f7; }
  .admin-login-pane { margin-top:16px; padding-top:16px; }
  .login-card label { font-size:11px; }
  .login-card .form-input, .login-card select { min-height:42px; font-size:14px; }
  .admin-login-pane .button { min-height:44px; border-radius:8px; }
  .fallback-login-toggle, .dingtalk-redirect-note { display:none; }
  .app-shell { display:block; min-height:100vh; }
  .sidebar { position:sticky; inset:0 0 auto; width:100%; height:auto; z-index:30; display:block; padding:10px 12px 8px; box-shadow:0 2px 12px #10251f18; }
  .brand-block { display:flex; align-items:center; padding:0 2px 9px; border-bottom:1px solid #3b4744; }
  .brand-block strong { font-size:13px; }
  .brand-block span { display:none; }
  .module-nav { display:grid; grid-template-columns:1fr; gap:5px; margin-top:8px; overflow:visible; }
  .organization-nav-group { display:grid; grid-template-columns:minmax(0,1fr); gap:3px; }
  .organization-nav-item { min-height:38px; padding:0 8px; }
  .organization-submodule-nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:5px; margin:0; padding:0; border:0; }
  .organization-submodule-nav button { min-height:38px; padding:6px 8px; font-size:11px; background:#263733; }
  .organization-submodule-nav button.active { background:#365047; box-shadow:none; }
  .public-control-nav-group { margin-top:2px; padding-top:5px; }
  .public-control-nav-group .nav-item { min-height:36px; }
  .sidebar-foot { display:grid; grid-template-columns:minmax(0,1fr); gap:7px; padding:8px 2px 0; }
  .sidebar-workspace-state { display:none; }
  .sidebar-account { padding-top:0; border-top:0; }
  .sidebar-user-button, .sidebar-logout-button { min-height:36px; }
  .main-panel { padding:0 10px 26px; }
  .business-workspace { min-height:0; padding-bottom:20px; }
  .business-topbar { min-height:64px; padding:9px 2px; gap:6px; }
  .business-topbar p { margin-bottom:3px; font-size:9px; }
  .business-topbar h1 { font-size:18px; }
}
.approval-readonly-banner{display:flex;align-items:center;gap:18px;padding:14px 20px;border:1px solid #d7e4df;background:#f2f8f6;color:#49615b}.approval-readonly-banner strong{color:#0f7c69;white-space:nowrap}.approval-readonly-banner span{line-height:1.6}.approval-readonly-mode input:disabled,.approval-readonly-mode textarea:disabled,.approval-readonly-mode select:disabled{color:#283a36;background:#f6f8f7;opacity:1}.approval-readonly-mode button:disabled{cursor:not-allowed;opacity:.5}
.development-card .submission-card-score span { white-space: normal; line-height: 1.5; }
.submission-card.detailed.development-card-horizontal { grid-template-columns: 36px minmax(0,1fr); align-items: start; gap: 12px; padding: 14px; }
.submission-card.detailed.development-card-horizontal footer { grid-column: 1 / -1; justify-content: flex-start; }
.development-card-horizontal .submission-card-main > span { white-space: normal; }
.development-card-seq { width: 28px; height: 28px; display: grid; place-items: center; color: white; background: #173d35; border-radius: 50%; font-size: 12px; font-style: normal; font-weight: 800; }
.development-card-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.development-card-header .submission-title-line { min-width: 0; }
.development-card-header strong { font-size: 15px; line-height: 1.35; }
.development-card-header em { font-size: 10px; border-radius: 12px; }
.development-card-flow { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 18px; margin-top: 8px; }
.development-card-line { display: block; overflow-x: auto; white-space: nowrap; color: var(--ink); font-size: 13px; line-height: 1.8; }
.development-card-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.development-card-actions .small-command { height: 32px; padding: 0 12px; font-size: 11px; font-weight: 700; }
.development-timeline { display: grid; gap: 10px; margin-top: 14px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 5px; background: #fafcfb; }
.development-step { display: grid; grid-template-columns: 28px minmax(0,1fr); gap: 10px; align-items: start; }
.development-step i { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; font-style: normal; font-size: 11px; font-weight: 800; background: #d7dedb; color: #5f716b; }
.development-step.done i { background: #0f7c69; color: white; }
.development-step.pending i { background: #f0d8d4; color: #c04b39; }
.development-step strong { display: block; font-size: 12px; }
.development-step b { display: block; margin-top: 4px; color: var(--ink); font-size: 11px; }
.development-step span { display: block; margin-top: 3px; color: var(--muted); font-size: 9px; line-height: 1.45; }
.development-step small { display: block; margin-top: 4px; color: var(--teal-dark); font-size: 9px; }
.development-detail-panel { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--line); }
.development-detail-meta { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; margin-top: 12px; }
.development-detail-meta > div, .development-action-hint { min-width: 0; padding: 11px 12px; border: 1px solid var(--line); border-radius: 5px; background: white; }
.development-detail-meta span, .development-action-hint span { display: block; color: var(--muted); font-size: 9px; }
.development-detail-meta strong, .development-action-hint strong { display: block; margin-top: 4px; font-size: 12px; }
.development-action-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 10px; align-items: end; margin-top: 12px; }
.development-action-row label { display: grid; gap: 6px; color: var(--muted); font-size: 9px; }
.development-action-row .button { min-height: 36px; white-space: nowrap; }
.development-action-row .form-select, .development-action-row .form-input { margin: 0; }
.development-board { display: grid; gap: 0; }
.development-board-section { display: grid; gap: 0; padding: 22px 20px 0; border-top: 1px solid var(--line); }
.development-board-heading { display: flex; align-items: flex-start; gap: 12px; min-width: 0; }
.development-board-heading > div { display: grid; gap: 4px; min-width: 0; }
.development-board-index { flex: 0 0 auto; min-width: 34px; padding: 6px 7px; color: white; background: var(--teal); border-radius: 3px; font-size: 10px; font-weight: 800; line-height: 1; text-align: center; }
.development-board-heading h3 { margin: 0; color: var(--ink); font-size: 18px; font-weight: 800; line-height: 1.35; }
.development-board-heading p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.development-board-section > .submission-list { padding: 16px 0 22px; }
.development-board-section .empty-state { min-height: 104px; display: grid; place-items: center; color: var(--muted); background: #fbfcfc; border: 1px dashed var(--line-strong); border-radius: 5px; font-size: 10px; }
.development-board-summary { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; padding: 18px 20px; }
.development-board-summary > div { padding: 12px 14px; border: 1px solid var(--line); border-radius: 5px; background: #f7fbfa; }
.development-board-summary strong { display: block; color: var(--teal); font-size: 22px; line-height: 1; }
.development-board-summary span { display: block; margin-top: 6px; color: var(--muted); font-size: 10px; }
.development-card-assign { display: grid; grid-template-columns: minmax(160px,280px) auto; gap: 8px; margin-top: 12px; }
.development-action-buttons { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.development-metro-list { display: grid; gap: 14px; }
.development-metro-card { padding: 14px; border: 1px solid var(--line); border-radius: 5px; background: white; }
.development-metro-meta { display: flex; justify-content: space-between; gap: 12px; align-items: center; margin-top: 6px; color: var(--muted); font-size: 10px; }
.metro-timeline { position: relative; grid-template-columns: repeat(8,minmax(112px,1fr)); gap: 0; overflow-x: auto; padding: 14px 4px 6px; border: 0; background: transparent; }
.metro-timeline::before { position: absolute; top: 28px; left: 24px; right: 24px; height: 3px; content: ""; background: #d9e2df; }
.metro-timeline .development-step { position: relative; display: grid; grid-template-columns: 1fr; min-width: 112px; gap: 8px; padding: 0 8px; text-align: center; }
.metro-timeline .development-step i { z-index: 1; margin: 0 auto; border: 2px solid white; background: #cc4b3d; color: white; }
.metro-timeline .development-step.done i { background: #0f7c69; }
.metro-timeline .development-step strong { min-height: 30px; font-size: 11px; line-height: 1.35; }
.metro-timeline .development-step b { margin-top: 0; font-size: 10px; }
.metro-timeline .development-step span { min-height: 28px; font-size: 9px; }
.metro-timeline .development-step small { color: #0f7c69; }
@media (max-width: 980px) {
  .development-board-summary { grid-template-columns: 1fr; }
  .submission-card.detailed.development-card-horizontal { grid-template-columns: 1fr; }
  .submission-card.detailed.development-card-horizontal footer { justify-content: flex-start; }
  .development-card-seq { width: 30px; height: 30px; }
  .development-metro-meta { align-items: flex-start; flex-direction: column; }
  .development-action-row { grid-template-columns: 1fr; }
  .development-action-buttons { justify-content: flex-start; }
  .copy-review-dashboard { grid-template-columns: 1fr; }
  .copy-review-department-summary { padding: 10px 0 0; border-top: 1px solid #cfe1dc; border-left: 0; }
  .copy-review-filter { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .copy-review-filter .button { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
  .development-board-section { padding: 18px 14px 0; }
  .development-board-heading { gap: 9px; }
  .development-board-index { min-width: 30px; padding: 5px 6px; }
  .development-board-heading h3 { font-size: 15px; }
  .development-board-heading p { font-size: 10px; }
  .development-card-header { align-items: flex-start; flex-direction: column; }
  .development-card-flow { align-items: flex-start; flex-direction: column; }
  .development-card-line { white-space: normal; overflow-x: visible; }
  .development-card-actions .small-command { flex: 1 1 130px; }
  .development-card-assign { grid-template-columns: 1fr; }
  .copy-review-filter { grid-template-columns: 1fr; padding: 12px; }
  .copy-review-dashboard { padding: 10px 12px; }
  .copy-review-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .copy-review-department-summary { grid-template-columns: 1fr; }
  .copy-review-list { padding: 12px; }
}
.review-v2 { display: grid; gap: 18px; padding: 18px; background: #f6f9f8; }
.review-panel { overflow: hidden; border: 2px solid var(--teal); border-radius: 6px; background: #fff; box-shadow: 0 1px 0 #137c6b18; }
.review-panel-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding: 18px 20px; border-bottom: 2px solid #b7d9d1; background: #f2f9f7; }
.review-panel-head h2 { margin: 4px 0 0; color: var(--ink); font-size: 19px; line-height: 1.35; }
.review-panel-head p { margin: 6px 0 0; color: var(--muted); font-size: 11px; line-height: 1.6; }
.review-project-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; padding: 18px 20px 20px; }
.review-project-grid > div { min-width: 0; min-height: 92px; padding: 13px 14px; border: 1px solid var(--line); border-radius: 5px; background: #fff; }
.review-project-grid span { display: block; color: var(--muted); font-size: 10px; }
.review-project-grid strong, .review-project-grid a { display: block; margin-top: 9px; color: var(--ink); font-size: 13px; line-height: 1.55; overflow-wrap: anywhere; }
.review-project-grid a { color: var(--teal-dark); text-decoration: underline; }
.review-benchmark-image { display: grid; grid-template-columns: 84px minmax(0,1fr); grid-template-rows: auto 1fr; gap: 6px 12px; }
.review-benchmark-image span { grid-column: 1 / -1; }
.review-benchmark-image img, .review-image-empty, .review-benchmark-thumb { width: 84px; height: 62px; grid-column: 1; grid-row: 2; object-fit: contain; border: 1px solid var(--line); border-radius: 4px; background: #f2f6f4; }
.review-benchmark-thumb { position: relative; display: block; padding: 0; overflow: hidden; cursor: zoom-in; }
.review-benchmark-thumb img { width: 100%; height: 100%; border: 0; border-radius: 0; }
.review-benchmark-thumb span { position: absolute; right: 4px; bottom: 4px; padding: 2px 5px; color: white; border-radius: 999px; background: #0b5f55cc; font-size: 8px; font-weight: 700; }
.review-image-empty { display: grid; place-items: center; padding: 6px; color: var(--muted); font-size: 9px; text-align: center; }
.review-data-info { display: grid; }
.review-subsection { margin: 16px 0 0; padding: 18px 20px 20px; border: 2px solid var(--teal); border-radius: 0; background: #fff; box-shadow: 0 1px 0 #137c6b18; }
.review-subsection:last-of-type { margin-bottom: 20px; }
.review-subsection-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.review-subsection-head h3 { margin: 0; color: var(--ink); font-size: 15px; line-height: 1.4; }
.review-subsection-head p { margin: 5px 0 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
.review-kpi-inline { display: grid; grid-template-columns: repeat(2,minmax(150px,1fr)); gap: 8px; min-width: 340px; }
.review-kpi-inline > div { min-width: 0; padding: 9px 10px; border: 1px solid var(--line); border-radius: 4px; background: #f7fbf9; }
.review-kpi-inline span { display: block; margin-bottom: 5px; color: var(--muted); font-size: 10px; }
.review-kpi-inline .form-input { width: 100%; height: 35px; font-size: 12px; }
.review-rank-layout { display: grid; grid-template-columns: minmax(420px,1fr) minmax(420px,1.2fr); gap: 14px; align-items: stretch; }
.review-rank-input-panel { min-width: 0; display: grid; gap: 10px; align-content: start; }
.review-rank-input-panel .review-kpi-inline { min-width: 0; grid-template-columns: repeat(2,minmax(0,1fr)); }
#reviewRankTrendHost { min-width: 0; }
.review-rank-table { min-width: 0; border: 1px solid var(--line); border-radius: 5px; }
.review-rank-table table { min-width: 560px; }
.review-rank-table td { height: 54px; }
.review-rank-table .form-input { width: 100%; min-width: 110px; height: 36px; font-size: 12px; }
.review-rank-trend-wrap { min-width: 0; padding: 10px 12px; border: 1px solid var(--line); border-radius: 5px; background: #fbfdfc; }
.review-rank-trend-note { margin: 0 0 3px; color: var(--muted); font-size: 10px; text-align: right; }
.review-rank-trend { height: 218px; }
.review-rank-trend svg { width: 100%; height: 100%; overflow: visible; }
.review-rank-trend line { stroke: #dfe9e5; stroke-width: 1; }
.review-rank-trend path { fill: none; stroke: var(--teal); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.review-rank-trend .trend-point { fill: #fff; stroke: var(--teal-dark); stroke-width: 3; }
.review-rank-trend text { fill: var(--muted); font-size: 10px; }
.review-rank-trend .trend-value { fill: var(--teal-dark); font-size: 10px; font-weight: 800; }
.review-rank-trend .trend-month { fill: var(--ink); font-size: 10px; }
.review-rank-empty { min-height: 218px; display: grid; place-items: center; padding: 20px; color: var(--muted); border: 1px dashed var(--line-strong); border-radius: 5px; font-size: 11px; text-align: center; }
.review-channel-grid { grid-template-columns: repeat(4,minmax(0,1fr)); padding: 0; }
.review-channel-grid article { min-width: 0; padding: 13px; border: 1px solid var(--line); border-radius: 5px; background: #f8fbfa; }
.review-channel-grid article > span { display: block; min-height: 30px; color: var(--muted); font-size: 10px; line-height: 1.45; }
.review-channel-grid .form-input { width: 100%; height: 38px; margin-top: 8px; font-size: 13px; }
.review-channel-grid .form-input.review-share-invalid { color: #b43d32; border-color: #d64f40; background: #fff5f3; box-shadow: inset 3px 0 0 #d64f40; }
.review-audience-fields { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 10px; }
.review-audience-fields label { display: grid; gap: 6px; color: var(--muted); font-size: 10px; }
.review-audience-fields .form-input { width: 100%; height: 38px; font-size: 12px; }
.review-upload-count { flex: 0 0 auto; color: var(--teal-dark); font-size: 10px; font-weight: 700; }
.review-share-status-error { color: #b43d32 !important; }
.review-audience-drop, .review-detail-drop { min-height: 104px; display: grid; place-items: center; align-content: center; gap: 6px; margin-top: 14px; padding: 15px; text-align: center; border: 1px dashed #86b9ad; border-radius: 5px; background: #f1f8f6; outline: 0; }
.review-detail-drop { min-height: 122px; background: #f7fbfa; }
.review-audience-drop.dragging, .review-audience-drop:focus, .review-detail-drop.dragging, .review-detail-drop:focus { border-color: var(--teal); background: #e5f4f0; box-shadow: 0 0 0 3px #137c6b18; }
.review-audience-drop strong, .review-detail-drop strong { color: var(--ink); font-size: 12px; }
.review-audience-drop span, .review-detail-drop span { color: var(--muted); font-size: 10px; }
.review-audience-drop .button, .review-detail-drop .button { margin-top: 4px; min-height: 32px; }
.review-audience-previews { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 8px; margin-top: 10px; }
.review-audience-previews:empty { display: none; }
.review-audience-previews figure { min-width: 0; margin: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 4px; background: #fff; }
.review-audience-previews img { width: 100%; aspect-ratio: 4 / 3; display: block; object-fit: contain; background: #f1f4f3; }
.review-audience-previews figcaption { min-height: 30px; display: grid; grid-template-columns: minmax(0,1fr) 24px; align-items: center; gap: 4px; padding: 3px 3px 3px 7px; }
.review-audience-previews figcaption span { overflow: hidden; color: var(--muted); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.review-audience-previews figcaption button { width: 24px; height: 24px; color: var(--danger); border: 0; background: transparent; font-size: 16px; }
.review-audience-empty { grid-column: 1 / -1; padding: 10px; color: var(--muted); border: 1px dashed var(--line-strong); border-radius: 4px; background: #f7faf9; font-size: 10px; text-align: center; }
.review-detail-image-list { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 8px; margin-top: 10px; }
.review-detail-image-list:empty { display: none; }
.review-detail-image-list figure { min-width: 0; margin: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 4px; background: #fff; }
.review-detail-thumb { position: relative; width: 100%; padding: 0; border: 0; background: transparent; cursor: zoom-in; }
.review-detail-thumb img { width: 100%; aspect-ratio: 4 / 3; display: block; object-fit: contain; background: #f1f4f3; }
.review-detail-thumb span { position: absolute; right: 6px; bottom: 6px; padding: 2px 6px; color: #fff; border-radius: 999px; background: #0b5f55cc; font-size: 9px; font-weight: 700; }
.review-detail-image-list figcaption { min-height: 30px; display: grid; grid-template-columns: minmax(0,1fr) 24px; align-items: center; gap: 4px; padding: 3px 3px 3px 7px; }
.review-detail-image-list figcaption span { overflow: hidden; color: var(--muted); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.review-detail-image-list figcaption button { width: 24px; height: 24px; color: var(--danger); border: 0; background: transparent; font-size: 16px; }
.review-audience-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 10px; }
.review-audience-actions span { color: var(--muted); font-size: 10px; line-height: 1.5; }
.review-save-actions { align-items: center; padding: 16px 20px 20px; background: #fbfdfc; }
.review-save-actions .button { min-width: 160px; min-height: 38px; }
@media (max-width: 1080px) {
  .selling-comparison-grid { grid-template-columns: 1fr; }
  .review-project-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .review-rank-layout { grid-template-columns: 1fr; }
  .review-audience-fields { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .ingredient-source-layout { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
  .review-v2 { padding: 10px; gap: 12px; }
  .review-panel-head, .review-subsection { padding-left: 14px; padding-right: 14px; }
  .review-panel-head h2 { font-size: 16px; }
  .review-project-grid, .review-audience-fields { grid-template-columns: 1fr; padding: 12px 14px 14px; }
  .review-project-grid > div { min-height: auto; }
  .review-kpi-inline { grid-template-columns: 1fr; min-width: 0; width: 100%; }
  .review-subsection-head, .review-audience-actions { align-items: stretch; flex-direction: column; }
  .review-channel-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .review-audience-previews, .review-detail-image-list { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .selling-comparison-grid { padding: 10px; }
  .selling-side-panel { padding: 12px; }
  .selling-inline-score { grid-template-columns: 1fr; }
  .ingredient-source-layout { padding: 10px; }
  .ingredient-pane-head { flex-direction: column; gap: 5px; }
  .ingredient-pane-head span { text-align: left; }
  .review-save-actions { align-items: stretch; }
  .review-save-actions .button { width: 100%; }
}
