/* ── Shared ───────────────────────────────────────────────────── */

.drip-btn {
    background:    var(--drip-btn-bg, #2271b1);
    color:         var(--drip-btn-color, #fff);
    border:        none;
    border-radius: var(--drip-btn-radius, 4px);
    padding:       var(--drip-btn-padding-v, 9px) var(--drip-btn-padding-h, 20px);
    font-size:     var(--drip-font-size, 14px);
    font-weight:   var(--drip-btn-weight, 600);
    text-transform: var(--drip-btn-transform, none);
    cursor:        pointer;
    transition:    filter 0.15s;
    line-height:   1.4;
}
.drip-btn:hover   { filter: brightness(1.12); }
.drip-btn:disabled { opacity: .55; cursor: not-allowed; filter: none; }
.drip-btn--dim    { opacity: .55; cursor: default; }

.drip-notice {
    padding: 10px 14px;
    border-radius: 4px;
    margin-bottom: 14px;
    font-size: 13px;
}
.drip-notice--warn {
    background: #fff8e1;
    border-left: 4px solid #f9a825;
    color: #5d4037;
}

.drip-success {
    padding:       14px 18px;
    background:    var(--drip-success-bg,     #edfbea);
    color:         var(--drip-success-color,  #2e7d32);
    border-left:   var(--drip-success-bw, 4px) solid var(--drip-success-border, #2e7d32);
    border-radius: var(--drip-success-radius, 4px);
    font-size:     var(--drip-success-fsize,  14px);
}

.drip-error { color: #c0392b; }
.drip-message { margin-top: 10px; font-size: 13px; }
.drip-empty { color: #888; font-style: italic; }


/* ── Enroll form (checkbox list) ─────────────────────────────── */

.drip-enroll-wrap { max-width: 640px; font-size: var(--drip-font-size, 14px); }

.drip-list {
    list-style: none;
    margin: 0 0 14px;
    padding: 0;
    border: 1px solid var(--drip-input-border, #ddd);
    border-radius: var(--drip-input-radius, 4px);
    overflow: hidden;
}
.drip-list-item { border-bottom: 1px solid #eee; }
.drip-list-item:last-child { border-bottom: none; }
.drip-list-item label {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    cursor: pointer;
    transition: background 0.12s;
    color: var(--drip-label-color, #333);
}
.drip-list-item label:hover { background: #f7f7f7; }
.drip-list-item input[type="checkbox"] {
    width:        var(--drip-cb-size, 16px);
    height:       var(--drip-cb-size, 16px);
    flex-shrink:  0;
    accent-color: var(--drip-cb-color, #2271b1);
}

.drip-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}
.drip-select-all {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    color: #555;
    cursor: pointer;
}


/* ── Enroll overlay (Dynamic Posts bar) ──────────────────────── */

.drip-enroll-bar {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    padding: 10px 0;
}
.drip-count { font-size: 13px; color: #555; }
.drip-bar-msg { font-size: 13px; flex-basis: 100%; margin-top: 2px; }

/* Card checkbox badge — gooey style */
.drip-card-checkbox-wrap {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 10;
    line-height: 0;
}

.checkbox-wrapper-12 { position: relative; }
.checkbox-wrapper-12 * { box-sizing: border-box; }

.checkbox-wrapper-12 .cbx {
    width:    var(--drip-cb-size, 24px);
    height:   var(--drip-cb-size, 24px);
    position: relative;
}
.checkbox-wrapper-12 .cbx input[type="checkbox"] {
    -webkit-appearance: none;
    appearance: none;
    cursor: pointer;
    margin: 0;
    position: absolute;
    top: 0; left: 0;
    width:  var(--drip-cb-size, 24px);
    height: var(--drip-cb-size, 24px);
    border: 2px solid var(--drip-cb-unchecked, #bfbfc0);
    border-radius: 50%;
}
.checkbox-wrapper-12 .cbx input[type="checkbox"]:focus { outline: 0; }
.checkbox-wrapper-12 .cbx label {
    width:  var(--drip-cb-size, 24px);
    height: var(--drip-cb-size, 24px);
    background: none;
    border-radius: 50%;
    position: absolute;
    top: 0; left: 0;
    -webkit-filter: url("#goo-12");
    filter: url("#goo-12");
    transform: translate3d(0, 0, 0);
    pointer-events: none;
}
.checkbox-wrapper-12 .cbx svg {
    position: absolute;
    top: 5px; left: 4px;
    z-index: 1;
    pointer-events: none;
}
.checkbox-wrapper-12 .cbx svg path {
    stroke: #fff;
    stroke-width: 3;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-dasharray: 19;
    stroke-dashoffset: 19;
    transition: stroke-dashoffset 0.3s ease;
    transition-delay: 0.2s;
}
.checkbox-wrapper-12 .cbx input[type="checkbox"]:checked + label {
    animation: splash-12 0.6s ease forwards;
}
.checkbox-wrapper-12 .cbx input[type="checkbox"]:checked + label + svg path {
    stroke-dashoffset: 0;
}
@-webkit-keyframes splash-12 {
    40%  { background: var(--drip-cb-checked, #866efb); box-shadow: 0 -18px 0 -8px var(--drip-cb-checked, #866efb), 16px -8px 0 -8px var(--drip-cb-checked, #866efb), 16px 8px 0 -8px var(--drip-cb-checked, #866efb), 0 18px 0 -8px var(--drip-cb-checked, #866efb), -16px 8px 0 -8px var(--drip-cb-checked, #866efb), -16px -8px 0 -8px var(--drip-cb-checked, #866efb); }
    100% { background: var(--drip-cb-checked, #866efb); box-shadow: 0 -36px 0 -10px transparent, 32px -16px 0 -10px transparent, 32px 16px 0 -10px transparent, 0 36px 0 -10px transparent, -32px 16px 0 -10px transparent, -32px -16px 0 -10px transparent; }
}
@keyframes splash-12 {
    40%  { background: var(--drip-cb-checked, #866efb); box-shadow: 0 -18px 0 -8px var(--drip-cb-checked, #866efb), 16px -8px 0 -8px var(--drip-cb-checked, #866efb), 16px 8px 0 -8px var(--drip-cb-checked, #866efb), 0 18px 0 -8px var(--drip-cb-checked, #866efb), -16px 8px 0 -8px var(--drip-cb-checked, #866efb), -16px -8px 0 -8px var(--drip-cb-checked, #866efb); }
    100% { background: var(--drip-cb-checked, #866efb); box-shadow: 0 -36px 0 -10px transparent, 32px -16px 0 -10px transparent, 32px 16px 0 -10px transparent, 0 36px 0 -10px transparent, -32px 16px 0 -10px transparent, -32px -16px 0 -10px transparent; }
}

.drip-card-selectable { cursor: pointer; transition: outline 0.1s; }
.drip-card-selectable.drip-card-locked { cursor: default; }
.drip-card-selectable.drip-card-locked:hover { outline: none; opacity: 1; }
.drip-card-selectable:hover {
    outline: 2px solid var(--drip-selected-color, #2271b1);
    outline-style: var(--drip-selected-style, solid);
    opacity: .75;
    border-radius: 6px;
}
.drip-card-selected {
    outline-width: var(--drip-selected-width, 3px) !important;
    outline-style: var(--drip-selected-style, solid) !important;
    outline-color: var(--drip-selected-color, #2271b1) !important;
    border-radius: 6px;
}

.drip-card-enrolled {
    background: #2e7d32 !important;
    border-radius: 50%;
}
.drip-card-enrolled::after { content: '✓'; color: #fff; font-size: 14px; font-weight: bold; }
.drip-card-enrolled input { display: none; }


/* ── Address form ─────────────────────────────────────────────── */

.drip-address-wrap {
    max-width: 580px;
    background: var(--drip-form-bg, #fff);
    font-size: var(--drip-font-size, 14px);
}

.drip-field {
    display: flex;
    flex-direction: column;
    gap: 5px;
    margin-bottom: 14px;
}
.drip-field label {
    font-size: 13px;
    font-weight: 600;
    color: var(--drip-label-color, #333);
}
.drip-field input,
.drip-field select {
    padding: 9px 12px;
    border: 1px solid var(--drip-input-border, #ccc);
    border-radius: var(--drip-input-radius, 4px);
    font-size: var(--drip-font-size, 14px);
    width: 100%;
    box-sizing: border-box;
    transition: border-color 0.15s, box-shadow 0.15s;
    background: #fff;
}
.drip-field input:focus,
.drip-field select:focus {
    border-color: var(--drip-input-focus, #2271b1);
    outline: none;
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--drip-input-focus, #2271b1) 18%, transparent);
}

.drip-row--2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.drip-row--3 { display: grid; grid-template-columns: 2fr 1.2fr 1fr; gap: 14px; }

@media (max-width: 520px) {
    .drip-row--2,
    .drip-row--3 { grid-template-columns: 1fr; }
}

.drip-field-actions { margin-top: 6px; }

/* ── Final-selection floating tooltip ────────────────────────── */
#drip-final-tip {
    position:      fixed;
    z-index:       99999;
    background:    #2e7d32;
    color:         #fff;
    padding:       7px 14px;
    border-radius: 8px;
    font-size:     13px;
    font-weight:   600;
    white-space:   nowrap;
    pointer-events: none;
    box-shadow:    0 4px 12px rgba(0,0,0,.25);
    display:       none;
}
#drip-final-tip::before {
    content: '';
    position: absolute;
    top: -6px;
    left: 14px;
    border: 6px solid transparent;
    border-bottom-color: #2e7d32;
    border-top: 0;
}
