/* CSS das paginas e componentes de Features/<contexto> (antes em <style> inline nos .razor).
   Carregado depois de todos os outros CSS: a ordem e a precedencia que o <style> inline tinha. */

/* ===== Features/Organizacao/Equipas/Pages/EquipaDetalhePage.razor ===== */
    .eqd-page { display: flex; flex-direction: column; gap: 1.25rem; max-width: 760px; }

    .eqd-loading, .eqd-empty { display: flex; flex-direction: column; align-items: center; gap: .5rem; padding: 3rem 1rem; color: var(--text-secondary); }

    .eqd-hero { display: flex; align-items: center; gap: 1rem; background: var(--card-bg); border: 1px solid var(--border-color); border-radius: .75rem; padding: 1.25rem; flex-wrap: wrap; }

    .eqd-hero-icon { width: 3rem; height: 3rem; border-radius: .9rem; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 1.3rem; flex-shrink: 0; }

    .eqd-hero-info { flex: 1; min-width: 180px; }

    .eqd-hero-info h1 { margin: 0; font-size: 1.35rem; color: var(--text-primary); }

    .eqd-hero-sub { margin: .2rem 0 0; color: var(--text-secondary); font-size: .9rem; }

    .eqd-hero-actions { display: flex; gap: .5rem; flex-wrap: wrap; }

    .eqd-card { background: var(--card-bg); border: 1px solid var(--border-color); border-radius: .75rem; padding: 1.25rem; }

    .eqd-card h3 { margin: 0 0 1rem; font-size: 1rem; color: var(--text-primary); display: flex; align-items: center; gap: .4rem; }

    .eqd-count { font-size: .8rem; font-weight: 700; color: var(--text-secondary); background: var(--bg-secondary); border-radius: 1rem; padding: .1rem .55rem; }

    .eqd-muted { color: var(--text-secondary); font-size: .88rem; margin: 0; }


    .eqd-membros-head { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; margin-bottom: 1rem; }

    .eqd-membros-head h3 { margin: 0; }

    .eqd-search { position: relative; }

    .eqd-search i { position: absolute; left: .8rem; top: 50%; transform: translateY(-50%); color: var(--text-secondary); font-size: .85rem; pointer-events: none; }

    .eqd-search .form-input { padding-left: 2.2rem; min-width: 220px; padding-top: 9px; padding-bottom: 9px; border-radius: 9px; font-size: .9rem; }


    .eqd-membros { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: .5rem .75rem; }

    .eqd-person { display: flex; align-items: center; gap: .75rem; }

    .eqd-avatar { width: 2.5rem; height: 2.5rem; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: .85rem; background: var(--bg-secondary); color: var(--text-secondary); flex-shrink: 0; }

    .eqd-person-info { display: flex; flex-direction: column; min-width: 0; flex: 1; }

    .eqd-person-name { color: var(--text-primary); font-weight: 600; font-size: .9rem; }

    .eqd-person-meta { color: var(--text-secondary); font-size: .8rem; }

    .eqd-person-badges { display: flex; gap: .35rem; flex-wrap: wrap; }

    .eqd-badge { font-size: .72rem; font-weight: 600; padding: .15rem .55rem; border-radius: 1rem; background: var(--bg-secondary); color: var(--text-secondary); }

    .eqd-badge-lider { background: color-mix(in srgb, var(--primary) 15%, transparent); color: var(--primary); }

    .pf-cor-azul { background: #325bb3; }
 .pf-cor-indigo { background: #4f46e5; }
 .pf-cor-rosa { background: #f62264; }

    .pf-cor-verde { background: #16a34a; }
 .pf-cor-laranja { background: #f59e0b; }
 .pf-cor-cinza { background: #64748b; }


    @media (max-width: 560px) {

        .eqd-hero { flex-direction: column; align-items: flex-start; }

        .eqd-hero-actions { width: 100%; }

        .eqd-hero-actions .btn { flex: 1; }

        .eqd-person-badges { flex-direction: row; }

        .eqd-membros-head { flex-direction: column; align-items: stretch; }

        .eqd-search .form-input { min-width: 0; width: 100%; }

        .eqd-search { width: 100%; }
}

/* ===== Features/Organizacao/Equipas/Pages/EquipaFormPage.razor ===== */
    .eqf-page { display: flex; flex-direction: column; gap: 1.25rem; }

    .eqf-page .btn-sm { padding: .4rem .7rem; font-size: .8rem; border-radius: 8px; }

    .eqf-loading { display: flex; flex-direction: column; align-items: center; gap: .5rem; padding: 3rem 1rem; color: var(--text-secondary); }


    .eqf-header h2 { color: var(--text-primary); margin: 0 0 .25rem; font-size: 1.4rem; }

    .eqf-subtitle { color: var(--text-secondary); margin: 0; font-size: .9rem; }


    .eqf-savebar { display: flex; justify-content: space-between; align-items: center; gap: .5rem; flex-wrap: wrap; padding-top: 1rem; border-top: 1px solid var(--border-color); }

    .eqf-actionbar-left, .eqf-actionbar-right { display: flex; gap: .5rem; flex-wrap: wrap; }

    .eqf-actionbar-right { margin-left: auto; }


    .eqf-card { background: var(--card-bg); border: 1px solid var(--border-color); border-radius: .75rem; padding: 1.25rem 1.5rem; }

    .eqf-card h3 { margin: 0 0 1rem; color: var(--text-primary); font-size: 1rem; display: flex; align-items: center; gap: .4rem; }


    .eqf-field { margin-bottom: 1rem; }

    .eqf-field:last-child { margin-bottom: 0; }

    .eqf-field label { display: block; font-size: .85rem; color: var(--text-secondary); margin-bottom: .35rem; }

    .eqf-required { color: var(--error); }

    .eqf-page .form-input, .eqf-page .form-select { width: 100%; padding: 9px 12px; border-radius: 9px; font-size: .9rem; }


    .eqf-aparencia { display: grid; grid-template-columns: minmax(200px, 260px) 1fr; gap: 1.25rem; align-items: center; }

    .eqf-preview { display: flex; align-items: center; gap: .75rem; padding: .9rem 1rem; border: 1px solid var(--border-color); border-radius: .75rem; background: var(--bg-secondary); }

    .eqf-preview-icon { width: 2.75rem; height: 2.75rem; border-radius: .8rem; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 1.2rem; flex-shrink: 0; }

    .eqf-preview-text { display: flex; flex-direction: column; min-width: 0; }

    .eqf-preview-nome { font-weight: 700; color: var(--text-primary); font-size: .95rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

    .eqf-preview-sub { font-size: .72rem; color: var(--text-secondary); text-transform: uppercase; letter-spacing: .04em; }

    .eqf-aparencia-controls { display: flex; flex-direction: column; gap: 1rem; }

    .eqf-cores, .eqf-icones { display: flex; gap: .5rem; flex-wrap: wrap; }

    .eqf-cor-swatch { width: 2rem; height: 2rem; border-radius: 50%; border: 2px solid transparent; cursor: pointer; padding: 0; transition: transform .15s, box-shadow .15s; }

    .eqf-cor-swatch:hover { transform: scale(1.08); }

    .eqf-cor-swatch.is-selected { box-shadow: 0 0 0 2px var(--card-bg), 0 0 0 4px var(--text-primary); }

    .eqf-icone-swatch { width: 2.4rem; height: 2.4rem; border-radius: .6rem; border: 1px solid var(--border-color); background: var(--card-bg); cursor: pointer; color: var(--text-secondary); font-size: 1.05rem; display: inline-flex; align-items: center; justify-content: center; transition: transform .15s; }

    .eqf-icone-swatch:hover { transform: scale(1.06); }


    .eqf-membros-head { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; margin-bottom: .75rem; }

    .eqf-membros-head h3 { margin: 0; }

    .eqf-count { font-size: .8rem; font-weight: 700; color: var(--text-secondary); background: var(--bg-secondary); border-radius: 1rem; padding: .1rem .55rem; margin-left: .3rem; }


    .eqf-membros-toolbar { display: flex; justify-content: space-between; align-items: center; gap: .75rem; flex-wrap: wrap; margin-bottom: .6rem; }

    .eqf-membros-acoes { display: flex; gap: .5rem; flex-wrap: wrap; }

    .eqf-search { position: relative; }

    .eqf-search i { position: absolute; left: .8rem; top: 50%; transform: translateY(-50%); color: var(--text-secondary); font-size: .85rem; pointer-events: none; }

    .eqf-search .form-input { padding-left: 2.2rem; min-width: 240px; }


    .eqf-filtro-selecionados { display: inline-flex; align-items: center; gap: .5rem; font-size: .82rem; color: var(--text-secondary); cursor: pointer; margin-bottom: .75rem; }

    .eqf-switch.eqf-switch-sm { width: 32px; height: 20px; }

    .eqf-switch.eqf-switch-sm .eqf-switch-thumb { width: 12px; height: 12px; }

    .eqf-switch.eqf-switch-sm input:checked ~ .eqf-switch-track .eqf-switch-thumb { transform: translateX(12px); }


    .eqf-membros-lista { display: flex; flex-direction: column; gap: .4rem; max-height: 420px; overflow-y: auto; }

    .eqf-membro { display: flex; align-items: center; gap: .7rem; padding: .6rem .7rem; border: 1px solid var(--border-color); border-radius: .5rem; cursor: pointer; }

    .eqf-membro:hover { border-color: var(--primary); }


    .eqf-switch { position: relative; display: inline-flex; flex-shrink: 0; width: 38px; height: 22px; }

    .eqf-switch input { position: absolute; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }

    .eqf-switch-track { position: absolute; inset: 0; background: color-mix(in srgb, var(--text-secondary) 28%, transparent); border: 1px solid color-mix(in srgb, var(--text-secondary) 50%, transparent); border-radius: 22px; transition: background .2s, border-color .2s; }

    .eqf-switch-thumb { position: absolute; top: 3px; left: 3px; width: 14px; height: 14px; background: #fff; border-radius: 50%; box-shadow: 0 1px 3px rgba(0,0,0,.35); transition: transform .2s; }

    .eqf-switch input:checked ~ .eqf-switch-track { background: var(--primary); border-color: var(--primary); }

    .eqf-switch input:checked ~ .eqf-switch-track .eqf-switch-thumb { transform: translateX(16px); }

    .eqf-avatar { width: 2.2rem; height: 2.2rem; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: .8rem; background: var(--bg-secondary); color: var(--text-secondary); flex-shrink: 0; }

    .eqf-membro-info { display: flex; flex-direction: column; min-width: 0; flex: 1; }

    .eqf-membro-nome { color: var(--text-primary); font-weight: 600; font-size: .88rem; }

    .eqf-membro-email { color: var(--text-secondary); font-size: .78rem; }

    .eqf-badge { font-size: .72rem; font-weight: 600; padding: .15rem .55rem; border-radius: 1rem; background: var(--bg-secondary); color: var(--text-secondary); }

    .eqf-membros-empty { color: var(--text-secondary); font-size: .85rem; padding: 1rem 0; text-align: center; }


    @media (max-width: 900px) {

        .eqf-aparencia { grid-template-columns: 1fr; align-items: stretch; }
}

    @media (max-width: 640px) {

        .eqf-search .form-input { min-width: 0; width: 100%; }

        .eqf-search { width: 100%; }

        .eqf-membros-head { flex-direction: column; align-items: stretch; }

        .eqf-membros-toolbar { flex-direction: column; align-items: stretch; }

        .eqf-membros-acoes .btn { flex: 1; }

        .eqf-savebar { flex-direction: column-reverse; align-items: stretch; }

        .eqf-actionbar-left, .eqf-actionbar-right { margin-left: 0; }

        .eqf-savebar .btn { flex: 1; }
}

/* ===== Features/Organizacao/Equipas/Pages/EquipasListaPage.razor ===== */
    .eql-page { display: flex; flex-direction: column; gap: 0; }

    .eql-loading { display: flex; flex-direction: column; align-items: center; gap: .5rem; padding: 3rem 1rem; color: var(--text-secondary); }

    .eql-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; margin-bottom: 1.5rem; flex-wrap: wrap; }

    .eql-header h2 { margin: 0; color: var(--text-primary); }

    .eql-subtitle { color: var(--text-secondary); margin: 0; }


    .eql-restricao-card { display: flex; justify-content: space-between; align-items: center; gap: 1rem; background: var(--card-bg); border: 1px solid var(--border-color); border-radius: .75rem; padding: 1rem 1.25rem; margin-bottom: 1.5rem; flex-wrap: wrap; }

    .eql-restricao-info strong { display: block; color: var(--text-primary); font-size: .92rem; margin-bottom: .2rem; }

    .eql-restricao-info p { margin: 0; color: var(--text-secondary); font-size: .82rem; max-width: 46rem; }

    .eql-upgrade-hint { display: flex; align-items: center; gap: .4rem; font-size: .82rem; font-weight: 600; color: var(--text-secondary); text-decoration: none; flex-shrink: 0; }

    .eql-upgrade-hint:hover { color: var(--primary); }

    .eql-switch { position: relative; display: inline-flex; flex-shrink: 0; width: 42px; height: 24px; }

    .eql-switch input { position: absolute; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }

    .eql-switch-track { position: absolute; inset: 0; background: color-mix(in srgb, var(--text-secondary) 28%, transparent); border-radius: 24px; transition: background .2s; }

    .eql-switch-thumb { position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; background: #fff; border-radius: 50%; transition: transform .2s; }

    .eql-switch input:checked ~ .eql-switch-track { background: var(--primary); }

    .eql-switch input:checked ~ .eql-switch-track .eql-switch-thumb { transform: translateX(18px); }


    .eql-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-bottom: 1.5rem; }

    .eql-stat-card { background: var(--card-bg); border: 1px solid var(--border-color); border-radius: .75rem; padding: 1rem 1.1rem; display: flex; align-items: center; gap: .8rem; }

    .eql-stat-icon { width: 40px; height: 40px; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 1.1rem; flex-shrink: 0; background: var(--bg-secondary); color: var(--primary); }

    .eql-stat-body { display: flex; flex-direction: column; gap: .1rem; min-width: 0; }

    .eql-stat-value { font-size: 1.4rem; font-weight: 700; color: var(--text-primary); line-height: 1.15; }

    .eql-stat-label { font-size: .8rem; color: var(--text-secondary); }


    @media (max-width: 900px) {

        .eql-stats {
            grid-auto-flow: column;
            grid-template-columns: none;
            grid-auto-columns: minmax(180px, 50vw);
            overflow-x: auto;
            scroll-snap-type: x mandatory;
            -webkit-overflow-scrolling: touch;
            padding-bottom: 4px;
        }


        .eql-stat-card { scroll-snap-align: start; }
}

    @media (max-width: 560px) {

        .eql-header { flex-direction: column; }

        .eql-header .btn { width: 100%; }
}

/* ===== Features/Organizacao/Perfis/Components/AtribuirColaboradoresModal.razor ===== */
    .apc-search { position: relative; margin-bottom: .75rem; }

    .apc-search i { position: absolute; left: .8rem; top: 50%; transform: translateY(-50%); color: var(--text-secondary); font-size: .85rem; pointer-events: none; }

    .apc-search .form-input { padding-left: 2.2rem; width: 100%; }

    .apc-lista { display: flex; flex-direction: column; gap: .35rem; max-height: 22rem; overflow-y: auto; padding-right: .2rem; }

    .apc-empty { color: var(--text-secondary); font-size: .85rem; padding: 1.5rem 0; text-align: center; }

    .apc-row { display: flex; align-items: center; gap: .7rem; padding: .5rem .6rem; border: 1px solid var(--border-color); border-radius: .6rem; }

    .apc-row.is-in { background: var(--bg-secondary); }

    .apc-avatar { width: 2.1rem; height: 2.1rem; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: .72rem; flex-shrink: 0; }

    .apc-info { display: flex; flex-direction: column; min-width: 0; flex: 1; }

    .apc-nome { color: var(--text-primary); font-weight: 600; font-size: .85rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

    .apc-email { color: var(--text-secondary); font-size: .75rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

    .apc-estado { flex-shrink: 0; }

    .apc-badge { display: inline-flex; align-items: center; gap: .25rem; font-size: .7rem; font-weight: 600; padding: .15rem .5rem; border-radius: 1rem; background: var(--bg-secondary); color: var(--text-secondary); white-space: nowrap; }

    .apc-badge-in { color: #16a34a; }

    .apc-badge-none { font-style: italic; }

    .apc-btn { flex-shrink: 0; min-width: 5.5rem; }


    @media (max-width: 560px) {

        .apc-email { display: none; }

        .apc-estado { display: none; }
}

/* ===== Features/Organizacao/Perfis/Pages/PapelParticipacaoFormPage.razor ===== */
.pff-page { display: flex; flex-direction: column; gap: 1.25rem; }

.pff-header-title h2 { color: var(--text-primary); margin: 0 0 .25rem; font-size: 1.4rem; }

.pff-subtitle { color: var(--text-secondary); margin: 0; font-size: .9rem; }

.pff-alert { padding: .75rem 1rem; border-radius: .5rem; }

.pff-alert-erro { background: rgba(220,38,38,.1); color: var(--error); }

.pff-field { margin-bottom: 1rem; }

.pff-field label { display: block; font-size: .85rem; color: var(--text-secondary); margin-bottom: .35rem; }

.pff-required { color: var(--error); }

.pff-page .form-input { width: 100%; }

.pff-perm-nome { font-size: .85rem; color: var(--text-primary); font-weight: 500; }

/* ===== Features/Organizacao/Perfis/Pages/PerfilDetalhePage.razor ===== */
    .pfd-page { display: flex; flex-direction: column; gap: 0; }

    .pfd-page .btn-sm { padding: .4rem .7rem; font-size: .8rem; border-radius: 8px; }

    .pfd-loading, .pfd-empty { display: flex; flex-direction: column; align-items: center; gap: .5rem; padding: 3rem 1rem; color: var(--text-secondary); }

    .pfd-empty i { font-size: 2rem; }

    .pf-progress { height: 6px; background: var(--bg-secondary); border-radius: 3px; overflow: hidden; }

    .pf-progress-fill { height: 100%; background: var(--primary); }


    .pfd-hero { display: flex; align-items: center; gap: 1.25rem; padding: 1.25rem 1.5rem; background: var(--card-bg); border: 1px solid var(--border-color); border-radius: 1rem; margin-bottom: 1.5rem; flex-wrap: wrap; }

    .pfd-hero-icon { width: 3.5rem; height: 3.5rem; border-radius: 1rem; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 1.4rem; flex-shrink: 0; }

    .pfd-hero-info { flex: 1; min-width: 200px; display: flex; flex-direction: column; gap: .3rem; }

    .pfd-hero-name-row { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; }

    .pfd-hero-name-row h1 { margin: 0; font-size: 1.4rem; color: var(--text-primary); }

    .pfd-hero-sub { margin: 0; color: var(--text-secondary); font-size: .9rem; }

    .pfd-hero-actions { display: flex; gap: .5rem; flex-wrap: wrap; }


    .pfd-badge { font-size: .7rem; padding: .15rem .5rem; border-radius: 1rem; font-weight: 600; }

    .pfd-badge-base { background: var(--bg-secondary); color: var(--text-secondary); }

    .pfd-badge-custom { background: rgba(50,91,179,.12); color: var(--primary); }


    .pfd-kpis { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-bottom: 1.5rem; }

    .pfd-kpi-card { background: var(--card-bg); border: 1px solid var(--border-color); border-radius: .75rem; padding: 1rem 1.1rem; display: flex; align-items: center; gap: .8rem; }

    .pfd-kpi-icon { width: 40px; height: 40px; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 1.1rem; flex-shrink: 0; background: var(--bg-secondary); color: var(--primary); }

    .pfd-kpi-icon-blue { color: var(--primary); }

    .pfd-kpi-icon-green { color: var(--success, #16a34a); }

    .pfd-kpi-icon-indigo { color: var(--brand-indigo, #4f46e5); }

    .pfd-kpi-icon-amber { color: var(--warning, #d97706); }

    .pfd-kpi-body { display: flex; flex-direction: column; gap: .1rem; min-width: 0; }

    .pfd-kpi-label { font-size: .72rem; color: var(--text-secondary); text-transform: uppercase; letter-spacing: .03em; }

    .pfd-kpi-value { font-size: 1.3rem; font-weight: 700; color: var(--text-primary); line-height: 1.15; }

    .pfd-kpi-value-sub { font-size: .85rem; font-weight: 600; color: var(--text-secondary); }

    .pfd-kpi-value-sm { font-size: 1rem; }


    .pfd-columns { display: grid; grid-template-columns: 1.5fr 1fr; gap: 1.25rem; align-items: start; }

    .pfd-main-col, .pfd-side-col { display: flex; flex-direction: column; }

    .pfd-card { background: var(--card-bg); border: 1px solid var(--border-color); border-radius: .75rem; padding: 1.25rem; }

    .pfd-card-head { display: flex; justify-content: space-between; align-items: center; gap: .75rem; margin-bottom: 1rem; flex-wrap: wrap; }

    .pfd-card-head h3 { margin: 0; color: var(--text-primary); font-size: 1rem; display: flex; align-items: center; gap: .4rem; }


    .pfd-search { position: relative; margin-bottom: .9rem; }

    .pfd-search i { position: absolute; left: .8rem; top: 50%; transform: translateY(-50%); color: var(--text-secondary); font-size: .85rem; pointer-events: none; }

    .pfd-search .form-input { padding-left: 2.2rem; width: 100%; }


    .pfd-scroll { max-height: 22rem; overflow-y: auto; padding-right: .25rem; }

    .pfd-empty-inline { display: flex; flex-direction: column; align-items: center; gap: .4rem; color: var(--text-secondary); font-size: .85rem; padding: 1.75rem 1rem; text-align: center; }

    .pfd-empty-inline i { font-size: 1.5rem; opacity: .7; }

    .pfd-empty-inline p { margin: 0; }


    .pfd-membros-lista { display: flex; flex-direction: column; gap: .4rem; }

    .pfd-membro-row { display: flex; align-items: center; gap: .75rem; padding: .55rem .65rem; border: 1px solid var(--border-color); border-radius: .6rem; }

    .pfd-avatar { width: 2.4rem; height: 2.4rem; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: .8rem; flex-shrink: 0; }

    .pfd-membro-info { display: flex; flex-direction: column; min-width: 0; flex: 1; }

    .pfd-membro-nome { color: var(--text-primary); font-weight: 600; font-size: .88rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

    .pfd-membro-email { color: var(--text-secondary); font-size: .78rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

    .pfd-badge-papel { flex-shrink: 0; font-size: .72rem; font-weight: 600; padding: .2rem .55rem; border-radius: 1rem; background: var(--bg-secondary); color: var(--text-secondary); }

    .pfd-membro-btn { flex-shrink: 0; }


    .pfd-coverage-top { font-size: .8rem; color: var(--text-secondary); margin-bottom: 1rem; }

    .pfd-coverage-top span { display: block; margin-bottom: .4rem; }

    .pfd-modulos-lista { display: flex; flex-direction: column; gap: .75rem; }

    .pfd-modulo-linha { }

    .pfd-modulo-cabecalho { display: flex; justify-content: space-between; gap: .5rem; font-size: .85rem; color: var(--text-primary); margin-bottom: .3rem; }

    .pfd-modulo-frac { color: var(--text-secondary); flex-shrink: 0; }


    @media (max-width: 1024px) {

        .pfd-columns { grid-template-columns: 1fr; }
}

    @media (max-width: 900px) {

        .pfd-kpis {
            grid-auto-flow: column;
            grid-template-columns: none;
            grid-auto-columns: minmax(180px, 50vw);
            overflow-x: auto;
            scroll-snap-type: x mandatory;
            -webkit-overflow-scrolling: touch;
            padding-bottom: 4px;
        }


        .pfd-kpi-card { scroll-snap-align: start; }
}

    @media (max-width: 620px) {

        .pfd-membro-row { flex-wrap: wrap; }

        .pfd-membro-btn { width: 100%; }
}

/* ===== Features/Organizacao/Perfis/Pages/PerfilFormPage.razor ===== */
    .pff-page .btn-sm { padding: .4rem .7rem; font-size: .8rem; border-radius: 8px; }

    .pff-empty { display: flex; flex-direction: column; align-items: center; gap: .5rem; padding: 3rem 1rem; color: var(--text-secondary); text-align: center; }

    .pff-empty i { font-size: 2rem; }

    .pff-actionbar-left { display: flex; gap: .5rem; flex-wrap: wrap; }

    .pff-field:last-child { margin-bottom: 0; }


    .pff-aparencia { display: grid; grid-template-columns: minmax(200px, 260px) 1fr; gap: 1.25rem; align-items: center; }

    .pff-preview { display: flex; align-items: center; gap: .75rem; padding: .9rem 1rem; border: 1px solid var(--border-color); border-radius: .75rem; background: var(--bg-secondary); }

    .pff-preview-icon { width: 2.75rem; height: 2.75rem; border-radius: .8rem; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 1.2rem; flex-shrink: 0; }

    .pff-preview-text { display: flex; flex-direction: column; min-width: 0; }

    .pff-preview-nome { font-weight: 700; color: var(--text-primary); font-size: .95rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

    .pff-preview-sub { font-size: .72rem; color: var(--text-secondary); text-transform: uppercase; letter-spacing: .04em; }

    .pff-aparencia-controls { display: flex; flex-direction: column; gap: 1rem; }

    .pff-cores, .pff-icones { display: flex; gap: .5rem; flex-wrap: wrap; }

    .pff-cor-swatch { width: 2rem; height: 2rem; border-radius: 50%; border: 2px solid transparent; cursor: pointer; padding: 0; transition: transform .15s, box-shadow .15s; }

    .pff-cor-swatch:hover { transform: scale(1.08); }

    .pff-cor-swatch.is-selected { box-shadow: 0 0 0 2px var(--card-bg), 0 0 0 4px var(--text-primary); }

    .pff-icone-swatch { width: 2.4rem; height: 2.4rem; border-radius: .6rem; border: 1px solid var(--border-color); background: var(--card-bg); cursor: pointer; color: var(--text-secondary); font-size: 1.05rem; display: inline-flex; align-items: center; justify-content: center; transition: transform .15s; }

    .pff-icone-swatch:hover { transform: scale(1.06); }


    .pff-perm-head { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; margin-bottom: 1rem; }

    .pff-perm-count { font-size: .8rem; font-weight: 700; color: var(--text-secondary); background: var(--bg-secondary); border-radius: 1rem; padding: .1rem .55rem; margin-left: .3rem; }

    .pff-perm-tools { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }

    .pff-search { position: relative; }

    .pff-search i { position: absolute; left: .8rem; top: 50%; transform: translateY(-50%); color: var(--text-secondary); font-size: .85rem; pointer-events: none; }

    .pff-search .form-input { padding-left: 2.2rem; min-width: 240px; }

    .pff-perm-empty { color: var(--text-secondary); font-size: .85rem; padding: 1.5rem 0; text-align: center; }


    .pff-modulos { display: flex; flex-direction: column; gap: .5rem; }

    .pff-modulo { border: 1px solid var(--border-color); border-radius: .6rem; overflow: hidden; }

    .pff-modulo.is-open { background: var(--bg-secondary); }

    .pff-modulo-head { width: 100%; display: flex; align-items: center; gap: .6rem; padding: .7rem .9rem; background: transparent; border: none; cursor: pointer; color: var(--text-primary); font: inherit; }

    .pff-modulo-chevron { color: var(--text-secondary); font-size: .8rem; width: .9rem; }

    .pff-modulo-nome { font-weight: 600; font-size: .9rem; }

    .pff-modulo-frac { font-size: .75rem; color: var(--text-secondary); background: var(--card-bg); border: 1px solid var(--border-color); border-radius: 1rem; padding: .05rem .5rem; }

    .pff-modulo-spacer { flex: 1; }


    @media (max-width: 900px) {

        .pff-aparencia { grid-template-columns: 1fr; align-items: stretch; }
}

    @media (max-width: 640px) {

        .pff-search .form-input { min-width: 0; width: 100%; }

        .pff-search { width: 100%; }

        .pff-actionbar-left { margin-left: 0; }
}

/* ===== Features/Organizacao/Perfis/Pages/PerfisListaPage.razor ===== */
    .pf-page { display: flex; flex-direction: column; gap: 0; }

    .pf-loading { display: flex; flex-direction: column; align-items: center; gap: .5rem; padding: 3rem 1rem; color: var(--text-secondary); }

    .pf-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; margin-bottom: 1.5rem; flex-wrap: wrap; }

    .pf-header h2 { margin: 0; color: var(--text-primary); }

    .pf-subtitle { color: var(--text-secondary); margin: 0; }

    .pf-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-bottom: 1.5rem; }

    .pf-stat-card { background: var(--card-bg); border: 1px solid var(--border-color); border-radius: .75rem; padding: 1rem 1.1rem; display: flex; align-items: center; gap: .8rem; }

    .pf-stat-icon { width: 40px; height: 40px; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 1.1rem; flex-shrink: 0; background: var(--bg-secondary); color: var(--primary); }

    .pf-stat-icon-blue { color: var(--primary); }

    .pf-stat-icon-green { color: var(--success, #16a34a); }

    .pf-stat-icon-indigo { color: var(--brand-indigo, #4f46e5); }

    .pf-stat-body { display: flex; flex-direction: column; gap: .1rem; min-width: 0; }

    .pf-stat-value { font-size: 1.4rem; font-weight: 700; color: var(--text-primary); line-height: 1.15; }

    .pf-stat-label { font-size: .8rem; color: var(--text-secondary); }


    .pf-tabs { display: flex; gap: .25rem; border-bottom: 1px solid var(--border-color); flex-wrap: wrap; }

    .pf-tab { display: inline-flex; align-items: center; gap: .45rem; padding: .6rem .9rem; border: none; background: transparent; color: var(--text-secondary); font-size: .9rem; font-weight: 600; cursor: pointer; border-bottom: 2px solid transparent; margin-bottom: -1px; }

    .pf-tab:hover { color: var(--text-primary); }

    .pf-tab.is-active { color: var(--primary); border-bottom-color: var(--primary); }

    .pf-tab-count { font-size: .72rem; font-weight: 700; background: var(--bg-secondary); color: var(--text-secondary); border-radius: 1rem; padding: .05rem .45rem; min-width: 1.4rem; text-align: center; }

    .pf-tab.is-active .pf-tab-count { background: color-mix(in srgb, var(--primary) 15%, transparent); color: var(--primary); }


    .pf-tab-toolbar { display: flex; justify-content: flex-end; margin: .75rem 0 1.25rem; }

    .pf-upgrade-hint { display: flex; align-items: center; gap: .4rem; font-size: .82rem; font-weight: 600; color: var(--text-secondary); text-decoration: none; }

    .pf-upgrade-hint:hover { color: var(--primary); }


    .pf-filters { display: flex; gap: .75rem; margin-bottom: 1.25rem; flex-wrap: wrap; align-items: center; }

    .pf-search { position: relative; flex: 2 1 240px; min-width: 200px; }

    .pf-search i { position: absolute; left: .85rem; top: 50%; transform: translateY(-50%); color: var(--text-secondary); font-size: .9rem; pointer-events: none; }

    .pf-search .form-input { padding-left: 2.4rem; width: 100%; }


    @media (max-width: 900px) {

        .pf-stats {
            grid-auto-flow: column;
            grid-template-columns: none;
            grid-auto-columns: minmax(180px, 50vw);
            overflow-x: auto;
            scroll-snap-type: x mandatory;
            -webkit-overflow-scrolling: touch;
            padding-bottom: 4px;
        }


        .pf-stat-card { scroll-snap-align: start; }
}

    @media (max-width: 520px) {

        .pf-header { flex-direction: column; }
}

/* ===== Features/Organizacao/Perfis/Pages/PermissoesPage.razor ===== */
    .pm-page { display: flex; flex-direction: column; gap: 0; }

    .pm-loading { display: flex; justify-content: center; padding: 3rem 1rem; }

    .pm-header-actions { display: flex; gap: .5rem; flex-wrap: wrap; }

    .pm-form-card { background: var(--card-bg); border: 1px solid var(--border-color); border-radius: .75rem; padding: 1.1rem 1.25rem; margin-bottom: 1.25rem; }

    .pm-form-card h3 { margin: 0 0 .9rem; color: var(--text-primary); font-size: 1.05rem; }

    .pm-form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: .9rem; }

    .pm-form-grid label { display: flex; flex-direction: column; gap: .3rem; font-size: .85rem; color: var(--text-secondary); font-weight: 600; }

    .pm-form-grid small { font-weight: 400; font-size: .75rem; }

    .pm-form-wide { grid-column: 1 / -1; }

    .pm-form-actions { display: flex; justify-content: flex-end; gap: .5rem; margin-top: 1rem; }

    .pm-error { display: flex; align-items: center; gap: .5rem; color: var(--danger, #dc2626); font-size: .88rem; margin-top: .75rem; }

    .pm-filters { display: flex; gap: .75rem; margin-bottom: 1.25rem; flex-wrap: wrap; align-items: center; }

    .pm-search { position: relative; flex: 2 1 240px; min-width: 200px; }

    .pm-search i { position: absolute; left: .85rem; top: 50%; transform: translateY(-50%); color: var(--text-secondary); font-size: .9rem; pointer-events: none; }

    .pm-search .form-input { padding-left: 2.4rem; width: 100%; }

    .pm-count { font-size: .82rem; color: var(--text-secondary); }

    .pm-group { margin-bottom: 1.5rem; }

    .pm-group h4 { margin: 0 0 .5rem; color: var(--text-primary); font-size: .95rem; }


    @media (max-width: 640px) {

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

/* ===== Features/Organizacao/Salarios/Pages/SalariosPage.razor ===== */
    .sal-page { display: flex; flex-direction: column; gap: 0; }

    .sal-loading { display: flex; justify-content: center; padding: 3rem 1rem; }

    .sal-header { margin-bottom: 1.5rem; }

    .sal-header h2 { margin: 0; color: var(--text-primary); }

    .sal-subtitle { color: var(--text-secondary); margin: 0; }


    .sal-summary { display: flex; align-items: center; gap: .9rem; background: var(--card-bg); border: 1px solid var(--border-color); border-radius: .75rem; padding: 1rem 1.25rem; margin-bottom: 1.5rem; }

    .sal-summary-icon { width: 44px; height: 44px; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 1.25rem; flex-shrink: 0; background: var(--bg-secondary); color: var(--primary); }

    .sal-summary-body { display: flex; flex-direction: column; gap: .1rem; min-width: 0; }

    .sal-summary-label { font-size: .82rem; color: var(--text-secondary); }

    .sal-summary-value { font-size: 1.6rem; font-weight: 700; color: var(--text-primary); line-height: 1.15; overflow-wrap: anywhere; }


    .sal-section { margin-bottom: 2rem; }

    .sal-section-head { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: .9rem; flex-wrap: wrap; }

    .sal-section-head h3 { margin: 0; font-size: 1.05rem; color: var(--text-primary); }


    .sal-list { list-style: none; margin: 0; padding: 0; background: var(--card-bg); border: 1px solid var(--border-color); border-radius: .75rem; overflow: hidden; }

    .sal-row { display: flex; align-items: center; gap: .85rem; padding: .85rem 1.1rem; }

    .sal-row + .sal-row { border-top: 1px solid var(--border-color); }

    .sal-avatar { width: 38px; height: 38px; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: .8rem; font-weight: 700; background: var(--bg-secondary); color: var(--primary); }

    .sal-info { display: flex; flex-direction: column; align-items: flex-start; gap: .15rem; min-width: 0; flex: 1; }

    .sal-info strong { color: var(--text-primary); overflow-wrap: anywhere; }

    .sal-info small { color: var(--text-secondary); }

    .sal-chip { font-size: .72rem; font-weight: 600; padding: .1rem .55rem; border-radius: 999px; color: var(--text-secondary); background: color-mix(in srgb, var(--text-secondary) 14%, transparent); }

    .sal-chip--on { color: var(--primary); background: color-mix(in srgb, var(--primary) 14%, transparent); }

    .sal-valor { font-weight: 700; color: var(--text-primary); white-space: nowrap; }

    .sal-actions { display: flex; gap: .25rem; flex-shrink: 0; }

    .sal-btn-remover:hover { color: var(--danger); }

    .sal-actions .rc-action-btn:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }


    @media (max-width: 560px) {

        .sal-section-head .btn { width: 100%; }

        .sal-row { flex-wrap: wrap; padding: .85rem 1rem; }

        .sal-info { flex-basis: calc(100% - 38px - .85rem); }

        .sal-valor { margin-left: calc(38px + .85rem); flex: 1; }
}

/* ===== Features/Organizacao/Utilizadores/Pages/ListaUtilizadoresPage.razor ===== */
    .ut-page { display: flex; flex-direction: column; gap: 0; }

    .ut-loading, .ut-empty { display: flex; flex-direction: column; align-items: center; gap: .5rem; padding: 3rem 1rem; color: var(--text-secondary); }

    .ut-empty i { font-size: 2rem; }

    .ut-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; margin-bottom: 1.5rem; flex-wrap: wrap; }

    .ut-header-actions { display: flex; gap: .5rem; flex-wrap: wrap; }

    .ut-header h2 { margin: .25rem 0; color: var(--text-primary); }

    .ut-subtitle { color: var(--text-secondary); margin: 0; }


    .ut-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-bottom: 1.5rem; }

    .ut-stat-card { background: var(--card-bg); border: 1px solid var(--border-color); border-radius: .75rem; padding: 1rem 1.1rem; display: flex; align-items: center; gap: .8rem; }

    .ut-stat-icon { width: 40px; height: 40px; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 1.1rem; flex-shrink: 0; background: var(--bg-secondary); color: var(--primary); }

    .ut-stat-icon-blue { color: var(--primary); }

    .ut-stat-icon-amber { color: var(--warning, #d97706); }

    .ut-stat-icon-indigo { color: var(--brand-indigo, #4f46e5); }

    .ut-stat-icon-green { color: var(--success, #16a34a); }

    .ut-stat-body { display: flex; flex-direction: column; gap: .1rem; min-width: 0; }

    .ut-stat-value { font-size: 1.4rem; font-weight: 700; color: var(--text-primary); line-height: 1.15; }

    .ut-stat-label { font-size: .8rem; color: var(--text-secondary); overflow-wrap: break-word; }

    .ut-pager { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1rem; flex-wrap: wrap; }

    .ut-pager-info { font-size: .82rem; color: var(--text-secondary); }

    .ut-pager-controls { display: flex; align-items: center; gap: .6rem; }

    .ut-pager-page { font-size: .82rem; font-weight: 600; color: var(--text-primary); min-width: 3rem; text-align: center; }


    .ut-tabs { display: flex; gap: .25rem; border-bottom: 1px solid var(--border-color); margin-bottom: 1.25rem; flex-wrap: wrap; }

    .ut-tab { display: inline-flex; align-items: center; gap: .45rem; padding: .6rem .9rem; border: none; background: transparent; color: var(--text-secondary); font-size: .9rem; font-weight: 600; cursor: pointer; border-bottom: 2px solid transparent; margin-bottom: -1px; }

    .ut-tab:hover { color: var(--text-primary); }

    .ut-tab.is-active { color: var(--primary); border-bottom-color: var(--primary); }

    .ut-tab-count { font-size: .72rem; font-weight: 700; background: var(--bg-secondary); color: var(--text-secondary); border-radius: 1rem; padding: .05rem .45rem; min-width: 1.4rem; text-align: center; }

    .ut-tab.is-active .ut-tab-count { background: color-mix(in srgb, var(--primary) 15%, transparent); color: var(--primary); }


    .ut-filters { display: flex; gap: .75rem; margin-bottom: 1.25rem; flex-wrap: wrap; align-items: center; }

    .ut-search { position: relative; flex: 2 1 240px; min-width: 200px; }

    .ut-search i { position: absolute; left: .85rem; top: 50%; transform: translateY(-50%); color: var(--text-secondary); font-size: .9rem; pointer-events: none; }

    .ut-search .form-input { padding-left: 2.4rem; }

    .ut-filter-select { flex: 1 1 160px; max-width: 210px; }


    @media (max-width: 640px) {

        .ut-filters { flex-direction: column; align-items: stretch; }

        .ut-search, .ut-filter-select {
            flex: none;
            max-width: none;
            width: 100%;
        }
}


    .ut-table-card { background: var(--card-bg); border: 1px solid var(--border-color); border-radius: .75rem; overflow: hidden; }

    .ut-table-scroll { overflow-x: auto; }

    .ut-table { width: 100%; border-collapse: collapse; }

    .ut-table th { text-align: left; padding: .75rem 1rem; background: var(--bg-secondary); color: var(--text-secondary); font-size: .78rem; text-transform: uppercase; letter-spacing: .03em; }

    .ut-table td { padding: .75rem 1rem; border-top: 1px solid var(--border-color); vertical-align: middle; }

    .ut-th-right { text-align: right; }


    .ut-member-cell { display: flex; align-items: center; gap: .75rem; }

    .ut-avatar { width: 2.5rem; height: 2.5rem; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: .85rem; flex-shrink: 0; }

    .ut-member-info { display: flex; flex-direction: column; min-width: 0; }

    .ut-member-name { color: var(--text-primary); font-weight: 600; font-size: .9rem; }

    .ut-member-email { color: var(--text-secondary); font-size: .8rem; }

    .ut-muted { color: var(--text-secondary); font-size: .8rem; }


    .ut-cor-azul { background: rgba(50,91,179,.12); color: #325bb3; }

    .ut-cor-indigo { background: rgba(79,70,229,.12); color: #4f46e5; }

    .ut-cor-rosa { background: rgba(246,34,100,.12); color: #f62264; }

    .ut-cor-verde { background: rgba(22,163,74,.12); color: #16a34a; }

    .ut-cor-laranja { background: rgba(245,158,11,.12); color: #f59e0b; }

    .ut-cor-cinza { background: var(--bg-secondary); color: var(--text-secondary); }


    .ut-row-actions { display: flex; gap: .25rem; justify-content: flex-end; }

    .ut-icon-btn { border: none; background: transparent; color: var(--text-secondary); padding: .35rem; border-radius: .4rem; cursor: pointer; }

    .ut-icon-btn:hover { background: var(--bg-secondary); color: var(--primary); }

    .ut-icon-btn-danger:hover { color: var(--error); }


    /* ---- Lista de colaboradores em cartão (mobile) ---- */
    .ut-cards-m { display: none; flex-direction: column; gap: .75rem; }

    .ut-card-m { background: var(--card-bg); border: 1px solid var(--border-color); border-radius: .75rem; padding: 1rem; display: flex; flex-direction: column; gap: .75rem; }

    .ut-card-m-head { display: flex; align-items: center; gap: .75rem; }

    .ut-card-m-grid { display: flex; flex-direction: column; gap: .55rem; margin: 0; }

    .ut-card-m-grid > div { display: flex; align-items: center; justify-content: space-between; gap: .75rem; }

    .ut-card-m-grid dt { margin: 0; font-size: .78rem; color: var(--text-secondary); flex-shrink: 0; }

    .ut-card-m-grid dd { margin: 0; font-size: .85rem; color: var(--text-primary); text-align: right; min-width: 0; }

    .ut-card-m-actions { display: flex; gap: .5rem; flex-wrap: wrap; justify-content: flex-end; border-top: 1px solid var(--border-color); padding-top: .65rem; }

    .ut-card-m-btn { display: inline-flex; align-items: center; gap: .35rem; font-size: .8rem; font-weight: 600; color: var(--text-secondary); background: transparent; border: 1px solid var(--border-color); padding: .4rem .7rem; border-radius: .5rem; cursor: pointer; }

    .ut-card-m-btn:hover { background: var(--bg-secondary); color: var(--primary); border-color: var(--primary); }

    .ut-card-m-btn-danger:hover { color: var(--error); border-color: var(--error); }


    @media (max-width: 900px) {

        .ut-stats {
            grid-auto-flow: column;
            grid-template-columns: none;
            grid-auto-columns: minmax(180px, 50vw);
            overflow-x: auto;
            scroll-snap-type: x mandatory;
            -webkit-overflow-scrolling: touch;
            padding-bottom: 4px;
        }


        .ut-stat-card { scroll-snap-align: start; }


        .ut-table-desktop { display: none; }

        .ut-cards-m { display: flex; }
}

    @media (max-width: 520px) {

        .ut-header { flex-direction: column; }
}

/* ===== Features/Organizacao/Utilizadores/Pages/UtilizadorDetalhePage.razor ===== */
    .utd-loading, .utd-empty { display: flex; flex-direction: column; align-items: center; gap: .5rem; padding: 3rem 1rem; color: var(--text-secondary); }

    .utd-loading-inline, .utd-empty-inline { color: var(--text-secondary); font-size: .85rem; padding: .5rem 0; }


    .utd-hero { display: flex; align-items: center; gap: 1.25rem; padding: 1.25rem 1.5rem; background: var(--card-bg); border: 1px solid var(--border-color); border-radius: 1rem; margin-bottom: 1.5rem; flex-wrap: wrap; }

    .utd-avatar { width: 4rem; height: 4rem; border-radius: 1rem; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 1.25rem; flex-shrink: 0; }

    .utd-hero-info { flex: 1; min-width: 200px; display: flex; flex-direction: column; gap: .3rem; }

    .utd-hero-name-row { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; }

    .utd-hero-name-row h1 { margin: 0; font-size: 1.4rem; color: var(--text-primary); }

    .utd-hero-sub { margin: 0; color: var(--text-secondary); font-size: .9rem; }

    .utd-hero-actions { display: flex; gap: .5rem; flex-wrap: wrap; }


    .utd-perfil-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: .5rem; }

    .utd-perfil-header h3 { margin: 0; }

    .utd-perfil-title { display: flex; align-items: center; gap: .6rem; margin-bottom: .75rem; }

    .utd-perfil-icon { width: 2.25rem; height: 2.25rem; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 1rem; flex-shrink: 0; }

    .utd-icon-azul { background: #325bb3; }

    .utd-icon-indigo { background: #4f46e5; }

    .utd-icon-rosa { background: #f62264; }

    .utd-icon-verde { background: #16a34a; }

    .utd-icon-laranja { background: #f59e0b; }

    .utd-icon-cinza { background: #64748b; }

    .utd-perfil-nome { margin: 0; font-weight: 600; color: var(--text-primary); font-size: .9rem; }

    .utd-perfil-desc { margin: .15rem 0 0; }

    .utd-perfil-coverage { font-size: .8rem; color: var(--text-secondary); }

    .utd-perfil-coverage span { display: block; margin-bottom: .3rem; }

    .utd-progress { height: 6px; background: var(--bg-secondary); border-radius: 3px; overflow: hidden; }

    .utd-progress-fill { height: 100%; background: var(--primary); }


    .utd-kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-bottom: 1.5rem; }

    .utd-kpi-card { background: var(--card-bg); border: 1px solid var(--border-color); border-radius: .75rem; padding: 1rem 1.1rem; display: flex; align-items: center; gap: .8rem; }

    .utd-kpi-icon { width: 40px; height: 40px; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 1.1rem; flex-shrink: 0; background: var(--bg-secondary); color: var(--primary); }

    .utd-kpi-icon-blue { color: var(--primary); }

    .utd-kpi-icon-amber { color: var(--warning, #d97706); }

    .utd-kpi-icon-indigo { color: var(--brand-indigo, #4f46e5); }

    .utd-kpi-icon-green { color: var(--success, #16a34a); }

    .utd-kpi-body { display: flex; flex-direction: column; gap: .1rem; min-width: 0; }

    .utd-kpi-label { font-size: .72rem; color: var(--text-secondary); text-transform: uppercase; letter-spacing: .03em; }

    .utd-kpi-value { font-size: 1.3rem; font-weight: 700; color: var(--text-primary); line-height: 1.15; }

    .utd-kpi-value-sm { font-size: 1rem; }


    .utd-columns { display: grid; grid-template-columns: 1.5fr 1fr; gap: 1.25rem; align-items: start; }

    .utd-main-col, .utd-side-col { display: flex; flex-direction: column; }

    .utd-card { background: var(--card-bg); border: 1px solid var(--border-color); border-radius: .75rem; padding: 1.25rem; margin-bottom: 1.25rem; }

    .utd-main-col > .utd-card:last-child, .utd-side-col > .utd-card:last-child { margin-bottom: 0; }

    .utd-card h3 { margin: 0 0 .5rem; color: var(--text-primary); font-size: 1rem; display: flex; align-items: center; gap: .4rem; }

    .utd-card-hint { color: var(--text-secondary); font-size: .8rem; margin: 0 0 1rem; }


    .utd-soon { display: flex; flex-direction: column; align-items: center; text-align: center; gap: .5rem; padding: 1.5rem 1rem; color: var(--text-secondary); }

    .utd-soon i { font-size: 1.5rem; opacity: .7; }

    .utd-soon p { margin: 0; font-size: .82rem; max-width: 34ch; }


    .utd-timeline { display: flex; flex-direction: column; gap: .6rem; max-height: 17rem; overflow-y: auto; }

    .utd-timeline-item { display: flex; gap: .6rem; align-items: flex-start; }

    .utd-timeline-dot { width: 1.6rem; height: 1.6rem; border-radius: 50%; background: var(--bg-secondary); color: var(--primary); display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: .8rem; }

    .utd-timeline-body { display: flex; flex-direction: column; }

    .utd-timeline-desc { margin: 0; font-size: .85rem; color: var(--text-primary); }

    .utd-timeline-when { font-size: .75rem; color: var(--text-secondary); }


    .utd-info-row { display: flex; justify-content: space-between; gap: 1rem; padding: .5rem 0; border-bottom: 1px solid var(--border-color); font-size: .85rem; }

    .utd-info-row:last-child { border-bottom: none; }

    .utd-info-label { color: var(--text-secondary); flex-shrink: 0; }

    .utd-info-value { color: var(--text-primary); font-weight: 600; text-align: right; min-width: 0; overflow-wrap: anywhere; }


    @media (max-width: 900px) {

        .utd-columns { grid-template-columns: 1fr; }

        .utd-kpis { grid-template-columns: repeat(2, 1fr); }
}

    @media (max-width: 520px) {

        .utd-kpis { grid-template-columns: 1fr; }
}

/* ===== Features/Organizacao/Utilizadores/Pages/UtilizadorFormPage.razor ===== */
    .utf-loading { display: flex; justify-content: center; padding: 3rem 1rem; }

    .utf-header h2 { color: var(--text-primary); margin-bottom: .25rem; }

    .utf-subtitle { color: var(--text-secondary); margin: 0 0 1.25rem; }

    .utf-alert { padding: .75rem 1rem; border-radius: .5rem; margin-bottom: 1rem; }

    .utf-alert-erro { background: rgba(220,38,38,.1); color: var(--error); }


    .utf-hint { font-size: .82rem; color: var(--text-secondary); line-height: 1.55; margin: 0 0 1.25rem; }


    .utf-card { background: var(--card-bg); border: 1px solid var(--border-color); border-radius: .75rem; padding: 1.25rem 1.5rem; margin-bottom: 1.25rem; }

    .utf-card h3 { margin: 0 0 1rem; color: var(--text-primary); font-size: 1rem; display: flex; align-items: center; gap: .4rem; }

    .utf-card-hint { color: var(--text-secondary); font-size: .85rem; margin: -.5rem 0 1rem; }


    .utf-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem 1.5rem; align-items: start; }

    .utf-field { min-width: 0; }

    .utf-field label { display: block; font-size: .85rem; color: var(--text-secondary); margin-bottom: .35rem; }

    .utf-field-full { grid-column: 1 / -1; }

    .utf-required { color: var(--error); }


    .utf-page .form-input:disabled { background: var(--bg-secondary); opacity: .7; cursor: not-allowed; }


    .utf-reset { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-top: 1rem; padding: .9rem 1rem; border: 1px solid var(--border-color); border-radius: .6rem; background: var(--bg-secondary); }

    .utf-reset-text { display: flex; flex-direction: column; gap: .2rem; min-width: 0; flex: 1 1 260px; }

    .utf-reset-title { font-weight: 600; color: var(--text-primary); font-size: .88rem; display: inline-flex; align-items: center; gap: .4rem; }

    .utf-reset-sub { font-size: .8rem; color: var(--text-secondary); line-height: 1.45; }


    .utf-actions { display: flex; justify-content: flex-end; gap: .5rem; margin-top: .25rem; padding-top: 1.25rem; border-top: 1px solid var(--border-color); }


    @media (max-width: 640px) {

        .utf-grid-2 { grid-template-columns: 1fr; }

        .utf-field-full { grid-column: auto; }

        .utf-card { padding: 1.1rem 1.15rem; }

        .utf-reset { flex-direction: column; align-items: stretch; gap: .6rem; padding: .75rem .85rem; }

        .utf-reset-text { flex: none; }

        .utf-reset .btn { width: 100%; }

        .utf-actions { flex-direction: column-reverse; }

        .utf-actions .btn { width: 100%; }
}

/* ===== Regras escopadas por pagina (antes <style> residual com colisoes): :where(.pg-*) mantem a especificidade ===== */

/* ===== Features/Organizacao/Perfis/Pages/PapelParticipacaoFormPage.razor ===== */
.pg-papel-participacao-form-page { display: contents; }
        :where(.pg-papel-participacao-form-page) .pff-loading { display: flex; justify-content: center; padding: 3rem 1rem; }


        :where(.pg-papel-participacao-form-page) .pff-actionbar { position: sticky; bottom: .5rem; display: flex; justify-content: flex-end; gap: .5rem; padding: .7rem .9rem; background: var(--card-bg); border: 1px solid var(--border-color); border-radius: .75rem; }


        :where(.pg-papel-participacao-form-page) .pff-card { background: var(--card-bg); border: 1px solid var(--border-color); border-radius: .75rem; padding: 1.25rem 1.5rem; }


        :where(.pg-papel-participacao-form-page) .pff-card h3 { margin: 0 0 1rem; color: var(--text-primary); font-size: 1rem; }


        :where(.pg-papel-participacao-form-page) .pff-perm-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: .5rem; }


        :where(.pg-papel-participacao-form-page) .pff-perm { display: flex; align-items: flex-start; gap: .65rem; padding: .6rem .7rem; border-radius: .5rem; cursor: pointer; background: var(--bg-secondary); border: 1px solid var(--border-color); }


        :where(.pg-papel-participacao-form-page) .pff-perm-text { display: flex; flex-direction: column; }


        :where(.pg-papel-participacao-form-page) .pff-perm-desc { font-size: .75rem; color: var(--text-secondary); }


        :where(.pg-papel-participacao-form-page) .pff-switch { position: relative; display: inline-flex; flex-shrink: 0; width: 38px; height: 22px; }


        :where(.pg-papel-participacao-form-page) .pff-switch input { position: absolute; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }


        :where(.pg-papel-participacao-form-page) .pff-switch-track { position: absolute; inset: 0; background: color-mix(in srgb, var(--text-secondary) 28%, transparent); border-radius: 22px; }


        :where(.pg-papel-participacao-form-page) .pff-switch-thumb { position: absolute; top: 3px; left: 3px; width: 14px; height: 14px; background: #fff; border-radius: 50%; transition: transform .2s; }


        :where(.pg-papel-participacao-form-page) .pff-switch input:checked ~ .pff-switch-track { background: var(--primary); }


        :where(.pg-papel-participacao-form-page) .pff-switch input:checked ~ .pff-switch-track .pff-switch-thumb { transform: translateX(16px); }


        @media (max-width: 640px) {

     :where(.pg-papel-participacao-form-page) .pff-perm-grid { grid-template-columns: 1fr; }
}

/* ===== Features/Organizacao/Perfis/Pages/PerfilFormPage.razor ===== */
.pg-perfil-form-page { display: contents; }
    :where(.pg-perfil-form-page) .pff-loading { display: flex; flex-direction: column; align-items: center; gap: .5rem; padding: 3rem 1rem; color: var(--text-secondary); text-align: center; }



        :where(.pg-perfil-form-page) .pff-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; flex-wrap: wrap; }



        :where(.pg-perfil-form-page) .pff-actionbar { position: sticky; bottom: .5rem; z-index: 5; display: flex; justify-content: space-between; align-items: center; gap: .5rem; flex-wrap: wrap; padding: .7rem .9rem; background: var(--card-bg); border: 1px solid var(--border-color); border-radius: .75rem; box-shadow: 0 8px 24px rgba(0,0,0,.12); }


    :where(.pg-perfil-form-page) .pff-actionbar-right { display: flex; gap: .5rem; flex-wrap: wrap; }


        :where(.pg-perfil-form-page) .pff-actionbar-right { margin-left: auto; }



        :where(.pg-perfil-form-page) .pff-card { background: var(--card-bg); border: 1px solid var(--border-color); border-radius: .75rem; padding: 1.25rem 1.5rem; }


        :where(.pg-perfil-form-page) .pff-card h3 { margin: 0 0 1rem; color: var(--text-primary); font-size: 1rem; display: flex; align-items: center; gap: .4rem; }


        :where(.pg-perfil-form-page) .pff-perm-head h3 { margin: 0; }



        :where(.pg-perfil-form-page) .pff-perm-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: .5rem; padding: .5rem .9rem .9rem; }


        :where(.pg-perfil-form-page) .pff-perm { display: flex; align-items: flex-start; gap: .65rem; padding: .6rem .7rem; border-radius: .5rem; cursor: pointer; background: var(--card-bg); border: 1px solid var(--border-color); }


        :where(.pg-perfil-form-page) .pff-perm:hover { border-color: var(--primary); }


        :where(.pg-perfil-form-page) .pff-perm-text { display: flex; flex-direction: column; min-width: 0; }


        :where(.pg-perfil-form-page) .pff-perm-desc { font-size: .75rem; color: var(--text-secondary); line-height: 1.35; }



        /* switch personalizado */
        :where(.pg-perfil-form-page) .pff-switch { position: relative; display: inline-flex; flex-shrink: 0; width: 38px; height: 22px; }


        :where(.pg-perfil-form-page) .pff-switch input { position: absolute; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }


        :where(.pg-perfil-form-page) .pff-switch-track { position: absolute; inset: 0; background: color-mix(in srgb, var(--text-secondary) 28%, transparent); border: 1px solid color-mix(in srgb, var(--text-secondary) 50%, transparent); border-radius: 22px; transition: background .2s, border-color .2s; }


        :where(.pg-perfil-form-page) .pff-switch-thumb { position: absolute; top: 3px; left: 3px; width: 14px; height: 14px; background: #fff; border-radius: 50%; box-shadow: 0 1px 3px rgba(0,0,0,.35); transition: transform .2s; }


        :where(.pg-perfil-form-page) .pff-switch input:checked ~ .pff-switch-track { background: var(--primary); border-color: var(--primary); }


        :where(.pg-perfil-form-page) .pff-switch input:checked ~ .pff-switch-track .pff-switch-thumb { transform: translateX(16px); }


        :where(.pg-perfil-form-page) .pff-switch.pff-switch-sm { width: 32px; height: 20px; }


        :where(.pg-perfil-form-page) .pff-switch.pff-switch-sm .pff-switch-thumb { width: 12px; height: 12px; }


        :where(.pg-perfil-form-page) .pff-switch.pff-switch-sm input:checked ~ .pff-switch-track .pff-switch-thumb { transform: translateX(12px); }


    @media (max-width: 900px) {


            :where(.pg-perfil-form-page) .pff-perm-grid { grid-template-columns: 1fr; }
}


    @media (max-width: 640px) {


            :where(.pg-perfil-form-page) .pff-actionbar { flex-direction: column-reverse; align-items: stretch; }


    :where(.pg-perfil-form-page) .pff-actionbar-right { margin-left: 0; }


            :where(.pg-perfil-form-page) .pff-actionbar .btn { flex: 1; }
}

/* ===== Features/Organizacao/Perfis/Pages/PermissoesPage.razor ===== */
.pg-permissoes-page { display: contents; }
        :where(.pg-permissoes-page) .pm-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; margin-bottom: 1.5rem; flex-wrap: wrap; }


        :where(.pg-permissoes-page) .pm-header h2 { margin: 0; color: var(--text-primary); }


        :where(.pg-permissoes-page) .pm-subtitle { color: var(--text-secondary); margin: 0; max-width: 46rem; }


    @media (max-width: 640px) {


            :where(.pg-permissoes-page) .pm-header { flex-direction: column; }
}

/* ===== Features/Organizacao/Utilizadores/Pages/ListaUtilizadoresPage.razor ===== */
.pg-lista-utilizadores-page { display: contents; }
:where(.pg-lista-utilizadores-page) .ut-loading-inline, :where(.pg-lista-utilizadores-page) .ut-empty-inline { color: var(--text-secondary); font-size: .85rem; padding: 1rem 0; }



:where(.pg-lista-utilizadores-page) .btn-sm { padding: .4rem .7rem; font-size: .8rem; border-radius: 8px; }



:where(.pg-lista-utilizadores-page) .ut-invites-sub { margin: .2rem 0 0; color: var(--text-secondary); font-size: .82rem; }



:where(.pg-lista-utilizadores-page) .ut-badge { display: inline-flex; align-items: center; gap: .3rem; font-size: .75rem; font-weight: 600; padding: .2rem .6rem; border-radius: 1rem; }


:where(.pg-lista-utilizadores-page) .ut-badge-papel { background: var(--bg-secondary); color: var(--text-secondary); }



:where(.pg-lista-utilizadores-page) .ut-status-pill { display: inline-flex; align-items: center; gap: .35rem; font-size: .75rem; font-weight: 600; padding: .2rem .6rem; border-radius: 1rem; background: var(--bg-secondary); color: var(--text-secondary); }


:where(.pg-lista-utilizadores-page) .ut-status-pill.is-active { color: #16a34a; }


:where(.pg-lista-utilizadores-page) .ut-status-pill.is-expired { color: var(--error); }


:where(.pg-lista-utilizadores-page) .ut-status-dot { width: .4rem; height: .4rem; border-radius: 50%; background: currentColor; }



:where(.pg-lista-utilizadores-page) .ut-invites-section { margin-top: 1.5rem; background: var(--card-bg); border: 1px solid var(--border-color); border-radius: .75rem; padding: 1.25rem; }


:where(.pg-lista-utilizadores-page) .ut-invites-header h3 { margin: 0 0 .75rem; color: var(--text-primary); font-size: 1rem; }


:where(.pg-lista-utilizadores-page) .ut-invites-list { display: flex; flex-direction: column; gap: .5rem; }


:where(.pg-lista-utilizadores-page) .ut-invite-card { display: flex; justify-content: space-between; align-items: center; padding: .6rem .75rem; border: 1px solid var(--border-color); border-radius: .5rem; flex-wrap: wrap; gap: .5rem; }


:where(.pg-lista-utilizadores-page) .ut-invite-info { display: flex; align-items: center; gap: .5rem; color: var(--text-primary); font-size: .85rem; }


:where(.pg-lista-utilizadores-page) .ut-invite-actions { display: flex; gap: .5rem; }

/* ===== Features/Organizacao/Utilizadores/Pages/UtilizadorDetalhePage.razor ===== */
.pg-utilizador-detalhe-page { display: contents; }
:where(.pg-utilizador-detalhe-page) .btn-sm { padding: .4rem .7rem; font-size: .8rem; border-radius: 8px; }



:where(.pg-utilizador-detalhe-page) .ut-badge { display: inline-flex; align-items: center; gap: .3rem; font-size: .75rem; font-weight: 600; padding: .2rem .6rem; border-radius: 1rem; }
