.fpcw-launcher { margin: 0 0 16px; }
.fpcw-open-editor { display: inline-flex !important; align-items: center; gap: 7px; min-height: 42px; }
.fpcw-open-editor .dashicons, .fpcw-editor button .dashicons { width: 18px; height: 18px; font-size: 18px; line-height: 18px; }
.fpcw-saved-summary { margin-top: 10px; max-width: 620px; padding: 10px 12px; color: #174c31; background: #edf8f1; border-left: 3px solid #27864f; font-size: 14px; }
.fpcw-saved-summary.is-error { color: #8e2024; background: #fff1f1; border-left-color: #c7353a; }
.fpcw-modal[hidden] { display: none !important; }
.fpcw-modal { position: fixed; inset: 0; z-index: 999999; display: grid; place-items: center; padding: 2vh 2vw; color: #20242a; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.fpcw-modal__backdrop { position: absolute; inset: 0; background: rgb(16 20 24 / 78%); }
.fpcw-modal-open { overflow: hidden; }
.fpcw-editor { position: relative; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; width: min(1440px, 96vw); height: min(920px, 96vh); overflow: hidden; background: #f5f6f7; border: 1px solid #70757c; border-radius: 6px; box-shadow: 0 20px 70px rgb(0 0 0 / 36%); }
.fpcw-editor__header, .fpcw-editor__footer { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 14px 18px; background: #fff; }
.fpcw-editor__header { border-bottom: 1px solid #dfe2e5; }
.fpcw-editor__footer { justify-content: flex-end; border-top: 1px solid #dfe2e5; }
.fpcw-editor__header h2 { margin: 0; color: #181b20; font-size: 20px; line-height: 1.25; letter-spacing: 0; }
.fpcw-editor__header p { margin: 3px 0 0; color: #5d646d; font-size: 12px; line-height: 1.35; }
.fpcw-icon-button { display: grid !important; place-items: center; flex: 0 0 38px; width: 38px; height: 38px; padding: 0 !important; color: #343a40; background: transparent !important; border: 0 !important; border-radius: 4px !important; cursor: pointer; }
.fpcw-icon-button:hover { background: #eceff1 !important; }
.fpcw-editor__body { display: grid; grid-template-columns: 300px minmax(0, 1fr); min-height: 0; }
.fpcw-toolbar { min-height: 0; overflow-y: auto; padding: 16px; background: #fff; border-right: 1px solid #dfe2e5; }
.fpcw-control-group { display: grid; gap: 9px; padding: 0 0 16px; margin: 0 0 16px; border-bottom: 1px solid #e7e9eb; }
.fpcw-control-group:last-child { border-bottom: 0; }
.fpcw-control-group > label, .fpcw-control-group > div > label { color: #333941; font-size: 13px; font-weight: 700; }
.fpcw-control-group small { color: #626a73; font-size: 11px; line-height: 1.45; }
.fpcw-control-group textarea, .fpcw-control-group select, .fpcw-control-group input[type="number"] { box-sizing: border-box; width: 100%; min-height: 36px; color: #20242a; background: #fff; border: 1px solid #aeb4bb; border-radius: 3px; font-size: 14px; }
.fpcw-control-group textarea { resize: vertical; min-height: 58px; padding: 7px; }
.fpcw-control-group .button, .fpcw-editor__footer .button { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 38px; margin: 0; border-radius: 4px; font-size: 13px; letter-spacing: 0; }
.fpcw-swatches { display: flex; flex-wrap: wrap; gap: 9px; }
.fpcw-swatch { position: relative; width: 32px; height: 32px; padding: 0; background: var(--swatch); border: 2px solid #fff; border-radius: 50%; box-shadow: 0 0 0 1px #9299a1; cursor: pointer; }
.fpcw-swatch.is-active, .fpcw-swatch[aria-pressed="true"] { box-shadow: 0 0 0 2px #1473e6; }
.fpcw-inline-fields { display: grid; grid-template-columns: 1fr 64px 64px; gap: 10px; margin-top: 8px; }
.fpcw-inline-fields label { display: grid; gap: 4px; font-size: 12px; }
.fpcw-inline-fields input[type="color"] { width: 100%; height: 36px; padding: 2px; }
.fpcw-text-swatches { margin-top: 4px; }
.fpcw-text-swatches .fpcw-swatch { width: 26px; height: 26px; }
.fpcw-segmented { display: grid; grid-template-columns: repeat(5, 38px); margin-top: 10px; }
.fpcw-segmented button { display: grid; place-items: center; width: 38px; height: 36px; padding: 0; background: #fff; border: 1px solid #aeb4bb; border-right: 0; cursor: pointer; }
.fpcw-segmented button:first-child { border-radius: 4px 0 0 4px; }
.fpcw-segmented button:last-child { border-right: 1px solid #aeb4bb; border-radius: 0 4px 4px 0; }
.fpcw-segmented button[aria-pressed="true"] { color: #fff; background: #2d5f88; }
.fpcw-selection-actions { display: grid; gap: 8px; margin-top: 12px; }
.fpcw-danger { color: #a32629 !important; }
.fpcw-stage-wrap { display: flex; flex-direction: column; align-items: center; min-width: 0; min-height: 0; overflow: auto; padding: 14px 20px 20px; }
.fpcw-tabs { display: flex; flex: 0 0 auto; gap: 2px; align-self: stretch; overflow-x: auto; margin-bottom: 14px; border-bottom: 1px solid #cbd0d5; }
.fpcw-tabs button { flex: 0 0 auto; min-height: 38px; padding: 6px 14px; color: #4b535c; background: transparent; border: 0; border-bottom: 3px solid transparent; font-size: 13px; font-weight: 600; cursor: pointer; }
.fpcw-tabs button.is-active { color: #174d78; border-bottom-color: #1473e6; }
.fpcw-canvas-shell { position: relative; flex: 0 0 auto; width: min(100%, 760px); max-width: 100%; overflow: hidden; background: repeating-conic-gradient(#e3e5e7 0 25%, #f5f6f7 0 50%) 0 / 24px 24px; border: 1px solid #aeb4bb; box-shadow: 0 8px 24px rgb(35 42 49 / 13%); }
#fpcw-canvas { display: block; width: 100%; height: 100%; touch-action: none; cursor: default; }
#fpcw-canvas:focus { outline: 3px solid rgb(20 115 230 / 35%); outline-offset: 2px; }
.fpcw-loading { position: absolute; inset: 0; display: grid; place-items: center; color: #fff; background: rgb(30 35 41 / 68%); font-size: 14px; font-weight: 700; }
.fpcw-editor-message { flex: 0 0 22px; align-self: stretch; margin-top: 8px; color: #22633e; text-align: center; font-size: 13px; }
.fpcw-editor-message.is-error { color: #b42328; }
@media (max-width: 820px) {
	.fpcw-modal { padding: 0; }
	.fpcw-editor { width: 100vw; height: 100dvh; border: 0; border-radius: 0; }
	.fpcw-editor__body { grid-template-columns: 1fr; overflow-y: auto; }
	.fpcw-toolbar { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; overflow: visible; border-right: 0; border-bottom: 1px solid #dfe2e5; }
	.fpcw-control-group { min-width: 0; margin: 0; }
	.fpcw-stage-wrap { min-height: 430px; overflow: visible; padding: 12px; }
}
@media (max-width: 520px) {
	.fpcw-editor__header, .fpcw-editor__footer { padding: 10px 12px; }
	.fpcw-editor__header h2 { font-size: 17px; }
	.fpcw-toolbar { grid-template-columns: 1fr; padding: 12px; }
	.fpcw-stage-wrap { min-height: 360px; }
	.fpcw-editor__footer .button { flex: 1 1 0; white-space: normal; }
}
