/* ===================================================================
   PRISM - CLIENT AREA THEME
   ===================================================================
   The colors are NOT set here. They are set in colors.css, which
   loads after this file and survives theme updates: change the brand
   hex there and every gradient, tint, ring and shadow below follows.

   The design tokens this file is written on top of live in
   tokens.css, loaded before this one.
   =================================================================== */

/* ── Everything below is the theme itself ───────────────────────── */

/* ===================================================================
   FONTES CUSTOMIZADAS
   =================================================================== */

/* As duas fontes do tema, hospedadas aqui dentro. Figtree nos títulos,
   Public Sans no texto. Ambas são SIL Open Font License e podem ser
   redistribuídas junto com o tema; as licenças estão em
   fonts/OFL-Figtree.txt e fonts/OFL-PublicSans.txt.

   Os arquivos são variáveis: um arquivo por alfabeto cobre a faixa de
   peso inteira, em vez de um arquivo por peso. São 83 KB no total, e a
   página não fala com servidor nenhum de fora para pegá-los.

   Os caminhos são relativos a este arquivo, de propósito: assim o tema
   funciona também quando o WHMCS está numa subpasta do domínio. */

@font-face {
    font-family: 'Figtree';
    src: url('../fonts/Figtree-latin.woff2') format('woff2');
    font-weight: 300 900;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: 'Figtree';
    src: url('../fonts/Figtree-latin-ext.woff2') format('woff2');
    font-weight: 300 900;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
    font-family: 'Public Sans';
    src: url('../fonts/PublicSans-latin.woff2') format('woff2');
    font-weight: 300 700;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: 'Public Sans';
    src: url('../fonts/PublicSans-latin-ext.woff2') format('woff2');
    font-weight: 300 700;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
    font-family: 'Public Sans';
    src: url('../fonts/PublicSans-vietnamese.woff2') format('woff2');
    font-weight: 300 700;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

/* ===================================================================
   APLICAÇÃO DAS FONTES
   =================================================================== */

/* Public Sans para textos gerais - SEM sobrescrever ícones */
body,
html,
p,
div:not([class*="fa-"]):not([class*="icon-"]):not(.mce-ico),
span:not([class*="fa-"]):not([class*="icon-"]):not(.mce-ico),
input:not([class*="fa-"]):not([class*="icon-"]),
button:not([class*="fa-"]):not([class*="icon-"]):not(.mce-btn),
select,
textarea,
.form-control,
.btn:not([class*="fa-"]):not(.mce-btn) {
    font-family: 'Public Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

/* Figtree para todos os títulos */
h1,
h2,
h3,
h4,
h5,
h6,
.header-lined h1,
.summary-header h3,
.sub-heading span,
.panel-title,
.card-title {
    font-family: 'Figtree', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

/* ===================================================================
   PROTEÇÃO PARA ÍCONES - Garante que ícones mantenham suas fontes
   =================================================================== */

/* Font Awesome. A lista comeca no 6 porque e o que o WHMCS 9 instala, e
   termina no 5 e no FontAwesome para o tema continuar funcionando no WHMCS 8
   e em quem nao tem a licenca Pro. Sem o 6 na frente, no WHMCS 9 todo icone
   do tema vira quadradinho. */
[class*="fa-"],
[class*="fas-"],
[class*="far-"],
i[class*="fa"],
.fa,
.fas,
.far,
.fal {
    font-family: 'Font Awesome 6 Pro', 'Font Awesome 6 Free', 'Font Awesome 5 Pro', 'Font Awesome 5 Free', 'FontAwesome' !important;
}

/* Brands tem familia propria e precisa vir depois da regra acima, senao o
   icone do WordPress e o do cPanel somem junto. */
[class*="fab-"],
[class*="fa-brands"],
.fab {
    font-family: 'Font Awesome 6 Brands', 'Font Awesome 6 Brands', 'Font Awesome 5 Brands', 'FontAwesome', 'FontAwesome' !important;
}

/* TinyMCE Editor Icons */
.mce-ico,
.mce-i-bold,
.mce-i-italic,
.mce-btn i,
.mce-toolbar .mce-btn i,
[class*="mce-i-"] {
    font-family: 'tinymce', 'tinymce-small' !important;
}

/* Estrelas de Rating (WHMCS) - VERSÃO AGRESSIVA */
.rating *,
[class*="rating"] *,
.star-rating *,
.stars *,
span.fa-star,
i.fa-star,
span[class*="star"],
i[class*="star"] {
    font-family: 'Font Awesome 6 Pro', 'Font Awesome 6 Free', 'Font Awesome 5 Pro', 'Font Awesome 5 Free', 'FontAwesome' !important;
    font-weight: 400 !important;
}

/* Outros ícones comuns */
[class*="icon-"],
.glyphicon {
    font-family: inherit !important;
}

/* =================================================================== */
/* 2. Estilos Gerais e Corpo da Página                                  */
/* =================================================================== */
body {
    background-color: var(--cor-fundo-claro);
    color: var(--cor-texto-escuro);
}

a {
    color: var(--cor-primaria);
}

a:hover {
    color: var(--cor-secundaria);
}

.action-icon-btns a .ico-container i {
    color: var(--brand-primary);
}

/* =================================================================== */
/* 3. Cabeçalho Principal (Header) e Navegação — Redesign 2026        */
/* =================================================================== */

/* Sem background no #header — cada seção gerencia o seu */
#header {
    background: none !important;
}

/* ── Topbar: gradiente do tema ── */
header#header .topbar {
    background: linear-gradient(to right, var(--cor-secundaria) 0%, var(--cor-primaria) 100%) !important;
    padding: 6px 0 !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.14) !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

.topbar .container {
    align-items: center;
}

.topbar .btn {
    color: rgba(255, 255, 255, 0.72) !important;
    font-size: 0.78rem;
    padding: 2px 10px;
    line-height: 1.5;
    background: transparent !important;
    border: none !important;
}

.topbar .btn:hover {
    color: #fff !important;
    background: rgba(255, 255, 255, 0.08) !important;
}

/* Botão de idioma/moeda */
.topbar .prism-lang-btn {
    display: inline-flex !important;
    align-items: center;
    gap: 6px;
    background: rgba(255, 255, 255, 0.13) !important;
    border: 1px solid rgba(255, 255, 255, 0.28) !important;
    border-radius: 7px !important;
    color: rgba(255, 255, 255, 0.92) !important;
    font-size: 0.78rem;
    padding: 3px 12px !important;
    transition: background 0.15s;
}

.topbar .prism-lang-btn:hover {
    background: rgba(255, 255, 255, 0.22) !important;
    color: #fff !important;
}

.topbar .btn-return-to-admin {
    color: #fbbf24 !important;
    font-size: 0.78rem;
}

/* ── Logo bar: gradiente + cantos arredondados na base ── */
.header .navbar.navbar-light {
    background: linear-gradient(to right, var(--cor-secundaria) 0%, var(--cor-primaria) 100%) !important;
    border-radius: 0 !important;
    padding: 12px 0 !important;
    border-bottom: none !important;
    box-shadow: none !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

.header .navbar.navbar-light .logo-img {
    max-height: 42px;
}

.header .navbar.navbar-light a {
    color: rgba(255, 255, 255, 0.85) !important;
}

/* Campo de busca */
.header .navbar.navbar-light .search .btn {
    background: rgba(255, 255, 255, 0.14) !important;
    color: rgba(255, 255, 255, 0.9) !important;
    border: 1px solid rgba(255, 255, 255, 0.22) !important;
    border-right: none !important;
}

.header .navbar.navbar-light .search .btn:hover {
    background: rgba(255, 255, 255, 0.24) !important;
}

.header .navbar.navbar-light .search .form-control {
    background: rgba(255, 255, 255, 0.12) !important;
    border: 1px solid rgba(255, 255, 255, 0.22) !important;
    border-left: none !important;
    color: #fff !important;
    font-size: 0.875rem;
}

.header .navbar.navbar-light .search .form-control::placeholder {
    color: rgba(255, 255, 255, 0.48);
}

.header .navbar.navbar-light .search .form-control:focus {
    background: rgba(255, 255, 255, 0.2) !important;
    box-shadow: none !important;
    border-color: rgba(255, 255, 255, 0.42) !important;
    color: #fff !important;
}

/* Carrinho */
.header .navbar.navbar-light .cart-btn {
    color: rgba(255, 255, 255, 0.85) !important;
    font-size: 1.1rem;
    padding: 4px 8px;
    position: relative;
}

.header .navbar.navbar-light .cart-btn:hover {
    color: #fff !important;
}

#cartItemCount.badge-info {
    position: absolute;
    top: 0px;
    right: 0px;
    min-width: 17px;
    height: 17px;
    line-height: 17px;
    padding: 0 4px;
    font-size: 0.62rem;
    font-weight: 700;
    border-radius: 9px;
    background: #fff !important;
    color: var(--brand-secondary) !important;
    text-align: center;
}

/* Hamburger mobile */
.header .navbar.navbar-light .btn.nav-link {
    color: rgba(255, 255, 255, 0.85) !important;
}

/* ── Nav bar: cinza claro flutuante ── */
.header .main-navbar-wrapper {
    background-color: color-mix(in srgb, var(--brand-secondary) 7%, white) !important;
    padding: 5px 0 !important;
    border-radius: 0 0 15px 15px !important;
    box-shadow: 0 6px 28px color-mix(in srgb, var(--brand-secondary) 14%, transparent) !important;
}

.header .main-navbar-wrapper .navbar-nav>li>.nav-link,
.header .main-navbar-wrapper .navbar-nav>li>a {
    color: #111111 !important;
    font-family: 'Figtree', sans-serif !important;
    font-weight: 500;
    font-size: 1rem;
    padding: 11px 14px !important;
    transition: background 0.15s, color 0.15s;
}

.header .main-navbar-wrapper .navbar-nav>li>.nav-link:hover,
.header .main-navbar-wrapper .navbar-nav>li>a:hover {
    color: #fff !important;
    background: linear-gradient(to right, var(--cor-secundaria), var(--cor-primaria)) !important;
    border-radius: 6px;
    opacity: 1 !important;
}

.header .main-navbar-wrapper .navbar-nav>li>.nav-link:hover .dropdown-toggle::after,
.header .main-navbar-wrapper .navbar-nav>li>a:hover .dropdown-toggle::after {
    border-top-color: #fff;
}

.header .main-navbar-wrapper .navbar-nav>li.active>.nav-link {
    color: var(--cor-primaria) !important;
    font-weight: 600;
    opacity: 1 !important;
}

.header .main-navbar-wrapper .dropdown-toggle::after {
    border-top-color: #555;
}

/* Dropdown */
.header .main-navbar-wrapper .dropdown-menu {
    background-color: #fff !important;
    border: 1px solid color-mix(in srgb, var(--brand-primary) 19%, white) !important;
    border-radius: 10px !important;
    box-shadow: 0 8px 28px color-mix(in srgb, var(--brand-secondary) 12%, transparent) !important;
    padding: 6px !important;
    margin-top: 2px !important;
}

.header .main-navbar-wrapper .dropdown-item {
    border-radius: 7px !important;
    font-family: 'Figtree', sans-serif !important;
    font-size: 1rem !important;
    padding: 8px 14px !important;
    color: #1e293b !important;
}

.header .main-navbar-wrapper .dropdown-item:hover {
    background: color-mix(in srgb, var(--brand-secondary) 7%, white) !important;
    color: var(--cor-secundaria) !important;
    opacity: 1 !important;
}

/* Mobile / tablet (< 1200px) */
@media (max-width: 1199px) {
    .main-navbar-wrapper #mainNavbar {
        background: color-mix(in srgb, var(--brand-secondary) 7%, white);
        padding: 8px 12px 14px;
    }

    .main-navbar-wrapper .search .btn {
        border-color: color-mix(in srgb, var(--brand-primary) 19%, white);
    }

    .main-navbar-wrapper .search .form-control {
        border-color: color-mix(in srgb, var(--brand-primary) 19%, white);
    }

    /* Logo bar: arredonda base quando o menu está recolhido no botão */
    .header .navbar.navbar-light {
        border-radius: 0 0 15px 15px !important;
    }

    /* Dropdown mobile: arredonda apenas a base */
    .header .main-navbar-wrapper .dropdown-menu {
        border-radius: 0 0 10px 10px !important;
        margin-top: 0 !important;
    }

    /* Menu mobile: forças 1 coluna full-width */
    .main-navbar-wrapper #mainNavbar .navbar-nav {
        flex-direction: column !important;
        width: 100% !important;
    }

    .main-navbar-wrapper #mainNavbar .navbar-nav>li {
        width: 100% !important;
    }

    /* Itens do menu mobile: mais espaçamento + divisória fina de lado a lado */
    .main-navbar-wrapper #mainNavbar .navbar-nav>li>.nav-link,
    .main-navbar-wrapper #mainNavbar .navbar-nav>li>a {
        display: block !important;
        width: 100% !important;
        padding-top: 14px !important;
        padding-bottom: 14px !important;
        border-bottom: 1px solid color-mix(in srgb, var(--brand-primary) 10%, transparent) !important;
        border-radius: 0 !important;
        font-size: 1rem !important;
    }

    .main-navbar-wrapper #mainNavbar .navbar-nav>li:last-child>.nav-link,
    .main-navbar-wrapper #mainNavbar .navbar-nav>li:last-child>a {
        border-bottom: none !important;
    }
}

/* Desktop (≥ 1200px) */
@media (min-width: 1200px) {

    /* Alinha primeiro item do menu com a borda da logo */
    .header .main-navbar-wrapper #nav.navbar-nav>li:first-child>.nav-link {
        padding-left: 0 !important;
    }

    /* Alinha "Olá, X" com o ícone do carrinho */
    .header .main-navbar-wrapper .navbar-nav.ml-auto>li:last-child>.nav-link {
        padding-right: 8px !important;
    }

    /* Hover no dropdown: gradiente do tema + texto branco */
    .header .main-navbar-wrapper .dropdown-item:hover {
        background: linear-gradient(to right, var(--cor-secundaria), var(--cor-primaria)) !important;
        color: #fff !important;
        opacity: 1 !important;
    }
}

/* =================================================================== */
/* 3b. Homepage — Hero + Quick Access + Products                        */
/* =================================================================== */

/* Header fica acima do hero */
#header {
    position: relative;
    z-index: 50;
}

/* Evita scrollbar horizontal do hero full-bleed */
#main-body {
    overflow-x: clip;
}

/* Remove gap entre nav e hero na homepage */
#main-body:has(.prism-hero-outer),
#main-body:has(.prism-hero-outer)>.container,
#main-body:has(.prism-hero-outer)>.container>.row,
#main-body:has(.prism-hero-outer) .primary-content {
    padding-top: 0 !important;
    margin-top: 0 !important;
}

@keyframes prismHeroGradientShift {
    0% {
        background-position: 0% 50%;
    }

    50% {
        background-position: 100% 50%;
    }

    100% {
        background-position: 0% 50%;
    }
}

@keyframes prismHeroCodePulse {

    0%,
    100% {
        opacity: 0.32;
        transform: translate3d(0, 0, 0);
    }

    50% {
        opacity: 0.52;
        transform: translate3d(0, -8px, 0);
    }
}

@keyframes prismHeroGlowFloat {

    0%,
    100% {
        transform: translate3d(0, 0, 0) scale(1);
    }

    50% {
        transform: translate3d(14px, -10px, 0) scale(1.04);
    }
}

/* ── Hero: container full-bleed ── */
.prism-hero-outer {
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    margin-top: -15px;
    /* desktop: sobe 15px por trás do border-radius do menu */
    position: relative;
    z-index: 1;
}

/* ── Hero: fundo gradiente ── */
.prism-hero {
    background: linear-gradient(135deg, color-mix(in srgb, var(--brand-primary) 41%, black) 0%, var(--brand-secondary) 30%, var(--brand-primary) 70%, color-mix(in srgb, var(--brand-primary) 93%, white) 100%);
    background-size: 300% 300%;
    animation: prismHeroGradientShift 11s ease infinite;
    padding: 71px 0 72px;
    /* 56px normal + 15px compensação do pull-up */
    position: relative;
    overflow: hidden;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

/* Círculos decorativos */
.prism-hero::before,
.prism-hero::after {
    content: '';
    position: absolute;
    pointer-events: none;
}

.prism-hero::before {
    inset: 0;
    background:
        radial-gradient(ellipse at 18% 52%, rgba(30, 92, 230, 0.28) 0%, transparent 58%),
        radial-gradient(ellipse at 82% 18%, color-mix(in srgb, var(--brand-secondary) 42%, transparent) 0%, transparent 52%),
        linear-gradient(rgba(255, 255, 255, 0.06) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.055) 1px, transparent 1px);
    background-size: auto, auto, 34px 34px, 34px 34px;
    background-position: center, center, 0 0, 0 0;
    mask-image: linear-gradient(to right, rgba(0, 0, 0, 0.9), rgba(0, 0, 0, 0.3));
    -webkit-mask-image: linear-gradient(to right, rgba(0, 0, 0, 0.9), rgba(0, 0, 0, 0.3));
    opacity: 0.95;
}

.prism-hero::after {
    width: 620px;
    height: 620px;
    top: -220px;
    right: -80px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0.035) 38%, transparent 68%);
    animation: prismHeroGlowFloat 10s ease-in-out infinite;
}

.prism-hero-container {
    position: relative;
}

.prism-hero-container::before,
.prism-hero-container::after {
    content: '';
    position: absolute;
    pointer-events: none;
}

.prism-hero-container::before {
    width: 280px;
    height: 280px;
    bottom: -80px;
    left: 8%;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(126, 179, 255, 0.2) 0%, rgba(126, 179, 255, 0.06) 36%, transparent 70%);
    animation: prismHeroGlowFloat 12s ease-in-out infinite reverse;
}

.prism-hero-container::after {
    top: 54px;
    right: 7%;
    width: 220px;
    height: 160px;
    border-radius: 18px;
    border: 1px solid rgba(255, 255, 255, 0.12);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.02)),
        repeating-linear-gradient(180deg, rgba(255, 255, 255, 0.18) 0 2px, transparent 2px 18px),
        repeating-linear-gradient(90deg, rgba(126, 179, 255, 0.22) 0 22px, transparent 22px 48px);
    box-shadow: 0 24px 60px rgba(8, 18, 53, 0.18);
    opacity: 0.34;
    transform: rotate(-10deg);
    animation: prismHeroCodePulse 8s ease-in-out infinite;
}

/* ── Hero: layout interno ── */
.prism-hero-inner {
    display: flex;
    align-items: center;
    gap: 56px;
    position: relative;
    z-index: 1;
}

/* Lado esquerdo: texto */
.prism-hero-text {
    flex: 1;
    position: relative;
}

@media (min-width: 576px) {
    .prism-hero-text {
        padding-right: 3.5em;
    }
}

.prism-hero-badge {
    display: inline-block;
    background: rgba(255, 255, 255, 0.14);
    border: 1px solid rgba(255, 255, 255, 0.28);
    border-radius: 100px;
    padding: 4px 16px;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.88);
    margin-bottom: 22px;
}

.prism-hero-title {
    font-size: 2.6rem;
    font-weight: 700;
    line-height: 1.18;
    color: #fff;
    margin-bottom: 18px;
}

.prism-hero-title-typed {
    min-height: 2.36em;
}

.prism-hero-title-static {
    display: block;
}

.prism-hero-title-dynamic {
    display: none;
    visibility: hidden;
}

.prism-hero-title-typed.is-typing .prism-hero-title-static,
.prism-hero-title-typed.is-typed .prism-hero-title-static {
    display: none;
}

.prism-hero-title-typed.is-typing .prism-hero-title-dynamic,
.prism-hero-title-typed.is-typed .prism-hero-title-dynamic {
    display: block;
}

.prism-hero-title-prefix,
.prism-hero-title-brand,
.prism-hero-title-suffix {
    white-space: pre-wrap;
}

.prism-hero-title-brand {
    color: color-mix(in srgb, var(--brand-primary) 62%, white);
}

.prism-hero-title-cursor {
    display: inline-block;
    width: 0.58em;
    height: 0.95em;
    margin-left: 0.12em;
    border-radius: 2px;
    background: rgba(196, 216, 255, 0.96);
    box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.14), 0 0 16px rgba(126, 179, 255, 0.24);
    vertical-align: -0.08em;
    animation: prismHeroCursorBlink 0.9s steps(1, end) infinite;
}

.prism-hero-title em {
    font-style: normal;
    color: color-mix(in srgb, var(--brand-primary) 62%, white);
}

@keyframes prismHeroCursorBlink {

    0%,
    49% {
        opacity: 1;
    }

    50%,
    100% {
        opacity: 0;
    }
}

.prism-hero-subtitle {
    font-size: 1rem;
    color: rgba(255, 255, 255, 0.72);
    line-height: 1.7;
    margin-bottom: 32px;
    max-width: 400px;
}

.prism-hero-features {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.prism-hero-features span {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 0.88rem;
    color: rgba(255, 255, 255, 0.78);
}

.prism-hero-features span i {
    color: #4ade80;
    font-size: 0.9rem;
}

/* Lado direito: card */
.prism-hero-card-wrap {
    width: 390px;
    flex-shrink: 0;
    position: relative;
    z-index: 1;
}

.prism-hero-card {
    background: rgba(255, 255, 255, 0.97);
    border-radius: 16px;
    box-shadow: 0 24px 64px rgba(0, 0, 0, 0.28);
    overflow: hidden;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

.prism-hero-card-hdr {
    padding: 26px 28px 0;
}

.prism-hero-card-hdr h2 {
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--cor-secundaria);
    margin-bottom: 3px;
}

.prism-hero-card-hdr p {
    font-size: 0.82rem;
    color: #64748b;
    margin-bottom: 0;
}

.prism-hero-card-body {
    padding: 20px 28px;
}

.prism-hero-card-body .form-group {
    margin-bottom: 14px;
}

.prism-hero-card-body label {
    font-size: 0.78rem;
    font-weight: 600;
    color: #374151;
    margin-bottom: 5px;
    display: block;
}

.prism-hero-card-body .input-group-text {
    background: var(--brand-tint-1);
    border-color: color-mix(in srgb, var(--brand-primary) 19%, white);
    color: #9ca3af;
    font-size: 0.85rem;
}

.prism-hero-card-body .form-control {
    border-color: color-mix(in srgb, var(--brand-primary) 19%, white);
    font-size: 0.875rem;
    color: #111;
}

.prism-hero-card-body .form-control:focus {
    border-color: var(--cor-primaria);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand-primary) 10%, transparent);
}

.prism-hero-card-body .btn-default {
    border-color: color-mix(in srgb, var(--brand-primary) 19%, white);
    color: #9ca3af;
    font-size: 0.85rem;
    background: var(--brand-tint-1);
}

.prism-hero-form-meta {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 5px;
}

.prism-hero-form-meta label {
    margin-bottom: 0;
}

.prism-hero-form-meta a {
    font-size: 0.75rem;
    color: var(--cor-primaria);
    text-decoration: none;
}

.prism-card-submit-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 8px;
}

.btn-prism-login {
    background: linear-gradient(to right, var(--cor-secundaria), var(--cor-primaria));
    color: #fff !important;
    font-weight: 600;
    padding: 10px 28px;
    border-radius: 9px;
    border: none;
    font-size: 0.9rem;
    cursor: pointer;
    transition: all 0.2s;
}

.btn-prism-login:hover {
    opacity: 0.88;
    transform: translateY(-1px);
    box-shadow: 0 4px 14px color-mix(in srgb, var(--brand-primary) 30%, transparent);
}

.prism-remember-lbl {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 0.8rem;
    color: #6b7280;
    cursor: pointer;
    margin: 0;
    font-weight: 400;
}

.prism-remember-lbl .form-check-input {
    position: static;
    margin: 0;
}

.prism-hero-card-ftr {
    padding: 12px 28px;
    background: var(--brand-tint-1);
    border-top: 1px solid #eef1f8;
    font-size: 0.78rem;
    color: #9ca3af;
    text-align: center;
}

.prism-hero-card-ftr a {
    color: var(--cor-primaria);
    font-weight: 600;
    text-decoration: none;
}

/* Card de boas-vindas (logado) */
.prism-welcome-card-hdr {
    padding: 22px 24px 16px;
    display: flex;
    align-items: center;
    gap: 14px;
    border-bottom: 1px solid #eef1f8;
}

.prism-welcome-avatar {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--cor-secundaria), var(--cor-primaria));
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.prism-welcome-avatar i {
    color: #fff;
    font-size: 1.2rem;
}

.prism-welcome-card-hdr h2 {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--cor-secundaria);
    margin-bottom: 2px;
}

.prism-welcome-card-hdr p {
    font-size: 0.78rem;
    color: #64748b;
    margin: 0;
}

.prism-welcome-links {
    padding: 8px 0;
}

.prism-welcome-link {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 24px;
    color: #1e293b !important;
    text-decoration: none !important;
    font-size: 0.875rem;
    font-weight: 500;
    transition: background 0.15s;
    border-bottom: 1px solid #f1f5f9;
}

.prism-welcome-link:last-child {
    border-bottom: none;
}

.prism-welcome-link .prism-wl-icon {
    color: var(--cor-primaria);
    width: 18px;
    text-align: center;
    font-size: 1rem;
}

.prism-welcome-link span {
    flex: 1;
}

.prism-wl-arrow {
    color: #d1d5db;
    font-size: 0.7rem;
}

.prism-welcome-link:hover {
    background: var(--cor-fundo-claro, color-mix(in srgb, var(--brand-secondary) 7%, white));
}

.prism-welcome-link:hover .prism-wl-icon {
    color: var(--cor-secundaria);
}

@media (max-width: 1199px) {
    .prism-hero-container::after {
        right: 2%;
        width: 180px;
        height: 132px;
    }
}

@media (max-width: 991px) {
    .prism-hero::before {
        mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.92), rgba(0, 0, 0, 0.48));
        -webkit-mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.92), rgba(0, 0, 0, 0.48));
    }

    .prism-hero-container::after {
        top: auto;
        bottom: 24px;
        right: -18px;
        opacity: 0.26;
    }
}

@media (max-width: 767px) {
    .prism-hero {
        background-size: 240% 240%;
    }

    .prism-hero::before {
        background-size: auto, auto, 26px 26px, 26px 26px;
        opacity: 0.82;
    }

    .prism-hero::after,
    .prism-hero-container::after,
    .prism-hero-title-cursor {
        display: none;
    }

    .prism-hero-container::before {
        width: 220px;
        height: 220px;
        left: -30px;
        bottom: -48px;
        opacity: 0.75;
    }
}

/* ── Seções: Quick Access + Products ── */
/* Seções homepage: full-bleed */
/* ===================================================================
   BUSCA DE DOMÍNIO NA HOME
   -------------------------------------------------------------------
   Seção do `includes/domain-search.tpl`, que só entra na página quando
   a loja tem registro ou transferência de domínio ligados. Até
   15/09/2026 ela vinha crua, com o markup do Twenty-One, porque a
   instalação em que o tema nasceu não vendia domínio.
   =================================================================== */

.prism-ds-section {
    background: #fff;
    padding: 56px 0 48px;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
}

.prism-ds-form {
    max-width: 760px;
    margin: 28px auto 0;
}

/* A barra: campo e botões em uma linha só, dentro da mesma moldura. */
.prism-ds-bar {
    display: flex;
    align-items: stretch;
    gap: 10px;
    background: #fff;
    border: 1px solid var(--brand-tint-5);
    border-radius: var(--radius-14);
    padding: 8px;
    box-shadow: var(--shadow-lg);
}

.prism-ds-field {
    position: relative;
    flex: 1 1 auto;
    min-width: 0;
}

.prism-ds-field-icon {
    position: absolute;
    left: 16px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--brand-tint-5);
    font-size: 0.95rem;
    pointer-events: none;
}

.prism-ds-input {
    width: 100%;
    height: 48px;
    border: none;
    background: transparent;
    padding: 0 14px 0 42px;
    font-size: 0.95rem;
    color: var(--text);
}

.prism-ds-input::placeholder {
    color: var(--text-faint);
}

.prism-ds-input:focus {
    outline: none;
}

/* O anel de foco fica na moldura inteira, não no input, para o campo e
   os botões continuarem lendo como uma peça só. */
.prism-ds-bar:focus-within {
    border-color: var(--brand-primary);
    box-shadow: var(--shadow-focus);
}

.prism-ds-actions {
    display: flex;
    gap: 8px;
    flex: 0 0 auto;
}

.prism-ds-btn {
    height: 48px;
    padding: 0 26px;
    border-radius: var(--radius-10);
    border: 1px solid transparent;
    font-family: var(--font-heading);
    font-weight: 600;
    font-size: 0.85rem;
    line-height: 1;
    cursor: pointer;
    transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
    white-space: nowrap;
}

.prism-ds-btn--solid {
    background: var(--brand-gradient);
    color: var(--text-on-brand);
}

.prism-ds-btn--solid:hover {
    transform: translateY(-1px);
    box-shadow: var(--shadow-brand);
}

.prism-ds-btn--ghost {
    background: #fff;
    color: var(--brand-primary);
    border-color: var(--brand-tint-5);
}

.prism-ds-btn--ghost:hover {
    background: var(--brand-tint-2);
    border-color: var(--brand-primary);
}

/* Captcha. O markup vem do core e é um grid do Bootstrap; aqui ele só
   precisa parar de esticar e ficar centralizado embaixo da barra. */
.prism-ds-captcha {
    margin-top: 18px;
}

.prism-ds-captcha p {
    color: var(--text-muted);
    font-size: 0.85rem;
    margin-bottom: 10px;
    text-align: center;
}

.prism-ds-captcha .row {
    align-items: center;
    justify-content: center;
    margin: 0;
}

.prism-ds-captcha #inputCaptcha {
    max-width: 130px;
    height: 40px;
    border: 1px solid var(--border);
    border-radius: var(--radius-8);
    padding: 0 12px;
}

.prism-ds-captcha img {
    border-radius: var(--radius-6);
}

.prism-ds-tlds {
    display: flex;
    justify-content: center;
    gap: 28px;
    list-style: none;
    padding: 0;
    margin: 22px 0 0;
    color: var(--text-muted);
    font-size: 0.85rem;
}

.prism-ds-tlds img {
    height: 18px;
    margin-right: 8px;
    vertical-align: middle;
}

.prism-ds-pricing {
    display: block;
    text-align: center;
    margin-top: 18px;
    color: var(--brand-primary);
    font-size: 0.85rem;
    text-decoration: none;
}

.prism-ds-pricing:hover {
    text-decoration: underline;
}

@media (max-width: 640px) {
    .prism-ds-bar {
        flex-direction: column;
        gap: 8px;
    }

    .prism-ds-actions {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .prism-ds-btn {
        padding: 0 12px;
        width: 100%;
    }
}

/* Captcha dentro do card de login do hero. O markup vem do core: um <p> de
   duas linhas e duas colunas do Bootstrap. Sem isto o texto ocupa mais espaço
   que o próprio formulário. */
.prism-hero-card-body #default-captcha-domainchecker p,
.prism-hero-card-body .recaptcha-container + p {
    font-size: 0.78rem;
    line-height: 1.45;
    color: var(--text-muted);
    text-align: center;
    margin-bottom: 10px;
}

.prism-hero-card-body #default-captcha-domainchecker {
    padding-bottom: 8px !important;
}

.prism-hero-card-body #default-captcha-domainchecker .row,
.prism-hero-card-body #default-captcha-domainchecker > .row {
    align-items: center;
}

.prism-hero-card-body #inputCaptcha {
    height: 40px;
    border: 1px solid var(--border);
    border-radius: var(--radius-8);
    padding: 0 12px;
}

.prism-hero-card-body .captchaimage img {
    border-radius: var(--radius-6);
}

.prism-hp-section {
    background: color-mix(in srgb, var(--brand-secondary) 6%, white);
    padding: 56px 0;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
}

.prism-hp-products {
    background: #fff;
    padding: 56px 0;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
}

.prism-hp-title {
    font-size: 1.55rem;
    font-weight: 700;
    color: var(--cor-secundaria);
    text-align: center;
    margin-bottom: 6px;
}

.prism-hp-sub {
    text-align: center;
    color: #64748b;
    font-size: 0.88rem;
    margin-bottom: 40px;
}

/* Icon cards */
.prism-icon-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    background: #fff;
    border-radius: 14px;
    border: 1px solid var(--brand-tint-4);
    padding: 28px 16px 22px;
    text-decoration: none !important;
    color: #111827 !important;
    transition: all 0.22s;
    height: 100%;
    box-shadow: 0 2px 10px color-mix(in srgb, var(--brand-secondary) 6%, transparent);
}

.prism-icon-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 14px 36px color-mix(in srgb, var(--brand-secondary) 16%, transparent);
    border-color: color-mix(in srgb, var(--brand-primary) 35%, transparent);
}

.prism-icon-sq {
    width: 62px;
    height: 62px;
    border-radius: 15px;
    background: linear-gradient(135deg, var(--cor-secundaria), var(--cor-primaria));
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 16px;
    flex-shrink: 0;
    box-shadow: 0 6px 18px color-mix(in srgb, var(--brand-primary) 25%, transparent);
}

.prism-icon-sq i {
    font-size: 1.45rem;
    color: #fff;
}

.prism-icon-lbl {
    font-size: 0.875rem;
    font-weight: 600;
    text-align: center;
    line-height: 1.3;
}

/* Product cards */
.prism-prod-card {
    background: #fff;
    border: 1px solid var(--brand-tint-4);
    border-radius: 14px;
    overflow: hidden;
    height: 100%;
    transition: all 0.22s;
    box-shadow: 0 2px 10px color-mix(in srgb, var(--brand-secondary) 6%, transparent);
    display: flex;
    flex-direction: column;
}

.prism-prod-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 14px 36px color-mix(in srgb, var(--brand-secondary) 16%, transparent);
}

.prism-prod-accent {
    height: 4px;
    background: linear-gradient(to right, var(--cor-secundaria), var(--cor-primaria));
    flex-shrink: 0;
}

.prism-prod-body {
    padding: 26px 22px 22px;
    display: flex;
    flex-direction: column;
    flex: 1;
}

.prism-prod-name {
    font-size: 1rem;
    font-weight: 700;
    color: var(--cor-secundaria);
    text-align: center;
    margin-bottom: 10px;
    line-height: 1.3;
}

.prism-prod-desc {
    font-size: 0.85rem;
    color: #64748b;
    text-align: center;
    line-height: 1.65;
    flex: 1;
    margin-bottom: 20px;
}

.btn-prism-prod {
    display: block;
    width: 100%;
    padding: 10px 16px;
    background: linear-gradient(to right, var(--cor-secundaria), var(--cor-primaria));
    color: #fff !important;
    border: none;
    border-radius: 9px;
    font-weight: 600;
    font-size: 0.78rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    text-align: center;
    text-decoration: none !important;
    transition: all 0.2s;
    cursor: pointer;
}

.btn-prism-prod:hover {
    opacity: 0.88;
    box-shadow: 0 4px 14px color-mix(in srgb, var(--brand-primary) 30%, transparent);
}

/* ── Responsivo ── */

/* Desktop ≥ 1200px: pull-under funciona, sem border-radius no hero */
@media (min-width: 1200px) {
    .prism-hero {
        border-radius: 0;
    }
}

/* Tablet / mobile < 1200px: sem pull-under, hero flutua com 20px de cada lado do viewport */
@media (max-width: 1199px) {
    .prism-hero-outer {
        margin-top: 12px;
        /* calc(20px + 50% - 50vw) = exatamente 20px do viewport em qualquer largura.
           50% = metade do container pai; 50vw = metade do viewport.
           A diferença é o offset do container em relação ao viewport,
           somado a 20px dá a margem do herói em relação à borda da tela. */
        margin-left: calc(20px + 50% - 50vw) !important;
        margin-right: calc(20px + 50% - 50vw) !important;
    }

    .prism-hero {
        border-radius: 15px;
    }
}

/* ── Hero: container próprio (sem herdar max-width fixo do Bootstrap) ──
   Substitui <div class="container"> dentro do hero para evitar o snap do Bootstrap
   (540px em ≥576px, 720px em ≥768px) que travava o conteúdo mesmo com !important. */
.prism-hero-container {
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding-left: 15px;
    padding-right: 15px;
}

/* Desktop ≥ 1200px: mesma largura máxima do container Bootstrap padrão */
@media (min-width: 1200px) {
    .prism-hero-container {
        max-width: 1140px;
    }
}

/* 992–1199px: confirmado "ótimo" pelo usuário */
@media (min-width: 992px) and (max-width: 1199px) {
    .prism-hero-container {
        max-width: 960px;
        padding-left: 24px;
        padding-right: 24px;
    }
}

/* Abaixo de 992px: largura total com padding percentual — sem max-width fixo */
@media (max-width: 991px) {
    .prism-hero-container {
        padding-left: 10%;
        padding-right: 10%;
    }
}

@media (max-width: 991px) {
    .prism-hero-inner {
        flex-direction: column;
        align-items: stretch;
    }

    .prism-hero-card-wrap {
        width: 100%;
        max-width: 440px;
        margin: 0 auto;
    }

    .prism-hero-title {
        font-size: 2.4rem;
    }

    /* aumentado +6px (~0.4rem) vs anterior */
    .prism-hero-subtitle {
        max-width: none;
    }

    /* remove o max-width: 400px no mobile */
    .prism-hero {
        padding: 48px 0 52px;
    }
}

@media (max-width: 575px) {
    .prism-hero-title {
        font-size: 2rem;
    }

    .prism-hero-subtitle {
        font-size: 0.9rem;
    }
}

/* =================================================================== // 4. Botões/* =================================================================== */
/* Botão Primário (Comprar, Enviar, etc.) */
.btn-primary {
    background-color: var(--cor-primaria);
    border-color: var(--cor-primaria);
    color: var(--cor-texto-claro);
}

.btn-primary:hover {
    background-color: var(--cor-secundaria);
    border-color: var(--cor-secundaria);
    color: var(--cor-texto-claro);
}

/* Botão Secundário */
.btn-info,
.btn-default,
.btn-success {
    background-color: var(--cor-secundaria);
    border-color: var(--cor-secundaria);
    color: var(--cor-texto-claro);
}

.btn-info:hover,
.btn-default:hover,
.btn-success:hover {
    background-color: var(--cor-primaria);
    border-color: var(--cor-primaria);
    color: var(--cor-texto-claro);
}

/* =================================================================== // 5. Painéis, Tabelas e Alertas/* =================================================================== */
/* Cabeçalho dos painéis com gradiente suave */
.card .card-header,
.panel-heading {
    background-image: linear-gradient(to right, color-mix(in srgb, var(--brand-primary) 77%, var(--brand-secondary)), var(--brand-primary));
    color: var(--cor-texto-claro);
}

.card .card-header h3,
.panel-title {
    color: var(--cor-texto-claro);
}

/* Tabelas */
.table-list thead,
.table thead>tr>th {
    background-color: var(--cor-fundo-claro);
    color: var(--cor-texto-escuro);
}

/* Alerta de Informação (azul) */
.alert-info {
    color: #ffffff;
    background-color: var(--cor-primaria);
    border-color: var(--cor-primaria);
}

/* =================================================================== */
/* 6. Barra Lateral (Sidebar)                                           */
/* =================================================================== */

/* ── Panel / card container (Bootstrap 3: .panel | Bootstrap 4: .card) ── */
.sidebar .panel,
.sidebar .card {
    border-radius: 14px !important;
    border: 1px solid var(--brand-tint-4) !important;
    box-shadow: 0 2px 10px color-mix(in srgb, var(--brand-secondary) 6%, transparent) !important;
    overflow: hidden;
    margin-bottom: 16px;
}

/* ── Header: gradiente do tema ── */
.sidebar .panel-heading,
.sidebar .card-header {
    background: linear-gradient(135deg, var(--cor-secundaria) 0%, var(--cor-primaria) 100%) !important;
    background-image: linear-gradient(135deg, var(--cor-secundaria) 0%, var(--cor-primaria) 100%) !important;
    padding: 14px 18px !important;
    border: none !important;
    border-radius: 0 !important;
}

.sidebar .panel-title,
.sidebar .panel-title>a,
.sidebar .card-header h5,
.sidebar .card-header h5>a,
.sidebar .card-header .card-title,
.sidebar .card-header .card-title>a {
    color: #fff !important;
    font-size: 0.9rem !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    margin: 0 !important;
}

/* Ícone chevron do collapse */
.sidebar .panel-title .fa-chevron-up,
.sidebar .panel-title .fa-chevron-down,
.sidebar .card-header .fa-chevron-up,
.sidebar .card-header .fa-chevron-down {
    color: rgba(255, 255, 255, 0.6) !important;
}

/* ── Lista de itens ── */
.sidebar .list-group {
    border-radius: 0 !important;
    margin-bottom: 0 !important;
}

.sidebar .list-group-item {
    border-top: 1px solid color-mix(in srgb, var(--brand-secondary) 6%, white) !important;
    border-left: 3px solid transparent !important;
    border-right: none !important;
    border-bottom: none !important;
    padding: 11px 18px !important;
    font-size: 0.875rem;
    color: #374151 !important;
    background: #fff !important;
    transition: background 0.15s, color 0.15s, border-left-color 0.15s;
}

.sidebar .list-group-item:first-child {
    border-top: none !important;
}

.sidebar .list-group-item:hover {
    background: color-mix(in srgb, var(--brand-primary) 4%, white) !important;
    color: var(--cor-primaria) !important;
    border-left-color: var(--cor-primaria) !important;
}

/* Item ativo */
.sidebar .list-group-item.active {
    background: color-mix(in srgb, var(--brand-primary) 7%, white) !important;
    border-left-color: var(--cor-primaria) !important;
    border-color: var(--brand-tint-4) !important;
    color: var(--cor-primaria) !important;
    font-weight: 600;
}

.sidebar .list-group-item.active .fas {
    color: var(--cor-primaria) !important;
}

/* Links dentro dos itens */
.sidebar .list-group-item a {
    color: inherit !important;
    text-decoration: none !important;
    display: block;
}

.sidebar .list-group-item:hover a,
.sidebar .list-group-item.active a {
    color: var(--cor-primaria) !important;
}

/* =================================================================== */
/* 7. Rodapé (Footer)                                                   */
/* =================================================================== */

footer#footer.prism-footer {
    background: none;
    border-top: none;
    padding: 0 !important;
}

/* --- Corpo principal do footer --- */
.prism-footer-main {
    background-color: var(--cor-secundaria);
    padding: 60px 0 40px;
}

.prism-footer-logo-link {
    display: inline-block;
    margin-bottom: 14px;
}

.prism-footer-logo {
    max-height: 38px;
    width: auto;
    display: block;
    filter: brightness(0) invert(1);
}

.prism-footer-tagline {
    color: rgba(255, 255, 255, 0.6) !important;
    font-size: 0.875rem;
    line-height: 1.65;
    margin-bottom: 20px;
}

/* Social accounts dentro do footer */
.prism-footer-social .list-inline {
    margin: 0;
}

.prism-footer-social .list-inline-item a,
.prism-footer-social a {
    color: rgba(255, 255, 255, 0.5) !important;
    font-size: 1rem;
    text-decoration: none !important;
    transition: color 0.2s;
}

.prism-footer-social .list-inline-item a:hover,
.prism-footer-social a:hover {
    color: #fff !important;
}

/* --- Colunas de links --- */
.prism-footer-heading {
    color: #fff !important;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    margin-bottom: 18px;
}

.prism-footer-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.prism-footer-list li {
    margin-bottom: 10px;
}

.prism-footer-list li a {
    color: rgba(255, 255, 255, 0.58) !important;
    font-size: 0.875rem;
    text-decoration: none !important;
    transition: color 0.2s;
}

.prism-footer-list li a:hover {
    color: #fff !important;
}

/* --- Newsletter --- */
.prism-footer-newsletter-text {
    color: rgba(255, 255, 255, 0.58) !important;
    font-size: 0.875rem;
    margin-bottom: 16px;
}

.prism-newsletter-input-group {
    display: flex;
    width: 100%;
    border-radius: 8px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.2);
}

.prism-newsletter-input {
    flex: 1;
    background: rgba(255, 255, 255, 0.08);
    border: none;
    outline: none;
    padding: 10px 14px;
    color: #fff;
    font-size: 0.875rem;
}

.prism-newsletter-input::placeholder {
    color: rgba(255, 255, 255, 0.38);
}

.prism-newsletter-btn {
    background: var(--cor-primaria);
    border: none;
    padding: 10px 16px;
    color: #fff;
    cursor: pointer;
    transition: background 0.2s;
    flex-shrink: 0;
}

.prism-newsletter-btn:hover {
    background: color-mix(in srgb, var(--brand-primary) 69%, var(--brand-secondary));
}

/* --- Barra inferior --- */
.prism-footer-bottom {
    background-color: color-mix(in srgb, var(--brand-primary) 41%, black);
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    padding: 14px 0;
}

.prism-footer-copyright {
    color: rgba(255, 255, 255, 0.72) !important;
    font-size: 0.8rem;
    margin: 0 !important;
}

.prism-footer-copyright a {
    color: rgba(255, 255, 255, 0.85) !important;
    text-decoration: none !important;
}

.prism-footer-lang-btn {
    color: rgba(255, 255, 255, 0.52) !important;
    font-size: 0.8rem;
    padding: 4px 10px;
    background: transparent !important;
    border: 1px solid rgba(255, 255, 255, 0.18) !important;
    border-radius: 6px;
    line-height: 1.5;
}

.prism-footer-lang-btn:hover {
    color: #fff !important;
    border-color: rgba(255, 255, 255, 0.4) !important;
}

/* Oculta a barra #footer-bar gerada pelo WHMCS */
#footer-bar {
    display: none !important;
}

/* CSS específico do carrinho movido para prism_cart/custom.css */

/* =================================================================== */
/* 8. Trocar Conta (user-switch-account.tpl)                            */
/* =================================================================== */

.prism-switch-card {
    background: #fff;
    border-radius: 14px;
    border: 1px solid var(--brand-tint-4);
    box-shadow: 0 2px 10px color-mix(in srgb, var(--brand-secondary) 6%, transparent);
    overflow: hidden;
}

.prism-switch-card-hdr {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 18px 24px;
    border-bottom: 1px solid color-mix(in srgb, var(--brand-secondary) 6%, white);
    background: linear-gradient(135deg, var(--cor-secundaria) 0%, var(--cor-primaria) 100%);
}

.prism-switch-card-hdr-icon {
    width: 38px;
    height: 38px;
    background: rgba(255, 255, 255, 0.15);
    border: 1px solid rgba(255, 255, 255, 0.25);
    border-radius: 9px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 0.9rem;
    flex-shrink: 0;
}

.prism-switch-card-hdr h2 {
    font-size: 1rem;
    font-weight: 600;
    color: #fff;
    margin: 0;
    line-height: 1.3;
}

.prism-switch-card-body {
    padding: 22px 24px;
}

/* ── Lista de contas ── */
.prism-account-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.prism-account-item {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 13px 16px;
    border: 1px solid var(--brand-tint-4);
    border-radius: 10px;
    text-decoration: none !important;
    color: #1e293b !important;
    background: #fff;
    transition: border-color 0.18s, background 0.18s, box-shadow 0.18s, transform 0.18s;
    cursor: pointer;
}

.prism-account-item:hover {
    border-color: color-mix(in srgb, var(--brand-primary) 35%, transparent);
    background: color-mix(in srgb, var(--brand-primary) 4%, white);
    transform: translateX(3px);
    box-shadow: 0 4px 14px color-mix(in srgb, var(--brand-secondary) 9%, transparent);
}

.prism-account-item--closed {
    opacity: 0.52;
    pointer-events: none;
}

/* Avatar */
.prism-acct-avatar {
    width: 42px;
    height: 42px;
    border-radius: 10px;
    background: linear-gradient(135deg, var(--cor-secundaria), var(--cor-primaria));
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 1.05rem;
    font-weight: 700;
    flex-shrink: 0;
    box-shadow: 0 4px 12px color-mix(in srgb, var(--brand-primary) 22%, transparent);
    text-transform: uppercase;
}

.prism-acct-avatar--closed {
    background: #94a3b8;
    box-shadow: none;
}

/* Info */
.prism-acct-info {
    flex: 1;
    min-width: 0;
}

.prism-acct-name {
    display: block;
    font-size: 0.9rem;
    font-weight: 600;
    color: #1e293b;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Badges */
.prism-acct-badges {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
}

.prism-badge-owner {
    background: linear-gradient(135deg, #0891b2 0%, #06b6d4 100%);
    color: #fff;
    font-size: 0.67rem;
    font-weight: 700;
    padding: 3px 10px;
    border-radius: 100px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    white-space: nowrap;
}

.prism-badge-closed {
    background: #e5e7eb;
    color: #6b7280;
    font-size: 0.67rem;
    font-weight: 600;
    padding: 3px 10px;
    border-radius: 100px;
    white-space: nowrap;
}

/* Seta */
.prism-acct-arrow {
    color: #cbd5e1;
    font-size: 0.72rem;
    flex-shrink: 0;
    transition: color 0.18s, transform 0.18s;
}

.prism-account-item:hover .prism-acct-arrow {
    color: var(--cor-primaria);
    transform: translateX(2px);
}

/* ── Estado vazio ── */
.prism-switch-empty {
    text-align: center;
    padding: 36px 20px;
}

.prism-switch-empty-icon {
    width: 64px;
    height: 64px;
    background: var(--cor-fundo-claro);
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 16px;
}

.prism-switch-empty-icon i {
    font-size: 1.6rem;
    color: #9ca3af;
}

.prism-switch-empty h3 {
    font-size: 1rem;
    font-weight: 600;
    color: var(--cor-secundaria);
    margin-bottom: 6px;
}

.prism-switch-empty p {
    font-size: 0.84rem;
    color: #64748b;
    margin-bottom: 22px;
}

/* ── Switch Account: sidebar abaixo no mobile ── */
@media (max-width: 991px) {
    .page-switch-account #main-body .col-lg-4.col-xl-3 {
        order: 2;
    }

    .page-switch-account #main-body .primary-content {
        order: 1;
    }
}

/* ── Seção "Powered by" movida para fora do main-body ── */
.prism-powered-section {
    text-align: center;
    padding: 36px 0 20px;
    background: color-mix(in srgb, var(--brand-secondary) 6%, white);
}

.prism-powered-section p {
    margin: 0;
    font-size: 0.8rem;
    color: #9ca3af;
}

.prism-powered-section a {
    color: var(--cor-primaria, var(--brand-primary));
    font-weight: 600;
    text-decoration: none;
}

@media (min-width: 992px) {
    .page-switch-account .prism-powered-section {
        padding-top: 110px;
    }
}

/* --- Estilização dos Ícones da homepage --- */

/* Remove as linhas coloridas de acentuação */
.action-icon-btns a[class*="card-accent-"] {
    border-top: none;
}

/* Estilização principal do card de ícone */
.action-icon-btns .prism-icon-card {
    display: block;
    padding: 1.5rem 1rem;
    /* Espaçamento interno */
    border: 1px solid #e9ecef;
    /* Borda sutil */
    border-radius: 8px;
    /* Cantos arredondados, como no seu site */
    text-align: center;
    text-decoration: none;
    background-color: #ffffff;
    transition: all 0.3s ease;
    margin-bottom: 1.5rem;
    height: calc(100% - 1.5rem);
    /* Força todos os cards a terem a mesma altura */
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.04);
    /* Sombra muito leve */
}

/* Efeito ao passar o mouse (hover) */
.action-icon-btns .prism-icon-card:hover {
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.08);
    /* Sombra mais forte */
    transform: translateY(-5px);
    /* Efeito de "levantar" */
    border-color: #0d6efd;
    /* Cor azul primária (similar ao seu site) */
}

/* Estilização do ícone (tag <i>) */
.action-icon-btns .prism-icon-card i {
    font-size: 2.5rem;
    /* Tamanho do ícone */
    color: #0d6efd;
    /* Cor azul primária */
    margin-bottom: 1rem;
    display: block;
}

/* Estilização do texto (o link em si) */
.action-icon-btns .prism-icon-card {
    font-size: 0.95rem;
    font-weight: 600;
    color: #212529;
    /* Cor do texto (preto suave) */
}

/*
================================================================
   9. Estilos da Homepage (Ícones e Produtos) - Adicionado
================================================================
*/

/* --- Estilização dos Ícones da homepage --- */
/* Remove as linhas coloridas de acentuação (se ainda existirem) */
.action-icon-btns a[class*="card-accent-"] {
    border-top: none;
}

/* Estilização principal do card de ícone */
.action-icon-btns .prism-icon-card {
    display: block;
    padding: 1.5rem 1rem;
    border: 1px solid #e9ecef;
    border-radius: 8px;
    text-align: center;
    text-decoration: none;
    background-color: #ffffff;
    transition: all 0.3s ease;
    margin-bottom: 1.5rem;
    height: calc(100% - 1.5rem);
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.04);
}

/* Efeito ao passar o mouse (hover) */
.action-icon-btns .prism-icon-card:hover {
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.08);
    transform: translateY(-5px);
    border-color: var(--cor-primaria);
    /* <-- USANDO SUA VARIÁVEL */
}

/* Estilização do ícone (tag <i>) */
.action-icon-btns .prism-icon-card i {
    font-size: 2.5rem;
    color: var(--cor-primaria);
    /* <-- USANDO SUA VARIÁVEL */
    margin-bottom: 1rem;
    display: block;
}

/* Estilização do texto (o link em si) */
.action-icon-btns .prism-icon-card {
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--cor-texto-escuro);
    /* <-- USANDO SUA VARIÁVEL */
}

/* --- Estilização dos Cards de produto da homepage --- */

.prism-product-card {
    border: 1px solid #e9ecef;
    border-radius: 8px;
    background-color: #ffffff;
    transition: all 0.3s ease;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.04);
    text-align: center;
}

.prism-product-card:hover {
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.08);
    transform: translateY(-5px);
    border-color: var(--cor-primaria);
    /* <-- USANDO SUA VARIÁVEL */
}

.prism-product-card .card-title {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--cor-texto-escuro);
    /* <-- USANDO SUA VARIÁVEL */
}

.prism-product-card p {
    color: var(--cor-texto-cinza);
    /* <-- USANDO SUA VARIÁVEL */
    font-size: 0.95rem;
    min-height: 60px;
}

/* O botão já deve pegar o estilo .btn-primary, mas garantimos aqui */
.prism-product-card .btn-primary {
    font-weight: 600;
    text-transform: uppercase;
    font-size: 0.85rem;
    padding: 0.75rem 1rem;
    border-radius: 4px;
    letter-spacing: 0.5px;
}

/*
================================================================
   12. Ajuste Fino da Lista de Features (Store)
================================================================
*/

/* Aplica-se ao <div> que acabamos de criar.
   Vamos reduzir o line-height para "juntar" as linhas.
*/
div.prism-features-list {
    line-height: 1;
    /* O padrão do parágrafo é ~1.7 ou 1.8. Ajuste para 1.4 se quiser mais junto */
}

/* ---------------------------------- */
/* AJUSTES DO CHECKOUT (ORDER FORM)   */
/* ---------------------------------- */


/* ===================================================================
   Correção Agressiva do Header Mobile (Logo menor e alinhamento)
   =================================================================== */
@media (max-width: 767px) {

    /* 1. Força o container a não quebrar linha */
    header .navbar-light .container {
        display: flex !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        justify-content: space-between !important;
    }

    /* 2. Força brutalmente o tamanho da logo */
    /* Se 30px ainda for grande, tente 25px aqui */
    header .navbar-brand .logo-img {
        height: 45px !important;
        /* Altura fixa forçada */
        max-height: 45px !important;
        width: auto !important;
        /* Mantém a proporção */
        max-width: 165px !important;
    }

    /* 3. Remove espaços extras ao redor do link da logo */
    header .navbar-brand {
        margin-right: 5px !important;
        /* Aproxima os botões da logo */
        padding: 0 !important;
        /* Remove enchimento padrão */
    }

    /* 4. Garante alinhamento dos botões (Carrinho + Menu) */
    header .navbar-nav.toolbar {
        flex-direction: row !important;
        margin-left: auto !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        /* Centraliza verticalmente com a logo */
    }

    /* 5. Ajuste de espaçamento entre os ícones */
    header .navbar-nav.toolbar .nav-item {
        margin-left: 8px !important;
    }

    /* Remove texto 'Logado como' para limpar visual */
    .input-group-text {
        display: none !important;
    }
}


/* ===================================================================
   BREADCRUMB E TÍTULO CHECKOUT
   =================================================================== */

/* Breadcrumb oculto */
.master-breadcrumb {
    display: none !important;
}


/* ===================================================================
   CLIENTAREAPRODUCTS — Lista de Serviços
   O CSS desta página passou a viver dentro do próprio clientareaproducts.tpl
   (19/08/2026), para não haver duas fontes brigando pelo mesmo seletor.
   =================================================================== */

/* ===================================================================
   CLIENTAREAPRODUCTDETAILS — Detalhe do Produto
   =================================================================== */

/* ── Layout ── */
.prism-pd-layout {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.prism-pd-columns {
    display: flex;
    gap: 24px;
    align-items: flex-start;
}

.prism-pd-main {
    flex: 1;
    min-width: 0;
}

.prism-pd-aside {
    width: 300px;
    flex-shrink: 0;
}

/* Sem tabs: aside ocupa largura confortável */
.prism-pd-layout--solo .prism-pd-aside {
    width: 100%;
    max-width: 440px;
}

@media (max-width: 1199px) {
    .prism-pd-columns {
        flex-direction: column;
        align-items: stretch;
    }

    .prism-pd-aside {
        width: 100%;
        max-width: 100%;
    }

    .prism-pd-main {
        width: 100%;
    }
}

/* ── Card base ── */
.prism-pd-card {
    background: #fff;
    border: 1px solid var(--prism-border);
    border-radius: var(--prism-radius-xl);
    overflow: hidden;
    box-shadow: var(--prism-shadow-sm);
    margin-bottom: 20px;
}

.prism-pd-card-hdr {
    background: var(--gradiente);
    padding: 13px 22px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.prism-pd-card-hdr i {
    color: rgba(255, 255, 255, 0.8);
    font-size: 0.9rem;
}

.prism-pd-card-hdr h3 {
    color: #fff;
    font-size: 0.88rem;
    font-weight: 700;
    margin: 0;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.prism-pd-card-body {
    padding: 22px;
}

/* ── Hero card — layout horizontal ── */
.prism-pd-hero {
    background: var(--gradiente-diagonal);
    border-radius: var(--prism-radius-xl);
    padding: 18px 20px;
    box-shadow: 0 4px 24px color-mix(in srgb, var(--brand-secondary) 22%, transparent);
    margin-bottom: 16px;
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    gap: 14px;
}

.prism-pd-hero::before {
    content: '';
    position: absolute;
    top: -30px;
    right: -30px;
    width: 100px;
    height: 100px;
    background: rgba(255, 255, 255, 0.06);
    border-radius: 50%;
    pointer-events: none;
}

.prism-pd-hero-icon {
    width: 52px;
    height: 52px;
    background: rgba(255, 255, 255, 0.15);
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.prism-pd-hero-icon i {
    font-size: 1.4rem;
    color: #fff;
}

.prism-pd-hero-content {
    flex: 1;
    min-width: 0;
}

.prism-pd-hero-name {
    color: #fff;
    font-size: 0.95rem;
    font-weight: 700;
    margin-bottom: 2px;
    line-height: 1.3;
}

.prism-pd-hero-group {
    color: rgba(255, 255, 255, 0.65);
    font-size: 0.76rem;
}

.prism-pd-hero-status {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    margin-left: auto;
}

/* ── Status pills ── */
.prism-pd-status-pill {
    display: inline-flex;
    align-items: center;
    padding: 5px 14px;
    border-radius: var(--prism-radius-pill);
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.prism-pd-status-pill.active {
    background: #22c55e;
    color: #fff;
}

.prism-pd-status-pill.suspended {
    background: #f59e0b;
    color: #fff;
}

.prism-pd-status-pill.terminated,
.prism-pd-status-pill.cancelled {
    background: var(--prism-error);
    color: #fff;
}

.prism-pd-status-pill.pending {
    background: rgba(255, 255, 255, 0.25);
    color: #fff;
}

/* Pulsing dot */
.prism-pd-status-dot {
    position: relative;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.9);
    display: inline-block;
    margin-right: 7px;
    flex-shrink: 0;
}

.prism-pd-status-pill.active .prism-pd-status-dot::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.6);
    animation: prismPing 1.6s ease-out infinite;
}

@keyframes prismPing {
    0% {
        transform: scale(1);
        opacity: 0.8;
    }

    100% {
        transform: scale(2.8);
        opacity: 0;
    }
}

/* ── Info rows — label acima do valor ── */
.prism-pd-info-list {
    display: flex;
    flex-direction: column;
}

.prism-pd-info-row {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 11px 0;
    border-bottom: 1px solid #f1f5f9;
}

.prism-pd-info-row:last-child {
    border-bottom: none;
}

.prism-pd-info-label {
    color: var(--prism-text-faint);
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.prism-pd-info-value {
    color: var(--prism-text);
    font-weight: 600;
    font-size: 0.88rem;
}

/* ── Action buttons ── */
.prism-pd-actions {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 4px;
}

.prism-pd-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    padding: 10px 16px;
    border-radius: 10px;
    font-size: 0.85rem;
    font-weight: 600;
    text-decoration: none !important;
    transition: all 0.18s;
    border: none;
    cursor: pointer;
}

.prism-pd-btn-primary {
    background: var(--gradiente);
    color: #fff !important;
}

.prism-pd-btn-primary:hover {
    opacity: 0.88;
    transform: translateY(-1px);
    color: #fff !important;
}

.prism-pd-btn-success {
    background: var(--prism-success);
    color: #fff !important;
}

.prism-pd-btn-success:hover {
    background: var(--prism-success-dark);
    transform: translateY(-1px);
    color: #fff !important;
}

.prism-pd-btn-danger {
    background: transparent;
    color: var(--prism-error) !important;
    border: 1.5px solid #fca5a5;
}

.prism-pd-btn-danger:hover {
    background: var(--prism-error-bg);
}

.prism-pd-btn-danger.disabled {
    opacity: 0.45;
    cursor: not-allowed;
    pointer-events: none;
}

/* ── Botão de painel de controle (DirectAdmin / cPanel) ── */
.module-client-area {
    padding: 4px 0;
}

.module-client-area a,
.module-client-area .btn,
.module-client-area button[type="submit"],
.module-client-area input[type="submit"] {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    background: var(--gradiente) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 10px !important;
    font-weight: 600 !important;
    font-size: 0.88rem !important;
    padding: 11px 22px !important;
    text-decoration: none !important;
    box-shadow: 0 4px 14px color-mix(in srgb, var(--brand-secondary) 20%, transparent) !important;
    transition: opacity 0.18s, transform 0.18s !important;
    cursor: pointer !important;
}

.module-client-area a:hover,
.module-client-area .btn:hover,
.module-client-area button[type="submit"]:hover,
.module-client-area input[type="submit"]:hover {
    opacity: 0.88 !important;
    transform: translateY(-1px) !important;
    color: #fff !important;
}

.module-client-area a::before {
    content: '\f3c5';
    font-family: 'Font Awesome 6 Pro', 'Font Awesome 6 Free', 'Font Awesome 5 Pro', 'Font Awesome 5 Free', 'FontAwesome';
    font-weight: 900;
}

/* ── Tabs ── */
.prism-pd-tabs {
    display: flex;
    border-bottom: 1px solid var(--prism-border);
    background: #fafbfe;
    overflow-x: auto;
    scrollbar-width: none;
}

.prism-pd-tabs::-webkit-scrollbar {
    display: none;
}

.prism-pd-tab-link {
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 13px 18px;
    font-size: 0.84rem;
    font-weight: 600;
    color: var(--prism-text-muted);
    border-bottom: 2px solid transparent;
    white-space: nowrap;
    text-decoration: none !important;
    transition: color 0.15s, border-color 0.15s;
    cursor: pointer;
}

.prism-pd-tab-link:hover {
    color: var(--cor-primaria);
}

.prism-pd-tab-link.active {
    color: var(--cor-primaria);
    border-bottom-color: var(--cor-primaria);
}

.prism-pd-tab-link i {
    font-size: 0.82rem;
}

.prism-pd-tab-pane {
    display: none;
    padding: 22px;
}

.prism-pd-tab-pane.active {
    display: block;
}

/* ── Detail grid ── */
.prism-pd-detail-grid {
    display: flex;
    flex-direction: column;
}

.prism-pd-detail-row {
    display: flex;
    align-items: baseline;
    gap: 16px;
    padding: 10px 0;
    border-bottom: 1px solid #f1f5f9;
    font-size: 0.875rem;
}

.prism-pd-detail-row:last-child {
    border-bottom: none;
}

.prism-pd-detail-key {
    color: var(--prism-text-muted);
    font-weight: 600;
    min-width: 140px;
    flex-shrink: 0;
}

.prism-pd-detail-val {
    color: var(--prism-text);
}

/* ── Config / Custom fields ── */
.prism-pd-config-grid {
    display: flex;
    flex-direction: column;
}

.prism-pd-config-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    padding: 10px 0;
    border-bottom: 1px solid #f1f5f9;
    font-size: 0.875rem;
}

.prism-pd-config-row:last-child {
    border-bottom: none;
}

.prism-pd-config-key {
    color: var(--prism-text-muted);
    font-weight: 600;
}

.prism-pd-config-val {
    color: var(--prism-text);
    font-weight: 500;
}

/* ── Addons ── */
.prism-pd-addon-card {
    background: #fff;
    border: 1px solid var(--prism-border);
    border-radius: var(--prism-radius-md);
    overflow: hidden;
    margin-bottom: 12px;
    box-shadow: 0 1px 4px color-mix(in srgb, var(--brand-secondary) 5%, transparent);
}

.prism-pd-addon-hdr {
    background: var(--gradiente);
    padding: 10px 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 0.85rem;
    font-weight: 600;
    color: #fff;
}

.prism-pd-addon-body {
    padding: 14px 16px;
    font-size: 0.84rem;
    color: var(--prism-text-medium);
}

.prism-pd-addon-footer {
    padding: 10px 16px;
    border-top: 1px solid #f1f5f9;
    background: #fafbfe;
}

/* ── Downloads ── */
.prism-pd-download-item {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 14px 0;
    border-bottom: 1px solid #f1f5f9;
}

.prism-pd-download-item:last-child {
    border-bottom: none;
}

.prism-pd-download-icon {
    width: 40px;
    height: 40px;
    background: var(--prism-primary-light);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.prism-pd-download-icon i {
    color: var(--cor-primaria);
    font-size: 1rem;
}

.prism-pd-download-info {
    flex: 1;
}

.prism-pd-download-title {
    font-weight: 600;
    color: var(--prism-text);
    margin-bottom: 4px;
    font-size: 0.88rem;
}

.prism-pd-download-desc {
    font-size: 0.8rem;
    color: var(--prism-text-muted);
    margin-bottom: 8px;
}

.prism-pd-download-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--cor-primaria);
    text-decoration: none;
    padding: 5px 12px;
    border: 1.5px solid var(--cor-primaria);
    border-radius: 7px;
    transition: all 0.15s;
}

.prism-pd-download-btn:hover {
    background: var(--prism-primary-light);
}

/* ── Resource usage ── */
.prism-pd-dials {
    display: flex;
    gap: 24px;
    justify-content: center;
    flex-wrap: wrap;
    padding: 10px 0 20px;
}

.prism-pd-dial-item {
    text-align: center;
}

.prism-pd-dial-label {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--prism-text-muted);
    margin-bottom: 8px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.prism-pd-dial-sub {
    font-size: 0.75rem;
    color: var(--prism-text-faint);
    margin-top: 6px;
}

.prism-pd-lastupdate {
    font-size: 0.78rem;
    color: var(--prism-text-faint);
    text-align: center;
    padding-top: 8px;
    border-top: 1px solid #f1f5f9;
}

/* ── Change password form ── */
.prism-pd-pw-form .form-group {
    margin-bottom: 18px;
}

.prism-pd-pw-form label {
    font-size: 0.84rem;
    font-weight: 600;
    color: var(--prism-text-medium);
    margin-bottom: 6px;
}

.prism-pd-pw-form .form-control {
    border: 1.5px solid var(--prism-border);
    border-radius: 10px;
    padding: 10px 14px;
    font-size: 0.9rem;
    color: var(--prism-text);
    height: auto;
}

.prism-pd-pw-form .form-control:focus {
    border-color: var(--cor-primaria);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand-primary) 9%, transparent);
    outline: none;
}

/* ── Alertas ── */
.prism-pd-alert {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 12px 16px;
    border-radius: 10px;
    font-size: 0.875rem;
    margin-bottom: 16px;
}

.prism-pd-alert i {
    font-size: 1rem;
    flex-shrink: 0;
    margin-top: 1px;
}

.prism-pd-alert-warning {
    background: #fffbeb;
    border: 1px solid #fcd34d;
    color: #92400e;
}

.prism-pd-alert-warning i {
    color: #d97706;
}

.prism-pd-alert-danger {
    background: var(--prism-error-bg);
    border: 1px solid #fca5a5;
    color: #991b1b;
}

.prism-pd-alert-danger i {
    color: var(--prism-error);
}

.prism-pd-alert-success {
    background: var(--prism-success-bg);
    border: 1px solid var(--prism-success-border);
    color: var(--prism-success-dark);
}

.prism-pd-alert-success i {
    color: var(--prism-success);
}

.prism-pd-alert-info {
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    color: #1e40af;
}

.prism-pd-alert-info i {
    color: #3b82f6;
}

.prism-pd-alert-pay {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.8rem;
    font-weight: 600;
    background: #d97706;
    color: #fff;
    padding: 4px 12px;
    border-radius: 6px;
    text-decoration: none;
    margin-left: auto;
    flex-shrink: 0;
}

/* ── Hero: domínio e botões de login (overview cPanel) ── */
.prism-pd-hero-domain {
    display: inline-flex; align-items: center; gap: 7px; margin-top: 8px;
    background: rgba(255,255,255,0.12); border: 1px solid rgba(255,255,255,0.22);
    color: #fff; font-size: 0.8rem; font-weight: 600; padding: 4px 12px;
    border-radius: var(--prism-radius-pill); text-decoration: none;
}
.prism-pd-hero-domain:hover { background: rgba(255,255,255,0.22); color: #fff; text-decoration: none; }
.prism-pd-hero-domain-go { font-size: 0.65rem; opacity: 0.75; }
.prism-pd-hero-status { flex-direction: column; align-items: flex-end; gap: 10px; }
.prism-pd-hero-btns { display: flex; gap: 8px; }
.prism-pd-hero-btn {
    display: inline-flex; align-items: center; gap: 7px; padding: 8px 14px;
    border-radius: 10px; font-size: 0.8rem; font-weight: 600; text-decoration: none; transition: .15s;
}
.prism-pd-hero-btn--solid { background: #fff; color: var(--cor-secundaria); }
.prism-pd-hero-btn--solid:hover { background: color-mix(in srgb, var(--brand-primary) 13%, white); color: var(--cor-secundaria); text-decoration: none; }
.prism-pd-hero-btn--ghost { background: rgba(255,255,255,0.12); color: #fff; border: 1px solid rgba(255,255,255,0.25); }
.prism-pd-hero-btn--ghost:hover { background: rgba(255,255,255,0.22); color: #fff; text-decoration: none; }

/* ── Overview do módulo cPanel (.prism-cp) ──
   O HTML vem de modules/servers/cpanel/templates/overview.tpl; aqui só se veste. */
.prism-cp { display: flex; flex-direction: column; gap: 18px; margin-bottom: 18px; }
.prism-cp > .row { margin: 0; display: block; }
.prism-cp > .row > [class*="col-"] { padding: 0; width: 100%; max-width: 100%; flex: none; }
.prism-cp #cPanelPackagePanel { display: none; } /* já está no hero */
.prism-cp #cPanelBillingOverviewPanel { display: none; } /* repete o card Dados de Cobrança */
.prism-cp #cPanelWordPress { display: none; } /* precisa do WP Toolkit; o servidor tem Softaculous (25/08/2026) */
.prism-cp-usage-name i { color: var(--cor-primaria); margin-right: 6px; }
.prism-cp .panel.card {
    background: var(--prism-surface); border: 1px solid var(--prism-border); border-radius: var(--prism-radius-lg);
    box-shadow: var(--prism-shadow-sm); overflow: hidden; margin: 0 0 18px !important;
}
.prism-cp > .panel.card, .prism-cp > div > .panel.card:last-child { margin-bottom: 0 !important; }
.prism-cp .panel.card .card-header {
    background: transparent; border-bottom: 1px solid var(--prism-border-subtle); padding: 14px 22px;
}
.prism-cp .panel.card .card-title { font-size: 0.95rem; font-weight: 700; color: var(--prism-text); }
.prism-cp .panel.card .card-title::before { font-family: 'Font Awesome 6 Pro', 'Font Awesome 6 Free', 'Font Awesome 5 Pro', 'Font Awesome 5 Free', 'FontAwesome'; font-weight: 900; color: var(--cor-primaria); margin-right: 10px; }
.prism-cp #cPanelUsagePanel .card-title::before { content: '\f200'; }
.prism-cp #cPanelWordPress .card-title::before { font-family: 'Font Awesome 6 Brands', 'Font Awesome 5 Brands', 'FontAwesome'; font-weight: 400; content: '\f19a'; }
.prism-cp #cPanelQuickShortcutsPanel .card-title::before { content: '\f00a'; }
.prism-cp #cPanelQuickEmailPanel .card-title::before { content: '\f0e0'; }
.prism-cp #cPanelExtrasPurchasePanel .card-title::before { content: '\f12e'; }
.prism-cp .panel.card .card-body { padding: 20px 22px; text-align: left; }

/* Uso de recursos: barras montadas pelo JS do tpl */
.prism-cp .cpanel-usage-stats .row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 0; }
.prism-cp .cpanel-usage-stats .row > div { padding: 0; width: auto; max-width: none; flex: none; }
.prism-cp-usage { padding: 16px; border: 1px solid var(--prism-border); border-radius: var(--prism-radius-md); text-align: left; }
.prism-cp-usage-top { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 10px; }
.prism-cp-usage-name { font-size: 0.8rem; color: var(--prism-text-muted); font-weight: 500; }
.prism-cp-usage-pct { font-size: 1.15rem; font-weight: 700; color: var(--prism-text); }
.prism-cp-bar { height: 8px; background: #eef1f8; border-radius: var(--prism-radius-pill); overflow: hidden; }
.prism-cp-bar > span { display: block; height: 100%; border-radius: inherit; background: var(--gradiente); }
.prism-cp-bar > span.ok { background: linear-gradient(90deg, #059669, #10b981); }
.prism-cp-bar > span.warn { background: linear-gradient(90deg, #d97706, #f59e0b); }
.prism-cp-bar > span.danger { background: linear-gradient(90deg, #b91c1c, #ef4444); }
.prism-cp-usage-foot { margin-top: 8px; font-size: 0.75rem; color: var(--prism-text-muted); }
.prism-cp .cpanel-usage-stats .limit-near { margin: 14px 0 0; font-size: 0.75rem; text-align: left; }
.prism-cp .cpanel-usage-stats .text-info { color: var(--prism-text-faint) !important; }
.prism-cp .cpanel-usage-stats .text-info::before { font-family: 'Font Awesome 6 Pro', 'Font Awesome 6 Free', 'Font Awesome 5 Pro', 'Font Awesome 5 Free', 'FontAwesome'; font-weight: 400; content: '\f017'; margin-right: 6px; }

/* WordPress */
.prism-cp #cPanelWordPress .row { margin: 0 -5px; }
.prism-cp #cPanelWordPress .row:not(:last-of-type):not(.no-margin) { border-bottom-color: var(--prism-border-subtle); }
.prism-cp #cPanelWordPress h5 { font-size: 0.82rem; font-weight: 600; color: var(--prism-text-muted); margin: 0 0 2px; }
.prism-cp #cPanelWordPress .small { color: var(--prism-text-faint); margin-bottom: 10px; }
.prism-cp #cPanelWordPress [class*="col-"] { padding: 5px; }
.prism-cp .form-control {
    border: 1px solid var(--prism-border); border-radius: 9px; font-size: 0.86rem; height: auto; padding: 9px 12px; box-shadow: none;
}
.prism-cp .form-control:focus { border-color: var(--cor-primaria); box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand-primary) 12%, transparent); }
.prism-cp .btn {
    border-radius: 9px; font-weight: 600; font-size: 0.84rem; padding: 9px 16px; border: 1px solid var(--prism-border);
    background: #fff; color: var(--prism-text); box-shadow: none;
}
.prism-cp .btn:hover { background: var(--prism-hover-bg); border-color: color-mix(in srgb, var(--brand-primary) 24%, white); color: var(--prism-text); }
.prism-cp .btn-primary, .prism-cp #btnInstallWordpress, .prism-cp #frmCreateEmailAccount button[type="submit"] {
    background: var(--gradiente); color: #fff; border-color: transparent;
}
.prism-cp .btn-primary:hover, .prism-cp #btnInstallWordpress:hover, .prism-cp #frmCreateEmailAccount button[type="submit"]:hover { filter: brightness(1.08); color: #fff; }
.prism-cp .input-group-text { border-radius: 0 9px 9px 0; border-color: var(--prism-border); background: #f8fafc; font-size: 0.82rem; color: var(--prism-text-muted); }

/* Atalhos: some com o PNG, entra ícone FA */
.prism-cp .cpanel-feature-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin: 0; }
.prism-cp .cpanel-feature-row > div { padding: 0; width: auto; max-width: none; flex: none; }
.prism-cp .cpanel-feature-row img { display: none; }
.prism-cp .cpanel-feature-row a {
    display: flex !important; flex-direction: column; align-items: center; gap: 8px; padding: 16px 10px; margin: 0 !important;
    border: 1px solid var(--prism-border); border-radius: var(--prism-radius-md); text-decoration: none;
    color: var(--prism-text); font-size: 0.8rem; font-weight: 600; text-align: center; transition: .15s; height: 100%;
}
.prism-cp .cpanel-feature-row a:hover { border-color: color-mix(in srgb, var(--brand-primary) 24%, white); background: var(--brand-tint-1); transform: translateY(-2px); }
.prism-cp .cpanel-feature-row a::before {
    font-family: 'Font Awesome 6 Pro', 'Font Awesome 6 Free', 'Font Awesome 5 Pro', 'Font Awesome 5 Free', 'FontAwesome'; font-weight: 900; content: '\f0c9';
    width: 42px; height: 42px; border-radius: 11px; background: var(--prism-primary-light); color: var(--cor-primaria);
    display: flex; align-items: center; justify-content: center; font-size: 1.1rem;
}
.prism-cp #cPanelEmailAccounts a::before { content: '\f1fa'; }
.prism-cp #cPanelForwarders a::before { content: '\f064'; }
.prism-cp #cPanelAutoResponders a::before { content: '\f3e5'; }
.prism-cp #cPanelFileManager a::before { content: '\f07c'; }
.prism-cp #cPanelBackup a::before { content: '\f381'; }
.prism-cp #cPanelDomains a::before { content: '\f0ac'; }
.prism-cp #cPanelCronJobs a::before { content: '\f017'; }
.prism-cp #cPanelMySQLDatabases a::before { content: '\f1c0'; }
.prism-cp #cPanelPhpMyAdmin a::before { content: '\f121'; }
.prism-cp #cPanelAwstats a::before { content: '\f201'; }
.prism-cp #cPanelWptk a::before { font-family: 'Font Awesome 6 Brands', 'Font Awesome 5 Brands', 'FontAwesome'; font-weight: 400; content: '\f19a'; }

@media (max-width: 991px) {
    .prism-cp .cpanel-feature-row { grid-template-columns: repeat(2, 1fr); }
    .prism-cp .cpanel-usage-stats .row { grid-template-columns: 1fr; }
    .prism-pd-hero-status { align-items: flex-start; }
}

/* ── 25/08/2026: hero foi para o header.tpl e a sidebar do WHMCS ficou.
   Coluna de cobrança vira faixa horizontal acima do conteúdo. ── */
.prism-pd-columns { flex-direction: column; gap: 18px; }
.prism-pd-aside, .prism-pd-layout--solo .prism-pd-aside { width: 100%; max-width: none; }
.prism-pd-aside .prism-pd-info-list {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 10px; padding: 18px 0;
}
.prism-pd-aside .prism-pd-info-row {
    border: 1px solid var(--prism-border-subtle); background: #f8fafc; border-radius: 10px; padding: 12px 14px; gap: 4px;
}
/* Informações da hospedagem em duas colunas (a coluna principal agora é larga) */
.prism-pd-detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 32px; }
@media (max-width: 767px) { .prism-pd-detail-grid { grid-template-columns: 1fr; } }
/* Nameservers: host em mono, IP separado à direita */
.prism-pd-detail-row--ns { grid-column: 1 / -1; align-items: flex-start; }
.prism-pd-detail-row--ns .prism-pd-detail-val { display: flex; flex-direction: column; gap: 6px; flex: 1; max-width: 520px; }
.prism-pd-ns { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 6px 10px; background: #f8fafc; border: 1px solid var(--prism-border-subtle); border-radius: 8px; }
.prism-pd-ns-host { font-family: 'JetBrains Mono', Consolas, monospace; font-size: 0.8rem; color: var(--prism-text); }
.prism-pd-ns-ip { font-size: 0.76rem; color: var(--prism-text-muted); font-variant-numeric: tabular-nums; white-space: nowrap; }
@media (max-width: 480px) { .prism-pd-ns { flex-direction: column; align-items: flex-start; gap: 2px; } }
.prism-pd-aside .prism-pd-actions { flex-direction: row; flex-wrap: wrap; gap: 10px; padding: 14px 22px; margin-top: 0; border-top: 1px solid var(--prism-border-subtle); background: #fafbfd; }
.prism-pd-aside .prism-pd-card { margin-bottom: 0; }
.prism-pd-aside .prism-pd-actions .prism-pd-btn { width: auto; min-width: 180px; }
.prism-pd-main { width: 100%; }
#main-body .prism-pd-hero { margin-bottom: 24px; padding: 22px 26px; }

/* ===================================================================
   14. Client Area Dashboard (clientareahome.tpl)
   =================================================================== */

/* ── Top Tiles (Grade Estatística Verticalizada) ── */
.prism-dash-tiles-row {
    margin-bottom: 24px;
}

/* ── Controle de Espaçamento (Gutters) reduzido pela metade ── */
.prism-dash-tiles-row .row {
    margin-left: -8px;
    margin-right: -8px;
}

.prism-dash-tiles-row [class*="col-"] {
    padding-left: 8px;
    padding-right: 8px;
}

.prism-dash-tile {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 6px;
    background: #ffffff;
    border: 1px solid var(--brand-tint-4);
    border-radius: 14px;
    padding: 22px 20px;
    text-decoration: none !important;
    transition: all 0.22s ease;
    box-shadow: 0 2px 10px color-mix(in srgb, var(--brand-secondary) 4%, transparent);
    height: 100%;
}

.prism-dash-tile:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 24px color-mix(in srgb, var(--brand-secondary) 12%, transparent);
    border-color: color-mix(in srgb, var(--brand-primary) 30%, transparent);
}

.prism-dash-tile-top {
    display: flex;
    align-items: center;
    gap: 14px;
}

.prism-dash-tile-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.3rem;
    flex-shrink: 0;
}

/* Semântica de cores para ícones */
.prism-icon-blue {
    background: color-mix(in srgb, var(--brand-primary) 7%, white);
    color: var(--cor-primaria);
}

.prism-icon-green {
    background: #e6fcf1;
    color: #10b981;
}

.prism-icon-gold {
    background: #fffbeb;
    color: #f59e0b;
}

.prism-icon-red {
    background: #fef2f2;
    color: #ef4444;
}

.prism-dash-tile-stat {
    font-size: 1.8rem;
    font-weight: 700;
    color: var(--cor-secundaria);
    line-height: 1;
    font-family: 'Figtree', sans-serif;
}

.prism-dash-tile-title {
    font-family: 'Figtree', sans-serif !important;
    font-size: 0.85rem;
    color: #64748b;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    width: 100%;
    line-height: 1.3;
}

/* ── Main Dashboard Cards (Painéis Centrais) ── */
.prism-dash-card {
    background: #ffffff;
    border-radius: 14px !important;
    border: 1px solid var(--brand-tint-4) !important;
    box-shadow: 0 2px 10px color-mix(in srgb, var(--brand-secondary) 6%, transparent) !important;
    overflow: hidden;
    margin-bottom: 24px !important;
}

.prism-dash-card-hdr {
    background: linear-gradient(135deg, var(--cor-secundaria) 0%, var(--cor-primaria) 100%);
    padding: 16px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.prism-dash-card-hdr h3 {
    color: #ffffff !important;
    font-size: 1.05rem !important;
    font-weight: 600 !important;
    margin: 0 !important;
    display: flex;
    align-items: center;
    gap: 8px;
}

.prism-dash-card-hdr h3 i {
    color: rgba(255, 255, 255, 0.7);
}

.prism-dash-card-hdr .badge {
    background: rgba(255, 255, 255, 0.2) !important;
    color: #ffffff !important;
    font-size: 0.75rem;
    border-radius: 6px;
    padding: 4px 8px;
}

.prism-dash-card-hdr .btn {
    background: rgba(255, 255, 255, 0.15) !important;
    color: #ffffff !important;
    border: 1px solid rgba(255, 255, 255, 0.25) !important;
    border-radius: 6px;
    font-size: 0.75rem;
    padding: 5px 12px;
    transition: all 0.2s;
    font-weight: 600;
}

.prism-dash-card-hdr .btn:hover {
    background: #ffffff !important;
    color: var(--cor-primaria) !important;
}

.prism-dash-card-body {
    padding: 20px;
    font-size: 0.9rem;
    color: #475569;
}

/* Listagem Interna dos Painéis — card-per-row */
.prism-dash-card .list-group {
    border-radius: 0;
    padding: 12px 16px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.prism-dash-card .list-group-item {
    border: 1px solid var(--brand-tint-4) !important;
    border-radius: 10px !important;
    padding: 12px 14px !important;
    color: #374151 !important;
    font-size: 0.9rem;
    transition: background 0.15s, box-shadow 0.15s;
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 10px;
    margin: 0 !important;
}

.prism-dash-card .list-group-item>i {
    flex-shrink: 0;
}

.prism-dash-item-badge {
    flex-shrink: 0;
    margin-right: 6px;
}

.prism-dash-item-content {
    flex: 1 1 auto;
    min-width: 0;
    display: block;
    overflow: hidden;
}

.prism-dash-item-content .div-service-item {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    min-width: 0;
    gap: 10px 12px;
}

.prism-dash-item-content .div-service-status {
    flex: 0 0 auto;
}

/* Cresce para empurrar os botões até a direita. Quando o que sobra fica menor
   que 240px, são os botões que descem para a linha de baixo, e aí o nome e os
   botões ficam cada um com a largura inteira do card. */
.prism-dash-item-content .div-service-name {
    flex: 1 1 240px;
    min-width: 0;
}

.prism-dash-item-content .div-service-buttons {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-left: 0;
}

.prism-dash-item-content .div-service-name strong,
.prism-dash-item-content .div-service-name b {
    display: -webkit-box;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.35;
    max-height: 2.7em;
    word-break: break-word;
}

.prism-dash-item-content .div-service-name a,
.prism-dash-item-content .div-service-name span,
.prism-dash-item-content .div-service-name small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.prism-dash-item-content>.btn,
.prism-dash-item-content>a.btn {
    float: right;
    margin-left: 12px;
    margin-bottom: 0;
}

.prism-dash-item-content>strong,
.prism-dash-item-content>span:not(.btn),
.prism-dash-item-content>div,
.prism-dash-item-content>p,
.prism-dash-item-content>small,
.prism-dash-item-content>a:not(.btn) {
    min-width: 0;
}

.prism-dash-item-content>strong,
.prism-dash-item-content>span:not(.btn),
.prism-dash-item-content>div,
.prism-dash-item-content>p {
    overflow: hidden;
}

.prism-dash-item-content>strong,
.prism-dash-item-content strong:first-child {
    display: -webkit-box;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.35;
    max-height: 2.7em;
    word-break: break-word;
}

.prism-dash-item-content br {
    display: block;
}

.prism-dash-item-content>a:not(.btn),
.prism-dash-item-content>small,
.prism-dash-item-content>span:not(.btn):not(.label) {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.prism-dash-card .list-group-item:last-child {
    border-bottom: 1px solid var(--brand-tint-4) !important;
}

.prism-dash-card .list-group-item:hover {
    background: color-mix(in srgb, var(--brand-primary) 4%, white) !important;
    box-shadow: 0 2px 8px color-mix(in srgb, var(--brand-secondary) 6%, transparent) !important;
}

.prism-dash-card .list-group-item i {
    color: #9ca3af;
    transition: color 0.15s;
}

.prism-dash-card .list-group-item:hover i {
    color: var(--cor-primaria);
}

/* Badges (ex: Ativo, Pendente) */
.prism-dash-card .list-group-item .label {
    font-size: 0.68rem;
    border-radius: 4px;
    padding: 4px 8px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    flex-shrink: 0;
}

/* Botões da listagem — sempre à direita */
.prism-dash-card .list-group-item .btn {
    margin-left: auto;
    flex-shrink: 0;
    white-space: nowrap;
}

.prism-dash-card .list-group-item .btn .fa,
.prism-dash-card .list-group-item .btn .fas,
.prism-dash-card .list-group-item .btn .far,
.prism-dash-card .list-group-item .btn .fal,
.prism-dash-card .list-group-item .btn .fab {
    margin-right: 6px;
}

/* Hover do botão — evita ícone invisível sobre fundo escuro */
.prism-dash-card .list-group-item .btn:hover {
    background: var(--cor-primaria) !important;
    border-color: var(--cor-primaria) !important;
    color: #fff !important;
}

.prism-dash-card .list-group-item .btn:hover i,
.prism-dash-card .list-group-item .btn:hover .fas,
.prism-dash-card .list-group-item .btn:hover .far {
    color: #fff !important;
}

.prism-dash-card-ftr {
    background: var(--brand-tint-1);
    border-top: 1px solid color-mix(in srgb, var(--brand-secondary) 6%, white);
    padding: 12px 20px;
    text-align: center;
    font-size: 0.85rem;
}

/* ─── LINHA DE SERVIÇO (painel "Seus produtos/serviços ativos") ─── */
/* Marcação do WHMCS, em includes/active-products-services-item.tpl:
   .div-service-item > .div-service-status + .div-service-name + .div-service-buttons
   .btn-group-primary   = dropdown solto, atalho que o tema usa abaixo de 768px
   .btn-group-secondary = botão principal (ex.: cPanel) + dropdown das demais ações */

/* Um dropdown só: fica o que vem colado ao botão principal, à direita. */
.client-home-cards .div-service-buttons:has(.btn-group-secondary) .btn-group-primary,
.prism-dash-card .div-service-buttons:has(.btn-group-secondary) .btn-group-primary {
    display: none !important;
}

/* Serviço sem botão principal: aí o dropdown solto é a única ação que sobra. */
.client-home-cards .div-service-buttons:not(:has(.btn-group-secondary)) .btn-group-primary,
.prism-dash-card .div-service-buttons:not(:has(.btn-group-secondary)) .btn-group-primary {
    display: inline-flex !important;
}

/* Botões com rótulo em qualquer largura (o tema some com eles abaixo de 768px). */
.client-home-cards .div-service-buttons .btn-group-secondary,
.prism-dash-card .div-service-buttons .btn-group-secondary {
    display: inline-flex !important;
}

.client-home-cards .div-service-buttons .btn-view-details i,
.prism-dash-card .div-service-buttons .btn-view-details i {
    display: none !important;
}

.client-home-cards .div-service-buttons .btn-view-details span:not(.sr-only),
.prism-dash-card .div-service-buttons .btn-view-details span:not(.sr-only) {
    display: inline !important;
}

/* Quem empurra os botões para a direita é o .div-service-name, não margin-left:auto. */
.client-home-cards .div-service-buttons .btn,
.prism-dash-card .div-service-buttons .btn {
    margin-left: 0 !important;
}

/* Nome do serviço: ocupa a largura toda e vai para a segunda linha se precisar. */
.prism-dash-item-content .div-service-name > span.font-weight-bold {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    white-space: normal;
    overflow: hidden;
}

/* ── Responsividade Mobile (< 768px) ── */
@media (max-width: 767px) {
    .prism-dash-tile {
        padding: 18px 16px;
    }

    .prism-dash-item-badge {
        margin-right: 0;
    }

    .prism-dash-card .list-group-item .label,
    .prism-dash-item-badge.badge,
    .prism-dash-item-content .div-service-status .label {
        font-size: 0.68rem;
        padding: 3px 8px;
        letter-spacing: 0.03em;
        white-space: nowrap;
        overflow: visible;
        text-overflow: clip;
        max-width: none;
    }

    .prism-dash-item-content .div-service-item {
        gap: 8px;
    }

    .prism-dash-item-content .div-service-status {
        width: auto !important;
        min-width: 0 !important;
        margin-left: 0;
        margin-right: 0;
    }

    .prism-dash-item-content .div-service-status .label-placeholder {
        display: none !important;
        width: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .prism-dash-item-content .div-service-status .label-success,
    .prism-dash-item-content .div-service-status .label,
    .prism-dash-item-badge.badge {
        display: inline-block;
        min-width: 0 !important;
    }
}

@media (max-width: 575px) {
    .prism-dash-tiles-row .col-12.col-sm-6.col-xl-3 {
        flex: 0 0 50%;
        max-width: 50%;
        margin-bottom: 16px;
    }

    .prism-dash-tile {
        min-height: 110px;
        padding: 16px 14px;
    }

    .prism-dash-tile-top {
        gap: 10px;
    }

    .prism-dash-tile-icon {
        width: 42px;
        height: 42px;
    }

    .prism-dash-tile-stat {
        font-size: 1.45rem;
    }

    .prism-dash-tile-title {
        font-size: 0.78rem;
    }
}

/* =================================================================== */
/* 24. Redesign — Listagem de Faturas (clientareainvoices.tpl)          */
/* =================================================================== */

/* ─── HERO HEADER FULL WIDTH (12 COLUNAS) ─────────────────────────── */
.prism-hero-header {
    background: linear-gradient(135deg, var(--brand-secondary) 0%, var(--brand-primary) 100%);
    border-radius: 20px;
    padding: 26px 30px;
    margin-bottom: 24px;
    color: #ffffff;
    position: relative;
    overflow: hidden;
    box-shadow: 0 4px 18px color-mix(in srgb, var(--brand-secondary) 8%, transparent);
}
.prism-hero-header::before {
    content: '';
    position: absolute;
    width: 380px;
    height: 380px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255,255,255,0.08) 0%, rgba(255,255,255,0) 70%);
    top: -160px;
    right: -60px;
    pointer-events: none;
}
.prism-hero-top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 20px;
    position: relative;
    z-index: 2;
}
.prism-hero-title-area h1 {
    font-size: 1.6rem;
    font-weight: 700;
    color: #ffffff !important;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 10px;
}
.prism-hero-title-area p {
    font-size: 0.85rem;
    color: rgba(255, 255, 255, 0.75);
    margin: 4px 0 0 0;
}
.prism-hero-crumb {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.76rem;
    color: rgba(255, 255, 255, 0.6);
    margin-bottom: 8px;
}
.prism-hero-crumb a {
    color: rgba(255, 255, 255, 0.75);
    text-decoration: none;
}
.prism-hero-crumb a:hover {
    color: #ffffff;
}
.prism-hero-crumb .sep {
    font-size: 0.62rem;
    opacity: 0.6;
}
.prism-hero-crumb .current {
    color: #ffffff;
    font-weight: 600;
}

.prism-hero-stats-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
    position: relative;
    z-index: 2;
}
.prism-stat-pill,
.prism-stat-pill:hover,
.prism-stat-pill:focus,
.prism-stat-pill:active,
.prism-hero-stats-grid a,
.prism-hero-stats-grid a:hover {
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 14px;
    padding: 13px 16px;
    display: flex;
    align-items: center;
    gap: 12px;
    text-decoration: none !important;
    color: #ffffff !important;
    transition: transform 0.2s, background 0.2s;
}
.prism-stat-pill:hover {
    background: rgba(255, 255, 255, 0.16);
    transform: translateY(-2px);
    text-decoration: none !important;
}
.prism-stat-content span,
.prism-stat-label,
.prism-stat-value {
    text-decoration: none !important;
}
.prism-stat-icon {
    width: 38px;
    height: 38px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.05rem;
    flex-shrink: 0;
}
.prism-stat-icon.alert { background: rgba(239, 68, 68, 0.25); color: #fca5a5; }
.prism-stat-icon.success { background: rgba(16, 185, 129, 0.25); color: #6ee7b7; }
.prism-stat-icon.info { background: rgba(56, 189, 248, 0.25); color: #bae6fd; }
.prism-stat-icon.neutral { background: rgba(148, 163, 184, 0.25); color: #e2e8f0; }

.prism-stat-content {
    display: flex;
    flex-direction: column;
    min-width: 0;
}
.prism-stat-label {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: rgba(255, 255, 255, 0.7);
    font-weight: 600;
}
.prism-stat-value {
    font-size: 1.2rem;
    font-weight: 800;
    color: #ffffff;
    margin-top: 1px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ─── ESTILIZAÇÃO DOS PAINÉIS DA SIDEBAR ──────────────────────────── */
/* Card 1 - Faturas em Aberto (Gradiente azul do tema) */
.sidebar > .card:first-child,
.sidebar > .panel:first-child,
.sidebar .card[menuitemname="Invoices"],
.sidebar .panel-sidebar[menuitemname="Invoices"],
.sidebar .card[menuitemname="Faturas"],
.sidebar .panel-sidebar[menuitemname="Faturas"] {
    background: linear-gradient(145deg, var(--brand-secondary) 0%, var(--brand-primary) 100%) !important;
    border: none !important;
    border-radius: 16px !important;
    color: #ffffff !important;
    box-shadow: 0 8px 24px color-mix(in srgb, var(--brand-secondary) 18%, transparent) !important;
    overflow: hidden !important;
    margin-bottom: 20px !important;
}
.sidebar > .card:first-child .card-header,
.sidebar > .panel:first-child .panel-heading,
.sidebar .card[menuitemname="Invoices"] .card-header,
.sidebar .panel-sidebar[menuitemname="Invoices"] .panel-heading,
.sidebar .card[menuitemname="Faturas"] .card-header,
.sidebar .panel-sidebar[menuitemname="Faturas"] .panel-heading {
    background: transparent !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.14) !important;
    color: #ffffff !important;
    padding: 13px 18px !important;
}
.sidebar > .card:first-child .card-title,
.sidebar > .panel:first-child .panel-title,
.sidebar > .card:first-child h3,
.sidebar > .panel:first-child h3,
.sidebar .card[menuitemname="Invoices"] .card-title,
.sidebar .panel-sidebar[menuitemname="Invoices"] .panel-title {
    color: #ffffff !important;
    font-size: 0.86rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.04em !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
}
.sidebar > .card:first-child .card-body,
.sidebar > .panel:first-child .panel-body,
.sidebar .card[menuitemname="Invoices"] .card-body,
.sidebar .panel-sidebar[menuitemname="Invoices"] .panel-body {
    background: transparent !important;
    color: rgba(255, 255, 255, 0.92) !important;
    padding: 18px !important;
    font-size: 0.86rem !important;
    line-height: 1.4 !important;
}
.sidebar > .card:first-child .btn,
.sidebar > .panel:first-child .btn,
.sidebar .card[menuitemname="Invoices"] .btn,
.sidebar .panel-sidebar[menuitemname="Invoices"] .btn,
.sidebar .card[menuitemname="Faturas"] .btn,
.sidebar .panel-sidebar[menuitemname="Faturas"] .btn {
    background: #ffffff !important;
    color: var(--brand-primary) !important;
    font-weight: 800 !important;
    font-size: 0.88rem !important;
    border-radius: 10px !important;
    border: none !important;
    padding: 10px 16px !important;
    margin-top: 14px !important;
    width: 100% !important;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.15) !important;
    transition: all 0.2s ease !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
}
.sidebar > .card:first-child .btn:hover,
.sidebar .card[menuitemname="Invoices"] .btn:hover {
    background: var(--brand-tint-1) !important;
    color: var(--brand-secondary) !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.22) !important;
}

/* Demais Painéis da Sidebar (Status, Faturamento) */
.sidebar .panel-sidebar,
.sidebar .card,
.sidebar .panel {
    border-radius: 14px !important;
    border: 1px solid #e2e8f0 !important;
    background: #ffffff !important;
    box-shadow: 0 2px 8px color-mix(in srgb, var(--brand-secondary) 5%, transparent) !important;
    overflow: hidden !important;
    margin-bottom: 16px !important;
}

/* Cabeçalhos com Gradiente azul do tema */
.sidebar .panel-sidebar .panel-heading,
.sidebar .card .card-header,
.sidebar .panel-heading,
.sidebar .card-header {
    background: linear-gradient(135deg, var(--brand-secondary) 0%, var(--brand-primary) 100%) !important;
    border: none !important;
    padding: 11px 16px !important;
    color: #ffffff !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
}

.sidebar .panel-title,
.sidebar .card-title,
.sidebar .card-header h3,
.sidebar .panel-heading h3,
.sidebar .card-header span,
.sidebar .panel-heading span,
.sidebar .card-header .panel-title,
.sidebar .card-title.m-0 {
    font-size: 0.82rem !important;
    font-weight: 700 !important;
    color: #ffffff !important;
    text-transform: uppercase !important;
    letter-spacing: 0.04em !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
}

/* Afastamento e posicionamento do Chevron na Sidebar */
.sidebar .card-header i.fa-chevron-up,
.sidebar .card-header i.fa-chevron-down,
.sidebar .panel-heading i.fa-chevron-up,
.sidebar .panel-heading i.fa-chevron-down,
.sidebar .card-title i.fa-chevron-up,
.sidebar .card-title i.fa-chevron-down,
.sidebar .panel-title i.fa-chevron-up,
.sidebar .panel-title i.fa-chevron-down,
.sidebar .card-minimise,
.sidebar .card-minimise i,
.sidebar .card-header .float-right,
.sidebar .card-header .pull-right {
    color: rgba(255, 255, 255, 0.85) !important;
    font-size: 0.75rem !important;
    margin-left: auto !important;
    padding-left: 14px !important;
}

/* Corpo dos painéis padrão */
.sidebar .card-body,
.sidebar .panel-body {
    background: #ffffff !important;
    padding: 8px 0 !important;
    color: #1e293b !important;
}

/* Lista de filtros e links da Sidebar */
.sidebar .list-group {
    background: #ffffff !important;
    margin: 0 !important;
}

.sidebar .list-group .list-group-item {
    background: #ffffff !important;
    border: none !important;
    border-bottom: 1px solid #f1f5f9 !important;
    padding: 9px 16px !important;
    font-size: 0.84rem !important;
    color: #334155 !important;
    transition: all 0.15s !important;
    border-left: 3px solid transparent !important;
    text-decoration: none !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
}

.sidebar .list-group .list-group-item:last-child {
    border-bottom: none !important;
}

.sidebar .list-group .list-group-item:hover {
    background: var(--brand-tint-1) !important;
    color: var(--brand-primary) !important;
}

.sidebar .list-group .list-group-item.active {
    background: color-mix(in srgb, var(--brand-primary) 7%, white) !important;
    color: var(--brand-primary) !important;
    font-weight: 600 !important;
    border-left-color: var(--brand-primary) !important;
}

.sidebar .list-group .list-group-item .badge {
    background: #f1f5f9 !important;
    color: #64748b !important;
    font-size: 0.72rem !important;
    font-weight: 700 !important;
    padding: 3px 8px !important;
    border-radius: 10px !important;
}

.sidebar .list-group .list-group-item.active .badge {
    background: color-mix(in srgb, var(--brand-primary) 14%, white) !important;
    color: var(--brand-primary) !important;
}

/* ─── Ícone, rótulo e contador dos itens da sidebar ────────────────────
   O WHMCS monta cada item de duas formas: com link, em três divs
   (`sidebar-menu-item-*`), e sem link, com o ícone e o texto soltos
   dentro do `.list-group-item`. Nas duas, o ícone vinha com a largura
   natural do glifo, então uma seta, um círculo e um carrinho empurravam
   o texto para colunas diferentes e a lista saía torta. Largura fixa nos
   dois casos, como faz o `fa-fw`, e o contador encostado à direita. */

.sidebar .sidebar-menu-item-wrapper {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
}

.sidebar .sidebar-menu-item-icon-wrapper {
    flex: 0 0 18px;
    display: flex;
    justify-content: center;
}

.sidebar .sidebar-menu-item-icon,
.sidebar .list-group .list-group-item > i {
    width: 18px;
    text-align: center;
    font-size: 0.85rem;
    flex: 0 0 18px;
}

.sidebar .sidebar-menu-item-label {
    flex: 1 1 auto;
    min-width: 0;
}

.sidebar .sidebar-menu-item-badge {
    margin-left: auto;
    flex: 0 0 auto;
}

/* Sem link, os três pedaços são irmãos diretos: o texto não pode ser
   jogado para o meio pelo space-between, e o contador vai para a ponta
   por conta própria. O float do markup do core não vale dentro de um
   flex, então ele é desligado para não confundir quem ler isto depois. */
.sidebar .list-group .list-group-item {
    justify-content: flex-start !important;
    gap: 8px;
}

.sidebar .list-group .list-group-item > .badge {
    margin-left: auto !important;
    float: none !important;
}

/* ─── TABELA DE FATURAS RESPONSIVA ────────────────────────────────── */
.prism-invoices-wrap {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 2px 10px color-mix(in srgb, var(--brand-secondary) 5%, transparent);
    width: 100%;
}

.prism-invoices-header {
    padding: 14px 18px;
    border-bottom: 1px solid #e2e8f0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: #fafbfe;
}

.prism-invoices-header-title {
    font-size: 1.02rem;
    font-weight: 700;
    color: var(--brand-secondary);
    margin: 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.prism-invoices-badge {
    font-size: 0.76rem;
    font-weight: 600;
    color: #64748b;
    background: #f1f5f9;
    padding: 3px 10px;
    border-radius: 20px;
}

.prism-invoices-wrap .table-container {
    padding: 0;
    margin: 0;
}

.prism-invoices-wrap .table-responsive {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin-bottom: 0;
}

.prism-invoices-table {
    width: 100% !important;
    margin-bottom: 0 !important;
    border-collapse: separate;
    border-spacing: 0;
}

.prism-invoices-table thead th {
    background: #fafbfe;
    color: #64748b;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    padding: 11px 10px !important;
    border-top: none !important;
    border-bottom: 1px solid #e2e8f0 !important;
    white-space: nowrap;
}

.prism-invoices-table tbody td {
    padding: 11px 10px !important;
    font-size: 0.83rem;
    vertical-align: middle !important;
    border-top: 1px solid #f1f5f9 !important;
    color: #1e293b;
}
.prism-invoices-table tbody tr {
    transition: background 0.15s;
}
.prism-invoices-table tbody tr:hover {
    background: var(--brand-tint-1);
}
.prism-invoices-table tbody tr.row-unpaid {
    background: #fffcfc;
}
.prism-invoices-table tbody tr.row-unpaid:hover {
    background: #fef5f5;
}

/* Colunas individuais */
.col-inv-id { white-space: nowrap; width: 90px; }
.col-inv-date { white-space: nowrap; }
.col-inv-due { white-space: nowrap; }
.col-inv-total { white-space: nowrap; }
.col-inv-status { white-space: nowrap; }
.col-inv-actions { white-space: nowrap; width: 140px; }

.cell-invoice {
    display: flex;
    align-items: center;
    gap: 8px;
    white-space: nowrap;
}
.inv-icon-badge {
    width: 28px;
    height: 28px;
    border-radius: 7px;
    background: color-mix(in srgb, var(--brand-primary) 7%, white);
    color: var(--brand-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8rem;
    flex-shrink: 0;
}
.inv-icon-badge.unpaid {
    background: #fee2e2;
    color: #ef4444;
}
.inv-details {
    display: flex;
    flex-direction: column;
}
.inv-id {
    font-weight: 700;
    color: var(--brand-secondary);
    font-size: 0.88rem;
    text-decoration: none !important;
}
.inv-id:hover {
    color: var(--brand-primary);
}

.cell-date {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    color: #475569;
    font-size: 0.8rem;
    white-space: nowrap;
}
.cell-date i {
    font-size: 0.75rem;
    color: #94a3b8;
}
.cell-date.due-alert {
    color: #dc2626;
    font-weight: 600;
}
.cell-date.due-alert i {
    color: #ef4444;
}

.cell-amount {
    font-weight: 700;
    color: #1e293b;
    font-size: 0.88rem;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
.cell-amount.highlight {
    color: #dc2626;
}

/* Status Badges */
.badge-status {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 10px;
    border-radius: 20px;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    border: 1px solid transparent;
    white-space: nowrap;
}
.badge-status .dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    display: inline-block;
}

.badge-status.status-paid,
.badge-status.status-pago {
    background: #ecfdf5;
    color: #059669;
    border-color: #a7f3d0;
}
.badge-status.status-paid .dot,
.badge-status.status-pago .dot { background: #10b981; }

.badge-status.status-unpaid,
.badge-status.status-em-aberto,
.badge-status.status-aberto {
    background: #fef2f2;
    color: #dc2626;
    border-color: #fecaca;
}
.badge-status.status-unpaid .dot,
.badge-status.status-em-aberto .dot,
.badge-status.status-aberto .dot { background: #ef4444; }

.badge-status.status-cancelled,
.badge-status.status-cancelado {
    background: #f1f5f9;
    color: #64748b;
    border-color: #e2e8f0;
}
.badge-status.status-cancelled .dot,
.badge-status.status-cancelado .dot { background: #94a3b8; }

.badge-status.status-refunded,
.badge-status.status-reembolsado {
    background: #eef2ff;
    color: #4f46e5;
    border-color: color-mix(in srgb, var(--brand-primary) 24%, white);
}
.badge-status.status-refunded .dot,
.badge-status.status-reembolsado .dot { background: #6366f1; }

.badge-status.status-draft {
    background: #f8fafc;
    color: #94a3b8;
    border-color: #e2e8f0;
}
.badge-status.status-draft .dot { background: #cbd5e1; }

/* Ações */
.cell-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
    white-space: nowrap;
}
.btn-action-pay {
    background: linear-gradient(135deg, var(--brand-secondary) 0%, var(--brand-primary) 100%);
    color: #ffffff !important;
    border: none;
    padding: 5px 10px;
    border-radius: 6px;
    font-size: 0.76rem;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    cursor: pointer;
    text-decoration: none !important;
    box-shadow: 0 2px 6px color-mix(in srgb, var(--brand-primary) 25%, transparent);
    transition: all 0.15s;
    white-space: nowrap;
}
.btn-action-pay:hover {
    background: linear-gradient(135deg, var(--brand-secondary) 0%, color-mix(in srgb, var(--brand-primary) 93%, white) 100%);
    transform: translateY(-1px);
    box-shadow: 0 4px 10px color-mix(in srgb, var(--brand-primary) 35%, transparent);
}

.btn-action-view {
    background: var(--brand-tint-1);
    border: 1px solid #e2e8f0;
    color: #475569 !important;
    padding: 5px 9px;
    border-radius: 6px;
    font-size: 0.76rem;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    cursor: pointer;
    text-decoration: none !important;
    transition: all 0.15s;
    white-space: nowrap;
}
.btn-action-view:hover {
    background: color-mix(in srgb, var(--brand-primary) 7%, white);
    color: var(--brand-primary) !important;
    border-color: #cbd5e1;
}

.btn-icon-more {
    width: 28px;
    height: 28px;
    border-radius: 6px;
    border: 1px solid #e2e8f0;
    background: #ffffff;
    color: #64748b !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.75rem;
    cursor: pointer;
    text-decoration: none !important;
    transition: all 0.15s;
}
.btn-icon-more:hover {
    background: #f1f5f9;
    color: var(--brand-secondary) !important;
}

/* ─── DATATABLES CONTROLS OVERRIDES ──────────────────────────────── */
.dataTables_wrapper {
    padding: 14px 18px 18px;
}
.dataTables_wrapper .dataTables_length select {
    background: var(--brand-tint-1);
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 4px 8px;
    font-size: 0.82rem;
    color: #475569;
}
.dataTables_wrapper .dataTables_filter input {
    background: var(--brand-tint-1);
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 5px 10px;
    font-size: 0.82rem;
    color: #1e293b;
    margin-left: 8px;
}
.dataTables_wrapper .dataTables_filter input:focus {
    outline: none;
    border-color: var(--brand-primary);
    background: #ffffff;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand-primary) 10%, transparent);
}
.dataTables_wrapper .dataTables_info {
    font-size: 0.8rem;
    color: #64748b;
    padding-top: 12px;
}
.dataTables_wrapper .dataTables_paginate {
    padding-top: 8px;
}
.dataTables_wrapper .dataTables_paginate .paginate_button {
    border-radius: 6px !important;
    border: 1px solid #e2e8f0 !important;
    background: #ffffff !important;
    color: #475569 !important;
    font-size: 0.8rem !important;
    font-weight: 600 !important;
    padding: 4px 9px !important;
    margin: 0 2px !important;
}
.dataTables_wrapper .dataTables_paginate .paginate_button.current,
.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
    background: var(--brand-primary) !important;
    border-color: var(--brand-primary) !important;
    color: #ffffff !important;
}

/* =================================================================== */
/* 25. Redesign — Dashboard / Área do Cliente (clientareahome.tpl)     */
/* =================================================================== */

.client-home-cards {
    margin-top: 0;
}

.prism-dash-card {
    background: #ffffff !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 16px !important;
    overflow: hidden !important;
    box-shadow: 0 2px 8px color-mix(in srgb, var(--brand-secondary) 5%, transparent) !important;
    margin-bottom: 20px !important;
}

.prism-dash-card-hdr {
    padding: 13px 18px !important;
    background: #fafbfe !important;
    border-bottom: 1px solid #e2e8f0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
}

.prism-dash-card-hdr h3 {
    font-size: 0.94rem !important;
    font-weight: 700 !important;
    color: var(--brand-secondary) !important;
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    margin: 0 !important;
}

.prism-dash-card-hdr .btn {
    background: color-mix(in srgb, var(--brand-primary) 7%, white) !important;
    color: var(--brand-primary) !important;
    font-size: 0.78rem !important;
    font-weight: 600 !important;
    border-radius: 7px !important;
    padding: 5px 12px !important;
    border: none !important;
    transition: all 0.15s !important;
    text-decoration: none !important;
}

.prism-dash-card-hdr .btn:hover {
    background: var(--brand-primary) !important;
    color: #ffffff !important;
}

.prism-dash-card-body {
    padding: 18px !important;
    color: #475569 !important;
    font-size: 0.86rem !important;
    line-height: 1.5 !important;
}

.prism-dash-card .list-group {
    background: #ffffff !important;
    margin: 0 !important;
}

.prism-dash-card .list-group-item {
    background: #ffffff !important;
    border: none !important;
    border-bottom: 1px solid #f1f5f9 !important;
    padding: 14px 18px !important;
    color: #1e293b !important;
    transition: background 0.15s !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    text-decoration: none !important;
}

.prism-dash-card .list-group-item:hover {
    background: #fafcff !important;
}

.prism-dash-card-hdr {
    border-top-left-radius: 15px !important;
    border-top-right-radius: 15px !important;
}

.prism-dash-card-body:last-child,
.prism-dash-card .list-group:last-child,
.prism-dash-card .list-group-item:last-child,
.prism-dash-card-ftr {
    border-bottom-left-radius: 15px !important;
    border-bottom-right-radius: 15px !important;
}

/* ─── BOTÕES CPANEL E DETALHES DO DASHBOARD (GRADIENTE AZUL DO TEMA) ─── */
.client-home-cards .btn-group > a:first-child,
.client-home-cards .btn-group > .btn:first-child:not(.dropdown-toggle),
.client-home-cards a.btn[href*="dologin"],
.client-home-cards a[href*="dologin"],
.prism-dash-card .btn-group > a:first-child,
.prism-dash-card .btn-group > .btn:first-child:not(.dropdown-toggle),
.prism-dash-card a[href*="dologin"] {
    background: linear-gradient(135deg, var(--brand-secondary) 0%, var(--brand-primary) 100%) !important;
    color: #ffffff !important;
    font-weight: 700 !important;
    border-top-left-radius: 8px !important;
    border-bottom-left-radius: 8px !important;
    border-top-right-radius: 0px !important;
    border-bottom-right-radius: 0px !important;
    border-radius: 8px 0px 0px 8px !important;
    border: none !important;
    padding: 0 14px !important;
    height: 36px !important;
    box-sizing: border-box !important;
    font-size: 0.82rem !important;
    box-shadow: 0 2px 6px color-mix(in srgb, var(--brand-secondary) 20%, transparent) !important;
    text-decoration: none !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    transition: all 0.15s !important;
}

.client-home-cards .btn-group > .dropdown-toggle,
.client-home-cards .btn-group > button.dropdown-toggle,
.client-home-cards .btn-group > .btn:last-child:not(:first-child),
.prism-dash-card .btn-group > .dropdown-toggle,
.prism-dash-card .btn-group > button.dropdown-toggle,
.prism-dash-card .btn-group > .btn:last-child:not(:first-child) {
    background: linear-gradient(135deg, var(--brand-secondary) 0%, var(--brand-primary) 100%) !important;
    color: #ffffff !important;
    border-top-left-radius: 0px !important;
    border-bottom-left-radius: 0px !important;
    border-top-right-radius: 8px !important;
    border-bottom-right-radius: 8px !important;
    border-radius: 0px 8px 8px 0px !important;
    border: none !important;
    border-left: 1px solid rgba(255, 255, 255, 0.25) !important;
    padding: 0 12px !important;
    height: 36px !important;
    box-sizing: border-box !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-shadow: 0 2px 6px color-mix(in srgb, var(--brand-secondary) 20%, transparent) !important;
    transition: all 0.15s !important;
}

.client-home-cards .btn-group > a:hover,
.client-home-cards .btn-group > .btn:hover,
.client-home-cards .btn-group > .dropdown-toggle:hover,
.prism-dash-card .btn-group > a:hover,
.prism-dash-card .btn-group > .btn:hover,
.prism-dash-card .btn-group > .dropdown-toggle:hover {
    background: linear-gradient(135deg, var(--brand-secondary) 0%, color-mix(in srgb, var(--brand-primary) 93%, white) 100%) !important;
    color: #ffffff !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 4px 10px color-mix(in srgb, var(--brand-secondary) 30%, transparent) !important;
}

.client-home-cards a[href*="clientarea.php?action=productdetails"],
.client-home-cards a[href*="action=productdetails"],
.client-home-cards .btn-manage,
.prism-dash-card a[href*="action=productdetails"] {
    background: color-mix(in srgb, var(--brand-primary) 7%, white) !important;
    color: var(--brand-primary) !important;
    font-weight: 600 !important;
    border-radius: 8px !important;
    padding: 0 14px !important;
    height: 36px !important;
    box-sizing: border-box !important;
    font-size: 0.82rem !important;
    border: 1px solid color-mix(in srgb, var(--brand-primary) 14%, white) !important;
    text-decoration: none !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    transition: all 0.15s !important;
    margin-left: 6px !important;
}

.client-home-cards a[href*="action=productdetails"]:hover,
.prism-dash-card a[href*="action=productdetails"]:hover {
    background: var(--brand-primary) !important;
    color: #ffffff !important;
    border-color: var(--brand-primary) !important;
}

/* Status Badges */
.badge-active,
.label-active,
.badge-success,
.label-success {
    background: #ecfdf5 !important;
    color: #059669 !important;
    border: 1px solid #a7f3d0 !important;
    font-weight: 700 !important;
    border-radius: 20px !important;
    padding: 4px 10px !important;
    font-size: 0.74rem !important;
}

/* ─── DESBLOQUEIO DE OVERFLOW PARA DROPDOWN ─── */
.primary-content,
.client-home-cards,
.client-home-cards .col-12,
.client-home-cards .col-md-6,
.client-home-cards .row,
.client-home-cards .prism-dash-card,
.client-home-cards .card,
.client-home-cards .panel,
.client-home-cards .panel-body,
.client-home-cards .card-body,
.client-home-cards .list-group,
.client-home-cards .list-group-item,
.client-home-cards .prism-dash-item-content,
.client-home-cards .table-responsive,
.prism-dash-card,
.prism-dash-card-body,
.prism-dash-card .list-group,
.prism-dash-card .list-group-item,
.prism-dash-card .prism-dash-item-content {
    overflow: visible !important;
}

.client-home-cards .prism-dash-card:has(.open),
.client-home-cards .prism-dash-card:has(.show),
.prism-dash-card:has(.open),
.prism-dash-card:has(.show),
.prism-dash-card:focus-within {
    z-index: 99999 !important;
}

.client-home-cards .btn-group,
.prism-dash-card .btn-group {
    position: relative !important;
    overflow: visible !important;
}
.client-home-cards .btn-group.open,
.client-home-cards .btn-group.show,
.prism-dash-card .btn-group.open,
.prism-dash-card .btn-group.show {
    z-index: 999999 !important;
}

.client-home-cards .dropdown-menu,
.prism-dash-card .dropdown-menu,
.btn-group .dropdown-menu {
    border-radius: 10px !important;
    border: 1px solid #e2e8f0 !important;
    box-shadow: 0 12px 32px color-mix(in srgb, var(--brand-secondary) 20%, transparent) !important;
    padding: 6px 0 !important;
    background: #ffffff !important;
    min-width: 190px !important;
    z-index: 9999999 !important;
}

.open > .dropdown-menu,
.show > .dropdown-menu,
.dropdown-menu.show,
.dropdown-menu.open,
.btn-group.open > .dropdown-menu,
.btn-group.show > .dropdown-menu,
.dropdown.open > .dropdown-menu,
.dropdown.show > .dropdown-menu {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    z-index: 9999999 !important;
}

.client-home-cards .dropdown-menu > li > a,
.client-home-cards .dropdown-menu > a,
.prism-dash-card .dropdown-menu > li > a,
.prism-dash-card .dropdown-menu > a {
    padding: 9px 16px !important;
    font-size: 0.84rem !important;
    color: #334155 !important;
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    text-decoration: none !important;
    transition: all 0.15s !important;
    background: transparent !important;
}
.client-home-cards .dropdown-menu > li > a:hover,
.client-home-cards .dropdown-menu > a:hover,
.prism-dash-card .dropdown-menu > li > a:hover,
.prism-dash-card .dropdown-menu > a:hover {
    background: #f1f5f9 !important;
    color: var(--brand-primary) !important;
}

/* ─── RESPONSIVIDADE DO HERO HEADER & DASHBOARD ─── */
@media (max-width: 991px) {
    .prism-hero-top {
        flex-direction: column !important;
        gap: 16px !important;
        align-items: flex-start !important;
    }
    .prism-hero-quick-actions {
        width: 100% !important;
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 10px !important;
    }
    .btn-hero-action {
        justify-content: center !important;
        padding: 10px 12px !important;
        font-size: 0.82rem !important;
        text-align: center !important;
    }
    .prism-hero-stats-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 12px !important;
    }
}

@media (max-width: 575px) {
    .prism-hero-header {
        padding: 20px 16px !important;
        border-radius: 16px !important;
        margin-bottom: 20px !important;
    }
    .prism-hero-title-area h1 {
        font-size: 1.35rem !important;
    }
    .prism-hero-title-area p {
        font-size: 0.82rem !important;
        line-height: 1.45 !important;
    }
    .prism-hero-crumb {
        flex-wrap: wrap !important;
        font-size: 0.72rem !important;
        gap: 4px !important;
    }
    .prism-hero-account-badge {
        font-size: 0.72rem !important;
        max-width: 100% !important;
        white-space: normal !important;
        word-break: break-word !important;
    }
    .prism-hero-quick-actions {
        grid-template-columns: 1fr 1fr !important;
        gap: 8px !important;
    }
    .btn-hero-action {
        font-size: 0.78rem !important;
        padding: 9px 8px !important;
        gap: 6px !important;
    }
    .prism-hero-stats-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 8px !important;
    }
    .prism-stat-pill {
        min-width: 0 !important;
        padding: 10px 12px !important;
        gap: 8px !important;
        border-radius: 12px !important;
    }
    .prism-stat-icon {
        width: 32px !important;
        height: 32px !important;
        font-size: 0.9rem !important;
        border-radius: 8px !important;
    }
    .prism-stat-label {
        font-size: 0.64rem !important;
    }
    .prism-stat-value {
        font-size: 1rem !important;
    }
}

@media (max-width: 400px) {
    .prism-hero-quick-actions {
        grid-template-columns: 1fr !important;
    }
    .prism-hero-stats-grid {
        grid-template-columns: 1fr !important;
    }
}

/* =================================================================== */
/* 26. Redesign — Tabela de Faturas (clientareainvoices.tpl)           */
/* =================================================================== */

.prism-invoices-wrap {
    background: #ffffff !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 18px !important;
    box-shadow: 0 2px 8px color-mix(in srgb, var(--brand-secondary) 5%, transparent) !important;
    overflow: hidden !important;
    margin-bottom: 24px !important;
}

.prism-invoices-header {
    padding: 16px 22px !important;
    border-bottom: 1px solid #e2e8f0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    background: #ffffff !important;
}

.prism-invoices-header-title {
    font-size: 1.05rem !important;
    font-weight: 700 !important;
    color: var(--brand-secondary) !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
}

.prism-invoices-badge {
    font-size: 0.78rem !important;
    font-weight: 600 !important;
    color: #64748b !important;
    background: #f1f5f9 !important;
    padding: 4px 12px !important;
    border-radius: 20px !important;
}

.prism-invoices-table {
    width: 100% !important;
    border-collapse: collapse !important;
    margin-bottom: 0 !important;
}

.prism-invoices-table thead th {
    background: #fafbfe !important;
    padding: 13px 18px !important;
    font-size: 0.76rem !important;
    font-weight: 700 !important;
    color: #64748b !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
    border-bottom: 1px solid #e2e8f0 !important;
    border-top: none !important;
    white-space: nowrap !important;
}

.prism-invoices-table tbody td {
    padding: 15px 18px !important;
    font-size: 0.88rem !important;
    border-bottom: 1px solid #f1f5f9 !important;
    vertical-align: middle !important;
    color: #1e293b !important;
    background: #ffffff !important;
}

.prism-invoices-table tbody tr:hover td {
    background: var(--brand-tint-1) !important;
}

.prism-invoices-table tbody tr.row-unpaid td {
    background: #fffcfc !important;
}
.prism-invoices-table tbody tr.row-unpaid:hover td {
    background: #fef5f5 !important;
}

/* Células */
.cell-invoice {
    display: flex !important;
    align-items: center !important;
    gap: 7px !important;
}
.inv-icon-badge {
    width: 26px !important;
    height: 26px !important;
    border-radius: 6px !important;
    background: color-mix(in srgb, var(--brand-primary) 7%, white) !important;
    color: var(--brand-primary) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 0.78rem !important;
    flex-shrink: 0 !important;
}
.inv-icon-badge.unpaid {
    background: #fee2e2 !important;
    color: #ef4444 !important;
}
.inv-id {
    font-weight: 700 !important;
    color: var(--brand-secondary) !important;
    font-size: 0.86rem !important;
    text-decoration: none !important;
}
.inv-id:hover { color: var(--brand-primary) !important; }

.cell-date {
    display: flex !important;
    align-items: center !important;
    gap: 5px !important;
    color: #475569 !important;
    font-size: 0.8rem !important;
    white-space: nowrap !important;
}
.cell-date i { color: #94a3b8 !important; font-size: 0.76rem !important; }
.cell-date.due-alert { color: #dc2626 !important; font-weight: 600 !important; }
.cell-date.due-alert i { color: #ef4444 !important; }

.cell-amount {
    font-weight: 700 !important;
    color: #1e293b !important;
    font-size: 0.86rem !important;
    white-space: nowrap !important;
}
.cell-amount.highlight { color: #dc2626 !important; }

/* Status Badges */
.badge-status {
    display: inline-flex !important;
    align-items: center !important;
    gap: 5px !important;
    padding: 3px 9px !important;
    border-radius: 20px !important;
    font-size: 0.7rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.02em !important;
    white-space: nowrap !important;
}
.badge-status .dot { width: 5px !important; height: 5px !important; border-radius: 50% !important; display: inline-block !important; }

.badge-status.status-paid,
.badge-status.status-pago {
    background: #ecfdf5 !important;
    color: #059669 !important;
    border: 1px solid #a7f3d0 !important;
}
.badge-status.status-paid .dot,
.badge-status.status-pago .dot { background: #10b981 !important; }

.badge-status.status-unpaid,
.badge-status.status-em-aberto,
.badge-status.status-aberto {
    background: #fef2f2 !important;
    color: #dc2626 !important;
    border: 1px solid #fecaca !important;
}
.badge-status.status-unpaid .dot,
.badge-status.status-em-aberto .dot,
.badge-status.status-aberto .dot { background: #ef4444 !important; }

.badge-status.status-cancelled,
.badge-status.status-cancelado {
    background: #f1f5f9 !important;
    color: #64748b !important;
    border: 1px solid #e2e8f0 !important;
}
.badge-status.status-cancelled .dot,
.badge-status.status-cancelado .dot { background: #94a3b8 !important; }

.badge-status.status-refunded,
.badge-status.status-reembolsado {
    background: color-mix(in srgb, var(--brand-primary) 7%, white) !important;
    color: #4338ca !important;
    border: 1px solid color-mix(in srgb, var(--brand-primary) 24%, white) !important;
}
.badge-status.status-refunded .dot,
.badge-status.status-reembolsado .dot { background: #6366f1 !important; }

/* Botões de Ação */
.cell-actions {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 5px !important;
}

.btn-action-pay {
    background: linear-gradient(135deg, var(--brand-secondary) 0%, var(--brand-primary) 100%) !important;
    color: #ffffff !important;
    border: none !important;
    padding: 5px 10px !important;
    border-radius: 7px !important;
    font-size: 0.74rem !important;
    font-weight: 700 !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 5px !important;
    cursor: pointer !important;
    text-decoration: none !important;
    box-shadow: 0 2px 6px color-mix(in srgb, var(--brand-primary) 20%, transparent) !important;
    white-space: nowrap !important;
}
.btn-action-pay:hover {
    background: linear-gradient(135deg, var(--brand-secondary) 0%, color-mix(in srgb, var(--brand-primary) 93%, white) 100%) !important;
    color: #ffffff !important;
    transform: translateY(-1px) !important;
}

.btn-action-view {
    background: var(--brand-tint-1) !important;
    border: 1px solid #e2e8f0 !important;
    color: #475569 !important;
    padding: 5px 9px !important;
    border-radius: 7px !important;
    font-size: 0.74rem !important;
    font-weight: 600 !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 4px !important;
    cursor: pointer !important;
    text-decoration: none !important;
    white-space: nowrap !important;
}
.btn-action-view:hover {
    background: color-mix(in srgb, var(--brand-primary) 7%, white) !important;
    color: var(--brand-primary) !important;
    border-color: #cbd5e1 !important;
}

.btn-icon-more {
    width: 26px !important;
    height: 26px !important;
    border-radius: 6px !important;
    border: 1px solid #e2e8f0 !important;
    background: #ffffff !important;
    color: #64748b !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 0.72rem !important;
    cursor: pointer !important;
    text-decoration: none !important;
}
.btn-icon-more:hover {
    background: #f1f5f9 !important;
    color: var(--brand-secondary) !important;
}

/* ─── DATATABLES CONTROLS OVERRIDES & ALINHAMENTO CENTRAL ─── */
.dataTables_wrapper {
    width: 100% !important;
    display: block !important;
    padding: 14px 18px 20px !important;
    box-sizing: border-box !important;
}

.dataTables_wrapper .dataTables_length {
    float: left !important;
    margin-bottom: 12px !important;
    font-size: 0.82rem !important;
    color: #64748b !important;
}

.dataTables_wrapper .dataTables_filter {
    float: right !important;
    margin-bottom: 12px !important;
}

.dataTables_wrapper .dataTables_length select {
    background: var(--brand-tint-1) !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 8px !important;
    padding: 4px 8px !important;
    font-size: 0.82rem !important;
    color: #475569 !important;
    margin: 0 6px !important;
}

.dataTables_wrapper .dataTables_filter input {
    background: var(--brand-tint-1) !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 8px !important;
    padding: 6px 12px !important;
    font-size: 0.82rem !important;
    color: #1e293b !important;
    margin-left: 8px !important;
}
.dataTables_wrapper .dataTables_filter input:focus {
    outline: none !important;
    border-color: var(--brand-primary) !important;
    background: #ffffff !important;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand-primary) 10%, transparent) !important;
}

.dataTables_wrapper .dataTables_info {
    float: none !important;
    clear: both !important;
    text-align: center !important;
    font-size: 0.82rem !important;
    color: #64748b !important;
    padding-top: 14px !important;
    margin: 0 auto !important;
    width: 100% !important;
}

.dataTables_wrapper .dataTables_paginate {
    float: none !important;
    text-align: center !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 4px !important;
    margin: 10px auto 0 !important;
    width: 100% !important;
}

.dataTables_wrapper .dataTables_paginate .paginate_button {
    border-radius: 6px !important;
    border: 1px solid #e2e8f0 !important;
    background: #ffffff !important;
    color: #475569 !important;
    font-size: 0.8rem !important;
    font-weight: 600 !important;
    padding: 5px 10px !important;
    margin: 0 2px !important;
    cursor: pointer !important;
    text-decoration: none !important;
}

.dataTables_wrapper .dataTables_paginate .paginate_button.current,
.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
    background: var(--brand-primary) !important;
    border-color: var(--brand-primary) !important;
    color: #ffffff !important;
}

.dataTables_wrapper .dataTables_paginate .paginate_button:hover {
    background: #f1f5f9 !important;
    color: var(--brand-secondary) !important;
}

/* ─── COMPACTAÇÃO DESKTOP / TABLET (992px a 1199px) ─── */
@media (min-width: 992px) and (max-width: 1199px) {
    .prism-invoices-table thead th {
        padding: 9px 5px !important;
        font-size: 0.68rem !important;
    }
    .prism-invoices-table tbody td {
        padding: 9px 5px !important;
        font-size: 0.76rem !important;
    }
    .cell-invoice {
        gap: 5px !important;
    }
    .inv-icon-badge {
        width: 22px !important;
        height: 22px !important;
        font-size: 0.7rem !important;
    }
    .inv-id {
        font-size: 0.8rem !important;
    }
    .cell-date {
        font-size: 0.74rem !important;
        gap: 3px !important;
    }
    .cell-date i {
        font-size: 0.7rem !important;
    }
    .cell-amount {
        font-size: 0.8rem !important;
    }
    .badge-status {
        padding: 2px 6px !important;
        font-size: 0.65rem !important;
        gap: 3px !important;
    }
    .badge-status .dot {
        width: 4px !important;
        height: 4px !important;
    }
    .btn-action-pay {
        padding: 4px 7px !important;
        font-size: 0.7rem !important;
        gap: 3px !important;
    }
    .btn-action-view {
        padding: 4px 6px !important;
        font-size: 0.7rem !important;
        gap: 3px !important;
    }
    .btn-icon-more {
        width: 22px !important;
        height: 22px !important;
        font-size: 0.65rem !important;
    }
}

/* ─── RESPONSIVIDADE EM CARDS LARGURA TOTAL (< 992px) ─── */
@media (max-width: 991px) {
    .prism-invoices-wrap {
        background: transparent !important;
        border: none !important;
        box-shadow: none !important;
        padding: 0 !important;
        margin: 0 0 20px 0 !important;
        width: 100% !important;
    }
    
    .prism-invoices-header {
        background: #ffffff !important;
        border: 1px solid #e2e8f0 !important;
        border-radius: 16px !important;
        margin-bottom: 14px !important;
        padding: 16px 20px !important;
        box-shadow: 0 2px 8px color-mix(in srgb, var(--brand-secondary) 5%, transparent) !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }
    
    .table-container,
    .table-responsive {
        padding: 0 !important;
        margin: 0 !important;
        background: transparent !important;
        border: none !important;
        overflow: visible !important;
        width: 100% !important;
    }

    .dataTables_wrapper {
        padding: 0 !important;
        width: 100% !important;
    }

    .dataTables_wrapper .dataTables_length,
    .dataTables_wrapper .dataTables_filter {
        float: none !important;
        width: 100% !important;
        display: flex !important;
        justify-content: center !important;
        align-items: center !important;
        margin-bottom: 12px !important;
    }

    .dataTables_wrapper .dataTables_filter input {
        width: 100% !important;
        max-width: 320px !important;
        margin-left: 0 !important;
    }

    .prism-invoices-table thead {
        display: none !important;
    }
    
    .prism-invoices-table,
    .prism-invoices-table tbody,
    .prism-invoices-table tbody tr {
        display: block !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }
    
    .prism-invoices-table tbody tr {
        background: #ffffff !important;
        border: 1px solid #e2e8f0 !important;
        border-radius: 16px !important;
        margin: 0 0 14px 0 !important;
        padding: 16px 20px !important;
        box-shadow: 0 2px 8px color-mix(in srgb, var(--brand-secondary) 5%, transparent) !important;
        width: 100% !important;
        transition: none !important;
    }
    
    .prism-invoices-table tbody tr:hover,
    .prism-invoices-table tbody tr:hover td {
        background: #ffffff !important;
    }
    .prism-invoices-table tbody tr.row-unpaid,
    .prism-invoices-table tbody tr.row-unpaid td,
    .prism-invoices-table tbody tr.row-unpaid:hover td {
        background: #fffcfc !important;
    }
    
    .prism-invoices-table tbody td {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        padding: 8px 0 !important;
        border: none !important;
        font-size: 0.88rem !important;
        background: transparent !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }
    
    .prism-invoices-table tbody td.col-inv-id {
        padding-bottom: 12px !important;
        margin-bottom: 8px !important;
        border-bottom: 1px solid #f1f5f9 !important;
    }
    
    .prism-invoices-table tbody td.col-inv-date::before {
        content: "Data da Fatura:" !important;
        font-weight: 600 !important;
        color: #64748b !important;
        font-size: 0.8rem !important;
    }
    
    .prism-invoices-table tbody td.col-inv-due::before {
        content: "Vencimento:" !important;
        font-weight: 600 !important;
        color: #64748b !important;
        font-size: 0.8rem !important;
    }
    
    .prism-invoices-table tbody td.col-inv-total::before {
        content: "Total:" !important;
        font-weight: 600 !important;
        color: #64748b !important;
        font-size: 0.8rem !important;
    }
    
    .prism-invoices-table tbody td.col-inv-status::before {
        content: "Status:" !important;
        font-weight: 600 !important;
        color: #64748b !important;
        font-size: 0.8rem !important;
    }
    
    .prism-invoices-table tbody td.col-inv-actions {
        padding-top: 12px !important;
        margin-top: 8px !important;
        border-top: 1px solid #f1f5f9 !important;
        justify-content: stretch !important;
        width: 100% !important;
    }
    
    .prism-invoices-table tbody td.col-inv-actions .cell-actions {
        width: 100% !important;
        justify-content: stretch !important;
        gap: 8px !important;
    }
    
    .prism-invoices-table tbody td.col-inv-actions .btn-action-pay,
    .prism-invoices-table tbody td.col-inv-actions .btn-action-view {
        flex: 1 !important;
        justify-content: center !important;
        padding: 10px 14px !important;
        font-size: 0.84rem !important;
    }
}

/* ═══════════════════════════════════════════════════════════════════════
   AJUSTES 19/08/2026 — cabeçalho dos cards e linha de serviço
   Fica por último de propósito: corrige o bloco de dashboard que veio do
   <style> do header.tpl (por volta da linha 4180), que tinha trocado o
   cabeçalho com gradiente por um cinza claro.
   ═══════════════════════════════════════════════════════════════════════ */

/* ── Cabeçalho dos cards do dashboard: volta o gradiente do tema ── */
.prism-dash-card-hdr {
    background: var(--gradiente-diagonal) !important;
    border-bottom: none !important;
}

.prism-dash-card-hdr h3 {
    color: #ffffff !important;
}

.prism-dash-card-hdr h3 i,
.prism-dash-card-hdr h3 .fa,
.prism-dash-card-hdr h3 .fas,
.prism-dash-card-hdr h3 .far {
    color: rgba(255, 255, 255, 0.75) !important;
}

.prism-dash-card-hdr .badge {
    background: rgba(255, 255, 255, 0.18) !important;
    color: #ffffff !important;
    border-radius: 6px !important;
}

.prism-dash-card-hdr .btn {
    background: rgba(255, 255, 255, 0.15) !important;
    border: 1px solid rgba(255, 255, 255, 0.3) !important;
    color: #ffffff !important;
}

.prism-dash-card-hdr .btn:hover,
.prism-dash-card-hdr .btn:focus {
    background: #ffffff !important;
    border-color: #ffffff !important;
    color: var(--cor-primaria) !important;
}

.prism-dash-card-hdr .btn i,
.prism-dash-card-hdr .btn .fa,
.prism-dash-card-hdr .btn .fas,
.prism-dash-card-hdr .btn .far {
    color: inherit !important;
}

/* ── Corpo dos cards: cada linha vira um mini card ── */
.prism-dash-card .list-group {
    padding: 12px 14px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
}

.prism-dash-card .list-group-item {
    background: var(--brand-tint-1) !important;
    border: 1px solid color-mix(in srgb, var(--brand-primary) 11%, white) !important;
    border-radius: 12px !important;
    padding: 14px 16px !important;
    transition: background 0.15s, border-color 0.15s, box-shadow 0.15s !important;
}

.prism-dash-card .list-group-item:hover {
    background: color-mix(in srgb, var(--brand-primary) 5%, white) !important;
    border-color: color-mix(in srgb, var(--brand-primary) 22%, white) !important;
    box-shadow: 0 3px 10px color-mix(in srgb, var(--brand-secondary) 7%, transparent) !important;
}

/* O radius de 15px vinha de quando a última linha encostava na borda do card.
   Agora existe respiro em volta, então todas as linhas usam o mesmo raio. */
.prism-dash-card .list-group-item:last-child {
    border-bottom-left-radius: 12px !important;
    border-bottom-right-radius: 12px !important;
}

/* ── Nome do serviço e domínio ── */
.prism-dash-item-content .div-service-name > span.font-weight-bold {
    color: var(--cor-secundaria) !important;
    font-size: 0.95rem !important;
    font-weight: 700 !important;
    letter-spacing: -0.01em;
}

.prism-dash-item-content .div-service-name > span.text-domain {
    display: inline-block !important;
    max-width: 100%;
    margin-top: 6px;
    padding: 2px 10px;
    border-radius: 999px;
    background: var(--brand-tint-3);
    border: 1px solid color-mix(in srgb, var(--brand-primary) 15%, white);
    color: color-mix(in srgb, var(--brand-secondary) 71%, white) !important;
    font-size: 0.78rem;
    line-height: 1.6;
}

/* Consentimento de SMS (cadastro e checkout): checkbox de tamanho clicavel e a
   letra miuda do opt-in logo abaixo. O bloco aparece quando existe um campo
   personalizado com "SMS" no nome; quem monta e o clientregister.tpl e o
   checkout.tpl do carrinho. */
.prism-sms-block input[type="checkbox"],
.prism-sms-field input[type="checkbox"] {
    width: 17px;
    height: 17px;
    margin: 4px 0 0;
    accent-color: color-mix(in srgb, var(--brand-secondary) 71%, white);
    cursor: pointer;
}
.prism-sms-block label,
.prism-sms-field label {
    cursor: pointer;
}
/* O iCheck embrulha o input no checkout, entao o span deixa de ser irmao dele:
   mirar o bloco cobre as tres telas. */
.prism-sms-block .field-help-text,
.prism-sms-field .field-help-text {
    display: block;
    margin-top: 6px;
    font-size: 0.78rem;
    line-height: 1.55;
    opacity: 0.85;
}

/* Bloco proprio do consentimento de SMS no checkout: fica fora do .prism-cpf-block
   de proposito (aquele some inteiro fora do Brasil). */
.prism-sms-block {
    margin-top: 18px;
}
.prism-sms-block .form-group {
    margin-bottom: 0;
}

/* Consentimento de SMS no checkout: mesma forma da linha do aceite dos Termos,
   logo abaixo dele — caixa a esquerda do texto, conjunto centralizado. */
.prism-sms-block {
    margin-top: 18px;
    margin-bottom: 14px;
}
.prism-sms-row {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin: 0 0 6px;
    font-size: 15px;
    font-weight: 400;
    color: #475569;
    cursor: pointer;
}
.prism-sms-row input[type="checkbox"] {
    width: 16px;
    height: 16px;
    margin: 0;
    accent-color: var(--brand-primary);
    flex-shrink: 0;
}
.prism-sms-block .field-help-text {
    display: block;
    max-width: 620px;
    margin: 0 auto;
    text-align: center;
}

/* Variante do consentimento para o cadastro: mesma linha do checkout (caixa a
   esquerda do texto), so que alinhada a esquerda, como o resto do formulario.
   A regra do checkbox acima vence por especificidade, entao a margem volta aqui. */
.prism-sms-block--start .prism-sms-row {
    justify-content: flex-start;
}
.prism-sms-block--start .prism-sms-row input[type="checkbox"] {
    margin: 0;
}
.prism-sms-block--start .field-help-text {
    max-width: none;
    margin: 0;
    text-align: left;
}
