.bkbg-cpg-app { box-sizing: border-box; padding: 28px 20px; } .bkbg-cpg-title { margin: 0 0 4px; font-family: var(--bkbg-cpg-tt-font-family, inherit); font-size: var(--bkbg-cpg-tt-font-size-d, 22px); font-weight: var(--bkbg-cpg-tt-font-weight, 700); line-height: var(--bkbg-cpg-tt-line-height-d, 1.25); text-transform: var(--bkbg-cpg-tt-text-transform, none); font-style: var(--bkbg-cpg-tt-font-style, normal); text-decoration: var(--bkbg-cpg-tt-text-decoration, none); letter-spacing: var(--bkbg-cpg-tt-letter-spacing-d, normal); word-spacing: var(--bkbg-cpg-tt-word-spacing-d, normal); } .bkbg-cpg-subtitle { margin: 0 0 18px; font-family: var(--bkbg-cpg-st-font-family, inherit); font-size: var(--bkbg-cpg-st-font-size-d, 15px); font-weight: var(--bkbg-cpg-st-font-weight, 400); line-height: var(--bkbg-cpg-st-line-height-d, 1.4); text-transform: var(--bkbg-cpg-st-text-transform, none); font-style: var(--bkbg-cpg-st-font-style, normal); text-decoration: var(--bkbg-cpg-st-text-decoration, none); letter-spacing: var(--bkbg-cpg-st-letter-spacing-d, normal); word-spacing: var(--bkbg-cpg-st-word-spacing-d, normal); opacity: 0.75; } /* ---- Layout containers ---- */ .bkbg-cpg-editors { display: flex; gap: 8px; } .bkbg-cpg-editors.bkbg-cpg-vertical { flex-direction: column; } .bkbg-cpg-editors.bkbg-cpg-horizontal { flex-direction: row; } .bkbg-cpg-editors.bkbg-cpg-tabbed { flex-direction: column; } /* ---- Single editor panel ---- */ .bkbg-cpg-panel { flex: 1; min-width: 0; display: flex; flex-direction: column; border-radius: 8px; overflow: hidden; border: 1px solid rgba(0,0,0,0.1); } .bkbg-cpg-panel-header { display: flex; align-items: center; gap: 8px; padding: 6px 12px; font-size: 12px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: #fff; user-select: none; cursor: pointer; } .bkbg-cpg-panel-header.bkbg-cpg-js-header { color: #1e1b4b; } .bkbg-cpg-textarea { width: 100%; box-sizing: border-box; border: none; resize: vertical; outline: none; padding: 12px; font-family: 'Courier New', 'Fira Code', monospace; font-size: 13px; line-height: 1.65; tab-size: 2; -moz-tab-size: 2; white-space: pre; overflow-x: auto; } /* ---- Tab mode ---- */ .bkbg-cpg-tabs { display: flex; gap: 2px; margin-bottom: 8px; } .bkbg-cpg-tab-btn { padding: 6px 18px; border: none; border-radius: 6px 6px 0 0; font-size: 13px; font-weight: 700; cursor: pointer; opacity: 0.5; transition: opacity 0.2s; letter-spacing: 0.04em; } .bkbg-cpg-tab-btn.bkbg-cpg-active { opacity: 1; } /* ---- Run/Reset bar ---- */ .bkbg-cpg-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 10px 0; flex-wrap: wrap; } .bkbg-cpg-run-btn, .bkbg-cpg-reset-btn { border: none; border-radius: 6px; padding: 7px 18px; font-size: 14px; font-weight: 600; cursor: pointer; transition: filter 0.15s, transform 0.1s; } .bkbg-cpg-run-btn:hover, .bkbg-cpg-reset-btn:hover { filter: brightness(1.1); transform: translateY(-1px); } .bkbg-cpg-autorun-label { font-size: 13px; display: flex; align-items: center; gap: 6px; cursor: pointer; } /* ---- Preview frame ---- */ .bkbg-cpg-preview-wrap { border-radius: 8px; overflow: hidden; border: 1px solid rgba(0,0,0,0.1); } .bkbg-cpg-preview-header { display: flex; align-items: center; gap: 8px; padding: 6px 12px; font-size: 12px; font-weight: 600; color: #e2e8f0; } .bkbg-cpg-preview-dot { width: 10px; height: 10px; border-radius: 50%; background: #22c55e; display: inline-block; } .bkbg-cpg-iframe { display: block; width: 100%; border: none; } /* ── Typography responsive ── */ @media (max-width: 1024px) { .bkbg-cpg-title { font-size: var(--bkbg-cpg-tt-font-size-t, var(--bkbg-cpg-tt-font-size-d, 22px)); line-height: var(--bkbg-cpg-tt-line-height-t, var(--bkbg-cpg-tt-line-height-d, 1.25)); letter-spacing: var(--bkbg-cpg-tt-letter-spacing-t, var(--bkbg-cpg-tt-letter-spacing-d, normal)); word-spacing: var(--bkbg-cpg-tt-word-spacing-t, var(--bkbg-cpg-tt-word-spacing-d, normal)); } .bkbg-cpg-subtitle { font-size: var(--bkbg-cpg-st-font-size-t, var(--bkbg-cpg-st-font-size-d, 15px)); line-height: var(--bkbg-cpg-st-line-height-t, var(--bkbg-cpg-st-line-height-d, 1.4)); letter-spacing: var(--bkbg-cpg-st-letter-spacing-t, var(--bkbg-cpg-st-letter-spacing-d, normal)); word-spacing: var(--bkbg-cpg-st-word-spacing-t, var(--bkbg-cpg-st-word-spacing-d, normal)); } } @media (max-width: 767px) { .bkbg-cpg-title { font-size: var(--bkbg-cpg-tt-font-size-m, var(--bkbg-cpg-tt-font-size-t, var(--bkbg-cpg-tt-font-size-d, 22px))); line-height: var(--bkbg-cpg-tt-line-height-m, var(--bkbg-cpg-tt-line-height-t, var(--bkbg-cpg-tt-line-height-d, 1.25))); letter-spacing: var(--bkbg-cpg-tt-letter-spacing-m, var(--bkbg-cpg-tt-letter-spacing-t, var(--bkbg-cpg-tt-letter-spacing-d, normal))); word-spacing: var(--bkbg-cpg-tt-word-spacing-m, var(--bkbg-cpg-tt-word-spacing-t, var(--bkbg-cpg-tt-word-spacing-d, normal))); } .bkbg-cpg-subtitle { font-size: var(--bkbg-cpg-st-font-size-m, var(--bkbg-cpg-st-font-size-t, var(--bkbg-cpg-st-font-size-d, 15px))); line-height: var(--bkbg-cpg-st-line-height-m, var(--bkbg-cpg-st-line-height-t, var(--bkbg-cpg-st-line-height-d, 1.4))); letter-spacing: var(--bkbg-cpg-st-letter-spacing-m, var(--bkbg-cpg-st-letter-spacing-t, var(--bkbg-cpg-st-letter-spacing-d, normal))); word-spacing: var(--bkbg-cpg-st-word-spacing-m, var(--bkbg-cpg-st-word-spacing-t, var(--bkbg-cpg-st-word-spacing-d, normal))); } } /* ---- Responsive ---- */ @media (max-width: 640px) { .bkbg-cpg-editors.bkbg-cpg-horizontal { flex-direction: column; } .bkbg-cpg-app { padding: 16px 10px; } }