/* =========================================================
   Blockenberg — Base64 Encoder / Decoder  (bkbg-b64-*)
   ========================================================= */

.bkbg-b64-wrap {
    box-sizing:    border-box;
    border-radius: 14px;
    padding:       32px 24px;
    font-family:   inherit;
    margin:        0 auto;
}

/* ── Title ─────────────────────────────────────── */
.bkbg-b64-title {
  margin: 0 0 6px 0;
  font-family: var(--bkbg-b64-title-font-family, inherit);
  font-size: var(--bkbg-b64-title-font-size-d, var(--bkbg-b64-title-font-size, 26px));
  font-weight: var(--bkbg-b64-title-font-weight, 700);
  font-style: var(--bkbg-b64-title-font-style, normal);
  text-transform: var(--bkbg-b64-title-text-transform, none);
  text-decoration: var(--bkbg-b64-title-text-decoration, none);
  line-height: var(--bkbg-b64-title-line-height-d, var(--bkbg-b64-title-line-height, 1.2));
  letter-spacing: var(--bkbg-b64-title-letter-spacing-d, var(--bkbg-b64-title-letter-spacing, normal));
  word-spacing: var(--bkbg-b64-title-word-spacing-d, var(--bkbg-b64-title-word-spacing, normal));
}

/* ── Subtitle ──────────────────────────────────── */
.bkbg-b64-subtitle {
  margin: 0 0 20px 0;
  font-family: var(--bkbg-b64-sub-font-family, inherit);
  font-size: var(--bkbg-b64-sub-font-size-d, var(--bkbg-b64-sub-font-size, 14px));
  font-weight: var(--bkbg-b64-sub-font-weight, normal);
  font-style: var(--bkbg-b64-sub-font-style, normal);
  text-transform: var(--bkbg-b64-sub-text-transform, none);
  text-decoration: var(--bkbg-b64-sub-text-decoration, none);
  line-height: var(--bkbg-b64-sub-line-height-d, var(--bkbg-b64-sub-line-height, 1.5));
  letter-spacing: var(--bkbg-b64-sub-letter-spacing-d, var(--bkbg-b64-sub-letter-spacing, normal));
  word-spacing: var(--bkbg-b64-sub-word-spacing-d, var(--bkbg-b64-sub-word-spacing, normal));
}

/* ── Mode tabs ──────────────────────────────────────────── */
.bkbg-b64-tabs {
    display:       flex;
    gap:           8px;
    margin-bottom: 20px;
}
.bkbg-b64-tab {
    padding:      8px 22px;
    border-radius:8px;
    border:       2px solid #e5e7eb;
    background:   #ffffff;
    font-size:    14px;
    font-weight:  500;
    cursor:       pointer;
    transition:   all 0.18s;
}
.bkbg-b64-tab.active {
    background:  var(--b64-accent, #0ea5e9);
    border-color:var(--b64-accent, #0ea5e9);
    color:       #ffffff;
    font-weight: 700;
}

/* ── Fields ─────────────────────────────────────────────── */
.bkbg-b64-field-label {
    display:       block;
    font-size:     13px;
    font-weight:   600;
    margin-bottom: 6px;
}
.bkbg-b64-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:    100px;
    transition:    border-color 0.18s;
    outline:       none;
    margin-bottom: 14px;
}
.bkbg-b64-textarea:focus {
    border-color: var(--b64-accent, #0ea5e9);
    box-shadow:   0 0 0 3px rgba(14,165,233,0.15);
}

/* ── Options row ────────────────────────────────────────── */
.bkbg-b64-options {
    display:       flex;
    gap:           16px;
    flex-wrap:     wrap;
    margin-bottom: 16px;
    align-items:   center;
}
.bkbg-b64-option-label {
    display:     flex;
    align-items: center;
    gap:         6px;
    font-size:   13px;
    cursor:      pointer;
    user-select: none;
}
.bkbg-b64-option-label input[type=checkbox] {
    width:  16px;
    height: 16px;
    cursor: pointer;
}

/* ── Convert button ─────────────────────────────────────── */
.bkbg-b64-btn {
    display:       inline-flex;
    align-items:   center;
    gap:           6px;
    padding:       10px 24px;
    border-radius: 9px;
    border:        none;
    background:    var(--b64-accent, #0ea5e9);
    color:         #ffffff;
    font-size:     14px;
    font-weight:   700;
    cursor:        pointer;
    margin-bottom: 16px;
    transition:    opacity 0.2s, transform 0.15s;
}
.bkbg-b64-btn:hover  { opacity:0.88; transform:translateY(-1px); }
.bkbg-b64-btn:active { transform:translateY(0); }

/* ── Output area ────────────────────────────────────────── */
.bkbg-b64-output-header {
    display:         flex;
    justify-content: space-between;
    align-items:     center;
    margin-bottom:   6px;
}
.bkbg-b64-output-label { font-size:13px; font-weight:600; }
.bkbg-b64-copy-btn {
    background:    none;
    border:        1.5px solid var(--b64-accent, #0ea5e9);
    border-radius: 7px;
    padding:       4px 12px;
    font-size:     12px;
    font-weight:   600;
    color:         var(--b64-accent, #0ea5e9);
    cursor:        pointer;
    transition:    background 0.18s;
}
.bkbg-b64-copy-btn:hover { background: rgba(14,165,233,0.1); }
.bkbg-b64-output-box {
    border-radius:  10px;
    padding:        14px 16px;
    font-family:    'Courier New', monospace;
    font-size:      13px;
    word-break:     break-all;
    line-height:    1.7;
    min-height:     70px;
    white-space:    pre-wrap;
    position:       relative;
}
.bkbg-b64-output-placeholder { opacity:0.45; font-style:italic; }

/* ── Stats bar ──────────────────────────────────────────── */
.bkbg-b64-stats {
    display:    flex;
    gap:        20px;
    flex-wrap:  wrap;
    margin-top: 14px;
}
.bkbg-b64-stat {
    font-size:  12px;
    background: rgba(0,0,0,0.04);
    padding:    4px 10px;
    border-radius:6px;
}

/* ── Error ──────────────────────────────────────────────── */
.bkbg-b64-error {
    background:    #fef2f2;
    border:        1.5px solid #fca5a5;
    border-radius: 8px;
    padding:       10px 14px;
    color:         #dc2626;
    font-size:     13px;
    margin-top:    10px;
}

/* ── Copy toast ─────────────────────────────────────────── */
.bkbg-b64-toast {
    position:     absolute;
    top:          8px;
    right:        10px;
    background:   #16a34a;
    color:        #fff;
    font-size:    11px;
    font-weight:  700;
    border-radius:6px;
    padding:      3px 10px;
    opacity:      0;
    transition:   opacity 0.2s;
    pointer-events:none;
}
.bkbg-b64-toast.show { opacity:1; }

@media (max-width: 1024px) {
    /* ── Title ─────────────────────────────────────── */
.bkbg-b64-title {
        font-size: var(--bkbg-b64-title-font-size-t, var(--bkbg-b64-title-font-size-d, var(--bkbg-b64-title-font-size, 26px)));
        line-height: var(--bkbg-b64-title-line-height-t, var(--bkbg-b64-title-line-height-d, var(--bkbg-b64-title-line-height, 1.2)));
        letter-spacing: var(--bkbg-b64-title-letter-spacing-t, var(--bkbg-b64-title-letter-spacing-d, var(--bkbg-b64-title-letter-spacing, normal)));
        word-spacing: var(--bkbg-b64-title-word-spacing-t, var(--bkbg-b64-title-word-spacing-d, var(--bkbg-b64-title-word-spacing, normal)));
    }
    /* ── Subtitle ──────────────────────────────────── */
.bkbg-b64-subtitle {
        font-size: var(--bkbg-b64-sub-font-size-t, var(--bkbg-b64-sub-font-size-d, var(--bkbg-b64-sub-font-size, 14px)));
        line-height: var(--bkbg-b64-sub-line-height-t, var(--bkbg-b64-sub-line-height-d, var(--bkbg-b64-sub-line-height, 1.5)));
        letter-spacing: var(--bkbg-b64-sub-letter-spacing-t, var(--bkbg-b64-sub-letter-spacing-d, var(--bkbg-b64-sub-letter-spacing, normal)));
        word-spacing: var(--bkbg-b64-sub-word-spacing-t, var(--bkbg-b64-sub-word-spacing-d, var(--bkbg-b64-sub-word-spacing, normal)));
    }
}
@media (max-width: 767px) {
    /* ── Title ─────────────────────────────────────── */
.bkbg-b64-title {
        font-size: var(--bkbg-b64-title-font-size-m, var(--bkbg-b64-title-font-size-t, var(--bkbg-b64-title-font-size-d, var(--bkbg-b64-title-font-size, 26px))));
        line-height: var(--bkbg-b64-title-line-height-m, var(--bkbg-b64-title-line-height-t, var(--bkbg-b64-title-line-height-d, var(--bkbg-b64-title-line-height, 1.2))));
        letter-spacing: var(--bkbg-b64-title-letter-spacing-m, var(--bkbg-b64-title-letter-spacing-t, var(--bkbg-b64-title-letter-spacing-d, var(--bkbg-b64-title-letter-spacing, normal))));
        word-spacing: var(--bkbg-b64-title-word-spacing-m, var(--bkbg-b64-title-word-spacing-t, var(--bkbg-b64-title-word-spacing-d, var(--bkbg-b64-title-word-spacing, normal))));
    }
    /* ── Subtitle ──────────────────────────────────── */
.bkbg-b64-subtitle {
        font-size: var(--bkbg-b64-sub-font-size-m, var(--bkbg-b64-sub-font-size-t, var(--bkbg-b64-sub-font-size-d, var(--bkbg-b64-sub-font-size, 14px))));
        line-height: var(--bkbg-b64-sub-line-height-m, var(--bkbg-b64-sub-line-height-t, var(--bkbg-b64-sub-line-height-d, var(--bkbg-b64-sub-line-height, 1.5))));
        letter-spacing: var(--bkbg-b64-sub-letter-spacing-m, var(--bkbg-b64-sub-letter-spacing-t, var(--bkbg-b64-sub-letter-spacing-d, var(--bkbg-b64-sub-letter-spacing, normal))));
        word-spacing: var(--bkbg-b64-sub-word-spacing-m, var(--bkbg-b64-sub-word-spacing-t, var(--bkbg-b64-sub-word-spacing-d, var(--bkbg-b64-sub-word-spacing, normal))));
    }
}
