/* ---------- Brand variables ---------- */
:root {
    --brand-start: #4f46e5; /* indigo */
    --brand-end: #ec4899; /* pink   */
}

/* ---------- App background (soft wash + blobs) ---------- */
.app-bg {
    /* Most local effects FIRST, base wash LAST */
    background-image:
    /* bottom-right PINK boost */
    radial-gradient(720px 380px at 102% 102%, rgba(236,72,153,0.28), transparent 62%),
    /* bottom-right INDIGO (existing) */
    radial-gradient(560px 320px at 104% 104%, rgba(79,70,229,0.20), transparent 60%),
    /* subtle diagonal sweep from BR -> TL */
    linear-gradient(135deg, rgba(236,72,153,0.12) 0%, rgba(236,72,153,0.08) 20%, rgba(79,70,229,0.06) 38%, transparent 60% ),
    /* top-left indigo */
    radial-gradient(600px 300px at -8% 8%, rgba(79,70,229,0.20), transparent 60%),
    /* top-right pink */
    radial-gradient(700px 320px at 108% -10%, rgba(236,72,153,0.20), transparent 60%),
    /* base vertical wash */
    linear-gradient(180deg,#F6F3FF 0%, #F8FAFF 45%, #FFFFFF 100%);
    background-repeat: no-repeat;
    background-attachment: fixed;
}

/* Smaller blobs on narrow screens */
@media (max-width:768px) {
    .app-bg {
        background-image: radial-gradient(520px 280px at 104% 104%, rgba(236,72,153,0.26), transparent 62%), radial-gradient(420px 240px at 106% 106%, rgba(79,70,229,0.18), transparent 60%), linear-gradient(135deg, rgba(236,72,153,0.10) 0%, rgba(236,72,153,0.07) 22%, rgba(79,70,229,0.05) 40%, transparent 62% ), radial-gradient(420px 220px at -12% 8%, rgba(79,70,229,0.18), transparent 60%), radial-gradient(480px 220px at 112% -8%, rgba(236,72,153,0.18), transparent 60%), linear-gradient(180deg,#F6F3FF 0%, #F8FAFF 45%, #FFFFFF 100%);
    }
}

/* ---------- Brand gradients ---------- */
.brand-gradient {
    background-image: linear-gradient(to right,var(--brand-start),var(--brand-end));
    color: #fff;
}

.brand-gradient-45 {
    background-image: linear-gradient(45deg,var(--brand-start),var(--brand-end));
}

.brand-text-gradient {
    background-image: linear-gradient(to right,var(--brand-start),var(--brand-end));
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

/* ---------- Glass cards ---------- */
.card-glass {
    background: rgba(255,255,255,.9);
    backdrop-filter: saturate(120%) blur(12px);
    border: 1px solid rgba(255,255,255,.9);
    border-radius: 1.5rem; /* rounded-3xl */
    box-shadow: 0 20px 40px rgba(15,23,42,.12);
}

.card-glass-tint {
    background-image: linear-gradient(135deg, rgba(79,70,229,.08), rgba(236,72,153,.06));
}
/* fallback if accent-* utilities aren't available */
/* Restore native control and force our brand accent */
/* tiny utility when Tailwind lacks appearance-auto */
.appearance-auto {
    -webkit-appearance: auto;
    appearance: auto;
}

.card-col {
    display: flex;
    flex-direction: column;
    min-height: 260px;
}

.card-actions {
    margin-top: auto;
    padding-top: 1rem;
}

/* Brand checkbox: force native control + brand accent */
input[type="checkbox"].brand-accent {
    -webkit-appearance: auto !important;
    appearance: auto !important;
    accent-color: #c026d3 !important; /* fuchsia-600 – tweak to your brand */
}

    /* Optional focus ring to match */
    input[type="checkbox"].brand-accent:focus {
        outline: 2px solid #c026d3;
        outline-offset: 2px;
    }

/* Dark mode tweak (optional) */
.dark input[type="checkbox"].brand-accent {
    accent-color: #a21caf !important;
}

.footer-textarea {
    min-height: 200px;
    resize: vertical;
}



.accent-brand {
    accent-color: #c026d3;
}


.brand-checkbox {
    -webkit-appearance: auto;
    appearance: auto;
    accent-color: #c026d3; /* fuchsia-600 */
}

/* violet-500-ish */

/* ---------- Gradient border (logo chips, tiles) ---------- */
.brand-outline {
    border-radius: 18px;
    border: 2px solid transparent;
    background: linear-gradient(#ffffff,#ffffff) padding-box, linear-gradient(45deg,var(--brand-start),var(--brand-end)) border-box;
    box-shadow: 0 18px 40px rgba(15,23,42,.10), 0 2px 10px rgba(79,70,229,.10), 0 2px 10px rgba(236,72,153,.08);
}

.brand-outline-md {
    border-radius: 14px;
}

.brand-outline-lg {
    border-radius: 24px;
}

.brand-outline.hover-lift:hover {
    transform: translateY(-1px);
    box-shadow: 0 24px 56px rgba(15,23,42,.12), 0 4px 14px rgba(79,70,229,.14), 0 4px 14px rgba(236,72,153,.10);
}

/* ---------- (Optional) pill buttons ---------- */
.brand-gradient-pill {
    border-radius: 9999px;
    box-shadow: 0 6px 16px rgba(79,70,229,.25), 0 2px 8px rgba(236,72,153,.20);
}

    .brand-gradient-pill:hover {
        filter: brightness(1.03);
    }

/* ---- Base ---- */
.btn {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    font-weight: 600;
    line-height: 1; /* keep text vertically centered */
    border-radius: 8px; /* default */
    padding: .45rem .6rem;
    font-size: .875rem;
    transition: transform .1s ease, box-shadow .2s ease, filter .2s ease, background-color .2s ease;
    text-decoration: none;
    box-sizing: border-box; /* IMPORTANT: include border in the size so outline == filled height */
}

/* Sizes (optional) */
.btn-xs {
    padding: .3rem .45rem;
    font-size: .75rem;
    border-radius: 7px;
}

.btn-sm {
    padding: .4rem .55rem;
    font-size: .8125rem;
}

/* Filled gradient */
.btn-brand {
    background-image: linear-gradient(to right,var(--brand-start),var(--brand-end));
    color: #fff;
    box-shadow: 0 6px 12px rgba(79,70,229,.18), 0 3px 8px rgba(236,72,153,.15);
}

    .btn-brand:hover {
        filter: brightness(1.04);
        box-shadow: 0 8px 16px rgba(79,70,229,.22), 0 4px 10px rgba(236,72,153,.20);
    }

    .btn-brand:active {
        transform: translateY(1px);
    }

/* Outline on white (gradient border) */
.btn-brand-outline {
    border: 2px solid transparent;
    background: linear-gradient(#fff,#fff) padding-box, linear-gradient(45deg,var(--brand-start),var(--brand-end)) border-box;
    color: #111827; /* slate-900 */
}

    .btn-brand-outline:hover {
        box-shadow: 0 6px 14px rgba(15,23,42,.10);
    }

    .btn-brand-outline:active {
        transform: translateY(1px);
    }

/* Icon-only button (square) */
.btn-icon {
    width: 34px;
    height: 34px;
    padding: 0;
    justify-content: center;
    border-radius: 8px;
}

    .btn-icon.btn-xs {
        width: 28px;
        height: 28px;
        border-radius: 7px;
    }


/* Pill size + radius for hero CTAs */
.btn-hero {
    padding: .75rem 1.25rem; /* same padding for both styles */
    font-size: 1rem;
    border-radius: 9999px; /* fully rounded */
}


/* Normalize height: filled button also gets a 2px (transparent) border */
.btn-brand.btn-hero {
    border: 2px solid transparent;
}

/* You already have this for outline, keep as-is */
.btn-brand-outline {
    border: 2px solid transparent;
    background: linear-gradient(#fff,#fff) padding-box, linear-gradient(45deg,var(--brand-start),var(--brand-end)) border-box;
    color: #111827;
}

/* Filled brand gradient */
.btn-brand {
    background-image: linear-gradient(to right,var(--brand-start),var(--brand-end));
    color: #fff;
    border: none; /* ensure no border on the filled version */
    box-shadow: 0 6px 12px rgba(79,70,229,.18),0 3px 8px rgba(236,72,153,.15);
}

    .btn-brand:hover {
        filter: brightness(1.04);
        box-shadow: 0 8px 16px rgba(79,70,229,.22),0 4px 10px rgba(236,72,153,.20);
    }

    .btn-brand:active {
        transform: translateY(1px);
    }

/* Outline (gradient border + white interior) */
.btn-brand-outline {
    border: 2px solid transparent;
    background: linear-gradient(#fff,#fff) padding-box, linear-gradient(45deg,var(--brand-start),var(--brand-end)) border-box;
    color: #111827;
}

    .btn-brand-outline:hover {
        box-shadow: 0 6px 14px rgba(15,23,42,.10);
    }

    .btn-brand-outline:active {
        transform: translateY(1px);
    }

.btn-nudge .icon-right {
    transition: transform .15s ease;
}

.btn-nudge:hover .icon-right {
    transform: translateX(4px);
}

/* Optional subtle “ghost” for black actions if needed */
.btn-ghost {
    background: #111827;
    color: #fff; /* your current black */
}

    .btn-ghost:hover {
        background: #0c1222;
    }

    /* small grey dot separator used in header meta */
.sep-dot::before {
    content: "";
    display: inline-block;
    width: 4px;
    height: 4px;
    border-radius: 9999px;
    background: #cbd5e1; /* slate-300 */
    margin: 0 .5rem;
}

/* Ribbon wrapper (like your editor band) */
.ribbon {
    position: relative;
    border-radius: 26px;
    padding: 10px; /* outer glow space */
    background-image: linear-gradient(90deg,var(--brand-start),var(--brand-end));
}

    .ribbon > .edge {
        position: absolute;
        top: 0;
        bottom: 0;
        width: 44px;
        content: "";
        pointer-events: none;
        filter: drop-shadow(0 8px 18px rgba(79,70,229,.18));
    }

        .ribbon > .edge.left {
            left: -22px;
            border-radius: 9999px;
            background: var(--brand-start);
        }

        .ribbon > .edge.right {
            right: -22px;
            border-radius: 9999px;
            background: var(--brand-end);
        }
/* inner surface */
.ribbon-inner {
    background: linear-gradient(180deg, rgba(255,255,255,.95), rgba(255,255,255,.90));
    border-radius: 20px;
    box-shadow: 0 20px 40px rgba(15,23,42,.12);
    padding: 14px 18px;
}

/* Panel tint for big cards */
.brand-panel {
    position: relative;
}

    .brand-panel:before {
        content: "";
        position: absolute;
        inset: 0;
        border-radius: inherit;
        pointer-events: none;
        background: radial-gradient(500px 200px at 100% 0%, rgba(236,72,153,.10), transparent 60%), radial-gradient(500px 200px at 0% 100%, rgba(79,70,229,.08), transparent 60%);
        opacity: .7;
    }
/* optional large button */
.btn-lg {
    padding: .65rem 1rem;
    font-size: 0.95rem;
    border-radius: 10px;
}
/* thin section divider under hero */
.section-divider {
    height: 20px;
    margin: 18px auto 6px auto;
    max-width: 1200px;
    border-radius: 9999px;
    background: linear-gradient(90deg, rgba(79,70,229,.25), rgba(236,72,153,.25));
    box-shadow: 0 12px 24px rgba(15,23,42,.10), inset 0 1px 0 rgba(255,255,255,.7);
}

/* hero illo frame (matches your brand-outline look but slimmer) */
.hero-illo {
    border: 2px solid transparent;
    border-radius: 22px;
    
}

/* keep the image centered inside the frame */
.hero-illo-inner {
  
    border-radius: 20px;
    padding: 14px;
}
/* Deep purple panel used for Martin card */
.purple-panel {
    position: relative;
    border-radius: 16px;
    /* layered brand sheens + deep base */
    background: radial-gradient(700px 300px at 0% 0%, rgba(79,70,229,.45), transparent 60%), radial-gradient(700px 300px at 100% 100%, rgba(236,72,153,.40), transparent 60%), linear-gradient(180deg,#1a1540 0%, #0f102a 100%);
    color: #fff;
    box-shadow: 0 24px 48px rgba(15,23,42,.25);
    overflow: hidden;
}

    /* optional inner highlight ring */
    .purple-panel:before {
        content: "";
        position: absolute;
        inset: 0;
        pointer-events: none;
        border-radius: inherit;
        background: radial-gradient(1200px 400px at 50% -20%, rgba(255,255,255,.08), transparent 70%);
    }

    /* On dark panels, make body text slightly softer */
    .purple-panel .muted {
        color: rgba(255,255,255,.82);
    }

/* A small soft divider used in the card */
.purple-divider {
    height: 1px;
    margin: .75rem 0 1rem;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,.25), transparent);
}
/* Gradient band card (same gradient as the divider) */
.band-card {
    background: linear-gradient(90deg, rgba(79,70,229,.25), rgba(236,72,153,.25));
    box-shadow: 0 12px 24px rgba(15,23,42,.10), inset 0 1px 0 rgba(255,255,255,.7);
    border-radius: 28px;
}

/* Glassy inner surface so content is readable on the band */
.band-inner {
    background: rgba(255,255,255,.60);
    backdrop-filter: saturate(120%) blur(6px);
    border-radius: 22px;
}

/* tiny gradient bar above the footer */
.footer-topbar {
    height: 2px;
    border-radius: 9999px;
}

.footer-topbar-bg {
    background-image: linear-gradient(90deg,var(--brand-start),var(--brand-end));
}

/* footer links */
.footer-link {
    color: #5b6475;
    text-decoration: none;
}

    .footer-link:hover {
        color: #111827;
        text-decoration: underline;
        text-underline-offset: 3px;
    }

/* icon pill */
.social-pill {
    display: inline-flex;
    align-items: center;
    gap: .6rem;
    border-radius: 9999px;
    border: 2px solid transparent;
    background: linear-gradient(#fff,#fff) padding-box, linear-gradient(45deg,var(--brand-start),var(--brand-end)) border-box;
    padding: .4rem .6rem;
    box-shadow: 0 6px 16px rgba(15,23,42,.08);
}

    .social-pill a {
        color: #9aa3af;
    }

        .social-pill a:hover {
            color: #111827;
        }

/* language select to match outline chips */
.lang-select {
    border: 2px solid transparent;
    border-radius: 9999px;
    background: linear-gradient(#fff,#fff) padding-box, linear-gradient(45deg,var(--brand-start),var(--brand-end)) border-box;
    padding: .35rem .75rem;
    color: #374151;
}

    .lang-select:focus {
        outline: none;
        box-shadow: 0 0 0 3px rgba(79,70,229,.15);
    }


/* Reusable 2-column promo split */
.promo-split {
    display: grid;
    grid-template-columns: 380px 1fr; /* image | text */
    align-items: center;
    gap: 2.5rem;
}

/* Tweak the image column width slightly for tablet */
@media (max-width: 1024px) {
    .promo-split {
        grid-template-columns: 320px 1fr;
        gap: 2rem;
    }
}

/* Stack on mobile (image on top, text below) */
@media (max-width: 768px) {
    .promo-split {
        grid-template-columns: 1fr;
    }
}

/* Image alignment: center on mobile, left on desktop */
.promo-media {
    justify-self: center;
}

@media (min-width: 768px) {
    .promo-media {
        justify-self: start;
    }
}

/* Text alignment: center on mobile, left on desktop */
.promo-copy {
    text-align: center;
}

@media (min-width: 768px) {
    .promo-copy {
        text-align: left;
    }
}

/* Image sizing */
.promo-img {
    width: 240px; /* mobile default */
    max-width: 100%;
    height: auto;
    object-fit: contain;
}

@media (min-width: 768px) {
    .promo-img {
        width: 300px; /* desktop/tablet */
    }
}

/* -------- Testimonial look & feel (dark indigo/purple) -------- */
.t-panel {
    /* soft brand blobs + deep night gradient */
    background: radial-gradient(1200px 420px at -10% -10%, rgba(79,70,229,.18), transparent 60%), radial-gradient(1000px 380px at 110% 120%, rgba(236,72,153,.16), transparent 60%), linear-gradient(180deg, #111229 0%, #171233 42%, #120f26 100%);
    color: #E9E8FF;
    padding: 48px 28px;
    box-shadow: 0 28px 70px rgba(15,23,42,.35), inset 0 1px 0 rgba(255,255,255,.06);
}

    /* optional: keep interior pale panel off */
    .t-panel .card-glass,
    .t-panel .card {
        background: transparent !important;
        box-shadow: none !important;
        border: none !important;
    }

/* headings */
.t-heading {
    margin: 0;
    font-weight: 800;
    font-size: clamp(1.25rem, 0.9rem + 1.4vw, 1.8rem);
    background-image: linear-gradient(90deg, var(--brand-start), var(--brand-end));
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.t-sub {
    margin-top: .25rem;
    color: rgba(255,255,255,.75);
    font-size: .95rem;
}

/* quote / author / role */
.t-quote {
    font-size: clamp(1.05rem, 1rem + 1vw, 1.4rem);
    font-style: italic;
    line-height: 1.8;
    color: rgba(255,255,255,.92);
    letter-spacing: .1px;
}

.t-author {
    margin-top: 18px;
    font-weight: 700;
    color: #FFF;
}

.t-role {
    margin-top: 2px;
    font-size: .9rem;
    color: rgba(255,255,255,.7);
}

/* nav buttons */
.t-nav {
    width: 38px;
    height: 38px;
    border-radius: 9999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255,255,255,.10);
    border: 1px solid rgba(255,255,255,.20);
    color: #FFF;
    transition: transform .15s ease, background .15s ease, box-shadow .15s ease;
}

    .t-nav:hover {
        background: rgba(255,255,255,.18);
        transform: translateY(-1px);
    }

    .t-nav:active {
        transform: translateY(0);
    }

    .t-nav[disabled] {
        opacity: .35;
        pointer-events: none;
    }

/* dots */
.t-dots {
    display: flex;
    gap: 8px;
    justify-content: center;
    align-items: center;
    margin-top: .75rem;
}

.t-dot {
    width: 10px;
    height: 10px;
    border-radius: 9999px;
    cursor: pointer;
    background: rgba(255,255,255,.28);
    box-shadow: inset 0 0 0 1px rgba(0,0,0,.15);
    transition: transform .15s ease, background .15s ease, box-shadow .15s ease;
}

    .t-dot:hover {
        transform: scale(1.08);
        background: rgba(255,255,255,.45);
    }

    .t-dot.active {
        background: linear-gradient(90deg, var(--brand-start), var(--brand-end));
        box-shadow: 0 0 0 3px rgba(255,255,255,.18) inset, 0 4px 14px rgba(79,70,229,.35);
    }

/* spacing helpers if you want a little more breathing room */
.t-panel .t-body {
    margin-top: 18px;
}

.t-panel .t-controls {
    margin-top: 16px;
}












html, body {
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
}

a, .btn-link {
    color: #006bb7;
}

.btn-primary {
    color: #fff;
    background-color: #1b6ec2;
    border-color: #1861ac;
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

.content {
    padding-top: 1.1rem;
}

h1:focus {
    outline: none;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid #e50000;
}

.validation-message {
    color: #e50000;
}

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

    .blazor-error-boundary::after {
        content: "An error has occurred."
    }

.darker-border-checkbox.form-check-input {
    border-color: #929292;
}

.drag-handle {
    font-size: 20px;
    padding-right: 10px;
    color: #888;
}

.list-group {
    list-style: none;
    padding: 0;
    max-width: 300px;
}

.list-group-item {
    padding: 8px 16px;
    border: 1px solid #ccc;
    margin-bottom: 4px;
    background: #fff;
    cursor: move;
}
@* Use this on all inputs *@

@code {
    private string InputStyle => "border border-gray-300 rounded-md px-3 py-2 w-full text-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500";
}

/* Shared height for editor & preview */
.dpp-md-h {
    min-height: 340px;
}

/* Quill specifics: keep the content area tall and scrollable */
.quill-box .ql-container {
    height: 240px; /* matches preview/editor min-height */
    overflow-y: auto;
}

.quill-box .ql-editor {
    min-height: 340px;
    padding: 0.75rem;
}

/* Rounded corners so toolbar + container look like one card */
.quill-box .ql-toolbar.ql-snow {
    border-top-left-radius: .5rem;
    border-top-right-radius: .5rem;
}

.quill-box .ql-container.ql-snow {
    border-bottom-left-radius: .5rem;
    border-bottom-right-radius: .5rem;
}

/* Smaller height on narrow screens (optional) */
@media (max-width: 768px) {
    .dpp-md-h {
        min-height: 260px;
    }

    .quill-box .ql-container,
    .quill-box .ql-editor {
        height: 260px;
        min-height: 260px;
    }
}
/* keep toolbar/container visually together */
.quill-editor-wrapper .ql-toolbar {
    border-radius: .5rem .5rem 0 0;
}

.quill-editor-wrapper .ql-container {
    border-radius: 0 0 .5rem .5rem;
}

/* ensure the editor doesn't spill */
.quill-editor-wrapper .ql-container {
    overflow: hidden;
}

