/* Gomes Junior portal: visual layer for cliente/corretor flows. */

body.portal-page {
    background: #fff;
    color: var(--color-text);
}

body.portal-page .site-header .logo,
body.portal-page .site-header .logo img {
    max-width: none !important;
}

body.portal-page .site-header .logo img {
    width: auto !important;
}

body.portal-page .site-footer,
body.portal-page .site-footer h1,
body.portal-page .site-footer h2,
body.portal-page .site-footer h3,
body.portal-page .site-footer h4,
body.portal-page .site-footer p,
body.portal-page .site-footer a,
body.portal-page .site-footer li,
body.portal-page .site-footer span,
body.portal-page .site-footer input,
body.portal-page .site-footer button {
    font-family: var(--font-base) !important;
}

body.portal-page .site-footer .footer-brand a {
    display: inline-flex;
    align-items: center;
}

body.portal-page .site-footer .footer-brand img {
    width: auto !important;
    max-width: 100% !important;
    height: 40px;
    object-fit: contain;
}

body.portal-page .smooth-scroll-content {
    padding-top: 0;
}

body.portal-page .wrap {
    max-width: var(--container);
    width: 100%;
    margin: 0 auto;
    padding-left: 24px;
    padding-right: 24px;
}

body.portal-page .containner,
body.portal-page .container {
    width: 100%;
}

body.portal-page .columns {
    display: flex;
    align-items: stretch;
    margin-left: -12px;
    margin-right: -12px;
}

body.portal-page .columns.is-multiline,
body.portal-page .columns.is-mobile {
    flex-wrap: wrap;
}

body.portal-page .column {
    display: block;
    flex: 1 1 0;
    min-width: 0;
    padding: 12px;
}

body.portal-page .is-relative { position: relative; }
body.portal-page .is-absolute { position: absolute; }
body.portal-page .is-uppercase { text-transform: uppercase; }
body.portal-page .has-text-centered { text-align: center; }
body.portal-page .has-text-left { text-align: left; }
body.portal-page .has-text-right { text-align: right; }
body.portal-page .color-primary { color: var(--color-primary) !important; }
body.portal-page .color-secondary { color: var(--color-dark) !important; }
body.portal-page .color-white { color: #fff !important; }
body.portal-page .bg-primary { background: var(--color-primary) !important; }
body.portal-page .bg-secondary { background: var(--color-dark) !important; }
body.portal-page .bg-gray { background: var(--color-bg-soft) !important; }
body.portal-page .bg-white { background: #fff !important; }
body.portal-page .smooth-scroll-content .is-hide { display: none !important; }

body.portal-page .pt40 { padding-top: 40px !important; }
body.portal-page .mt60 { margin-top: 60px !important; }
body.portal-page .mt50 { margin-top: 50px !important; }
body.portal-page .mt30 { margin-top: 30px !important; }
body.portal-page .mb0 { margin-bottom: 0 !important; }
body.portal-page .pl0 { padding-left: 0 !important; }
body.portal-page .pr20 { padding-right: 20px !important; }
body.portal-page .pr40 { padding-right: 40px !important; }

@media (min-width: 768px) {
    body.portal-page .is-1 { flex: 0 0 8.333333%; max-width: 8.333333%; }
    body.portal-page .is-3,
    body.portal-page .is-3-tablet,
    body.portal-page .is-3-tablet-v { flex: 0 0 25%; max-width: 25%; }
    body.portal-page .is-4,
    body.portal-page .is-4-tablet,
    body.portal-page .is-4-tablet-v { flex: 0 0 33.333333%; max-width: 33.333333%; }
    body.portal-page .is-5,
    body.portal-page .is-5-tablet,
    body.portal-page .is-5-tablet-v { flex: 0 0 41.666667%; max-width: 41.666667%; }
    body.portal-page .is-6,
    body.portal-page .is-6-tablet,
    body.portal-page .is-6-tablet-v { flex: 0 0 50%; max-width: 50%; }
    body.portal-page .is-7 { flex: 0 0 58.333333%; max-width: 58.333333%; }
    body.portal-page .is-8,
    body.portal-page .is-8-tablet,
    body.portal-page .is-8-tablet-v { flex: 0 0 66.666667%; max-width: 66.666667%; }
    body.portal-page .is-11 { flex: 0 0 91.666667%; max-width: 91.666667%; }
    body.portal-page .is-12,
    body.portal-page .is-12-tablet,
    body.portal-page .is-12-tablet-v { flex: 0 0 100%; max-width: 100%; }
    body.portal-page .is-hidden-tablet { display: none !important; }
}

@media (max-width: 767px) {
    body.portal-page .columns { margin-left: -8px; margin-right: -8px; }
    body.portal-page .column { padding: 8px; }
    body.portal-page .is-6-mobile { flex: 0 0 50%; max-width: 50%; }
    body.portal-page .is-11-mobile { flex: 0 0 91.666667%; max-width: 91.666667%; }
    body.portal-page .is-12-mobile { flex: 0 0 100%; max-width: 100%; }
    body.portal-page .is-order-0-mobile { order: 0; }
    body.portal-page .is-order-1-mobile { order: 1; }
    body.portal-page .is-order-2-mobile { order: 2; }
    body.portal-page .is-hidden-mobile { display: none !important; }
    body.portal-page .has-text-left-mobile { text-align: left !important; }
}

body.portal-page .banner-sub {
    margin-top: 0px;
    overflow: hidden;
}

body.portal-page .banner-sub .wrap {
    max-width: 100%;
    padding-left: 0;
    padding-right: 0;
}

body.portal-page .banner-sub .columns {
    align-items: stretch;
    min-height: 420px;
    margin-left: 0;
    margin-right: 0;
}

body.portal-page .banner-sub .column {
    padding: 0;
}

body.portal-page .banner-sub .column:first-child {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    background: var(--color-primary);
    color: #fff;
    min-height: 360px;
}

body.portal-page .banner-sub .column:first-child br {
    display: none;
}

body.portal-page .banner-sub .txt {
    width: min(100%, 420px);
    padding: 64px 72px 64px 24px;
    position: relative;
    z-index: 2;
    color: #fff;
    font-size: 0.9rem;
    font-weight: 700;
    letter-spacing: 0.12em;
}

body.portal-page .banner-sub .txt h1,
body.portal-page .banner-sub .txt h2 {
    color: #fff;
    margin-top: 28px;
    margin-bottom: 0;
    font-size: clamp(2rem, 4vw, 48px);
    line-height: 1.15;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: none;
}

body.portal-page .banner-sub img {
    width: 100%;
    height: 100%;
    min-height: 420px;
    object-fit: cover;
}

body.portal-page .banner-sub .box-header,
body.portal-page .banner-sub .overlay-banner {
    display: none;
}

@media (min-width: 1440px) {
    body.portal-page .banner-sub.banner-sub--portal-login .banner-sub__panel {
        flex: 0 0 44%;
        max-width: 44%;
    }

    body.portal-page .banner-sub.banner-sub--portal-login .banner-sub__media {
        flex: 0 0 56%;
        max-width: 56%;
    }
}

@media (min-width: 1024px) and (max-width: 1599px) {
    body.portal-page .banner-sub .txt {
        font-size: 16px;
    }
}

body.portal-page .section-contato,
body.portal-page #content,
body.portal-page .espaco_corretor,
body.portal-page .titulo_espaco_cliente,
body.portal-page .propostas,
body.portal-page .tabs,
body.portal-page #main,
body.portal-page .table-propostas,
body.portal-page .tabela-mobile,
body.portal-page .notification {
    font-family: var(--font-base);
    color: var(--color-text);
}

body.portal-page .section-contato,
body.portal-page #content {
    padding-top: 56px;
    padding-bottom: 64px;
}

body.portal-page #content > h3,
body.portal-page .section-contato h3,
body.portal-page .section-contato h4,
body.portal-page .section-contato strong {
    color: var(--color-dark);
    font-family: var(--font-base);
}

body.portal-page .section-contato h3,
body.portal-page #content > h3 {
    font-size: clamp(1.25rem, 2.2vw, 1.75rem);
    line-height: 1.35;
    margin-bottom: 24px;
}

body.portal-page .section-contato .bg-square {
    position: absolute;
    top: 0;
    right: 12px;
    bottom: 0;
    left: 12px;
    min-height: 180px;
    background: var(--color-bg-soft);
    z-index: 0;
}

body.portal-page .section-contato .is-relative.pr40 {
    position: relative;
    z-index: 1;
    padding: 36px 44px;
    color: var(--color-gray-700);
}

body.portal-page p,
body.portal-page td,
body.portal-page th,
body.portal-page label,
body.portal-page legend {
    color: var(--color-gray-700);
}

body.portal-page hr,
body.portal-page .section-contato hr,
body.portal-page .form-login hr {
    height: 1px;
    background: var(--color-primary) !important;
    border: 0;
    margin: 28px 0;
}

body.portal-page input,
body.portal-page select,
body.portal-page textarea,
body.portal-page .input,
body.portal-page .textarea {
    width: 100%;
    min-height: 52px;
    padding: 14px 18px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    background: #fff;
    color: var(--color-text);
    box-shadow: none;
    font-family: var(--font-base);
    font-size: 1rem;
    line-height: 1.5;
    outline: none;
    transition: border-color .2s ease, box-shadow .2s ease;
}

body.portal-page textarea,
body.portal-page .textarea {
    min-height: 140px;
    resize: vertical;
}

body.portal-page input::placeholder,
body.portal-page textarea::placeholder {
    color: var(--color-gray-500);
    opacity: 1;
}

body.portal-page input:focus,
body.portal-page select:focus,
body.portal-page textarea:focus {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(227, 30, 36, 0.12);
}

body.portal-page input[type="radio"],
body.portal-page input[type="checkbox"],
body.portal-page .check {
    width: auto;
    min-height: 0;
    margin-right: 8px;
    accent-color: var(--color-primary);
}

body.portal-page .select {
    display: block;
    position: relative;
    width: 100%;
}

body.portal-page .select::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 18px;
    width: 9px;
    height: 9px;
    border-right: 2px solid var(--color-gray-500);
    border-bottom: 2px solid var(--color-gray-500);
    transform: translateY(-65%) rotate(45deg);
    pointer-events: none;
}

body.portal-page .select select {
    appearance: none;
    padding-right: 42px;
}

body.portal-page .espaco_corretor form {
    width: 100%;
}

body.portal-page .espaco_corretor form fieldset {
    margin: 0 0 26px;
    padding: 28px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    background: #fff;
    box-shadow: 0 14px 36px rgba(15, 23, 42, 0.06);
}

body.portal-page .espaco_corretor form legend {
    padding: 0 10px;
    color: var(--color-primary);
    font-size: .82rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

body.portal-page .espaco_corretor form h4 {
    margin: 6px 0 16px;
    color: var(--color-gray-700);
    font-size: .92rem;
    font-weight: 600;
}

body.portal-page .espaco_corretor form .form-group {
    width: 100%;
    margin-bottom: 14px;
}

body.portal-page .espaco_corretor form .form-group > label {
    display: block;
    width: 100%;
}

body.portal-page .espaco_corretor form .form-group input,
body.portal-page .espaco_corretor form .form-group select,
body.portal-page .espaco_corretor form .form-group textarea {
    margin-bottom: 0 !important;
}

body.portal-page .espaco_corretor form .form-inline {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    align-items: start;
    margin-bottom: 14px;
}

body.portal-page .espaco_corretor form .form-inline:last-child {
    margin-bottom: 0;
}

body.portal-page .espaco_corretor form .form-inline > .form-group,
body.portal-page .espaco_corretor form .form-inline > .form-inline {
    min-width: 0;
    margin-bottom: 0;
}

body.portal-page .espaco_corretor form .form-inline > .form-inline {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

body.portal-page .espaco_corretor form .form-inline > .form-inline > .form-group {
    width: auto !important;
    padding: 0 !important;
}

body.portal-page .espaco_corretor form .form-group .select,
body.portal-page .espaco_corretor form .form-inline .select {
    width: 100%;
}

body.portal-page .espaco_corretor form .botao + .msg,
body.portal-page .espaco_corretor form button + .msg {
    display: inline-flex;
    margin-left: 12px;
    vertical-align: middle;
}

body.portal-page .espaco_corretor form .load {
    vertical-align: middle;
}

body.portal-page .espaco_corretor .floatL { float: left; }
body.portal-page .espaco_corretor .floatR { float: right; }
body.portal-page .espaco_corretor .clear { clear: both; }
body.portal-page .espaco_corretor .noDisplay { display: none !important; }

body.portal-page .espaco_corretor .box-conjuge-sn {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px;
    margin: 6px 0 12px;
    color: var(--color-dark);
    font-size: .92rem;
    font-weight: 700;
}

body.portal-page .espaco_corretor .box-conjuge-sn > strong {
    margin-right: 4px;
}

body.portal-page .espaco_corretor .box-conjuge-sn div {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-full);
    background: #fff;
    cursor: pointer;
}

body.portal-page .espaco_corretor .box-conjuge-sn span {
    width: 16px;
    height: 16px;
    border: 2px solid var(--color-primary);
    border-radius: var(--radius-full);
    display: inline-block;
}

body.portal-page .espaco_corretor .box-conjuge-sn span.active {
    background: var(--color-primary);
}

body.portal-page .espaco_corretor .anexos {
    display: block;
    margin-bottom: 16px;
}

body.portal-page .espaco_corretor .anexos ul {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

body.portal-page .espaco_corretor .anexos a {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    padding: 8px 14px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    background: var(--color-bg-soft);
    color: var(--color-dark);
    font-weight: 600;
}

body.portal-page .espaco_corretor .file-inputs {
    display: block;
    margin-bottom: 12px;
}

body.portal-page .espaco_corretor .file-inputs input[type="file"] {
    min-height: 52px;
    padding: 12px 14px;
    border: 1px dashed var(--color-border);
    background: #fafafa;
}

body.portal-page .form-login .columns {
    align-items: center;
}

body.portal-page .msg {
    display: inline-flex;
    margin-left: 16px;
    color: var(--color-gray-700);
}

body.portal-page .msg.error,
body.portal-page .error {
    color: #b91c1c;
}

body.portal-page .msg.success,
body.portal-page .success {
    color: #166534;
}

body.portal-page .botao,
body.portal-page .button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-height: 52px;
    padding: 14px 30px;
    border: 1px solid var(--color-primary);
    border-radius: var(--radius);
    background: var(--color-primary);
    color: #fff;
    font-family: var(--font-base);
    font-size: 0.95rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    box-shadow: var(--shadow-md);
    transition: background .2s ease, border-color .2s ease, color .2s ease, transform .2s ease;
}

body.portal-page .botao:hover,
body.portal-page .button:hover {
    background: var(--color-primary-dark);
    border-color: var(--color-primary-dark);
    color: #fff;
    transform: translateY(-1px);
}

body.portal-page .botao > i,
body.portal-page .button > i,
body.portal-page .botao > .icon,
body.portal-page .button > .icon {
    flex: 0 0 auto;
}

body.portal-page .button.is-loading,
body.portal-page .botao.is-loading {
    opacity: .7;
    pointer-events: none;
}

body.portal-page .botao.is-secondary,
body.portal-page .button.is-secondary,
body.portal-page .level-item.box-contMsg {
    background: var(--color-dark);
    border-color: var(--color-dark);
}

body.portal-page .botao.is-white,
body.portal-page .button.is-white {
    background: #fff;
    color: var(--color-primary);
    border-color: var(--color-primary);
}

body.portal-page .botao.is-white:hover,
body.portal-page .button.is-white:hover {
    background: var(--color-primary);
    color: #fff;
}

body.portal-page .botao.is-gray,
body.portal-page .button.is-gray {
    background: var(--color-bg-soft);
    color: var(--color-gray-700);
    border-color: var(--color-border);
}

body.portal-page .espaco_corretor {
    margin-top: 40px;
    margin-bottom: 80px;
}

body.portal-page .titulo_espaco_cliente {
    align-items: center;
    padding: 28px 0 8px;
    border-bottom: 1px solid var(--color-border);
    margin-bottom: 24px;
}

body.portal-page .titulo_espaco_cliente h1,
body.portal-page .espaco_corretor h1,
body.portal-page .espaco_corretor h2,
body.portal-page .espaco_corretor h3,
body.portal-page .espaco_corretor h4,
body.portal-page .propostas h2 {
    color: var(--color-dark);
    font-family: var(--font-base);
}

body.portal-page .titulo_espaco_cliente h1 {
    font-size: clamp(1.7rem, 3vw, 36px);
    line-height: 1.2;
    font-weight: 800;
    text-align: center;
    margin-bottom: 30px;
    text-transform: uppercase;
}

body.portal-page .espaco_corretor .titulo {
    font-size: 20px;
    line-height: 1.2;
    font-weight: 800;
    text-align: center;
    margin-bottom: 30px;
    text-transform: uppercase;
}

body.portal-page .titulo_espaco_cliente h5 {
    color: var(--color-gray-700);
    font-size: 1rem;
    line-height: 1.7;
    text-align: right;
}

body.portal-page .titulo_espaco_cliente a,
body.portal-page .propostas a,
body.portal-page .table-propostas a,
body.portal-page .tabela-mobile a {
    color: var(--color-primary);
}

body.portal-page .propostas a.botao,
body.portal-page .propostas a.button,
body.portal-page .table-disponibilidades a.botao,
body.portal-page .table-disponibilidades a.button {
    color: #fff;
}

body.portal-page .propostas a.botao:hover,
body.portal-page .propostas a.button:hover,
body.portal-page .table-disponibilidades a.botao:hover,
body.portal-page .table-disponibilidades a.button:hover {
    color: #fff;
}

body.portal-page .hamburger.menu-espaco-corretor {
    display: none;
}

body.portal-page .tabs {
    margin: 24px 0 40px;
}

body.portal-page .tabs ul {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
    border: 0;
    margin: 0;
    padding: 0;
}

body.portal-page .tabs li {
    list-style: none;
}

body.portal-page .tabs a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 44px;
    padding: 10px 14px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    background: #fff;
    color: var(--color-gray-700);
    font-size: 0.86rem;
    font-weight: 600;
    text-transform: uppercase;
}

body.portal-page .tabs li.is-active a,
body.portal-page .tabs a:hover {
    border-color: var(--color-primary);
    background: var(--color-primary);
    color: #fff;
}

body.portal-page .tabs .icon,
body.portal-page .icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

body.portal-page .tabs .numMsg {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    min-height: 20px;
    margin-left: 6px;
    padding: 0 6px;
    border-radius: var(--radius-full);
    background: var(--color-primary);
    color: #fff;
    font-size: .75rem;
}

body.portal-page .level {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 14px;
    align-items: stretch;
    margin: 24px 0 36px;
}

body.portal-page .level-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 154px;
    padding: 24px 16px;
    border-radius: var(--radius-lg);
    background: var(--color-primary);
    color: #fff;
    text-align: center;
    box-shadow: var(--shadow-md);
}

body.portal-page .level-item:hover {
    background: var(--color-primary-dark);
    color: #fff;
    transform: translateY(-2px);
}

body.portal-page .level-item .heading,
body.portal-page .level-item .title,
body.portal-page .level-item .fa,
body.portal-page .level-item .icon,
body.portal-page .level-item p {
    color: #fff;
}

body.portal-page .level-item .heading {
    margin: 10px 0 4px;
    font-size: .76rem;
    line-height: 1.35;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}

body.portal-page .level-item .title {
    font-size: 2.2rem;
    line-height: 1;
    font-weight: 800;
}

body.portal-page .level-item .title.title-dwv-sync {
    max-width: 100%;
    font-size: .78rem;
    line-height: 1.35;
    font-weight: 700;
}

body.portal-page .level-item .title.title-dwv-sync span {
    display: block;
}

body.portal-page .propostas {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 28px;
}

body.portal-page .propostas h2 {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 0;
    font-size: clamp(1.3rem, 2.3vw, 20px);
    font-weight: 800;
}

body.portal-page .notification {
    width: 100%;
    padding: 16px 20px;
    border-radius: var(--radius);
    border: 1px solid var(--color-border);
    background: #fff;
}

body.portal-page .notification.is-danger.is-light {
    background: #fef2f2;
    border-color: #fecaca;
    color: #991b1b;
}

body.portal-page .notification.is-success.is-light {
    background: #ecfdf5;
    border-color: #bbf7d0;
    color: #166534;
}

body.portal-page .notification.is-warning.is-light {
    background: #fff7ed;
    border-color: #fed7aa;
    color: #9a3412;
}

body.portal-page .table-propostas {
    width: 100%;
    border-collapse: collapse;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    overflow: hidden;
    background: #fff;
    box-shadow: var(--shadow-md);
}

body.portal-page .table-propostas thead,
body.portal-page .table-propostas tfoot {
    background: var(--color-bg-soft);
}

body.portal-page .table-propostas td,
body.portal-page .table-propostas th {
    padding: 14px 12px;
    border-bottom: 1px solid var(--color-border);
    color: var(--color-gray-700);
    font-size: .92rem;
    text-align: left;
}

body.portal-page .table-propostas thead td,
body.portal-page .table-propostas thead th {
    color: var(--color-dark);
    font-weight: 700;
    text-transform: uppercase;
    font-size: .78rem;
    letter-spacing: .04em;
}

body.portal-page .table-propostas tbody tr:hover {
    background: #fafafa;
}

body.portal-page .table-documentos {
    width: 100%;
    border-collapse: collapse;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    overflow: hidden;
    background: #fff;
    box-shadow: var(--shadow-md);
}

body.portal-page .table-documentos thead {
    background: var(--color-bg-soft);
}

body.portal-page .table-documentos td,
body.portal-page .table-documentos th {
    padding: 16px 18px;
    border-bottom: 1px solid var(--color-border);
    color: var(--color-gray-700);
    font-size: .96rem;
    line-height: 1.55;
    text-align: left;
    vertical-align: middle;
}

body.portal-page .table-documentos thead td,
body.portal-page .table-documentos thead th {
    color: var(--color-dark);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

body.portal-page .table-documentos tbody tr:hover td {
    background: #fafafa;
}

body.portal-page .table-documentos tbody tr:last-child td {
    border-bottom: 0;
}

body.portal-page .table-documentos td:last-child,
body.portal-page .table-documentos th:last-child {
    width: 120px;
    text-align: center;
}

body.portal-page .table-documentos a {
    color: var(--color-primary);
}

body.portal-page .table-propostas .status span,
body.portal-page .proposal-status-legend__dot {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: var(--radius-full);
    flex: 0 0 auto;
    margin-right: 0;
}

body.portal-page .proposal-status-legend {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px 18px;
    margin: 0;
}

body.portal-page .proposal-status-legend__item {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    line-height: 1.2;
}

body.portal-page .proposal-status-legend__item small {
    display: inline-block;
    color: var(--color-gray-700);
}

body.portal-page .aguardando { background: #f59e0b; }
body.portal-page .analisando,
body.portal-page .analizando { background: #3b82f6; }
body.portal-page .fechado { background: #16a34a; }
body.portal-page .recusado { background: #dc2626; }
body.portal-page .contraproposta { background: #7c3aed; }

body.portal-page .proposal-history {
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    background: #fff;
    box-shadow: 0 22px 55px rgba(15, 23, 42, 0.08);
    overflow: hidden;
}

body.portal-page .proposal-history__header {
    padding: 22px 24px 18px;
    background: linear-gradient(135deg, rgba(226, 36, 44, 0.08), rgba(30, 41, 59, 0.03));
    border-bottom: 1px solid var(--color-border);
}

body.portal-page .proposal-history__header h3 {
    margin: 0 0 6px;
    font-size: 1rem;
    font-weight: 800;
    letter-spacing: .02em;
    text-transform: uppercase;
}

body.portal-page .proposal-history__header p {
    margin: 0;
    color: var(--color-gray-600);
    font-size: .92rem;
}

body.portal-page .corretor-training-intro {
    max-width: 760px;
    margin: 30px auto 36px;
    text-align: center;
    color: var(--color-gray-700);
}

body.portal-page .corretor-training-section + .corretor-training-section {
    margin-top: 52px;
}

body.portal-page .corretor-training-section h2 {
    margin-bottom: 10px;
}

body.portal-page .corretor-training-section__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
    color: var(--color-primary);
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

body.portal-page .corretor-training-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 24px;
}

body.portal-page .corretor-training-card {
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    overflow: hidden;
    background: #fff;
    box-shadow: var(--shadow-md);
}

body.portal-page .corretor-training-card .aspect-16-9 {
    border-radius: 0;
    background: #101827;
}

body.portal-page .corretor-training-card__fallback {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100%;
    padding: 24px;
    text-align: center;
    color: #fff;
    background: linear-gradient(135deg, #1f2937, #111827);
}

body.portal-page .corretor-training-card__fallback i {
    margin-bottom: 12px;
    font-size: 2rem;
}

body.portal-page .corretor-training-card__body {
    padding: 20px 22px 22px;
}

body.portal-page .corretor-training-card__body h3 {
    margin: 0 0 10px;
    font-size: 1.15rem;
    line-height: 1.35;
}

body.portal-page .corretor-training-card__meta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 14px;
    color: var(--color-gray-600);
    font-size: .85rem;
    font-weight: 600;
}

body.portal-page .corretor-training-card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

body.portal-page .corretor-training-card__actions a {
    min-width: 0;
}

body.portal-page .proposal-history__list {
    display: grid;
}

body.portal-page .proposal-history__item {
    padding: 18px 24px;
    border-top: 1px solid var(--color-border);
}

body.portal-page .proposal-history__item:first-child {
    border-top: 0;
}

body.portal-page .proposal-history__item.is-current {
    background: rgba(226, 36, 44, 0.04);
}

body.portal-page .sac-gallery {
    margin-top: 18px;
}

body.portal-page .sac-gallery__grid {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    margin: 0;
    padding: 0;
    list-style: none;
}

body.portal-page .sac-gallery__card {
    flex: 0 0 clamp(200px, 22vw, 260px);
    max-width: clamp(200px, 22vw, 260px);
}

body.portal-page .sac-gallery__figure {
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

body.portal-page .sac-gallery__item {
    position: relative;
    display: block;
    width: 100%;
    height: clamp(160px, 16vw, 220px);
    overflow: hidden;
    border-radius: var(--radius);
    background: #e7e2da;
    box-shadow: var(--shadow-lg);
    isolation: isolate;
}

body.portal-page .sac-gallery__item::before,
body.portal-page .sac-gallery__item::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    transition: opacity .35s ease, transform .35s cubic-bezier(.22, 1, .36, 1), background .35s ease;
}

body.portal-page .sac-gallery__item::before {
    z-index: 1;
    opacity: 0;
    background: rgba(15, 23, 42, 0);
}

body.portal-page .sac-gallery__item::after {
    top: 50%;
    left: 50%;
    right: auto;
    bottom: auto;
    width: 48px;
    height: 48px;
    z-index: 2;
    opacity: 0;
    transform: translate(-50%, -50%) scale(.82);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23ffffff'%3E%3Ccircle cx='12' cy='12' r='9' stroke-width='0.6'/%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='0.6' d='M12 8v8M8 12h8'/%3E%3C/svg%3E");
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
}

body.portal-page .sac-gallery__item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .5s ease;
}

body.portal-page .sac-gallery__item:hover img,
body.portal-page .sac-gallery__item:focus-visible img {
    transform: scale(1.05);
}

body.portal-page .sac-gallery__item:hover::before,
body.portal-page .sac-gallery__item:focus-visible::before {
    opacity: 1;
    background: rgba(15, 23, 42, .32);
}

body.portal-page .sac-gallery__item:hover::after,
body.portal-page .sac-gallery__item:focus-visible::after {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
}

body.portal-page .sac-gallery__zoom,
body.portal-page .sac-gallery__item .over {
    display: none;
}

body.portal-page .sac-gallery__caption {
    margin: 0;
    color: var(--color-gray-700);
    font-size: .9rem;
    line-height: 1.5;
}

body.portal-page .proposal-history__meta,
body.portal-page .proposal-history__details,
body.portal-page .proposal-history__actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}

body.portal-page .proposal-history__meta {
    margin-bottom: 8px;
}

body.portal-page .proposal-history__meta strong {
    display: block;
    color: var(--color-dark);
}

body.portal-page .proposal-history__meta span,
body.portal-page .proposal-history__details span {
    color: var(--color-gray-600);
    font-size: .92rem;
}

body.portal-page .proposal-history__status {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 6px 12px;
    border-radius: var(--radius-full);
    background: rgba(30, 41, 59, 0.08);
    color: var(--color-dark);
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}

body.portal-page .proposal-history__actions a,
body.portal-page .proposal-history__current {
    color: var(--color-primary);
    font-size: .85rem;
    font-weight: 700;
    letter-spacing: .03em;
    text-transform: uppercase;
}

body.portal-page .proposal-history__current {
    color: var(--color-dark);
}

body.portal-page .tabela-mobile {
    display: none;
    justify-content: space-between;
    gap: 16px;
    padding: 12px 14px;
    border: 1px solid var(--color-border);
    border-bottom: 0;
    background: #fff;
    color: var(--color-gray-700);
}

body.portal-page .tabela-mobile.top {
    border-radius: var(--radius) var(--radius) 0 0;
    background: var(--color-bg-soft);
    font-weight: 700;
}

body.portal-page .tabela-mobile .valor {
    color: var(--color-dark);
    font-weight: 600;
    text-align: right;
}

body.portal-page .is-status-0,
body.portal-page .is-status-1,
body.portal-page .is-status-2,
body.portal-page .is-status-3,
body.portal-page .is-status-4 {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 5px 10px;
    border-radius: var(--radius-full);
    color: #fff;
    font-size: .78rem;
    font-weight: 700;
}

body.portal-page .is-status-0 { background: #6b7280; }
body.portal-page .is-status-1 { background: #f59e0b; }
body.portal-page .is-status-2 { background: #3b82f6; }
body.portal-page .is-status-3 { background: #16a34a; }
body.portal-page .is-status-4 { background: #dc2626; }

@media (max-width: 1024px) {
    body.portal-page .proposal-history__meta,
    body.portal-page .proposal-history__details,
    body.portal-page .proposal-history__actions {
        align-items: flex-start;
        flex-direction: column;
    }

    body.portal-page .banner-sub .columns {
        min-height: 360px;
    }

    body.portal-page .banner-sub .txt {
        padding-right: 40px;
    }

    body.portal-page .propostas {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (max-width: 767px) {
    body.portal-page .wrap {
        padding-left: 20px;
        padding-right: 20px;
    }

    body.portal-page .banner-sub {
        margin-top: 0;
    }

    body.portal-page .banner-sub .columns {
        min-height: 0;
    }

    body.portal-page .banner-sub .column:first-child {
        order: 0;
        flex: 0 0 100%;
        max-width: 100%;
        justify-content: flex-start;
        min-height: 220px;
    }

    body.portal-page .banner-sub .column:last-child {
        display: none;
    }

    body.portal-page .banner-sub .txt {
        width: 100%;
        padding: 42px 28px;
    }

    body.portal-page .banner-sub img {
        min-height: 240px;
    }

    body.portal-page .section-contato,
    body.portal-page #content {
        padding-top: 36px;
    }

    body.portal-page .espaco_corretor form fieldset {
        padding: 20px;
    }

    body.portal-page .espaco_corretor form .form-inline,
    body.portal-page .espaco_corretor form .form-inline > .form-inline {
        grid-template-columns: 1fr;
        gap: 12px;
        margin-bottom: 12px;
    }

    body.portal-page .espaco_corretor .box-conjuge-sn {
        align-items: stretch;
        flex-direction: column;
    }

    body.portal-page .espaco_corretor .box-conjuge-sn div {
        width: 100%;
        justify-content: flex-start;
    }

    body.portal-page .section-contato .bg-square {
        right: 8px;
        left: 8px;
    }

    body.portal-page .section-contato .is-relative.pr40 {
        padding: 28px 24px;
    }

    body.portal-page .espaco_corretor {
        margin-top: 24px;
        margin-bottom: 56px;
    }

    body.portal-page .titulo_espaco_cliente h5 {
        text-align: left;
    }

    body.portal-page .tabs ul {
        justify-content: stretch;
    }

    body.portal-page .tabs li,
    body.portal-page .tabs a {
        width: 100%;
    }

    body.portal-page .level {
        grid-template-columns: 1fr;
    }

    body.portal-page .is-hidden-mobile {
        display: none !important;
    }

    body.portal-page .sac-gallery__grid {
        gap: 12px;
    }

    body.portal-page .sac-gallery__card {
        flex-basis: 100%;
        max-width: 100%;
    }

    body.portal-page .sac-gallery__item {
        height: min(72vw, 320px);
    }

    body.portal-page .is-hidden-tablet {
        display: block !important;
    }

    body.portal-page .tabela-mobile {
        display: flex;
    }

    body.portal-page .table-documentos {
        table-layout: fixed;
    }

    body.portal-page .table-documentos td,
    body.portal-page .table-documentos th {
        padding: 12px 10px;
        font-size: .88rem;
        line-height: 1.4;
        overflow-wrap: anywhere;
        word-break: break-word;
    }

    body.portal-page .table-documentos thead td,
    body.portal-page .table-documentos thead th {
        font-size: .58rem;
        letter-spacing: .03em;
        line-height: 1.2;
    }

    body.portal-page .table-documentos td:last-child,
    body.portal-page .table-documentos th:last-child {
        width: 76px;
        padding-left: 8px;
        padding-right: 8px;
    }

    body.portal-page .table-documentos thead td:last-child,
    body.portal-page .table-documentos thead th:last-child {
        font-size: .58rem;
        overflow-wrap: normal;
        word-break: normal;
        white-space: nowrap;
    }

    body.portal-page .table-documentos td:last-child a,
    body.portal-page .table-documentos th:last-child a {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 100%;
    }

    body.portal-page .table-disponibilidades,
    body.portal-page .table-documentos.table-precos {
        display: block;
        border: 0;
        background: transparent;
        box-shadow: none;
        overflow: visible;
    }

    body.portal-page .table-disponibilidades thead,
    body.portal-page .table-documentos.table-precos thead {
        display: none;
    }

    body.portal-page .table-disponibilidades tbody,
    body.portal-page .table-disponibilidades tfoot,
    body.portal-page .table-documentos.table-precos tbody,
    body.portal-page .table-documentos.table-precos tfoot {
        display: block;
    }

    body.portal-page .table-disponibilidades tbody tr,
    body.portal-page .table-documentos.table-precos tbody tr {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1px;
        margin-bottom: 14px;
        border-radius: var(--radius);
        overflow: hidden;
        background: var(--color-border);
        box-shadow: var(--shadow-md);
    }

    body.portal-page .table-disponibilidades tbody td,
    body.portal-page .table-documentos.table-precos tbody td {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
        gap: 6px;
        min-height: 78px;
        padding: 14px 12px;
        border-bottom: 0;
        font-size: .95rem;
        line-height: 1.25;
        text-align: left !important;
        word-break: break-word;
    }

    body.portal-page .table-disponibilidades tbody td::before,
    body.portal-page .table-documentos.table-precos tbody td::before {
        content: attr(data-label);
        color: var(--color-gray-600);
        font-size: .68rem;
        font-weight: 800;
        letter-spacing: .06em;
        line-height: 1.1;
        text-transform: uppercase;
    }

    /* Oculta células de reserva vazias no mobile */
    body.portal-page .table-disponibilidades tbody td.reserva-cell:empty {
        display: none;
    }

    /* Faz a célula de reserva ocupar toda a largura quando tem botão */
    body.portal-page .table-disponibilidades tbody td.reserva-cell:not(:empty) {
        grid-column: 1 / -1;
        padding: 10px 12px;
        align-items: stretch;
    }

    body.portal-page .table-disponibilidades .botao,
    body.portal-page .table-disponibilidades .button {
        width: 100%;
        min-height: 42px;
        padding: 10px 12px;
        font-size: .78rem;
        white-space: nowrap;
        box-shadow: none;
    }

    body.portal-page .table-documentos.table-precos tbody td strong {
        font-weight: 700;
    }

    body.portal-page .table-documentos.table-precos td:last-child,
    body.portal-page .table-documentos.table-precos th:last-child {
        width: auto;
        text-align: left !important;
    }

    body.portal-page .table-disponibilidades tfoot,
    body.portal-page .table-documentos.table-precos tfoot {
        border: 1px solid var(--color-border);
        border-radius: var(--radius);
        overflow: hidden;
        background: var(--color-bg-soft);
    }

    body.portal-page .table-disponibilidades tfoot tr,
    body.portal-page .table-disponibilidades tfoot td,
    body.portal-page .table-documentos.table-precos tfoot tr,
    body.portal-page .table-documentos.table-precos tfoot td {
        display: block;
    }

    body.portal-page .table-disponibilidades tfoot td,
    body.portal-page .table-documentos.table-precos tfoot td {
        padding: 14px 12px;
        border-bottom: 0;
    }

    body.portal-page .table-disponibilidades tfoot p,
    body.portal-page .table-documentos.table-precos tfoot p {
        font-size: .86rem;
        line-height: 1.45;
    }

    body.portal-page .table-disponibilidades tfoot span.disponivel,
    body.portal-page .table-disponibilidades tfoot span.reservado,
    body.portal-page .table-disponibilidades tfoot span.vendido {
        margin: 0 4px 0 12px;
    }
}

body.portal-page .table-disponibilidades {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    overflow: hidden;
    background: #fff;
    box-shadow: var(--shadow-md);
}

body.portal-page .table-disponibilidades thead,
body.portal-page .table-disponibilidades tfoot {
    background: var(--color-bg-soft);
}

body.portal-page .table-disponibilidades td,
body.portal-page .table-disponibilidades th {
    padding: 15px 18px;
    border-bottom: 1px solid var(--color-border);
    color: var(--color-gray-700);
    font-size: .95rem;
    vertical-align: middle;
}

body.portal-page .table-disponibilidades thead td,
body.portal-page .table-disponibilidades thead th {
    color: var(--color-dark);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

body.portal-page .table-disponibilidades tbody tr:last-child td,
body.portal-page .table-disponibilidades tfoot tr:last-child td {
    border-bottom: 0;
}

body.portal-page .table-disponibilidades tbody tr:hover td {
    background: #fafafa;
}

body.portal-page .table-disponibilidades thead td:nth-child(2),
body.portal-page .table-disponibilidades thead td:nth-child(3),
body.portal-page .table-disponibilidades thead td:nth-child(4),
body.portal-page .table-disponibilidades tbody td:nth-child(2),
body.portal-page .table-disponibilidades tbody td:nth-child(3),
body.portal-page .table-disponibilidades tbody td:nth-child(4) {
    text-align: center;
}

body.portal-page .table-disponibilidades .botao,
body.portal-page .table-disponibilidades .button {
    min-height: 42px;
    padding: 10px 22px;
    font-size: .82rem;
    box-shadow: none;
}

body.portal-page .table-disponibilidades tfoot p {
    margin: 0;
    color: var(--color-gray-700);
}

body.portal-page .table-disponibilidades tfoot span.disponivel,
body.portal-page .table-disponibilidades tfoot span.reservado,
body.portal-page .table-disponibilidades tfoot span.vendido {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: var(--radius-full);
    margin: 0 5px 0 16px;
}

body.portal-page .table-disponibilidades tfoot span.disponivel {
    margin-left: 0;
}

body.portal-page .table-disponibilidades tbody td.disponivel,
body.portal-page .table-documentos.table-precos tbody td.disponivel {
    background: #c0decb;
    color: black;
    font-weight: 700;
}

body.portal-page .table-disponibilidades tbody td.reservado,
body.portal-page .table-documentos.table-precos tbody td.reservado {
    background: #ffe9ae;
    color: black;
    font-weight: 700;
}

body.portal-page .table-disponibilidades tbody td.vendido,
body.portal-page .table-documentos.table-precos tbody td.vendido {
    background: #f4caca;
    color: black;
    font-weight: 700;
}

body.portal-page .table-disponibilidades tbody tr:hover td.disponivel,
body.portal-page .table-documentos.table-precos tbody tr:hover td.disponivel {
    background: #d7eadf;
}

body.portal-page .table-disponibilidades tbody tr:hover td.reservado,
body.portal-page .table-documentos.table-precos tbody tr:hover td.reservado {
    background: #f8df9a;
}

body.portal-page .table-disponibilidades tbody tr:hover td.vendido,
body.portal-page .table-documentos.table-precos tbody tr:hover td.vendido {
    background: #f8dddd;
}

body.portal-page .table-disponibilidades span.disponivel { background: #c0decb; }
body.portal-page .table-disponibilidades span.reservado { background: #ffe9ae; }
body.portal-page .table-disponibilidades span.vendido { background: #f4caca; }
