:host { --smepro-green: #5fa832; --smepro-teal: #3f9a86; } :host { font-family: 'Inter', system-ui, sans-serif; color: #1c2b23; display: block; } a { color: #2f7d32; text-decoration: none; } a:hover { color: #1f5a22; text-decoration: underline; } @keyframes sw-spin { to { transform: rotate(360deg); } } @keyframes sw-pulse { 0%, 100% { opacity: .35; transform: scale(.8); } 50% { opacity: 1; transform: scale(1.15); } } .sw-loading { display: flex; align-items: center; justify-content: center; position: absolute; inset: 0; min-height: 100%; width: 100%; padding: 40px 0; box-sizing: border-box; background: linear-gradient(180deg, #f4faee 0%, #eaf3fb 100%); border-radius: 16px; } .pageLoading-Gif { width: 30%; margin-top: 2%; } /* Card */ .sw-card { border: 1px solid #e6ebe6; border-radius: 16px; box-shadow: 0 10px 26px -16px rgba(23,43,32,.28); /* Allow the Auto Configuration tooltip to extend outside the card. */ overflow: visible; background: #fff; } .sw-card-header { padding: 22px 26px; border-bottom: 1px solid #f0f2f0; display: flex; align-items: center; justify-content: space-between; gap: 16px; position: relative; z-index: 1; } .sw-title { margin: 0; font-size: 19px; font-weight: 800; letter-spacing: -.01em; color: #1c2b23; } .sw-subtitle { margin: 6px 0 0; font-size: 13px; color: #6b786f; max-width: 480px; } .sw-header-right { display: flex; align-items: center; gap: 14px; flex-shrink: 0; } .sw-divider { width: 1px; height: 26px; background: #e6ebe6; } .sw-auto-label { font-size: 13px; font-weight: 600; color: #37453d; } /* Connection pill */ .conn-pill { display: inline-flex; align-items: center; gap: 7px; font-size: 12px; font-weight: 600; padding: 6px 12px; border-radius: 20px; white-space: nowrap; } .conn-pill_on { background: #eef7e3; color: #4f8a24; } .conn-pill_off { background: #fdf6e3; color: #8a6d00; } .conn-dot { width: 7px; height: 7px; border-radius: 50%; background: currentColor; display: inline-block; } .conn-dot_pulse { box-shadow: 0 0 0 4px rgba(95,168,50,.18); animation: sw-pulse 1.6s ease-in-out infinite; } /* Sync direction hero */ .sw-hero { margin: 20px 26px 0; background: linear-gradient(105deg,#eef7e3 0%,#e6f1fb 100%); border: 1px solid #dde8ea; border-radius: 14px; padding: 18px 26px; display: flex; align-items: center; gap: 20px; box-shadow: 0 10px 24px -18px rgba(63,138,36,.35), 0 14px 30px -20px rgba(47,143,176,.3); flex-wrap: wrap; } .hero-side { display: flex; align-items: center; gap: 12px; flex: 1; min-width: 140px; } .hero-side_right { justify-content: flex-end; } .hero-text_right { text-align: right; } .hero-icon { width: 54px; height: 54px; border-radius: 11px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; } .hero-icon_shopify { background: transparent; color: #4f8a24; box-shadow: none; } .hero-icon_sf { background: transparent; color: #0176d3; box-shadow: none; } .hero-icon-img { width: 54px; height: 54px; object-fit: contain; } .hero-icon_shopify .hero-icon-img { width: 44px; height: 44px; } .hero-name { font-size: 14px; font-weight: 800; color: #1c2b23; } .hero-sub { font-size: 12px; color: #7c8a80; } .hero-mid { flex: 1.6; display: flex; flex-direction: column; align-items: center; gap: 6px; min-width: 220px; } .hero-line-row { display: flex; align-items: center; gap: 10px; width: 100%; } .hero-line { flex: 1; height: 2px; border-radius: 2px; } .hero-line_left { background: linear-gradient(90deg,#bcd9a6,#5fa832); } .hero-line_right { background: linear-gradient(90deg,#5fa832,#bcd9a6); } .hero-mid .conn-pill { background: #fff; border: 1px solid #dcefca; box-shadow: 0 2px 6px rgba(95,168,50,.15); padding: 6px 14px; } .hero-mid .conn-pill_off { border-color: #f0e2ba; } .hero-note { font-size: 10.5px; font-weight: 600; color: #8a978d; } /* Form fields */ .sw-fields { padding: 24px 26px 8px; display: flex; flex-direction: column; gap: 16px; } .field-row { display: grid; grid-template-columns: 210px 1fr; align-items: center; gap: 16px; } .field-row:focus-within { position: relative; z-index: 2; } .field-label { display: flex; align-items: center; gap: 7px; } .field-label label { font-size: 13.5px; font-weight: 600; color: #37453d; } .field-input { width: 100%; background: #F3F3F3; color: #747474; border-radius: 9px; --slds-c-input-color-background: transparent; --slds-c-input-color-background-disabled: transparent; --lwc-colorBackgroundInputDisabled: transparent; --lwc-colorBackgroundInput: transparent; --lwc-colorBackgroundButtonDefault: transparent; } .field-input .slds-dropdown, .field-input [class*="slds-listbox"] { --slds-g-color-neutral-base-95: #ffffff; --slds-g-color-neutral-base-100: #ffffff; --lwc-colorBackground: #ffffff; } .token-wrap { position: relative; display: flex; align-items: center; } .field-input_token { width: 100%; } .token-eye { position: absolute; right: 8px; background: none; border: none; padding: 6px; cursor: pointer; color: #7c8a80; display: flex; z-index: 1; } .token-eye:hover { color: #37453d; } /* .token-eye is normally an absolutely-positioned "show/hide" toggle sitting inside a position:relative field wrapper (the real access-token field). Reused here as a plain copy button inside a flex row that has no position:relative ancestor of its own — so `position:absolute; right:8px` was escaping all the way up to the modal overlay (position:fixed) and pinning itself to the viewport's right edge instead of the small box, making it appear to vanish/shift depending on window size/zoom. Put it back in normal flex flow for just these two usages. */ .gen-token-store-banner .token-eye, .gen-token-redirect-row .token-eye { position: static; right: auto; flex-shrink: 0; } .field-actions { display: flex; align-items: center; gap: 12px; justify-content: center; flex-wrap: wrap; } .sw-btn { display: inline-flex; align-items: center; gap: 8px; border-radius: 9px; padding: 10px 18px; font-size: 13px; font-weight: 700; cursor: pointer; font-family: inherit; border: none; } .sw-btn_primary { background: linear-gradient(120deg,#5fa832,#3f9a86); color: #fff; box-shadow: 0 6px 18px -6px rgba(58,150,120,.55), 0 2px 6px rgba(95,168,50,.25); transition: box-shadow .2s, transform .15s; } .sw-btn_primary:hover:not(:disabled) { box-shadow: 0 8px 22px -4px rgba(58,150,120,.65), 0 3px 8px rgba(95,168,50,.3); transform: translateY(-1px); } .sw-btn_muted { background: #fff; color: #a8a8a8; border: 1px solid #d4d9d4; box-shadow: 0 2px 6px rgba(0,0,0,.06); opacity: .65; cursor: not-allowed; } .sw-btn:disabled { cursor: not-allowed; } /* Auto Configuration summary */ .auto-summary-wrap { padding: 8px 26px 4px; } .auto-summary-card { background: linear-gradient(120deg,#f4faee 0%,#eaf3fb 100%); border: 1px solid #dce8e2; border-radius: 14px; padding: 22px 24px; } .auto-summary-head { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; } .auto-summary-icon { width: 40px; height: 40px; border-radius: 11px; /* background: #5fa832; */ background: linear-gradient(120deg, #5fa832, #2f8fb0); display: flex; align-items: center; justify-content: center; color: #fff; box-shadow: 0 4px 12px rgba(95,168,50,.3); flex-shrink: 0; } .auto-summary-title { font-size: 15.5px; font-weight: 800; color: #1c2b23; } .auto-summary-sub { font-size: 12.5px; color: #6b786f; } .auto-summary-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; } .auto-summary-item { display: flex; align-items: center; gap: 11px; background: #fff; border: 1px solid #e4eee0; border-radius: 11px; padding: 13px 15px; } .auto-summary-item-title { font-size: 13px; font-weight: 700; color: #26332b; } .auto-summary-item-sub { font-size: 12px; color: #7c8a80; } .auto-summary-footnote { display: flex; align-items: center; gap: 8px; margin-top: 16px; font-size: 12.5px; color: #6b786f; } .auto-summary-footnote strong { color: #37453d; } @media (max-width: 560px) { .auto-summary-grid { grid-template-columns: 1fr; } } /* Access scope error */ .scope-error-card { margin: 8px 26px 0; background: #fdeaea; border: 1px solid #f6c9c7; border-radius: 14px; padding: 18px 22px; } .scope-error-title { font-size: 14.5px; font-weight: 800; color: #a4302b; margin-bottom: 10px; } .scope-error-list { margin: 0 0 10px; padding-left: 18px; } .scope-error-item { font-size: 13px; color: #a4302b; margin-bottom: 4px; } .scope-error-help { margin: 0; font-size: 12.5px; color: #6b786f; line-height: 1.5; } /* Two panels */ .sw-panels { padding: 20px 26px 8px; display: grid; grid-template-columns: 1fr 1fr; gap: 18px; } .panel-card { background: linear-gradient(120deg,#f4faee 0%,#eaf3fb 100%); border: 1px solid #e4ebe6; border-radius: 14px; padding: 18px 20px; box-shadow: 0 6px 18px -12px rgba(23,43,32,.22); } .panel-card_emails { display: flex; flex-direction: column; } .panel-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 14px; } .panel-title { margin: 0; font-size: 15px; font-weight: 800; color: #1c2b23; line-height: 1.35; } .panel-sub { margin: 5px 0 16px; font-size: 12.5px; color: #6b786f; line-height: 1.5; } .obj-count-badge { font-size: 11.5px; font-weight: 700; color: #4f8a24; background: #e6f3d5; padding: 3px 10px; border-radius: 20px; } .obj-row { display: flex; align-items: center; justify-content: space-between; padding: 9px 0; border-bottom: 1px solid #f0f2f0; gap: 10px; } .obj-row_last { border-bottom: none; } .obj-left { display: flex; align-items: center; gap: 11px; } .obj-icon { width: 30px; height: 30px; flex: 0 0 auto; border-radius: 8px; background: #ecf6e3; display: flex; align-items: center; justify-content: center; color: #4f8a24; } .obj-label { font-size: 13.5px; font-weight: 600; color: #37453d; } .obj-right { display: flex; align-items: center; gap: 9px; } .required-tag { font-size: 10.5px; font-weight: 700; color: #9aa79d; background: #eef1ee; padding: 2px 8px; border-radius: 20px; } .locked-toggle { position: relative; width: 42px; height: 24px; flex: 0 0 auto; border-radius: 999px; /* background: #bcd9a6; */ background: linear-gradient(120deg, #5fa832, #2f8fb0); cursor: not-allowed; opacity: .7; } .locked-knob { position: absolute; top: 3px; left: 21px; width: 18px; height: 18px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.25); } /* Live toggle switches — plain custom button+knob (not lightning-input type=toggle, whose SLDS styling hooks didn't reliably take: it flashed blue on click then settled back to a default grey). Matches the reference's exact 42x24 pill/knob look and green-on/grey-off colors. */ .obj-toggle-track { position: relative; width: 42px; height: 24px; flex: 0 0 auto; border-radius: 999px; border: none; padding: 0; cursor: pointer; background: rgb(205, 212, 205); transition: background .2s, box-shadow .2s; /* Lightning Experience's global stylesheet puts a blue focus ring on every plain