    :root {
        --dark: #1B4332;
        --medium: #256E4A;
        --light: #F9F9F9;
        --accent: #92B7A5
    }

    * {
        box-sizing: border-box
    }

    body {
        margin: 0;
        font-family: "Segoe UI", Roboto, Arial, sans-serif;
        background: var(--light);
        color: var(--dark);
        -webkit-font-smoothing: antialiased;
        overflow-x: hidden
    }

    /* Container e Estrutura Base */
    .frame {
        width: 100%;
        max-width: 1080px;
        margin: 24px auto 48px auto;
        padding: 0;
        overflow-y: auto;
        border-radius: 12px;
        border: 1px solid rgba(37, 110, 74, 0.06)
    }

    .container {
        max-width: 760px;
        width: calc(100% - 32px);
        margin: 16px auto;
        padding: 16px
    }

    summary {
        min-width: 0
    }

    .summary-title {
        flex: 1;
        min-width: 0;
        word-break: break-word;
        overflow-wrap: break-word
    }

    .container,
    .details-content,
    .tree ul,
    .tree li,
    .details-content p {
        max-width: 100%;
        overflow-wrap: break-word;
        word-break: break-word;
        white-space: normal
    }

    h1 {
        font-size: 1.2rem;
        margin: 0 0 24px;
        color: var(--dark);
        text-align: center;
        line-height: 1.2
    }

    details {
        background: transparent;
        border-radius: 12px
    }

    summary:focus {
        outline: 3px solid rgba(145, 183, 165, 0.25);
        outline-offset: 2px
    }

    .summary-title {
        font-size: 1.4rem
    }

    .summary-indicator {
        width: 36px;
        height: 36px;
        border-radius: 8px;
        background: rgba(255, 255, 255, 0.12);
        display: flex;
        align-items: center;
        justify-content: center;
        transition: transform .25s ease;
        flex-shrink: 0;
    }

    details[open] .summary-indicator {
        transform: rotate(45deg);
        background: rgba(255, 255, 255, 0.18)
    }

    .summary-indicator::after {
        content: '+';
        color: var(--light);
        font-weight: 700
    }

    details[open] .summary-indicator::after {
        content: '\2013'
    }

    summary.top-level-summary {
        list-style: none;
        cursor: pointer;
        padding: 14px 20px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        background: linear-gradient(135deg, var(--medium), var(--dark));
        color: var(--light);
        font-weight: 700;
        border-radius: 10px
    }

    .details-content {
        padding: 20px 28px;
        background: transparent;
        color: var(--dark);
        border-top: 1px solid rgba(37, 110, 74, 0.06);
        max-height: 0;
        overflow: hidden;
        opacity: 0;
        transition: max-height .3s ease, opacity .3s ease
    }

    details[open] .details-content {
        max-height: 3000px;
        opacity: 1
    }

    .details-content p {
        margin: 8px 0;
        font-size: 1.1rem
    }

    .label {
        font-weight: 700;
        color: var(--medium);
        margin-right: 6px
    }

    .small {
        font-size: 1.1rem;
        color: #2e2e2e
    }

    .details-content details {
        margin-top: 14px
    }

    .details-content details summary {
        background-color: var(--medium);
        color: var(--light);
        padding: 14px 20px;
        border-radius: 8px;
        font-weight: 900;
        display: flex;
        align-items: center;
        justify-content: space-between
    }

    .details-content details summary:focus {
        outline: 3px solid rgba(37, 110, 74, 0.12);
        outline-offset: 2px
    }

    .details-content details .summary-indicator {
        width: 28px;
        height: 28px;
        border-radius: 6px;
        background: rgba(27, 67, 50, 0.15);
        display: flex;
        align-items: center;
        justify-content: center;
        transition: transform .25s ease
    }

    .details-content details[open] .summary-indicator {
        transform: rotate(45deg);
        background: rgba(37, 110, 74, 0.25)
    }

    .details-content details .summary-indicator::after {
        content: '+';
        color: var(--light);
        font-weight: 700
    }

    .details-content details[open] .summary-indicator::after {
        content: '\2013'
    }

    .details-content details .details-content {
        padding: 14px 18px;
        background: transparent;
        border-top: 0;
        color: var(--dark);
        border-left: 2px solid var(--accent);
        margin-left: 10px;
    }

    /* Árvore */
    .tree {
        margin-top: 16px
    }

    .tree ul {
        list-style: none;
        padding-left: 0;
        position: relative;
        margin: 0
    }

    .tree li {
        position: relative;
        margin: 0;
        padding: 12px 0 0 0
    }

    .tree .details-content {
        background: transparent;
        padding: 16px 20px;
        border-top: 0
    }

    details.top-level:not([open])>summary.top-level-summary {
        padding: 12px 14px;
        font-size: 1rem;
        border-radius: 10px;
        margin-right: 0
    }

    details.top-level:not([open]) .summary-indicator {
        width: 32px;
        height: 32px
    }

    .tree>ul>li>details:not([open]) {
        margin-bottom: 8px
    }

    /* Alertas */
    .alerta-container {
        max-width: 1080px;
        margin: 20px auto 0 auto;
        width: 95%;
    }

    .alerta {
        padding: 12px 16px;
        border-radius: 8px;
        font-weight: bold;
        text-align: center;
        margin-bottom: 10px;
    }

    .alerta-sucesso {
        background-color: #d4edda;
        color: #155724;
        border: 1px solid #c3e6cb;
    }

    .alerta-erro {
        background-color: #f8d7da;
        color: #721c24;
        border: 1px solid #f5c6cb;
    }

    /* Botões do Topo (Navegação) */
    .acoes-topo {
        display: flex;
        gap: 10px;
        flex-wrap: wrap;
        max-width: 1080px;
        margin: 20px auto;
        width: 95%;
        justify-content: center;
    }

    .btn {
        padding: 10px 18px;
        border-radius: 8px;
        text-decoration: none;
        font-weight: bold;
        font-size: 0.95rem;
        transition: background 0.3s, transform 0.1s;
        display: inline-block;
    }

    .btn:active {
        transform: scale(0.98);
    }

    .btn-primario {
        background: var(--medium);
        color: var(--light);
        border: none;
        cursor: pointer;
    }

    .btn-primario:hover {
        background: var(--dark);
    }

    .btn-secundario {
        background: var(--accent);
        color: var(--dark);
        border: none;
        cursor: pointer;
    }

    .btn-secundario:hover {
        filter: brightness(0.9);
    }

    .tag-atualizado {
        color: #C0392B;
        text-align: center;
        padding: 6px 12px;
        font-weight: 700;
        font-size: 0.8rem;
        max-width: 1080px;
        margin: 20px auto 0 auto;
        letter-spacing: 0.3px
    }

    /* Separador interno */
    .person-card {
        background: #fff;
        padding: 16px;
        border-radius: 8px;
        margin-bottom: 12px;
        border: 1px solid rgba(0, 0, 0, 0.05);
        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.02);
    }

    .person-card:last-child {
        margin-bottom: 0;
    }

    @media (max-width:600px) {
        :root {
            font-size: 15px;
        }

        .frame {
            width: 100%;
            height: auto;
            margin: 10px 0;
            border-radius: 0;
            border-left: none;
            border-right: none;
        }

        .container {
            margin: 10px auto;
            padding: 10px;
            width: 95%
        }

        .acoes-topo {
            flex-direction: column;
        }

        .btn {
            text-align: center;
            width: 100%;
        }

        summary {
            padding: 14px 16px
        }

        .details-content {
            padding: 14px 16px
        }

        .summary-title {
            font-size: 1.1rem
        }

        .details-content p {
            font-size: 1rem;
            line-height: 1.5
        }

        .small,
        .label {
            font-size: 0.95rem
        }
    }