@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@500;600;700&family=Urbanist:wght@400;500;600;700;800&display=swap');

/* Adaptador Filament do shell aprovado para o NPS. Cores e medidas partem dos tokens comuns. */
.fi-body,
.fi-simple-layout { background: var(--app-canvas) !important; color: var(--app-text); font-family: var(--font-ui); }
.fi-body { --topbar-height: 4.75rem; }
.fi-body .fi-main-ctn { display: flex !important; opacity: 1 !important; }
.fi-sidebar, .fi-sidebar-header { background: var(--app-nav-surface) !important; color: var(--app-nav-text); }
.fi-sidebar { border-right: 1px solid var(--app-nav-surface); }
.fi-sidebar-header-ctn { flex: none; border-bottom: 1px solid rgb(255 255 255 / 10%); }
.fi-sidebar-header { position: relative; min-height: 7rem; padding: .6rem 1.25rem 1.6rem !important; box-shadow: none !important; }
.fi-sidebar-header-logo-ctn { width: 100%; }
.lynse-sidebar-brand-caption { position: absolute; bottom: .75rem; inset-inline-start: 1.65rem; color: var(--app-nav-text-muted); font-size: .62rem; font-weight: 800; letter-spacing: .22em; }
.fi-sidebar-nav { gap: 0 !important; padding: 1.5rem .65rem !important; }
.fi-sidebar-nav-groups { width: 100% !important; margin-inline: 0 !important; gap: .65rem !important; }
.lynse-sidebar-app-label { margin: 0 0 .9rem 1rem; color: var(--app-nav-text-muted); font-size: .62rem; font-weight: 800; letter-spacing: .18em; }
.fi-sidebar-nav .fi-sidebar-item-btn { min-height: 2.8rem; gap: .75rem; padding: .55rem 1rem; border-radius: var(--radius-sm); font-size: .88rem; font-weight: 700; }
.fi-sidebar-nav .fi-sidebar-group-items { gap: .25rem; }
.fi-sidebar-nav .fi-sidebar-item-label, .fi-sidebar-nav .fi-sidebar-group-label, .fi-sidebar-nav .fi-icon { color: var(--app-nav-text-muted) !important; }
.fi-sidebar-nav .fi-sidebar-group-label { font-size: .68rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.fi-sidebar-nav .fi-sidebar-item-btn:hover, .fi-sidebar-nav .fi-sidebar-item-btn:focus-visible { background: var(--app-nav-surface-hover) !important; }
.fi-sidebar-nav .fi-sidebar-item-btn:hover .fi-sidebar-item-label, .fi-sidebar-nav .fi-sidebar-item-btn:hover .fi-icon { color: var(--app-nav-text) !important; }
.fi-sidebar .fi-sidebar-group-btn, .fi-sidebar .fi-sidebar-group-btn .fi-icon { color: var(--app-nav-text-muted) !important; }
.fi-sidebar-item.fi-active > .fi-sidebar-item-btn { background: var(--app-nav-surface-hover) !important; border-inline-start: 3px solid var(--app-nav-accent); }
.fi-sidebar-item.fi-active .fi-sidebar-item-label, .fi-sidebar-item.fi-active .fi-icon { color: var(--app-nav-text) !important; font-weight: 700; }
.lynse-sidebar-footer { margin-top: auto; padding: .9rem 1.2rem; border-top: 1px solid rgb(255 255 255 / 10%); }
.lynse-sidebar-collapse-button { display: flex; align-items: center; gap: .65rem; width: 100%; min-height: 2.5rem; padding: .5rem .7rem; border: 1px solid rgb(255 255 255 / 15%); border-radius: var(--radius-sm); background: transparent; color: var(--app-nav-text-muted); font: 700 .75rem var(--font-ui); text-align: start; }
.lynse-sidebar-collapse-button:hover, .lynse-sidebar-collapse-button:focus-visible { background: var(--app-nav-surface-hover); color: var(--app-nav-text); }
.lynse-sidebar-collapse-button svg { width: 1rem; height: 1rem; flex: none; }

.fi-topbar { min-height: var(--topbar-height); background: var(--app-surface) !important; border-bottom: 1px solid var(--app-border); box-shadow: none !important; }
.fi-topbar-start { display: flex !important; align-items: center; }
.fi-topbar-collapse-sidebar-btn-ctn { display: none !important; }
.lynse-topbar-context { display: inline-flex; align-items: center; gap: .8rem; color: var(--app-text-secondary); font-size: .9rem; white-space: nowrap; }
.lynse-topbar-context strong { color: var(--app-text); font-weight: 800; }
.lynse-topbar-context > span:first-of-type { color: #C7C7C7; }
.fi-topbar .fi-icon { color: var(--app-text) !important; }
.fi-topbar-end .fi-user-menu { order: 1; }
.fi-topbar-end .lynse-topbar-user { order: 2; }
.lynse-topbar-user { display: inline-flex; flex-direction: column; justify-content: center; gap: .08rem; color: var(--app-text); font-size: .82rem; line-height: 1.2; }
.lynse-topbar-user strong { font-weight: 800; }
.lynse-topbar-user small { color: var(--app-text-secondary); font-size: .68rem; }
.lynse-hml-badge { display: inline-flex; align-items: center; padding: .3rem .55rem; border: 1px solid var(--app-action); border-radius: var(--radius-sm); background: var(--lynse-orange-soft); color: var(--app-text); font-size: .7rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; white-space: nowrap; }

.fi-logo { display: block !important; width: 280px !important; height: 84px !important; overflow: hidden; }
.fi-simple-main .fi-logo { width: min(100%, 280px) !important; height: auto !important; aspect-ratio: 10 / 3; }
.fi-logo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.fi-logo .lynse-logo-on-dark, .fi-logo .lynse-logo-mobile { display: none; }
.fi-sidebar .fi-logo { width: 208px !important; height: 76px !important; }
.fi-sidebar .fi-logo .lynse-logo-on-light { display: none; }
.fi-sidebar .fi-logo .lynse-logo-on-dark { display: block; }
.fi-topbar .fi-logo .lynse-logo-on-light { display: block; }
.lynse-sidebar-compact-brand { position: relative; display: block; flex: none; width: 50px; height: 50px; overflow: hidden; border-radius: var(--radius-sm); background: var(--app-surface); }
.lynse-sidebar-compact-brand img { position: absolute; top: 50%; left: 50%; width: 120px; height: 120px; max-width: none; transform: translate(-50%, -50%); }

.fi-main { max-width: 84rem; }
.fi-header-heading { color: var(--app-text); font-family: var(--font-ui); font-size: clamp(1.5rem, 2.5vw, 2.25rem); font-weight: 800; letter-spacing: -.035em; line-height: 1.16; text-transform: none; }
.fi-header-heading .lynse-page-eyebrow { display: block; margin-bottom: .65rem; color: var(--lynse-orange-hover); font: 800 .65rem/1.3 var(--font-ui); letter-spacing: .18em; }
.fi-header-heading .lynse-page-eyebrow::before { content: ''; display: inline-block; width: 1.2rem; height: 2px; margin: 0 .55rem .2rem 0; background: var(--app-action); }
.fi-header-subheading { color: var(--app-text-secondary); font-size: .95rem; }
.fi-header-actions-ctn .fi-btn { min-height: 2.65rem; }
.fi-breadcrumbs { color: var(--app-text-secondary); font-size: .82rem; }
.fi-breadcrumbs a:hover { color: var(--lynse-orange-hover); }
.fi-section, .fi-ta-ctn, .fi-wi-stats-overview-stat, .fi-simple-main { border: 1px solid var(--app-border); border-radius: var(--radius-md) !important; box-shadow: 0 5px 18px rgb(25 25 25 / 3%) !important; }
.fi-ta-header-cell { background: var(--app-surface-subtle); }
.fi-btn.fi-color-primary:not(.fi-outlined), .fi-btn.fi-color-primary:not(.fi-outlined) .fi-icon { color: var(--app-action-text) !important; }
.fi-btn.fi-color-primary:not(.fi-outlined):hover { background: var(--app-action-hover) !important; }
.fi-sidebar-item-btn:focus-visible, .fi-sidebar-group-btn:focus-visible, .fi-btn:focus-visible, .fi-input-wrp:focus-within, .fi-user-menu-trigger:focus-visible, .lynse-sidebar-collapse-button:focus-visible, .lynse-sidebar-compact-brand:focus-visible, .lynse-app-card:focus-visible { outline: 2px solid var(--app-action) !important; outline-offset: 2px; }

/* Catálogo inicial: módulos indisponíveis são cartões informativos, nunca links. */
.lynse-app-catalog { display: grid; gap: 1.4rem; min-width: 0; }
.lynse-app-theme { min-width: 0; padding: clamp(1rem, 2vw, 1.6rem); border: 1px solid var(--app-border); border-radius: var(--radius-md); background: var(--app-surface); box-shadow: 0 5px 18px rgb(25 25 25 / 3%); scroll-margin-top: 6rem; }
.lynse-app-theme-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1.15rem; }
.lynse-ops-kicker { color: var(--lynse-orange-hover); font: 800 .65rem/1.3 var(--font-ui); letter-spacing: .18em; }
.lynse-app-theme-heading h2 { margin: .35rem 0 .2rem; color: var(--app-text); font: 800 1.25rem/1.2 var(--font-ui); }
.lynse-app-theme-heading p { margin: 0; color: var(--app-text-secondary); font-size: .83rem; }
.lynse-app-theme-count { flex: none; padding: .4rem .6rem; border: 1px solid var(--app-border); border-radius: var(--radius-sm); color: var(--app-text-secondary); font-size: .7rem; font-weight: 700; }
.lynse-app-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 13.5rem), 1fr)); gap: .85rem; }
.lynse-app-card { display: flex; flex-direction: column; min-width: 0; min-height: 13rem; padding: 1rem; border: 1px solid var(--app-border); border-inline-start: 3px solid var(--app-action); border-radius: var(--radius-md); background: var(--app-surface); color: var(--app-text); text-decoration: none; transition: border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast); }
a.lynse-app-card:hover { border-color: var(--app-action); box-shadow: var(--shadow-floating); transform: translateY(-2px); }
.lynse-app-card-pending { border-inline-start-color: var(--app-border); background: var(--app-surface-subtle); }
.lynse-app-card-icon { display: inline-flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; margin-bottom: .85rem; border-radius: var(--radius-sm); background: var(--lynse-orange-soft); color: var(--lynse-orange-hover); }
.lynse-app-card-pending .lynse-app-card-icon { background: #EEEEEE; color: var(--app-text-secondary); }
.lynse-app-card-icon svg { width: 1.3rem; height: 1.3rem; }
.lynse-app-card-title { color: var(--app-text); font-size: 1rem; font-weight: 800; line-height: 1.25; }
.lynse-app-card-description { margin-top: .3rem; color: var(--app-text-secondary); font-size: .78rem; line-height: 1.45; }
.lynse-app-card-footer { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-top: auto; padding-top: 1rem; }
.lynse-app-card-status { font-size: .7rem; font-weight: 800; }
.lynse-app-card-status.is-available { color: var(--lynse-success); }
.lynse-app-card-status.is-review { color: var(--lynse-orange-hover); }
.lynse-app-card-status.is-pending { color: var(--app-text-secondary); }
.lynse-app-card-arrow { color: var(--lynse-orange-hover); font-size: 1.2rem; line-height: 1; }

/* Identificação de pessoas: a foto mantém as permissões da pasta original. */
.lynse-person-photo-row { display: flex; align-items: center; gap: 1rem; min-width: 0; padding: .4rem 0 1rem; }
.lynse-person-avatar { position: relative; display: grid; flex: none; place-items: center; width: 5.5rem; height: 5.5rem; overflow: hidden; border: 2px solid var(--app-border); border-radius: 50%; background: var(--lynse-orange-soft); color: var(--app-text); font: 800 1.45rem/1 var(--font-ui); }
.lynse-person-avatar img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.lynse-person-avatar img[hidden] { display: none; }
.lynse-person-photo-copy { display: flex; flex-direction: column; gap: .2rem; min-width: 0; }
.lynse-person-photo-copy strong { color: var(--app-text); font-size: 1rem; }
.lynse-person-photo-copy span { color: var(--app-text-secondary); font-size: .8rem; }
.lynse-person-photo-copy a { width: fit-content; color: var(--lynse-orange-hover); font-size: .8rem; font-weight: 700; }
.lynse-person-photo-copy a:focus-visible { outline: 2px solid var(--app-action); outline-offset: 2px; }

/* Folha: horizonte movel somente para consulta, sem gravar competencias futuras. */
.lynse-forecast { min-width: 0; padding: clamp(1rem, 2vw, 1.55rem); border: 1px solid var(--app-border); border-radius: var(--radius-md); background: var(--app-surface); box-shadow: 0 5px 18px rgb(25 25 25 / 3%); }
.lynse-forecast-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1.1rem; }
.lynse-forecast-heading h2 { margin: .3rem 0 .25rem; color: var(--app-text); font: 800 1.25rem/1.25 var(--font-ui); }
.lynse-forecast-heading p, .lynse-forecast-footnote { margin: 0; color: var(--app-text-secondary); font-size: .82rem; line-height: 1.5; }
.lynse-forecast-mode { flex: none; padding: .35rem .6rem; border: 1px solid var(--app-border); border-radius: var(--radius-sm); color: var(--app-text-secondary); font-size: .7rem; font-weight: 800; }
.lynse-forecast-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .85rem; }
.lynse-forecast-card { min-width: 0; padding: 1rem; border: 1px solid var(--app-border); border-inline-start: 3px solid var(--app-action); border-radius: var(--radius-md); background: var(--app-surface-subtle); }
.lynse-forecast-card-top { display: flex; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; gap: .45rem; }
.lynse-forecast-month { color: var(--app-text); font-size: 1rem; font-weight: 800; }
.lynse-forecast-badge { padding: .22rem .4rem; border-radius: var(--radius-sm); background: var(--lynse-success-soft); color: var(--lynse-success); font-size: .67rem; font-weight: 800; }
.lynse-forecast-badge.is-pending { background: var(--lynse-warning-soft); color: var(--lynse-warning); }
.lynse-forecast-total { margin: .85rem 0 .1rem; color: var(--app-text); font: 800 clamp(1.25rem, 2vw, 1.65rem)/1.2 var(--font-ui); font-variant-numeric: tabular-nums; }
.lynse-forecast-caption { color: var(--app-text-secondary); font-size: .78rem; }
.lynse-forecast-meta { display: flex; flex-direction: column; gap: .35rem; min-height: 2.7rem; margin-top: 1rem; padding-top: .7rem; border-top: 1px solid var(--app-border); color: var(--app-text-secondary); font-size: .72rem; line-height: 1.35; }
.lynse-forecast-meta a { width: fit-content; color: var(--app-action-hover); font-weight: 800; text-decoration: underline; text-underline-offset: .18em; }
.lynse-forecast-meta a:focus-visible { outline: 2px solid var(--app-action); outline-offset: 2px; }
.lynse-forecast-footnote { margin-top: 1rem; }
.lynse-forecast-subheading { margin: 0 0 .7rem; color: var(--app-text); font: 800 .9rem/1.3 var(--font-ui); }
.lynse-forecast-founder { margin-top: 1.35rem; padding-top: 1.15rem; border-top: 1px solid var(--app-border); }
.lynse-payroll-breakdown { display: grid; gap: .4rem; margin: 1rem 0 0; padding: .7rem 0; border-top: 1px solid var(--app-border); border-bottom: 1px solid var(--app-border); }
.lynse-payroll-breakdown > div { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: .35rem .8rem; }
.lynse-payroll-breakdown dt { color: var(--app-text-secondary); font-size: .77rem; }
.lynse-payroll-breakdown dd { margin: 0; color: var(--app-text); font-size: .83rem; font-weight: 800; font-variant-numeric: tabular-nums; }
.lynse-forecast-footnote a { color: var(--app-action-hover); font-weight: 800; text-decoration: underline; text-underline-offset: .18em; }
.lynse-forecast-footnote a:focus-visible { outline: 2px solid var(--app-action); outline-offset: 2px; }

/* Prévia de liberação: valores e pendências legíveis sem depender de utilitários Tailwind. */
.lynse-release-preview { display: grid; gap: 1.25rem; min-width: 0; color: var(--app-text); font-family: var(--font-ui); }
.lynse-release-summary { display: flex; flex-direction: column; gap: .18rem; padding: 1.1rem 1.3rem; border: 1px solid var(--app-border); border-inline-start: 4px solid var(--app-action); border-radius: var(--radius-md); background: var(--app-surface-subtle); }
.lynse-release-summary span, .lynse-release-label { color: var(--app-text-secondary); font-size: .76rem; font-weight: 700; }
.lynse-release-summary strong { color: var(--app-text); font-size: clamp(1.35rem, 3vw, 1.8rem); font-weight: 800; font-variant-numeric: tabular-nums; }
.lynse-release-summary small { color: var(--app-text-secondary); font-size: .78rem; }
.lynse-release-heading { margin: 0 0 .65rem; color: var(--app-text); font-size: 1rem; font-weight: 800; }
.lynse-release-people { display: grid; gap: .6rem; }
.lynse-release-person { padding: .85rem 1rem; border: 1px solid var(--app-border); border-radius: var(--radius-md); background: var(--app-surface); }
.lynse-release-person.has-issues { border-inline-start: 3px solid var(--lynse-warning); }
.lynse-release-person-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr) minmax(0, 1fr); gap: .8rem; }
.lynse-release-person-grid > div { display: flex; flex-direction: column; gap: .2rem; min-width: 0; }
.lynse-release-person-grid strong { overflow-wrap: anywhere; font-size: .9rem; font-weight: 800; font-variant-numeric: tabular-nums; }
.lynse-release-person-identity small { color: var(--app-text-secondary); font-size: .7rem; }
.lynse-release-value { white-space: nowrap; }
.lynse-release-person-issues { margin-top: .8rem; padding: .65rem .8rem; border-radius: var(--radius-sm); background: var(--lynse-warning-soft); color: var(--app-text); font-size: .78rem; }
.lynse-release-person-issues > strong { color: var(--lynse-warning); font-weight: 800; }
.lynse-release-person-issues ul, .lynse-release-alert ul { margin: .3rem 0 0; padding-inline-start: 1.2rem; list-style: disc; }
.lynse-release-person-issues li + li, .lynse-release-alert li + li { margin-top: .16rem; }
.lynse-release-empty { margin: 0; padding: 1rem; border: 1px dashed var(--app-border); border-radius: var(--radius-md); color: var(--app-text-secondary); }
.lynse-release-held { padding: .75rem 1rem; border: 1px solid var(--app-border); border-radius: var(--radius-md); background: var(--app-surface-subtle); }
.lynse-release-held .lynse-release-heading { margin-bottom: .2rem; }
.lynse-release-held p, .lynse-release-held li { color: var(--app-text-secondary); font-size: .78rem; }
.lynse-release-held p { margin: 0 0 .4rem; }
.lynse-release-held ul { margin: 0; padding-inline-start: 1rem; }
.lynse-release-held li strong { color: var(--app-text); }
.lynse-release-alert, .lynse-release-ready { margin: 0; padding: .85rem 1rem; border: 1px solid var(--lynse-warning); border-radius: var(--radius-md); background: var(--lynse-warning-soft); color: var(--app-text); font-size: .82rem; line-height: 1.45; }
.lynse-release-alert > strong { color: var(--lynse-warning); font-size: .9rem; font-weight: 800; }
.lynse-release-alert p { margin: .2rem 0 0; }
.lynse-release-ready { border-color: var(--lynse-success); background: var(--lynse-success-soft); }

@media (min-width: 1024px) {
    .fi-body.fi-body-has-topbar .fi-main-sidebar { position: fixed !important; top: 0 !important; bottom: 0 !important; height: 100dvh !important; z-index: 40; }
    .fi-body.fi-body-has-topbar .fi-sidebar-header { display: flex !important; align-items: flex-start; }
    .fi-body.fi-body-has-topbar .fi-topbar-ctn, .fi-body.fi-body-has-topbar .fi-main-ctn { margin-inline-start: var(--sidebar-width); transition: margin-inline-start .2s ease; }
    .fi-body.fi-body-has-topbar:has(.fi-main-sidebar:not(.fi-sidebar-open)) .fi-topbar-ctn, .fi-body.fi-body-has-topbar:has(.fi-main-sidebar:not(.fi-sidebar-open)) .fi-main-ctn { margin-inline-start: var(--collapsed-sidebar-width); }
    .fi-topbar-start > a { display: none !important; }
    .fi-main-sidebar:not(.fi-sidebar-open) .fi-sidebar-header { min-height: 4.75rem; align-items: center !important; justify-content: center; padding: .5rem !important; }
    .fi-main-sidebar:not(.fi-sidebar-open) .fi-sidebar-nav { padding-inline: .5rem !important; }
    .fi-main-sidebar:not(.fi-sidebar-open) .fi-sidebar-item-btn { justify-content: center; width: 3.3rem; padding: .55rem !important; }
    .fi-main-sidebar:not(.fi-sidebar-open) .lynse-sidebar-footer { padding-inline: .5rem; }
    .fi-main-sidebar:not(.fi-sidebar-open) .lynse-sidebar-collapse-button { justify-content: center; padding: .5rem; }
    .fi-main-sidebar:not(.fi-sidebar-open) .lynse-sidebar-collapse-button span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
}
@media (max-width: 1023px) { .lynse-topbar-context, .lynse-sidebar-footer { display: none !important; } }
@media (max-width: 900px) { .lynse-forecast-grid { grid-template-columns: 1fr; } .lynse-forecast-mode { display: none; } }
@media (max-width: 640px) {
    .fi-body { --topbar-height: 4.5rem; }
    .fi-topbar .fi-logo { width: 50px !important; height: 50px !important; }
    .fi-topbar .fi-logo .lynse-logo-on-light { display: none; }
    .fi-topbar .fi-logo .lynse-logo-mobile { display: block; }
    .fi-sidebar .fi-logo { width: 205px !important; }
    .lynse-topbar-user { display: none; }
    .lynse-app-theme-count { display: none; }
    .lynse-app-grid { grid-template-columns: 1fr; }
    .lynse-app-card { min-height: 10rem; }
    .lynse-release-person-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .lynse-release-person-identity { grid-column: 1 / -1; }
}
@media (max-width: 380px) { .lynse-release-person-grid { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .fi-btn, .fi-sidebar-item-btn, .lynse-app-card { transition-duration: 0ms !important; } a.lynse-app-card:hover { transform: none; } }
