/* Shared premium components for the IBG Pipeline CRM. */

:root {
    --ibg-ink: #152A3F;
    --ibg-steel: #4F7897;
    --ibg-line: #D9E4EC;
    --ibg-soft: #F6F9FC;
    --ibg-green: #14795B;
    --ibg-gold: #A56B13;
}

.app-shell {
    background:
        linear-gradient(180deg, rgba(255,255,255,.78), rgba(246,249,252,.92)),
        var(--ibg-soft);
}

.panel,
.executive-filter-bar,
.metric,
.opportunity-list-panel,
.quick-detail-panel,
.card {
    border-color: var(--ibg-line);
    box-shadow: 0 12px 32px rgba(21,42,63,.06);
}

.panel,
.executive-filter-bar,
.opportunity-list-panel,
.quick-detail-panel {
    background: rgba(255,255,255,.96);
}

.panel-head,
.table-toolbar,
.filter-title {
    gap: 14px;
}

.panel-head h3,
.table-toolbar strong,
.filter-title strong {
    color: var(--ibg-ink);
}

.professional-table {
    border-collapse: separate;
    border-spacing: 0;
}

.professional-table thead th {
    background: #F4F8FB;
    color: #486176;
    font-weight: 700;
}

.professional-table tbody tr {
    transition: background .16s ease, box-shadow .16s ease;
}

.professional-table tbody tr:hover {
    background: #F7FBFE;
}

.form-control,
.form-select {
    background-color: #fff;
    border-color: #CEDAE4;
}

.form-control:hover,
.form-select:hover {
    border-color: #AFC4D5;
}

.btn {
    min-height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.btn-light,
.btn-outline-secondary {
    border-color: var(--ibg-line);
    background: #fff;
    color: var(--ibg-ink);
}

.btn-light:hover,
.btn-outline-secondary:hover {
    background: #F3F7FA;
    color: var(--ibg-ink);
}

.alert {
    border-radius: 8px;
    border: 1px solid transparent;
    font-weight: 600;
}

.flash-stack {
    display: grid;
    gap: 10px;
}

.sidebar-submenu .sidebar-link {
    min-height: 32px;
}

.sidebar-group-label {
    min-width: 0;
}

.sidebar-group-label > span,
.sidebar-link > span {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.mfa-shell {
    max-width: 880px;
}

.mfa-code-input {
    height: 58px;
    text-align: center;
    font-size: 24px;
    font-weight: 800;
    letter-spacing: 8px;
    color: var(--ibg-ink);
}

.login-secondary-link {
    display: block;
    text-align: center;
    margin-top: 18px;
    color: var(--ibg-steel);
    font-weight: 700;
    text-decoration: none;
}

.login-secondary-link:hover {
    color: var(--ibg-ink);
}

.is-loading {
    position: relative;
    pointer-events: none;
    opacity: .72;
}

.is-loading::after {
    content: "";
    width: 14px;
    height: 14px;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    animation: ibg-spin .72s linear infinite;
}

@keyframes ibg-spin {
    to { transform: rotate(360deg); }
}

.badge-status.status-qualificacao,
.badge-status.status-visita {
    background: #EAF2F7;
    color: var(--ibg-steel);
}

.badge-status.status-juridico,
.badge-status.status-fechamento,
.badge-status.status-implantacao {
    background: #F8F1E4;
    color: var(--ibg-gold);
}

.badge-status.status-fechado {
    background: #E7F5EF;
    color: var(--ibg-green);
}
