@font-face {
    font-family: "Poppins";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url("/assets/fonts/poppins/poppins-400-latin.woff2") format("woff2");
}
@font-face {
    font-family: "Poppins";
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url("/assets/fonts/poppins/poppins-500-latin.woff2") format("woff2");
}
@font-face {
    font-family: "Poppins";
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url("/assets/fonts/poppins/poppins-600-latin.woff2") format("woff2");
}
@font-face {
    font-family: "Poppins";
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url("/assets/fonts/poppins/poppins-700-latin.woff2") format("woff2");
}
@font-face {
    font-family: "Poppins";
    font-style: normal;
    font-weight: 800;
    font-display: swap;
    src: url("/assets/fonts/poppins/poppins-800-latin.woff2") format("woff2");
}

:root {
    --hc-primary: #093146;
    --hc-primary-dark: #061f2d;
    --hc-accent: #f07c21;
    --hc-bg: #f4f7f9;
    --hc-surface: #ffffff;
    --hc-text: #172033;
    --hc-muted: #667085;
    --hc-border: #dfe5ee;
    --hc-radius: 0.875rem;
    --hc-shadow: 0 1rem 2.5rem rgba(9, 49, 70, 0.1);
    --hc-sidebar-width: 17rem;
    --hc-sidebar-collapsed-width: 5.25rem;
}

* {
    box-sizing: border-box;
}

html {
    min-height: 100%;
}

body {
    min-height: 100vh;
    background: var(--hc-bg);
    color: var(--hc-text);
    font-family: "Poppins", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

a,
button,
input {
    transition: color 160ms ease, background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}

:focus-visible {
    outline: 3px solid rgba(240, 124, 33, 0.38);
    outline-offset: 2px;
}

.skip-link {
    position: fixed;
    z-index: 2000;
    top: 0.5rem;
    left: 0.5rem;
    padding: 0.65rem 1rem;
    background: var(--hc-text);
    color: #fff;
    border-radius: 0.5rem;
    transform: translateY(-150%);
}

.skip-link:focus {
    transform: translateY(0);
}

.brand {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    color: var(--hc-text);
    font-weight: 600;
}

.public-header__logo {
    display: block;
    width: auto;
    height: 3rem;
    max-width: min(11rem, 60vw);
    object-fit: contain;
}

.brand-mark {
    display: inline-grid;
    width: 2.5rem;
    height: 2.5rem;
    place-items: center;
    border-radius: 0.65rem;
    background: var(--hc-primary);
    color: #fff;
    font-weight: 800;
    letter-spacing: -0.04em;
}

.btn-primary {
    --bs-btn-bg: var(--hc-primary);
    --bs-btn-border-color: var(--hc-primary);
    --bs-btn-hover-bg: var(--hc-primary-dark);
    --bs-btn-hover-border-color: var(--hc-primary-dark);
    --bs-btn-active-bg: var(--hc-primary-dark);
    --bs-btn-active-border-color: var(--hc-primary-dark);
}

.public-header,
.topbar {
    background: rgba(255, 255, 255, 0.96);
}

.hero-section {
    background:
        radial-gradient(circle at 85% 20%, rgba(0, 165, 140, 0.12), transparent 30rem),
        radial-gradient(circle at 15% 10%, rgba(36, 70, 168, 0.11), transparent 28rem);
}

.py-lg-6 {
    padding-top: 6rem;
    padding-bottom: 6rem;
}

.eyebrow,
.page-eyebrow {
    color: #f07c21;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.surface-card {
    background: var(--hc-surface);
    border: 1px solid var(--hc-border);
    border-radius: var(--hc-radius);
    box-shadow: var(--hc-shadow);
}

.flow-list {
    display: grid;
    gap: 1rem;
    padding-left: 1.35rem;
}

.flow-list li::marker {
    color: var(--hc-accent);
    font-weight: 800;
}

.status-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    min-height: 3rem;
    color: var(--hc-muted);
}

.status-pill span {
    width: 0.65rem;
    height: 0.65rem;
    border-radius: 50%;
    background: var(--hc-accent);
    box-shadow: 0 0 0 0.3rem rgba(0, 165, 140, 0.12);
}

.auth-section {
    min-height: calc(100vh - 9rem);
}

.auth-card {
    max-width: 30rem;
}

.auth-login-shell {
    overflow-x: hidden;
    background: #fff;
}

.auth-login-shell #main-content {
    min-height: 100vh;
}

.login-page {
    display: grid;
    grid-template-columns: minmax(0, 1.18fr) minmax(28rem, 0.82fr);
    min-height: 100vh;
    background: #fff;
}

.login-visual {
    position: relative;
    display: flex;
    min-height: 100vh;
    align-items: flex-end;
    overflow: hidden;
    padding: clamp(2.5rem, 5vw, 6rem);
    background-color: var(--hc-primary-dark);
    background-image:
        linear-gradient(180deg, rgba(4, 25, 36, 0.16) 0%, rgba(4, 25, 36, 0.92) 100%),
        url('/assets/images/login-host-background.jpg?v=20261006');
    background-position: center;
    background-size: cover;
    color: #fff;
}

.login-visual::before,
.login-visual::after {
    position: absolute;
    content: '';
    pointer-events: none;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 50%;
}

.login-visual::before {
    top: -12rem;
    right: -9rem;
    width: 34rem;
    height: 34rem;
}

.login-visual::after {
    bottom: -18rem;
    left: -15rem;
    width: 32rem;
    height: 32rem;
}

.login-visual__content {
    position: relative;
    z-index: 1;
    max-width: 42rem;
}

.login-visual__eyebrow {
    display: inline-flex;
    align-items: center;
    min-height: 2rem;
    padding: 0.35rem 0.85rem;
    border: 1px solid rgba(255, 255, 255, 0.24);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    backdrop-filter: blur(8px);
}

.login-visual h1 {
    max-width: 12ch;
    margin: 1.25rem 0 1rem;
    font-size: clamp(2.65rem, 4.6vw, 5rem);
    font-weight: 800;
    letter-spacing: -0.055em;
    line-height: 0.98;
}

.login-visual__content > p {
    max-width: 36rem;
    margin: 0;
    color: rgba(255, 255, 255, 0.78);
    font-size: clamp(1rem, 1.4vw, 1.18rem);
    line-height: 1.65;
}

.login-benefits {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 2.5rem;
}

.login-benefit {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    min-width: 0;
    padding: 0.75rem 0.85rem;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 0.85rem;
    background: rgba(255, 255, 255, 0.035);
}

.login-benefit__icon {
    display: grid;
    flex: 0 0 2.75rem;
    width: 2.75rem;
    height: 2.75rem;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 0.75rem;
    background: rgba(255, 255, 255, 0.1);
}

.login-benefit svg,
.login-control svg,
.login-submit svg,
.login-support svg {
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.login-benefit svg {
    width: 1.35rem;
    height: 1.35rem;
    color: #ffb679;
}

.login-benefit strong,
.login-benefit small {
    display: block;
}

.login-benefit strong {
    margin-bottom: 0.18rem;
    font-size: 0.9rem;
}

.login-benefit small {
    color: rgba(255, 255, 255, 0.66);
    font-size: 0.77rem;
    line-height: 1.4;
}

.login-panel {
    display: flex;
    min-height: 100vh;
    align-items: center;
    justify-content: center;
    padding: clamp(2rem, 5vw, 5rem);
    background:
        radial-gradient(circle at 100% 0%, rgba(240, 124, 33, 0.07), transparent 23rem),
        #fff;
}

.login-panel__inner {
    width: min(100%, 30rem);
}

.login-logo {
    display: inline-flex;
    margin-bottom: clamp(2.25rem, 5vh, 4.5rem);
}

.login-logo img {
    display: block;
    width: 10.5rem;
    height: auto;
}

.login-heading {
    margin-bottom: 1.65rem;
}

.login-heading h2 {
    margin: 0.45rem 0 0.45rem;
    color: var(--hc-primary-dark);
    font-size: clamp(1.85rem, 3vw, 2.35rem);
    font-weight: 800;
    letter-spacing: -0.035em;
}

.login-heading p {
    margin: 0;
    color: var(--hc-muted);
    line-height: 1.55;
}

.login-alert {
    border-radius: 0.75rem;
    font-size: 0.9rem;
}

.login-form .form-label {
    margin-bottom: 0.45rem;
    color: #243849;
    font-size: 0.85rem;
    font-weight: 700;
}

.login-control {
    position: relative;
}

.login-control .form-control {
    min-height: 3.25rem;
    padding-right: 1rem;
    padding-left: 3rem;
    border-color: #d7e0e5;
    border-radius: 0.7rem;
    background: #f8fafb;
}

.login-control .form-control::placeholder {
    color: #96a4ae;
}

.login-control .form-control:hover {
    border-color: #afbec7;
}

.login-control .form-control:focus {
    border-color: var(--hc-primary);
    background: #fff;
    box-shadow: 0 0 0 0.22rem rgba(9, 49, 70, 0.12);
}

.login-control__icon {
    position: absolute;
    z-index: 2;
    top: 50%;
    left: 1rem;
    display: grid;
    color: #7d919e;
    transform: translateY(-50%);
    pointer-events: none;
}

.login-control__icon svg {
    width: 1.15rem;
    height: 1.15rem;
}

.login-control .login-control__password {
    padding-right: 3.25rem;
}

.login-password-toggle {
    position: absolute;
    z-index: 3;
    top: 50%;
    right: 0.55rem;
    display: grid;
    width: 2.35rem;
    height: 2.35rem;
    padding: 0;
    place-items: center;
    border: 0;
    border-radius: 0.55rem;
    background: transparent;
    color: #708592;
    transform: translateY(-50%);
}

.login-password-toggle:hover {
    background: rgba(9, 49, 70, 0.07);
    color: var(--hc-primary);
}

.login-password-toggle svg {
    width: 1.2rem;
    height: 1.2rem;
}

.login-password-toggle .icon-eye-off,
.login-password-toggle[aria-pressed='true'] .icon-eye {
    display: none;
}

.login-password-toggle[aria-pressed='true'] .icon-eye-off {
    display: block;
}

.certificate-password-control {
    position: relative;
}

.certificate-password-control .form-control {
    padding-right: 3.25rem;
}

.certificate-password-control svg {
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.login-form__links {
    display: flex;
    justify-content: flex-end;
    margin: 0.75rem 0 1.5rem;
}

.login-form__links a {
    color: var(--hc-primary);
    font-size: 0.86rem;
    font-weight: 700;
    text-decoration: none;
}

.login-form__links a:hover {
    color: var(--hc-accent);
    text-decoration: underline;
}

.login-submit {
    display: flex;
    width: 100%;
    min-height: 3.35rem;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    border-radius: 0.7rem;
    font-weight: 800;
    box-shadow: 0 0.8rem 1.6rem rgba(9, 49, 70, 0.18);
}

.login-submit svg {
    width: 1.2rem;
    height: 1.2rem;
}

.login-support {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    margin: 1.8rem 0 0;
    color: #7a8b96;
    font-size: 0.78rem;
    text-align: center;
}

.login-support svg {
    flex: 0 0 1rem;
    width: 1rem;
    height: 1rem;
}

.login-support a {
    color: inherit;
    text-decoration: none;
}

.login-support a:hover,
.login-support a:focus-visible {
    color: var(--navy);
    text-decoration: underline;
}

.access-denied-page {
    min-height: calc(100vh - 10rem);
    display: grid;
    place-items: center;
    padding: 2rem 0;
}

.access-denied-card {
    width: min(100%, 58rem);
    display: grid;
    grid-template-columns: minmax(15rem, 0.8fr) minmax(0, 1.2fr);
    overflow: hidden;
    border: 1px solid rgba(9, 49, 70, 0.1);
    border-radius: 1.5rem;
    background: #fff;
    box-shadow: 0 1.5rem 4rem rgba(9, 49, 70, 0.12);
}

.access-denied-card__visual {
    position: relative;
    min-height: 25rem;
    display: grid;
    place-items: center;
    overflow: hidden;
    background: linear-gradient(145deg, #06283a, #0a4963);
}

.access-denied-card__visual::before,
.access-denied-card__visual::after {
    content: "";
    position: absolute;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 50%;
}

.access-denied-card__visual::before { width: 20rem; height: 20rem; top: -9rem; left: -8rem; }
.access-denied-card__visual::after { width: 15rem; height: 15rem; right: -7rem; bottom: -6rem; }

.access-denied-card__code {
    position: absolute;
    color: rgba(255, 255, 255, 0.07);
    font-size: clamp(7rem, 16vw, 12rem);
    font-weight: 800;
    line-height: 1;
}

.access-denied-card__icon {
    position: relative;
    width: 6rem;
    height: 6rem;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 1.5rem;
    color: #ff8726;
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(8px);
}

.access-denied-card__icon svg { width: 3.25rem; height: 3.25rem; }
.access-denied-card__content { align-self: center; padding: clamp(2rem, 5vw, 4rem); }
.access-denied-card__content h1 { margin: 0.8rem 0 1rem; font-size: clamp(1.8rem, 3vw, 2.6rem); line-height: 1.12; }
.access-denied-card__content > p { margin: 0; color: #647683; font-size: 1rem; line-height: 1.7; }

.access-denied-card__notice {
    display: flex;
    gap: 0.75rem;
    align-items: flex-start;
    margin-top: 1.5rem;
    padding: 1rem;
    border-radius: 0.85rem;
    color: #35536a;
    background: #f1f7fa;
    font-size: 0.88rem;
}

.access-denied-card__notice svg { flex: 0 0 1.25rem; width: 1.25rem; height: 1.25rem; margin-top: 0.05rem; }
.access-denied-card__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 1.75rem; }
.access-denied-card__actions form { margin: 0; }

@media (max-width: 767.98px) {
    .access-denied-card { grid-template-columns: 1fr; }
    .access-denied-card__visual { min-height: 11rem; }
    .access-denied-card__code { font-size: 7rem; }
    .access-denied-card__icon { width: 4.5rem; height: 4.5rem; border-radius: 1.1rem; }
    .access-denied-card__icon svg { width: 2.5rem; height: 2.5rem; }
}

@media (max-width: 1099.98px) {
    .login-page {
        grid-template-columns: minmax(0, 0.92fr) minmax(27rem, 1.08fr);
    }

    .login-visual {
        padding: 3rem;
    }

    .login-benefits {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767.98px) {
    .login-page {
        display: block;
        min-height: 100vh;
    }

    .login-visual {
        display: none;
    }

    .login-panel {
        min-height: 100vh;
        align-items: flex-start;
        padding: 2rem 1.35rem;
    }

    .login-logo {
        margin-bottom: 2.5rem;
    }

    .login-logo img {
        width: 9.25rem;
    }
}

.form-control {
    min-height: 2.8rem;
    border-color: var(--hc-border);
}

.app-shell {
    display: flex;
    background: #f3f6f8;
}

.app-icon-sprite {
    position: absolute;
    width: 0;
    height: 0;
    overflow: hidden;
}

.sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    z-index: 1040;
    width: var(--hc-sidebar-width);
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    padding: 1.25rem 1rem;
    overflow-y: auto;
    background:
        radial-gradient(circle at 20% 0%, rgba(240, 124, 33, 0.11), transparent 15rem),
        #071f2f;
    color: #fff;
    box-shadow: 0.75rem 0 2rem rgba(6, 31, 45, 0.08);
    transition: width 180ms ease, padding 180ms ease, transform 180ms ease;
}

.sidebar__header {
    display: flex;
    min-height: 4.5rem;
    align-items: center;
    justify-content: space-between;
    padding: 0 0.45rem 1rem;
}

.sidebar-logo {
    display: inline-flex;
    align-items: center;
}

.sidebar-logo img {
    display: block;
    width: 9.5rem;
    height: auto;
    /* filter: brightness(0) invert(1); */
}

.sidebar__close,
.topbar-menu,
.topbar-logout {
    display: inline-grid;
    padding: 0;
    place-items: center;
    border: 0;
    background: transparent;
}

.sidebar__close {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 0.6rem;
    color: rgba(255, 255, 255, 0.8);
}

.sidebar__close svg,
.topbar-menu svg,
.topbar-logout svg,
.sidebar-link > svg,
.sidebar-group__title > svg,
.sidebar-sublink > svg,
.sidebar-help > svg,
.secure-indicator svg {
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.sidebar__close svg,
.topbar-menu svg,
.topbar-logout svg {
    width: 1.25rem;
    height: 1.25rem;
}

.sidebar-nav {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 0.22rem;
    padding-top: 1rem;
}

.sidebar-label {
    margin: 1.15rem 0 0.35rem;
    padding: 0 0.75rem;
    color: rgba(255, 255, 255, 0.42);
    font-size: 0.64rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.sidebar-link,
.sidebar-group__title,
.sidebar-sublink {
    display: flex;
    min-height: 2.75rem;
    align-items: center;
    gap: 0.75rem;
    border-radius: 0.65rem;
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.86rem;
    text-decoration: none;
}

.sidebar-link {
    padding: 0.62rem 0.75rem;
}

.sidebar-link > svg,
.sidebar-group__title > svg,
.sidebar-sublink > svg {
    flex: 0 0 1.15rem;
    width: 1.15rem;
    height: 1.15rem;
}

.sidebar-link:hover,
.sidebar-link.active {
    background: rgba(255, 255, 255, 0.1);
    color: #fff;
}

.sidebar-link.active {
    box-shadow: inset 3px 0 var(--hc-accent);
}

.sidebar-link.is-disabled,
.sidebar-sublink.is-disabled {
    cursor: default;
    opacity: 0.58;
}

.sidebar-lock {
    display: inline-flex;
    margin-left: auto;
}

.sidebar-lock svg {
    width: 0.9rem;
    height: 0.9rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
}

.sidebar-group {
    border-radius: 0.65rem;
    background: rgba(255, 255, 255, 0.045);
}

.sidebar-group__title {
    padding: 0.62rem 0.75rem;
    color: #fff;
    font-weight: 650;
}

.sidebar-group__chevron {
    width: 0.9rem !important;
    height: 0.9rem !important;
    margin-left: auto;
    transform: rotate(90deg);
}

.sidebar-subnav {
    display: grid;
    gap: 0.08rem;
    padding: 0 0.45rem 0.45rem 1.2rem;
}

.sidebar-tooltip {
    position: fixed;
    z-index: 1100;
    transform: translateY(-50%);
    padding: 0.4rem 0.65rem;
    border-radius: 0.45rem;
    background: #082f41;
    box-shadow: 0 0.35rem 0.9rem rgba(6, 31, 45, 0.22);
    color: #fff;
    font-size: 0.8rem;
    font-weight: 600;
    white-space: nowrap;
    pointer-events: none;
}

.sidebar-tooltip[hidden] {
    display: none;
}

.sidebar-subnav[hidden] {
    display: none;
}

.sidebar-sublink {
    min-height: 2.35rem;
    padding: 0.42rem 0.55rem;
    font-size: 0.78rem;
}

.sidebar-sublink:not(.is-disabled):hover {
    background: rgba(255, 255, 255, 0.08);
    color: #fff;
}

.sidebar-sublink.active {
    background: rgba(255, 255, 255, 0.1);
    box-shadow: inset 3px 0 var(--hc-accent);
    color: #fff;
    font-weight: 650;
}

.sidebar-sublink > svg {
    width: 0.95rem;
    height: 0.95rem;
}

.sidebar-sublink small {
    margin-left: auto;
    color: #ffb679;
    font-size: 0.59rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.sidebar-help {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    margin-top: 1.25rem;
    padding: 0.9rem;
    border: 1px solid rgba(255, 255, 255, 0.11);
    border-radius: 0.75rem;
    background: rgba(255, 255, 255, 0.05);
    color: #fff;
    text-decoration: none;
    transition: border-color 160ms ease, background-color 160ms ease, transform 160ms ease;
}

.sidebar-help:hover,
.sidebar-help:focus-visible {
    border-color: rgba(240, 124, 33, 0.72);
    background: rgba(255, 255, 255, 0.1);
    color: #fff;
    transform: translateY(-1px);
}

.sidebar-help > svg {
    flex: 0 0 1.35rem;
    width: 1.35rem;
    height: 1.35rem;
    color: #ffb679;
}

.sidebar-help strong,
.sidebar-help small {
    display: block;
}

.sidebar-help strong {
    font-size: 0.78rem;
}

.sidebar-help small {
    margin-top: 0.1rem;
    color: rgba(255, 255, 255, 0.52);
    font-size: 0.67rem;
}

.app-content {
    width: calc(100% - var(--hc-sidebar-width));
    min-height: 100vh;
    margin-left: var(--hc-sidebar-width);
    transition: width 180ms ease, margin-left 180ms ease;
}

.topbar {
    display: flex;
    align-items: center;
    min-height: 4.5rem;
    padding: 0.75rem 1.5rem;
    border-bottom: 1px solid #e4eaee;
    box-shadow: 0 0.15rem 0.6rem rgba(9, 49, 70, 0.025);
}

.topbar-title {
    color: #344a58;
    font-size: 0.9rem;
    font-weight: 700;
}

.topbar-actions {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-left: auto;
}

.secure-indicator {
    align-items: center;
    gap: 0.4rem;
    padding: 0.38rem 0.65rem;
    border-radius: 999px;
    background: #edf8f3;
    color: #177152;
    font-size: 0.72rem;
    font-weight: 700;
}

.secure-indicator svg {
    width: 1rem;
    height: 1rem;
}

.user-summary {
    display: flex;
    align-items: center;
    gap: 0.65rem;
}

.user-avatar {
    display: grid;
    flex: 0 0 2.25rem;
    width: 2.25rem;
    height: 2.25rem;
    place-items: center;
    border-radius: 50%;
    background: #eef2f4;
    color: var(--hc-primary);
    font-size: 0.72rem;
    font-weight: 800;
}

.user-summary__text strong,
.user-summary__text small {
    display: block;
    max-width: 11rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.user-summary__text strong {
    color: #263b48;
    font-size: 0.76rem;
}

.user-summary__text small {
    margin-top: 0.08rem;
    color: #81909a;
    font-size: 0.66rem;
}

.topbar-menu,
.topbar-logout {
    min-height: 2.4rem;
    border-radius: 0.58rem;
    color: #5d707c;
}

.topbar-menu {
    width: 2.5rem;
    flex: 0 0 2.5rem;
    margin-right: 0.75rem;
    border: 1px solid #dce4e8;
    background: #fff;
}

.topbar-logout {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0 0.65rem;
    border: 1px solid #dce4e8;
    background: #fff;
    font-size: 0.75rem;
    font-weight: 700;
}

.topbar-menu:hover,
.topbar-logout:hover {
    background: #f1f5f7;
    color: var(--hc-primary);
}

.app-main {
    width: min(100%, 105rem);
    margin: 0 auto;
    padding: clamp(1.25rem, 2.5vw, 2.5rem);
}

.sidebar-backdrop {
    position: fixed;
    inset: 0;
    z-index: 1030;
    background: rgba(23, 32, 51, 0.5);
}

@media (min-width: 992px) {
    body.sidebar-collapsed .sidebar {
        width: var(--hc-sidebar-collapsed-width);
        padding-inline: 0.65rem;
        overflow-x: hidden;
    }

    body.sidebar-collapsed .sidebar__header {
        justify-content: center;
        padding-inline: 0;
    }

    body.sidebar-collapsed .sidebar-logo {
        width: 3.4rem;
        overflow: hidden;
    }

    body.sidebar-collapsed .sidebar-logo img {
        width: 9.5rem;
        max-width: none;
    }

    body.sidebar-collapsed .sidebar-label,
    body.sidebar-collapsed .sidebar-link > span,
    body.sidebar-collapsed .sidebar-group__title > span,
    body.sidebar-collapsed .sidebar-group__chevron,
    body.sidebar-collapsed .sidebar-subnav,
    body.sidebar-collapsed .sidebar-help > span {
        display: none;
    }

    body.sidebar-collapsed .sidebar-link,
    body.sidebar-collapsed .sidebar-group__title,
    body.sidebar-collapsed .sidebar-help {
        justify-content: center;
        padding-inline: 0.65rem;
    }

    body.sidebar-collapsed .sidebar-group {
        background: transparent;
    }

    body.sidebar-collapsed .app-content {
        width: calc(100% - var(--hc-sidebar-collapsed-width));
        margin-left: var(--hc-sidebar-collapsed-width);
    }
}

@media (max-width: 991.98px) {
    body.sidebar-open {
        overflow: hidden;
    }

    .sidebar {
        transform: translateX(-100%);
    }

    .sidebar.is-open {
        transform: translateX(0);
    }

    .app-content {
        width: 100%;
        margin-left: 0;
    }

    .topbar {
        padding-inline: 1rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .sidebar,
    .app-content {
        transition: none;
    }
}

.btn-accent {
    --bs-btn-color: #17212a;
    --bs-btn-bg: #f07c21;
    --bs-btn-border-color: #f07c21;
    --bs-btn-hover-color: #17212a;
    --bs-btn-hover-bg: #d9650f;
    --bs-btn-hover-border-color: #d9650f;
    --bs-btn-disabled-color: #4e5357;
    --bs-btn-disabled-bg: #e6c89c;
    --bs-btn-disabled-border-color: #e6c89c;
    font-weight: 800;
}

.dashboard-page {
    color: #172d3a;
}

.dashboard-welcome {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    margin-bottom: 1.4rem;
}

.dashboard-welcome h1 {
    margin: 0.35rem 0 0.25rem;
    font-size: clamp(1.65rem, 2.5vw, 2.25rem);
    font-weight: 800;
    letter-spacing: -0.035em;
}

.dashboard-welcome p {
    margin: 0;
    color: #6e7f89;
}

.dashboard-security {
    display: flex;
    flex: 0 0 auto;
    min-width: 13rem;
    align-items: center;
    gap: 0.75rem;
    padding: 0.8rem 1rem;
    border: 1px solid #e0ebe6;
    border-radius: 0.8rem;
    background: #fff;
    box-shadow: 0 0.45rem 1.2rem rgba(9, 49, 70, 0.045);
}

.dashboard-security__icon {
    display: grid;
    flex: 0 0 2.15rem;
    width: 2.15rem;
    height: 2.15rem;
    place-items: center;
    border-radius: 50%;
    background: #e9f8f1;
    color: #16845b;
}

.dashboard-security__icon svg,
.metric-card__icon svg,
.dashboard-issue-banner__art svg,
.dashboard-empty svg,
.dashboard-coming-soon svg,
.dashboard-primary-action .btn svg {
    width: 1.2rem;
    height: 1.2rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.dashboard-security strong,
.dashboard-security small {
    display: block;
}

.dashboard-security strong {
    font-size: 0.77rem;
}

.dashboard-security small {
    margin-top: 0.08rem;
    color: #7b8d87;
    font-size: 0.65rem;
}

.dashboard-summary,
.dashboard-panel {
    border: 1px solid #e2e9ed;
    border-radius: 0.9rem;
    background: #fff;
    box-shadow: 0 0.45rem 1.35rem rgba(9, 49, 70, 0.035);
}

.dashboard-summary {
    padding: 1.25rem 1.35rem;
}

.dashboard-summary__header strong,
.dashboard-summary__header small {
    display: block;
}

.dashboard-summary__header strong {
    font-size: 0.9rem;
}

.dashboard-summary__header small {
    margin-top: 0.15rem;
    color: #8a98a1;
    font-size: 0.68rem;
}

.dashboard-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-top: 1.2rem;
}

.dashboard-summary--host .dashboard-metrics {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.metric-card {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 0.85rem;
    padding: 0.25rem 1.2rem;
    border-right: 1px solid #edf1f3;
}

.metric-card:first-child {
    padding-left: 0;
}

.metric-card:last-child {
    border-right: 0;
}

.metric-card__icon {
    display: grid;
    flex: 0 0 3rem;
    width: 3rem;
    height: 3rem;
    margin-top: 0;
    place-items: center;
    overflow: visible;
    border-radius: 50%;
}

.metric-card__icon svg {
    display: block;
    width: 1.55rem;
    height: 1.55rem;
}

.metric-card__icon.is-green { background: #e8f7ef; color: #22855c; }
.metric-card__icon.is-blue { background: #eaf1ff; color: #3268bd; }
.metric-card__icon.is-purple { background: #f2ecff; color: #7652bd; }
.metric-card__icon.is-orange { background: #fff3df; color: #c47a14; }

.metric-card > div > strong,
.metric-card > div > span,
.metric-card > div > small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.metric-card > div > strong {
    color: var(--hc-primary);
    font-size: 1.2rem;
    line-height: 1.1;
}

.metric-card > div > span {
    margin-top: 0.16rem;
    color: #304550;
    font-size: 0.73rem;
    font-weight: 700;
}

.metric-card > div > small {
    margin-top: 0.08rem;
    color: #8a98a1;
    font-size: 0.63rem;
}

.dashboard-issue-banner {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 1.3rem;
    margin-top: 1.25rem;
    padding: 1.35rem 1.6rem;
    overflow: hidden;
    border-radius: 0.9rem;
    background:
        radial-gradient(circle at 85% 20%, rgba(240, 124, 33, 0.14), transparent 18rem),
        linear-gradient(130deg, #082c41, #061d2c);
    color: #fff;
    box-shadow: 0 1rem 2rem rgba(6, 31, 45, 0.12);
}

.dashboard-issue-banner__art {
    position: relative;
    display: grid;
    width: 4.2rem;
    height: 4.8rem;
    place-items: center;
    border-radius: 0.65rem;
    background: #fff;
    color: var(--hc-primary);
    transform: rotate(-2deg);
}

.dashboard-issue-banner__art svg {
    width: 2.1rem;
    height: 2.1rem;
}

.dashboard-issue-banner__art span {
    position: absolute;
    right: -0.55rem;
    bottom: 0.6rem;
    display: grid;
    width: 1.8rem;
    height: 1.8rem;
    place-items: center;
    border: 3px solid #082c41;
    border-radius: 50%;
    background: #45b97c;
    color: #fff;
    font-size: 0.8rem;
}

.dashboard-issue-banner .eyebrow {
    color: #f07c21;
}

.dashboard-issue-banner h2 {
    margin: 0.3rem 0;
    font-size: 1.05rem;
    font-weight: 800;
}

.dashboard-issue-banner p {
    margin: 0;
    color: rgba(255, 255, 255, 0.68);
    font-size: 0.78rem;
}

.dashboard-issue-banner .btn {
    min-width: 11rem;
}

.dashboard-issue-banner .btn small {
    display: block;
    font-size: 0.55rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.dashboard-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(19rem, 0.65fr);
    gap: 1.25rem;
    margin-top: 1.25rem;
}

.dashboard-grid--host {
    grid-template-columns: minmax(0, 1.2fr) minmax(18rem, 0.8fr);
}

.dashboard-panel {
    padding: 1.3rem;
}

.dashboard-panel__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.dashboard-panel h2 {
    margin: 0;
    font-size: 0.94rem;
    font-weight: 800;
}

.dashboard-panel__header p {
    margin: 0.2rem 0 0;
    color: #8a98a1;
    font-size: 0.7rem;
}

.status-badge {
    display: inline-flex;
    padding: 0.28rem 0.55rem;
    border-radius: 999px;
    font-size: 0.6rem;
    font-weight: 800;
    text-transform: uppercase;
}

.status-badge.is-planned {
    background: #fff2df;
    color: #9b5b09;
}

.dashboard-empty {
    display: flex;
    min-height: 15rem;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    padding: 2rem;
    color: #81909a;
    text-align: center;
}

.dashboard-empty > span {
    display: grid;
    width: 3.4rem;
    height: 3.4rem;
    margin-bottom: 0.8rem;
    place-items: center;
    border-radius: 50%;
    background: #f0f4f6;
    color: #6f838f;
}

.dashboard-empty svg {
    width: 1.55rem;
    height: 1.55rem;
}

.dashboard-empty strong {
    color: #40535e;
    font-size: 0.82rem;
}

.dashboard-empty p {
    max-width: 25rem;
    margin: 0.4rem 0 0;
    font-size: 0.7rem;
    line-height: 1.55;
}

.dashboard-quick-start > a,
.dashboard-quick-start > span {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.7rem 0;
    color: inherit;
    text-decoration: none;
}

.dashboard-quick-start > a + a,
.dashboard-quick-start > a + span,
.dashboard-quick-start > span + span {
    border-top: 1px solid #edf1f3;
}

.dashboard-quick-start > a > span,
.dashboard-quick-start > span > span {
    display: grid;
    flex: 0 0 1.7rem;
    width: 1.7rem;
    height: 1.7rem;
    place-items: center;
    border-radius: 50%;
    background: #eaf6f0;
    color: #23865f;
    font-size: 0.68rem;
    font-weight: 800;
}

.dashboard-quick-start > a strong,
.dashboard-quick-start > a small,
.dashboard-quick-start > span strong,
.dashboard-quick-start > span small {
    display: block;
}

.dashboard-quick-start > a strong,
.dashboard-quick-start > span strong {
    color: #304550;
    font-size: 0.75rem;
}

.dashboard-quick-start > a small,
.dashboard-quick-start > span small {
    margin-top: 0.12rem;
    color: #8a98a1;
    font-size: 0.64rem;
}

.dashboard-quick-start > a:hover strong {
    color: var(--hc-accent);
}

.dashboard-quick-start > .is-disabled {
    opacity: 0.66;
}

.dashboard-coming-soon {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    margin-top: 0.6rem;
    padding: 0.75rem;
    border-radius: 0.65rem;
    background: #eef5fb;
    color: #34638b;
}

.dashboard-coming-soon svg {
    flex: 0 0 1.2rem;
    width: 1.2rem;
    height: 1.2rem;
}

.dashboard-coming-soon strong,
.dashboard-coming-soon small {
    display: block;
}

.dashboard-coming-soon strong { font-size: 0.68rem; }
.dashboard-coming-soon small { margin-top: 0.08rem; font-size: 0.6rem; opacity: 0.78; }

.dashboard-primary-action {
    display: flex;
    min-height: 16rem;
    align-items: flex-end;
    justify-content: space-between;
    gap: 2rem;
    background:
        radial-gradient(circle at 90% 10%, rgba(240, 124, 33, 0.18), transparent 16rem),
        var(--hc-primary);
    color: #fff;
}

.dashboard-primary-action h2 {
    max-width: 28rem;
    margin-top: 0.45rem;
    font-size: clamp(1.25rem, 2vw, 1.8rem);
}

.dashboard-primary-action p {
    max-width: 34rem;
    margin: 0.5rem 0 0;
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.78rem;
}

.dashboard-primary-action .btn {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 0.3rem;
}

@media (max-width: 1199.98px) {
    .dashboard-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1rem 0;
    }

    .metric-card:nth-child(2) {
        border-right: 0;
    }

    .metric-card:nth-child(3) {
        padding-left: 0;
    }
}

@media (max-width: 767.98px) {
    .dashboard-welcome {
        align-items: flex-start;
        flex-direction: column;
    }

    .dashboard-security {
        width: 100%;
    }

    .dashboard-metrics,
    .dashboard-summary--host .dashboard-metrics,
    .dashboard-grid,
    .dashboard-grid--host,
    .dashboard-issue-banner {
        grid-template-columns: 1fr;
    }

    .metric-card,
    .metric-card:first-child,
    .metric-card:nth-child(3) {
        padding: 0.35rem 0;
        border-right: 0;
        border-bottom: 1px solid #edf1f3;
    }

    .metric-card:last-child {
        border-bottom: 0;
    }

    .dashboard-issue-banner {
        justify-items: start;
    }

    .dashboard-issue-banner .btn {
        width: 100%;
    }

    .dashboard-primary-action {
        align-items: flex-start;
        flex-direction: column;
    }

    .dashboard-primary-action .btn {
        width: 100%;
        justify-content: center;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}

.audit-json {
    max-height: 24rem;
    overflow: auto;
    padding: 1rem;
    border-radius: 0.625rem;
    background: #111827;
    color: #e5e7eb;
    font-size: 0.82rem;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.step-number {
    display: inline-grid;
    flex: 0 0 2.25rem;
    width: 2.25rem;
    height: 2.25rem;
    place-items: center;
    border-radius: 50%;
    background: rgba(36, 70, 168, 0.1);
    color: var(--hc-primary);
    font-weight: 800;
}

.readiness-card {
    position: sticky;
    top: 1.5rem;
}

.readiness-card .progress-bar {
    background: var(--hc-accent);
}

.readiness-icon {
    display: inline-grid;
    flex: 0 0 1.75rem;
    width: 1.75rem;
    height: 1.75rem;
    place-items: center;
    border-radius: 50%;
    font-weight: 800;
}

.readiness-icon.is-complete {
    background: rgba(0, 165, 140, 0.13);
    color: #067362;
}

.readiness-icon.is-pending {
    background: rgba(245, 158, 11, 0.16);
    color: #92400e;
}

@media (max-width: 1199.98px) {
    .readiness-card {
        position: static;
    }
}

/* Ajuste 03 — componentes internos */
.page-header { display:flex; align-items:flex-start; justify-content:space-between; gap:1.5rem; margin-bottom:1.5rem; }
.page-header__title { margin:.35rem 0 0; color:var(--ink); font-size:clamp(1.55rem,2.5vw,2rem); font-weight:750; letter-spacing:-.025em; }
.page-header__description { max-width:46rem; margin:.45rem 0 0; color:var(--muted); }
.page-header__actions,.form-actions { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:.75rem; }
.panel-card { overflow:hidden; border:1px solid var(--border); border-radius:1rem; background:#fff; box-shadow:0 10px 30px rgba(9,49,70,.055); }
.panel-card__header { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; padding:1.25rem 1.5rem; border-bottom:1px solid var(--border); }
.panel-card__title { margin:0; color:var(--ink); font-size:1.05rem; font-weight:700; }
.panel-card__description { margin:.3rem 0 0; color:var(--muted); font-size:.875rem; }
.panel-card__body { padding:1.5rem; }
.filter-panel { padding:1.25rem; border:1px solid var(--border); border-radius:1rem; background:#fff; box-shadow:0 8px 24px rgba(9,49,70,.04); }
.filter-panel .form-label { margin-bottom:.45rem; color:var(--ink); font-size:.78rem; font-weight:700; letter-spacing:.02em; }
.form-section + .form-section { margin-top:2rem; padding-top:2rem; border-top:1px solid var(--border); }
.form-section__heading { display:flex; align-items:flex-start; gap:.85rem; margin-bottom:1.35rem; }
.form-section__icon { display:inline-grid; flex:0 0 2.35rem; width:2.35rem; height:2.35rem; place-items:center; border-radius:.75rem; background:rgba(9,49,70,.08); color:var(--primary); font-weight:800; }
.form-section__title { margin:0; color:var(--ink); font-size:1.05rem; font-weight:700; }
.form-section__description { margin:.25rem 0 0; color:var(--muted); font-size:.875rem; }
.form-control,.form-select,.input-group-text { min-height:2.8rem; border-color:#d7e0e6; }
.form-control:focus,.form-select:focus { border-color:rgba(9,49,70,.65); box-shadow:0 0 0 .2rem rgba(9,49,70,.1); }
.form-actions { margin:2rem -1.5rem -1.5rem; padding:1rem 1.5rem; border-top:1px solid var(--border); background:#f8fafb; }
.data-table thead th { padding:.85rem 1rem; border-bottom-width:1px; background:#f7f9fa; color:#617482; font-size:.72rem; font-weight:750; letter-spacing:.06em; text-transform:uppercase; white-space:nowrap; }
.data-table tbody td,.data-table tbody th { padding:1rem; border-color:#edf1f3; vertical-align:middle; }
.data-table tbody tr:hover { background:#fbfcfd; }
.crud-action-btn { display:inline-grid; width:2.25rem; height:2.25rem; padding:0; place-items:center; border-radius:.55rem; line-height:1; }
.crud-action-btn svg { width:1rem; height:1rem; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.data-table tbody tr .crud-action-btn { opacity:.62; }
.data-table tbody tr:hover .crud-action-btn,.crud-action-btn:hover,.crud-action-btn:focus-visible { opacity:1; }
.table-section { padding:1rem 1.5rem 1.5rem; }
.table-section .table { border:1px solid var(--border); }
.select-search { margin-bottom:.5rem; }
.select-search__status { display:block; min-height:1.2rem; margin-top:.35rem; color:var(--muted); font-size:.78rem; }
.empty-state { display:grid; min-height:15rem; padding:2.5rem 1.5rem; place-items:center; text-align:center; }
.empty-state__icon { display:inline-grid; width:3.5rem; height:3.5rem; margin-bottom:1rem; place-items:center; border-radius:1rem; background:rgba(9,49,70,.08); color:var(--primary); }
.empty-state__icon svg { width:1.7rem; height:1.7rem; fill:none; stroke:currentColor; stroke-width:1.8; }
.empty-state h2 { margin-bottom:.4rem; font-size:1.05rem; }
.empty-state p { max-width:30rem; margin:0 auto; color:var(--muted); }
.status-badge { display:inline-flex; align-items:center; gap:.4rem; padding:.38rem .65rem; border-radius:999px; font-size:.75rem; font-weight:700; }
.status-badge::before { width:.42rem; height:.42rem; border-radius:50%; background:currentColor; content:''; }
.status-badge--success { background:#e9f8f1; color:#08765d; }
.status-badge--warning { background:#fff4df; color:#9a5b00; }
.status-badge--danger { background:#feecef; color:#b4233c; }
.status-badge--neutral { background:#eef2f4; color:#586a76; }
.definition-list { margin:0; }
.definition-list > div { display:grid; grid-template-columns:minmax(9rem,32%) 1fr; gap:1rem; padding:.8rem 0; border-bottom:1px solid #edf1f3; }
.definition-list > div:last-child { border-bottom:0; }
.definition-list dt { color:#617482; font-size:.84rem; font-weight:650; }
.definition-list dd { min-width:0; margin:0; color:var(--ink); overflow-wrap:anywhere; }
.section-tabs { display:flex; gap:.35rem; margin-bottom:1.5rem; padding:.35rem; overflow-x:auto; border:1px solid var(--border); border-radius:.85rem; background:#fff; }
.section-tabs a { padding:.62rem .9rem; border-radius:.6rem; color:#5f7280; font-size:.875rem; font-weight:650; text-decoration:none; white-space:nowrap; }
.section-tabs a:hover,.section-tabs a:focus-visible,.section-tabs a.active { background:rgba(9,49,70,.08); color:var(--primary); }

@media (max-width:767.98px) {
    .page-header { display:block; }
    .page-header__actions { justify-content:stretch; margin-top:1rem; }
    .page-header__actions .btn { flex:1 1 auto; }
    .panel-card__header,.panel-card__body { padding:1.1rem; }
    .table-section { padding:.75rem 1rem 1rem; }
    .form-actions { margin-right:-1.1rem; margin-bottom:-1.1rem; margin-left:-1.1rem; padding:1rem 1.1rem; }
    .form-actions .btn { width:100%; }
    .definition-list > div { display:block; }
    .definition-list dd { margin-top:.25rem; }
    .data-table thead { display:none; }
    .data-table,.data-table tbody,.data-table tr,.data-table td { display:block; width:100%; }
    .data-table tbody tr { padding:.75rem 1rem; border-bottom:1px solid var(--border); }
    .data-table tbody tr:last-child { border-bottom:0; }
    .data-table tbody td { display:flex; align-items:baseline; justify-content:space-between; gap:1rem; padding:.35rem 0; border:0; text-align:right !important; }
    .data-table tbody td::before { flex:0 0 38%; color:#617482; content:attr(data-label); font-size:.72rem; font-weight:750; letter-spacing:.04em; text-align:left; text-transform:uppercase; }
}

.nfse-steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;list-style:none;padding:0;margin:0 0 1.5rem}.nfse-steps li{display:flex;align-items:center;gap:.7rem;color:#6b7785;border-bottom:3px solid #dbe2e8;padding:.75rem}.nfse-steps li span{display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:#e8edf1;font-weight:700}.nfse-steps li.active{color:#093146;border-color:#f07c21}.nfse-steps li.active span{background:#f07c21;color:#fff}.form-section-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.form-section-heading>div{display:flex;align-items:center;gap:.75rem}.form-section-heading h2{margin:0;font-weight:800}.form-section-number{display:grid;place-items:center;flex:0 0 2rem;width:2rem;height:2rem;border:2px solid #093146;border-radius:50%;background:#fff;color:#093146;font-weight:800}.form-section-number svg{width:1.1rem;height:1.1rem;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.readonly-panel{display:flex;flex-direction:column;gap:.15rem;min-height:3.6rem;padding:.7rem .9rem;border:1px solid #d7dfe5;border-radius:.5rem;background:#f7f9fa}.readonly-panel span{color:#667584;font-size:.9rem}.choice-row{display:flex;flex-wrap:wrap;gap:.75rem 1rem}.choice-row label{display:flex;align-items:center;gap:.45rem;padding:.55rem .7rem;border:1px solid #d7dfe5;border-radius:.5rem;cursor:pointer}.form-help-link{display:inline-block;margin-top:.55rem;font-size:.9rem;font-weight:600;color:#0b536f}@media(max-width:575.98px){.nfse-steps{gap:.35rem}.nfse-steps li{padding:.55rem .3rem}.form-section-heading{align-items:flex-start}.choice-row{flex-direction:column}.choice-row label{width:100%}}
.party-block>fieldset>legend{font-size:1.05rem;font-weight:700;color:#093146;margin-bottom:.8rem}.manual-party-fields{padding:1rem;margin-top:1rem!important;border:1px solid #dce3e8;border-radius:.65rem;background:#f8fafb}
.tax-option-block{border-top:1px solid var(--border);margin-top:1.25rem;padding-top:1.25rem}.tax-option-block:first-of-type{border-top:0;margin-top:0;padding-top:0}.review-summary{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.review-summary__item{display:flex;flex-direction:column;gap:.25rem;padding:.9rem 1rem;border:1px solid var(--border);border-radius:.65rem;background:#f8fafb}.review-summary__item span{color:var(--muted);font-size:.82rem}.review-summary__item strong{overflow-wrap:anywhere}

/* Dashboard fiscal — fase 13 */
.dashboard-period{display:flex;align-items:flex-end;justify-content:flex-end;gap:.75rem;margin-bottom:1rem}.dashboard-period>div{width:min(15rem,100%)}.dashboard-period__submit{display:inline-grid;width:2.8rem;height:2.8rem;min-height:2.8rem;padding:0;place-items:center}.dashboard-period__submit svg{width:1.1rem;height:1.1rem;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.dashboard-period label{display:block;margin-bottom:.35rem;color:#526874;font-size:.72rem;font-weight:750}.metric-card[href]{border-radius:.75rem;color:inherit;text-decoration:none;transition:background-color .2s ease,box-shadow .2s ease,transform .2s ease}.metric-card[href]:hover{background:#f8fafb;box-shadow:0 .45rem 1rem rgba(9,49,70,.08);transform:translateY(-1px)}.metric-card[href]:focus-visible{outline:3px solid rgba(240,124,33,.35);outline-offset:3px}.dashboard-grid--metrics{grid-template-columns:minmax(0,1.45fr) minmax(18rem,.55fr)}.dashboard-chart{display:grid;gap:.7rem;margin-top:1.25rem}.dashboard-chart__row{display:grid;grid-template-columns:4.2rem minmax(6rem,1fr) 7.5rem;align-items:center;gap:.75rem;font-size:.75rem}.dashboard-chart__row>span{color:#667b87;font-weight:700}.dashboard-chart__row>strong{text-align:right;white-space:nowrap}.dashboard-chart progress{width:100%;height:.72rem;border:0;border-radius:999px;overflow:hidden;background:#edf2f4}.dashboard-chart progress::-webkit-progress-bar{border-radius:999px;background:#edf2f4}.dashboard-chart progress::-webkit-progress-value{border-radius:999px;background:linear-gradient(90deg,#f07c21,#ffad5b)}.dashboard-chart progress::-moz-progress-bar{border-radius:999px;background:linear-gradient(90deg,#f07c21,#ffad5b)}.dashboard-fiscal-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin:1.25rem 0 0}.dashboard-fiscal-summary>div{padding:.85rem;border:1px solid #e3eaee;border-radius:.7rem;background:#f8fafb}.dashboard-fiscal-summary dt{color:#71838d;font-size:.67rem}.dashboard-fiscal-summary dd{margin:.2rem 0 0;color:var(--hc-primary);font-size:.9rem;font-weight:800}.dashboard-recent-panel{margin-top:1.25rem}.dashboard-recent-panel .dashboard-panel__header>a{font-size:.76rem;font-weight:750}.dashboard-recent-table{margin:1rem 0 0;font-size:.78rem}.dashboard-recent-table th{color:#617682;font-size:.67rem;text-transform:uppercase}.dashboard-recent-table td{vertical-align:middle}.dashboard-recent-panel .dashboard-empty{min-height:11rem}
@media(max-width:991.98px){.dashboard-grid--metrics{grid-template-columns:1fr}.dashboard-chart__row{grid-template-columns:3.8rem minmax(5rem,1fr) 6.8rem}.dashboard-fiscal-summary{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:575.98px){.dashboard-period{display:grid;grid-template-columns:1fr}.dashboard-period>div{width:100%}.dashboard-period .dashboard-period__submit{justify-self:end;width:2.8rem}.dashboard-chart__row{grid-template-columns:3.5rem minmax(4rem,1fr)}.dashboard-chart__row>strong{grid-column:2;text-align:left}.dashboard-fiscal-summary{grid-template-columns:1fr}.dashboard-recent-table thead{display:none}.dashboard-recent-table,.dashboard-recent-table tbody,.dashboard-recent-table tr,.dashboard-recent-table td{display:block;width:100%}.dashboard-recent-table tr{padding:.75rem 0;border-bottom:1px solid #e3eaee}.dashboard-recent-table td{display:flex;justify-content:space-between;gap:1rem;padding:.35rem 0;border:0;text-align:right}.dashboard-recent-table td::before{color:#617682;content:attr(data-label);font-size:.67rem;font-weight:750;text-align:left;text-transform:uppercase}}

/* Global visual standard - 2026-09 */

/* Tables */
.table-card {
    overflow: hidden;
    border: 2px solid rgba(9, 49, 70, 0.12);
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 0.85rem 1.8rem rgba(9, 49, 70, 0.075);
}

.table-card__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.15rem 1.25rem;
    border-bottom: 2px solid #e3eaee;
    background:
        radial-gradient(circle at 100% 0%, rgba(240, 124, 33, 0.09), transparent 15rem),
        linear-gradient(135deg, #fbfcfd, #f2f6f8);
}

.table-card__header h2 {
    margin: 0;
    color: var(--hc-primary);
    font-size: 1.05rem;
    font-weight: 800;
}

.table-card__header p {
    margin: 0.25rem 0 0;
    color: var(--hc-muted);
    font-size: 0.8rem;
}

.table-responsive {
    overflow-x: auto;
    border: 2px solid rgba(9, 49, 70, 0.1);
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 0.6rem 1.35rem rgba(9, 49, 70, 0.055);
}

.table-card > .table-responsive,
.panel-card > .table-responsive {
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.table-section {
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.table-section .table {
    border: 0;
}

.table {
    --bs-table-bg: transparent;
    --bs-table-color: var(--hc-text);
    margin-bottom: 0;
    vertical-align: middle;
}

.table thead {
    border-top: 3px solid var(--hc-accent);
}

.table thead th {
    padding: 0.95rem 1.05rem;
    border-bottom: 2px solid #dbe4e9;
    background: linear-gradient(180deg, #f9fbfc, #eef3f6);
    color: #405866;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.055em;
    text-transform: uppercase;
    white-space: nowrap;
}

.table tbody tr {
    transition: box-shadow 180ms ease, transform 180ms ease;
}

.table tbody td,
.table tbody th {
    padding: 1rem 1.05rem;
    border-color: #e4ebef;
    background-color: #fff;
    transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease;
}

.table tbody tr:nth-child(even) > td,
.table tbody tr:nth-child(even) > th {
    background-color: #fafcfd;
}

.table tbody tr:hover {
    box-shadow: inset 4px 0 var(--hc-accent);
}

.table tbody tr:hover > td,
.table tbody tr:hover > th {
    border-color: rgba(240, 124, 33, 0.18);
    background-color: #fff7f1;
}

.table tbody td strong,
.table tbody th {
    color: var(--hc-primary);
    font-weight: 800;
}

.table tbody .small,
.table tbody small {
    color: #6e818d;
    line-height: 1.45;
}

.table tbody td:last-child,
.table thead th:last-child {
    padding-right: 1.15rem;
}

.table .crud-action-btn {
    border-width: 2px;
    background: rgba(255, 255, 255, 0.74);
}

.table .crud-action-btn:hover,
.table .crud-action-btn:focus-visible {
    border-color: var(--hc-accent);
    background: var(--hc-accent);
    color: #fff;
}

.table-sm thead th,
.table-sm tbody td,
.table-sm tbody th {
    padding: 0.75rem 0.85rem;
}

.pagination {
    gap: 0.35rem;
}

.pagination .page-link {
    min-width: 2.35rem;
    border: 1px solid #d5e0e6;
    border-radius: 0.65rem !important;
    color: var(--hc-primary);
    font-weight: 700;
    text-align: center;
    transition: color 180ms ease, background-color 180ms ease, border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.pagination .page-link:hover {
    border-color: rgba(240, 124, 33, 0.55);
    background: #fff4eb;
    color: #b9540b;
    box-shadow: 0 0.3rem 0.65rem rgba(240, 124, 33, 0.1);
    transform: translateY(-1px);
}

.pagination .active > .page-link {
    border-color: var(--hc-accent);
    background: var(--hc-accent);
    color: #fff;
}

@media (max-width: 767.98px) {
    .data-table tbody tr {
        margin: 0.75rem;
        padding: 0.8rem;
        border: 2px solid #dde6eb;
        border-radius: 0.85rem;
        background: #fff;
        box-shadow: 0 0.4rem 0.9rem rgba(9, 49, 70, 0.055);
    }

    .data-table tbody tr:hover {
        border-color: rgba(240, 124, 33, 0.45);
        box-shadow: 0 0.65rem 1.1rem rgba(240, 124, 33, 0.1);
    }

    .data-table tbody tr > td,
    .data-table tbody tr > th,
    .data-table tbody tr:nth-child(even) > td,
    .data-table tbody tr:nth-child(even) > th,
    .data-table tbody tr:hover > td,
    .data-table tbody tr:hover > th {
        background: transparent;
    }

    .data-table tbody td::before {
        color: #526b79;
        font-weight: 800;
    }
}



.readiness-overview {
    overflow: hidden;
    border-color: rgba(9, 49, 70, 0.12);
    background:
        radial-gradient(circle at 100% 0%, rgba(240, 124, 33, 0.08), transparent 22rem),
        #fff;
}

.readiness-overview .progress {
    height: 0.85rem;
    overflow: hidden;
    border: 2px solid #dbe4e9;
    border-radius: 999px;
    background: #e8eef2;
    box-shadow: inset 0 1px 2px rgba(9, 49, 70, 0.08);
}

.readiness-overview .progress-bar {
    border-radius: inherit;
    background: linear-gradient(90deg, #f07c21, #ffad5b);
    box-shadow: 0 0 0.75rem rgba(240, 124, 33, 0.28);
}

.readiness-item {
    display: flex;
    align-items: flex-start;
    gap: 0.9rem;
    padding: 1rem;
    border: 2px solid;
    border-radius: 0.9rem;
    box-shadow: 0 0.35rem 0.9rem rgba(9, 49, 70, 0.055);
    transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.readiness-item:hover {
    box-shadow: 0 0.7rem 1.25rem rgba(9, 49, 70, 0.1);
    transform: translateY(-2px);
}

.readiness-item.is-pending {
    border-color: rgba(240, 124, 33, 0.24);
    background: linear-gradient(135deg, #fffaf6, #fff0e3);
}

.readiness-item.is-complete {
    border-color: rgba(8, 118, 93, 0.2);
    background: linear-gradient(135deg, #f5fcf9, #e5f7f0);
}

.readiness-item.is-pending .readiness-icon {
    background: rgba(240, 124, 33, 0.16);
    color: #b3510a;
}

.readiness-item.is-complete .readiness-icon {
    background: rgba(8, 118, 93, 0.13);
    color: #08765d;
}

.readiness-item strong    {
    color: var(--hc-primary);
    font-weight: 800;
}

.status-badge--info {
    border-color: #bee3f1;
    background: linear-gradient(135deg, #eef9fc, #dceff6);
    color: #12647d;
}



.info-stat {
    position: relative;
    display: flex;
    min-height: 5.5rem;
    align-items: center;
    gap: 0.9rem;
    padding: 1rem;
    overflow: hidden;
    border: 2px solid;
    border-radius: 0.9rem;
    box-shadow: 0 0.45rem 1rem rgba(9, 49, 70, 0.07);
    transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.info-stat::after {
    position: absolute;
    width: 5rem;
    height: 5rem;
    right: -2.5rem;
    bottom: -3rem;
    border-radius: 50%;
    background: currentColor;
    content: "";
    opacity: 0.07;
}

.info-stat:hover {
    box-shadow: 0 0.75rem 1.35rem rgba(9, 49, 70, 0.12);
    transform: translateY(-2px);
}

.info-stat--accent {
    border-color: rgba(240, 124, 33, 0.28);
    background: linear-gradient(135deg, #fff9f4, #ffead9);
    color: #9b4b0e;
}

.info-stat--primary {
    border-color: rgba(9, 49, 70, 0.2);
    background: linear-gradient(135deg, #f5f9fb, #deedf3);
    color: var(--hc-primary);
}

.info-stat__icon {
    display: inline-grid;
    flex: 0 0 2.4rem;
    width: 2.4rem;
    height: 2.4rem;
    place-items: center;
    border-radius: 0.75rem;
    background: rgba(255, 255, 255, 0.72);
    box-shadow: 0 0.25rem 0.65rem rgba(9, 49, 70, 0.08);
}

.info-stat__icon svg {
    width: 1.2rem;
    height: 1.2rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.info-stat .h4 {
    color: currentColor;
    font-weight: 800;
}

.info-stat .small {
    color: currentColor;
    font-weight: 600;
    opacity: 0.72;
}



.app-content {
    background-color: #e9eff3;
    background-image:
        radial-gradient(circle at 94% 8%, rgba(240, 124, 33, 0.145), transparent 28rem),
        radial-gradient(circle at 8% 88%, rgba(9, 49, 70, 0.105), transparent 34rem),
        repeating-linear-gradient(135deg, rgba(9, 49, 70, 0.024) 0 1px, transparent 1px 12px),
        linear-gradient(145deg, #eef3f6 0%, #e7edf1 55%, #edf1f4 100%);
    background-attachment: fixed;
}


:root {
    --hc-control-height: 2.875rem;
    --hc-control-radius: 0.75rem;
    --bs-body-font-family: "Poppins", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

body,
button,
input,
select,
textarea {
    font-family: "Poppins", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

a,
button,
.btn,
.form-control,
.form-select,
.form-check-input,
.badge,
.status-badge,
.sidebar-link,
.sidebar-sublink,
.sidebar-help,
.metric-card {
    transition: color 180ms ease, background-color 180ms ease, border-color 180ms ease, box-shadow 180ms ease, opacity 180ms ease, transform 180ms ease;
}

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 0.7rem;
    font-weight: 700;
}

.btn:not(.btn-sm):not(.crud-action-btn) {
    min-height: var(--hc-control-height);
}

.fiscal-config-btn {
    gap: 0.5rem;
    white-space: nowrap;
}

.fiscal-config-btn svg {
    flex: 0 0 auto;
    width: 1rem;
    height: 1rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.row.align-items-end .btn:not(.btn-sm),
.input-group > .btn {
    height: var(--hc-control-height);
    min-height: var(--hc-control-height);
}

.btn:disabled,
button:disabled,
input[type="button"]:disabled,
input[type="submit"]:disabled {
    cursor: not-allowed !important;
}

.btn:not(:disabled):not(.disabled):hover {
    transform: translateY(-1px);
}

.btn-primary,
.btn-accent,
.btn-danger {
    box-shadow: 0 0.35rem 0.8rem rgba(9, 49, 70, 0.14);
}

.btn-primary:not(:disabled):hover,
.btn-accent:not(:disabled):hover,
.btn-danger:not(:disabled):hover {
    box-shadow: 0 0.55rem 1rem rgba(9, 49, 70, 0.2);
}

.form-control:not(textarea),
.form-select,
.input-group-text {
    height: var(--hc-control-height);
    min-height: var(--hc-control-height);
}

.form-control,
.form-select,
.input-group-text {
    border: 2px solid #cbd7df;
    border-radius: var(--hc-control-radius);
    background-color: #fff;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.72), 0 1px 2px rgba(9, 49, 70, 0.035);
}

.form-control:hover,
.form-select:hover {
    border-color: rgba(240, 124, 33, 0.62);
}

.form-control:focus,
.form-select:focus,
.form-check-input:focus {
    border-color: var(--hc-accent);
    box-shadow: 0 0 0 0.22rem rgba(240, 124, 33, 0.16);
}

textarea.form-control {
    min-height: 7.5rem;
    resize: vertical;
}

.input-group > .form-control:not(:first-child),
.input-group > .form-select:not(:first-child),
.input-group > .input-group-text:not(:first-child),
.input-group > .btn:not(:first-child) {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

.input-group > .form-control:not(:last-child),
.input-group > .form-select:not(:last-child),
.input-group > .input-group-text:not(:last-child),
.input-group > .btn:not(:last-child) {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.form-switch {
    padding-left: 3.15rem;
}

.form-switch .form-check-input {
    width: 2.45rem;
    height: 1.3rem;
    margin-left: -3.15rem;
    cursor: pointer;
    border-color: #b9c7cf;
    background-color: #dce4e8;
}

.form-switch .form-check-input:checked,
.form-check-input:checked {
    border-color: var(--hc-accent);
    background-color: var(--hc-accent);
}

.form-switch .form-check-input:checked {
    box-shadow: 0 0 0 0.2rem rgba(240, 124, 33, 0.1);
}

.form-check-label {
    cursor: pointer;
}

.toggle-card {
    border-width: 2px !important;
    background: #fff;
    transition: border-color 180ms ease, background-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.toggle-card:hover {
    border-color: rgba(240, 124, 33, 0.52) !important;
    background: #fffaf6;
    box-shadow: 0 0.55rem 1.1rem rgba(240, 124, 33, 0.08);
    transform: translateY(-1px);
}

.nfse-steps li span,
.dashboard-quick-start > a > span,
.dashboard-quick-start > span > span {
    background: var(--hc-accent);
    color: #fff;
    font-weight: 800;
}

.nfse-steps li strong,
.dashboard-quick-start > a strong,
.dashboard-quick-start > span strong {
    font-weight: 800;
}

.badge,
.status-badge {
    border: 1px solid transparent;
    letter-spacing: 0.015em;
    box-shadow: 0 0.22rem 0.55rem rgba(9, 49, 70, 0.065);
}

.status-badge--success,
.badge.text-bg-success {
    border-color: #bfe8d8;
    background: linear-gradient(135deg, #e8f8f1, #d8f3e8) !important;
    color: #08765d !important;
}

.status-badge--warning,
.badge.text-bg-warning {
    border-color: #ffd79a;
    background: linear-gradient(135deg, #fff5e5, #ffe8bd) !important;
    color: #915300 !important;
}

.status-badge--danger,
.badge.text-bg-danger {
    border-color: #f5c2ca;
    background: linear-gradient(135deg, #fff0f2, #ffdfe5) !important;
    color: #a61b35 !important;
}

.status-badge--neutral,
.badge.text-bg-secondary,
.badge.text-bg-light {
    border-color: #d7e0e6 !important;
    background: linear-gradient(135deg, #f5f8fa, #e8eef2) !important;
    color: #4d626f !important;
}

.badge.text-bg-info {
    border-color: #bee3f1;
    background: linear-gradient(135deg, #eef9fc, #dceff6) !important;
    color: #12647d !important;
}

.badge:hover,
.status-badge:hover {
    box-shadow: 0 0.4rem 0.8rem rgba(9, 49, 70, 0.1);
}

.inline-link,
.form-help-link {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    color: var(--hc-primary);
    font-weight: 700;
    text-decoration: none;
}

.inline-link::after,
.form-help-link::after {
    width: 0.38rem;
    height: 0.38rem;
    border-top: 2px solid currentColor;
    border-right: 2px solid currentColor;
    content: "";
    transform: rotate(45deg);
    transition: transform 180ms ease;
}

.inline-link:hover,
.form-help-link:hover {
    color: var(--hc-accent);
}

.inline-link:hover::after,
.form-help-link:hover::after {
    transform: translateX(0.18rem) rotate(45deg);
}

.inline-link--no-icon::after {
    display: none;
}

.sidebar {
    background:
        radial-gradient(circle at 15% 4%, rgba(240, 124, 33, 0.23), transparent 13rem),
        radial-gradient(circle at 95% 72%, rgba(40, 135, 157, 0.15), transparent 17rem),
        repeating-linear-gradient(135deg, rgba(255, 255, 255, 0.024) 0 1px, transparent 1px 10px),
        #071f2f;
}

.sidebar-link:not(.is-disabled):hover,
.sidebar-sublink:not(.is-disabled):hover {
    transform: translateX(0.18rem);
}

.crud-action-btn {
    box-shadow: none;
}

.crud-action-btn:hover {
    box-shadow: 0 0.35rem 0.8rem rgba(9, 49, 70, 0.12);
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}


/* Global visual refinement - full interface audit 2026-09 */
#main-content h1,#main-content h2,#main-content h3,#main-content h4,#main-content h5,#main-content h6,.modal-title,.offcanvas-title{color:var(--ink);font-weight:700;letter-spacing:-.018em}
.page-header__title,.page-header h1,.login-heading h2{font-weight:800}
.surface-card,.panel-card,.form-card,.table-card,.filter-panel{position:relative;border-width:2px;transition:border-color 240ms ease,box-shadow 240ms ease,transform 240ms ease}
.surface-card::before,.panel-card::before,.form-card::before,.filter-panel::before{position:absolute;z-index:0;top:-2px;right:1.1rem;left:1.1rem;height:2px;border-radius:999px;background:linear-gradient(90deg,transparent,rgba(240,124,33,.78),transparent);content:"";opacity:.62;pointer-events:none}
.surface-card>*,.form-card>*,.filter-panel>*{position:relative;z-index:1}
.surface-card:hover,.panel-card:hover,.filter-panel:hover{border-color:rgba(240,124,33,.38);box-shadow:0 16px 38px rgba(9,49,70,.09)}
.form-section__heading,.form-section-heading>div{align-items:center}
.form-section__title,.form-section-heading h2,.table-card__header h2,.panel-card__title{font-weight:750}
.form-section__description,.panel-card__description,.table-card__header p{line-height:1.55}
.form-label{color:var(--ink);font-weight:650; font-size:.8rem}.form-text{line-height:1.45}

.form-label+ .form-text{margin-top:.25rem; font-size:0.7em}; 




.page-header + form.panel-card,.page-header + form.surface-card,.page-header + form[data-submit-lock]{width:100%;max-width:1320px;margin-right:auto;margin-left:auto}
.readonly-panel,.review-summary__item,.definition-list>div,.info-stat{border-width:2px;transition:border-color 220ms ease,background-color 220ms ease,box-shadow 220ms ease,transform 220ms ease}
.readonly-panel,.review-summary__item{background:linear-gradient(145deg,#fff 0%,#fbfcfd 70%,rgba(240,124,33,.045) 100%)}
.readonly-panel:hover,.review-summary__item:hover,.definition-list>div:hover,.info-stat:hover{border-color:rgba(240,124,33,.42);box-shadow:0 9px 22px rgba(9,49,70,.07);transform:translateY(-1px)}
.readonly-panel>span:first-child,.review-summary__item>span:first-child,.definition-list dt{color:#627684;font-size:.76rem;font-weight:700;letter-spacing:.025em}
.alert{border-width:0 0 0 4px;border-radius:.85rem;box-shadow:0 8px 22px rgba(9,49,70,.055)}
.alert-info{border-left-color:#2185a0}.alert-success{border-left-color:#15936f}.alert-warning{border-left-color:var(--hc-accent)}.alert-danger{border-left-color:#c7344f}
.empty-state{background:radial-gradient(circle at 50% 12%,rgba(240,124,33,.095),transparent 34%),linear-gradient(180deg,rgba(248,251,252,.7),#fff)}
.empty-state__icon{border:2px solid rgba(240,124,33,.2);background:rgba(240,124,33,.1);color:var(--hc-accent);box-shadow:0 10px 24px rgba(240,124,33,.12)}
.input-group>.btn{min-height:2.875rem}

/* Small visual polish after authenticated screen review */
.topbar{position:relative;border-bottom:1px solid rgba(9,49,70,.08);box-shadow:0 .35rem 1.15rem rgba(9,49,70,.045)}
.topbar::after{position:absolute;right:0;bottom:-1px;left:0;height:1px;background:linear-gradient(90deg,transparent 4%,rgba(240,124,33,.38) 48%,transparent 96%);content:"";pointer-events:none}
.eyebrow,.page-eyebrow{display:inline-flex;align-items:center;gap:.45rem}
.eyebrow::before,.page-eyebrow::before{width:.42rem;height:.42rem;flex:0 0 .42rem;border-radius:50%;background:var(--hc-accent);box-shadow:0 0 0 .2rem rgba(240,124,33,.1);content:""}
.panel-card__header{background:linear-gradient(135deg,rgba(248,251,252,.92),rgba(255,249,244,.68))}
.form-section+.form-section{position:relative;border-top-color:transparent}
.form-section+.form-section::before{position:absolute;top:0;right:0;left:0;height:2px;background:linear-gradient(90deg,rgba(240,124,33,.42),rgba(9,49,70,.1) 42%,transparent 88%);content:""}
.page-header__actions .btn-primary,.page-header>.btn-primary{box-shadow:0 .45rem 1rem rgba(9,49,70,.12)}
.page-header__actions .btn-primary:hover,.page-header>.btn-primary:hover{box-shadow:0 .65rem 1.25rem rgba(9,49,70,.16)}

/* Final subtle polish for shared UI components */
::selection{background:rgba(240,124,33,.24);color:var(--hc-primary)}
html{scrollbar-color:rgba(9,49,70,.32) transparent;scrollbar-width:thin}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{border:3px solid transparent;border-radius:999px;background:rgba(9,49,70,.3);background-clip:padding-box}
::-webkit-scrollbar-thumb:hover{background:rgba(240,124,33,.58);background-clip:padding-box}
.form-control::placeholder{color:#8b9aa4;opacity:.82}
.form-control[readonly],.form-control:disabled,.form-select:disabled{background:linear-gradient(135deg,#f5f8fa,#edf2f5);color:#526773}
.form-control[type=file]::file-selector-button{min-height:calc(2.875rem - 4px);margin:-.375rem .75rem -.375rem -.75rem;border:0;border-right:2px solid #d8e1e7;background:#eef3f6;color:var(--hc-primary);font-weight:700;transition:background-color 180ms ease,color 180ms ease}
.form-control[type=file]:hover::file-selector-button{background:rgba(240,124,33,.13);color:#a84e09}
.invalid-feedback{margin-top:.42rem;font-size:.78rem;font-weight:650}
.modal-content{overflow:hidden;border:2px solid rgba(9,49,70,.13);border-radius:1.1rem;box-shadow:0 1.5rem 4rem rgba(9,49,70,.2)}
.modal-header{border-bottom:2px solid rgba(9,49,70,.07);background:linear-gradient(135deg,#f8fbfc,#fff7f1)}
.modal-footer{border-top:2px solid rgba(9,49,70,.07);background:#f8fafb}
.btn-close{border-radius:.55rem;transition:background-color 180ms ease,box-shadow 180ms ease,transform 180ms ease}
.btn-close:hover{background-color:rgba(240,124,33,.12);box-shadow:0 0 0 .2rem rgba(240,124,33,.08);transform:rotate(4deg)}
hr{border-color:rgba(9,49,70,.13);opacity:1}

/* Brand alignment and mobile table refinement after visual review */
.btn-outline-primary{border-color:rgba(9,49,70,.46);background:#fff;color:var(--hc-primary)}
.btn-outline-primary:hover,.btn-outline-primary:focus-visible{border-color:var(--hc-primary);background:var(--hc-primary);color:#fff}
.crud-action-btn.btn-outline-primary{border-color:rgba(240,124,33,.58);background:#fffaf6;color:#bd590e}
.crud-action-btn.btn-outline-primary:hover,.crud-action-btn.btn-outline-primary:focus-visible{border-color:var(--hc-accent);background:var(--hc-accent);color:#fff}
.table tbody td[data-label="Valor"],.data-table tbody td[data-label="Competência"],.data-table tbody td[data-label="CNPJ"],.data-table tbody td[data-label="CPF/CNPJ"]{font-variant-numeric:tabular-nums;white-space:nowrap}
@media(max-width:767.98px){
.data-table tbody td{display:grid;grid-template-columns:minmax(6.5rem,38%) minmax(0,1fr);align-items:start;min-height:2.2rem;padding:.48rem 0;gap:.18rem 1rem;overflow-wrap:anywhere;text-align:right!important}
.data-table tbody td::before{grid-column:1;grid-row:1;align-self:start;flex:none;width:auto}
.data-table tbody td>*{grid-column:2;min-width:0;max-width:100%;margin-left:auto}
.data-table tbody td .small{white-space:normal;overflow-wrap:anywhere}
.data-table tbody td[data-label="Ação"] .crud-action-btn{justify-self:end}
}

/* Toggle card inset - 2026-09 */
.toggle-card.form-switch .form-check-input {
    margin-left: -2rem;
}

/* Responsive two-line login heading - 2026-09 */
.login-visual {
    container-type: inline-size;
}
.login-visual h1 {
    max-width: none;
    font-size: clamp(1.55rem, 3.35vw, 4.25rem);
    font-size: clamp(1.55rem, 7.2cqi, 4.25rem);
}
.login-visual h1 > span {
    display: block;
    white-space: nowrap;
}

.sem-separador::before{display:none}

form[data-prevent-double-submit] > .form-card{margin-bottom:3rem!important;padding-top:1.5rem!important}form[data-prevent-double-submit] > .form-card:first-child{padding-top:0!important}@media(max-width:767.98px){form[data-prevent-double-submit] > .form-card{margin-bottom:2rem!important;padding-top:1rem!important}form[data-prevent-double-submit] > .form-card:first-child{padding-top:0!important}}

.create-record-link{width:max-content;margin-top:.45rem;padding:.25rem .55rem;border:1px solid rgba(9,49,70,.22);border-radius:999px;background:#eaf4f7;font-size:.76rem;font-weight:400;line-height:1.2;text-decoration:none}.create-record-link:hover{border-color:var(--hc-accent);background:#fff3e8}.select-autocomplete{position:relative}.select-autocomplete__select{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.select-autocomplete__results{position:absolute;z-index:30;top:calc(100% + .3rem);right:0;left:0;max-height:17rem;overflow-y:auto;border:1px solid #c9d7df;border-radius:.65rem;background:#fff;box-shadow:0 .8rem 1.8rem rgba(9,49,70,.16)}.select-autocomplete__option{display:block;width:100%;padding:.7rem .85rem;border:0;border-bottom:1px solid #edf1f3;background:#fff;color:var(--hc-primary);text-align:left}.select-autocomplete__option:hover,.select-autocomplete__option:focus{background:#eaf4f7;outline:0}.select-autocomplete__empty{padding:.75rem .85rem;color:#667584;font-size:.9rem}
.issuer-summary{height:var(--hc-control-height);min-height:var(--hc-control-height);padding:.375rem .9rem}

.form-card:has(.select-autocomplete:focus-within){z-index:50}.party-block:has(.select-autocomplete:focus-within){z-index:60}

form[data-prevent-double-submit] .form-card .form-text{font-size:.82rem;font-style:italic}

.required-marker{color:#dc2626;font-weight:700}

.nfse-steps li.completed{color:#176b4d;border-color:#22a675;background:rgba(34,166,117,.07)}.nfse-steps li.completed span{background:#22a675;color:#fff}


.nfse-tracking-overview{
    row-gap:1.25rem;
}
.nfse-tracking-status{
    padding:1.4rem 0!important;
}
.nfse-tracking-identification .definition-list{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:.75rem;
    margin-top:1rem;
}
.nfse-tracking-identification .definition-list>div{
    display:block;
    min-width:0;
    padding:.85rem 1rem;
    border:1px solid #dfe7ec;
    border-radius:.75rem;
    background:linear-gradient(145deg,#fff 0%,#f8fafb 100%);
}
.nfse-tracking-identification .definition-list dd{
    margin-top:.3rem;
}
@media(max-width:991.98px){
    .nfse-tracking-identification .definition-list{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:575.98px){
    .nfse-tracking-identification .definition-list{grid-template-columns:1fr}
}
/* Espaçamento padrão dos cartões de formulário. */
.form-card{
    margin-top:2rem!important;
    padding-top:1.25rem!important;
}
@media(max-width:767.98px){
    .form-card{
        margin-top:1.5rem!important;
        padding-top:1rem!important;
    }
}
/* Tabela de notas recentes em largura total no painel da dashboard. */
.dashboard-recent-panel{
    padding:0;
    overflow:hidden;
}
.dashboard-recent-panel .dashboard-panel__header{
    padding:1.25rem 1.3rem;
    border-bottom:3px solid var(--hc-accent);
}
.dashboard-recent-panel>.table-responsive{
    margin:0;
    border:0;
    border-radius:0;
    box-shadow:none;
}
.dashboard-recent-panel .dashboard-recent-table{
    width:100%;
    margin:0;
}
.dashboard-recent-panel .dashboard-recent-table thead th{
    padding:1rem 1.3rem;
    border-bottom:1px solid #d8e1e7;
    background:#f1f5f7;
}
.dashboard-recent-panel .dashboard-recent-table tbody td{
    padding:1rem 1.3rem;
}
.dashboard-recent-panel .dashboard-empty{
    padding:1.3rem;
}
@media(max-width:575.98px){
    .dashboard-recent-panel .dashboard-panel__header{padding:1rem}
    .dashboard-recent-panel .dashboard-recent-table tr{padding:.85rem 1rem}
    .dashboard-recent-panel .dashboard-recent-table tbody td{padding:.35rem 0}
}
/* Respiro dos controles na área empresarial das configurações globais. */
.settings-company-profile-card .toggle-card{
    padding-top:1.15rem!important;
    padding-bottom:1.15rem!important;
}
.settings-company-profile-card .toggle-card .form-check-input,
.settings-company-profile-card .settings-user-management-switch .form-check-input{
    margin-right:.75rem;
}
.settings-company-profile-card .toggle-card .form-check-label,
.settings-company-profile-card .settings-user-management-switch .form-check-label{
    line-height:1.45;
}
.settings-company-profile-card .settings-user-management-switch{
    display:flex;
    align-items:flex-start;
    gap:0;
}
.settings-company-profile-card .settings-user-management-switch .form-check-input{
    flex:0 0 auto;
    margin-top:.18rem;
    margin-left:0!important;
}
/* Configurações globais: hierarquia, estados e agrupamento visual. */
.settings-page-form{
    padding-bottom:1rem;
}
.settings-page-form>.col-12,
.settings-page-form>[class*="col-xl-"]{
    min-width:0;
}
.settings-section{
    position:relative;
    overflow:hidden;
    border-color:#dce6eb;
    box-shadow:0 .8rem 2rem rgba(9,49,70,.055);
}
.settings-section::before{
    position:absolute;
    top:0;
    right:0;
    left:0;
    height:3px;
    background:linear-gradient(90deg,var(--hc-accent),rgba(240,124,33,.18));
    content:"";
}
.settings-section>h2,
.settings-section>div>h2{
    color:var(--hc-primary-dark);
}
.settings-section>.text-secondary,
.settings-section>p.text-secondary{
    max-width:70rem;
    line-height:1.55;
}
.settings-support-card .mb-3{
    margin-bottom:1.15rem!important;
}
.settings-admin-card{
    display:flex;
    flex-direction:column;
}
.settings-admin-card .row{
    margin-top:.4rem!important;
}
.settings-admin-card>.btn{
    align-self:flex-start;
    margin-top:auto!important;
}
.settings-company-profile-card .toggle-card{
    position:relative;
    min-height:6.6rem;
    border-color:#d9e3e8!important;
    background:#f8fafb;
    cursor:pointer;
    transition:border-color .18s ease,background-color .18s ease,box-shadow .18s ease,transform .18s ease;
}
.settings-company-profile-card .toggle-card:hover{
    border-color:#9fb5c1!important;
    background:#fff;
    transform:translateY(-1px);
}
.settings-company-profile-card .toggle-card:has(.form-check-input:checked){
    border-color:rgba(240,124,33,.72)!important;
    background:#fff8f2;
    box-shadow:0 .35rem .9rem rgba(240,124,33,.08);
}
.settings-company-profile-card .alert-info{
    padding:1rem 1.15rem;
    line-height:1.55;
}
.settings-company-profile-card .settings-user-management-switch{
    padding:.9rem 1rem;
    border:1px solid #dce6eb;
    border-radius:.75rem;
    background:#f8fafb;
}
.settings-company-profile-card .settings-user-management-switch+.form-text{
    margin-top:.55rem;
    padding-left:.15rem;
    line-height:1.5;
}
.settings-spedy-card>.alert{
    padding:1rem 1.15rem;
}
.settings-credentials-grid{
    margin-top:.25rem;
}
.settings-credential-card{
    height:100%;
    padding:1.25rem;
    border:1px solid #dce6eb;
    border-radius:.85rem;
    background:linear-gradient(145deg,#fff,#f8fafb);
}
.settings-credential-card--sandbox{
    border-top:3px solid #2f83a3;
}
.settings-credential-card--production{
    border-top:3px solid var(--hc-accent);
}
.settings-credential-card h3{
    margin-bottom:.35rem;
    color:var(--hc-primary);
    font-weight:800;
}
.settings-mail-card .row{
    padding:1.1rem;
    border:1px solid #e0e8ec;
    border-radius:.85rem;
    background:#f8fafb;
}
.settings-save-bar{
    position:sticky;
    z-index:30;
    bottom:1rem;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    padding:.85rem 1rem!important;
    border:1px solid rgba(9,49,70,.15);
    border-radius:.85rem;
    background:rgba(255,255,255,.94);
    box-shadow:0 1rem 2.5rem rgba(9,49,70,.14);
    color:#657884;
    font-size:.82rem;
    backdrop-filter:blur(12px);
}
.settings-save-bar .btn{
    min-width:12rem;
}
@media(max-width:767.98px){
    .settings-section{padding:1.2rem!important}
    .settings-company-profile-card .toggle-card{min-height:auto}
    .settings-mail-card .row{padding:.75rem}
    .settings-save-bar{bottom:.5rem;align-items:stretch;flex-direction:column}
    .settings-save-bar .btn{width:100%}
}
/* Aviso municipal compacto na configuração fiscal. */
.municipal-requirement-badge{
    gap:.28rem;
    padding:.2rem .42rem;
    font-size:.52rem;
    line-height:1.15;
    vertical-align:.12rem;
}
.municipal-requirement-badge::before{
    width:.32rem;
    height:.32rem;
}
#certificate-help{
    font-size:.72rem;
    font-style:italic;
    line-height:1.35;
}

.access-email-switch{
    display:flex;
    align-items:center;
    min-height:2rem;
    padding-left:0;
}
.access-email-switch .form-check-input{
    flex:0 0 auto;
    margin:.05rem .75rem 0 0!important;
}

/* Mantém as listas de autocomplete acima dos campos fiscais seguintes. */
.select-autocomplete:focus-within{
    z-index:100;
}
.form-card .row:has(.select-autocomplete:focus-within),
.form-card [class*="col-"]:has(.select-autocomplete:focus-within),
.form-card .tax-option-block:has(.select-autocomplete:focus-within),
.form-card [data-nfse-panel]:has(.select-autocomplete:focus-within){
    position:relative;
    z-index:100;
}
.select-autocomplete__results{
    z-index:110;
}
/* Ícones dos títulos de seção com contraste na cor primária. */
.form-section-number{
    background:transparent;
    color:var(--hc-primary);
}

/* Grupos recolhíveis no menu lateral. */
.sidebar-group--collapsible .sidebar-group__title{
    width:100%;
    border:0;
    background:transparent;
    text-align:left;
}
.sidebar-group--collapsible .sidebar-group__title[aria-expanded="false"] .sidebar-group__chevron{
    transform:rotate(0deg);
}
.sidebar-group--collapsible .sidebar-group__title[aria-expanded="true"] .sidebar-group__chevron{
    transform:rotate(90deg);
}

/* Alinhamento horizontal dos controles do certificado digital. */
.certificate-submit-column{
    padding-top:2rem;
}
@media(max-width:991.98px){
    .certificate-submit-column{
        padding-top:0;
    }
}
/* Identificação mascarada e testes das credenciais globais. */
.credential-preview code{
    color:var(--hc-primary);
    font-size:.78rem;
    letter-spacing:.03em;
}
.settings-test-panel{
    display:flex;
    align-items:flex-end;
    gap:1rem;
    max-width:48rem;
    padding:1rem;
    border:1px solid var(--hc-border);
    border-radius:.85rem;
    background:#f8fafb;
}
.settings-test-panel .btn{
    flex:0 0 auto;
}
@media(max-width:767.98px){
    .settings-test-panel{
        align-items:stretch;
        flex-direction:column;
    }
    .settings-test-panel .btn{
        width:100%;
    }
}

/* Ajuda contextual dos parâmetros fiscais. */
.field-info-button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:1rem;
    height:1rem;
    padding:0;
    border:0;
    border-radius:50%;
    background:transparent;
    color:#577484;
    line-height:1;
    vertical-align:-.12rem;
    cursor:help;
    position:absolute;margin-left:-20px;
}

.field-info-button.ms-1{
margin-left: 11px!important;
}



.field-info-button svg{
    display:block;
    width:1rem;
    height:1rem;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
}
.field-info-button:hover,
.field-info-button:focus-visible{
    border-color:var(--hc-primary);
    background:var(--hc-primary);
    color:#fff;
    outline:0;
}
.field-info-button:focus-visible{
    box-shadow:0 0 0 .2rem rgba(9,49,70,.18);
}
.field-info-tooltip .tooltip-inner{
    max-width:22rem;
    padding:.7rem .8rem;
    text-align:left;
    line-height:1.4;
}
/* Mantém o Tom Select aberto acima dos botões e das seções seguintes. */
.surface-card:has(.ts-wrapper.dropdown-active),
.panel-card:has(.ts-wrapper.dropdown-active),
.form-card:has(.ts-wrapper.dropdown-active){
    z-index:120;
    overflow:visible;
}
.surface-card section:has(.ts-wrapper.dropdown-active),
.panel-card .form-section:has(.ts-wrapper.dropdown-active),
.form-card .form-section:has(.ts-wrapper.dropdown-active),
.row:has(.ts-wrapper.dropdown-active),
[class*="col-"]:has(.ts-wrapper.dropdown-active){
    position:relative;
    z-index:130;
}
.ts-wrapper.dropdown-active{
    z-index:140;
}
.ts-wrapper.dropdown-active .ts-dropdown{
    z-index:150!important;
}
/* Tom Select: campos fiscais em uma única linha */
.ts-wrapper.single .ts-control{
    flex-wrap:nowrap;
    align-items:center;
    min-height:2.75rem;
    overflow:hidden;
}
.ts-wrapper.single .ts-control .item{
    display:block;
    font-size:calc(1rem - 3px);
    min-width:0;
    max-width:calc(100% - 2.75rem);
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
/* Destaca o valor selecionado e a opção ativa no Tom Select. */
.ts-wrapper.single.has-items .ts-control .item{
    color:#b45309;
}
.ts-dropdown .option.selected,
.ts-dropdown .option.active{
    background:#fff3e8;
    color:#b45309;
}
.ts-wrapper.single .ts-control > input{
    min-width:0!important;
}
.ts-dropdown .option{
    overflow:hidden;
    font-size:calc(1rem - 3px);
    text-overflow:ellipsis;
    white-space:nowrap;
}

/* Aproxima o filtro de competência da saudação apenas em telas largas. */
@media (min-width: 1200px){
    .dashboard-page > .dashboard-period{
        margin-top:-5rem;
    }
}
@media (max-width: 1199.98px){
    .dashboard-page > .dashboard-period{
        margin-top:0;
    }
}
