/* Explicit button colors resist the workbench's global button rules. */
.cs-studio .cs-nav button.sat-button.sat-entry,.cs-studio .cs-topbar button.sat-button.sat-entry,button.sat-button.sat-entry {background:#eaf2ed;color:#205b43;border:1px solid #b7d1c1;border-radius:8px;padding:10px 14px;margin-top:8px;font:600 13px/1.5 -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;cursor:pointer}
.cs-studio .cs-nav button.sat-button.sat-entry:hover,.cs-studio .cs-nav button.sat-button.sat-entry:focus-visible {background:#d7e8de;color:#123f2b}
dialog.sat-dialog,dialog.sat-preview {box-sizing:border-box;border:1px solid #d2ddd6;border-radius:16px;color:#20362b;background:#f5f8f5;box-shadow:0 22px 90px #17342755;font:14px/1.6 -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif}
dialog.sat-dialog {width:min(1320px,calc(100vw - 32px));max-width:1320px;max-height:calc(100dvh - 32px);padding:24px;overflow:auto}
dialog.sat-dialog::backdrop,dialog.sat-preview::backdrop {background:#1b2b2373}
dialog.sat-dialog *,dialog.sat-preview * {box-sizing:border-box}
dialog.sat-dialog [hidden],dialog.sat-preview [hidden] {display:none!important}
dialog.sat-dialog button.sat-button,dialog.sat-preview button.sat-button {appearance:none;background:#fff;color:#244b36;border:1px solid #b9cdbf;border-radius:7px;padding:8px 12px;min-height:36px;line-height:1.5;font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;text-shadow:none;box-shadow:none;text-transform:none;letter-spacing:normal}
dialog.sat-dialog button.sat-button:hover,dialog.sat-preview button.sat-button:hover {background:#e8f1e9;color:#173d27;border-color:#83a68e}
dialog.sat-dialog button.sat-button:active,dialog.sat-preview button.sat-button:active {background:#dae9df;color:#143923}
dialog.sat-dialog button.sat-button:disabled,dialog.sat-preview button.sat-button:disabled {background:#e9eeeb;color:#6e7d73;border-color:#d2dbd5;cursor:default;opacity:1}
dialog.sat-dialog button.sat-primary {background:#225d42;color:#fff;border-color:#225d42}
dialog.sat-dialog button.sat-primary:hover,dialog.sat-dialog button.sat-primary:active {background:#17452f;color:#fff;border-color:#17452f}
dialog.sat-dialog button.sat-primary:disabled {background:#dce7df;color:#62766a;border-color:#cbd9d0}
dialog.sat-dialog :focus-visible,dialog.sat-preview :focus-visible {outline:3px solid #63a27e;outline-offset:3px}
.sat-header,.sat-toolbar,.sat-source>header,dialog.sat-preview>header {display:flex;align-items:center;justify-content:space-between;gap:18px}
.sat-header h2 {margin:4px 0 12px;font-size:25px;line-height:1.4}.sat-eyebrow {margin:0;color:#577263;font-size:12px;font-weight:700;letter-spacing:.07em}.sat-header button {flex-shrink:0}
.sat-boundary {padding:11px 14px;background:#e8f1e9;border:1px solid #d5e3d8;border-radius:8px;font-size:13px}
.sat-create {margin:20px 0 6px}.sat-create>label {display:block;margin-bottom:6px;font-size:13px;font-weight:700}.sat-create>div {display:flex;gap:10px;max-width:680px}
.sat-create input {min-width:0;width:100%;border:1px solid #b9cdbf;border-radius:7px;padding:10px 12px;font:inherit;font-size:15px;color:#233f2c;background:#fff}.sat-create button {flex-shrink:0}
.sat-connection-actions{display:flex;gap:8px;align-items:center}
.sat-toolbar{flex-wrap:wrap}.sat-toolbar>.sat-service-status{flex:1;min-width:180px;display:grid;gap:3px}.sat-connection-actions{flex-shrink:0}
.sat-toolbar {font-size:12px;color:#5e7165;margin:15px 0}.sat-job-section {border-top:1px solid #dce5df;padding-top:14px}.sat-jobs {display:flex;gap:10px;overflow:auto;padding:3px 3px 8px}
dialog.sat-dialog button.sat-job {display:flex;flex-direction:column;gap:3px;min-width:185px;max-width:250px;align-items:flex-start;text-align:left;font-weight:400;background:#fff;color:#294a34}
dialog.sat-dialog button.sat-job[aria-current=true] {background:#e5f0e8;color:#1d5134;border-color:#77a68b}.sat-job strong {font-size:12px;overflow-wrap:anywhere}.sat-job span,.sat-job small {font-size:11px}.sat-job small {color:#687b6e}
#sat-create-status,#sat-list-status,#sat-frame-warning {font-size:12px;line-height:1.7;overflow-wrap:anywhere}#sat-current {padding:14px 0;border-top:1px solid #dce5df}#sat-current h3 {margin:0 0 8px;font-size:18px}#sat-job-status {font-weight:600;color:#3b674a;margin:5px 0}#sat-error {font-size:13px;color:#94432e;white-space:pre-wrap}.sat-muted {font-size:12px;color:#66796b;line-height:1.7}
.sat-select-help {padding:10px 14px;background:#fff;border:1px solid #d8e2da;border-radius:8px;font-size:12px}.sat-select-help p {margin:0 0 7px}.sat-select-help label {display:flex;align-items:center;gap:7px;color:#5a6e60}.sat-select-help input {width:16px;height:16px;accent-color:#2e684a}
.sat-gallery {display:grid;gap:26px;padding-bottom:20px}.sat-source {border-top:1px solid #d5e0d8;padding-top:18px}.sat-source>header {margin-bottom:13px;align-items:flex-start}.sat-source h3 {font-size:17px;margin:0}.sat-source p {margin:5px 0}.sat-source-link {color:#2c6948;font-size:12px;flex-shrink:0;text-decoration:underline}
.sat-source>header>div{min-width:0}.sat-source h3,.sat-source p,#sat-job-title{overflow-wrap:anywhere}
.sat-grid {display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;user-select:none;touch-action:pan-y}.sat-touch-selection .sat-grid {touch-action:none}
.sat-tile {border:2px solid #dbe4dd;background:#fff;border-radius:9px;padding:5px;min-width:0}.sat-tile[data-selected=true] {border-color:#2c8150;background:#e6f3e9;box-shadow:0 0 0 1px #2c8150}
dialog.sat-dialog button.sat-tile-select {display:flex;flex-direction:column;width:100%;padding:0;border:0;border-radius:4px;background:#fff;color:#294232;overflow:hidden;min-height:0;font-weight:400;text-align:left;touch-action:inherit}
dialog.sat-dialog button.sat-tile-select:hover,dialog.sat-dialog button.sat-tile-select:active {background:#eaf3ed;color:#173d27;border:0}
dialog.sat-dialog button.sat-tile-select[aria-pressed=true] {background:#e6f3e9;color:#154d2b}
dialog.sat-dialog button.sat-tile-select:disabled {background:#eef2ef;color:#738276;border:0}
.sat-tile-select>img {width:100%;height:230px;display:block;object-fit:contain;background:#eef2ef;pointer-events:none;-webkit-user-drag:none}.sat-image-placeholder {display:flex;align-items:center;justify-content:center;width:100%;height:230px;background:#eef2ef;font-size:12px;color:#728278}.sat-caption {display:flex;justify-content:space-between;align-items:center;width:100%;padding:8px;font-size:12px;gap:4px}.sat-caption strong {font-size:13px}
dialog.sat-dialog button.sat-zoom {width:100%;font-size:11px;min-height:29px;padding:4px 8px;margin-top:4px;background:#f6f9f6;color:#47634f;border-color:#d5e0d8}dialog.sat-dialog button.sat-zoom:hover {background:#e6eee8;color:#224f32}
.sat-selection {position:sticky;bottom:-24px;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;border:1px solid #bfd2c4;background:#f1f8f1;box-shadow:0 -6px 20px #193a2520;border-radius:10px;margin:4px 0 0}.sat-selection>div:first-child {min-width:0;flex:1}.sat-selection strong {display:block;font-size:14px}.sat-selection span {display:block;font-size:11px;color:#5b7161;max-height:50px;overflow:auto;overflow-wrap:anywhere}.sat-selection p {font-size:12px;margin:6px 0 0;line-height:1.6;color:#47694f}.sat-selection-actions {display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;max-width:430px}.sat-selection-actions button {font-size:12px!important}
dialog.sat-preview {width:min(780px,calc(100vw - 24px));max-width:780px;max-height:calc(100dvh - 24px);padding:18px;overflow:auto}dialog.sat-preview h3 {font-size:17px;margin:0}dialog.sat-preview>img {display:block;width:100%;height:min(70dvh,700px);object-fit:contain;background:#eaf0eb;margin-top:15px}dialog.sat-preview>p {font-size:12px;color:#56705e;overflow-wrap:anywhere}
@media(max-width:1100px){.sat-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.sat-tile-select>img,.sat-image-placeholder{height:205px}}
@media(max-width:800px){.sat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.sat-selection{flex-direction:column;align-items:stretch}.sat-selection-actions{max-width:none}.sat-tile-select>img,.sat-image-placeholder{height:190px}}
@media(max-width:520px){dialog.sat-dialog{width:calc(100vw - 12px);max-height:calc(100dvh - 12px);padding:13px;border-radius:10px}.sat-header h2{font-size:20px}.sat-header{gap:8px}.sat-create>div{flex-direction:column}.sat-create button{width:100%}.sat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.sat-tile-select>img,.sat-image-placeholder{height:205px}.sat-selection{bottom:-13px;padding:10px;gap:9px}.sat-selection-actions{gap:6px}.sat-selection-actions button{padding:6px 8px!important}.sat-source>header{gap:10px}.sat-source h3{font-size:15px}.sat-source-link{font-size:11px}.sat-toolbar{gap:8px;align-items:flex-start}.sat-toolbar button{flex-shrink:0}.sat-caption{padding:6px;font-size:11px}.sat-preview>header{gap:8px}}

/* Keep source-local pagination readable under workbench button styles. */
.sat-pager {display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px;margin:12px 0}.sat-page-status {font-size:12px;color:#496451;text-align:center}
dialog.sat-dialog .sat-pager button.sat-button {background:#fff;color:#244b36;min-width:72px}dialog.sat-dialog .sat-pager button.sat-button:hover,dialog.sat-dialog .sat-pager button.sat-button:active {background:#e8f1e9;color:#173d27}dialog.sat-dialog .sat-pager button.sat-button:disabled {background:#e9eeeb;color:#6e7d73}
/* Upload and explicit analysis share the source gallery, without collection controls. */
.sat-picker{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:20px 16px;margin:18px 0 8px;border:1px dashed #a4bfae;border-radius:10px;background:#edf5ef}.sat-picker>span{font-size:12px;color:#5e7366}
.cs-studio dialog.sat-dialog label.sat-file-label{position:relative;display:inline-flex;align-items:center;justify-content:center;padding:10px 18px;border:1px solid #225d42;border-radius:7px;background:#225d42;color:#fff;font-weight:600;cursor:pointer;overflow:hidden}.cs-studio dialog.sat-dialog label.sat-file-label:hover{background:#17452f;color:#fff}.cs-studio dialog.sat-dialog label.sat-file-label:has(input:disabled){background:#dce7df;color:#62766a;border-color:#cbd9d0;cursor:default}.cs-studio dialog.sat-dialog label.sat-file-label input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:inherit}.cs-studio dialog.sat-dialog label.sat-file-label:focus-within{outline:3px solid #63a27e;outline-offset:3px}
.sat-history{margin-top:16px}.sat-history summary{font-size:12px;color:#4b6c56;cursor:pointer;margin-bottom:8px}.sat-toolbar #sat-list-status{flex:1;margin:0}.sat-upload-list{display:grid;gap:8px;margin:12px 0}.sat-upload{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#fff;border:1px solid #d8e2da;border-radius:8px;padding:10px 12px}.sat-upload>strong{font-size:13px;min-width:0;flex:1;overflow-wrap:anywhere}.sat-upload-status{color:#557560;font-size:12px}.sat-upload>progress{width:100%;height:7px;accent-color:#2d7650}.sat-upload .sat-upload-error{width:100%;font-size:12px;color:#963e2e;margin:0}.sat-upload button.sat-button{margin-left:auto}
.sat-analysis{padding:18px 0}.sat-analysis>header{display:flex;align-items:center;justify-content:space-between;gap:12px}.sat-analysis h3{margin:0}.sat-analysis>#sat-analysis-status{color:#315e43;font-weight:600}.sat-analysis>#sat-analysis-error{color:#963e2e}.sat-analysis>#sat-analysis-summary{white-space:pre-wrap;overflow-wrap:anywhere}.sat-analysis>#sat-analysis-warnings{color:#7b6032;font-size:13px;padding-left:20px}
.sat-proposals{display:grid;gap:18px;margin:18px 0}.sat-proposal{border:1px solid #cdded2;border-radius:10px;padding:16px;background:#fff}.sat-proposal h4{font-size:16px;margin:0 0 12px;overflow-wrap:anywhere}.sat-proposal-images{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.sat-proposal figure{margin:0;min-width:0}.sat-proposal figure>img,.sat-analysis-placeholder{width:100%;height:260px;object-fit:contain;background:#eef3ef;border-radius:6px}.sat-analysis-placeholder{display:flex;align-items:center;justify-content:center;font-size:12px;color:#6a7f70}.sat-proposal figcaption{font-size:12px;color:#536d5c;margin-top:6px}.sat-proposal-prompt{padding:12px;border-radius:7px;background:#edf5ef;white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px}
@media(max-width:520px){.sat-picker{gap:10px;padding:13px}.sat-upload{gap:7px}.sat-upload>strong{flex-basis:100%}.sat-proposal{padding:11px}.sat-proposal-images{gap:8px}.sat-proposal figure>img,.sat-analysis-placeholder{height:185px}.sat-analysis>header h3{font-size:17px}}

.sat-upload-actions{display:flex;gap:8px;flex-wrap:wrap}

.sat-analysis-actions{display:flex;gap:8px;flex-wrap:wrap}

/* The whole dashed area accepts the same original files as the picker button. */
dialog.sat-dialog .sat-picker{min-height:100px;transition:background-color .15s,border-color .15s,box-shadow .15s}
dialog.sat-dialog .sat-picker-copy{display:grid;gap:4px;min-width:0;flex:1 1 260px}
dialog.sat-dialog .sat-picker-copy strong{font-size:14px;font-weight:600;color:#244b36}
dialog.sat-dialog .sat-picker-copy span{font-size:12px;color:#5e7366}
dialog.sat-dialog .sat-picker[data-drag-over=true]{background:#dcefe2;border-color:#2b7650;box-shadow:inset 0 0 0 1px #2b7650}
dialog.sat-dialog .sat-picker[aria-disabled=true]{background:#f0f3f0;border-color:#c7d4ca}
@media(max-width:520px){dialog.sat-dialog .sat-picker-copy{flex-basis:100%}}
