/* Campaign observability: compact overview, inspectable targets, native dialog. */
.campaign-overview em{font-size:15px;font-style:normal;color:#679168;margin-left:6px}.campaign-delivery{height:4px;margin:0 23px;background:#edf2e7;border-radius:3px;overflow:hidden}.campaign-delivery>span{display:block;height:100%;background:linear-gradient(90deg,#4c8b68,#b8db7c);transition:width .3s}.campaign-execution-note{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:0 20px 16px;padding:13px 15px;border:1px solid #e3ebdc;border-radius:9px;background:#f7faf2;font-size:10px;line-height:1.8;color:#6f886b}.campaign-execution-note>span{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.campaign-execution-note svg{width:14px;height:14px;flex-shrink:0}.campaign-diagnosis{display:flex;align-items:flex-start;gap:12px;background:#f4f8ef;border:1px solid #e2ebd9;border-radius:10px;margin:14px 20px 21px;padding:15px 17px}.campaign-diagnosis>span{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:#e6efdd;color:#6a8b57;flex-shrink:0}.campaign-diagnosis svg{width:15px;height:15px}.campaign-diagnosis strong{display:block;font-size:11px;line-height:1.6;font-weight:550;color:#4b6d4b}.campaign-diagnosis p{font-size:10px;line-height:1.9;margin:5px 0 0;color:#7b9072}.campaign-filter-chips{display:flex;gap:7px;padding:0 20px 17px;flex-wrap:wrap}.campaign-filter-chips button{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:7px;background:#f4f6f0;border:1px solid #e8eee0;color:#8a9b7c;font-size:10px}.campaign-filter-chips button b{font-weight:500;background:#e9eee2;border-radius:4px;padding:2px 5px;min-width:19px}.campaign-filter-chips button.active{color:#315c41;border-color:#b7cca7;background:#edf6e1}.campaign-filter-chips button.active b{background:#dbecc5}.campaign-target-link{text-align:left;font-size:11px;font-weight:550;line-height:1.65;color:#3c6e52;background:transparent;padding:0;overflow-wrap:anywhere}.campaign-target-link:hover{text-decoration:underline;text-underline-offset:3px}.campaign-row-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.campaign-row-actions .text-button{font-size:10px}.campaign-error-preview{display:block;margin-top:8px;color:#a77554!important;max-width:220px}.campaign-cache-pill{display:block;font-size:8px;color:#7f9d68;margin-top:7px}.campaign-table-empty{text-align:center;padding:40px!important;color:#91a185!important}.campaign-export{border-top:1px solid #e8eddf;padding:15px 20px;display:flex;align-items:center;flex-wrap:wrap;gap:12px}.campaign-export>span{display:flex;gap:6px;align-items:center;font-size:10px;color:#7a9070}.campaign-export svg{width:13px;height:13px}.campaign-export a{font-size:10px}.campaign-export small{font-size:8px;color:#9caa90;flex-basis:100%;line-height:1.7}.campaign-inspector{padding:0;border:0;border-left:1px solid #dfe9d5;border-radius:20px 0 0 20px;max-height:none;height:100dvh;width:min(710px,96vw);max-width:100vw;margin:0 0 0 auto;position:fixed;inset:0 0 0 auto;background:#fbfdf8;color:#365743;box-shadow:-18px 0 90px #122f3026;overflow:hidden}.campaign-inspector[open]{display:flex;flex-direction:column}.campaign-inspector::backdrop{background:#15333080;backdrop-filter:blur(3px)}.campaign-inspect-header{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;padding:26px 30px 23px;background:linear-gradient(115deg,#173f3a,#264d44);color:#eaf5dc;flex-shrink:0}.campaign-inspect-eyebrow{font-size:8px;letter-spacing:2px;color:#b0cb93}.campaign-inspect-header h2{font-size:22px;font-weight:500;letter-spacing:-.4px;line-height:1.5;overflow-wrap:anywhere;margin:12px 0 8px}.campaign-inspect-header p{font-size:9px;color:#9bb99c;overflow-wrap:anywhere;margin:0}.campaign-inspect-header .icon-button{background:#ffffff0a;color:#c6dcc0;flex-shrink:0}.campaign-inspect-header .icon-button:hover{background:#ffffff18}.campaign-inspect-body{overflow:auto;overscroll-behavior:contain;padding:23px 30px 5px;flex:1;min-height:0}.campaign-inspect-status{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.campaign-inspect-status>span:nth-child(2){font-size:10px;color:#8d9e81}.campaign-inspect-status>.text-button{margin-left:auto;display:flex;align-items:center;gap:5px;font-size:10px}.campaign-inspect-status svg{width:12px;height:12px}.campaign-inspect-rail{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));list-style:none;margin:26px 0 10px;padding:0;gap:6px}.campaign-inspect-rail li{position:relative;min-width:0}.campaign-inspect-rail li:not(:last-child):after{content:'';position:absolute;height:1px;left:30px;right:0;top:13px;background:#e0e8d6}.campaign-inspect-rail i{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;border:1px solid #dae5cf;font-size:10px;font-style:normal;color:#a0af92;background:#f5f8f0}.campaign-inspect-rail span{display:block;line-height:1.8;font-size:9px;margin-top:10px;color:#99aa8a}.campaign-inspect-rail b{font-size:8px;font-weight:500;display:block;color:#b07c58}.campaign-inspect-rail .observed i{color:#668954;background:#e8f2dd;border-color:#c2d6af}.campaign-inspect-rail .observed span{color:#789568}.campaign-inspect-rail .current i{color:#d6eab2;border-color:#3b6c4b;background:#3b6c4b;box-shadow:0 0 0 4px #e4efd7}.campaign-inspect-rail .current span{color:#426b43;font-weight:550}.campaign-inspect-rail .failed i{color:#9d6843;background:#fff0e3;border-color:#e0b78e}.campaign-inspect-hint{font-size:9px;line-height:1.9;color:#99a98b;margin:10px 0 0}.campaign-inspect-body>.campaign-diagnosis{margin:20px 0;padding:14px}.campaign-inspect-error{border:1px solid #ebd2bc;background:#fff7ed;border-radius:10px;padding:17px;margin:18px 0}.campaign-inspect-error h3{font-size:11px;font-weight:550;color:#a27550;margin:0 0 11px}.campaign-inspect-error pre{font-size:11px;line-height:1.9;color:#9d7555;white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.campaign-inspect-actions{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.campaign-inspect-actions:empty{display:none}.campaign-inspect-section{padding:22px 0;border-top:1px solid #e7eddf}.campaign-inspect-section h3{font-size:12px;font-weight:550;margin:0 0 18px;color:#52754d}.campaign-inspect-facts{display:grid;grid-template-columns:1fr 1fr;gap:18px 26px;margin:0}.campaign-inspect-facts>div{min-width:0}.campaign-inspect-facts dt{font-size:9px;color:#a0ad92;margin-bottom:6px}.campaign-inspect-facts dd{font-size:11px;line-height:1.8;color:#66865a;margin:0;overflow-wrap:anywhere}.campaign-inspect-identifiers{border:1px solid #e2ead7;border-radius:9px;padding:15px 17px;background:#f7faf2;margin:0 0 22px}.campaign-inspect-identifiers summary{cursor:pointer;font-size:10px;color:#7e9470;line-height:1.8}.campaign-inspect-identifiers .campaign-inspect-facts{margin-top:18px;grid-template-columns:1fr}.campaign-inspect-identifiers dd{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:9px}.campaign-inspect-section-title{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.campaign-inspect-section-title>span{font-size:8px;color:#9eac8f}.campaign-inspect-events{list-style:none;margin:0;padding:0}.campaign-inspect-events li{display:flex;gap:13px;padding:0 0 20px;position:relative}.campaign-inspect-events li:not(:last-child):before{content:'';position:absolute;left:3px;top:9px;bottom:0;width:1px;background:#e1e9d7}.campaign-inspect-events li>i{width:7px;height:7px;background:#a1bb85;border-radius:50%;flex-shrink:0;margin-top:5px;z-index:1;box-shadow:0 0 0 3px #f4f8ed}.campaign-inspect-events li>div{min-width:0}.campaign-inspect-events strong{font-size:10px;font-weight:550;color:#69885b}.campaign-inspect-events p{font-size:10px;line-height:1.9;color:#839a74;margin:7px 0;white-space:pre-wrap;overflow-wrap:anywhere}.campaign-inspect-events time{font-size:8px;color:#a4b097}.campaign-inspect-no-events{font-size:10px;color:#a0ae92}.campaign-inspect-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 30px;border-top:1px solid #e2eada;background:#f5f8ef;flex-shrink:0}.campaign-inspect-footer>span{font-size:9px;color:#95a584}.campaign-inspect-loading{padding:35px;color:#739061}.campaign-inspect-loading h2{font-size:20px;font-weight:500}.campaign-inspect-loading p{font-size:12px;line-height:1.8;margin:20px 0}.campaign-inspector :focus-visible{outline-color:#88ad6c;outline-offset:4px}
@media(max-width:650px){.campaign-inspector{width:100vw;border-radius:0}.campaign-inspect-header{padding:22px 20px 20px}.campaign-inspect-header h2{font-size:20px}.campaign-inspect-body{padding:19px 20px 0}.campaign-inspect-footer{padding:14px 20px}.campaign-inspect-rail{grid-template-columns:repeat(3,minmax(0,1fr));gap:17px 9px}.campaign-inspect-rail li:nth-child(3):after{display:none}.campaign-inspect-facts{gap:17px}.campaign-inspect-facts dd{font-size:10px}.campaign-inspect-status{gap:9px}.campaign-inspect-status>.text-button{margin-left:0}.campaign-execution-note{display:block}.campaign-execution-note>.text-button{margin-top:9px}.campaign-export{gap:10px;padding:14px 16px}.campaign-filter-chips{padding:0 16px 16px;gap:6px}.campaign-filter-chips button{font-size:9px;padding:7px 8px}.campaign-diagnosis{margin:12px 16px 18px;padding:13px}.campaign-overview em{display:block;font-size:12px;margin:4px 0 0}.campaign-inspect-section-title{flex-wrap:wrap;gap:0}.campaign-inspect-section-title>span{margin-bottom:16px}.campaign-inspect-footer>span{font-size:8px;line-height:1.8}}
@media(prefers-reduced-motion:reduce){.campaign-delivery>span{transition:none}}

.campaign-inspect-footer{width:100%;max-width:none;margin:0;box-sizing:border-box}

/* Chain preparation reuse remains separate from complete-target cache reuse. */
.campaign-reuse-overview{margin:0 20px 21px;border:1px solid #dce8cf;border-radius:12px;padding:18px;background:linear-gradient(120deg,#f2f7e9,#fafcf5)}
.campaign-reuse-heading{display:flex;align-items:center;gap:10px;margin-bottom:17px}.campaign-reuse-heading>span:first-child{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:#e2edcf;color:#648445;flex-shrink:0}.campaign-reuse-heading svg{width:16px;height:16px}.campaign-reuse-heading h4{font-size:12px;font-weight:550;line-height:1.6;margin:4px 0 0;color:#40613b}.campaign-reuse-eyebrow{font-size:7px;letter-spacing:1.4px;color:#90a378}.campaign-reuse-count{font-size:8px;line-height:1.7;color:#7b9367;margin-left:auto;text-align:right}
.campaign-reuse-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0 0 16px}.campaign-reuse-stats>div{padding:12px 10px;border:1px solid #e0e9d5;border-radius:8px;background:#ffffff9c;min-width:0}.campaign-reuse-stats dt{font-size:9px;color:#81996d;line-height:1.5}.campaign-reuse-stats dd{margin:8px 0 5px;font:500 22px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;color:#476c3d;overflow-wrap:anywhere}.campaign-reuse-stats small{font-size:7px;line-height:1.7;color:#9aa98a;display:block}
.campaign-reuse-mechanism{display:grid;grid-template-columns:1fr auto 1.2fr auto 1.2fr;gap:9px;align-items:center;padding:12px 0;border-top:1px solid #dfe8d3;border-bottom:1px solid #dfe8d3}.campaign-reuse-mechanism>span{font-size:8px;line-height:1.8;color:#92a27e}.campaign-reuse-mechanism b{display:block;font-size:9px;font-weight:550;color:#627f4e;margin-bottom:3px}.campaign-reuse-mechanism i{font-size:15px;font-style:normal;color:#a3b68d}.campaign-reuse-scope,.campaign-reuse-explanation,.campaign-reuse-empty{font-size:8px;color:#92a57c;line-height:1.9;margin:12px 0 0}.campaign-reuse-empty{font-size:10px;margin:0 0 15px}.campaign-reuse-explanation{color:#80966b}.campaign-chain-pill{color:#698c53}.campaign-chain-copy{color:#9bab8b;font-size:7px}
.campaign-reuse-detail-status{border:1px solid #d9e6ca;border-radius:5px;padding:4px 7px!important;background:#f0f6e7;color:#7d9864!important}.campaign-reuse-detail-note{margin:0 0 15px;padding:12px 14px;font-size:10px;line-height:1.9;border-left:3px solid #bfd39f;background:#f3f8eb;border-radius:0 6px 6px 0;color:#7e956d}.campaign-reuse-detail-counts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px 13px;margin:0 0 19px}.campaign-reuse-detail-counts dt{font-size:8px;color:#99aa89;margin:0 0 5px}.campaign-reuse-detail-counts dd{font-size:15px;color:#648451;margin:0;line-height:1.7}.campaign-chain-entry{margin:8px 0;border:1px solid #dce7d1;border-radius:8px;background:#f7faf2;overflow:hidden}.campaign-chain-entry summary{display:flex;align-items:center;gap:10px;padding:12px 13px;cursor:pointer;list-style:none}.campaign-chain-entry summary::-webkit-details-marker{display:none}.campaign-chain-entry summary:before{content:'+';color:#94ac7b;font-size:13px;flex-shrink:0}.campaign-chain-entry[open] summary:before{content:'−'}.campaign-chain-id{font:500 10px/1.8 ui-monospace,SFMono-Regular,Menlo,monospace;color:#5f8051;overflow-wrap:anywhere;min-width:0}.campaign-chain-length{color:#99aa89;font-size:8px;white-space:nowrap}.campaign-chain-outcome{font-size:8px;line-height:1.7;margin-left:auto;color:#6a8e51;background:#e8f2da;border-radius:4px;padding:3px 7px;text-align:right;flex-shrink:0}.campaign-chain-entry.searched .campaign-chain-outcome{color:#9d8a5c;background:#f5efdc}.campaign-chain-entry.historical .campaign-chain-outcome{color:#97a68a;background:#edf1e7}.campaign-chain-entry .campaign-inspect-facts{padding:3px 15px 16px;grid-template-columns:1fr;gap:12px}.campaign-chain-entry .campaign-inspect-facts dd{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:8px;line-height:1.9}
@media(max-width:650px){.campaign-reuse-overview{margin:0 16px 18px;padding:14px}.campaign-reuse-heading{gap:8px}.campaign-reuse-heading h4{font-size:11px}.campaign-reuse-eyebrow{font-size:6px;letter-spacing:1px}.campaign-reuse-count{font-size:7px;max-width:72px}.campaign-reuse-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.campaign-reuse-stats dd{font-size:20px}.campaign-reuse-mechanism{grid-template-columns:1fr;gap:5px}.campaign-reuse-mechanism>span{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}.campaign-reuse-mechanism b{margin:0}.campaign-reuse-mechanism i{display:none}.campaign-reuse-detail-counts{grid-template-columns:repeat(2,minmax(0,1fr))}.campaign-chain-entry summary{gap:7px;padding:11px 10px}.campaign-chain-outcome{font-size:7px;max-width:112px}.campaign-chain-length{font-size:7px}.campaign-reuse-detail .campaign-inspect-section-title{gap:9px;margin-bottom:13px}.campaign-reuse-detail .campaign-inspect-section-title h3{margin:0}.campaign-reuse-detail .campaign-inspect-section-title>span{margin-bottom:0}}

.campaign-fixed-fields[hidden]{display:none}.campaign-fixed-fields textarea{display:block;width:100%;min-height:150px;resize:vertical;border:1px solid #d3dfc8;background:#f7faf1;border-radius:8px;padding:12px;font:10px/1.9 ui-monospace,SFMono-Regular,Menlo,monospace;color:#537445;margin:0 0 9px;overflow-wrap:anywhere}.campaign-fixed-fields textarea::placeholder{color:#a1b190}.campaign-fixed-fields .batch-helper{font-size:8px}.campaign-input-preview:empty{display:none}.campaign-input-preview{background:#f0f6e7;border:1px solid #d9e7c8;border-radius:9px;padding:13px 12px;margin:0 0 18px;min-width:0}.campaign-preview-kicker{display:block;font-size:7px;letter-spacing:1.1px;color:#91a877;line-height:1.7;margin-bottom:8px}.campaign-input-preview>strong{display:block;font-size:10px;font-weight:550;color:#5f7e4b;line-height:1.8}.campaign-input-preview>span:not(.campaign-preview-kicker){display:block;font-size:8px;line-height:1.9;color:#8da476;margin-top:5px}.campaign-input-preview p{font-size:9px;line-height:1.9;color:#8b9d7a;margin:0}.campaign-input-preview .campaign-preview-error{color:#a37853}.campaign-input-preview ol{list-style:none;padding:0;margin:11px 0;border-top:1px solid #dce6ce}.campaign-input-preview li{padding:10px 0 0;min-width:0}.campaign-input-preview li b{font-size:9px;font-weight:500;line-height:1.8;color:#68854f;display:block;overflow-wrap:anywhere}.campaign-input-preview li span{font-size:8px;color:#9aad83;line-height:1.8;display:block;overflow-wrap:anywhere}.campaign-input-preview small{font-size:8px;line-height:1.9;color:#99aa86;display:block}.batch-form input:disabled,.batch-form select:disabled,.batch-form textarea:disabled{opacity:.65;cursor:wait}

/* Architecture explanation uses schematic counts, not live performance data. */
.chain-architecture{margin-top:24px;overflow:hidden}
.chain-architecture-canvas{padding:12px 18px;overflow-x:auto}
.chain-architecture-canvas svg{display:block;width:100%;min-width:580px;font-family:inherit}
.chain-diagram-path{color:#83a36f;fill:none;stroke:currentColor;stroke-width:1.5}
.chain-diagram-path path{marker-end:url(#chain-flow-arrow)}
.chain-diagram-block rect{fill:#f7faf2;stroke:#d4e1c3}
.chain-diagram-block.shared rect{fill:#d7efaf;stroke:#a1c66e}
.chain-diagram-block.execution rect{fill:#193f3b;stroke:#193f3b}
.chain-diagram-title{fill:#315536;font-size:15px;font-weight:600}
.chain-diagram-note{fill:#6c805d;font-size:10px}
.chain-diagram-block.execution .chain-diagram-title{fill:#d5f3a8}
.chain-diagram-block.execution .chain-diagram-note{fill:#b7d0bc}
.chain-architecture-foot{display:flex;align-items:center;gap:22px;justify-content:space-between;padding:16px 22px;background:#f8faf5;border-top:1px solid #e6ecdf}
.chain-architecture-foot p{font-size:12px;line-height:1.9;color:#72816c;margin:0;max-width:760px}
.chain-architecture-foot strong{color:#395f37;font-weight:500}
.chain-architecture-foot a{font-size:12px;color:#507748;white-space:nowrap}
@media(max-width:700px){.chain-architecture-foot{align-items:flex-start;flex-direction:column;gap:9px}.chain-architecture .panel-heading{flex-wrap:wrap;gap:8px}.chain-architecture-canvas{padding:8px}}

/* Keep campaign controls tied to the visible record while requests settle. */
.campaign-refresh-state{font-size:10px;line-height:1.7;color:#7f9471;margin:-4px 4px 13px}.campaign-refresh-state[hidden]{display:none}.campaign-refresh-error{margin:0 0 15px;padding:12px 15px;border:1px solid #e7cdb4;background:#fff8ef;border-radius:9px;color:#9c7250;font-size:11px;line-height:1.9;overflow-wrap:anywhere}.campaign-refresh-error p{margin:6px 0 0;color:#967f66;font-size:10px}.campaign-operation-feedback{margin:0 20px 17px;padding:11px 14px;background:#f0f6e7;border:1px solid #dbe8cc;border-radius:8px;color:#698950;font-size:11px;line-height:1.8}.campaign-operation-feedback.completed{background:#f7faf2;color:#809570}.campaign-operation-error{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin:0 20px 17px;padding:14px 16px;border:1px solid #ead0b8;border-radius:10px;background:#fff8ef;color:#9c7250}.campaign-operation-error strong{font-size:11px;font-weight:550}.campaign-operation-error p{font-size:11px;line-height:1.8;margin:6px 0;overflow-wrap:anywhere}.campaign-operation-error small{font-size:9px;color:#a08a6d;line-height:1.8}.campaign-operation-error>.text-button{flex-shrink:0;font-size:10px;color:#a18462}.campaign-cancel-confirm{margin:0 20px 18px;border:1px solid #e2c9ad;border-left:3px solid #bd9871;border-radius:10px;padding:17px 18px;background:#fff9ef}.campaign-cancel-confirm h4{font-size:13px;font-weight:550;color:#8c6543;line-height:1.8;margin:0 0 9px;overflow-wrap:anywhere}.campaign-cancel-confirm p{font-size:11px;color:#a18767;line-height:1.9;margin:0 0 14px}.campaign-cancel-confirm>div{display:flex;gap:10px;flex-wrap:wrap}.campaign-cancel-confirm button{font-size:10px}.batch-dashboard [data-campaign-action]:disabled{cursor:wait}.batch-monitor[aria-busy=true] .campaign-refresh-state:not([hidden]){display:block}.campaign-cancel-confirm :focus-visible{outline:3px solid #b49470;outline-offset:3px}@media(max-width:600px){.campaign-operation-feedback,.campaign-operation-error,.campaign-cancel-confirm{margin-left:13px;margin-right:13px}.campaign-cancel-confirm{padding:14px}.campaign-cancel-confirm h4{font-size:12px}.campaign-cancel-confirm p{font-size:10px}.campaign-operation-error{padding:12px;flex-wrap:wrap}.campaign-cancel-confirm>div{gap:8px}}
