/* ======================================== Stats Counter Block - Main Styles ======================================== */ .bkbg-sc-wrap { --bkbg-sc-columns: 4; --bkbg-sc-gap: 32px; --bkbg-sc-icon-size: 48px; --bkbg-sc-icon-bg-size: 80px; --bkbg-sc-icon-radius: 50%; --bkbg-sc-number-size: 48px; --bkbg-sc-number-weight: 700; --bkbg-sc-number-color: #1f2937; --bkbg-sc-label-size: 16px; --bkbg-sc-label-weight: 400; --bkbg-sc-label-color: #6b7280; --bkbg-sc-title-size: 32px; --bkbg-sc-title-color: #1f2937; --bkbg-sc-card-bg: #ffffff; --bkbg-sc-card-border-color: #e5e7eb; --bkbg-sc-card-border-width: 1px; --bkbg-sc-card-radius: 12px; --bkbg-sc-card-padding: 32px; --bkbg-sc-divider-color: #e5e7eb; --bkbg-sc-text-align: center; --bkbg-sc-animation-duration: 2000ms; border: 0; outline: 0; width: 100%; } /* Title */ .bkbg-sc-title { font-family: var(--bksc-tt-font-family, inherit); font-size: var(--bksc-tt-font-size-d, var(--bkbg-sc-title-size)); font-weight: var(--bksc-tt-font-weight, var(--bkbg-sc-title-wt, 700)); font-style: var(--bksc-tt-font-style, normal); text-decoration: var(--bksc-tt-text-decoration, none); text-transform: var(--bksc-tt-text-transform, none); line-height: var(--bksc-tt-line-height-d, var(--bkbg-sc-title-lh, 1.2)); letter-spacing: var(--bksc-tt-letter-spacing-d, normal); word-spacing: var(--bksc-tt-word-spacing-d, normal); color: var(--bkbg-sc-title-color); margin-bottom: 32px; text-align: var(--bkbg-sc-text-align); } /* List container */ .bkbg-sc-list { display: grid; grid-template-columns: repeat(var(--bkbg-sc-columns), 1fr); gap: var(--bkbg-sc-gap); } /* Inline layout */ .bkbg-sc-inline .bkbg-sc-list { display: flex; flex-wrap: wrap; justify-content: center; } .bkbg-sc-inline .bkbg-sc-item { flex: 0 0 auto; } /* Stacked layout */ .bkbg-sc-stacked .bkbg-sc-list { display: flex; flex-direction: column; } /* Individual item */ .bkbg-sc-item { position: relative; text-align: var(--bkbg-sc-text-align); } /* Item inner */ .bkbg-sc-item-inner { display: flex; flex-direction: column; align-items: center; gap: 16px; } .bkbg-sc-item-inner--left { flex-direction: row; text-align: left; } .bkbg-sc-item-inner--right { flex-direction: row-reverse; text-align: right; } .bkbg-sc-item-inner--top { flex-direction: column; } /* Text align for horizontal layouts */ .bkbg-sc-icon-left .bkbg-sc-item { text-align: left; } .bkbg-sc-icon-right .bkbg-sc-item { text-align: right; } .bkbg-sc-icon-left .bkbg-sc-item-inner--left, .bkbg-sc-icon-right .bkbg-sc-item-inner--right { justify-content: flex-start; } /* Card style */ .bkbg-sc-item--card { background: var(--bkbg-sc-card-bg); border: var(--bkbg-sc-card-border-width) solid var(--bkbg-sc-card-border-color); border-radius: var(--bkbg-sc-card-radius); padding: var(--bkbg-sc-card-padding); } .bkbg-sc-item--shadow { box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1); } /* Icon */ .bkbg-sc-icon { display: flex; align-items: center; justify-content: center; flex-shrink: 0; } .bkbg-sc-icon .dashicons { font-size: var(--bkbg-sc-icon-size); width: var(--bkbg-sc-icon-size); height: var(--bkbg-sc-icon-size); line-height: 1; } .bkbg-sc-icon--filled { width: var(--bkbg-sc-icon-bg-size); height: var(--bkbg-sc-icon-bg-size); border-radius: var(--bkbg-sc-icon-radius); background: #3b82f6; } .bkbg-sc-icon--filled .dashicons { color: #fff; } .bkbg-sc-icon--outlined { width: var(--bkbg-sc-icon-bg-size); height: var(--bkbg-sc-icon-bg-size); border-radius: var(--bkbg-sc-icon-radius); border: 2px solid #3b82f6; background: transparent; } /* Content */ .bkbg-sc-content { display: flex; flex-direction: column; gap: 4px; min-width: 0; flex: 1; } .bkbg-sc-item-inner--left .bkbg-sc-content, .bkbg-sc-item-inner--right .bkbg-sc-content { align-items: flex-start; } .bkbg-sc-item-inner--top .bkbg-sc-content { align-items: center; width: 100%; } /* Number */ .bkbg-sc-number { font-family: var(--bksc-nm-font-family, inherit); font-size: var(--bksc-nm-font-size-d, var(--bkbg-sc-number-size)); font-weight: var(--bksc-nm-font-weight, var(--bkbg-sc-number-weight)); font-style: var(--bksc-nm-font-style, normal); text-decoration: var(--bksc-nm-text-decoration, none); text-transform: var(--bksc-nm-text-transform, none); line-height: var(--bksc-nm-line-height-d, var(--bkbg-sc-number-lh, 1.1)); letter-spacing: var(--bksc-nm-letter-spacing-d, normal); word-spacing: var(--bksc-nm-word-spacing-d, normal); color: var(--bkbg-sc-number-color); font-variant-numeric: tabular-nums; } .bkbg-sc-prefix, .bkbg-sc-suffix { font-size: inherit; font-weight: inherit; color: inherit; } /* Label */ .bkbg-sc-label { font-family: var(--bksc-lb-font-family, inherit); font-size: var(--bksc-lb-font-size-d, var(--bkbg-sc-label-size)); font-weight: var(--bksc-lb-font-weight, var(--bkbg-sc-label-weight)); font-style: var(--bksc-lb-font-style, normal); text-decoration: var(--bksc-lb-text-decoration, none); text-transform: var(--bksc-lb-text-transform, none); line-height: var(--bksc-lb-line-height-d, var(--bkbg-sc-label-lh, 1.3)); letter-spacing: var(--bksc-lb-letter-spacing-d, normal); word-spacing: var(--bksc-lb-word-spacing-d, normal); color: var(--bkbg-sc-label-color); } /* ---- Typography responsive — tablet ---- */ @media (max-width: 1024px) { .bkbg-sc-title { font-size: var(--bksc-tt-font-size-t, var(--bksc-tt-font-size-d, var(--bkbg-sc-title-size))); line-height: var(--bksc-tt-line-height-t, var(--bksc-tt-line-height-d, var(--bkbg-sc-title-lh, 1.2))); letter-spacing: var(--bksc-tt-letter-spacing-t, var(--bksc-tt-letter-spacing-d, normal)); word-spacing: var(--bksc-tt-word-spacing-t, var(--bksc-tt-word-spacing-d, normal)); } .bkbg-sc-number { font-size: var(--bksc-nm-font-size-t, var(--bksc-nm-font-size-d, var(--bkbg-sc-number-size))); line-height: var(--bksc-nm-line-height-t, var(--bksc-nm-line-height-d, var(--bkbg-sc-number-lh, 1.1))); letter-spacing: var(--bksc-nm-letter-spacing-t, var(--bksc-nm-letter-spacing-d, normal)); word-spacing: var(--bksc-nm-word-spacing-t, var(--bksc-nm-word-spacing-d, normal)); } .bkbg-sc-label { font-size: var(--bksc-lb-font-size-t, var(--bksc-lb-font-size-d, var(--bkbg-sc-label-size))); line-height: var(--bksc-lb-line-height-t, var(--bksc-lb-line-height-d, var(--bkbg-sc-label-lh, 1.3))); letter-spacing: var(--bksc-lb-letter-spacing-t, var(--bksc-lb-letter-spacing-d, normal)); word-spacing: var(--bksc-lb-word-spacing-t, var(--bksc-lb-word-spacing-d, normal)); } } /* ---- Typography responsive — mobile ---- */ @media (max-width: 767px) { .bkbg-sc-title { font-size: var(--bksc-tt-font-size-m, var(--bksc-tt-font-size-t, var(--bksc-tt-font-size-d, var(--bkbg-sc-title-size)))); line-height: var(--bksc-tt-line-height-m, var(--bksc-tt-line-height-t, var(--bksc-tt-line-height-d, var(--bkbg-sc-title-lh, 1.2)))); letter-spacing: var(--bksc-tt-letter-spacing-m, var(--bksc-tt-letter-spacing-t, var(--bksc-tt-letter-spacing-d, normal))); word-spacing: var(--bksc-tt-word-spacing-m, var(--bksc-tt-word-spacing-t, var(--bksc-tt-word-spacing-d, normal))); } .bkbg-sc-number { font-size: var(--bksc-nm-font-size-m, var(--bksc-nm-font-size-t, var(--bksc-nm-font-size-d, var(--bkbg-sc-number-size)))); line-height: var(--bksc-nm-line-height-m, var(--bksc-nm-line-height-t, var(--bksc-nm-line-height-d, var(--bkbg-sc-number-lh, 1.1)))); letter-spacing: var(--bksc-nm-letter-spacing-m, var(--bksc-nm-letter-spacing-t, var(--bksc-nm-letter-spacing-d, normal))); word-spacing: var(--bksc-nm-word-spacing-m, var(--bksc-nm-word-spacing-t, var(--bksc-nm-word-spacing-d, normal))); } .bkbg-sc-label { font-size: var(--bksc-lb-font-size-m, var(--bksc-lb-font-size-t, var(--bksc-lb-font-size-d, var(--bkbg-sc-label-size)))); line-height: var(--bksc-lb-line-height-m, var(--bksc-lb-line-height-t, var(--bksc-lb-line-height-d, var(--bkbg-sc-label-lh, 1.3)))); letter-spacing: var(--bksc-lb-letter-spacing-m, var(--bksc-lb-letter-spacing-t, var(--bksc-lb-letter-spacing-d, normal))); word-spacing: var(--bksc-lb-word-spacing-m, var(--bksc-lb-word-spacing-t, var(--bksc-lb-word-spacing-d, normal))); } } /* Dividers */ .bkbg-sc-divider .bkbg-sc-item:not(:last-child) { border-right: 1px solid var(--bkbg-sc-divider-color); padding-right: var(--bkbg-sc-gap); } .bkbg-sc-stacked.bkbg-sc-divider .bkbg-sc-item:not(:last-child) { border-right: none; border-bottom: 1px solid var(--bkbg-sc-divider-color); padding-right: 0; padding-bottom: var(--bkbg-sc-gap); } /* ======================================== Responsive Breakpoints ======================================== */ @media (max-width: 1024px) { .bkbg-sc-wrap { --bkbg-sc-columns: 2; } } @media (max-width: 600px) { .bkbg-sc-wrap { --bkbg-sc-columns: 1; } .bkbg-sc-divider .bkbg-sc-item:not(:last-child) { border-right: none; border-bottom: 1px solid var(--bkbg-sc-divider-color); padding-right: 0; padding-bottom: var(--bkbg-sc-gap); } } /* ======================================== Editor-specific Styles ======================================== */ .editor-styles-wrapper .bkbg-sc-wrap { min-height: 60px; } /* Clickable/editable elements */ .bkbg-sc-clickable { cursor: text; border-radius: 4px; transition: background-color 0.15s ease; } .bkbg-sc-clickable:hover { background-color: rgba(59, 130, 246, 0.08); } .bkbg-sc-input-active { background: transparent; border: 1px dashed rgba(59, 130, 246, 0.5); border-radius: 4px; padding: 4px 8px; font-family: inherit; outline: none; width: auto; min-width: 60px; } .bkbg-sc-input-active:focus { border-color: #3b82f6; box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.2); } input.bkbg-sc-title.bkbg-sc-input-active { font-size: var(--bkbg-sc-title-size); font-weight: 700; color: var(--bkbg-sc-title-color); text-align: var(--bkbg-sc-text-align); width: 100%; } input.bkbg-sc-number.bkbg-sc-input-active { font-size: var(--bkbg-sc-number-size); font-weight: var(--bkbg-sc-number-weight); color: var(--bkbg-sc-number-color); text-align: center; width: 100%; max-width: 200px; min-width: 80px; } input.bkbg-sc-label.bkbg-sc-input-active { font-size: var(--bkbg-sc-label-size); font-weight: var(--bkbg-sc-label-weight); width: 100%; max-width: 200px; color: var(--bkbg-sc-label-color); } /* Item hover actions */ .bkbg-sc-item-actions-overlay { position: absolute; top: 0; right: -44px; display: flex; flex-direction: column; gap: 2px; padding: 4px; background: #fff; border-radius: 6px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12); opacity: 0; visibility: hidden; pointer-events: none; transition: opacity 0.15s ease, visibility 0.15s ease; z-index: 10; } .bkbg-sc-item:hover .bkbg-sc-item-actions-overlay, .bkbg-sc-item-hovered .bkbg-sc-item-actions-overlay { opacity: 1; visibility: visible; pointer-events: auto; } /* Extend hover area to include actions */ .bkbg-sc-item::after { content: ''; position: absolute; top: 0; right: -50px; bottom: 0; width: 50px; pointer-events: auto; } .bkbg-sc-item-actions-overlay .components-button { min-width: 28px !important; height: 28px !important; padding: 0 !important; justify-content: center; } .bkbg-sc-item-actions-overlay .components-button:hover:not(:disabled) { background: #f3f4f6 !important; } .bkbg-sc-item-actions-overlay .components-button[class*="destructive"]:hover:not(:disabled) { background: #fef2f2 !important; color: #dc2626 !important; } .bkbg-sc-item-actions-overlay .components-button:disabled { opacity: 0.3 !important; } /* Inspector panel controls */ .bkbg-sc-item-control { padding: 12px; background: #f8fafc; border-radius: 8px; margin-bottom: 12px; border: 1px solid #e2e8f0; } .bkbg-sc-item-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; padding-bottom: 8px; border-bottom: 1px solid #e2e8f0; } .bkbg-sc-item-title { font-weight: 600; color: #1e293b; font-size: 13px; } .bkbg-sc-item-actions { display: flex; gap: 2px; } .bkbg-sc-item-actions .components-button { min-width: 28px !important; height: 28px !important; padding: 0 !important; } .bkbg-sc-prefix-suffix { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; } .bkbg-sc-color-row { display: flex; align-items: center; gap: 12px; margin-top: 8px; } .bkbg-sc-color-btn { width: 32px; height: 32px; border-radius: 50%; border: 2px solid #fff; box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1), inset 0 0 0 1px rgba(0, 0, 0, 0.1); cursor: pointer; transition: transform 0.15s ease; } .bkbg-sc-color-btn:hover { transform: scale(1.1); } .bkbg-sc-add-btn { width: 100%; margin-top: 8px; } /* Selection highlight */ .editor-styles-wrapper .bkbg-sc-item { position: relative; border: 1px dashed transparent; border-radius: 8px; transition: border-color 0.15s ease, background-color 0.15s ease; } .editor-styles-wrapper .bkbg-sc-item:hover { border-color: rgba(59, 130, 246, 0.25); background-color: rgba(59, 130, 246, 0.02); } .editor-styles-wrapper .bkbg-sc-item--card:hover { border-color: rgba(59, 130, 246, 0.35); } /* ======================================== Animation ======================================== */ .bkbg-sc-number { transition: opacity 0.3s ease; } .bkbg-sc-wrap:not(.bkbg-sc-animated) .bkbg-sc-number { opacity: 0.7; } .bkbg-sc-animated .bkbg-sc-number { opacity: 1; } /* ======================================== Print Styles ======================================== */ @media print { .bkbg-sc-wrap { page-break-inside: avoid; } .bkbg-sc-item { break-inside: avoid; } .bkbg-sc-item--shadow { box-shadow: none; border: 1px solid #e5e7eb; } } /* ======================================== Icon Picker (Editor) ======================================== */ .bkbg-sc-icon-popover { z-index: 100001; } .bkbg-sc-icon-picker-modal { width: 260px; max-height: 450px; background: #fff; border-radius: 8px; box-shadow: 0 4px 24px rgba(0, 0, 0, 0.15); overflow: hidden; } .bkbg-sc-icon-picker-header { display: flex; justify-content: space-between; align-items: center; padding: 12px 16px; border-bottom: 1px solid #e0e0e0; } .bkbg-sc-icon-picker-header h3 { margin: 0; font-size: 14px; font-weight: 600; } .bkbg-sc-icon-picker-close { padding: 0 !important; min-width: 24px !important; height: 24px !important; } .bkbg-sc-icon-tabs { display: flex; flex-direction: column; } .bkbg-sc-icon-tabs .components-tab-panel__tabs { border-bottom: 1px solid #e0e0e0; margin: 0; padding: 0 12px; } .bkbg-sc-icon-tabs .components-tab-panel__tabs button { font-size: 13px; padding: 8px 16px; } .bkbg-sc-dashicons-panel { padding: 12px; } .bkbg-sc-icon-search { margin-bottom: 12px; } .bkbg-sc-icon-search .components-base-control__field { margin-bottom: 0; } .bkbg-sc-dashicons-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 4px; max-height: 280px; overflow-y: auto; padding: 4px; } .bkbg-sc-dashicon-btn { width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; border: 1px solid transparent; border-radius: 4px; background: transparent; cursor: pointer; transition: all 0.15s ease; padding: 0; } .bkbg-sc-dashicon-btn:hover { background: #f0f0f0; border-color: #ccc; } .bkbg-sc-dashicon-btn.is-active { background: #007cba; border-color: #007cba; } .bkbg-sc-dashicon-btn.is-active .dashicons { color: #fff; } .bkbg-sc-dashicon-btn .dashicons { font-size: 20px; width: 20px; height: 20px; } .bkbg-sc-no-icons { grid-column: 1 / -1; text-align: center; color: #666; padding: 20px; } .bkbg-sc-media-panel { padding: 16px; text-align: center; } .bkbg-sc-current-media { margin-bottom: 16px; } .bkbg-sc-current-media img { max-width: 80px; max-height: 80px; object-fit: contain; border: 1px solid #ddd; border-radius: 4px; margin-bottom: 8px; } .bkbg-sc-media-btn { display: inline-flex; align-items: center; gap: 8px; } .bkbg-sc-media-hint { font-size: 12px; color: #666; margin-top: 12px; } /* Icon row in inspector */ .bkbg-sc-icon-row { display: flex; align-items: center; justify-content: space-between; padding: 8px 0; border-top: 1px solid #e0e0e0; margin-top: 8px; } .bkbg-sc-icon-btn-wrap { position: relative; } .bkbg-sc-icon-btn { width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; border: 1px solid #ccc; border-radius: 4px; background: #f9f9f9; cursor: pointer; transition: all 0.15s ease; padding: 0; } .bkbg-sc-icon-btn:hover { background: #fff; border-color: #007cba; } .bkbg-sc-icon-btn .dashicons { font-size: 24px; width: 24px; height: 24px; } .bkbg-sc-icon-btn img { width: 24px; height: 24px; object-fit: contain; } /* Icon clickable in editor */ .bkbg-sc-icon-clickable { cursor: pointer; transition: transform 0.15s ease, box-shadow 0.15s ease; position: relative; } .bkbg-sc-icon-clickable:hover { transform: scale(1.05); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); } .bkbg-sc-icon-clickable::after { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; border: 2px dashed transparent; border-radius: inherit; transition: border-color 0.15s ease; } .bkbg-sc-icon-clickable:hover::after { border-color: rgba(0, 124, 186, 0.5); } /* Custom icon image */ .bkbg-sc-icon-img { width: var(--bkbg-sc-icon-size); height: var(--bkbg-sc-icon-size); object-fit: contain; }