/* ========================================================= Blockenberg — Hash Generator (bkbg-hg-*) ========================================================= */ .bkbg-hg-wrap { box-sizing: border-box; border-radius: 14px; padding: 32px 24px; font-family: inherit; margin: 0 auto; } /* heading specificity (0,2,0) beats editor theme h3 rules */ .bkbg-hg-wrap h3.bkbg-hg-title { font-family: var(--bkbg-hg-tt-font-family, inherit); font-size: var(--bkbg-hg-tt-font-size-d, 26px); font-weight: var(--bkbg-hg-tt-font-weight, 700); line-height: var(--bkbg-hg-tt-line-height-d, 1.2); font-style: var(--bkbg-hg-tt-font-style, normal); text-transform: var(--bkbg-hg-tt-text-transform, none); text-decoration: var(--bkbg-hg-tt-text-decoration, none); letter-spacing: var(--bkbg-hg-tt-letter-spacing-d); word-spacing: var(--bkbg-hg-tt-word-spacing-d); margin: 0 0 6px 0; } .bkbg-hg-subtitle { font-family: var(--bkbg-hg-st-font-family, inherit); font-size: var(--bkbg-hg-st-font-size-d, 14px); font-weight: var(--bkbg-hg-st-font-weight, 400); line-height: var(--bkbg-hg-st-line-height-d, 1.5); font-style: var(--bkbg-hg-st-font-style, normal); text-transform: var(--bkbg-hg-st-text-transform, none); text-decoration: var(--bkbg-hg-st-text-decoration, none); letter-spacing: var(--bkbg-hg-st-letter-spacing-d); word-spacing: var(--bkbg-hg-st-word-spacing-d); margin: 0 0 20px 0; } /* ── Input field ────────────────────────────────────────── */ .bkbg-hg-field-label { display: block; font-size: 13px; font-weight: 600; margin-bottom: 6px; } .bkbg-hg-textarea { width: 100%; box-sizing: border-box; border: 1.5px solid #e5e7eb; border-radius: 10px; padding: 12px 14px; font-size: 14px; font-family: inherit; resize: vertical; min-height: 90px; transition: border-color 0.18s; outline: none; } .bkbg-hg-textarea:focus { border-color: var(--hg-accent, #6366f1); box-shadow: 0 0 0 3px rgba(99,102,241,0.15); } /* ── Algorithm selector ─────────────────────────────────── */ .bkbg-hg-algos { display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0; } .bkbg-hg-algo-btn { padding: 7px 16px; border-radius: 8px; border: 2px solid #e5e7eb; background: #ffffff; font-size: 13px; font-weight: 500; cursor: pointer; transition: all 0.18s ease; white-space: nowrap; } .bkbg-hg-algo-btn:hover { border-color: var(--hg-accent, #6366f1); } .bkbg-hg-algo-btn.active { background: var(--hg-accent, #6366f1); border-color: var(--hg-accent, #6366f1); color: #ffffff; font-weight: 700; } /* ── Hash rows ──────────────────────────────────────────── */ .bkbg-hg-rows { margin-bottom: 18px; } .bkbg-hg-row { display: flex; align-items: center; gap: 12px; border-radius: 9px; padding: 10px 14px; margin-bottom: 8px; } .bkbg-hg-row-algo { font-size: 11px; font-weight: 700; letter-spacing: 0.07em; color: #818cf8; min-width: 64px; white-space: nowrap; } .bkbg-hg-row-value { font-family: 'Courier New', monospace; font-size: 12px; word-break: break-all; flex: 1; line-height: 1.6; } .bkbg-hg-row-copy { background: none; border: none; cursor: pointer; font-size: 17px; padding: 2px 4px; border-radius: 6px; transition: background 0.15s; flex-shrink: 0; color: #6366f1; } .bkbg-hg-row-copy:hover { background: rgba(99,102,241,0.12); } .bkbg-hg-copy-toast { font-size: 10px; color: #16a34a; font-weight:600; margin-left:4px; opacity: 0; transition: opacity 0.2s; } .bkbg-hg-copy-toast.show { opacity: 1; } /* ── Generating spinner ─────────────────────────────────── */ .bkbg-hg-pending { font-size: 12px; color: #9ca3af; font-style: italic; } /* ── Compare section ────────────────────────────────────── */ .bkbg-hg-compare { border-radius: 10px; padding: 14px 16px; border: 1.5px solid #e5e7eb; } .bkbg-hg-compare-label { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: 8px; } .bkbg-hg-compare-row { display: flex; gap: 10px; align-items:center; } .bkbg-hg-compare-input { flex: 1; border: 1.5px solid #e5e7eb; border-radius: 8px; padding: 9px 12px; font-size: 13px; font-family: monospace; outline: none; transition: border-color 0.18s; } .bkbg-hg-compare-input:focus { border-color: var(--hg-accent, #6366f1); } .bkbg-hg-compare-badge { font-size: 13px; font-weight: 700; padding: 6px 14px; border-radius:8px; white-space: nowrap; } .bkbg-hg-compare-badge.match { background:#dcfce7; color:#16a34a; } .bkbg-hg-compare-badge.nomatch { background:#fee2e2; color:#dc2626; } /* ── Animations ─────────────────────────────────────────── */ @keyframes bkbg-hg-fadein { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:translateY(0); } } .bkbg-hg-row { animation: bkbg-hg-fadein 0.25s ease both; } .bkbg-hg-compare{ animation: bkbg-hg-fadein 0.3s ease both; } /* ── Responsive typography ──────────────────────────────── */ @media (max-width: 1024px) { .bkbg-hg-wrap h3.bkbg-hg-title { font-size: var(--bkbg-hg-tt-font-size-t, var(--bkbg-hg-tt-font-size-d, 26px)); line-height: var(--bkbg-hg-tt-line-height-t, var(--bkbg-hg-tt-line-height-d, 1.2)); letter-spacing: var(--bkbg-hg-tt-letter-spacing-t, var(--bkbg-hg-tt-letter-spacing-d)); word-spacing: var(--bkbg-hg-tt-word-spacing-t, var(--bkbg-hg-tt-word-spacing-d)); } .bkbg-hg-subtitle { font-size: var(--bkbg-hg-st-font-size-t, var(--bkbg-hg-st-font-size-d, 14px)); line-height: var(--bkbg-hg-st-line-height-t, var(--bkbg-hg-st-line-height-d, 1.5)); letter-spacing: var(--bkbg-hg-st-letter-spacing-t, var(--bkbg-hg-st-letter-spacing-d)); word-spacing: var(--bkbg-hg-st-word-spacing-t, var(--bkbg-hg-st-word-spacing-d)); } } @media (max-width: 767px) { .bkbg-hg-wrap h3.bkbg-hg-title { font-size: var(--bkbg-hg-tt-font-size-m, var(--bkbg-hg-tt-font-size-t, var(--bkbg-hg-tt-font-size-d, 26px))); line-height: var(--bkbg-hg-tt-line-height-m, var(--bkbg-hg-tt-line-height-t, var(--bkbg-hg-tt-line-height-d, 1.2))); letter-spacing: var(--bkbg-hg-tt-letter-spacing-m, var(--bkbg-hg-tt-letter-spacing-t, var(--bkbg-hg-tt-letter-spacing-d))); word-spacing: var(--bkbg-hg-tt-word-spacing-m, var(--bkbg-hg-tt-word-spacing-t, var(--bkbg-hg-tt-word-spacing-d))); } .bkbg-hg-subtitle { font-size: var(--bkbg-hg-st-font-size-m, var(--bkbg-hg-st-font-size-t, var(--bkbg-hg-st-font-size-d, 14px))); line-height: var(--bkbg-hg-st-line-height-m, var(--bkbg-hg-st-line-height-t, var(--bkbg-hg-st-line-height-d, 1.5))); letter-spacing: var(--bkbg-hg-st-letter-spacing-m, var(--bkbg-hg-st-letter-spacing-t, var(--bkbg-hg-st-letter-spacing-d))); word-spacing: var(--bkbg-hg-st-word-spacing-m, var(--bkbg-hg-st-word-spacing-t, var(--bkbg-hg-st-word-spacing-d))); } }