/* ---------- Brand variables ---------- */
:root {
    --brand-start: #4f46e5; /* indigo */
    --brand-end: #ec4899; /* pink   */
}
summary::-webkit-details-marker {
    display: none;
}

/* ---------- 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;
}
.nav-item {
    color: #111827; /* slate-900-ish */
    transition: background .15s ease, color .15s ease, box-shadow .15s ease;
}

    .nav-item:hover {
        background: linear-gradient(to right, #ec4899, #6366f1);
        color: #fff;
    }

 .nav-item:hover i {
            color: white;
            opacity: 1;
        }

/* ACTIVE = keep the gradient always */
.nav-item-active {
    background: linear-gradient(to right, #ec4899, #6366f1);
    color: #fff;
    box-shadow: 0 10px 20px rgba(99,102,241,.18);
}

    .nav-item-active i {
        color: #fff;
        opacity: 1;
    }
/* sidebar links should never turn default blue */
.sidebar a,
.sidebar .btn-link {
    color: #111827;
    text-decoration: none;
}

    /* keep gradient hover/active still working */
    .sidebar a.nav-item:hover,
    .sidebar a.nav-item-active {
        color: #fff;
    }

/* 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-green {
    background-image: linear-gradient(90deg, #008552 0%, #9ebd13 100%);
    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;
}
.brand-text-green {
    background-image: linear-gradient(90deg, #008552 0%, #9ebd13 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}
.brand-green
{
    background-color:green;
}
    /* ---------- Glass cards ---------- */
    .card-glass {
        background: rgba(255,255,255,.9);
        backdrop-filter: saturate(120%) blur(12px)!important;
        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-solid {
    background: rgba(255,255,255,0.95); /* Slightly more opaque to compensate */
    border: 1px solid rgba(255,255,255,.9);
    border-radius: 1.5rem;
    box-shadow: 0 20px 40px rgba(15,23,42,.12);
    /* NO backdrop-filter = no stacking context */
}
/* Add after line 99 */
.card-glass-no-blur {
    background: rgba(255,255,255,.95); /* Slightly more opaque */
    border: 1px solid rgba(255,255,255,.9);
    border-radius: 1.5rem;
    box-shadow: 0 20px 40px rgba(15,23,42,.12);
    /* NO backdrop-filter = no stacking context */
}
.card-glass-green {
    background: linear-gradient(90deg, #008552 0%, #9ebd13 100%);
    /*backdrop-filter: saturate(120%) blur(12px);*/
    border: 1px solid rgb(196 213 195 / 90%);
    border-radius: 1.5rem; /* rounded-3xl */
    box-shadow: 0 20px 40px rgba(15,23,42,.12);
}
.brand-outline-green {
    border-radius: 18px;
    border: 2px solid transparent;
    background: linear-gradient(#ffffff,#ffffff) padding-box, linear-gradient(90deg, #008552 0%, #9ebd13 100%) 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);
}
.btn-brand-outline-green {
    border: 2px solid transparent;
    background: linear-gradient(#fff,#fff) padding-box, linear-gradient(90deg, #008552 0%, #9ebd13 100%) border-box;
    color: #111827; /* slate-900 */
}
.card-glass-tint {
    background-image: linear-gradient(135deg, rgba(79,70,229,.08), rgba(236,72,153,.06));
}

/*.card-glass-green {
    background-image: linear-gradient(90deg, #00C9FF 0%, #92FE9D 100%);
}*/

/* app.css */

.lifecycle-card {
    transition: background-color 0.2s ease, box-shadow 0.2s ease;
    cursor: pointer;
}

    .lifecycle-card:hover {
        background: linear-gradient(to right, #ec4899, #6366f1);
        color: #fff;
        border: 1px solid rgba(255,255,255,.9);
    }



/* 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;
}

/* Carded rich text editor */
/* Rich-text editor card wrapper */
.rte-wrap {
    border-radius: 1rem;
    background: #fff;
    border: 1px solid #e5e7eb;
    box-shadow: 0 1px 2px rgba(0,0,0,.06);
    overflow: hidden; /* keep toolbar + editor visually one card */
}

    /* Make the Quill chrome look like a card header/body */
    .rte-wrap .ql-toolbar {
        background: #fff;
        border: 0;
        border-bottom: 1px solid #e5e7eb;
        padding: 10px 12px;
    }

    .rte-wrap .ql-container {
        border: 0 !important;
        border-radius: 0 !important;
    }

    .rte-wrap .ql-editor {
        padding: 12px;
        min-height: 160px;
    }

    /* In case your component emits .quill-box around the container */
    .rte-wrap .quill-box {
        border: 0 !important;
        border-radius: 0 !important;
        box-shadow: none !important;
    }


/* Remove Quill's default borders inside our glass cards */
.card-glass .ql-toolbar.ql-snow,
.card-glass .ql-container.ql-snow {
    border: 0 !important;
}

/* Base brand outline look for the Quill container when not focused */
.ql-container.brand-outline {
    border-radius: 12px; /* match your inputs */
    border: 1px solid rgba(226,232,240,1); /* slate-200-ish */
    box-shadow: inset 0 0 0 1px rgba(226,232,240,1);
    background-color: #fff; /* keep it white inside the glass card */
}

    /* Show the brand ring when the INNER editor gains focus */
    .ql-container.brand-outline:focus-within {
        border-color: transparent;
        box-shadow: 0 0 0 3px rgba(168, 85, 247, .35), /* purple glow ring */
        0 1px 2px rgba(16, 24, 40, .06); /* soft elevation */
        border-radius: 12px;
    }

    /* Optional: keep the inner editor from adding its own outline */
    .ql-container.brand-outline .ql-editor:focus {
        outline: none;
        border-radius: 12px;
    }



.ql-toolbar.ql-snow {border: none !important}
.ql-container.ql-snow {
    border: none !important
}

.ai-usage-bar {
    background: linear-gradient(to right, #ec4899, #6366f1); /* fuchsia ? indigo */
}

ai-usage-bar-blue {
    background-color : #ec4899;
}
ai-usage-bar-purple {
    background-color: #6366f1;
}


.accent-brand {
    accent-color: #c026d3;
}

/* 2-line clamp without Tailwind plugin */
.clamp-2 {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.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);
    }
.brand-textarea {
    width: 100%;
    padding: 0.75rem 0.95rem;
    border-radius: 1.25rem;
    border: 1px solid rgba(124, 58, 237, 0.35);
    background: rgba(255,255,255,0.9);
    outline: none;
}

    .brand-textarea:focus {
        border-color: rgba(236, 72, 153, 0.7);
        box-shadow: 0 0 0 3px rgba(236, 72, 153, 0.15);
    }

.blog-content hr {
    margin-top: 3rem;
    margin-bottom: 3rem;
    border: none;
    height: 1px;
    background: linear-gradient(to right, transparent, #e2e8f0, transparent);
}
.blog-content h1 {
    margin-top: 2.5rem;
    margin-bottom: 1rem;
}
.blog-content h2 {
    margin-top: 2.5rem;
    margin-bottom: 1rem;
}

.blog-content h3 {
    margin-top: 2rem;
    margin-bottom: 0.75rem;
}

.blog-content p {
    margin-bottom: 1.25rem;
    line-height: 1.75;
}
.blog-content ul,
.blog-content ol {
    margin: 1rem 0 1.5rem 1.5rem;
}

.blog-content li {
    margin-bottom: 0.5rem;
}
.blog-content blockquote {
    margin: 1.5rem 0;
    padding-left: 1rem;
    border-left: 4px solid #c084fc;
    font-style: italic;
}
.ribbon-slim {
    padding-top: 5px;
    padding-bottom: 5px;
}

/* 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;
    }

.hero-glow {
    background: radial-gradient(circle at 20% 20%, rgba(99,102,241,0.15), transparent 40%), radial-gradient(circle at 80% 30%, rgba(236,72,153,0.15), transparent 50%);
}

.product-preview-container {
    position: relative;
    max-width: 520px;
}

.product-preview-main {
    animation: floatHero 6s ease-in-out infinite;
}

.product-preview-card {
    position: absolute;
    right: -40px;
    bottom: -40px;
    width: 220px;
    animation: floatHeroSmall 7s ease-in-out infinite;
}

@keyframes floatHero {
    0% {
        transform: translateY(0)
    }

    50% {
        transform: translateY(-14px)
    }

    100% {
        transform: translateY(0)
    }
}

@keyframes floatHeroSmall {
    0% {
        transform: translateY(0)
    }

    50% {
        transform: translateY(-10px)
    }

    100% {
        transform: translateY(0)
    }
}


/* 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: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif, 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;
}

/* ---- Prose: restore list bullets (Tailwind preflight removes them) ---- */
.prose ul {
    list-style-type: disc;
    padding-left: 1.25rem; /* indent for bullets */
    margin-top: 0.75rem;
    margin-bottom: 0.75rem;
}

.prose ol {
    list-style-type: decimal;
    padding-left: 1.25rem;
    margin-top: 0.75rem;
    margin-bottom: 0.75rem;
}

.prose li {
    margin-top: 0.35rem;
    margin-bottom: 0.35rem;
}

/* Optional: nicer bullet alignment */
.prose ul li::marker,
.prose ol li::marker {
    color: #6b7280; /* slate-500 */
}

/* ── Manufacturer KPI Cards ─────────────────────────── */
.mfr-kpi {
    background: #ffffff;
    border: 1px solid #ede9fe;
    border-radius: 1.25rem;
    padding: 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.875rem;
    position: relative;
    overflow: hidden;
    transition: box-shadow 0.25s ease, transform 0.25s ease;
    box-shadow: 0 1px 4px rgba(99,102,241,0.06), 0 4px 16px rgba(99,102,241,0.04);
}

.mfr-kpi:hover {
    box-shadow: 0 8px 32px rgba(99,102,241,0.14), 0 2px 8px rgba(168,85,247,0.08);
    transform: translateY(-2px);
}

.mfr-kpi-icon {
    width: 2rem;
    height: 2rem;
    border-radius: 0.625rem;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 0.95rem;
}
.brand-gradient-new {
    color: #5610e2;
    background-color: #eae6fe;
}
.mfr-kpi-label {
    font-size: 0.8125rem;
    font-weight: 700;
    color: #000;
    letter-spacing: 0.01em;
}
.pill-green {
    color: #077955; 
    background-color: #b2e9d8;
}
.mfr-kpi-count {
    font-size: 2.75rem;
    font-weight: 900;
    line-height: 1;
    background: linear-gradient(135deg, var(--brand-start), var(--brand-end));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.mfr-kpi-sub {
    font-size: 0.75rem;
    color: #9ca3af;
    margin-top: 0.3rem;
    line-height: 1.4;
}

.mfr-kpi-cta {
    font-size: 0.72rem;
    font-weight: 600;
    background: linear-gradient(135deg, var(--brand-start), var(--brand-end));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    cursor: pointer;
    display: inline-block;
    margin-top: 0.625rem;
    transition: opacity 0.15s;
}

.mfr-kpi-cta:hover {
    opacity: 0.75;
    text-decoration: underline;
    -webkit-text-decoration-color: var(--brand-start);
    text-decoration-color: var(--brand-start);
}

/* ── Activity feed icon & badge colours ──────────────────── */
.act-icon-lifecycle  { background-color: #fce7f3; color: #db2777; }
.act-icon-batch      { background-color: #fef3c7; color: #d97706; }
.act-icon-mfg        { background-color: #ffedd5; color: #ea580c; }
.act-icon-product    { background-color: #d1fae5; color: #059669; }
.act-icon-blockchain { background-color: #ede9fe; color: #7c3aed; }

.act-badge-lifecycle  { background-color: #fce7f3; color: #be185d;  font-size: 0.7rem; font-weight: 600; padding: 0.15rem 0.55rem; border-radius: 9999px; white-space: nowrap; }
.act-badge-batch      { background-color: #fef3c7; color: #b45309;  font-size: 0.7rem; font-weight: 600; padding: 0.15rem 0.55rem; border-radius: 9999px; white-space: nowrap; }
.act-badge-mfg        { background-color: #ffedd5; color: #c2410c;  font-size: 0.7rem; font-weight: 600; padding: 0.15rem 0.55rem; border-radius: 9999px; white-space: nowrap; }
.act-badge-product    { background-color: #d1fae5; color: #047857;  font-size: 0.7rem; font-weight: 600; padding: 0.15rem 0.55rem; border-radius: 9999px; white-space: nowrap; }
.act-badge-blockchain { background-color: #ede9fe; color: #6d28d9;  font-size: 0.7rem; font-weight: 600; padding: 0.15rem 0.55rem; border-radius: 9999px; white-space: nowrap; }

/* ── File inputs (covers <input type="file"> and Blazor <InputFile>) ─── */
input[type="file"] {
    font-size: 0.75rem;
    color: #6b7280;
    cursor: pointer;
    max-width: 100%;
}

input[type="file"]::file-selector-button {
    margin-right: 0.625rem;
    padding: 0.25rem 0.875rem;
    border-radius: 9999px;
    border: 1px solid #e5e7eb;
    background-color: #f9fafb;
    font-size: 0.75rem;
    font-weight: 600;
    color: #374151;
    cursor: pointer;
    transition: background-color 0.15s ease, border-color 0.15s ease;
}

input[type="file"]::file-selector-button:hover {
    background-color: #f3f4f6;
    border-color: #d1d5db;
}

.region-card {
    position: relative;
    overflow: hidden;
    border-radius: 16px;
    padding: 24px;
    min-height: 130px;
    background: white;
    border: 1px solid #d1d5db;
    transition: all .25s ease;
}

    .region-card:hover {
        transform: translateY(-2px);
        box-shadow: 0 10px 30px rgba(0,0,0,.08);
    }

.region-bg {
    position: absolute;
    inset: 0;
    background-repeat: no-repeat;
    background-position: bottom right;
    background-size: 180px;
    opacity: .32;
    pointer-events: none;
}

.region-badge {
    display: inline-block;
    margin-top: 8px;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 600;
    background: #eef2ff;
    color: #4f46e5;
}

.selected-circle {
    width: 28px;
    height: 28px;
    border-radius: 9999px;
    background: linear-gradient( 135deg, #7c3aed, #ec4899 );
    display: flex;
    align-items: center;
    justify-content: center;
}