

.ivcard-medium-text {
    font-size: 1.2rem;
}

/**********IV-CARD**********/
#iv-card {
    display: flex;
}
[contenteditable] {
    outline:none
}
.iv-card-content {
    display:flex
}
.ivcard-admin-btn-fixed {
    position:fixed;
    bottom:20px;
    right: 20px
}
/**********END IV-CARD**********/

/**********MODAL**********/
#ivcard-modal .preloader-wrapper {
    margin: 0 auto; 
    display:table;
}
#ivcard-modal .modal-footer {
    align-items:center;
    display:flex;
    justify-content:center;
}
[data-modal-id] {
    display:none;
}
.modal.modal-medium {
    max-width: 400px;
}
/**********END MODAL**********/

/**********INPUT UPLOAD**********/
.inputImageUpload {
    margin: 0 auto;
    width: 100px;
    height: 100px !important;
    border-radius: 50% !important;
    display: flex !important;
    justify-content: center;
    padding: 40px !important;
    align-items: center;
}
.inputImageUpload i {
    margin: 0 !important;
    font-size: 36px !important;
}
.ivInputUpload {
    display:flex;
    flex-direction:column;
    align-items:center;
}
.ivInputUpload .row {
    width: 100%
}
.ivInputUpload label {
    padding: 21px;
    width: 100%;
    border: 2px dashed var(--border-secondary);
    border-radius: 10px;
    position: relative;
    color: var(--text-tertiary) !important;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    text-align: center;
}
.ivInputUpload label .material-icons {
    font-size: 60px
}
.ivInputUpload input {
    width: 100%;
    position: absolute;
    top: 0;
    left: 0;
    opacity: 0;
    bottom: 0;
}

.ivcard-preview-img-input {
    display:flex;
    justify-content:center;
    align-items:center;
    height: 100px;
    margin-bottom: 20px;
    flex-direction: column;
    position:relative;
    width: 100px;
    margin: 0 auto;
}
.ivcard-preview-img-input img {
    object-fit: cover;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    background: var(--border-tertiary);
    border: 2px solid var(--scrollbar-thumb-hover);
}
.ivcard-preview-img-input .close-img {
    background: var(--bg-tertiary);
    position:absolute;
    top:5px;
    right: 0;
    width: 20px;
    height: 20px;
    display:flex;
    justify-content:center;
    align-items:center;
    border-radius: 80px;
    color: var(--text-primary);
    cursor:pointer
}
.ivcard-preview-img-input .close-img span {
    font-size: 12px
}

/*MODAL CROPP*/
.ivcard-image-cropp-header {
    display:flex;
    justify-content:space-between;
    align-items:center;
}
.ivcard-cropped-reset {
    border:1px solid var(--border-primary);
    border-radius:6px;
    display:flex;
    padding:5px;
    cursor:pointer
}
.ivcard-cropped-preview {
    width: 100%;
    height: 300px;
    display: flex;
    justify-content: center;
    align-items: center;
}
.ivcard-cropped-preview img {
    max-height: 400px
}
/*END MODAL CROPP*/
#gerarPdf .modal-content {
    overflow-x: hidden
}
.previewPdf iframe {
    border:none;
    transform: scale(0.6);
    width: 550px
}
.previewPdf {
    display: flex;
    background: var(--bg-primary);
    margin-top: -25%;
    position: relative;
    z-index: -100;
    background: var(--bg-secondary);
}
#gerarPdf button .preloader-wrapper {
    width: 20px;
    height: 20px
}
#gerarPdf button .preloader-wrapper .spinner-layer {
    border-color: var(--text-primary)
}
/**********END INPUT UPLOAD*********/

/**********NAVEGACAO**********/
.nav-ivcard {
    display:flex;
}
.nav-ivcard nav {
    height: 100vh;
    background: var(--bg-secondary);
    display: inline-flex;
    width: 60px;
    justify-content: center;
    z-index: 99;
}

/* Responsividade para mobile */
@media (max-width: 768px) {
    .nav-ivcard nav {
       display:none
    }
    .content-ivcard-edit .ivcard-template-container #ivcard-template {
        width: 100% !important;
        max-width: 100%;
        transform: scale(1) !important;
        height: calc(100vh - 160px);
        margin: 0 20px
    }
    
    .ivcard-template-inner {
        max-width: 100% !important;
        width: 100% !important;
    }
}
.nav-ivcard ul {
    width: 100% !important;
    margin: 0 !important;
}
.nav-ivcard ul li {
    float:inherit
}
.nav-ivcard li a {
    display: flex;
    justify-content: center;
    flex-direction: column;
    align-items: center;
    padding: 10px 0;
    color: var(--text-primary);
    opacity: 0.7;
    line-height: 1.5rem
}
.nav-ivcard li a.active {
    background: var(--bg-active);
    cursor:not-allowed;
    opacity:1
}
.nav-ivcard li a:hover {
    opacity: 1;
}

.nav-ivcard .legenda {
    font-size: 11px;
    word-wrap: break-word; /* Faz palavras longas quebrarem */
    white-space: normal;   /* Garante que o texto quebre normalmente */
    line-height: 1rem;
}
.nav-ivcard .ivcardColor {
    display:flex;
    padding: 0;
    flex-direction: row;
    align-items:center;
}
.nav-ivcard .ivcardColor input.transparencia {
    padding: 0;
    margin: 4px;
    width: 59%;
    border: 0;
    border-radius: 35px;
    /* overflow: hidden; */
    outline: none;
    border-bottom: 0 !important;
    box-shadow: none !important;
}
.nav-ivcard .ivcardColor label {
    border-radius: 20px;
    height: 10px;
    width: 40px;
    display: block;
    border: 1px solid var(--border-secondary);
    height: 40px;
}
.nav-item {
    display:flex;
    flex-direction:column;
    margin-bottom: 20px;
    padding: 0 20px;
}
.nav-item label {
    color: var(--text-secondary);
    margin-bottom:4px;
    text-transform:uppercase;
    margin-top: 20px;
}
.nav-item.header-item h3 {
    font-size: 1.2rem;
    font-weight: 600;
    margin: 0
}
.nav-item.header-item {

}
.nav-item.nav-item-remove {
    align-items:center;
}
.nav-item.nav-item-remove a {
    display:flex;
    align-items:center;
    cursor:pointer;
    font-weight: 600;
}
.input-4-cantos {
    display:flex;
}
.input-4-cantos input {
    background:#ffffff !important;
    color: var(--text-primary) !important;
    border:1px solid var(--border-secondary) !important;
    height: 30px !important;
    font-size: 0.775rem !important;
    text-align: center;
    padding-left:10px !important
}
.input-4-cantos input:first-child {
    border-radius: 6px 0 0 6px !important;
}
.input-4-cantos input:last-child {
    border-radius: 0 6px 6px 0 !important;
}
.navegacao-header-content {
    display:flex;
    flex-direction:column;
    gap: 10px
}
.navegacao-header-content .descricao {
 color:var(--text-tertiary)
}
.ivcard-nav-header {
    display:flex;
    justify-content:space-between;
    align-items:center;
    color: var(--text-primary);
    margin-bottom: 20px;
    padding: 20px;
}
.ivcard-nav-header .legenda {
    font-size: 18px;
    font-weight:bold;
}
.ivcard-nav-header .nav-header-icon {
    cursor:pointer
}
.ivcard-nav-list > div {
    display:flex;
    color: var(--text-primary);
    align-items: top;
    cursor:pointer;
    padding: 20px;
    transition: ease-in-out 0.3;
    border-bottom: 1px solid var(--border-secondary);
}
.ivcard-nav-list > div:hover {
    background: var(--bg-secondary)
}
.ivcard-nav-list > div .icone {
    margin-right: 10px;
}
.ivcard-nav-list > div:last-child {
    border-bottom: none
}
.ivcard-nav-list i {
    margin-left: auto;
    opacity:0.8
}
/*---------- Navegacao Icones ----------*/
.ivcard-nav-icones {
    display:flex;
    flex-wrap: wrap;
    margin-bottom: 44px;
    border-bottom: 1px solid var(--border-secondary);
    padding: 0 20px;
    padding-bottom: 20px;
    justify-content: center;
}
.ivcard-nav-icones span {
    display:flex;
    justify-content:center;
    padding: 10px;
    background: var(--border-secondary);
    border-radius:8px;
    transition: all 0.3s;
    cursor:pointer;
    align-items:center;
    margin: 8px;
    width: 45px;
    align-items: center;
}
.ivcard-nav-icones span:hover {
    background: var(--bg-tertiary)
}
.ivcard-nav-icones svg {
     width: 30px;
     fill: var(--text-primary);
}
.ivcard-nav-icones svg path {
    stroke: var(--text-primary) !important;
}
.ivcard-nav-icones svg[data-icon="signal"] path {
    stroke:none !important;
}
.ivcard-nav-icones i {
    font-size: 1.5em;
    color: var(--text-primary)
}
.navegacao-edicao-icone {
    background: var(--bg-secondary);
    display:flex;
    justify-content:center;
    margin-bottom: 15px;
    border-radius: 6px;
    padding:10px;
    color: var(--text-primary);
    width: 50px;
    height: 50px;
    border-radius: 50px;
    align-items: center;
    margin: 0 auto;
    font-size: 22px;
}
.ivcard-nav-list .legenda {
    font-size: 16px;
    font-weight:bold
}
.ivcard-nav-list .legenda p {
    font-size: 12px;
    margin:0;
    font-weight: 300
}

/**********END NAVEGACAO**********/

.navegacao-dados {
    display:flex
}
.navegacao-inner {
    background: var(--bg-dashboard);
    height: 100vh;
    overflow-y: auto;
    overflow-x: hidden;
    width: 520px;
    transition: all 0.3s;
    margin-left: -350px;
    display:flex;
    margin-left: -520px;
}

/* Responsividade para mobile - área de conteúdo */
@media (max-width: 768px) {
    .navegacao-dados {
        position: fixed;
        left: 0;
        width: 100%;
        height: calc(100vh);
        z-index: 999;
        transition: transform 0.3s ease;
    }
    
    .navegacao-dados.open {
        transform: translateX(0);
    }
    
    .navegacao-inner {
        width: 100%;
        height: 100%;
        margin-left: 0;
        background: var(--bg-secondary);
    }
    
    .iv-card-content {
        margin-top: 60px;
        padding-top: 20px;
    }
    
    /* Ajustar preview para mobile */
    .ivcard-preview {
        margin-top: 20px;
        padding: 0 10px;
    }
    
    /* Melhorar interface de edição no mobile */
    .navegacao-inner .nav-item {
        padding: 0 15px;
        margin-bottom: 15px;
    }
    
    .navegacao-inner .nav-item label {
        font-size: 12px;
        margin-bottom: 8px;
    }
    
    .navegacao-inner input[type="text"], 
    .navegacao-inner textarea, 
    .navegacao-inner select {
        font-size: 16px !important; /* Evita zoom no iOS */
        padding: 12px !important;
        margin-bottom: 10px;
    }
    
    .navegacao-inner > .btn {
        padding: 12px 20px;
        font-size: 14px;
        margin: 5px 0;
        width: 100%;
    }
    
    /* Melhorar botões de ação */
    .ivcard-nav-buttons {
        flex-direction: column;
        gap: 10px;
        margin-bottom: 20px;
    }
    
    .ivcard-nav-btn {
        width: 100%;
        padding: 12px;
        font-size: 14px;
    }
    
    /* Melhorar grid de ícones no mobile */
    .ivcard-nav-icones {
        gap: 8px;
        padding: 0 10px;
    }
    
    .ivcard-nav-icones span {
        width: 50px;
        height: 50px;
        padding: 8px;
    }
    
    .ivcard-nav-icones svg {
        width: 24px;
    }
    
    .ivcard-nav-icones i {
        font-size: 1.2em;
    }
}
.navegacao-inner > div {
    width: 100%
}
.navegacao-dados.close {
    opacity: 0;
    min-width: 1px;
    visibility:hidden
}
.navegacao-close {
    display:flex;
    align-items:center;
    height:100%
}
.navegacao-dados-close {
    background: var(--bg-secondary);
    padding:30px 0;
    border-radius:0 100% 100% 0;
    color: var(--text-primary);
    cursor:pointer;
}
/**********END NAVEGACAO DADADOS**********/

/**********MOBILE FAB E MODAL**********/
.ivcard-mobile-fab {
    position: fixed;
    bottom: 20px;
    right: 20px;
    z-index: 1000;
    display:none;
}

.ivcard-mobile-fab .btn-floating {
    background-color: var(--primary);
    box-shadow: 0 4px 8px rgba(0,0,0,0.3);
    transition: all 0.3s ease;
}

.ivcard-mobile-fab .btn-floating:hover {
    background-color: var(--primary-dark);
    transform: scale(1.1);
}

/* Botão flutuante fixo de QR Code (renderização pública) */
.ivcard-qr-fab {
    position: fixed;
    bottom: 2px !important;
    right: 30px !important;
    z-index: 1000;
}

.ivcard-qr-fab .btn-floating {
    background-color: var(--primary);
    box-shadow: 0 4px 8px rgba(0,0,0,0.3);
    transition: all 0.3s ease;
}

.ivcard-qr-fab .btn-floating:hover {
    background-color: var(--primary-dark);
    transform: scale(1.1);
}

/* Modal Bottom Sheet Customizado */
#ivcard-mobile-menu.modal.bottom-sheet {
    max-height: 80vh;
    border-radius: 20px 20px 0 0;
    width:100% !important
}

#ivcard-mobile-menu .modal-content {
    padding: 20px;
}

#ivcard-mobile-menu .modal-content h4 {
    margin-bottom: 20px;
    color: var(--text-primary);
    font-weight: 600;
}

#ivcard-mobile-menu .collection {
    border: none;
    margin: 0;
}

#ivcard-mobile-menu .collection-item {
    border: none;
    padding: 15px 20px;
    margin-bottom: 5px;
    border-radius: 10px;
    background-color: var(--bg-secondary);
    transition: all 0.3s ease;
}

#ivcard-mobile-menu .collection-item:hover {
    background-color: var(--bg-hover);
    transform: translateX(5px);
}

#ivcard-mobile-menu .collection-item i {
    margin-right: 15px;
    vertical-align: middle;
}

/* Painel de conteúdo mobile */
.ivcard-mobile-panel {
    margin-top: 20px;
    border-top: 1px solid var(--border-primary);
    padding-top: 20px;
}

.ivcard-mobile-panel .modal-content {
    padding: 0;
}

/* Responsividade para o FAB */
@media (max-width: 768px) {
    .ivcard-mobile-fab {
        bottom: 15px;
        right: 15px;
        display:block
    }
}

/**********END MOBILE FAB E MODAL**********/

/**********NAVEGACAO MODELOS**********/

.ivcard-modelos {
    display:flex;
    flex-wrap: wrap;
    align-items: center;
}
.ivcard-modelos .modelo-item {
    width: 50%;
    display: flex;
    justify-content: center;
    padding: 5px;
}
.ivcard-modelos .modelo-item img {
    max-width: 100%;
    object-fit: cover;
}
/*********END NAVEGACAO MODELOS********/

/**********CONTENT**********/
.content-ivcard {
    flex:1;
    padding: 10px;
    align-items: center;
    display: flex;
    justify-content: center;
    height: 100vh;
    position: relative;
}
.ivcard-render .content-ivcard {
    height: 100vh;
    padding: 0;
    margin-top:0;
}
/********END CONTENT**********/

/**********TEMPLATE**********/
#ivcard-template {
    max-width: 360px;
    width: 100%;
    height: 690px;
    overflow: hidden;
    border-radius: 23px;
    background-size: cover !important;
    background-position:center !important;
    border: 5px solid #434343;
    position: relative;
}

/* Overlay escuro para melhorar legibilidade do texto sobre a imagem de fundo */
#ivcard-template::before {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, var(--background-opacity, 0));
    z-index: 1;
    pointer-events: none;
}

/* Garantir que o conteÃºdo fique acima do overlay */
.ivcard-template-inner {
    display:flex;
    flex-direction:column;
    background-size:cover !important;
    background-position:center !important;
    height: 100%;
    overflow: auto;
    position: relative;
    max-width: 540px;
    width: 100%;
    overflow-x: hidden;
    z-index: 2;
}

.ivcard-render #ivcard-template {
    /* height: 90px; */
    width: 100%;
    max-width: 100%;
    display:flex;
    justify-content:center;
    align-items:center;
    height: 100%;
    border-radius: 0;
    background-repeat: no-repeat;
    background-attachment: fixed;
    background-size: cover !important;
    background-position: center !important;
    overflow: auto;
    border:none
}

/* Estilo da barra de rolagem */
.ivcard-template-inner::-webkit-scrollbar {
    width: 8px;
}

/* Estilo da pista (track) da barra de rolagem */
.ivcard-template-innerl::-webkit-scrollbar-track {
    background: #f1f1f1;
    border-radius: 10px;

}

/* Estilo do botÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o (thumb) da barra de rolagem */
.ivcard-template-inner::-webkit-scrollbar-thumb {
    background: #b9b9b9;
    border-radius: 10px;
}

/* Estilo do botÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â£o (thumb) ao passar o mouse */
.ivcard-template-inner::-webkit-scrollbar-thumb:hover {
    background: var(--border-tertiary);
}

.ivcard-render .ivcard-template-inner {overflow: unset;}

.input-item {
    display:flex;
    flex-direction:column;
}

.navegacao-inner input[type="text"], textarea, select, .note-frame,.note-toolbar, .note-btn, .note-dropdown-menu {
    color: var(--text-primary) !important;
    background: var(--bg-primary) !important;
    border: 1px solid var(--border-primary) !important;
    border-radius: 8px !important;
    padding: 12px 16px !important;
    font-size: 14px !important;
    transition: all 0.3s ease !important;
}
.navegacao-inner input[type="text"], textarea, select {
    border-radius: 6px !important;
    max-width: auto !important;
    width: auto !important;
    padding-left: 10px !important;
}
.navegacao-inner input[type="text"] {
 padding:0 !important;
  padding-left:10px !important
}
.note-btn {
    background: var(--bg-secondary) !important
}
.navegacao-inner input:focus {
    border-color: var(--primary) !important;
    box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.1) !important;
    outline: none !important;
}
.navegacao-inner > .btn {
    background: var(--primary);
    color: var(--text-primary);
    border: none;
    border-radius: 8px;
    padding: 10px 20px;
    font-weight: 500;
    box-shadow: var(--shadow-sm);
    transition: all 0.3s ease;
}
.navegacao-inner .btn:hover {
    background: var(--primary-dark);
    box-shadow: var(--shadow-md);
    transform: translateY(-1px);
}
.template-top {
    /* height: 43px; */
    display:flex;
    justify-content: center;
    flex-direction: column;
    padding: 0 20px;
}
.template-top h3 {
    font-size: 22px;
    color: var(--text-primary);
    text-align:center;
    margin: 20px 0;
    letter-spacing: 0.075rem;
    word-wrap: break-word;
    white-space: normal;
}
.template-top .description {
    font-size: 18px;
    color: var(--text-primary);
    text-align:center;
    margin: 0;
    font-weight: 300;
    word-wrap: break-word; /* Faz palavras longas quebrarem */
    white-space: normal;   /* Garante que o texto quebre normalmente */
}
.template-top .description p {
    padding:0 !important; 
    margin: 0
}
.template-top .descricaoProfissional {
 word-wrap:break-word;
 font-size: 16px;
 text-align:center
}
.template-top h1 {
    margin: inherit;
    line-height: inherit;
}
.template-middle {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 4px;
}
.template-footer {
    /* background:#898784; */
    /* height: 14px; */
    display: flex;
    justify-content: center;
    align-items: end;
    padding: 10px;
    flex: auto;
    opacity: 0.6
}
.template-footer:hover {
    opacity: 1;
    transition: all 0.3s
}
.template-top .imagem .template-foto {
    width: 144px;
    height: 144px;
    border-radius: 50%;
    border: 0.5vh solid red;
    background-size:cover;
    background-position:center center;
    background-repeat: no-repeat;
}
.template-top .imagem {
    display:flex;
    justify-content:center;
    align-items: center;
    padding: 20px 0;
}
.template-top .modelo-imagem {
    width: 144px;
    height: 144px;
    border-radius: 80%;
    object-fit: cover;
    border: solid;
}
.template-top .logotipo {
    display:flex;
    justify-content:center;
    align-items: center;
    padding: 10px 0;
}
.template-top .logotipo img {
    height: auto;
    width: auto;
    max-width: 200px;
    object-fit: contain;
}
.ivcard-icones .ivcard-icone-icon i {
    
}

.ivcard-icones {
    display:flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    padding: 20px 0;
}
/*Icone Template*/
.ivcard-icones span.ivcard-icon-inner a.ivcard-item-icone {
    display: inherit;
    justify-content: center;
    align-items: center;
    margin: 1px;
    border:2px solid;
    flex-direction: column;
    color: var(--text-primary);
    text-decoration:none
}
.ivcard-icone-icon {
   display:flex;
   justify-content:center;
}
a.ivcard-item-icone i, a.ivcard-item-icone span svg {
    width:inherit !important
}
.ivcard-icones span.ivcard-icon-inner {
    position:relative;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 10px;
}
.info {
    background:transparent !important;
    border-radius:4px;
    padding: 10px;
    font-size: 12px;
    display:flex;
    justify-content:center;
    align-items:center;
    text-transform:uppercase
}
.info img {
    height: 20px
}
.info i {
    font-size: 2vh
}

.ivcard-icon-inner .icone-title {
    text-transform:uppercase;
    font-size: 8px;
    font-weight:bold;
    display: flex;
    text-align: center;
}
.ivcard-item-edit .dropdown-content li>a>i {
    margin-right:5px
}
.ivcard-item-edit.item-selecionado .btnEdit {
    opacity:1;
    visibility:visible;
}
.ivcard-item-edit.item-selecionado:before {
    content:"";
    /* border: 3px solid #b0b2fb; */
    border-radius: 9px;
    position:absolute;
    top:0;
    left:0;
    right:0;
    bottom:0;
}
.ivcard-item-edit .btnEdit {
    position:absolute;
    top: -25px;
    opacity:0;
    visibility:hidden;
    transition: all 0.3s
}
.ivcard-item-edit .btnEdit a {
    background:#fff;
    color:#000;
    box-shadown: 0 0 0 5px #000
}
.ivcard-item-edit .btnEdit .dropdown-content li>a,.ivcard-item-edit .btnEdit .dropdown-content li>span {
    font-size: 1.5vh
}
.ivcard-item-edit .dropdown-content {
    min-width:130px;
}
.ivcard-item-edit {
    position:relative;
}
.ivcard-item-edit.item-selecionado {
    opacity: 0.6;
}
/**********END TEMPLATE**********/
/**********SHARE**********/
.ivcard-share-link {
    align-items: center;
    background-color: rgba(0, 0, 0, .05);
    border-radius: 4px;
    display: flex;
    font-size: 16px;
    height: 40px;
    justify-content: space-between;
    line-height: 50px;
    padding: 0 10px;
    width: 100%;
}
.share-text {
    color: #333;
    font-weight: 500;
    line-height: 18px;
    overflow: hidden;
    text-align: center;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.share-copy-link {
    cursor:pointer
}
.modal-share {
    display:flex;
    flex-direction:column;
    align-items:center;
}
.modal-share h5 {
    font-weight:500;
    font-size:1.4rem;
    text-align: center;
}
#qrcodeCanvas {
    margin: 20px;
    border: 10px solid #dfdfdf;
    width: 200px !important;
    height: auto !important
}
#qrcodeCanvas canvas {
    width: 180px;
    height:auto !important
}

.qr-label {
    font-weight: 600;
    position:relative;
    width: 100%;
    text-align:center;
    
}
.qr-label:before {
    content:"";
    position:absolute;
    height:1px;
    background: var(--border-secondary);
    left:0;
    right:0;
    top:50%;
    transform: translatey(-50%);
}
.qr-label span {
    background:#fafafa;
    position:relative;
    padding:10px
}
.ivcard-share-footer {
    margin-top: 20px;
}
.ivcard-share-footer img {
    width: 80px
}
#compartilharLinks {
    max-width: 400px;
    border-radius: 16px
}
.social-icons {
    display:flex;
    justify-content: center;
    width: 100%;
    margin-bottom: 8px;
}
.social-icons a {
    font-size: 25px;
    padding: 10px
}


/**********END SHARE**********/
/*********TABS**********/
.tabs .tab a {
    display: flex !important;
    justify-content:center;
    align-items:center;
    background:#d0d0d0!important;
    color:#333 !important
}
.tabs   {
    padding-bottom: 20px !important;
}
.tabs .tab a.active {
    background: var(--text-tertiary) !important;
    color: var(--text-primary) !important
}

/* Estilos especÃ­ficos para abas na navegaÃ§Ã£o */
.navegacao-inner .tabs {
    margin-bottom: 20px;
}

.navegacao-inner .tabs .tab a {
    padding: 12px 20px;
    font-size: 14px;
    font-weight: 500;
    border-radius: 8px;
    transition: all 0.3s ease;
    color: var(--text-tertiary);
    background: transparent;
    border: 1px solid transparent;
    margin-right: 8px;
}

.navegacao-inner .tabs .tab a:hover {
    background: var(--bg-hover) !important;
    color: var(--text-primary) !important;
    border-color: var(--border-primary) !important;
}

.navegacao-inner .tabs .tab a.active {
    background: var(--primary) !important;
    color: #fff !important;
    border-color: var(
    --primary) !important;
    box-shadow: var(
    --shadow-primary);
}

.navegacao-inner .tabs .tab a i {
    margin-right: 4px;
    font-size: 16px;
}

.navegacao-inner .tab-content {
    padding: 20px 0;
}

.navegacao-inner .tab-content > div {
    display: none;
    background: var(--bg-primary);
    border-radius: 12px;
    box-shadow: var(--shadow-card);
    margin-bottom: 16px;
    border: 1px solid var(--border-primary);
    padding: 20px;
}

.navegacao-inner .tab-content > div.active {
    display: block;
}

/* Inicializar primeira aba como ativa */
.navegacao-inner .tab-content > div:first-child {
    display: block;
}
/*********END TABS**********/
/**********BTN**********/
.ivcard-btn-wrapper {
    position: relative !important;
    top: auto !important;
    bottom: auto !important;
    right: auto !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

.ivcard-btn-wrapper.active > a {
    background: var(--bg-tertiary) !important
}
/**********BLOCKS**********/
.ivcard-block-content {
    display:flex;
    width: 100%;
    flex-direction: column;
    justify-content:center;
}
.ivcard-block-content .block-item {
    margin-bottom:20px;
    border-radius: 30px;
    width: 100%;
    min-height: 50px;
    padding: 0;
    background: var(--block-bg-color, #b0b0b0);
    border: 2px solid var(--block-border-color, transparent);
    overflow: hidden;
}

/*----------LINKS----------*/
.ivcard-block-item-link {
    width: 100%;
    justify-content:center;
    align-items:center
}
.ivcard-block-item-link>a {
    width: 100%
}
.ivcard-block-item-link .ivcard-block-inner {
    justify-content: space-between;
    height: auto;
    display: flex;
    cursor: pointer;
    margin: 2px;
    align-items: center;
    position: relative;
}
.ivcard-block-item-link .block-link-image, .block-link-image-place {
    width: 50px;
    height: 50px;
    margin: 2px;
}
.ivcard-block-item-link .block-link-image img {
    object-fit: cover;
    width: 100%;
    HEIGHT: 100%;
    BORDER-RADIUS: 80%;
}

/*----------VIDEOS----------*/
.ivcard-block-item-video {
    width: 100%;
}
.ivcard-block-item-video>a {
    width: 100%
}
.ivcard-block-item-video .ivcard-block-inner {
    justify-content: space-between;
    height: auto;
    display: flex;
    cursor:pointer
}
.ivcard-block-item-video .block-video-thumbnail {
    width: 100%;
    position: relative;
    border-radius: 8px;
    overflow: hidden;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    /* Altura fixa responsiva usando aspect-ratio (16:9 padrão para vídeos) */
    aspect-ratio: 16 / 9;
    min-height: 180px;
    max-height: 400px;
}
.ivcard-block-item-video .block-video-thumbnail img {
    object-fit: cover;
    width: 100%;
    height: 100%;
    border-radius: 8px;
    transition: transform 0.2s ease;
}
.ivcard-block-item-video .block-video-thumbnail:hover img {
    transform: scale(1.05);
}
.video-placeholder {
    color: rgba(255, 255, 255, 0.8);
    font-size: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
}
.video-placeholder i {
    font-size: 24px;
}
.ivcard-block-item-video .video-play-icon {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: rgba(255, 255, 255, 0.95);
    border-radius: 50%;
    width: 50px;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
    transition: all 0.2s ease;
}
.ivcard-block-item-video .video-play-icon:hover {
    transform: translate(-50%, -50%) scale(1.1);
    background: rgba(255, 255, 255, 1);
}
.ivcard-block-item-video .video-play-icon i {
    color: #333;
    font-size: 36px;
     /* Centralizar melhor o Ã­cone */
}
.ivcard-block-item-video .block-video-duration {
    font-size: 10px;
    color: #666;
    margin-left: 8px;
}
.video-provider-badge {
    position: absolute;
    top: 12px;
    right: 20px;
    background: rgba(0, 0, 0, 0.8);
    color: white;
    font-size: 8px;
    font-weight: bold;
    padding: 2px 4px;
    border-radius: 3px;
    line-height: 1;
}
.video-provider-badge span {
    font-family: Arial, sans-serif;
}

/* VÃ­deo Inline nos Blocos */
.ivcard-video-block {
    width: 100%;
    margin: 0 auto;
}

/* Thumbnail de vídeo com altura fixa responsiva */
.ivcard-video-block .block-video-thumbnail {
    width: 100%;
    position: relative;
    border-radius: 8px;
    overflow: hidden;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    /* Altura fixa responsiva usando aspect-ratio (16:9 padrão para vídeos) */
    aspect-ratio: 16 / 9;
    min-height: 180px;
    max-height: 400px;
}

.ivcard-video-block .block-video-thumbnail img {
    object-fit: cover;
    width: 100%;
    height: 100%;
    border-radius: 8px;
    transition: transform 0.2s ease;
    max-width: 100%;
    max-height: 100%;
}

.ivcard-video-block .block-video-thumbnail:hover img {
    transform: scale(1.05);
}

.video-embed-container {
    background: #f8f9fa;
    border-radius: 12px;
    padding: 16px;
}

.video-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
}

.video-title {
    margin: 0;
    font-size: 16px;
    font-weight: 500;
    color: #333;
}

.video-close-btn {
    background: none;
    border: none;
    cursor: pointer;
    padding: 4px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background-color 0.2s;
}

.video-close-btn:hover {
    background-color: #e9ecef;
}

.video-close-btn i {
    font-size: 20px;
    color: #666;
}

.video-iframe-wrapper {
    position: relative;
    width: 100%;
    height: 0;
    padding-bottom: 56.25%; /* Aspect ratio 16:9 */
    border-radius: 8px;
    overflow: hidden;
}

.video-iframe-wrapper iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: none;
}
.block-link-title h3.block-title-text {
    color: var(--block-text-color, #fff);
    font-size: 14px;
    text-align: center;
    word-break: break-word;
    margin:0;
}
.block-link-title {
    display:flex;
    align-items:center;
    padding: 8px;
    flex: 1;
    justify-content: center;
}

/*----------MÚSICA----------*/
.ivcard-block-item-music {
    width: 100%;
}
.ivcard-block-item-music>a {
    width: 100%
}
.ivcard-block-item-music .ivcard-block-inner {
    justify-content: space-between;
    height: auto;
    display: flex;
    cursor:pointer;
    padding: 0 2px;
    align-items: center;
}
.ivcard-block-item-music .block-music-thumbnail {
    width: 50px;
    height: 50px;
    position: relative;
    border-radius: 80%;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s ease;
}
.ivcard-block-item-music .block-music-thumbnail img {
    object-fit: cover;
    width: 100%;
    height: 100%;
    border-radius: 80%;
    transition: transform 0.2s ease;
}
.ivcard-block-item-music .block-music-thumbnail:hover img {
    transform: scale(1.05);
}
.music-placeholder {
    color: rgba(255, 255, 255, 0.8);
    font-size: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
}
.music-placeholder i {
    font-size: 24px;
}
.ivcard-block-item-music .music-play-icon {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: rgba(255, 255, 255, 0.95);
    border-radius: 50%;
    width: 50px;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
    transition: all 0.2s ease;
}
.ivcard-block-item-music .music-play-icon:hover {
    transform: translate(-50%, -50%) scale(1.1);
    background: rgba(255, 255, 255, 1);
}
.ivcard-block-item-music .music-play-icon i {
    color: #333;
    font-size: 16px;
}
.music-provider-badge {
    position: absolute;
    top: 4px;
    right: 4px;
    background: rgba(0, 0, 0, 0.8);
    color: white;
    font-size: 8px;
    font-weight: bold;
    padding: 2px 4px;
    border-radius: 3px;
    line-height: 1;
}
.music-provider-badge span {
    font-family: Arial, sans-serif;
}

/* Container de embed de música */
.music-embed-container {
    width: 100%;
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}
.music-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 16px;
    background: #f8f9fa;
    border-bottom: 1px solid #e9ecef;
}
.music-title {
    margin: 0;
    font-size: 16px;
    font-weight: 500;
    color: #333;
}
.music-close-btn {
    background: none;
    border: none;
    cursor: pointer;
    padding: 4px;
    border-radius: 4px;
    transition: background-color 0.2s ease;
}
.music-close-btn:hover {
    background-color: #e9ecef;
}
.music-close-btn i {
    font-size: 18px;
    color: #666;
}
.music-iframe-wrapper {
    position: relative;
    width: 100%;
    height: 200px;
    padding: 20px;
}
.music-iframe-wrapper iframe {
    width: 100%;
    height: 100%;
    border: none;
}

/* Logos das plataformas de música */
.platform-logo {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.platform-logo svg {
    width: 35px;
    height: 35px;
    color: #333;
}

.spotify-logo svg {
    color: #1DB954; /* Spotify green */
}

.soundcloud-logo svg {
    color: #FF5500; /* SoundCloud orange */
}

/**********END BLOCKS**********/

/* ValidaÃ§Ã£o de URL de vÃ­deo */
.url-validation {
    margin-top: 8px;
    padding: 8px 12px;
    border-radius: 4px;
    font-size: 12px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.valid-url {
    background-color: #e8f5e8;
    color: #2e7d32;
    border: 1px solid #4caf50;
}

.valid-url i {
    color: #4caf50;
    font-size: 16px;
}

.invalid-url {
    background-color: #ffebee;
    color: #c62828;
    border: 1px solid #f44336;
}

.invalid-url i {
    color: #f44336;
    font-size: 16px;
}

/* Input com botão de limpar */
.input-with-clear {
    position: relative;
    display: flex;
    align-items: center;
}

.input-with-clear input {
    flex: 1;
    padding-right: 45px !important;
    width: 100%;
    box-sizing: border-box !important;
    padding-left: 10px !important;
}

.clear-input {
    position: absolute;
    right: 15px;
    top: 0;
    bottom: 5px;
    margin: auto;
    cursor: pointer;
    background: #f5f5f5;
    border-radius: 50%;
    width: 16px;
    height: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s ease;
    opacity: 0.7;
    z-index: 10;
}

.clear-input:hover {
    background: #e0e0e0;
    opacity: 1;
    transform: scale(1.1);
}

.clear-input i {
    font-size: 10px;
    color: #666;
    line-height: 1;
    margin: 0;
    padding: 0;
}

.clear-input:hover i {
    color: #333;
}

/* Contador de caracteres */
.char-counter {
    font-size: 11px;
    color: #666;
    text-align: right;
    margin-top: 2px;
    padding-right: 5px;
}

.char-limit-warning {
    color: #ff9800;
}

.char-limit-exceeded {
    color: #f44336;
    font-weight: bold;
}

/* Botão Biografia no Template Principal - Usando mesmo design dos blocos */
.biografia-container {
    display: flex;
    justify-content: center;
    margin-bottom: 20px;
}

.biografia-button {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border-radius: 30px; /* Mesmo border-radius dos blocos */
    background: var(--block-bg-color, #b0b0b0); /* Usa mesma variável dos blocos */
    border: 2px solid var(--block-border-color, transparent); /* Usa mesma variável dos blocos */
    color: var(--block-text-color, #fff); /* Usa mesma variável de texto dos blocos */
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.3s ease;
    min-height: 50px; /* Mesma altura mínima dos blocos */
    width: 100%;
    max-width: 300px; /* Largura máxima para não ficar muito grande */
}

.biografia-button.editable:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
    opacity: 0.9;
}

.biografia-icon {
    font-size: 18px;
}

.biografia-text {
    font-size: 14px;
    font-weight: 500;
    /* Herda estilos de texto dos blocos através do StyleManager */
}

.biografia-edit-icon {
    font-size: 16px;
    opacity: 0.7;
}

/* Modo Texto Direto da Biografia */
.biografia-texto-direto {
    padding: 10px;
}

.biografia-link {
    text-decoration: none;
    color: inherit;
    cursor: pointer;
    display: block;
    transition: opacity 0.2s ease;
}

.biografia-link:hover {
    opacity: 0.8;
}

.biografia-texto-content {
    
}

/* ===== BLOCO GALERIA ===== */
.galeria-block {
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
    transition: all 0.3s ease;
}

.galeria-block:hover {
    box-shadow: 0 4px 16px rgba(0,0,0,0.15);
}

.galeria-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 15px;
    display:none
}

.galeria-title {
    margin: 0;
    font-size: 18px;
    font-weight: 600;
    color: #333;
}

.galeria-counter {
    font-size: 12px;
    color: #666;
    background: #f0f0f0;
    padding: 4px 8px;
    border-radius: 12px;
}

.galeria-scroll-container {
    position: relative;
    margin-bottom: 15px;
}

.galeria-scroll {
    width: 100%;
    height: 120px;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-behavior: smooth;
    scrollbar-width: none; /* Firefox */
    -ms-overflow-style: none; /* IE/Edge */
}

.galeria-scroll::-webkit-scrollbar {
    display: none; /* Chrome/Safari */
}

.galeria-images {
    display: flex;
    gap: 12px;
    height: 100%;
    transition: transform 0.3s ease;
}

.galeria-image-item {
    flex-shrink: 0;
    width: 100px;
    height: 100px;
    border-radius: 8px;
    overflow: hidden;
    cursor: pointer;
    position: relative;
    transition: all 0.3s ease;
    border: 2px solid transparent;
}

.galeria-image-item:hover {
    transform: scale(1.05);
    border-color: #007bff;
}

.galeria-image-item.active {
    border-color: #007bff;
    transform: scale(1.1);
    box-shadow: 0 4px 12px rgba(0,123,255,0.3);
}

.galeria-image-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.galeria-image-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0,0,0,0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.galeria-image-item:hover .galeria-image-overlay {
    opacity: 1;
}

.galeria-image-overlay i {
    color: white;
    font-size: 24px;
}

/* Navegação */
.galeria-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: rgba(255,255,255,0.9);
    border: 1px solid #ddd;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s ease;
    z-index: 10;
}

.galeria-nav:hover {
    background: #007bff;
    color: white;
    box-shadow: 0 2px 8px rgba(0,123,255,0.3);
}

.galeria-nav:disabled {
    opacity: 0.3;
    cursor: not-allowed;
}

.galeria-nav-prev {
    left: -16px;
}

.galeria-nav-next {
    right: -16px;
}

.galeria-nav i {
    font-size: 18px;
}

/* Indicadores */
.galeria-indicators {
    display: flex;
    justify-content: center;
    gap: 6px;
}

.galeria-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #ddd;
    cursor: pointer;
    transition: all 0.3s ease;
}

.galeria-dot.active {
    background: #007bff;
    transform: scale(1.2);
}

.galeria-dot:hover {
    background: #007bff;
    opacity: 0.7;
}

/* Estado vazio */
.galeria-empty {
    text-align: center;
    padding: 40px 20px;
    color: #666;
}

.galeria-empty i {
    font-size: 48px;
    margin-bottom: 10px;
    opacity: 0.5;
}

.galeria-empty p {
    margin: 0;
    font-size: 14px;
}

/* Formulário de Edição */
.galeria-form-block {
    padding: 20px 0;
}

.galeria-upload-area {
    text-align: center;
    padding: 20px;
    border: 2px dashed #ddd;
    border-radius: 8px;
    background: #f9f9f9;
}
.galeria-upload-area label {
    color: var(--bg-active);
}

.galeria-upload-area input[type="file"] {
    display: none;
}

.galeria-upload-area label {
    margin-bottom: 10px;
}

.galeria-upload-area label.disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

.galeria-limit {
    margin: 10px 0 0 0;
    font-size: 12px;
    color: #666;
}

.galeria-preview-edit h4 {
    margin: 0 0 15px 0;
    font-size: 16px;
    color: #333;
}

.galeria-images-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(80px, 1fr));
    gap: 10px;
    max-height: 200px;
    overflow-y: auto;
}

.galeria-image-edit-item {
    position: relative;
    aspect-ratio: 1;
    border-radius: 6px;
    overflow: hidden;
}

.galeria-image-edit-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.galeria-image-edit-item .btn-floating {
    position: absolute;
    top: 4px;
    right: 4px;
    width: 20px !important;
    height: 20px !important;
    background: #d10000a8 !important;
    box-shadow: none !important;
    border: none !important;
    transition: all 0.2s ease;
    display: flex;
    justify-content: center;
    align-items: center;
    line-height: inherit;
}
.galeria-image-edit-item .btn-floating i {
    line-height: inherit !important;
    color: rgb(255 255 255 / 70%) !important;
}

.galeria-image-edit-item .btn-floating:hover {
    color: rgba(255, 0, 0, 1) !important;
    background: rgb(176 0 0 / 90%) !important;
    transform: scale(1.1);
}

.galeria-image-edit-item .btn-floating i {
    font-size: 12px;
}

.galeria-image-order {
    position: absolute;
    bottom: 4px;
    left: 4px;
    background: rgba(0,0,0,0.7);
    color: white;
    font-size: 10px;
    padding: 2px 4px;
    border-radius: 3px;
}

.galeria-actions {
    display: flex;
    gap: 10px;
    justify-content: center;
    margin-top: 15px;
}

.galeria-actions .btn {
    margin: 0;
}

/* ===== GALERIA COM SWIPER ===== */
.galeria-swiper-container {
    position: relative;
    width: 100%;
    margin: 0 auto;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}

/* Preview Mode no Editor - Mais compacto e realista */
.ivcard-preview-area .galeria-swiper-container {
    height: 240px;
}

.ivcard-preview-area .galeria-swiper {
    height: 240px !important;
}

.galeria-swiper {
    width: 100%;
    height: 400px;
    aspect-ratio: 1;
}

.galeria-slide {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f5f5f5;
}

.galeria-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Botões de navegação customizados */
.galeria-button-next,
.galeria-button-prev {
    color: white !important;
    background: rgba(0,0,0,0.5) !important;
    width: 40px !important;
    height: 40px !important;
    border-radius: 50% !important;
    margin-top: -20px !important;
    transition: all 0.3s ease !important;
}

/* Botões menores no modo de edição */
.ivcard-preview-area .galeria-button-next,
.ivcard-preview-area .galeria-button-prev {
    width: 30px !important;
    height: 30px !important;
    margin-top: -15px !important;
}

.ivcard-preview-area .galeria-button-next:after,
.ivcard-preview-area .galeria-button-prev:after {
    font-size: 14px !important;
}

.galeria-button-next:hover,
.galeria-button-prev:hover {
    background: rgba(0,0,0,0.7) !important;
    transform: scale(1.1) !important;
}

.galeria-button-next:after,
.galeria-button-prev:after {
    font-size: 18px !important;
    font-weight: bold !important;
}

/* Paginação customizada */
.galeria-pagination {
    bottom: 10px !important;
}

.galeria-pagination .swiper-pagination-bullet {
    background: rgba(255,255,255,0.5) !important;
    opacity: 1 !important;
    width: 8px !important;
    height: 8px !important;
    margin: 0 4px !important;
    transition: all 0.3s ease !important;
}

.galeria-pagination .swiper-pagination-bullet-active {
    background: white !important;
    transform: scale(1.2) !important;
}

/* Indicadores menores no modo de edição */
.ivcard-preview-area .galeria-pagination .swiper-pagination-bullet {
    width: 6px !important;
    height: 6px !important;
    margin: 0 3px !important;
}

.ivcard-preview-area .galeria-pagination {
    bottom: 8px !important;
}

/* Modal de Reordenação de Imagens */
.sortable-images-container {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
    gap: 15px;
    max-height: 400px;
    overflow-y: auto;
    padding: 10px 0;
}

.sortable-image-item {
    position: relative;
    aspect-ratio: 1;
    border-radius: 8px;
    overflow: hidden;
    cursor: move;
    transition: all 0.3s ease;
    border: 2px solid transparent;
}

.sortable-image-item:hover {
    border-color: #2196F3;
    transform: scale(1.05);
    box-shadow: 0 4px 12px rgba(33, 150, 243, 0.3);
}

.sortable-image-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.sortable-image-order {
    position: absolute;
    top: 8px;
    left: 8px;
    background: rgba(0, 0, 0, 0.7);
    color: white;
    font-size: 12px;
    font-weight: bold;
    padding: 4px 8px;
    border-radius: 12px;
    min-width: 20px;
    text-align: center;
}

.sortable-image-item.sortable-ghost {
    opacity: 0.4;
    transform: scale(0.95);
}

.sortable-image-item.sortable-chosen {
    border-color: #4CAF50;
    box-shadow: 0 4px 12px rgba(76, 175, 80, 0.4);
}

/* Responsividade para Swiper */
@media (max-width: 768px) {
    .galeria-swiper {
        height: 300px;
        aspect-ratio: 1;
    }
    
    .galeria-button-next,
    .galeria-button-prev {
        width: 35px !important;
        height: 35px !important;
        margin-top: -17.5px !important;
    }
    
    .galeria-button-next:after,
    .galeria-button-prev:after {
        font-size: 16px !important;
    }
    
    .sortable-images-container {
        grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
        gap: 10px;
    }
}

@media (max-width: 480px) {
    .galeria-swiper {
        height: 250px;
        aspect-ratio: 1;
    }
    
    .galeria-button-next,
    .galeria-button-prev {
        width: 30px !important;
        height: 30px !important;
        margin-top: -15px !important;
    }
    
    .galeria-button-next:after,
    .galeria-button-prev:after {
        font-size: 14px !important;
    }
}

/* ===== MENU DE COMPARTILHAMENTO NOS BLOCOS ===== */
.block-share-menu {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 50px;
    height: 50px;
           opacity:0;
    visibility:hidden;
    transition: all 0.3s;
}

 .block-item:hover .block-share-menu {
     opacity:1;
     visibility:visible;
 }

.block-share-trigger {
    background: none;
    border: none;
    color: var(--block-text-color, #fff);
    cursor: pointer;
    padding: 8px;
    border-radius: 50%;
    transition: all 0.2s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    background: color(srgb 0 0 0 / 0.64);
}

.block-share-trigger:hover {
    background: rgb(0 0 0 / 71%);
    transform: scale(1.1);
}

.block-share-trigger i {
    font-size: 18px;
}
.block-float .block-share-menu {
    position:absolute;
    right:0;
}


/* Responsividade */
@media only screen and (max-width: 600px) {
    .block-share-trigger {
        width: 28px;
        height: 28px;
    }
    
    .block-share-trigger i {
        font-size: 16px;
    }
}

/* Modal Biografia */
.modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.6);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10000;
    backdrop-filter: blur(4px);
}

.modal-container {
    background: white;
    border-radius: 16px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
    width: 90%;
    max-width: 600px;
    max-height: 80vh;
    overflow: hidden;
    animation: modalSlideIn 0.3s ease-out;
}

@keyframes modalSlideIn {
    from {
        opacity: 0;
        transform: translateY(-30px) scale(0.95);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

.modal-header {
    padding: 20px 24px;
    border-bottom: 1px solid #e9ecef;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: #f8f9fa;
}

.modal-header h3 {
    margin: 0;
    color: #343a40;
    font-size: 18px;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 8px;
}

.modal-header h3 .material-icons {
    color: #007bff;
    font-size: 20px;
}

.modal-close {
    background: none;
    border: none;
    color: #6c757d;
    cursor: pointer;
    padding: 8px;
    border-radius: 50%;
    transition: all 0.2s ease;
}

.modal-close:hover {
    background: #e9ecef;
    color: #495057;
}

.modal-body {
    padding: 24px;
}

.form-group {
    margin-bottom: 0;
}

.form-group label {
    display: block;
    margin-bottom: 8px;
    color: #495057;
    font-weight: 500;
    font-size: 14px;
}

.biografia-textarea {
    width: 100%;
    min-height: 200px;
    padding: 12px;
    border: 2px solid #e9ecef;
    border-radius: 8px;
    font-family: inherit;
    font-size: 14px;
    line-height: 1.5;
    resize: vertical;
    transition: border-color 0.2s ease;
}

.biografia-textarea:focus {
    outline: none;
    border-color: #007bff;
    box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.1);
}

.modal-footer {
    padding: 16px 24px;
    border-top: 1px solid #e9ecef;
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    background: #f8f9fa;
}

.modal-footer button {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 10px 16px;
    border: none;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s ease;
}

.btn-cancel {
    background: #6c757d;
    color: white;
}

.btn-cancel:hover {
    background: #5a6268;
}

.btn-save {
    background: #007bff;
    color: white;
}

.btn-save:hover {
    background: #0056b3;
}

.modal-footer button .material-icons {
    font-size: 16px;
}

/* Modal Biografia - Modo Visualização */

.modal-biografia h4 {
    margin: 0 0 20px 0;
    color: #333;
    font-size: 20px;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 10px;
}

.modal-biografia h4 i {
    color: #007bff;
    font-size: 24px;
}


.btn-close {
    background: #007bff;
    color: white;
}

.btn-close:hover {
    background: #0056b3;
}

.thumb.active {
    display:none
}

/**********RESPONSIVO**********/
@media screen and (max-width: 1080px){
    .ivcard-render #ivcard-template {

    }
}


@media screen and (max-width: 767px) {
    .modal {
        width: 90% !important
    }
    .block-item .block-share-menu {
         opacity:1;
         visibility:visible;
     }
    [title="Desktop"],[title="Tablet"] {
        display:none !important
    }
    
}

/* ===== BOTÃ•ES VOLTAR E AVANÃ‡AR - ESTILO CLEAN ===== */
.ivcard-nav-buttons {
    display: flex;
    gap: 10px;
    justify-content: center;
    margin-bottom: 16px;
}

.ivcard-nav-btn {
    background: var(--bg-primary);
    color: var(--text-primary);
    border: 1.5px solid var(--border-primary);
    border-radius: 22px;
    padding: 8px 22px;
    font-size: 15px;
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 7px;
    box-shadow: var(--shadow-sm);
    transition: background 0.2s, border-color 0.2s, color 0.2s, box-shadow 0.2s;
    cursor: pointer;
    outline: none;
    text-decoration: none;
}

.ivcard-nav-btn i {
    font-size: 18px;
    color: var(--text-tertiary);
    transition: color 0.2s;
}

.ivcard-nav-btn:hover, .ivcard-nav-btn:focus {
    background: var(--bg-hover);
    border-color: var(--border-secondary);
    color: var(--text-primary);
}

.ivcard-nav-btn:active {
    background: var(--bg-active);
    color: #111;
}

.ivcard-nav-btn:disabled, .ivcard-nav-btn.disabled {
    color: #bbb !important;
    border-color: #eee !important;
    background: #fafafa !important;
    cursor: not-allowed !important;
    pointer-events: none;
}

.ivcard-nav-btn:disabled i, .ivcard-nav-btn.disabled i {
    color: #ddd !important;
}

@media (max-width: 600px) {
    .ivcard-nav-buttons {
        flex-direction: column;
        gap: 8px;
    }
    .ivcard-nav-btn {
        width: 100%;
        justify-content: center;
    }
}

.ivcard-nav-topbar {
    position: fixed;
    top: 0;
    right: 32px;
    z-index: 1001;
    background: #f8fafc;
    border-radius: 18px;
    box-shadow: 0 4px 24px rgba(30, 34, 90, 0.06);
    padding: 12px 32px;
    display: flex;
    align-items: center;
    gap: 18px;
    min-width: 160px;
}

@media (max-width: 900px) {
    .ivcard-nav-topbar {
        top: 0;
        right: 12px;
        padding: 8px 12px;
        min-width: 120px;
    }
}

/* User Images Styles */
.user-images-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
    gap: 15px;
    padding: 15px;
}

/* Grid específico para imagens de fundo */
.user-images-grid[data-image-type="back"] {
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 20px;
}

.user-image-item {
    position: relative;
    text-align: center;
    border: 2px solid #ddd;
    border-radius: 8px;
    padding: 8px;
    background: white;
    transition: all 0.3s ease;
    cursor: pointer;
}

.user-image-item:hover {
    border-color: #2196F3;
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
    transform: translateY(-2px);
}

.user-image-item.selected {
    border-color: #4CAF50;
    box-shadow: 0 4px 12px rgba(76, 175, 80, 0.3);
    transform: translateY(-2px);
    background: #f8fff8;
}

.user-image-item.selected img {
    transform: scale(1.05);
}

.user-image-item img {
    width: 100px;
    height: 100px;
    object-fit: cover;
    border-radius: 4px;
    cursor: pointer;
    transition: all 0.3s ease;
}

.user-image-item:hover img {
    transform: scale(1.05);
}

.user-image-item .image-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(33, 150, 243, 0.8);
    display: none;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
    transition: all 0.3s ease;
}

.user-image-item:hover .image-overlay {
    display: flex;
}

.user-image-item .image-overlay i {
    font-size: 2rem;
    color: white;
}

.delete-btn {
    position: absolute;
    top: -8px;
    right: -8px;
    z-index: 10;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.user-image-item:hover .delete-btn {
    opacity: 1;
}

.loading-container {
    text-align: center;
    padding: 40px 20px;
}

.loading-container p {
    margin-top: 15px;
    color: #666;
    font-size: 14px;
}

.image-desc {
    margin-top: 8px;
    font-size: 11px;
    color: #666;
    text-transform: capitalize;
}

.no-images {
    text-align: center;
    color: #666;
    padding: 40px 20px;
    font-style: italic;
}

.refresh-btn {
    margin-bottom: 15px;
    background: #2196F3 !important;
}

.refresh-btn:hover {
    background: #1976D2 !important;
}

.selection-actions {
    margin-top: 20px;
    text-align: center;
    padding: 15px;
    background: #f5f5f5;
    border-radius: 8px;
    border: 1px solid #e0e0e0;
}

.selection-actions p {
    margin-bottom: 10px;
    color: #666;
    font-size: 14px;
}

.selection-actions button {
    margin: 0 5px;
}

/* Scroll infinito para imagens do usuÃ¡rio */
.user-images-container {
    max-height: 400px;
    overflow-y: auto;
    padding: 10px;
}

.user-images-container::-webkit-scrollbar {
    width: 6px;
}

.user-images-container::-webkit-scrollbar-track {
    background: #f1f1f1;
    border-radius: 3px;
}

.user-images-container::-webkit-scrollbar-thumb {
    background: #888;
    border-radius: 3px;
}

.user-images-container::-webkit-scrollbar-thumb:hover {
    background: var(--border-tertiary);
}

.loading-more-container {
    text-align: center;
    padding: 20px;
    color: #666;
}

.loading-more-container .preloader-wrapper {
    margin: 0 auto 10px;
}

.no-more-images {
    text-align: center;
    padding: 15px;
    color: #999;
    font-style: italic;
    border-top: 1px solid #eee;
    margin-top: 10px;
}

.user-images-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
    gap: 10px;
    padding: 0;
}



.user-image-item {
    position: relative;
    border-radius: 8px;
    overflow: hidden;
    cursor: pointer;
    transition: all 0.3s ease;
}

.user-image-item.selected {
    transform: scale(0.95);
    box-shadow: 0 0 0 3px #2196F3;
}

.user-image-item img {
    width: 100%;
    height: 120px;
    object-fit: cover;
    display: block;
}

/* Estilos específicos para imagens de fundo */
.user-image-item[data-image-type="back"] {
    aspect-ratio: 16/9;
    border-radius: 12px;
    overflow: hidden;
    position: relative;
    cursor: pointer;
    transition: all 0.3s ease;
    border: 2px solid transparent;
    background: white;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}

.user-image-item[data-image-type="back"]:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 30px rgba(0,0,0,0.25);
    border-color: #2196F3;
}

.user-image-item[data-image-type="back"].selected {
    border-color: #4CAF50;
    box-shadow: 0 0 0 4px rgba(76, 175, 80, 0.3);
}

.user-image-item[data-image-type="back"] img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.user-image-item[data-image-type="back"]:hover img {
    transform: scale(1.05);
}

.image-desc {
    position: absolute;
    top: 5px;
    left: 5px;
    background: rgba(0,0,0,0.7);
    color: white;
    padding: 2px 6px;
    border-radius: 3px;
    font-size: 11px;
}

.delete-btn {
    position: absolute !important;
    top: 5px;
    right: 5px;
    transform: scale(0.8);
}

.image-check {
    position: absolute;
    bottom: 5px;
    right: 5px;
    background: #2196F3;
    border-radius: 50%;
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
    opacity: 0.7;
}

.image-check.checked {
    background: #2196F3;
    color: white;
    opacity: 1;
    transform: scale(1.1);
}

.image-check i {
    font-size: 20px;
    color: white;
}

.image-check.checked i {
    color: white;
}

/* Estilos para o componente ColorPicker */
.color-picker-container {
    position: relative;
}
.color-picker-container .eyedropper-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border: 1px solid #ddd;
    border-radius: 4px;
    background: white;
    cursor: pointer;
    transition: all 0.2s ease;
    padding: 0;
    outline:none !important
}

.color-picker-input {
    max-width:150px;
    background: var(--bg-primary) !important;
    color: var(--text-primary) !important;
    border: 1px solid var(--border-secondary) !important;
    border-radius: 6px !important;
    padding: 8px 12px !important;
    font-size: 14px !important;
    cursor: pointer;
    margin-bottom:0 !important
}

.color-picker-input:focus {
    border-color: var(--primary) !important;
    box-shadow: 0 0 0 3px var(--primary-light) !important;
    outline: none !important;
}

.color-picker-item {
    display:flex;
    flex-direction: row;
    justify-content: space-between;
    align-items:center;
    position: relative;
}
.color-picker-item label {
    margin: 0;
}
.color-picker-container {
    left: -500px
}
.color-picker-item .color-square {
    width: 30px;
    height: 30px
}

.color-picker-simple {
        /* position: relative; */
      }
      .color-square {
        width: 40px;
        height: 40px;
        border-radius: 8px;
        border: 2px solid #ddd;
        cursor: pointer;
        transition: all 0.2s ease;
        box-shadow: 0 2px 4px rgba(0,0,0,0.1);
      }
      .color-square:hover {
        border-color: #007bff;
        box-shadow: 0 4px 8px rgba(0,0,0,0.15);
        transform: translateY(-1px);
      }
      .color-picker-container {
        position: absolute !important;
        background: white;
        border: 1px solid #ddd;
        border-radius: 8px;
        padding: 15px;
        box-shadow: 0 4px 12px rgba(0,0,0,0.15);
        min-width: 250px;
        left: 0;
        top: 50px;
        z-index: 1;
      }

/* Estilo customizado para o jscolor picker */
.jscolor {
    border: 1px solid #2b2b2b6e !important;
    border-radius: 6px !important;
}

/* Estilos para o tema escuro do jscolor */
.jscolor-active {
    border-color: #adadad !important;
}

/* Estilos para o componente GradientPicker */
.gradient-picker-container {
    position: relative;
    background: var(--bg-primary);
    border-radius: 12px;
    padding: 20px;
    margin-bottom: 20px;
    border: 1px solid var(--border-primary);
    box-shadow: var(--shadow-card);
}

.gradient-preview {
    width: 100%;
    height: 80px;
    border-radius: 12px;
    border: 2px solid var(--border-primary);
    cursor: pointer;
    transition: all 0.3s ease;
    margin-bottom: 20px;
    position: relative;
    overflow: hidden;
    box-shadow: var(--shadow-sm);
}

.gradient-preview:hover {
    border-color: var(--primary);
    transform: scale(1.02);
    box-shadow: var(--shadow-md);
}

.gradient-controls {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.gradient-type-selector {
    display: flex;
    align-items: center;
    gap: 10px;
}

.gradient-type-selector label {
    color: var(--text-secondary);
    font-size: 14px;
    font-weight: 500;
    min-width: 60px;
}

/* Estilos para os botões de tipo (Linear, Radial, Conic) */
.type-btn {
    background: var(--bg-secondary);
    border: 1px solid var(--border-primary);
    color: var(--text-tertiary);
    padding: 10px 16px;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    font-weight: 500;
    justify-content: center;
    font-size: 12px;
    font-weight: 500;
    min-width: 70px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.type-btn:hover {
    background: var(--bg-hover);
    border-color: var(--border-secondary);
    transform: translateY(-1px);
    box-shadow: var(--shadow-sm);
}

.type-btn.active {
    background: var(--primary);
    border-color: var(--primary);
    color: var(--bg-dashboard);
    box-shadow: var(--shadow-primary);
    box-shadow: 0 2px 12px rgba(52, 152, 219, 0.4);
    transform: translateY(-1px);
}

.type-btn:not(.active) {
    opacity: 0.8;
}

.type-btn:not(.active):hover {
    opacity: 1;
}

.direction-control {
    display: flex;
    align-items: center;
    gap: 10px;
}

.direction-control label {
    color: var(--card-padding);
    font-size: 12px;
    font-weight: 500;
    min-width: 40px;
    display: flex;
    margin: 0;
}

.direction-range {
    flex: 1;
    height: 6px;
    border-radius: 3px;
    background: var(--border-secondary);
    outline: none;
    -webkit-appearance: none;
}

.direction-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--primary);
    cursor: pointer;
}

.direction-range::-moz-range-thumb {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--primary);
    cursor: pointer;
    border: none;
}

.direction-value {
    color: var(--text-primary);
    font-size: 12px;
    background: var(--border-secondary);
    padding: 2px 6px;
    border-radius: 3px;
    min-width: 30px;
    text-align: center;
}

.colors-control {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.colors-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.colors-header label {
    color: var(--text-secondary);
    font-size: 12px;
    font-weight: 500;
}

.add-color-btn {
    background: linear-gradient(135deg, #27ae60, #229954);
    border: 1px solid #229954;
    color: var(--text-primary);
    padding: 6px 10px;
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 6px rgba(39, 174, 96, 0.3);
}

.add-color-btn:hover {
    background: linear-gradient(135deg, #229954, #1e8449);
    border-color: #1e8449;
    transform: translateY(-1px);
    box-shadow: 0 4px 10px rgba(39, 174, 96, 0.4);
}

.add-color-btn i {
    font-size: 14px;
}

.color-stops {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.color-stop-item {
    display: flex;
    flex-direction: column;
    gap: 0px;
    background: var(--bg-tertiary);
    padding: 10px 10px 10px 10px;
    border-radius: 6px;
}

.gradient-color-picker {
    min-width: 120px;
    /* max-width: 150px; */
     /* Primeira coluna */
}

.stop-range {
    flex: 1;
    min-width: 100px;
    max-width: calc(100% - 200px); /* Evita sobreposição com botão de remoção */
    height: 6px;
    border-radius: 3px;
    background: var(--border-secondary);
    outline: none;
    -webkit-appearance: none;
    grid-column: 2; /* Segunda coluna */
}

.stop-value {
    color: #ccc;
    font-size: 12px;
    background: var(--border-secondary);
    padding: 2px 6px;
    border-radius: 3px;
    min-width: 30px;
    text-align: center;
    grid-column: 3; /* Terceira coluna */
}

/* Botão de remoção com layout em grid */
.remove-color-btn {
    background: linear-gradient(135deg, #e74c3c, #c0392b);
    border: 1px solid #c0392b;
    color: var(--text-primary);
    padding: 6px 8px;
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 6px rgba(231, 76, 60, 0.3);
    min-width: 28px;
    height: 28px;
    grid-column: 4; /* Última coluna */
}

.remove-color-btn:hover {
    background: linear-gradient(135deg, #c0392b, #a93226);
    border-color: #a93226;
    transform: translateY(-1px);
    box-shadow: 0 4px 10px rgba(231, 76, 60, 0.4);
}

.color-input {
    width: 40px;
    height: 30px;
    border: 1px solid var(--border-tertiary);
    border-radius: 4px;
    cursor: pointer;
    -webkit-appearance: none;
}

.color-input::-webkit-color-swatch-wrapper {
    padding: 0;
}

.color-input::-webkit-color-swatch {
    border: none;
    border-radius: 3px;
}

.stop-range {
    flex: 1;
    min-width: 100px;
    max-width: calc(100% - 200px); /* Evita sobreposição com botão de remoção */
    height: 6px;
    border-radius: 3px;
    background: var(--border-secondary);
    outline: none;
    -webkit-appearance: none;
}

.stop-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--primary);
    cursor: pointer;
}

.stop-range::-moz-range-thumb {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--primary);
    cursor: pointer;
    border: none;
}

.stop-value {
    color: var(--text-primary);
    font-size: 12px;
    background: var(--border-secondary);
    padding: 2px 6px;
    border-radius: 3px;
    min-width: 30px;
    text-align: center;
}

.remove-color-btn {
    background: linear-gradient(135deg, #e74c3c, #c0392b);
    border: 1px solid #c0392b;
    color: var(--text-primary);
    padding: 6px 8px;
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 6px rgba(231, 76, 60, 0.3);
}

.remove-color-btn:hover {
    background: linear-gradient(135deg, #c0392b, #a93226);
    border-color: #a93226;
    transform: translateY(-1px);
    box-shadow: 0 4px 10px rgba(231, 76, 60, 0.4);
}

.remove-color-btn i {
    font-size: 14px;
}

.presets-control {
    position: relative;
}

.presets-btn {
    background: linear-gradient(135deg, #9b59b6, #8e44ad);
    border: 1px solid #8e44ad;
    color: var(--bg-primary);
    padding: 10px 16px;
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    justify-content: center;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    box-shadow: 0 2px 8px rgba(155, 89, 182, 0.3);
}

.presets-btn:hover {
    background: linear-gradient(135deg, #8e44ad, #7d3c98);
    border-color: #7d3c98;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(155, 89, 182, 0.4);
}

.presets-btn i {
    font-size: 16px;
}

.presets-grid {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(--card-bg);
    border: 1px solid var(--card-border);
    border-radius: var(--card-radius);
    box-shadow: var(--card-shadow);
    padding: 10px;
    margin-top: 5px;
    z-index: 1000;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    max-height: 200px;
    overflow-y: auto;
}

.preset-item {
    height: 40px;
    border-radius: 4px;
    cursor: pointer;
    transition: all 0.2s ease;
    position: relative;
    overflow: hidden;
    border: 1px solid var(--border-secondary);
}

.preset-item:hover {
    transform: scale(1.05);
    border-color: #666;
}

.preset-name {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background: rgba(0, 0, 0, 0.7);
    color: var(--text-primary);
    font-size: 10px;
    padding: 2px 4px;
    text-align: center;
    font-weight: 500;
}

.gradient-value-input {
    width: 100% !important;
    background: var(--card-bg) !important;
    color: var(--text-primary) !important;
    border: 1px solid var(--card-border) !important;
    border-radius: 8px !important;
    padding: 12px 16px !important;
    font-size: 12px !important;
    font-family: 'Courier New', monospace !important;
    cursor: text !important;
    margin-top: 15px !important;
    transition: all 0.3s ease !important;
    box-shadow: var(--shadow-sm) !important;
}

.gradient-value-input:focus {
    border-color: var(--primary) !important;
    box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.1) !important;
    outline: none !important;
    background: var(--card-bg) !important;
}

/* Sistema de Abas para Fundo do Card */
.background-tabs {
    /* margin-bottom: 20px; */
}

.background-tab-buttons {
    display: flex;
    background: var(--border-secondary);
    border-radius: 8px;
    padding: 4px 0;
    margin: 10px 0;
}

.background-tab-btn {
    flex: 1;
    background: transparent;
    border: none;
    color: #ccc;
    padding: 8px 12px;
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    font-weight: 500;
    margin: 0 3px;
}

.background-tab-btn:hover {
    background: var(--border-tertiary);
    color: var(--text-primary);
}

.background-tab-btn.active {
    background: var(--bg-secondary);
    color: var(--text-primary);
    box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}

.background-tab-btn i {
    margin-right: 4px;
    font-size: 14px;
}

.background-tab-content {
    /* min-height: 120px; */
}

.background-tab-panel {
    animation: fadeIn 0.3s ease;
    padding: 15px 0;
}

/* Sistema de Abas Customizado para Blocos */
.blocks-tabs {
    margin-bottom: 20px;
}

.blocks-tab-buttons {
    display: flex;
    background: var(--border-secondary);
    border-radius: 8px;
    padding: 4px 0;
    margin: 20px;
}

.blocks-tab-btn {
    flex: 1;
    background: transparent;
    border: none;
    color: var(--text-secondary);
    padding: 12px 16px;
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 500;
    margin: 0 5px;
}

.blocks-tab-btn:hover {
    background: var(--primary-light);
    color: var(--bg-dashboard);
}

.blocks-tab-btn.active {
    background: var(--primary-light);
    color: var(--bg-secondary);
    box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}

.blocks-tab-btn i {
    margin-right: 6px;
    font-size: 16px;
}

.blocks-tab-content {
    min-height: 200px;
    margin: 20px;
}

.blocks-tab-panel {
    animation: fadeIn 0.3s ease;
    padding: 20px 0;
}
.blocks-tab-panel > .nav-item {
    padding: 0
}
@keyframes fadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Estilos para o componente FontSelector */
.font-selector-container,.border-control-group {
    background: var(--card-bg);
    border: 1px solid var(--card-border);
    border-radius: var(--card-radius);
    box-shadow: var(--card-shadow);
    padding: var(--card-padding);
    margin-top: 10px;
}

.font-search {
    position: relative;
    margin-bottom: 15px;
}

.font-search-input {
    width: 100%;
    padding: 10px 40px 10px 15px;
    background: var(--bg-primary);
    border: 1px solid var(--border-primary);
    border-radius: 8px;
    color: var(--text-primary);
    font-size: 14px;
}

.font-search-input:focus {
    border-color: var(--primary);
    outline: none;
    box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.1);
}

.search-icon {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: #888;
    font-size: 18px;
}

/* Loading state */
.font-loading {
    text-align: center;
    padding: 40px 20px;
    color: #888;
}

.loading-spinner {
    margin-bottom: 15px;
}

.loading-spinner i {
    font-size: 32px;
    color: #1b89f7;
}

.rotating {
    animation: rotate 1s linear infinite;
}

@keyframes rotate {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

.font-loading p {
    margin: 0;
    font-size: 14px;
    color: #aaa;
}

.font-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 10px;
    max-height: 300px;
    overflow-y: auto;
    padding-right: 5px;
}

.font-grid::-webkit-scrollbar {
    width: 6px;
}

.font-grid::-webkit-scrollbar-track {
    background: #333;
    border-radius: 3px;
}

.font-grid::-webkit-scrollbar-thumb {
    background: #666;
    border-radius: 3px;
}

.font-grid::-webkit-scrollbar-thumb:hover {
    background: #888;
}

.font-block {
    background: var(--bg-active);
    border: 2px solid var(--border-secondary);
    border-radius: 8px;
    padding: 12px;
    cursor: pointer;
    transition: all 0.2s ease;
    position: relative;
    min-height: 60px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    color: var(--text-primary);
}

.font-block:hover {
    border-color: var(--border-accent);
    background: var(--border-accent);
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
    color: var(--bg-secondary);
}

.font-block.selected {
    border-color: #1b89f7;
    background: #1b89f7;
    color: var(--text-primary);
}

.font-preview {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.font-name {
    font-size: 11px;
    font-weight: 500;
    margin-bottom: 4px;
    opacity: 0.8;
}

.font-sample {
    font-size: 18px;
    font-weight: 600;
    letter-spacing: 1px;
}

.font-check {
    position: absolute;
    top: 8px;
    right: 8px;
    color: var(--text-primary);
    font-size: 16px;
}

.no-results {
    text-align: center;
    padding: 30px 20px;
    color: #888;
}

.no-results i {
    font-size: 48px;
    margin-bottom: 10px;
    opacity: 0.5;
}

.no-results p {
    margin: 0;
    font-size: 14px;
}

.selected-font-display {
    margin-top: 15px;
    padding: 12px;
    background: var(--border-primary);
    border-radius: 6px;
    border-left: 4px solid #1b89f7;
}

.selected-label {
    display: block;
    font-size: 12px;
    color: #888;
    margin-bottom: 5px;
}

.selected-font {
    font-size: 16px;
    font-weight: 600;
    color: var(--text-primary);
}

/* Responsividade */
@media (max-width: 768px) {
    .font-grid {
        grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
        gap: 8px;
    }
    
    .font-block {
        padding: 10px;
        min-height: 50px;
    }
    
    .font-sample {
        font-size: 16px;
    }
    
    .font-name {
        font-size: 10px;
    }
}

/* Estilos para o componente FontStyleController (inclui controle de tamanho) */
.font-size-controller-container {
    background: var(--card-bg);
    border: 1px solid var(--card-border);
    border-radius: var(--card-radius);
    box-shadow: var(--card-shadow);
    padding: var(--card-padding);
    margin-top: 10px;
}

.font-size-controls {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 15px;
    background: var(--bg-secondary);
    border: 1px solid var(--border-primary);
    border-radius: 8px;
    padding: var(--spacing-md);
}

.size-btn {
    background: var(--border-secondary);
    border: none;
    border-radius: 6px;
    color: var(--text-primary);
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.2s ease;
}

.size-btn:hover:not(:disabled) {
    background: #1b89f7;
    transform: scale(1.05);
}

.size-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.size-btn i {
    font-size: 18px;
}

.size-display {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    flex: 1;
    margin: 0 15px;
}

.size-value {
    font-weight: 600;
    color: var(--text-primary);
    margin-bottom: 2px;
}

.size-label {
    font-size: 11px;
    color: #888;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.size-slider-container {
    margin-bottom: 15px;
}

.size-slider {
    width: 100%;
    height: 6px;
    background: var(--border-secondary);
    border-radius: 3px;
    outline: none;
    -webkit-appearance: none;
    margin-bottom: 8px;
}

.size-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 18px;
    height: 18px;
    background: #1b89f7;
    border-radius: 50%;
    cursor: pointer;
    transition: all 0.2s ease;
}

.size-slider::-webkit-slider-thumb:hover {
    background: #0d6efd;
    transform: scale(1.1);
}

.size-slider::-moz-range-thumb {
    width: 18px;
    height: 18px;
    background: #1b89f7;
    border-radius: 50%;
    cursor: pointer;
    border: none;
    transition: all 0.2s ease;
}

.size-slider::-moz-range-thumb:hover {
    background: #0d6efd;
    transform: scale(1.1);
}

.slider-labels {
    display: flex;
    justify-content: space-between;
    font-size: 11px;
    color: #888;
}

.size-presets {
    margin-bottom: 15px;
}

.presets-label {
    display: block;
    font-size: 12px;
    color: #888;
    margin-bottom: 8px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.preset-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.preset-btn {
    background: #333;
    border: 1px solid var(--border-tertiary);
    border-radius: 4px;
    color: #ccc;
    padding: 6px 10px;
    font-size: 11px;
    cursor: pointer;
    transition: all 0.2s ease;
    min-width: 35px;
    text-align: center;
}

.preset-btn:hover {
    background: var(--border-secondary);
    border-color: #1b89f7;
}

.preset-btn.active {
    background: #1b89f7;
    border-color: #1b89f7;
    color: var(--text-primary);
}

.text-preview {
    background: #333;
    border-radius: 6px;
    padding: 12px;
}

.preview-label {
    display: block;
    font-size: 11px;
    color: #888;
    margin-bottom: 8px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.preview-text {
    color: var(--text-primary);
    line-height: 1.4;
    word-break: break-word;
    min-height: 20px;
    display: flex;
    align-items: center;
}

/* Responsividade */
@media (max-width: 768px) {
    .font-size-controls {
        padding: 10px;
    }
    
    .size-btn {
        width: 35px;
        height: 35px;
    }
    
    .size-btn i {
        font-size: 16px;
    }
    
    .preset-buttons {
        gap: 4px;
    }
    
    .preset-btn {
        padding: 4px 8px;
        font-size: 10px;
        min-width: 30px;
    }
}

/* Estilos para o componente FontStyleController */
.font-style-controller-container {
    background: var(--card-bg);
    border: 1px solid var(--card-border);
    border-radius: var(--card-radius);
    box-shadow: var(--card-shadow);
    padding: var(--card-padding);
    margin-top: 10px;
}

.style-section {
    margin-bottom: 20px;
    padding-bottom: 15px;
    border-bottom: 1px solid var(--border-primary);
}

.style-section:last-child {
    border-bottom: none;
    margin-bottom: 0;
}

.section-title {
    display: block;
    font-size: 12px;
    color: #888;
    margin-bottom: 10px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-weight: 600;
}

/* Controles de Tamanho (reutilizando estilos do FontStyleController) */
.font-size-controls {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 10px;
    background: var(--bg-secondary);
    border-radius: 8px;
    padding: 10px;
}

.size-btn {
    background: var(--border-secondary);
    border: none;
    border-radius: 6px;
    color: var(--text-primary);
    width: 35px;
    height: 35px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.2s ease;
}

.size-btn:hover:not(:disabled) {
    background: #1b89f7;
    transform: scale(1.05);
}

.size-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.size-btn i {
    font-size: 16px;
}

.size-display {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    flex: 1;
    margin: 0 10px;
}

.size-value {
    font-weight: 600;
    color: var(--text-primary);
    margin-bottom: 2px;
}

.size-slider {
    width: 100%;
    height: 6px;
    background: var(--border-secondary);
    border-radius: 3px;
    outline: none;
    -webkit-appearance: none;
}

.size-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 16px;
    height: 16px;
    background: #1b89f7;
    border-radius: 50%;
    cursor: pointer;
    transition: all 0.2s ease;
}

.size-slider::-webkit-slider-thumb:hover {
    background: #0d6efd;
    transform: scale(1.1);
}

/* Controles de Peso */
.weight-controls {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.weight-btn {
    background: var(--bg-primary);
    border: 1px solid var(
    --border-tertiary);
    border-radius: 4px;
    color: var(--text-secondary);
    padding: 8px 12px;
    font-size: 11px;
    cursor: pointer;
    transition: all 0.2s ease;
    min-width: 50px;
    text-align: center;
}

.weight-btn:hover {
    background: var(--border-secondary);
    border-color: #1b89f7;
}

.weight-btn.active {
    background: #1b89f7;
    border-color: #1b89f7;
    color: var(--bg-secondary);
}

/* Controles de Estilo */
.style-controls {
    display: flex;
    gap: 8px;
}

.style-btn {
    background: var(--bg-dashboard);
    border: 1px solid var(--border-tertiary);
    border-radius: 6px;
    color: var(--text-secondary);
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.2s ease;
}

.style-btn:hover {
    background: var(--border-secondary);
    border-color: #1b89f7;
}

.style-btn.active {
    background: #1b89f7;
    border-color: #1b89f7;
    color: var(--bg-active);
}

.style-btn i {
    font-size: 18px;
}

/* Controles de TransformaÃ§Ã£o */
.transform-controls {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.transform-btn {
    background: var(--bg-dashboard);
    border: 1px solid var(--border-tertiary);
    border-radius: 4px;
    color: var(--text-primary);
    padding: 6px 10px;
    font-size: 10px;
    cursor: pointer;
    transition: all 0.2s ease;
    min-width: 60px;
    text-align: center;
}

.transform-btn:hover {
    background: var(--border-secondary);
    border-color: #1b89f7;
}

.transform-btn.active {
    background: var(--info);
    border-color: var(--info);
    color: var(--bg-secondary);
}

/* Controles de EspaÃ§amento */
.spacing-controls {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.spacing-btn {
    background: var(--bg-dashboard);
    border: 1px solid var(--border-tertiary);
    border-radius: 4px;
    color: var(--text-secondary);
    padding: 6px 10px;
    font-size: 10px;
    cursor: pointer;
    transition: all 0.2s ease;
    min-width: 70px;
    text-align: center;
}

.spacing-btn:hover {
    background: var(--border-secondary);
    border-color: #1b89f7;
}

.spacing-btn.active {
    background: #1b89f7;
    border-color: #1b89f7;
    color: var(--bg-tertiary);
}

/* Preview do Texto */
.text-preview {
    background: #333;
    border-radius: 6px;
    padding: 12px;
    margin-top: 15px;
}

.preview-label {
    display: block;
    font-size: 11px;
    color: #888;
    margin-bottom: 8px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.preview-text {
    color: var(--text-primary);
    line-height: 1.4;
    word-break: break-word;
    min-height: 30px;
    display: flex;
    align-items: center;
    padding: 8px;
    background: var(--bg-secondary);
    border: 1px solid var(--border-primary);
    border-radius: 8px;
}

/* Responsividade */
@media (max-width: 768px) {
    .font-size-controls {
        padding: 8px;
    }
    
    .size-btn {
        width: 30px;
        height: 30px;
    }
    
    .size-btn i {
        font-size: 14px;
    }
    
    .weight-controls,
    .transform-controls,
    .spacing-controls {
        gap: 4px;
    }
    
    .weight-btn,
    .transform-btn,
    .spacing-btn {
        padding: 4px 8px;
        font-size: 9px;
        min-width: 40px;
    }
    
    .style-btn {
        width: 35px;
        height: 35px;
    }
    
    .style-btn i {
        font-size: 16px;
    }
}

/* ===== NOVA DIV PARA BOTÃ•ES DE AÃ‡ÃƒO ===== */
.ivcard-action-buttons {
    position: relative;
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 20px;
    z-index: 1000;
}

/* Quando sÃ³ tem o botÃ£o de 3 pontos (sem Salvar Contato), fica Ã  direita */
.ivcard-action-buttons:has(.ivcard-btn-wrapper:only-child) {
    justify-content: flex-end;
}

/* Fallback para navegadores que nÃ£o suportam :has() */
.ivcard-action-buttons.only-share {
    justify-content: flex-end;
}

/* ===== FLAG SALVAR CONTATO ===== */
.save-contact-flag {
    position: relative;
    top: auto;
    left: auto;
    z-index: 100;
    background: linear-gradient(135deg, #4CAF50, #45a049);
    color: white;
    padding: 8px 16px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
    transition: all 0.3s ease;
    border: none;
    text-decoration: none;
    user-select: none;
}

.save-contact-flag:hover {
    transform: translateY(-2px);
}

.save-contact-flag:active {
    transform: translateY(0);
}

.save-contact-flag i {
    font-size: 14px;
}

.save-contact-flag.loading {
    background: linear-gradient(135deg, #FF9800, #F57C00);
    cursor: not-allowed;
    pointer-events: none;
}

.save-contact-flag.loading i {
    animation: rotate 1s linear infinite;
}

.save-contact-flag.success {
    background: linear-gradient(135deg, #2196F3, #1976D2);
    box-shadow: 0 4px 12px rgba(33, 150, 243, 0.3);
}

.save-contact-flag.success:hover {
    background: linear-gradient(135deg, #42A5F5, #2196F3);
    box-shadow: 0 6px 16px rgba(33, 150, 243, 0.4);
}

@keyframes rotate {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

/* Responsividade para a flag */
@media (max-width: 768px) {
    .save-contact-flag {
        font-size: 11px;
    }
    
    .save-contact-flag i {
        font-size: 12px;
    }
}

/* ===== END FLAG SALVAR CONTATO ===== */

/* ===== CONTROLE DE OPACIDADE DA IMAGEM DE FUNDO ===== */
.background-opacity-control {
    margin-bottom: 20px;
    padding: var(--card-padding);
    background: var(--card-bg);
    border: 1px solid var(--card-border);
    border-radius: var(--card-radius);
    box-shadow: var(--card-shadow);
}

.opacity-slider-container {
    margin-bottom: 15px;
}

.opacity-slider {
    width: 100%;
    height: 6px;
    background: var(--border-secondary);
    border-radius: 3px;
    outline: none;
    -webkit-appearance: none;
    margin-bottom: 8px;
}

.opacity-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 18px;
    height: 18px;
    background: #1b89f7;
    border-radius: 50%;
    cursor: pointer;
    transition: all 0.2s ease;
}

.opacity-slider::-webkit-slider-thumb:hover {
    background: #0d6efd;
    transform: scale(1.1);
}

.opacity-slider::-moz-range-thumb {
    width: 18px;
    height: 18px;
    background: #1b89f7;
    border-radius: 50%;
    cursor: pointer;
    border: none;
    transition: all 0.2s ease;
}

.opacity-slider::-moz-range-thumb:hover {
    background: #0d6efd;
    transform: scale(1.1);
}

.opacity-labels {
    display: flex;
    justify-content: space-between;
    font-size: 11px;
    color: #888;
}

.opacity-value {
    text-align: center;
    font-size: 12px;
    color: var(--text-primary);
    font-weight: 600;
    margin-bottom: 5px;
}

.opacity-presets {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 10px;
}

.opacity-preset-btn {
    background: #333;
    border: 1px solid var(--border-tertiary);
    border-radius: 4px;
    color: #ccc;
    padding: 6px 10px;
    font-size: 11px;
    cursor: pointer;
    transition: all 0.2s ease;
    min-width: 50px;
    text-align: center;
}

.opacity-preset-btn:hover {
    background: var(--border-secondary);
    border-color: #1b89f7;
}

.opacity-preset-btn.active {
    background: #1b89f7;
    border-color: #1b89f7;
    color: var(--text-primary);
}

/* Responsividade para controle de opacidade */
@media (max-width: 768px) {
    .opacity-preset-btn {
        padding: 4px 8px;
        font-size: 10px;
        min-width: 40px;
    }
}

/* ===== END CONTROLE DE OPACIDADE ===== */

/* ===== ESTILOS PARA SISTEMA DE BLOQUEIO ===== */

/* Header da ediÃ§Ã£o de blocos */
.block-edit-header {
    position: relative;
    padding: 15px 0;
    border-bottom: 1px solid #e0e0e0;
    margin-bottom: 20px;
}

/* AÃ§Ãµes de ediÃ§Ã£o */
.block-edit-actions {
    display: flex;
    gap: 12px;
    justify-content: center;
    margin-bottom: 20px;
    padding: 0 15px;
}

.btn-save-block {
    background: linear-gradient(135deg, #2e7d32, #1b5e20);
    color: #e8f5e8;
    border: 1px solid #4caf50;
    border-radius: 25px;
    padding: 12px 24px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    align-items: center;
    gap: 8px;
    box-shadow: 0 4px 12px rgba(76, 175, 80, 0.2);
    min-width: 120px;
    justify-content: center;
}

.btn-save-block:hover {
    background: linear-gradient(135deg, #388e3c, #2e7d32);
    border-color: #66bb6a;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(76, 175, 80, 0.3);
}

.btn-save-block:active {
    transform: translateY(0);
    box-shadow: 0 2px 8px rgba(76, 175, 80, 0.2);
}

.btn-save-block i {
    font-size: 18px;
}

.btn-cancel-block {
    background: linear-gradient(135deg, #c62828, #b71c1c);
    color: #ffebee;
    border: 1px solid #f44336;
    border-radius: 25px;
    padding: 12px 24px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    align-items: center;
    gap: 8px;
    box-shadow: 0 4px 12px rgba(244, 67, 54, 0.2);
    min-width: 120px;
    justify-content: center;
}

.btn-cancel-block:hover {
    background: linear-gradient(135deg, #d32f2f, #c62828);
    border-color: #ef5350;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(244, 67, 54, 0.3);
}

.btn-cancel-block:active {
    transform: translateY(0);
    box-shadow: 0 2px 8px rgba(244, 67, 54, 0.2);
}

.btn-cancel-block i {
    font-size: 18px;
}

/* Alerta de alteraÃ§Ãµes nÃ£o salvas */
.block-unsaved-warning {
    background: linear-gradient(135deg, #424242, #616161);
    border: 1px solid #ff9800;
    border-radius: 12px;
    padding: 12px 16px;
    margin: 0 15px 20px 15px;
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    font-weight: 500;
    color: #ffcc80;
    box-shadow: 0 2px 8px rgba(255, 152, 0, 0.15);
}

.warning-icon {
    color: #ff9800;
    font-size: 18px;
    filter: drop-shadow(0 1px 2px rgba(0,0,0,0.2));
}

.nav-header-icon.disabled {
    opacity: 0.5;
    cursor: not-allowed;
    color: #999;
}

.nav-header-icon.disabled:hover {
    transform: none;
    background: none;
}

/* ===== END ESTILOS PARA SISTEMA DE BLOQUEIO ===== */

/* ===== ESTILOS PARA BLOQUEAR INTERAÃ‡Ã•ES ===== */
.blocked-interaction {
    pointer-events: none;
    opacity: 0.6;
    position: relative;
}

.blocked-interaction::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0,0,0,0.1);
    z-index: 10;
}

/* Estilos para botÃµes desabilitados durante ediÃ§Ã£o de blocos */
.ivcard-nav-btn.disabled {
    opacity: 0.5;
    cursor: not-allowed;
    pointer-events: none;
}

.ivcard-nav-btn.disabled:hover {
    background-color: transparent !important;
    color: inherit !important;
}

/* ===== END ESTILOS PARA BLOQUEAR INTERAÃ‡Ã•ES ===== */

/* ===== CLASSE CARD REUTILIZÁVEL ===== */
.ivcard-card {
    background: var(--card-bg);
    border: 1px solid var(--card-border);
    border-radius: var(--card-radius);
    box-shadow: var(--card-shadow);
    padding: var(--card-padding);
    margin-bottom: var(--spacing-lg);
    transition: all 0.3s ease;
}

.ivcard-card:hover {
    box-shadow: var(--shadow-md);
    transform: translateY(-1px);
}

.ivcard-card-header {
    margin-bottom: var(--spacing-lg);
    padding-bottom: var(--spacing-md);
    border-bottom: 1px solid var(--border-primary);
}

.ivcard-card-title {
    color: var(--text-primary);
    font-size: 18px;
    font-weight: 600;
    margin: 0;
    text-align: center;
}

.ivcard-card-content {
    color: var(--text-secondary);
}

/* ===== ESTILOS PARA STYLE MANAGER ===== */
.style-manager {
    transition: all 0.3s ease;
}

.style-manager:hover {
    transform: translateY(-1px);
}

/* ===== ESTILOS PARA STYLE MANAGER COMPACTO (DROPDOWN) ===== */
.style-manager-compact {
    margin-bottom: 15px;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
    transition: all 0.3s ease;
    overflow: hidden;
}
.style-manager-compact.active {
    overflow:inherit
}
.style-manager-compact:hover {
    box-shadow: 0 4px 8px rgba(0,0,0,0.15);
}

.style-dropdown-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 16px;
    cursor: pointer;
    background: #f8f9fa;
    border-radius: 8px 8px 0 0;
    transition: background 0.3s ease;
}

.style-dropdown-header:hover {
    background: #e9ecef;
}

.style-header-content {
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: 500;
    color: #333;
}

.style-header-content i {
    color: #007bff;
    font-size: 18px;
}

.dropdown-arrow {
    color: #666;
    font-size: 20px;
    transition: transform 0.3s ease;
}

.dropdown-arrow.rotated {
    transform: rotate(180deg);
}

.style-dropdown-content {
    padding: 16px;
    border-top: 1px solid #e0e0e0;
    background: #fff;
    border-radius: 0 0 8px 8px;
}

.style-tabs-compact {
    display: flex;
    gap: 8px;
    margin-bottom: 16px;
    flex-wrap: wrap;
}

.style-tabs-compact button {
    flex: 1;
    min-width: 80px;
    background: #f8f9fa;
    border: 1px solid #e0e0e0;
    padding: 8px 12px;
    font-size: 12px;
    font-weight: 500;
    color: #666;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    border-radius: 6px;
}

.style-tabs-compact button:hover {
    background: #e9ecef;
    color: #333;
    border-color: #007bff;
}

.style-tabs-compact button.active {
    background: #007bff;
    color: #fff;
    border-color: #007bff;
}

.style-tabs-compact button i {
    font-size: 16px;
}

.style-tabs {
    display: flex;
    background: transparent;
    border-bottom: none;
    gap: 8px;
    margin-bottom: 20px;
    justify-content: center;
    align-items: center;
}

.style-tabs button {
    flex: none;
    background: var(--bg-secondary);
    border: 1px solid var(--border-primary);
    padding: 12px 16px;
    font-size: 13px;
    font-weight: 500;
    color: var(--text-tertiary);
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 44px;
    position: relative;
    border-radius: 8px;
    box-shadow: var(--shadow-sm);
}

.style-tabs button:hover {
    background: var(--bg-hover);
    color: var(--text-primary);
    border-color: var(--border-secondary);
    transform: translateY(-1px);
    box-shadow: var(--shadow-md);
}

.style-tabs button.active {
    background: var(--primary);
    color: var(--bg-secondary);
    border-color: var(--primary);
    box-shadow: var(--shadow-primary);
}

.style-tabs button i {
    font-size: 18px;
}

.style-content {
    padding: 0;
    background: transparent;
}

.style-panel {
    /* background: var(--bg-secondary); */
    /* border-radius: 8px; */
    /* padding: var(--spacing-lg); */
    /* border: 1px solid var(--border-primary); */
    /* box-shadow: var(--shadow-sm); */
    /* margin-top: var(--spacing-md); */
}

.style-panel > .nav-item {
    margin-bottom: 20px;
    background: transparent;
    padding: 0
}

.style-panel .nav-item:last-child {
    margin-bottom: 0;
}

/* Responsividade para StyleManager */
@media (max-width: 768px) {
    .style-tabs {
        flex-wrap: wrap;
    }
    
    .style-tabs button {
        flex: 1 1 50%;
        min-height: 44px;
        font-size: 12px;
    }
    
    .style-panel {
        padding: 16px;
    }
}

/* ===== END ESTILOS PARA STYLE MANAGER ===== */

/* ===== COMPONENTE DE ALINHAMENTO DE TEXTO ===== */
.text-align-controller {
    margin-top: 10px;
}

.align-buttons {
    display: flex;
    gap: 8px;
    margin-bottom: 15px;
}

.align-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 12px;
    background: var(--bg-secondary);
    border: 1px solid var(--border-primary);
    border-radius: 8px;
    color: var(--text-primary);
    cursor: pointer;
    transition: all 0.2s ease;
    min-width: 50px;
    min-height: 50px;
    box-shadow: var(--shadow-sm);
}

.align-btn:hover {
    background: var(--bg-hover);
    border-color: var(--border-secondary);
    color: var(--text-primary);
    transform: translateY(-1px);
    box-shadow: var(--shadow-md);
}

.align-btn.active {
    background: var(--primary);
    border-color: var(--primary);
    box-shadow: var(--shadow-primary);
    color: var(--text-primary);
}

.align-btn i {
    font-size: 20px;
}

/* Responsividade */
@media (max-width: 768px) {
    .align-buttons {
        gap: 6px;
    }
    
    .align-btn {
        min-width: 45px;
        min-height: 45px;
        padding: 8px;
    }
    
    .align-btn i {
        font-size: 18px;
    }
}

/* ===== COMPONENTE DE ESTILO DE BORDA ===== */
.border-style-controller {
    margin-top: 10px;
}

.border-control-group {
    margin-bottom: 20px;
    padding: 15px;
    border-radius: 8px;
}

.border-control-group:last-child {
    margin-bottom: 0;
}

.control-label {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 12px;
    color: #ccc;
    font-size: 14px;
    font-weight: 500;
}

.control-label i {
    font-size: 18px;
    color: #1b89f7;
}

.range-control {
    display: flex;
    align-items: center;
    gap: 12px;
}

.border-radius-range,
.border-width-range {
    flex: 1;
    height: 6px;
    background: var(--border-secondary);
    border-radius: 3px;
    outline: none;
    -webkit-appearance: none;
    appearance: none;
}

.border-radius-range::-webkit-slider-thumb,
.border-width-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 18px;
    height: 18px;
    background: #1b89f7;
    border-radius: 50%;
    cursor: pointer;
    border: 2px solid #fff;
    box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}

.border-radius-range::-webkit-slider-thumb:hover,
.border-width-range::-webkit-slider-thumb:hover {
    background: #0d6efd;
    transform: scale(1.1);
}

.border-radius-range::-moz-range-thumb,
.border-width-range::-moz-range-thumb {
    width: 18px;
    height: 18px;
    background: #1b89f7;
    border-radius: 50%;
    cursor: pointer;
    border: 2px solid #fff;
    box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}

.border-radius-range::-moz-range-thumb:hover,
.border-width-range::-moz-range-thumb:hover {
    background: #0d6efd;
}

.range-value {
    min-width: 50px;
    text-align: center;
    color: #1b89f7;
    font-weight: 600;
    font-size: 13px;
    background: rgba(27, 137, 247, 0.1);
    padding: 4px 8px;
    border-radius: 4px;
    border: 1px solid rgba(27, 137, 247, 0.3);
}

@media (max-width: 768px) {
    .border-control-group {
        padding: 12px;
        margin-bottom: 15px;
    }
    
    .control-label {
        font-size: 13px;
    }
    
    .control-label i {
        font-size: 16px;
    }
    
    .range-control {
        gap: 8px;
    }
    
    .range-value {
        min-width: 40px;
        font-size: 12px;
        padding: 3px 6px;
    }
}

/* Barra de Edição Unificada - Integrada ao Layout */
.ivcard-editor-toolbar {
    position: sticky;
    top: 0;
    left: 0;
    right: 0;
    z-index: 100;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    height: 72px;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.98) 0%, rgba(248, 250, 252, 0.95) 100%);
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
    box-shadow: 
        0 4px 20px rgba(0, 0, 0, 0.06),
        0 2px 8px rgba(0, 0, 0, 0.04);
    backdrop-filter: blur(20px);
    padding: 0 32px;
    pointer-events: auto;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    margin-bottom: 20px;
}

/* Layout integrado - apenas no modo de edição */
.content-ivcard-edit {
    display: flex;
    flex-direction: column;
    height: 100vh;
    overflow: hidden;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Layout original para renderização */
.content-ivcard:not(.content-ivcard-edit) {
    display: block;
}

/* Preview container limpo - sem fundo */
.ivcard-preview-area {
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0;
    background: transparent;
    overflow: hidden;
    min-width: 360px;
    height: calc(100vh - 72px);
}

/* Sistema de escala automática - estilo Linktree */
.content-ivcard-edit .ivcard-template-container {
    position: relative;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: visible;
}

.content-ivcard-edit .ivcard-template-container #ivcard-template {
    transform-origin: center center;
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    will-change: transform;
}

/* Escala para renderização normal - mantém sistema existente */
.content-ivcard:not(.content-ivcard-edit) #ivcard-template {
    /* Aqui mantém o sistema de escala que já existia */
    transform-origin: center center;
    transition: transform 0.3s ease;
}

.ivcard-editor-toolbar:hover {
    box-shadow: 
        0 6px 24px rgba(0, 0, 0, 0.08),
        0 3px 12px rgba(0, 0, 0, 0.06);
    background: linear-gradient(135deg, rgba(255, 255, 255, 1) 0%, rgba(248, 250, 252, 0.98) 100%);
}

/* Seções da Toolbar */
.toolbar-section {
    display: flex;
    align-items: center;
    gap: 12px;
}

.toolbar-left {
    flex-shrink: 0;
}

.toolbar-center {
    flex: 1;
    justify-content: center;
    gap: 20px;
}

.toolbar-right {
    flex-shrink: 0;
}

/* Grupos de Botões */
.toolbar-group {
    display: flex;
    gap: 6px;
    padding: 4px;
    background: rgba(248, 249, 250, 0.8);
    border-radius: 16px;
    backdrop-filter: blur(8px);
}

/* Botões da Toolbar */
.toolbar-btn {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    border: none;
    background: transparent;
    color: #6c757d;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
    text-decoration: none;
}

.toolbar-btn::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(255, 255, 255, 0.7);
    border-radius: 12px;
    opacity: 0;
    transition: all 0.25s ease;
    transform: scale(0.9);
}

.toolbar-btn:hover::before {
    opacity: 1;
    transform: scale(1);
}

.toolbar-btn:hover {
    transform: translateY(-1px) scale(1.02);
    color: #495057;
}

.toolbar-btn:active {
    transform: translateY(0) scale(0.98);
    transition: all 0.1s ease;
}

.toolbar-btn.disabled {
    opacity: 0.4;
    cursor: not-allowed;
    pointer-events: none;
}

/* Botões Específicos */
.toolbar-save {
    background: linear-gradient(135deg, #28a745 0%, #20c997 100%);
    color: white;
    box-shadow: 
        0 6px 20px rgba(40, 167, 69, 0.3),
        0 3px 10px rgba(32, 201, 151, 0.2);
}

.toolbar-save:hover {
    background: linear-gradient(135deg, #218838 0%, #1ea085 100%);
    box-shadow: 
        0 8px 24px rgba(40, 167, 69, 0.4),
        0 4px 12px rgba(32, 201, 151, 0.3);
}

.toolbar-preview {
    background: linear-gradient(135deg, #6f42c1 0%, #e83e8c 100%);
    color: white;
    box-shadow: 
        0 6px 20px rgba(111, 66, 193, 0.3),
        0 3px 10px rgba(232, 62, 140, 0.2);
}

.toolbar-preview:hover {
    background: linear-gradient(135deg, #5a32a3 0%, #d6336c 100%);
    box-shadow: 
        0 8px 24px rgba(111, 66, 193, 0.4),
        0 4px 12px rgba(232, 62, 140, 0.3);
}

.toolbar-model {
    background: linear-gradient(135deg, #fd7e14 0%, #ffc107 100%);
    color: white;
    box-shadow: 
        0 6px 20px rgba(253, 126, 20, 0.3),
        0 3px 10px rgba(255, 193, 7, 0.2);
}

.toolbar-model:hover {
    background: linear-gradient(135deg, #e55a00 0%, #e0a800 100%);
    box-shadow: 
        0 8px 24px rgba(253, 126, 20, 0.4),
        0 4px 12px rgba(255, 193, 7, 0.3);
}

/* Informações de Preview */
.preview-info {
    display: flex;
    flex-direction: column;
    gap: 2px;
    text-align: center;
}

.preview-label {
    font-size: 16px;
    font-weight: 700;
    color: #1a1a1a;
    line-height: 1.2;
    letter-spacing: -0.3px;
    background: linear-gradient(135deg, #1a1a1a 0%, #4a4a4a 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.preview-device {
    font-size: 12px;
    color: #7c7c7c;
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: 0.2px;
    opacity: 0.8;
}

/* Modos de Preview */
.preview-modes {
    display: flex;
    gap: 4px;
    padding: 4px;
    background: rgba(248, 249, 250, 0.8);
    border-radius: 16px;
    backdrop-filter: blur(8px);
}

.preview-mode-btn {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    border: none;
    background: transparent;
    color: #8e8e93;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
}

.preview-mode-btn::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(255, 255, 255, 0.7);
    border-radius: 12px;
    opacity: 0;
    transition: all 0.25s ease;
    transform: scale(0.9);
}

.preview-mode-btn:hover::before {
    opacity: 1;
    transform: scale(1);
}

.preview-mode-btn:hover {
    transform: translateY(-1px) scale(1.02);
    color: #333;
}

.preview-mode-btn:active {
    transform: translateY(0) scale(0.98);
    transition: all 0.1s ease;
}
.preview-mode-btn.active {
    background: linear-gradient(135deg, #007AFF 0%, #5856D6 100%);
    color: white;
    box-shadow: 
        0 6px 20px rgba(0, 122, 255, 0.3),
        0 3px 10px rgba(88, 86, 214, 0.2);
    transform: scale(1.02);
}

.preview-mode-btn.active::before {
    background: rgba(255, 255, 255, 0.15);
    opacity: 1;
    transform: scale(1);
}

/* Ícones */
.toolbar-btn .material-icons,
.preview-mode-btn .material-icons {
    font-size: 20px;
    color: inherit;
    transition: all 0.25s ease;
    font-weight: 500;
    position: relative;
    z-index: 1;
}

.toolbar-btn:hover .material-icons,
.preview-mode-btn:hover .material-icons {
    transform: scale(1.05);
}

.toolbar-save .material-icons,
.toolbar-preview .material-icons,
.preview-mode-btn.active .material-icons {
    filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.15));
    font-weight: 600;
}

/* Responsivo Tablet */
@media (max-width: 1024px) {
    .ivcard-editor-toolbar {
        width: 95%;
        padding: 0 20px;
    }
    
    .toolbar-center {
        gap: 16px;
    }
    
    .preview-label {
        font-size: 15px;
    }
    
    .preview-device {
        font-size: 11px;
    }
}

/* Responsivo Mobile */
@media (max-width: 768px) {
    .content-ivcard-edit {
        height: 100vh;
        height: 100dvh; /* Dynamic viewport height para mobile */
    }
    
    .ivcard-editor-toolbar {
        height: 60px;
        padding: 0 16px;
        margin-bottom: 0;
        flex-shrink: 0;
    }
    
    .toolbar-section {
        gap: 4px;
    }
    
    .toolbar-center {
        gap: 6px;
    }
    
    .toolbar-group,
    .preview-modes {
        padding: 2px;
        border-radius: 8px;
    }
    
    .toolbar-btn,
    .preview-mode-btn {
        width: 36px;
        height: 36px;
        border-radius: 6px;
    }
    
    .toolbar-btn .material-icons,
    .preview-mode-btn .material-icons {
        font-size: 16px;
    }
    
    .preview-label {
        font-size: 12px;
        font-weight: 600;
    }
    
    .preview-device {
        font-size: 8px;
    }
    
    .ivcard-preview-area {
        padding: 0;
        height: calc(100vh - 60px);
         /* Dynamic viewport height para mobile */
        margin: 0 20px;
    }
    

}

/* Mobile Muito Pequeno */
@media (max-width: 480px) {
    .ivcard-editor-toolbar {
       
    }
    
    .toolbar-section {
        justify-content: center;
    }
    
    .toolbar-center {
    display: none;
    }
    
    .preview-modes {
        width: 100%;
        justify-content: center;
    }
    
    .preview-mode-btn {
        flex: 1;
        max-width: 50px;
    }
}

/* Modo Escuro */
@media (prefers-color-scheme: dark) {
    .ivcard-editor-toolbar {
        background: rgba(28, 28, 30, 0.96);
        border-color: rgba(255, 255, 255, 0.08);
    }
    
    .preview-label {
        background: linear-gradient(135deg, #ffffff 0%, #a0a0a0 100%);
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
        background-clip: text;
    }
    
    .preview-device {
        color: #a0a0a0;
    }
    
    .toolbar-group,
    .preview-modes {
        background: rgba(58, 58, 60, 0.8);
    }
    
    .toolbar-btn,
    .preview-mode-btn {
        color: #a0a0a0;
    }
    
    .toolbar-btn::before,
    .preview-mode-btn::before {
        background: rgba(58, 58, 60, 0.8);
    }
}

/* Animações de entrada */
@keyframes toolbarSlideDown {
    from {
        opacity: 0;
        transform: translateX(-50%) translateY(-24px) scale(0.96);
        filter: blur(4px);
    }
    to {
        opacity: 1;
        transform: translateX(-50%) translateY(0) scale(1);
        filter: blur(0);
    }
}

.ivcard-editor-toolbar {
    animation: toolbarSlideDown 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* Layout simples e efetivo - sem conflitos com menu */

/* Marca D'água */
.ivcard-watermark {
    position: fixed;
    top: 0;
    left: 0;
    width: 200px;
    height: auto;
    z-index: -1;
    pointer-events: none;
    opacity: 0.3;
    transform: rotate(0deg) scale(1);
    object-fit: contain;
}

/* Controles de marca d'água */
.direction-buttons, .align-buttons {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 8px;
}

.margin-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
    margin-top: 10px;
}

.margin-item {
    display: flex;
    flex-direction: column;
}

.margin-item label {
    font-size: 12px;
    color: var(--text-tertiary);
    margin-bottom: 5px;
}

.margin-input {
    background: #34495e;
    border: 1px solid #2c3e50;
    color: var(--text-secondary);
    padding: 8px;
    border-radius: 4px;
    font-size: 12px;
}

.margin-input:focus {
    outline: none;
    border-color: #3498db;
}

/* ========================================
   ESTILOS PARA SVGs CUSTOMIZADOS
   ======================================== */

/* CSS para o editor de ícones - SVGs devem crescer */
.icone-item svg,
.icone-editor svg,
.icone svg,
.icone-item .icone svg {
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    min-width: 1em !important;
    min-height: 1em !important;
}

/* Garantir que o SVG do CapCut seja visível e cresça */
.icone-item svg path,
.icone-editor svg path,
.icone svg path {
    stroke: red !important;
    fill: none !important;
    vector-effect: non-scaling-stroke;
}

/* Forçar o SVG a crescer no editor */
.icone-item .icone svg,
.icone-editor .icone svg {
    transform: scale(1);
    transform-origin: center;
}

/* ========================================
   ESTILOS DO COMPONENTE EDITOR
   ======================================== */

/* Container do Editor */
.editor-container {
    position: relative;
}

/* Contador de Caracteres */
.character-counter {
    position: absolute;
    bottom: 8px;
    right: 12px;
    background: rgba(255, 255, 255, 0.9);
    padding: 4px 8px;
    border-radius: 4px;
    font-size: 12px;
    color: #666;
    border: 1px solid #e0e0e0;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
    transition: all 0.3s ease;
    z-index: 10;
}

/* Aviso quando próximo do limite */
.character-counter.limit-warning {
    background: rgba(255, 193, 7, 0.9);
    color: #856404;
    border-color: #ffc107;
}

/* Aviso quando excedeu o limite */
.character-counter.limit-exceeded {
    background: rgba(220, 53, 69, 0.9);
    color: #721c24;
    border-color: #dc3545;
    animation: pulse-warning 0.5s ease-in-out;
}

/* Animação de aviso */
@keyframes pulse-warning {
    0% { transform: scale(1); }
    50% { transform: scale(1.05); }
    100% { transform: scale(1); }
}

/* Responsivo para mobile */
@media (max-width: 768px) {
    .character-counter {
        font-size: 11px;
        padding: 3px 6px;
        bottom: 6px;
        right: 8px;
    }
}

/* ============================================
   ICON LIBRARY - BACKGROUNDS MODE
   ============================================ */

.bg-library .icon-grid {
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
    gap: 15px;
}

.bg-library .icon-item.bg-item {
    aspect-ratio: 16/9;
    border-radius: 8px;
    overflow: hidden;
    position: relative;
    cursor: pointer;
    transition: all 0.3s ease;
    border: 2px solid transparent;
}

.bg-library .icon-item.bg-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(0,0,0,0.15);
    border-color: #2196F3;
}

.bg-library .icon-item.bg-item.selected {
    border-color: #4CAF50;
    box-shadow: 0 0 0 3px rgba(76, 175, 80, 0.3);
}

.bg-library .bg-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.bg-library .icon-item.bg-item:hover .bg-image {
    transform: scale(1.05);
}

.bg-library .icon-name {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background: linear-gradient(transparent, rgba(0,0,0,0.8));
    color: white;
    padding: 8px;
    font-size: 12px;
    font-weight: 500;
    text-align: center;
    transform: translateY(100%);
    transition: transform 0.3s ease;
}

.bg-library .icon-item.bg-item:hover .icon-name {
    transform: translateY(0);
}

/* Responsividade para backgrounds */
@media (max-width: 768px) {
    .bg-library .icon-grid {
        grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
        gap: 10px;
    }
    
    .bg-library .icon-item.bg-item {
        aspect-ratio: 4/3;
    }
}

@media (max-width: 480px) {
    .bg-library .icon-grid {
        grid-template-columns: repeat(auto-fill, minmax(80px, 1fr));
        gap: 8px;
    }
}

/* ============================================
   BACKGROUND LIBRARY - Componente Simples
   ============================================ */

.background-library {
    padding: 20px;
    background: #f8f9fa;
    border-radius: 12px;
    max-height: 600px;
    overflow-y: auto;
}

.background-library-header {
    margin-bottom: 20px;
}

.background-library-title {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 15px 0;
    color: #333;
    font-size: 18px;
    font-weight: 600;
}

.background-library-title i {
    color: #2196F3;
}

/* ============================================
   BUSCA
   ============================================ */

.background-search-container {
    margin-bottom: 15px;
}

.background-search-container .input-field {
    position: relative;
}

.background-search-input {
    padding-right: 80px !important;
    border-radius: 25px;
    border: 2px solid #e0e0e0;
    transition: all 0.3s ease;
    background: white;
}

.background-search-input:focus {
    border-color: #2196F3;
    box-shadow: 0 0 0 3px rgba(33, 150, 243, 0.1);
}

.background-search-icon {
    position: absolute;
    right: 45px;
    top: 50%;
    transform: translateY(-50%);
    color: #999;
    pointer-events: none;
}

.clear-search-btn {
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    color: #999;
    cursor: pointer;
    padding: 5px;
    border-radius: 50%;
    transition: all 0.3s ease;
}

.clear-search-btn:hover {
    background: #f5f5f5;
    color: #666;
}

/* ============================================
   GRID DE BACKGROUNDS
   ============================================ */

.background-grid, #fileUploade_back .user-images-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 20px;
    margin-bottom: 20px;
}

.background-item, #fileUploade_back .user-image-item {
    border-radius: 12px;
    overflow: hidden;
    position: relative;
    cursor: pointer;
    transition: all 0.3s ease;
    border: 2px solid transparent;
    background: white;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}

.background-item:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 30px rgba(0,0,0,0.25);
    border-color: #2196F3;
}

.background-item.selected {
    border-color: #4CAF50;
    box-shadow: 0 0 0 4px rgba(76, 175, 80, 0.3);
}

.background-image, #fileUploade_back .user-image-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.background-item:hover .background-image {
    transform: scale(1.05);
}

.background-name {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background: linear-gradient(transparent, rgba(0,0,0,0.9));
    color: white;
    padding: 12px;
    font-size: 14px;
    font-weight: 600;
    text-align: center;
    transform: translateY(100%);
    transition: transform 0.3s ease;
}

.background-item:hover .background-name {
    transform: translateY(0);
}

/* ============================================
   LOADING E ESTADOS
   ============================================ */

.background-loading {
    text-align: center;
    padding: 40px 20px;
    color: #666;
}

.background-loading .progress {
    margin-bottom: 15px;
}

.no-results {
    text-align: center;
    padding: 40px 20px;
    color: #666;
}

.no-results i {
    font-size: 48px;
    color: #ccc;
    margin-bottom: 15px;
}

.results-count {
    text-align: center;
    color: #666;
    font-size: 14px;
    padding: 10px;
    background: rgba(255,255,255,0.8);
    border-radius: 8px;
}

/* ============================================
   RESPONSIVIDADE
   ============================================ */

@media (max-width: 768px) {
    .background-grid {
        grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
        gap: 15px;
    }
    
    .background-item {
        aspect-ratio: 4/3;
    }
}

@media (max-width: 480px) {
    .background-library {
        padding: 15px;
    }
    
    .background-grid {
        grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
        gap: 12px;
    }
    
    .background-library-title {
        font-size: 16px;
    }
}

/* ============================================
   MARGIN CONTROLLER STYLES
   ============================================ */

.margin-controller-container {
    background: var(--card-bg);
    border: 1px solid var(--card-border);
    border-radius: var(--card-radius);
    box-shadow: var(--card-shadow);
    padding: var(--card-padding);
    margin-top: 10px;
}

.margin-control-item {
    margin-bottom: 15px;
}

.margin-control-item:last-child {
    margin-bottom: 0;
}

.margin-label {
    font-size: 12px;
    color: var(--text-secondary);
    font-weight: 500;
    margin-bottom: 8px;
    display: block;
}

.margin-slider-container {
    display: flex;
    align-items: center;
    gap: 10px;
}

.margin-slider {
    flex: 1;
    height: 6px;
    background: var(--bg-secondary);
    border-radius: 3px;
    outline: none;
    -webkit-appearance: none;
    appearance: none;
}

.margin-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 18px;
    height: 18px;
    background: var(--primary);
    border-radius: 50%;
    cursor: pointer;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
    transition: all 0.2s ease;
}

.margin-slider::-webkit-slider-thumb:hover {
    transform: scale(1.1);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
}

.margin-slider::-moz-range-thumb {
    width: 18px;
    height: 18px;
    background: var(--primary);
    border-radius: 50%;
    cursor: pointer;
    border: none;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
    transition: all 0.2s ease;
}

.margin-slider::-moz-range-thumb:hover {
    transform: scale(1.1);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
}

.margin-value {
    font-size: 11px;
    color: var(--text-primary);
    font-weight: 600;
    min-width: 35px;
    text-align: right;
    font-family: 'Courier New', monospace;
}

/* Responsividade */
@media (max-width: 768px) {
    .margin-slider-container {
        gap: 8px;
    }
    
    .margin-value {
        font-size: 10px;
        min-width: 30px;
    }
    
    .margin-label {
        font-size: 11px;
    }
}

/* ============================================
   EXPORT PDF STYLES
   ============================================ */

.pdf-preview-container {
    width: 100%;
    height: 500px;
    border: 1px solid #e0e0e0;
    border-radius: 12px;
    overflow: hidden;
    margin: 20px auto;
    background: #f8f9fa;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.pdf-preview-iframe {
    width: 100%;
    height: 100%;
    border: none;
    transition: opacity 0.3s ease;
    transform: scale(0.7);
    transform-origin: center center;
}

.pdf-actions {
    text-align: center;
    padding: 30px 0;
    background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
    border-radius: 12px;
    margin-top: 20px;
    display: flex;
    justify-content: center;
}

.pdf-actions .btn {
    padding: 16px 32px;
    font-size: 16px;
    font-weight: 600;
    border-radius: 50px;
    background: linear-gradient(135deg, #007bff 0%, #0056b3 100%);
    border: none;
    color: white;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    box-shadow: 0 4px 15px rgba(0, 123, 255, 0.3);
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
    display: flex;
    justify-content: center;
    align-items: center;
}

.pdf-actions .btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0, 123, 255, 0.4);
    background: linear-gradient(135deg, #0056b3 0%, #004085 100%);
}

.pdf-actions .btn:active {
    transform: translateY(0);
    box-shadow: 0 2px 10px rgba(0, 123, 255, 0.3);
}

.pdf-actions .btn i {
    margin-right: 10px;
    font-size: 20px;
}

/* ============================================
   EXPORT EMAIL SIGNATURE STYLES
   ============================================ */

.email-signature-preview-container {
    width: 100%;
    height: 200px;
    border: 1px solid #e0e0e0;
    border-radius: 12px;
    overflow: hidden;
    margin: 20px auto;
    background: #f8f9fa;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.email-signature-preview-iframe {
    width: 100%;
    height: 100%;
    border: none;
    transition: opacity 0.3s ease;
    transform: scale(0.8);
    transform-origin: center center;
}

.email-signature-actions {
    text-align: center;
    padding: 30px 0;
    background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
    border-radius: 12px;
    margin-top: 20px;
    display: flex;
    justify-content: center;
}

.email-signature-actions .btn {
    padding: 16px 32px;
    font-size: 16px;
    font-weight: 600;
    border-radius: 50px;
    background: linear-gradient(135deg, #007bff 0%, #0056b3 100%); /* Blue theme */
    border: none;
    color: white;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    box-shadow: 0 4px 15px rgba(0, 123, 255, 0.3);
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
    display: flex;
    justify-content: center;
    align-items: center;
}

.email-signature-actions .btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0, 123, 255, 0.4);
    background: linear-gradient(135deg, #0056b3 0%, #004085 100%);
}

.email-signature-actions .btn:active {
    transform: translateY(0);
    box-shadow: 0 2px 10px rgba(0, 123, 255, 0.3);
}

.email-signature-actions .btn i {
    margin-right: 10px;
    font-size: 20px;
}

/* ============================================
   EXPORT CRACHÁ STYLES
   ============================================ */

.crachá-preview-container {
    width: 100%;
    height: 500px;
    border: 1px solid #e0e0e0;
    border-radius: 12px;
    overflow: hidden;
    margin: 20px auto;
    background: #f8f9fa;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.crachá-preview-iframe {
    width: 100%;
    height: 100%;
    border: none;
    transition: opacity 0.3s ease;
    transform: scale(0.7);
    transform-origin: center center;
}

.crachá-actions {
    text-align: center;
    padding: 30px 0;
    background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
    border-radius: 12px;
    margin-top: 20px;
    display: flex;
    justify-content: center;
}

.crachá-actions .btn {
    padding: 16px 32px;
    font-size: 16px;
    font-weight: 600;
    border-radius: 50px;
    background: linear-gradient(135deg, #28a745 0%, #1e7e34 100%);
    border: none;
    color: white;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    box-shadow: 0 4px 15px rgba(40, 167, 69, 0.3);
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
    display: flex;
    justify-content: center;
    align-items: center;
}

.crachá-actions .btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(40, 167, 69, 0.4);
    background: linear-gradient(135deg, #1e7e34 0%, #155724 100%);
}

.crachá-actions .btn:active {
    transform: translateY(0);
    box-shadow: 0 2px 10px rgba(40, 167, 69, 0.3);
}

.crachá-actions .btn i {
    margin-right: 10px;
    font-size: 20px;
}

.pdf-actions .btn:before {
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
    transition: left 0.5s;
}

.pdf-actions .btn:hover:before {
    left: 100%;
}

/* Estilos para a navegação do botão salvar contato */
.help-text {
    font-size: 12px;
    color: #666;
    margin-top: 8px;
    display: flex;
    align-items: center;
    gap: 4px;
}

.help-text i {
    font-size: 16px;
    color: #007bff;
}

/* Estilos para elementos bloqueados por permissões */
.ivcard-item-locked,
.ivcard-locked {
    opacity: 0.6;
    cursor: not-allowed !important;
    pointer-events: none;
    position: relative;
}

.ivcard-item-locked::after,
.ivcard-locked::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.05);
    border-radius: 4px;
    z-index: 1;
}

.ivcard-item-locked .btnEdit {
    display: none !important;
}

/* Estilos específicos para listas de adicionar (ícones e blocos) bloqueados */
.ivcard-nav-icones span.ivcard-item-locked {
    opacity: 0.5;
    cursor: not-allowed !important;
    filter: grayscale(100%);
    position: relative;
}

.ivcard-nav-icones span.ivcard-item-locked::after {
    content: '🔒';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 1.2rem;
    z-index: 2;
    background: rgba(255, 255, 255, 0.9);
    border-radius: 50%;
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

.ivcard-nav-list > div.ivcard-item-locked {
    opacity: 0.5;
    cursor: not-allowed !important;
    filter: grayscale(100%);
    position: relative;
    background-color: #f5f5f5 !important;
}

.ivcard-nav-list > div.ivcard-item-locked::before {
    content: '🔒 Bloqueado';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 0.75rem;
    font-weight: 600;
    color: #dc3545;
    z-index: 2;
    background: rgba(255, 255, 255, 0.95);
    padding: 4px 8px;
    border-radius: 4px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
    white-space: nowrap;
}

.ivcard-nav-list > div.ivcard-item-locked .icone,
.ivcard-nav-list > div.ivcard-item-locked .legenda,
.ivcard-nav-list > div.ivcard-item-locked i {
    opacity: 0.4;
}