:root {
    --navy: #071a31;
    --navy-2: #0c2847;
    --blue: #0c78e8;
    --blue-soft: #eaf4ff;
    --cyan: #36b6d8;

    --green: #16a36a;
    --green-soft: #e9f8f1;

    --orange: #f49c32;

    --bg: #f3f6f9;
    --surface: #ffffff;

    --text: #152437;
    --muted: #718096;
    --border: #dfe7ef;

    --shadow: 0 12px 35px rgba(7, 26, 49, .09);

    --radius: 18px;
}

* {
    box-sizing: border-box;
}

html {
    -webkit-text-size-adjust: 100%;
}

body {
    margin: 0;
    font-family:
        Inter,
        ui-sans-serif,
        system-ui,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        sans-serif;

    background: var(--bg);
    color: var(--text);
}

button,
input {
    font: inherit;
}

button {
    cursor: pointer;
}

.hidden {
    display: none !important;
}


/* LOGIN */

.login-shell {
    min-height: 100vh;

    display: grid;
    place-items: center;

    padding: 24px;

    background:
        radial-gradient(
            circle at 90% 5%,
            rgba(54,182,216,.22),
            transparent 30%
        ),
        linear-gradient(
            150deg,
            #061426 0%,
            #0a2847 65%,
            #0b385d 100%
        );
}

.login-card {
    width: min(440px, 100%);
    padding: 36px;

    border: 1px solid rgba(255,255,255,.13);
    border-radius: 26px;

    background: rgba(255,255,255,.08);

    box-shadow: 0 30px 90px rgba(0,0,0,.32);

    backdrop-filter: blur(14px);

    color: white;
}

.brand-mark,
.side-brand {
    display: flex;
    align-items: center;
    gap: 13px;
}

.brand-mark strong,
.side-brand strong {
    display: block;
}

.brand-mark span,
.side-brand span {
    display: block;
    font-size: 12px;
    opacity: .7;
}

.brand-symbol {
    width: 52px;
    height: 52px;

    display: grid;
    place-items: center;

    border-radius: 14px;

    background:
        linear-gradient(
            135deg,
            var(--blue),
            var(--cyan)
        );

    color: white;
    font-weight: 900;
    letter-spacing: -.05em;
}

.brand-symbol.small {
    width: 42px;
    height: 42px;
    border-radius: 12px;
}

.demo-badge {
    display: inline-block;

    margin-top: 36px;
    padding: 7px 11px;

    border-radius: 999px;

    background: rgba(255,255,255,.11);

    font-size: 10px;
    font-weight: 800;
    letter-spacing: .12em;
}

.login-card h1 {
    margin: 18px 0 12px;

    font-size: clamp(32px, 8vw, 44px);
    line-height: 1.04;
    letter-spacing: -.04em;
}

.lead {
    margin-bottom: 30px;

    line-height: 1.55;
    opacity: .78;
}

label {
    display: block;

    margin-bottom: 16px;

    font-size: 13px;
    font-weight: 700;
}

input {
    width: 100%;

    margin-top: 8px;
    padding: 14px 15px;

    border: 1px solid rgba(255,255,255,.16);
    border-radius: 13px;

    outline: none;

    background: rgba(255,255,255,.10);

    color: white;
}

input:focus {
    border-color: rgba(255,255,255,.55);
}

.demo-note {
    margin-top: 18px;

    font-size: 11px;
    line-height: 1.5;
    opacity: .55;
}

.login-card footer {
    margin-top: 32px;

    font-size: 11px;
    opacity: .4;

    text-align: center;
}


/* BUTTONS */

.btn {
    min-height: 48px;

    border: 0;
    border-radius: 13px;

    padding: 0 18px;

    font-weight: 800;
}

.btn-primary {
    background:
        linear-gradient(
            135deg,
            var(--blue),
            #149bd5
        );

    color: white;

    box-shadow:
        0 12px 28px rgba(12,120,232,.27);
}

.btn-outline {
    border: 1px solid var(--border);
    background: white;
    color: var(--text);
}

.btn-block {
    width: 100%;
}


/* APP */

.app-shell {
    min-height: 100vh;
}

.sidebar {
    display: none;
}

.app-main {
    min-height: 100vh;
}

.topbar {
    position: sticky;
    top: 0;
    z-index: 30;

    display: flex;
    align-items: center;
    justify-content: space-between;

    height: 70px;
    padding: 0 20px;

    border-bottom: 1px solid var(--border);

    background: rgba(255,255,255,.94);

    backdrop-filter: blur(12px);
}

.topbar small {
    display: block;
    color: var(--muted);
    font-size: 11px;
}

.topbar strong {
    font-size: 14px;
}

.avatar {
    width: 42px;
    height: 42px;

    border: 0;
    border-radius: 50%;

    background: var(--navy);
    color: white;

    font-weight: 900;
}

.content {
    max-width: 1120px;

    margin: 0 auto;
    padding: 22px 18px 100px;
}

.page {
    display: none;
}

.page.active {
    display: block;
}


/* HERO */

.hero {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;

    padding: 25px;

    border-radius: 22px;

    background:
        linear-gradient(
            140deg,
            var(--navy),
            var(--navy-2)
        );

    color: white;

    box-shadow: var(--shadow);
}

.hero small,
.page-title small,
.section-heading small {
    font-size: 10px;
    letter-spacing: .13em;
    font-weight: 900;

    opacity: .7;
}

.hero h1 {
    margin: 7px 0;

    font-size: 30px;
    letter-spacing: -.035em;
}

.hero p {
    max-width: 480px;

    margin: 0;

    font-size: 13px;
    line-height: 1.5;

    opacity: .72;
}

.hero-status {
    display: flex;
    align-items: center;
    gap: 7px;

    padding: 8px 11px;

    border-radius: 999px;

    background: rgba(255,255,255,.11);

    font-size: 11px;
    white-space: nowrap;
}

.online-dot {
    width: 8px;
    height: 8px;

    display: inline-block;

    border-radius: 50%;

    background: #4ade80;

    box-shadow: 0 0 0 4px rgba(74,222,128,.12);
}


/* STATS */

.stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;

    margin-top: 14px;
}

.stat-card {
    padding: 16px;

    border: 1px solid var(--border);
    border-radius: 16px;

    background: white;
}

.stat-card span,
.stat-card small {
    display: block;

    color: var(--muted);
    font-size: 10px;
}

.stat-card strong {
    display: block;

    margin: 6px 0 2px;

    font-size: clamp(17px, 5vw, 25px);
}


/* HEADINGS */

.section-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;

    margin: 30px 2px 13px;
}

.section-heading h2,
.page-title h1 {
    margin: 4px 0 0;

    font-size: 23px;
    letter-spacing: -.03em;
}

.link-button {
    border: 0;

    background: transparent;

    color: var(--blue);

    font-size: 12px;
    font-weight: 800;
}

.page-title {
    margin-bottom: 22px;
}

.page-title p {
    margin-top: 7px;

    color: var(--muted);

    font-size: 13px;
}


/* OPPORTUNITIES */

.opportunity {
    margin-bottom: 13px;
    padding: 18px;

    border: 1px solid var(--border);
    border-radius: var(--radius);

    background: white;

    box-shadow: 0 4px 20px rgba(7,26,49,.035);
}

.opportunity-top {
    display: flex;
    justify-content: space-between;
    gap: 12px;
}

.opportunity-type {
    display: inline-block;

    margin-bottom: 6px;

    color: var(--blue);

    font-size: 10px;
    font-weight: 900;
    letter-spacing: .08em;
}

.opportunity h3 {
    margin: 0;

    font-size: 16px;
}

.price {
    color: var(--green);

    font-size: 20px;
    font-weight: 900;

    white-space: nowrap;
}

.opportunity-meta {
    display: grid;
    grid-template-columns: 1fr 1fr;

    gap: 10px;

    margin: 16px 0;
}

.meta-box {
    padding: 11px;

    border-radius: 12px;

    background: var(--bg);
}

.meta-box small {
    display: block;

    margin-bottom: 3px;

    color: var(--muted);

    font-size: 9px;
}

.meta-box strong {
    font-size: 12px;
}

.opportunity-footer {
    display: flex;
    gap: 9px;
}

.opportunity-footer .btn {
    flex: 1;
}

.privacy-notice,
.info-card {
    margin-bottom: 18px;
    padding: 14px 15px;

    border: 1px solid #cfe5fa;
    border-radius: 14px;

    background: var(--blue-soft);

    color: #2e5b83;

    font-size: 12px;
    line-height: 1.5;
}


/* ATTENDANCE */

.service-card {
    padding: 19px;

    border: 1px solid var(--border);
    border-radius: var(--radius);

    background: white;
}

.service-status {
    display: flex;
    justify-content: space-between;
    gap: 10px;

    margin-bottom: 12px;

    font-size: 10px;
}

.service-status span {
    color: var(--green);
    font-weight: 900;
}

.service-status strong {
    color: var(--muted);
}

.details {
    display: grid;
    gap: 10px;

    margin: 18px 0;
}

.details div {
    padding: 12px;

    border-radius: 12px;

    background: var(--bg);
}

.details dt {
    margin-bottom: 3px;

    color: var(--muted);

    font-size: 10px;
}

.details dd {
    margin: 0;

    font-size: 12px;
    font-weight: 700;
}

.steps {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 5px;

    margin: 18px 0;
}

.steps span {
    padding: 8px 4px;

    border-radius: 8px;

    background: var(--bg);

    color: var(--muted);

    font-size: 9px;
    text-align: center;
}

.steps .done {
    background: var(--green-soft);
    color: var(--green);
}

.steps .current {
    background: var(--blue-soft);
    color: var(--blue);
}


/* CALENDAR */

.calendar-strip {
    display: grid;
    grid-template-columns: repeat(5,1fr);
    gap: 8px;

    margin-bottom: 24px;
}

.calendar-strip button {
    padding: 12px 4px;

    border: 1px solid var(--border);
    border-radius: 14px;

    background: white;
}

.calendar-strip small,
.calendar-strip strong {
    display: block;
}

.calendar-strip small {
    margin-bottom: 5px;

    color: var(--muted);

    font-size: 9px;
}

.calendar-strip .selected {
    border-color: var(--blue);

    background: var(--blue);
    color: white;
}

.calendar-strip .selected small {
    color: white;
}

.timeline {
    display: grid;
    gap: 10px;
}

.timeline article {
    display: grid;
    grid-template-columns: 52px 1fr;
    gap: 12px;

    padding: 15px;

    border: 1px solid var(--border);
    border-radius: 14px;

    background: white;
}

.timeline time {
    color: var(--blue);

    font-size: 12px;
    font-weight: 900;
}

.timeline strong,
.timeline span {
    display: block;
}

.timeline span {
    margin-top: 4px;

    color: var(--muted);
    font-size: 11px;
}


/* FINANCE */

.finance-total {
    padding: 24px;

    border-radius: 20px;

    background:
        linear-gradient(
            135deg,
            #0b7e58,
            #12a36f
        );

    color: white;
}

.finance-total span,
.finance-total small {
    display: block;
    opacity: .75;
}

.finance-total strong {
    display: block;

    margin: 7px 0;

    font-size: 34px;
    letter-spacing: -.04em;
}

.finance-list {
    margin: 16px 0;
}

.finance-list article {
    display: flex;
    justify-content: space-between;
    gap: 12px;

    padding: 16px 2px;

    border-bottom: 1px solid var(--border);
}

.finance-list article span {
    display: block;

    margin-top: 4px;

    color: var(--green);

    font-size: 10px;
}


/* HISTORY */

.history-list {
    display: grid;
    gap: 10px;
}

.history-list article {
    display: flex;
    gap: 13px;

    padding: 16px;

    border: 1px solid var(--border);
    border-radius: 14px;

    background: white;
}

.history-icon {
    width: 34px;
    height: 34px;

    display: grid;
    place-items: center;

    border-radius: 50%;

    background: var(--green-soft);
    color: var(--green);

    font-weight: 900;
}

.history-list p {
    margin: 3px 0;

    color: var(--muted);

    font-size: 12px;
}

.history-list small {
    color: var(--muted);
}


/* PROFILE */

.profile-card {
    padding: 25px;

    border: 1px solid var(--border);
    border-radius: 18px;

    background: white;

    text-align: center;
}

.profile-avatar {
    width: 74px;
    height: 74px;

    display: grid;
    place-items: center;

    margin: 0 auto 12px;

    border-radius: 50%;

    background: var(--navy);
    color: white;

    font-size: 24px;
    font-weight: 900;
}

.profile-card h2 {
    margin: 0;
}

.profile-card p {
    margin: 4px 0 15px;

    color: var(--muted);

    font-size: 12px;
}

.profile-tags {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 7px;
}

.profile-tags span {
    padding: 7px 10px;

    border-radius: 999px;

    background: var(--blue-soft);
    color: var(--blue);

    font-size: 10px;
    font-weight: 800;
}

.profile-menu {
    margin: 14px 0;
}

.profile-menu button {
    width: 100%;

    display: flex;
    justify-content: space-between;

    padding: 16px 2px;

    border: 0;
    border-bottom: 1px solid var(--border);

    background: transparent;

    text-align: left;
}


/* NAV */

.bottom-nav {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;

    z-index: 40;

    display: grid;
    grid-template-columns: repeat(5,1fr);

    padding:
        7px 7px
        calc(7px + env(safe-area-inset-bottom));

    border-top: 1px solid var(--border);

    background: rgba(255,255,255,.97);

    backdrop-filter: blur(12px);
}

.nav-button {
    min-height: 54px;

    display: grid;
    place-items: center;

    border: 0;

    background: transparent;

    color: var(--muted);
}

.nav-button span {
    display: block;

    font-size: 18px;
}

.nav-button small {
    display: block;

    margin-top: 2px;

    font-size: 9px;
    font-weight: 700;
}

.nav-button.active {
    color: var(--blue);
}


/* MODAL */

.modal {
    position: fixed;
    inset: 0;

    z-index: 100;

    display: grid;
    place-items: center;

    padding: 22px;

    background: rgba(3,15,29,.68);

    backdrop-filter: blur(5px);
}

.modal-card {
    width: min(400px,100%);

    padding: 27px;

    border-radius: 22px;

    background: white;

    text-align: center;

    box-shadow: 0 30px 80px rgba(0,0,0,.25);
}

.modal-icon {
    font-size: 36px;
}

.modal-card h2 {
    margin: 12px 0 6px;
}

.modal-card p {
    margin-bottom: 22px;

    color: var(--muted);

    font-size: 13px;
    line-height: 1.5;
}


/* DESKTOP */

@media (min-width: 860px) {

    .app-shell {
        display: grid;
        grid-template-columns: 240px 1fr;
    }

    .sidebar {
        position: fixed;
        inset: 0 auto 0 0;

        width: 240px;

        display: flex;
        flex-direction: column;

        padding: 22px 16px;

        background: var(--navy);

        color: white;
    }

    .app-main {
        margin-left: 240px;
    }

    .side-nav {
        display: grid;
        gap: 5px;

        margin-top: 35px;
    }

    .side-nav .nav-button {
        min-height: 44px;

        display: flex;
        justify-content: flex-start;
        gap: 11px;

        padding: 0 13px;

        border-radius: 11px;

        color: rgba(255,255,255,.67);
    }

    .side-nav .nav-button.active {
        background: rgba(255,255,255,.10);
        color: white;
    }

    .side-nav .nav-button small {
        font-size: 12px;
    }

    .side-footer {
        margin-top: auto;

        display: flex;
        align-items: center;
        gap: 8px;

        padding: 12px;

        border-radius: 11px;

        background: rgba(255,255,255,.06);

        font-size: 11px;
        color: rgba(255,255,255,.68);
    }

    .bottom-nav {
        display: none;
    }

    .topbar {
        padding: 0 32px;
    }

    .content {
        padding: 30px 32px 50px;
    }

    .stats {
        gap: 14px;
    }

    .opportunity-meta {
        grid-template-columns: repeat(4,1fr);
    }

}

/* TCA_LOGO_OFICIAL_BEGIN */

.brand-logo {
    width: 72px;
    height: 72px;
    flex: 0 0 72px;
    object-fit: cover;
    border-radius: 50%;
    box-shadow:
        0 0 0 1px rgba(255,255,255,.20),
        0 8px 24px rgba(0,136,255,.22);
}

@media (max-width: 480px) {
    .brand-logo {
        width: 64px;
        height: 64px;
        flex-basis: 64px;
    }
}

/* TCA_LOGO_OFICIAL_END */


/* TCA_HEADER_REFINO_BEGIN */
.brand-mark {
    display: flex;
    align-items: center;
    gap: 12px;
}

.brand-logo {
    width: 68px;
    height: 68px;
    flex: 0 0 68px;
    object-fit: cover;
    object-position: center;
    border-radius: 50%;
    box-shadow:
        0 0 0 1px rgba(255,255,255,.18),
        0 8px 22px rgba(0,136,255,.20);
}

.brand-copy {
    display: flex;
    flex-direction: column;
    line-height: 1.15;
}

.brand-copy strong {
    font-size: 1.05rem;
    font-weight: 800;
    letter-spacing: .02em;
    text-transform: uppercase;
    color: #ffffff;
}

.brand-copy span {
    margin-top: 4px;
    font-size: .92rem;
    color: rgba(255,255,255,.78);
}

@media (max-width: 480px) {
    .brand-logo {
        width: 60px;
        height: 60px;
        flex-basis: 60px;
    }

    .brand-copy strong {
        font-size: .98rem;
    }

    .brand-copy span {
        font-size: .85rem;
    }
}
/* TCA_HEADER_REFINO_END */

/* TCA_BRAND_V12_BEGIN */

:root {
    --tca-deep: #03152a;
    --tca-deep-2: #061f3d;
    --tca-blue: #0a67d8;
    --tca-cyan: #14b8ff;
    --tca-glow: rgba(0, 140, 255, .28);
}

/* FUNDO GERAL COMPATÍVEL COM A LOGO */

body {
    background:
        radial-gradient(
            circle at 50% -10%,
            rgba(0, 135, 255, .17),
            transparent 38%
        ),
        radial-gradient(
            circle at 95% 15%,
            rgba(0, 190, 255, .10),
            transparent 32%
        ),
        linear-gradient(
            135deg,
            #021226 0%,
            #031a34 50%,
            #042846 100%
        ) !important;
}

/* LOGIN */

.login-shell {
    background:
        radial-gradient(
            circle at 50% 0%,
            rgba(0, 125, 255, .18),
            transparent 34%
        ),
        radial-gradient(
            circle at 100% 20%,
            rgba(0, 185, 255, .10),
            transparent 30%
        ),
        linear-gradient(
            145deg,
            #021225 0%,
            #041a34 50%,
            #062a49 100%
        ) !important;
}

/* CARD PRINCIPAL */

.login-card {
    border: 1px solid rgba(95, 180, 255, .20) !important;

    background:
        linear-gradient(
            145deg,
            rgba(11, 39, 67, .92),
            rgba(8, 31, 57, .91)
        ) !important;

    box-shadow:
        0 30px 90px rgba(0, 0, 0, .36),
        0 0 70px rgba(0, 120, 255, .08),
        inset 0 1px 0 rgba(255,255,255,.05) !important;

    backdrop-filter: blur(16px);
}

/* CABEÇALHO HORIZONTAL */

.brand-horizontal {
    position: relative;

    display: flex;
    align-items: center;

    min-height: 88px;

    gap: 15px;

    padding: 9px 13px 9px 9px;

    border-radius: 18px;

    background:
        linear-gradient(
            90deg,
            rgba(2, 19, 39, .78),
            rgba(4, 34, 64, .45)
        );

    border: 1px solid rgba(80, 175, 255, .11);

    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.04),
        0 10px 32px rgba(0,0,0,.13);

    overflow: hidden;
}

/* brilho discreto atrás da marca */

.brand-horizontal::after {
    content: "";

    position: absolute;
    top: 50%;
    left: 28px;

    width: 130px;
    height: 130px;

    transform: translate(-50%, -50%);

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(0, 150, 255, .22),
            transparent 68%
        );

    pointer-events: none;
}

.brand-logo-wrap {
    position: relative;
    z-index: 2;

    width: 78px;
    height: 78px;

    flex: 0 0 78px;

    display: flex;
    align-items: center;
    justify-content: center;
}

.brand-logo {
    width: 78px !important;
    height: 78px !important;

    flex: 0 0 78px !important;

    object-fit: cover;
    object-position: center;

    border-radius: 50%;

    box-shadow:
        0 0 0 1px rgba(255,255,255,.18),
        0 0 18px rgba(0,142,255,.28),
        0 9px 24px rgba(0,0,0,.26) !important;
}

.brand-copy {
    position: relative;
    z-index: 2;

    display: flex;
    flex-direction: column;

    min-width: 0;

    line-height: 1;
}

.brand-copy strong {
    margin: 0;

    color: #ffffff;

    font-size: clamp(1.10rem, 2.2vw, 1.45rem);
    font-weight: 900;

    letter-spacing: .055em;

    text-shadow:
        0 1px 0 rgba(0,0,0,.25),
        0 0 16px rgba(0,115,255,.10);
}

.brand-copy span {
    margin-top: 7px;

    color: rgba(224,239,255,.80);

    font-size: clamp(.68rem, 1.55vw, .83rem);
    font-weight: 700;

    letter-spacing: .11em;

    white-space: nowrap;
}

/* selo demonstração */

.demo-badge {
    background: rgba(255,255,255,.09) !important;

    border: 1px solid rgba(255,255,255,.08);

    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.04);
}

/* inputs */

input {
    border-color: rgba(140,190,235,.26) !important;

    background:
        linear-gradient(
            90deg,
            rgba(255,255,255,.09),
            rgba(255,255,255,.07)
        ) !important;
}

input:focus {
    border-color: rgba(52,171,255,.70) !important;

    box-shadow:
        0 0 0 3px rgba(0,140,255,.10);
}

/* botão */

.btn-primary {
    background:
        linear-gradient(
            100deg,
            #0a73ed,
            #11a7de
        ) !important;

    box-shadow:
        0 12px 30px rgba(0,123,255,.28) !important;
}

/* MOBILE */

@media (max-width: 560px) {

    .login-shell {
        padding: 14px;
    }

    .login-card {
        padding: 25px 22px;
    }

    .brand-horizontal {
        min-height: 76px;
        gap: 11px;
        padding: 7px 10px 7px 7px;
    }

    .brand-logo-wrap {
        width: 64px;
        height: 64px;
        flex-basis: 64px;
    }

    .brand-logo {
        width: 64px !important;
        height: 64px !important;
        flex-basis: 64px !important;
    }

    .brand-copy strong {
        font-size: 1rem;
        letter-spacing: .035em;
    }

    .brand-copy span {
        margin-top: 5px;
        font-size: .60rem;
        letter-spacing: .08em;
    }
}

/* TELAS MUITO ESTREITAS */

@media (max-width: 390px) {

    .brand-horizontal {
        gap: 9px;
    }

    .brand-logo-wrap {
        width: 58px;
        height: 58px;
        flex-basis: 58px;
    }

    .brand-logo {
        width: 58px !important;
        height: 58px !important;
        flex-basis: 58px !important;
    }

    .brand-copy strong {
        font-size: .91rem;
    }

    .brand-copy span {
        font-size: .54rem;
        letter-spacing: .05em;
    }
}

/* TCA_BRAND_V12_END */
