:root {
    --background: #f5f5f2;
    --surface: #ffffff;
    --text: #252525;
    --muted: #686868;
    --border: #ddddda;
    --primary: #1D3A4D;
    --primary-strong: #142B3A;
    --primary-soft: #E8EEF1;
    --danger: #9b2c2c;

    /* Identidade IUNOZ */
    --iunoz-blue: #1D3A4D;
    --iunoz-terra: #CF6B45;
    --iunoz-terra-light: #EFD7C7;
    --iunoz-neutral: #F2EBE4;
    --iunoz-green: #B1BC8D;

    --radius: 14px;
    --shadow: 0 8px 28px rgba(0, 0, 0, 0.08);

    --content-width: 980px;
    --bottom-nav-height: 74px;

    /* UX transversal — ações e navegação */
    --action-height-min: 44px;
    --action-height-default: 48px;
    --action-padding-inline: 18px;
    --action-gap: 8px;
    --action-font-size: 0.95rem;
    --action-line-height: 1.2;
    --action-radius: 10px;
}

* {
    box-sizing: border-box;
}

html {
    font-family:
        system-ui,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        sans-serif;

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

body {
    margin: 0;
}

a {
    color: inherit;
}

button,
input {
    font: inherit;
}

button,
a {
    -webkit-tap-highlight-color: transparent;
}

/* Login */

.auth-body {
    min-height: 100vh;
    display: flex;
    background:
        linear-gradient(180deg, rgba(242, 235, 228, .84), rgba(245, 245, 242, .96));
}

.auth-main {
    width: 100%;
    max-width: 480px;
    margin: auto;
    padding: 28px 24px;
}

.auth-card {
    background: rgba(255, 255, 255, .96);
    border: 1px solid rgba(29, 58, 77, .14);
    border-radius: 18px;
    padding: 32px;
    box-shadow: 0 12px 38px rgba(29, 58, 77, .08);
}

.auth-brand {
    display: flex;
    justify-content: center;
    margin-bottom: 20px;
}

.auth-brand__logo {
    display: block;
    width: min(100%, 300px);
    height: auto;
}

.auth-intro {
    margin-top: 0;
    margin-bottom: 28px;
    color: var(--muted);
    text-align: center;
    line-height: 1.5;
}

.auth-card .button--primary {
    width: 100%;
}

@media (max-width: 520px) {
    .auth-main {
        padding: 20px 16px;
    }

    .auth-card {
        padding: 26px 20px;
        border-radius: 16px;
    }

    .auth-brand__logo {
        width: min(100%, 260px);
    }
}

/* Formulários */

.form-stack {
    display: grid;
    gap: 20px;
}

.field {
    display: grid;
    gap: 8px;
}

.field label {
    font-weight: 650;
}

.field input {
    min-height: 48px;
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 0 14px;
    background: #fff;
}

.field input:focus {
    outline: 3px solid var(--primary-soft);
    border-color: var(--primary);
}

.button {
    min-height: var(--action-height-default);
    border-radius: var(--action-radius);
    border: 0;
    padding: 0 var(--action-padding-inline);
    font-size: var(--action-font-size);
    line-height: var(--action-line-height);
    font-weight: 700;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--action-gap);
    text-align: center;
    text-decoration: none;
    vertical-align: middle;
}

.button--compact {
    min-height: var(--action-height-min);
    padding-inline: 14px;
    font-size: 0.9rem;
}

.button--tertiary {
    min-height: var(--action-height-min);
    padding-inline: 10px;
    background: transparent;
    color: var(--primary-strong);
    border: 1px solid transparent;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.button--tertiary:hover,
.button--tertiary:focus-visible {
    background: var(--primary-soft);
    text-decoration: none;
}

.ux-page-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
}

.ux-page-heading > div {
    min-width: 0;
}

.ux-return-link {
    min-height: var(--action-height-min);
    display: inline-flex;
    align-items: center;
    padding: 0 8px;
    flex: 0 0 auto;
    color: var(--primary-strong);
    font-size: 0.9rem;
    font-weight: 650;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.ux-return-link:hover,
.ux-return-link:focus-visible {
    text-decoration: none;
}

.ux-action-group {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}

.ux-action-group--end {
    justify-content: flex-end;
}

.ux-action-note {
    margin: 0;
    color: var(--muted);
    font-size: 0.9rem;
}

@media (max-width: 620px) {
    .ux-page-heading {
        flex-direction: column;
        gap: 8px;
    }

    .ux-return-link {
        order: -1;
        padding-left: 0;
    }

    .ux-action-group {
        align-items: stretch;
        flex-direction: column;
    }

    .ux-action-group .button {
        width: 100%;
    }
}

.button--primary {
    background: var(--primary);
    color: #fff;
}

.button--secondary {
    background: var(--primary-soft);
    color: var(--primary-strong);
}

.button--primary:hover,
.button--primary:focus-visible {
    background: var(--primary-strong);
}

.button--secondary:hover,
.button--secondary:focus-visible {
    background: #DCE6EB;
}

/* Cabeçalho institucional — RF01.T06 + aplicação da identidade IUNOZ */

.app-header {
    background: var(--iunoz-neutral);
    border-bottom: 1px solid rgba(29, 58, 77, .16);
    padding: 10px 16px;

    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px 16px;
    align-items: center;

    position: sticky;
    top: 0;
    z-index: 20;
}

.app-header__brand {
    min-width: 0;
}

.app-header__brand a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    color: var(--iunoz-blue);
    text-decoration: none;
}

.app-header__iunoz-logo {
    display: block;
    width: clamp(112px, 14vw, 150px);
    height: auto;
    max-height: 40px;
}

.app-header__unit {
    grid-column: 1 / -1;
    min-width: 0;

    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 2px;

    padding: 4px 0;
}

.app-header__unit-label {
    color: var(--muted);
    font-size: .72rem;
    line-height: 1.2;
}

.app-header__unit-name {
    min-width: 0;
    overflow: hidden;
    color: var(--iunoz-blue);
    font-size: .98rem;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.app-header__institutional {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
}

.app-header__canela-logo {
    display: block;
    width: clamp(116px, 18vw, 164px);
    height: auto;
    max-height: 48px;
    object-fit: contain;
}

.app-header__institutional form {
    margin: 0;
}

.app-header__logout {
    border: 0;
    padding: 6px 0;
    background: transparent;
    color: var(--muted);
    font-size: .78rem;
    text-decoration: underline;
    text-underline-offset: 2px;
    cursor: pointer;
}

.app-header__logout:hover,
.app-header__logout:focus-visible {
    color: var(--iunoz-terra);
}

.app-header__brand a:focus-visible,
.app-header__logout:focus-visible {
    outline: 3px solid rgba(29, 58, 77, .20);
    outline-offset: 3px;
}

/* Conteúdo */

.app-main {
    width: min(
        calc(100% - 32px),
        var(--content-width)
    );

    margin: 0 auto;

    padding:
        28px 0
        calc(var(--bottom-nav-height) + 38px);
}

.page-heading {
    margin-bottom: 28px;
}

.page-heading h1 {
    margin: 5px 0 8px;
    font-size: clamp(1.8rem, 7vw, 2.5rem);
}

.page-heading p {
    max-width: 680px;
    line-height: 1.5;
    color: var(--muted);
}

.eyebrow {
    margin: 0;
    font-size: 0.82rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--primary) !important;
}

/* Cards */

.home-grid {
    display: grid;
    gap: 14px;
}

.summary-card {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 20px;

    display: grid;
    gap: 8px;
}

.summary-card__label {
    font-weight: 750;
}

.summary-card__value {
    font-size: 2rem;
}

.summary-card__help {
    color: var(--muted);
    line-height: 1.4;
}

.unit-list {
    display: grid;
    gap: 14px;
}

.unit-card {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 18px;

    display: grid;
    gap: 18px;
}

.unit-card h2 {
    margin: 0 0 10px;
    font-size: 1.15rem;
}

.unit-card__status {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.badge {
    display: inline-flex;
    background: var(--primary-soft);
    border-radius: 999px;
    padding: 5px 9px;
    font-size: 0.8rem;
    font-weight: 700;
}

.message {
    padding: 14px 16px;
    border-radius: 10px;
    margin-bottom: 20px;
}

.message--error {
    background: #fff0f0;
    color: var(--danger);
    border: 1px solid #edcaca;
}

/* Navegação inferior */

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

    height: var(--bottom-nav-height);

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

    display: grid;
    grid-template-columns:
        repeat(2, 1fr)
        68px
        repeat(2, 1fr);

    align-items: stretch;

    z-index: 30;
}

.bottom-nav__item {
    text-decoration: none;
    color: var(--muted);

    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;

    gap: 3px;

    font-size: 0.72rem;
    font-weight: 650;
}

.bottom-nav__item.is-active {
    color: var(--primary);
}

.bottom-nav__icon {
    width: 23px;
    height: 23px;
}

.bottom-nav__icon svg {
    width: 100%;
    height: 100%;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.bottom-nav__add {
    width: 58px;
    height: 58px;

    align-self: center;
    justify-self: center;

    margin-top: -25px;

    border-radius: 50%;
    border: 5px solid var(--background);

    background: var(--primary);
    color: #fff;

    font-size: 2rem;
    line-height: 1;

    cursor: pointer;

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

/* Menu + */

.quick-backdrop {
    position: fixed;
    inset: 0;

    background: rgba(0, 0, 0, 0.38);

    z-index: 40;
}

.quick-sheet {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;

    background: var(--surface);

    border-radius: 20px 20px 0 0;

    padding:
        10px 18px
        calc(22px + env(safe-area-inset-bottom));

    max-height: 80vh;
    overflow-y: auto;

    transform: translateY(105%);

    transition:
        transform 180ms ease;

    z-index: 50;
}

.quick-sheet.is-open {
    transform: translateY(0);
}

.quick-sheet__handle {
    width: 42px;
    height: 5px;

    margin: 0 auto 12px;

    background: var(--border);
    border-radius: 999px;
}

.quick-sheet__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
}

.quick-sheet__header h2 {
    font-size: 1.25rem;
}

.quick-sheet__close {
    width: 44px;
    height: 44px;

    border: 0;
    background: transparent;

    font-size: 1.8rem;
    cursor: pointer;
}

.quick-actions {
    display: grid;
    gap: 10px;
}

.quick-actions a {
    min-height: 50px;

    display: flex;
    align-items: center;

    padding: 0 15px;

    background: var(--primary-soft);
    border-radius: 10px;

    text-decoration: none;
    font-weight: 750;
}

.quick-more {
    margin-top: 24px;
    border-top: 1px solid var(--border);
    padding-top: 18px;
}

.quick-more h3 {
    margin-top: 0;
}

.quick-more__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}

.quick-more__grid a {
    min-height: 45px;

    display: flex;
    align-items: center;

    padding: 0 12px;

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

    text-decoration: none;
}

.quick-actions-open {
    overflow: hidden;
}

@media (max-width: 520px) {
    .app-header {
        gap: 8px 12px;
    }

    .app-header__iunoz-logo {
        width: 108px;
        max-height: 34px;
    }

    .app-header__institutional {
        gap: 8px;
    }

    .app-header__canela-logo {
        width: 106px;
        max-height: 38px;
    }

    .app-header__unit {
        padding: 2px 0;
    }

    .app-header__unit-name {
        font-size: .9rem;
    }
}

/* Desktop */

@media (min-width: 720px) {

    .app-header {
        grid-template-columns:
            minmax(160px, .8fr)
            minmax(300px, 1.35fr)
            minmax(210px, .85fr);
        gap: 18px 28px;
        padding: 10px 24px;
    }

    .app-header__unit {
        grid-column: 2;
        justify-self: center;
        width: min(100%, 560px);
        text-align: center;
    }

    .app-header__institutional {
        grid-column: 3;
    }

    .home-grid {
        grid-template-columns:
            repeat(3, 1fr);
    }

    .unit-card {
        grid-template-columns:
            1fr auto;

        align-items: center;
    }

    .bottom-nav {
        left: 50%;
        right: auto;

        width: min(620px, 100%);

        transform: translateX(-50%);

        border-left: 1px solid var(--border);
        border-right: 1px solid var(--border);

        border-radius: 16px 16px 0 0;
    }

    .quick-sheet {
        left: 50%;
        right: auto;

        width: min(540px, 100%);

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

    .quick-sheet.is-open {
        transform:
            translate(-50%, 0);
    }
}

/* Produtos */

.product-list {
    display: grid;
    gap: 14px;
}

.product-card {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 18px;

    display: grid;
    gap: 18px;
}

.product-card.is-inactive {
    opacity: 0.68;
}

.product-card__heading {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px 12px;
}

.product-card__heading h2 {
    margin: 0;
    font-size: 1.15rem;
}

.product-card__main {
    display: grid;
    gap: 8px;
}

.product-card__main p {
    margin: 0;
    line-height: 1.45;
}

.product-card__meta {
    color: var(--muted);
    font-size: 0.92rem;
}

.product-card__price {
    margin-top: 3px !important;
}

.product-card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.product-form {
    max-width: 760px;
}

.field textarea,
.field select {
    width: 100%;
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 12px 14px;
    background: #fff;
    font: inherit;
}

.field textarea {
    min-height: 110px;
    resize: vertical;
}

.field select {
    min-height: 48px;
}

.field textarea:focus,
.field select:focus {
    outline: 3px solid var(--primary-soft);
    border-color: var(--primary);
}

.field small {
    color: var(--muted);
    line-height: 1.4;
}

.form-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 4px;
}

.button-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
}

.button--ghost {
    background: transparent;
    color: var(--text);
    border: 1px solid var(--border);
}

.empty-state {
    margin-top: 18px;
    padding: 24px;
    border: 1px dashed var(--border);
    border-radius: var(--radius);
    background: var(--surface);
}

.empty-state h2 {
    margin-top: 0;
}

.empty-state p {
    margin-bottom: 0;
    color: var(--muted);
}

@media (min-width: 720px) {
    .product-card {
        grid-template-columns: 1fr auto;
        align-items: start;
    }

    .product-card__actions {
        justify-content: flex-end;
    }
}

/* Características das variações */

.product-detail-section {
    max-width: 760px;
    margin-top: 38px;
    padding-top: 28px;
    border-top: 1px solid var(--border);
}

.product-detail-section__heading {
    margin-bottom: 20px;
}

.product-detail-section__heading h2 {
    margin: 5px 0 8px;
    font-size: 1.35rem;
}

.product-detail-section__heading p {
    color: var(--muted);
    line-height: 1.5;
}

.attribute-list {
    display: grid;
    gap: 10px;
    margin-bottom: 20px;
}

.attribute-row {
    min-height: 62px;

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

    gap: 14px;

    padding: 10px 14px;

    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 10px;
}

.attribute-row.is-inactive {
    opacity: 0.62;
}

.attribute-add-form {
    display: grid;
    gap: 12px;

    margin-top: 20px;
    padding: 18px;

    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius);
}

.empty-state--compact {
    padding: 16px;
    margin-top: 0;
    margin-bottom: 18px;
}

    gap: 8px;
}

.attribute-edit-form__input {
    flex: 1 1 180px;

    min-height: 44px;

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

    padding: 0 12px;

    background: #fff;
    font: inherit;
}

.attribute-edit-form__input:focus {
    outline: 3px solid var(--primary-soft);
    border-color: var(--primary);
}

/* Variações */

.variation-list {
    display: grid;
    gap: 12px;
}

.variation-card {
    display: grid;
    gap: 16px;

    padding: 16px;

    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius);
}

.variation-card.is-inactive {
    opacity: 0.62;
}

.variation-card__content {
    display: grid;
    gap: 8px;
}

.variation-card__heading {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px 10px;
}

.variation-card__heading h3 {
    margin: 0;
    font-size: 1.05rem;
}

.variation-card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.variation-values {
    display: grid;
    gap: 5px;

    margin: 4px 0;
}

.variation-values div {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}

.variation-values dt {
    font-weight: 700;
}

.variation-values dt::after {
    content: ":";
}

.variation-values dd {
    margin: 0;
}

.variation-card__price {
    margin: 3px 0 0;
}

.variation-card__inherited {
    font-size: 0.8rem;
    font-weight: 500;
    color: var(--muted);
}

.variation-attributes {
    margin: 0;

    padding: 18px;

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

    background: var(--surface);
}

.variation-attributes legend {
    padding: 0 6px;

    font-weight: 750;
}

.variation-attributes__help {
    margin-top: 0;
    margin-bottom: 18px;

    color: var(--muted);
    line-height: 1.4;
}

@media (min-width: 720px) {
    .variation-card {
        grid-template-columns: 1fr auto;
        align-items: start;
    }

    .variation-card__actions {
        justify-content: flex-end;
    }
}

/* Etapas do processo */

.stage-list {
    display: grid;
    gap: 12px;
}

.stage-card {
    display: grid;
    grid-template-columns: 42px 1fr;
    gap: 12px;

    padding: 16px;

    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius);
}

.stage-card.is-inactive {
    opacity: 0.62;
}

.stage-card__number {
    width: 38px;
    height: 38px;

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

    border-radius: 50%;

    background: var(--primary-soft);
    color: var(--primary-strong);

    font-weight: 800;
}

.stage-card__content {
    display: grid;
    gap: 7px;
}

.stage-card__content p {
    margin: 0;
    line-height: 1.45;
}

.stage-card__heading {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px 10px;
}

.stage-card__heading h3 {
    margin: 0;
    font-size: 1.05rem;
}

.stage-card__reference {
    color: var(--muted);
}

.stage-card__actions {
    grid-column: 2;

    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.stage-reference-grid {
    display: grid;
    gap: 20px;
}

@media (min-width: 720px) {
    .stage-card {
        grid-template-columns: 42px 1fr auto;
        align-items: start;
    }

    .stage-card__actions {
        grid-column: auto;
        justify-content: flex-end;
    }

    .stage-reference-grid {
        grid-template-columns: 1fr 1fr;
    }
}

/* Equipe padrão do produto */

.product-team-list {
    display: grid;
    gap: 12px;
    margin-bottom: 20px;
}

.product-team-card {
    display: grid;
    gap: 16px;

    padding: 16px;

    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius);
}

.product-team-card.is-inactive {
    opacity: 0.62;
}

.product-team-card__heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 10px;
}

.product-team-card__heading h3 {
    margin: 0;
    font-size: 1.05rem;
}

.product-team-card__heading p {
    margin: 5px 0 0;
}

.product-team-card__badges {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.product-team-edit-form {
    display: grid;
    gap: 14px;
}

.product-team-add-form {
    display: grid;
    gap: 14px;

    margin-top: 20px;
    padding: 18px;

    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius);
}

.product-team-add-form h3 {
    margin: 0;
}

.check-field {
    display: flex;
    align-items: center;
    gap: 10px;

    min-height: 44px;

    cursor: pointer;
}

.check-field input {
    width: 20px;
    height: 20px;
    flex: 0 0 20px;
}

@media (min-width: 720px) {
    .product-team-card {
        padding: 18px;
    }
}

/* Equipe por etapa */

.stage-team {
    margin-top: 18px;
    padding-top: 18px;

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

.stage-team__heading h4 {
    margin: 0 0 4px;
}

.stage-team__heading p {
    margin: 0 0 14px;
}

.stage-team__list {
    display: grid;
    gap: 12px;
}

.stage-team-member {
    display: grid;
    gap: 12px;

    padding: 14px;

    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius);
}

.stage-team-member.is-inactive {
    opacity: 0.62;
}

.stage-team-member__heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}

.stage-team-member__form {
    display: grid;
    gap: 12px;
}

.stage-team-add {
    display: grid;
    gap: 12px;

    margin-top: 16px;
    padding: 14px;

    border: 1px dashed var(--border);
    border-radius: var(--radius);
}

.stage-team-add h5 {
    margin: 0;
    font-size: 1rem;
}

.muted-text {
    color: var(--muted);
}

/* Materiais usados no produto */

.product-material-list {
    display: grid;
    gap: 12px;
    margin-bottom: 20px;
}

.product-material-card {
    display: grid;
    gap: 16px;

    padding: 16px;

    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius);
}

.product-material-card__heading h3 {
    margin: 0;
}

.product-material-card__heading p {
    margin: 5px 0 0;
}

.product-material-form {
    display: grid;
    gap: 14px;
}

.product-material-add-form {
    display: grid;
    gap: 14px;

    margin-top: 20px;
    padding: 18px;

    background: var(--surface);
    border: 1px dashed var(--border);
    border-radius: var(--radius);
}

.product-material-add-form h3 {
    margin: 0;
}

/* Estoque do produto */

.stock-summary {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    margin-bottom: 22px;
}

.stock-summary__card {
    display: grid;
    gap: 5px;

    padding: 16px;

    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius);
}

.stock-summary__card span {
    color: var(--muted);
    font-size: 0.9rem;
}

.stock-summary__card strong {
    font-size: 1.4rem;
}

.stock-block {
    display: grid;
    gap: 12px;
}

.stock-block h3 {
    margin: 0;
}

.product-lot-list {
    display: grid;
    gap: 12px;
}

.product-lot-card {
    display: grid;
    gap: 14px;

    padding: 16px;

    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius);
}

.product-lot-card__heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.product-lot-card__heading h4 {
    margin: 0;
}

.product-lot-card__heading p {
    margin: 5px 0 0;
}

.product-lot-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
}

.product-lot-grid div {
    display: grid;
    gap: 3px;
}

.product-lot-grid span {
    color: var(--muted);
    font-size: 0.88rem;
}

@media (min-width: 720px) {
    .stock-summary {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
    }

    .product-lot-grid {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
    }
}

.stock-detail-summary {
    display: flex;
    flex-wrap: wrap;
    gap: 18px;

    margin: -10px 0 24px;

    color: var(--muted);
    font-size: 0.9rem;
}

.stock-commitments {
    margin-top: 22px;
}

.stock-commitment-card {
    display: grid;
    gap: 6px;

    padding: 14px;

    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius);
}

.stock-commitment-card p {
    margin: 3px 0 0;
}

.material-characteristics-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
}

@media (min-width: 720px) {
    .material-characteristics-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }
}

/* A07.3A - Composição de materiais preparados */

.material-composition-list {
    display: grid;
    gap: 12px;
    margin-bottom: 20px;
}

.material-composition-card {
    display: grid;
    gap: 16px;

    padding: 16px;

    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius);
}

.material-composition-card__heading h3 {
    margin: 0;
}

.material-composition-card__heading p {
    margin: 5px 0 0;
}

.material-composition-form {
    display: grid;
    gap: 14px;
}

.material-composition-add-form {
    display: grid;
    gap: 14px;

    margin-top: 20px;
    padding: 18px;

    background: var(--surface);
    border: 1px dashed var(--border);
    border-radius: var(--radius);
}

.material-composition-add-form h3 {
    margin: 0;
}
/* A07.2 - Características dos materiais */

.material-characteristics-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
}

@media (min-width: 720px) {
    .material-characteristics-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }
}
/* A07.3A - Composição de materiais preparados */

.material-composition-list {
    display: grid;
    gap: 12px;
    margin-bottom: 20px;
}

.material-composition-card {
    display: grid;
    gap: 16px;

    padding: 16px;

    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius);
}

.material-composition-card__heading h3 {
    margin: 0;
}

.material-composition-card__heading p {
    margin: 5px 0 0;
}

.material-composition-form {
    display: grid;
    gap: 14px;
}

.material-composition-add-form {
    display: grid;
    gap: 14px;

    margin-top: 20px;
    padding: 18px;

    background: var(--surface);
    border: 1px dashed var(--border);
    border-radius: var(--radius);
}

.material-composition-add-form h3 {
    margin: 0;
}

/* A07.3B - Registro real de preparo */

.material-preparation-action {
    display: grid;
    gap: 16px;
    margin-top: 24px;
    padding: 18px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--surface);
}

.material-preparation-action h3,
.material-preparation-action p {
    margin: 0;
}

.material-preparation-action p {
    margin-top: 6px;
}

.material-preparation-history {
    display: grid;
    gap: 10px;
    margin-top: 22px;
}

.material-preparation-history h3 {
    margin: 0;
}

.material-preparation-history__item {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 8px 16px;
    padding: 12px 0;
    border-bottom: 1px solid var(--border);
}

.material-preparation-history__item > div {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 14px;
}

.material-preparation-form {
    display: grid;
    gap: 20px;
}

.material-preparation-grid {
    display: grid;
    gap: 14px;
}

.material-preparation-components {
    display: grid;
    gap: 14px;
}

.material-preparation-component {
    display: grid;
    gap: 14px;
    padding: 16px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--surface);
}

.material-preparation-component__heading h3,
.material-preparation-component__heading p {
    margin: 0;
}

.material-preparation-component__heading p {
    margin-top: 5px;
}

.material-preparation-quantity {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
}

.material-preparation-quantity span {
    white-space: nowrap;
}

@media (min-width: 720px) {
    .material-preparation-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .material-preparation-action {
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
    }
}
/* A07.4 - Estoque de materiais */

.material-stock-access {
    display: grid;
    gap: 16px;
}

.material-stock-access h2,
.material-stock-access p {
    margin: 0;
}

.material-stock-access p {
    margin-top: 6px;
}

.material-stock-heading {
    display: grid;
    gap: 16px;
}

.material-stock-summary {
    display: grid;
    gap: 12px;
    margin-bottom: 20px;
}

.material-stock-summary__main,
.material-stock-summary__secondary {
    display: grid;
    gap: 6px;
    padding: 18px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--surface);
}

.material-stock-summary__main strong {
    font-size: 1.8rem;
}

.material-stock-summary__secondary strong {
    font-size: 1.25rem;
}

.material-stock-lots,
.material-stock-movements {
    display: grid;
    gap: 12px;
}

.material-stock-lot {
    display: grid;
    gap: 16px;
    padding: 16px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--surface);
}

.material-stock-lot__heading {
    display: grid;
    gap: 12px;
}

.material-stock-lot__heading h3,
.material-stock-lot__heading p {
    margin: 0;
}

.material-stock-lot__heading p {
    margin-top: 5px;
}

.material-stock-lot__balance {
    display: grid;
    gap: 4px;
}

.material-stock-lot__details {
    display: grid;
    gap: 10px;
    margin: 0;
}

.material-stock-lot__details div {
    display: grid;
    gap: 3px;
}

.material-stock-lot__details dt {
    font-size: .85rem;
    opacity: .72;
}

.material-stock-lot__details dd {
    margin: 0;
}

.material-stock-movement {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    padding: 12px 0;
    border-bottom: 1px solid var(--border);
}

.material-stock-movement > div {
    display: grid;
    gap: 3px;
}

.material-stock-movement__positive,
.material-stock-movement__negative {
    white-space: nowrap;
}

@media (min-width: 720px) {
    .material-stock-access {
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
    }

    .material-stock-heading {
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: start;
    }

    .material-stock-summary {
        grid-template-columns: minmax(0, 2fr) minmax(180px, 1fr);
    }

    .material-stock-lot__heading {
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: start;
    }

    .material-stock-lot__details {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}
/* A08.1 - Compras */

.purchase-page-heading {
    display: grid;
    gap: 16px;
}

.purchase-list,
.purchase-items,
.purchase-detail-items,
.purchase-form {
    display: grid;
    gap: 14px;
}

.purchase-card {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    padding: 16px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--surface);
    color: inherit;
    text-decoration: none;
}

.purchase-card__main,
.purchase-card__side {
    display: grid;
    gap: 5px;
}

.purchase-card__side {
    text-align: right;
}

.purchase-form-grid,
.purchase-item-grid {
    display: grid;
    gap: 14px;
}

.purchase-items-heading {
    display: grid;
    gap: 14px;
}

.purchase-item {
    display: grid;
    gap: 14px;
    padding: 16px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--surface);
}

.purchase-item__heading,
.purchase-item__total,
.purchase-total,
.purchase-detail-item {
    display: flex;
    justify-content: space-between;
    gap: 14px;
}

.purchase-item__heading {
    align-items: center;
}

.purchase-item__total,
.purchase-total {
    padding-top: 12px;
    border-top: 1px solid var(--border);
}

.purchase-summary {
    display: grid;
    gap: 12px;
    margin-bottom: 20px;
}

.purchase-summary > div {
    display: grid;
    gap: 5px;
    padding: 16px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--surface);
}

.purchase-detail-item {
    padding: 14px 0;
    border-bottom: 1px solid var(--border);
}

.purchase-detail-item > div {
    display: grid;
    gap: 4px;
}

.purchase-next-step {
    display: grid;
    gap: 14px;
    margin-top: 20px;
    padding: 18px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--surface);
}

.purchase-next-step h2,
.purchase-next-step p {
    margin: 0;
}

.purchase-next-step p {
    margin-top: 6px;
}

.purchase-next-step__tag {
    font-size: .9rem;
    opacity: .72;
}

@media (min-width: 720px) {
    .purchase-page-heading {
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: start;
    }

    .purchase-form-grid,
    .purchase-item-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .purchase-form-grid__wide,
    .purchase-item-grid__wide,
    .purchase-item__total,
    .purchase-total {
        grid-column: 1 / -1;
    }

    .purchase-items-heading {
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: start;
    }

    .purchase-summary {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .purchase-next-step {
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
    }
}
/* A08.1B - UX de materiais e descontos */

.purchase-material-empty {
    display: grid;
    gap: 14px;
    margin-bottom: 18px;
    padding: 18px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--surface);
}

.purchase-material-empty p {
    margin: 6px 0 0;
}

.purchase-discount-input {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 78px;
    gap: 8px;
}

.purchase-item--invalid {
    border-width: 2px;
}

.purchase-values {
    display: grid;
    gap: 10px;
    margin: 0;
}

.purchase-values > div {
    display: flex;
    justify-content: space-between;
    gap: 16px;
}

.purchase-values dd {
    margin: 0;
    text-align: right;
}

@media (min-width: 720px) {
    .purchase-material-empty {
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
    }
}
/* A08.2 - Recebimento de materiais */

.purchase-heading-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.purchase-receipt-form,
.purchase-receipt-items,
.purchase-receipt-history {
    display: grid;
    gap: 14px;
}

.purchase-receipt-item {
    display: grid;
    gap: 14px;
    padding: 16px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--surface);
}

.purchase-receipt-item__heading > div {
    display: grid;
    gap: 4px;
}

.purchase-receipt-item__fields {
    display: grid;
    gap: 14px;
}

.purchase-receipt-quantity {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    align-items: center;
}

.purchase-receipt-quantity span {
    min-width: 42px;
}

.purchase-receipt-item__conversion {
    margin: 0;
    font-size: .9rem;
    opacity: .75;
}

.purchase-receipt-history__item {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    padding: 12px 0;
    border-bottom: 1px solid var(--border);
}

.purchase-receipt-history__item > div {
    display: grid;
    gap: 4px;
}

@media (min-width: 720px) {
    .purchase-receipt-item__fields {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
/* A08.3 - Situação e ciclo de vida da compra */

.purchase-card {
    display: block;
}

.purchase-card__body {
    display: grid;
    gap: 14px;
    width: 100%;
}

.purchase-card__top,
.purchase-card__footer {
    display: flex;
    justify-content: space-between;
    gap: 16px;
}

.purchase-card__materials {
    display: grid;
    gap: 7px;
    padding-top: 12px;
    border-top: 1px solid var(--border);
}

.purchase-card__material {
    display: flex;
    justify-content: space-between;
    gap: 14px;
}

.purchase-card__material span {
    text-align: right;
}

.purchase-card__footer {
    padding-top: 10px;
    font-size: .9rem;
    opacity: .78;
}

.purchase-status {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    padding: 4px 8px;
    border: 1px solid var(--border);
    border-radius: 999px;
    font-size: .82rem;
    font-weight: 600;
}

.purchase-status--recebida {
    opacity: .8;
}

.purchase-status--cancelada {
    opacity: .55;
}

.purchase-lifecycle-actions {
    display: grid;
    gap: 16px;
    margin-top: 20px;
    padding: 18px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--surface);
}

.purchase-lifecycle-actions h2,
.purchase-lifecycle-actions p {
    margin: 0;
}

.purchase-lifecycle-actions p {
    margin-top: 6px;
}

.purchase-lifecycle-actions__buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.purchase-lifecycle-actions__buttons form {
    margin: 0;
}

@media (max-width: 719px) {
    .purchase-card__top,
    .purchase-card__footer,
    .purchase-card__material {
        display: grid;
        gap: 6px;
    }

    .purchase-card__side,
    .purchase-card__material span {
        text-align: left;
    }
}

@media (min-width: 720px) {
    .purchase-lifecycle-actions {
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
    }

    .purchase-lifecycle-actions__buttons {
        justify-content: flex-end;
    }
}

/* T01.2 - Normalização de valores em composição e preparo */

.material-composition-form [data-value-mask],
.material-preparation-form [data-value-mask] {
    font-variant-numeric: tabular-nums;
}

/* T01.3 - Normalização de valores em Produtos */

.product-form [data-value-mask] {
    font-variant-numeric: tabular-nums;
}

/* T01.5 - Fechamento da normalização transversal de valores */

[data-value-mask] {
    font-variant-numeric: tabular-nums;
}

.purchase-discount-input [data-value-mask],
.purchase-receipt-quantity [data-value-mask] {
    text-align: right;
}

.product-form [data-value-mask],
.material-composition-form [data-value-mask],
.material-preparation-form [data-value-mask] {
    font-variant-numeric: tabular-nums;
}
/* A09.1 - Planejamento de produção */

.production-page-heading {
    align-items: flex-start;
}

.production-list,
.production-purpose-options {
    display: grid;
    gap: 12px;
}

.production-card {
    display: grid;
    gap: 12px;
    padding: 16px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--surface);
    color: inherit;
    text-decoration: none;
}

.production-card__top,
.production-card__summary,
.production-item-card {
    display: flex;
    justify-content: space-between;
    gap: 14px;
}

.production-card__top > div {
    display: grid;
    gap: 4px;
}

.production-card__summary {
    padding-top: 10px;
    border-top: 1px solid var(--border);
    font-size: .92rem;
}

.production-form {
    gap: 22px;
}

.production-form-section {
    display: grid;
    gap: 16px;
    padding: 18px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--surface);
}

.production-form-section h2,
.production-form-section p {
    margin: 0;
}

.production-purpose-option {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 12px;
    align-items: flex-start;
    padding: 14px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    cursor: pointer;
}

.production-purpose-option span {
    display: grid;
    gap: 4px;
}

.production-purpose-option input {
    margin-top: 4px;
}

.production-related-field[hidden],
[data-production-variation-field][hidden] {
    display: none;
}

.production-quantity-row,
.production-date-grid,
.production-summary-grid {
    display: grid;
    gap: 12px;
}

.production-unit-display {
    min-height: 44px;
    display: flex;
    align-items: center;
    padding: 0 12px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--background);
}

.production-summary-card {
    display: grid;
    gap: 6px;
    padding: 14px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--surface);
}

.production-item-card {
    align-items: center;
    padding: 14px 0;
    border-bottom: 1px solid var(--border);
}

.production-item-card > div {
    display: grid;
    gap: 4px;
}

.production-plan-details {
    display: grid;
    gap: 10px;
}

.production-plan-details p {
    margin: 0;
}

.production-next-step {
    display: grid;
    gap: 14px;
    margin-top: 22px;
    padding: 18px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--surface);
}

.production-next-step h2,
.production-next-step p {
    margin: 0;
}

@media (min-width: 720px) {
    .production-purpose-options {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
    }

    .production-quantity-row,
    .production-date-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .production-summary-grid {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
    }

    .production-next-step {
        grid-template-columns:
            minmax(0, 1fr) auto;
        align-items: center;
    }
}

/* A09.1 - Planejamento de produção */

.production-page-heading {
    align-items: flex-start;
}

.production-list,
.production-purpose-options {
    display: grid;
    gap: 12px;
}

.production-card {
    display: grid;
    gap: 12px;
    padding: 16px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--surface);
    color: inherit;
    text-decoration: none;
}

.production-card__top,
.production-card__summary,
.production-item-card {
    display: flex;
    justify-content: space-between;
    gap: 14px;
}

.production-card__top > div {
    display: grid;
    gap: 4px;
}

.production-card__summary {
    padding-top: 10px;
    border-top: 1px solid var(--border);
    font-size: .92rem;
}

.production-form {
    gap: 22px;
}

.production-form-section {
    display: grid;
    gap: 16px;
    padding: 18px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--surface);
}

.production-form-section h2,
.production-form-section p {
    margin: 0;
}

.production-purpose-option {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 12px;
    align-items: flex-start;
    padding: 14px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    cursor: pointer;
}

.production-purpose-option span {
    display: grid;
    gap: 4px;
}

.production-purpose-option input {
    margin-top: 4px;
}

.production-related-field[hidden],
[data-production-variation-field][hidden] {
    display: none;
}

.production-quantity-row,
.production-date-grid,
.production-summary-grid {
    display: grid;
    gap: 12px;
}

.production-unit-display {
    min-height: 44px;
    display: flex;
    align-items: center;
    padding: 0 12px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--background);
}

.production-summary-card {
    display: grid;
    gap: 6px;
    padding: 14px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--surface);
}

.production-item-card {
    align-items: center;
    padding: 14px 0;
    border-bottom: 1px solid var(--border);
}

.production-item-card > div {
    display: grid;
    gap: 4px;
}

.production-plan-details {
    display: grid;
    gap: 10px;
}

.production-plan-details p {
    margin: 0;
}

.production-next-step {
    display: grid;
    gap: 14px;
    margin-top: 22px;
    padding: 18px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--surface);
}

.production-next-step h2,
.production-next-step p {
    margin: 0;
}

@media (min-width: 720px) {
    .production-purpose-options {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
    }

    .production-quantity-row,
    .production-date-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .production-summary-grid {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
    }

    .production-next-step {
        grid-template-columns:
            minmax(0, 1fr) auto;
        align-items: center;
    }
}
/* A09.2 - Andamento e conclusão da produção */

.production-progress-list,
.production-progress-actions,
.production-execution-history {
    display: grid;
    gap: 14px;
}

.production-progress-card {
    display: grid;
    gap: 16px;
    padding: 18px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--surface);
}

.production-progress-card__heading,
.production-progress-numbers,
.production-execution-history__item {
    display: flex;
    justify-content: space-between;
    gap: 16px;
}

.production-progress-card__heading > div,
.production-execution-history__item > div {
    display: grid;
    gap: 4px;
}

.production-progress-numbers {
    padding: 14px 0;
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
}

.production-progress-numbers > div {
    display: grid;
    gap: 4px;
}

.production-progress-form,
.production-conclude-form {
    display: grid;
    gap: 14px;
    padding: 14px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
}

.production-progress-quantity {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    align-items: center;
}

.production-progress-quantity span {
    min-width: 36px;
}

.production-execution-history__item {
    padding: 12px 0;
    border-bottom: 1px solid var(--border);
}

@media (min-width: 720px) {
    .production-progress-actions {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 719px) {
    .production-progress-card__heading,
    .production-progress-numbers,
    .production-execution-history__item {
        display: grid;
        gap: 10px;
    }
}
/* A09.2B - Acompanhamento e prazos */

.production-card__product {
    display: grid;
    gap: 3px;
}

.production-card__progress {
    display: grid;
    gap: 7px;
}

.production-card__progress-line {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    font-size: .92rem;
}

.production-progress-bar {
    position: relative;
    width: 100%;
    height: 8px;
    overflow: hidden;
    border-radius: 999px;
    background: var(--border);
}

.production-progress-bar > span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: currentColor;
    opacity: .72;
}

.production-card__footer {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: flex-start;
    padding-top: 10px;
    border-top: 1px solid var(--border);
}

.production-deadline {
    font-weight: 700;
}

.production-deadline--attention {
    text-decoration: underline;
    text-underline-offset: 3px;
}

.production-deadline--late {
    text-decoration: underline;
    text-decoration-thickness: 2px;
    text-underline-offset: 3px;
}

@media (max-width: 719px) {
    .production-card__footer,
    .production-card__progress-line {
        display: grid;
        gap: 6px;
    }
}

/* A09.3 - Consumo de materiais */

.production-material-groups,
.production-material-form,
.production-material-lots,
.production-consumption-history {
    display: grid;
    gap: 14px;
}

.production-material-group {
    display: grid;
    gap: 14px;
}

.production-material-group__heading {
    display: grid;
    gap: 3px;
}

.production-material-card {
    display: grid;
    gap: 14px;
    padding: 16px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--surface);
}

.production-material-card__heading,
.production-consumption-history__item {
    display: flex;
    justify-content: space-between;
    gap: 14px;
}

.production-material-card__heading > div,
.production-consumption-history__item > div {
    display: grid;
    gap: 4px;
}

.production-material-lot {
    display: grid;
    gap: 12px;
    padding: 12px 0;
    border-top: 1px solid var(--border);
}

.production-material-lot > div:first-child {
    display: grid;
    gap: 3px;
}

.production-consumption-history__item {
    padding: 12px 0;
    border-bottom: 1px solid var(--border);
}

@media (min-width: 720px) {
    .production-material-lot {
        grid-template-columns:
            minmax(180px, 1fr)
            minmax(160px, .8fr)
            minmax(180px, 1fr);
        align-items: end;
    }
}

@media (max-width: 719px) {
    .production-material-card__heading,
    .production-consumption-history__item {
        display: grid;
        gap: 8px;
    }
}

/* A09.3B - Validação e feedback do consumo */

.production-consumption-error {
    margin-bottom: 14px;
}

.production-consumption-error p {
    margin-bottom: 0;
}

.field-error {
    display: block;
    margin-top: 6px;
    font-weight: 700;
}

.field-error[hidden] {
    display: none;
}

[data-consumption-quantity][aria-invalid="true"] {
    outline: 2px solid currentColor;
    outline-offset: 2px;
}
/* A09.3C - Correção de renderização do feedback de consumo */

/*
 * O campo de quantidade usa a grade criada em A09.2.
 * Na A09.3B, a mensagem de erro passou a ser um terceiro
 * elemento dessa grade e acabou ocupando a coluna destinada
 * à unidade. Fixamos explicitamente a posição de cada elemento.
 */

.production-progress-quantity > input {
    grid-column: 1;
    grid-row: 1;
    min-width: 0;
}

.production-progress-quantity > span {
    grid-column: 2;
    grid-row: 1;
    align-self: center;
}

.production-progress-quantity > .field-error {
    grid-column: 1 / -1;
    grid-row: 2;
    margin-top: 2px;
    line-height: 1.35;
    font-size: .86rem;
    font-weight: 600;
}

.production-progress-quantity > .field-error[hidden] {
    display: none;
}

/* A09.4 - Entrada do produto pronto no estoque */

.production-stock-entry-list {
    display: grid;
    gap: 14px;
}

.production-stock-entry-card {
    display: grid;
    gap: 16px;
    padding: 16px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--surface);
}

.production-stock-entry-card__heading {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    align-items: flex-start;
}

.production-stock-entry-card__heading > div {
    display: grid;
    gap: 4px;
}

.production-stock-entry-form {
    display: grid;
    gap: 14px;
}

.production-stock-entry-confirmed {
    display: grid;
    gap: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--border);
}

.production-stock-entry-confirmed > div {
    display: grid;
    gap: 4px;
}

@media (min-width: 720px) {
    .production-stock-entry-form {
        grid-template-columns:
            minmax(0, 1fr)
            minmax(0, 1fr)
            auto;
        align-items: end;
    }

    .production-stock-entry-confirmed {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 719px) {
    .production-stock-entry-card__heading {
        display: grid;
        gap: 8px;
    }
}

/* A09.4A - Coerência pós-conclusão e histórico por blocos */

.production-history-summary {
    display: grid;
    gap: 12px;
    margin-bottom: 18px;
}

.production-history-summary > div {
    display: grid;
    gap: 4px;
    padding: 14px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--surface);
}

.production-timeline {
    display: grid;
    gap: 0;
}

.production-timeline-item {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 12px;
    position: relative;
}

.production-timeline-item:not(:last-child)::before {
    content: "";
    position: absolute;
    left: 16px;
    top: 34px;
    bottom: 0;
    width: 1px;
    background: var(--border);
}

.production-timeline-marker {
    position: relative;
    z-index: 1;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--border);
    border-radius: 50%;
    background: var(--surface);
    font-weight: 700;
}

.production-timeline-content {
    display: grid;
    gap: 14px;
    padding: 0 0 22px;
}

.production-timeline-heading {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    align-items: flex-start;
}

.production-timeline-heading > div {
    display: grid;
    gap: 4px;
}

.production-timeline-details {
    display: grid;
    gap: 10px;
    padding: 14px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--surface);
}

.production-timeline-details > div {
    display: grid;
    gap: 3px;
}

@media (min-width: 720px) {
    .production-history-summary {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .production-timeline-details {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 719px) {
    .production-timeline-heading {
        display: grid;
        gap: 8px;
    }
}

/* A09.5 - Contexto de encomendas e eventos na produção */

.production-destination {
    display: grid;
    gap: 16px;
}

.production-destination-meta,
.production-destination-items {
    display: grid;
    gap: 12px;
}

.production-destination-meta > div,
.production-destination-item {
    display: grid;
    gap: 6px;
    padding: 14px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--surface);
}

.production-destination-item__heading {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: flex-start;
}

.production-destination-numbers {
    display: grid;
    gap: 10px;
    padding-top: 10px;
    border-top: 1px solid var(--border);
}

.production-destination-numbers > div {
    display: grid;
    gap: 3px;
}

@media (min-width: 720px) {
    .production-destination-meta {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
    }

    .production-destination-numbers {
        grid-template-columns:
            repeat(4, minmax(0, 1fr));
    }

    .production-destination-item
    .production-destination-numbers:has(> div:nth-child(3):last-child) {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 719px) {
    .production-destination-item__heading {
        display: grid;
        gap: 8px;
    }
}

/* A09.6 - Destinação controlada */

.production-destination-form {
    display: grid;
    gap: 12px;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--border);
}

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

.production-destination-history__item {
    display: grid;
    gap: 8px;
    padding: 12px 0;
    border-bottom: 1px solid var(--border);
}

.production-destination-history__item > div {
    display: grid;
    gap: 3px;
}

.production-destination-history__item p {
    margin: 0;
}

@media (min-width: 720px) {
    .production-destination-form {
        grid-template-columns:
            minmax(0, 1fr)
            minmax(0, 1fr)
            auto;
        align-items: end;
    }

    .production-destination-history__item {
        grid-template-columns:
            minmax(0, 1fr)
            auto;
    }

    .production-destination-history__item p {
        grid-column: 1 / -1;
    }
}

/* A09.6C - Feedback visível da justificativa de destinação */

.production-destination-last-change {
    display: grid;
    gap: 6px;
    margin-top: 12px;
    padding: 12px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--surface);
}

.production-destination-last-change > span,
.production-destination-last-change > small {
    opacity: .75;
}

.production-destination-last-change p {
    margin: 0;
}

/* A09.7A - Cancelamento controlado da produção */

.production-cancel-details {
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--surface);
}

.production-cancel-details > summary {
    cursor: pointer;
    padding: 14px;
    font-weight: 700;
}

.production-cancel-form {
    display: grid;
    gap: 14px;
    padding: 0 14px 14px;
}

.production-cancellation-record {
    display: grid;
    gap: 12px;
}

.production-cancellation-record > div {
    display: grid;
    gap: 5px;
    padding: 14px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--surface);
}

.production-cancellation-record p {
    margin: 0;
}

@media (min-width: 720px) {
    .production-cancellation-record {
        grid-template-columns:
            minmax(180px, .6fr)
            minmax(0, 1.4fr);
    }
}

/* A09.7A2 - coerência visual pós-cancelamento */

.production-stock-entry-card .message {
    margin-top: 10px;
}

/* A09.7B - Reabertura controlada */

.production-reopen-callout {
    margin-top: 14px;
    padding: 12px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--surface);
}

.production-reopen-callout p {
    margin: 0;
}

.production-reopen-details {
    margin-top: 14px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--surface);
}

.production-reopen-details > summary {
    cursor: pointer;
    padding: 14px;
    font-weight: 700;
}

.production-reopen-form {
    display: grid;
    gap: 14px;
    padding: 0 14px 14px;
}

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

.production-status-history__item {
    display: grid;
    gap: 8px;
    padding: 12px 0;
    border-bottom: 1px solid var(--border);
}

.production-status-history__item > div {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 8px 16px;
}

.production-status-history__item p {
    margin: 0;
}

/* A09.7B1 - Reabertura com redefinição de destino */

.production-reopen-choice {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 12px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    cursor: pointer;
}

.production-reopen-choice input {
    margin-top: 3px;
}

.production-reopen-choice span {
    display: grid;
    gap: 3px;
}

.production-reopen-choice small {
    opacity: .75;
}

.production-reopen-destination {
    display: grid;
    gap: 12px;
    padding: 12px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--surface);
}

/* A09.7C - Entradas parciais e compromisso do produto pronto */

.production-ready-actions {
    display: grid;
    gap: 8px;
}

.production-stock-entry-history {
    display: grid;
    gap: 8px;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--border);
}

.production-stock-entry-history > div {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 8px 12px;
}

.production-stock-entry-form {
    display: grid;
    gap: 12px;
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid var(--border);
}

.production-stock-commitment-note {
    display: grid;
    gap: 4px;
    margin-top: 12px;
    padding: 12px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--surface);
}

.production-stock-commitment-note span {
    opacity: .8;
}

@media (min-width: 720px) {
    .production-ready-actions {
        grid-template-columns:
            minmax(0, 1fr)
            minmax(0, 1fr);
    }
}

/* A09.7C1 - Feedback das peças prontas */

.production-ready-feedback {
    display: grid;
    gap: 3px;
    margin-top: 8px;
    padding: 10px 12px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--surface);
}

.production-ready-feedback span {
    opacity: .8;
}

/* A09.7C2 - Clareza no acompanhamento */

.production-progress-card .muted-text,
.production-progress-form .muted-text {
    display: block;
    margin-top: 6px;
}







/* A10.2B-C3 - Ciclo de vida das compras */
.purchase-card--cancelled {
    border-style: dashed;
}

.purchase-card--cancelled .purchase-card__materials {
    opacity: .72;
}

.purchase-status--cancelada {
    opacity: 1;
    border-width: 2px;
}

.purchase-card__cancelled-note {
    padding: 9px 11px;
    border: 1px solid var(--border);
    border-radius: 8px;
    font-size: .9rem;
    font-weight: 600;
    background: var(--surface);
}


.purchase-receipt-history__materials {
    display: block;
    margin-top: 0.2rem;
    color: var(--color-text-muted, #5f665f);
    font-size: 0.92rem;
    line-height: 1.4;
}

/* A10.2B-C5 — conversão compra x estoque */
.purchase-conversion-reading {
    margin-top: .5rem;
    padding: .65rem .75rem;
    border-radius: .65rem;
    background: rgba(45, 105, 83, .07);
    color: var(--text, #1f2a26);
    font-size: .9rem;
    line-height: 1.4;
}
.purchase-conversion-reading:empty { display: none; }
.purchase-conversion-reading--warning,
.purchase-receipt-conversion-warning {
    background: rgba(169, 96, 35, .09);
    border: 1px solid rgba(169, 96, 35, .25);
}
.purchase-receipt-conversion-warning {
    margin-top: .85rem;
    padding: .85rem 1rem;
    border-radius: .75rem;
}
.purchase-receipt-conversion-warning p {
    margin: .35rem 0 .45rem;
}
.purchase-receipt-item__stock-impact {
    margin-top: .45rem;
    font-weight: 600;
}
.purchase-receipt-item--blocked {
    border-color: rgba(169, 96, 35, .35);
}


/* A10.2B-C6 — apresentação de compra */
.purchase-item [data-content-field][hidden],
.purchase-item [data-direct-unit-field][hidden] {
    display: none !important;
}
.purchase-conversion-reading:not(:empty) {
    margin-top: .5rem;
    font-weight: 600;
}


/* A10.2B-C6-C1 — correção contextual de conversão */
.purchase-item--correction-target {
    border-color: currentColor;
}
.form-notice--info {
    margin-bottom: 1rem;
}


/* A10.2B-C7 — histórico e saldo de recebimentos */
.purchase-receipt-history__materials {
    display: grid;
    gap: .25rem;
    margin-top: .35rem;
}

.purchase-receipt-history__material-line {
    display: block;
}

.purchase-receipt-history__material-line small {
    display: inline;
    margin-left: .25rem;
    opacity: .78;
}

.purchase-receipt-balance {
    display: grid;
    gap: .6rem;
    width: 100%;
    margin-top: .9rem;
}

.purchase-receipt-balance__item {
    display: grid;
    gap: .15rem;
    padding-top: .55rem;
    border-top: 1px solid rgba(0, 0, 0, .08);
}

@media (min-width: 760px) {
    .purchase-receipt-balance__item {
        grid-template-columns: minmax(180px, 1.4fr) repeat(3, minmax(120px, .8fr));
        align-items: baseline;
        column-gap: 1rem;
    }
}


/* A11.1 — Encomendas */
.order-page-heading,
.order-items-heading,
.order-item__heading,
.order-actions {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.order-page-heading__meta {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin-top: .5rem;
}

.order-list,
.order-detail-items {
    display: grid;
    gap: .75rem;
}

.order-card {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem;
    border: 1px solid rgba(0, 0, 0, .12);
    border-radius: 16px;
    color: inherit;
    text-decoration: none;
    background: #fff;
}

.order-card--cancelled {
    opacity: .7;
}

.order-card__main,
.order-card__meta {
    display: grid;
    gap: .25rem;
}

.order-card__meta {
    text-align: right;
}

.order-card__title {
    display: flex;
    align-items: center;
    gap: .5rem;
    flex-wrap: wrap;
}

.order-item {
    padding: 1rem;
    margin-top: .75rem;
    border: 1px solid rgba(0, 0, 0, .12);
    border-radius: 16px;
    background: #fff;
}

.order-summary-grid,
.order-state-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
    margin: 1rem 0;
}

.order-detail-item {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: .9rem 0;
    border-bottom: 1px solid rgba(0, 0, 0, .08);
}

.order-detail-item > div {
    display: grid;
    gap: .2rem;
}

.order-detail-item > div:last-child {
    text-align: right;
}

.order-cancelled-message {
    padding: 1rem;
    margin: 1rem 0;
    border: 1px solid rgba(0, 0, 0, .12);
    border-radius: 16px;
}

[data-event-field][hidden] {
    display: none !important;
}

@media (max-width: 760px) {
    .order-page-heading,
    .order-items-heading,
    .order-card,
    .order-detail-item,
    .order-actions {
        flex-direction: column;
    }

    .order-card__meta,
    .order-detail-item > div:last-child {
        text-align: left;
    }

    .order-summary-grid,
    .order-state-grid {
        grid-template-columns: 1fr;
    }
}


/* A11.2 — produto pronto x produção necessária */
.order-fulfillment-list {
    display: grid;
    gap: 1rem;
    margin-top: 1rem;
}

.order-fulfillment-card {
    padding: 1rem;
    border: 1px solid rgba(0, 0, 0, .12);
    border-radius: 16px;
    background: #fff;
}

.order-fulfillment-card__heading {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
}

.order-fulfillment-card__heading > div {
    display: grid;
    gap: .2rem;
}

.order-fulfillment-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .65rem;
    margin-top: 1rem;
}

.order-fulfillment-metrics > div {
    display: grid;
    gap: .15rem;
    padding: .7rem;
    border-radius: 12px;
    background: rgba(0, 0, 0, .035);
}

.order-fulfillment-metrics span,
.order-stock-reading,
.order-stock-form small {
    font-size: .92rem;
}

.order-stock-reading {
    margin: .9rem 0;
}

.order-stock-form {
    display: flex;
    gap: .75rem;
    align-items: end;
    margin: .9rem 0;
}

.order-stock-form .field {
    flex: 1 1 280px;
    margin: 0;
}

@media (max-width: 760px) {
    .order-fulfillment-card__heading,
    .order-stock-form {
        flex-direction: column;
    }

    .order-fulfillment-metrics {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 460px) {
    .order-fulfillment-metrics {
        grid-template-columns: 1fr;
    }
}


/* A11.2C1 — feedback de limite da separação de estoque */
.order-stock-error {
    width: 100%;
    padding: .8rem .9rem;
    margin: .5rem 0;
    border: 1px solid rgba(0, 0, 0, .18);
    border-radius: 12px;
}

.order-stock-error p {
    margin: .3rem 0 0;
}

.order-stock-error[hidden] {
    display: none !important;
}


/* A11.3 — Pagamentos da encomenda */
.order-payment-summary {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .75rem;
    margin: 1rem 0;
}

.order-payment-history {
    margin-top: 1.25rem;
}

.order-payment-history__row {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: .8rem 0;
    border-bottom: 1px solid rgba(0, 0, 0, .08);
}

.order-payment-history__row > div {
    display: grid;
    gap: .18rem;
}

.order-payment-history__row > div:last-child {
    text-align: right;
}

.order-payment-form {
    margin-top: 1.25rem;
}

.order-payment-error,
.order-payment-complete {
    padding: .85rem 1rem;
    margin: .8rem 0;
    border: 1px solid rgba(0, 0, 0, .16);
    border-radius: 12px;
}

.order-payment-error p,
.order-payment-complete p {
    margin: .3rem 0 0;
}

.order-payment-error[hidden] {
    display: none !important;
}

@media (max-width: 760px) {
    .order-payment-summary {
        grid-template-columns: 1fr 1fr;
    }

    .order-payment-history__row {
        flex-direction: column;
    }

    .order-payment-history__row > div:last-child {
        text-align: left;
    }
}

@media (max-width: 460px) {
    .order-payment-summary {
        grid-template-columns: 1fr;
    }
}


/* A11.4 — Entregas parciais e envio */
.order-delivery-history,
.order-delivery-items {
    display: grid;
    gap: .8rem;
    margin-top: 1rem;
}

.order-delivery-history__entry,
.order-delivery-form,
.order-delivery-waiting {
    padding: 1rem;
    border: 1px solid rgba(0, 0, 0, .12);
    border-radius: 16px;
    background: #fff;
}

.order-delivery-history__heading,
.order-delivery-item {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
}

.order-delivery-history__heading > div,
.order-delivery-item > div:first-child {
    display: grid;
    gap: .18rem;
}

.order-delivery-history__item {
    margin: .55rem 0 0;
}

.order-delivery-shipping-summary {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem 1rem;
    margin-top: .7rem;
    font-size: .92rem;
}

.order-delivery-item {
    padding: .75rem;
    border-radius: 12px;
    background: rgba(0, 0, 0, .035);
}

.order-delivery-item .field {
    min-width: 180px;
    margin: 0;
}

.order-shipping-fields {
    margin-top: 1rem;
}

.order-shipping-fields[hidden],
.order-delivery-error[hidden] {
    display: none !important;
}

.order-delivery-error {
    padding: .85rem 1rem;
    margin: .8rem 0;
    border: 1px solid rgba(0, 0, 0, .16);
    border-radius: 12px;
}

.order-delivery-error p,
.order-delivery-waiting p {
    margin: .3rem 0 0;
}

@media (max-width: 760px) {
    .order-delivery-history__heading,
    .order-delivery-item {
        flex-direction: column;
    }

    .order-delivery-item .field {
        width: 100%;
        min-width: 0;
    }
}


/* A11.4C1 — diagnóstico e feedback de entrega */
.order-delivery-error p + p {
    margin-top: .35rem;
}


/* A11.4C3 — estados financeiros e de entrega na listagem de encomendas */
.order-card__states {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    margin-top: .35rem;
}

.order-state-badge {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    width: fit-content;
    padding: .22rem .45rem;
    border-radius: 999px;
    font-size: .78rem;
    line-height: 1.25;
    background: rgba(0, 0, 0, .045);
}

.order-state-badge--done {
    background: rgba(39, 103, 78, .10);
}

.order-state-badge--progress {
    background: rgba(145, 112, 43, .10);
}

.order-state-badge--pending {
    background: rgba(0, 0, 0, .045);
}

@media (max-width: 760px) {
    .order-card__states {
        gap: .3rem;
    }
}


/* RF01.3 — detalhe da encomenda: linha do tempo gráfica e selos padronizados */
.order-history {
    --order-timeline-time-width: 8.8rem;
    --order-timeline-marker-width: 1.2rem;
    position: relative;
    display: grid;
    gap: .9rem;
    margin-top: 1rem;
}

.order-history::before {
    content: '';
    position: absolute;
    top: .35rem;
    bottom: .35rem;
    left: calc(var(--order-timeline-time-width) + (var(--order-timeline-marker-width) / 2));
    width: 2px;
    background: rgba(0, 0, 0, .08);
}

.order-history__item {
    position: relative;
    display: grid;
    grid-template-columns: var(--order-timeline-time-width) var(--order-timeline-marker-width) minmax(0, 1fr);
    gap: .9rem;
    align-items: start;
}

.order-history__time {
    grid-column: 1;
    grid-row: 1;
    color: var(--muted);
    font-size: .92rem;
    line-height: 1.35;
    text-align: right;
    padding-top: .95rem;
}

.order-history__marker {
    grid-column: 2;
    grid-row: 1;
    position: relative;
    z-index: 1;
    width: 1.2rem;
    height: 1.2rem;
    margin-top: .95rem;
    border: 3px solid var(--sem-neutral-border);
    border-radius: 999px;
    background: var(--surface);
    box-shadow: 0 0 0 4px var(--surface);
}

.order-history__marker--payment {
    border-color: var(--sem-success-border);
    background: var(--sem-success-fg);
}

.order-history__marker--delivery,
.order-history__marker--change {
    border-color: var(--sem-info-border);
    background: var(--sem-info-fg);
}

.order-history__marker--production {
    border-color: var(--sem-warning-border);
    background: var(--sem-warning-fg);
}

.order-history__content {
    grid-column: 3;
    grid-row: 1;
    min-width: 0;
    width: 100%;
    display: grid;
    gap: .55rem;
    padding: .95rem 1rem;
    border: 1px solid rgba(0, 0, 0, .10);
    border-radius: 16px;
    background: #fff;
}

.order-history__meta {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem;
    align-items: center;
}

.order-history__heading {
    display: block;
}

.order-history__heading strong {
    display: block;
    font-size: 1rem;
    line-height: 1.35;
}

.order-history__content p {
    margin: 0;
    color: var(--muted);
    line-height: 1.5;
}

.order-history__link {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    font-weight: 700;
    text-decoration: none;
}

.order-history__link::after {
    content: '→';
    font-size: .9em;
}

@media (max-width: 760px) {
    .order-page-heading__meta {
        margin-bottom: .25rem;
    }

    .order-history::before {
        left: .6rem;
    }

    .order-history__item {
        grid-template-columns: var(--order-timeline-marker-width) minmax(0, 1fr);
        row-gap: .45rem;
    }

    .order-history__time {
        grid-column: 2;
        grid-row: 1;
        text-align: left;
        padding-top: 0;
        margin-bottom: -.1rem;
    }

    .order-history__marker {
        grid-column: 1;
        grid-row: 1 / span 2;
        margin-top: 1.9rem;
    }

    .order-history__content {
        grid-column: 2;
        grid-row: 2;
    }

    .order-history__meta {
        align-items: flex-start;
    }
}


/* A12.1 — Vendas */
.sale-page-heading,
.sale-items-heading,
.sale-item__heading,
.sale-actions {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.sale-list,
.sale-detail-items {
    display: grid;
    gap: .75rem;
}

.sale-card {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem;
    border: 1px solid rgba(0, 0, 0, .12);
    border-radius: 16px;
    color: inherit;
    text-decoration: none;
    background: #fff;
}

.sale-card--cancelled {
    opacity: .68;
}

.sale-card__main,
.sale-card__meta {
    display: grid;
    gap: .25rem;
}

.sale-card__meta {
    text-align: right;
}

.sale-card__title,
.sale-card__states {
    display: flex;
    align-items: center;
    gap: .4rem;
    flex-wrap: wrap;
}

.sale-item {
    padding: 1rem;
    margin-top: .75rem;
    border: 1px solid rgba(0, 0, 0, .12);
    border-radius: 16px;
    background: #fff;
}

.sale-summary-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .75rem;
    margin: 1rem 0;
}

.sale-detail-item {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: .9rem 0;
    border-bottom: 1px solid rgba(0, 0, 0, .08);
}

.sale-detail-item > div {
    display: grid;
    gap: .2rem;
}

.sale-detail-item > div:last-child {
    text-align: right;
}

.sale-total-reading {
    display: grid;
    gap: .3rem;
    max-width: 480px;
    margin: 1rem 0 0 auto;
}

.sale-total-reading > span {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
}

.sale-cancelled-message {
    padding: 1rem;
    margin: 1rem 0;
    border: 1px solid rgba(0, 0, 0, .14);
    border-radius: 16px;
}

[data-sale-event-field][hidden] {
    display: none !important;
}

@media (max-width: 760px) {
    .sale-page-heading,
    .sale-items-heading,
    .sale-card,
    .sale-detail-item,
    .sale-actions {
        flex-direction: column;
    }

    .sale-card__meta,
    .sale-detail-item > div:last-child {
        text-align: left;
    }

    .sale-summary-grid {
        grid-template-columns: 1fr 1fr;
    }

    .sale-total-reading {
        margin-left: 0;
        max-width: none;
    }
}

@media (max-width: 460px) {
    .sale-summary-grid {
        grid-template-columns: 1fr;
    }
}


/* A12.2 — baixa de estoque e divergências */
.sale-stock-warning,
.sale-stock-status {
    padding: .85rem 1rem;
    border: 1px solid rgba(0, 0, 0, .14);
    border-radius: 12px;
}

.sale-stock-warning {
    margin: 1rem 0;
}

.sale-stock-warning p {
    margin: .35rem 0 0;
}

.sale-stock-confirm {
    display: flex;
    align-items: flex-start;
    gap: .5rem;
    margin-top: .8rem;
}

.sale-stock-status {
    display: grid;
    gap: .18rem;
    margin-top: .55rem;
    font-size: .9rem;
    background: rgba(39, 103, 78, .06);
}

.sale-stock-status--warning {
    background: rgba(145, 112, 43, .08);
}


/* A12.3 — pagamentos múltiplos e taxas */
.sale-payment-summary {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: .75rem;
    margin: 1rem 0;
}

.sale-payment-history {
    margin-top: 1.25rem;
}

.sale-payment-history__row {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: .8rem 0;
    border-bottom: 1px solid rgba(0, 0, 0, .08);
}

.sale-payment-history__row > div {
    display: grid;
    gap: .18rem;
}

.sale-payment-history__row > div:last-child {
    text-align: right;
}

.sale-payment-form {
    margin-top: 1.25rem;
}

.sale-payment-net-reading {
    margin: .8rem 0;
}

.sale-payment-error,
.sale-payment-complete {
    padding: .85rem 1rem;
    margin: .8rem 0;
    border: 1px solid rgba(0, 0, 0, .16);
    border-radius: 12px;
}

.sale-payment-error[hidden] {
    display: none !important;
}

.sale-payment-error p,
.sale-payment-complete p {
    margin: .3rem 0 0;
}

@media (max-width: 900px) {
    .sale-payment-summary {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 600px) {
    .sale-payment-summary {
        grid-template-columns: 1fr;
    }

    .sale-payment-history__row {
        flex-direction: column;
    }

    .sale-payment-history__row > div:last-child {
        text-align: left;
    }
}


/* A12.4 — entrega e envio da venda */
.sale-delivery-history,
.sale-delivery-items {
    display: grid;
    gap: .8rem;
    margin-top: 1rem;
}

.sale-delivery-history__entry,
.sale-delivery-form,
.sale-delivery-complete {
    padding: 1rem;
    border: 1px solid rgba(0, 0, 0, .12);
    border-radius: 16px;
    background: #fff;
}

.sale-delivery-history__heading,
.sale-delivery-item {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
}

.sale-delivery-history__heading > div,
.sale-delivery-item > div:first-child {
    display: grid;
    gap: .18rem;
}

.sale-delivery-history__item {
    margin: .55rem 0 0;
}

.sale-delivery-shipping-summary {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem 1rem;
    margin-top: .7rem;
    font-size: .92rem;
}

.sale-delivery-item {
    padding: .75rem;
    border-radius: 12px;
    background: rgba(0, 0, 0, .035);
}

.sale-delivery-item .field {
    min-width: 180px;
    margin: 0;
}

.sale-shipping-fields {
    margin-top: 1rem;
}

.sale-shipping-fields[hidden],
.sale-delivery-error[hidden] {
    display: none !important;
}

.sale-delivery-error {
    padding: .85rem 1rem;
    margin: .8rem 0;
    border: 1px solid rgba(0, 0, 0, .16);
    border-radius: 12px;
}

.sale-delivery-error p,
.sale-delivery-complete p {
    margin: .3rem 0 0;
}

@media (max-width: 760px) {
    .sale-delivery-history__heading,
    .sale-delivery-item {
        flex-direction: column;
    }

    .sale-delivery-item .field {
        width: 100%;
        min-width: 0;
    }
}


/* A12.4C2 — consolidação visual dos produtos na ficha da venda */
.sale-detail-item--grouped {
    align-items: flex-start;
}

.sale-detail-item__main,
.sale-detail-item__commercial {
    display: grid;
    gap: .28rem;
}

.sale-detail-item__commercial {
    min-width: 260px;
    text-align: right;
}

.sale-commercial-breakdown__title {
    font-weight: 600;
}

.sale-commercial-breakdown {
    display: grid;
    gap: .45rem;
    margin-top: .15rem;
}

.sale-commercial-breakdown__row {
    display: grid;
    gap: .08rem;
    padding-top: .4rem;
    border-top: 1px solid rgba(0, 0, 0, .08);
}

@media (max-width: 760px) {
    .sale-detail-item__commercial {
        min-width: 0;
        width: 100%;
        text-align: left;
    }
}


/* A12.4C4 — identificação de variações no detalhamento da venda */
.sale-product-title {
    font-size: 1.02rem;
}

.sale-product-total-quantity {
    margin-top: .08rem;
}

.sale-product-composition {
    display: grid;
    gap: .28rem;
    margin-top: .55rem;
    padding: .65rem .75rem;
    border-radius: 10px;
    background: rgba(0, 0, 0, .035);
}

.sale-product-composition__title {
    font-size: .82rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .035em;
}

.sale-product-composition__row {
    display: flex;
    align-items: baseline;
    gap: .45rem;
}

.sale-commercial-breakdown__row > strong {
    display: block;
    margin-bottom: .08rem;
}

@media (max-width: 600px) {
    .sale-product-composition__row {
        align-items: flex-start;
        flex-direction: column;
        gap: .08rem;
    }
}


/* A12.5 — devoluções */
.sale-return-history,
.sale-return-items {
    display: grid;
    gap: .8rem;
    margin-top: 1rem;
}

.sale-return-history__entry,
.sale-return-form,
.sale-return-complete {
    padding: 1rem;
    border: 1px solid rgba(0, 0, 0, .12);
    border-radius: 16px;
    background: #fff;
}

.sale-return-history__heading,
.sale-return-item__title {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
}

.sale-return-history__heading > div,
.sale-return-item__title {
    display: grid;
    gap: .18rem;
}

.sale-return-history__item {
    display: grid;
    gap: .12rem;
    margin-top: .65rem;
}

.sale-return-item {
    padding: .8rem;
    border-radius: 12px;
    background: rgba(0, 0, 0, .035);
}

.sale-return-error {
    padding: .85rem 1rem;
    margin: .8rem 0;
    border: 1px solid rgba(0, 0, 0, .16);
    border-radius: 12px;
}

.sale-return-error[hidden] {
    display: none !important;
}

.sale-return-error p,
.sale-return-complete p {
    margin: .3rem 0 0;
}

.form-grid--3 {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
}

@media (max-width: 760px) {
    .sale-return-history__heading {
        flex-direction: column;
    }

    .form-grid--3 {
        grid-template-columns: 1fr;
    }
}


/* A12.5C3 — entrega imediata no registro da venda */
.sale-immediate-delivery {
    display: flex;
    gap: .8rem;
    align-items: flex-start;
    padding: .9rem 1rem;
    border-radius: 12px;
    background: rgba(0, 0, 0, .035);
    cursor: pointer;
}

.sale-immediate-delivery input {
    margin-top: .18rem;
}

.sale-immediate-delivery span {
    display: grid;
    gap: .22rem;
}

.sale-immediate-delivery small {
    font-weight: 400;
}

/* A12.6 — Trocas */
.sale-exchange-history {
    display: grid;
    gap: .8rem;
    margin-top: 1rem;
}

.sale-exchange-history__entry,
.sale-exchange-form {
    padding: 1rem;
    border: 1px solid rgba(0, 0, 0, .12);
    border-radius: 16px;
    background: #fff;
}

.sale-exchange-history__heading,
.sale-exchange-origin {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
}

.sale-exchange-history__heading > div {
    display: grid;
    gap: .18rem;
}

.sale-exchange-history__item {
    display: grid;
    gap: .12rem;
    margin-top: .65rem;
}

.sale-exchange-difference,
.sale-exchange-summary {
    display: grid;
    gap: .3rem;
    margin-top: .8rem;
    padding: .7rem .8rem;
    border-radius: 12px;
    background: rgba(0, 0, 0, .035);
}

.sale-exchange-item {
    padding: .8rem;
    margin-top: .8rem;
    border-radius: 12px;
    background: rgba(0, 0, 0, .035);
}

.sale-exchange-error {
    padding: .85rem 1rem;
    margin: .8rem 0;
    border: 1px solid rgba(0, 0, 0, .16);
    border-radius: 12px;
}

.sale-exchange-error[hidden],
[data-exchange-negative-field][hidden] {
    display: none !important;
}

.form-grid--4 {
    display: grid;
    grid-template-columns: 1.4fr 1.1fr .7fr .9fr;
    gap: .75rem;
}

@media (max-width: 900px) {
    .form-grid--4 {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 640px) {
    .form-grid--4 {
        grid-template-columns: 1fr;
    }

    .sale-exchange-history__heading,
    .sale-exchange-origin {
        flex-direction: column;
    }
}


/* A12.6C1 — encadeamento Devolução → Troca */
.sale-exchange-next-step,
.sale-exchange-pending-callout {
    margin-top: .8rem;
    padding: .9rem 1rem;
    border: 1px solid rgba(0, 0, 0, .12);
    border-radius: 12px;
    background: rgba(0, 0, 0, .035);
}

.sale-exchange-next-step p,
.sale-exchange-pending-callout p {
    margin: .3rem 0 .7rem;
}

.sale-exchange-form {
    scroll-margin-top: 7rem;
}


/* A12.6C3 — orientação quando a troca está sem estoque */
.sale-exchange-no-stock-actions {
    margin-top: .8rem;
    padding-top: .75rem;
    border-top: 1px solid rgba(0, 0, 0, .10);
}

.sale-exchange-no-stock-actions p {
    margin: 0 0 .65rem;
}

.sale-exchange-no-stock-actions__buttons {
    display: flex;
    gap: .6rem;
    flex-wrap: wrap;
}

.production-exchange-context {
    margin-bottom: 1rem;
}

@media (max-width: 640px) {
    .sale-exchange-no-stock-actions__buttons {
        align-items: stretch;
        flex-direction: column;
    }
}


/* A12.6C4 — refinamento de leitura no formulário de troca */
.sale-exchange-grid {
    grid-template-columns:
        minmax(0, 1.55fr)
        minmax(0, 1.25fr)
        minmax(88px, .55fr)
        minmax(130px, .8fr);
}

.sale-exchange-grid .field {
    min-width: 0;
}

@media (max-width: 980px) {
    .sale-exchange-grid {
        grid-template-columns:
            minmax(0, 1.35fr)
            minmax(0, 1.15fr)
            minmax(88px, .6fr)
            minmax(125px, .8fr);
    }
}

@media (max-width: 760px) {
    .sale-exchange-grid {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 540px) {
    .sale-exchange-grid {
        grid-template-columns: 1fr;
    }
}


/* A12.6C5 — correção de overflow dos campos Quantidade e Valor unitário */
.sale-exchange-grid {
    display: grid;
    grid-template-columns:
        minmax(0, 1.55fr)
        minmax(0, 1.25fr)
        minmax(74px, .46fr)
        minmax(118px, .70fr);
    gap: .75rem;
    width: 100%;
    align-items: start;
}

.sale-exchange-grid > .field {
    min-width: 0;
    width: 100%;
}

.sale-exchange-grid > .field input,
.sale-exchange-grid > .field select {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

.sale-exchange-grid > .field:nth-child(3) {
    max-width: 110px;
}

.sale-exchange-grid > .field:nth-child(4) {
    max-width: 150px;
}

.sale-exchange-grid > .field:nth-child(3) input,
.sale-exchange-grid > .field:nth-child(4) input {
    overflow: hidden;
}

@media (max-width: 980px) {
    .sale-exchange-grid {
        grid-template-columns:
            minmax(0, 1.35fr)
            minmax(0, 1.15fr)
            minmax(82px, .55fr)
            minmax(120px, .75fr);
    }

    .sale-exchange-grid > .field:nth-child(3),
    .sale-exchange-grid > .field:nth-child(4) {
        max-width: none;
    }
}

@media (max-width: 760px) {
    .sale-exchange-grid {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 540px) {
    .sale-exchange-grid {
        grid-template-columns: 1fr;
    }
}


/* A12.7 — custos e resultado estimado da venda */
.sale-result-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .8rem;
    margin-top: 1rem;
}

.sale-result-card {
    display: grid;
    gap: .28rem;
    padding: 1rem;
    border: 1px solid rgba(0, 0, 0, .10);
    border-radius: 14px;
    background: rgba(255, 255, 255, .72);
}

.sale-result-card > span {
    font-weight: 600;
}

.sale-result-card > strong {
    font-size: 1.45rem;
}

.sale-result-card--highlight {
    background: rgba(0, 0, 0, .035);
}

.sale-result-warning {
    font-weight: 600;
}

.sale-result-details {
    margin-top: 1rem;
    padding: .85rem 1rem;
    border: 1px solid rgba(0, 0, 0, .10);
    border-radius: 14px;
}

.sale-result-details summary {
    cursor: pointer;
    font-weight: 600;
}

.sale-result-breakdown {
    display: grid;
    gap: .55rem;
    margin-top: .85rem;
}

.sale-result-breakdown > div {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: .45rem;
    border-bottom: 1px solid rgba(0, 0, 0, .08);
}

.sale-result-breakdown__subtotal,
.sale-result-breakdown__total {
    font-weight: 700;
}

.sale-result-breakdown__total {
    padding-top: .45rem;
    border-top: 1px solid rgba(0, 0, 0, .15);
}

@media (max-width: 700px) {
    .sale-result-grid {
        grid-template-columns: 1fr;
    }

    .sale-result-breakdown > div {
        align-items: flex-start;
        flex-direction: column;
        gap: .18rem;
    }
}


/* A13.1 — visão geral do Dinheiro */
.money-page-heading {
    margin-bottom: .8rem;
}

.money-period {
    display: flex;
    gap: .75rem;
    align-items: end;
    flex-wrap: wrap;
    margin-bottom: .45rem;
}

.money-period .field {
    min-width: 150px;
    max-width: 190px;
}

.money-period-reading {
    margin: 0 0 1rem;
}

.money-summary-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .8rem;
    margin-bottom: 1rem;
}

.money-summary-card {
    display: grid;
    gap: .25rem;
    min-width: 0;
    padding: 1rem;
    border: 1px solid rgba(0, 0, 0, .10);
    border-radius: 14px;
    background: #fff;
}

.money-summary-card > span {
    font-weight: 600;
}

.money-summary-card > strong {
    font-size: 1.4rem;
}

.money-summary-card--balance {
    grid-column: span 2;
    background: rgba(0, 0, 0, .035);
}

.money-columns {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .8rem;
    margin-bottom: .8rem;
}

.money-panel {
    padding: 1rem;
    border: 1px solid rgba(0, 0, 0, .10);
    border-radius: 16px;
    background: #fff;
}

.money-panel-heading h2 {
    margin-top: .18rem;
}

.money-open-list,
.money-movement-list {
    display: grid;
    gap: .25rem;
    margin-top: .7rem;
}

.money-open-item {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: center;
    padding: .75rem 0;
    border-bottom: 1px solid rgba(0, 0, 0, .08);
    color: inherit;
    text-decoration: none;
}

.money-open-item > div {
    display: grid;
    gap: .12rem;
}

.money-movement-item {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: .8rem 0;
    border-bottom: 1px solid rgba(0, 0, 0, .08);
}

.money-movement-item__main {
    display: grid;
    gap: .25rem;
    min-width: 0;
}

.money-movement-item__main > div {
    display: flex;
    gap: .5rem;
    align-items: center;
    flex-wrap: wrap;
}

.money-movement-item__value {
    display: grid;
    gap: .15rem;
    text-align: right;
    white-space: nowrap;
}

@media (max-width: 900px) {
    .money-summary-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .money-summary-card--balance {
        grid-column: span 2;
    }
}

@media (max-width: 700px) {
    .money-columns {
        grid-template-columns: 1fr;
    }

    .money-movement-item {
        align-items: flex-start;
        flex-direction: column;
    }

    .money-movement-item__value {
        text-align: left;
    }
}

@media (max-width: 520px) {
    .money-summary-grid {
        grid-template-columns: 1fr;
    }

    .money-summary-card--balance {
        grid-column: auto;
    }

    .money-period .field {
        max-width: none;
        width: 100%;
    }
}


/* A13.2 — pagamento de compras e parcelamento */
.purchase-payment-section {
    margin-top: 1rem;
    padding: 1rem;
    border: 1px solid rgba(0, 0, 0, .10);
    border-radius: 16px;
    background: #fff;
}

.purchase-payment-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .7rem;
    margin: .8rem 0 1rem;
}

.purchase-payment-summary > div {
    display: grid;
    gap: .2rem;
    padding: .8rem;
    border-radius: 12px;
    background: rgba(0, 0, 0, .035);
}

.purchase-payment-history {
    margin: 1rem 0;
}

.purchase-payment-history__item {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: .65rem 0;
    border-bottom: 1px solid rgba(0, 0, 0, .08);
}

.purchase-payment-history__item > div {
    display: grid;
    gap: .14rem;
}

.purchase-payment-form {
    display: grid;
    gap: .8rem;
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(0, 0, 0, .10);
}

.purchase-payment-cash,
.purchase-payment-installment-plan {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .7rem;
}

.purchase-payment-cash[hidden],
.purchase-payment-installment-plan[hidden],
[data-payment-condition-field][hidden],
[data-payment-notes][hidden],
[data-payment-submit][hidden] {
    display: none !important;
}

.purchase-installments {
    display: grid;
    gap: .7rem;
    margin-top: 1rem;
}

.purchase-installment {
    padding: .85rem;
    border: 1px solid rgba(0, 0, 0, .10);
    border-radius: 12px;
}

.purchase-installment--paid {
    opacity: .72;
}

.purchase-installment__summary {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
}

.purchase-installment__summary > div {
    display: grid;
    gap: .15rem;
}

.purchase-installment__summary > div:last-child {
    text-align: right;
}

.purchase-installment__payment {
    margin-top: .7rem;
}

.purchase-installment__payment summary {
    cursor: pointer;
    font-weight: 600;
}

.purchase-installment-form {
    display: grid;
    grid-template-columns:
        minmax(120px, .8fr)
        minmax(120px, .8fr)
        minmax(190px, 1fr)
        minmax(180px, 1.2fr);
    gap: .7rem;
    align-items: end;
    margin-top: .7rem;
}

.purchase-installment-form .button {
    width: max-content;
}

.purchase-payment-complete {
    padding: .85rem 1rem;
    border-radius: 12px;
    background: rgba(0, 0, 0, .035);
}

@media (max-width: 800px) {
    .purchase-payment-cash,
    .purchase-payment-installment-plan,
    .purchase-installment-form {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 560px) {
    .purchase-payment-summary,
    .purchase-payment-cash,
    .purchase-payment-installment-plan,
    .purchase-installment-form {
        grid-template-columns: 1fr;
    }

    .purchase-payment-history__item,
    .purchase-installment__summary {
        flex-direction: column;
    }

    .purchase-installment__summary > div:last-child {
        text-align: left;
    }
}


/* A14.1 — Gastos */
.expenses-page-heading {
    gap: 1rem;
}

.expense-summary-grid,
.expense-detail-grid {
    display: grid;
    grid-template-columns:
        repeat(4, minmax(0, 1fr));
    gap: .75rem;
    margin: 1rem 0;
}

.expense-summary-card,
.expense-detail-card,
.expense-learning-card,
.expense-notes-card {
    padding: 1rem;
    border: 1px solid rgba(0, 0, 0, .10);
    border-radius: 14px;
    background: rgba(255, 255, 255, .74);
}

.expense-summary-card,
.expense-detail-card {
    display: grid;
    gap: .3rem;
}

.expense-summary-card > span,
.expense-detail-card > span {
    font-size: .85rem;
}

.expense-summary-card > strong,
.expense-detail-card > strong {
    font-size: 1.15rem;
}

.expenses-toolbar {
    display: flex;
    justify-content: flex-end;
    margin: .65rem 0;
}

.expense-list {
    display: grid;
    gap: .65rem;
}

.expense-list-item {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: .9rem 1rem;
    border: 1px solid rgba(0, 0, 0, .10);
    border-radius: 14px;
    text-decoration: none;
    color: inherit;
    background: rgba(255, 255, 255, .74);
}

.expense-list-item.is-archived {
    opacity: .65;
}

.expense-list-item__main,
.expense-list-item__value {
    display: grid;
    gap: .2rem;
}

.expense-list-item__value {
    text-align: right;
    white-space: nowrap;
}

.expense-form {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
    gap: .85rem;
    margin-top: 1rem;
    align-items: start;
}

.expense-form input,
.expense-form select,
.expense-form textarea {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

.expense-form__wide {
    grid-column: 1 / -1;
}

.expense-form__actions,
.expense-show-actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: .75rem;
    grid-column: 1 / -1;
    margin-top: .3rem;
}

.expense-learning-card,
.expense-notes-card {
    margin-top: 1rem;
}

.expense-learning-card h2,
.expense-notes-card h2 {
    margin-top: 0;
}

@media (max-width: 820px) {
    .expense-summary-grid,
    .expense-detail-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 580px) {
    .expense-summary-grid,
    .expense-detail-grid,
    .expense-form {
        grid-template-columns: 1fr;
    }

    .expense-form__wide {
        grid-column: auto;
    }

    .expense-list-item,
    .expense-show-actions,
    .expense-form__actions {
        align-items: flex-start;
        flex-direction: column;
    }

    .expense-list-item__value {
        text-align: left;
        white-space: normal;
    }
}


/* A14.2 — pagamento dos gastos */
.expense-payment-card {
    margin-top: 1rem;
    padding: 1rem;
    border: 1px solid rgba(0, 0, 0, .10);
    border-radius: 14px;
    background: rgba(255, 255, 255, .76);
}

.expense-payment-heading h2 {
    margin-top: 0;
}

.expense-payment-summary {
    display: grid;
    grid-template-columns:
        repeat(3, minmax(0, 1fr));
    gap: .7rem;
    margin: .8rem 0 1rem;
}

.expense-payment-summary > div {
    display: grid;
    gap: .2rem;
    padding: .75rem;
    border-radius: 10px;
    background: rgba(0, 0, 0, .035);
}

.expense-payment-form-wrap {
    margin-top: .8rem;
}

.expense-payment-form-wrap > summary {
    cursor: pointer;
    font-weight: 700;
}

.expense-payment-form {
    display: grid;
    grid-template-columns:
        repeat(3, minmax(0, 1fr));
    gap: .75rem;
    align-items: start;
    margin-top: .8rem;
}

.expense-payment-form input,
.expense-payment-form select {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

.expense-payment-notes {
    grid-column: span 2;
}

.expense-payment-form .button {
    align-self: end;
    width: max-content;
}

.expense-payment-history {
    display: grid;
    gap: .55rem;
    margin-top: 1rem;
}

.expense-payment-history h3 {
    margin-bottom: 0;
}

.expense-payment-history__item {
    display: flex;
    justify-content: space-between;
    gap: .75rem;
    padding: .7rem 0;
    border-top: 1px solid rgba(0, 0, 0, .08);
}

.expense-payment-history__item > div {
    display: grid;
    gap: .15rem;
}

@media (max-width: 820px) {
    .expense-payment-form {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .expense-payment-notes {
        grid-column: auto;
    }
}

@media (max-width: 580px) {
    .expense-payment-summary,
    .expense-payment-form {
        grid-template-columns: 1fr;
    }

    .expense-payment-history__item {
        align-items: flex-start;
        flex-direction: column;
    }
}


/* A14.2C1 — padronização do fluxo de pagamentos */
.purchase-payment-other,
.expense-payment-other {
    min-width: 0;
}

.expense-payment-form--initial {
    grid-template-columns:
        repeat(3, minmax(0, 1fr));
}

.expense-payment-cash,
.expense-payment-installment-plan {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns:
        repeat(3, minmax(0, 1fr));
    gap: .75rem;
}

.expense-payment-cash[hidden],
.expense-payment-installment-plan[hidden] {
    display: none;
}

.expense-installment-list {
    display: grid;
    gap: .65rem;
    margin-top: 1rem;
}

.expense-installment-item {
    display: grid;
    grid-template-columns:
        minmax(0, 1fr) auto;
    gap: .75rem;
    padding: .85rem;
    border: 1px solid rgba(0, 0, 0, .08);
    border-radius: 12px;
    background: rgba(0, 0, 0, .025);
}

.expense-installment-item > div {
    display: grid;
    gap: .15rem;
}

.expense-installment-item__value {
    text-align: right;
}

.expense-installment-payment {
    grid-column: 1 / -1;
}

.expense-installment-payment > summary {
    cursor: pointer;
    font-weight: 700;
}

@media (max-width: 820px) {
    .expense-payment-form--initial,
    .expense-payment-cash,
    .expense-payment-installment-plan {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 580px) {
    .expense-payment-form--initial,
    .expense-payment-cash,
    .expense-payment-installment-plan {
        grid-template-columns: 1fr;
    }

    .expense-installment-item {
        grid-template-columns: 1fr;
    }

    .expense-installment-item__value {
        text-align: left;
    }
}


/* A14.2C3 — feedback de conclusão e leitura de parcelas */
.expense-payment-feedback {
    display: grid;
    gap: .2rem;
}

.expense-installment-item.is-next-open {
    outline: 2px solid rgba(0, 0, 0, .08);
    outline-offset: 1px;
}

.expense-installment-item.is-next-open
.expense-installment-payment > summary {
    font-weight: 800;
}


/* A14.2C2 — respeitar abertura condicional de "Outra forma" em Gastos */
[data-expense-payment-other][hidden] {
    display: none !important;
}


/* A14.3 — recorrência de gastos */
.expense-recurrence-custom {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
    gap: .85rem;
}

.expense-recurrence-custom[hidden],
[data-expense-recurrence-frequency][hidden],
[data-expense-recurrence-help][hidden] {
    display: none !important;
}

.expense-recurrence-help {
    grid-column: 1 / -1;
    margin: -.2rem 0 .2rem;
}

.expense-recurrence-card {
    margin-top: 1rem;
    padding: 1rem;
    border: 1px solid rgba(0, 0, 0, .10);
    border-radius: 14px;
    background: rgba(255, 255, 255, .76);
}

.expense-recurrence-card h2 {
    margin-top: 0;
}

.expense-recurrence-history {
    display: grid;
    gap: .5rem;
    margin-top: 1rem;
}

.expense-recurrence-history > a {
    display: grid;
    grid-template-columns:
        minmax(100px, .6fr)
        minmax(100px, .6fr)
        minmax(120px, .8fr);
    gap: .6rem;
    align-items: center;
    padding: .65rem .75rem;
    border: 1px solid rgba(0, 0, 0, .08);
    border-radius: 10px;
    color: inherit;
    text-decoration: none;
}

@media (max-width: 580px) {
    .expense-recurrence-custom {
        grid-template-columns: 1fr;
    }

    .expense-recurrence-history > a {
        grid-template-columns: 1fr;
    }
}


/* A14.3C2 — hierarquia e edição de pagamentos recorrentes */
.expense-recurrence-overview {
    margin-bottom: 1rem;
}

.expense-recurrence-row {
    display: grid;
    grid-template-columns:
        minmax(0, 1fr) auto;
    gap: .65rem;
    align-items: center;
    padding: .65rem .75rem;
    border: 1px solid rgba(0, 0, 0, .08);
    border-radius: 10px;
}

.expense-recurrence-row__main {
    display: grid;
    grid-template-columns:
        minmax(100px, .6fr)
        minmax(100px, .6fr)
        minmax(120px, .8fr);
    gap: .6rem;
    align-items: center;
    color: inherit;
    text-decoration: none;
}

.expense-recurrence-row__actions {
    display: flex;
    gap: .6rem;
    white-space: nowrap;
}

.expense-next-generation {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: .8rem;
    margin-top: 1rem;
    padding-top: .8rem;
    border-top: 1px solid rgba(0, 0, 0, .08);
}

.expense-next-generation p {
    margin: 0;
}

.expense-occurrence-lock-note,
.expense-occurrence-origin-note {
    grid-column: 1 / -1;
    padding: .75rem .85rem;
    border-radius: 10px;
    background: rgba(0, 0, 0, .04);
}

@media (max-width: 680px) {
    .expense-recurrence-row,
    .expense-recurrence-row__main {
        grid-template-columns: 1fr;
    }

    .expense-recurrence-row__actions,
    .expense-next-generation {
        align-items: flex-start;
        flex-direction: column;
    }
}


/* A14.4 — leitura de planejamento */
.expense-planning-panel {
    margin: 1rem 0 1.4rem;
    padding: 1rem;
    border: 1px solid rgba(0, 0, 0, .10);
    border-radius: 14px;
    background: rgba(255, 255, 255, .74);
}

.expense-planning-heading {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-end;
}

.expense-planning-heading h2,
.expense-catalog-heading h2 {
    margin-top: 0;
}

.expense-period-filter {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(145px, 1fr))
        auto;
    gap: .6rem;
    align-items: end;
}

.expense-period-filter input {
    box-sizing: border-box;
    width: 100%;
}

.expense-planning-cards {
    display: grid;
    grid-template-columns:
        repeat(3, minmax(0, 1fr));
    gap: .7rem;
    margin-top: 1rem;
}

.expense-planning-cards > article {
    display: grid;
    gap: .2rem;
    padding: .8rem;
    border-radius: 10px;
    background: rgba(0, 0, 0, .035);
}

.expense-planning-cards strong {
    font-size: 1.15rem;
}

.expense-planning-note {
    margin-top: .8rem;
    padding: .7rem .8rem;
    border-radius: 10px;
    background: rgba(0, 0, 0, .035);
}

.expense-planning-columns {
    display: grid;
    grid-template-columns:
        minmax(0, 1.6fr)
        minmax(260px, .8fr);
    gap: 1rem;
    margin-top: 1rem;
}

.expense-period-list,
.expense-category-planning,
.expense-upcoming {
    min-width: 0;
}

.expense-period-item {
    display: flex;
    justify-content: space-between;
    gap: .8rem;
    padding: .65rem 0;
    border-top: 1px solid rgba(0, 0, 0, .08);
    color: inherit;
    text-decoration: none;
}

.expense-period-item > div {
    display: grid;
    gap: .15rem;
}

.expense-period-item__value {
    text-align: right;
    white-space: nowrap;
}

.expense-category-item {
    display: flex;
    justify-content: space-between;
    gap: .8rem;
    padding: .65rem 0;
    border-top: 1px solid rgba(0, 0, 0, .08);
}

.expense-category-item > div {
    display: grid;
    gap: .15rem;
}

.expense-upcoming {
    margin-top: 1rem;
    padding-top: .8rem;
    border-top: 1px solid rgba(0, 0, 0, .08);
}

.expense-upcoming > p {
    margin-top: -.3rem;
}

.expense-upcoming-list {
    display: grid;
    gap: .45rem;
}

.expense-upcoming-list > a {
    display: grid;
    grid-template-columns:
        minmax(95px, .45fr)
        minmax(0, 1.4fr)
        minmax(105px, .5fr);
    gap: .7rem;
    align-items: center;
    padding: .6rem .7rem;
    border: 1px solid rgba(0, 0, 0, .08);
    border-radius: 10px;
    color: inherit;
    text-decoration: none;
}

.expense-upcoming-list > a small {
    text-align: right;
}

.expense-catalog-heading {
    margin-top: .3rem;
}

.expense-catalog-summary {
    margin-top: .5rem;
}

@media (max-width: 900px) {
    .expense-planning-heading {
        align-items: stretch;
        flex-direction: column;
    }

    .expense-planning-columns {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 680px) {
    .expense-period-filter,
    .expense-planning-cards {
        grid-template-columns: 1fr;
    }

    .expense-period-item,
    .expense-category-item {
        align-items: flex-start;
        flex-direction: column;
    }

    .expense-period-item__value {
        text-align: left;
        white-space: normal;
    }

    .expense-upcoming-list > a {
        grid-template-columns: 1fr;
    }

    .expense-upcoming-list > a small {
        text-align: left;
    }
}


/* A14.4C1 — filtros combinados, status e refinamento visual */
.expense-period-filter {
    grid-template-columns:
        repeat(2, minmax(135px, .8fr))
        minmax(120px, .65fr)
        minmax(160px, .8fr)
        minmax(190px, 1fr);
    width: min(100%, 760px);
}

.expense-period-filter__actions {
    grid-column: 1 / -1;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: .8rem;
}

.expense-filter-clear {
    color: var(--muted);
    font-size: .9rem;
}

.expense-planning-primary {
    display: grid;
    grid-template-columns:
        repeat(3, minmax(0, 1fr));
    gap: .75rem;
    margin-top: 1rem;
}

.expense-planning-primary > article {
    display: grid;
    gap: .25rem;
    padding: 1rem;
    border: 1px solid rgba(0, 0, 0, .08);
    border-radius: 12px;
    background: var(--surface);
}

.expense-planning-primary > article strong {
    font-size: 1.35rem;
}

.expense-planning-primary > article small {
    color: var(--muted);
    line-height: 1.35;
}

.expense-planning-secondary {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem 1.1rem;
    margin-top: .7rem;
    padding: .65rem .8rem;
    border-radius: 10px;
    background: rgba(0, 0, 0, .035);
    font-size: .92rem;
}

.expense-active-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .4rem;
    margin-top: .8rem;
}

.expense-active-filters > span {
    color: var(--muted);
    font-size: .88rem;
}

.expense-active-filters > strong {
    padding: .28rem .55rem;
    border-radius: 999px;
    background: var(--primary-soft);
    color: var(--primary-strong);
    font-size: .82rem;
}

.expense-list-item__title {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .45rem .6rem;
}

.expense-financial-status {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 0 .55rem;
    border-radius: 999px;
    font-size: .78rem;
    font-weight: 750;
    white-space: nowrap;
}

.expense-financial-status.is-paid {
    background: var(--primary-soft);
    color: var(--primary-strong);
}

.expense-financial-status.is-partial {
    background: rgba(0, 0, 0, .06);
    color: var(--text);
}

.expense-financial-status.is-open {
    border: 1px solid var(--border);
    background: var(--surface);
    color: var(--muted);
}

.expense-balance-note {
    font-weight: 650;
}

@media (max-width: 1000px) {
    .expense-period-filter {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
        width: 100%;
    }

    .expense-period-filter__category {
        grid-column: span 2;
    }
}

@media (max-width: 680px) {
    .expense-period-filter,
    .expense-planning-primary {
        grid-template-columns: 1fr;
    }

    .expense-period-filter__category,
    .expense-period-filter__actions {
        grid-column: auto;
    }

    .expense-period-filter__actions {
        align-items: stretch;
        flex-direction: column;
    }
}


/* A14.4C2 — hierarquia visual e clareza do planejamento */
.expense-planning-heading{display:block;max-width:760px}.expense-planning-heading h2{margin:.3rem 0 .35rem}.expense-planning-intro{margin:0;color:var(--muted);line-height:1.45}
.expense-period-filter{display:grid;grid-template-columns:minmax(250px,.8fr) minmax(0,1.35fr);gap:.8rem;width:100%;margin-top:1rem;padding:.85rem;border:1px solid rgba(0,0,0,.08);border-radius:12px;background:rgba(0,0,0,.025)}
.expense-filter-group{display:grid;gap:.55rem;min-width:0}.expense-filter-group--period{grid-template-columns:repeat(2,minmax(0,1fr))}.expense-filter-group--classification{grid-template-columns:minmax(120px,.65fr) minmax(155px,.9fr) minmax(190px,1.15fr)}.expense-filter-group__title{grid-column:1/-1;font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.expense-period-filter__actions{grid-column:1/-1;display:flex;justify-content:flex-end;align-items:center;gap:.85rem;padding-top:.1rem}.expense-planning-primary{gap:.8rem;margin-top:1rem}.expense-planning-card{min-height:132px}.expense-planning-card>span{font-weight:700}.expense-planning-card>strong{margin-top:.2rem}
.expense-planning-equation{display:flex;justify-content:center;margin-top:.65rem;padding:.55rem .75rem;border-radius:10px;background:var(--primary-soft);color:var(--primary-strong);text-align:center;font-size:.9rem}.expense-planning-secondary{justify-content:space-between;margin-top:.55rem}.expense-planning-secondary__cash{padding-left:1rem;border-left:1px solid rgba(0,0,0,.12)}.expense-planning-note{margin-top:.7rem;line-height:1.45}
.expense-planning-columns{grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:1rem;align-items:start}.expense-planning-detail-card,.expense-planning-category-card{padding:1rem;border:1px solid rgba(0,0,0,.09);border-radius:12px;background:var(--surface)}.expense-planning-section-heading{margin-bottom:.45rem}.expense-planning-section-heading h3{margin:.15rem 0 .25rem}.expense-planning-section-heading p:not(.eyebrow){margin:0;color:var(--muted);line-height:1.4;font-size:.9rem}
@media(max-width:900px){.expense-period-filter{grid-template-columns:1fr}.expense-filter-group--classification{grid-template-columns:repeat(2,minmax(0,1fr))}.expense-filter-group--classification .field:last-child{grid-column:1/-1}.expense-planning-columns{grid-template-columns:1fr}}
@media(max-width:620px){.expense-filter-group--period,.expense-filter-group--classification{grid-template-columns:1fr}.expense-filter-group--classification .field:last-child{grid-column:auto}.expense-period-filter__actions{align-items:stretch;flex-direction:column}.expense-planning-secondary{align-items:flex-start;flex-direction:column}.expense-planning-secondary__cash{padding-left:0;border-left:0}}


/* A14.4C3 — distribuição do cabeçalho, filtros e datas na listagem */
.expense-planning-panel {
    display: block;
}

.expense-planning-heading {
    display: block !important;
    max-width: none !important;
    width: 100%;
    margin-bottom: 0;
}

.expense-planning-heading .eyebrow {
    display: block;
    margin-bottom: .25rem;
}

.expense-planning-heading h2 {
    margin: 0 0 .3rem !important;
    max-width: 720px;
    font-size: 1.45rem;
    line-height: 1.2;
}

.expense-planning-intro {
    max-width: 680px;
    margin: 0 !important;
    color: var(--muted);
    line-height: 1.4;
}

.expense-period-filter {
    display: grid !important;
    grid-template-columns:
        minmax(135px, .9fr)
        minmax(135px, .9fr)
        minmax(120px, .75fr)
        minmax(155px, 1fr)
        minmax(190px, 1.25fr) !important;
    gap: .7rem !important;
    width: 100% !important;
    margin-top: 1rem !important;
    padding: .9rem !important;
    align-items: end;
}

.expense-filter-heading {
    grid-column: 1 / -1;
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: .35rem .65rem;
    padding-bottom: .1rem;
}

.expense-filter-heading > span {
    font-size: .8rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--muted);
}

.expense-filter-heading > small {
    color: var(--muted);
    font-size: .86rem;
}

.expense-period-filter .field {
    min-width: 0;
}

.expense-period-filter .field input,
.expense-period-filter .field select {
    width: 100%;
    min-width: 0;
}

.expense-period-filter__actions {
    grid-column: 1 / -1 !important;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: .8rem;
    padding-top: .15rem;
}

.expense-date-reading {
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: .15rem .65rem;
}

.expense-date-reading > span {
    white-space: nowrap;
}

.expense-date-reading strong {
    font-weight: 700;
}

@media (max-width: 980px) {
    .expense-period-filter {
        grid-template-columns:
            repeat(2, minmax(0, 1fr)) !important;
    }

    .expense-period-filter .field:last-of-type {
        grid-column: 1 / -1;
    }
}

@media (max-width: 620px) {
    .expense-period-filter {
        grid-template-columns: 1fr !important;
    }

    .expense-period-filter .field:last-of-type,
    .expense-period-filter__actions {
        grid-column: auto !important;
    }

    .expense-period-filter__actions {
        align-items: stretch;
        flex-direction: column;
    }

    .expense-date-reading {
        justify-content: flex-start;
        flex-direction: column;
    }
}


/* A14.4C4 — hierarquia entre leitura principal e composição */
.expense-planning-equation--left {
    justify-content: flex-start !important;
    margin-top: 1rem !important;
    padding: 0 !important;
    background: transparent !important;
    color: var(--text) !important;
    text-align: left !important;
}

.expense-planning-secondary {
    margin-top: .95rem !important;
}

.expense-planning-note {
    margin-top: 1rem !important;
}

.expense-planning-columns {
    margin-top: 1.4rem !important;
    column-gap: 1.55rem !important;
    row-gap: 1rem !important;
    align-items: start;
}

.expense-planning-detail-card {
    background: var(--surface) !important;
}

.expense-planning-category-card--muted {
    background: rgba(0, 0, 0, .035) !important;
    border-color: rgba(0, 0, 0, .07) !important;
}

.expense-planning-category-card--muted .expense-category-item {
    padding-top: .75rem;
    padding-bottom: .75rem;
}

.expense-planning-section-heading,
.expense-planning-section-heading .eyebrow,
.expense-planning-section-heading h3,
.expense-planning-section-heading p {
    text-align: left;
}

@media (max-width: 900px) {
    .expense-planning-columns {
        column-gap: 1rem !important;
    }
}


/* A14.5 — integração de Gastos ao Dinheiro */
.money-origin-label {
    font-weight: 700;
}

.money-commitment-title {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .4rem .55rem;
}

.money-origin-badge {
    display: inline-flex;
    align-items: center;
    min-height: 22px;
    padding: 0 .5rem;
    border-radius: 999px;
    background: rgba(0, 0, 0, .05);
    font-size: .76rem;
    font-weight: 750;
}

.money-panel-heading p {
    max-width: 680px;
}

@media (max-width: 620px) {
    .money-commitment-title {
        align-items: flex-start;
        flex-direction: column;
    }
}


/* A14.5C1 — Dinheiro deixa de oferecer lançamento manual genérico.
   Estilos antigos permanecem inertes para evitar impacto em outras telas. */


/* A14.5C3 — Visão por origem no módulo Dinheiro */
.money-origin-overview {
    margin-top: 1.35rem;
    padding-top: 1.2rem;
    border-top: 1px solid rgba(0, 0, 0, .08);
}

.money-origin-overview__heading {
    max-width: 760px;
}

.money-origin-overview__heading h2 {
    margin: .25rem 0 .35rem;
}

.money-origin-overview__heading > p:not(.eyebrow) {
    margin: 0;
    color: var(--muted);
    line-height: 1.45;
}

.money-origin-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .85rem;
    margin-top: 1rem;
}

.money-origin-card {
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 170px;
    padding: 1rem;
    border: 1px solid rgba(0, 0, 0, .08);
    border-radius: 12px;
    background: var(--surface);
}

.money-origin-card__heading {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: .6rem;
}

.money-origin-card__heading > span {
    font-weight: 750;
}

.money-origin-card__heading > small {
    color: var(--muted);
    text-align: right;
}

.money-origin-card > strong {
    display: block;
    margin-top: .55rem;
    font-size: 1.55rem;
    line-height: 1.1;
}

.money-origin-card__secondary {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: .7rem;
    margin-top: auto;
    padding-top: .9rem;
    border-top: 1px solid rgba(0, 0, 0, .06);
}

.money-origin-card__secondary span {
    color: var(--muted);
    font-size: .84rem;
    line-height: 1.3;
}

.money-origin-card__secondary strong {
    white-space: nowrap;
    font-size: 1rem;
}

.money-origin-overview__note {
    margin: .85rem 0 0;
    color: var(--muted);
    line-height: 1.45;
    font-size: .9rem;
}

.money-origin-overview__note--commercial {
    margin-top: .35rem;
}

@media (max-width: 1050px) {
    .money-origin-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 620px) {
    .money-origin-grid {
        grid-template-columns: 1fr;
    }

    .money-origin-card {
        min-height: 0;
    }
}


/* A14.5C5 — respiro horizontal da legenda "Como ler" */
.money-origin-overview__note {
    padding-left: .55rem;
    padding-right: .55rem;
}

@media (max-width: 620px) {
    .money-origin-overview__note {
        padding-left: .2rem;
        padding-right: .2rem;
    }
}


/* A14.6.1 — Outras movimentações financeiras */
.other-money-page {
    padding-bottom: 2rem;
}

.other-money-heading {
    align-items: flex-start;
}

.other-money-guide,
.other-money-overview,
.other-money-register,
.other-money-history {
    margin-top: 1.2rem;
    padding: 1rem;
    border: 1px solid rgba(0, 0, 0, .08);
    border-radius: 12px;
    background: var(--surface);
}

.other-money-guide__heading,
.other-money-section-heading {
    max-width: 760px;
}

.other-money-guide__heading h2,
.other-money-section-heading h2 {
    margin: .2rem 0 .3rem;
}

.other-money-guide__heading > p:not(.eyebrow),
.other-money-section-heading > p:not(.eyebrow) {
    margin: 0;
    color: var(--muted);
    line-height: 1.45;
}

.other-money-guide__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .75rem;
    margin-top: 1rem;
}

.other-money-guide__grid article {
    display: flex;
    flex-direction: column;
    gap: .35rem;
    min-width: 0;
    padding: .85rem;
    border: 1px solid rgba(0, 0, 0, .07);
    border-radius: 10px;
    background: rgba(0, 0, 0, .025);
}

.other-money-guide__grid article span {
    color: var(--muted);
    font-size: .88rem;
    line-height: 1.4;
}


.other-money-filters {
    display: grid;
    grid-template-columns:
        minmax(130px, .8fr)
        minmax(130px, .8fr)
        minmax(180px, 1.1fr)
        minmax(150px, .9fr)
        minmax(170px, 1fr);
    gap: .8rem;
    align-items: end;
    margin-top: 1rem;
}

.other-money-filters .field {
    min-width: 0;
}

.other-money-filters .field input,
.other-money-filters .field select {
    width: 100%;
}

.other-money-filters__actions {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .8rem;
}

.other-money-summary-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .75rem;
    margin-top: 1rem;
}

.other-money-summary-card {
    display: flex;
    flex-direction: column;
    gap: .45rem;
    min-width: 0;
    padding: .9rem;
    border: 1px solid rgba(0, 0, 0, .08);
    border-radius: 10px;
    background: rgba(0, 0, 0, .025);
}

.other-money-summary-card > div {
    display: flex;
    flex-direction: column;
    gap: .2rem;
}

.other-money-summary-card span {
    font-weight: 700;
}

.other-money-summary-card > strong {
    font-size: 1.2rem;
}

.other-money-summary-card small {
    color: var(--muted);
    line-height: 1.35;
}

.other-money-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    align-items: start;
    margin-top: 1rem;
}

.other-money-form .field {
    min-width: 0;
    align-content: start;
}

.other-money-form .field input,
.other-money-form .field select,
.other-money-form .field textarea {
    width: 100%;
    box-sizing: border-box;
}

.other-money-form .field input,
.other-money-form .field select {
    min-height: 48px;
}

.other-money-form__direction {
    display: block;
    margin-top: .3rem;
    color: var(--muted);
    line-height: 1.35;
}

.other-money-form__notes {
    grid-column: 1 / -1;
}

.other-money-form__actions {
    grid-column: 1 / -1;
    display: flex;
    justify-content: flex-end;
}

[data-other-money-other][hidden] {
    display: none !important;
}

.other-money-list {
    display: grid;
    gap: .6rem;
    margin-top: 1rem;
}

.other-money-item {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: .85rem;
    border: 1px solid rgba(0, 0, 0, .08);
    border-radius: 10px;
    background: var(--surface);
}

.other-money-item.is-canceled {
    opacity: .6;
}

.other-money-item__main {
    min-width: 0;
}

.other-money-item__title {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .4rem;
}

.other-money-item__main small {
    display: block;
    margin-top: .25rem;
    color: var(--muted);
}

.other-money-item__main p {
    margin: .4rem 0 0;
    color: var(--muted);
    line-height: 1.4;
}

.other-money-item__value {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: .45rem;
    text-align: right;
}

.other-money-item__value > strong {
    white-space: nowrap;
    font-size: 1.05rem;
}

@media (max-width: 1000px) {
    .other-money-guide__grid,
    .other-money-summary-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .other-money-filters {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .other-money-form {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 620px) {
    .other-money-heading {
        align-items: stretch;
        flex-direction: column;
    }

    .other-money-guide__grid,
    .other-money-summary-grid,
    .other-money-filters,
    .other-money-form {
        grid-template-columns: 1fr;
    }

    .other-money-filters__actions {
        grid-column: auto;
        align-items: stretch;
        flex-direction: column;
    }

    .other-money-form__notes,
    .other-money-form__actions {
        grid-column: auto;
    }

    .other-money-form__actions {
        align-items: stretch;
        flex-direction: column;
    }

    .other-money-item {
        flex-direction: column;
    }

    .other-money-item__value {
        align-items: flex-start;
        text-align: left;
    }
}

/* A14.6.1C2 — refinamento visual do formulário */
@media (max-width: 760px) {
    .other-money-form {
        grid-template-columns: 1fr;
    }
}

/* A14.6.2 — quinta origem: Outras movimentações */
.money-origin-card--other {
    grid-column: 1 / -1;
    min-height: 0;
}

.money-origin-card__other-values {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr)) auto;
    align-items: end;
    gap: .85rem;
    margin-top: .8rem;
}

.money-origin-card__other-values > div {
    min-width: 0;
    padding: .8rem .9rem;
    border: 1px solid rgba(0, 0, 0, .06);
    border-radius: 10px;
    background: rgba(0, 0, 0, .018);
}

.money-origin-card__other-values span {
    display: block;
    margin-bottom: .25rem;
    color: var(--muted);
    font-size: .84rem;
}

.money-origin-card__other-values strong {
    display: block;
    font-size: 1.35rem;
    line-height: 1.1;
}

.money-origin-card__link {
    align-self: center;
    white-space: nowrap;
    font-weight: 700;
}

.money-origin-card__explanation {
    display: block;
    margin-top: .75rem;
    color: var(--muted);
    line-height: 1.4;
}

@media (max-width: 760px) {
    .money-origin-card__other-values {
        grid-template-columns: 1fr 1fr;
    }

    .money-origin-card__link {
        grid-column: 1 / -1;
        justify-self: start;
    }
}

@media (max-width: 520px) {
    .money-origin-card__other-values {
        grid-template-columns: 1fr;
    }

    .money-origin-card__link {
        grid-column: auto;
    }
}

/* A14.7.1 — Custos do negócio */
.money-page-actions,
.business-cost-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    align-items: center;
    justify-content: flex-end;
}

.business-cost-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .8rem;
    margin-top: 1rem;
}

.business-cost-difference-card {
    background: var(--surface-soft, #f6f5f1);
}

.business-cost-reading {
    margin: 1rem 0 1.25rem;
    padding: 1rem 1.1rem;
    border: 1px solid var(--border, #deddd8);
    border-radius: 14px;
    background: var(--surface-soft, #f7f7f4);
}

.business-cost-reading p {
    margin: .35rem 0 0;
    color: var(--text-muted, #5f625d);
}

.business-cost-section {
    margin-top: 1rem;
}

.business-cost-section-heading {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
    justify-content: space-between;
}

.business-cost-section-heading > div:first-child {
    max-width: 720px;
}

.business-cost-section-totals {
    display: grid;
    grid-template-columns: repeat(2, minmax(140px, 1fr));
    gap: .65rem;
    min-width: min(100%, 320px);
}

.business-cost-section-totals span,
.business-cost-item-values span {
    display: grid;
    gap: .18rem;
    color: var(--text-muted, #6a6d68);
    font-size: .82rem;
}

.business-cost-section-totals strong,
.business-cost-item-values strong {
    color: var(--text, #1d211e);
    font-size: 1rem;
}

.business-cost-list {
    display: grid;
    gap: .7rem;
    margin-top: 1rem;
}

.business-cost-item {
    padding: 1rem;
    border: 1px solid var(--border, #deddd8);
    border-radius: 14px;
    background: var(--surface, #fff);
}

.business-cost-item-main {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
    justify-content: space-between;
}

.business-cost-item h3 {
    margin: .45rem 0 .18rem;
    font-size: 1rem;
}

.business-cost-item small {
    color: var(--text-muted, #6a6d68);
}

.business-cost-link {
    white-space: nowrap;
    font-weight: 650;
}

.business-cost-item-values {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .65rem;
    margin-top: .9rem;
    padding-top: .85rem;
    border-top: 1px solid var(--border, #e4e3df);
}

@media (max-width: 900px) {
    .business-cost-summary {
        grid-template-columns: 1fr;
    }

    .business-cost-section-heading {
        display: grid;
    }

    .business-cost-section-totals {
        width: 100%;
    }
}

@media (max-width: 760px) {
    .money-page-actions,
    .business-cost-actions {
        width: 100%;
        justify-content: flex-start;
    }

    .business-cost-section-totals,
    .business-cost-item-values {
        grid-template-columns: 1fr;
    }

    .business-cost-item-main {
        display: grid;
    }
}

/* A14.7.1C1 — filtros e estrutura fixa fora do período */
.business-cost-filters {
    margin-top: 1rem;
}

.business-cost-filter-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .85rem;
    margin-top: 1rem;
    align-items: end;
}

.business-cost-filter-grid .field {
    min-width: 0;
    margin: 0;
}

.business-cost-filter-grid input,
.business-cost-filter-grid select {
    width: 100%;
    box-sizing: border-box;
    min-height: 46px;
}

.business-cost-filter-actions {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
}

.business-cost-filter-reading {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .65rem 1rem;
    margin-top: .9rem;
    padding-top: .8rem;
    border-top: 1px solid var(--border, #e4e3df);
    color: var(--text-muted, #6a6d68);
    font-size: .9rem;
}

.business-cost-filter-reading .money-period-reading {
    margin: 0;
}

.business-cost-period-status {
    display: block;
    margin-top: .45rem;
    color: var(--text-muted, #6a6d68);
    font-size: .82rem;
}

.business-cost-period-status strong {
    color: var(--text, #1d211e);
}

@media (max-width: 900px) {
    .business-cost-filter-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 620px) {
    .business-cost-filter-grid {
        grid-template-columns: 1fr;
    }

    .business-cost-filter-actions {
        grid-column: auto;
    }
}

/* A14.7.2 — classificação dos custos para formação de preço */
.business-cost-feedback {
    margin: 1rem 0;
    padding: .85rem 1rem;
    border: 1px solid rgba(40, 95, 73, .18);
    border-radius: 12px;
    background: rgba(230, 240, 235, .72);
    font-size: .92rem;
}

.business-cost-feedback--error {
    border-color: rgba(140, 58, 47, .24);
    background: rgba(249, 237, 234, .8);
}

.business-cost-price-form {
    display: grid;
    grid-template-columns: minmax(190px, 1.35fr) minmax(160px, .8fr) minmax(210px, 1fr) auto;
    gap: .8rem;
    align-items: end;
    margin-top: .9rem;
    padding-top: .9rem;
    border-top: 1px solid rgba(0, 0, 0, .09);
}

.business-cost-price-heading {
    align-self: center;
}

.business-cost-price-heading strong,
.business-cost-price-heading small {
    display: block;
}

.business-cost-price-heading small {
    margin-top: .25rem;
    color: var(--muted, #6a6a6a);
    line-height: 1.35;
}

.business-cost-price-form .field {
    min-width: 0;
}

.business-cost-price-form select {
    width: 100%;
    min-height: 44px;
    box-sizing: border-box;
}

.business-cost-price-form .button {
    white-space: nowrap;
}

@media (max-width: 980px) {
    .business-cost-price-form {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .business-cost-price-heading {
        grid-column: 1 / -1;
    }
}

@media (max-width: 680px) {
    .business-cost-price-form {
        grid-template-columns: 1fr;
    }

    .business-cost-price-heading {
        grid-column: auto;
    }
}

/* A14.7.2C1 — classificação em conjunto de custos */
.business-cost-bulk-panel {
    margin-top: 1rem;
}

.business-cost-bulk-form {
    display: grid;
    grid-template-columns: minmax(220px, 1.15fr) minmax(180px, .9fr) minmax(180px, .9fr) auto;
    gap: 1rem;
    align-items: end;
}

.business-cost-select-all {
    display: flex;
    align-items: center;
    gap: .65rem;
    min-height: 48px;
    font-weight: 700;
    cursor: pointer;
}

.business-cost-select-all input,
.business-cost-item-selector input {
    width: 1.1rem;
    height: 1.1rem;
    accent-color: currentColor;
}

.business-cost-selected-count {
    grid-column: 1 / -1;
    display: flex;
    align-items: baseline;
    gap: .35rem;
    color: var(--muted, #60645f);
}

.business-cost-selected-count strong {
    color: var(--text, #1d211e);
    font-size: 1.05rem;
}

.business-cost-item-selector {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    margin-bottom: .7rem;
    font-size: .9rem;
    font-weight: 700;
    cursor: pointer;
}

.business-cost-item:has(.business-cost-item-checkbox:checked) {
    outline: 2px solid rgba(45, 105, 82, .28);
    outline-offset: -2px;
}

#bulk-price-type-field[hidden] {
    display: none;
}

@media (max-width: 980px) {
    .business-cost-bulk-form {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .business-cost-bulk-form .button {
        min-height: 48px;
    }
}

@media (max-width: 680px) {
    .business-cost-bulk-form {
        grid-template-columns: 1fr;
    }

    .business-cost-selected-count {
        grid-column: auto;
    }
}


/* A14.7.2C2 — origem do tipo e continuidade da edição individual */
.business-cost-item{scroll-margin-top:110px}
.business-cost-source-type{display:grid;gap:.2rem;align-content:start;padding:.7rem .8rem;border:1px solid var(--border);border-radius:10px;background:var(--surface-soft,#f7f8f6)}
.business-cost-source-type span{font-size:.78rem;color:var(--muted)}
.business-cost-source-type strong{font-size:.95rem}
.business-cost-source-type small{color:var(--muted);font-size:.78rem}
.business-cost-inline-feedback{grid-column:1/-1;padding:.65rem .75rem;border-radius:8px;font-size:.86rem}
.business-cost-inline-feedback--success{background:#eef5ef;border:1px solid #cfdfd1}
.business-cost-inline-feedback--error{background:#fff3f1;border:1px solid #e6c9c4}

/* A14.7.2C3 — hierarquia e compactação da classificação em conjunto */
.business-cost-bulk-panel{
    margin-top:1rem;
}
.business-cost-bulk-heading{
    margin-bottom:.65rem;
}
.business-cost-bulk-heading .eyebrow{
    margin:0;
}
.business-cost-bulk-form{
    display:grid;
    grid-template-columns:minmax(170px,auto) minmax(180px,240px) auto minmax(90px,auto);
    gap:.75rem;
    align-items:end;
}
.business-cost-select-all{
    min-height:44px;
    white-space:nowrap;
}
.business-cost-bulk-form .field{
    margin:0;
}
.business-cost-bulk-choice-label{
    display:block;
    margin-bottom:.28rem;
    font-size:.78rem;
    color:var(--muted,#60645f);
}
.business-cost-bulk-form select{
    width:100%;
    min-height:44px;
}
.business-cost-bulk-form .button{
    min-height:44px;
    white-space:nowrap;
}
.business-cost-selected-count{
    grid-column:auto;
    align-self:center;
    justify-self:end;
    white-space:nowrap;
    font-size:.82rem;
}
.business-cost-selected-count strong{
    font-size:.95rem;
}
@media (max-width:900px){
    .business-cost-bulk-form{
        grid-template-columns:minmax(170px,1fr) minmax(180px,1fr);
    }
    .business-cost-bulk-form .button,
    .business-cost-selected-count{
        justify-self:stretch;
    }
}
@media (max-width:620px){
    .business-cost-bulk-form{
        grid-template-columns:1fr;
    }
    .business-cost-select-all{
        white-space:normal;
    }
    .business-cost-selected-count{
        justify-self:start;
    }
}

/* A14.7.3 — parcela estimada dos custos do negócio */
.business-cost-estimate-panel {
    display: grid;
    gap: 1.15rem;
}

.business-cost-estimate-heading {
    align-items: flex-start;
    gap: 1rem;
}

.business-cost-reference-month {
    display: grid;
    gap: .2rem;
    min-width: 10rem;
    padding: .75rem .9rem;
    border: 1px solid var(--border-color, #d8d8d8);
    border-radius: .75rem;
    font-size: .82rem;
}

.business-cost-reference-month strong {
    font-size: .98rem;
}

.business-cost-estimate-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .9rem;
}

.business-cost-estimate-card {
    display: grid;
    gap: .45rem;
    padding: 1rem;
    border: 1px solid var(--border-color, #d8d8d8);
    border-radius: .85rem;
    min-width: 0;
}

.business-cost-estimate-card > span,
.business-cost-estimate-card > small {
    font-size: .84rem;
}

.business-cost-estimate-card > strong {
    font-size: 1.25rem;
}

.business-cost-estimate-breakdown {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem 1rem;
    padding-top: .35rem;
    border-top: 1px solid var(--border-color, #e5e5e5);
}

.business-cost-estimate-breakdown span {
    display: grid;
    gap: .1rem;
    font-size: .78rem;
}


.business-cost-estimate-explanation {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .9rem;
}

.business-cost-estimate-explanation > div,
.business-cost-estimate-use {
    padding: .9rem 1rem;
    border-radius: .8rem;
    background: rgba(0, 0, 0, .035);
}

.business-cost-estimate-explanation p,
.business-cost-estimate-use p {
    margin: .35rem 0 0;
}

.business-cost-estimate-formula {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem .5rem;
    align-items: baseline;
    font-size: 1rem;
}

.business-cost-estimate-use {
    border: 1px solid var(--border-color, #d8d8d8);
    background: transparent;
}

.business-cost-capacity-block {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(20rem, 1.35fr);
    gap: 1.25rem;
    align-items: start;
    padding-top: .2rem;
}

.business-cost-capacity-copy p {
    margin-bottom: 0;
}

.business-cost-capacity-form {
    display: grid;
    gap: .75rem;
}

.business-cost-capacity-option {
    display: flex;
    gap: .65rem;
    align-items: flex-start;
    padding: .8rem .9rem;
    border: 1px solid var(--border-color, #d8d8d8);
    border-radius: .75rem;
    cursor: pointer;
}

.business-cost-capacity-option > span {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem .55rem;
    align-items: center;
}

.business-cost-capacity-option strong {
    flex-basis: 100%;
}

.business-cost-capacity-own input[type="text"] {
    width: 8rem;
}

.business-cost-estimate-note {
    margin: 0;
    font-size: .84rem;
}

@media (max-width: 900px) {
    .business-cost-estimate-grid,
    .business-cost-estimate-explanation,
    .business-cost-capacity-block {
        grid-template-columns: 1fr;
    }

    .business-cost-reference-month {
        min-width: 0;
    }
}

/* A14.7.3C2 — fechamento didático e continuidade para Produtos */
.business-cost-estimate-heading p {
    max-width: none;
}

.business-cost-products-link {
    justify-self: center;
    font-size: .88rem;
    font-weight: 700;
}

/* A14.7.3C3 — decisão de capacidade com prévia antes de salvar */
.business-cost-capacity-preview {
    display: grid;
    gap: .3rem;
    padding: .85rem .95rem;
    border: 1px solid var(--border-color, #d8d8d8);
    border-radius: .75rem;
    background: rgba(0, 0, 0, .025);
}

.business-cost-capacity-preview[hidden] {
    display: none;
}

.business-cost-capacity-preview p {
    margin: 0;
}

.business-cost-capacity-preview-system {
    font-size: .84rem;
    opacity: .8;
}


/* A14.7.4 — formação de preço do produto */
.product-pricing-entry {
    margin-top: 1.25rem;
    padding: 1.25rem;
    border: 1px solid var(--border, #d9ddd9);
    border-radius: 16px;
    background: var(--surface, #fff);
}

.product-pricing-heading .page-heading-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    margin-top: 1rem;
}

.product-pricing-cards,
.product-pricing-components,
.product-pricing-reference-compare {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
}

.product-pricing-cards article,
.product-pricing-components article,
.product-pricing-reference-compare > div {
    padding: 1rem;
    border: 1px solid var(--border, #d9ddd9);
    border-radius: 14px;
    background: #fff;
}

.product-pricing-cards span,
.product-pricing-components span,
.product-pricing-reference-compare span {
    display: block;
    font-size: .82rem;
    color: var(--muted, #6a706d);
}

.product-pricing-cards strong,
.product-pricing-components strong,
.product-pricing-reference-compare strong {
    display: block;
    margin-top: .35rem;
    font-size: 1.15rem;
}

.product-pricing-cards small,
.product-pricing-components small,
.product-pricing-reference-compare small {
    display: block;
    margin-top: .45rem;
    line-height: 1.4;
    color: var(--muted, #6a706d);
}

.product-pricing-reference-compare {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-bottom: 1rem;
}

.product-pricing-use-form {
    display: grid;
    gap: .75rem;
    margin-top: 1rem;
}

.product-pricing-choice {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    padding: 1rem;
    border: 1px solid var(--border, #d9ddd9);
    border-radius: 14px;
    cursor: pointer;
}

.product-pricing-choice input {
    margin-top: .2rem;
}

.product-pricing-choice span,
.product-pricing-choice small {
    display: block;
}

.product-pricing-choice small {
    margin-top: .2rem;
    color: var(--muted, #6a706d);
}

.product-pricing-components {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.product-pricing-component-active,
.product-pricing-partial-total {
    background: #f7faf8 !important;
}

.product-pricing-note {
    margin-top: 1rem;
    padding: 1rem;
    border-radius: 14px;
    background: #f6f7f6;
}

.product-pricing-note p {
    margin: .35rem 0 0;
}

@media (max-width: 900px) {
    .product-pricing-cards,
    .product-pricing-components,
    .product-pricing-reference-compare {
        grid-template-columns: 1fr;
    }
}

/* A14.7.5.1 — custo monetário de referência do produto */
.product-pricing-material-list {
    display: grid;
    gap: .75rem;
}

.product-pricing-material-item {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) repeat(2, minmax(0, 1fr));
    gap: 1rem;
    align-items: start;
    padding: 1rem;
    border: 1px solid var(--border, #d9ddd9);
    border-radius: 14px;
    background: #fff;
}

.product-pricing-material-item span,
.product-pricing-material-item small,
.product-pricing-work-grid span,
.product-pricing-work-grid small,
.product-pricing-cost-equation span {
    display: block;
    color: var(--muted, #6a706d);
}

.product-pricing-material-item small,
.product-pricing-work-grid small {
    margin-top: .25rem;
    line-height: 1.4;
}

.product-pricing-material-total {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    margin-top: .9rem;
    padding-top: .9rem;
    border-top: 1px solid var(--border, #d9ddd9);
}

.product-pricing-work-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
}

.product-pricing-work-grid article {
    padding: 1rem;
    border: 1px solid var(--border, #d9ddd9);
    border-radius: 14px;
    background: #fff;
}

.product-pricing-work-grid strong {
    display: block;
    margin-top: .35rem;
    font-size: 1.15rem;
}

.product-pricing-work-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1rem;
    align-items: end;
    margin-top: 1rem;
    padding: 1rem;
    border: 1px solid var(--border, #d9ddd9);
    border-radius: 14px;
    background: #f7faf8;
}

.product-pricing-work-form .field {
    margin: 0;
}

.product-pricing-work-form input {
    max-width: 13rem;
}

.product-pricing-cost-equation {
    display: grid;
    grid-template-columns: repeat(7, auto);
    gap: .65rem;
    align-items: center;
    justify-content: start;
    overflow-x: auto;
    padding: 1rem;
    border: 1px solid var(--border, #d9ddd9);
    border-radius: 14px;
    background: #fff;
}

.product-pricing-cost-equation > div {
    min-width: 9rem;
}

.product-pricing-cost-equation strong {
    display: block;
    margin-top: .25rem;
    font-size: 1.12rem;
}

.product-pricing-cost-equation-total {
    padding: .7rem .9rem;
    border-radius: 10px;
    background: #f7faf8;
}

@media (max-width: 900px) {
    .product-pricing-material-item,
    .product-pricing-work-grid,
    .product-pricing-work-form {
        grid-template-columns: 1fr;
    }

    .product-pricing-work-form input {
        max-width: none;
    }
}


/* Padrão reutilizável de inclusão contextual — base para refinamento transversal */
.inline-create {
    margin-top: 18px;
}

.inline-create__trigger {
    width: auto;
}

.inline-create__panel {
    margin-top: 12px;
    padding: 18px;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius);
}

.inline-create__panel[hidden] {
    display: none !important;
}

.inline-create__panel-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 16px;
}

.inline-create__panel-heading h3 {
    margin: 0;
    font-size: 1.05rem;
}

.inline-create .attribute-add-form,
.inline-create .product-material-add-form,
.inline-create .product-team-add-form {
    margin-top: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}

.product-detail-section__heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
}

.product-detail-section__heading > div {
    min-width: 0;
}

.product-pricing-inline-link {
    display: inline-block;
    margin-top: .55rem;
    font-size: .86rem;
    font-weight: 650;
}

.product-pricing-resolution {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .75rem 1rem;
}

.product-pricing-resolution .product-pricing-inline-link {
    margin-top: 0;
}

@media (max-width: 719px) {
    .product-detail-section__heading,
    .inline-create__panel-heading {
        align-items: stretch;
        flex-direction: column;
    }

    .product-detail-section__heading > .button,
    .inline-create__trigger {
        width: 100%;
        justify-content: center;
    }
}

/* A14.7.5.1C2 — normalização do padrão de inclusão e equivalência de materiais */
.inline-create--relocated {
    display: none;
}

.product-pricing-equivalence {
    margin-top: .7rem;
}

.product-pricing-equivalence .inline-create__trigger {
    font-size: .84rem;
}

.product-pricing-equivalence__panel {
    margin-top: .75rem;
    text-align: left;
}

.product-pricing-equivalence__panel .inline-create__panel-heading p {
    margin: .35rem 0 0;
    max-width: 58rem;
    font-size: .9rem;
}

.product-pricing-equivalence-form__equation {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    gap: 12px;
    align-items: end;
}

.product-pricing-equivalence-form__equals {
    padding-bottom: .75rem;
    font-size: .88rem;
    color: var(--text-muted);
    white-space: nowrap;
}

.product-pricing-equivalence-note {
    display: block;
    margin-top: .4rem;
}

@media (max-width: 719px) {
    .product-pricing-equivalence-form__equation {
        grid-template-columns: 1fr;
    }

    .product-pricing-equivalence-form__equals {
        padding-bottom: 0;
    }
}



/* A14.7.5.1C3 — equivalência com expansor nativo, sem dependência de JavaScript */
.product-pricing-equivalence > summary {
    list-style: none;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
}

.product-pricing-equivalence > summary::-webkit-details-marker {
    display: none;
}

.product-pricing-equivalence__trigger::after {
    content: "+";
    margin-left: .55rem;
    font-weight: 700;
}

.product-pricing-equivalence[open] > .product-pricing-equivalence__trigger::after {
    content: "−";
}

.product-pricing-equivalence__panel {
    margin-top: .75rem;
    padding: 18px;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius);
}

/* A14.7.5.1C4 — formulário contextual de equivalência em largura total */
.product-pricing-equivalence--full {
    grid-column: 1 / -1;
    width: 100%;
    margin-top: 0;
    padding-top: .9rem;
    border-top: 1px solid var(--border, #d9ddd9);
}

.product-pricing-equivalence--full > .product-pricing-equivalence__trigger {
    width: auto;
    max-width: 100%;
}

.product-pricing-equivalence--full .product-pricing-equivalence__panel {
    width: 100%;
    padding: 1rem;
    border: 1px solid var(--border, #d9ddd9);
    border-radius: 12px;
    background: #f7faf8;
}

.product-pricing-equivalence--full .product-pricing-equivalence-form {
    display: grid;
    gap: .85rem;
}

.product-pricing-equivalence--full .product-pricing-equivalence-form__equation {
    grid-template-columns: minmax(12rem, 1fr) auto minmax(12rem, 1fr);
    max-width: 46rem;
}

.product-pricing-equivalence--full .product-pricing-equivalence-form .button {
    justify-self: start;
}

@media (max-width: 719px) {
    .product-pricing-equivalence--full .product-pricing-equivalence-form__equation {
        grid-template-columns: 1fr;
        max-width: none;
    }

    .product-pricing-equivalence--full > .product-pricing-equivalence__trigger,
    .product-pricing-equivalence--full .product-pricing-equivalence-form .button {
        width: 100%;
        justify-content: center;
    }
}


/* A14.7.5.2 — formação da referência de preço */
.product-pricing-next-step {
    margin-top: 1.25rem;
    padding: 1.1rem;
    border: 1px solid var(--border-color, #dfe5df);
    border-radius: 14px;
    background: rgba(239, 246, 241, .55);
}
.product-pricing-next-step__intro h3 { margin: .15rem 0 .5rem; }
.product-pricing-final-details { margin-top: 1rem; }
.product-pricing-final-summary {
    display: inline-flex;
    cursor: pointer;
    list-style: none;
}
.product-pricing-final-summary::-webkit-details-marker { display: none; }
.product-pricing-final-form {
    margin-top: 1rem;
    display: grid;
    gap: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--border-color, #dfe5df);
}
.product-pricing-final-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
}
.product-pricing-final-grid article {
    padding: .9rem;
    border: 1px solid var(--border-color, #dfe5df);
    border-radius: 12px;
    background: #fff;
}
.product-pricing-final-grid span, .product-pricing-final-grid small { display: block; }
.product-pricing-final-grid strong { display: block; margin: .25rem 0; font-size: 1.15rem; }
.product-pricing-return-choice {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem;
    border: 0;
    padding: 0;
    margin: 0;
}
.product-pricing-return-choice legend { font-weight: 700; margin-bottom: .55rem; }
.product-pricing-return-choice label {
    display: flex;
    gap: .55rem;
    align-items: flex-start;
    padding: .8rem;
    border: 1px solid var(--border-color, #dfe5df);
    border-radius: 12px;
    background: #fff;
    cursor: pointer;
}
.product-pricing-return-choice small, .product-pricing-return-choice strong { display: block; }
.product-pricing-return-value { max-width: 420px; }
.product-pricing-return-input { display: flex; align-items: stretch; }
.product-pricing-return-input input { border-radius: 10px 0 0 10px; }
.product-pricing-return-input span {
    display: flex;
    align-items: center;
    padding: 0 .8rem;
    border: 1px solid var(--border-color, #dfe5df);
    border-left: 0;
    border-radius: 0 10px 10px 0;
    background: #f5f7f5;
    font-weight: 700;
}
.product-pricing-final-preview {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1.2fr);
    gap: .6rem;
    align-items: stretch;
}
.product-pricing-final-preview > div {
    padding: .8rem;
    border: 1px solid var(--border-color, #dfe5df);
    border-radius: 12px;
    background: #fff;
}
.product-pricing-final-preview > b { align-self: center; font-size: 1.25rem; }
.product-pricing-final-preview span, .product-pricing-final-preview strong { display: block; }
.product-pricing-final-preview strong { margin-top: .25rem; font-size: 1.15rem; }
.product-pricing-final-preview__total { background: rgba(232, 242, 235, .9) !important; }
.product-pricing-final-comparison, .product-pricing-final-explanation {
    padding: .85rem 1rem;
    border-radius: 10px;
    background: #f5f7f5;
}
.product-pricing-final-explanation p { margin: .3rem 0 0; }
@media (max-width: 760px) {
    .product-pricing-final-grid, .product-pricing-return-choice { grid-template-columns: 1fr; }
    .product-pricing-final-preview { grid-template-columns: 1fr; }
    .product-pricing-final-preview > b { text-align: center; }
}

/* A14.8.3 — Resultado estimado */
.money-result-page {
    display: grid;
    gap: 1.15rem;
}

.money-result-heading {
    align-items: flex-start;
}

.money-result-warning {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: center;
    padding: 1rem;
    border: 1px solid #decf9f;
    border-radius: 12px;
    background: #fff9e8;
}

.money-result-warning p {
    margin: .3rem 0 0;
}

.money-result-main {
    padding: 1rem;
    border: 1px solid var(--border-color, #dfe5df);
    border-radius: 14px;
    background: var(--surface, #fff);
}

.money-result-flow {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1.15fr);
    gap: .7rem;
    align-items: stretch;
}

.money-result-flow-card {
    display: grid;
    align-content: start;
    gap: .35rem;
    padding: 1rem;
    border: 1px solid var(--border-color, #dfe5df);
    border-radius: 12px;
    background: #fff;
}

.money-result-flow-card span,
.money-result-lines span,
.money-result-cash-grid span {
    color: var(--muted, #657168);
    font-size: .88rem;
}

.money-result-flow-card strong {
    font-size: 1.5rem;
}

.money-result-flow-card small {
    line-height: 1.45;
}

.money-result-flow-card--highlight {
    background: #eef5ef;
    border-color: #cfded1;
}

.money-result-flow-sign {
    align-self: center;
    font-size: 1.5rem;
    font-weight: 700;
}

.money-result-breakdown,
.money-result-cash {
    display: grid;
    gap: 1rem;
}

.money-result-section-heading {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: end;
}

.money-result-section-heading h2,
.money-result-section-heading p {
    margin-bottom: 0;
}

.money-result-section-heading > strong {
    font-size: 1.35rem;
    white-space: nowrap;
}

.money-result-lines {
    display: grid;
    gap: 0;
    border-top: 1px solid var(--border-color, #dfe5df);
}

.money-result-lines > div {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 2fr) auto;
    gap: .8rem;
    align-items: center;
    padding: .85rem 0;
    border-bottom: 1px solid var(--border-color, #dfe5df);
}

.money-result-lines small {
    color: var(--muted, #657168);
    line-height: 1.4;
}

.money-result-lines strong {
    text-align: right;
    white-space: nowrap;
}

.money-result-explanation {
    margin: 0;
    max-width: none;
    width: 100%;
}

.money-result-cash-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
}

.money-result-cash-grid article {
    display: grid;
    gap: .3rem;
    padding: .9rem;
    border: 1px solid var(--border-color, #dfe5df);
    border-radius: 12px;
    background: #fff;
}

.money-result-cash-grid strong {
    font-size: 1.2rem;
}

.money-result-cash-grid__balance {
    background: #f5f7f5 !important;
}

@media (max-width: 860px) {
    .money-result-flow {
        grid-template-columns: 1fr;
    }

    .money-result-flow-sign {
        text-align: center;
    }

    .money-result-lines > div {
        grid-template-columns: 1fr auto;
    }

    .money-result-lines > div small {
        grid-column: 1 / -1;
        grid-row: 2;
    }
}

@media (max-width: 640px) {
    .money-result-warning,
    .money-result-section-heading {
        align-items: stretch;
        flex-direction: column;
    }

    .money-result-warning .button {
        width: 100%;
    }

    .money-result-section-heading > strong {
        white-space: normal;
    }

    .money-result-lines > div {
        grid-template-columns: 1fr;
    }

    .money-result-lines > div small {
        grid-column: auto;
        grid-row: auto;
    }

    .money-result-lines strong {
        text-align: left;
    }

    .money-result-cash-grid {
        grid-template-columns: 1fr;
    }
}

/* A14.8.3C2 — refinamentos didáticos do Resultado estimado */
.money-result-intro {
    display: grid;
    gap: .55rem;
    margin-top: .75rem;
    max-width: none;
    width: 100%;
}

.money-result-intro h2 {
    margin: 0;
    font-size: 1.05rem;
    line-height: 1.35;
}

.money-result-intro p {
    margin: 0;
    line-height: 1.55;
}

.money-result-section-total {
    display: flex;
    justify-content: flex-end;
    gap: 1rem;
    align-items: baseline;
    padding-top: .15rem;
}

.money-result-section-total span {
    color: var(--muted, #657168);
    font-size: .9rem;
}

.money-result-section-total strong {
    font-size: 1.25rem;
    white-space: nowrap;
}

@media (max-width: 640px) {
    .money-result-section-total {
        justify-content: space-between;
        align-items: flex-start;
    }

    .money-result-section-total strong {
        white-space: normal;
        text-align: right;
    }
}

/* A14.9.1 — Relatório de Dinheiro */
.money-report-page {
    display: grid;
    gap: 24px;
}

.money-report-heading > div > p:not(.eyebrow),
.money-report-section-heading > div > p:not(.eyebrow),
.money-report-reading > p:not(.eyebrow) {
    max-width: none;
}

.money-report-warning {
    padding: 18px 20px;
    border: 1px solid var(--color-border, #d9d9d4);
    border-radius: 14px;
    background: var(--color-surface-soft, #f7f7f3);
}

.money-report-warning p {
    margin: 6px 0 0;
}

.money-report-section {
    display: grid;
    gap: 18px;
}

.money-report-section-heading {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 18px;
}

.money-report-section-heading h2,
.money-report-reading h2 {
    margin-bottom: 8px;
}

.money-report-summary-grid,
.money-report-open-grid,
.money-report-cost-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.money-report-summary-grid article,
.money-report-open-grid article,
.money-report-cost-grid article {
    display: grid;
    gap: 7px;
    padding: 16px;
    border: 1px solid var(--color-border, #deded8);
    border-radius: 14px;
    background: var(--color-surface, #fff);
}

.money-report-summary-grid article > span,
.money-report-open-grid article > span,
.money-report-cost-grid article > span,
.money-report-result-lines span,
.money-report-line span {
    font-weight: 650;
}

.money-report-summary-grid article > strong,
.money-report-open-grid article > strong,
.money-report-cost-grid article > strong {
    font-size: 1.35rem;
}

.money-report-summary-grid article small,
.money-report-open-grid article small,
.money-report-cost-grid article small,
.money-report-line small {
    color: var(--color-text-muted, #66665f);
}

.money-report-summary-grid__result {
    background: var(--color-surface-soft, #f3f6f2) !important;
}

.money-report-two-columns {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.money-report-composition {
    padding: 18px;
    border: 1px solid var(--color-border, #deded8);
    border-radius: 14px;
    background: var(--color-surface, #fff);
}

.money-report-composition h3 {
    margin: 0 0 10px;
}

.money-report-line {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 18px;
    padding: 12px 0;
    border-bottom: 1px solid var(--color-border-soft, #ecece7);
}

.money-report-line > div {
    display: grid;
    gap: 3px;
}

.money-report-line > strong {
    white-space: nowrap;
}

.money-report-total,
.money-report-result-total {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 18px;
    margin-top: 10px;
    padding-top: 14px;
    border-top: 1px solid var(--color-border, #d8d8d2);
}

.money-report-total strong,
.money-report-result-total strong {
    font-size: 1.35rem;
}

.money-report-result-lines {
    display: grid;
    gap: 0;
    border-top: 1px solid var(--color-border-soft, #ecece7);
}

.money-report-result-lines > div {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 18px;
    padding: 13px 0;
    border-bottom: 1px solid var(--color-border-soft, #ecece7);
}

.money-report-result-total {
    margin-top: 0;
    padding: 16px 0 0;
}

.money-report-reading {
    display: block;
}

@media (max-width: 900px) {
    .money-report-summary-grid,
    .money-report-open-grid,
    .money-report-cost-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .money-report-two-columns {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .money-report-summary-grid,
    .money-report-open-grid,
    .money-report-cost-grid {
        grid-template-columns: 1fr;
    }

    .money-report-section-heading,
    .money-report-line,
    .money-report-total,
    .money-report-result-lines > div,
    .money-report-result-total {
        align-items: flex-start;
    }

    .money-report-line,
    .money-report-total,
    .money-report-result-lines > div,
    .money-report-result-total {
        flex-direction: column;
        gap: 6px;
    }
}

/* P01.2.1 — Planejar próximo período */
.planning-page {
    display: grid;
    gap: 1.25rem;
}

.planning-heading > div > p:not(.eyebrow),
.planning-section-heading > div > p:not(.eyebrow) {
    max-width: none;
}

.planning-period {
    display: grid;
    grid-template-columns: minmax(220px, 1.25fr) repeat(2, minmax(160px, .8fr)) auto;
    gap: .9rem;
    align-items: end;
}

.planning-period-reading {
    margin: 0;
    color: var(--color-text-soft, #5f625f);
}

.planning-section {
    display: grid;
    gap: 1rem;
}

.planning-section-heading h2,
.planning-next h2 {
    margin-bottom: .25rem;
}

.planning-summary-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .9rem;
}

.planning-summary-grid article,
.planning-money-grid article,
.planning-capacity > div {
    border: 1px solid var(--color-border, #dedfdc);
    border-radius: 14px;
    padding: 1rem;
    background: var(--color-surface, #fff);
    display: grid;
    gap: .35rem;
}

.planning-summary-grid span,
.planning-money-grid span,
.planning-capacity span {
    font-size: .88rem;
    color: var(--color-text-soft, #686b68);
}

.planning-summary-grid strong,
.planning-money-grid strong,
.planning-capacity strong {
    font-size: 1.32rem;
    line-height: 1.15;
}

.planning-summary-grid small,
.planning-row small {
    color: var(--color-text-soft, #686b68);
}

.planning-operational-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.planning-panel,
.planning-details,
.planning-guidance {
    border: 1px solid var(--color-border, #dedfdc);
    border-radius: 14px;
    padding: 1rem;
    background: var(--color-surface, #fff);
}

.planning-panel > h3,
.planning-details > summary {
    margin: 0 0 .35rem;
}

.planning-details > summary {
    cursor: pointer;
    font-weight: 700;
}

.planning-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1rem;
    align-items: center;
    padding: .85rem 0;
    border-bottom: 1px solid var(--color-border, #e6e7e4);
    color: inherit;
    text-decoration: none;
}

.planning-row:last-child {
    border-bottom: 0;
}

.planning-row > span {
    display: grid;
    gap: .15rem;
}

.planning-row > span:last-child {
    text-align: right;
}

.planning-row:not(.planning-row--static):hover strong {
    text-decoration: underline;
}

.planning-more {
    display: inline-block;
    margin-top: .8rem;
    font-weight: 650;
}

.planning-capacity,
.planning-money-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .9rem;
}

.planning-warning {
    border: 1px solid currentColor;
    border-radius: 12px;
    padding: .95rem 1rem;
    display: grid;
    gap: .3rem;
}

.planning-warning p,
.planning-guidance p,
.planning-difference,
.planning-next p {
    margin: 0;
}

.planning-warning--soft {
    opacity: .92;
}

.planning-difference {
    padding-top: .15rem;
}

.planning-next {
    padding-bottom: 1.5rem;
}

.planning-next__note {
    color: var(--color-text-soft, #686b68);
}

@media (max-width: 900px) {
    .planning-period {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .planning-period__choice,
    .planning-period .button {
        grid-column: 1 / -1;
    }

    .planning-summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .planning-operational-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 620px) {
    .planning-period,
    .planning-summary-grid,
    .planning-money-grid,
    .planning-capacity {
        grid-template-columns: 1fr;
    }

    .planning-period__choice,
    .planning-period .button {
        grid-column: auto;
    }

    .planning-summary-grid article {
        padding: .85rem .95rem;
    }

    .planning-summary-grid strong {
        font-size: 1.18rem;
    }

    .planning-row {
        grid-template-columns: 1fr;
        gap: .35rem;
    }

    .planning-row > span:last-child {
        text-align: left;
    }
}

/* P01.2.1C1 — refinamento Planejar próximo período */
.planning-heading > div {
    width: 100%;
    max-width: none;
}

.planning-period {
    grid-template-columns: minmax(210px, 1.2fr) minmax(155px, .75fr) minmax(155px, .75fr) auto;
    gap: .75rem;
}

.planning-period .field {
    margin: 0;
}

.planning-period .button {
    white-space: nowrap;
}

.planning-team-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .9rem;
}

.planning-team-grid article {
    border: 1px solid var(--color-border, #dedfdc);
    border-radius: 14px;
    padding: 1rem;
    background: var(--color-surface, #fff);
    display: grid;
    gap: .35rem;
}

.planning-team-grid span {
    font-size: .88rem;
    color: var(--color-text-soft, #686b68);
}

.planning-team-grid strong {
    font-size: 1.32rem;
    line-height: 1.15;
}

.planning-team-grid small {
    color: var(--color-text-soft, #686b68);
}

.planning-team-coverage {
    margin: 0;
}

.planning-stock-total {
    display: flex;
    justify-content: flex-end;
    align-items: baseline;
    gap: 1rem;
    padding-top: .8rem;
    margin-top: .25rem;
    border-top: 1px solid var(--color-border, #dedfdc);
}

.planning-stock-total span {
    color: var(--color-text-soft, #686b68);
}

.planning-stock-total strong {
    font-size: 1.15rem;
}

.planning-cost-total {
    display: flex;
    justify-content: flex-end;
    align-items: baseline;
    gap: 1rem;
    padding-top: .8rem;
    margin-top: .25rem;
    border-top: 1px solid var(--color-border, #dedfdc);
}

.planning-cost-total span {
    color: var(--color-text-soft, #686b68);
}

.planning-cost-total strong {
    font-size: 1.15rem;
}

.planning-attention-list {
    display: grid;
    gap: .75rem;
}

@media (max-width: 620px) {
    .planning-team-grid {
        grid-template-columns: 1fr;
    }

    .planning-stock-total,
    .planning-cost-total {
        justify-content: space-between;
    }
}


/* P01.3.2 — meta do período */

.planning-goal{margin-top:.25rem}.planning-goal-form{display:grid;gap:1rem;border:1px solid var(--color-border,#dedfdc);border-radius:16px;padding:1rem;background:var(--color-surface,#fff)}.planning-goal-period,.planning-goal-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem}.planning-goal-choice{display:grid;gap:.6rem;border:0;padding:0;margin:0}.planning-goal-choice legend{font-weight:700;margin-bottom:.2rem}.planning-goal-choice label{display:flex;gap:.55rem;align-items:center}.planning-money-input{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;border:1px solid var(--color-border,#cfd1cd);border-radius:10px;background:var(--color-surface,#fff);overflow:hidden}.planning-money-input>span{padding:0 .75rem;color:var(--color-text-soft,#686b68);font-weight:650}.planning-money-input input{border:0;border-left:1px solid var(--color-border,#cfd1cd);border-radius:0;min-width:0}.planning-goal-result{display:grid;gap:1rem;padding-top:.3rem}.planning-goal-result-heading,.planning-work-heading{display:flex;justify-content:space-between;gap:1rem;align-items:end}.planning-goal-result-heading h3,.planning-work-heading h3{margin:0}.planning-goal-result-heading>span{color:var(--color-text-soft,#686b68);white-space:nowrap}.planning-goal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem}.planning-goal-grid article{border:1px solid var(--color-border,#dedfdc);border-radius:14px;padding:1rem;background:var(--color-surface,#fff);display:grid;gap:.35rem}.planning-goal-grid span{font-size:.88rem;color:var(--color-text-soft,#686b68)}.planning-goal-grid strong{font-size:1.23rem;line-height:1.18}.planning-goal-grid small{color:var(--color-text-soft,#686b68)}.planning-reference-notes{display:grid;gap:.35rem;border-top:1px solid var(--color-border,#dedfdc);padding-top:.9rem}.planning-reference-notes p,.planning-scenario-note{margin:0;color:var(--color-text-soft,#686b68)}.planning-goal-ok{border-color:var(--color-border,#dedfdc)}@media(max-width:900px){.planning-goal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.planning-goal-period,.planning-goal-values,.planning-goal-grid{grid-template-columns:1fr}.planning-goal-result-heading,.planning-work-heading{align-items:flex-start;flex-direction:column}.planning-goal-result-heading>span{white-space:normal}}



/* P01.3.2C1 — separação visual entre fotografia do período e cenário de planejamento */
.planning-snapshot-intro,.planning-scenario-intro{display:grid;gap:.25rem;padding:1rem 1.05rem;border:1px solid var(--color-border,#dedfdc);border-radius:14px;background:var(--color-surface,#fff)}
.planning-snapshot-intro,.planning-scenario-intro{border-left:4px solid var(--color-primary,#1f5c4a)}
.planning-snapshot-intro h2,.planning-scenario-intro h2{margin:0}
.planning-snapshot-intro p,.planning-scenario-intro p{margin:0;color:var(--color-text-soft,#686b68)}
.planning-calculated-feedback{display:grid;gap:.25rem;padding:.85rem 1rem;border:1px solid var(--color-border,#dedfdc);border-radius:12px;background:var(--color-surface,#fff)}
.planning-calculated-feedback p{margin:0;color:var(--color-text-soft,#686b68)}

/* F01.1 — Visão geral de Feiras e Eventos */
.events-page{display:grid;gap:1.35rem}.events-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.events-heading>div{max-width:760px}.events-heading--stacked{display:block}.events-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem}.events-overview article{display:grid;gap:.25rem;padding:1rem 1.05rem;border:1px solid var(--color-border,#dedfdc);border-radius:14px;background:var(--color-surface,#fff)}.events-overview span{color:var(--color-text-soft,#686b68);font-size:.9rem}.events-overview strong{font-size:1.7rem;line-height:1}.event-group{display:grid;gap:.8rem}.event-group__heading{display:flex;justify-content:space-between;align-items:end;gap:1rem}.event-group__heading h2,.event-group__heading p{margin:0}.event-group__heading p{margin-top:.2rem;color:var(--color-text-soft,#686b68)}.event-group__count{min-width:2rem;text-align:center;padding:.3rem .55rem;border-radius:999px;background:var(--color-surface-muted,#f2f3f1);font-weight:700}.event-list{display:grid;gap:.8rem}.event-card{display:grid;gap:.9rem;padding:1rem 1.05rem;border:1px solid var(--color-border,#dedfdc);border-radius:14px;background:var(--color-surface,#fff)}.event-card__top{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.event-card__top h3{margin:.15rem 0 0;font-size:1.1rem}.event-card__type{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-soft,#686b68);font-weight:700}.event-status{display:inline-flex;align-items:center;min-height:30px;padding:.3rem .65rem;border-radius:999px;font-size:.82rem;font-weight:700;white-space:nowrap}.event-status--planned{background:#eef3f1;color:#315f52}.event-status--active{background:#e7f3ea;color:#27613b}.event-status--attention{background:#fff2d8;color:#7d5600}.event-status--muted{background:#f0f0ee;color:#656760}.event-card__meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem 1rem}.event-card__meta span{display:grid;gap:.15rem;color:var(--color-text-soft,#686b68)}.event-card__meta strong{color:var(--color-text,#252724);font-size:.8rem;text-transform:uppercase;letter-spacing:.03em}.event-card__objective{margin:0;color:var(--color-text-soft,#686b68)}.event-card__attention{padding:.7rem .8rem;border-radius:10px;background:#fff8e9;border:1px solid #edd7a1;color:#71531a;font-size:.92rem}.event-card__links{display:flex;gap:.45rem;flex-wrap:wrap}.event-card__links span{padding:.28rem .55rem;border-radius:999px;background:var(--color-surface-muted,#f2f3f1);font-size:.82rem;color:var(--color-text-soft,#686b68)}.event-empty-inline{padding:.85rem 1rem;border:1px dashed var(--color-border,#dedfdc);border-radius:12px;color:var(--color-text-soft,#686b68)}.events-empty-state h2{margin-top:0}.event-next-step-card{display:grid;gap:.65rem;padding:1rem 1.05rem;border:1px solid var(--color-border,#dedfdc);border-radius:14px;background:var(--color-surface,#fff);max-width:760px}.event-next-step-card h2,.event-next-step-card p{margin:0}
@media(max-width:720px){.events-heading{display:grid}.events-heading .button{width:100%}.events-overview{grid-template-columns:1fr}.event-card__top{display:grid}.event-status{justify-self:start}.event-card__meta{grid-template-columns:1fr}.event-group__heading{align-items:flex-start}}

/* F01.2 — Novo evento */
.event-form{display:grid;gap:1rem;max-width:920px}.event-form .form-card{margin:0}.form-card__intro{margin:-.2rem 0 .8rem;color:var(--color-text-soft,#686b68)}.field--span-2{grid-column:1/-1}.event-form__actions{display:flex;align-items:center;justify-content:space-between;gap:1rem}.event-summary-card{display:grid;gap:1rem;padding:1.1rem;border:1px solid var(--color-border,#dedfdc);border-radius:14px;background:var(--color-surface,#fff)}.event-summary-card__heading{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.event-summary-card__heading h2{margin:.15rem 0 0}.event-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;margin:0}.event-summary-grid div{display:grid;gap:.15rem;padding:.75rem;border-radius:10px;background:var(--color-surface-muted,#f5f5f3)}.event-summary-grid dt{font-size:.78rem;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-soft,#686b68);font-weight:700}.event-summary-grid dd{margin:0}.event-summary-text{display:grid;gap:.25rem}.event-summary-text p{margin:0;color:var(--color-text-soft,#686b68)}
@media(max-width:720px){.event-form__actions{align-items:stretch;flex-direction:column-reverse}.event-form__actions .button{width:100%}.event-summary-card__heading{display:grid}.event-summary-grid{grid-template-columns:1fr}}
.event-card__actions{display:flex;justify-content:flex-end}.event-card__actions .ux-inline-link{font-weight:700}

/* F01.3 — Página do evento / momento Antes */
.event-detail-page { display: grid; gap: 1.25rem; }
.event-before-summary { margin: 0; }
.event-work-card {
    background: var(--surface, #fff);
    border: 1px solid var(--border-color, #dedede);
    border-radius: 16px;
    padding: 1.25rem;
    display: grid;
    gap: 1rem;
}
.event-work-card__heading {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
    justify-content: space-between;
}
.event-work-card__heading h2 { margin: .15rem 0 .35rem; }
.event-work-card__heading p { margin: 0; max-width: 780px; }
.event-work-card__metric { font-weight: 700; white-space: nowrap; }
.event-empty-inline--large { display: grid; gap: .25rem; padding: 1rem; }
.event-plan-list, .event-readiness-list, .event-production-list { display: grid; gap: .75rem; }
.event-plan-item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: 1rem;
    align-items: center;
    padding: .9rem 0;
    border-bottom: 1px solid var(--border-color, #e4e4e4);
}
.event-plan-item:last-child { border-bottom: 0; }
.event-plan-item__identity { display: grid; gap: .15rem; }
.event-plan-item__identity span, .event-readiness-item__title span { font-size: .9rem; opacity: .72; }
.event-plan-item__quantity { display: grid; text-align: right; gap: .1rem; }
.event-plan-item__quantity span { font-size: .8rem; opacity: .7; }
.ux-inline-link--danger { border: 0; background: none; cursor: pointer; color: #a23434; padding: .25rem; font: inherit; }
.event-add-plan { border-top: 1px solid var(--border-color, #e2e2e2); padding-top: .9rem; }
.event-add-plan summary { cursor: pointer; font-weight: 700; }
.event-plan-form { margin-top: 1rem; display: grid; gap: 1rem; }
.event-plan-form__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}
.event-plan-form__grid .field { min-width: 0; }
.event-plan-form__grid .field input,
.event-plan-form__grid .field select { width: 100%; box-sizing: border-box; }
.event-plan-form .form-actions { margin-top: 0; }
@media (max-width: 720px) {
    .event-plan-form__grid { grid-template-columns: 1fr; }
    .event-plan-form .form-actions .button { width: 100%; }
}
.event-readiness-overview {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .75rem;
}
.event-readiness-overview article {
    border: 1px solid var(--border-color, #e1e1e1);
    border-radius: 12px;
    padding: .9rem;
    display: grid;
    gap: .3rem;
}
.event-readiness-overview span { font-size: .82rem; opacity: .72; }
.event-readiness-overview strong { font-size: 1.35rem; }
.event-readiness-item {
    border-top: 1px solid var(--border-color, #e5e5e5);
    padding-top: .9rem;
    display: grid;
    gap: .75rem;
}
.event-readiness-item__title { display: grid; }
.event-readiness-item dl {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .6rem;
    margin: 0;
}
.event-readiness-item dl > div { padding: .65rem; background: rgba(0,0,0,.025); border-radius: 9px; }
.event-readiness-item dt { font-size: .78rem; opacity: .7; }
.event-readiness-item dd { margin: .2rem 0 0; font-weight: 700; }
.needs-attention { background: rgba(178, 105, 15, .08) !important; }
.is-covered { background: rgba(35, 121, 72, .07) !important; }
.event-production-list article {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 1rem;
    padding: .85rem 0;
    border-bottom: 1px solid var(--border-color, #e4e4e4);
}
.event-production-list article:last-child { border-bottom: 0; }
.event-production-list article > div:first-child { display: grid; gap: .15rem; }
.event-production-list article > div:first-child span { font-size: .85rem; opacity: .7; }
.event-production-list__summary { display: flex; gap: .75rem; flex-wrap: wrap; font-size: .88rem; }
.event-flow-footer { display: flex; justify-content: space-between; gap: 1rem; align-items: center; font-size: .9rem; opacity: .85; }

@media (max-width: 780px) {
    .event-work-card__heading { display: grid; }
    .event-work-card__heading .button { width: 100%; }
    .event-plan-item { grid-template-columns: 1fr auto; }
    .event-plan-item__quantity { grid-column: 1 / 2; text-align: left; }
    .event-plan-item form { grid-column: 2; grid-row: 1 / 3; }
    .event-readiness-overview { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .event-readiness-item dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .event-production-list article { grid-template-columns: 1fr; gap: .55rem; }
    .event-flow-footer { display: grid; }
}

@media (max-width: 480px) {
    .event-readiness-overview, .event-readiness-item dl { grid-template-columns: 1fr; }
}

/* F01.4 — Durante o evento */
.event-during-actions{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0 22px}.event-during-overview article small{display:block;margin-top:5px;color:var(--text-muted,#667085);font-size:.82rem}.event-during-card{scroll-margin-top:24px}@media(max-width:720px){.event-during-actions{display:grid;grid-template-columns:1fr}.event-during-actions .button{width:100%;justify-content:center}}

/* F01.5C2 — Avaliação qualitativa compacta e padrão de formulário */
.event-closing-section {
    margin-top: 1.25rem;
    padding-top: 1.25rem;
    border-top: 1px solid rgba(15, 23, 42, .10);
}
.event-closing-section__heading { margin-bottom: .85rem; }
.event-closing-section__heading h3 { margin: 0 0 .25rem; }
.event-closing-section__heading p { margin: 0; opacity: .75; }
.event-evaluation-grid {
    display: grid;
    gap: .55rem;
}
.event-evaluation-item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1rem;
    align-items: center;
    padding: .75rem .85rem;
    border: 1px solid rgba(15, 23, 42, .10);
    border-radius: 12px;
    background: rgba(255, 255, 255, .55);
}
.event-evaluation-copy { min-width: 0; }
.event-evaluation-copy strong { display: block; margin-bottom: .12rem; }
.event-evaluation-copy span {
    display: block;
    font-size: .86rem;
    line-height: 1.35;
    opacity: .72;
}
.event-rating-options {
    display: grid;
    grid-template-columns: repeat(3, minmax(68px, 1fr));
    gap: .35rem;
}
.event-rating-input {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}
.event-rating-option {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: .45rem .65rem;
    border: 1px solid rgba(15, 23, 42, .16);
    border-radius: 9px;
    background: #fff;
    font-weight: 650;
    text-align: center;
    cursor: pointer;
    user-select: none;
    transition: border-color .15s ease, background-color .15s ease, box-shadow .15s ease;
}
.event-rating-option:hover { border-color: rgba(15, 23, 42, .34); }
.event-rating-input:checked + .event-rating-option {
    border-color: var(--primary, #245f50);
    background: rgba(36, 95, 80, .10);
    box-shadow: inset 0 0 0 1px var(--primary, #245f50);
}
.event-rating-input:focus-visible + .event-rating-option {
    outline: 3px solid rgba(36, 95, 80, .18);
    outline-offset: 2px;
}
.event-evaluation-unavailable {
    display: grid;
    gap: .2rem;
    padding: .8rem .9rem;
    border: 1px dashed rgba(15, 23, 42, .18);
    border-radius: 12px;
    background: rgba(15, 23, 42, .025);
}
.event-evaluation-unavailable span { font-size: .88rem; opacity: .72; }
.event-closing-note-field {
    display: grid;
    gap: .4rem;
    width: 100%;
}
.event-closing-note-field > span { font-weight: 650; }
.event-closing-note-field textarea {
    display: block;
    width: 100%;
    min-height: 112px;
    resize: vertical;
}
.event-closing-note-field .form-help {
    display: block;
    font-size: .82rem;
    line-height: 1.35;
    opacity: .68;
}
.event-evaluation-summary {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem;
    margin-top: 1rem;
}
.event-evaluation-summary__item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .75rem .85rem;
    border: 1px solid rgba(15, 23, 42, .10);
    border-radius: 12px;
}
.event-evaluation-summary__item span { font-size: .9rem; }
.event-evaluation-badge {
    white-space: nowrap;
    padding: .3rem .55rem;
    border-radius: 999px;
    background: rgba(15, 23, 42, .07);
    font-size: .82rem;
}
.event-closing-notes { margin-top: 1rem; }
.event-closing-notes h3 { margin-bottom: .35rem; }
.event-closing-notes p { margin: 0; }

@media (max-width: 760px) {
    .event-evaluation-item {
        grid-template-columns: 1fr;
        gap: .6rem;
    }
    .event-rating-options { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .event-evaluation-summary { grid-template-columns: 1fr; }
}


/* F01.5C4 — edição contextual dos dados básicos do evento */
.event-basic-edit {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--border-color, #ddd);
}

.event-basic-edit > summary {
    cursor: pointer;
    width: fit-content;
    list-style: none;
}

.event-basic-edit > summary::-webkit-details-marker {
    display: none;
}

.event-basic-edit[open] > summary {
    margin-bottom: 1rem;
}

.event-inline-edit-form {
    margin-top: 1rem;
}

.event-inline-edit-form__actions {
    margin-top: 1rem;
}

.event-edit-note {
    margin: 0 0 1rem;
    padding: .75rem 1rem;
    border-radius: .75rem;
    background: rgba(0, 0, 0, .035);
}

/* F01.5C5 — Edição da oferta planejada e hierarquia de ações */
.event-plan-item__actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .65rem;
    flex-wrap: wrap;
}
.event-plan-item__actions form { margin: 0; }
.event-plan-edit-card {
    display: grid;
    gap: 1rem;
    padding: 1rem;
    border: 1px solid var(--border-color, #dedede);
    border-radius: 14px;
    background: var(--color-surface-muted, #f7f7f5);
}
.event-plan-edit-card__heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}
.event-plan-edit-card__heading h3 { margin: .15rem 0 0; }
.event-plan-edit-card__actions {
    justify-content: space-between;
    align-items: center;
}
.event-basic-edit > summary.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: var(--ux-button-min-height, 44px);
}
@media (max-width: 720px) {
    .event-plan-item__actions {
        grid-column: 1 / -1;
        justify-content: flex-start;
    }
    .event-plan-edit-card__heading { display: grid; }
    .event-plan-edit-card__actions {
        align-items: stretch;
        flex-direction: column-reverse;
    }
    .event-plan-edit-card__actions .button { width: 100%; }
}

/* F01.5C6 — contexto Evento → Produção */
.production-destination-need-item {
    padding: 0.55rem 0;
    border-bottom: 1px solid var(--border-color, #d9dedb);
}

.production-destination-need-item:last-child {
    border-bottom: 0;
}

.production-destination-need-item strong {
    display: block;
    margin-bottom: 0.15rem;
}

.production-destination-need-item p {
    margin: 0;
}

/* A08.2C1 — UX Compra → Pagamento */
.purchase-summary__payment small {
    line-height: 1.35;
    opacity: .72;
}

.purchase-payment-section {
    scroll-margin-top: 7rem;
}

@media (min-width: 720px) {
    .purchase-summary {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 719px) {
    .purchase-heading-actions .button {
        width: 100%;
        justify-content: center;
    }
}

/* D01.2 — estrutura-base do Dashboard */
.home-dashboard{display:grid;gap:1.35rem}.home-dashboard__heading p:not(.eyebrow){max-width:760px}.home-section,.home-attention{display:grid;gap:.85rem}.home-section-heading{display:flex;justify-content:space-between;align-items:end;gap:1rem}.home-section-heading h2,.home-section-heading p{margin:0}.home-dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem}.home-module-card{display:grid;gap:.65rem;padding:1rem 1.05rem;border:1px solid var(--color-border,var(--border,#dedfdc));border-radius:14px;background:var(--color-surface,var(--surface,#fff));align-content:start}.home-module-card__head{display:flex;justify-content:space-between;align-items:flex-start;gap:.65rem}.home-module-card__head>span:first-child{font-weight:750}.home-module-card__value{font-size:1.55rem;line-height:1.15}.home-module-card__value--text{font-size:1.18rem}.home-module-card p{margin:0;color:var(--color-text-soft,var(--muted,#686b68));line-height:1.45}.home-module-card .button{justify-self:start;margin-top:.15rem}.home-status{display:inline-flex;align-items:center;min-height:28px;padding:.25rem .55rem;border-radius:999px;background:var(--color-surface-muted,#f2f3f1);color:var(--color-text-soft,var(--muted,#686b68));font-size:.78rem;font-weight:700;white-space:nowrap}.home-status--attention{background:#fff2d8;color:#7d5600}.home-attention-list{display:grid;gap:.7rem}.home-attention-card{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 1rem;border:1px solid #edd7a1;border-radius:12px;background:#fff8e9}.home-attention-card>div{display:grid;gap:.2rem}.home-attention-card p{margin:0;color:#71531a;line-height:1.4}.home-attention-card strong{color:#5f4314}.home-attention-card .button{flex:0 0 auto}.home-goal{display:flex;justify-content:space-between;align-items:center;gap:1.25rem;padding:1rem 1.05rem;border:1px solid var(--color-border,var(--border,#dedfdc));border-left:4px solid var(--color-primary,var(--primary,#1f5c4a));border-radius:14px;background:var(--color-surface,var(--surface,#fff))}.home-goal__content{display:grid;gap:.35rem;min-width:0}.home-goal h2,.home-goal p{margin:0}.home-goal p:not(.eyebrow),.home-goal small{color:var(--color-text-soft,var(--muted,#686b68))}.home-goal__progress{display:grid;gap:.35rem;margin-top:.45rem;max-width:580px}.home-goal__progress-head{display:flex;justify-content:space-between;gap:1rem;align-items:baseline}.home-progress-track{height:8px;border-radius:999px;background:var(--color-surface-muted,#eceeea);overflow:hidden}.home-progress-track span{display:block;height:100%;border-radius:inherit;background:var(--color-primary,var(--primary,#1f5c4a))}.home-empty-state{display:grid;gap:.35rem;padding:1rem 1.05rem;border:1px dashed var(--color-border,var(--border,#dedfdc));border-radius:14px}.home-empty-state h2,.home-empty-state p{margin:0}.home-empty-state p{color:var(--color-text-soft,var(--muted,#686b68))}@media(max-width:760px){.home-dashboard-grid{grid-template-columns:1fr}.home-attention-card,.home-goal{align-items:stretch;flex-direction:column}.home-attention-card .button,.home-goal>.button,.home-module-card .button{width:100%;justify-content:center}.home-module-card__head{align-items:flex-start}}

/* D01.3 — refinamento de leitura do Dashboard */
.home-module-card__actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-top:.15rem}
.home-module-card__actions .button{margin-top:0}
.home-module-card__text-link{font-weight:700;text-decoration:none;color:var(--color-primary,var(--primary,#1f5c4a))}
.home-module-card__text-link:hover,.home-module-card__text-link:focus{text-decoration:underline}
@media(max-width:760px){.home-module-card__actions{align-items:stretch;flex-direction:column}.home-module-card__actions .button{width:100%;justify-content:center}.home-module-card__text-link{text-align:center;padding:.55rem .25rem}}

/* E01.2 — visão geral da Equipe */
.team-page{display:grid;gap:1.25rem}.team-page__heading{align-items:flex-end}.team-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}.team-summary article,.team-person-card{display:grid;gap:.25rem;padding:1rem;border:1px solid var(--color-border,var(--border,#dedfdc));border-radius:14px;background:var(--color-surface,var(--surface,#fff))}.team-summary span,.team-person-card span{font-size:.82rem;color:var(--color-text-soft,var(--muted,#686b68))}.team-summary strong,.team-person-card strong{font-size:1.3rem}.team-summary small,.team-person-card small{color:var(--color-text-soft,var(--muted,#686b68));line-height:1.4}.team-section{display:grid;gap:.8rem}.team-section__heading h2,.team-section__heading p{margin:0}.team-section__heading p{margin-top:.2rem;color:var(--color-text-soft,var(--muted,#686b68))}.team-list{display:grid;gap:.7rem}.team-card{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem;border:1px solid var(--color-border,var(--border,#dedfdc));border-radius:14px;background:var(--color-surface,var(--surface,#fff));text-decoration:none;color:inherit}.team-card:hover,.team-card:focus{border-color:var(--color-primary,var(--primary,#1f5c4a));box-shadow:0 2px 10px rgba(0,0,0,.04)}.team-card__main{display:grid;gap:.35rem;min-width:0}.team-card__title{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}.team-card__main p{margin:0;color:var(--color-text-soft,var(--muted,#686b68))}.team-card__meta{display:flex;gap:1rem;flex-wrap:wrap;font-size:.9rem}.team-card__attention{color:#8b5d00;font-weight:700}.team-card__go{font-weight:700;color:var(--color-primary,var(--primary,#1f5c4a));white-space:nowrap}.team-card.is-inactive{opacity:.72}.team-inactive{border-top:1px solid var(--color-border,var(--border,#dedfdc));padding-top:.8rem}.team-inactive>summary{cursor:pointer;font-weight:750;padding:.35rem 0}.team-inactive>summary span{display:inline-flex;min-width:24px;justify-content:center;margin-left:.35rem;padding:.1rem .4rem;border-radius:999px;background:var(--color-surface-muted,#f2f3f1);font-size:.78rem}.team-inactive .team-list{margin-top:.7rem}.team-form{display:grid;gap:1rem}.team-form .form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.team-form .field--full{grid-column:1/-1}.team-form .field small{display:block;margin-top:.35rem;color:var(--color-text-soft,var(--muted,#686b68))}.team-person-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}.team-product-list{display:grid;gap:.7rem}.team-product-card{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem;border:1px solid var(--color-border,var(--border,#dedfdc));border-radius:14px;background:var(--color-surface,var(--surface,#fff))}.team-product-card p{margin:.2rem 0}.team-product-card small{color:var(--color-text-soft,var(--muted,#686b68))}@media(max-width:760px){.team-summary,.team-person-grid,.team-form .form-grid{grid-template-columns:1fr}.team-page__heading,.team-card,.team-product-card{align-items:stretch;flex-direction:column}.team-card__go{white-space:normal}.team-page__heading .button,.team-product-card .button,.team-form .form-actions .button{width:100%;justify-content:center}.team-card__meta{display:grid;gap:.25rem}.team-form .field--full{grid-column:auto}}

/* E01.3 — página da pessoa e disponibilidade da Equipe */
.team-section__heading--action{display:flex;justify-content:space-between;align-items:end;gap:1rem}.team-availability-card{display:grid;gap:.9rem;padding:1rem;border:1px solid var(--color-border,var(--border,#dedfdc));border-radius:14px;background:var(--color-surface,var(--surface,#fff))}.team-availability-card__summary{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.team-availability-card__summary>div{display:grid;gap:.25rem}.team-availability-card__summary span{font-size:.82rem;color:var(--color-text-soft,var(--muted,#686b68))}.team-availability-card__summary strong{font-size:1.25rem}.team-availability-card__summary small{color:var(--color-text-soft,var(--muted,#686b68))}.team-availability-edit{border-top:1px solid var(--color-border,var(--border,#dedfdc));padding-top:.85rem}.team-availability-edit>summary{list-style:none;cursor:pointer;width:fit-content}.team-availability-edit>summary::-webkit-details-marker{display:none}.team-availability-edit[open]>summary{margin-bottom:.9rem}.team-availability-form{display:grid;gap:.75rem}.team-availability-form .form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.team-availability-form .field--full{grid-column:1/-1}.team-availability-form .form-help{margin:0;color:var(--color-text-soft,var(--muted,#686b68));font-size:.88rem}.team-history{border-top:1px solid var(--color-border,var(--border,#dedfdc));padding-top:.7rem}.team-history>summary{cursor:pointer;font-weight:700}.team-history>summary span{display:inline-flex;min-width:24px;justify-content:center;margin-left:.35rem;padding:.1rem .4rem;border-radius:999px;background:var(--color-surface-muted,#f2f3f1);font-size:.78rem}.team-history-list{display:grid;gap:.45rem;margin-top:.65rem}.team-history-item{display:flex;justify-content:space-between;gap:1rem;padding:.65rem .75rem;border-radius:10px;background:var(--color-surface-muted,#f6f7f5)}.team-history-item span{color:var(--color-text-soft,var(--muted,#686b68));font-size:.88rem}.team-stage-list,.team-production-list{display:grid;gap:.65rem}.team-stage-card,.team-production-card{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 1rem;border:1px solid var(--color-border,var(--border,#dedfdc));border-radius:12px;background:var(--color-surface,var(--surface,#fff))}.team-stage-card>div,.team-production-card>div{display:grid;gap:.2rem;min-width:0}.team-stage-card small{color:var(--color-text-soft,var(--muted,#686b68))}.team-stage-card p,.team-production-card p{margin:0;color:var(--color-text-soft,var(--muted,#686b68))}.team-stage-card>a{font-weight:700;color:var(--color-primary,var(--primary,#1f5c4a));text-decoration:none;white-space:nowrap}.team-stage-card>a:hover,.team-stage-card>a:focus{text-decoration:underline}.team-production-card{text-decoration:none;color:inherit}.team-production-card:hover,.team-production-card:focus{border-color:var(--color-primary,var(--primary,#1f5c4a))}.team-production-card>span{font-size:.82rem;font-weight:700;padding:.25rem .5rem;border-radius:999px;background:var(--color-surface-muted,#f2f3f1);white-space:nowrap}.team-note{padding:1rem;border:1px solid var(--color-border,var(--border,#dedfdc));border-radius:12px;background:var(--color-surface,var(--surface,#fff));line-height:1.5}@media(max-width:760px){.team-section__heading--action,.team-availability-card__summary,.team-history-item,.team-stage-card,.team-production-card{align-items:stretch;flex-direction:column}.team-availability-form .form-grid{grid-template-columns:1fr}.team-availability-form .field--full{grid-column:auto}.team-availability-edit>summary,.team-availability-form .button{width:100%;justify-content:center}.team-stage-card>a{white-space:normal}.team-production-card>span{align-self:flex-start}}

/* E01.4 — gestão do vínculo da pessoa com a equipe */
.team-membership-card,.team-status-card{display:grid;gap:.9rem;padding:1rem;border:1px solid var(--color-border,var(--border,#dedfdc));border-radius:14px;background:var(--color-surface,var(--surface,#fff))}.team-membership-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}.team-membership-summary>div,.team-status-card>div{display:grid;gap:.2rem}.team-membership-summary span,.team-status-card span{font-size:.82rem;color:var(--color-text-soft,var(--muted,#686b68))}.team-membership-summary strong,.team-status-card strong{font-size:1.05rem}.team-membership-note{margin:0;padding:.75rem;border-radius:10px;background:var(--color-surface-muted,#f6f7f5);line-height:1.45}.team-membership-edit,.team-status-action{border-top:1px solid var(--color-border,var(--border,#dedfdc));padding-top:.8rem}.team-membership-edit>summary,.team-status-action>summary{list-style:none;cursor:pointer;width:fit-content}.team-membership-edit>summary::-webkit-details-marker,.team-status-action>summary::-webkit-details-marker{display:none}.team-membership-edit[open]>summary,.team-status-action[open]>summary{margin-bottom:.9rem}.team-membership-form,.team-status-action form{display:grid;gap:.8rem}.team-membership-form .form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.team-membership-form .field--full{grid-column:1/-1}.team-status-card{grid-template-columns:1fr auto;align-items:center}.team-status-card.is-inactive{background:var(--color-surface-muted,#f6f7f5)}.team-status-card small,.team-inactive-help{color:var(--color-text-soft,var(--muted,#686b68))}.team-status-action form{min-width:min(320px,80vw)}.team-status-action .form-help{margin:0;font-size:.88rem;color:var(--color-text-soft,var(--muted,#686b68))}.team-inactive-help{margin:0;border-top:1px solid var(--color-border,var(--border,#dedfdc));padding-top:.8rem}
@media(max-width:760px){.team-membership-summary,.team-membership-form .form-grid,.team-status-card{grid-template-columns:1fr}.team-membership-form .field--full{grid-column:auto}.team-membership-edit>summary,.team-status-action>summary,.team-membership-form .button,.team-status-action .button,.team-status-card>form .button{width:100%;justify-content:center}.team-status-action form{min-width:0}}

/* PF01.2 — Meu Perfil */
.profile-page__heading {
    align-items: flex-start;
}

.profile-sections,
.profile-form {
    display: grid;
    gap: 1rem;
}

.profile-card,
.profile-form-section {
    background: var(--surface, #fff);
    border: 1px solid var(--border-color, #dde3e8);
    border-radius: 16px;
    padding: 1.25rem;
}

.profile-card__heading,
.profile-form-section__heading {
    margin-bottom: 1rem;
}

.profile-card__heading h2,
.profile-form-section__heading h2 {
    margin: 0;
    font-size: 1.05rem;
}

.profile-card__heading p,
.profile-form-section__heading p {
    margin: .35rem 0 0;
    color: var(--text-muted, #66717c);
}

.profile-data-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem 1.5rem;
    margin: 0;
}

.profile-data-grid > div {
    min-width: 0;
}

.profile-data-grid__full {
    grid-column: 1 / -1;
}

.profile-data-grid dt {
    margin-bottom: .2rem;
    color: var(--text-muted, #66717c);
    font-size: .82rem;
}

.profile-data-grid dd {
    margin: 0;
    font-weight: 600;
    overflow-wrap: anywhere;
}

.profile-address {
    display: grid;
    gap: .25rem;
}

.profile-address span,
.profile-address small,
.profile-empty,
.profile-note {
    color: var(--text-muted, #66717c);
}

.profile-note {
    margin: 0;
    line-height: 1.55;
}

.profile-form-section .form-grid {
    margin-top: 0;
}

.profile-form .field > span {
    display: block;
    margin-bottom: .4rem;
    font-weight: 600;
}

@media (max-width: 720px) {
    .profile-page__heading .button {
        width: 100%;
    }

    .profile-data-grid {
        grid-template-columns: 1fr;
    }

    .profile-data-grid__full {
        grid-column: auto;
    }

    .profile-card,
    .profile-form-section {
        padding: 1rem;
    }
}


/* PF01.2C1 + UP01.1 — vínculo com a Unidade e Meu negócio */
.profile-business-card__body{display:flex;justify-content:space-between;align-items:center;gap:1rem}.profile-business-card__body>div{display:grid;gap:.25rem}.profile-business-card__body p,.business-responsible{margin:0;color:var(--text-muted,#66717c);line-height:1.5}.business-page__heading{align-items:flex-start}.business-sections{display:grid;gap:1rem}.business-page .profile-form{display:grid;gap:1rem}@media(max-width:720px){.profile-business-card__body{align-items:stretch;flex-direction:column}.profile-business-card__body .button,.business-page__heading .button,.business-page .form-actions .button{width:100%;justify-content:center}}

/* R01.2 — Relatório do evento */
.event-report-page{display:grid;gap:1rem}.event-report-heading{align-items:flex-start}.event-report-actions{display:flex;gap:.65rem;flex-wrap:wrap}.event-report-identity,.event-report-section{background:#fff;border:1px solid var(--border,#dfe4e8);border-radius:16px;padding:1.15rem}.event-report-identity{display:grid;gap:.45rem}.event-report-identity>div{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}.event-report-identity span,.event-report-identity small,.event-report-section__heading p,.event-report-empty{color:var(--text-muted,#66717c)}.event-report-section__heading{margin-bottom:1rem}.event-report-section__heading h2{margin:.15rem 0 .25rem}.event-report-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.event-report-metrics article{display:grid;gap:.2rem;padding:.9rem;border:1px solid var(--border,#dfe4e8);border-radius:12px;background:var(--surface-soft,#f8fafb)}.event-report-metrics span,.event-report-metrics small{color:var(--text-muted,#66717c)}.event-report-metrics strong{font-size:1.15rem}.event-report-table-wrap{overflow-x:auto}.event-report-table{width:100%;border-collapse:collapse}.event-report-table th,.event-report-table td{padding:.7rem .55rem;border-bottom:1px solid var(--border,#e5e8eb);text-align:left;vertical-align:top}.event-report-table th{font-size:.82rem;color:var(--text-muted,#66717c);font-weight:600}.event-report-table .number{text-align:right;white-space:nowrap}.event-report-subtitle{margin:1.1rem 0 .55rem;font-size:1rem}.event-report-contact-list{display:grid;gap:.5rem}.event-report-contact-list>div{display:flex;justify-content:space-between;gap:1rem;padding:.65rem 0;border-bottom:1px solid var(--border,#e5e8eb)}.event-report-contact-list span{color:var(--text-muted,#66717c);font-size:.9rem}.event-report-evaluation{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.event-report-evaluation>div{display:flex;justify-content:space-between;gap:1rem;padding:.7rem .8rem;border:1px solid var(--border,#e5e8eb);border-radius:10px}.event-report-evaluation span{color:var(--text-muted,#66717c)}.event-report-notes{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border,#e5e8eb)}.event-report-notes p{margin:.4rem 0 0;line-height:1.55}.event-report-footer{display:flex;justify-content:flex-start;padding:.25rem 0 1rem}
@media(max-width:720px){.event-report-actions{width:100%}.event-report-actions .button{flex:1 1 100%;justify-content:center}.event-report-metrics{grid-template-columns:1fr 1fr}.event-report-evaluation{grid-template-columns:1fr}.event-report-contact-list>div{flex-direction:column;gap:.2rem}}
@media(max-width:480px){.event-report-metrics{grid-template-columns:1fr}.event-report-identity>div{display:grid}}
@media print{.no-print,.app-header,.bottom-nav,.sidebar{display:none!important}.event-report-page{display:block}.event-report-identity,.event-report-section{break-inside:avoid;border-color:#bbb;box-shadow:none;margin-bottom:12px}.event-report-table-wrap{overflow:visible}.event-report-table{font-size:10pt}.event-report-page h1{font-size:20pt}.event-report-page h2{font-size:14pt}body{background:#fff}}

/* RF01.5 — Dashboard como camada de visão geral, distinta das páginas operacionais */
.home-dashboard--overview {
    display: grid;
    gap: 2rem;
}

.home-overview-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(240px, 320px);
    gap: 2rem;
    align-items: end;
    padding: 1.5rem 0 1.65rem;
    border-bottom: 1px solid var(--color-border, var(--border, #dedfdc));
}

.home-overview-hero__copy {
    display: grid;
    gap: .45rem;
}

.home-overview-hero__copy .eyebrow,
.home-overview-hero__copy h1,
.home-overview-hero__copy p {
    margin: 0;
}

.home-overview-hero__copy h1 {
    max-width: 720px;
    font-size: clamp(2rem, 5vw, 3.2rem);
    line-height: 1.04;
    letter-spacing: -.035em;
}

.home-overview-hero__copy p:not(.eyebrow) {
    max-width: 720px;
    color: var(--color-text-soft, var(--muted, #686b68));
    font-size: 1.02rem;
    line-height: 1.55;
}

.home-overview-hero__copy .home-overview-hero__last-access {
    margin-top: .15rem;
    font-size: .9rem;
    color: var(--color-text-soft, var(--muted, #686b68));
}

.home-overview-hero__copy .home-overview-hero__intro {
    margin-top: .35rem;
}

.home-overview-hero__signal {
    display: grid;
    gap: .25rem;
    padding: .85rem 0 .15rem 1rem;
    border-left: 3px solid var(--sem-info-border, #9fc5c8);
}

.home-overview-hero__signal--attention {
    border-left-color: var(--sem-warning-border, #dfbd67);
}

.home-overview-hero__signal--calm {
    border-left-color: var(--sem-success-border, #93c5a9);
}

.home-overview-hero__signal strong {
    font-size: 1.08rem;
}

.home-overview-hero__signal span {
    color: var(--color-text-soft, var(--muted, #686b68));
    font-size: .92rem;
    line-height: 1.4;
}

.home-priorities,
.home-overview-section {
    display: grid;
    gap: .85rem;
}

.home-overview-heading {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 1.5rem;
}

.home-overview-heading > div {
    display: grid;
    gap: .15rem;
}

.home-overview-heading .eyebrow,
.home-overview-heading h2,
.home-overview-heading p {
    margin: 0;
}

.home-overview-heading h2 {
    font-size: 1.35rem;
}

.home-overview-heading > p,
.home-overview-heading > span {
    max-width: 480px;
    color: var(--color-text-soft, var(--muted, #686b68));
    font-size: .9rem;
    line-height: 1.45;
    text-align: right;
}

.home-priority-list {
    border-top: 1px solid var(--color-border, var(--border, #dedfdc));
}

.home-priority-row {
    display: grid;
    grid-template-columns: .65rem minmax(0, 1fr) auto;
    gap: .85rem;
    align-items: center;
    padding: .85rem 0;
    border-bottom: 1px solid var(--color-border, var(--border, #dedfdc));
}

.home-priority-row__marker {
    width: .55rem;
    height: .55rem;
    border-radius: 999px;
    background: var(--sem-info-fg, #2c6e73);
}

.home-priority-row--warning .home-priority-row__marker {
    background: var(--sem-warning-fg, #7d5600);
}

.home-priority-row--danger .home-priority-row__marker {
    background: var(--sem-danger-fg, #9b2d24);
}

.home-priority-row__copy {
    display: grid;
    gap: .14rem;
    min-width: 0;
}

.home-priority-row__copy strong,
.home-priority-row__copy p {
    margin: 0;
}

.home-priority-row__copy p {
    color: var(--color-text-soft, var(--muted, #686b68));
    line-height: 1.42;
}

.home-overview-link {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    gap: .3rem;
    color: var(--color-primary, var(--primary, #1f5c4a));
    font-weight: 700;
    text-decoration: none;
}

.home-overview-link::after {
    content: '→';
    font-size: .9em;
}

.home-overview-link:hover,
.home-overview-link:focus-visible {
    text-decoration: underline;
}

.home-snapshot {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border-top: 1px solid var(--color-border, var(--border, #dedfdc));
    border-bottom: 1px solid var(--color-border, var(--border, #dedfdc));
}

.home-snapshot__item {
    display: grid;
    gap: .5rem;
    align-content: start;
    min-width: 0;
    padding: 1.15rem 1.2rem 1.2rem;
    border-left: 1px solid var(--color-border, var(--border, #dedfdc));
}

.home-snapshot__item:first-child {
    border-left: 0;
    padding-left: 0;
}

.home-snapshot__item:last-child {
    padding-right: 0;
}

.home-snapshot__label {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .4rem;
    min-height: 1.75rem;
    font-size: .88rem;
    font-weight: 750;
}

.home-snapshot__value {
    font-size: clamp(1.45rem, 3vw, 2rem);
    line-height: 1.08;
    letter-spacing: -.02em;
}

.home-snapshot__item p {
    min-height: 2.7em;
    margin: 0;
    color: var(--color-text-soft, var(--muted, #686b68));
    font-size: .9rem;
    line-height: 1.45;
}

.home-snapshot__item .home-overview-link {
    margin-top: .15rem;
    font-size: .9rem;
}

.home-followup-list {
    display: grid;
    border-top: 1px solid var(--color-border, var(--border, #dedfdc));
}

.home-followup-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1.5rem;
    padding: .9rem 0;
    border-bottom: 1px solid var(--color-border, var(--border, #dedfdc));
}

.home-followup-row > div:first-child {
    display: grid;
    gap: .12rem;
    min-width: 0;
}

.home-followup-row__label {
    color: var(--color-text-soft, var(--muted, #686b68));
    font-size: .78rem;
    font-weight: 750;
    letter-spacing: .025em;
    text-transform: uppercase;
}

.home-followup-row strong,
.home-followup-row p {
    margin: 0;
}

.home-followup-row p {
    color: var(--color-text-soft, var(--muted, #686b68));
    font-size: .9rem;
    line-height: 1.4;
}

.home-followup-row__actions {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.home-followup-row--muted strong,
.home-followup-row--muted p {
    color: var(--color-text-soft, var(--muted, #686b68));
}

.home-goal-overview {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1.5rem;
    align-items: end;
    padding: 1.15rem 0;
    border-top: 3px solid var(--color-primary, var(--primary, #1f5c4a));
    border-bottom: 1px solid var(--color-border, var(--border, #dedfdc));
}

.home-goal-overview__content {
    display: grid;
    gap: .3rem;
}

.home-goal-overview__content .eyebrow,
.home-goal-overview__content h2,
.home-goal-overview__content p {
    margin: 0;
}

.home-goal-overview__content > p:not(.eyebrow),
.home-goal-overview small {
    color: var(--color-text-soft, var(--muted, #686b68));
}

.home-goal-overview__progress {
    display: grid;
    gap: .35rem;
    max-width: 640px;
    margin-top: .45rem;
}

.home-goal-overview__progress-head {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 1rem;
}

.home-goal-overview__track {
    height: 8px;
    overflow: hidden;
    border-radius: 999px;
    background: var(--color-surface-muted, #eceeea);
}

.home-goal-overview__track span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: currentColor;
}

.home-dashboard-empty {
    display: grid;
    gap: .25rem;
    padding: 1rem 0;
    border-top: 1px dashed var(--color-border, var(--border, #dedfdc));
}

.home-dashboard-empty p {
    max-width: 760px;
    margin: 0;
    color: var(--color-text-soft, var(--muted, #686b68));
}

/* IUNOZ — aplicação visual no Dashboard sem alterar sua arquitetura */
.home-dashboard--overview {
    --home-brand: var(--iunoz-blue);
    --home-accent: var(--iunoz-terra);
    --home-soft: var(--iunoz-neutral);
}

.home-dashboard--overview .eyebrow {
    color: var(--home-brand) !important;
}

.home-overview-hero__copy h1,
.home-overview-heading h2,
.home-snapshot__value,
.home-goal-overview__content h2 {
    color: var(--home-brand);
}

.home-overview-hero {
    border-bottom-color: rgba(29, 58, 77, .18);
}

.home-overview-hero__signal {
    border-left-color: rgba(29, 58, 77, .34);
}

.home-overview-hero__signal--attention {
    border-left-color: var(--home-accent);
}

.home-overview-hero__signal--calm {
    border-left-color: var(--iunoz-green);
}

.home-overview-link {
    color: var(--home-brand);
}

.home-overview-link:hover,
.home-overview-link:focus-visible {
    color: var(--home-accent);
}

.home-priority-list,
.home-priority-row,
.home-snapshot,
.home-snapshot__item,
.home-followup-list,
.home-followup-row,
.home-goal-overview,
.home-dashboard-empty {
    border-color: rgba(29, 58, 77, .16);
}

.home-snapshot__item {
    background: linear-gradient(180deg, rgba(242, 235, 228, .34), rgba(242, 235, 228, 0) 46%);
}

.home-goal-overview {
    border-top-color: var(--home-brand);
}

@media (max-width: 980px) {
    .home-snapshot {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .home-snapshot__item:nth-child(3) {
        border-left: 0;
        border-top: 1px solid var(--color-border, var(--border, #dedfdc));
        padding-left: 0;
    }

    .home-snapshot__item:nth-child(4) {
        border-top: 1px solid var(--color-border, var(--border, #dedfdc));
    }
}

@media (max-width: 760px) {
    .home-dashboard--overview {
        gap: 1.55rem;
    }

    .home-overview-hero {
        grid-template-columns: 1fr;
        gap: 1rem;
        align-items: start;
    }

    .home-overview-hero__signal {
        padding: .7rem 0 .05rem .85rem;
    }

    .home-overview-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: .35rem;
    }

    .home-overview-heading > p,
    .home-overview-heading > span {
        text-align: left;
    }

    .home-priority-row {
        grid-template-columns: .55rem minmax(0, 1fr);
        align-items: start;
    }

    .home-priority-row .home-overview-link {
        grid-column: 2;
    }

    .home-snapshot {
        grid-template-columns: 1fr;
        border-bottom: 0;
    }

    .home-snapshot__item,
    .home-snapshot__item:first-child,
    .home-snapshot__item:nth-child(3),
    .home-snapshot__item:last-child {
        padding: .95rem 0;
        border-left: 0;
        border-top: 0;
        border-bottom: 1px solid var(--color-border, var(--border, #dedfdc));
    }

    .home-snapshot__item p {
        min-height: 0;
    }

    .home-followup-row {
        align-items: flex-start;
        flex-direction: column;
        gap: .55rem;
    }

    .home-followup-row__actions {
        justify-content: flex-start;
    }

    .home-goal-overview {
        grid-template-columns: 1fr;
        align-items: start;
    }
}


/* IUNOZ A04C1 — página inicial operacional: correção e refinamento */
.start-hub {
    width: min(100%, 720px);
    margin: 0 auto;
    padding: 22px 16px 96px;
}

.start-hub__hero {
    margin-bottom: 20px;
}

.start-hub__hero .eyebrow {
    margin-bottom: 6px;
    color: var(--iunoz-terra);
}

.start-hub__hero h1 {
    margin: 0;
    color: var(--iunoz-blue);
    font-size: clamp(1.55rem, 7vw, 2.05rem);
    line-height: 1.12;
    letter-spacing: -0.025em;
}

.start-hub__hero > p:last-child {
    margin: 7px 0 0;
    color: var(--muted);
    font-size: 1rem;
}

.start-hub__actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.start-action-card {
    min-height: 116px;
    padding: 15px 12px 14px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 9px;
    border: 1px solid rgba(29, 58, 77, 0.14);
    border-radius: 15px;
    background: var(--surface);
    color: var(--iunoz-blue);
    text-align: center;
    text-decoration: none;
    box-shadow: 0 5px 14px rgba(29, 58, 77, 0.05);
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease, background .18s ease;
}

.start-action-card:last-child:nth-child(odd) {
    grid-column: 1 / -1;
    min-height: 96px;
}

.start-action-card__icon,
.start-secondary-action__icon {
    display: inline-grid;
    place-items: center;
    flex: 0 0 auto;
    color: var(--iunoz-terra);
}

.start-action-card__icon {
    width: 42px;
    height: 42px;
    border-radius: 13px;
    background: rgba(239, 215, 199, 0.42);
}

.start-action-card__icon svg {
    display: block;
    width: 26px !important;
    height: 26px !important;
    max-width: 26px;
    max-height: 26px;
    overflow: visible;
}

.start-action-card svg,
.start-secondary-action svg {
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.start-action-card strong {
    font-size: .95rem;
    line-height: 1.2;
    font-weight: 650;
}

.start-action-card:focus-visible,
.start-secondary-action:focus-visible {
    outline: 3px solid rgba(207, 107, 69, 0.28);
    outline-offset: 3px;
}

.start-hub__follow {
    margin-top: 24px;
}

.start-hub__section-heading {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 10px;
    margin-bottom: 11px;
}

.start-hub__section-heading span {
    height: 1px;
    background: var(--border);
}

.start-hub__section-heading h2 {
    margin: 0;
    color: var(--muted);
    font-size: .75rem;
    font-weight: 650;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.start-hub__secondary-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
}

.start-hub__secondary-actions .start-secondary-action:last-child:nth-child(odd) {
    grid-column: 1 / -1;
}

.start-secondary-action {
    min-height: 58px;
    padding: 10px 12px;
    display: flex;
    align-items: center;
    gap: 9px;
    border: 1px solid var(--border);
    border-radius: 13px;
    background: transparent;
    color: var(--iunoz-blue);
    text-decoration: none;
}

.start-secondary-action__icon {
    width: 32px;
    height: 32px;
    border-radius: 9px;
    background: rgba(29, 58, 77, 0.055);
    color: var(--iunoz-blue);
}

.start-secondary-action__icon svg {
    display: block;
    width: 21px !important;
    height: 21px !important;
    max-width: 21px;
    max-height: 21px;
}

.start-secondary-action strong {
    font-size: .88rem;
    line-height: 1.18;
}

@media (hover: hover) {
    .start-action-card:hover {
        border-color: rgba(207, 107, 69, 0.4);
        box-shadow: 0 9px 22px rgba(29, 58, 77, 0.085);
        transform: translateY(-2px);
    }

    .start-secondary-action:hover {
        border-color: rgba(29, 58, 77, 0.28);
        background: rgba(242, 235, 228, 0.42);
    }
}

@media (min-width: 700px) {
    .start-hub {
        padding-top: 30px;
    }

    .start-hub__actions {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 12px;
    }

    .start-action-card,
    .start-action-card:last-child:nth-child(odd) {
        grid-column: auto;
        min-height: 124px;
    }

    .start-hub__secondary-actions {
        max-width: 720px;
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .start-hub__secondary-actions .start-secondary-action:last-child:nth-child(odd) {
        grid-column: auto;
    }
}


/* IUNOZ A05 — refinamento visual da Visão geral */
.home-priorities__card {
    padding: 1.1rem 1.2rem .35rem;
    border: 1px solid rgba(29, 58, 77, .16);
    border-radius: 14px;
    background: rgba(255, 255, 255, .76);
    box-shadow: 0 8px 22px rgba(29, 58, 77, .035);
}

.home-priorities__card .home-priority-list {
    margin-top: .15rem;
}

.home-snapshot__module {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    color: var(--home-brand);
}

.home-snapshot__icon {
    width: 21px;
    height: 21px;
    flex: 0 0 21px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.home-followup-list {
    gap: .65rem;
    border-top: 0;
}

.home-followup-row {
    padding: .95rem 1rem;
    border: 1px solid rgba(29, 58, 77, .16);
    border-radius: 12px;
    background: rgba(255, 255, 255, .72);
}

.home-followup-row--muted {
    background: rgba(242, 235, 228, .36);
}

/* O fundo é translúcido; conteúdo e ícones permanecem 100% opacos. */
.bottom-nav {
    background: rgba(255, 255, 255, .70);
    border-top-color: rgba(29, 58, 77, .16);
    -webkit-backdrop-filter: blur(12px) saturate(120%);
    backdrop-filter: blur(12px) saturate(120%);
    box-shadow: 0 -8px 24px rgba(29, 58, 77, .06);
}

@media (max-width: 760px) {
    .home-priorities__card {
        padding: .95rem .95rem .2rem;
        border-radius: 12px;
    }

    .home-followup-row {
        padding: .85rem .9rem;
    }
}

/* IUNOZ A05C1 — início: selos AGORA abaixo do título */
.home-dashboard--overview .home-snapshot__label {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-content: start;
    justify-items: start;
    gap: .38rem;
    min-height: 3.45rem;
}

.home-dashboard--overview .home-snapshot__label > :first-child {
    grid-row: 1;
    min-width: 0;
}

.home-dashboard--overview .home-snapshot__label > .semantic-badge {
    grid-row: 2;
    justify-self: start;
    width: fit-content;
    max-width: 100%;
}

@media (max-width: 760px) {
    .home-dashboard--overview .home-snapshot__label {
        min-height: 3.25rem;
    }
}
/* IUNOZ A05C1 — fim */

/* IUNOZ A10C2 — respiro da ajuda contextual na visão geral de Dinheiro */
.money-origin-overview > details.context-help {
    margin-top: 1.05rem;
    margin-bottom: 1.35rem;
}

@media (max-width: 620px) {
    .money-origin-overview > details.context-help {
        margin-top: .9rem;
        margin-bottom: 1.15rem;
    }
}

/* IUNOZ A10C3 — visão progressiva dos blocos longos em Dinheiro */
.money-accordion {
    padding: 0;
    overflow: hidden;
}

.money-accordion > summary {
    list-style: none;
}

.money-accordion > summary::-webkit-details-marker {
    display: none;
}

.money-accordion__summary {
    min-height: 82px;
    padding: 1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    cursor: pointer;
    user-select: none;
}

.money-accordion__summary:focus-visible {
    outline: 3px solid rgba(29, 58, 77, .18);
    outline-offset: -3px;
}

.money-accordion__title {
    min-width: 0;
}

.money-accordion__title .eyebrow {
    margin-bottom: .18rem;
}

.money-accordion__title h2 {
    margin: 0;
}

.money-accordion__meta {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .65rem;
    flex-wrap: wrap;
    color: var(--muted);
    font-size: .82rem;
    text-align: right;
}

.money-accordion__meta > strong {
    color: var(--text);
    font-size: .94rem;
    white-space: nowrap;
}

.money-accordion__flow {
    white-space: nowrap;
}

.money-accordion__alert {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: .12rem .5rem;
    border-radius: 999px;
    background: rgba(177, 70, 53, .10);
    color: #9a3d2f;
    font-weight: 700;
    white-space: nowrap;
}

.money-accordion__toggle {
    position: relative;
    width: 28px;
    height: 28px;
    flex: 0 0 28px;
    border-radius: 50%;
    background: rgba(29, 58, 77, .055);
}

.money-accordion__toggle::before,
.money-accordion__toggle::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 10px;
    height: 1.5px;
    border-radius: 999px;
    background: var(--iunoz-blue);
    transform: translate(-50%, -50%);
    transition: transform .18s ease, opacity .18s ease;
}

.money-accordion__toggle::after {
    transform: translate(-50%, -50%) rotate(90deg);
}

.money-accordion[open] .money-accordion__toggle::after {
    opacity: 0;
    transform: translate(-50%, -50%) rotate(0deg);
}

.money-accordion__content {
    padding: 0 1rem 1rem;
    border-top: 1px solid rgba(29, 58, 77, .10);
}

.money-accordion__intro {
    margin: .85rem 0 .15rem;
    color: var(--muted);
    font-size: .9rem;
    line-height: 1.45;
}

.money-accordion--full {
    margin-top: .8rem;
}

@media (hover: hover) {
    .money-accordion__summary:hover {
        background: rgba(242, 235, 228, .22);
    }
}

@media (max-width: 620px) {
    .money-columns {
        gap: .7rem;
    }

    .money-accordion__summary {
        min-height: 72px;
        padding: .85rem .9rem;
        align-items: flex-start;
    }

    .money-accordion__meta {
        max-width: 48%;
        gap: .35rem .5rem;
        font-size: .75rem;
    }

    .money-accordion__meta > strong {
        width: 100%;
        font-size: .88rem;
    }

    .money-accordion__flow {
        width: 100%;
        white-space: normal;
        line-height: 1.3;
    }

    .money-accordion__content {
        padding: 0 .9rem .9rem;
    }

    .money-accordion__toggle {
        width: 26px;
        height: 26px;
        flex-basis: 26px;
    }
}

/* IUNOZ A19C2 — acessos secundários do Início alinhados no desktop */
@media (min-width: 700px) {
    .start-hub__secondary-actions {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        max-width: none;
        width: 100%;
    }

    .start-hub__secondary-actions .start-secondary-action,
    .start-hub__secondary-actions .start-secondary-action:last-child:nth-child(odd) {
        grid-column: auto !important;
        width: 100%;
    }
}
